{"version":3,"sources":["scripts/app-70664bc933.js"],"names":["angular","module","routeConfig","$urlRouterProvider","baSidebarServiceProvider","url","window","location","isQryChecked","includes","otherwise","config","$stateProvider","state","templateUrl","title","controller","controllerAs","sidebarMeta","order","icon","params","data","undefined","Status","Mode","ProjectId","Header","CopyFor","TileId","SetupType","LastTierName","isProjectTile","isItemTile","isButtonShow","mode","status","google","load","packages","setOnLoadCallback","bootstrap","document","body","ChartJsProvider","setOptions","chartColors","responsive","maintainAspectRatio","animation","duration","showLines","$locationProvider","$translateProvider","dialogsProvider","$httpProvider","interceptors","push","$q","$rootScope","responseError","rejection","defer","logout","reject","promise","useBackdrop","useEscClose","useCopy","setSize","translations","DIALOGS_ERROR","DIALOGS_ERROR_MSG","DIALOGS_CLOSE","DIALOGS_PLEASE_WAIT","DIALOGS_PLEASE_WAIT_ELIPS","DIALOGS_PLEASE_WAIT_MSG","DIALOGS_PERCENT_COMPLETE","DIALOGS_NOTIFICATION","DIALOGS_NOTIFICATION_MSG","DIALOGS_CONFIRMATION","DIALOGS_CONFIRMATION_MSG","DIALOGS_OK","DIALOGS_YES","DIALOGS_NO","preferredLanguage","html5Mode","enabled","requireBase","run","toastr","$http","$state","$filter","$location","AuthenticationService","UserService","dialogs","$translate","$uibModal","lodash","$window","$timeout","KPostBoxService","$sce","UrlCall","iskpostCallChecked","vars","split","obj","i","length","Ok","pair","KpostDetails","path","flatten","menuList","flatMap","menu","SubMenuItems","endPoint","kpostEndPoint","UiPoint","use","replace","$on","event","toState","toParams","fromState","fromParams","previousState","name","isAuth","JSON","parse","localStorage","getItem","ActiveMenu","head","filter","MenuUrl","notify","size","preventDefault","dataURItoBlob","dataURI","binary","atob","array","charCodeAt","blob","Blob","Uint8Array","type","imageUploadkpost","FormData","append","fileUpload","formData","sender","receiver","callback","UploadFile","then","res","setTimeout","UserSendKpost","file","slice","checkPermission","actionName","MenuAction","ActionName","openSelectCompanyModal","modalInstance","open","ariaLabelledBy","ariaDescribedBy","backdrop","keyboard","result","selectedItem","openSelectProjectModal","IsVisible","go","GetKpost","vm","this","loggedUser","getLoggedUserDetails","ActionBy","UserId","GetKpostLogin","KpostDetail","KpostId","Password","showToaster","err","differenceInDays","startDate","endDate","msg","toastConfig","autoDismiss","positionClass","timeOut","extendedTimeOut","allowHtml","closeButton","tapToDismiss","progressBar","newestOnTop","maxOpened","preventDuplicates","preventOpenDuplicates","error","info","success","warning","factory","request","headers","token","MenuId","userId","items","props","out","isArray","keys","Object","forEach","item","itemMatches","prop","text","toLowerCase","toString","indexOf","baConfigProvider","colorHelper","$provide","decorator","uiViewScrollDecorator","$delegate","$anchorScroll","baUtil","uiViewElement","hasAttr","configProvider","conf","theme","blur","colors","default","basic","defaultText","border","borderDark","primary","colorScheme","danger","primaryLight","tint","infoLight","successLight","warningLight","dangerLight","primaryDark","shade","infoDark","successDark","warningDark","dangerDark","dashboard","blueStone","dashboardColors","surfieGreen","silverTree","gossip","white","changeTheme","merge","changeColors","$get","provider","mix","color1","color2","weight","d2h","d","h2d","h","parseInt","color1Part","substr","color2Part","resultPart","Math","floor","IMAGES_ROOT","constant","resWidthCollapseSidebar","resWidthHideSidebar","images","root","profile","amMap","amChart","color","themeRun","layoutPaths","preloader","baSidebarService","themeLayoutSettings","whatToWait","loadAmCharts","mobile","unshift","loadImg","all","$pageFinishedLoading","$baSidebarService","baConfig","isMobile","test","navigator","userAgent","mobileClass","blurClass","element","addClass","service","toastrLibConfig","toastrConfig","extend","closeHtml","containerId","target","animatedChange","link","scope","changeValue","val","html","newValue","attr","oldvalue","j","next","find","directive","autoExpand","restrict","$scope","elem","bind","$event","$","height","scrollHeight","autoFocus","$parse","attrs","model","$watch","value","focus","select","$apply","assign","includeWithScope","ele","ionSlider","template","min","max","prefix","maxPostfix","prettify","prettifySeparator","grid","gridMargin","postfix","step","hideMinMax","hideFromTo","from","to","disable","onChange","onFinish","values","timeout","$element","ionRangeSlider","prettify_enabled","prettify_separator","update","ngFileSelect","el","e","srcElement","files","getFile","myDirectory","on","scrollPosition","maxHeight","scrollTop","prevScrollTop","trackWidth","minWidth","width","prevTrackWidth","resize","zoomIn","delay","removeClass","baProgressModal","methods","progress","opened","setProgress","Error","getProgress","close","isDescendant","parent","child","node","parentNode","hexToRGB","hex","alpha","r","g","b","attrName","fileReader","onLoad","reader","deferred","resolve","onError","onProgress","$broadcast","total","loaded","getReader","FileReader","onload","onerror","onprogress","readAsDataURL","readAsDataUrl","src","img","Image","AmCharts","ready","stopableInterval","start","interval","calback","time","startInterval","cancel","AccountMasterCtrl","projectCreationService","HolidayMasterService","StateService","CountryService","CompanyService","AccountMasterService","Init","CompanyId","getSubCompByCompId","CompanyList","isLoading","getAllAccountMaster","AccountMaterlist","RemoveAccountMaster","Account","confirm","Act_MasterId","editAccountMaster","row","isEditing","isFormOpen","Balance","copy","selectedCompany","Currencytypelist","CurrencyTypeId","TransactionTypeList","TransactionTypeId","TxnType","SaveAccountMaster","logggedUser","ModifiedBy","IsSuccess","Message","CreatedBy","AddAccountMaster","Create","isTableOpen","resetForm","AccountForm","$setUntouched","rowCountOptions","noOfRows","currentPage","rembemberCurrentPage","num","isLogin","SelectedCompany","getAllCurrency","getAllTransaction","ApprovalOfCompletedWorkCtrl","loggedUserDtl","photos","desc","_Index","isActive","index","showPrev","showNext","showPhoto","AreaCtrl","AreaService","CityService","getAllArea","AreaList","getActiveCountry","CountryList","GetAllTaluk","AllTalukList","a","TalukId","TalukName","getStateListByCountryId","CountryId","GetStateByCountryId","StateList","area","selectedCountry","CountryName","selectedState","getCityListByStateId","StateId","GetCityByStateId","CityList","StateName","selectedCity","getTalukByCity","callBack","CityId","GetAllTalukByCity","TalukList","IsAdding","labelCreate","labelEdit","clear","areaForm","editArea","c","isAsyn","selectedTaluk","removeArea","AreaId","SaveArea","AreaName","IsActive","PinCode","Pincode","EditArea","AreaCode","AddArea","changeActiveArea","msg2","SaveTaluk","AddTaluk","RemoveTaluk","Id","AttendenceCtrl","AttendenceService","attendence","CountryForm","disabled","date","getDay","getDayClass","dayToCheck","Date","setHours","events","currentDay","ShowAttendenceDetailsReport","ExportPdfData","createElement","appendChild","style","URL","createObjectURL","Year","today","dt","inlineOptions","customClass","minDate","showWeeks","dateOptions","dateDisabled","maxDate","startingDay","toggleMin","open1","popup1","open2","popup2","open3","popup3","open4","popup4","setDate","year","month","day","formats","format","altInputFormats","tomorrow","getDate","afterTomorrow","status1","formatYear","minMode","WorkOrderDetailsCtrl","$uibModalInstance","DirectWorkOrderService","GetRfqDetails","WORfqList","ContractorRfqTermsandContList","RateDetials","TermsAndConditions","RfqIocaDetails","LocDtl","ContractorRfqIocaList","Total","grandTotal","UnitRate","Tax","totalQuantity","TotQty","totalRate","dismiss","CityCtrl","getAllCity","objCountry","city","editCity","removeCity","SaveCity","CityName","EditCity","AddCity","changeActiveCity","CompanyCtrl","OrganizationService","Base64","editLogo","isEditingLogo","photoChanged","CompanyLogo","imageIsLoaded","updateLogo","getAllCompany","objOwner","getAllOwnerShip","OwnershipTypeList","objBusiness","getAllBusiness","NatureOfBusinessList","objOrg","getAllOrganization","OrganizationList","company","selectedArea","getAreaListByCityId","GetAreaByCityId","logoUrl","companyForm","editCompany","ParentCompany","isNoParent","selectedParent","TypeId","selectedOwnershipType","BusinessId","selectedNatureOfBusiness","OrganizationLevelId","selectedOrganization","removeCompany","isUrlValid","userInput","match","SaveCompany","Website","getStateByCountryId","getCityByStateId","getAreaByCityId","EditCompany","stringify","AddCompany","changeActiveCompany","eml_add","ProjectTeamHomeCtrl","ProjectTeamService","MenuNameList","MenuName","StatusId","getProjectByCompany","getAllApproved","ProjectList","projteam","selectedProject","TeamList","getProjectTeam","GetAllDraft","GetAllWaitingForApproval","wtn","waitingList","resubmittedList","GetAllApproved","ProjectName","GetAllBackForCorrection","rNotes","Notes","RejectNote","fromDraft","fromBackforCorrection","selectRow","tempData","tempstatus","isChecked","PrvId","StatusName","teststring","tableStatus","tableIds","substring","selectItem","allRowSelected","selectAll","SendForApproval","SendApproval","Reject","project","Approve","ApproveProjectTeam","Resubmit","ResubmitProjectTeam","back","Editlist","ProjTeam","RemoveList","RemoveProjectTeam","ProjectTeamRejectionCtrl","OverheadList","SaveRejection","RejectNotes","RejectionNotes","RejectedBy","RejectedOn","objReject","AddRejectionNotes","ContractorPaymentCtrl","ContractorPaymentService","LoadProjectHolidayMaster","ProjectHolidayMasterService","getAllProjectHolidayMaster","ProjectHolidayMasterList","Contractor","ContractorForm","RemoveProjectHoliday","CountryCtrl","GetAllCountry_ByProc","country","editCountry","changeActiveCountry","inActive","NewremoveCountry","inputdata","CountryCode","CurrencyName","CurrencyCode","CurrencySymbol","Process","SaveDeleteCountryMaster","SaveCountryNew","icountryId","SaveCountry","EditCountry","AlphOnly","myValue","regex","RegExp","key","String","fromCharCode","charCode","which","NumberOnly","CountryCodeOnly","SplChrOnly","DashboardCtrl","BillingService","RfqContractorService","SupplierRateQuoteService","SupervisorTaskService","shuffle","o","x","random","TypeofContractList","ContractName","rfqTypeList","rfqTypeName","rfqTypeId","Code","TemplateRfqList","TemplatelistName","TempId","TypeofBillList","TypeofBillName","BillId","UserType","id","Role","RoleId","contractorId","RefId","getCountRfqContractor","UnQuotedCount","QuotedCount","QuotedDraft","CancelledCount","getBillDetails","SupplierId","GetRfqForSupplierList","Unquoted","DraftQuoted","submitted","cancelled","GetAllProjectForDashboard","selectedProjectFilter","getDashBoard","ischeck","resultData","clearDashboard","EmpId","Table","raBillCount","CompletedWork","PendingWork","TotalCost","ProjectTotalCost","toLocaleString","currency","minimumFractionDigits","maximumFractionDigits","piedata","ProjectCompletedCost","ProjectBalanceCost","TodayTask","TdypendingTask","TotalWork","YstrApproveTask","YstrDefectTask","YstrPendingTask","BarLine","label","Bardata","Barlabels","Barseries","parseFloat","toFixed","ProjectpendingCost","ProjectInprogressCost","ProjectSalesSatus","booked","balance","ProjectCashFlow","orderBy","map","monthName","MonthInName","months","INCASH","OUTCASH","GetBillDetails","DraftList","TypeOfContract","BillType","RfqScope","GetRABillDetails","RABillList","fromRFQ","viewRfqQuotation","viewQuotatioDraft","viewCancelRfq","viewDraftBill","viewRABill","task","count","ContractorRfqList","isSalesView","isProjectStatusView","isCashFlowView","datasetOverride","borderWidth","layoutColors","Options","elements","arc","legend","display","position","labels","fontColor","tooltips","callbacks","tooltipItem","datasetLabel","datasets","datasetIndex","formattedNumber","scales","yAxes","ticks","Intl","NumberFormat","pielabels","pieoptions","piechangeData","GetProjectSalesDetails","points","evt","GetSalesStatusDetails","GetCashFlowStatus","ViewWorkReport","SupplierUnQuote","SupplierMaterialList","SupplierDraftQuoted","SupplierSubmittedQuoted","SupplierCancelRfq","DashBoardDetails","TypeOfChart","getChartDetails","ProjectStatusList","ValueIn","TotalBillAmount","CompletedList","PendingList","InProgressList","BalanceList","StatusType","SalesStatusList","TotalSales","sumBy","bookedSales","balanceSales","Booked","CashFlowStatusList","isShowComplete","isShowInprogress","isShowPending","isShowBalance","GetLocationDetails","SubCategoryName","ShortDescription","SubCategoryId","Data","Back","LocationDtlsCtrl","GetSubCategoryCost","SubCategoryCostList","console","log","Arr","groupBy","UnitName","TotPowQty","TotRate","Loc_Dtls","LocationDtl","BasicLocation","Locations","Rate","MgrtdytaskCtrl","GetAllUserType","TypeList","SelectedType","GetAllUserTypeById","SelectedTypeById","UserList","MediaList","getWorkReportImages","PreviousDate","UserIds","join","ApprovalStaus","ActionOn","GetMgrTodayWork","UserName","SE","SS","PowList","LocationDtls","Arr1","Loc","Location","IOCA_Dtls","value1","key1","Unit","PowQty","ViewAttachement","ioca","FileName","SupervisorApprovalAttachmentCtrl","GetDefectWorkAttachments","PowId","AttachmentList","Files","Attachment","RemoveAttachment","RemovePowAttachment","splice","SupervisorTaskCtrl","WorkApprovalService","Prj","PrjName","GetWorkApprovalTask","getPowForApproval","projectId","GetTaskForApproval","PowApprovalList","k","Dim","DimJson","DimAct","DocList","isCheck","unit","forIn","DimValues","ActivityCount","TotCal","TotMax","TotMin","unit1","TotalAct","tempTot","IOCADocList","IOCA_Id","IOCA_DocList","IocId","LastTierId","Lt","ContractorId","CnrtId","EmployeeId","TaskDate","TskDate","GetAllTaskWorkApproval","Calculate","approve","ActualTotQty","ActualDimValues","IOCA_id","IocaId","saveTaskApprovalDtls","inprogress","saveTaskInProgressDtls","defect","ApprovalDetails","Note","ApprovalStatus","saveTaskDefectDtls","TodayDate","Defect","AttachmentMedia","selectedAll","SupervisorWorkApprovalAttachmentCtrl","FileUploader","uploader","filters","fn","options","queue","onAfterAddingFile","fileItem","_file","InsertWorkApprovalDtls","SaveAttachmentNote","ViewMgrTaskCtrl","viewPow","viewBOQ","isNxt","ViewWorkReportImageCtrl","NextPow","PrePow","WorkReportCtrl","GetWorkReportImages","DepartmentCtrl","DepartmentServices","getAllDepartments","DepartmentList","companyChanged","dept","UserCompanyId","Company","getDepOfParentCompanies","DepartmentActiveList","code","departmentForm","CheckDepartmentCode","deptId","companyId","DepartmentId","CheckCode","CheckCodeList","EditDepartment","ParentId","removeDepartment","SaveDepartment","AddDepartment","changeActiveDepartment","addEventListener","bindDumpButton","Handsontable","Dom","addEvent","nodeName","getAttribute","instance","hot","getData","myData","helper","createSpreadsheetData","container","getElementById","positions","colWidths","rowHeaders","colHeaders","fixedRowsTop","fixedColumnsLeft","setInterval","str","rowOffset","innerHTML","isEmpty","isUndefined","input","querySelector","setFocus","alert","onChangeHandler","$eval","customOnChange","require","ngModel","$setViewValue","$render","modelCtrl","$parsers","inputValue","transformedInput","attributes","Number","keyCode","otherModelValue","$validators","compareTo","modelValue","$validate","ngModelCtrl","clean","$compile","$log","ctrl","$set","maxlength","myMaxlength","capitalize","capitalized","charAt","toUpperCase","selected","isAllSelected","isSelected","$watchCollection","newVal","s","regexp","char","n","len","isNaN","offset","scrollOffset","scrollspy","scrollSpy","jQuery","click","compile","scrollInto","elementId","scrollTo","scrollIntoView","ngMin","$viewValue","minValidator","$setValidity","$formatters","ngMax","maxValidator","Infinity","negativeCheck","decimalCheck","$document","y","dragX","dragY","transclude","setup","inner","mousewheel","content","mousedown","mouseover","mouseout","touchstart","resizeEvent","resetEvent","restart","topOffset","getTopOffset","corner","top","scrollX","getScrollWidth","scrollY","getScrollHeight","speedX","getRatioX","speedY","getRatioY","originalEvent","delta","getWheelDelta","accelerate","shiftKey","metaKey","moveX","moveY","deltaY","deltaX","deltaMode","wheelDeltaY","wheelDelta","pageX","startX","pageY","startY","endDragX","dragging","off","endDragY","mousemove","one","mouseup","limitX","limitY","touch","getTouchEvent","touchmove","touchend","touches","distance","pos","left","css","yOffset","header","limit","maxX","maxY","actualWidth","viewHeight","actualHeight","children","w","getBarPositionX","viewWidth","barSize","xMax","ratio","getBarPositionY","yMax","viewLength","actualLength","accelerationTimer","accelerationDelay","speed","beginDragX","beginDragY","places","factor","Array","round","elm","$input","viewValue","reg","transformedValue","$modelValue","regexs","args","expanded","stConfig","table","throttleSearch","isString","trimSearch","trim","tableCtrl","search","xdStSearch","throttle","stDelay","stInputEvent","inputEvent","$observe","oldValue","tableState","TYPEAHEAD_REGEXP","itemName","source","viewMapper","modelMapper","optionParser","originalScope","parseModel","parsedResult","local","checked","getHeaderText","isMultiple","validModel","required","selectSingle","uncheckAll","setModelValue","selectMultiple","markChecked","equals","exp","multiple","$new","changeHandler","change","noop","valid","$destroy","popUpEl","ngRequired","isDefined","oldVal","checkAll","toggleSelect","clickHandler","elementMatchesAnyInArray","tagName","unbind","$digest","isVisible","hasClass","searchBox","elementArray","DesignationCtrl","DesignationService","getAllDesignation","DesignationList","getDepartmentListByCompanyId","desig","selectedDepartment","GetDepartmentByCompanyId","CompanyName","departmentSelectionChanged","getRepToDesig","DesignationActiveList","ParentName","desigForm","editDesignation","Superior","isNoSuperior","DesignationId","selectedSuperior","removeDesignation","SaveDesignation","EditDesignation","AddDesignation","changeActiveDesignation","EmployeeCtrl","EmployeeService","editProPic","isEditingProPic","empProfilePic","empId","updateProfilePic","getGraduationFiles","empGraduationDocs","loggedUserId","getAllEmployees","EmployeeList","getReportingToList","desigId","emp","selectedDesignation","getAllCompanyEmployees","ReportingtoList","isReporingToRequried","GetDesignationByDepartmentId","GetDesigByDepId","getAllEmpAcademicDetails","getAllEmpAcademyInfo","EmployeeAcademicList","getAllEmpExperienceDetails","getAllEmpExpInfo","EmployeeExperienceList","emp1","emp2","empCom","EmpAddress","empPer","profilePicUrl","isComAddSameAsPerAdd","selectedReportingTo","checkErr","errMessage","AddEmployeeExperience","Organization","Department","Designation","FromDate","ToDate","YearsofExperience","Remarks","addNewEmpExperience","RemoveEmployeeExp","expId","removeEmpExpInfo","AddEmployeeAcademic","empacademic","bool","Graduation","Degree","Specialization","University","Percentage","YearofPassing","YearsofPassing","addNewEmpAcademicInfo","RemoveEmployeeAcademic","removeEmpAcademyInfo","AcademyId","Years","getYear","Months","getMonth","totalmonths","totalexp","EmployeeForm","AddressForm","EditEmployee","DOJ","DOB","ProfilePhoto","Address1","PerAddress1","CommAddress1","Address2","PerAddress2","CommAddress2","Area","PerArea","CommArea","City","PerCity","CommCity","State","PerState","CommState","Country","PerCountry","CommCountry","PerPincode","CommPincode","EmailId","PerEmailId","CommEmailId","MobileNo","PerMobile","CommMobile","LandlineNo","PerLandline","CommLandline","EmpAcademy","EmpExperience","ReportingTo","RemoveEmployee","changeActiveEmployee","SaveEmployee","Gender","MaritalStatus","AddEmployee","getFullYear","minAge","EmployeeChartCtrl","EmployeeChartService","convertImage","chartView","imageView","html2canvas","onrendered","canvas","getEmployeesChart","chart","allowCollapse","visualization","OrgChart","addListener","selection","getSelection","collapsed","getCollapsedNodes","collapse","setSelection","GenerateKpostCodeCtrl","generateKpostCodeService","selectedEmployee","EmployeeCode","getDepartmentListByProject","GetDepartmentListByProject","getDesignationListByDepartment","GetDesignationListByDepartment","getEmployeeListByDesignation","GetEmployeeListByDesignation","getGenerateKpostCode","Ischeck","EmployeeIds","GetGenerateKpostCode","isCode","saveGenerateCode","kcode","KpostUcode","CodeDetails","SaveGenerateCode","savePostBoxCode","getPostBoxCodeList","selectedType","PostBoxCodeList","GenerateTypeList","GenerateTypeName","MapPostBoxCodeCtrl","getEmployeeListByCmp","selectedPostBoxCode","PostBoxcodeList","getMapPostBoxCodeList","getPostBoxcodeByEmp","saveMapPostBoxCode","PostBoxID","MapPostBoxCodeList","HolidayMasterCtrl","getAllCountry","LoadHolidayMaster","getAllHolidayMaster","HolidayMasterList","holiday","editHolidayMaster","HolidayDate","TypeCode","HolidayType","datecheck","dateObj","getUTCMonth","newdate","SaveHolidayMaster","HolidayId","Description","IsFixed","EditHoliday","temp","StateIds","AddHoliday","TypeName","clearState","checkDate","currentSelectionDate","RemoveHoliday","ProjectHolidayCtrl","uniqBy","WeekOffList","WeekOffId","WeekOffDay","HolidaysList","Holidays","WeekOff","selectedHoliday","selectedDays","editProjectHolidayMaster","toLocaleDateString","weekOff","SaveProjectHolidayMaster","objHoliday","objWeekOff","AddProjectHoliday","ListOfIOCACtrl","IocaService","listOfIocaService","ProjectIocaService","CategoryofCAService","LocationSetupService","FieldofConstructionService","SubCategoryofCAService","BillOfQuntityService","TypeOfCAService","getActiveFoc","focList","ReportList","ReportId","ReportCode","ReportName","SpecTypeList","SpecTypeName","getCategoryByCountryId","FieldofConstructionId","GetCategoryByCountryId","CategoryList","CategoryName","All","listofioca","selectedReport","getSubCategoryCAListByCategoryId","CategoryId","GetSubCategoryByCategory","SubCategoryList","getTypeOfCAListBySubcategoryId","GetTypeOfCABySubCategoryId","TypeOfCAList","selectedFOC","selectedCountryName","getCountryByProject","getAllProjectCountry","getAllLocationMaster","LocationMaster","getCategoryByProject","focId","FocId","isworkAlloc","getAllProjectCategory","AllCategoryList","getSubcategoryByCategory","getAllProjectSubcategory","getTypeofCABySubCategory","getAllProjectCategoryType","TypeofCAList","loadIocaList","CA_CategoryId","selectedCategory","CA_SubCategoryId","selectedSubCategory","TypeOfCAId","selectedTypeofCA","Spectype","selectedSpecType","getAllProjectIoca","IocaList","getDescriptionBySelectedIOCA","strArr","IocaParameters","Parameters","ParameterName","getSubCategoryListByCategoryId","CA_TypeName","GetIOCA","library","selectedTypeOfCA","CA_TypeId","SpecType","getAllIoca","ShowListofIOCAReport","TypeOfList","FirstName","GroupCompanyName","Wise","subMenu","IOCAId","SelectedIOCA","ShareListofIOCAReport","File","pdfUpload","listOfIOcaList","OrganizationCtrl","OrganizationActiveList","org","organizationForm","editOrganization","Parent","removeOrganization","SaveOrganization","EditOrganization","AddOrganization","changeActiveOrganization","overheadCtrl","overheadService","getAllOverhead","OverHead","OverHeadForm","editOverhead","Overhead","removeOverhead","OverHeadId","changeActiveOverhead","SaveOverHead","EditOverhead","AddOverhead","PlanningReportCtrl","planningReportService","TierSetupService","ItemToItemService","clearCompany","estimationreport","clearProject","selectedRequirement","selectedRequirementBased","selectedReportFor","selectedContractorCategory","selectedEmpName","selectedContName","selectedPeriod","ShowPlanningReport","strHr","mReportTask","headerstr","RequirementName","strHeading","selectedReportType","ReportTypeName","PeriodTypeName","DesignationName","ContractorName","RequirementBasedName","plan","From","To","EmployeeName","strHeading1","selectedIoca","arr","ProjectIocaId","IOCA","SubCategory","Category","CategoryIds","SubCategoryIds","TypeIds","ProgramFor","LocationId","selectedLocation","Tiers","selectedCASpecType","Heading","TypeofDescription","WiseID","ReportTypeId","ReportFor","ReportType","ReportTask","Heading1","getFocByPeriod","clearFoc","ReportForId","ContractorCategoryId","getBoQFoc","getBoQCountry","selectedfoc","clearCat","InputJson","getBoQCategory","clearSub","basedOnRequirementList","buildFilterString","getBoQSubCategory","clearType","getBoQType","clearIoca","Type","getBoQIOCA","workLocation","getLocationByProject","ProjectIOCATiersList","LocationList","clearLoc","getPlannedLocation","FilterCountry","filterTiers","IocaTier","selectedIocatireValue","CopyTierList","tempTier","getTierNo","TierNo","currentTierDtl","allTierData","t","Values","TierId","clearTierSelection","getTiersByLocation","tier","GetTiersForPlanningReport","tierList","Tier","FilterTireCopyTo","tierString","getReportType","TierName","TierType","GetWeeklyEndDate","numberOfDaysToAdd","GetQuarterly","numberOfMonthToAdd","setMonth","GetMonthEndDate","GetReportFor","prjId","basedOnReportForList","ContractorCateList","ContractorList","con","getReportMethod","getContCatgy","getEmpList","DesgId","getContList","CateId","ReportTypeList","clearReport","PeriodTypeList","RequirementList","ShareKpost","ClearDate","getCALoc","ProjectLevelPrivilegeCtrl","ProjectLevelPrivilegeService","typeOfPrivilegeChanged","privilegeTypeId","clearPrivilegeDtls","UserPrivilegeLocList","getFoc","privilege","UserPrivilegeIocaList","PrivilegeId","EffectiveFrom","clearfoc","clearCountry","clearCategory","clearSubcategory","getCompanyByOrglvl","selectedMenu","MenuList","getCompanyByOrgId","getDeptByCompany","getDesignationByDept","getEmpwithUserAc","GetEmpwithUserAc","getAllPrivilegeMenuByEmp","GetAllPrivilgedMenu","getAllProjectFoc","getAllPrivilegeMenu","getCountry","getCategoryByCountry","getSubCategoryByCategory","getTypeBySubcategory","value2","key2","getTiersFromIOCA","lastTierNo","last","ProjectLevelPrivilegeForm","getStdIocaPrivilege","getAllPrivilegeStd","UserPrivilegeIOCADtls","getPrjLocPrivilege","getPrjLocPrvlDtl","UserPrivilegeLocDtls","getPrjIocaPrivilege","getPrjIocaPrvlDtl","menuTypeP","ProcessPrivilege","getAllPrivilegeDtl","AddIocaDtls","typeList","iocaObject","Types","AddPrjIocaDts","removeIoca","TypeIdList","removeIocaDts","AddLocDtls","tempList","tierDtls","locObject","LocDtls","TierValue","except","AddPrjLocDts","concat","removeLoc","removeLocDts","savePrivilege","PrivilegeType","AddNewUserPrvilegeDtls","PrivilegeList","PrivilegeName","ProjectResourceAllocationCtrl","ProjectResourceAllocationService","SaveProjectAllocation","Resource","ResourceId","EditResourceAllocation","AddResourceAllocation","RemoveResource","removeResourceAllocation","ResourceAllocationForm","ResourceAllocationList","getEmployeeListByCompnayId","getAllResourceAllocation","Approved_POCtrl","Draft_POService","POTermsAndConditionService","getGetAllPOTemplate","GetAllPOTemplate","TemplateList","selectTemplate","PO_termsId","getProjectbyCompany","SelectProjectList","getDraftPO","GetDraftPO","Draft_POList","Row","Title","Template","AttachmentUrl","ViewPurchaseOrder","po","BackForCorrection_POCtrl","Draft_PO","PreparationofRfqMaterialService","getAllPaymentType","PaymentTypeList","PaymentTypeName","PaymentTypeId","getAllCompanyByRfqMaterial","GetAllCompanyByRfqMaterial","CompanyMaterialList","getProjectByRfqMateraial","GetAllProjectByRfqMaterial","ProjectMaterialList","selectedSupplier","Quotation","SelectedIOM","selectTitle","GetSupplierForPO","SupplierPOList","GetQuotationNoForPO","QuotationNoList","getIOMbyrfq","GetIOMForPO","RfqId","IOMForPOList","GetListOfPendingMaterial","SelectPendingMaterialList","PendingMaterialList","IOM_Id","isView","PurchaseOrderId","tempQty","BalanceQty","isAdd","TempTotal","ViewPurchaseHistory","ViewSelectLocation","SelectedItem","InitialBalanceQty","SelectedLocation","isSelectAllOrderQty","TotalOrderQty","PurchaseQty","InitialBalance","InitialDiscount","DisCount","InitialUnitRate","InitialCGST","CGST","InitialSGST","SGST","InitialIGST","IGST","SelectedQty","DiscountInRupees","TaxValue","CGSTValue","SGSTValue","IGSTValue","TotalValue","AddToPurchase","isSelectedrow","f","isSelectAll","RemoveSelectPendingMaterial","SavePO","note","NoOfDays","credit","PaymentType","selectedPayment","PurchaseOrderDetails","RemovePurchaseOrder","DeletePurchaseOrder","check","PO_Status","PurchaseOrderNo","PO_Title","AttachementUrl","locations","SupplierName","QuotationNo","OrderedQty","SendforApproval","noOfRowstable1","rembemberCurrentPage1","PendingForApproval_POCtrl","POStatusCtrl","SaveNote","Approved","PurchaseHistoryCtrl","GetPOHistory","HistoryList","RFQQty","viewPicture","SaveHistory","SelectLocationCtrl","GetOrderQty","OldIOCAList","isQtySelectedrow","MaterialQty","AddtoPurchase","IndentId","ProjectStatusCtrl","ProjectStatusService","TypeofWorkList","TypeofWorkName","getAllConsolidateProjectStatus","ProjectCost","BalanceWork","temp1","Circle","Taluk","Divison","SubDivison","ConsolidateList","expandAll","RFQGenerateTemplateCtrl","RFQTemplateService","RFQRequiredTemplateService","RFQContentTemplateService","RFQService","GetProject","getCopyRfqType","getAllRFQTemplate","getCopyAllTemplate","getCopyTypeBill","getCopyCountry","getCopyActiveFoc","getRFQByProject","getRfqByProject","RfQMasterList","GetAllRfqGenerateTemplate","AllTemplateList","CopyrfqTypeList","rfqTemplate","selectedTemplate","selectedTypeofbill","CopyCategoryList","CopySubCategoryList","selectedRFQTemplate","CopyTemplateList","CopyTypeofBillist","CopyfocList","CopyCountryList","Templatefiles","SaveRFQTemplate","ReqArr","RequiredList","RequiredTemplateList","RequiredId","TemplateValue","selectedRFQ","RfqTempId","RfQTempId","DocumentPath","TemplateValues","ContentList","AddRFQGenerateTemplate","getCopyCategoryListByFoc","getCatgeoryListByFieldofCostructionId","FieldofConstructionName","getCopyTemplate","getcopySubCategoryListByCategory","isGridEdit","RfqTypeCode","selectedRFQType","RFQTemplateList","isAddTemplate","GetallContent","getAllContentTemplate","isEdit","AddTemplate","ExitTemplate","rowCountOptionsRequire","noOfRowsRequire","currentPageRequire","rembemberCurrentPageRequire","rowCountOptionsRequireContent","noOfRowsContent","currentPageContent","rembemberCurrentPageContent","isConEditing","isReqEdit","isContentEdit","getTemplate","TemplateId","RFQexistTemplatelist","ContentEntity","RequiredValue","getGenTemplate","GenId","GetGenerateTemplateByRfqGenId","RFQGenerateTemplate","selectedContractor","TitleName","UpdateRequireTemplate","RfqGenId","editContentTemplate","ContentTitle","ContentDescription","RfqConId","ModifyContentTemplate","UpdateContentTemplate","removeContentTemplate","removeGenContentTemplate","AddContentTemplate","editRFQGenerateTemplate","CancelContentTemplate","RFQTemplateCtrl","getAllTemplate","rfqTypeCode","TypeofBillist","GetRfqType","clearRfqType","clearTemplateFor","getTypeBill","clearBill","selectedTemplateName","selectedFOCName","getSubcategorylistbyCategoryId","selectedCategoryName","clearCopyCountry","clearCopyRfqType","clearCopyTemplateFor","clearCopyBill","clearCopyFoc","getCopyTypeofContract","clearCopyCategory","clearCopySubcategory","CopyTypeofContractList","TypeofContractId","selectedCopyTypeOfContract","selectedRFQTypeName","TypeofContract","selectedContract","selectedTypeofbillName","selectedSubCategoryName","RFQTemplate","AddRFQTemplate","getAllRequiredTemplate","AddRequiredTemplate","EditRequiredTemplate","ModifyRequiredTemplate","editRequiredTemplate","ContentId","RemoveRequiredTemplate","RemoveRFQTemplate","removeRfqTemplate","editRFQTemplate","RoleCtrl","RoleService","getAllRole","RoleList","role","roleForm","editRole","removeRole","SaveRole","EditRole","AddRole","changeActiveRole","StateCtrl","getAllState","stateForm","editState","changeActiveState","removeState","SaveState","EditState","CraetedBy","AddState","stateList","AmendmentWOService","GetAllApprovedWO","post","GetAllWorkOrderIocaDtls","GetAllPowForApprovedWOIOCA","InsertAmendmentWO","UpdateWOStatus","Token","$inject","responseType","sessionStorage","userName","selectedCompanyName","selectedCompanyId","login","username","password","authdata","encode","defaults","common","Authorization","response","setItem","changePswd","setLoggedUserDetails","userDetails","inject","keyStr","chr1","chr2","enc1","enc2","enc3","output","chr3","enc4","decode","base64test","exec","GetApprovedWorkApproval","get","getBillHistory","GetPenaltyBillHistory","GetApprovedWorkApprovalForMobilization","GetApprovedWorkApprovalForInteriam","GetPaymentForInterim","GetAdvanceAmount","woId","GetGenerateBill","GetGenerateRABill","BillIdentityNumber","GetGenerateRABillApproval","GetCategoryByWorkOrderIoca","fromPlanning","workStatus","GetSubCategoryByWorkOrderIoca","GetTypeByWorkOrderIoca","GetIocaByWorkOderIoca","GetLocationByWorkOrderIoca","GetTierDtlsByWorkOrderIoca","GetPowForApproval","GetTransactionList","saveBillApprovalDtls","savePenaltyDtls","SaveAdvanceAmount","SaveInterimAmount","SaveVocher","SaveInterimPayment","SaveDraftBill","SaveRABill","SaveApproveRABill","SaveContractorBillPayment","SaveContVocher","PrintVocher","PrintPaymentVocher","ShowDraftBillReport","ShowRABillReport","ShowWorkOrderReport","ShowStatementReport","GetContractorByCategory","GetWorkOrder","GetAllBill","workOrderId","GetAllRABill","GetBankDetails","boqPowQty","GetAllDrafts","checkWO","GetAllResubmitted","GetAllBlock","GetAllbackFromCorrection","GetAllBack","getAllBOQApproved","objDTO","Block","removeBOQ","UpdateBillOfQuantity","boq","put","ShowReport","getAllFilterBOQApproved","LabourCostEstimation","GetAllBlockandBack","BoqSequenceService","getSequenceForTiers","GetAllBoqTierSequence","CreateSequenceTiers","CreateSequenceBoq","UpdateIOCASequence","UpdateTiersSequence","RemoveIOCASequence","RemoveTiersSequence","getSequenceForIOCA","GetAllBoqIOCASequence","budgetReportService","objGetEmpDTO","getActiveCompany","delete","ConsumableCatagoryService","getAllConsumableCatagory","objconsumable","getActiveConsumableCatagory","AddConsumableCatagory","consumable","EditConsumableCatagory","removeConsumableCategory","getConsumableCatagoryById","changeActiveConsumableCatagory","ShowConsumableCategoryReport","ContractorRegService","getContractorByContractorId","checkContractorCode","contractorCode","getIOMHById","getAllDraftContractor","getAllPendingForApprovalContractor","getAllBlockContractor","getAllApprovalContractor","sendForApproval","ReSubmit","getAllContractorType","AddContractor","UpdateGSTFile","UpdateLicenceRegNoFile","UpdatePFRegNoFile","UpdateEsiFile","UpdateAffidavitFile","UpdateTradeLicenceFile","UpdatePartnershipFile","UpdateMemorandumFile","UpdateArticleFile","UpdateCertificateFile","UpdateAggrementFile","UpdateBalanceFile","UpdateCanceledCheckFile","UpdateContractor","removeContractor","changeActiveContractor","CRM_projectInitiationService","updateProjectImage","GetAllKPMESProjects","GetAllProjects","ApprovedProjects","AddProjects","configNew","EditProjects","AllPropertyProjectsRead","DeleteProjectid","getActiveDepartments","getCompanyById","getDepartmentById","depId","DrawingSubService","AddDrawingSub","DrawingSub","editDrawingSub","removeDrawingSub","getAllDrawingSub","changeActiveDrawingSub","GetDrawingSubByDrawingId","DrawingTitleService","AddDrawingTitle","DrawingTitle","editDrawingTitle","removeDrawingTitle","getAllDrawingTitle","getAllDrawingTitleForUpload","GetMapDrawingType","GetMapDrawingSubject","GetMapDrawingTitle","changeActiveDrawingTitle","DrawingTypeService","AddDrawingType","DrawingType","editDrawingType","removeDrawingType","getAllDrawingTypes","changeActiveDrawingType","DrawingUpoadService","AddDrawingUpload","UpdateDrawingDoc","editDrawingUpload","drawing","removeDrawingUpload","removeRevisionDrawing","DrawingDocId","RevisionNo","GetAllDrawingRevision","getDrawingUploadByProjectId","changeActiveDrawingUpload","GetAllDrawingDrafts","GetAllDrawingWaitingForApproval","GetAllDrawingRevisionWaitingForApproval","GetAllDrawingbackFromCorrection","GetAllDrawingRevisionbackFromCorrection","getAllDrawingApproved","getAllDrawingbyDocId","docId","getAllProjectdrawingBackForCorrection","getAllRevisiondrawingBackForCorrection","getAllRevisionDrawingUpload","AddDrawingRejectionNotes","AddRevisionNotes","AddRevisionDrawingRejectionNotes","DrawingSendApproval","DrawingRevisionSendApproval","ApprovedDrawingProject","RevisedApprovedDrawingProject","RevisedDrawingProject","ReSubmittedDrawingProject","RevisionReSubmittedDrawingProject","BlockedDrawingProject","GetAllEmployeesByCompanyId","getAllEmployeesforTeam","employee","UploadFiles","Content-Type","endpoint","estimationReportaService","insertManyProjectIoca","iocaList","removeProjectIocaById","iocaId","category","ShowBudgetReport","ShowCostVariationReport","ShowAllPrjCostReport","GeneralSequenceService","AddGeneralSequence","UpdateGeneralSequence","RemoveGeneralSequence","getAllGeneralSequence","IndentService","getCategoryofCA","getSubCategoryofCA","getTypeofCA","getIoca","getDraft","getCount","remove","block","resubmit","getConsumableIndentByStatus","getMachineryIndentByStatus","getIndentByStatus","Approval","CreateIndent","UpdateIndent","getMaterialItems","getMachineryItems","getConsumableItems","getLocation","getTier","DeleteIndentDetails","GetIndentDtlsForUpdate","GetBoqItemandLoc","getAllBoQItem","boqItem","getAllCopyBoQ","getAllTiersByBoQ","getAllBilledTiersByBoQ","CheckLocation","getBoQLoctoLoc","CopyBoQLocationToLocation","getGetWrkApvdTier","shareFile","kpost","confignew","getContactByKpostId","getGroupExistingContact","ReadKPostGroup_Consolidated_Contacts","getContactsByKpostId","GetKpostEmployees","SaveKpostBoxId","AllocateIdtoEmployee","UpdateKpostBoxId","GetAllKpostBoxId","GetAllKpostBoxIdForAllocate","GetAllEmployeeAllocation","GetAllEmployee","removeAllocatedEmployee","removeKpostBoxId","CreateKpostId","Add_to_Contact_Kpost","AWS","accessKeyId","secretAccessKey","region","signatureVersion","bucket","S3","Bucket","maxRetries","httpOptions","Progress","Key","ContentType","Body","partSize","queueSize","ACL","upload","AddGroupMember_Kpost","UpdateGroupMember_Cms","Add_to_Contact_Cms","Remove_to_Contact_Kpost","Remove_to_Contact_Cms","RemoveGroupMember_Kpost","UpdateGroupMember_Kpost","RemoveGroupMember_Cms","SaveKPostGroup","GetAllGroupCount","OrgLvlId","GetAllEmployeeRole","Access-Control-Allow-Origin","LabourCategoryService","getAllLabourCategorys","objlabour","getActiveLabourCategory","AddLabourCategory","labour","EditLabourCategory","removeLabourCategory","changeActiveLabourCategory","ShowLaborCatgeoryReport","LabourTypeService","getLabourTypeByLabourCategoryId","getAllLabourTypes","getActiveLabourType","AddLabourType","EditLabourType","removeLabourType","getLabourTypeById","changeActiveLabourType","ShowLabourReport","getAllListofIOCA","AddListofIOCA","EditListofIOCA","removeListofIOCA","getLocationByBoQIoca","getAllLocationSetup","getAllLocationSetupById","AddLocationSetup","EditLocationSetup","removeLocationSetup","getAllBilledLocationMaster","getLocationByPrivilege","FromBoq","powStatus","isWorkAlloc","getWrkApvdLocation","IOCAMappingService","AddIOCADrawingMapping","objMapdrawing","editIOCADrawingMapping","removeIOCADrawingMapping","getAllIOCADrawingMapping","getAllIOCADrawingType","GetDrawingTypeByLocations","GetDrawingTitleBySubjectDrawingId","GetTierDrawingByBoqIoca","objOrganization","getOverheadById","GetActiveOverheadById","ShowPlanningTaskReport","ShowDPRReport","ShowAppraisalReport","getLoadBudgetForList","getPlanType","getselectedPeriodType","getselectedviewType","PriliminaryEstimatesService","getPriliItem","SavePrilimary","getPriliminaryEstimatesByProject","FreezePriliminaryEstimates","getAllPriliminaryEstimates","showReport","getAllPriliminaryBudgetByProject","ProjectConstantService","AddLabourProjectConstant","AddMaterialProjectConstant","AddMachineryProjectConstant","AddConsumableProjectConstant","getAllMaterialAttributes","objMaterialAttribute","getAllConstant","getLabourTypeByLabrCategoryId","getAllIOCAProjectConstant","GetLabourProjectConstant","GetMaterialProjectConstant","GetMachineryProjectConstant","GetConsumableProjectConstant","AddProjectConstant","categoryofCA","UpdateProjectConstant","DeleteProjectConstant","AddProjectDetails","getProjectforTeam","getRole","UpdateProjectDetails","UploadDrawing","GetAllProjectCategory","objGetDTO","GetAllCurrency","GetUnitByUOM","GetProjectTypeByCategory","getAllApprovedProject","isWrkAlloc","getAllBackForCorrection","RemoveDrawing","objDeleteDTO","removeProject","ApprovedProject","ReSubmittedProject","BlockedProject","checkProjectName","checkProjectCode","projectInitiationService","objGetDraft","GetProjectIocaFilterByBoQ","inputObj","FromIocaId","GetTypeofCAByProjectForSelectIOCA","getAllForExport","objTier","InsertBillOfQuantity","ImportBoq","getDesignationListByCompanyId","ProjectSchedulingService","getFinalPlanning","getAllTaskByProject","getBOQForSchedule","revisedFinalisedPlanning","getFinalisedBOQForSchedule","getAllProjectSchedule","GetAllProjectPlanningByPrjSchList","GetLocationForFinalPlanning","GetTiersForFinalPlanning","GetCategoryForFinalPlanning","GetSubCategoryForFinalPlanning","GetTypeForFinalPlanning","GetIocaForFinalPlanning","UpdatePlanSequence","UpdatePlanFreeze","UpdateRePlanFreeze","ResetScheduleIOCA","GetIOCAForRelease","GetFinalScheduledProject","GetTempSchedule","GetAllFinalizedSchedule","revison","RType","GetAllScheduling","GetAllManualScheduling","GetAllReScheduling","GetAllFinalizedPlan","GetAllFinalizedRePlan","GetAllProjectPlanning","GetAllPOWPlanning","GetAllFinalisedPOWPlanning","AddProjectPlanning","AddFinalisedPlanning","AddFinalisedManualPlanning","getFinalisedBOQForReSchedule","getRevScheduleNo","getFinalizedPow","GetAllProjectManualReSchedule","GetTempScheduleForManualReSchedule","GetFinalisedBOQForManualReSchedule","UpdateManualPlanSequence","UpdateManualPlanFreeze","CreateFinalisedProjectManualRePlanning","GetAllRevisonByPlanId","PlanId","FreezeManualSchedule","ProjectScheduleId","getAllPowByPlanId","InsertDraftPlanning","GetDate","ProjectSequenceService","AddProjectSequence","UpdateProjectSequence","RemoveProjectSequence","getAllProjectSequence","SaveUpdateDelete","ProTeam","GetEmpByProject","BlockProjectTeam","projectToProjectService","getTypeofLocation","getLocationTiers","getFocDetails","getCategoryDetails","getSubCategoryDetails","getTypeofCADetails","getIocaDetails","getTo_ProjectDetails","getTo_TypeofLocation","getTo_LocationTiers","checkCopyProject","LoadData","SaveCopyBoQ","RateAnalysisService","ShowRateReport","getScopeBasedContractorName","getContractorBasedWorkOrderNo","RateofInputService","AddLabourRate","AddMaterialRate","AddMachineryRate","AddConsumableRate","AddIocaRate","getAllRate","GetLabourRate","GetMaterialRate","GetMachineryRate","GetConsumableRate","GetIocaRate","AddRate","UpdateRate","DeleteRate","getLabourCategory","getLabourType","getMaterialLOB","getMaterialCountry","getMaterialCategory","getMaterialSubCategory","getMaterialType","getMaterialIOM","getMachineryLOB","getMachineryCountry","getMachineryCategory","getMachinerySubCategory","getMachineryType","getMachineryIOM","getConsumableCategory","getConsumableType","RequirementReportService","ShowRequirementReport","requmtObj","ShowRequirementMaterialDetailsReport","AddRFQDetails","updateRfq","DeleteRfq","addContractor","addIoca","getViewRfq","blockRfq","rejectRfq","ApproveRfq","rfqId","resubmitRfq","getAllRfq","GetContractorByRfq","AddRFQMaster","AddRFQPrice","CreateWorkOrder","UpdateWorkorderStatus","UpdateWorkorderPayment","UpdateLetterofIntentStatus","GetAllRFQMaster","GetAllWorkOrder","GetAllApprovedWorkOrder","GetAllStatus","GetRFQContractByContractor","GetAllRFQForLetterofIntent","GetRFQForWorkOrder","GetAllLetterOfIntent","AddRFQContract","RFQApproval","ShowRFQCompareReport","getcontentforRFQ","addContractorRateAndDtl","contId","getRfqByContractor","getAllFinalised","ContId","submitContRfq","getContRfqIocaDtls","getAllApprovedRfq","getRfqQuotationDetails","modifyRfqComparisionDtls","saveRfqComparisionAsDraft","sendComparisionForApproval","rejectComparision","resubmitComparision","approveComparision","blockComparision","getDraftRfqComparision","getWaitingForApprovalRfqComparision","getBackForCorrectionRfqComparision","getApprovedRfqComparision","getBlockedRfqComparision","updateAttachment","updateSign","showContractorRfqReport","RFQTempId","getConfig","getRoleMenuMapping","roleId","saveRoleMenuMapping","GetActiveRole","StockRegistrationService","getStockRegIOM","getStockRegmCat","getStockRegmSubCat","getStockRegmType","getStockRegIOMByTypeId","getStockDetailsByIOMId","getInitStockRegIOM","getInitStockRegmCat","getInitStockRegmSubCat","getInitStockRegmType","getInitStockRegIOMByTypeId","getSaveInitialStock","getStockStatement","getTierByBoQIoca","getAllTierSetup","GetTierByPrivilege","AddTierSetup","updateTierSetup","removeTierSetup","TypeOfConsumableServices","getAllTypeOfConsumable","getTypeOfConsumableById","AddTypeOfConsumable","typeofConsumable","EditTypeOfConsumable","removeConsumableType","GetTypeOfCAByCategoryId","GetActiveConsumableTypeById","changeActiveConsumableType","ShowConsumbaleTypeReport","getTypeOfConsumableId","UnitOfMeasurementService","getAllUnits","getAllNonStdUnits","getActiveUnits","GetAllStdUOM","AddUnitconversion","EditUnitconversion","removeUnitconversion","changeActiveUnitconversion","getAllUnitByUnitType","ShowNonStdUnitReport","UomParametersService","getAllUomParameters","EditUOMParameters","UomParameters","AddUOMParameters","RemoveUOMParameters","getUOmParametersById","UOM_ParametersId","getUOMParameterByUOmId","UOM_Id","ShowUnitReport","getUserById","getAllApprovedContractor","getAllUsers","getUsersByCompanyId","compId","getUserCompanies","getUserMenuMapping","saveUserMenuMapping","UpdateSelectedCompany","userDtlObj","UpdateUser","user","createUser","createUserContractor","CreateSupplier","removeUser","CheckUserAccount","checkUserEmail","email","checkUsername","Username","KpostLogin","CmsKpostEndPoint","WorkAllocationService","removeIOCAWorkallocation","removeLocationWorkallocation","SaveWorkAllocation","SaveIOCAWorkAllocation","SaveLocationWorkAllocation","getCAItemsForWorkAllocation","RemoveWorkAllocation","GetWorkAllocationByEmp","getIOCAWorkAllocation","getLocationWorkAllocation","GetAllWorkAllocation","getTiersByMappingIOCA","getFileFromPath","GetCategoryForPrjContractor","GetContractorByWorkOrder","GetApprovedWorkOrderByCont","GetApprovedWorkOrderByContractor","GetApprovedWorkOrderByContForPenalty","GetPowForApprovalForPenalty","saveWorkApprovalDtls","GetPowDefectHistory","powId","GetIocaDoc","getAllProject","getAllCategory","getAllSubCategory","getAllType","getAllLocation","GetAllTiers","GetAllMediaList","WorkOrderService","AddWorkOrder","workOrder","UpdateWorkOrder","WorkOrderCancellationService","GetApprovedWorkOrder","GetWorkOrderByWoId","SaveWoCancel","workStatusReportService","ShowWorkApprovelReport","getWrkApvdFoc","getWrkApvdCategory","getWrkApvdSubCategory","getWrkApvdType","getWrkApvdIOCA","AppraisalReportCtrl","PeriodTypeNameId","clearioca","ShareReport","DprReportCtrl","rawTierListData","TaskReportCtrl","obj1","stremp","TenderMasterCtrl","tenderMasterService","getAllCategoryofCA","getAllTenderMaster","tenderMasterlist","RemoveTenderMaster","tender","TenderId","editTenderMaster","tendername","TenderName","SaveTenderMaster","TenderFile","AddtenderMaster","TenderForm","NonStdUnitCtrl","NonStdUnitList","unitconversion","Name","unitconversionForm","SaveUnitConversion","UOMParametersCtrl","uomParameterList","getAllStdUom","UOM_MasterList","getUnitListByUnitType","UnitType","clearUnits","UnitList","generate","NoOfInputs","parameters","clearTypeofDim","dimensionName","selectedUnits","Abbreviation","selectedUom","UOMParametersForm","editUOMParameters","UnitId","uomparameters","saveUomParameters","approvalAttachmentCtrl","WorkApprovalAttachementCtrl","WorkApprovalCtrl","RequirementId","ApproveForList","ApproveForName","ApproveForId","ContractorCateNameList","ContractorCateName","ContractorCateId","ContractorNameList","TypeWorkList","TypeWorkName","TypeWorkId","TierList","BlockList","BlockListName","BlockListId","TypeNameId","IOCAList","IOCAName","IOCANameId","PreparationofWOHomeCtrl","ApprovedContractor","workOrderWithOutRfq","WorkOrderReportCtrl","work","ContractorCategoryList","WorkOrderList","getCategoryForPrjContractor","getContractorByWorkOrder","getApprovedWorkOrderByCont","MoneyConv","TotalWorkOrderAmount","afterPoint","lastThree","otherNumbers","Amount","getBillByWorkOrder","WorkOrderId","BillList","BillAmount","wo","ApprovalFromList","ApprovalFrom","ApprovalId","BillTypeList","BillTypeName","BaseOnList","BillBased","BillBasedId","shareKpost","reportobj","reportFile","viewReport","backTop","baPanel","baPanelClass","baPanelTitle","titleTpl","baPanelBlur","baPanelBlurHelper","bodyBgSize","bodyBgLoad","getBodyBgImageSizes","recalculatePanelStyle","backgroundSize","backgroundPosition","positionX","positionY","$isMobile","removeEventListener","computedStyle","getComputedStyle","image","backgroundImage","elemW","documentElement","clientWidth","elemH","clientHeight","finalHeight","finalWidth","imgRatio","containerRatio","baPanelSelf","baSidebar","layoutSizes","jqWindow","_onWindowClick","$evt","$sidebarEventProcessed","isMenuCollapsed","canSidebarBeHidden","setMenuCollapsed","_onWindowResize","newMenuCollapsed","shouldMenuBeCollapsed","newMenuHeight","_calculateMenuHeight","menuHeight","childNodes","staticMenuItems","addStaticItem","apply","arguments","_factory","defineMenuItemStates","meta","level","stateRef","sort","innerWidth","getMenuItems","states","menuItems","isCollapsed","toggleMenuCollapsed","getAllStateRefsRecursive","_iterateSubItems","currentItem","subItem","BaSidebarCtrl","getSubMenus","defaultSidebarState","subMenuList","MenuIcon","MenuOrder","hoverItem","showHoverElem","hoverElemHeight","currentTarget","menuTopValue","hoverElemTop","getBoundingClientRect","baSidebarToggleMenu","baSidebarCollapseMenu","baSidebarTogglingItem","BaSidebarTogglingItemCtrl","$attrs","_isState","subItemsStateRefs","some","subItemState","menuItem","$$menuItem","$$expandSubmenu","warn","$$collapseSubmenu","$expand","$collapse","$toggle","current","baUiSrefTogglingSubmenu","slideDown","slideUp","baUiSrefToggler","baWizard","baWizardCtrl","calcProgress","tabNum","tabs","addTab","tab","setPrev","selectTab","submit","isAvailiable","tIndex","isFirstTab","isLastTab","nextTab","previousTab","baWizardStep","form","wizard","$setSubmitted","isComplete","$valid","prevTab","pTab","contentTop","activePageTitle","msgCenter","MsgCenterCtrl","users","0","1","2","3","notifications","messages","getMessage","trustAsHtml","pageTop","progressBarRound","animateBar","circle","setAttribute","PI","baProgressDialog","widgets","appImage","kameleonImg","profilePicture","ext","plainText","baSwitcher","switcherStyle","switcherValue","ApproveForBillingCtrl","ApprovedWorkApprovalList","getCategoryByWorkOrderIoca","ClearByWO","WorkOrderCategoryList","getSubCategoryByWorkOrderIoca","selectedWoCategory","ClearByCategory","CategoryIdList","WorkOrderSubCategoryList","getTypeByWorkOrderIoca","selectedWoSubCategory","ClearBySubCategory","SubCategoryIdList","WorkOrderTypeList","getIocaByWorkOderIoca","selectedWoType","ClearByType","WorkOrderIOCAList","getLocationByWorkOrderIoca","selectedWoIOCA","ClearByIOCA","IocaIdList","getTierDtlsByWorkOrderIoca","getTierFullName","selectedTireValue","maxTier","maxBy","tierIdArr","workOrderIocaList","tmpWorkLoc","TypeOfWorkLocation","tmpTierIdList","t1","t2","LastTiers","parentName","TierDetails","ClearByTier","TierIds","LastTierIdList","GrandTotal","SaveBillApproval","RateDetails","TotalAmount","Reset","isApproveList","isApprove","isViewApprovalWO","selectedTierValue","viewWO","Subjects","WorkOrderNo","TypeofWO","monthStartDay","monthEndDay","now","loc","unit2","ApproveRABillCtrl","isTile","viewBill","GenerateBill","SenderNotes","RABillApprovalNotes","TDS","Retention","Mobilization","isBillList","PaidAmt","PaidAmtForm","ConvertMoney","GrossValueUpToLastBill","GrossValueUpToLastBillForm","TotalValueForm","GrossValue","GrossValueForm","Penalty","PenaltyForm","NetAmount","NetAmountForm","RetentionForm","TaxableAmount","TaxableAmountForm","CGSTAmount","CGSTAmountForm","SGSTAmount","SGSTAmountForm","IGSTAmount","IGSTAmountForm","TaxAmount","TaxAmountForm","TotalBillAmountForm","TDSValue","TDSValueFrom","MobilizationAdv","MobilizationAdvForm","InteriamAdvance","InteriamAdvanceForm","OtherDeduction","OtherDeductionForm","TotalDeduction","TotalDeductionForm","FinalBillAmt","FinalBillAmtForm","RetentionPer","TDSValuePer","MobilizationPer","BillDate","isSave","LoadDraftList","submitBill","BillID","ContractorBillPaymentCtrl","PaymentmodeList","BillIdentityId","PayAmount","BalanceAmount","isViewBill","isViewVocher","view","checkAdvance","ContractorPaidAmt","TypeOfPayment","selectedPaymentmode","TranscationTypeId","TransactionTypeName","BankName","BranchName","AccountNo","ChequeNo","PaymentDetail","resultMsg","MessageCode","Vocher","ContVoucher","ContVoucherNo","VoucherNo","TypeofPayment","ContPaidAmt","AccDetail","Narration","RecieveDate","RecieverName","TransactionId","tempObj","ReceivedDetail","ContractorPaymentId","isPrintVocher","VoucherId","DraftBillCtrl","PenaltyTypeList","PenaltyId","PenaltyType","ClearByCategoryWO","GetReport","BillMode","selectedBillType","BillBasedOn","selectedBasedOn","p_BOQStatus","BillHistory","viewPenaltyAmt","PenaltyBill","TypeOFPenalty","viewRetentionAmt","isRetention","isCGSTAmount","isSGSTAmount","isIGSTAmount","isTDSValue","isMobilizationAdv","isInteriamAdvance","isOtherDeduction","isTotalDeduction","viewTDSAmt","viewMobAmt","viewInterimAmt","viewOtherDedAmt","viewTotDedAmt","ViewDraftBillCtrl","clearCompanySelect","clearProjectSelect","clearCASelect","clearContNameSelect","selectedWorkOrder","selectedDescriptionTypeName","clearWOSelect","clearReportBasedSelect","clearDescTypeSelect","ClearBasicType","BillTypeNameId","shareReport","BillNumber","Heading2","InterimAdvanceCtrl","InstalmentList","No","ContractorTypeName","MaxInteriam","MinInteriam","instalAmt","ScopeList","Scope","firstDay","lastDay","lf","interimAdvance","AdvanceBalance","NoOfInstallment","selectedInstalment","getInstalAmt","SaveInterimAdv","AdvanceAmount","ScopeType","selectedScope","AdvanceType","InterimPaymentCtrl","AdvanceAmountDetail","AdvAmtId","AdvAmt","interimBal","NoofInst","MobVocher","RABillCtrl","TDSValueForm","Interiam","viewPaidAmt","isPaidAmt","isGrossValue","isPenalty","isPaymentTillDate","viewGrossAmt","viewCGSTAmt","viewSGSTAmt","viewIGSTAmt","ViewRABillCtrl","getTiersByBoQ","tierObj","currentTier","Tier1","tiers","BillTypeId","ReportDescriptionTypeList","ReportDescriptionTypeName","ReportDescriptionTypeId","PeriodicDate","DescType","StatementOfBillCtrl","BalanceAmt","supOfBillCtrl","href","ApprovedCtrl","ApprovedList","viewProject","StatesId","BackForCorrectionCtrl","BloackandCorrectionList","EditProject","BillOfQuantityTableCtrl","getProjectByCompanyId","groups","group","getAllBoq","BOQList","PowStatus","IOCA_ShortDescription","draftCount","boqfilterList","EntryFrom","resubmitCount","blockedList","blockCount","approvedList","approvedCount","groupbyBoqList","fromBlocked","fromApproved","viewPointOfWork","BoqData","fromBlock","frombackforApproval","LoadFromCorrection","isCorrection","isDraft","billOfQuntityCtrl","stateId","Lastid","selectedIOCA","filterObj","loadPowByLocation","getCompany","checkrow","getFocByPrjId","getFocByPrivilege","getCategoryByPrivilege","GetSubCategoryByPrivilege","getTypeByPrivilege","getMaxTier","tierArr","getTiersByLocationId","TiersFilter","pow","Dimentions","LocationDetail","TierDetail","powCount","myTotal","ExportData","Filter","objData","TireId","IOCA_Code","IocaUnit","Unit_Id","ExportExcelData","download","revokeObjectURL","updateBillOfQuantity","PowName","calTotQty","p","selectedValue","showBtn","calTotQtyForGrid","ImportData","IsFile","selectedFile","checkAnyParameterEntered","saveBOQ","dimentions","objbOQ","check_wo_obj","RemoveBOQ","woResult","BoqEntryStatus","DimentionsBack","property","hasOwnProperty","fileChanged","BoQRejectionCtrl","modifiedBoQCtrl","properties","TierSetupList","ParentTierId","BoQStatus","boQInitiationCtrl","getDrafts","dim","selectedValues","costvariationReportCtrl","LoadBudgetForList","BudgetForList","ClearDWBudgetFor","PlanForList","ClearDWSelectFor","PeriodList","p_Code","ClearDWTypeofBudget","ShowCostVariReport","strheadertype","selectedReportViewBasedOn","ReportViewId","CostVariReport","selectedRateBasedOn","RateBasedonName","ReportTierType","selectedVariFor","selectedReportBasedOn","TierHeaderName","ClearDWProject","ClearDWReportType","ClearDWLocCA","CostVariationReportForm","ReportListName","ReportListId","VariTypeList","VariTypeName","ReportBasedOnList","ReportBasedOnName","ReportBasedOnId","RateBasedOnList","RateBasedonId","ReportViewBasedOnList","ReportViewName","IndentCtrl","IndentFor","indentFor","viewData","Indentview","indent","IndentNo","indentNo","RaisedOn","RaisedBy","NoteList","SentNotes","indentUpdate","indentBased","indentBasedList","filterButtons","IndentStatus","btnsToShow","canShow","btnName","indentFrom","indentBasedOn","LoadItemBasedOnIndent","getCategoryofMaterial","getCategoryofMachinery","getCategoryofConsumable","setPlanDate","Selectedmonth","clearCategoryOfCA","tempLoc","TypeofLoad","locationId","finalTier","indentPeriod","getSubcategoryofCA","clearSubcategoryCA","tempcat","clearTypeofCA","tempSubcat","subcategoryid","getioca","temptype","typeid","tempIoca","IocaIds","tempLocation","MultiLocationIds","getIOM","getIOMH","getTypeofConsumable","TierVal","clearMat_Category","Ioca_Id","CategoryMaterialList","getSubcategoryofMaterial","selectedMaterialCategory","clearMat_SubCategory","tempcatMat","MaterialCategoryId","SubCategoryMaterialList","getTypeofMaterial","selectedMaterialSubCategory","clearMat_Type","tempSubcatMat","MaterialSubCategoryId","TypeofMaterialList","selectedTypeOfMaterial","clearMat_Ioca","IOMList","tempTypeMat","locArr","MaterialTypeId","POwDtls","lasttier","powiocafilterlist","powlastTierfilterlist","PowDtls","IndentList","Type_Id","IndentFromId","indentForList","indentFromList","clearMach_Cat","CategoryMachinaryList","getSubcategoryofMachinary","clearMach_Sub","tempcatMach","selectedMachinaryCategory","COM_Id","SubCategoryMachinaryList","getTypeofMachinary","clearMach_Type","tempSubcatMach","selectedMachinarySubCategory","MachSubCategoryId","TypeofMachinaryList","clearIOMH","tempTypeMach","selectedTypeOfMachinary","MachTypeId","IOMHList","MachineryIndentList","clearConsume_Cat","CategoryConsumableList","TypeofConsumableList","tempCatConsume","selectedConsumableCategory","ConsumableCategoryId","ConsumableIndentList","tempCat","tempIOM","tempIOCA","tempIOMH","tempLastTier","tempPow","tempConsume","tempobj","IOMH_Id","ConsumableTypeId","iomString","iocaString","powString","iomhString","consumeString","selectIomItem","selectIocaItem","iom","selectPowItem","checkarr","checkarr1","selectIndentPowItem","checkIndentarr","checkarr2","selectIomAll","allMaterialRowSelected","allIocaRowSelected","selectIndentRow","tempIndentIOM","tempIndentIOCA","tempIndentConsume","tempIndentLastTier","tempIndentPow","tempIndentIOMH","tempIndentId","indentIdString","uniq","selectIndentIomItem","selectIndentIomAll","allMaterialIndentRowSelected","saveIndent","MaterialSubCategoryName","IndentTitle","IndentDtlJson","IndentPowDtlJson","LastTierIds","IOMH_Ids","PowIds","allMachineryRowSelected","CategoryOfWork","ConsumableType_Ids","allConsumableRowSelected","sendNote","IndentDtls","clearConsume_Type","tableShow","isAdding","PeriodName","clearDate","LoadCategory","IndentNoteCtrl","Save","SentBy","SentOn","IOM_Ids","Consumable_TypeIds","Consumable_Id","IndentTableCtrl","getDraftIndent","pendingTile","indentDetail","editIndent","viewIndent","LocationSetupCtrl","LocationSetupList","tierNameList","addNewTier","newItemNo","tierName","removeTier","editLocationSetup","tierValue","SaveLocationSetup","editTier","edit","tId","saveTier","PendingForApprovalCtrl","LoadFromDraft","waitingForApprovalList","pendingApprovalList","projectFinalisedManualSchedulingCtrl","finalPlanningList","SchedulingList","revisePlanning","isRevised","lastTierIdList","PrjPlanID","schedule","LoadPOWPlanning","PowPlanningList","PowProjectList","PowView","ProjectView","LocationView","IOCAView","TaskList","planId","GetCategoryByTier","filterTiersByParent","selectedtireValue","filteredTierList","selectedtierValue","getToTiers","_","selectedTierList","parentIdList","nextTier","v","getTypeBySubCategory","getIocaByType","isReleaseIOCA","ReSchedule","Schedule","dateCheck","BoQDetails","isReset","Isfirst","EarlyStart","popup","isFreezeSelection","isFreezeSelectionBtn","DurationDtls","Duration","ProjectHoliday","Holiday","isSequence","isFreeze","isSchedlue","sequence","Seq","isFreezeSequence","isFreezeSchedule","isRealease","checkRelation","IocaSeq","Relation","filterbyProject","selecteIOCA","PowLocationList","PowFilterLocList","filterbyLocation","PowIOCAList","PowFilterIOCAList","filterbyIOCA","PowTierList","PowFilterTierList","reset","Remove","isIOCASelection","ResetSchedule","ReleaseSequence","ReleaseIOCAList","isReleaseview","Sequence","isEditSequence","EditPlanning","FreezeSequence","ImportReturn","FreezeSchedule","editOrder","SequanceId","SequenceId","OrderOfSequence","SaveDraftPlanning","EarlyEnd","LateStart","LateEnd","Delay","MessgeCode","SaveProject","isData","isScheduled","TaskId","ReportTo","Predecesser","CriticalPath","Revison","ProjectPlanId","IsDateCheck","BacktoPlan","ReleaseIOCA","ReleaseList","EndDateCal","EarlyStartDate","EarlyEndDate","LateStartDate","LateEndDate","startDtOpt","endDtOpt","setMinEndDate","projectFinalisedManualReSchedulingCtrl","selectedPlan","getPlanByProject","PlanList","isPowCheck","isDataEmpty","isFreezeReSequence","isFreezeReSchedule","BalPowQty","TotalBalanceQty","ReportingToName","ProjectFinalisedReSchedulingCtrl","ReSchedulingList","StartDate","getTempSchedule","selectBoq","isSelectBoq","isCheckschedule","isFreezeDuration","setFullYear","projectFinalisedSchedulingCtrl","Loading","ProjectPlanningCtrl","init","selectedRev","RevisionList","Powdata","isPlanView","isPowPlanView","viewSchedule","Shortname","tasks","dependencies","number","currentId","WorkStatus","CmptPercent","percent","movable","sections","classes","tempTierName","getPlanningOption","tempmin","tempmax","sideMode","daily","maxWidth","scale","zoom","labelsEnabled","readOnly","groupDisplayMode","columns","treeTableColumns","columnsHeaders","model.name","columnsClasses","columnsFormatters","treeHeaderContent","columnsHeaderContents","fromDate","toDate","conflictChecker","rowContent","taskContent","getPowPlanningOption","Powoptions","completedWork","api","tree","collapseAll","GetPow","ShortDesName","PowTiers","cancelPowView","ProjectSchedulingCtrl","SNo","EndDate","TotalDuration","AdditionalHoliday","AdditionalDays","Revision","checkDt","AddDate","objAddHoliday","AdditionalHolidays","ViewFinalisedPlanningCtrl","ReportViews","RevisonId","ViewPowPlanningCtrl","PriliminaryEstimatesCtrl","AllPriliminaryList","CostInr","Cost","isSubmit","isSchedule","prl","PriliminaryList","getPriliminaryItem","TotDuration","PriliItemList","TypeIOCAList","tempTypeList","SelectedTypeofCA","ArrIOCA","getIOCA","Qty","RatePerUnit","CostInInr","ESD","EFD","LSD","LFD","TotalCostinInr","minBy","isSchLoading","isRelationCheck","isFirst","tempstr","getNum","getData1","getData2","rowCountOptions1","noOfRows1","currentPage1","rowCountOptions2","noOfRows2","currentPage2","rembemberCurrentPage2","buttonDisp","sortableOptions","getCost","addRow","removeRow","getFreezeSequence","SeqId","tempIOCAList","CurrentSeq","DesSeq","PreparedBy","TaskReport","editPriliminary","PriliminaryForm","Cancel","isShow","isCurrency","isCurrencySystem","isLoading1","MonthList","Month","getPriliminaryBudgetByProject","IOCABudgetList","IOCACostList","minPeriod","Period","maxPeriod","HeadingList","tempHeading","o1","TotCost","TotCostinCur","TotCostinCurrency","TotCostInDol","TotalBUdgetCost","TotalBudgetCostinInr","projectConstantCtrl","LobMaterialService","MaterialCategoryService","MaterialSubCategoryService","MaterialTypeService","AttributeService","ConstantService","ItemOfMaterialService","LobMachineryService","MachinerySubCategoryService","IOMachineryService","MachineryTypeService","IOCAProjectConstantsList","LabourProjectConstants","MaterialProjectConstants","MachineryProjectConstants","ConsumableProjectConstants","IOCAConstantsList","LabourConstants","MaterialConstants","MachineryConstants","ConsumableConstants","getAllProjectConstants","ConstantList","History","getAllConstants","getAllApprovalIOCAConstant","getAllRetriveConstantFromLibrary","material","selectedMaterialType","MaterialConstantValue","getAllIOM","LoadLob","getActiveLobMachinery","LobMachineryList","getMachinerySubCategoryListByMachnieryCategoryId","CategoryOfMachineryId","machinery","selectedmachinery","machinerySubCategoryList","MachineryTypeList","selectedMachineryItem","selectedMachineryUOM","UOMList","machineryConstantValue","selectedTypeOfMachinery","selectsubCategory","selectedMachineryType","getMachineryTypeListByMachinerySubcategoryId","GetMachTypeBySubCategory","getUOM","UomList","getLabourProjectConstant","getMaterialProjectConstant","getMachineryProjectConstant","getConsumableProjectConstant","viewTab","IsAdd","draft","correction","isBackCheck","AddConstant","LabourCategoryList","selectedLabourCategory","LabourCategory","LabrCategoryId","LabourTypeList","selectedLabourType","LabourContantValue","TypeOfAttributeList","TypeOfAttributeName","getActiveLobMaterial","LobMaterialList","selectedLobMaterial","LobMaterial","CategoryofMaterialList","MaterialSubCategoryList","MaterialTypeList","objGetCategory","LOB_MatId","getAllMaterialCategoryByLob","selectCategory","selectSubCategory","selectType","getMatSubcategoryByCategoryId","GetMaterialSubCategoryByMaterialCategoryId","getMatTypeBySubCategoryId","GetMaterialTypeByMaterialSubCategoryId","Lob","machinerysubcategory","IOMachinery","selectedMachinerySubCategoryName","selectedMachineryCategoryName","selectedLOB_MachName","selectedMachineryCategory","machinerycategoryList","LOB_MachId","getCategoryByLOB","LobItemMachinery","getAllIOMachinery","ConsumableCategoryList","ConsumableCategory","selectedConTypeOfCA","TypeOfCAByCategoryList","ConsumableConstantValue","TypeOfCAName","CancelLabor","clearLaborFR","CancelMaterial","clearMaterialFR","cancelMachinery","clearMachineryFR","CancelConsumable","clearConsumableFR","UOM","NewEntry","Updataion","typeofCAForm","editIoca","SaveIoca","getSubCategoryByCategoryId","TypeOfCaId","selectedTypeOfCa","EditIoca","AddIoca","SaveLabourProjectConstant","LabrTypeId","ConstantValue","SaveMaterialProjectConstant","SaveMachineryProjectConstant","SaveConsumableProjectConstant","ConsumeTypeId","updateProjectConstant","ConstantId","ConstantFor","RemoveProjectConstant","updateConstant","UpdateConstant","getLabourConstant","getMaterialConstant","getMachineryConstant","getConsumableConstant","RemoveConstant","DeleteConstant","ProjectCreationCtrl","$stateParams","LoadCountry","LoadCurrencyMaster","CurrencyList","LoadProjectCategory","ProjectCategoryList","LoadOverHead","LoadUnits","objOverhead","OverHeadList","UnitsSTD","UnitsType","ModifyProject","CheckProjectName","objProject","CheckProjectCode","ProjectCode","ProjectCategoryId","selectedProjectCategoryName","overHeadList","ProjectDocuments","selectedFileList","projectdtls","ProjectDetails","unitList","UnitDetails","GetprojectType","ProjectTypeList","ProjectTypeId","selectedProjectTypeName","loadPrjDtlReq","Amenities","ProjectDetailList","BasicDetails","Label","ParkingList","parkingDetails","selectedunitTypeName","getUnitNameByunitstd","selectedunitName","RejectionList","Profit","CurrecyId","selectedCurrency","reqDtls","isFormEditing","isFormViewing","over","selectedPrjType","RequiredDetails","reqFiles","RequiredFiles","unitsList","tempAmenitieList","Amenites","tempParkingList","ParkingDetails","ReqFileList","getAllAreaByPinCode","AreaListByPinCode","objDto","SaveUnits","isExist","selectedUnit","objUnit","removeUnits","SaveOverhead","selectedoverHead","OverHeadName","percentage","removeOverHead","savePrjDoc","fileList","selectedFileType","viewFile","webkitURL","removeFileType","fileType","objDel","CheckDate","saveProjectDetails","prjDtl","basicDtl","unitDtl","amenityDtl","parkingDtl","overheadDtl","profit","rejectionNotes","CurrencyId","PlotNo","Address","Latitude","Longitude","TotalLandSize","BuiltUpArea","ProjectBrief","objUpdateProject","viewEdit","sendApproval","ReSubmitted","autocomplete","getPlace","geometry","lat","lng","checkInput","chck","message","checkInput1","message1","projectRejectionCtrl","projectInitiationCtrl","excel","alasql","RemoveProject","IOCARateCtrl","getIocaRate","IocaRateList","rate","IOCARate","findAndRemove","SaveIOCARate","CurrentRate","updateRate","RateId","RemoveRate","rateHistory","historyList","RateHistory","Rates","clearSpec","hideHistory","ratesofInputCtrl","IsViewTab","LoadLabourCategory","TableName","Inputs","arr2","arr1","LabourRateList","Labour","LabourTypeName","LoadMaterialLOB","selectedAttributes","MaterialRate","loadIOMList","MaterialRateList","LoadMachineryLob","LoadMachineryCountry","selectedLOB","selectedMachinerySubCategory","IOMHMachineryList","machineryRate","MachineryRateList","LoadConsumableCategory","ConsumableRate","ConsumableRateList","Consumable","getRates","getLabourRate","getMaterialRate","getMachineryRate","getConsumableRate","CancelMachinery","SaveLabourRate","LabourRate","SaveMaterialRate","SaveMachineryRate","UOMId","SaveConsumableRate","RateFor","getdate","series","onClick","yAxisID","ClearLaborFR","ClearMaterialFR","ClearMachineryFR","cancelIoca","ClearConsumableFR","SelectIocaCtrl","VariableService","ICANTypicalDescription","selectIocaFromOptions","option","TypeOfCA_List","subCategoryId","removeExistingIocaList","getProjectFor","SrcProjectList","selectedSrcProject","selectedSrcType","selectedSrcSpecType","selectedSrcCompany","selecteIocaOption","SrcTypeOfCA_List","getAllIocaForProject","getIocaFor","isAddingIoca","SelectedIocaList","clearFilter","isCombinationVerified","combinations","rawCombinations","isDoc","GetDescription","createViewModel","LongDescription","SearchTxt","IocaToAdd","checkCombinationExist","Properties","getSelectedCombination","constuctLongDescription","selectVariable","attribute","variable","VariableList","IsSelected","selectedVariable","VariableName","filterVariables","AttributeList","AttributeName","FilterIOCA","tempFilter","tempProperties","tempArr","rawAttrList","AttributeCode","tempVar","combination","getAllCombinations","Combinations","DescriptionList","contractorScope","LongDes","TypicalDes","Des","L","C1","C2","C3","C4","toggleActive","moveSelectedToIocaToAddList","pullAll","moveAllToIocaToAddList","moveSelectedToIocaLibrary","moveAllToIocaLibrary","saveSelectedIoca","iocaToSave","iocaUniqueKeys","IOCA_UniqueKeys","AddedBy","iocaFromSelectionChanged","isSelectIoca","editDescription","ProjectIOCAId","updatePRJICANDescription","TierSetupCtrl","getLocationByProjectId","isClearingTier","tierNoToCheck","saveNewTierValue","oldTierSelection","isAddingTier","isHideForm","parentTier","oldTier","updateTierValue","tierToUpdate","tierToRemove","cancelAdding","CA_CategoryCtrl","FilterCountryByCategory","distinctCountryList","FilterFocByCategory","distinctFocList","selectedFOCFilter","selectedCountryFilter","categoryofCAForm","editCategoryofCA","removeCategoryofCA","changeActiveCategoryofCA","SaveCategory","EditCategoryofCA","AddCategoryofCA","categoryofCAList","pageChanged","AttributeCtrl","selectedTypeOfAttribute","getAttributeListByTypeOfAttribute","getAllAttribute","Attribute","attributeForm","editAttribute","OldAttributeName","removeAttribute","SaveAttribute","NewAttributeName","EditAttribute","AddAttribute","myFunct","pasteOptions","clipboardData","pastedData","ConstantCtrl","l","allRowSelected1","allRowSelected2","allRowSelected3","allRowSelected4","cat","SubCategoryofCAList","ConstantIOCAList","GetSubCategoryByCategoryId","getAllDraftIOCAConstant","ClearLabourFIC","ConsumableUnitName","ClearMatFIC","CancelLabour","Con","CategoryofMachineryName","ClearConFIC","GetLabourConstant","GetMaterialConstant","GetMachineryConstant","GetConsumableConstant","SaveLabourConstant","AddLabourConstant","SaveMaterialConstant","AddMaterialConstant","SaveMachineryConstant","AddMachineryConstant","SaveConsumableConstant","AddConsumableConstant","constantRejectCtrl","ConstantApprovedCtrl","getApprovedIOCA","istile","isFormPending","FromDraftList","FormList","isPending","FrombackforApprovalList","BackPending","ConstantPendingForApprovalCtrl","getAllPendingIOCAConstant","Tile","TotalWaiting","TotalResubmit","isViewDetails","lab","mat","mach","Constant","ConstantBackForCorrectionCtrl","getAllBackandBlockIOCAConstant","CPWDIocaCtrl","loadGrid","getAllCpwdIoca","getUnitListByUOMId","Obj","UnitsParameterList","editIOCA","iocaToUpdate","shortDescription","ContractorScope","UnitStandard","UnitStd","selectedUnitAbbreviation","getNonStdUnits","NonStdUnitsList","getIOCADocById","removeIOCA","removeCpwdIoca","saveIoca","CPWDCode","updateCpwdIoca","saveIocaDoc","SaveCpwdIoca","AddDocAttachment","isExistCheck","DocType","DocName","DocNameStd","DocNameStdVid","DocNameQc","DocNameQcVideo","UploadDoc","DocUrl","removeIOCADoc","removeIocaDoc","selectedParameter","skip","AddIOCADoc","FieldofConstructionCtrl","getAllFieldofConstruction","foc","FOCForm","editFOC","changeActiveFOC","changeActiveFieldofConstruct","removeFOC","DeleteFoc","SaveFOC","EditFOC","AddFieldofConstruction","IocaCtrl","Same","updateIoca","rv","re","matched","ICANTypicalDescriptionCtrl","ican","createNonCombinations","SaveIcan","SaveDescription","reload","DeleteIcan","RemoveDescription","CASubCategoryCtrl","getAllSubCategoryofCA","SubcategoryList","FilterCategory","getFilterCategory","distinctCategoryList","FilteredSubcategoryList","subcategory","selectedCategoryFilter","subcategoryofCAForm","editSubCategoryofCA","removeSubCategoryofCA","changeActiveSubCategoryofCA","SaveSubCategory","EditSubCategoryofCA","AddSubCategoryofCA","subcategoryofCAList","VariableCtrl","GetAllCATypeCountry","GetAllType","deleteVariable","variableCombinationCollection","GetAllAttributesByTypeId","SaveTemp","isAddingVariable","AddVariable","removeVariable","AttributeText","VariableForm","removeCombination","Combination","SaveCombinations","AddCombination","ClearFields","Temp","saveAction","formdata","countFiles","isUpload","ExcelDownload","Details","ExcelFormat","ImportExcel","getExcelFile","typeOfDetails","fileDetails","FileLength","imgarr","namesplit","uploadAttributeFiles","uploading","ExcelImport","variableuploadFaild","attributeFaildList","iop","TypeOfCACtrl","getAllTypeOfCA","filterSubcategory","getFilterSubCategory","distinctSubCategoryList","FilteredTypeList","selectedSubCategoryFilter","editTypeOfCA","removeTypeOfCA","changeActiveTypeOfCA","SaveTypeOfCA","EditTypeOfCA","AddTypeOfCA","ProjectTeamCreationCtrl","getAssignCompany","selectedAssignEmployee","clearAssign","AssignCompanyList","selectedAssignCompany","getreportCompany","selectedReportEmployee","ReportCompanyList","selectedReportCompany","Repprojteam","RepDepartmentList","RepDesignationList","RepEmployeeList","getAllEmployee","AddTeamList","EmpName","AllEmployeeList","getAllReportEmployee","AllReportEmployeeList","selectedRole","getDepartmentListByReportompanyId","GetDesignationByRepDepartmentId","getEmpwithRepUserAc","additional","AddList","EmpID","EmpDepartment","DepartmentName","RoleName","EmpDesignation","RepDepartment","RepDesignation","RepName","Active","additional1","disableItem","Report","SaveList","objTeam","TeamDetails","ReportDepartmentId","ReportDesignationId","WorkAllocationCtrl","WorkAllocationList","selectLocItem","allLocRowSelected","selectedSubcategory","getEmployeeByProject","LocationWorkAllocationList","selectedTier","getCategoryForWorkAllocation","Input","IOCAWorkAllocationList","getWorkAllocation","allocationId","arrayOfObjAfter","isMapLoading","strTier","selectedMappingLocation","IOCA_Ids","selectedMappingIoca","MappingLocationList","getAllIOCAWorkAllocation","iocaobj","TierIdList","getAllLocationWorkAllocation","checkLocrow","checkIocarow","clearLocation","mappingIoca_Location","ConsumableCatagoryCtrl","ConsumableForm","editConsumableCategory","SaveConsumableCategory","TypeOfConsumableCtrl","FilterConsumableCategoryList","getConsumableTypeByCat","FilterTypeOfConsumableList","selectedNonStdUnit","FilterConsumableCategory","unitsStd","typesofConsumableForm","EditConsumableType","SaveConsumableType","TypeOfConsumableList","BlockandBackforCorrectionCtrl","getAllBlockContractorList","ContractorOfficeAddressDetails","StatutoryDetails","editContractor","contractor","viewContractor","ApprovalCtrl","ContractorpendingForApprovalCtrl","GridContractorRegCtrl","ContractorRegCtrl","categoryOfMachineryService","FirmList","ContractorTypeList","RoACountry","RoAState","RoACity","RoAArea","getHeadStateListByCountryId","HeadStateList","HeadCountry","HeadState","HeadCityList","HeadCity","getHeadCityListByStateId","HeadAreaList","HeadArea","getHeadAreaListByCityId","getComStateListByCountryId","ComStateList","ComState","ComCityList","ComCity","getComCityListByStateId","ComAreaList","ComArea","getComAreaListByCityId","getTypeofCAListByCategoryId","Cat","getTypeofMachListByCategoryofMach","GetTypeOfMachineryByCategory","MachTypeList","getIOMHListByType","selectedMahineryCategory","selectedMahineryType","contractorRegistrationForm","editcontractor","removecontractor","SaveContractor","subCategoryDetails","officeaddressDetails","AddressLine1","AddressLine2","communicationaddrs","ComAddressLine1","ComAddressLine2","ComCountry","contactDetails","LandLine","FaxNo","MobileNO","WebsiteUrl","WhatsAppGroup","WhatsAppGrp","SkypeNO","SkypeNo","contactPersonDetails","ContactPerson1","ContactPerName","Designation1","ContactPerDesignation","EmailId1","ContactPerEmail","MobileNo1","ContactPerMobile","ContactPerson2","ContactPerName2","Designation2","ContactPer2Designation","EmailId2","ContactPer2Email","MobileNo2","ContactPer2Mobile","statutoryDocuments","ExBankAccount","ExisBankAc","GST","LabrLicenseRegNo","LicenceRegNo","PFRegCode","PFRegNo","ESICode","Esi","PAN","AffidavitofSoleProprietorship","TradeLicense","TradeLicence","CIN","PartnershipDeed","PartnerRegister","DOR","RegDate","BalanceSheet","Balancesheet","bankDetails","AcNo","IFSC","Branch","BankCountry","BankState","BankCity","BankArea","staffDetails","StaffName","Experience","StaffExperience","StaffDesignation","Qualification","StaffQualification","DOA","StaffDOA","contractorExperience","ClientName","OrderValue","OrderName","OrderNumber","OrderDate","CompletionSchedule","ActualCompletion","machDetails","ItemIOMMachId","ItemMach","YOP","YearofPurchase","NoofEquibment","YOM","YearofManufacturer","Capacity","Machinery","headOfficeAddressDetails","HeadAddressLine1","HeadAddressLine2","HaedState","EditContractor","ContractorTypeId","selectedContractorType","FirmTypeId","selectedFirm","OrginId","selectedOrgin","MachDetails","SubCategoryDetails","CommunicationDetails","HeadOfficeAddressDetails","ContactDetails","ContactPersonDetails","StatutoryDocuments","BankDetails","StaffDetails","ContractorExperience","Nationality","selectGstFile","selectLicFile","selectPFFile","selectESIFile","selectAffiFile","selectTradeFile","selectPartnershipFile","selectMemFile","selectArticleFile","selectCINFile","selectLLPFile","selectCheckFile","selectPANFile","ContractorCode","changeActivecontractor","TDSRateList","RateName","GetActiveCategoryById","FOC","getActiveCategoryOfMachinery","MachCategoryList","ContractorCodeList","gstAttachment","licAttachment","PFAttachment","ESIAttachment","AffiAttachment","TradeAttachment","PartnershipAttachment","MemAttachment","ArtAttachment","CINAttachment","LLPAttachment","BalanceAttachment","selectBalanceFile","CancelCheckAttachment","PANAttachment","EditContractorRegCtrl","GetContractor","statutory","bank","LoadIOHM","LoadType","LoadMachineryCategory","ContractorSubcategoryList","OwnershipName","LoadContractorType","contractorCategryList","objcat","contractorsubCategryList","communicationAddressDetails","com","Contact","ContactpersonDetails","cp","staff","contractexp","MachineryDetails","mac","IOMDetails","AffidavitFile","ArticleFile","BalanceFile","AggrementFile","CertificateFile","ESIFile","GSTFile","LicenceRegNoFile","PANFile","PFRegNoFile","PartnershipFile","TradeLicenceFile","MemorandumFile","CanceledCheckFile","FirmId","ContactPersonDetail","ContractExp","RejectNotesCtrl","CRMApprovedCtrl","LoadPropertyType","PropertyTypeList","isExistProject","WorkLocation","ToggleChanged","ToggleStatus","editProject","ProjectImage","KPMESProjectId","selectedPropertyType","dtlLocation","ProjectLocation","TileBack","empPer1","selectedemp","LoadProjectDetails","SaveProjects","approval","prjName","LocationObj","nprjid","Statusdtl","ProjectContactDetails","PropertyTypeId","EstimatedArea","SaleArea","ApartmentCount","loggeduser","CRMApprovedProjectPriceCtrl","ProjectDetailsApprovalService","TitleHeader","ApprovalFor","ProjectRateApproval","RateApprovalList","LoadTiers","iProjectId","GetApprovedProjectDetailsByProjectId","ProjectPriceDetails","Project","bltuparea","AreaUnits","BuiltupArea","RatePerUnitArea","BookingPrice","BookingPercentage","StatutoryCost","TotalBasicCost","StatDetails","UDS","RateofLand","CostofLand","CostofConstruction","StampdutyCharges","ParkingCharges","ThreePhaseCharges","DTPCharges","DTCPApprovalCharges","SewerageWaterCharges","DrinkingWaterCharges","AdvanceMaintenance","LegalCharges","SolarPwrGeneration","SolarWaterHeater","ClubMemberCharges","CRMProjectId","ProjectPriceApproval","inputData","SetupId","ApprovalProjectDetails","CRMApprovedProjectPrice_NewCtrl","CRM_GstSettingService","projectDetailsSetupService","CRM_ProjectDetailsPriceSetupNewService","CRM_StatutoryMasterService","StatutoryTypeList","Value","ReadApprovedBasicLocations_ForPrice","inputGst","GSTFor","GetReadReadGSTSettings","res3","GSTSettingsList","rateaprvlinputdata","GetProjectDetailsandPrice_New","inputdata1","inputcountry","GetCountryCurrency_ByProjectId","resCurrency","CurrencyDetails","GetStatutoryDetailsByProject","resStatutory","StatutorySettingsList","PercentageSum","LumpSum","ShowPercentage","ReadUnitMaster","iBasicLocationId","ResetAllValues","TiersBasicLocation","BasicLocationList","isLoadTiers","NewLocation","ApartmentList","isLoadApartmentType","isStatutoryDetails","LoadInnerLocations","iTierId","NewBasicLocationList","iCode","ReadAreaDetails","SalableArea","UDSArea","CommonArea","SuperBuiltUpArea","CarpetArea","GetProjectDetailsandPrice_ForTier","ProjectAreaDetails","selectedMasterunit","LoadStatutoryDetails","LoadAllTiers","iPropertyTypeId","inputStatutory","SqftRate","SqftValue","Lumpsum","PercentageValue","isRateSqft","isLumpSum","isPercentage","stTypeList","Selected","MultiplyingFactor","BookingAmount","DiscountPercentage","DiscountAmount","TotalGST","CostCalculation","TotalStatutoryCost","IsTax","GSTAmount","TaxPercentage","totalbasicgst","ShowStatutoryPercentageNew","iStatutoryId","StatutoryId","ShowStatutoryPercentage","RateAmount","EditProjectPrice","GetSavedProjectDetailsTierValues","SavedLocTierDetails","allSelectLocations","LocationDetails","statDetails","sdtls","DeleteProjectPrice","SaveDeleteProjectPrice_New","CRMBackForCorrectionCtrl","ExtProjectImage","ProjectImageName","CRM_EmployeeTaskActivityCtrl","CRM_TaskSubjectMasterService","CRM_EmployeeTaskActivityService","StatusList","Activity","ActivityDate","GetActivity","ReadAllCustomers","CustomerList","SubjectId","ReadSubjectActivity","res1","SubjectList","ActivityList","AddActivity","ShowFromTime","StartTime","FromTimeValue","ShowToTime","EndTime","ToTimeValue","SavedActivityId","EmpActivityId","isSaveActivity","SelectedCustomer","SelectedSubject","SelectedActivity","UpdateStatus","SelectedStatus","SubjectChanged","AllActivityList","ReadEmployeeActivity","SaveEmployeeTask","EmpTask","FromTime1","ToTime1","iProcess","StatId","CustomerId","FromTime","ToTime","ActivityId","TaskStatus","RescheduleDate","ResScheduleDate","ResStartTime","ResEndTime","SaveRemoveEmployeeDailyActivity","CRM_ProjectCreationCtrl","CRM_ProjectCreationService","CRM_ProjectDetailsApprovalCtrl","GetAllProjectDetailsApproval","ApprovalDetailList","AreaDtls","AllRequiredDetails","ProjectApproval","CRMProjectDetailsApproval_NewCtrl","CRM_CopyAreaDetailsService","CRM_parkingLocationSetupService","LoadLocations","SelectedProjectDetails","CRMReqFileList","CRMRequiredFiles","GetAllLocations","Level","ParkingCode","LoadParkingLocations","iIsParking","isLoadParkingTiers","ParkingLocationList","inputdatanew","ReadFor","GetApartmentTypeFlatFacing","res2","FlatFacingList","res4","LocationFeatureList","err1","EditProjectNew","buttonhide","selectedApartment","IsParking","ParkingLocationId","selectedParkingLocation","inputdata2","SavedParkTierDetails","allSelectParkLocations","ParkingLocationDetails","LoadParkingTiers","ParkingBasicLocationList","selectedParkingTier","selectedParkFileList","SavedParkUploadList","Uploadfiles","ParkingUpload","FlatFacingId","selectedFlatFacing","FlatFeatureId","selectedLocationFeature","selectedProjectFileList","SavedProjectUploadList","ProjectUpload","LoadParkingInnerLocations","ParkingTiersBasicLocation","NewParkingBasicLocationList","iLocationDetails","iParkingLocationId","iParkingTierId","iParkingLocationDetails","ParkingTierId","Balcony","Verandah","Utility","Services","OpenTerrace","ReraUnitType","SaveProjectDetailsSetup_New","isSetupTile","isProjectDetails","isGridShow","RemoveProjectFileType","UploadFor","UpdateFor","UpdateandDeleteProjectFileUpload","selectedPrjFiles","selectedParkFiles","CRMProjectDetailsPriceSetupCtrl","GetProjectDetailsReadByStatus","LoadAreaValue","LoadTotalcost","LoadTotalStatutorycost","SaveProjectPriceDetails","StatryDetails","stpId","SaveRemoveProjectPriceSetup","DeleteProject","CRMProjectDetailsPriceSetup_NewCtrl","val1","val2","CRMProjectDetailsRejectionCtrl","RejectionRemarks","CRM_RepeatedTaskMasterCtrl","CRM_RepeatedTaskMasterService","WeeklyList","Day","GetAllRepeatedActivity","RepeatedActivityList","GetWorkHours","WorkHours","GetRepeatedByMaster","RepeatByList","Task","RepeatByChanged","RepeatById","isTime1","isTime2","isDate","isDay","SaveTask","TimeValues","SelectedRepeatBy","RepActivityId","RepValues","SaveRemoveRepeatedActivity","CRM_AddBuyerEnquiryCtrl","CRM_AddBuyerEnquiryService","CRM_ProjectPropertyViewService","inputRead","ConditionValues","GetSalesEnquiryMaster","resGrid","BuyerList","ResultFor","GetSalesBasicDetails_ForEnquiry","resBG","BloodGroupList","resRlg","ReligionList","resSrc","EnquirySourceList","resOrgType","OrganizationTypeList","rescommunity","CommunityList","resIndustry","IndustryList","inputdataPrj","SelectFor","GetAllPriceApprovedProjects_ForTiles","resProjects","ProjectsList","GetAge","iDOB","nowMonth","nowDay","getUTCDate","nowYear","getUTCFullYear","myMonth_birth","myDay_birth","myYear_birth","birthAge","Enquiry","Age","EnquiryDOB","CompanyCountryList","selectedCompanyCountryName","CompanyStateList","selectedCompanyState","CompanyCityList","selectedCompanyCity","CompanyAreaList","selectedCompanyArea","LoadCaste","iCommunityId","CasteList","SelectedCaste","LoadInputDetails","iCondition","loadMultiSelect","GetAllInputDataBasedCondition_ForReport","TypeofPropertyList","iLocationId","tierInput","GetSavedTiers_ForCopyProcess","AllSavedDetails","firstTiers","SelectedLocs","nextSavedTiers","LoadAreaDetails","FacingDirection","LocationFeature","ParkingBasicLocation","ReadProjectAreaDetails_ByTierId","getCompanyStateListByCountryId","getCompanyCityListByStateId","getCompanyAreaListByCityId","getDesignation","iIndustryId","AvailLoan","TileBackhide","SaveBuyerDetails","BuyerDetails","userdetails","prfdetails","AdhaarCardNo","PANCardNo","PassportNo","contactdetails","MailId","KPostId","Jobdetails","OrganizationTypeId","selectedOrganizationType","IndustryId","selectedIndustry","Income","CompanyAddress1","CompanyAddress2","BudgetRange","minValue","slider","maxValue","PropertyDetails","EnquirySourceId","selectedEnquirySource","SourceId","Budget","selectedTypeofProperty","EnquiryId","DOE","EnquiryDate","BuyerName","SpouseName","BloodGroupId","SelectedBloodGroup","ProofDetails","ReligionId","SelectedReligion","CommunityId","SelectedCommunity","CasteId","AvailingLoan","ProfessionDetails","SalesBy","BuyerImage","AddBuyerData","ExtBuyerImage","UpdateBuyerPhoto","EditBuyer","commdetails","prfsnlDetails","PresentAddress","protylDetails","trdtls","ind","tid","u","DeleteBuyer","DeleteBuyerData","setTab","newTab","isSet","ceil","CRM_ApprovedProjectDetailsCtrl","CRM_BuyerEnquiryTilesCtrl","AddBuyerEnquiry","ViewBuyerEnquiry","CRM_CopyAreaPriceDetailsCtrl","LoadInputData","iSelectFor","isValid","LocPropertyList","UnitTypeList","selectedProperty","isShowLocPropType","selectedLocationProperty","GetSavedProjectLocation_ForCopyProcess","LoadLocationDetails","PropertyList","iUnitType","tierInput2","result2","AllSavedToDetails","firstSaveToTiers","SaveToLocation","OtherTiers","TierLevel","LoadSaveToInnerLocations","nextSaveToTiers","selectedcopytoTiers","SaveProjectAreaSetup","lastTierLevel","cpylocs","FromTierId","CopyToLocations","SaveProject_AreaSetup_FromCopiedLocation","CRM_ApprovedProjectDetails_NewCtrl","LoadInnerTiers","tierdtls","UnSavedTiers","levelNo","CRM_DashboardCtrl","activate","data1","ActionId","openDialog","person","people","age","CRM_ItemofSalesActivityCtrl","CRM_SalesActivityCategoryService","CRM_ItemofSalesActivityService","Task_SubjectService","LoadCategoryofActivity","iDeptId","SalesActivitytList","ItemActivity","selectedsubject","OrderNo","ActvityType","ReadSalesActivityCategory","LoadItemActivity","iCateId","ItemName","ItemActivityList","ReadItemSalesActivity","UpdateItemActivity","ItemId","SaveDeleteUpdateItemSalesActivity","SaveItemActivity","iItemId","hrs","Hours","Minutes","DeleteItemActivity","EditItemActivity","tmphours","mins","hstep","mstep","CRM_GstSettingCtrl","PaymentScheduleMasterService","GSTList","EditGSTSettings","SelectedGST","SaveGSTSettings","strEffectiveFrom","SaveUpdateGSTSettings","CRM_ModifyProjectDetailsCtrl","CRM_ModifyProjectDetails_NewCtrl","CRMLocationPropertyTypeSetupCtrl","CRM_LocationPropertyTypeSetupService","GetAllCRMLocationPropertyType","LoadBasicLocation","SaveLocPropertyType","isParking","PropertyType","SelectedProperty","SaveDeleteLocationPropertyType","EditLocPropertyType","DeleteLocPropertyType","inputData1","Showsaveandcancel","CRM_ModifyProjectPriceCtrl","CRM_PaymentScheduleMappingCtrl","CRM_projectLocationSetupService","AllProjectsList","ProjectLocations","isGridOpen","LoadApartmentTypes","SelectedProject","LoadStatutory","GetReadMappedPaymentSchedule","SaveSetting","selectedlist","ScheduleId","ScheduleIds","UpdateSavePaymentScheduleMapping","found","collection","CRM_ModifyProjectPrice_NewCtrl","CRM_PendingforApprovalCtrl","CRM_ProjectInitiationCtrl","ProjectTypelabel","ProjectIdToRemove","bltrue","CRM_PaymentScheduleMasterCtrl","GetPaymentSchedule","ScheduleList","SaveScheduleMaster","iScheduleId","ScheduleName","SaveDeletPaymentSchedule","EditSchedule","RemoveSchedule","ScheduleMaster","CRM_projectInitiationTilesCtrl","ProjectIntitiation","BackForCorrection","CRM_ProjectPropertyViewCtrl","CRM_parkingTierSetupService","ProjectPropertyList","isReportView","SelectedProjectName","SelectedProjectId","SelectedLocationId","ReqDetails","isRequiredDetails","getParkingLocationByProjectId","isParkingTiers","ViewReport","SelectMutliTiers","Condition1","Condition2","Condition3","Condition4","Condition5","GetProjectPropertyReport","ForCondition4","selectedFlPrice","Result","ForCondition5","ParkingTier","ReportBack","ViewfullReport","MultiParentTierIds","GetAllTiersDetailsByMultiLocation","GetAllParkingLeastTiers","ParkingTiers","iptData","Apartmentlist","GetAllAreaUnitsByMultiTier","LoadSuperBltArea","SelectedTOA","SuperBltArea","LoadFlatfacing","SelectedBLTArea","FlatFacingDtl","LoadFlatPrice","SelectedFLFC","FlatPriceDtl","prjDetaills","OverallLocationList","AllunitDetails","CRM_ProjectPropertyInfoTilesCtrl","ShowTileDivision","isTierSetupTile","isProjectPropertyTile","isProjectPriceTile","NewCopyInfotile","NewCopyPriceInfotile","ProjectSelected","GotoTile","TileBackRefresh","isShowHeader","ProjectPropertyIntitiation","ProjectPropertyApproval","ProjectPropertyBackForCorrection","ApprovedProjectProperty","PropertyPriceSetup","PriceApproval","PriceBackForCorrection","ApprovedPrice","CopyInfotile","buttonhide1","CRM_ProjectPropertyPricesTiesCtrl","CRM_projectPropertyView_ModifiedCtrl","ReportTypes","ShowTiles","iProjectName","iAreaName","iProjectImage","ResultTiles","isInputView","CRMProjectName","CRMProjectArea","CRMProjectImage","ShowInputTiles","iResult","iReadFor","tmpCondition","ApartmentTypeList","SalableAreaList","FirstTierList","FacingDirectionList","isShowAptType","isShowFirstTier","selectedApartmentType","selectedSalableArea","selectedFirstTier","selectedFacingDirection","Condition","GetAllInputDataBasedCondition_ForReportNew","tmpFilter","Filter1","Filter2","Filter3","Filter4","Filter5","Filter6","ReportHeader","CompanyImage","ExportProjectPropertyReport_New","ExportProjectPropertyReportRERA","CRM_projectPropertyView_NewCtrl","PrjDetails","LocIds","AprtIds","FlatFacingIds","FeatureIds","SalableAreas","AptType","tids","FacingDirectionId","FeatureId","loadParkingMultiSelect","AllParkingSavedDetails","ParkingTierIds","iReportFor","strCondition","ReportFilters","lastLevel","Distinct","GroupResult","isDetailedView","isConsolidatedView","AllValues","TypeofProperty","GroupResult1","GroupColumn","LoadReportType","isRptType","ExportReport","iReportType","ExportProjectPropertyReport","CRM_ProjectRateApprovalCtrl","CRM_ProjectRateApproval_NewCtrl","CRM_ProjectStatutorySettingCtrl","MultiplyingFactorList","Setting","vle","selectedFactor","Settings","vls","StatutoryIds","SaveProjectStatutoryMapping","CRM_SalesActivityCategoryCtrl","LoadSalesActivity","SalesActivity","SaveSalesActivity","iCategoryId","SaveDeleteUpdateSalesActivityCategory","DeleteSalesActivity","EditSalesActivity","CRM_StatutoryMasterCtrl","ReadAllStatutory","StatutoryList","Statutory","ShowTaxPercentage","SaveStatutoryMaster","istrId","isucess","Employees","StatutoryName","SaveRemoveStatutory","editStatutoryName","CmpDetails","RemoveStatutory","StatutoryMaster","CRM_TaskActivityMasterCtrl","Subject","EditSubject","DeleteActivity","ActivityName","SaveRemoveActivityMaster","SaveSubject","CRM_TaskCtrl","RepeatedActivity","EmployeeActivity","TaskAppraisal","CRM_TaskApprovedListCtrl","TaskApprovedList","ReadTaskApprovedList","CRM_TaskPlanningCtrl","CRM_TaskSubjectMasterCtrl","DeleteSubject","SubjectActivity","SaveDeleteSubjectMaster","CRM_ViewBuyerEnquiryCtrl","Viewtable","Buyerinfo","FollowList","ShowBackbtn","InputCondition","GetBuyerEnquiryReport","prjdistinctlist","GroupList1","GroupList2","prttypelist","salarealist","buyerdtls","grplist","grp1list","Group2","dtls","Group1","Buyerdetil","iEnquiryId","BuyerPhoto","SourceName","BuyerAddress1","BuyerAddress2","BuyerArea","BuyerCity","BuyerState","BuyerCountry","BuyerPincode","BuyerMobileNo","BuyerMailId","BuyerKPostId","BloodGroupName","ReligionName","CommunityName","CasteName","PersonalAdhaarCardNo","PersonalPANCardNo","PersonalPassportNo","PorfessionOrganization","PorfessionCompanyName","PorfessionIndustry","PorfessionDesignation","PorfessionAnnualIncome","PorfessionCompanyAddressLine1","PorfessionCompanyAddressLine2","PorfessionCountry","PorfessionState","PorfessionCity","PorfessionArea","PorfessionPincode","ProjectPropertyTypeofProperty","ProjectPropertyDetailsReQuirement","ProjectPropertyTransferTo","showBuyerdetil","CancelDetailedView","CancelConsolidatedView","Viewfollw","ExportSalesBuyerReport","TiersList","SaleExecutiveList","isShowTOP","isShowTiers","Ids","cnt","GetBuyerDropDownInputValues","EnquiryStatusList","parkingLocationSetupCtrl","AddLocation","RemoveLocationSetup","parkingTierSetupCtrl","TierCode","isCodeCheck","TDtl","projectDetailsSetupCtrl","inputdata3","SaveProjectDetailsSetup","strAreaUnits","strLocDetails","Fields","selectedfield","field","parkDetails","ParkingTierDetails","LocationApproval","iSetupId","Parkinputdata","Backbutton","saveParkDoc","selectedCRMParkFileType","selectedParkFile","areadetails","selectedCRMFileType","selectedPrjFile","prjfileChanged","parkfileChanged","projectLocationSetupCtrl","projectTierSetupCtrl","DrawingInitiationCtrl","DrawingUploadList","DrawingCode","SubjectDrawingCode","CurrentRevision","DrawingSendForApprovalCtrl","LoadFromDrawingDraft","DrawingwaitingForApprovalList","DrawingpendingApprovalList","DrawingRevisedwaitingForApprovalList","DrawingRevisedpendingApprovalList","IsRevisionDraft","isRevisionCorrection","isReject","DrawingfromDraft","DrawingfrombackforApproval","revisionfromDraft","revisionfrombackforApproval","DrawingSubCtrl","DrawingSubList","DrawingTypeList","DrawingForm","DrawingId","selectedDrawing","SubjectDrawingId","SaveDrawingSub","objdrawing","SubjectDrawingName","objupdate","SubDetails","objdwgdet","DrawingTitleCtrl","TitleOfDrawingList","DrawingTitleId","SavedrawingTitle","DrawingTitleCode","DrawingTypeCtrl","mapIoca","DrawingName","Iocamapping","SavedrawingType","DrawingUpoadCtrl","selectedDrawingSub","DrawingTitleList","TitleId","isDrawinguploadFormOpen","selectedDrawingTitle","IsRevision","IsReviseddrawing","hidesave","Revisionreject","sendRevision","sendRevisionApproval","Revised","ImageUrl","Revisions","RevisionReSubmitted","SaveDrawingUpload","DrawingHistory","ProjectDrawingRejectionCtrl","SaveDrawingRejection","RevisionDrawingRejectionCtrl","SaveRevisionDrawingRejection","MapDrawingWithIOCACtrl","GetMapDrawing","MapDrawingList","getProject","iocadrawing","tierId","iocaTier","MapDrawingForm","notes","CATypeId","getMapDrawingTitle","MapDrawingId","SaveMapdrawingIOCA","DocId","DrawingBackForCorrectionCtrl","GetAlldrawingBackForCorrection","DrawingBloackandCorrectionList","Revisionback","isBlock","DrawingApprovedCtrl","GetDrawingAllApproved","DrawingApprovedList","rejectnotes","DrawingSentRevisionNotesCtrl","SaveDrawingRevision","revision","RevisedDrawingBackForCorrectionCtrl","GetAllRevisiondrawingBackForCorrection","RevisionDrawingBloackandCorrectionList","UploadRevisedProjectDrawingCtrl","GetRevisionDrawingUpload","DrawingRevisionUploadList","HistoryCtrl","getdrawingrevision","DrawingRevisionList","showHistory","tableopen","Enterprise_DetailsSetupCtrl","Enterprise_DetailsService","Enterprise_LocationSetupService","GetEnterpriseProjectDetailsRead","inputdata4","GetAllEnterpriseLocations","iDesc","ShortDesc","iEntId","IsInternet","Intranet","IsIntranet","EnterpriseSaveProjectDetailsSetup","Enterprise_EmployeeMappingCtrl","iDepartmentId","EmpList","designationSelectionChanged","iDesignationId","ReadEmployees","shtdesc","PassDataToKPost","shrtdsc","PassingData","kpostID","firstName","lastName","mobileNumber","gender","dateOfBirth","createdBy","createdDate","activeStatus","dataType","method","LoadKpostId","iEmpId","Enterprise_GroupCreationCtrl","Enterprise_GroupCreationService","Groupcreation","ReadTierLocations","GrpMembersNewLocation","TierOrder","GroupHeadName","GroupHeadKPostId","GroupHeadId","LoadGrpMembersInnerLocations","ilstTiers","iselectedTiers","GrpMembersBasicLocationList","GrpMembersShortDescList","selectedGrpMembersTiers","objshrtdesc","GroupMemberName","GroupMemberKPostId","GroupMemberId","LoadGroupHead","iSelectedGroupHead","EmployeeDetails","GroupMembersList","isValidSave","ReadEmployeeShortdecsc","SearchEmployee","AddGroupMembers","selectedGrpMembers","isAlreadyAdded","isvalid","GroupMemberShortDesc","LoadGroupMember","iSelectedGroupMember","SaveGrpMembers","strGroupMembers","GroupMembers","SaveUpdateGroupMembers","DeleteGroupMembers","iEmployeeId","BackPage","TableGrpCreate","Enterprise_LocationSetupCtrl","CreateEnterpriseLocation","DeleteEnterpriseLocation","Enterprise_SetupTilesCtrl","Enterprise_LocationSetup","Enterprise_TierSetup","Enterprise_TierSetupCtrl","GetAllEnterpriseTier","CreateEnterpriseTier","DeleteEnterpriseTier","EmployeeComponentCtrl","SalaryComponentsService","EmployeeComponentService","SalaryTypeList","AllEmployeeComponent","EmpComponentList","AllSalaryComponent","EmployeeComponentId","EmployeeComponentslist","EmployeeComponentForm","SaveEmployeeComponent","ComponentId","selectedDescription","SalaryComponentId","SalaryType","EditEmployeeComponent","saveEmployeeComponent","editemployee","RemoveEmployeeComponent","AccountTransactionCtrl","AccountTransactionService","getAllAccountTransaction","AccountTransactionList","editAccountTransaction","AccountTransaction","RunningBalance","ModeofPaymentDtls","TransactionAmount","ModeofPaymentList","ModeofPaymentId","TransactionTypeID","RemoveAccountTransaction","ACT_TransctionId","SaveAccountTransaction","ModeOfPaymentTypeId","AddAccountTransaction","AccountTransactionForm","getAllPaymenyMode","EmployeeSalaryCtrl","EmployeeSalaryService","EmpSalarylist","EmpSalaryDetails","getAllEmployeeSalary","EmployeeSalaryList","editEmployeeSalary","Employeesalary","Salary","SalaryDtls","SaveEmployeeSalary","EmployeeSalaryId","AddEmployeeSalary","LeaveMasterCtrl","LeaveMasterService","getAllLeaveMaster","LeaveMasterList","editLeaveMaster","Leave","LeaveComponent","NoOfLeaveDays","RemoveLeaveMaster","LeaveMasterId","SaveLeaveMaster","LeaveComponentId","AddLeaveMaster","LeaveForm","SalaryComponentsCtrl","AllTransaction","TxnList","SalaryComponentslist","SaveSalaryComponent","SalaryComponentEdit","AddSalaryComponent","RemoveSalary","RemoveSalaryComponent","editsalary","TxnTypeId","KPostBoxIdAllocationCtrl","EmployeeAllocationList","GetCompanyByOrganization","GetDepartmentByCompany","GetEmployeeRole","EmpRoleList","EmpRole","allocateData","userProfileDetails","KpostBoxId","profileStatus","LastName","ssnType","ssnNumber","perState","areaName","presentAddress","companyName","pinCode","language","alternateMobileno","letterHead","privacySettings","privacyStatus","designationID","officeType","LevelName","department","designation","signUpDetails","kpostObj","isComCheck","KPostBoxIdCreationCtrl","Org","DesArr","ComPlace","CompanyCode","KPostBoxIdContactsCtrl","inputCharacter","KpostBoxContactsList","ShowContactList","AllocatedTo","show","perKpostId","nonContactsList","ContactsList","nonContactList","ContactList","kpostIds","dtformat","contactID","contactName","contactDispayName","selectContactItem","allContactRowSelected","selectNonContactItem","allNonContactRowSelected","isnonChecked","AddContact","addobj","uppercase","removeContact","kpostIdList","Kpost_obj","contactIds","cms_obj","KPostGroupCtrl","GroupId","SearchData","GroupManagementList","LoadUnderGroupName","UnderGroupName","hideTodoList","Group","AdminShortDesc","GroupAdminList","SaveValidation","GroupName","SaveGroup","GroupAdmin","SelectedKPostMasterId","GroupLogo","MainGrid","MainPannel","UpdateGroupName","UpdateBtn","EditGroup","SavedContactList","ExistingContactList","SelectedGroupId","selectedAdminId","AdminId","SelectedGroupName","AdminKPostId","AdminKpostId","ShowTileName","KPostGroupIdJSON","SelectedKPostGroupIdJSON","memberDetails","adminName","GroupMemberJson","GroupMemberList","ExtGroupLogo","GroupContactList","selectGroupMember","ExistingSearchGrid","ContactShortDescription","selectContactList","addGroupMember","membersList","memberIdlist","hasAdminAccess","remarks","AdmObj","groupKpostName","groupAdmin","isPrivateGroup","SavedGrpMagList","SavedGrpMemList","SavedGrpMemberList","SavedGrDetails","SavedPassingData","groupID","groupKPOSTID","cmsObj","UpdateGrp","lstSavedData","lstnewdata","Savedres","GroupContactCancel","RemoveExistGroupContact","removeContactId","removeContactKpostId","userList","ERP_MS_Contact_GroupManagementService","UpdateGroupLogo","MainHeader","SecondaryHeader","CancelGroup","ShowContactCtrl","waitFunction","ajaxFlagSync","shareTo","addContact","ContactArray","shareKatchup","lastModified","getTime","pdfUploadkpost","attachementPath","messageType","subject","actualMessage","messageTime","serverTime","sessionID","referenceMessage","groupFlag","resultList","displayMessageStatus","LabourCategoryCtrl","LabourForm","editLabourCategory","SaveLabourCategory","LabourTypeCtrl","FilterlabourCategoryList","labourCategoryList","getAllLabourTypeByCat","filterLabourTypeList","getAllNonstdUnits","FilterLabrCategory","labourType","labourTypeForm","editLbrType","LabourType","selectedLabrCategoryName","selectedNonStdUnitName","SaveLabourType","CategoryOfMachineryCtrl","getAllCategoryOfMachinery","categoryOfMachineryList","FilterLob","distinctLobList","CategoryMachineryList","selectedLOBFilter","categoryOfMachinery","categoryOfMachineryForm","editCategoryOfMachinery","selectedLOBMachineryName","removeCategoryOfMachinery","changeActiveCategoryOfMachinery","SaveCategoryOfMachinery","EditCategoryOfMachinery","AddCategoryOfMachinery","ShowMachineryCategoryReport","ItemOfMachineryCtrl","MachineryAttributeService","MachineryVariableService","uomNameList","uomName","MachCombinations","editIOMachinery","ioMhToUpdate","uomIdList","removeIOMachinery","removeIOMH","constructLongDescription","description","MachTypeName","saveIOMachinery","uom","UOMIds","UpdateIOMachinery","IOMach","AddIOMachinery","IOMachineryForm","LOBMachineryCtrl","getAllLobMachinery","lobMachinery","lobMachineryForm","editLobMachinery","changeActiveLobMachinery","removeLobMachinery","SaveLobMachinery","EditLobMachinery","AddLobMachinery","MachineryAttributeCtrl","objMachineryCategory","AllmachinerycategoryList","machineryattribute","MachinerySubCategoryName","getAllMachineryAttribute","MachineryAttributeList","MachineryTypeName","machineryattributeForm","editmachineryattribute","removemachineryAttribute","removeMachineryAttribute","SaveMachineryAttribute","EditMachineryAttribute","AddMachineryAttribute","MachinerySubCategoryCtrl","getAllMachinerySubCategory","MachinerySubCategoryList","getFilterCategoryofMachinery","distinctMachCatList","getMachSubcategoryByCategoryId","FilterSubCategoryList","selectedCategoryofMachineryName","machinerysubcategoryForm","editMatSubCategory","CategoryOfMachinery","removeMachinerySubCategory","ChangeActiveMachinerySubCategory","SaveMachinerySubCategory","EditMachinerySubCategory","AddMachinerySubCategory","ShowMachinerySubCategoryReport","MachineryTypeCtrl","getAllMachineryType","getFilterSubCategoryofMachinery","distinctMachSubCatList","getMachTypeBySubCategoryId","FilterTypeList","LOB_Id","MachineryCategoryList","machineryType","MachineryCategoryName","machineryTypeForm","editMachineryType","MachinerySubCategory","removeMachineryType","ChangeActiveMachineryType","SaveMachineryType","EditMachineryType","AddMachineryType","ShowMachineryTypeReport","MachineryVariableCtrl","TypeOfMachineryList","NewVariableName","MachineryVariableForm","MachCombination","machineryVariable","MANCtrl","MRSService","MANService","getMAN","ProjectBasedMRNList","GetMRNbyProject","MRNId","PreparationOfMANByMRN","PreparationofMANList","ReceiveAt","ReceviedAt","man","StoreTypeName","StoreNo","MRNNumber","MANNumber","NoteNo","ListOfMaterial","List","filterList","SaveMAN","ListIfMaterials","Comment","comment","Get","AcceptedQty","RecQtyDecimal","RecQty","getQty","getQty1","RejectedQty","initialstockCtrl","StoreLocationSetupService","StoreStaffAllocationService","getAllStore","StoreList","ClearCompany","getStoreType","stock","StoreTypeList","getStoreNo","StoreTypeId","ClearStoreType","selectedStoreType","StoreNoList","MCategoryList","MSubCategoryList","MTypeList","selectedWSIOM","selectedASIOM","StockDetailsList","StoreAtId","selectedStoreAt","StoreId","SelectedStoreNo","tStoreSetupId","mCatId","mSubCatId","mTypeId","StockQty","StockNotes","StockDetails","getStockDetailsList","Search","IOM_Description","UoM","UOM_Name","QtyValue","CreatedOn","selectedStatement","StatementList","ClearStoreAt","ClearProject","selctionSearch","AfterClearIOM","updateStockQty","ViewNote","nill","MICtrl","MIService","clearIOM","GetItemofMaterial","ItemofMaterialList","getMI","getMIbyFilter","selectedMaterialFilter","clearFromDate","clearToDate","MaterialList","IOM_id","GetMISDetails","MaterialIssueTable","MRSId","PreparationofMISDetails","PreparationofMIList","mi","ReguestedBy","MRSRequistionNo","MRSRequistionDate","HideDetailsList","HideDetails","isSelectedIndent","getMaterialIssueType","GetMaterialIssueType","MaterialIssueTypeList","getMaterialIssueName","IssueTypeId","selectedIssue","GetMaterialIssueName","MaterialIssueNameList","getRecevierName","GetReceiverName","ReceiverNameList","SaveReceiver","ExistingReceiverBtn","NewReceiverBtn","ReceiverName","Receiver","SaveReceiverName","AddNewReceiver","removeReceiver","SelectedReceiver","SaveMI","FilterList","ActualIssuedQty","BoqQty","IOM_Qty","Supervisor","selectedSupervisor","SiteSupId","MIssuedId","MIssuedToId","MIReceiverId","ReceiverId","MIDetails","MINumber","IssuedQtyValue","IssuedQty","Val","TotalIssuedQty","IssQty","ReqQty","BalQty","BalQty1","ViewHistory","IOM_Code","MRNCtrl","MRNService","getRequestfor","RequestList","Typeofpurchase","PurchaseTypeList","mrn","SelectedStoreType","getMRNno","GetMRNNumber","MRNNo","MRNNUMBER","getSupplier","GetSupplier","SupplierList","getPurchaseOrderNo","SelectedSupplier","GetPurchaseOrderNo","PurchaseOrderList","getSupplierDoc","GetSupplierDocType","SupplierDocList","loadgrid","TypeOfStoreId","PrepareMRNFor","SelectedPrepare","ReguestForId","TypeOfPurchase","SelectedPurchase","TypeOfPurchaseId","SelectedOrder","TypeOfSupDoc","SelectedDocument","SupplierDocTypeId","GetMRN","MRNList","POQTY","RECQTY","TOTQTY","ExcessQty","validationattach","selectFile","Savebtn","SaveMRN","selectedRow","Mid","MRNQty","ReceivedQty","InvNo","InvoiceNo","InvDate","Invoice","POIOM","MRNForm","checkamt","CurRecQty","CurBalQty","imageUpload","PreviewImage","maxDateFun","maxd","lastdate","beforeToday","MaterialReconciliationCtrl","getTypeOfStatement","ClearStoreNo","Index","DetailsList","IOM_Dec","TotalQty","ThclConQty","TotActlQtyIssue","ExcessOrLessCon","ExsOrLsConInPerctg","clearStockDetails","GetYearEndDate","MRSCtrl","getRequestType","RequestTypeList","getRequestBased","RequestBasedList","getMRS","PreMRSList","MaterialCount","getLineofBusiness","mrs","selectedRequest","clearLob","LineofBusinessList","selectedBusiness","clearStoreType","clearStoreNo","TypeofStoreId","storeId","FobId","SelectedIoca","clearItem","LastTier","PreparationofMRS","clearMrs","Arr2","RequestTypeId","ReguestTypeId","IOM_ids","ConsumableTypeIds","MRSList","MRSNumbaer","HidenDetailsList","HidenDetails","SaveMRS","viewDocument","clearRequestFor","clearRequestType","isConfirm","dsblBtn","StockStatementCtrl","stockstate","StockStatementList","electedSubCategory","getSpecType","TypeCategory","IOMType","Action","GetEndDate","StoreLocationSetupCtrl","getAllStoreType","GetStoreByCompanyId","create","store","selectedStore","StoreLocationList","SaveStoreType","ExistingStoreBtn","NewStoreBtn","AddStoreType","AddNewStoreType","removeStoreType","selectedCompanyFilter","getStoreno","SaveStoreLocation","StoreSetupId","UpdateStoreLocation","AddStoreLocation","editStoreLocation","RemoveStoreLocation","removeStoreLocation","StoreStaffAllocationCtrl","GetStoreStaffByCompanyId","selectedStaff","getDepartmentByCompany","StoreStaffAllocationList","SaveStoreStaff","StaffAlcId","StoreAllocationId","StaffId","UpdateStoreStaff","AddStoreStaff","editStoreStaff","StoredATId","RemoveStoreStaff","removeStoreStaff","StoreForm","addAllocation","MaterialAttributeCtrl","MaterialAttributeService","GetMaterialCategory","getAllMaterialCategory","AllmaterialcategoryList","materialattribute","selectedMaterialSubCategoryName","selectedMaterialTypeName","materialtype","selectedMaterialCategoryName","MaterialCategoryName","selectedLOBMaterialName","materialcategoryList","getAllAttributes","MaterialAttributeList","AddMaterialAttribute","materialattributeForm","EditMaterialAttribute","removeMaterialAttribute","SaveMaterialAttribute","LobMaterialCtrl","getAllLobMaterial","lobMaterial","lobMaterialForm","editLobMaterial","changeActiveLobMaterial","removeLobMaterial","SaveLobMaterial","EditLobMaterial","AddLobMaterial","ItemOfMaterialCtrl","MaterialVariableService","materialsubcategory","getMaterialCombination","VariablesCombinations","AttributesName","AddPackUnit","NonStdSelectedUnitList","UnitValue","itemofmaterial","removeUnit","editUnit","NonStdUnitPackingList","editIOM","IOMUpdate","packUnit","Unitstd","selectedStdUnit","UnitWeight","PakageList","removeIOM","MaterialTypeName","ItemofmaterialForm","saveIOM","toJson","UpdateIOM","IOM","AddIOM","selectedMaterialPic","fileChanged1","selectedMaterialDocument","UploadMaterialFile","MaterialPic","MaterialDocument","MaterialCategoryCtrl","getFilterMatLOB","getFilterMatCountry","getFilterMaterialCategory","filteredMaterialCategoryList","materialcategory","materialcategoryForm","editmaterialcategory","removeMaterialCategory","changeActiveMaterialCategory","SaveMaterialCategory","EditMaterialCategory","AddMaterialCategory","ShowMaterialCategoryReport","MaterialSubCategoryCtrl","getAllMaterialSubCategory","getFilterMatCategory","distinctMatCatList","filterGrid","filteredMaterialSubCategoryList","subcategorycode","materialsubcategoryForm","MaterialCategory","removeMaterialSubCategory","changeActiveMaterialSubCategory","SaveMaterialSubCategory","EditMaterialSubCategory","AddMaterialSubCategory","ShowMaterialSubCategoryReport","MaterialTypeCtrl","getAllMaterialtype","getFilterMatSubCategory","distinctMatSubList","MaterialSubcategoryId","filteredMaterialTypeList","typecode","materialtypeForm","editmaterialtype","removeMaterialtype","changeActiveMaterialtype","SaveMaterialType","EditMaterialtype","AddMaterialtype","ShowMaterialTypeReport","MaterialVariableCtrl","objMaterialCategory","selectedMaterialVariable","MaterialvariableCombinationCollection","AddMaterialVariable","removeMaterialVariable","MaterialVariableForm","removeMaterialCombination","MaterialCombination","materialvariable","InsertCombination","MaterialVariableList","BudgetReportCtrl","RateBasedOn","BudgetForId","selectedRateBasedOnList","strtype","selectedBudgetFor","BudgetTypeId","BudgetType","strBudgetHr","selectedPlanFor","PlanTypeId","PlanType","CostTypeId","RateBasedOnId","ReportShowById","ReportDesignTypeId","selectedViewBudgetType","ReportBreackUpId","selectedRateForList","RateForName","RateForId","POTermsAndConditionCtrl","RfqTermsAndConditionService","rfq","RfqTemplateTitles","RfqTemplateList","TemplateFor","Material","selectedMaterial","selectedRfqTemplate","UploadTemplate","SaveTemplate","POTemplateTitle","AttachmentURL","SavePOTemplate","CancellationNoteCtrl","CancelledPreparationRfqMaterialCtrl","RfqStatus","RfqMaterialList","ViewRfqMaster","DraftPreparationofRfqMaterialCtrl","RemoveRfqMaster","mat_RfqId","RemoveRfqDetails","PendingForApprovalRfqMaterialCtrl","PreparationofRfqMaterialCtrl","GetAllCompanyByIndent","RfqForList","RfqForId","RfqFor","GetAllTemplate","GetAllIndentProject","GetAllMaterial","isRfq","GetMaterial","Ioca_List","isSelectedMaterial","selectedMaterialItems","ComArr","SaveRfqMaster","Supplier","selectedMaterialList","IOMQty","PowQty_Updated","rfqTitle","RfqTermsId","SelectedTemplate","lastDate","MaterialDetails","SaveRfqMaterial","rfqNo","PreparedOn","mat_RfqStatus","ViewList","ViewRfqDetails","ViewRfqMasterList","IOCA_dtls","isAdded","MaterialAddList","AddToList","rfqStatus","ChangeStatus","PostToSupplier","Cancellation","ViewPreparationRfqMaterialCtrl","RfqTermsAndConditionCtrl","RfqTypeId","RfqTemplate","RfqTemplateTitle","RfqTemplateAttachment","SubcategoryOfMaterial","TypeOfMaterial","UpdateTemplate","editTemplate","removeTemplate","SupplierRateComparisionCtrl","SupplierRateComparisionService","ComparisionNotes","ComparisonNotes","ComparisonStatus","mat_rfqId","GetSupplierRateComparision","SupplierDetailsList","SupplierDetails","TotalRate","selectedSup","isFinalisedSupplier","supplierList","SumList","TaxAmt","file_url","SelectedSup","sup","SaveComparision","SaveFinalisedSupplier","SupplierRateQuoteCtrl","getGST","GetGSTList","calcDiff","SupplierNotes","Supplierfile","SupplierRateEntryStatus","ifRateEntryStatus","GetAllRfqDetailsForSupplier","cgst_inRupees","sgst_inRupees","igst_inRupees","Discount_inRupees","GSTPercentage","SaveQuote","Discount","SaveRateEntry","rfqRateDtls","SubmitRateEntry","dd","mm","yyyy","date2","date1","dateDiff","GetDiscount","TaxableValues","GetCGST","GetSGST","GetIGST","EstimationReportCtrl","formid","selectedtoq","toqList","TypeofQuantityName","TypeofQuantityId","selectedestimation","EstimationId","CAType","CATypeList","ActivityType","ActivityTypeId","EstimationWorkOrderTypeList","WorkOrderTypeName","WorkOrderTypeId","EstimationFromList","estimationform","EstimationReportbasedList","reportid","EstimationReportbased","RateList","ClearMethod","MethodList","selectedmethod","MethodName","MethodId","EstimationName","clearSelection","selectedEstimationFrom","selectedestreport","tempFoc","Showcate","getTypeOfAttributeByTypeCA","selectedRate","tmpstring","selectedWorkOrderType","selecteddesc","strcondition","EstimationFor","Createdby","CostType","p_TypeOfQuantity","p_CostOn","p_CostDate","CATypeID","ScopeId","SelectedContractorName","SelectedWorkOrderNo","ProjectIds","scopeId","projectid","getReportBasedOn","EstimationList","EstimationReportList","costructionactivity","locationwork","getAbsctActivity","methodId","GetMethod","estimationreportform","RequirementReportCtrl","selectedWork","WorkList","WorkName","WorkNameId","selectedRequirmentFor","getTypeofItem","clearLabour","tabID","tabName","getLabourTypeByLabourCategory","labourTypeList","selectedLabrCategory","LabrCategoryName","clearMaterial","selectedMatCategory","selectedMatSubCategory","selectedIOM","selectedLOBMaterial","getMatSubcategoryByCategory","getMatTypeBySubCategory","getIOMByMatType","getMachineryLob","clearMachinery","selectedMachCategory","machCategoryList","selectedMachSubCategory","machSubCategoryList","selectedMachSpecType","selectedIomh","IomhList","selectedLOBMachinery","getMachSubCategoryByMachCategory","getMachTypeByMachSubcategory","getIOMHByType","clearConsumable","GetConsumableTypeByCatId","selectedConsumableType","ConsumableTypeList","IocaTiers","showRequirementReport","selectedReportMethod","ReportMethod","ReqType","RequirementFor","WitchWise","CostTypeFilter","selectedTierName","requirementReportForm","reportMethodList","ReportForList","GetPlanningReportFor","RateAnalysisCtrl","getFocByPrjConstantAndRate","getRateBasedon","m_rate","TypeRateName","TypeRate","TypeRateId","getCategoryByPrjConstantAndRate","getSubcategoryByPrjConstantAndRate","getTypeByPrjConstantAndRate","getIocaByPrjConstantAndRate","RateNameId","selectedRateAnalysis","RateAnalysisName","p_RateFor","p_RateType","p_RateDate","RateAnalysisId","p_WorkOrderType","RateAnalysisList","WorkStatusReportCtrl","selectedWorkStatusBased","GetTodayDate","WorkStatusTypeName","ReportStatusId","WorkStatusTypeList","ApvdStatus","RFQRejectionCtrl","objBlock","BlockNotes","BlockBy","BlockOn","RfqPreparationCtrl","rfqData","RfqData","stateFrom","BoQTypeList","ViewRfqData","contractorScopeList","ScopeName","selectedBasicLocation","selectedStatus","getFOC","isNotinRfq","getFocByRfq","GetBoQCategoryByCountryId","getCategoryByRfq","getBoQSubCategoryCAListByCategoryId","getSubCategoryByRfq","getBoQTypeOfCAListBySubcategoryId","getTypeByRfq","getBoQAttributeByTypeOfCAId","getBoQIOCAListByTypeOfAttribute","getIocaByRfq","getDrawingDescription","RFQList","m","getPowQty","QtyList","qty","TotalQuantity","getSelectedTierDtls","lastTierData","tempArr2","genTierDetailObject","sortBy","checkContractorScope","contScopeDesObj","selectedContractorScope","contScopeStr","addTable","iocaDtl","manual","IOCA_LongDes","SpecialNote","Quantity","ContScope","locData","tempLocDtl","getTierIdAsCommaSeprated","getApprovedContractor","tierIdStr","tempStr","PrjId","addAttachDoc","selectedDrawingDes","TotalDescriptionList","DrawingDocList","viewDrawing","removeDrawing","getRfqTemplate","getContentforRFQ","getTemplateValue","RfqType","ListContractor","contractorIdList","ContList","contName","saveRfq","MinPenalty","MaxPenalty","Drawings","LastSubDate","RequiredValueList","saveBtn","DrawingsList","RfqOf","contentTemplateList","IocaDetails","Draw","RFQNo","RfqNo","parsedLocDtl","locDtlGroupByTypeOfWorkLoc","RfqContractor","RfqRequiredValues","RfqTemplateContentList","viewNote","selectedProjectIoca","RfqPreparationForm","dirOptions","checkMobilization","mob","RFQSpecialNoteCtrl","SaveSpecialNote","SpecialNotes","DraftRfqCtrl","RfqList","getRfqByProjectId","viewRfq","RfqComparisionCtrl","IsComparing","compareQuatation","NoOfContractor","QuotationRecived","RfqToCompare","contList","col","sum","rfqToCompare","RFQContractorNoteCtrl","SaveContractorNote","ContractorNote","RfqContractorCtrl","ContractorRfqUnquotedList","ContRfqStatus","ContractorRfqQuotedList","submittedList","ContractorSubmittedList","ContractorRfqCancelledList","getIocaDtlforContractor","TaxList","nonLoc","LetterList","SignatureList","DigitalSignUrl","Agreed","rateEntry","LastDate","rfqDate","TypeofRfq","typeofContract","timeDiff","abs","remainDate","addSign","DrawingsId","saveContractorRate","RfqDtlList","contractorNote","RfqContId","rateEntryContractorForm","RoleMenuMappingCtrl","selectMenu","errorList","boqIocaSequenceCtrl","seq","getIOCAByLoc","IOCASequenceId","OrderofSequence","removeSequence","saveSequence","boqTierSequenceCtrl","BoqTiersList","selectedTiers","getTierByLoc","TierListList","getAllBoqSequence","TierSequenceId","GeneralSequenceCtrl","editableOptions","editableThemes","getprojectType","selectedPrjtype","selectedProjectCategory","LoadSequence","sequenceList","submitTpl","cancelTpl","ProjectSequenceCtrl","getAttributeById","GetAttributeByTypeOfCAId","GetAttributeId","billofquantityservice","getAllProjectInitiation","getProjectInitiationById","AddProjectInitiation","ProjectInitiation","EditProjectInitiation","removeProjectInitiation","getCategoryofCAById","countryId","isNotInRfq","getFocById","objfoc","inputDto","Projectid","getSubCategoryofCAById","GetActiveSubCategoryById","getTypeOfCAById","TypeOfCA","GetActiveTypeOfCAById","SubcategoryId","getAllVariable","ObjGetVariable","objGetComb","Variable","GetSavedProject_ForCopyProcess","TaskApprove","Projects","PaymentDetails","GetApprovedProjectforPriceSetup","details","ReadProjectStatutorySetting_ForProjectPrice","TaskMaster","SubjectMaster","uploadProjectImage","GroupHead","Searchfor","employeeComponent","SalaryComponent","ShowAreaReport","getAllAreaById","taluk","getCityById","AddCountry","removeCountry","getCountryById","getStateById","getCategoryOfMachineryById","getLobMachineryById","getMachineryAttributeById","MachineryAttribute","objMachinerySubCategory","getMachinerySubCategoryById","GetActiveMachinerySubCategoryById","objMachineryType","getMachineryTypeById","machType","GetActiveMachineryTypeById","getLobMaterialById","getAllMaterialCombinations","getMaterialAttributeById","MaterialAttribute","GetActiveMaterialAttributeById","getMaterialCategoryById","GetActiveMaterialCategory","objMaterialSubCategory","getMaterialSubCategoryById","GetActiveMaterialSubCategoryById","objMaterialtype","GetActiveMaterialtypeById","objmaterialtype","getAllMaterialVariable","objvariable","variables","updateFile","RemoveTemplate","GetSupplierById","Task_ActivityMasterService","ReadActivityMaster","SaveDeleteUpdateActivityMaster","Task_EmployeeActivityService","Task_ReadRepeatedActivity","Task_SaveRemoveRepeatedActivity","Task_GetAllEmployeeActivity","Task_SaveRemoveEmployeeDailyActivity","ReadSubjectofActivity","SaveDeleteUpdateSubjectofActivity","TaskSaveRemoveRepeatedActivity","Task_ActivityMasterCtrl","LoadSubjectofActivity","LoadActivity","iSubId","SaveActivity","iActivityId","Task_RepeatedActivityMasterCtrl","RepeatBy","selectedActivity","selectedActivityName","SaveRepeatedActivity","selectedSubjet","DeleteRepeatedActivity","Task_EmployeeTaskActivityCtrl","selectedSubject","LoadDepartment","SavedActivity","Task_SubjectMasterCtrl","iSubjectId","SubjectName","Task_RepeatedSubjectMasterCtrl","Task_TaskApprovedListCtrl","LoginCtrl","newPassword","conPassword","isForget","forgetPswd","Usr","pwd","UserNameOnly","PassOnly","UserMenuMappingCtrl","selectedUser","CreateUserCtrl","TypeUserList","empSelectionChaged","User","isPwd","validUserEmail","validUserName","saveUser","selectdep","selectdes","selectemp","isPwd1","editUser","SelectCompanyModalCtrl","closeModal","companySelectionChanged","ok","SelectProjectModalCtrl","projectSelectionChanged","ApprovalOfWorkCtrl","clearByCompany","ClearByAppform","selectedApprovalFrom","approvalFrom","selectedApproveForName","IsFromPlanning","ClearByLoc","SaveWorkApproval","ClearForApprovalFrom","DefectOfWorkCtrl","GetDefectOnly","DimActioca","ApprovalWorkGalleryCtrl","SearchByList","SearchId","SearchtbasedOn","TypeOfWork","SearchBy","gallery","getCategory","getlocation","getContractorByCategory","selectedsearch","FilterBy","AttachFile","AttchmentList","imagePathList","shareBtn","ViewMedia","viewDetail","FileList","fileName","extension","pop","MonthName","AttachBtn","isAttachmentChk","selectedImage","strObj","ActDim","OpenModal","windowClass","A","DefectWorkGalleryCtrl","DetailsofBOQCtrl","BOQimageList","$resolve","filename","modal","modalImg","closeImage","ViewHistoryCtrl","DefectHistoryList","ListOfMedia","CancellationofWOCtrl","getApprovedWorkOrder","WorkOrderApprovedList","WorkOrderListById","ApprovedWODetails","BoqForm","WoScope","WoTempFor","FoC","TypeOfBilling","WoTempName","TotnoItem","WoDate","QuatationNo","TableDetails","TCList","BOQDetails","isloading","SaveWOCancel","LasttierId","CancelTypeId","BOQ","IOCACancelDetails","Expandrow","isSelectedPow","changeStatus","AmendmentStatusNotesCtrl","AmendmentStatus","AmendmentofWOCtrl","BalWork","AmendmentTypeList","AdementType","RateDetailsList","AmendmentRate","AmendmentType","AamendmentTypeId","selectIoca","ViewWO","BoQFor","TempName","BillIdName","RfqTypeName","TypeOfContractName","updateWOStatus","GetPowForIoca","TotLocQty","ViewPow","AmendmentTypeId","ApprovedPowList","isSelect","AmendmentQty","AmendmentCost","TotAmendmentRate","temp2","SaveAmendmentWo","NewRate","BOQArr","ViewAmendmentPowCtrl","OldPowList","NewPowList","TotalOldRate","TotalNewRate","ViewAmendmentWOCtrl","WOList","DraftWOList","PendingForApprovalWOList","ApprovedWOList","DraftAmendmentWO","PendingForApprovalWO","ApprovedWO","AddWorkOrderDetails","UpdateWorkOrderDetails","getAllDraft","getAllPFA","getAllApproval","getAllBlock","getAllBFC","SendForApprovalWO","ApproveWO","ResubmitWO","RejectWO","BlockWO","DeleteWO","DirectWorkOrderCtrl","getRfqDataByRfqId","viewWorkOrder","addQuotation","showFile","addDescription","removeDescription","saveWorkOrder","SenderNote","RfqDetails","reqArray","RequiredValueJson","fromPfa","directWOForm","DirectWorkOrderTableCtrl","getWorkOrderByProjectId","workOrderList","WorkOrderType","WO_SpecialNoteCtrl","wrk","WO_SenderNoteCtrl","SaveSenderNote","PreparationofDraftWOCtrl","FinalisedContractorList","TypeofContractName","getRfqForDraftWO","FinalisedContractor","DrawingSubjectCode","noOfRowsTerms","currentPageTerm","rembemberCurrentPageTerms","back2","right","bottom","scroll","fadeIn","fadeOut","animate","AccountVocherCtrl","TotalWOAmount","PerMob","MobilizationAmount","MobiAmount","MobilizationAdvBal","getBankDetails","BankList","selectedBank","BalDate","OpenBal","AvaiBal","Amt","SaveMobilizationAdv","BankId","DraftPenaltyCtrl","viewWorkOrderDetails","TypeofBill","UpcomingBillNumber","MaxPenaltyAmount","MinPenaltyAmount","PenaltyStatus","SavePenaltyNote","PenaltyDetails","PenaltyAmount","TotalPenaltyAmount","selectedPenalty","PenaltyNote","PenaltyNO","PenaltyNo","checkAmount","checkAmountByValue","ItemToItemCtrl","getCountryByTiers","clearPrjFoc","prjFocList","SEnable","clearPrjCategory","prjCategoryList","clearPrjSubcategory","prjSubCategoryList","selectedPrjCategory","clearPrjType","prjTypeOfCAList","getAttributeByTypeOfCAId","selectedPrjTypeOfAttribute","prjTypeOfAttributeList","ProjectIOCAList","getIOCAListByTypeOfAttribute","lastTierId","selectedPrjTypeOfCA","showGrid","BoQItemList","loadBoQItem","DimenCount","saveBoQItem","iocaJson","unitvalues","InputIOCAJson","clearPrjIoca","selectedPrjSubCategory","selectedPrjFOC","locationToLocationCtrl","CopyingTier","getSelectedTiers","fromLocData","getTiersFromProjectIOCA","valuesToRemove","LastLocSelectedId","LasttireNo","IscheckLocation","Last","LastLocIdList","FromLocId","ToLocIdList","ResCode","Msg","LoadOriginal","objLoadData","BoqLocationList","isLoadGrid","SaveData","FromTier","objSaveData","p_Actionby","ArrList","projectToProjectCtrl","TypeofCopyingBoQList","TypeofBoQList","GetProjectByCompany","prj","selectedTypeBoQ","clearTypeofBoQ","TypeofBoQ","selectedWorkLocation","clearF_Location","clearTier","FilterTier","forEachRight","clearFOC","inputs","FocList","ClearCategory","clearSubCategory","getIOCADetails","clearIOCA","clearT_Project","F_CompanyId","TypeOfCopy","selectedTypeCopyBoQ","F_ProjectId","ToProjectList","getTo_LocationDetails","selectedToProject","clearT_Location","T_ProjectId","ToLocationList","selectedWorkToLocation","ToallTierData","F_LocationId","T_LocationId","TostrArr","filterToTiers","selectedToTireValue","CheckCopy","TIOCAIds","LoadDataList","clearF_Project","clearCopyBoQ","StockRegistrationCtrl","AddNotesModalCtrl","RfqComparisionFormCtrl","FormMode","approvedContractor","setRfqData","cont","getContractorId","senderNotes","toggleEditMode","formatContractorName","column","saveComparision","ListViewCtrl","setRfqList","viewQuatationDtls","$templateCache"],"mappings":"CAAA,WACE,YAEAA,SAAQC,OAAO,eACX,SACA,WACA,mBACA,uBACA,cACA,yBACA,qBACA,kBAON,WACI,YAqIA,SAASC,GAAYC,EAAoBC,GAErC,GAAIC,GAAOC,OAAOC,SAAS,KAAvBC,EAAcH,EAAAI,SAAS,iBAGtBD,GAMDL,EAAmBO,UAAU,UAN7BP,EAACO,UAAA,iEAxITV,QAAQC,OAAO,eAAf,YAGI,uBAAA,wBACA,mBACA,mBACA,0BACA,mBACA,oBACA,sBACA,sBACA,uBACA,oBACA,2BACA,mBACA,yBACA,+BACA,6BACA,8BACA,mCACA,0BACA,uBACA,gCACA,4BACA,gCACA,4BACA,2BACA,+BACA,yBACA,4BACA,yBACA,wBACA,kBACA,6BACA,sCACA,uCACA,oCACA,mCACA,uCACA,mCACA,yCACA,sCACA,2CACA,+CACA,qCACA,qCACA,uCACA,uCACA,yCACA,uCACA,mCACA,4CACA,4BACA,yCACA,oCACA,qCACA,2CACA,sCACA,0CACA,uBACA,kCACA,0CACA,2CACA,4CACA,2CACA,6CACA,0CACA,yCACA,0CACA,4BACA,kCAMA,yCAAA,oCACA,kCACA,mCACA,wCACA,yCACA,6BACA,wCACA,sCACA,kCACA,iCAGA,yCAAA,+CAIA,4CAAA,wCACA,oCACA,uBACA,sBACA,gCACA,0BACA,4BACA,iCACA,6BACA,+BACA,gCACA,gCACA,2BACA,wBACA,2BACA,gCACA,2BACA,wCACA,sCACA,0BACA,sBACA,+BACA,yBACA,2BACA,0BACA,uBACA,iCACA,iBACA,oCAQDU,OAAOT,MAmDd,WAAC,YAGCF,SAAQC,OAAO,gCAQjB,WAAC,YAGCD,SAAQC,OAAO,4BAIjB,WAAC,YAOG,SAASC,GAAYU,GACnBA,EADFC,MAAS,2BACPR,IAAA,8BACGS,YAAM,2DACLC,MAAK,6BACLC,WAAA,8BACAC,aAAO,oCATbjB,QAAQC,OAAO,0CACZU,OAAOT,MAcd,WACE,YAMA,SAHGA,GAAOU,GAIRA,EACGC,MAAM,QAFXR,IAAS,QACPS,YAAA,2BACGC,MAAM,OACLC,WAAK,WACLC,aAAa,KACbC,aACAC,MAAA,EACAC,KAAA,mDAbNpB,QAAAC,OAAA,uBAGGU,OAAOT,MAkBZ,WACE,YAEA,SAAQA,GAAOU,GAKbA,EACGC,MAAM,qBACLR,IAAK,sBAHXS,YAAS,8CACPC,MAAA,oBACGC,WAAM,iBACLC,aAAK,KACLC,aACAC,MAAO,EACPC,KAAA,mDAbPpB,QAAAC,OAAY,oCACXU,OAAAT,MAsBF,WACI,YAMA,SAASA,GAAYU,GAJrBA,EACKC,MAAO,kBAMAR,IAAK,oBACLS,YAAa,6DAJhBC,MAAA,sBACLC,WAAA,wBACKC,aAAM,OAMJJ,MALM,oBACLR,IAAA,iBACAS,YAAO,uEACPC,MAAA,2BACAC,WAAA,mBACDC,aAAM,OAMNJ,MALM,aACLR,IAAA,cACAS,YAAO,6CACPC,MAAA,aACAC,WAAA,gBACDC,aAAM,KACLI,QACAC,KAAAC,UAODV,MALC,uBACAR,IAAA,wBACAS,YAAQ,yEAMRC,MALI,uBAMJC,WAAY,oBAJbC,aAAM,OAMNJ,MALM,kBACLR,IAAA,mBACAS,YAAO,uDACPC,MAAA,4BACAC,WAAA,qBACDC,aAAM,OAMNJ,MALM,kBACLR,IAAA,mBACAS,YAAO,uDACPC,MAAA,kBACAC,WAAA,qBACDC,aAAM,OAMNJ,MALM,UACLR,IAAA,WACAS,YAAO,uCACPC,MAAA,UACAC,WAAA,aACDC,aAAM,KACLI,QACAC,KAAAC,UAODV,MALC,iBACAR,IAAA,kBACAS,YAAQ,qDAMRC,MALI,kBAMJC,WAAY,oBAJbC,aAAM,OAMNJ,MALM,yBACLR,IAAA,0BACAS,YAAO,qEACPC,MAAA,8BACAC,WAAA,4BACDC,aAAM,OAMNJ,MALM,iBACLR,IAAA,kBACAS,YAAO,iDACPC,MAAA,yBACAC,WAAA,oBACDC,aAAM,OAMNJ,MALM,cACLR,IAAA,eACAS,YAAO,2CACPC,MAAA,4BACAC,WAAA,iBACDC,aAAM,OAMNJ,MALM,mBACLR,IAAA,kBACAS,YAAO,yDACPC,MAAA,oBACAC,WAAA,sBACDC,aAAM,OAORJ,MALG,gBAEAG,WAAY,gBACZC,aAAc,oCAnF1BjB,QAAQC,OAAO,0BAHlBU,OAAWT,MA+FZ,WACE,YAMA,SAASA,GAAYU,GACnBA,EALFC,MAAQ,QACLR,IAAO,QAOJS,YAAa,2BACbC,MAAO,OALbC,WAAS,WACPC,aAAA,oCALFjB,QAAQC,OAAO,uBACZU,OAAOT,MAeZ,WACI,YAAA,SAAAA,GAAAU,GAOIA,EACKC,MAAM,WANPR,IAAO,WACHS,YAAA,iCAQAC,MAAO,qBACPC,WAAY,cANfC,aAAY,KACjBC,aACWC,MAAA,EACHC,KAAK,8CAPjBpB,QAAQC,OAAO,0BACVU,OAAOT,MAkBhB,WACI,YAQA,SAASA,GAAYU,GACjBA,EAPIC,MAAO,aACPR,IAAA,cASIS,YAAa,8DAPbC,MAAA,0BASAC,WAAY,gBACZC,aAAc,OAPjBJ,MAAA,iBACLR,IAAA,kBACKS,YAAM,sEACHC,MAAK,2BACLC,WAAA,oBACAC,aAAO,OAURJ,MARC,cACDR,IAAM,cACLS,YAAK,8EACLC,MAAA,oBACAC,WAAO,wBACPC,aAAY,OAUbJ,MAAM,+BAPNR,IAAM,+BACLS,YAAK,kGACLC,MAAA,8BACAC,WAAO,4BACPC,aAAY,OAUbJ,MAAM,mBAPNR,IAAM,0BACLS,YAAK,0EACLC,MAAA,mBACAC,WAAO,sBACPC,aAAY,KACZI,QASIC,KAAMC,UAGXV,MARC,sBACAR,IAAA,sBACAS,YAAY,gFACZC,MAAA,uBACAC,WAAQ,yBASRC,aARU,OAUXJ,MAAM,qBAPNR,IAAM,qBACLS,YAAK,8EACLC,MAAA,sBACAC,WAAO,wBACPC,aAAY,OAUbJ,MAAM,YAPNR,IAAM,YACLS,YAAK,4DACLC,MAAA,wBACAC,WAAO,eACPC,aAAY,OAUbJ,MAAM,UAPNR,IAAM,UACLS,YAAK,6DACLC,MAAA,qBACAC,WAAO,kBACPC,aAAY,KACZI,QASIC,KAAMC,OAPXC,OAAM,KAUNX,MARC,cACAR,IAAA,cACAS,YAAY,wDACZC,MAAA,cACAC,WAAQ,aASRC,aARU,KASVI,QACIC,KAAMC,UAIbV,MARG,4BACAR,IAAA,4BACAS,YAAA,6DACAC,MAAA,uBASAC,WARU,kBASVC,aAAc,KACdI,QACIC,KAAMC,OAPPC,OAAA,KAUJX,MARC,kBACAR,IAAA,kBACAS,YAAY,6DACZC,MAAA,mBACAC,WAAQ,kBASRC,aARU,KASVI,QACIC,KAAMC,OAPXC,OAAM,KAUNX,MARC,2BACAR,IAAA,2BACAS,YAAY,6DACZC,MAAA,sBACAC,WAAQ,kBASRC,aARU,KASVI,QACIC,KAAMC,OAPXC,OAAM,KAYZX,MAAM,cAPCR,IAAA,eACAS,YAAQ,gEASRC,MARI,oBASJC,WARY,iBASZC,aAAc,OAEfJ,MAAM,kBAPNR,IAAA,kBACCS,YAAK,6DACLC,MAAA,YACAC,WAAO,oBACPC,aAAY,KACZI,QASIC,KAAMC,OAPXC,OAAM,EACLC,KAAK,YAUNZ,MARC,sBACAR,IAAA,yBACAS,YAAA,6DACAC,MAAA,wBASAC,WARU,oBASVC,aARY,KASZI,QACIC,KAAMC,OAPXC,OAAMD,UAWNV,MARC,cACAR,IAAA,gBACAS,YAAA,wEACAC,MAAA,eASAC,WARU,iBASVC,aARY,OAUbJ,MAAM,iBAPNR,IAAM,iBACLS,YAAK,sEACLC,MAAA,iBACAC,WAAO,oBACPC,aAAY,OAUbJ,MAAM,yBAPNR,IAAM,yBACLS,YAAK,kEACLC,MAAA,uBACAC,WAAO,0BACPC,aAAY,KACZI,QASIC,KAAMC,OAPXC,OAAM,KAUNX,MARC,YACAR,IAAA,aACAS,YAAY,kEACZC,MAAA,aACAC,WAAQ,0BASRC,aARU,KASVI,QACIC,KAAMC,OAPXC,OAAM,KAUNX,MARC,wBACAR,IAAA,yBACAS,YAAY,kEACZC,MAAA,sBACAC,WAAQ,0BASRC,aARU,KASVI,QACIC,KAAMC,OAPXC,OAAM,KAUNX,MARC,eACAR,IAAA,gBACAS,YAAY,kEACZC,MAAA,oBACAC,WAAQ,0BASRC,aARU,KASVI,QACIC,KAAMC,OAPXC,OAAM,KAUNX,MARC,cACAR,IAAA,eACAS,YAAY,kEACZC,MAAA,YACAC,WAAQ,0BASRC,aARU,KASVI,QACIC,KAAMC,OAPXC,OAAM,KAWRX,MARG,sBACAR,IAAA,sBACAS,YAAA,wFACAC,MAAA,uBASAC,WARU,yBASVC,aARY,OAUbJ,MAAM,aAPRR,IAAM,aACHS,YAAK,6DACLC,MAAA,aACAC,WAAO,oBACPC,aAAY,KACZI,QASIC,MAAM,EAPXE,OAAM,EACLC,KAAK,YAWNZ,MARC,mBACAR,IAAA,mBACAS,YAAQ,0EASRC,MARI,wBASJC,WARY,sBASZC,aARU,OASXJ,MAAM,gBACLR,IAAK,gBAPNS,YAAM,oEACLC,MAAK,iBACLC,WAAA,mBACAC,aAAO,OAYdJ,MAAM,eAPCR,IAAA,eACAS,YAAO,0DACPC,MAAA,sBACAC,WAAA,kBASAC,aAAc,OALrBJ,MAAM,kBACCR,IAAK,aACLS,YAAa,gEACbC,MAAO,kBACPC,WAAY,eACZC,aAAc,OAUjBJ,MAAM,qBAPNR,IAAM,0BACHS,YAAK,yEACLC,MAAA,sBACAC,WAAO,4BACPC,aAAY,OASbJ,MARC,gBASAR,IAAK,oBAPRS,YAAM,oFACHC,MAAK,qBACLC,WAAA,uBACAC,aAAO,OASRJ,MARC,sBACAR,IAAA,4BACDS,YAAM,oFACLC,MAAK,wBACLC,WAAA,2BACAC,aAAO,KACPI,QACAC,KAAAC,OACDC,OAAM,kCAlRjBxB,QAAQC,OAAO,2BACP,2CAEHU,OAAOT,MA4RhB,WACI,YAMA,SAASA,GAAYU,GAPxBA,EACGC,MAAA,cASYR,IAAK,eACLS,YAAa,4DARjBE,WAAO,kBACHD,MAAA,iBAUAE,aAAc,OACfJ,MAAM,iBARRR,IAAA,mBACLS,YAAA,gEACKE,WAAM,oBACHD,MAAK,oBACLE,aAAa,OAUdJ,MATC,YACAR,IAAA,cACAS,YAAA,wDACDE,WAAM,eACLD,MAAK,aACLE,aAAa,OAWdJ,MATC,eACAR,IAAA,gBACDS,YAAM,4DACLE,WAAK,gBACLD,MAAA,kBACAE,aAAY,OAUbJ,MATC,cACAR,IAAA,eAUAS,YAAa,0DARdE,WAAM,eACLD,MAAK,iBACLE,aAAa,OAWdJ,MATC,YACAR,IAAA,YACDS,YAAM,wDACLE,WAAK,eACLD,MAAA,0BACAE,aAAY,OAUbJ,MATC,8BACAR,IAAA,8BAUAS,YAAa,4FARdE,WAAM,iCACLD,MAAK,wBACLE,aAAa,OAUdJ,MATC,6BACAR,IAAA,6BACAS,YAAA,0FACDE,WAAM,gCACLD,MAAK,sBACLE,aAAa,OAUdJ,MATC,oBACAR,IAAA,oBACAS,YAAA,wEACDE,WAAM,uBACLD,MAAK,0BACLE,aAAa,OAUdJ,MATC,QACAR,IAAA,QACAS,YAAA,gDACDE,WAAM,WACLD,MAAK,OACLE,aAAa,OAUdJ,MATC,YACAR,IAAA,aACAS,YAAA,0DACDE,WAAM,eACLD,MAAK,QACLE,aAAa,OAUdJ,MATC,uBACAR,IAAA,yBACAS,YAAA,2EACDE,WAAM,0BACLD,MAAK,wBACLE,aAAa,OAUdJ,MATC,0BACAR,IAAA,2BACAS,YAAA,oFACDE,WAAM,6BACLD,MAAK,uBACLE,aAAa,oCA5EzBjB,QAAQC,OAAO,uCACVU,OAAOT,MAwFhB,WACE,YAMA,SAASA,GAAYU,GACnBA,EARHC,MAAY,qBACXR,IAAA,sBAUMS,YAAa,+EACbC,MAAO,sBATbC,WAAe,0BACZC,aAAO,KAWJI,QACEC,KAAMC,UAPTV,MAAM,mBACLR,IAAK,oBACLS,YAAa,yDACbC,MAAO,sBACPC,WAAY,sBACZC,aAAc,KACdI,QACEC,KAAMC,OAWNC,OAAQ,KAPVX,MAAK,iCACLR,IAAA,kCACAS,YAAO,yDACPC,MAAA,uBACAC,WAAA,sBACAC,aAAQ,KAWRI,QATEC,KAAAC,OAWAC,OAAQ,KAPVX,MAAK,gCACLR,IAAA,iCACAS,YAAO,yDACPC,MAAA,sBACAC,WAAA,sBACAC,aAAQ,KAWRI,QATEC,KAAAC,OAWAC,OAAQ,KAPVX,MAAK,uBACLR,IAAA,uBACAS,YAAO,yDACPC,MAAA,6BACAC,WAAA,sBACAC,aAAQ,KAWRI,QATEC,KAAAC,OAWAC,OAAQ,KAPVX,MAAK,kBACLR,IAAA,kBACAS,YAAO,uEACPC,MAAA,0BACAC,WAAA,qBACAC,aAAQ,oCAvDdjB,QAAQC,OATM,8BAUXU,OAAOT,MAqEZ,WACI,YAMA,SAASA,GAAYU,GACjBA,EACKC,MAAM,sBATPR,IAAA,sBACRS,YAAA,wEAWYC,MAAO,0BACPC,WAAY,yBAVhBC,aAAO,OACVJ,MAAO,oBAYAR,IAAK,oBACLS,YAAa,oEAVhBC,MAAA,qBACLC,WAAA,uBACKC,aAAM,oCANfjB,QAVIC,OAAO,mCACPU,OAAAT,MA8BR,WACE,YAMA,SAASA,GAXKU,GAYZA,EACGC,MAAM,qBACLR,IAAK,sBAVZS,YAAY,8CACXC,MAAA,qBAYMC,WAAY,wBACZC,aAAc,KAXpBC,aACGC,MAAO,EAaFC,KAAM,+CAddpB,QAAQC,OAXM,oCAYXU,OAAOT,MAmBZ,WACI,YAMA,SAASA,GAAYU,GACjBA,EACKC,MAAM,0BACHR,IAAK,gCACLS,YAAa,2DAXjBC,MAAA,0BACRC,WAAA,wBAaYC,aAAc,OAXlBJ,MAAO,qBACHR,IAAA,+BAcAS,YAAa,gEACbC,MAAO,0BAZVC,WAAY,oBACjBC,aAAA,OAeKJ,MAbG,qBACAR,IAAA,2BACAS,YAAO,oEACPC,MAAA,0BACAC,WAAA,wBAcAC,aAAc,KAZjBI,QACGC,KAAKC,UAgBRV,MAbG,0BACAR,IAAA,0BAcAS,YAAa,4EAZhBC,MAAM,wBACHC,WAAK,mCACLC,aAAa,KACbI,QACAC,KAAAC,UAgBHV,MAAM,yBACHR,IAAK,yBACLS,YAAa,gFAZhBC,MAAM,sBACHC,WAAK,gCACLC,aAAa,KACbI,QACAC,KAAAC,UAgBHV,MAAM,gBACHR,IAAK,gBACLS,YAAa,8CAZhBC,MAAM,2BACHC,WAAK,eACLC,aAAa,KACbI,QACAC,KAAAC,UAgBHV,MAAM,kBACHR,IAAK,YACLS,YAAa,oEAZhBC,MAAM,kBACHC,WAAK,wBACLC,aAAa,KACbI,QACAC,KAAAC,uCAtDZvB,QAZIC,OAAA,6BACAU,OAAAT,MAmFR,WACE,YAMA,SAASA,GAbKU,GAcZA,EACGC,MAAM,WACLR,IAAK,WACLS,YAAa,iCACbC,MAAO,UAZdC,WAAY,cACXC,aAAA,KAcMC,aACEC,MAAO,EAbPC,KAAA,+CAARpB,QAAQC,OAbM,0BAcXU,OAAOT,MAkBZ,WACE,YAMA,SAdMA,GAAaU,GAejBA,EACGC,MAdG,aAeFR,IAAK,QACLS,YAAa,qCACbC,MAAO,OACPC,WAAY,gBAbnBC,aAAY,KACXI,QAeQC,KAAMC,UAbdV,MAAQ,cACLR,IAAO,wBAgBJS,YAAa,0CACbC,MAAO,wBAdbC,WAAS,qBACPC,aAAA,KACGI,QACCC,KAAKC,UAELV,MAAO,oBACPR,IAAA,qBACAS,YAAA,4CACAC,MAAA,UAgBAC,WAfQ,mBAgBRC,aAAc,KACdI,QAdAC,KAAKC,UAELV,MAAO,cACPR,IAAA,eACAS,YAAA,sCACAC,MAAA,cAgBAC,WAfQ,iBAgBRC,aAAc,KACdI,QAdAC,KAAKC,UAELV,MAAO,mBACPR,IAAA,2BACAS,YAAA,wCACAC,MAAA,mBAgBAC,WAfQ,mBAgBRC,aAAc,KACdI,QAdAC,KAAKC,UAELV,MAAO,gBACPR,IAAA,iBACAS,YAAA,wCACAC,MAAA,6BAgBAC,WAfQ,iBAgBRC,aAAc,KACdI,QAdAC,KAAKC,uCA3CXvB,QAdMC,OAAA,4BAeHU,OAdGT,MA4ER,WACE,YAMA,SAfMA,GAAYU,GAgBhBA,EACGC,MAfC,cAgBAR,IAfE,cAgBFS,YAAa,uCACbC,MAAO,aACPC,WAAY,iBACZC,aAAc,KAdrBC,aACCC,MAAA,EAgBQC,KAAM,iDAddpB,QAfOC,OAAM,6BAgBVU,OAfGT,MAiCR,WAfE,YAsBA,SAhBMA,GAAYU,GAiBhBA,EACGC,MAhBC,eAiBAR,IAhBE,eAiBFS,YAhBQ,yCAiBRC,MAAO,cACPC,WAAY,kBACZC,aAAc,KACdC,aAfPC,MAAY,EACXC,KAAA,4CAEApB,QAhBKC,OAAM,8BAiBRU,OAhBGT,MAkCR,WACI,YAMA,SAjBIA,GAAOU,GACPA,EACAC,MAAA,eACAR,IAAa,eACXS,YAAO,uDACDC,MAAA,eAkBAC,WAAY,kBACZC,aAAc,KACdC,aACIC,MAAO,EAhBfC,KAAA,kBAoBCP,MAAM,kBAjBPR,IAAO,eACHS,YAAA,qDAmBAC,MAAO,mBACPC,WAAY,iBAjBfC,aAAY,KACjBC,aACWC,MAAA,GACHC,KAAK,kBAqBRP,MAlBG,iBACAR,IAAA,iBACAS,YAAa,2DAmBbC,MAlBI,iBAmBJC,WAlBU,mBAmBVC,aAAc,KACdC,aAjBGC,MAAA,GACHC,KAAK,gBAELC,QACAC,KAAAC,UAqBHV,MAAM,gBACHR,IAlBI,gBAmBJS,YAAa,yDACbC,MAAO,gBAjBVC,WAAM,mBACHC,aAAK,KACLC,aACAC,MAAO,GACPC,KAAA,kBAqBDP,MAlBK,0BAmBJR,IAlBI,mBAmBJS,YAAa,sEAjBbC,MAAA,yCAmBAC,WAlBU,sBAmBVC,aAAc,OAhBjBJ,MAAM,mCACHR,IAAK,4BACLS,YAAa,wFACbC,MAAO,uBACPC,WAAY,+BACZC,aAAc,OAoBfJ,MAlBK,0CAmBJR,IAlBI,mCAmBJS,YAAa,sGACbC,MAAO,sCAjBRC,WAAM,sCACLC,aAAK,OAqBNJ,MAlBC,kCACAR,IAAA,WAmBAS,YAAa,sEAjBdC,MAAM,qCACLC,WAAK,cACLC,aAAa,OAqBdJ,MAlBC,8CAmBAR,IAAK,6BAjBNS,YAAM,oGACLC,MAAK,gCACLC,WAAA,gCACAC,aAAO,OAoBRJ,MAlBC,qBAmBAR,IAAK,qBACLS,YAAa,mEAjBdC,MAAM,4CACLC,WAAK,wBACLC,aAAa,OAqBdJ,MAlBC,0BAmBAR,IAAK,0BACLS,YAAa,6EAjBdC,MAAM,uBACLC,WAAK,6BACLC,aAAa,OAoBdJ,MAlBC,sBACAR,IAAA,sBAmBAS,YAAa,qEAjBdC,MAAM,wBACLC,WAAK,yBACLC,aAAa,OAqBdJ,MAlBC,2CAmBAR,IAAK,gBACLS,YAAa,4FAjBdC,MAAM,8CACLC,WAAK,kCACLC,aAAa,KACbC,aACAC,MAAA,GACAC,KAAA,+CAxHZpB,QAAAC,OAAA,gCACGU,OAAMT,MAmJb,WACE,YAMA,SAASA,GAlBSU,GAmBhBA,EACGC,MAAM,YACLR,IAAK,YACLS,YAAa,mCACbC,MAAO,YACPC,WAAY,eACZC,aAAc,KACdC,aACEC,MAAO,EACPC,KAAM,uDAddpB,QAAQC,OAlBM,2BAmBXU,OAAOT,MAkBZ,WACI,YAMA,SAnBSA,GAAAU,GACLA,EACAC,MAAO,iBACPR,IAAY,iBACZS,YAAc,6CACdC,MAAa,qBACXC,WAAO,oBACDC,aAAA,KAoBAC,aACIC,MAAO,EACPC,KAAM,uDAdtBpB,QAAQC,OAAO,gCAlBjBU,OAAST,MAqCX,WAnBI,YA0BA,SApBSA,GAAMU,GAqBXA,EACKC,MApBG,qBACAR,IAAA,eACAS,YAAY,qDACZC,MAAA,sBACAC,WAAA,wBAqBAC,aApBW,OAsBdJ,MAAM,gBACHR,IAAK,gBACLS,YAAa,kDACbC,MAAO,oBAnBVC,WAAA,qBACTC,aAAA,oCAEAjB,QAAQC,OAAO,oCACVU,OAAOT,MAqBhB,WACI,YAMA,SAASA,GArBGU,GAsBRA,EACKC,MArBG,iBACAR,IAAA,kBAsBAS,YAAa,6CApBhBC,MAAM,kBACHC,WAAK,oBACLC,aAAa,KACbC,aACAC,MAAA,EACAC,KAAA,kBAuBDP,MAAM,kBACLR,IAAK,mBApBTS,YAAA,8CACRC,MAAA,kBAsBYC,WAAY,qBACZC,aAAc,KArBlBC,aACIC,MAAA,EAuBIC,KAAM,+CA7CtBpB,QAAAC,OAAS,0BACLU,OAAAT,MAiDR,WACI,YAMA,SAASA,GAtBOU,GAuBZA,EACKC,MAtBE,sBACCR,IAAK,uBACLS,YAAa,gEACbC,MAAO,YACPC,WAAY,yBACZC,aAAc,OACdJ,MAAA,wBAuBAR,IAtBI,yBAuBJS,YAtBU,oEAuBVC,MAAO,cACPC,WAAY,2BACZC,aAAc,OACfJ,MAAM,oBArBRR,IAAA,qBACTS,YAAA,sDAuBYC,MAAO,gBACPC,WAAY,yBAtBhBC,aAAO,OACPJ,MAAA,iBAwBIR,IAAK,kBACLS,YAAa,gDAtBhBC,MAAA,cACLC,WAAA,iBACKC,aAAM,oCANfjB,QAAQC,OAtBI,2BAuBXU,OAAOT,MAgCZ,WACE,YAMA,SAASA,GAvBKU,GAwBZA,EACGC,MAAM,kBACLR,IAAK,kBACLS,YAvBQ,4DAwBRC,MAAO,qBACPC,WAvBQ,qBAwBRC,aAvBa,KAwBbC,aACEC,MAvBM,EAwBNC,KAvBM,kBA0BRP,MAAM,cACNR,IAAK,cACLS,YAAa,oDAtBpBC,MAAY,iBACXC,WAAA,iBAwBMC,aAAc,oCAtBpBjB,QAAQC,OAvBM,+BAwBXU,OAAOT,MAyBZ,WACI,YAMA,SAxBIA,GAAOU,GACPA,EACAC,MAAA,cACAR,IAAa,cACXS,YAAO,uCACDC,MAAA,cAyBAC,WAAY,iBACZC,aAAc,oCAnC1BjB,QAAAC,OAAA,6BACGU,OAAMT,MAsCb,WACI,YAlBA,SAAAA,GAAAU,GAyBIA,EACKC,MAAM,uBAxBPR,IAAO,yBACHS,YAAA,yEA0BAC,MAAO,wBACPC,WAAY;AAxBfC,aAAY,OAEZJ,MAAM,0BACHR,IAAK,yBACLS,YAAa,2EACbE,WAAO,2BACPD,MAAA,2BACAE,aAAc,OA2BjBJ,MAAM,uBACHR,IAAK,uBAxBTS,YAAA,uEACRE,WAAA,yBA0BYD,MAAO,yBACPE,aAAc,OAGrBJ,MAAM,qBACHR,IAAK,sBAzBbS,YAAqB,4DACjBE,WAAA,wBA2BID,MA1BO,yBA2BPE,aA1BS,OA6BZJ,MAAM,mBACHR,IA1BI,qBA2BJS,YAAa,iEACbE,WA1BO,sBA2BPD,MA1BI,oBA2BJE,aA1BI,OA6BPJ,MAAM,mBACHR,IAAK,kBACLS,YA1BO,6DA2BPE,WA1BS,oBA2BTD,MA1BI,qBA2BJE,aA1BI,OA6BPJ,MAAM,gBACHR,IAAK,iBAzBRS,YAAM,2DACHE,WAAK,mBACLD,MAAA,gBACAE,aAAY,oCA/BpBjB,QAAQC,OAAO,kCACVU,OAAOT,MA4DhB,WACI,YAMA,SAASA,GAAYU,GACjBA,EAzBCC,MAAM,sBACHR,IAAK,sBACLS,YAAa,qEACbC,MAAA,cACAC,WAAO,yBACPC,aAAc,KA2BVC,aACIC,MAAO,EAzBZC,KAAA,kBAEHP,MAAA,wBACAR,IAAA,wBACAS,YAAO,8EACPC,MAAA,uBA2BIC,WAAY,2BACZC,aAAc,KACdC,aAzBJC,MAAA,EACRC,KAAA,kBA4BWP,MAAM,0BA1BTR,IAAO,OACHS,YAAA,+DA4BAC,MAAO,2BACPC,WAAY,UA1BfC,aAAY,KACjBC,aACWC,MAAA,EACHC,KAAK,kBA6BNP,MA3BC,iBACAR,IAAA,MACAS,YAAA,qDACAC,MAAA,yBA4BAC,WA3BW,SA4BXC,aA3BU,KA4BVC,aA1BDC,MAAM,EACLC,KAAK,kBA6BNP,MA3BC,uBACAR,IAAA,OACAS,YAAA,4DACAC,MAAA,sBA4BAC,WA3BW,UA4BXC,aA3BU,KA4BVC,aA1BDC,MAAM,EACLC,KAAK,kBA6BNP,MA3BC,2BACAR,IAAA,OACAS,YAAA,gEACAC,MAAA,0BA4BAC,WA3BW,UA4BXC,aA3BU,KA4BVC,aA1BDC,MAAM,EACLC,KAAK,kBA8BRP,MA3BG,qBACAR,IAAA,sBACAS,YAAa,8EA4BbC,MA3BI,qBA4BJC,WA3BU,wBA4BVC,aAAc,OA1BfJ,MAAM,gBACLR,IAAK,iBACLS,YAAa,8DACbC,MAAO,eACPC,WAAY,mBACZC,aAAc,KACdC,aACIC,MAAO,EACPC,KAAM,kBAEXP,MAAM,0BACLR,IAAK,2BACLS,YAAa,kFACbC,MAAO,0BACPC,WAAY,6BACZC,aAAc,OA6BjBJ,MAAM,kBACHR,IA3BI,mBA4BJS,YAAa,kEACbC,MAAO,iBA1BVC,WAAM,qBACHC,aAAK,KACLC,aAAaC,MAAA,EAAAC,KAAA,+CArEzBpB,QA1BQC,OAAA,qCA2BHU,OA1BGT,MA8HZ,WACI,YAMA,SAASA,GA3BOU,GA4BZA,EACKC,MA3BE,oBACCR,IAAK,qBACLS,YAAa,kEACbE,WAAO,uBACPD,MAAA,uBACAE,aAAc,OAEjBJ,MAAM,uBACHR,IAAK,wBACLS,YAAa,wEACbE,WAAO,0BACPD,MAAA,0BACAE,aAAc,OA6BjBJ,MAAM,gBACHR,IAAK,iBACLS,YAAa,0DACbE,WAAY,mBA1BfD,MAAA,mBACTE,aAAA,OA6BSJ,MAAM,gBA3BPR,IAAO,sBACHS,YAAA,0DA6BAE,WAAY,wBACZD,MAAO,wBA3BVE,aAAY,OAEZJ,MAAM,kBACHR,IAAK,oBACLS,YAAa,8DACbE,WAAY,qBACZD,MAAO,mBACPE,aAAc,OAEjBJ,MAAM,oBACHR,IAAK,qBACLS,YAAa,0DACbE,WAAY,uBACZD,MAAO,uBACPE,aAAc,OA+BjBJ,MA5BG,eACAR,IAAA,gBACAS,YAAY,wDACZE,WAAO,kBACPD,MAAA,eA6BAE,aAAc,oCAtD1BjB,QAAQC,OA3BI,iCA4BPU,OA3BOT,MAoFhB,WACI,YAMA,SAASA,GA5BGU,GA6BRA,EACKC,MA5BG,gBA6BAR,IAAK,gBA3BRS,YAAM,2CACHC,MAAK,eACLC,WAAA,mBACAC,aAAY,KACZC,aACAC,MAAA,EA6BIC,KAAM,0BAGbP,MA5BG,qBACAR,IAAA,sBACAS,YAAY,qDACZC,MAAO,qBACPC,WAAA,wBA6BAC,aAAc,KACdC,aACIC,MAAO,EA3BfC,KAAA,uDAGRpB,QAAQC,OAAO,+BACVU,OA5BIT,MAyDb,WACI,YAMA,SAASA,GA7BGU,GA8BRA,EACKC,MA7BG,YACAR,IAAA,YACAS,YAAa,mCA8BbC,MA7BI,WA8BJC,WA7BU,eA8BVC,aAAc,oCAxC1BjB,QAAAC,OAAS,2BACLU,OAAAT,MA4CR,WACI,YAMA,SAASA,GAAYU,GACjBA,EACKC,MAAM,YA5BPR,IAAA,mBACRS,YAAA,+CA8BYC,MAAO,kBACPC,WAAY,qBA7BhBC,aAAO,oCAmBfjB,QAAQC,OA7BI,iCA8BXU,OAAOT,MAcZ,WACI,YAMA,SAASA,GA9BGU,GA+BRA,EACKC,MAAM,wBACHR,IAAK,yBACLS,YAAa,uEA7BhBC,MAAA,uBACTC,WAAA,2BA+BYC,aAAc,OACfJ,MAAM,2BA9BTR,IAAO,8BACPS,YAAA,+EAgCIC,MAAO,8BACPC,WAAY,+BA9BfC,aAAY,KACjBI,QACWC,KAAAC,UAiCJV,MA/BC,gCACAR,IAAA,qBACAS,YAAY,oFACZC,MAAA,oCAgCAC,WAAY,oCACZC,aAAc,KACdI,QA9BJC,KAAAC,OACRC,OAAA,KAiCWX,MAAM,iCA/BTR,IAAO,kCACHS,YAAA,yEAiCAC,MAAO,uBACPC,WAAY,oCA/BfC,aAAY,KACjBI,QACWC,KAAAC,OACHC,OAAK,KAkCNX,MAhCC,mCACAR,IAAA,wBACAS,YAAA,mFACDC,MAAM,eACLC,WAAK,iCACLC,aAAa,KACbI,QACAC,KAAAC,OACAC,OAAA,KAkCDX,MAhCK,oCAiCJR,IAAK,yBA/BNS,YAAM,2EACLC,MAAK,gBACLC,WAAA,sCACAC,aAAO,KACPI,QACAC,KAAAC,OACAC,OAAQ,KAkCTX,MAhCK,qBAiCJR,IAAK,qBA/BNS,YAAM,iEACLC,MAAK,sBACLC,WAAA,wBACAC,aAAO,KACPI,QACAC,KAAAC,UAkCDV,MAhCK,2BAiCJR,IAhCI,2BAiCJS,YAAa,6EA/BdC,MAAM,4BACLC,WAAK,8BACLC,aAAa,KACbI,QACAC,KAAAC,UAkCDV,MAhCC,uBAiCAR,IAhCI,wBAiCJS,YAhCY,qEAiCZC,MAAO,0BA/BRC,WAAM,0BACLC,aAAK,oCApDjBjB,QAAQC,OA9BI,8BA+BPU,OA9BOT,MAqHhB,WACI,YAMA,SAASA,GAhCGU,GAiCVA,EACGC,MAAM,yBACLR,IAAK,2BACLS,YAhCM,6DAiCNC,MAAO,0BACPC,WAAY,4BACZC,aAhCW,oCAqBjBjB,QAAQC,OAAO,4BACZU,OAAOT,MAcd,WACI,YAMA,SAASA,GAhCGU,GAiCRA,EACKC,MAhCG,oBACAR,IAAA,oBAiCAS,YAAa,iFACbC,MAAO,oBACPC,WAAY,uBA/BfC,aAAA,OACTJ,MAAA,gBAiCYR,IAAK,iBACLS,YAAa,yEAhCjBC,MAAO,gBACLC,WAAA,mBAkCEC,aAAc,OACfJ,MAAM,qBAhCRR,IAAA,sBACPS,YAAA,mFACSC,MAAA,qBACAC,WAAA,wBACLC,aAAa,oCAUnBjB,QAAQC,OAAO,mCACVU,OAAOT,MA0BhB,WACI,YA5BA,SAAQA,GAAOU,GAmCbA,EACGC,MAAM,6BACLR,IAAI,6BAjCVS,YAAS,qEACLC,MAAA,8BAmCEC,WAlCS,gCAmCTC,aAlCW,KAmCXC,aACEC,MAlCI,EAmCJC,KAlCI,iDAbfpB,QAAAC,OAAY,4CACTU,OAAAT,MAmDJ,WACI,YAMA,SAASA,GAlCGU,GAmCRA,EACKC,MAAM,YACHR,IAAK,YACLS,YAAa,wCAjChBC,MAAA,2BACTC,WAAA,eAmCYC,aAAc,KACdC,aAlCGC,MAAA,EACLC,KAAA,gBAqCEC,QAlCHC,KAAYC,UAEVV,MAAA,yBACDR,IAAA,yBACJS,YAAa,kDACbC,MAAO,wBACPC,WAAY,4BACZC,aAAc,KACdC,aACSC,MAAA,EACDC,KAAA,kBAqCHP,MAAM,wBACLR,IAAK,wBACLS,YAAa,iDAlCjBC,MAAA,sBACRC,WAAA,2BAoCYC,aAAc,KACdC,aAnCGC,MAAA,EACHC,KAAA,kBAsCDP,MAAM,eAnCRR,IAAA,eACLS,YAAA,wCACKC,MAAM,cACHC,WAAK,kBACLC,aAAa,KACbC,aACAC,MAAA,EACAC,KAAA,+CAXZpB,QAAQC,OAlCG,qBAmCNU,OAlCOT,MAqFhB,WACI,YAMA,SAASA,GApCGU,GAqCVA,EACGC,MAAM,iBACLR,IAAK,iBACLS,YApCU,6CAqCVC,MAAO,iBACPC,WApCW,oBAqCXC,aApCW,oCAyBjBjB,QAAQC,OApCG,gCAqCRU,OAAOT,MAcd,WACI,YAOA,SAASA,GApCUU,GAqCfA,EApCQC,MAAY,kBACZR,IAAA,mBACAS,YAAa,mDAqCbC,MApCI,4BAqCJC,WApCU,qBAqCVC,aAAc,OAEfJ,MAAM,YACLR,IAAK,aAnCRS,YAAA,6CACTC,MAAA,uBAqCYC,WAAY,eACZC,aAAc,KApClBI,QACEC,KAAAC,OAsCMC,OAAQ,KAlCtBX,MAAA,yBACSR,IAAA,0BACAS,YAAA,6CACLC,MAAa,wBACbC,WAAO,eACPC,aAAY,KACZI,QAsCUC,KAAMC,OACNC,OAAQ,KAnChBX,MAAA,wBACRR,IAAA,yBAsCYS,YAAa,6CACbC,MAAO,sBArCXC,WAAO,eACXC,aAAA,KACMI,QAuCMC,KAAMC,OACNC,OAAQ,KApCpBX,MAAA,WACQR,IAAK,YACLS,YAAa,mDACbC,MAAO,kBACPC,WAAY,qBACZC,aAAc,KAuCdI,QArCDC,KAAMC,OACLC,OAAK,KAwCNX,MAtCC,mBACAR,IAAA,oBACAS,YAAA,6CACAC,MAAA,oBAuCAC,WAtCU,eAuCVC,aAtCY,KAuCZI,QACIC,KAAMC,OArCPC,OAAA,KAwCJX,MAtCC,aACAR,IAAA,oBACAS,YAAY,6CACZC,MAAA,sBACAC,WAAQ,eAuCRC,aAtCU,KAuCVI,QACIC,KAAMC,OArCXC,OAAM,KAwCNX,MAtCC,iBACAR,IAAA,kBACAS,YAAY,iDACZC,MAAA,iBACAC,WAAQ,oBAuCRC,aAtCU,KAuCVI,QACIC,KAAMC,uCAjFtBvB,QAAQC,OAAO,mBACX,gCACDU,OAAOT,MAoFd,WACI,YAMA,SAASA,GAtCQU,GAuCbA,EACKC,MAtCG,gBACAR,IAAA,gBACAS,YAAA,0CACAC,MAAA,gBAuCAC,WAtCU,kBAuCVC,aAtCY,KAuCZC,aArCDC,MAAM,EACLC,KAAK,gBAwCNP,MAtCC,wBACAR,IAAA,wBACAS,YAAA,kDACAC,MAAA,wBAuCAC,WAtCU,0BAuCVC,aAtCY,KAuCZC,aArCDC,MAAM,EACLC,KAAK,6CAcjBpB,QAAQC,OAAO,+BACVU,OAAOT,MA4BhB,WACI,YAhCA,SAAAA,GAAAU,GAuCIA,EACKC,MAAM,QAtCPR,IAAO,eACHS,YAAA,2BAwCAC,MAAO,mBACPC,WAAY,WAtCfC,aAAY,KACjBC,aACWC,MAAA,EACHC,KAAK,gBAyCNP,MAvCC,mBACAR,IAAA,qBACAS,YAAA,sDACAC,MAAA,sBAwCAC,WAvCW,sBAwCXC,aAvCU,KAwCVC,aAtCDC,MAAM,IACLC,KAAK,mCAejBpB,QAAQC,OAAO,uBACVU,OAAOT,MA4BhB,WACI,YAjCH,SAAWA,GAAAU,GACRA,EAwCSC,MAAM,YACHR,IAAK,oBAvCTS,YAAO,0DACHC,MAAA,mBAyCAC,WAAY,sBACZC,aAAc,OAvCjBJ,MAAA,mBACLR,IAAA,oBACKS,YAAc,0DACXC,MAAK,iCACLC,WAAA,sBACAC,aAAO,OAyCRJ,MAxCC,gBACAR,IAAA,iBACAS,YAAa,iEAyCbC,MAxCI,gCAyCJC,WAxCU,sBAyCVC,aAAc,OAvCfJ,MAAM,gBACLR,IAAK,iBACLS,YAAa,iEACbC,MAAO,mBACPC,WAAY,sBACZC,aAAc,oCAW1BjB,QAAQC,OAAO,2BACVU,OAAOT,MAgChB,WACE,YAMA,SAASA,GAAYU,GAxCnBA,EA0CGC,MAzCE,SA0CDR,IAAK,SACLS,YAAa,6BAxCjBC,MAAS,QACLC,WAAA,YA0CAC,aAzCW,KA0CXC,aACEC,MAzCM,EA0CNC,KAzCM,uDA2BdpB,QAAQC,OAAO,wBAvChBU,OAAWT,MA0DZ,WACI,YAEAF,SAAQC,OAzCI,8BA2ChB,WACI,YAMA,SAASC,GAzCGU,GA0CRA,EACKC,MAzCG,QACAR,IAAA,eA0CAS,YAAa,uCACbC,MAAO,cACPC,WAAY,iBAxCfC,aAAA,OACXJ,MAAA,OA0CcR,IAAK,cACLS,YAAa,sCAzCnBC,MAAO,uBACLC,WAAA,gBA2CIC,aAAc,OAxCnBJ,MAAA,aACPR,IAAA,oBACSS,YAAS,4CACTC,MAAA,mBACLC,WAAa,sBACNC,aAAA,oCAkBXjB,QAAQC,OAzCI,6BA0CPU,OAzCOT,MAoEhB,WACE,YAMA,SA1CEA,GAAAU,GA2CAA,EAzCAC,MAAQ,gBA2CJR,IAAK,iBAzCZS,YAAY,qCACTC,MAAA,gBA2CIC,WAAY,mBACZC,aAAc,KA1ClBC,aACKC,MAAO,EA4CNC,KAAM,+CAddpB,QAAQC,OAAO,+BACZU,OAAOT,MAmBZ,WACE,YAMA,SAASA,GA3CYU,GA4CnBA,EACGC,MAAM,eACLR,IAAK,iBACLS,YA3CW,8CA4CXC,MAAO,qBACPC,WA3CQ,iBA4CRC,aA3CQ,oCAgCdjB,QAAQC,OA3CM,oCA4CXU,OAAOT,MAcZ,WACI,YAMA,SA5CQA,GAAAU,GA6CJA,EACKC,MAAM,gBA3CRR,IAAA,kBACPS,YAAA,6CACSC,MAAA,iBACAC,WAAA,oBACLC,aAAa,oCAVnBjB,QAAAC,OAAA,gCA4COU,OAAOT,MAchB,WACE,YAMA,SAASA,GAAYU,GA3CtBA,EACCC,MAAA,mBA6CMR,IAAK,qBACLS,YAAa,sDA5CnBC,MAAQ,sBACLC,WAAO,sBA8CJC,aAAc,KACdC,aA5CNC,MAAS,IACPC,KAAA,MAEIP,MAAK,cACLR,IAAA,eACAS,YAAO,8CACPC,MAAA,wBACAC,WAAA,iBA8CAC,aAAc,KACdC,aACEC,MAAO,IA5ChBC,KAAW,MA+CHP,MAAM,iBACPR,IAAK,kBA7CTS,YAAe,kDA+CXC,MA9CC,0BA+CDC,WAAY,oBACZC,aAAc,oCA/BpBjB,QAAQC,OAAO,oBACb,2BACCU,OAAOT,MAiCZ,WACI,YAMA,SAASA,GAAYU,GA7CxBA,EACCC,MAAA,gBA+CcR,IAAK,iBACLS,YAAa,2CA9CnBC,MAAO,gBACbC,WAAA,mBACQC,aAAA,OAgDGJ,MAAM,kBA9CVR,IAAA,mBACPS,YAAA,4DACSC,MAAA,6BACAC,WAAA,qBACLC,aAAa,OACNJ,MAAA,gBACPR,IAAY,iBACZS,YAAc,wDACdC,MAAa,6BACXC,WAAO,mBACDC,aAAA,OAgDDJ,MAAM,uBA9CNR,IAAA,oBACFS,YAAA,0DACLC,MAAa,kBACNC,WAAA,0BACPC,aAAY,OACZJ,MAAA,qBACAR,IAAa,kBACXS,YAAO,wDACDC,MAAA,mBAgDAC,WAAY,wBA9CbC,aAAA,oCAYXjB,QAAQC,OA9CI,+BA+CPU,OA9COT,MAoFhB,WACI,YAMA,SAASA,GAAYU,GACjBA,EA/CIC,MAAO,mBACHR,IAAA,qBAiDAS,YAAa,2DACbC,MAAO,yBA/CVC,WAAY,sBACjBC,aAAA,KACKI,QACGC,KAAKC,UAoDRV,MAhDG,wBACDR,IAAM,+BACLS,YAAK,gEACLC,MAAA,8BACAC,WAAO,2BACPC,aAAY,KACZI,QACDC,KAAMC,OACLC,OAAK,KAmDRX,MAhDG,sBACAR,IAAA,8CACDS,YAAM,gEACLC,MAAK,uBACLC,WAAA,2BACAC,aAAO,KACPI,QACAC,KAAAC,OACDC,OAAM,KAmDRX,MAhDG,sBACAR,IAAA,6CACAS,YAAA,gEAiDAC,MAAO,sBACPC,WAAY,2BACZC,aAAc,KA/ClBI,QACRC,KAAAC,OAiDgBC,OAAQ,KA9CnBX,MAAO,0BAkDAR,IAAK,iCACLS,YAAa,gEAhDhBC,MAAA,oBACLC,WAAA,2BACKC,aAAM,KACHI,QACAC,KAAAC,OACAC,OAAO,KAoDVX,MAjDG,wBAkDAR,IAjDI,+BAkDJS,YAAa,gEACbC,MAAO,qBACPC,WAAY,2BAhDfC,aAAM,KACHI,QACAC,KAAAC,OACAC,OAAO,KAoDRX,MAjDC,uBAkDAR,IAjDI,sBAkDJS,YAjDY,+CAkDZC,MAAO,2BACPC,WAAY,0BAhDfC,aAAM,OAmDJJ,MAjDC,wBACAR,IAAA,uBACAS,YAAY,qEACZC,MAAA,0BACAC,WAAQ,2BAkDRC,aAjDU,KAkDVI,QACIC,KAAMC,UAGXV,MAjDM,mBACLR,IAAA,oBACAS,YAAO,2CACPC,MAAA,oBACAC,WAAA,sBACAC,aAAQ,OAkDTJ,MAjDK,oBAkDJR,IAjDI,aAkDJS,YAAa,6DACbC,MAAO,qBAhDVC,WAAM,uBACHC,aAAK,OAkDNJ,MAjDC,eACAR,IAAA,gBACAS,YAAY,mDACZC,MAAA,kBACAC,WAAQ,oBAkDRC,aAjDU,KAkDVI,QACIC,KAAMC,UA/CbV,MAAM,mBACHR,IAAK,oBACLS,YAAa,uDACbC,MAAO,uBACPC,WAAY,sBACZC,aAAc,oCAlE1BjB,QAAQC,OAAO,4BACVU,OAAOT,MAsHhB,WACI,YAMA,SAASA,GAjDGU,GAkDRA,EACIC,MAjDG,uBACCR,IAAK,mBACLS,YAAa,4EACbC,MAAO,wBACPC,WAAY,0BACZC,aAAc,oCAsC1BjB,QAAQC,OAjDI,sCAkDXU,OAAOT,MAeZ,WACI,YAwBA,SAASA,GAjDGU,GAkDRA,EACKC,MAAM,mBACHR,IAAK,oBACLS,YAAa,mEAhDhBC,MAAA,2BACTC,WAAA,sBAkDYC,aAAc,OACfJ,MAAM,qBAjDTR,IAAO,sBACPS,YAAA,qEAmDIC,MAAO,0BACPC,WAAY,wBAjDfC,aAAY,OACjBJ,MAAA,8BACIR,IAAM,+BACFS,YAAK,8EACLC,MAAA,4BACAC,WAAO,iCACPC,aAAY,OAmDbJ,MAlDC,oCAmDAR,IAAK,qCACLS,YAAa,oFACbC,MAAO,sCACPC,WAAY,uCAjDhBC,aAAA,OACRJ,MAAA,sCAmDYR,IAAK,uCACLS,YAAa,sFACbC,MAAO,wCACPC,WAAY,yCAlDhBC,aAAO,OAEXJ,MAAA,gBACAR,IAAA,kCACAS,YAAA,gFACAC,MAAA,mBACAC,WAAA,mCACAC,aAAA,oCAPJjB,QAAQC,OAjDI,0CAAc,QAAA,iBAkDtB,gBACA,iBACA,iBACA,eACA,iBACA,cACA,aACA,eACA,qBACA,gBAEA,uBACDU,OAAOT,MAkDd,WACI,YAMA,SAASA,GAAYU,GAlDrBA,EACIC,MAAA,4BAoDER,IAnDG,4BAoDHS,YAnDW,qEAoDXC,MAnDM,kBAoDNC,WAnDM,8BAoDNC,aAnDM,KAoDNC,aACEC,MAnDG,EAoDHC,KAnDI,kBAsDhBC,QAASK,UAnDO,KAAAC,OAAY,qCAkCxB3B,QAAQC,OAAO,2CACZU,OAAOT,MAoBd,WACI,YAMA,SAASA,GAnDUU,GAoDjBA,EACGC,MAAM,+BACLR,IAnDK,+BAoDLS,YAnDW,6EAoDXC,MAnDM,kBAoDNC,WAnDM,kCAoDNC,aAnDM,KAoDNC,aACEC,MAAO,EACPC,KAnDC,kBAsDbC,QAASK,UAnDO,KAAOC,OAAA,qCAkCnB3B,QAAQC,OAnDI,8CAoDTU,OAAOT,MAoBd,WACI,YA9CA,SAAQA,GAAOU,GAqDbA,EACGC,MAAM,4BACLR,IAAK,4BAnDXS,YAAS,sEACPC,MAAA,yBACGC,WAAM,+BACLC,aAAK,KACLC,aACAC,MAAO,EACPC,KAAA,kBAEAC,QAAAK,UAAa,qCAftB1B,QAAAC,OAAY,2CACTU,OAAAT,MAsEJ,WAnDA,YA0DI,SAASA,GAAYU,GACnBA,EApDFC,MAAQ,8BACLR,IAAO,8BAsDJS,YAAa,0EAnDnBC,MAAS,qBACPC,WAAA,iCACGC,aAAM,KACLC,aACAC,MAAA,EACAC,KAAO,kBAEPC,QAAAK,UAAc,KAAAC,OAAA,qCAoCpB3B,QAAQC,OAAO,6CACZU,OAAOT,MAoBd,WACI,YA/CA,SAAAA,GAAAU,GAsDEA,EACGC,MAAM,iCArDXR,IAAQ,iCACLS,YAAO,iFAwDJC,MAAO,qBArDbC,WAAS,oCACPC,aAAA,KACGC,aACCC,MAAK,EACLC,KAAA,kBAEAC,QAAAK,UAAY,KAAAC,OAAA,qCAqClB3B,QAAQC,OAAO,gDACZU,OAAOT,MAoBd,WACE,YAMA,SAtDEA,GAAAU,GAuDAA,EACGC,MAAM,oCAtDTR,IAAQ,oCACLS,YAAO,6EAwDNC,MAAO,eACPC,WAAY,kCAtDhBC,aAAS,KACPC,aACGC,MAAM,EACLC,KAAK,kBAyDPC,QAASK,UAAW,KAAMC,OAAQ,qCAhBxC3B,QAAQC,OAAO,+CACZU,OAAOT,MAmBZ,WACE,YAMA,SAASA,GAAYU,GAtDtBA,EACGC,MAAA,oCAwDIR,IAAK,oCACLS,YAAa,qFAvDjBC,MAAQ,eACLC,WAAO,sCAyDNC,aAAc,KACdC,aAvDJC,MAAS,EACPC,KAAA,kBA0DEC,QAxDOK,UAAA,KAAAC,OAAA,KAAAC,QAAA,qCAwCb5B,QAAQC,OAAO,mDACZU,OAvDKT,MA0EV,WACI,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,8BAvDdR,IAAY,8BACXS,YAAA,2EA0DQC,MAAO,+BAxDfC,WAAe,iCACZC,aAAO,KA0DFC,aACEC,MAAO,EAxDRC,KAAA,kBAEJC,QAAMK,UAAA,KAAAC,OAAA,qCAwCT3B,QAxDQC,OAAO,6CAyDZU,OAxDKT,MA4EZ,WACI,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,0BAxDdR,IAAY,0BACXS,YAAA,kEA0DQC,MAAO,qBACPC,WAAY,6BAzDZC,aAAO,KACZC,aA2DOC,MAAO,EACPC,KAAM,iDAddpB,QAzDMC,OAAO,yCA0DVU,OAzDGT,MA2EV,WACI,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,uBACLR,IAAK,uBACLS,YAAa,6DAzDtBC,MAAY,oBACTC,WAAA,0BA2DMC,aAAc,KACdC,aA1DEC,MAAO,EACZC,KAAO,+CA6CVpB,QA1DIC,OAAA,sCA2DDU,OA1DCT,MA4ER,WACI,YAMA,SA3DMA,GAAaU,GA4DjBA,EACGC,MA3DG,8BA4DFR,IAAK,8BA1DLS,YAAS,2EA6DTC,MAAO,qBACPC,WAAY,iCA1DrBC,aAAY,KACTC,aA4DQC,MAAO,EACPC,KAAM,kBA1DXC,QAAOK,UAAA,KAAAC,OAAA,qCA2CV3B,QAAQC,OAAO,6CACZU,OA3DGT,MA+EV,WACI,YAMA,SA5DMA,GAAaU,GA6DjBA,EACGC,MA5DG,yBA6DFR,IAAK,yBACLS,YAAa,iEACbC,MAAO,qBACRC,WAAY,4BA3DpBC,aAAY,KACTC,aA6DQC,MAAO,EACPC,KAAM,+CAddpB,QA5DMC,OAAA,wCA6DHU,OA5DGT,MA8EV,WACI,YAMA,SA7DMA,GAAcU,GA8DlBA,EACGC,MA7DG,mBA8DFR,IA7DE,mBA8DFS,YAAa,6DAEbC,MAAO,sBACPC,WAAY,+BA5DrBC,aAAY,KACTC,aA8DQC,MAAO,EACPC,KAAM,kBA5DXC,QAAOK,UAAA,KAAAC,OAAA,KAAAC,QAAA,qCA6CV5B,QA7DMC,OAAK,sCA8DRU,OA7DGT,MAiFV,WACI,YAMA,SA9DMA,GAAcU,GA+DlBA,EACGC,MA9DG,kCA+DFR,IA9DE,kCA+DFS,YAAa,mFAEbC,MAAO,qBACTC,WAAY,qCACVC,aAAc,KA7DvBC,aACGC,MAAA,EA+DQC,KAAM,kBA7DdC,QAAeK,UAAA,KAAAC,OAAA,qCA8Cf3B,QA9DMC,OAAA,iDA+DHU,OAAOT,MAoBd,WACE,YAMA,SA/DQA,GAAAU,GAgENA,EACGC,MA/DK,iBAgEJR,IA/DI,WAgEJS,YAAa,iDACbC,MAAO,OACPC,WAAY,oBACZC,aAAc,KA9DrBC,aACGC,MAAA,EAgEMC,KAAM,6CAddpB,QA/DQC,OAAK,gCAgEVU,OA/DKT,MAiFV,WA/DI,YAsEA,SAhEMA,GAAOU,GAiEXA,EACGC,MAhEC,2BACAR,IAAA,2BAiEAS,YAhES,qEAiETC,MAhEE,yBAiEFC,WAAY,8BA/DZC,aAAU,KAiEVC,aACEC,MAAO,EACPC,KAAM,iDAddpB,QAhEKC,OAAM,0CAiERU,OAhEGT,MAkFV,WACI,YAMA,SAjEMA,GAAKU;AAkEPA,EACKC,MAAM,kBAhETR,IAAO,kBACTS,YAAY,mDACVC,MAAA,cACAC,WAAa,qBACXC,aAAO,KACPC,aAkEQC,MAAO,EAhERC,KAAA,kBAoEHC,QAAUK,UAAW,KAAMC,OAAQ,qCAjB/C3B,QAAQC,OAAO,iCAhEfU,OAAST,MAqFb,WAjEE,YAwEE,SAlESA,GAAAU,GAmEPA,EAjEEC,MAAA,4BACAR,IAAO,4BACPS,YAAY,uEACZC,MAAA,sBACAC,WAAa,+BACXC,aAAO,KACPC,aAmEEC,MAAO,EACPC,KAAM,kBAERC,QAASK,UAAW,KAAMC,OAAQ,qCAhBxC3B,QAAQC,OAAO,2CACZU,OAAOT,MAmBd,WAlEI,YAyEA,SAnEKA,GAAMU,GAoETA,EACGC,MAnEC,gCACAR,IAAA,gCACAS,YAAY,+EAEZC,MAAA,qBAoEFC,WAnEW,mCAoETC,aAnEQ,KAoERC,aACEC,MAAO,EACPC,KAAM,kBAjEjBC,QAAYK,UAAA,KAAAC,OAAA,qCAkDT3B,QAAQC,OAAO,+CACZU,OAAOT,MAoBd,WACI,YAMA,SAASA,GApEQU,GAqEfA,EACGC,MAAM,gCACLR,IAAK,gCACLS,YApEM,gFAqENC,MApEM,uBAqEPC,WApEW,mCAqEVC,aApEU,KAqEVC,aACEC,MAAO,EACPC,KApEI,kBAuEhBC,QAASK,UAAW,KAAMC,OAAQ,qCAjB9B3B,QAAQC,OAAO,+CAnEfU,OAAST,MAwFb,WApEI,YA2EA,SArEKA,GAAMU,GAsETA,EACGC,MArEC,0BACAR,IAAA,0BACAS,YAAY,mEACZC,MAAA,sBACAC,WAAA,6BAsEAC,aArES,KAsETC,aACEC,MAAO,EApETC,KAAQ,kBAwElBC,QAASK,UAAW,KAAMC,OAAQ,qCAjB9B3B,QAAQC,OAAO,yCACZU,OAAOT,MAoBd,WArEI,YA4EA,SAtEKA,GAAMU,GAuEPA,EArEEC,MAAA,8BAuEMR,IAAK,8BArEXS,YAAO,2EACTC,MAAY,2BACVC,WAAc,iCACdC,aAAa,KACXC,aACMC,MAAA,EAuEEC,KAAM,kBAGVC,QAAUK,UAAW,KAAMC,OAAQ,qCAjB/C3B,QAAQC,OAAO,6CACVU,OAAOT,MAoBhB,WACI,YAMA,SAvEEA,GAAAU,GAwEAA,EACGC,MAvEM,8BACLR,IAAA,8BACAS,YAAO,2EACRC,MAAA,eACCC,WAAA,iCACAC,aAAa,KAwEbC,aAtEEC,MAAM,EAwENC,KAAM,kBArETC,QAAAK,UAAiB,KAAQC,OAAA,qCAuD9B3B,QAvEGC,OAAO,6CAwEPU,OAAOT,MApDd,WAwEE,YAMA,SAASA,GAAYU,GAvEnBA,EACEC,MAAA,yBAyEER,IAxEC,yBAyEDS,YAxEO,iEAyEPC,MAxEE,qBAyEFC,WAxES,4BAyETC,aAxEc,KAyEdC,aAvEEC,MAAA,EAyEAC,KAxEE,kBAIHP,MAAA,0BAyEOR,IAAK,0BACLS,YAAa,mEACbC,MAAO,mBAvEVC,WAAA,6BACTC,aAAA,OAGKJ,MAAA,sBA0EOR,IAAK,uBACLS,YAAa,4DAxEhBC,MAAA,qBACLC,WAAA,0BACKC,aAAM,OA6EVJ,MAAM,eAxECR,IAAA,gBACAS,YAAa,6CA0EbC,MAzEI,mBA0EJC,WAzEU,kBA0EVC,aAAc,OAIrBJ,MAAM,wBACCR,IAAK,yBAxERS,YAAA,+DACTC,MAAA,sBA0EYC,WAAY,2BACZC,aAAc,oCAlD5BjB,QAAQC,OAAO,wCAvEbU,OAAQT,MA6HZ,WAzEI,YAgFA,SA1EOA,GAAYU,GA2EfA,EAzEEC,MAAA,6BACER,IAAO,6BACPS,YAAM,yEA2EFC,MAAO,2BAzEbC,WAAS,gCA2EHC,aAAc,KACdC,aACIC,MAAO,EAzEdC,KAAA,iDA4DTpB,QA1EKC,OAAM,4CA2ENU,OA1EMT,MA4Ff,WACI,YAMA,SA3EIA,GAAaU,GA4EfA,EA1EEC,MAAA,8BACAR,IAAA,8BACAS,YAAa,2EACXC,MAAO,qBA4ERC,WA3EO,iCA4ENC,aAAc,KACdC,aACEC,MAAO,EA1EVC,KAAM,+CAdbpB,QAASC,OAAA,6CACPU,OAAAT,MA6FJ,WACI,YAMA,SAASA,GA3EUU,GA4EjBA,EACGC,MAAM,8BACLR,IAAK,8BACLS,YAAa,qEACbC,MAAO,wBA1ERC,WAAM,8BA4ELC,aA3EW,KA4EXC,aACEC,MA3EI,EA4EJC,KA3EI,kBA6ELC,QAAUK,UAAW,qCAhB5B1B,QAAQC,OAAO,0CACZU,OA3EET,MA8FT,WACE,YAMA,SAASA,GAAYU,GA1EtBA,EACGC,MAAA,gCA4EIR,IAAK,gCACLS,YAAa,+EA3EjBC,MAAQ,wBA6EJC,WA5EQ,mCA6ERC,aAAc,KACdC,aA3EJC,MAAS,EACLC,KAAA,kBA8EAC,QA5EQK,UAAK,KAAAC,OAAA,KAAAE,OAAA,KAAAC,UAAA,qCA4DnB9B,QAAQC,OA3EM,+CA4EXU,OAAOT,MAmBZ,WACI,YAMA,SAASA,GAAYU,GA3ExBA,EACGC,MAAA,iCA6EMR,IAAK,iCACLS,YAAa,iFA5EnBC,MAAQ,wBACLC,WAAO,oCA8EJC,aAAc,KACdC,aA5ENC,MAAS,EACPC,KAAA,gBAEIC,QAAKK,UAAA,KAAAC,OAAA,KAAAI,aAAA,qCA6DX/B,QAAQC,OAAO,gDACZU,OAAOT,MAmBd,WACI,YAMA,SAASA,GAAYU,GA5ExBA,EACGC,MAAA,2BA8EMR,IAAK,2BACLS,YAAa,uFA7EnBC,MAAQ,wBACLC,WAAO,uCA+EJC,aAAc,KACdC,aA7ENC,MAAS,EACPC,KAAA,kBAEIC,QAAKK,UAAA,qCA8DX1B,QA7EQC,OAAM,mDA8EXU,OAAOT,MAmBd,WACI,YAMA,SAASA,GAAYU,GACnBA,EA7ELC,MAAY,+BACXR,IAAA,+BA+EQS,YAAa,6EACbC,MAAO,UA9EPC,WAAO,kCACZC,aAAO,KAgFFC,aACEC,MAAO,EA9ERC,KAAA,kBAEJC,QAAMK,UAAA,qCA+DT1B,QA9EQC,OAAM,8CA+EXU,OAAOT,MAmBd,WACI,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,2BA9EdR,IAAY,2BACTS,YAAA,qEAgFMC,MAAO,kBACPC,WAAY,8BA/ElBC,aAAe,KACZC,aAiFKC,MAAO,EACPC,KAAM,kBAGlBC,QAhFSK,UAAM,KAAAC,OAAA,qCA+DX3B,QA/EMC,OAAO,0CAgFVU,OA/EGT,MAmGV,WACI,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,+BA/EdR,IAAY,+BACTS,YAAA,6EAiFMC,MAAO,eACNC,WAAY,kCAhFnBC,aAAe,KACZC,aAkFKC,MAAO,EACPC,KAAM,kBA/EZC,QAAAK,UAAA,KAAAC,OAAA,qCAiEF3B,QAhFQC,OAAO,8CAiFZU,OAhFKT,MAmGZ,WACI,YAMA,SAjFOA,GAAUU,GAkFbA,EACKC,MAAM,+BACHR,IAAK,+BAhFRS,YAAA,6EACTC,MAAA,4BAkFYC,WAAY,kCACZC,aAAc,KAjFlBC,aACEC,MAAA,EAmFMC,KAAM,kBA/EpBC,QAAAK,UAAA,KAAAC,OAAA,qCAiEF3B,QAjFMC,OAAA,8CAkFDU,OAjFGT,MAqGZ,WACI,YAMA,SAlFOA,GAAUU,GAmFfA,EACGC,MAAM,6BACLR,IAAK,6BAjFdS,YAAY,yEACTC,MAAA,6BAmFMC,WAAY,gCACZC,aAAc,KAlFpBC,aACGC,MAAO,EAoFFC,KAAM,iDAddpB,QAlFMC,OAAA,4CAmFHU,OAlFKT,MAoGZ,WACI,YAMA,SAnFQA,GAAMU,GAoFVA,EACKC,MAAM,uBAlFVR,IAAW,uBAoFJS,YAAa,6DACbC,MAAO,mBACPC,WAAY,0BAlFfC,aAAA,KACTC,aAoFgBC,MAAO,EACPC,KAAM,iDAdtBpB,QAnFMC,OAAA,sCAoFDU,OAnFCT,MAqGV,WACI,YAMA,SApFMA,GAAcU,GAqFlBA,EACGC,MApFG,0BAqFFR,IApFE,2BAqFFS,YAAa,mEAnFbC,MAAA,kBAqFAC,WAAY,6BACZC,aAAc,KACdC,aAnFTC,MAAY,EACTC,KAAA,iDAsEApB,QApFMC,OAAK,yCAqFRU,OApFGT,MAsGV,WACI,YAMA,SAASA,GArFUU,GAsFjBA,EACGC,MAAM,YACLR,IAAK,YACLS,YArFU,uCAsFVC,MAAO,OACPC,WAAY,eACZC,aAAc,KACdC,aACEC,MAAO,EACPC,KAAM,iDAddpB,QArFIC,OAAA,2BAsFDU,OArFMT,MAuGb,WArFI,YA4FA,SAtFKA,GAAMU,GAuFTA,EACGC,MAtFC,wBACAR,IAAA,wBACAS,YAAY,+DACZC,MAAA,wBAuFFC,WAtFE,2BAuFAC,aAtFS,KAuFTC,aACEC,MAAO,EACPC,KAAM,kBAERC,QAAUK,UAAW,qCAhB3B1B,QAAQC,OAAO,uCACZU,OAAOT,MAmBd,WAtFI,YA6FA,SAvFSA,GAAMU,GAwFbA,EACGC,MAAM,oBACLR,IAAK,oBACLS,YAvFM,uDAwFNC,MAvFM,gBAwFNC,WAvFM,uBAwFNC,aAvFU,KAwFVC,aACEC,MAAO,EACPC,KAAM,iDAddpB,QAAQC,OAAO,mCACZU,OAAOT,MAkBd,WACI,YAMA,SAxFEA,GAAAU,GAyFAA,EACGC,MAxFM,yBACLR,IAAA,yBACAS,YAAO,iEACPC,MAAA,sBACAC,WAAA,4BACAC,aAAa,KAyFbC,aAvFEC,MAAM,EAyFNC,KAAM,iDAddpB,QAxFGC,OAAO,wCAyFPU,OAAOT,MAkBd,WACI,YAnFA,SAASA,GAAYU,GACnBA,EACGC,MAAM,wBACLR,IAAK,wBACLS,YAAa,+DACbC,MAAO,qBA0FTC,WAzFE,2BACAC,aAAc,KACdC,aACEC,MAAO,EACPC,KAAM,+CAddpB,QAAQC,OAAO,uCACZU,OAAOT,MAkBd,WACI,YA+FA,SAASA,GAAYU,GAzFrBA,EACEC,MAAA,wBACGR,IAAM,wBACLS,YAAK,+DACLC,MAAA,cACAC,WAAO,2BACTC,aAAY,KACVC,aACAC,MAAA,EACEC,KAAA,kBA4FFC,QAAUK,UAAW,KAAKC,OAAQ,qCAhBxC3B,QAAQC,OAAO,2CAzFfU,OAAQT,MA6GZ,WAzFC,YAOG,SAASA,GAAYU,GACnBA,EACGC,MAAM,oBACLR,IAAK,wBACLS,YAAa,uDACbC,MAAO,kBACPC,WAAY,uBACZC,aAAc,KACdC,aACEC,MAAO,EACPC,KAAM,kBA6FPC,QAAUK,UAAW,KAAKC,OAAQ,qCAlBzC3B,QAAQC,OAAO,uCAxFZU,OAAOT,MA8Gd,WACI,YAtFA,SAASA,GAAYU,GACnBA,EACGC,MAAM,2BACLR,IAAK,2BACLS,YAAa,6DAEbC,MAAA,mBACAC,WAAA,0BACAC,aAAa,KA6FbC,aA3FEC,MAAM,EA6FNC,KAAM,kBAERC,QAAUK,UAAW,KAAMC,OAAQ,qCA7GzC3B,QAAQC,OAAO,0CACZU,OAAOT,MAgHd,WACI,YAMA,SA7FEA,GAAAU,GA8FAA,EACGC,MA7FM,wBACLR,IAAA,wBACAS,YAAO,+DACTC,MAAA,aACEC,WAAA,2BACAC,aAAa,KA8FbC,aA5FEC,MAAM,EA8FNC,KAAM,kBAEPC,QAAUK,UAAW,KAAKC,OAAQ,qCAhBzC3B,QA7FGC,OAAO,2CA8FPU,OAAOT,MAmBd,WACI,YAMA,SA9FEA,GAAAU,GA+FAA,EACGC,MA9FM,oBACLR,IAAA,oBACAS,YAAO,uDACPC,MAAA,kBACAC,WAAA,uBACAC,aAAa,KA+FbC,aA7FEC,MAAM,EA+FNC,KAAM,kBAEPC,QAAUK,UAAW,KAAKC,OAAQ,qCAhBzC3B,QA9FGC,OAAO,uCA+FPU,OAAOT,MAmBd,WACI,YAMA,SAASA,GAAYU,GACnBA,EA9FFC,MAAS,2BACPR,IAAA,2BACGS,YAAM,4EAELC,MAAA,YACAC,WAAO,8BACPC,aAAY,KACZC,aACAC,MAAA,EACEC,KAAA,kBAiGFC,QAAUK,UAAW,KAAMC,OAAQ,qCAhHzC3B,QAAQC,OAAO,0CAgGZU,OAAOT,MAoBd,WA9FC,YAqGG,SAASA,GAAYU,GACnBA,EA/FFC,MAAS,8BACPR,IAAA,8BACGS,YAAM,kFAELC,MAAA,mBAiGAC,WAAY,iCA/FZC,aAAO,KACPC,aACAC,MAAA,EACAC,KAAA,kBAkGAC,QAhGQK,UAAA,KAAAC,OAAA,qCA+Ed3B,QAAQC,OAAO,6CACZU,OAAOT,MAoBd,WACE,YAMA,SAjGKA,GAAOU,GAkGVA,EACGC,MAAM,4BAhGTR,IAAS,4BACPS,YAAA,8EAkGEC,MAjGO,iBAkGPC,WAjGO,+BAkGPC,aAjGE,KAkGFC,aAhGEC,MAAA,EACAC,KAAA,kBAEEC,QAAOK,UAAA,KAAAC,OAAA,KAAAK,cAAA,KAAAC,WAAA,KAAAC,aAAA,qCAiFjBlC,QAhGEC,OAAA,2CAiGCU,OAAOT,MAmBZ,WACI,YA5FA,SAAQA,GAAOU,GAmGbA,EACGC,MAAM,4BACLR,IAAK,4BAjGXS,YAAS,8EACPC,MAAA,6BACGC,WAAM,+BACLC,aAAK,KACLC,aACAC,MAAO,EACPC,KAAA,kBAEAC,QAAAK,UAAa,KAAAC,OAAA,qCAftB3B,QAAAC,OAAY,2CACTU,OAAAT,MAoHJ,WACE,YAMA,SAASA,GAAYU,GAlGnBA,EACGC,MAAA,yBAoGCR,IAAK,yBACLS,YAAa,wEAlGjBC,MAAS,wBACPC,WAAA,4BAoGEC,aAnGO,KAoGPC,aAlGEC,MAAA,EAoGAC,KAAM,kBAjGNC,QAAYK,UAAA,KAAAC,OAAA,KAAAK,cAAA,KAAAC,WAAA,KAAAC,aAAA,qCAmFpBlC,QAAQC,OAAO,wCAjGhBU,OAAAT,MAqHD,WACI,YA7FA,SAAAA,GAAAU,GAoGEA,EACGC,MAAM,wBAnGXR,IAAQ,wBACLS,YAAO,sEAqGJC,MAAO,iCACPC,WAAY,2BAnGlBC,aAAS,KACPC,aACGC,MAAM,EACLC,KAAK,kBAsGJC,QAAUK,UAAW,KAAKC,OAAQ,qCAhBzC3B,QAAQC,OAAO,uCACZU,OAAOT,MAmBd,WACE,YAMA,SAASA,GAAYU,GAnGtBA,EACCC,MAAA,iBAqGMR,IAAK,kBACLS,YAAa,gDApGnBC,MAAQ,iBACLC,WAAO,oBAsGJC,aAAc,KACdC,aApGNC,MAAS,EACPC,KAAA,+CAuFFpB,QAAQC,OAAO,gCACZU,OApGKT,MAuHV,WACI,YAMA,SAASA,GAAYU,GACnBA,EApGLC,MAAY,qBACTR,IAAA,qBAsGMS,YAAa,8DACbC,MAAO,oBArGbC,WAAe,wBACZC,aAAO,KAuGJC,aACEC,MAAO,EArGfC,KAAS,+CAwFTpB,QArGMC,OAAM,oCAsGTU,OAAOT,MAmBd,WACE,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,sBArGZR,IAAY,uBACXS,YAAA,gEAuGMC,MAAO,sBACPC,WAAY,yBAtGlBC,aAAe,KACZC,aAwGKC,MAAO,EACPC,KAAM,+CAddpB,QAAQC,OAtGE,qCAuGPU,OAtGOT,MAyHZ,WACE,YAMA,SAASA,GAvGWU,GAwGlBA,EACGC,MAAM,kBACLR,IAAK,mBAtGZS,YAAY,wDACTC,MAAA,kBAwGIC,WAAY,qBACZC,aAAc,KAvGlBC,aACGC,MAAO,EAyGJC,KAAM,+CAddpB,QAvGMC,OAAA,iCAwGHU,OAvGKT,MA0HV,WACI,YAMA,SAASA,GAAYU,GACnBA,EACGC,MAAM,eACLR,IAAK,eACLS,YAAa,kDAvGtBC,MAAY,cACXC,WAAA,kBAyGQC,aAAc,KACdC,aAxGAC,MAAO,EACLC,KAAA,+CA2FRpB,QAxGMC,OAAA,8BAyGHU,OAxGGT,MA2HV,WACI,YAMA,SAzGMA,GAAMU,GA0GVA,EACGC,MAAM,oBACLR,IAAK,oBACLS,YAAa,4DACbC,MAAO,mBAxGhBC,WAAY,uBACTC,aAAA,KA0GMC,aACEC,MAAO,EAzGPC,KAAA,+CA4FRpB,QAzGIC,OAAA,mCA0GDU,OAzGCT,MA4HR,WACI,YAMA,SA1GQA,GAAOU,GA2GXA,EACIC,MAAM,gBACFR,IAAK,iBACLS,YAAa,0DACbC,MAAO,gBACPC,WAAY,mBAzGfC,aAAA,oCA+FTjB,QA1GMC,OAAO,+BA2GZU,OA1GKT,MAyHV,WACI,YAMA,SA3GIA,GAAaU,GACbA,EACAC,MAAA,cACAR,IAAA,qBACAS,YAAa,kEACXC,MAAO,iCACDC,WAAA,uBA4GAC,aAAc,oCAtH5BjB,QAASC,OAAA,mCACPU,OAAAT,MAyHJ,WA1GC,YAgHG,SA5GQA,GAAAU,GA6GJA,EAAeC,MAAM,kBACjBR,IAAK,mBA3GNS,YAAY,mDACnBC,MAAA,kCACGC,WAAM,qBACLC,aAAK,OACLJ,MAAA,qBACAR,IAAO,uBACPS,YAAY,oEACZC,MAAA,kBACAC,WAAa,yBACXC,aAAO,KACPI,QA6GMC,KAAMC,OACNY,KAAM,EACNC,OAAQ,KAEbvB,MAAM,sBA3GhBR,IAAY,wBACTS,YAAA,oEA6GQC,MAAO,kBACPC,WAAY,yBA5GZC,aAAO,KACZI,QA8GSC,KAAMC,OACNY,KAAM,EA5GTC,OAAA,KAEJvB,MAAM,uBACLR,IAAK,yBACLS,YAAa,sDACbC,MAAO,kCACPC,WAAY,eACZC,aAAc,OACdJ,MAAA,oCACER,IAAA,uBACAS,YAAM,sDA8GNC,MAAO,uBACPC,WAAY,eACZC,aAAc,OACfJ,MAAM,mCACLR,IAAK,uBA5GhBS,YAAY,sDACTC,MAAA,qBA8GQC,WAAY,eACZC,aAAc,OA7GtBJ,MAAQ,0BACLR,IAAO,4BA+GFS,YAAa,sDACbC,MAAO,gCA7GfC,WAAS,eACPC,aAAA,OACGJ,MAAM,yBACLR,IAAK,2BACLS,YAAa,sDACbC,MAAO,0BACPC,WAAY,eACZC,aAAc,oCAiDpBjB,QAAQC,OAAO,kCAAmCU,OAAOT,MAiE7D,WACI,YAMA,SAASA,GAAYU,GACnBA,EA9GFC,MAAQ,uBACPR,IAAO,uBAgHFS,YAAa,yDACbC,MAAO,kBA9GbC,WAAS,0BACLC,aAAA,KAgHEC,aACEC,MA/GI,EAgHJC,KA/GI,iDAiGZpB,QAAQC,OAAO,sCACZU,OAAOT,MAkBd,WACI,YA1GA,SAAQA,GAAOU,GACdA,EAiHIC,MAAM,+BACLR,IAAK,+BA/GXS,YAAS,yEACLC,MAAA,kBAiHEC,WAhHS,kCAiHTC,aAhHW,KAiHXC,aACEC,MAhHI,EAiHJC,KAhHI,iDAbfpB,QAAAC,OAAY,gDACTU,OAAAT,MAiBJ,WACI,YAKA,SAASA,GAAYU,GAkHnBA,EACGC,MAjHG,6BAkHFR,IAjHE,6BAkHFS,YAjHS,qEAkHTC,MAjHE,yBAkHFC,WAjHE,gCAkHFC,aAjHO,KAkHPC,aAhHEC,MAAA,EACAC,KAAA,kBAmHFC,QAjHEK,UAAc,qCAiGtB1B,QAAQC,OAAO,4CAhHfU,OAAQT,MAoIZ,WACI,YAMA,SAjHQA,GAAAU,GAkHNA,EACGC,MAAM,sBACLR,IAAK,sBACLS,YAjHM,uDAkHNC,MAAO,OACPC,WAjHO,yBAkHPC,aAjHO,KAkHPC,aAhHEC,MAAO,EACPC,KAAA,iDAmGRpB,QAjHQC,OAAK,qCAkHVU,OAjHKT,MAmIZ,WACI,YAMA,SAjHQA,GAAYU,GAkHlBA,EACGC,MAjHE,8BAkHDR,IAjHE,8BAkHFS,YAjHE,uEAkHFC,MAjHE,OAkHFC,WAjHE,iCAkHFC,aAjHE,KAkHFC,aAhHEC,MAAK,EACLC,KAAA,iDAmGRpB,QAjHOC,OAAM,6CAkHVU,OAjHKT,MAmIZ,WACI,YAMA,SAlHGA,GAAOU,GAmHRA,EACGC,MAAM,yBAjHXR,IAAS,yBACPS,YAAA,6DACGC,MAAM,wBAmHPC,WAlHO,4BACLC,aAAa,KACbC,aACAC,MAAA,EACAC,KAAA,kBAoHAC,QAlHSK,UAAA,qCAff1B,QAAAC,OAAA,wCAkHGU,OAAOT,MAmBd,WACE,YAKA,SAnHEA,GAAeU,GAoHfA,EACGC,MAAM,SACLR,IAAK,IAlHTS,YAAS,kCACPC,MAAA,QAoHEC,WAnHO,YAoHPC,aAnHO,KAoHPC,aAlHEC,MAAO,EACPC,KAAA,iBAqHDP,MAnHC,SAoHFR,IAnHI,SAoHJS,YAnHU,kCAoHVC,MAAO,QACPC,WAAY,YACZC,aAAc,KACdC,aAlHPC,MAAY,EACTC,KAAA,8CA4FFpB,QAlHEC,OAAA,6BAmHCU,OAAOT,MA4BZmC,OAAOC,KAAK,gBAAiB,KAnHzBC,UAAS,cAsHbF,OAAOG,kBApHQ,WAqHXxC,QApHMyC,UAAKC,SAAAC,MAAA,YAsHf3C,QAAQC,OApHE,SAqHF,YACA,eACA,cACA,YACA,oBACA,UACA,SACA,cACA,YACA,gBAnHP,WACG,iCAqHI,WACA,eApHJ,YACG,iBAsHC,WACA,UApHJ,UACE,mBAsHE,yBACA,cACA,KACA,cACA,cACA,YACA,iBACA,WACA,oBACA,eAoBPU,QAAQ,kBAtHc,SAAAiC,GAwHnBA,EAtHcC,YAwHVC,aAAc,UAAW,UAAW,UAAW,WAC/CC,YAAY,EACZC,qBAAqB,EArH5BC,WACGC,SAAA,QA0HAN,EAvHUC,WAAA,OAwHNM,WAAW,OAKlBxC,QAAQ,oBAvHM,qBAAA,kBAAA,gBAAA,SAAAyC,EAAAC,EAAAC,EAAAC,GAwHXA,EAvHMC,aAAaC,KAAA,0BAwHnBF,EAvHaC,aAAAC,MAAA,KAAA,aAAA,SAAAC,EAAAC,GACT,OACEC,cAAc,SAAAC,GACd,GAAAC,GAAaJ,EAAAI,OA4HP,OA3HG,OAAAD,EAAAzB,QACDuB,EAAAI,SAERD,EAAUE,OAAAH,GAwHGC,EAAMG,aAnH3BX,EAAAY,YAAA,UAwHEZ,EAAgBa,aAAY,GAC5Bb,EAAgBc,SAAQ,GAvH1Bd,EAAee,QAAA,MA0HbhB,EAAmBiB,aAAa,SAvHlCC,cAAqB,QACnBC,kBAAA,iCACGC,cAAe,QACdC,oBAAK,cACLC,0BAAa,iBACbC,wBAAO,yCACPC,yBAAY,cACZC,qBAAc,eACdC,yBAAa,uCAyHbC,qBAxHS,eAyHTC,yBAxHQ,yBAyHRC,WAAY,KACZC,YAxHO,MACPC,WAAK,OA2HT/B,EAxHgBgC,kBAAA,SAyHhBjC,EAxHkBkC,WACdC,SAAA,EAyHAC,aAxHS,OA4HhBC,KAAK,aAAc,SAAU,QAAS,SAAU,UAAW,YAAa,wBAAyB,cAAe,UAAW,aAAc,YAAa,SAAU,UAAW,WAAY,kBAChL,SAAS9B,EAAY+B,EAAQC,EAAOC,EAAQC,EAASC,EAAWC,EAAuBC,EAAaC,EAASC,EAAYC,EAAWC,EAAQC,EAASC,EAAUC,EAAiBC,GAtGhL,QAAAC,KACA9C,EAAA+C,oBAAA,CAGA,KAAA,GAFAC,GAAAtG,EAAAuG,MAAA,KACAC,KACAC,EAAA,EAAAA,EAAAH,EAAAI,OAAAD,IAAA,CACAE,EACA,IAAAC,GAAAN,EAAAG,GAAAF,MAAA,IACAC,GAAAI,EAAA,IAAAA,EAAA,GAEAtD,EAAAuD,aAAAL,EACAf,EAAAqB,KAAA,UAiNI,QAASC,GAAQC,GACb,MAAOjB,GAAOkB,QAAQD,EAAU,SAASE,GAvHrC,MAAAA,GAAUC,aAAST,OAAU,EAAAK,EAAWG,EAAAC,cAAaD,IApHrE5D,EAAW8D,SAAA,6BA4HH9D,EAAW+D,cAAgB,uDAtH/B/D,EAAAgE,QAAA,+BAGAzB,EAAA0B,IAAA,SACAjE,EAAA+C,oBAAA,CAEA,IAAArG,GAAAC,OAAAC,SAAA,KAAAsH,QAAAlE,EAAAgE,QAAA,GACAtH,GAAAI,SAAA,iBAgBAkD,GAAAmE,IAAA,oBAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAEA,GADAxE,EAAAyE,cAAAF,EAAAG,KACA,SAAAL,EAAAK,KACA5B,QAEA,IAAA9C,EAAA2E,QAAA,SAAAN,EAAAK,KAgImB,CAIH1E,EAAW0D,SAAWkB,KAAKC,MAAMnC,EAAQoC,aAAaC,QAAQ,aAC9D,IAAIrB,GAAWD,EAAQzD,EAAW0D,SAClC1D,GAAWgF,WAAavC,EAAOwC,KAAKxC,EAAOyC,OAAOxB,GAC9CyB,QAAWd,EAAQK,YAbvBpC,GAAQ8C,OAAO,iBAAkB,sDAC7B9F,WAAW,EACX+F,KAAM,OAEVrF,EAAWI,SACXgE,EAAMkB,mBAxG1BtF,EAAgBuF,cAAW,SAAAC,GAGvB,IAAY,GAsHAC,GAAS9I,OAAO+I,KAAKF,EAAQvC,MAAM,KAAK,IAvHpD0C,KACYxC,EAAA,EAAAA,EAAAsC,EAAArC,OAAAD,IACZwC,EAAA7F,KAAqB2F,EAAAG,WAAAzC,GAEjB,IAAA0C,GAAU,GAAAC,OAAA,GAAAC,YAAAJ,KAyHFK,KAAM,eAENC,EAAmB,GAAIC,SAtHnC,OADJD,GAA2BE,OAAO,eAAAN,EAAA,uBACnBI,GA4HPjG,EAAWoG,WAAa,SAASC,EAAUC,EAAQC,EAAUC,GAvHhE5D,EAAqB6D,WAAAJ,EAAsBC,EAAAC,GAAmBG,KAAA,SAAAC,GACrDC,WAAa,KACA,MAAbD,EAAAlI,SACHuB,EAAA6G,eAAA,EACH7G,EAAiB8G,MAAS,EAClB9G,EAAWwD,KAAAmD,EAAAhJ,KAAAoJ,MAAA,GAAAJ,EAAAhJ,KAAAyF,QACXoD,GACAA,QAwBZxG,EAAYgH,gBAAA,SAAAC,GACZ,GAAAN,GAAalE,EAAAyC,OAAAlF,EAAAgF,WAAAkC,YACDC,WAAAF,GA0HJ,OAAIN,GAAIvD,OAAS,GA5GrBpD,EAAWoH,uBAAW,WAyHlB,GAAIC,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,iBAvHxBC,gBAAW,iBAyHHrK,YAAa,oDAvHrBE,WAAW,yBAyHHC,aAAc,KACd+H,KAAM,KAvHdoC,SAAe,SACfC,UAAW,GAOPL,GAAWM,OAAUjB,KAAA,SAAAkB,KAErB,eA6HJ5H,EAxHI6H,uBAA0B,WAC1B,GAAAR,GAAe7E,EAAA8E,MAyHXhI,WAAW,EACXiI,eAAgB,iBAChBC,gBAAiB,iBAvHzBrK,YAAe,oDACXE,WAAW,yBACPC,aAAQ,KACR+H,KAAA,KAyHAoC,SAxHG,SACHC,UAAK,GA+HTL,GAxHcM,OAAAjB,KAAA,SAAAkB,KA0HX,eAKP5H,EAAWI,OAxHC,WAyHRgC,EAxHYhC,SAyHZJ,EAAW+C,oBAAqB,EAChC/C,EAAW8H,WAAY,EACvB7F,EAAO8F,GAAG,UAEd/H,EAAW8H,WAAY,EAMvB9H,EAxHSgI,SAAW,SAAWnF,GA0H3B,GAAIoF,GAAKC,IAvHTD,GAAAE,WAAe/F,EAAqBgG,sBA0HpC,IAAIC,GAAWJ,EAAGE,WAAWG,MAvH7BjG,GAAIkG,cAAmBF,GAAI3B,KAAA,SAAAC,GACV,MAAjBA,EAAAlI,QACOwJ,EAAAO,YAAA7B,EAAAhJ,KA0HuB,MAAlBsK,EAAGO,aAtHRxI,EAAa8H,WAAS9H,EAAU8H,UAG3BpF,EAAA4E,KAAW,4CAAKW,EAAAO,YAAAC,QAAA,aAAAR,EAAAO,YAAAE,SAAA,WAKhBpG,EAAA8C,OAAA,OAAA,4BAyHI9F,WAAW,EACX+F,KAAM,QAIdrF,EAAW2I,YAAY,QAAS,yBAA0B,SAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,YAAa,WAjErD3I,EAAW6I,iBAAA,SAAyBC,EAAWC,GAC3C,OAAIA,EAAAD,GAAA,OA2HR9I,EAxHQ2I,YAAiB,SAAA3C,EAAAgD,EAAA5L,GAyHrB,GAxHI6L,IACAC,aAAY,EACZC,cAAc,kBACdnD,KAAM,GACNoD,QAAU,OACVC,gBAAU,OAyHVC,WAAa,EACbC,aAAe,EACfC,cAAgB,EAChBC,aAAe,EACfC,aAAe,EACfC,UAAa,EAvHjBC,mBAAqB,EAyHjBC,uBAAyB,EAG7B,QAAQ7D,GACJ,IAAK,QACDiD,EAAYjD,KAAO,QAvHpBjE,EAAA+H,MAASd,EAAA5L,EAAW6L,EAC3B,MACA,KAAA,OACAA,EAAWjD,KAAY,QAChBjE,EAAGgI,KAAAf,EAAA5L,EAAA6L,EAyHF,MAvHZ,KAAW,UAyHCA,EAAYjD,KAAO,UACnBjE,EAAOiI,QAAQhB,EAAK5L,EAAO6L,EAC3B,MACJ,KAAK,UACDA,EAAYjD,KAAO,UAvHpBjE,EAAAkI,QAAWjB,EAAS5L,EAAM6L,EACjC,MACI,SACDA,EAAajD,KAAA,OAyHRjE,EAAOgI,KAAKf,EAAK5L,EAAO6L,QAoB/CiB,QAAQ,0BAA2B,aAAc,SAASlK,GACvD,OACImK,QAAS,SAxHOnN,GAsIZ,MAbgCY,SAA5BoC,EAAW6G,eAA0D,GAA5B7G,EAAW6G,cAvHjD7G,EAAS8G,OACR9J,EAAAoN,aA6HJpN,EAAOoN,QAAQ,MAAWpK,EAAWqK,MACjCrK,EAAWgF,aACXhI,EAAOoN,QAAQ,OAAYpK,EAAWgF,WAAWsF,QACrDtN,EAAOoN,QAAQ,OAAYpK,EAAWuK,QAGnCvN,OAKlBkI,OAAO,cAAe,WACnB,MAAO,UAASsF,EAAOC,GACnB,GAAIC,KAEJ,IAAIrO,QAAQsO,QAAQH,GAAQ,CACxB,GAAII,GAAOC,OAAOD,KAAKH,EAEvBD,GAAMM,QAAQ,SAASC,GAGnB,IAAK,GAFDC,IAAc,EAET7H,EAAI,EAAGA,EAAIyH,EAAKxH,OAAQD,IAAK,CAClC,GAAI8H,GAAOL,EAAKzH,GACZ+H,EAAOT,EAAMQ,GAAME,aACvB,IAAIJ,EAAKE,GAAMG,WAAWD,cAAcE,QAAQH,MAAU,EAAI,CAC1DF,GAAc,CACd,QAGJA,GACAN,EAAI5K,KAAKiL,SAKjBL,GAAMF,CAEV,OAAOE,MAGf,WACE,YAMA,SAAS1N,GAAOsO,EAAkBC,EAAaC,GAC7CA,EAASC,UAAU,gBAAiBC,GAatC,QAASA,GAxHsBC,EAAAC,EAAAC,GAyH7B,MAAO,UAxHSC,GAyHVD,EAAOE,QAxHGD,EAAgB,uBAyH5BF,IAEAD,EAAUG,6GAvBhBzP,QAAQC,OAAO,eACZU,OAAOA,MA4BZ,WACE,YA+BA,SAASgP,GAAeT,GACtB,GAAIU,IACFC,OACEC,MAAM,GAERC,QAvHLC,QAAQC,EAAAD,QACLE,YAAOD,EAAAC,YACHC,OAAAF,EAASE,OAyHTC,WAxHQH,EAAAG,WA0HRC,QAASC,EAxHUD,QAyHnB3C,KAAM4C,EAAY5C,KAClBC,QAAS2C,EAAY3C,QACrBC,QAAS0C,EAxHE1C,QAyHX2C,OAAQD,EAAYC,OAEpBC,aAxHYtB,EAAWuB,KAAAH,EAAAD,QAAA,IAyHvBK,UAAWxB,EAxHQuB,KAAQH,EAAY5C,KAAA,IAyHvCiD,aAxHQzB,EAAeuB,KAAAH,EAAY3C,QAAW,IAyH9CiD,aAAc1B,EAAYuB,KAAKH,EAAY1C,QAAS,IACpDiD,YAAa3B,EAAYuB,KAAKH,EAAYC,OAAQ,IAElDO,YAAa5B,EAAY6B,MAAMT,EAAYD,QAAS,IACpDW,SAAU9B,EAAY6B,MAAMT,EAAY5C,KAAM,IAC9CuD,YAAa/B,EAAY6B,MAAMT,EAAY3C,QAAS,IACpDuD,YAAahC,EAAY6B,MAAMT,EAAY1C,QAAS,IAvHpDuD,WAAAjC,EAAe6B,MAAWT,EAAAC,OAAA,IAE1Ba,WAyHEC,UAAWC,EAAgBD,UAvH7BE,YAAYD,EAAgBC,YAyH1BC,WAxHMF,EAAmBE,WAyHzBC,OAAQH,EAAgBG,OACxBC,MAxHEJ,EAAcI,QAyItB,OAZA9B,GAAK+B,YAxHW,SAAW9B,GAyHzB7P,QAAQ4R,MAxHMhC,EAAIC,MAAKA,IA2HzBD,EAAKiC,aAAe,SAAS9B,GAC3B/P,QAAQ4R,MAAMhC,EAAKG,OAAQA,IAG7BH,EAAKkC,KAAO,WAEV,aADOlC,GAAKkC,KACLlC,GAEFA,2BAhFT,IAAIK,IACFD,QAAS,UACTE,YAAa,UACbC,OAAQ;AACRC,WAAY,WAIVE,GACFD,QAAS,UACT3C,KAAM,UACNC,QAAS,UACTC,QAAS,UACT2C,OAAQ,WAINe,GACFD,UAAW,UACXE,YAAa,UACbC,WAAY,UACZC,OAAQ,UACRC,MAAO,UAGT1R,SAAQC,OAAO,eACZ8R,SAAS,WAAYpC,MA0D1B,WAvHC,YAiCC,SAAAqC,GAAAC,EAAAC,EAAAC,GA4HE,QAASC,GAAIC,GA1HX,MAAAA,GAAQtD,SAAA,IAGV,QAAQuD,GAAAC,GACR,MAAAC,UAAYD,EAAA,IAId,IAAI,GA0HEjH,GAAS,IA1HXxE,EAAA,EAAAA,EAAc,EAAAA,GAAA,EAAA,CAChB,GAAA2L,GAASH,EAAAL,EAAAS,OAAA5L,EAAA,IACH6L,EAAAL,EAAAJ,EAAAQ,OAAA5L,EAAA,IACN8L,EAASR,EAAAS,KAAAC,MAAAH,GAAAF,EAAAE,IAAAR,EAAA,MACT7G,KAAS,IAAAsH,GAAAlI,OAAA,GA6HT,MAAOY,GAlDT,GAAIyH,GAAc,aAElB/S,SAAQC,OAAO,eAzHf+S,SAAQ,eACLC,wBAAO,KA2HNC,oBAAqB,MAxHzBF,SAAS,eACPG,QA2HIC,KAAML,EACNM,QAASN,EAAc,eACvBO,MAAO,oDACPC,QAAS,4DAGZP,SAAS,eACRvC,KAAM,SAAS+C,EAAOrB,GACpB,MAAOH,GAAI,UAAWwB,EAAOrB,IAE/BpB,MAAO,SAASyC,EAAOrB,GACrB,MAAOH,GAAI,UAAWwB,EAAOrB,SAkCrC,WACE,YArHA,SAAQsB,GAAOnN,EAAA3C,EAAA+P,EAAAC,EAAAjQ,EAAAkQ,EAAAC,GA4Hb,GA3HCC,IA4HCH,EAAUI,eACVzN,EAAS,MAxHTuJ,EAAOgE,CACLhE,GAAMC,OA4HJD,EAAMmE,OA1HVF,EAAQG,QAAAN,EAAAO,QAAAR,EAAAP,OAAAC,KAAA,wBAENU,EAAAG,QAAmBN,EAAAO,QAAAR,EAAAP,OAAAC,KAAA,gBACnBU,EAAQG,QAAMN,EAAAO,QAAAR,EAAAP,OAAAC,KAAA,0BA+HlB1P,EAAGyQ,IA3HCL,GAAMzJ,KAAY,WA4HpB1G,EA3HWyQ,sBAAY,IA8HzB9N,EAAS,WA1HL3C,EAAcyQ,uBACdzQ,EAAWyQ,sBAAiB,IA6H7B,KAEHzQ,EAAW0Q,kBAAoBT,8GA9BjC5T,QA3HEC,OAAQ,eACRwF,IAAAgO,MA4JJ,WACE,YAMA,SA3HQI,GAAQS,GA4Hd,GAAIC,GA3HS,0DAAgBC,KAAAC,UAAAC,UAAA5F,eA4HzB6F,EAAcJ,EAAW,SAAW,GACpCK,EAAYN,EAASzE,MAAMC,KAAO,aAAe,EAxHrD,OAyHA9P,SAAQ6U,QAAQnS,SAASC,MAAMmS,SAASH,GAAaG,SAASF,IAxH5D9E,KAAAwE,EAAczE,MAAKC,KA4HnBkE,OAAQO,0BAZZvU,QA3HMC,OAAA,eA4HH8U,QA3HK,sBAAWlB,MA+IrB,WACE,YAMA,SAASmB,GAAgBC,GA1HzBjV,QAAIkV,OAAAD,GA4HA/H,aAAa,EA1HjBiI,UAAe,2BACZpI,QAAS,IACRF,aAAA,EACAuI,YAAA,kBA4HA9H,UAAW,EA1HZD,aAAS,EACRP,cAAQ,kBA4HRS,mBA3HQ,EA4HRC,uBA3HW,EA4HX6H,OA3HE,oCA2GNrV,QAAQC,OAAO,0BACVU,OAAOqU,MAsBd,WACE,YAMA,SA3HSM,GAAehP,GA4HtB,OACEiP,KAAM,SAAUC,EAAOX,GA1H3BvO,EAAc,WA+HN,QAASmP,GAAYC,GA1HpBpP,EAAI,WA4HDuO,EAAQc,KAAKD,IA1Hd,IANT,GAAOE,GAAIf,EAAkBgB,KAAA,aA4HnBC,EAAWtD,SAASqC,EAAQc,OAQhC,IAAIC,EAAWE,EA1HrB,IAAa,GAAGhP,GAAAgP,EAAAhP,GAAA8O,EAAA9O,IACP2O,EAAY3O,OAGjB,KAAS,GAAAiP,GAAAD,EAAAC,GAAAH,EAAAG,IACLN,EAAcM,EAGhBzP,GAAA,WACJuO,EAAWmB,OAAMC,KAAA,KAAYnB,SAAO,aA4H7B,MA1HF,+BA8FT9U,QAAQC,OAAO,eACViW,UAAU,iBAAkBZ,MAqCnC,WACE,YAMA,SAASa,KACP,OA3HAC,SAAY,IACZb,KAAI,SAAYc,EAAAC,GACdA,EAAIC,KAAM,UAAQ,SAAAC,GAChB,GAAA3B,GAAW2B,EAAQnB,MA6HjBoB,GAAE5B,GA5HC6B,OAAA,EACL,IAAAA,GAAWD,EAAA5B,GAAQ,GAAU8B,YAC7BD,GAAWA,EAAQ,GAAA,GAAUA,EA6H3BD,EAAE5B,GAAS6B,OAAOA,KAxHtBnM,WAAW,WA6HP,GAAIsK,GAAUyB,CACdG,GAAE5B,GAAS6B,OAAO,EA3HxB,IAASA,GAAAD,EAAY5B,GAAA,GAAA8B,YACfD,GAACA,EAAW,GAAA,GAAAA,EACdD,EAAA5B,GAAW6B,OAAAA,IA6HR,KAnJT1W,QAAAC,OAAS,eACPiW,UAAI,aAAaC,MAwJrB,WA3HC,YAkIC,SAASS,GAAUtQ,EAAUuQ,GAC3B,OA5HFtB,KAAS,SAAAC,EAAAX,EAAoBiC,GACvB,GAAAC,GAAYF,EAAAC,EAAAF,UACZpB,GAAAwB,OAAAD,EAAc,SAAWE,GACzBA,KAAY,GACR3Q,EAAQ,WA8HNuO,EAAQ,GAAGqC,QA5HdrC,EAAA,GAAAsC,aAiIHtC,EAAQ0B,KAAK,OAAQ,WACnBf,EAAM4B,OAAOL,EAAMM,OAAO7B,GAAO,wCAjBzCxV,QAAQC,OAAO,eACViW,UAAU,YAAaU,MA2B9B,WACE,YAMA,SA9HIU,KA+HF,OA7HElB,SAAA,KACAtV,YAAW,SAAAyW,EAAAT,GACX,MAAAA,GAAaQ,mBARjBtX,QAAAC,OAAS,eACPiW,UAAQ,mBAAqBoB,MAkBjC,WACE,YAoIA,SAASE,GAAUlR,GA9HnB,OACE8P,SAAO,KACLqB,SAAM,cAgIN5P,SA/HE,EAgIF2N,OACEkC,IA/HE,IAgIFC,IAAK,IACLhO,KA/HE,IAgIFiO,OA/HI,IAgIJC,WA/HM,IAgINC,SA/HO,IAgIPC,kBAAmB,IACnBC,KAAM,IACNC,WA/HM,IAgINC,QA/HS,IAgITC,KA/HM,IAgINC,WAAY,IACZC,WA/HS,IAgITC,KA/HI,IAgIJC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,SA/HE,IAgIFC,OA/HI,IAgIJC,QA/HK,KAiIPrD,KAAM,SAAUc,EAAQwC,GAClBA,EAASC,gBACPpB,IAAKrB,EAAOqB,IACZC,IAAKtB,EAAOsB,IACZhO,KAAM0M,EAAO1M,KACbiO,OAAQvB,EAAOuB,OACfC,WAAYxB,EAAOwB,WACnBkB,iBAAkB1C,EAAOyB,SA9H1BkB,mBAAA3C,EAAA0B,kBACXC,KAAA3B,EAAA2B,KAgIYC,WAAY5B,EAAO4B,WA9HvBC,QAAO7B,EAAA6B,QACVC,KAAU9B,EAAA8B,KAgIHC,WAAY/B,EAAO+B,WACnBC,WAAYhC,EAAOgC,WA9HtBC,KAAAjC,EAAaiC,KACbC,GAAAlC,EAAAkC,GACLC,QAAUnC,EAAAmC,QACJC,SAAUpC,EAAQoC,SACjBC,SAAKrC,EAAWqC,SACfC,OAAAtC,EAAUsC,SAGdtC,EAASW,OAAC,MAAS,SAAWC,GAC5B3Q,EAAS,WAgILuS,EAASvX,KAAK,kBAAkB2X,QAAQvB,IAAKT,QAE9C,GA9HPZ,EAAWW,OAAA,MAAY,SAAAC,GACjB3Q,EAAA,WACFuS,EAASvX,KAAO,kBAAA2X,QAAAtB,IAAAV,QAGhBZ,EAAAW,OAAS,OAAO,SAAAC,GACjB3Q,EAAA,WAgIKuS,EAASvX,KAAK,kBAAkB2X,QAAQX,KAAMrB,QAGlDZ,EAAOW,OAAO,KAAM,SAAUC,GAC5B3Q,EAAS,WA9HVuS,EAAAvX,KAAA,kBAAA2X,QAAAV,GAAAtB,QAkIDZ,EAAOW,OAAO,UAAW,SAAUC,GA/HrC3Q,EAAO,WACVuS,EAAUvX,KAAa,kBAAA2X,QAAAT,QAAAvB,iCAoD5BjX,QAAQC,OAAO,eA9HfiW,UAAQ,YAAOsB,MAkNjB,WACE,YAsBA,SAhIK0B,KAiIH,OACE3D,KAAM,SAAUc,EAAQ8C,GA/H5BA,EAAS5C,KAAA,SAAA,SAAmB6C,GAC1B/C,EAAO5L,MAAA2O,EAAAC,YAAAD,EAAA/D,QAAAiE,MAAA,GACLjD,EAAUkD,cAuGdvZ,QAAQC,OAhII,eAoITiW,UAhIG,eAAqB,SAAY,SAAAW,GAC/B,QAAMtB,GAAOC,EAAMX,EAAOiC,GAiIrB,GAAIC,GAAQF,EAAOC,EAAM0C,YACzB3E,GAAQ4E,GAAG,SAAU,SAAU1R,GAC3ByN,EAAMlU,QACNyV,EAAMvB,GAAS/K,KAAM1C,EAAMsN,OAAOiE,UAI1C,OACI/D,KAAMA,MA7HnBW,UAAA,eAAAgD,MA+IF,WACE,YA1HA,SAAAQ,KAiIE,OACElE,OAhIJkE,eAAe,IACZC,UAAU,KAmITpE,KAAM,SAAUC,GAhIpBiB,EAAAnW,QAASmZ,GAAU,SAAU,WAC3B,GAAOG,GAAAnD,EAAAnW,QAAAsZ,YAAApE,EAAAmE,SACLC,KAAUpE,EAAAqE,eACVrE,EAAU4B,OAAA,WACV5B,EAASkE,eAAAE,IAGPpE,EAAKqE,cAAAD,MA+GX5Z,QAAQC,OAAO,eACViW,UAAU,iBAAkBwD,MAwBnC,WACE,YAMA,SAjIMI,KAkIJ,OACEtE,OAhIEsE,WAAQ,IACRC,SAAS,KAEXxE,KAAM,SAAUC,EAAAX,GAkIdW,EAjIIsE,WAASrD,EAAA5B,GAAemF,QAAAxE,EAAAuE,SAkI5BvE,EAjIMyE,eAAYzE,EAAAsE,WAmIlBrD,EAAEnW,QAjII4Z,OAAM,WAkIV,GAjIIJ,GAAQrD,EAAO5B,GAAAmF,QAAAxE,EAAAuE,QACfD,KAAYtE,EAAOyE,gBAkIrBzE,EAjIE4B,OAAA,WACA5B,EAAAsE,WAAAA,IAoIJtE,EAjIIyE,eAAgBH,MA4G5B9Z,QAjIMC,OAAA,eAkIDiW,UAjIC,aAAY4D,MA+JpB,WACE,YAMA,SAASK,GAjIC7T,EAAc3C,GAkItB,OACEyS,SAjIU,IAkIVb,KAAM,SAAUc,EAAQC,GACtB,GAAI8D,GAAQ,GAERzW,GAjIWyQ,uBAkIbgG,EAjIM,KAoIR9T,EAjII,WAkIFgQ,EAjII+D,YAAS,kBAkIb/D,EAAKxB,SAjIC,oBAkILsF,yCAjBTpa,QAAQC,OAjII,eAkIPiW,UAjIS,SAASiE,MA2JzB,WACI,YAMA,SAASG,GAAgBnU,GACrB,GAAIoU,MAhIPC,EAAU,EACJ7C,EAAA,IAkIC8C,GAjIO,CAmIX,QACIC,YAjIa,SAASzD,GAkIlB,GAAIA,EAAQU,EACR,KAAMgD,OAAM,qCA/HrBH,GAAOvD,GAmIN2D,YAAa,WACT,MAAOJ,IAEXvP,KAAM,WACF,GAAKwP,EAUD,KAAME,OAAM,4BA1IrBJ,GAAepU,EAAA8E,MACfhI,WAAA,EACWnC,YAAY,uDAClBkI,KAAU,KACFqC,UAAG,EACVD,SAAA,WAmIGqP,GAAS,GA3H3BI,MAAA,WAkIc,IAAIJ,EAIA,KAAME,OAAM,+BApIfJ,GAAAM,QACAJ,GAAA,4BAtCfza,QAAAC,OAAA,eAkIO4N,QAAQ,kBAAmByM,MAmDpC,WACE,YAMA,SAAS9K,KAEP3D,KAAKiP,aAAe,SAASC,EAAQC,GA/HvC,IADD,GAAAC,GAAYD,EAAAE,WACX,MAAAD,GAAA,CAkIM,GAAIA,GAAQF,EAhIV,OAAO,CAmITE,GAAOA,EAAKC,WA/HlB,OAAS,GAoIPrP,KAjIIsP,SAAY,SAAAC,EAAAC,GAkId,GAjIEC,GAAA9I,SAAU4I,EAAA1Q,MAAA,EAAA,GAAA,IAkIR6Q,EAAI/I,SAAU4I,EAAI1Q,MAAM,EAAE,GAAI,IAhIlC8Q,EAAMhJ,SAAU4I,EAAA1Q,MAAO,EAAA,GAAS,GAkIhC,OAjIE,QAAM4Q,EAAa,KAAEC,EAAS,KAAAC,EAAU,KAAMH,EAAA,KAoIlDxP,KAjII6D,QAAU,SAAO4G,EAAAmF,GAkInB,GAjII5F,GAAIY,EAAAH,GAAAT,KAAe4F,EAkIvB,OAjIuB,mBAAf5F,IAAqBA,KAAgB,GAuGjD7V,QAjIQC,OAAM,eAkIT8U,QAAQ,SAAUvF,MAkCzB,WACE,YA3HA,SAAAkM,GAAAhY,GAkIE,GAAIiY,GAAS,SAASC,EAAQC,EAAUrG,GACtC,MAAO,YAjIXA,EAAQ4B,OAAO,WACVyE,EAAUC,QAAUF,EAAAtQ,YAKrByQ,EAAU,SAAAH,EAAAC,EAAArG,GACV,MAAM,YACJA,EAAI4B,OAAQ,WAmIVyE,EAAS7X,OAAO4X,EAAOtQ,YA7HzB0Q,EAAS,SAAYJ,EAAApG,GAmIvB,MAlII,UAAKzN,GAmIPyN,EAlIEyG,WAAc,gBAoIVC,MAAOnU,EAAMmU,MACbC,OAAQpU,EAAMoU,WAKpBC,EAAY,SAASP,EAAUrG,GACjC,GAAIoG,GAAS,GAAIS,WAIjB,OAHAT,GAAOU,OAASX,EAAOC,EAAQC,EAAUrG,GAjI9CoG,EAAYW,QAAAR,EAAAH,EAAAC,EAAArG,GACToG,EAAAY,WAAAR,EAAAJ,EAAApG,GAmISoG,GAGLa,EAnIS,SAAAhS,EAAmB+K,GAoI9B,GAAIqG,GAAWnY,EAAGI,QAjIpB8X,EAASQ,EAAgBP,EAAArG,EAsIvB,OAFAoG,GAnIMa,cAAUhS,GAEVoR,EAAM5X,QAsId,QACEyY,cAnIMD,oBAkFVzc,QAAQC,OAAO,eACV8U,QAAQ,aAAc2G,MAwD7B,WACE,YAMA,SAAS/H,GAAUjQ,GACjB,OACEwQ,QAAS,SAAUyI,GACjB,GAAItK,GAAI3O,EAAGI,QACP8Y,EAAM,GAAIC,MAKd,OAJAD,GAAID,IAAMA,EACVC,EAAIN,OAAS,WACXjK,EAAEyJ,WAjIAzJ,EAAApO,SAqIN8P,aAnIc,WAoIZ,GAAI1B,GAAI3O,EAAGI,OAIX,OAHAgZ,UAASC,MAnIM,WAoIb1K,EAAEyJ,YAEGzJ,EAAEpO,2BApBfjE,QAAQC,OAAO,eACZ8U,QAAQ,YAnIWpB,MA6BxB,WACE,YAMA,SAASqJ,GAAS3W,GAoIhB,OAlIA4W,MAAK,SAAAC,EAAwBC,EAAQC,GACnC,QAAWC,KACX,MAAOH,GAAQC,EAAMC,GAsInB,GAAItW,GAAIuW,GAERrd,SAAQ6U,QAAQxO,GAASkQ,KAAK,QAAS,WAlIlCzP,GAAAoW,EAAAI,OAAAxW,GAoIHA,EAAIuW,MAhIRrd,QAAQ6U,QAAUxO,GAAIkQ,KAAQ,OAAI,WAC1BzP,GAAAoW,EAAUI,OAAIxW,6BAnB1B9G,QAAQC,OAAO,eAoIZ8U,QAnIE,mBAAkBiI,MA4JzB,WACI,YAOA,SAASO,GAAkB5X,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASuX,EAAwBC,EAAsBC,EAAcC,EAAgB5X,EAAuB6X,EAAgBC,GAiC/L,QAASC,KACDC,GACAH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GAnIrC,MAAnBA,EAAAlI,SACGwJ,EAAAqS,YAAA3T,EAAAhJ,KACDsK,EAAAsS,WAAe,IAExB,SAAa3R,GACb5I,EAAA2I,YAAA,QAAA,mBAAA,oBAIHuR,EAAcM,sBAAA9T,KAAA,SAAAC,GAqIW,MAAfA,EAAIlI,SAnILwJ,EAAAwS,iBAAoB9T,EAAAhJ,KAC1BsK,EAAAsS,WAAc,IAEd,SAAS3R,GAqIN5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA/G5D,QAAQ+R,GAAGC,GACP,GAAAC,GAAUtY,EAAAsY,QAAA,UAAA,4CACVtb,WAAM,EACN+F,KAAS,MAGbuV,GAASjT,OAAAjB,KAAA,WAsIDwT,EAAqBQ,oBAAoBC,EAAQE,cAAcnU,KAAK,SAAUC,GApI/D,MAAVA,EAAAlI,QACFuB,EAAA2I,YAAA,UAAA,oCAAA,SACIwR,KAuICna,EAAW2I,YAAY,QAAS,+BApIvCrJ,WAAA,EAsIW+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,8DAC5BrJ,WAAW,EACX+F,KAAM,UAlIjB,cAGX,QAAeyV,GAAAC,GACZ9S,EAAQ+S,WAAA,EAuID/S,EAAGgT,YAAa,EAChBhT,EAAG0S,QAAQO,QAAUH,EAAIG,QApI1BjT,EAAA0S,QAAAte,QAAA8e,KAAAJ,EA0IC,KAAK,GAAI5X,KAAK8E,GAAGqS,YACTrS,EAAGqS,YAAYnX,GAAGiX,WAAanS,EAAG0S,QAAQP,YArI9CnS,EAAA0S,QAAAS,gBAAAnT,EAAAqS,YAAAnX,GA2IJ,KAAK,GAAIA,KAAK8E,GAAGoT,iBACTpT,EAAGoT,iBAAiBlY,GAAGmY,iBAAmBrT,EAAG0S,QAAQW,iBArIzDrT,EAAA0S,QAAQW,eAAsBrT,EAAAoT,iBAAYlY,GAyI9C,KAAK,GAAIA,KAAK8E,GAAGsT,oBACTtT,EAAGsT,oBAAoBpY,GAAGqY,oBAAsBvT,EAAG0S,QAAQc,UAC3DxT,EAAG0S,QAAQa,kBAAoBvT,EAAGsT,oBAAoBpY,IAUlE,QAASuY,KACL,GAAIC,GAAcvZ,EAAsBgG,uBAtIvCuS,GACDP,UAAKnS,EAAA0S,QAAAS,gBAAAhB,UAwIDc,QAASjT,EAAG0S,QAAQO,QAtIzBI,eAAqBrT,EAAA0S,QAASW,eAAgBA,eAC9CE,kBAAcvT,EAAA0S,QAAgBa,kBAAAA,kBAE9BvT,GAAA+S,WAkBAL,EAAAiB,WAAoBD,EAAArT,OAwIfqS,EAAQE,aAAe5S,EAAG0S,QAAQE,aAtIzCX,EAAsBY,kBAAAH,GAAAjU,KAAA,SAAAC,GAwIPA,EAAIhJ,KAAKke,aAAc,GAtIvB7b,EAAA2I,YAAsB,UAAAhC,EAAAhJ,KAAAme,QAAuB,gBAwI7C3B,IAtIhBlS,EAAAgT,YAAA,EAwIgBhT,EAAG+S,WAAY,EACfrB,MArIR3Z,EAAW2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBACX7T,EAAAgT,YAAe,IAyIZ,SAvIQrS,GAwIP5I,EAvIO2I,YAAY,mCA/B5BgS,EAAAoB,UAAuBJ,EAAUrT,OAC7B4R,EAAc8B,iBAAArB,GAAAjU,KAAA,SAAAC,GAwILA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBAtIpD3B,IACDlS,EAAAgT,YAAA,EACAtB,MAyIC3Z,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAClD7T,EAAGgT,YAAa,IApI7B,SAASrS,GACT5I,EAAY2I,YAAA,kCAgKf,QAvIIsT,KAwIAhU,EAAG+S,WAvIS,EAwIZ/S,EAAGgT,YAvIQ,EAwIXhT,EAAGiU,aAvIQ,EA0If,QAvIQvC,KAyIJ1R,EAAG0S,WAtIP1S,EAAAgT,YAAA,EACIhT,EAAA+S,WAAQ,EA0IZ,QAASmB,KAtINlU,EAAAmU,YAAeC,gBA7LzB,GAAApU,GAAYC,IAqILD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAlIlCrU,EAAAuU,YAAQ,EAqIPvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAjIvBzU,EAAAgT,YAAO,EACLhT,EAAA+S,WAAa,EAqIb/S,EApIEsS,WAAS,EAqIXva,EAAW2c,SAAU,EAhIrB1U,EAAAgU,OAAUA,EACZhU,EAAA0R,OAAOA,EACL1R,EAAAkU,UAAaA,EAqIblU,EApIE0S,WAsIF1S,EAAGyT,kBAAoBA,EACvBzT,EAAG6S,kBAAoBA,EAlI3B7S,EAAIyS,oBAAsBA,CAEtB,IAAAN,GAAMhY,EAAWgG,uBAAAwU,gBAAAxC,SAsIjBD,KA5GFD,EAAe2C,eAAA7a,EAAAhC,GAAA0G,KAAA,SAAAC,GAqIU,MAAfA,EAAIlI,SACJwJ,EAAGoT,iBAAmB1U,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAIxDuR,EAAqB4C,kBAAkB9a,EAAOhC,GAAY0G,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,SApIVwJ,EAAOsT,oBAAA5U,EAAAhJ,KACJsK,EAAAsS,WAAa,IAuIf,SAAU3R,GApIV5I,EAAU2I,YAAI,QAAA,mBAAA,2OA0DrBtM,QACKC,OAAO,6BACPe,WAAW,oBAAqBuc,MAgNzC,WACI,YAMA,SAASmD,GAA4B/c,EAAY0S,EAAQjQ,EAAQH,EAASE,EAAWR,EAAOC,EAAQS,EAASN,GACzG,GAAI6F,GAAKC,IACTD,GAAGqU,kBACChJ,MAvII,IAyIJA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAvIQtU,EAAAqU,gBAAe,GAwI1BrU,EAAGuU,YAvIS,EAwIZvU,EAAGwU,qBAvIa,SAAWC,GAwIvBzU,EAAGuU,YAvISE,EAyIhB,IAAIM,GAAgB5a,EAAsBgG,sBAtInC4U,GAAYJ,gBAAAxC,SAyInB1H,GAAOuK,SACFjE,IAAK,iEAAkEkE,KAAM,aAtIlFlE,IAAS,iEAAuBkE,KAAA,aAC5BlE,IAAG,iEAAYkE,KAAA,aACflE,IAAG,iEAAakE,KAAA,aAChBlE,IAAG,iEAAsBkE,KAAA,aAwIxBlE,IAAK,iEAAkEkE,KAAM,aAGlFxK,EAAOyK,OAAS,EAEhBzK,EAvII0K,SAAc,SAAGC,GAwIjB,MAvII3K,GAAOyK,SAAYE,GA0I3B3K,EAAO4K,SAAW,WACd5K,EAAOyK,OAAUzK,EAAOyK,OAAS,IAAOzK,EAAOyK,OAASzK,EAAOuK,OAAO7Z,OAAS,GAGnFsP,EAAO6K,SAvIQ,WAwIX7K,EAAOyK,OAvIIzK,EAAQyK,OAAAzK,EAAoBuK,OAAA7Z,OAAiB,IAAAsP,EAAAyK,OAAA,GA0I5DzK,EAvII8K,UAAc,SAAGH,GAwIjB3K,EAvIIyK,OAAOE,uHAsFnBhhB,QACKC,OAvIO,uCAwIPe,WAvIO,8BAAW0f,MA0L3B,WACI,YAOA,SAvIQU,GAAIzd,EAAcyC,EAAAH,EAAAN,EAAsB0b,EAAA1D,EAAAD,EAAA4D,EAAAvb,EAAAM,GA6K5C,QAASyX,KACLuD,EAvIQE,aAAWlX,KAAA,SAAYC,GAwIR,MAAfA,EAAIlI,QACJwJ,EAAG4V,SAAWlX,EAAIhJ,KAClBqc,EAAe8D,mBAAmBpX,KAAK,SAAUC,GAC1B,MAAfA,EAAIlI,SACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBqgB,IAtIF/V,EAAAsS,WAAA,KAGXtS,EAAAsS,WAAc,GAyITva,EAAW2I,YAAY,QAAS,yBAA0B,SAE/D,SAAUC,GAtIV5I,EAAU2I,YAAA,QAAA,mBAAA,UA2IjB,QAASqV,KAtITN,EAASM,cAAYtX,KAAA,SAAAC,GACF,MAAZA,EAAAlI,SAwIKwJ,EAAGgW,aAAetX,EAAIhJ,KACtB8E,EAAOqI,QAAQ7C,EAAG4V,SAAU,SAAUK,GAClCzb,EAAOqI,QAAQ7C,EAAGgW,aAAc,SAAUxI,GAClCyI,EAAEC,SAAW1I,EAAE0I,UACfD,EAAEE,UAAY3I,EAAE2I,eAG5BnW,EAAGsS,WAAY,KAM3B,QAAS8D,GAAwBC,EAAW9X,GAvIhD8X,EACYvE,EAAAwE,oBAAAD,GAAA5X,KAAA,SAAAC,GACI,MAAAA,EAAAlI,SAyIIwJ,EAAGuW,UAAY7X,EAAIhJ,KAvI9BsK,EAAAuW,UAA4Bpb,OAAA,GACxBd,EAAA8C,OAAA,UAAA,0BAAA6C,EAAAwW,KAAAC,gBAAAC,aAAArf,WAAA,EAAA+F,KAAA,OAEI4C,EAAAsS,WAAA,EACV/T,GACUA,QAITyB,EAAAuW,aACDvW,EAAAwW,KAAAG,cAAA,MA8IH,QAxIOC,GAAcC,EAAAtY,GAyIbsY,EAvIJnB,EAAgBoB,iBAAAD,GAAsBpY,KAAA,SAAAC,GACZ,MAAdA,EAAAlI,SAyIAwJ,EAAG+W,SAAWrY,EAAIhJ,KAvIlBsK,EAAA+W,SAAA5b,OAAA,GACNd,EAAA8C,OAAA,UAAA,yBAAA6C,EAAkEwW,KAAAG,cAAMK,WAAA3f,WAAA,EAAA+F,KAAA,OAExE4C,EAAAsS,WAAA,EACA/T,GACAA,QAIHyB,EAAA+W,YAyIC/W,EAAGwW,KAAKS,aAAe,MAI/B,QAASC,GAAeC,GAvIxB,GAAOlc,IACHob,UAAOrW,EAAUwW,KAAAC,gBAAqBJ,UAyIlCQ,QAAS7W,EAAGwW,KAAKG,cAAcE,QAC/BO,OAAQpX,EAAGwW,KAAKS,aAAaG,OAvI9BhX,SAAWF,EAAAG,OA0IdoV,GAAY4B,kBAAkBpc,GAAKwD,KAAK,SAAUC,GAC3B,MAAfA,EAAIlI,SAvITwJ,EAAAsX,UAAY5Y,EAAUhJ,KAClBsK,EAAAuX,UAAS,EAyIRvX,EAAGsS,WAAY,EACX6E,GACAA,OAOhB,QAzICnD,KA0IGhU,EAAGgT,YAAa,EAChBhT,EAAGwX,aAAc,EAxIzBxX,EAASyX,WAAS,EA6Id,QAASC,KAxIN1X,EAAAgT,YAAA,EACAhT,EAAAkU,YA0IClU,EAAGwW,QAGP,QAzIO9E,KA0IH,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFAxILtb,WAAa,EACb+F,KAAA,MAGHuV,GAAWjT,OAAAjB,KAAU,WAClBuB,EAAAgT,YAAA,EACAhT,EAAAkU,YACAlU,EAAAwW,UAOH,QAAGtC,KACAlU,EAAA2X,SAAAvD,gBAGH,QAAGwD,GAAYpB,GACZxW,EAAAwX,aAAW,EACVxX,EAAAyX,WAAa,EA0IbzX,EAAG+S,WAAY,EAxInB/S,EAAAgT,YAAA,EA0IIhT,EAAGwW,KAAOpiB,QAAQ8e,KAAKsD,GACvBxW,EAAGwW,KAAKS,gBAxIZjX,EAAAwW,KAASS,aAAOG,OAAAZ,EAAAY,OACZhB,EAAYI,EAAaH,UAAe,WA2IpC,IAzII,GAAGwB,KAAA7X,GAAA8V,YACH9V,EAAA8V,YAAe+B,GAAAxB,YAAmBG,EAAKH,YACnCrW,EAAAwW,KAAQC,gBAAgBzW,EAAA8V,YAAA+B,GA4IhC,KAAK,GAAIA,KAzIG7X,GAAGuW,UA0IPvW,EAAGuW,UAAUsB,GAAGhB,UAAYL,EAAKK,UACjC7W,EAAGwW,KAAKG,cAAgB3W,EAAGuW,UAAUsB,GAG7CjB,GAzIeJ,EAAAK,QAAY,WA0IvB,IAAK,GAAIgB,KAAK7X,GAAG+W,SAxIZ/W,EAAK+W,SAAAc,GAAAT,SAAAZ,EAAAY,SACHpX,EAAAwW,KAAAS,aAAqBjX,EAAA+W,SAAAc,GA0IpB7X,EAAG8X,QAAS,KApIxBZ,EAAQ,SAAgB1J,GACpBhT,EAAGqI,QAAA7C,EAAesX,UAAI,SAAA9J,GACfA,EAAA0I,SAAWM,EAAAN,UACdlW,EAAOwW,KAAAuB,cAAWvK,KA2ItBxN,EAAG8X,QAzIS,MA+IxB,QAASE,GAAWxB,GAChB,GAAI7D,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAvIzEuV,GAAIjT,OAAWjB,KAAA,WACXgX,EAAAuC,WAAaxB,EAAAyB,QAAoBxZ,KAAA,SAAgBC,GAC1B,MAAfA,EAAIlI,QACJuB,EAAG2I,YAAgB,UAAA,2BAAA,QACnBwR,KA2IAna,EAAW2I,YAAY,QAAS,qBAAuBrJ,WAAW,EAAM+F,KAAM,QAEnF,SAzISuD,GA0IR5I,EAzIQ2I,YAAA,QAAA,kEAAArJ,WAAA,EAAA+F,KAAA,UA2Ib,cAyDP,QAzIO8a,GAAA1B,GA2IH,GAAKxW,EAAG+S,UAhHL,CACA,GAAAyD,IACAH,UAAarW,EAAAwW,KAAAC,gBAAAJ,UACbQ,QAAO7W,EAAQwW,KAAKG,cAAAE,QACfO,OAAApX,EAAAwW,KAAeS,aAAAG,OACflB,QAAAlW,EAAAwW,KAAauB,cAAc7B,QACnCiC,SAAAnY,EAAAwW,KAAwB2B,SA0IhBC,SAAUpY,EAAGwW,KAAK4B,SAxItBH,OAASjY,EAAKwW,KAAGyB,OACbI,QAAOrY,EAAAwW,KAAA8B,QA0IP3E,WAzIYzT,EAAAG,OA2IhBoV,GAAY8C,SAAS/B,GAAM/X,KAAK,SAAUC,GAxIrCA,EAAIhJ,KAAQke,aAAW,GACpB7b,EAAG2I,YAAa,UAAiBhC,EAAAhJ,KAASme,QAAA,eAC1C3B,IA0IAlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAxIvB2E,MAEQ3f,EAAO2I,YAAY,QAAWhC,EAAKhJ,KAAAme,QAAQ,eA0I3C7T,EAAGgT,YAzIS,IA4IjB,SAAUrS,GACT5I,EAAW2I,YAAY,qCAlDZ,CACf,GAAI8V,IAxIHH,UAASrW,EAAAwW,KAAAC,gBAAAJ,UACVQ,QAAU7W,EAAAwW,KAAQG,cAAQE,QAC1BO,OAAApX,EAAAwW,KAAAS,aAAAG,OACAlB,QAAWlW,EAAAwW,KAAAuB,cAAA7B,QACXiC,SAAMnY,EAAAwW,KAAA2B,SA0IFK,SAAUxY,EAAGwW,KAAKgC,SAClBH,QAASrY,EAAGwW,KAAK8B,QAxIjBxE,UAAO5T,EAAKG,OAEhBoV,GAAGgD,QAAAjC,GAAA/X,KAAA,SAAAC,GACAA,EAAOhJ,KAAAke,aAAA,GA0IF7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eACpD3B,IACAlS,EAAGgT,YAAa,EAChB0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eAxIzD7T,EAAAgT,YAAY,IA4IV,SAAUrS,GAxIZ5I,EAAS2I,YAAM,kCA4KxB,QAASgY,GAAiBlC,GACtB,GAAIzV,GAAM,yBAA4ByV,EAAK,SAAY,WAAa,UAAY,gBAC5EmC,GAASnC,EAAK,SAAY,WAAa,UAAY,qBACnD7D,EAAUtY,EAAQsY,QAAQ,UAC1B5R,GAAO1J,WAAW,EAAM+F,KAAM,MAvIlCuV,GAAIjT,OAAUjB,KAAA,WACVgX,EAAAiD,iBAAAlC,EAAAyB,QAAAxZ,KAA8C,SAAWC,GA0IlC,MAAfA,EAAIlI,QAxIRuB,EAAY2I,YAAY,UAAAiY,EAAA,QAC5BzG,KAEQna,EAAW2I,YAAY,QAAA,4BAAuCrJ,WAAA,EAAA+F,KAAA,QA2InE,SAzIQuD,GA0IP5I,EAzII2I,YAAW,QAAY,qEAAuDrJ,WAAA,EAAA+F,KAAA,UA2IvF,cApWP,GAvII4C,GAAIC,IA2IRD,GAAGqU,kBAvIKhJ,MAAsB,IAAQA,MAAA,KAAkBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAwIxDrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAvIa,EAwIhBvU,EAAGwU,qBAvIK,SAAqBC,GAwIzBzU,EAAGuU,YAvIaE,GA0IpBzU,EAAGgT,YAvIa,EAwIhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAG4V,YACH7d,EAAW2c,SAvIQ,EAwInB1U,EAAGoW,wBAA0BA,EAC7BpW,EAAG4W,qBAAuBA,EAC1B5W,EAAGkX,eAvIQA,EAyIXlX,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAvIQA,EAwIXlU,EAAG4X,SAvIKA,EAwIR5X,EAAGgY,WAvIaA,EAwIhBhY,EAAGkY,SAvIKA,EAwIRlY,EAAG0Y,iBAvIiBA,EAyIpB1Y,EAAGwX,aAvIa,EAwIhBxX,EAAGyX,WAAY,EACfzX,EAAGuX,UAAW,CACd,IAAIrX,GAvIY/F,EAAAgG,sBAyIhB+R,KAiMAlS,EAAG4Y,UAAY,WACX,GAAI3d,IACAob,UAAWrW,EAAGwW,KAAKC,gBAAgBJ,UACnCQ,QAAS7W,EAAGwW,KAAKG,cAAcE,QAxIvCO,OAASpX,EAAAwW,KAAAS,aAAqBG,OACtBjB,UAASnW,EAAAmW,UACTrC,UAAA5T,EAAYG,OA2IhBoV,GAzIYoD,SAAG5d,GAAWwD,KAAI,SAAAC,GA0ItBA,EAzIIhJ,KAAIke,aAAY,GA0IpB7b,EAzIQ2I,YAAe,UAAWhC,EAAAhJ,KAAAme,QAAA,gBA0IlC7T,EAAGuX,UAAW,EACdvX,EAAGmW,UAzII,KA0IPe,MAEAnf,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gBAClD7T,EAAGgT,YAAa,IAGrB,SAzISrS,GA0IR5I,EAAW2I,YAAY,kCAM/BV,EAAG8Y,YAzIc,SAAQC,GA2IrB,GAzIIpG,GAAUtY,EAAAsY,QAAW,eA0IrB,mDAvIItb,WAAI,EACJ+F,KAAG,MA4IXuV,GAzIQjT,OAAIjB,KAAA,WA0IRgX,EAzIQqD,YAAAC,GAAAta,KAAA,SAAAC,GA0Ie,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBACpD7T,EAAGuX,UAAW,EACdvX,EAAGmW,UAAY,KACfnW,EAAGwW,KAAKuB,cAAgB,KACxBb,MAvITnf,EAAa2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBACb7T,EAAAgT,YAAc,0JA7IzB5e,QACKC,OAAO,oBACPe,WAAW,WAAYogB,MA2YhC,WACI,YAOA,SAzIQwD,GAAejf,EAAKE,EAAYwQ,EAAA1S,EAAAyC,EAAAH,EAAAI,EAAAN,EAAA8e,GAsKpC,QAAS/G,MAWT,QAASR,KACL1R,EAAGgT,YAzII,EA0IPhT,EAAG+S,WAzIK,EA0IRmB,IACAlU,EAAGkZ,cAGP,QAAShF,KACLlU,EAAGmZ,YAzIK/E,gBA6BZ,QAASgF,GAAA1jB,GACL,GAAI2jB,GAAM3jB,EAAA2jB,KACN9iB,EAAOb,EAAEa,IACb,OAAc,QAAVA,IAA0B,IAAR8iB,EAAQC,UAAA,IAAAD,EAAAC,UA0MlC,QA1IOC,GAAc7jB,GA2IjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAzIjB,IAAa,QAAbA,EAGH,IAAW,GAFRijB,GAAY,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEJxe,EAAU,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CA2IT,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAtIjC,MAAA,GA8IH,QAASqjB,KAxIT7Z,EAAAsS,WAAA,CA2IqBnY,GAAsBgG,sBAEvC8Y,GAAkBY,8BAA8Bpb,KAAK,SAAUC,GAC3D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CAzIlB,IAAA2D,GAASnf,SAAAijB,cAAA,IACXjjB,UAAYC,KAAAijB,YAAA/D,GACZA,EAAAgE,MAAa,eACb,IAAArc,GAAc,GAAAC,OAAAa,EAAAhJ,OA2ILqI,KAAM,oBAxIbtJ,EAASC,OAAAwlB,IAAAC,gBAAAvc,EACXnD,GAAa4E,KAAA5K,EAAA,UACbsD,EAAY2I,YAAA,UAAA,iBAAA,mBACfwR,QA4IQ7X,GAAQwH,MAAM,QAAS,0BAA4BxK,WAAW,EAAM+F,KAAM,SAtLtF,GAAI4C,GAzIIC,IA6IRD,GAAGuU,YAzIa,EA0IhBvU,EAAGwU,qBAzIqB,SAAAC,GA0IpBzU,EAAGuU,YAzISE,GA4IhBzU,EAAGgT,YAzIa,EA0IhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EAKrB1U,EAAG0R,OAASA,EACZ1R,EAAGkU,UAzISA,EA2IZlU,EAAGkZ,cACHlZ,EAAG6Z,4BAzI0BA,EA2I7B7Z,EAAGkZ,WAzISkB,KAAS,GAAGX,KAEZtf,GAAkBgG,sBA0I9B+R,KA0BAlS,EAAGqa,MAAQ,WACPra,EAAGsa,GAzIK,GAAAb,OA2IZzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAzIGhB,MA0IZiB,WAAW,GAGf1a,EAAG2a,aACCC,aAzIQxB,EA0IRyB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MACbqB,YAAa,GAWjB9a,EAAG+a,UAzIS,WA0IR/a,EAAGua,cAzIaE,QAAAza,EAAAua,cAAsBE,QAAa,KAAU,GAAAhB,MA0I7DzZ,EAAG2a,YAzISF,QAAIza,EAAWua,cAAKE,SA4IpCza,EAAG+a,YAEH/a,EAAGgb,MAAQ,WACPhb,EAAGib,OAzIIpM,QAAU,GA4IrB7O,EAAGkb,MAzII,WA0IHlb,EAAGmb,OAAOtM,QAAS,CACP,IAAI4K,OAIpBzZ,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAAU,SAAUC,EAAMC,EAAOC,GAChC3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,YAAa,QACvE5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GAEvB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QAxIV1M,QAAY,EAGT,IAAAkN,GAAA,GAAAtC,KA2IIsC,GA1IQP,QAAAO,EAAAC,UAAA,EA2IR,IA1ICC,GAAW,GAAAxC,KA2IZwC,GAAcT,QAAQO,EAASC,UAAY,GAC3Chc,EAAG2Z,SAzIPN,KAAS0C,EACDvlB,OAAK,SA4IL6iB,KAAM4C,EACNzlB,OAAQ,cAgDZiU,EAAO4P,MAAQ,WAzIZ5P,EAAQ6P,GAAA,GAAAb,OA4IXhP,EAAO4P,QAEP5P,EAAOiN,MAAQ,WAzIZjN,EAAQ6P,GAAA,MA6IX7P,EAAOpL,KAAO,SAAUuL,GAzIrBH,EAAAjU,OAAAqY,QAAgB,GA6InBpE,EA1IIuQ,MAAW,WA2IXvQ,EAAOyR,QAAQrN,QAAS,GAG5BpE,EA1II+Q,QAAA,SAAcC,EAAAC,EAAAC,GACdlR,EAAA6P,GAAS,GAAIb,MAAKgC,EAASC,EAAAC,IA6I/BlR,EAAOkQ,aACHwB,WAAY,OACZrB,YAAa,EACbsB,QAAS,QAGb3R,EAAOmR,SA1IQ,QA2IfnR,EA1IIoR,OAAOpR,EAASmR,QAAU,GA4I9BnR,EAAOjU,QAzIJqY,QAAA,GA4IHpE,EA1IOyR,SA2IHrN,QAAQ,gIArOhBza,QACKC,OAAO,iCACPe,WAzIW,iBAAM4jB,MAmX1B,WACI,YAOA,SA1IQqD,GAAmBtiB,EAAAhC,EAAAyC,EAAAH,EAAAkI,EAAAkI,EAAA6R,EAAAC,GA+JvB,QA1IIrK,KAEDqK,EAASC,cAAAja,GAAA9D,KAAA,SAAAC,GA4IJ,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGyc,UAAY/d,EAAIhJ,KAzInBsK,EAAA0c,8BAAA1c,EAAAyc,UAAAE,YAAAC,kBACA,KAAA,GAAA1hB,KAAA8E,GAAAyc,UAAAE,YAAAE,eA2II7c,EAAGyc,UAAUE,YAAYE,eAAe3hB,GAAG4hB,OAASngB,KAAKC,MAAMoD,EAAGyc,UAAUE,YAAYE,eAAe3hB,GAAG4hB,QAC1G9c,EAAG+c,sBAAsB7hB,GAAK8E,EAAGyc,UAAUE,YAAYE,eAAe3hB,GACtE8E,EAAGgd,MAAMhd,EAAG+c,sBAAsB7hB,QAtIlDnD,GAAsB2I,YAAS,QAAY,yBAAA,eAEvC,SAAMC,GACN5I,EAAQ2I,YAAA,QAAA,mBAAA,gBA8IZ,QAASsc,GAAMlK,GAxIf,GAyII9S,EAAGid,WAAa,EAzICtnB,QAArBmd,EAASoK,UAAkBvnB,QAAAmd,EAAAqK,IAAA,CACnB,GAAAC,GAAYtK,EAAAuK,MACZvK,GAAAxC,OAAY,EAAA,IAAAwC,EAAA,SAAA,IAAAA,EAAA,IAAA,EAAA,KAAA,IA4IhB,IA1II,GAAI5X,KAAA8E,GAAA+c,sBAA4B,CA2IhC,GAAIO,GAAYtd,EAAG+c,sBAAsB7hB,GAAGoV,KAzI5CtQ,GAAAid,YAAgBK,GA0FxB,GAAItd,GAAKC,IAETD,GAAGqU,kBA1IoBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2IvBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAxIjCrU,EAAGuU,YAAU,EA2IbvU,EAAGwU,qBA1IkB,SAAaC,GA2I9BzU,EAAGuU,YAAcE,GAIrB1c,EAAW2c,SAAU,EAzIrB1U,EAAGgd,MAAAA,EA2IHhd,EAAG+c,yBAIH7K,IAmCAlS,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,6HA5DlCnpB,QACKC,OAAO,uBACPe,WAAW,uBAAwBinB,MAgE5C,WACI,YAOA,SAASmB,GA1IOzlB,EAAGyC,EAAgBH,EAAIN,EAAA2b,EAAA3D,EAAAD,EAAA3X,GA4KnC,QA1II+X,KA2IgB/X,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EuD,GAAY+H,aAAahf,KAAK,SAAUC,GAzIrC,GAAoB,MAApBA,EAAAlI,OAAoB,CAChBwJ,EAAA+W,SAAcrY,EAAAhJ,IA2Ib,IAAIgoB,EACJ3L,GAAe8D,iBAAiB6H,GAAYjf,KAAK,SAAUC,GAzIlD,MAAdA,EAAclI,SACLwJ,EAAA8V,YAAApX,EAAAhJ,KACCsK,EAAAsS,WAAA,KA6ILtS,EAAGsS,WAAY,MAxIpBva,GAAgB2I,YAAQ,QAAA,yBAAA,SAExB,SAASC,GACZ5I,EAAQ2I,YAAA,QAAA,mBAAA,UA8IZ,QAAS0V,GAAwBC,EAAW9X,GACpC8X,EACAvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGuW,UAAY7X,EAAIhJ,KACfsK,EAAGuW,UAAUpb,OAAS,GAzIrCd,EAAA8C,OAAA,UAAA,0BAAA6C,EAAA2d,KAAAlH,gBAAAC,aAAArf,WAAA,EAAA+F,KAAA,OA4IW4C,EAAGsS,WAAY,EACX/T,GA1IxBA,QA+IYyB,EAAGuW,aA1INvW,EAAA2d,KAAAhH,cAAqB,MAK1B,QAAG3C,KA4IChU,EAAGgT,YAAa,EA1IjBhT,EAAAwX,aAAc,EACdxX,EAAAyX,WAAA,EA8IH,QAASC,KACL1X,EAAGgT,YAAa,EA1IpBhT,EAAA+S,WAAW,EACR/S,EAAA2d,QA+IH,QAASjM,KA1IT,GAAAiB,GAAAtY,EAAAsY,QAAA,eA4IQ,yFA1ICtb,WAAO,EA4IJ+F,KAAM,MAGduV,GA3IQjT,OAAIjB,KAAA,WA4IRuB,EAAGgT,YA3II,EA4IPhT,EAAG+S,WA3II,EA4IP/S,EAAG2d,UAOX,QAASC,GA3IGD,GA4IR3d,EAAGwX,aAAY,EACfxX,EA3IGyX,WAAU,EA4IbzX,EAAG+S,WA3IY,EA4If/S,EAAGgT,YAAa,EAChBhT,EAAG2d,KAAOvpB,QAAQ8e,KAAKyK,GACvBvH,EAAwBuH,EAAKtH,UAAW,WA1I5C,IAAS,GAAMwB,KAAK7X,GAAA8V,YACb9V,EAAA8V,YAAa+B,GAAAxB,YAAAsH,EAAAtH,YACRrW,EAAA2d,KAAYlH,gBAAiBzW,EAAA8V,YAAO+B,GA8IxC,KAAK,GAAIA,KAAK7X,GAAGuW,UA1IZvW,EAAKuW,UAAGsB,GAAAhB,UAAuB8G,EAAA9G,UAChC7W,EAAA2d,KAAYhH,cAAG3W,EAAAuW,UAAyBsB,MAkJpD,QAASgG,GAAWF,GAChB,GAAIhL,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WA1InBiX,EAAAmI,WAAAF,EAAAvG,QAAA3Y,KAAA,SAAAC,GACT,MAAAA,EAAAlI,QA4IoBuB,EAAW2I,YAAY,UAAW,2BAA4B,QAC9DwR,KA1IRna,EAAA2I,YAAA,QAAA,qBAAArJ,WAAA,EAAA+F,KAAA,QA8IG,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,8DAAgErJ,WAAW,EAAM+F,KAAM,UA1I/H,cAiJJ,QAAS0gB,GAASH,GACd,GAAIjK,GAAcvZ,EAAsBgG,sBA1IzC,IADAH,EAAAsS,WAAA,EACAtS,EAAA+S,UAqBA,CA6IK,GAAI4K,IA3IZtH,UAAArW,EAAA2d,KAAAlH,gBAAAJ,UA6IYQ,QAAS7W,EAAG2d,KAAKhH,cAAcE,QA3IlClD,WAAOD,EAAArT,OACR+W,OAAYpX,EAAA2d,KAAAvG,OAChBgB,SAAYpY,EAAA2d,KAAavF,SACjB2F,SAAI/d,EAAA2d,KAAWI,SA8InBrI,GA5IQsI,SAAAL,GAAAlf,KAAA,SAAAC,GACJA,EAAAhJ,KAAAke,aAAe,GACX7b,EAAQ2I,YAAW,UAAKhC,EAAAhJ,KAAAme,QAAA,eA6IxB3B,IACAlS,EAAGgT,YA5II,EA6IPhT,EAAG+S,WAAY,EACf2E,MA1ID3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eACH7T,EAAAgT,YAAW,IAEhB,SAAUrS,GACT5I,EAAW2I,YAAY,qCA1Cd,CA6IT,GAAIid,IA3ITtH,UAAcrW,EAAA2d,KAAAlH,gBAAAJ,UACdQ,QAAA7W,EAAA2d,KAAuBhH,cAAeE,QAClC/C,UAAcJ,EAAArT,OA6IT0d,SAAU/d,EAAG2d,KAAKI,SA1I3BrI,GAAauI,QAAAN,GAAAlf,KAAA,SAAAC,GACDA,EAAAhJ,KAAAke,aAAA,GACA7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,eACD3B,IACXlS,EAAAgT,YAA0B,EAClB0E,MAEC3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eACA7T,EAAAgT,YAAA,IAGT,SAAWrS,GACX5I,EAAmB2I,YAAA,iCAyKlBV,EAAGsS,WA5IC,EA+IR,QAAS4L,GA5IcP,GA6InB,GAAI5c,GAAM,yBA5IqB4c,EAAW,SAAA,WAAA,UAAoC,gBA6I1EhF,GAASgF,EAAK,SAAY,WAAa,UAAY,qBACnDhL,EA5IQtY,EAAGsY,QAAY,UA6IvB5R,GAAO1J,WA5IK,EAAA+F,KAAA,MA8IhBuV,GAAQjT,OAAOjB,KAAK,WAChBiX,EAAYwI,iBAAiBP,EAAKvG,QAAQ3Y,KAAK,SAAUC,GA3ItD,MAAAA,EAAAlI,QACAuB,EAAY2I,YAAA,UAAAiY,EAAA,QACPzG,KA8IAna,EAAW2I,YAAY,QAAS,4BAA8BrJ,WAAW,EAAM+F,KAAM,QAE1F,SAAUuD,GA3IZ5I,EAAS2I,YAAA,QAAA,oEAAArJ,WAAA,EAAA+F,KAAA,UAEX,cA5EP,GAAI4C,GAAKC,IAOTD,GAAGqU,kBA1ImBhJ,MAAW,IAAAA,MAAgB,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2IjDrL,EAAGsU,SA1IStU,EAAAqU,gBAAkB,GA4I9BrU,EAAGuU,YA1IS,EA2IZvU,EAAGwU,qBA1IY,SAAAC,GA2IXzU,EAAGuU,YA1IaE,GA6IpBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAG+W,YAzIH/W,EAAAoW,wBAA2BA,EA2I3Bre,EA1IW2c,SAAS,EAEpB1U,EAAAgU,OAAOA,EA2IPhU,EAAG0R,OAASA,EAzIZ1R,EAAA4d,SAAOA,EA2IP5d,EAAG6d,WA1IaA,EA2IhB7d,EAAG8d,SAAWA,EACd9d,EAAGke,iBAAmBA,EAzItBle,EAAAwX,aAAc,EA2IdxX,EAAGyX,WA1IQ,EA4IXvF,8HArCJ9d,QACKC,OA1IO,oBA2IPe,WAAW,WAAYooB,MAiOhC,WACI,YAOA,SAASW,GA5IGpmB,EAAAyC,EAAAH,EAAAN,EAAAiY,EAAAD,EAAA5X,EA6IR2X,EA5IY4D,EAAWD,EAAA2I,EAAAC,EAAA5T,GAkMvB,QAAS6T,KA3ITte,EAAAue,eAAkB,EACdve,EAAAX,MAAI,EAgJR,QAASmf,GA5IGriB,GA8IR,GAAI6T,GA5II,GAAAS,WA6IR,IAAKzQ,EA5IGue,cAgJD,CACHve,EAAGye,YA5IKtiB,EAAAsN,OAAAiE,MAAA,GA6IRsC,EAAOU,OA5IIjG,EAAAiU,cA6IX1O,EAAOa,cA5IC7Q,EAAAye,YA6IR,IAAIrgB,GA5IO,GAAAH,SA6IXG,GA5IQF,OAAA,cAAuB8B,EAAAye,aA6I/BrgB,EA5IQF,OAAG,YAAa8B,EAAAmS,WA6IxBH,EAAe2M,WAAWvgB,GAAUK,KAAK,SAAUC,GAC5B,MAAfA,EAAIlI,QA3ITuB,EAAe2I,YAAA,UAAA,oCAAA,WACdwR,KAEDna,EAAA2I,YAAA,QAAA,yBAAA,UA8IA,SA5ICC,GACA5I,EAAS2I,YAAQ,QAAc,yBAAA,eA0HnCV,GAAGye,YAActiB,EAAMsN,OAAOiE,MAAM,GA3IpCsC,EAAAU,OAAYjG,EAAQiU,cA6IpB1O,EA5IIa,cAAa7Q,EAAAye,aAiKzB,QAASvM,KA3IW/X,EAAoBgG,uBAAewU,gBAAAxC,SA6InDH,GA5IY4M,gBAASngB,KAAc,SAAMC,GA6IrC,GA5ImB,MA4IfA,EA5IIlI,OAAW,CA6IfwJ,EAAGqS,YA5IC3T,EAAAhJ,IA6IJ,IA5IIgoB,EA6IJ3L,GA5IO8D,iBAAY6H,GAAAjf,KAAA,SAAAC,GACf,MAAAA,EAAAlI,SACGwJ,EAAA8V,YAAApX,EAAAhJ,KACHsK,EAAAsS,WAAW,IAGhB,IAAAuM,EACC7M,GAAW8M,gBAAYD,GAAApgB,KAAA,SAAAC,GA6IA,MAAfA,EAAIlI,SACJwJ,EAAG+e,kBAAoBrgB,EAAIhJ,KAC3BsK,EAAGsS,WAAY,IAzI5B,IAAA0M,EA6IKhN,GAAeiN,eAAeD,GAAavgB,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,SA3IfwJ,EAAAkf,qBAAuBxgB,EAAAhJ,KAClBsK,EAAAsS,WAAA,IAGN,IAAO6M,EA6IHf,GAAoBgB,mBAAmBD,GAAQ1gB,KAAK,SAAUC,GA3IlD,MAALA,EAAKlI,SACJwJ,EAAAqf,iBAAsB3gB,EAAAhJ,KACtBsK,EAAAsS,WAAW,KA+InBtS,EAAGsS,WA5II,MA8IPjY,GAAQwH,MAAM,QAAS,yBAA0B,YAEtD,SA5IKlB,GA6IJ5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAAS0V,GAAwBC,EAAW9X,GACpC8X,EA3IHvE,EAAAwE,oBAAAD,GAAA5X,KAAA,SAAAC,GACT,MAAAA,EAAAlI,SA6IoBwJ,EAAGuW,UAAY7X,EAAIhJ,KACfsK,EAAGuW,UAAUpb,OAAS,GA5I9Cd,EAAA8C,OAAA,UAAA,0BAAA6C,EAAAsf,QAAA7I,gBAAAC,aACYrf,WAAA,EACI+F,KAAe,OAGtB4C,EAAYsS,WAAY,EACf/T,GACLA,QAiJDyB,EAAGuW,aA5IRvW,EAAAsf,QAAA3I,cAAmB,KAClB3W,EAAA+W,YACD/W,EAAAsf,QAAArI,aAAA,MAoJH,QA7IIL,GAASC,EAAAtY,GA8ILsY,EA5ILnB,EAAcoB,iBAAgBD,GAAApY,KAAA,SAAAC,GA8IF,MAAfA,EAAIlI,SA5IjBwJ,EAAc+W,SAAArY,EAAAhJ,KACNsK,EAAA+W,SAAA5b,OAAA,GACRd,EAAuB8C,OAAA,UAAe,yBAAA6C,EAAAsf,QAAA3I,cAAAK,WACpB3f,WAAA,EA8IG+F,KAAM,OA1If4C,EAAAsS,WAAA,EACA/T,GACIA,QAiJXyB,EAAG+W,YA5IR/W,EAAAsf,QAAArI,aAA0B,KAC1BjX,EAAA4V,YACA5V,EAAAsf,QAAAC,aAAsB,MAIzB,QAAGC,GAAkBpI,EAAA7Y,GAClBkX,EAAYgK,gBAAArI,GAAA3Y,KAAA,SAAAC,GACE,MAAdA,EAAAlI,SACAwJ,EAAA4V,SAAgBlX,EAAAhJ,KAChBsK,EAAc4V,SAAAza,OAAA,GACdd,EAAA8C,OAAsB,UAAA,yBAAA6C,EAAAsf,QAAArI,aAAA8G,UACV1mB,WAAA,EACF+F,KAAA,OAgJD4C,EAAGsS,WAAY,EA5IpB/T,GACPA,OAwJA,QA7IQyV,KACJhU,EAAAgT,YAAQ,EA8IRhT,EAAGwX,aA7II,EA8IPxX,EAAGyX,WA7IQ,EAkJf,QA7IQ/F,KA8IJ,GA7IIiB,GAAItY,EAAWsY,QAAI,eACnB,yFACAtb,WAAS,EACT+F,KAAA,MAgJJuV,GAAQjT,OA7IIjB,KAAA,WA8IRuB,EAAGgT,YA7IQ,EA8IXhT,EAAGkU,YACHlU,EAAGsf,WACHtf,EA7IG+S,WAAU,EA8Ib/S,EAAG0f,QA7IC,KA8IJ1f,EAAGye,YAAc,KACjBrqB,QAAQ6U,QAAQ,sBAAsBa,IAAI,QAOlD,QAASoK,KACLlU,EAAG2f,YA7ISvL,gBAgJhB,QAASwL,GA7IWN,GA8IhBtf,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EACbzX,EAAGX,MAAO,EACVW,EAAG+S,WA7IS,EA8IZ/S,EAAGgT,YA7IK,EA8IRhT,EAAGmS,UA7ISmN,EAAQnN,UA8IpBnS,EAAGye,YA7Iaze,EAAG0f,QAAA3nB,EAAoB8D,SAAI,sBAAAyjB,EAAAb,YA8I3Cze,EAAGsf,QAAUlrB,QA7IM8e,KAAAoM,GA+IW,IAA1BA,EAAQO,gBACR7f,EAAG8f,YA7IK,EA8IZ,KAAK,GA7IGjI,KAAA7X,GAAAqS,YA8IArS,EAAGqS,YA7ISwF,GAAA1F,YAAgBmN,EAAAO,gBA8I5B7f,EAAGsf,QA7IQS,eAAA/f,EAAAqS,YAA2BwF,GAiJ9C,KAAK,GA7IGA,KAAI7X,GAAA+e,kBACJ/e,EAAA+e,kBAAoBlH,GAAAmI,SAAAV,EAAmBU,SA8IvChgB,EAAGsf,QA7IKW,sBAAoBjgB,EAAA+e,kBAAAlH,GAgJpC,KAAK,GAAIA,KAAK7X,GAAGkf,qBACTlf,EAAGkf,qBAAqBrH,GAAGqI,aAAeZ,EAAQY,aA5IlDlgB,EAAGsf,QAAAa,yBAAYngB,EAAAkf,qBAAArH,GAgJvB,KAAK,GAAIA,KAAK7X,GAAGqf,iBA5Idrf,EAAAqf,iBAAexH,GAAAuI,sBAAAd,EAAAc,sBACdpgB,EAAAsf,QAAWe,qBAAqBrgB,EAAAqf,iBAAoBxH,GAI5DzB,GAASkJ,EAAwBjJ,UAAW,WAEpC,IAAA,GAAAwB,KAAa7X,GAAA8V,YACL9V,EAAA8V,YAAe+B,GAAAxB,YAAKiJ,EAAAjJ,YACpBrW,EAAGsf,QAAA7I,gBAAgBzW,EAAA8V,YAAA+B,GAgJ3B,KAAK,GAAIA,KAAK7X,GA7IEuW,UA8IRvW,EAAGuW,UA7IKsB,GAAMhB,UAAAyI,EAAAzI,UA8Id7W,EAAGsf,QAAQ3I,cAAgB3W,EAAGuW,UAAUsB,GAGhDjB,GA7IY0I,EAAAzI,QAAA,WA8IR,IAAK,GA7IGgB,KAAA7X,GAAA+W,SA8IA/W,EAAG+W,SAASc,GAAGT,SAAWkI,EAAQlI,SAClCpX,EAAGsf,QAAQrI,aAAejX,EAAG+W,SAASc,MAzIlD2H,EAAcF,EAAAlI,OAAA,WACX,IAAA,GAAQS,KAAA7X,GAAA4V,SA8IC5V,EAAG4V,SAASiC,GAAGI,SAAWqH,EAAQrH,SAClCjY,EAAGsf,QAAQC,aAAevf,EAAG4V,SAASiC,QAQ1D,QAASyI,GA7IWhB,GA+IhB,GAAI3M,GA7IQtY,EAAOsY,QAAS,UA8IxB,4CACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OA7IOjB,KAAA,WA8IXuT,EA7IYsO,cAAAhB,EAAAnN,WAAA1T,KAAA,SAAAC,GACA,MA6IJA,EA7IIlI,QA8IJuB,EAAW2I,YAAY,UAAW,8BAA+B,WACjEwR,KA3ILna,EAAW2I,YAAA,QAAA,wBACHrJ,WAAA,EACR+F,KAAW,QAgJX,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,gEA5InCrJ,WAAA,EACO+F,KAAA,UAgJT,cAKP,QAASmjB,GAAWC,GAChB,GAAI9hB,GA7II8hB,EAAGC,MAAY,uGA8IvB,IA7IQ,MA6IJ/hB,EA7IQ,CA8IR,GAAIiU,GA7IItY,EAAA8C,OAAA,mBA8IJ,6BACI9F,WAAW,EACX+F,KAAM,MAMd,OAhJJuV,GAAOjT,OAAOjB,KAAA;CAgJH,EA1IR,OAAA,EAkJP,QAASiZ,KACL1X,EAAGgT,YAAa,EA5IpBhT,EAAAkU,YACIlU,EAAAsf,WA8IAtf,EAAG+S,WA7IC,EA8IJ/S,EAAG0f,QA7IK,KA8IR1f,EAAGye,YA7IW,KA8IdrqB,QAAQ6U,QAAQ,sBAAsBa,IAAI,MAI9C,QA7IQ4W,GAAGpB,GA+IP,GA7ImB,GAAfiB,EAAGjB,EAAYqB,SAAA,CACf,GAAGjN,GAAUvZ,EAAAgG,sBA2Kb,IA1KAH,EAAG4gB,oBAAc,SAAAnK,GACjBA,EAAgBJ,UAAArW,EAAAyW,gBAA0BJ,WA+I1CrW,EAAG6gB,iBAAmB,SAAUlK,GAC5BA,EAAcE,QAAU7W,EAAG2W,cAAcE,SAE7C7W,EAAG8gB,gBAAkB,SAAU7J,GAC3BA,EAAaG,OAASpX,EAAGiX,aAAaG,QAG1CkI,EAAQjJ,UAAYrW,EAAGsf,QAAQ7I,gBAAgBJ,UAC/CiJ,EAAQzI,QAAU7W,EAAGsf,QAAQ3I,cAAcE,QA5InDyI,EAASlI,OAAYpX,EAAAsf,QAASrI,aAAAG,OACvBkI,EAAArH,OAAYjY,EAAAsf,QAAAC,aAAAtH,OACZqH,EAAAY,WAAUlgB,EAAAsf,QAAAa,yBAAAD,WACVZ,EAAOU,OAAAhgB,EAAAsf,QAAAW,sBAAAD,OACPV,EAAAhH,QAAYtY,EAAAsf,QAAAC,aAAAjH,QAEQ,OAApBtY,EAAAsf,QAAYS,gBAAQpqB,SAAAqK,EAAAsf,QAAAS,eACpBT,EAAAO,cAA2B,EAIvBP,EAAAO,cAAa7f,EAAAsf,QAAAS,eAAA5N,UAEhBmN,EAAOc,oBAAepgB,EAAAsf,QAAce,qBAAuBD,oBAiJtDpgB,EAAG+S,UApHJuM,EAAO3L,WAAaD,EAAYrT,OA8IhC2R,EA7Ie+O,YAAAzB,GAAmB7gB,KAAA,SAAUC,GA8IpCA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBA5IhE6D,IACSxF,IACGlS,EAAGgT,YAAY,EACfhT,EAAG+S,WAAQ,IA+IXhb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAClD7T,EAAGgT,YAAa,IAGrB,SA7IQrS,GA8IP5I,EA7IO2I,YAAQ,qCAsGJ,CAIf4e,EAAQxL,UAAYJ,EAAYrT,MAChC,IAAIjC,GAAW,GAAIH,SA5ItBG,GAAYF,OAAA,OAAAvB,KAAAqkB,UAAsB1B,IAC/BlhB,EAAGF,OAAA,cAAwB8B,EAAAye,aA+I3BzM,EAAeiP,WAAW7iB,EAAUrE,GAAO0E,KAAK,SAAUC,GAClDA,EAAIhJ,KAAKke,aAAc,GA5IzB7b,EAAG2I,YAAkB,UAAAhC,EAAAhJ,KAAAme,QAAA,kBACxB6D,IACAxF,IA8IKlS,EAAGgT,YAAa,IAEhBjb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBA5IlE7T,EAAAgT,YAAgC,IAEvB,SAAYrS,GACT5I,EAAG2I,YAAe,mCAyKlC,QAASwgB,GAAoB5B,GA5IzB,GAAIve,GAAA,yBAA0Bue,EAAA,SAAA,WAAA,UAAA,gBAC1B3G,GAAA2G,EAAA,SAAA,WAAA,UAA4C,wBA8I5C3M,EA7IItY,EAAWsY,QAAA,UA8If5R,GACI1J,WAAW,EACX+F,KAAM,MAGduV,GA7IQjT,OAAIjB,KAAI,WA8IZuT,EA7IQkP,oBAAuB5B,EAAWnN,WAAA1T,KAAA,SAAAC,GAClC,MAAAA,EAAAlI,QA8IAuB,EA7IG2I,YAAA,UAAAiY,EAAA,WACHzG,KA+IAna,EA7IU2I,YAAA,QAAA,wBA8INrJ,WAAW,EACX+F,KAAM,QAGf,SA7IKuD,GA8IJ5I,EA7IU2I,YAAA,QAAA,iEA8INrJ,WAAW,EACX+F,KAAM,UAGf,cAndP,GAAI4C,GAAKC,IAKTD,GAAGqU,kBACChJ,MA5IO,IA8IPA,MAAS,KAETA,MAAS,KAETA,MAAS,KA1ITA,MAAG,MA8IPrL,EAAGsU,SA5IItU,EAAAqU,gBAAY,GA8InBrU,EAAGuU,YA5IW,EA6IdvU,EAAGsf,WACHtf,EAAGwU,qBA5IsB,SAAAC,GA6IrBzU,EAAGuU,YA5IYE,GA+InBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WA5IU,EA6Ib/S,EAAGsS,WA5IS,EA6IZtS,EAAGue,eA5IgB,EA6InBve,EAAGX,MAAO,EACVW,EAAGmhB,QAAU,gCACbppB,EAAW2c,SAAU,EAErB1U,EAAGoW,wBAA0BA,EAC7BpW,EAAG4W,qBAAuBA,EA3I1B5W,EAAAwf,oBAAoBA,EA6IpBxf,EAAGse,SA5IKA,EA6IRte,EAAGgU,OA5IKA,EA6IRhU,EAAG0R,OAASA,EACZ1R,EAAGsf,QA5ICqB,QAAe,eA6InB3gB,EAAGkU,UA5IKA,EA6IRlU,EAAG4f,YA5IaA,EA6IhB5f,EAAGsgB,cA5IaA,EA6IhBtgB,EAAG0gB,YA5IaA,EA6IhB1gB,EAAGkhB,oBA5IgBA,EA6InBlhB,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAIbhN,EA5IO+T,aAAYA,EA6InBtM,IAkJAzH,EA7IOiU,cAAO,SAAA7G,GA8IVpN,EAAOe,OAAO,WACVxL,EAAG0f,QAAU7H,EAAEpO,OAAO/J,2MA7MlCtL,QACKC,OAAO,uBACPe,WAAW,cAAe+oB,MA+dnC,WACI,YAOA,SAASiD,GA7IUrnB,EAAAC,EAAAjC,EAAAyC,EAAAH,EAAAE,EAAA8mB,EAAArP,EAAA7X,EAAAyX,GA8Kf,QA7IQM,KA8IJlS,EAAGshB,eA7ISC,SAAa,QAAQC,SAAc,IAAAD,SAAA,sCAAAC,SAAA,IAAAD,SAAA,gCAAAC,SAAA,IAAAD,SAAA,WAAAC,SAAA,IAC3CD,SAAQ,UAAYC,SAAQ,IAAAD,SAAa,sBAAAC,SAAA,IA+I7CxP,EA7IYI,mBAAgBD,GAAQ1T,KAAA,SAAAC,GACf,MAAjBA,EAAQlI,SACRwJ,EAAAqS,YAAqB3T,EAAAhJ,KA8IjBsK,EAAGsS,WAAY,IAEpB,SA7IK3R,GA8IJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAAS+gB,GAAoBtP,GA5IrBA,EA8IAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MA5IrBsK,EAAA2hB,YAAWxmB,OAAA,GA8IPd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EACX+F,KAAM,OA1IlB4C,EAAAsS,WAAgB,GA+IZjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SA7ISlB,GA8IRtG,EA7IQwH,MAAA,QAAW,mBAAuB,qBAiJ9C7B,EAAG4hB,SAASC,gBA7IG,KA8If7hB,EAAG2hB,eACH3hB,EAAG8hB,aAEP9hB,EAAG4hB,SA7IQC,gBAAe,KA8I1B7hB,EAAG2hB,eACH3hB,EAAG8hB,YAGP,QAASC,GA7IMjsB,GACK,IA6IZkK,EAAGwhB,SACHH,EA7ImBW,YAAYlsB,GAAS2I,KAAK,SAAUC,GAClC,MAAbA,EAAIlI,SA8IJwJ,EAAG8hB,SA7ICpjB,EAAWhJ,MACXsK,EAAA8hB,SAAA3mB,OAAA,GACAd,EAAA8C,OAAA,UAAA,6CACG9F,WAAA,EACA+F,KAAA,OAgJP4C,EAAGsS,WA7II,IA+IZ,SAAS3R,GACR5I,EA7IG2I,YAAe,QAAA,mBAAA,gBA+IC,IAAhBV,EAAGwhB,SACVH,EAAmBY,yBAAyBnsB,GAAW2I,KAAK,SAASC,GAC9C,MAAfA,EAAIlI,SAEJwJ,EAAGkiB,KAAM,EACTliB,EAAGmiB,YAAc3nB,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,IACrDoK,EAAGoiB,gBAAkB5nB,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,IACzDoK,EAAGsS,WAAY,IA3IvB,SAAM3R,GACN5I,EAAS2I,YAAQ,QAAY,mBAAyB,+BAEjD,IAAAV,EAAAwhB,SA8ILH,EA7IegB,eAAAvsB,GAAA2I,KAAA,SAAAC,GACL,MAANA,EAAMlI,SA8IFwJ,EAAG8hB,SAAWpjB,EAAIhJ,MACbsK,EAAG8hB,SAAS3mB,OAAS,GA5IvBd,EAAK8C,OAAA,UAAY,4CAAA6C,EAAA4hB,SAAAC,gBAAAS,aACbjrB,WAAA,EACH+F,KAAA,OAgJJ4C,EA7IGsS,WAAA,IA+IR,SA7IS3R,GA8IR5I,EA7IQ2I,YAAM,QAAA,mBAAA,mBA+IK,IAAhBV,EAAGwhB,UACVH,EA7IkBkB,wBAAAzsB,GAAA2I,KAAA,SAAAC,GACd,GAAW,MAAXA,EAAAlI,OAAuB,CACnBwJ,EAAA8hB,SAAWpjB,EAAAhJ,MACXsK,EAAM8hB,SAAA3mB,OAAA,GA8IFd,EAAQ8C,OAAO,UAAW,4CAA8C6C,EAAG4hB,SAASC,gBAAgBS,aAChGjrB,WAAW,EA5IhB+F,KAAA,MAgJH,KAAK,GAAIlC,KAAK8E,GAAG8hB,SACb9hB,EAAG8hB,SAAS5mB,GAAGsnB,UACfxiB,EAAG8hB,SAAS5mB,GAAGsnB,OAAOC,MAAQ9lB,KAAKC,MAAMoD,EAAG8hB,SAAS,GAAGY,WA3IxE1iB,GAAAsS,WAAA,IA+IO,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,8BAKhE,QAAGiiB,KACC3iB,EAAAkiB,KAAO,EA+IPliB,EAAGwhB,SA9IK,EA+IRxhB,EAAG8hB,SA9IK9hB,EAAAmiB,YAiJZ,QAASS,KACL5iB,EAAGkiB,KAAM,EACTliB,EAAGwhB,SA9IS,EA+IZxhB,EAAG8hB,SA9IS9hB,EAAAoiB,gBAgOhB,QAASS,KACL,GAAIC,MACAC,IACJ,KAAK,GAAI7nB,KA9IG8E,GAAA8hB,SA+IJ9hB,EAAG8hB,SA9IK5mB,GAAA8nB,WACMrtB,QA8IVqK,EAAG8hB,SA9IO5mB,GAAA+nB,QA+IVH,EAASjrB,KAAKmI,EAAG8hB,SAAS5mB,GAAG+nB,OAC7BF,EAAWlrB,KAAKmI,EAAG8hB,SAAS5mB,GAAGgoB,YAI3C,IAAIC,GAAaxmB,KAAKqkB,UAAU8B,EAGhC,OAFA9iB,GAAGojB,YAAczmB,KAAKqkB,UAAU+B,GAChC/iB,EAAGqjB,SAAWF,EAAWG,UAAU,EAAGH,EAAWhoB,OAAS,GAClD6E,EAAG,SAIf,QA9IQujB,KA+IJ,IAAK,GA9IGroB,GAAA,EAAAA,EAAA8E,EAAA8hB,SAAA3mB,OAAAD,IA+IJ,IAAK8E,EA9IG8hB,SAAA5mB,GAAW8nB,UAgJf,YADAhjB,EAAGwjB,gBA9IO,EAkJlBxjB,GAAGwjB,gBA9Ie,EAkJtB,QAASC,KACL,IAAK,GAAIvoB,GA9IG,EAAIA,EAAI8E,EAAA8hB,SAAW3mB,OAAKD,IA+IhC8E,EAAG8hB,SA9IS5mB,GAAA8nB,UAAWhjB,EAAAwjB,eAtQ/B,GAAIxjB,GAAKC,IACTD,GAAGqU,kBACChJ,MA7II,IA+IJA,MAAS,KAETA,MAAS,KA3ITA,MAAG,KAEHA,MAAG,MA+IPrL,EAAGsU,SA7IItU,EAAUqU,gBAAA,GA8IjBrU,EAAGuU,YA7II,EA8IPvU,EAAGwU,qBA7IiB,SAAAC,GA8IhBzU,EAAGuU,YAAcE,GAErBzU,EAAGgT,YAAa,EA5IhBhT,EAAA+S,WAAS,EA8IT/S,EAAG8hB,YACH9hB,EAAGwhB,SA7IKxnB,EAAWvE,OAAQG,OA8I3BoK,EAAGyjB,UA7ISA,EA8IZzjB,EAAG2iB,UA7IQA,EA8IX3iB,EAAG4iB,sBA7ISA,EA8IZ5iB,EAAGujB,WAAaA,CAChB,IAAIpR,GA7IOhY,EAAmBgG,uBAAyBwU,gBAAAxC,UA8InDjS,EA7IQ/F,EAA2BgG,sBA8IvCH,GAAGyhB,oBAAsBA,EACzBzhB,EAAG+hB,eA7IQA,EA8IX7P,IA+GAlS,EAAG0jB,gBAAkB,WA7IzB,GAAS1jB,EAAAwjB,kBAAoB,EAAO,CAC5B,GAAK7Q,GAAAtY,EAAAsY,QAAA,UACN,wDACUtb,WAAA,EACV+F,KAAA,MAGCuV,GAASjT,OAAAjB,KAAA,WACV,GAAAxD,IACUgoB,MAAAJ,EAAA7iB,EAAAqjB,UACVhjB,OAAAH,EAAAG,OAgJSghB,GAAmBsC,aAAa1oB,EAAIgoB,OAAOxkB,KAAK,SAASC,GA7IpC,MAAhBA,EAAAlI,QACAuB,EAAA2I,YAAA,UAAA,6BAAA,sBACdqhB,EAAgC/hB,EAAA4hB,SAAKC,gBAAA/rB,YAgJpBiC,EAAW2I,YAAY,QAAS,mCA7IpCrJ,WAAA,EACD+F,KAAA,QAGA,SAAAuD,GACA5I,EAAA2I,YAAA,QAAA,mCACZrJ,WAAwB,EACX+F,KAAA,UAGb,gBAqJH4C,EAAG4jB,OA9IO,WA+IN,GAAI5jB,EAAGwjB,kBAAmB,EAAM,CA7IhC,GAAAK,IACQZ,MAAIJ,EAAW7iB,EAAKqjB,UACpBvtB,UAAGkK,EAAA4hB,SAAkB9rB,UACrBF,OAAGoK,EAAAwhB,UAGPpiB,EAAW7E,EAAY8E,MA+InBhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aA7IpBrK,YAAA,2DACDE,WAAW,2BACXC,aAAA,KACI+H,KAAI,KA+IJoC,SA9IO,SA+IPC,UA9IS,EA+ITyQ,SACI3N,MAAO,WACH,MA9IIshB,MAkJhBzkB,GA9IWM,OAAAjB,KAAA,WA+IPsjB,EA9IY/hB,EAAM4hB,SAASC,gBAAA/rB,YA+I5B,gBAQXkK,EAAG8jB,QA9IQ,WA+IP,GAAI9jB,EAAGwjB,kBAAmB,EAAM,CA7I7B,GAAA7Q,GAAStY,EAAAsY,QAAkB,UAC3B,kDACAtb,WAAW,EA+IF+F,KAAM,MA3IduV,GAAGjT,OAAAjB,KAAgB,WACnB,GAAAxD,IACQgoB,MAAIJ,EAAW7iB,EAAKqjB,UACpBhjB,OAAGH,EAAeG,OAgJtBghB,GA9IgB0C,mBAAkB9oB,EAAAgoB,OAAAxkB,KAAA,SAAAC,GACX,MA8IfA,EA9IIlI,QA+IJuB,EA9IU2I,YAAA,UAAA,wBAAA,gBA+IVqhB,EAAe/hB,EAAG4hB,SAASC,gBAAgB/rB,YA5I5CiC,EAAY2I,YAAA,QAAA,+BA+IPrJ,WAAW,EA7If+F,KAAK,QAGV,SAAGuD,GACV5I,EAAmB2I,YAAA,QAAA,+BACPrJ,WAAW,EA+IX+F,KAAM,UAGf,gBAQX4C,EAAGgkB,SA9IS,WA+IR,GAAIhkB,EAAGwjB,kBA9ImB,EAAI,CA+I1B,GAAI7Q,GA9IStY,EAAGsY,QAAS,UA+IrB,kDACItb,WA9IQ,EA+IR+F,KAAM,MAGduV,GA9IQjT,OAAGjB,KAAA,WA+IP,GAAIxD,IA7ILgoB,MAASJ,EAAK7iB,EAAAqjB,UACbhjB,OAAWH,EAAYG,OAExBghB,GAAoB4C,oBAAGhpB,EAAAgoB,OAAAxkB,KAAA,SAAAC,GACP,MAAnBA,EAAAlI,QACYuB,EAAW2I,YAAK,UAAA,wBAAA,gBACjBqhB,EAAe/hB,EAAA4hB,SAAAC,gBAAA/rB,YAEdiC,EAAQ2I,YAAO,QAAW,+BACtBrJ,WAAW,EACX+F,KAAM,QAiJf,SA9IMuD,GA+IL5I,EA9IO2I,YAAY,QAAS,+BACxBrJ,WAAG,EA+IH+F,KAAM,UA3If,gBA+JX4C,EAAGkkB,KAAO,WACFlkB,EAAGkiB,KAAM,GA+BjBliB,EAAGgU,OAAS,WAER,GAAIte,IACAqd,UA9II/S,EAAA+S,UAiJR/Y,GAAO8F,GA9IC,qBA+IJpK,KA9IIA,KAmJZsK,EAAGmkB,SAAW,SA9ISrR,GA+InB,GAAIpd,IACAqd,WAAW,EACXqR,SAAUtR,EAEd9Y,GA9II8F,GAAA,qBA+IApK,KA9IIA,KAkJZsK,EAAGqkB,WAAa,SAASvR,GACrB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CACItb,WAAW,EACX+F,KAAM,MAGduV,GA9IQjT,OAAAjB,KAAU,WA+Id,GA9IIxD,IA+IAgoB,MA9IIJ,EAAW7iB,EAAAqjB,UA+IfhjB,OA9IIH,EAAMG,OAgJdghB,GAAmBiD,kBAAkBrpB,EAAIgoB,OAAOxkB,KAAK,SAASC,GA7ItDA,EAAAhJ,KAAOke,aAAgB,GACvB7b,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,gBACNkO,EAAO/hB,EAAU4hB,SAAGC,gBAAA/rB,YAgJpBiC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAGvD,SA9ISlT,GA+IR5I,EA9IQ2I,YAAe,oMAxOvCtM,QACKC,OAAO,2BACPe,WA7IO,sBAAoBgsB,MA6iBpC,WACI,YAOA,SAASmD,GAAyB9Z,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,EAAuBknB,GAC5I,GAAIrhB,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EA7IhBhT,EAAA+S,WAAS,EA+IT/S,EAAGsS,WA9IU,EA+IbtS,EAAGwkB,gBACHzsB,EA9IO2c,SAAc,CA+ILva,GAAsBgG,uBAAuBwU,gBAAgBxC,SA5I7EnS,GAAAykB,cAAS,WACL,GAAGC,IACAjC,MAAAziB,EAAW5H,OAAAusB,eACXC,WAAczqB,EAAAgG,uBAAAE,OA+IbwkB,WAAc5qB,EAAQ,QAAQ,GAAIwf,MAAQ,eA5I1CqL,GA+IA7B,MAAO1gB,EAAM0gB,MACbrtB,OAAQ2M,EAAM3M,OACd+d,WAAYxZ,EAAsBgG,uBAAuBE,OACzDqkB,YAAa/nB,KAAKqkB,UAAU0D,GAGhCrD,GAAmB0D,kBAAkBD,GAAWrmB,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,oCAAqC,qBACvE4b,EAAkBrN,QAClBjV,EAAO8F,GAAG/H,EAAWyE,gBAErBzE,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EACX+F,KAAM,UAKlB4C,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,oKAhDlCnpB,QACKC,OAAO,2BACPe,WAAW,2BAA4BmvB,MAmDhD,WACI,YAOA,SAASS,GAAsBjrB,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASuX,EAAwBC,EAAsBC,EAAcC,EAAgB5X,EAAuB8qB,GA+BnL,QAAS/S,KACLN,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GA7I3C,MAAdA,EAAAlI,QACCwJ,EAAA2hB,YAAWjjB,EAAAhJ,KA+IXwvB,IACAllB,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,qBA5IzD,SAAIlB,GACAtG,EAAAwH,MAAa,QAAA,mBAAA,sBAkJrB,QAASqjB,KACLC,4BA9I4BC,6BAAe3mB,KAAA,SAAAC,GA+IpB,MAAfA,EAAIlI,QACJwJ,EAAGqlB,yBAA2B3mB,EAAIhJ,KAClCsK,EAAGsS,WAAY,GA5IpBva,EAAc2I,YAAK,QAAU,yBAAA,2BAEhC,SAAWC,GACX5I,EAAW2I,YAAA,QAAA,mBAAA,4BAmJf,QA9IQsT,KA+IJhU,EAAG+S,WA9IQ,EA+IX/S,EAAGgT,YA9IK,EA+IRhT,EAAGiU,aAAc,EAGrB,QAASvC,KA7IR1R,EAAAgT,YAAA,EA+IGhT,EAAG+S,WAAY,EA7InBmB,IACIlU,EAAAslB,cAiJJ,QA9ICpR,KA+IGlU,EAAGulB,eAAenR,gBAxEtB,GAAIpU,GAAKC,IA5ITD,GAAGqU,kBAAoBhJ,MAAK,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA+I5BrL,EAAGsU,SA9IKtU,EAAOqU,gBAAA,GAgJfrU,EAAGuU,YA9IK,EA+IRvU,EAAGwU,qBAAuB,SAAUC,GA7IhCzU,EAAAuU,YAAUE,GAiJdzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA7If/S,EAAGsS,WAAA,EA+IHva,EA9IQ2c,SAAU,EAkJlB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UA9ISA,EAiJZlU,EAAGslB,aAIH,IAAInT,GA9IYhY,EAAWgG,uBAAgCwU,gBAASxC,SAgJpED,KANAlS,EAAGwlB,qBAAa,SAAA1S,GAiJZ,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,0DACItb,WAAW,EA/InB+F,KAAY,MAmJZuV,GAAQjT,OAAOjB,KAAK,WA/IxB0mB,4BAAgBK,qBAAA1S,EAAAhd,WAAA2I,KAAA,SAAAC,GACZ3G,EAAA2I,YAAuB,UAAe,6CAA+B,yBAC7DwR,KAiJD,SAhJIvR,GACH5I,EAAA2I,YAAA,kCAkJL,eAOPV,EAAGqa,MAAQ,WA/IXra,EAAAsa,GAAS,GAAAb,OAkJTzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAhJIjB,YAiJJkB,QAAS,GAAIhB,MACbiB,WAAW,GA7If1a,EAAA2a,aACIC,aAAGxB,SACHyB,QAAG,GAAApB,MAAa,KAAA,EAAA,IAChBgB,QAAG,GAAAhB,MAiJHqB,YAAa,6MApNrB1mB,QACKC,OAAO,iCACPe,WA9IU,wBAAwB4vB,MA0W3C,WACI,YAOA,SAhJQS,GAAa1rB,EAAAhC,EAAQyC,EAAAH,EAAA0X,EAAA5X,EAAAsQ,GAyOzB,QAASyH,KA/IS/X,EAAAgG,uBAAAwU,gBAAAxC,SA4JdJ,GAAe2T,qBAAqB3rB,EAAOhC,GAAY0G,KAAK,SAASC,GAC9C,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGsS,WAAY,GA9IhBva,EAAY2I,YAAA,QAAA,yBAAA,YAkJhB,SAASC,GA/Ib5I,EAAA2I,YAAA,QAAA,mBAAA,aAoJH,QAASsT,KACLhU,EAAG+S,WAAY,EA/IhB/S,EAAAgT,YAAgB,EACfhT,EAAAiU,aAAa,EACbjU,EAAAwX,aAAa,EACbxX,EAAAyX,WAAW,EAoJf,QAhJIC,KACA1X,EAAAgT,YAAa,EACbhT,EAAA+S,WAAa,EACbmB,IAiJAlU,EAAG2lB,WAIP,QAASjU,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WA/I5BuB,EAAAgT,YAAA,EACYhT,EAAA+S,WAAA,EACPmB,IAkJOlU,EAAG2lB,aA1IX,QAAGzR,MAqJH,QAjJQ0R,GAAGD,GAkJP3lB,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAhJjBhT,EAAAwX,aAAa,EACbxX,EAAAyX,WAAY,EAGfzX,EAAA2lB,QAAWvxB,QAAU8e,KAAAyS,GAIrB,QAAGE,GAAYF,GACZ,GAAAjS,GAAcvZ,EAAAgG,uBACdY,EAAA,yBAAiB4kB,EAAA,SAAA,WAAA,UAAA,gBACjBhN,GAAAgN,EAAsB,SAAA,WAAA,UAAA,wBAkJjBhT,EAAUtY,EAAQsY,QAAQ,UAhJ/B5R,GAAA1J,WAAmB,EAAA+F,KAAA,MAElBuV,GAAAjT,OAAcjB,KAAA,WACf,GAAAqnB,IACAzP,UAAYsP,EAAAtP,UAkJH1C,WAAYD,EAAYrT,OAE5B0R,GAAe8T,oBAAoBC,GAAUrnB,KAAK,SAASC,GACpC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWiY,EAAM,WACxCzG,KAEAna,EAAW2I,YAAY,QAAS,0BAA4BrJ,WAAW,EAAM+F,KAAM,QA/I5F,SAAWuD,GAkJN5I,EAAW2I,YAAY,QAAS,mEAAqErJ,WAAW,EAAM+F,KAAM,UA/IpI,cAyKJ,QAjJQ2oB,GAAaJ,GACjB,GAAIK,IACA3P,UAAMsP,EAAAtP,UACNK,YAAW,GACXuP,YAAO,GAkJPC,aAAc,GACdC,aAAc,GACdC,eAAgB,GAhJjBtS,UAAA,EACHuS,QAAA,UAGI1T,EAAQtY,EAAIsY,QAAO,UACnB,4CAA4Ctb,WAAM,EAAQ+F,KAAM,MAmJpEuV,GAjJIjT,OAAMjB,KAAA,WACNsT,EAAWuU,wBAAoBN,GAAevnB,KAAA,SAAAC,GACvC,MAAAA,EAAAlI,QAkJCuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBACpD3B,KAEAna,EAAW2I,YAAY,QAAS,wBAA0BrJ,WAAW,EAAM+F,KAAM,QA/IxF,SAAOuD,GACR5I,EAAY2I,YAAA,QAAsB,iEAAuCrJ,WAAA,EAAA+F,KAAA,UAmJ1E,cAMP,QAASmpB,GAAeZ,GACpB,GAAIa,GAAa,CAEbxmB,GAAG+S,YAhJPyT,EAAexmB,EAAA2lB,QAAAtP,UAmJf,IAAI2P,IACA3P,UAjJOmQ,EAkJP9P,YAjJOiP,EAAAjP,YAkJPuP,YAjJIN,EAAWM,YAkJfC,aAAcP,EAAQO,aAhJvBC,aAAcR,EAAAQ,aACbC,eAAWT,EAAYS,eAkJvBtS,UAAWJ,EAAYrT,OACvBgmB,QAAS,OA9IbtU,GAAeuU,wBAAAN,GAAAvnB,KAAA,SAAAC,GACZA,EAAAhJ,KAAake,aAAA,GACb7b,EAAc2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,kBACd3B,IACAlS,EAAAgT,YAAY,EAkJP0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAhJrD7T,EAAAgT,YAAQ,IAGb,SAAArS,GACG5I,EAAU2I,YAAA,iCAsJjB,QAjJQ+lB,GAAUd,GAkJd,GAjJIjS,GAAAvZ,EAAAgG,sBAkJJ,IAAKH,EAjJG+S,UAsCR,CAmJI,GAjJI4S,IACAhS,WAAYD,EAAYrT,OAkJxB4lB,YAAajmB,EAAG2lB,QAAQM,YAhJ5BvP,YAAe1W,EAAA2lB,QAAAjP,YACXL,UAAQrW,EAAA2lB,QAAWtP,UAkJnB+B,SAjJIpY,EAAA2lB,QAAWvN,SAmJnBrG,GAjJW2U,YAAAf,GAAAlnB,KAAA,SAAAC,GACHA,EAAAhJ,KAAAke,aAAuB,GAkJvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBAhJzD3B,IACClS,EAAAgT,YAAW,EAkJPhT,EAAG+S,WAAY,EAhJxB2E,MAmJS3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAClD7T,EAAGgT,YAAa,IAGrB,SAASrS,GACR5I,EAAW2I,YAAY,+BAAiCrJ,WAAW,EAAM+F,KAAM,SAGnF4C,EAAGuL,QAAS,MAhNG,CAkJf,GAjJIoa,IAkJI7R,UAAWJ,EAAYrT,OACvB4lB,YAAajmB,EAAG2lB,QAAQM,YAhJ5BvP,YAAY1W,EAAA2lB,QAAWjP,YAiB5B3E,GAAYuU,wBAAAX,GAAAlnB,KAAA,SAAAC,GACZA,EAAahJ,KAAAke,aAAA,GACb7b,EAAc2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,kBACd3B,IAkJSlS,EAAGgT,YAAa,EAChB0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAClD7T,EAAGgT,YAAa,IA9IxB,SAAArS,GACA5I,EAAM2I,YAAA,kCAtKd,GAAIV,GAAKC,IAGTD,GAAGqU,kBAhJchJ,MAAa,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAiJ9BrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAhJkB,SAAaC,GAC1BzU,EAAAuU,YAAOE,GAmJfzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAhJY,EAiJftS,EAAG8V,eACH/d,EAAW2c,SAAU,EAErB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAG4lB,YAAcA,EACjB5lB,EAAGumB,eAAiBA,EACpBvmB,EAAG6lB,oBAAsBA,EAEzB7lB,EAAG+lB,iBAAmBA,EACtB/lB,EAAGymB,YAAcA,CA/IjB,IAAA/S,GAASvZ,EAAyBgG,sBAiJlCH,GAAGwX,aAhJK,EAiJRxX,EAAGyX,WAhJS,EAkJZvF,IAQAzH,EAAOkc,SAAW,SAASxqB,EAAOyqB,GAE9B,GAAIC,GAhJQ,GAAIC,QAAK,gBAiJjBC,EAAMC,OAhJEC,aAAW9qB,EAAY+qB,SAAoB/qB,EAAS+qB,SAAlB/qB,EAAIgrB,MAiJlD,KAAKN,EAAMje,KAhJCme,GAmJR,MAFA5qB,GAAMkB,iBACNtF,EAhJW2I,YAAA,OAAA,iCAAA,mBAiJJ,GAIf+J,EAAO2c,WAhJI,SAAejrB,EAAAyqB,GAmJtB,GAAIC,GAAQ,GAAIC,QAAO,YACnBC,EAhJGC,OAAAC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MAiJP,KAAKN,EAAMje,KAAKme,GAGZ,MAlJA5qB,GAAIkB,iBAiJJtF,EAhJI2I,YAAc,OAAQ,4BAAA,aACtB,GAoJZ+J,EAAO4c,gBAhJkB,SAAQlrB,EAAAyqB,GAmJ7B,GAhJIC,GAAA,GAAAC,QAAA,aAiJAC,EAhJIC,OAAQC,aAAK9qB,EAAc+qB,SAAM/qB,EAAA+qB,SAAA/qB,EAAAgrB,MAiJzC,KAAKN,EAAMje,KAhJCme,GAmJR,MAFA5qB,GAAMkB,iBACNtF,EAhJQ2I,YAAA,OAAA,4BAAA,aAiJD,GAIf+J,EAAO6c,WAAa,SAASnrB,EAAOyqB,GAIhC,GAAIC,GAAQ,GAAIC,QAAO,8BACnBC,EAhJGC,OAAUC,aAAK9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MAiJtB,KAAKN,EAhJGje,KAAAme,GAmJJ,MAFA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAQ,cAAe,aACvC,yGAxFnBtM,QACKC,OAhJM,uBAiJNe,WAhJM,cAAaqwB,MAgf5B,WACI,YAQA,SAAS8B,GAjJcxvB,EAAQmC,EAAAuQ,EAAAjQ,EAAAH,EAAAqO,EAAAuE,EAAAjT,EAAAwtB,EAAA1f,EAkJ3BE,EAjJQ7N,EAAastB,EAAA7V,EAAA8V,EAAAttB,EAAAutB,EAAAptB,GAuLrB,QAjJQqtB,GAAAC,GAkJJ,IAjJI,GAAA1d,GAAA2d,EAAA5sB,EAAc2sB,EAAA1sB,OAAQD,EAAAiP,EAAAlD,KAAAC,MAAAD,KAAA8gB,SAAA7sB,GACtB4sB,EAAAD,IAAA3sB,GAAA2sB,EAAc3sB,GAAA2sB,EAAA1d,GAAQ0d,EAAA1d,GAAA2d,GAkJ1B,MAjJID,GAoHR,QAAG3V,KAEAlS,EAAAgoB,qBAAgBC,aAAA,qBAAAlP,GAAA,IAAAkP,aAAA,oBAAAlP,GAAA,IAChBkP,aAAc,iCAAAlP,GAAA,IAGd/Y,EAAAkoB,cACAC,YAAe,SAmJNC,UAAW,EAjJpBC,KAAc,MAEdF,YAAiB,sBACjBC,UAAU,EAmJDC,KAAM,OAENF,YAAa,uBAjJrBC,UAAW,EACXC,KAAU,OAGPF,YAAkB,iCACdC,UAAA,EACPC,KAAa,OAoJLF,YAAa,6CACbC,UAAW,EAjJdC,KAAQ,OAELF,YAAU,mBACXC,UAAA,EAmJCC,KAAM,OAGdroB,EAAGsoB,kBAjJHC,iBAAe,wBAmJXC,OAAQ,IAhJZD,iBAAU,iBACNC,OAAK,IAoJLD,iBAAkB,oBAClBC,OAAQ,IAEZxoB,EAAGyoB,iBAjJCC,eAAU,SACVC,OAAQ,IAoJRD,eAAgB,UAChBC,OAAQ,IAhJZD,eAAU,WACNC,OAAA,IAEAD,eAAW,qBAmJXC,OAlJI,IAoJJD,eAlJY,QAmJZC,OAlJQ,IAqJkB,OAA1B3oB,EAAGE,WAAW0oB,WAmBd5oB,EAAG6oB,GAAK7oB,EAAGE,WAAW4oB,KAAKC,OAE3B/oB,EAAGH,WAAY,GAtIV,OAALG,EAAAE,WAAK0oB,UAmJL5oB,EAAGgpB,aAlJchpB,EAAAE,WAAA+oB,MAmJjBxB,EAAqByB,sBAAsBlpB,EAAGgpB,cAAcvqB,KAAK,SAASC,GAC/C,MAAfA,EAAIlI,QAjJZwJ,EAAAmpB,cAAAzqB,EAAAhJ,KAAAyzB,cACKnpB,EAAAopB,YAAA1qB,EAAAhJ,KAAA0zB,YACCppB,EAAAqpB,YAAA3qB,EAAAhJ,KAAA2zB,YACFrpB,EAAAspB,eAAA5qB,EAAAhJ,KAAA4zB,eACJtpB,EAAWsS,WAAA,GAoJHva,EAAW2I,YAAY,QAAS,yBAA0B,QA/I1E,SAAUC,GACN5I,EAAS2I,YAAA,QAAA,mBAAA,SAET6oB,EAAWvpB,EAAAgpB,eACsB,OAA7BhpB,EAAAE,WAAgB0oB,WAmJpB5oB,EAAGwpB,WAlJSxpB,EAAAE,WAAa+oB,MAmJzBvB,EAlJY+B,sBAA6BzpB,EAAAwpB,YAAY/qB,KAAc,SAAKC,GAC5D,MAAAA,EAAAlI,QAmJAwJ,EAAG0pB,SAAWlvB,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,IAjJlDoK,EAAG2pB,YAAanvB,EAAAyC,OAAAyB,EAAAhJ,MAAAE,OAAA,IAChBoK,EAAA4pB,UAAepvB,EAAOyC,OAAAyB,EAAAhJ,MAAkBE,OAAK,IAmJ7CoK,EAlJG6pB,UAAArvB,EAAAyC,OAAAyB,EAAAhJ,MAAAE,OAAA,IACHoK,EAAAsS,WAAe,GAoJfva,EAAW2I,YAAY,QAAS,yBAA0B,QAGlE,SAASC,GACL5I,EAAW2I,YAAY,QAAS,mBAAoB,SAKhE,IAAIyR,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzE/R,EAAWJ,EAAGE,WAAWG,MACzB8R,GAAY,GACZ/X,EAAY0vB,0BAA0B3X,EAAW/R,GAAU3B,KAAK,SAASC,GA/ItE,GAgJCsB,EAAGH,WAAY,EAhJD,MAAfnB,EAAOlI,OAAe,CAWjB,GAwIAwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAhJjBsK,EAAG2hB,YAAAxmB,OAAA,IAuJH6E,EAAGH,WAAY,GA/InBG,EAAA2hB,YAAAxmB,OAAA,EAmJI,GAA0BxF,QAAtBqE,EAAOvE,OAAOC,KAjJ/B,IAAsB,GAAEwF,KAAA8E,GAAA2hB,YACP3nB,EAAAvE,OAAAC,KAAAI,WAAsCkK,EAAA2hB,YAAAzmB,GAAApF,YAmJ9BkK,EAAG6oB,GAAK7oB,EAAG2hB,YAAYzmB,GAAG6tB,YA/I9C/oB,GAAa6oB,GAAA7oB,EAAA2hB,YAAA,GAAAoH,MAIb,IAAA/oB,EAAA2hB,YAAaxmB,OAAA,IAAA,IAAA6E,EAAA6oB,IAAA,IAAA7oB,EAAA6oB,IAAA,IAAA7oB,EAAA6oB,IAAA,KAAA7oB,EAAA6oB,IAAA,CACb,GAAWlzB,QAAAqE,EAAAvE,OAAAC,KACL,IAAA,GAAAwF,KAAA8E,GAAA2hB,YACP3nB,EAAAvE,OAAAC,KAAAI,WAAAkK,EAAA2hB,YAAAzmB,GAAApF,YACckK,EAAA+pB,sBAAA/pB,EAAA2hB,YAAAzmB,QAqJD8E,GAAG+pB,sBAAwB/pB,EAAG2hB,YAAY,GAjJ1DqI,GAGUhqB,GAAAH,WAAA,MAENG,GAAAH,WAAa,CAGd,IAAAlK,QAAAqE,EAAAvE,OAAAC,KAAA,CACCsK,EAAAsS,WAAa,EACbtS,EAAWiqB,SAAA,CACL,KAAA,GAAA/uB,KAAA8E,GAAA2hB,YAmJU3nB,EAAOvE,OAAOC,KAAKI,WAAakK,EAAG2hB,YAAYzmB,GAAGpF,YAClDkK,EAAG+pB,sBAAwB/pB,EAAG2hB,YAAYzmB,GAhJ9D8uB,KAEDhqB,EAAAsS,WAAA,MAGAjY,GAAAwH,MAAA,QAAA,yBAAA,iBAEC7B,GAAAsS,WAAQ,GAmJL,SAAS3R,GAjJbtG,EAAAwH,MAAkB,QAAA,mBAAA,kBACjB7B,EAAAsS,WAAgB,IA4JxB,QAlJQ0X,KAoJJ,GAlJIhqB,EAAA+pB,sBAAgBj0B,UAAA,CAoJhBkK,EAAGsS,WAAY,EACM3c,QAAjBqK,EAAGkqB,YAjJJC,IAoJHnqB,EAAG6oB,GAAK7oB,EAAG+pB,sBAAsBhB,OACjC/oB,EAAGlK,UAAYkK,EAAG+pB,sBAAsBj0B,SACxC,IAAImF,IAEAnF,UAAWkK,EAAG+pB,sBAAsBj0B,UACpCqc,UAAWnS,EAAGE,WAAWyU,gBAAgBxC,UACzCiY,MAAOpqB,EAAGE,WAAWG,OAEzBjG,GAAY4vB,aAAa/uB,GAAKwD,KAAK,SAASC,GAExC,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpB,GADAwJ,EAAGkqB,WAAavtB,KAAKC,MAAM8B,EAAIhJ,KAAK20B,MAAM,GAAG3qB,QAChC,GAATM,EAAG6oB,IAAoB,IAAT7oB,EAAG6oB,GAAU,CAC3B7oB,EAAGsqB,YAActqB,EAAGkqB,WAAW,GAAGI,YAClCtqB,EAAGuqB,cAAgBvqB,EAAGkqB,WAAW,GAAGK,cACpCvqB,EAAGwqB,YAAcxqB,EAAGkqB,WAAW,GAAGM,YAClCxqB,EAAGyqB,UAAYzqB,EAAGkqB,WAAW,GAAGQ,gBAjJjC,IAAAh1B,GAAWsK,EAAAyqB,SACtB/0B,KACesK,EAAAgd,MAAAtnB,EAAAi1B,eAAA,SAAA1Q,MAAA,WAAA2Q,SAAA,MAAAC,sBAAA,EAAAC,sBAAA,KAoJHrgB,EAAOsgB,QAAQlzB,KAAKmI,EAAGkqB,WAAW,GAAGc,sBACrCvgB,EAAOsgB,QAAQlzB,KAAKmI,EAAGkqB,WAAW,GAAGe,oBACrCjrB,EAAGkrB,UAAYlrB,EAAGkqB,WAAW,GAAGgB,UAChClrB,EAAGmrB,eAAiBnrB,EAAGkqB,WAAW,GAAGiB,eACrCnrB,EAAGorB,UAAYprB,EAAGkqB,WAAW,GAAGkB,UAChCprB,EAAGqrB,gBAAkBrrB,EAAGkqB,WAAW,GAAGmB,gBACtCrrB,EAAGsrB,eAAiBtrB,EAAGkqB,WAAW,GAAGoB,eACrCtrB,EAAGurB,gBAAkBvrB,EAAGkqB,WAAW,GAAGqB,gBACtCvrB,EAAG+oB,OAAS/oB,EAAGkqB,WAAW,GAAGnB,OAC7Bte,EAAO+gB,SAAW,IAAK,GAAI,GAAI,GAAI,IAjJ5C/gB,EAAWghB,OAAY,MAAO,MAAA,MAAA,MAAA,OAEjChhB,EAAAihB,UACgB,GAAA,GAAA,GAAW,GAAK,KACjB,GAAA,GAAA,GAAA,GAAgB,KAEnBjhB,EAAGkhB,WAAc,MAAS,MAAA,MAAA,MAAA,OAC1BlhB,EAAGmhB,WAAiB,YAAS,iBAC1B,IAAY,GAAZ5rB,EAAA6oB,IAAY,IAAA7oB,EAAA6oB,GAAA,CACZ,GAAA7oB,EAAA6oB,KACH7oB,EAAAsqB,YAAWtqB,EAAYkqB,WAAS,GAAAI,YAmJ5BtqB,EAAGkrB,UAAYlrB,EAAGkqB,WAAW,GAAGgB,UAChClrB,EAAGmrB,eAAiBnrB,EAAGkqB,WAAW,GAAGiB,eAjJxCnrB,EAAKorB,UAAAprB,EAAAkqB,WAAA,GAAAkB,UACVprB,EAAWqrB,gBAAYrrB,EAASkqB,WAAA,GAAAmB,gBAmJxBrrB,EAAGsrB,eAAiBtrB,EAAGkqB,WAAW,GAAGoB,eAjJtCtrB,EAAGurB,gBAAAvrB,EAAAkqB,WAAA,GAAAqB,gBACRvrB,EAAA+oB,OAAW/oB,EAAAkqB,WAAmB,GAAAnB,QAExC/oB,EAAAyqB,UAAyBzqB,EAAAkqB,WAAA,GAAAQ,gBACb,IAAIh1B,GAAAsK,EAAAyqB,SACJzqB,GAAGgd,MAAAtnB,EAAWi1B,eAAc,SAAY1Q,MAAA,WAAU2Q,SAAA,MAAAC,sBAAA,EAAAC,sBAAA,GAClD,IAAGE,GAAqBa,WAAW7rB,EAAMkqB,WAAY,GAAAc,qBAAAhrB,EAAAkqB,WAAA,GAAAQ,iBAAA,KAAAoB,QAAA,GAClDb,EAAmBY,WAAW7rB,EAAMkqB,WAAY,GAAAe,mBAAAjrB,EAAAkqB,WAAA,GAAAQ,iBAAA,KAAAoB,QAAA,GAChDC,EAAmBF,WAAW7rB,EAAMkqB,WAAY,GAAA6B,mBAAA/rB,EAAAkqB,WAAA,GAAAQ,iBAAA,KAAAoB,QAAA,GAChDE,EAAYH,WAAA7rB,EAAAkqB,WAAA,GAAA8B,sBAAAhsB,EAAAkqB,WAAA,GAAAQ,iBAAA,KAAAoB,QAAA,EAEfrhB,GAAAsgB,QAAWlzB,KAAAmzB,GAmJXvgB,EAAOsgB,QAAQlzB,KAAKozB,GACpBxgB,EAAOsgB,QAAQlzB,KAAKk0B,GAjJ5BthB,EAAcsgB,QAAAlzB,KAAAm0B,GACVhsB,EAAWkqB,WAAA,GAAY+B,oBAmJfjsB,EAAGisB,kBAAoBtvB,KAAKC,MAAMoD,EAAGkqB,WAAW,GAAG+B,mBACnDxhB,EAAO+gB,WACP/gB,EAAO+gB,QAAQ3zB,KAAKg0B,WAAY7rB,EAAGisB,kBAAkB3b,MAAQtQ,EAAGisB,kBAAkB3b,MAAS,KAAKwb,QAAQ,IACxGrhB,EAAO+gB,QAAQ3zB,KAAKg0B,WAAY7rB,EAAGisB,kBAAkBC,OAASlsB,EAAGisB,kBAAkB3b,MAAS,KAAKwb,QAAQ,IAjJ7GrhB,EAAA+gB,QAAA3zB,KAAsBg0B,WAAA7rB,EAAAisB,kBAAuBE,QAAgBnsB,EAAAisB,kBAAA3b,MAAA,KAAAwb,QAAA,IAC3DrhB,EAAAtG,QAAW,UAAA,UAAA,WACVsG,EAAAghB,OAAA,QAAA,SAAA,YAERzrB,EAAYkqB,WAAA,GAAAkC,kBACfpsB,EAAAosB,gBAAAzvB,KAAAC,MAAAoD,EAAAkqB,WAAA,GAAAkC,iBAEO5xB,EAAA6xB,QAAkBrsB,EAAAosB,gBAAA,SAAAnxB,GAsJT,MAHAT,GAAO8xB,IAAItsB,EAAGosB,gBAAiB,SAAS5e,GAjJ5C,MAAYA,GAAA+e,UAAY/e,EAAAgf,YAAAlJ,UAAA,EAAA,KAoJbroB,EAAIwxB,SA/IhBhiB,EAAAihB,gBAICjhB,EAAOkhB,aAoJPnxB,EAlJIqI,QAAW7C,EAAAosB,gBAAY,SAAgB5e,GAmJvC/C,EAlJOkhB,UAAQ9zB,KAAA2V,EAAA+e,WAmJf9hB,EAAOihB,QAAQ,GAAG7zB,KAAK2V,EAAEkf,QAjJ1BjiB,EAAAihB,QAAA,GAAA7zB,KAAA2V,EAAAmf,WAoJHliB,EAAOmhB,WAAa,cAAe,iBA/I3C5rB,EAAAsS,WAAO,EAmJPtS,EAAGiqB,SAlJK,MAoJRlyB,GAAW2I,YAlJY,QAAO,yBAAqB,aAmJnDV,EAAGsS,WAAY,KA2F/B,QAASiX,GAlJeP,GAmJpBxB,EAAeoF,eAlJQ5D,GAAqBvqB,KAAA,SAAcC,GAmJlD,GAlJe,MAkJXA,EAAIlI,OAlJO,CAmJXwJ,EAAG6sB,UAlJQnuB,EAAAhJ,IAmJX,KAAK,GAlJGwF,KAAG8E,GAAA6sB,UAAY,CAmJnB,IAAK,GAAI1iB,KAAKnK,GAAGgoB,mBAjJdhoB,EAAA6sB,UAAe3xB,GAAA4xB,gBAAc9sB,EAAAgoB,mBAAA7d,GAAA4O,KAC5B/Y,EAAO6sB,UAAG3xB,GAAA+sB,aAAAjoB,EAAAgoB,mBAAA7d,GAAA8d,aAGd,KAAI,GAAA9d,KAAAnK,GAAAyoB,eACAzoB,EAAA6sB,UAAA3xB,GAAAytB,QAAqB3oB,EAAYyoB,eAActe,GAAGwe,SAClD3oB,EAAA6sB,UAAA3xB,GAAA6xB,SAAwB/sB,EAAAyoB,eAAete,GAAWue,eAGtD,KAAA,GAAOve,KAAAnK,GAAQkoB,YACRloB,EAAA6sB,UAAa3xB,GAAA8xB,UAAAhtB,EAAAkoB,YAAA/d,GAAAke,OACbroB,EAAA6sB,UAAa3xB,GAAA8xB,SAAAhtB,EAAAkoB,YAAA/d,GAAAge,aAuJxBnoB,EAAGsS,WAlJY,MAoJfva,GAlJQ2I,YAAO,QAAU,yBAAsB,QAqJvD,SAASC,GACL5I,EAAW2I,YAlJI,QAAA,mBAAgC,SAqJvD8mB,EAAeyF,iBAlJgBjE,EAAO,EAAA,GAAAvqB,KAAiB,SAASC,GAmJxD,GAAmB,MAAfA,EAAIlI,OAlJY,CAmJhBwJ,EAAGktB,WAAaxuB,EAAIhJ,IACpB,KAAK,GAAIwF,KAlJG8E,GAAAktB,WAAW,CAmJnB,IAAK,GAAI/iB,KAAKnK,GAAGgoB,mBACThoB,EAAGktB,WAAWhyB,GAAG4xB,gBAAkB9sB,EAAGgoB,mBAAmB7d,GAAG4O,KAjJhE/Y,EAAOktB,WAAUhyB,GAAA+sB,aAAAjoB,EAAAgoB,mBAAA7d,GAAA8d,aAqJrB,KAAK,GAAI9d,KAAKnK,GAAGyoB,eAjJbzoB,EAAOktB,WAAAhyB,GAAYytB,QAAA3oB,EAAAyoB,eAAAte,GAAAwe,SAmJf3oB,EAAGktB,WAAWhyB,GAAG6xB,SAAW/sB,EAAGyoB,eAAete,GAAGue,eAIzD,KAAK,GAlJGve,KAAAnK,GAAOkoB,YAmJPloB,EAAGktB,WAAWhyB,GAAG8xB,UAAYhtB,EAAGkoB,YAAY/d,GAAGke,OAjJnDroB,EAAOktB,WAAAhyB,GAAa8xB,SAAAhtB,EAAekoB,YAAA/d,GAAAge,aAuJ3CnoB,EAlJGsS,WAAA,MAEHva,GAAG2I,YAAY,QAAA,yBAAA,QAqJvB,SAASC,GACL5I,EAAW2I,YAAY,QAAS,mBAAoB,SA9IhE,QAAOysB,KAoJH,GAlJIz3B,IAmJAE,OAlJQ,EAoJZoE,GAAO8F,GAAG,iBACNpK,KAAMA,IA2Cd,QAAS03B,KACL,GAAI13B,IACAE,OAAQ,EAEZoE,GAAO8F,GAAG,iBAjJXpK,KAAAA,IAsJH,QAAS23B,KACL,GAAI33B,IACAE,OAlJI,EAoJRoE,GAAO8F,GAAG,iBAjJNpK,KAAAA,IAsJR,QAlJQ43B,KAmJJ,GAAI53B,IACAE,OAlJK,EAoJToE,GAAO8F,GAlJE,iBAmJLpK,KAlJIA,IAsJZ,QAAS63B,KACL,GAAI73B,IACAm3B,UAAW7sB,EAAG6sB,UAElB7yB,GAAO8F,GAAG,aACNpK,KAAMA,IAId,QAAS83B,KACL,GAAI93B,IACAw3B,WAlJQltB,EAAKktB,WAoJjBlzB,GAAO8F,GAAG,UACNpK,KAAMA,IAId,QAAS+3B,GAAKC,GAMV,GAAIA,EAAQ,EACR,GAAoB/3B,QAAhBqK,EAAGlK,WACH,GAAiBH,QAAbqK,EAAG+oB,OACH,GAAiB,GAAb/oB,EAAG+oB,QAA4B,GAAb/oB,EAAG+oB,OAAa,CAClC,GAAI9tB,IAjJLnF,UAAYkK,EAAA+pB,sBAAAj0B,UACZwsB,YAAAtiB,EAAA+pB,sBAAAzH,YAoJCtoB,GAAO8F,GAAG,cACNpK,KAAMuF,QAhJP,IAAY,GAAZ+E,EAAA+oB,OAAY,CAmJf,GAAIrzB,IACA4sB,YAAatiB,EAAG+pB,sBAAsBzH,YAjJ3CxsB,UAAAkK,EAAiB+pB,sBAAoBj0B,UACpCqc,UAAWnS,EAAKE,WAAAyU,gBAAAxC,UAEpBnY,GAAS8F,GAAK,gBACVpK,KAASA,SAuJjB2E,GAlJQ8C,OAAK,UAAY,mBAmJrB9F,WAlJQ,EAmJR+F,KAAM,WAId/C,GAAQ8C,OAlJI,UAAc,mBAmJtB9F,WAAW,EACX+F,KAAM,OAclB,QAAS+sB,KAjJTnqB,EAAAkqB,WAAmB,KACflqB,EAAAsqB,YAAA,KACAtqB,EAAAuqB,cAAW,KAmJXvqB,EAAGwqB,YAlJS,KAmJZxqB,EAAGyqB,UAAY,KAjJfzqB,EAAAgd,MAAU,KAmJVvS,EAlJIsgB,WAmJJ/qB,EAAGkrB,UAAY,KACflrB,EAAGmrB,eAAiB,KAjJrBnrB,EAAAorB,UAAA,KACCprB,EAAAqrB,gBAAW,KAmJXrrB,EAAGsrB,eAlJC,KAmJJtrB,EAAGurB,gBAlJS,KAmJZvrB,EAAG+oB,OAAS,KAzwBhB,GAAI/oB,GAjJIC,IAkJRD,GAAGsS,WAjJK,EAkJRva,EAjJQ2c,SAAA,EAkJR1U,EAAGH,WAjJK,EAkJRG,EAAGE,WAjJK/F,EAAWgG,uBAkJnBH,EAAGmtB,QAjJKA,EAkJRntB,EAAGotB,iBAAmBA,EACtBptB,EAAGqtB,kBAAoBA,EACvBrtB,EAAGstB,cAjJeA,EAkJlBttB,EAAGutB,cAjJKA,EAkJRvtB,EAAGwtB,WAAaA,EAChBxtB,EAAGmqB,eAjJgBA,EAkJnBnqB,EAAG2tB,qBACH3tB,EAAGmpB,cAjJa,EAkJhBnpB,EAAGopB,YAjJa,EAkJhBppB,EAAGqpB,YAjJa,EAkJhBrpB,EAAGspB,eAjJgB,EAkJnBtpB,EAAGytB,KAAOA,EACVztB,EAAGgqB,aAAeA,EAElBhqB,EAAG4tB,aAjJS,EAkJZ5tB,EAAG6tB,qBAAsB,EACzB7tB,EAAG8tB,gBAjJe,EAkJlB9tB,EAAGiqB,SAAU,EAEb/X,IAEIna,EAAW+C,oBAhJfZ,EAASqB,KAAA,yBAoJTkP,EAjJIsjB,kBAkJAtC,MAjJI,YAkJJuC,YAAa,EAhJbjwB,KAAI,OA4JR,IAjJIkwB,GAAevlB,EAAAvE,MAmJnBsG,GAAOyjB,SACHC,UACIC,KAhJIJ,YAAA,IAoJRK,QACIC,SAAS,EACTC,SAAU,SAhJXC,QACCC,UAAWR,EAAY3pB,cAqJ3BoqB,UAhJJ/0B,SAAS,EACDpD,KAAA,SACAo4B,WACIlD,MAAA,SAAUmD,EAAAl5B,GACN,GAAA+1B,GAAW/1B,EAAA84B,OAAYI,EAAAxZ,OACvByZ,EAAgBn5B,EAAQo5B,SAAAF,EAAAG,cAAAr5B,KAAAk5B,EAAAxZ,OACxB4Z,EAAgBH,EAAQlE,eAAA,SAAA1Q,MAAA,WAAA2Q,SAAA,MAAAC,sBAAA,EAAAC,sBAAA,GAkJxB,OAAOW,GAAQ,KAAOuD,KAIlCC,QACIC,QACIC,OACI5wB,SAAU,SAASktB,EAAOrW,EAAOoZ,GAC7B,MAAO,IAAIY,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAO4P,SAQzGhhB,EAAO6kB,WAjJC,aAAe,UAAA,UAAiC,cAkJxD7kB,EAAOsgB,WACPtgB,EAAO8kB,YAgBHpB,UAhJIC,KACIJ,YAAY,IAoJpBK,QACIC,SAjJI,EAkJJC,SAAU,SAhJVC,QACIC,UAAQR,EAAK3pB,cAsJrBoqB,UACI/0B,SAAS,EACTpD,KAAM,SACNo4B,WACIlD,MAAO,SAASmD,EAAal5B,GACzB,GAAI+1B,GAAQ/1B,EAAK84B,OAAOI,EAAYxZ,OAhJhCyZ,EAAKn5B,EAAAo5B,SAAAF,EAAAG,cAAAr5B,KAAAk5B,EAAAxZ,OACb4Z,EAAuBH,EAAAlE,eAA+B,SAAE1Q,MAAW,WAAY2Q,SAAA,MAAAC,sBAAA,EAAAC,sBAAA,GAmJ3E,OAAiB,IAAb9qB,EAAG+oB,OAhJH0C,EAAA,KAAAuD,EAAA,IAmJOvD,EAAQ,KAAOuD,MAlI1CvkB,EAAA+kB,cAAkB,WACd/kB,EAAK/U,KAAAkyB,EAAAnd,EAAA/U,OAwdT+U,EAAOglB,uBAlJgB,SAAAC,EAAAC,EAAA1mB,GAmJnB,GAAIymB,EAAOv0B,OAlJQ,GAmJF,IAAT6E,EAAG6oB,GAAU,CACb,GAAInzB,IAjJA4sB,YAAWtiB,EAAA+pB,sBAA0BzH,YAmJrCxsB,UAlJOkK,EAAA+pB,sBAAYj0B,UAmJnBqc,UAlJOnS,EAAAE,WAAUyU,gBAAAxC,UAmJjB6K,MAlJIhd,EAAKgd,MAmJTyN,UAlJQzqB,EAAIyqB,UAmJZ70B,OAAQ,EAEZoE,GAAO8F,GAlJC,oBAmJJpK,KAAMA,MAMtB+U,EAAOmlB,sBAlJoB,SAAAF,EAAAC,EAAA1mB,GAmJvB,GAAIymB,EAlJGv0B,OAAS,GACA,IAAR6E,EAAA6oB,GAAQ,CACR,GAAGnzB,IAmJC4sB,YAAatiB,EAAG+pB,sBAAsBzH,YACtCxsB,UAAWkK,EAAG+pB,sBAAsBj0B,UACpCqc,UAAWnS,EAAGE,WAAWyU,gBAAgBxC,UACzCvc,OAAQ,EAEZoE,GAAO8F,GAAG,oBACNpK,KAAMA,MAOtB+U,EAAOolB,kBAlJgB,SAAAH,EAAAC,EAAA1mB,GAmJnB,GAlJIymB,EAAOv0B,OAAA,GACH,IAAA6E,EAAA6oB,GAAA,CAmJA,GAAInzB,IAjJA4sB,YAAGtiB,EAAA+pB,sBAAsBzH,YAC9BxsB,UAAekK,EAAA+pB,sBAAsBj0B,UACpCqc,UAAMnS,EAAAE,WAAAyU,gBAAAxC,UAmJFia,gBAAiBpsB,EAAGosB,gBAjJxBx2B,OAAW,EAqJXoE,GAAO8F,GAAG,oBAjJdpK,KAAYA,MAyJpBsK,EAAG8vB,eAlJiB,SAAGt5B,EAAck3B,GAoJjC,GAAIA,EAAQ,EAAG,CACX,GAAIh4B,IACAE,OAAQY,EACRV,UAAWkK,EAAG+pB,sBAAsBj0B,UACpCqc,UAlJQnS,EAAAE,WAAeyU,gBAAQxC,UAqJnCnY,GAAO8F,GAAG,cACNpK,KAAMA,QA/IE,IAkJRc,EACAwJ,EAAG6T,QAlJQ,iBACI,GAkJVrd,EACLwJ,EAAG6T,QAlJK,eAmJO,GAAVrd,IACLwJ,EAAG6T,QAlJK,iBAoJZxZ,EAAQ8C,OAAO,UAlJU,QAAQ6C,EAAA6T,SAmJ7Bxc,WAAW,EACX+F,KAAM,QA+ElB4C,EAAG+vB,gBAlJa,WAmJZ,GAAIr6B,IACAs6B,qBAlJchwB,EAAA0pB,SAmJd9zB,OAlJQ,EAoJZoE,GAAO8F,GAAG,qBACNpK,KAAMA,KA/IdsK,EAAAiwB,oBAAO,WAoJH,GAlJIv6B,IAmJAs6B,qBAlJehwB,EAAA2pB,YAmJf/zB,OAlJQ,EAoJZoE,GAAO8F,GAAG,qBACNpK,KAAMA,KAGdsK,EAAGkwB,wBAlJmB,WAoJlB,GAAIx6B,IACAs6B,qBAAsBhwB,EAAG4pB,UACzBh0B,OAAQ,EAEZoE,GAAO8F,GAAG,qBAjJPpK,KAAAA,KAqJPsK,EAAGmwB,kBAlJoB,WAoJnB,GAAIz6B,IACAs6B,qBAlJsBhwB,EAAA6pB,UAmJtBj0B,OAlJQ,EAoJZoE,GAAO8F,GAAG,qBACNpK,KAAMA,4SA/pBlBtB,QACKC,OAAO,yBACPe,WAAW,gBAAiBmyB,MA+oDrC,WACI,YAOA,SAAS6I,GAAiBr4B,EAAYoC,EAAuBH,EAAQI,EAAaI,GAoC9E,QAAS0X,KACLlS,EAAGsS,WAAY,CACf,IAAIrX,IACAnF,UAAWkK,EAAGlK,UACdsK,SAAUJ,EAAGE,WAAWG,OACxB8R,UAAWnS,EAAGmS,UAEe,IAA7BnY,EAAOvE,OAAOC,KAAKE,QACnBqF,EAAIo1B,YAAc,KAClBj2B,EAAYk2B,gBAAgBr1B,GAAKwD,KAAK,SAAUC,GAC1B,KAAdA,EAAIlI,QACJwJ,EAAGuwB,kBAAoB5zB,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAC3ClF,EAAO8xB,IAAItsB,EAAGuwB,kBAAmB,SAAU/iB,GACvC,MAAOA,GAAEgjB,QAAW3E,WAAYre,EAAEijB,gBAAkBzwB,EAAGyqB,UAAa,KAAKqB,QAAQ,GAAK,OAE1F9rB,EAAG0wB,iBACH1wB,EAAG2wB,eACH3wB,EAAG4wB,kBACH5wB,EAAG6wB,eACH7wB,EAAG0wB,cAAgBl2B,EAAOyC,OAAO+C,EAAGuwB,kBAAmB,SAAUt1B,GAC7D,MAAyB,aAAlBA,EAAI61B,aAEf9wB,EAAG2wB,YAAcn2B,EAAOyC,OAAO+C,EAAGuwB,kBAAmB,SAAUt1B,GAC3D,MAAyB,WAAlBA,EAAI61B,aAEf9wB,EAAG4wB,eAAiBp2B,EAAOyC,OAAO+C,EAAGuwB,kBAAmB,SAAUt1B,GAC9D,MAAyB,cAAlBA,EAAI61B,aAEf9wB,EAAG6wB,YAAcr2B,EAAOyC,OAAO+C,EAAGuwB,kBAAmB,SAAUt1B,GAC3D,MAAyB,WAAlBA,EAAI61B,aAEf9wB,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,QAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,UAGtB,GAA7B1G,EAAOvE,OAAOC,KAAKE,QACxBqF,EAAIo1B,YAAc,KAClBj2B,EAAYk2B,gBAAgBr1B,GAAKwD,KAAK,SAAUC,GAC5C,GAAkB,KAAdA,EAAIlI,OAAe,CACnBwJ,EAAG+wB,gBAAkBp0B,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QACzClF,EAAO8xB,IAAItsB,EAAG+wB,gBAAiB,SAAUvjB,GACrC,MAAOA,GAAE2e,QAAW3e,EAAE8C,MAAQ9C,EAAE0e,QAEpC,IAAI8E,GAAax2B,EAAOy2B,MAAMjxB,EAAG+wB,gBAAiB,SAAUvjB,GACxD,MAAOA,GAAE8C,QAET4gB,EAAc12B,EAAOy2B,MAAMjxB,EAAG+wB,gBAAiB,SAAUvjB;AACzD,MAAOA,GAAE0e,SAETiF,EAAe32B,EAAOy2B,MAAMjxB,EAAG+wB,gBAAiB,SAAUvjB,GAC1D,MAAOA,GAAE2e,SAGbnsB,GAAGoxB,OAASvF,WAAYqF,EAAcF,EAAc,KAAKlF,QAAQ,GACjE9rB,EAAGiT,QAAU4Y,WAAYsF,EAAeH,EAAc,KAAKlF,QAAQ,GACnE9rB,EAAGsS,WAAY,MAGfva,GAAW2I,YAAY,QAAS,yBAA0B,QAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,UAGtB,GAA7B1G,EAAOvE,OAAOC,KAAKE,SACxBoK,EAAGqxB,mBAAqBr3B,EAAOvE,OAAOC,KAAK02B,gBAC3C5xB,EAAO8xB,IAAItsB,EAAGqxB,mBAAoB,SAAU7jB,GACxC,MAAOA,GAAEmf,QAAU,GAAIyC,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOrO,EAAEmf,WAEvGnyB,EAAO8xB,IAAItsB,EAAGqxB,mBAAoB,SAAU7jB,GACxC,MAAOA,GAAEkf,OAAS,GAAI0C,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOrO,EAAEkf,UAEtG1sB,EAAGsS,WAAY,GA/GvB,GAAItS,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrB1c,EAAW2c,SAAU,EACrB1U,EAAGE,WAAa/F,EAAsBgG,uBACtCH,EAAGsiB,YAActoB,EAAOvE,OAAOC,KAAK4sB,YACpCtiB,EAAGlK,UAAYkE,EAAOvE,OAAOC,KAAKI,UAClCkK,EAAGmS,UAAYnY,EAAOvE,OAAOC,KAAKyc,UAClCnS,EAAGpK,OAASoE,EAAOvE,OAAOC,KAAKE,OACd,GAAboK,EAAGpK,SACHoK,EAAGgd,MAAQhjB,EAAOvE,OAAOC,KAAKsnB,MAC9Bhd,EAAGyqB,UAAYzwB,EAAOvE,OAAOC,KAAK+0B,WAEtCzqB,EAAGuwB,qBACHvwB,EAAG+wB,mBACH/wB,EAAGqxB,sBACHrxB,EAAGsxB,gBAAiB,EACpBtxB,EAAGuxB,kBAAmB,EACtBvxB,EAAGwxB,eAAgB,EACnBxxB,EAAGyxB,eAAgB,EAOnBvf,IAkFAlS,EAAG0xB,mBAAqB,SAAU5e,GAC9B,GAAIpd,IACAI,UAAWkK,EAAGlK,UACd67B,gBAAiB7e,EAAI8e,iBACrBC,cAAe/e,EAAI+e,cACnBj8B,OAAQkd,EAAIge,WACZ1wB,SAAUJ,EAAGE,WAAWG,OACxBowB,gBAAiB3d,EAAI2d,gBACrBqB,KAAM93B,EAAOvE,OAAOC,KACpB4sB,YAAatiB,EAAGsiB,YAEpBtoB,GAAO8F,GAAG,mBACNpK,KAAMA,KAMdsK,EAAG+xB,KAAO,WACN,GAAIr8B,IACAI,UAAWkK,EAAGlK,UAhJ7BkE,GAAY8F,GAAA,aACTpK,KAAAA,sFAEAtB,QACKC,OAAO,yBACPe,WAAW,mBAAoBg7B,MAqJxC,WAlJI,YA0JA,SAnJO4B,GAAAj6B,EAAuBoC,EAAeH,EAAAI,EAAAI,GA0KzC,QAAS0X,KACLlS,EAAGsS,WAAY,CACf,IAAIrX,IACAnF,UAAWkK,EAAGlK,UAlJtB+7B,cAAA73B,EAAAvE,OAAAC,KAAAm8B,cAoJQj8B,OAAQoK,EAAGpK,OAlJnBwK,SAAgBpG,EAAAvE,OAAAC,KAAA0K,SAsJZhG,GAnJI63B,mBAAch3B,GAAAwD,KAAA,SAAAC,GACd,GAAa,MAAbA,EAAAlI,OAAwB,CACxBwJ,EAAAkyB,oBAAcxzB,EAAAhJ,KAoJVy8B,QAAQC,IAAIpyB,EAAGkyB,oBAlJnB,IAAOG,KACHryB,GAAAkyB,oBAAc13B,EAAA83B,QAAAtyB,EAAAkyB,oBAAA,oBAClB13B,EAAA8xB,IAAYtsB,EAAAkyB,oBAA0B,SAAU7mB,EAAK0b,GAC7CsL,EAAIx6B,MACD+5B,iBAAA7K,EACHwL,SAAclnB,EAAA,GAAAknB,SACVlK,KAAAhd,EAAS,GAAAgd,KAoJTmK,UAAW3G,WAAWrxB,EAAOy2B,MAAM5lB,EAAO,WAAWygB,QAAQ,GAlJ9D2G,QAAA,GAAArD,MAAgBC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAArhB,EAAAy2B,MAAA5lB,EAAA,SAChBqnB,SAAArnB,MAuJP7Q,EAAOqI,QAnJQwvB,EAAI,SAAA7kB,GAoJfhT,EAAOqI,QAAQ2K,EAAEklB,SAAU,SAAUz3B,GAlJlCA,EAAA03B,YAAc13B,EAAO23B,cAAU,IAAA33B,EAAA43B,UAC9B53B,EAAA63B,KAAW,GAAA1D,MAAAC,aAAc,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAA5gB,EAAA63B,UAuJjC9yB,EAAGkyB,oBAAsBG,EAEzBryB,EAAGsS,WAnJY,MAqJfva,GAnJO2I,YAAY,QAAA,yBAAA,QAsJvB,SAAUC,GAlJP5I,EAAU2I,YAAK,QAAA,mBAAA,SAoF1B,GAnJIV,GAAGC,IAqJPD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAlJpGrL,EAAAsU,SAAWtU,EAAAqU,gBAAU,GAErBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAmB,SAAYC,GAC/BzU,EAAAuU,YAAYE,GAsJf1c,EAnJO2c,SAAQ,EAoJf1U,EAAGE,WAnJI/F,EAA+BgG,uBAEtCH,EAAGlK,UAAAkE,EAAAvE,OAAoBC,KAAAI,UACvBkK,EAAG2xB,gBAAkB33B,EAAAvE,OAAAC,KAAAi8B,gBACrB3xB,EAAGywB,gBAAA,GAAqBrB,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAA7hB,EAAAvE,OAAAC,KAAA+6B,iBACJ,aAAjBz2B,EAAAvE,OAAAC,KAAiBE,OACjBoK,EAAApK,OAAA,EACgB,WAAhBoE,EAAAvE,OAAgBC,KAAAE,SAChBoK,EAAApK,OAAA,GAoJHsc,IA+CAlS,EAAG+xB,KAnJM,WAoJL/3B,EAnJI8F,GAAI,oBACJpK,KAAAsE,EAAYvE,OAAAC,KAAAo8B,yFAwExB19B,QAlJIC,OAAG,yBACHe,WAAG,mBAAc48B,MAkOzB,WACI,YAOA,SAASe,GAAeh7B,EAAYoC,EAAuBF,EAASM,EAAWP,EAAQI,EAAaI,GAuBhG,QAAS0X,KACLlS,EAAGsS,WAAY,CAlJhB,IAAArX,IACKkX,UAAOnS,EAAAmS,UACPrc,UAAWkK,EAAGlK,UACdsK,SAAAJ,EAAAE,WAAqBG,OAqJzBjG,GAnJY44B,eAAI/3B,GAAAwD,KAAA,SAAAC,GACC,KAAbA,EAAAlI,QACAwJ,EAAAizB,SAAiBv0B,EAAIhJ,KACrBsK,EAAMkzB,aAAclzB,EAAAizB,SAAA,GACpBE,EAAgB,WAoJRnzB,EAAGozB,iBAAiBv7B,KAAKmI,EAAGqzB,SAAS,MAKzCrzB,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,QAjJlE,SAAWC,GACP5I,EAAW2I,YAAG,QAAA,mBAAA,SAwJtB,QAASyyB,GAAmBhc,GACxBnX,EAAGqzB,YACHrzB,EAAGszB,YACH,IAAIr4B,IACAkX,UAAWnS,EAAGmS,UAlJjBrc,UAAAkK,EAAAlK,UACTijB,GAAA/Y,EAAAkzB,aAAAna,GAoJY3Y,SAAUJ,EAAGE,WAAWG,OAlJpCjG,GAAA+4B,mBAAAl4B,GAAAwD,KAAA,SAAAC,GACY,KAAAA,EAAAlI,QACIwJ,EAAAqzB,SAAA30B,EAAAhJ,KAqJAsK,EAAGsS,WAAY,EACX6E,GAnJXA,KAsJOpf,EAAW2I,YAAY,QAAS,yBAA0B,QAlJnE,SAAcC,GAqJT5I,EAAW2I,YAAY,QAAS,mBAAoB,SAK5D,QAAS6yB,GAAoBpc,GAlJ1BnX,EAAAszB,aAqJCtzB,EAAGsS,WAAY,CAnJhB,IAAA+f,KACyB,IAAzBryB,EAAAkzB,aAAkBna,KAClBsZ,EAAA73B,EAAkB8xB,IAAItsB,EAAAozB,iBAAkB,SAAW5lB,GAC3C,MAAOA,GAAAnN,SAGd,IAAGmzB,GAAS,GAAA/Z,KAChB+Z,GAAAhY,QAAAgY,EAAAxX,UAAA,EAqJI,IAAI/gB,IAnJRw4B,QAAgB,IAAAzzB,EAAAkzB,aAAAna,GAAAsZ,EAAAqB,OAAA1zB,EAAAozB,iBAAA/yB,OACTvK,UAAYkK,EAAAlK,UACX69B,cAAM3zB,EAAApK,OACNmjB,GAAA/Y,EAAAkzB,aAAcna,GACd6a,SAAA35B,EAAe,QAAOu5B,EAAY,cAClCpzB,SAAQJ,EAAGE,WAAAG,SAsJXgyB,EAAIl3B,OAAS,GAAK6E,EAAGozB,mBAlJzBh5B,EAAYy5B,gBAAmB54B,GAAKwD,KAAK,SAAUC,GAG3C,GAAe,KAAfA,EAAQlI,OAAO,CACXwJ,EAAAszB,UAAM50B,EAAAhJ,IACP,IAAA28B,KACHryB,GAAOszB,UAAO94B,EAAA83B,QAAAtyB,EAAqBszB,UAAU,YACzC94B,EAAI8xB,IAAKtsB,EAAAszB,UAAA,SAAAjoB,EAAA0b,GACLsL,EAAAx6B,MACAi8B,SAAU/M,EACVgN,GAAM1oB,EAAM,GAAG0oB,GACfC,GAAA3oB,EAAW,GAAA2oB,GACXC,QAAa5oB,EACb6oB,oBAIR15B,EAAOqI,QAAQwvB,EAAK,SAAa7kB,GAC7B,GAAO2mB,GAAQ35B,EAAE83B,QAAU9kB,EAAAymB,QAAU,YACjCz5B,GAAI8xB,IAAA6H,EAAA,SAAkB9oB,EAAA0b,GAsJlB,GAAIqN,IACAC,SAAUtN,EACVuN,aAEJ95B,GAAO8xB,IAAI9xB,EAAO83B,QAAQjnB,EAAO,oBAAqB,SAAUkpB,EAAQC,GAnJrEJ,EAAAE,UAAAz8B,MACZ+5B,iBAAA4C,EACQC,KAAYF,EAAS,GAAAhC,SAqJZmC,OAAQl6B,EAAOy2B,MAAMsD,EAAQ,gBAC7BN,QAASM,MAGjB/mB,EAAE0mB,aAAar8B,KAAKu8B,OAhJ9Bp0B,EAAAszB,UAAAl/B,QAAoB8e,KAAAmf,GACpBryB,EAAAsS,WAAc,EAqJR6E,GACAA,QAEJpf,GAAW2I,YAAY,QAAS,yBAA0B,QAlJrE,SAAAC,GACT5I,EAAA2I,YAAA,QAAA,mBAAA,SAQI,GAAIV,GAAKC,IAETD,GAAGqU,kBAnJgBhJ,MAAU,IAAWA,MAAC,KAAeA,MAAA,KAAcA,MAAa,KAAAA,MAAA,MAoJnFrL,EAAGsU,SAAWtU,EAnJEqU,gBAAe,GAqJ/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAnJa,SAAWC,GAoJvBzU,EAAGuU,YAAcE,GAGrB1c,EAAW2c,SAAU,EACrB1U,EAAGE,WAAa/F,EAAsBgG,uBAEtCH,EAAGlK,UAnJQkE,EAAAvE,OAAAC,KAAqBI,UAoJhCkK,EAAGmS,UAnJYnY,EAAOvE,OAAAC,KAAAyc,UAoJtBnS,EAAGqzB,YACHrzB,EAAGozB,oBACHpzB,EAAGmzB,mBAnJmBA,EAoJtBnzB,EAAGuzB,oBAnJkBA,EAqJrBrhB,IA6HAlS,EArJC20B,gBAAW,SAAkBC,EAAAX,GAsJ1Bz5B,EAAOqI,QAAQoxB,EAAS,SAAUzmB,GACX,IAAfA,EAAE8lB,YApJT9lB,EAAAqnB,SAAel4B,KAAAC,MAAY4Q,EAAA8lB,aAG7B,IAAAl0B,GAAqB7E,EAAS8E,MAC9BhI,WAAc,EAsJTiI,eAAgB,cApJrBC,gBAAc,aACdrK,YAAA,uCACIE,WAAA,kBAsJCC,aAAc,KACd+H,KAAM,KApJdoC,SAAW,SACRC,UAAa,EAsJRyQ,SApJL3N,MAAY,WACA,MAAO0xB,MAInB70B,GAAAM,OAAsBjB,KAAA,aAsJlB,eAKPuB,EAAG+xB,KArJK,WAsJJ,GArJIr8B,IACAI,UAAWkK,EAAGlK,UAuJlBkE,GAAO8F,GAAG,aApJVpK,KAAAA,4GAnCRtB,QACKC,OAAO,yBACPe,WAAW,iBAAkB29B,MA6LtC,WACI,YAOA,SAAS+B,GArJ0BrqB,EAASxQ,EAAA0tB,EAAoB5tB,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAsJ5DG,GAgBA,QAAS+X,KAELyV,EArJYoN,yBAAAxyB,EAAAyyB,OAAAv2B,KAAA,SAAAC,GAsJR,GArJO,MAqJHA,EArJGlI,OAAA,CAuJHwJ,EAAGi1B,eAAiBv2B,EAAIhJ,IApJ7B,KAAU,GAAAwF,KAAK8E,GAAAi1B,eAAA,CACdj1B,EAAWi1B,eAAY/5B,GAAAg6B,MAASv4B,KAAAC,MAAAoD,EAAAi1B,eAAoB/5B,GAAAo4B,UAsJ5C,KAAK,GAAInpB,KAAKnK,GAAGi1B,eAAe/5B,GAAGg6B,MAAML,SACrC70B,EAAG60B,SAASA,SAASh9B,KAAKmI,EAAGi1B,eAAe/5B,GAAGg6B,MAAML,SAAS1qB,IAlJzEnK,EAAAsS,WAAA,IAEF,SAAA3R,GACA5I,EAAY2I,YAAA,QAAA,mBAAA,oBAuHnB,GAAIV,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EApJhBhT,EAAA+S,WAAS,EAsJT/S,EAAGsS,WArJI,EAsJPva,EArJO2c,SAAY,CACLva,GAAAgG,sBAmLd,IA3BAH,EAAG60B,UACCA,aAGJ3iB,IAuBI3P,EAAM4yB,YApJF5yB,EAAA4yB,WAAeD,MAAI,CACvB,GAAAj6B,GAAa0B,KAAAC,MAAQ2F,EAAA4yB,WAAaD,MAC9B,KAAA,GAAMh6B,KAAAD,GAAA45B,SACN70B,EAAA60B,SAAaA,SAAAh9B,KAAaoD,EAAO45B,SAAS35B,IAwKlD8E,EAAG0R,OAAS,WAER4K,EAAkBrN,MArJEtS,KAASqkB,UAAAhhB,EAAA60B,YAwJjC70B,EAAGo1B,iBAAmB,SAAUtiB,EAAK5X,GACjC,GAAIyX,GAAUtY,EAAQsY,QAAQ,UAC1B,4CACItb,WArJQ,EAsJR+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBkpB,EArJoB0N,oBAAWviB,GAAArU,KAAA,SAAAC,GAsJvBA,EAAIhJ,MACJqC,EArJQ2I,YAAW,UAAehC,EAAAhJ,KAAO,IAsJzCsK,EAAG60B,SArJSA,SAAIS,OAAUp6B,EAAK,IA+J/BnD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAM,KAG/C,SArJSiL,GAsJR5I,EArJQ2I,YAAA,gMAqDxBtM,QACKC,OAAO,yBACPe,WArJW,mCAAgC0/B,MA4PpD,WACI,YAMA,SArJQS,GAAoBx9B,EAAUiC,EAAKyQ,EAAAhQ,EAAAF,EAAAI,EAAAN,EAAAG,EAAAg7B,EAAAxjB,EAAAJ,EAAAzX,EAsJvCwtB,GAgCA,QAASzV,KAnJb,GAAAna,EAAA+C,mBAAA,CAsJYkF,EAAGlK,UAAY8Q,SAAS7O,EAAWuD,aAAam6B,IAChD,IAAI/2B,GAAM3G,EAAWuD,aAAao6B,QAAQ16B,MAAM,IArJ5DgF,GAAAsiB,YAAA5jB,EAAAg1B,KAAA,KACYiC,QAyJA31B,GAAGlK,UAAYkE,EAAOvE,OAAOC,KAAKI,UArJrCkK,EAAAsiB,YAAAtoB,EAAAvE,OAAiCC,KAAA4sB,YACtCsT,IAOA,QAAIA,KAwJA,GAvJJ51B,EAAAsS,WAAA,EAuJQtS,EAAGlK,UAAW,CArJnB,GAAAmF,IACC46B,UAAU71B,EAAAlK,UAuJFsK,SAAUJ,EAAGE,WAAWG,OApJpCsnB,GAAAmO,mBAAA76B,GAAAwD,KAAA,SAAAC,GAES,GAAO,MAAAA,EAAAlI,OAAA,CAGA,GAoJAwJ,EAAG+1B,gBAAkBr3B,EAAIhJ,KArJrCy8B,QAAAC,IAAsBpyB,EAAA+1B,iBACV/1B,EAAA+1B,gBAAgB56B,OAAA,EAAA,CACpB,IAAA,GAAAD,KAAA8E,GAAA+1B,gBACG,IAAA,GAAiB5rB,KAAInK,GAAA+1B,gBAAA76B,GAAAg5B,aACV,IAAG,GAAA8B,KAAAh2B,GAAgB+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA,CAC1Bj0B,EAAe+1B,gBAAgB76B,GAAAg5B,aAAS/pB,GAAA8pB,QAAkB+B,GAAAC,IAAAt5B,KAAAC,MAAAoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SAC/Cl2B,EAAG+1B,gBAAkB76B,GAAAg5B,aAAgB/pB,GAAA8pB,QAAA+B,GAAAG,OAAAx5B,KAAAC,MAAAoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SACnCl2B,EAAA+1B,gBAAiB76B,GAAAg5B,aAAkB/pB,GAAA8pB,QAAM+B,GAAAI,SAuJrCvB,aApJT70B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAK,SAAA,CAEL,IAAAC,GAAA,CACS97B,GAAA+7B,MAASv2B,EAAA+1B,gBAAoB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAC,IAAAO,UAAA,SAAAnrB,EAAA0b,GAuJxBuP,GAAQjrB,IAERrL,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cACjDz2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGhZ,OAAShd,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cAAgBH,GAAMxK,QAAQ,GApJvJ9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,MAAAsZ,EAAAxK,QAAA,EAEO,IAAM9O,GAAAhd,EAAW+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,KACpBhd,GAAA+1B,gBAAU76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAU,QAAA,IAAA12B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAA,OAAAlK,QAAA,EACZ,IAAS4K,GAAS12B,EAAA+1B,gBAAS76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAU,MAwJnB12B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGW,OAAU9K,WAAW7O,GAAS6O,WAAW6K,EAC7E12B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGW,MAC9D32B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGY,OAAU/K,WAAW7O,GAAS6O,WAAW6K,EAC1F,IACIG,IADS72B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGY,OAClD,EACZp8B,GAAO+7B,MAAMv2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGG,OAAOK,UAAW,SAAUnrB,EAAO0b,GAC7F8P,GAASxrB,IAETrL,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cACjDz2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGc,UAAY92B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cAAgBH,GAAMxK,QAAQ,GAE5I9rB,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGc,SAAWR,EAAKxK,QAAQ,GAE7E9rB,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGe,QAAU,EAjJvF,IAAA,GAAA77B,KAAA8E,GAAA+1B,gBACkB,IAAM,GAAK5rB,KAAAnK,GAAAg3B,YAuJL,GAAIh3B,EAAG+1B,gBAAgB76B,GAAG6d,KAAO/Y,EAAGg3B,YAAY7sB,GAAG8sB,QAAS,CACxD,GAAIh8B,IArJJg8B,QAAQj3B,EAAAg3B,YAAA7sB,GAAA8sB,QAEhCj3B,GAAA+1B,gBAAA76B,GAA4Cg8B,aAAA18B,EAAAyC,OAAA+C,EAAAg3B,YAAA/7B,QAM5CZ,GAAA8C,OAAsB,UAAA,iBAA8B9F,WAAe,EAAA+F,KAAA,MA0J3D4C,GAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,2BAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAOhE,QAASi1B,KACL31B,EAAGsS,WAtJK,CAuJR,IAAIrX,IACAg8B,QAASl/B,EAAWuD,aAAa67B,MACjCrhC,UAAWiC,EAAWuD,aAAam6B,IACnC2B,WAAYr/B,EAAWuD,aAAa+7B,GACpCC,aAAcv/B,EAAWuD,aAAai8B,OACtCC,WAAYz/B,EAAWuD,aAAa8uB,MACpCqN,SAAU,GAAIhe,MAAK,GAAIA,MAAK1hB,EAAWuD,aAAao8B,QAAQz7B,QAAQ,0BAA2B,cAnJ3G+D,GAAAlK,WAuJY6E,EAAgBg9B,uBAAuB18B,GAAKwD,KAAK,SAAUC,GArJvE,GAAA,MAAAA,EAAAlI,OAAA,CA0JoB,GAzJRwJ,EAAA+1B,gBAAAr3B,EAAAhJ,KACIy8B,QAAAC,IAAApyB,EAAA+1B,iBAwJQ/1B,EAAG+1B,gBAAgB56B,OAAS,EAAG,CAtJ9C,IAAmB,GAAAD,KAAA8E,GAAY+1B,gBACb,IAAA,GAAA5rB,KAAAnK,GAAA+1B,gBAAA76B,GAAAg5B,aACd,IAAA,GAAA8B,KAAAh2B,GAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA,CAwJuBj0B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGC,IAAMt5B,KAAKC,MAAMoD,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGE,SAtJ3Hl2B,EAAS+1B,gBAAgB76B,GAAAg5B,aAAiB/pB,GAAA8pB,QAAQ+B,GAAAG,OAAex5B,KAAEC,MAASoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SACnFl2B,EAAgB+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAI,SAwJGvB,aArJV70B,EAAA+1B,gBAAe76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAK,SAAA,CAyJT,IAAIC,GAAO,CACX97B,GAAO+7B,MAAMv2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGC,IAAIO,UAAW,SAAUnrB,EAAO0b,GAC1FuP,GAAQjrB,IArJ5BrL,EAAsB+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cACfz2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,OAAAhd,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cAAAH,GAAAxK,QAAA,GAEV9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,MAAAsZ,EAAAxK,QAAA,EAyJmB,IAAI9O,GAAQhd,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGhZ,KAtJxEhd,GAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAU,QAAA,IAAA12B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAA,OAAAlK,QAAA,EACF,IAAA4K,GAAA12B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAU,MAyJa12B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGW,OAAU9K,WAAW7O,GAAS6O,WAAW6K,EAC7E12B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGW,MAC9D32B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGY,OAAU/K,WAAW7O,GAAS6O,WAAW6K,EAC1F,IACIG,IADS72B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGY,OAClD,EACZp8B,GAAO+7B,MAAMv2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGG,OAAOK,UAAW,SAAUnrB,EAAO0b,GAC7F8P,GAASxrB,IAETrL,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cAtJrFz2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAc,UAAA92B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cAAAH,GAAAxK,QAAA,GAEI9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAc,SAAAR,EAAAxK,QAAA,GAE4B9rB,EAAA+1B,gBAAW76B,GAAAg5B,aAAa/pB,GAAA8pB,QAAA+B,GAAAe,QAAA,EAK/C,IAAA,GAAA77B,KAAA8E,GAAA+1B,gBACc,IAAA,GAAO5rB,KAAOnK,GAAAg3B,YACZ,GAAOh3B,EAAA+1B,gBAAY76B,GAAA6d,KAAA/Y,EAAAg3B,YAAA7sB,GAAA8sB,QAAA,CACpC,GAAAh8B,IAwJ4Bg8B,QAASj3B,EAAGg3B,YAAY7sB,GAAG8sB,QAE/Bj3B,GAAG+1B,gBAAgB76B,GAAGg8B,aAAe18B,EAAOyC,OAAO+C,EAAGg3B,YAAa/7B,QAjJxFZ,GAAW8C,OAAA,UAAA,iBAAA9F,WAAA,EAAA+F,KAAA,MA2JN4C,GAAGsS,WAAY,MArJnBva,GAAA2I,YAAA,QAAA,yBAAA,2BAyJD,SAvJQC,GAwJP5I,EAvJI2I,YAAe,QAAA,mBAAA,4BAsM/B,QAASk3B,GAAUhD,GACf,GAAIiC,GAAQ,CACZr8B,GAAO+7B,MAAM3B,EAAKuB,OAAOK,UAvJM,SAAAnrB,EAAmB0b,GAwJ9C8P,GAASxrB,IAETupB,EAAK6B,cACL7B,EAAKkC,UAAYlC,EAAK6B,cAAgBI,GAAO/K,QAAQ,GAErD8I,EAAKkC,SAvJOD,EAAQ/K,QAAO,GAmSnC,QAAS+L,GAAQ/kB,GAEb9S,EAAGsS,WAAY,CArJf,IAAIrX,IACJnF,UAAakK,EAAKlK,UACdsK,SAASJ,EAAAE,WAAAG,OAwJT20B,MAAOliB,EAAIkiB,MAtJX8C,aAAKhlB,EAAAgkB,SACLiB,gBAAiBjlB,EAAAojB,QAwJjB8B,QAASllB,EAAImlB,OAtJbb,WAAKtkB,EAAWskB,WAGrBjF,SAAAC,IAAan3B,GACZ0sB,EAAcuQ,qBAAAj9B,GAAAwD,KAAA,SAAAC,GACVA,EAAKhJ,KAAAke,aAAa,GACd7b,EAAA2I,YAAgB,UAAehC,EAAAhJ,KAAAme,QAAA,2BAC/B+hB,IACA51B,EAAAsS,WAAA,GAEAva,EAAA2I,YAAa,QAAAhC,EAAAhJ,KAAAme,QAAA,4BA0JlB,SAvJKlT,GAwJJ5I,EAvJU2I,YAAA,iCA0JlB,QAASy3B,GAvJGrlB,GAyJR9S,EAAGsS,WAAY,CAEf,IAAIrX,IACAnF,UAAWkK,EAAGlK,UACdsK,SAAUJ,EAAGE,WAAWG,OAtJxB20B,MAAAliB,EAAAkiB,MAwJAgD,QAvJSllB,EAAAmlB,OAwJTb,WAvJStkB,EAAAskB,WA0JbjF,SAvJOC,IAAAn3B,GAwJP0sB,EAvJsByQ,uBAAAn9B,GAAAwD,KAAA,SAAAC,GACdA,EAAIhJ,KAAKke,aAAA,GAwJT7b,EAvJS2I,YAAW,UAAQhC,EAAAhJ,KAAAme,QAAA,6BAC5B+hB,IAwJA51B,EAAGsS,WAAY,GAnJfva,EAAK2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,8BA0JV,SAvJUlT,GACT5I,EAAI2I,YAAW,iCA0JvB,QAAS23B,GAAOvlB,GACZqf,QAvJQC,IAAAtf,GAyJR9S,EAAGsS,WAAY,CACf,IAAI+f,IACAiG,mBAIJ,KAAK,GAvJGp9B,KAAK8E,GAAA+1B,gBAwJT,IAvJI,GAAK5rB,KAAAnK,GAAA+1B,gBAAU76B,GAAAg5B,aAwJf,IAAK,GAAI8B,KAAKh2B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,SAC5Cj0B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,QAAuE,IAA5DoK,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,QAA4E,IAA5DoK,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,QAC9Ky8B,EAAIiG,gBAAgBzgC,MAChBm9B,MAAOh1B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGhB,MACxD8C,aAA0E,GAA3D93B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,OAAeoK,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGc,SAAW,EAC3IyB,KAAsE5iC,QAA/DqK,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGb,WAA2Bn1B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGb,WAAW1S,MAAQ,GAtJ1J6Q,UAAgB39B,QAANqK,EAAM+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAn1B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAD,MAAA,KACbsD,eAAex4B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OACpBmiC,gBAAA,GAAA/3B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OAAA+G,KAAAqkB,UAAAhhB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAG,QAAA,MA6Jf,IAvJIl7B,IACAq9B,gBAAUjG,EAAAiG,gBAyJdnG,SAvJIC,IAAAn3B,GAwJDA,EAAIq9B,gBAvJQn9B,OAAY,EAwJ3BwsB,EAvJmB8Q,mBAAAx9B,GAAAwD,KAAA,SAAAC,GAwJXA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eACpD+hB,IACA51B,EAAGsS,WAAY,IArJnBva,EAAK2I,YAAa,QAAAhC,EAAAhJ,KAAAme,QAAA,eACnB7T,EAAAgT,YAAY,IAyJZ,SAAUrS,GACT5I,EAAW2I,YAAY,iCAI3BrG,EAAQ8C,OAAO,UAAW,0BAA4B9F,WAAW,EAAM+F,KAAM,OA1fjF,GAAI4C,GArJIC,IAuJRD,GAAGqU,kBArJkBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAsJrBrL,EAAGsU,SArJKtU,EAAAqU,gBAAY,GAuJpBrU,EAAGuU,YArJW,EAsJdvU,EAAGwU,qBArJe,SAAAC,GAsJdzU,EAAGuU,YArJWE,GAyJlBzU,EAAGsS,WAAY,EACftS,EAAGE,WAAa/F,EAAsBgG,uBACtCH,EAAG41B,kBAAoBA,EACvB51B,EAAGm4B,WArJCA,EAsJJn4B,EAAG63B,QArJIA,EAsJP73B,EAAGq4B,OAASA,EAEZtgC,EAAW2c,SAAU,EACrB1U,EAAG04B,UAAY,GAAIjf,MASnBvH,IA6LAlS,EAAG82B,SAAW,SAAUlC,EAAM9hB,EAvJK0hB,GAyJ/BI,EAAKuB,OAAOK,UAAUhC,GAAQ3I,WAvJE/Y,GAwJhC8kB,EAAUhD,EACV,IAAIkC,GAAWjL,WAAW+I,EAvJKkC,UAAAhL,QAAgB,GAwJ3C6K,EAAS9K,WAAW+I,EAAK+B,QAAQ7K,QAAQ,GACzC8K,EAAS/K,WAAW+I,EAvJIgC,QAAI9K,QAAO,EAwJvC,IAAIgL,GAAYH,GAAU/B,EAvJEkC,UAAaF,EA0JrChC,EAAKkC,SAAWA,EAvJQhL,QAAO,OA0J9B,CACDzxB,EAAQ8C,OAAO,UAAW,oCAAsCy3B,EAAKgC,OAAO9K,QAAQ,GAAK,OAAS8I,EAAK+B,OAAO7K,QAAQ,IAAMz0B,WAAW,EAAM+F,KAAM,OACnJw3B,EAAKh/B,OAAS,EACdg/B,EAAKkC,SAAWlC,EAAK5X,KACrB,IAAIqV,KACJ,KAAK,GAAItL,KAAO6N,GAAKqB,IAAIO,UACrBnE,EAAIx6B,MACA4zB,MAAO1E,EACP1b,MAAOupB,EAAKqB,IAvJIO,UAAGzP,IA2J3B,KAAK,GAAI7rB,KAAKm3B,GACNA,EAAIn3B,GAAGuwB,OAAS+I,IAChBI,EAAKuB,OAAOK,UAvJQhC,GAAG3I,WAAgBwG,EAAGn3B,GAAAmQ,OA4JlDupB,GAAKuB,OAAOK,aACZ5B,EAAKuB,OAAOK,UAAapiC,QAAQ8e,KAAK0hB,EAAKqB,IAAIO,WAE/C5B,EAAK9Q,SAAU,EACf8Q,EAAKyB,SAAU,IAgBvBr2B,EAAGm1B,WAAa,SAAUP,EAAMh/B,GAE5B,GADAg/B,EAAKp+B,OAvJOZ,EACG,GAuJXg/B,EAAKp+B,OAvJM,CAwJX,GAAI4I,GAvJe7E,EAAA8E,MAwJfhI,WAAW,EAtJZiI,eAAe,cACdC,gBAAW,aAwJXrK,YAAa,4DAEbE,WAAY,uCACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SAtJbC,UAAA,EACFyQ,SACO3N,MAAA,WACG,MAAAqyB,MAKTx1B,GAAcM,OAAKjB,KAAI,SAAKxD,GAwJxB25B,EAAKO,WAAal6B,EAtJ1B25B,EAAAh/B,OAAAg/B,EAAAp+B,OACOo+B,EAAA9Q,UACH8Q,EAAA9Q,SAAgB,IAwJb,WAtJC8Q,EAAI+D,QAAI,EACJ/D,EAAGO,aACHP,EAAAO,WAAe1S,MAAA,IAwJnBmS,EAvJIh/B,OAAO,QA0Jd,CACDg/B,EAAKh/B,OAASg/B,EAAKp+B,OACfo+B,EAAK+D,OACL/D,EAAK+D,QAAS,EACO,GAAhB/D,EAAK9Q,UACV8Q,EAAKh/B,OAAS,EAClB,IAAIkhC,GAAWjL,WAvJS+I,EAAGkC,UAAAhL,QAAmB,GAwJ1C6K,EAAS9K,WAAW+I,EAAK+B,QAAQ7K,QAAQ,GACzC8K,EAAS/K,WAvJW+I,EAAIgC,QAAO9K,QAAA,EAyJ/BgL,IAAYH,GAAU/B,EAvJEkC,UAAQF,IA2JhCv8B,EAAQ8C,OAAO,UAAW,kCAAoCy3B,EAAKgC,OAAO9K,QAAQ,GAAK,OAAS8I,EAAK+B,OAAO7K,QAAQ,IAAMz0B,WAAW,EAAM+F,KAAM,OACjJw3B,EAAKh/B,OAAS,EACdg/B,EAAKuB,OAAOK,UAAYpiC,QAAQ8e,KAAK0hB,EAAKqB,IAAIO,WAC9C5B,EAAKkC,SAAWlC,EAvJI5X,MAwJpB4X,EAAK9Q,SAAU,EACf8Q,EAAKyB,SAAU,KAO3Br2B,EAAG44B,gBAAkB,SAAUhE,GAC3B,GAAIx1B,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,4DACbE,WAAY,uCACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SACI3N,MAAO,WACH,MAvJIqyB,MA4JhBx1B,GAAcM,OAAOjB,KAAK,SAAUxD,GAChC25B,EAAKO,WAAal6B,GACnB,eAKP+E,EAAG20B,gBAvJiB,SAAQC,EAAOO,GA0J/B,GAAIl6B,IACA+5B,MAAOJ,EAvJII,MAwJXG,WAvJWA,GAyJX/1B,EAAgB7E,EAAU8E,MAC1BhI,WAvJG,EAwJHiI,eAvJe,cAwJfC,gBAAiB,aACjBrK,YAAa,wDACbE,WAAY,mCACZC,aAAc,KACd+H,KAAM,KAtJXoC,SAAW,SAwJNC,UAAU,EAtJdyQ,SACA3N,MAAU,WACN,MAAWtH,MA4JfmE,GAAcM,OAAOjB,KAAK,SAAUxD,GAtJhC25B,EAAKO,aAwJDP,EAAKO,WAAWD,MAAQj6B,IAC7B,eAIP+E,EAAGuL,OAvJK,SAAK0oB,GACLj0B,EAAA64B,YACA74B,EAAA64B,aAAgB,EA0JhB74B,EAAG64B,aAvJY,CAyJnB,KAAK,GAAI39B,KAAK+4B,GACet+B,QAArBs+B,EAAQ/4B,GAAGy9B,QAA4C,GAArB1E,EAAQ/4B,GAAGy9B,SAtJjD1E,EAAS/4B,GAAK4oB,QAAK9jB,EAAA64B,YACW,GAAtB5E,EAAO/4B,GAAA4oB,QACPmQ,EAAK/4B,GAAAtF,OAAO,EA0JZq+B,EAAQ/4B,GAAGtF,OAAS,IA+GpCoK,EAAGkkB,KAvJK,WAwJJnsB,EAAW+C,oBAAqB,CAtJhC,IAAIpF,IACAI,UAAWkK,EAAAlK,UAyJfkE,GAvJI8F,GAAA,aACApK,KAAAA,2NAlXZtB,QACKC,OAAO,yBACPe,WAAW,qBAAsBmgC,MA8gB1C,WACI,YAOA,SAASuD,GAvJ+BruB,EAAAsuB,EAAA9+B,EAAAF,EAAAhC,EAAA4vB,EAAAplB,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAuiB,EAwJpCpiB,GACA,GAAI6F,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAtJhBhT,EAAG+S,WAAS,EAwJZ/S,EAAGsS,WAvJQ,EAwJXva,EAvJW2c,SAAA,CAwJX,IACI5R,IADa3I,EAAsBgG,2BAEnC64B,EAvJOvuB,EAAAuuB,SAAc,GAAAD,MAyJzBC,GAvJSC,QAAIphC,MAwJT4E,KAvJI,eAwJJy8B,GAAI,SAvJIp2B,EAAwBq2B,GAwJ5B,MAvJIl5B,MAAIm5B,MAAQj+B,OAAG,MA4J3B69B,EAASK,kBAAoB,SAAUC,GAGnC,GAAIl7B,GAAW,GAAIH,SACnBG,GAASF,OAAO,aAAco7B,EAASC,OACvCn7B,EAASF,OAAO,QAASqE,EAAMyyB,OArJnCrN,EAAsB6R,uBAAAp7B,GAAAK,KAAA,SAAAC,GAClB,GAAAA,EAAAhJ,KAAA,CACG,GAAAm/B,GAAYn2B,EAAAhJ,KAAAgK,MAwJP6C,GAAM6zB,QAAQvB,SAASh9B,KAAKg9B,OArJhC98B,GAAc2I,YAAA,QAAAhC,EAAAhJ,KAAA,KA0Jf,SAvJCiL,GACA5I,EAAA2I,YAAqB,iCAyJzBoC,EAvJIjL,KAAAyhC,EAAYC,QA0JpBv5B,EAAGy5B,mBAvJa,WACZ,GAAAx+B,IACIwnB,MAAIziB,EAAIu4B,KAwJRrD,MAvJIv4B,KAAAqkB,UAAWze,EAAY6zB,SAEpB,IAuJP7zB,EAvJI/L,OAwJAsM,EAvJG3H,OAAA,EACHmhB,EAAWrN,MAAYhU,GAG5BZ,EAAU8C,OAAK,UAAA,iDACd9F,WAAW,EAwJH+F,KAAM,OAKdkf,EAAkBrN,MAAMhU,IAKhC+E,EAAG0R,OAvJK,WAwJJ4K,EAvJgBiB,QAAI,+MAkF5BnpB,QACKC,OAAO,yBACPe,WAAW,uCAAwC0jC,MAwE5D,WACI,YAOA,SAASY,GAAgBjvB,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAOizB,EAAqBlZ,GAErF,GAAItc,GAvJGC,IAyJPD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAvJa,EAwJhBvU,EAAGwU,qBAvJC,SAAAC,GACAzU,EAAGuU,YAAYE,GA0JnB1c,EAAW2c,SAAU,EACrByd,QAAQC,IAAI7vB,GACZvC,EAAG9E,EAvJC,EAwJJ8E,EAAGuC,MAvJMA,EAwJTvC,EAAG25B,WACH35B,EAAG45B,QAvJSxlC,QAAS8e,KAAKlT,EAAGuC,MAAAvC,EAAA9E,IAwJ7B8E,EAAG25B,QAAUvlC,QAvJO8e,KAAGlT,EAAAuC,OAwJnBvC,EAAG25B,QAAQ9E,WACX70B,EAAG65B,OAAQ,GAGf75B,EAAG0R,OAAS,WACR4K,EAAkBiB,QAvJE,iHA0H5BnpB,QACKC,OAAO,yBACPe,WAAW,kBAAmBskC,MAiCvC,WACI,YAOA,SAASI,GAvJkBrvB,EAAYxQ,EAAWF,EAAIhC,EAAcwK,EAAAizB,EAAAlZ,GAyJhE,GAAItc,GAAKC,IAETD,GAAGqU,kBAvJoBhJ,MAAA,IAAYA,MAAa,KAAKA,MAAS,KAAAA,MAAA,KAAAA,MAAA,MAwJ9DrL,EAAGsU,SAvJStU,EAAGqU,gBAAa,GAyJ5BrU,EAAGuU,YAvJc,EAwJjBvU,EAAGwU,qBAvJgB,SAAYC,GAwJ3BzU,EAAGuU,YAAcE,GAGrB1c,EAvJI2c,SAAe,EAwJnB1U,EAAG9E,EAAI,EACP8E,EAAGuC,MAAQA,EAtJXvC,EAAG25B,WAwJH35B,EAAG25B,QAvJCvlC,QAAW8e,KAAAlT,EAAAuC,MAAAvC,EAAqB9E,IAChC8E,EAAA25B,QAAW9E,WAwJX70B,EAAG65B,OAvJC,GAyJRpvB,EAvJIyK,OAAU,EAyJdzK,EAAO0K,SAAW,SAAUC,GACxB,MAAO3K,GAAOyK,SAAWE,GAG7B3K,EAAO4K,SAAW,SAAUxW,GACxB4L,EAAOyK,OAAUzK,EAAOyK,OAAS,IAAOzK,EAAOyK,OAASrW,EAAK1D,OAAS,GAG1EsP,EAAO6K,SAAW,SAAUzW,GACxB4L,EAAOyK,OAAUzK,EAAOyK,OAASrW,EAAK1D,OAAS,IAAOsP,EAAOyK,OAAS,GAG1EzK,EAxJC8K,UAAW,SAAAH,GAyJR3K,EAAOyK,OAASE,GArJpBpV,EAAA0R,OAAA,WACI4K,EAAKiB,QAAA,WAGTvd,EAAG+5B,QAAA,WACA/5B,EAAA25B,WACH35B,EAAA9E,GAAW,EACPqH,EAAApH,OAAa6E,EAAA9E,IACb8E,EAAO25B,QAAAvlC,QAAA8e,KAAAlT,EAAAuC,MAAAvC,EAAA9E,MA6JX8E,EAAGg6B,OAxJK,WAyJJh6B,EAAG25B,WACH35B,EAAG9E,GAxJC,EAyJJ8E,EAAG25B,QAAUvlC,QAAQ8e,KAAKlT,EAAGuC,MAAMvC,EAAG9E,2GA3D9C9G,QACKC,OAvJG,yBAwJHe,WAvJU,0BAA2B0kC,MAqN9C,WACI,YAOA,SAASG,GAxJaliC,EAAQoC,EAAcF,EAAAM,EAAAP,EAAAI,EAAAI,GA+KxC,QAAS0X,KACLlS,EAAGsS,WAAY,CACf,IAAIrX,IACAkX,UAAWnS,EAAGmS,UACdrc,UAxJCkK,EAAAlK,UACDsK,SAAAJ,EAAAE,WAAwBG,OA0J5BjG,GAAY44B,eAAe/3B,GAAKwD,KAAK,SAAUC,GACzB,KAAdA,EAAIlI,QACJwJ,EAAGizB,SAAWv0B,EAAIhJ,KAvJlBsK,EAAAkzB,aAAYlzB,EAAAizB,SAAA,GACpBE,EAA0B,WAyJdnzB,EAAGozB,iBAAiBv7B,KAAKmI,EAAGqzB,SAAS,MAnJzDrzB,EAAAsS,WAAA,GA0JgBva,EAAW2I,YAAY,QAAS,yBAA0B,QAvJrE,SAAOC,GACP5I,EAAW2I,YAAmB,QAAA,mBAAA,SAK/B,QAASyyB,GAAAhc,GA0JLnX,EAAGsS,WAAY,EAxJhBtS,EAAAqzB,YACArzB,EAAAszB,YA0JC,IAAIr4B,IAxJLkX,UAAcnS,EAAAmS,UACdrc,UAAAkK,EAAAlK,UACIijB,GAAA/Y,EAAAkzB,aAAcna,GA0Jb3Y,SAAUJ,EAAGE,WAAWG,OAvJhCjG,GAAW+4B,mBAAUl4B,GAAAwD,KAAA,SAAAC,GACT,KAAAA,EAAAlI,QACLwJ,EAAAqzB,SAAA30B,EAAAhJ,KACIsK,EAAAsS,WAAA,EACE6E,GACAA,KAENpf,EAAQ2I,YAAA,QAAA,yBAAA,QA2JR,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,SAK5D,QAAS6yB,GAAoBpc,GACzBnX,EAAGszB,aACHtzB,EAAGsS,WAAY,CAxJ1B,IAAY+f,KACT,IAAAryB,EAAAkzB,aAAAna,KA0JYsZ,EAAM73B,EAAO8xB,IAAItsB,EAAGozB,iBAAkB,SAAU5lB,GAC5C,MAAOA,GAAEnN,SAvJpB,IAAAmzB,GAAW,GAAA/Z,KA2JR+Z,GAAahY,QAAQgY,EAAaxX,UAAY,EAC9C,IAAI/gB,IAzJHw4B,QAAgC,IAAhCzzB,EAAAkzB,aAAwBna,GAAiBsZ,EAAAqB,OAAO1zB,EAAAozB,iBAAmB/yB,OAC1EvK,UAAAkK,EAAAlK,UACM69B,cAAK3zB,EAAApK,OA2JDmjB,GAAI/Y,EAAGkzB,aAAana,GAzJzB6a,SAAA35B,EAAqB,QAASu5B,EAAO,cACrCpzB,SAAcJ,EAAAE,WAAAG,SAEdgyB,EAAAl3B,OAAc,GAAA6E,EAAAozB,mBACdh5B,EAAA8/B,oBAAiCj/B,GAAKwD,KAAA,SAAAC,GA4J7B,GAAkB,KAAdA,EAAIlI,OAAe,CACnBwJ,EAAGszB,UAAY50B,EAAIhJ,IAzJxB,IAAA28B,KACJryB,GAAAszB,UAAA94B,EAAA83B,QAAAtyB,EAAAszB,UAAA,YACI94B,EAAA8xB,IAAAtsB,EAAAszB,UAAA,SAAAjoB,EAAA0b,GACEsL,EAAAx6B,MACQi8B,SAAQ/M,EACdgN,GAAA1oB,EAAA,GAAA0oB,GACAC,GAAA3oB,EAAA,GAAA2oB,GA2JSC,QAAS5oB,EAzJjB6oB,oBA8JA15B,EAAOqI,QAAQwvB,EAAK,SAAU7kB,GAC1B,GAAI2mB,GAAO35B,EAAO83B,QAAQ9kB,EAAEymB,QAAS,YAzJvCz5B,GAAA8xB,IAAU6H,EAAM,SAAA9oB,EAAA0b,GA4JV,GAAIqN,IACAC,SAAUtN,EAzJVuN,aA4JJ95B,GAAO8xB,IAAI9xB,EAAO83B,QAAQjnB,EAAO,oBAAqB,SAAUkpB,EAAQC,GACpEJ,EAAIE,UAAUz8B,MAzJb+5B,iBAAO4C,EAChBC,KAAAF,EAAA,GAAAhC,SA2JYmC,OAAQl6B,EAAOy2B,MAAMsD,EAAQ,gBAC7BN,QAASM,MAGjB/mB,EAAE0mB,aAAar8B,KAAKu8B,OAtJhCp0B,EAAAszB,UAAAl/B,QAAA8e,KAAAmf,GACEryB,EAAAsS,WAAe,EAClB6E,GA2JSA,QAEJpf,GAAW2I,YAAY,QAAS,yBAA0B,QAxJvE,SAASC,GACL5I,EAAU2I,YAAA,QAAA,mBAAA,SAgBjB,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAxJK,EAyJRvU,EAAGwU,qBAAuB,SAAUC,GAvJhCzU,EAAAuU,YAAUE,GAGd1c,EAAG2c,SAAA,EAyJH1U,EAAGE,WAxJW/F,EAAAgG,uBAyJdH,EAAGpK,OAxJKoE,EAAUvE,OAAAC,KAAAE,OAyJlBoK,EAAGlK,UAxJYkE,EAAKvE,OAAAC,KAAUI,UAyJ9BkK,EAAGmS,UAAYnY,EAAOvE,OAAOC,KAAKyc,UAClCnS,EAAGqzB,YACHrzB,EAAGozB,oBACHpzB,EAAGmzB,mBAxJSA,EAyJZnzB,EAAGuzB,oBAAsBA,EAEzBrhB,IA2HAlS,EAAG20B,gBAAkB,SAAUC,EAAMX,GACjCz5B,EAAOqI,QAAQoxB,EAAS,SAAUzmB,GAzJjC,IAAAA,EAAA8lB,YACT9lB,EAAAqnB,SAAAl4B,KAAAC,MAAA4Q,EAAA8lB,aAEA,IAAAl0B,GAAA7E,EAAA8E,MACYhI,WAAA,EACPiI,eAAW,cA4JJC,gBAAiB,aACjBrK,YAAa,+CA1JhBE,WAAe,0BAChBC,aAAK,KA4JD+H,KAAM,KA1JXoC,SAAA,SACAC,UAAc,EA4JTyQ,SA1JL3N,MAAc,WACd,MAAA0xB,MAKA70B,GAAaM,OAAAjB,KAAA,aACb,eAKHuB,EAAG+xB,KAAA,WACA,GAAAr8B,IA4JKI,UAAWkK,EAAGlK,UAElBkE,GAAO8F,GAAG,aA1JdpK,KAASA,4GA5BbtB,QACKC,OAxJG,yBAyJHe,WAxJG,iBAAsB6kC,MAoVlC,WACI,YAOA,SAASE,GAAepiC,EAAYyC,EAAQH,EAASN,EAAOqgC,EAAoBpoB,EAAgB7X,GA8H5F,QAAS+X,KACLkoB,EAAmBC,kBAAkBloB,GAAW1T,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,QA1JZwJ,EAAAs6B,eAA0B57B,EAAAhJ,KACvBsc,EAAYI,mBAAAD,GAAA1T,KAAA,SAAAC,GA4JgB,MAAfA,EAAIlI,QACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAzJzBva,EAAY2I,YAAA,QAAA,yBAAA,mBAEd,SAAcC,GA4JN5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAzJ5DV,EAAMsS,WAAA,GA6JFva,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QAAS65B,KACL,GAAIt/B,IA3JZkX,UAAAnS,EAAAw6B,KAAArnB,gBAAAhB,UACYsoB,cAAA/mB,EAAAgnB,QAAAvoB,UA8JJioB,GAAmBO,wBAAwB1/B,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,OA3JXwJ,EAAA46B,qBAA2Bl8B,EAAQhJ,KA8J5BqC,EAAW2I,YAAY,QAAS,yBAA0B,eAC/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QAASsT,KA3JNhU,EAAA+S,WAAc,EACd/S,EAAAgT,YAAA,EACChT,EAAG66B,MAAA,EA6JH76B,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAzJjB,QAAGC,KACA1X,EAAAgT,YAAiB,EACjBhT,EAAA+S,WAAO,EACVmB,IACIlU,EAAAw6B,QA+JJ,QAAS9oB,KA3JN,GAAAiB,GAAAtY,EAAiBsY,QAAA,eACjB,yFAGAtb,WAAA,EACA+F,KAAA,MAGAuV,GAAAjT,OAAAjB,KAAiB,WACjBuB,EAAAgT,YAAU,EA6JLhT,EAAG+S,WAAY,EACfmB,IA3JLlU,EAAAw6B,UAkKH,QAAStmB,KACLlU,EAAG86B,eAAe1mB,gBAGtB,QAAS2mB,KACL,GAAIC,GAAO,EACPC,EAAYj7B,EAAGw6B,KAAKrnB,gBAAgBhB,SACpB,IAAhBnS,EAAG+S,YACFioB,EAASh7B,EAAGw6B,KAAKU,cACtBd,EAAmBe,UAAUF,EAAWj7B,EAAGw6B,KAAKnS,KAAM2S,GAAQv8B,KAAK,SAAUC,GACrEA,EAAIhJ,QAAS,EACbsK,EAAGo7B,cAAgB18B,EAAIhJ,MAGvBqC,EAAW2I,YAAY,UAAU,4BAA6B,qBAC9DV,EAAGq2B,SAAU,EACbr2B,EAAGgT,YAAa,IAGrB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,iCAIxC,QAAS26B,GAAeb,GACpBx6B,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EACbzX,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGw6B,KAAOpmC,QAAQ8e,KAAKsnB,GAED,IAAlBA,EAAKc,WACLt7B,EAAG8f,YAAa,EAEpB,KAAK,GAAIjI,KAAK7X,GAAGqS,YACTrS,EAAGqS,YAAYwF,GAAG1F,YAAcqoB,EAAKroB,YA3JxCnS,EAAAw6B,KAAArnB,gBAAiBnT,EAAAqS,YAAoBwF,GA+J1C,KA5JI,GAAApR,KAASzG,GAAAs6B,eACTt6B,EAAAs6B,eAAqB7zB,GAAAy0B,eAAeV,EAAAc,WACpCt7B,EAAAw6B,KAAYza,eAAS/f,EAAAs6B,eAAe7zB,IAiK5C,QA5JQ80B,GAAgBf,GA8JpB,GA5JI7nB,GAAAtY,EAAYsY,QAAA,UAAA,4CAAAtb,WAAA,EAAA+F,KAAA,MA6JhBuV,GA5JIjT,OAAAjB,KAAc,WA8Jd27B,EAAmBmB,iBAAiBf,EAAKU,cAAcz8B,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,QA3JJuB,EAAA2I,YAAY,UAAA,iCAAA,cAChBwR,KAEGna,EAAA2I,YAAoB,QAAA,kCAAArJ,WAAA,EAAA+F,KAAA,QAG5B,SAAAuD,GA6JK5I,EAAW2I,YAAY,QAAS,+EAAiFrJ,WAAW,EAAM+F,KAAM,UAE7I,cAKP,QAASo+B,GAAehB,GACpBA,EAAKroB,UA5JOnS,EAAAw6B,KAAYrnB,gBAAYhB,UAEhB,OA4JhBnS,EAAGw6B,KA5JKza,gBAAgDpqB,SAA5BqK,EAAAw6B,KAAYza,eA8JxCya,EAAKc,SA5JO,EA8JZd,EAAKc,SA5JWt7B,EAAAw6B,KAAIza,eAAmBmb,aA8JtCl7B,EAAG+S,WAoBJynB,EAAK7mB,WAAaD,EAAYrT,OAC9B+5B,EA5JmBiB,eAAAb,GAAA/7B,KAAA,SAAAC,GACZA,EAAAhJ,KAAAke,aAAA,GACH7b,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAA,qBA6J5B3B,IA3JTlS,EAAUgT,YAAK,EACdhT,EAAW+S,WAAY,EA6Jf2E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,qBA3JzD7T,EAAAgT,YAAiB,IAGlB,SAAArS,GA6JI5I,EAAW2I,YAAY,mCAjC3B85B,EAAK1mB,UAAYJ,EAAYrT,OA3JjC+5B,EAAAqB,cAAAjB,GAAA/7B,KAAA,SAAAC,GA6JYA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,qBACpD3B,IACAlS,EAAGgT,YAAa,EA3JhB0E,MAEA3f,EAAW2I,YAAK,QAAAhC,EAAAhJ,KAAAme,QAAA,qBACjB7T,EAAAgT,YAAiB,IA+JrB,SA5JSrS,GA6JR5I,EA5JW2I,YAAY,kCAwLnC,QAASg7B,GAAuBlB,GAC5B,GAAIz5B,GAAM,yBAA4By5B,EAAK,SAAY,WAAa,UAAY,gBAC5E7hB,GAAS6hB,EAAK,SAAY,WAAa,UAAY,2BA3J3D7nB,EAAkBtY,EAAAsY,QAAA,UACX5R,GAAA1J,WAAY,EAAA+F,KAAA,MAEfuV,GAAGjT,OAAOjB,KAAA,WACP27B,EAAYsB,uBAAAlB,EAAAU,cAAAz8B,KAAA,SAAAC,GACF,MAAVA,EAAUlI,QA6JDuB,EAAW2I,YAAY,UAAWiY,EAAM,cACxCzG,KA1JTna,EAAa2I,YAAA,QAAA,2BAAArJ,WAAA,EAAA+F,KAAA,QAEhB,SAAAuD,GACG5I,EAAO2I,YAAA,QAAA,wEAAArJ,WAAA,EAAA+F,KAAA,UA8JP,cA7UP,GAAI4C,GAAKC,IAKTD,GAAGqU,kBA3JmBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA4JtBrL,EAAGsU,SA3JKtU,EAAAqU,gBAAuB,GA6J/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YA3JI,EA4JPhT,EAAG+S,WA3JI,EA4JP/S,EAAGsS,WA3JW,EA4JdtS,EAAGs6B,kBACHt6B,EAAGw6B,QACHziC,EA3JQ2c,SAAO,CA4Jf,IAAIhB,GA3JcvZ,EAAcgG,uBA4J5BgS,EAAYuB,EAAYiB,gBAAgBxC,SAG5CnS,GAAGu6B,eA3JYA,EA4Jfv6B,EAAGgU,OA3JSA,EA4JZhU,EAAG0R,OA3JSA,EA4JZ1R,EAAGkU,UAAYA,EACflU,EAAG+6B,oBA3JYA,EA4Jf/6B,EAAGq7B,eA3JSA,EA4JZr7B,EAAGu7B,iBAAmBA,EACtBv7B,EAAG07B,uBA3JmBA,EA4JtB17B,EAAGw7B,eA3JgBA,EA4JnBx7B,EAAGq2B,SAAU,EAGbr2B,EAAGwX,aAAY,EA1JfxX,EAAAyX,WAAS,EA8JTvF,IAuCApb,SAAS6kC,iBAAiB,mBA3Ja,WAoLnC,QAASC,KACuB,mBAAjBC,eAIXA,aA3JMC,IAAWC,SAAKjlC,SAAQC,KAAA,QAAA,SAAAyW,GA6J1B,GAAIvE,GAAUuE,EAAE/D,QAAU+D,EAAEC,UAzJhC,IAAW,UAAXxE,EAAW+yB,UAAA,QAAA/yB,EAAAxM,KAAA,CACX,GAAAA,GAAgBwM,EAAAgzB,aAAA,aAChBC,EAAiBjzB,EAAAgzB,aAAA,iBACjBE,EAAaznC,OAAAwnC,EACb/J,SAAYC,IAAA,WAAA31B,EAAA0/B,EAAAC,cAuHhB,GAIID,GAHAE,EAASR,aA3JWS,OAAIC,sBAAe,IAAA,IA4JvCC,EAAY1lC,SAAS2lC,eA3JG,YA4JxBC,EAAY5lC,SAAS2lC,eA3JS,YA8JlCN,GAAM,GAAIN,cAAaW,GACnB9mC,KAAM2mC,EACNM,WAAY,GA3JI,GAAE,GAAA,GAAA,GAAa,GAAK,GAAA,GAAA,GAAA,IA4JpCC,YAAY,EACZC,YAAY,EACZC,aAAc,EACdC,iBA3JW,IA8JfC,YAAY,WACR,GAAIC,GAAM,EAEVA,IAAO,cAAgBd,EAAIe,YAE3BR,EA3JIS,UAAWF,GA4JhB,KAmBHrB,wHA9HRxnC,QACKC,OAAO,0BACPe,WAAW,iBA3JO+kC,MAoiB3B,WACI,YAuhCA,SAASiD,GAAQ/xB,GACb,MAAOjX,SAAQipC,YA5JKhyB,IAAQ,KAAAA,GAAA,OAAAA,GAAAA,IAAAA,EA13BhCjX,QACKC,OA5JG,eA6JHiW,UA5JO,WAAO,WA6JX,OACIX,KAAM,SAAUC,EAAOX,EAASiC,GAC5BjC,EAAQ0B,KAAK,QAAS,WAClB,GAAI2yB,GAAQxmC,SAASymC,cAAc,IAAMryB,EAAMsyB,SAC/CC,OAAMH,EAAMzU,IAEZyU,EAAMhyB,cAKrBhB,UAAU,iBA5JS,WA6JhB,OACIE,SA5JQ,IA6JRb,KAAM,SA5JKC,EAAAX,EAAAiC,GA6JP,GA5JIwyB,GAAW9zB,EAAY+zB,MAAAzyB,EAAS0yB,eA6JpC30B,GAAQ0B,KAAK,SAAU+yB,OAIlCpzB,UAAU,YAAa,WACpB,OACIuzB,QAAS,UACTl0B,KAAM,SAAUC,EAAO2D,EAAIrC,EAAO4yB,GAE9BvwB,EAAG5C,KAAK,SAAU,WA3JrBf,EAAA4B,OAAe,WACfsyB,EAAeC,cAAKxwB,EAAgBzD,OA6JzBg0B,EAAQE,kBAM3B1zB,UAAU,aAAc,WA3JrB,OACIE,SAAK,IACLqzB,QAAA,WA6JAl0B,KA5JI,SAAQC,EAAKX,EAAciC,EAAM+yB,GA6JjCA,EA5JIC,SAAWrmC,KAAA,SAAYsmC,GACvB,GAAAxoC,QAAAwoC,EAAA,MAAA,EACA,IAAGC,GAAaD,EAAAliC,QAAA,UAAA,GAiKhB,OAhKAmiC,KAAAD,IACGF,EAAAF,cAAAK,GACHH,EAAWD,WA8JJI,QAMtB9zB,UAAU,YAAa,WACpB,OACIE,SA5JG,IACHqzB,QAAK,WACLl0B,KAAA,SAAAC,EAAmBX,EAAAiC,EAAe+yB,GAC9BA,EAAQC,SAAKrmC,KAAA,SAAoBsmC,GAC7B,GAAWxoC,QAAXwoC,EAAuB,MAAW,EAClC,IAAAC,GAAAD,EAAAliC,QAAA,UAAA,GAKA,OAJGmiC,KAAaD,IACbF,EAAAF,cAAYK,GACfH,EAAAD,WAEAI,QAoKf9zB,UAAU,aAAc,WACrB,OACIX,KAAM,SAAUC,EAAOX,EAASo1B,GAC5Bp1B,EAAQ4E,GAAG,gBAAiB,SAAUL,GAC9B8wB,OAAOr1B,EAAQa,OAASw0B,OAAOD,EAAWtyB,MA3J9B,IAAvByB,EAAA+wB,SAEa,GAAL/wB,EAAK+wB,UAEP/wB,EAAAnQ,iBA6JK4L,EAAQa,IAAIu0B,EAAWtyB,YAO1CzB,UAAU,YA5JK,WA6JZ,OACIuzB,QA5JG,UA6JHj0B,OACI40B,gBAAiB,cAErB70B,KAAM,SAAUC,EAAOX,EAASo1B,EAAYP;AAExCA,EAAQW,YAAYC,UAAY,SAAUC,GACtC,MAAOA,IAAc/0B,EAAM40B,iBAG/B50B,EAAMwB,OAAO,kBAAmB,WAC5B0yB,EAAQc,kBAMvBt0B,UAAU,cAAe,WACtB,OACIuzB,QAAS,WACTl0B,KAAM,SAAUC,EAAOX,EAASiC,EAAO2zB,GAC9BA,IAILA,EAAYX,SAASrmC,KAAK,SAAUiS,GAChC,GAAI1V,QAAQipC,YAAYvzB,GACpB,GAAIA,GAAM,EAEd,IAAIg1B,GAAQh1B,EAAI7N,QAAQ,YAAa,GAKrC,OAJI6N,KAAQg1B,IACRD,EAAYd,cAAce,GAC1BD,EAAYb,WAETc,IAGX71B,EAAQ0B,KAAK,WAAY,SAAUxO,GACT,KAAlBA,EAAMoiC,SACNpiC,EAAMkB,wBAMzBiN,UAAU,eAAgB,WAAY,OAAQ,SAAUy0B,EAAUC,GAC/D,OACIx0B,SAAU,IACVqzB,QAAS,UACTl0B,KAAM,SAAUC,EAAOc,EAAMQ,EAAO+zB,GAChC/zB,EAAMg0B,KAAK,SAAU,QACrB,IAAIC,GAAYv4B,SAASsE,EAAMk0B,YAAa,GAC5CH,GAAKf,SAASrmC,KAAK,SAAUwT,GASzB,MARA2zB,GAAKl9B,KAAK,+BAAiCuJ,EAAQ,MAC/CA,EAAMlQ,OAASgkC,IACfH,EAAKl9B,KAAK,cAAgBuJ,EAAQ,kBAClCA,EAAQA,EAAMvE,OAAO,EAAGq4B,GACxBF,EAAKlB,cAAc1yB,GACnB4zB,EAAKjB,UA3JpBgB,EAAAl9B,KAAA,kCAAAuJ,EAAA,OA8JkBA,SAMtBf,UAAU,cA5Jc,WA6JrB,OACIuzB,QA5JQ,UA6JRl0B,KAAM,SA5JEC,EAAAX,EAAAiC,EAAA+yB,GA6JJA,EA5JUC,SAAArmC,KAAA,SAAAsmC,GAgKN,GAAkBxoC,QAAdwoC,EAAyB,MAAO,EA3JzC,IAAAC,GAAkBD,EAAYliC,QAAA,UAAA,GAkKzB,OAjKLmiC,IAAAD,IACOF,EAAAF,cAAAK,GACJH,EAAUD,WA+JDI,QAMtB9zB,UA5JO,mBAAA,aAAgB,SAAWvS,GA6J/B,OACI8lC,QA5JO,UA6JPl0B,KAAM,SA5JQC,EAAOX,EAAAiC,EAAY+yB,GA6J7BA,EA5JQC,SAAQrmC,KAAA,SAAiBsmC,GA6J7B,GA5JIC,GAAQD,EAAAliC,QAAA,WAAA,GA6JF+qB,QAAOC,aAAc9qB,MAAM+qB,SAAyB/qB,MAAM+qB,SAApB/qB,MAAMgrB,MACtD,OAAIiX,IAAoBD,GACpBF,EAAUF,cAAcK,GACxBH,EAAUD,UACVjmC,EAAW2I,YAAY,OAAQ,kCAAmC,oBA3J7D09B,GAEPA,SAkKjB9zB,UAAU,iBAAA,aA5JS,SAAAvS,GA6JhB,OACI8lC,QAAS,UACTl0B,KAAM,SAAUC,EAAOX,EAASiC,EAAO+yB,GACnCA,EA5JIC,SAAOrmC,KAAA,SAAAsmC,GA6JP,GAAIC,GAAmBD,EAAWliC,QAAQ,cAAe,GAC/C+qB,QAAOC,aAAc9qB,MAAM+qB,SAAyB/qB,MAAM+qB,SAApB/qB,MAAMgrB,MACtD,OAAIiX,IAAoBD,GACpBF,EAAUF,cAAcK,GACxBH,EAAUD,UA3JnBjmC,EAAa2I,YAAY,OAAA,iCAAA,kBACzB09B,GAEMA,SAkKhB9zB,UAAU,mBAAA,SA5JmB,SAAAW,GA6J1B,OACI4yB,QAAS,UACTl0B,KAAM,SA5JSC,EAAAX,EAAAiC,EAAA+yB,GA6JX,GAAIoB,GAAa,SAAUlB,GACJxoC,SAAfwoC,IAA4BA,EAAa,GAC7C,IAAImB,GAAcnB,EAAWoB,OAAO,GAAGC,cACnCrB,EAAW7a,UAAU,EAvJ9B,OAwJSgc,KAAgBnB,IAChBF,EAAUF,cAAcuB,GACxBrB,EAAUD,WA1JnBsB,EAECrB,GAAQC,SAAGrmC,KAAAwnC,GA6JXA,EA5JQp0B,EAAOC,EAAQ4yB,SAASl0B,SAkK3CU,UAAU,YA5JS,WA6JhB,OACIuzB,QAAS,WACThyB,SAAU,0BACVjC,OACIkJ,IAAK,cA1JhBnJ,KAAU,SAAaC,EAAAX,EAAYgB,EAAAg1B,GAE5Bh2B,EAAS0B,KAAA,QAAA,SAAAglB,GAEL/lB,EAAA4B,OAAiB,WAEfyzB,EAAU1zB,OAAO3B,EAAAkJ,IAAS,gBAM5BlJ,EAAMwB,OAAO,iBAAA,SAAmBpB,GA8JxBA,KAAa,GAEbf,EAAQkG,SAASjG,SAAS,eAC1BD,EAAQoB,KAAK,SAASJ,KAAK,WAAW,KAxJzChB,EAAAkG,SAAAV,YAAA,eACHxF,EAAUoB,KAAO,SAASJ,KAAO,WAAA,UAoK9CK,UAAU,eAAgB,WAEvB,OACIuzB,QAAS,WACThyB,SAAU,0BACVjC,OACIrB,IA5JI,gBA6JJk3B,SAAU,KAEd91B,KA5JI,SAAQC,EAAKX,EAAYgB,GA8JzBL,EAAM81B,eA5JQ,EA8Jdz2B,EAAQ0B,KAAK,QAAS,SAAUglB,GAE5B/lB,EAAM4B,OAAO,WA1JlB5B,EAAerB,IAAC1F,QAAA,SAAoBiH,GAE7BA,EAAA61B,WAAA/1B,EAAA81B,oBAoKN91B,EAAMg2B,iBA5JY,WAAgB,SAAQC,GA8JtC,GA5JIC,GAAAD,EAAK1kC,OACL8a,EAAArM,EAAKrB,IAAApN,MA8JJ2kC,IAAK7pB,GAAM6pB,EAAI,GAAK7pB,EAAI,GAEzBhN,EAAQoB,KAAK,SAASJ,KAAK,WAAW,GACtCL,EAAM81B,eAAgB,IAxJ/Bz2B,EAAeoB,KAAA,SAAYJ,KAAA,WAAA,GAC3BL,EAAA81B,eAAA,SAqKVp1B,UAAU,aA5JS,WA8JhB,GAAIy1B,EACJ,QACIv1B,SAAU,IACVb,KAAM,SA5JSC,EAAAc,EAAAQ,GA6JX60B,EAAS,4DACT,IAAIC,EACJt1B,GAAKC,KAAK,WAAY,SAAUxO,GACT,GAAfA,EAAMgrB,QACV6Y,EAAOhZ,OAAOC,aAAa9qB,EAAMgrB,OA3JtC4Y,EAAAn3B,KAAA8B,EAAAZ,MAAmBk2B,IACnB7jC,EAAAkB,wBAmKVJ,OAAO,iBA5JY,WA6JhB,MAAO,UA5JSgjC,EAAAC,GA6JZ,GAAIzrB,GAAM7N,SA5JEq5B,EAAA,GA8JZ,IADAC,EAAMt5B,SA5JMs5B,EAAO,IA6JfC,MAAM1rB,IAAQ0rB,MAAMD,GACpB,MA5JID,EA+JR,KADAxrB,EAAM,GAAKA,EACJA,EAAItZ,OAAS+kC,GAChBzrB,EAAM,IAAMA,CA1JvB,OAAUA,MA+JVnK,UA5JO,aAAA,WAAgB,SAAO5P,GA6J3B,OACI8P,SA5JQ,IA6JRb,KAAM,SA5JMC,EAAMc,EAAOT,GA6JrB,GA5JIm2B,GAAIx5B,SAAAqD,EAAAo2B,aAAgC,GA6JnCD,KA5JGA,EAAU,IA6JlBjO,QA5JQC,IAAA,YAAUgO,GA6JlB11B,EAAK41B,WA5JGF,OAAWA,IA8JnBx2B,EAAMwB,OAAOnB,EAAKs2B,UAAW,SAAUl1B,GA3JnC3Q,EAAO,WA6JHgQ,EAAK41B,UAAU,WAAaF,OAAUA,KACvC,KACJ,QAzJd91B,UAAU,iBAAA,WACP,MAAO,UAAAV,EAAAX,EAAAiC,GACHs1B,OAAAv3B,GAASw3B,MAAA,SAAAtkC,GACTA,EAAMkB,sBA+JXiN,UAAU,YA5JO,UAAc,SAAW7P,GA6JzC,OACI+P,SA5JQ,KA6JRk2B,QAAS,WAEL,QAASC,GAAWC,GA3JhBA,GAAOnmC,EAAAomC,SAAA,EAAA,EAEX,IAAAtzB,GAAUzW,SAAS2lC,eAAKmE,EACxBrzB,IAAWA,EAAAuzB,iBA+JX,MAAO,UAAUl3B,EAAOX,EAASgB,GAC7BhB,EAAQ0B,KAAK,QAAS,SAAUxO,GAC5BwkC,EAAW12B,EAAK42B,kBAOnCv2B,UAAU,QAAS,WAChB,OACIE,SAAU,IACVqzB,QA5JI,UA6JJl0B,KAAM,SAAUC,EAAOc,EAAMT,EAAMg1B,GAC/Br1B,EA5JIwB,OAAMnB,EAAO82B,MAAA,WA6Jb9B,EAAKlB,cAAckB,EAAK+B,aAE5B,IAAIC,GAAe,SAAU51B,GACzB,GAAIS,GAAMlC,EAAM+zB,MAAM1zB,EAAK82B,QAAU,CACrC,QAAK3D,EAAQ/xB,IAAUA,EAAQS,MAC3BmzB,GAAKiC,aAAa,SAAS,IAG3BjC,EAAKiC,aAAa,SAAS,GA3J3B71B,GAgKR4zB,GAAKf,SAASrmC,KAAKopC,GACnBhC,EAAKkC,YA5JMtpC,KAAAopC,OAgKtB32B,UAAU,QAAS,WAChB,OACIE,SAAU,IACVqzB,QAAS,UACTl0B,KAAM,SAAUC,EAAOc,EAAMT,EAAMg1B,GAC/Br1B,EAAMwB,OAAOnB,EAAKm3B,MAAO,WACrBnC,EAAKlB,cAAckB,EAAK+B,aAE5B,IAAIK,GAAe,SAAUh2B,GA1JjC,GAASU,GAAAnC,EAAA+zB,MAAA1zB,EAAAm3B,QAAAE,EAAAA,CACT,QAAUlE,EAAA/xB,IAAAA,EAAAU,MACHkzB,GAAAiC,aAAA,SAAA,IA+JKjC,EAAKiC,aAAa,SAAS,GA3JvB71B,GAIZ4zB,GAAAf,SAAarmC,KAAAwpC,GA6JbpC,EAAKkC,YAAYtpC,KAAKwpC,OAG/B/2B,UAAU,oBA5JiB,WA6J1B,OACIuzB,QAAS,WACTl0B,KAAM,SAAUC,EAAOX,EAASiC,EAAO2zB,GAC9BA,IAILA,EAAYX,SAASrmC,KAAK,SAAUiS,GAChC,GAAI1V,QAAQipC,YAAYvzB,GA3JtB,GAAAA,GAAA,EAGF,IAAIg1B,GAAIh1B,EAAM7N,QAAI,aAAA,IA6JdslC,EAAgBzC,EAAM9jC,MAAM,KA3J5BwmC,EAAY1C,EAAS9jC,MAAI,IAmBrC,OA0Ia5G,SAAQipC,YAAYkE,EAAc,MA3JnCA,EAAa,GAAAA,EAAc,GAAAziC,MAAW,EAAAyiC,EAAA,GAAApmC,QACtC2jC,EAAMyC,EAAgB,GAAA,IAAAA,EAAA,GA6JlBA,EAAc,GAAGpmC,OAAS,IA3J3B2jC,EAAAyC,EAAA,KAiKFntC,QAAQipC,YAAYmE,EAAa,MAClCA,EAAa,GAAKA,EAAa,GAAG1iC,MAAM,EAAG,GAC3CggC,EAAQ0C,EAAa,GAAK,IAAMA,EAAa,IAG7C13B,IAAQg1B,IACRD,EAAYd,cAAce,GA3JnCD,EAAcb,WAEjBc,IAGA71B,EAAM0B,KAAU,WAAa,SAAOxO,GACvB,KAATA,EAASoiC,SACLpiC,EAAAkB,wBA8KfiN,UAAU,YAAa,OAAQ,YAAa,WAAY,SAAU00B,EAAMyC,EAAW/mC,GAChF,OA3JIkP,OACIke,EAAA,KA6JA4Z,EAAG,KA3JPC,MAAO,KA6JHC,MAAO,MA1JlB/1B,SAAU,kcAiKHg2B,YA5JS,EA6JTl4B,KA5JI,SAAYC,EAAAX,EAAciC,GAyC9B,QAAM42B,KACFC,GAAMl0B,GAAO,mBAAYm0B,IA8JjBp4B,EAAM+3B,OAAS/3B,EAAMg4B,QA3JzBK,EAAAp0B,GAAe,YAAUq0B,GAEzBD,EAAKp0B,GAAA,YAAkBs0B,GA6JvBF,EA5JIp0B,GAAK,WAAau0B,GA6JtBH,EA5JIp0B,GAAO,aAAAw0B,EA8JX,IA5JIC,GAAKp3B,EAAa,MAClBo3B,IA6JA14B,EAAM1N,IAAIomC,EAAa,WACnB5nC,EAAS4T,EAAQ,IAzJ7B,IAAKi0B,GAAYr3B,EAAK,KA6Jdq3B,IACA34B,EAAM1N,IAAIqmC,EAAY,WAClB7nC,EAAS8nC,EAAS,KAvJlC,QAAMl0B,KAEE1E,EAAK64B,UAAAC,IA6JLC,GAAO73B,OAAOlB,EAAM64B,WA3JpBG,GAAA93B,OAAAlB,EAAe64B,WAEf74B,EAAIi5B,QAAMz0B,MAAY00B,IACtBl5B,EAAKm5B,QAAQj4B,OAAUk4B,IA6JvBC,EA5JSC,IA6JTC,EA5JIC,IA8JJP,IACAE,IAGJ,QAASP,KA3JT1a,EAAK,EACL4Z,EAAK,EA6JDmB,IACAE,IA3JH11B,IAGL,QAAM20B,GAAiB7lC,GACfA,EAACkB,iBA8J0B1H,QAAvBwG,EAAMknC,gBACNlnC,EAAQA,EAAMknC,cA1JlB,IAAIC,GAAQC,EAAYpnC,EA6JxBmnC,GA5JQr8B,KAAAC,MAAMo8B,EAAAE,KA8JVrnC,EAAMsnC,UAAYtnC,EAAMunC,QA3JxBC,GAAAL,GAEAM,GAAAN,GA8JJj2B,IAGJ,QAASk2B,GA5JWpnC,GA6JhB,GAAkB,SAAdA,EAAM4B,MAAmB5B,EAAM0nC,OAAQ,CACvC,GAAIP,GAAQnnC,EAAM2nC,QAAU3nC,EAAM0nC,MAClC,OAA2B,IAAnB1nC,EAAM4nC,WAAmBT,EAAiB,IAARA,EA1J9C,GAAa,cAATnnC,EAAC4B,KACD,MAAA5B,GAAa6nC,aAAK7nC,EAAgB8nC,WAgL1C,QAAStC,GAAMxlC,GACXA,EAAMkB,gBAEN,IAAIimC,GAAQnnC,EAAM+nC,MAAQC,CAC1BA,IAAUb,EACVK,EAAML,EAAQL,GACd51B,IAGJ,QAASu0B,GAAMzlC,GACXA,EAAMkB,gBA1JX,IAAAimC,GAAAnnC,EAAAioC,MAAAC,CACIA,IAAAf,EACAM,EAAAN,EAAAH,GACA91B,IA+JH,QAASi3B,GAAS92B,GA3JtB5D,EAAU26B,UAAA,EACJ36B,EAAA4B,SACAi2B,EAAA+C,IAAA,YAAA7C,GACAF,EAAA+C,IAAA,UAAAF,GAGN,QAAMG,GAAUj3B,GA6JR5D,EAAM26B,UAAW,EA3JjB36B,EAAA4B,SACAi2B,EAAS+C,IAAA,YAAA5C,GACTH,EAAI+C,IAAA,UAAAC,GAGR,QAAIvC,GAAA/lC,GAEAA,EAAAkB,iBACAuM,EAAA26B,UAAS,EACTJ,EAAShoC,EAAA+nC,MAAApc,EA6JTuc,EAASloC,EAAMioC,MAAQ1C,EA3JvBD,EAAU5zB,GAAA,YAAa62B,GACvBjD,EAASkD,IAAA,UAAaC,GA+J1B,QA5JIF,GAAQvoC,GACRA,EAAAkB,iBA6JIuM,EAAM+3B,QA3JR7Z,EAAA+c,EAAW1oC,EAAA+nC,MAAAC,GACXtB,KAEFj5B,EAAMg4B,QACNF,EAAOoD,EAAA3oC,EAAAioC,MAAAC,GA6JHtB,KAEJ11B,IAGJ,QA5JIu3B,KA6JAh7B,EAAM26B,UAAW,EACjB36B,EAAM4B,SACNi2B,EAAU+C,IAAI,YAAaE,GA3J/BjD,EAAM+C,IAAY,UAAAI,GA+JlB,QA5JIzC,GAAAhmC,GACAyN,EAAAuL,UAAA,EA6JAvL,EAAM4B,SAGV,QA5JI42B,GAASjmC,GA6JTyN,EAAMuL,UAAW,EA3JjBvL,EAAI4B,SA+JR,QA5JI62B,GAAWlmC,GACX,GAAA4oC,GAAWC,EAAY7oC,EACvB6iC,GAAA5M,IAAQ,aAAG2S,GA6JXZ,EAASY,EAAMb,MAAQpc,EA3JvBuc,EAAIU,EAAAX,MAAc1C,EAClBD,EAAI5zB,GAAA,YAAao3B,GA6JjBxD,EA5JU5zB,GAAA,WAAIq3B,GA+JlB,QAASD,GAAU9oC,GA3JfA,EAAIkB,gBACJ,IAAI0nC,GAAAC,EAAY7oC,EA6JhB2rB,GA5JI+c,EAAME,EAAIb,MAAAC,GA6JdzC,EAAIoD,EA5JIC,EAASX,MAAAC,GA6JjBtB,IACAF,IACAx1B,IAGJ,QAAS63B,GAAS/oC,GA3JdslC,EAAM+C,IAAA,YAAYS,GAClBxD,EAAO+C,IAAO,WAAMU,GACpBlG,EAAI5M,IAAA,aA+JR,QA5JI4S,GAAc7oC,GAId,GAHSxG,QAATwG,EAASknC,gBACTlnC,EAASA,EAAAknC,eAETlnC,EAAAgpC,QA+JA,MAAOhpC,GAAMgpC,QAAQ,GAGzB,QA5JQxB,GAAAyB,GACJtd,EAAA+c,EAAA/c,EAAAsd,GACAvC,IA+JJ,QAASe,GAAMwB,GA3Jf1D,EAAAoD,EAASpD,EAAA0D,GACLrC,IA+JJ,QA5JQF,KA6JJ,GAAIwC,IA3JAC,KAAAxd,EAAQ,KA8JZ8a,IAAI2C,IAAIF,GA3JRpD,EAAIsD,IAAMF,GA+Jd,QA5JQtC,KA6JJ,GAAIyC,GAAU9D,EAAI93B,EAAM64B,SA3JxBgD,GAAAF,KA6JI3C,IAAK4C,EAAU,OA1JvBvD,EAASsD,KACD3C,IAAAlB,EAAM,OAgKd,QA5JQmD,GAAMx5B,GA8JV,GAAIq6B,GAAQC,GACZ,OAAO1+B,MAAK6E,IAAI,EAAG7E,KAAK8E,KAAK25B,EAAOr6B,IAGxC,QA5JIy5B,GAAMz5B,GACN,GAAAq6B,GAAME,GACN,OAAA3+B,MAAS6E,IAAM,EAAA7E,KAAA8E,KAAA25B,EAAAr6B,IA+JnB,QAASs6B,KACL,GAAID,GAAQG,IAAgB9D,GAAM3zB,OA3JtC,OAAMs3B,GA+JN,QA5JIE,KACA,GAAAE,GAAa78B,EAAA6B,SACbA,EAAUi7B,GA6JV,OAAOj7B,GAASg7B,EAGpB,QA5JIC,KA6JA,GAAIp/B,GAAIyI,GAAMtE,QA3Jd,OAAInE,GAAAiD,EAAQ64B,UA+JhB,QA5JIoD,KA6JA,GAAIl/B,GAAIi8B,GAAIoD,WAAW53B,QACnB63B,EAAI72B,GAAMhB,OA3JlB,OAASnH,MAAM8E,IAAApF,EAAOs/B,GA+JtB,QA5JQvD,KACJ,MAAAz7B,MAAU8E,IAAA62B,GAAAoD,WAAAl7B,SAAA63B,GAAA73B,UA+Jd,QAASo7B,KACL,GAAIC,GAAYpE,GAAM3zB,QA3J1Bg4B,EAAkBx8B,EAAGi5B,QAAAz0B,MACjBrC,EAAMo6B,EAAWC,EACjBC,EAAMV,IACNW,GAAUxe,EAAIue,CACd,OAAAp/B,MAAUC,MAAIo/B,EAAWv6B,GAG7B,QAASw6B,KACL,GAAAz7B,GAAM7B,EAAW6B,SACjBs7B,EAAMx8B,EAAAm5B,QAAAj4B,OACNs1B,EAAUx2B,EAAI64B,UACd12B,EAAUjB,EAAIs7B,EAAWhG,EA6JrBoG,EAAOZ,IACPU,GAAS5E,EAAI8E,CA3JrB,OAASv/B,MAAAC,MAAUo/B,EAAOv6B,GA+J1B,QA5JI+2B,KACA,GAAAmD,GAAAlE,GAAS3zB,QACT8xB,EAAS2F,GACT,OAAAI,GAAUA,EAAG/F,EA+JjB,QAAS8C,KA3JT,GAAAr8B,GAASsC,EAAU6B,SAAO83B,GAAA93B,SACtBo1B,EAAM6F,GACN,OAAIp/B,GAAMA,EAAAu5B,EA+Jd,QAASgD,KA3JL,GAAIuD,GAAa1E,GAAA3zB,QACbs4B,EAAWb,GA6Jf,OA5JIa,GAAAD,EA+JR,QAASrD,KACL,GAAIqD,GAAax9B,EAAQ6B,SAAW83B,GAAI93B,SA3J5C47B,EAAmBX,GACf,OAAMW,GAAWD,EA+JrB,QA5JIp5B,KA6JAzD,EAAMke,EAAIA,EACVle,EAAM83B,EAAIA,EA3Jd93B,EAASi5B,QAAAyC,KAAUY,IACft8B,EAAMm5B,QAAAH,IAAW2D,IACjB38B,EAAM4B,SAgKV,QA5JIg4B,KAgBA,MAfAmD,KA8JIjsC,EAASgX,OAAOi1B,GA3JfC,GAEAlsC,EAAIgX,OAAck1B,GAEvBA,EAAuBlsC,EAAA,WACvBmsC,GAAa,IACb,MA8JAF,EAAoBjsC,EAAS,WA3JjCmsC,EAAS,IACL,KAEI5/B,KAAO6E,IAAA+6B,EAAM,GArNrB,GAAI1C,GAAS,EA3JbE,EAAa,EACTvc,EAAA,EA6JA4Z,EA5JI,EAELiF,EAAA,KA6JCC,EAAoB,KACpBC,EAAQ,GA3JX5D,EAAA,EACFE,EAAU,EAETlB,EAAMh5B,EAAAoB,KAAA,eA6JFo7B,EAASx8B,EAAQoB,KAAK,mBACtBu4B,GAAM35B,EAAQoB,KAAK,kBA3JtBs4B,GAAY15B,EAACoB,KAAW,cAC1B03B,GAAAE,EAAA9yB,SACHC,GAAU6yB,EAAA+D,UA8JNp8B,GAAM26B,UAAW,EA3JjB36B,EAAAuL,UAAS,EA6JTvL,EA5JIi5B,SA6JAyC,KAAM,EA3JNl3B,MAAI,KAIRxE,EAAAm5B,SACIH,IAAA,EA6JA93B,OA5JI,IAgKRlB,EAAM64B,UAAY,EAElB/nC,EAAS,WA3JVonC,IACAxzB,MAyOC1E,EA5JIk9B,WAAY,SAAO3qC,GA6JnBA,EA5JIkB,iBA6JJuM,EA5JI26B,UAAY,EA6JhBJ,EAAShoC,EAAM+nC,MA3JfzC,EAAO5zB,GAAA,YAAA8zB,GA6JPF,EAAUkD,IAAI,UAAWL,IAG7B16B,EA5JIm9B,WAAU,SAAY5qC,GA6JtBA,EA5JIkB,iBA6JJuM,EAAM26B,UAAW,EACjBF,EAASloC,EAAMioC,MACf3C,EAAU5zB,GAAG,YAAa+zB,GAC1BH,EAAUkD,IAAI,UAAWF,SAyPxCxnC,OAAO,cAAA,UAAc,SAAUhD,GAC5B,MAAO,UA5JUqjC,EAAA0J,GA6Jb,GAAI7G,MA5JI7C,GAAU,MAAIA,EAgKtB,IAAI2J,GAAS,IAAMC,QAAQF,EAAS,GAAKA,EAAS,IAAItT,KAAK,IAC3D,OA5JIzsB,MAAAkgC,MAAS7J,EAAA2J,GAAqBA,MAgKzC38B,UAAU,sBA5JgB,WA6JvB,OACIE,SAAU,IACVb,KAAM,SA5JSC,EAAMw9B,EAAAl8B,EAAQ+zB,GA6JzBmI,EAAIv5B,GAAG,UAAW,SAAU1R,GACxB,GAAIkrC,GAASx8B,EAAE5K,MA3JnBoL,EAAeg8B,EAAAv9B,KA+JX,OA9JAuB,GAAIA,EAAOpP,QAAI,YAAA,IACforC,EAAAv9B,IAAAuB,GA6JmB,IAAflP,EAAMgrB,OAA8B,IAAfhrB,EAAMgrB,SAzJ3B,EAAA,GAAO,GAAI,GAAA,GAAA,GAAA,GAAA,KAAA/jB,QAAAjH,EAAAgrB,QAAA,IA+JJhrB,EAAMgrB,OAAS,IAAMhrB,EAAMgrB,OAAS,KAzJrChrB,EAAIgrB,OAAA,IAAAhrB,EAAAgrB,OAAA,OAGF,GAAA,IAAA,KAAA/jB,QAAAjH,EAAAgrB,QAAA,IAIRhrB,EAAAkB,kBACO,aAmK1BjI,WAAW,qBAAsB,SAAU,SAAUqV,GAClDA,EAAOoc,MA5JC,+CA8JXvc,UAAU,QA5JS,WA6JhB,QAASX,GA5JGC,EAAOc,EAAKQ,EAAO4yB,GA6J3BA,EAAQI,SAASrmC,KAAK,SAAUyvC,GAC5B,GAAIC,GAAM,4CAEV,IA5JID,EAAI7mB,MAAQ8mB,GACZ,MAAOD,EAGX,IAAAE,GAAgB1J,EAAA2J,WA+JhB,OAFA3J,GA5JQC,cAAQyJ,GA6JhB1J,EA5JIE,UA6JGwJ,IAIf,OACIh9B,SA5JQ,IA6JRqzB,QAAS,UACTl0B,KAAMA,KAIbvU,WAAW,qBAAsB,SAAU,SAAUqV,GAClDA,EAAOi9B,OAAS,4CAEnBp9B,UAAU,SA5JS,WA6JhB,QAASX,GA5JGC,EAAQc,EAAMQ,EAAA4yB,GA6JtBA,EA5JQI,SAAOrmC,KAAK,SAAOyvC,GA6JvB,GAAIC,GAAM,wCA1JV,IAAAD,EAAS7mB,MAAA8mB,GACL,MAAOD,EAGX,IAAAE,GAAS1J,EAAkB2J,WA+J3B,OAFA3J,GA5JQC,cAAYyJ,GA6JpB1J,EA5JQE,UACJwJ,IAgKZ,OACIh9B,SAAU,IACVqzB,QA5JI,UA6JJl0B,KAAMA,KAGbW,UAAU,SA5JS,WA6JhB,QAASX,GA5JGC,EAAIX,EAAOiC,GA6JnBtB,EAAM1N,IA5JE,cAAiB,SAAAC,EAAAwrC,GA6JrB/9B,EA5JIg+B,SAAYD,EAAMC,WA+J9B,OACIj+B,KAAMA,KAMbW,UAAU,cA5Ja,WAAQ,WAAe,SAAAu9B,EAAAntC,GA6J3C,OACImjC,SA5JQiK,MAAO,WAAQ38B,MAAA,WA6JvBxB,KAAM,SAAUC,EAAOX,EAASgB,EAAMg1B,GAoBlC,QAAS8I,GAAe18B,GASpB,MARgB,QAAZhT,GACAqC,EAASgX,OAAOrZ,GA1JpBA,EAAIqC,EAAA,WA6JA,GAAI4iC,GAAQlpC,QAAQ4zC,SAAS38B,IAAU48B,EAAa58B,EAAM68B,OAAS78B,CA3JnE88B,GAASC,OAAO9K,EAAArzB,EAAAo+B,YAAA,IAChBhwC,EAAI,MA6JLiwC,GACIj9B,EA5BX,GAAI88B,GAAYlJ,EAAK6I,MA3JrBzvC,EAAS,KACLiwC,EAAIr+B,EAAAs+B,SAAmBV,EAAAO,OAAA55B,MAEvBy5B,GADIh+B,EAAAu+B,cAAeX,EAAAO,OAAAK,WACZx+B,EAAAg+B,YAAeJ,EAAAO,OAAAH,WA8J1Bh+B,GAAKy+B,SAAS,aAAc,SAAU1+B,EAAU2+B,GA3JhD,GAAArL,GAAS2B,EAAY9zB,MAAA61B,UACbh3B,KAAa2+B,GAAQrL,IACrB6K,EAAAS,aAAeR,UACnB9K,EAAOlpC,QAAA4zC,SAAe1K,IAAA2K,EAAA3K,EAAA4K,OAAA5K,EA6JlB6K,EAAUC,OAAO9K,EAAOtzB,MAKhCi1B,EA5JI9zB,MAAM+yB,SAAQrmC,KAAOkwC,GA6JzB9I,EA5JI9zB,MAAMg2B,YAAQtpC,KAAMkwC,WAmL5C,WACI,YAIA3zC,SA5JQC,OAAO,qBA6JfD,QAAQC,OA5JI,kBA6JP4N,QAAQ,gBAAiB,SAAU,SAAUgJ,GAE1C,GAAI49B,GAAmB,wEAEvB,QACIjsC,MAAO,SAAU0gC,GAEb,GAAI7c,GAAQ6c,EAAM7c,MAAMooB,EA3JzB,KAAApoB,EACA,KAAA,IAAA1R,OACO,gHACauuB,EAAY,KA+J/B,QA3JIwL,SAAQroB,EAAM,GACdsoB,OAAO99B,EAAIwV,EAAA,IACXuoB,WAAU/9B,EAASwV,EAAM,IAAMA,EAAA,IA6J/BwoB,YAAah+B,EAAOwV,EAAM,UAMzCnW,UAAU,eAAgB,SAAU,YAAa,WAAY,eAE1D,SAAUW,EAAQw2B,EA5JW1C,EAASmK,GA6JlC,OACI1+B,SA5JQ,IA6JRqzB,QAAS,UACTl0B,KAAM,SAAUw/B,EAAelgC,EAASiC,EAAO+yB,GAxFhD,QAAAmL,KACGx/B,EAAArH,MAAApH,OAAA,CA8JM,KAAK,GADDgQ,GAAQk+B,EAAaN,OAAOI,GACvBjuC,EAAI,EAAGA,EAAIiQ,EAAMhQ,OAAQD,IAAK,CACnC,GAAIouC,KACJA,GAAMD,EAAaP,UAAY39B,EAAMjQ,GACrC0O,EAAMrH,MAAM1K,MA3JV4zB,MAAA4d,EAAYL,WAAYM,GACvCn+B,MAAAA,EAAAjQ,GACequC,SAAA,KASV,QAAIC,KACA,IAAAvL,EAAawJ,cAAYxJ,EAAOwJ,YAAAtsC,OAAA,MAAAyO,GAAA67B,OAAA,QAChC,IAAAgE,EACA7/B,EAAQ67B,OAAQxH,EAASwJ,YAAUtsC,OAAa,gBAChD,CA6JI,GAAImuC,KACJA,GAAMD,EAAaP,UAAY7K,EAAUwJ,YACzC79B,EAAM67B,OAAS4D,EAAaL,WAAWM,IAI/C,QAASI,KA3Jb,IAASC,EAAA,OAAe,CAChB,IAAAt+B,GAAY4yB,EAAMwJ,WAClB,OAAArzC,SAAgBsO,QAAA2I,IAAAA,EAAAlQ,OAAA,IAAA/G,QAAAsO,QAAA2I,IAAA,MAAAA,EA+JpB,QA5JQu+B,GAAQ9mC,GACZA,EAAAymC,QACA3/B,EAAUigC,cAEPjgC,EAAAigC,aA6JC/mC,EAAKymC,SAAWzmC,EAAKymC,SAEzBO,GAAc,GAzJrB,QAAOC,GAAAjnC,GACLA,EAAAymC,SAAYzmC,EAAUymC,QA6JjBO,GAAc,GAGlB,QAASA,GAAcL,GA3JlC,GAAAp+B,EACTo+B,IA6J4Bp+B,KACAjX,QAAQyO,QAAQ+G,EAAMrH,MAAO,SAAUO,GAC/BA,EAAKymC,SAASl+B,EAAMxT,KAAKiL,EAAKqI,UAzJrD/W,QAAiByO,QAAU+G,EAAUrH,MAAA,SAAQO,GA6J1B,GAAIA,EAAKymC,QAEL,MA7JLl+B,GAAAvI,EAAAqI,OA6JY,IAxJvB8yB,EAAcF,cAAM1yB,GA+JpB,QA5JI2+B,GAAAnK,GACAzrC,QAAAsO,QAAem9B,GAoKXzrC,QAAQyO,QAAQg9B,EAAQ,SAAU3kC,GAC9B9G,QAAQyO,QAAQ+G,EAAMrH,MAAO,SAAUO,GAC/B1O,QAAQ61C,OAAOnnC,EAAKqI,MAAOjQ,KAC3B4H,EAAKymC,SAAU,OAV3Bn1C,QAAQyO,QAAQ+G,EAAMrH,MAAO,SAAUO,GACnC,GAAI1O,QAAQ61C,OAAOnnC,EAAKqI,MAAO00B,GA1J3B,MADb/8B,GAAAymC,SAAA,GACa,IAiBhB,GAAIW,GA5JGh/B,EAAAiuB,QACHkQ,EAAMH,EAAAtsC,MAAAstC,GACNT,IAAOv+B,EAAAi/B,SA6JPR,GAAW,EAEX//B,EAAQu/B,EAAciB,OACtBC,EAAgBn/B,EAAMo/B,QAAUl2C,QAAQm2C,IAE5C3gC,GAAMrH,SA3JVqH,EAAA67B,OAAA,SACD77B,EAAQugC,SAAAV,EA6JH7/B,EAAMwP,UAAW,EA3JtBxP,EAAS4gC,MAAAd,EAGJP,EAAMjtC,IAAA,WAAA,WA6JF0N,EAAM6gC,YAGV,IAAIC,GAAUt2C,QAAQ6U,QAAQ,4CAzJ1BiC,EAAAy+B,UAAcz+B,EAAAy/B,cACdhB,GAAA,GA8JJz+B,EAAMw9B,SAAS,WAAY,SAAU7I,GACjC8J,EAAW9J,IAxJvBj2B,EAASwB,OAAA,WACH,MAAAH,GAAAC,EAAAkO,UAAA+vB,IA6JK,SAAUtJ,GACTj2B,EAAMwP,SAAWymB,IAIrBj2B,EAAMwB,OAAO,WA3JlB,MAAUH,GAAYC,EAAAi/B,UAAAhB,IACf,SAAOtJ,GACT4J,EAAc5J,IAAU,IAIxBj2B,EAAAwB,OAAO,WA6JH,MAAOi+B,GAAaN,OAAOI,IAC5B,SAAUtJ,GA3JbzrC,QAAAw2C,UAAmB/K,IACfuJ,MAgKJx/B,EAAMwB,OAAO,WACT,MAAO6yB,GAAUwJ,aA3J1B,SAAA5H,EAAAgL,GAgKaz2C,QAAQw2C,UAAU/K,KAClBmK,EAAYnK,GA3Jfj2B,EAAA+zB,MAAY0M,IAEfb,IACAvL,EAAWiD,aAAK,WAAAt3B,EAAA4gC,WA6Jf,GA5IHpB,IA8JAngC,EAAQ/K,OAAO6gC,EAAS2L,GAAS9gC,IArFrCA,EAASkhC,SAAA,WACHrB,IA6JEr1C,QAAQyO,QAAQ+G,EAAMrH,MAAO,SAAUO,GA3JvCA,EAAMymC,SAAM,IAEZO,GAAa,KA+JjBlgC,EA5JIigC,WAAQ,WACRz1C,QAAAyO,QAAgB+G,EAAMrH,MAAA,SAAUO,GA6J5BA,EAAKymC,SAAU,IA1JvBO,GAAe,IAGflgC,EAAM2B,OAAQ,SAAAzI,GAIV2mC,KAAM,GA6JFG,EAAa9mC,GACb8G,EAAMmhC,gBAENhB,EAAejnC,SAOtCwH,UAAU,oBAAqB,YAAa,SAAUm3B,GACnD,OACIj3B,SAAU,IACVZ,OAAO,EACP3N,SAAS,EACT/G,YA5JW,6CA6JXyU,KAAM,SA5JMC,EAAMX,EAAWiC,GA2KzB,QAAS8/B,GA5JG7uC,GA6JJ8uC,EAAyB9uC,EAAMsN,OAAQR,EAAQoB,KAAKlO,EAAMsN,OAAOyhC,YAErEjiC,EAAQwF,YAAY,QA3JpBgzB,EAAM0J,OAAO,QAAYH,GA6JzBphC,EA5JIwhC,WA0IRxhC,EAAMyhC,WAAY,EAElBzhC,EA5JImhC,aAAa,WACT9hC,EAAOqiC,SAAO,SACfriC,EAAAwF,YAAkB,QACjBgzB,EAAA0J,OAAa,QAAUH,KA8JvB/hC,EAAQC,SAAS,QACjBU,EAAM0B,QA3JVm2B,EAAa92B,KAAA,QAAYqgC,KAwK7BphC,EAAM0B,MAAQ,WACV,GAAIigC,GAAYtiC,EAAQoB,KAAK,SAAS,EACtCkhC,GA5JQjgC,QA+JZ,IAAI2/B,GAA2B,SAAUhiC,EAASuiC,GAC9C,IA5JI,GAAAtwC,GAAA,EAAAA,EAAAswC,EAAArwC,OAAAD,IACA,GAAA+N,GAAUuiC,EAAatwC,GACxB,OAAA,CA6JH,QAAO,WAM/B,WACI,YAOA,SAASuwC,GAAgB1zC,EAAYyC,EAAQH,EAASN,EAAO2xC,EAAoBtR,EAAoBjgC,EAAuB6X,GAgDxH,QAASE,KAELw5B,EAAmBC,kBAAkBzrC,EAAWyU,gBAAgBxC,WAAW1T,KAAK,SAAUC,GACnE,MAAfA,EAAIlI,QACJwJ,EAAG4rC,gBA5JeltC,EAAAhJ,KA8JlBsc,EAAeI,mBAAmBlS,EAAWyU,gBAAgBxC,WAAW1T,KAAK,SAAUC,GA3J1E,MAATA,EAAAlI,QACIwJ,EAAAqS,YAAa3T,EAAQhJ,KA6JrBsK,EAAGsS,WA5JS,GA8JZva,EAAW2I,YA5JM,QAAU,yBAAA,mBA8JhC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAExDV,EAAGsS,WA5JS,GA8JZva,EAAW2I,YA5JS,QAAY,yBAAuB,gBA8J5D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAI5D,QAASmrC,GAA6B15B,EAAW5T,GAC1C4T,IACCnS,EAAGs6B,kBACHt6B,EAAG8rC,MAAMC,mBA5JmB,KA6J5B3R,EA5JgB4R,yBAAe75B,GAAA1T,KAAA,SAAAC,GA6JR,MAAfA,EAAIlI,SACJwJ,EAAGs6B,eA5Je57B,EAAAhJ,KA6JdsK,EAAGs6B,eAAen/B,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,+BAAiC6C,EAAG8rC,MAAM34B,gBAAgB84B,aA3JlF50C,WAAa,EACf+F,KAAQ,OA+JZ4C,EAAGsS,WA5JC,EAGJ/T,GA6JIA,QAOpB,QAAS2tC,GA5Je5Q,EAAe/8B,GA6JhCyB,EAAG8rC,MAAMC,oBACRL,EAAmBS,cAAcnsC,EAAG8rC,MAAMC,mBAAmB7Q,cAAcz8B,KAAK,SAAUC,GACnE,MAAfA,EAAIlI,SACJwJ,EAAGosC,sBAAwB1tC,EAAIhJ,KAC3BsK,EAAGosC,sBAAsBjxC,OAAS,GAClCd,EAAQ8C,OAAO,UAAW,+BAAiC6C,EAAG8rC,MAAMC,mBAAmBM,YA3JhGh1C,WAAqB,EACrB+F,KAAA,OAGH4C,EAASsS,WAAA,EAEH/T,GA6JMA,OAqBpB,QAASyV,KACLhU,EAAG66B,MA5JK,EA6JR76B,EAAGgT,YA5Ja,EA6JhBhT,EAAG8rC,SAKP,QAASp0B,KACL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WA5JS,EA6JZmB,IACAlU,EAAG8rC,SAGP,QAASp6B,KA3JhB,GAAYiB,GAAAtY,EAAAsY,QAAA,eACT,yFAEAtb,WAAA,EACY+F,KAAA,MAgKJuV,GAAQjT,OAAOjB,KAAK,WA5JnBuB,EAAAgT,YAAgB,EACjBhT,EAAK+S,WAAA,EA8JDmB,IACAlU,EAAG8rC,WAOX,QA7JI53B,KACDlU,EAAAssC,UAAAl4B,gBAgKH,QA7JIm4B,GAAST,GAET9rC,EAAAwX,aAAS,EA8JTxX,EAAGyX,WAAU,EA5JdzX,EAAA66B,MAAW,EA8JV76B,EAAG+S,WAAY,EA5JhB/S,EAAAgT,YAAc,EACdhT,EAAA8rC,MAAA13C,QAAA8e,KAAuB44B,GACL,IAAdA,EAAAU,WA8JCxsC,EAAGysC,cAAe,EA3JvB,KAAA,GAAA50B,KAAa7X,GAAAqS,YACbrS,EAAYqS,YAAAwF,GAAA1F,YAAA25B,EAAA35B,YACZnS,EAAY8rC,MAAA34B,gBAAAnT,EAAAqS,YAAAwF,GAGXg0B,GAAaC,EAAsB35B,UAAA,WACvC,IAAW,GAAA1L,KAAUzG,GAAAs6B,eA8JLt6B,EAAGs6B,eAAe7zB,GAAGy0B,eAAiB4Q,EAAM5Q,eA5JzDl7B,EAAA8rC,MAAAC,mBAA6B/rC,EAAAs6B,eAAA7zB,GAI7B,KAAA,GAAYA,KAAAzG,GAAA4rC,gBACZ5rC,EAAA4rC,gBAAkBnlC,GAAAimC,gBAAAZ,EAAAU,WAClBxsC,EAAA8rC,MAAoBa,iBAAA3sC,EAAA4rC,gBAAAnlC,MAoKvB,QAASmmC,GAAkBd,GACvB,GAAIn5B,GAAUtY,EAAQsY,QAAQ,UA5JlC,4CA8JYtb,WAAW,EA5JnB+F,KAAA,MAgKAuV,GAAQjT,OAAOjB,KAAK,WAChBitC,EA7JmBkB,kBAAAd,EAAmBY,eAAWjuC,KAAA,SAAgBC,GACjD,MAARA,EAAIlI,QA8JJuB,EA7JO2I,YAAc,UAAI,uBAAA,eA8JzBwR,KAEAna,EA7JI2I,YAAW,QAAY,4BA8JvBrJ,WAAW,EA5JhB+F,KAAU,QAgKd,SA7JIuD,GA8JH5I,EA7JG2I,YAAA,QAAA,oEACHrJ,WAAW,EA8JP+F,KAAM,UAGf,cAKP,QA7JQyvC,GAAGf,GAgKP,GAAI5rC,GA7JY/F,EAAgBgG,sBA8JhCH,GAAG6rC,6BA7J6B,SAAI14B,GA8JhCA,EA7JehB,UAAAnS,EAAemT,gBAAYhB,WA+J9C25B,EAAM35B,UAAYnS,EA7JE8rC,MAAA34B,gBAAWhB,UA8J/B25B,EAAM5Q,aA7Jcl7B,EAAA8rC,MAAMC,mBAAA7Q,aA+J1B4Q,EAAMU,SAAYxsC,EAAG8rC,MAAM,iBAAoB9rC,EAAG8rC,MAAMa,iBAAiBD,cAAgBZ,EAAMU,SAAW,EAErGxsC,EAAG+S,WAoBJ+4B,EAAMn4B,WAAazT,EAAWG,OAC9BqrC,EA7JWoB,gBAAYhB,GAAArtC,KAAA,SAAAC,GA8JfA,EAAIhJ,KAAKke,aAAc,GA5JvB7b,EAAI2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,sBA8JJ3B,IACAlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf2E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,sBAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,mCAhC3BorC,EAAMh4B,UAAY5T,EAAWG,OAC7BqrC,EA7JYqB,eAAAjB,GAAArtC,KAAA,SAAAC,GA8JJA,EA7JIhJ,KAAAke,aAAA,GA8JJ7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,sBACpD3B,IACAlS,EAAGgT,YAAa,EAChB0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,sBA5JzD7T,EAAAgT,YAAA,IAgKE,SA7JSrS,GA8JR5I,EA7JO2I,YAAA,kCAwLnB,QAASssC,GAAwBlB,GAC7B,GAAI/qC,GAAM,yBAA4B+qC,EAAM,SAAY,WAAa,UAAY,gBAC7EnzB,GAASmzB,EAAM,SAAY,WAAa,UAAY,4BACpDn5B,EAAUtY,EAAQsY,QAAQ,UA5JlC5R,GACO1J,WAAO,EACP+F,KAAA,MAgKHuV,GAAQjT,OAAOjB,KAAK,WAChBitC,EAAmBsB,wBAAwBlB,EAAMY,eAAejuC,KAAK,SAAUC,GACxD,MAAfA,EAAIlI,QA5JXuB,EAAQ2I,YAAA,UAAAiY,EAAA,eACVzG,KAEHna,EAAA2I,YAAA,QAAA,4BACWrJ,WAAA,EA8JK+F,KAAM,QA1JlB,SAAUuD,GACV5I,EAAA2I,YAAA,QAAA,oEA8JQrJ,WAAW,EA5JnB+F,KAAA,UAgKD,cAtTP,GAAI4C,GAAKC,IAMTD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBA5Je,GA8JhCrU,EAAGuU,YA5Jc,EA6JjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YA5JSE,GA+JhBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAG4rC,mBACH5rC,EAAG8rC,QACH,IAAI5rC,GAAa/F,EAAsBgG,sBACvCpI,GAAW2c,SAAU,EAErB1U,EAAGksC,2BA5JsBA,EA6JzBlsC,EAAG6rC,6BA5J+BA,EA6JlC7rC,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGusC,gBA5JiBA,EA6JpBvsC,EAAG4sC,kBA5JiBA,EA6JpB5sC,EAAG6sC,gBAAkBA,EACrB7sC,EAAGgtC,wBA5JqBA,EA6JxBhtC,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAEbvF,2IAlDJ9d,QACKC,OAAO,2BACPe,WAAW,kBAAmBq2C,MAiUvC,WACI,YAMA,SA7JQwB,GAAalzC,EAAAhC,EAAAyC,EAAAH,EAAAJ,EAAAizC,EAAA9S,EAAAsR,EAAAvxC,EAAAsQ,EAAA/P,GA+MjB,QAASyyC,KACLntC,EAAGotC,iBAAkB,EAezB,QAAS5uB,GAAariB,GA3JlB,GAAG6T,GAAA,GAAAS,WA8JH,IA7JIzQ,EAAAotC,gBAiKG,CA5JPptC,EAAMqtC,cAAelxC,EAAMsN,OAAAiE,MAAA,GA8JvBsC,EAAOU,OAASjG,EAAOiU,cA5JvB1O,EAAIa,cAAW7Q,EAAAqtC,cACf,IAAAjvC,GAAM,GAAYH,SAClBG,GAAAF,OAAA,aAAmB8B,EAAAqtC,eA8JnBjvC,EA7JQF,OAAI,aAAK8B,EAAcstC,OA8J/BJ,EA7JQK,iBAAuBnvC,GAAWK,KAAI,SAAKC,GAC3C,MAAAA,EAAAlI,QACAuB,EAAG2I,YAAa,UAAA,uCAAA,WAChBwR,KAEAna,EAAW2I,YAAY,QAAS,yBAAkB,UA+JvD,SAASC,GACR5I,EAAW2I,YAAY,QAAS,yBAA0B,eAlB9DV,GAAGqtC,cAAgBlxC,EAAMsN,OAAOiE,MAAM,GA5J1CsC,EAAMU,OAAYjG,EAASiU,cAC3B1O,EAAMa,cAAkB7Q,EAAAqtC,eAkL5B,QAASG,GAAmBrxC,GAEpBA,IA5JA6D,EAAAytC,kBAAmBtxC,EAAAsN,OAAWiE,OAsKtC,QAASwE,OAEG9R,SAAUrI,EAAW21C,cAK7BR,GAAgBS,gBAAgBx7B,GAAW1T,KAAK,SAASC,GAClC,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KAEtB0kC,EAAmB4R,yBAAyB75B,GAAW1T,KAAK,SAASC,GA5JhD,MAAxBA,EAAAlI,SACKwJ,EAAAs6B,eAAA57B,EAA4BhJ,KACzBsK,EAAMsS,WAAY,KAGvBtS,EAAAsS,WAAW,GA+JXva,EAAW2I,YAAY,QAAS,yBAA0B,aA3JlE,SAAQC,GACJ5I,EAAA2I,YAAmB,QAAA,mBAA8B,cAiKzD,QAASmtC,GA7JUtvC,GA8Jf,GAAIuvC,GA7JQ9tC,EAAA+tC,IAAAC,oBAAuBxB,QA+J/BsB,GACAZ,EAAgBe,uBAAuBH,GAASrvC,KAAK,SAASC,GACvC,MAAfA,EAAIlI,QA5JTwJ,EAAAkuC,gBAAexvC,EAAAhJ,KACdsK,EAAAmuC,sBAAuB,EACnB5vC,GACAA,KA+JAxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAGxDV,EAAGmuC,sBAAuB,EAiIlC,QAASC,GA9J0BlT,EAAA38B,GA+J/ByB,EAAG4rC,mBAEHF,EA9JW2C,gBAAYnT,GAAAz8B,KAAA,SAAAC,GACZ,MA8JHA,EA9JGlI,SACHwJ,EAAA4rC,gBAAWltC,EAAYhJ,KA+JvBsK,EAAGsS,WAAY,EA5JnB/T,GA+JQA,OA3JhByB,EAAA+tC,IAASC,oBAAmB,KAiK5B,QA9JQM,GAAShB,GA+JbJ,EA9JIqB,qBAAgBjB,GAAuB7uC,KAAA,SAAcC,GACzC,MAARA,EAAIlI,OA+JJwJ,EAAGwuC,qBA9JsB9vC,EAAIhJ,KAgK7BsK,EAAGwuC,yBAER,SAAS7tC,GACRX,EAAGwuC,0BAIX,QAASC,GAA2BnB,GAChCJ,EA9JOwB,iBAAApB,GAAA7uC,KAAA,SAAAC,GACA,MAAAA,EAAAlI,OA+JCwJ,EAAG2uC,uBAAyBjwC,EAAIhJ,KAEhCsK,EAAG2uC,2BA5JZ,SAAAhuC,GACKX,EAAA2uC,4BAkKR,QA9JQ36B,KA+JJhU,EAAGgT,YA9JC,EA+JJhT,EAAGwX,aA9Jc,EA+JjBxX,EAAGyX,WA9JY,EAiKnB,QAASC,KA7JL1X,EAAAgT,YAAgB,EA+JhBhT,EAAGkU,YACHlU,EAAG+tC,OACH/tC,EAAG4uC,QACH5uC,EAAG6uC,QACH7uC,EAAG8uC,QA9JQC,eA+JX/uC,EAAGgvC,QA9JKD,eA+JR/uC,EAAGqtC,cAAgB,KACnBrtC,EA9JGivC,cAAc,KA+JjBjvC,EAAGkvC,sBA9JY,EA+JflvC,EAAG+tC,IAAIhC,mBAAqB,KAC5B/rC,EAAG+tC,IAAIC,oBAAsB,KAC7BhuC,EAAG+tC,IAAIoB,oBAAsB,KA7J9BnvC,EAAA+S,WAAA,EACC/S,EAAAmuC,sBAAsB,EAEtBj8B,IAiKJ,QAASR,KACL,GAAIiB,GA9JQtY,EAAAsY,QAAA,eA+JR,wFA3JGtb,WAAS,EACR+F,KAAA,MAiKRuV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EA7JrBhT,EAAAkU,YACKlU,EAAA+tC,OACA/tC,EAAG4uC,QACH5uC,EAAA6uC,QA+JA7uC,EAAG8uC,QA9JQC,eA+JX/uC,EAAGgvC,QA9JKD,eA+JR/uC,EAAGqtC,cAAgB,KACnBrtC,EAAGivC,cAAgB,KACnBjvC,EAAGkvC,sBAAuB,EAC1BlvC,EAAG+tC,IAAIhC,mBAAqB,KA7J5B/rC,EAAC+tC,IAAMC,oBAAA,KA+JPhuC,EAAG+tC,IAAIoB,oBAAsB,KA7J7BnvC,EAAA+S,WAAU,EA+JV/S,EAAGmuC,sBA9JY,EAgKfj8B,MAyOR,QAASkH,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KA7JjB9iB,EAAAb,EAAiBa,IAChB,OAAc,QAAVA,IAA0B,IAAR8iB,EAAQC,UAAA,IAAAD,EAAAC,UAoOlC,QA9JQC,GAAW7jB,GACf,GAAI2jB,GAAA3jB,EAAW2jB,KACX9iB,EAAAb,EAAWa,IACf,IAAI,QAAAA,EAGA,IAAA,GAFAijB,GAAW,GAAAC,MAAeJ,GAAAK,SAAO,EAAW,EAAA,EAAA,GAE5Cxe,EAAW,EAAAA,EAAA8E,EAAA2Z,OAAiBxe,OAAOD,IAAA,CACnC,GAAA0e,GAAW,GAAAH,MAAkBzZ,EAAA2Z,OAAOze,GAAAme,MAAWK,SAAA,EAAA,EAAA,EAAA,EAE/C,IAAAF,IAAeI,EACV,MAAO5Z,GAAA2Z,OAAaze,GAAA1E,OAkK7B,MAAO,GA/qBX,GAAIwJ,GAAKC,IAKTD,GAAGqU,kBA7JchJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA8JjBrL,EAAGsU,SA7JWtU,EAAAqU,gBAAA,GA+JdrU,EAAGuU,YA7JI,EA8JPvU,EAAGwU,qBA7JoB,SAAKC,GACpBzU,EAAAuU,YAAME,GAgKdzU,EAAGgT,YA7JU,EA8JbhT,EAAG+S,WA7JY,EA8Jf/S,EAAGsS,WA7JY,EA+JftS,EAAGmuC,sBAAuB,EAC1BnuC,EAAG4tC,gBACH5tC,EAAG2uC,0BACH3uC,EAAGwuC,wBACHxuC,EAAGmhB,QAAU,gCAEbppB,EAAW2c,SAAU,CACrB,IAAIvC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGkvC,sBA7JsB,EA8JzBlvC,EAAG+tC,OACH/tC,EAAG8uC,QAAWC,eACd/uC,EAAGgvC,QAAWD,eACd/uC,EAAGovC,UAAW,EACdpvC,EAAGqvC,WAAa,GAChBrvC,EAAGotC,iBAAkB,EA1JrBptC,EAAAouC,6BAAkCA,EA+JlCpuC,EAAG6tC,mBA7JKA,EA8JR7tC,EAAGmtC,WA7JSA,EA8JZntC,EAAGgU,OA7JSA,EA8JZhU,EAAG0R,OAASA,EAGZjH,EAAO+T,aA7JCA,EA8JR/T,EAAO+iC,mBA7JaA,EA8JpBxtC,EAAGwX,aA7Ja,EA8JhBxX,EAAGyX,WAAY,EACfvF,IAOAzH,EAAOkc,SA7JK,SAAWxqB,EAAAyqB,GA+JnB,GAAIC,GA7JQ,GAAAC,QAAM,gBA8JdC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EAAMje,KAAKme,GAGZ,MA/JD5qB,GAAAkB,iBA8JCtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,GAsCf+J,EAAOiU,cA7JS,SAAWlR,GA8JvB/C,EAAOe,OA7JK,WA8JRxL,EAAGivC,cA7JQzhC,EAAA/D,OAAa/J,UAiNhCM,EAAGsvC,sBAAwB,WA7J/B,GAAAr0C,IACYkX,UAAAA,EACPqlB,WAAWx3B,EAAAstC,MA+JJiC,aAAcvvC,EAAG6uC,KAAKU,aA7JzBC,WAAaxvC,EAAA6uC,KAAOW,WACrBC,YAAKzvC,EAAA6uC,KAAAY,YA+JDC,SAAU1vC,EAAG6uC,KAAKa,SAClBC,OAAQ3vC,EAAG6uC,KAAKc,OAChBC,kBAAmB5vC,EAAG6uC,KAAKe,kBAC3BC,QAAS7vC,EAAG6uC,KAAKgB,QA5JtB3C,GAAc4C,oBAAgB70C,GAAAwD,KAAA,SAAAC,GA+JN,MAAfA,EAAIlI,QA7JbuB,EAAc2I,YAAA,UAAA,uCAAA,WACd+tC,EAAgCzuC,EAAKstC,OAC7BttC,EAAA6uC,SAgKC92C,EAAW2I,YAAY,QAAS,8BAA+B,UA5JxE,SAAYC,GACZ5I,EAAY2I,YAAA,QAAA,8BAAA,YAIfV,EAAG+vC,kBAAA,SAAyBC,GACzB,GAAAr9B,GAAAtY,EAAuBsY,QAAA,UACvB,4CAAUtb,WAAA,EAAA+F,KAAA,MA+JTuV,GAAQjT,OAAOjB,KAAK,WA7JxByuC,EAAqB+C,iBAAAD,GAAAvxC,KAAA,SAAAC,GACL,MAAAA,EAAAlI,QAAsBkI,EAAAhJ,MACnCqC,EAAuB2I,YAAA,UAAA,0CAAA,WACjB+tC,EAAAzuC,EAAAstC,QAEKv1C,EAAY2I,YAAA,QAAA,8BAAA,UAEvB,SAAaC,GACb5I,EAAkB2I,YAAA,QAAA,8BAAA,cAKrBV,EAAGkwC,oBAAqB,SAAAC,GACrB,GAAAC,IAAA,CACA,IAAApwC,EAAAwuC,uBAAS,MAAAxuC,EAAA4uC,KAAAyB,YAAA,MAAArwC,EAAA4uC,KAAAyB,YACT,IAAS,GAAAn1C,GAAA,EAAAA,EAAA8E,EAAAwuC,qBAAArzC,OAAAD,IA+JI8E,EAAGwuC,qBAAqBtzC,GAAG,YAAiB8E,EAAG4uC,KAAKyB,aACpDD,GAAO,EAzJvB,IAAAA,EAgCQr4C,EAAS2I,YAAO,QAAc,6BAAG,aAhCzC,CAgKQ,GAAIzF,IA7JHkX,UAAaA,EACfqlB,WAAAx3B,EAAkBstC,MA+Jb+C,WAAYrwC,EAAG4uC,KAAKyB,WACpBC,OAAQtwC,EAAG4uC,KAAK0B,OA7JrBC,eAAoBvwC,EAAA4uC,KAAO2B,eA+JtBC,WAAYxwC,EAAG4uC,KAAK4B,WA7JxBC,WAAYzwC,EAAO4uC,KAAA6B,WACnBC,cAAa1wC,EAAA4uC,KAAc+B,eAC1Bd,QAAW7vC,EAAA4uC,KAAMiB,SAElBzxC,EAAW,GAAAH,SACX,KAAA,GAAO/C,KAAA8E,GAAAytC,kBA+JHrvC,EAASF,OAAO,OAAShD,EAAG8E,EAAGytC,kBAAkBvyC,GAGrDkD,GAASF,OAAO,OAAQvB,KAAKqkB,UAAU/lB,IA7J/CiyC,EAAsB0D,sBAAOxyC,GAAAK,KAAA,SAAAC,GA+JE,MAAfA,EAAIlI,QA7JZuB,EAAa2I,YAAA,UAAA,qCAAA,WACT4tC,EAAiBtuC,EAAAstC,OAClBttC,EAAAytC,kBAAsB,KAClBztC,EAAA4uC,SAEJ72C,EAAA2I,YAAA,QAAA,8BAAA,UAEH,SAAOC,GACP5I,EAAO2I,YAAiB,QAAA,8BAAA,aAqKhCV,EAAG6wC,uBA9Ja,SAAA/9B,GA+JZ,GAAIH,GAAUtY,EA9JCsY,QAAA,UA+JX,4CA9JwCtb,WAAA,EAAA+F,KAA0B,MA+JtEuV,GAAQjT,OAAOjB,KAAK,WAChByuC,EA9JY4D,qBAAKh+B,EAAAi+B,WAAAtyC,KAAA,SAAAC,GACF,MAAXA,EAAAlI,QAAuBkI,EAAAhJ,MA+JnBqC,EAAW2I,YAAY,UAAW,wCAAyC,WAC3E4tC,EAAyBtuC,EAAGstC,QAE5Bv1C,EAAW2I,YAAY,QAAS,8BAA+B,UAEpE,SAASC,GA7JZ5I,EAAA2I,YAAA,QAAA,8BAAA,cAmKRV,EAAGovC,SA9JQ,SAAOvuC,EAAWC,GAgKzB,GADAd,EAAGqvC,WA9JI,GA+JHxuC,EAAYC,EA3JpB,MA4JQd,GAAGqvC,WAAa,4CAChBrvC,EAAG6uC,KAAKc,OAAS,IA7JhB,CAgKD3vC,GAAG6uC,KA9JCe,kBAAqB,EA+JzB,IAAIoB,GAASlwC,EAAQmwC,UAAYpwC,EAAUowC,UACvCC,EAASpwC,EAAQqwC,WAAatwC,EAAUswC,WAExCC,EAAuB,GAARJ,EAAcE,EA7JrCG,EAAgBD,EAAgB,EAgK5B,OA/JApxC,GAAA6uC,KAAQe,kBAAgByB,GACjB,GAoQfrxC,EAAGqN,OA9JS,WAEJrN,EAAAkvC,qBACAlvC,EAAA8uC,OAASC,WAAQ36C,QAAA8e,KAAmBlT,EAAAgvC,OAAAD,YAgKpC/uC,EAAG8uC,OAAOC,eAIlB/uC,EAAGkU,UA9JS,WA+JRlU,EAAGsxC,aA9JSl9B,gBA+JZpU,EAAGuxC,YA9JSn9B,iBAiKhBpU,EAAGwxC,aAAe,SA9JCzD,GA+Jf/tC,EAAGwX,aA9JS,EA+JZxX,EAAGyX,WAAY,EACfzX,EAAG+S,WA9JI,EA+JP/S,EAAGgT,YA9JK,EA+JRhT,EAAG+tC,IAAM35C,QAAQ8e,KAAK66B,GACtB/tC,EAAG+tC,IA9JI0D,IAAA,GAAAh4B,MAAAs0B,EAAA0D,KA+JPzxC,EAAG+tC,IA9JC2D,IAAA,GAAWj4B,MAAAs0B,EAAA2D,KA+Jf1xC,EAAGstC,MAAQS,EAAIvW,WACfx3B,EAAGqtC,cAAgBrtC,EAAGivC,cAAgBl3C,EAAW8D,SAAW,4BAA8BkyC,EAAI4D,aAC9F3xC,EAAGgvC,OAAOD,WAAW6C,SAAW7D,EAAIgB,WAAW8C,YA7JhD7xC,EAAA8uC,OAAAC,WAAA6C,SAAyB7D,EAASgB,WAAK+C,aACtC9xC,EAAAgvC,OAAID,WAAUgD,SAAgBhE,EAAAgB,WAAAiD,YA+J9BhyC,EAAG8uC,OA9JCC,WAAAgD,SAAAhE,EAAAgB,WAAAkD,aACJjyC,EAAAgvC,OAAQD,WAAYmD,KAAAnE,EAAWgB,WAAAoD,QA+J/BnyC,EAAG8uC,OA9JCC,WAAgBmD,KAAAnE,EAAAgB,WAAqBqD,SA+JzCpyC,EAAGgvC,OA9JKD,WAAQsD,KAAWtE,EAAAgB,WAAWuD,QA+JtCtyC,EAAG8uC,OAAOC,WA9JEsD,KAAWtE,EAAAgB,WAAYwD,SA+JnCvyC,EAAGgvC,OAAOD,WA9JEyD,MAAAzE,EAAAgB,WAA4B0D,SA+JxCzyC,EAAG8uC,OAAOC,WA9JKyD,MAAAzE,EAAAgB,WAAA2D,UA+Jf1yC,EAAGgvC,OAAOD,WA9JE4D,QAAW5E,EAAYgB,WAAS6D,WA+J5C5yC,EAAG8uC,OAAOC,WAAW4D,QAAU5E,EAAIgB,WAAW8D,YAC9C7yC,EAAGgvC,OA9JID,WAAc12B,QAAA01B,EAAAgB,WAAA+D,WA+JrB9yC,EAAG8uC,OA9JKC,WAAW12B,QAAY01B,EAAAgB,WAASgE,YA+JxC/yC,EAAGgvC,OAAOD,WAAWiE,QAAUjF,EAAIgB,WAAWkE,WAC9CjzC,EAAG8uC,OAAOC,WAAWiE,QAAUjF,EAAIgB,WAAWmE,YAC9ClzC,EAAGgvC,OAAOD,WAAWoE,SAAWvsC,SAASmnC,EAAIgB,WAAWqE,WACxDpzC,EAAG8uC,OAAOC,WAAWoE,SAAWvsC,SAASmnC,EAAIgB,WAAWsE,YA7JzDrzC,EAAAgvC,OAAWD,WAASuE,WAAW1sC,SAASmnC,EAAAgB,WAAAwE,aACvCvzC,EAAG8uC,OAAAC,WAAauE,WAAA1sC,SAAAmnC,EAAAgB,WAAAyE,cAChBxzC,EAAAwuC,qBAAyBT,EAAA0F,WA+JzBzzC,EAAG2uC,uBA9JiBZ,EAAA2F,aAgKpB,KA9JI,GAAAjtC,KAAOzG,GAAAs6B,eACJt6B,EAAAs6B,eAAA7zB,GAAAy0B,eAAA6S,EAAA7S,eACAl7B,EAAA+tC,IAAKhC,mBAAoB/rC,EAAAs6B,eAAA7zB,GAkKhC2nC,GA9JuBL,EAAQ7S,aAAM,WACjC,IAAI,GAAAz0B,KAAAzG,GAAY4rC,gBACR5rC,EAAA4rC,gBAAAnlC,GAAoBimC,gBAAAqB,EAAArB,gBACrB1sC,EAAA+tC,IAAAC,oBAAAhuC,EAAA4rC,gBAAAnlC,GAiKPonC,GAAmB,WA5JlB,IAAA,GAAApnC,KAAAzG,GAAAkuC,gBACFluC,EAAAkuC,gBAAkBznC,GAAA+wB,aAAAuW,EAAA4F,cA+JL3zC,EAAG+tC,IAAIoB,oBAAsBnvC,EAAGkuC,gBAAgBznC,MAI5DzG,EAAG+tC,IA9JIp6B,WAAY5b,EAAA21C,gBAkK3B1tC,EAAG4zC,eAAiB,SAAS7F,GACzB,GAAIp7B,GAAUtY,EAAQsY,QAAQ,UA7J3B,iDAA0Btb,WAAA,EAAA+F,KAAA,MA+J7BuV,GAAQjT,OAAOjB,KAAK,WAChByuC,EAAgB0G,eAAe7F,EAAIvW,YAAY/4B,KAAK,SAASC,GA7J5DA,EAAAhJ,MACLqC,EAAgB2I,YAAA,UAA4B,gCAAmB,mBACnDwR,KAEDna,EAAA2I,YAAA,0BAAA,yCAgKJ,SAASC,GA7Jb5I,EAAc2I,YAAA,QAAA,8BAAA,sBAgKd,eA3JPV,EAAA6zC,qBAAS,SAAA9F,GACL,GAAAhtC,GAAA,yBAAiCgtC,EAAO,SAAc,WAAK,UAAA,gBACvDp1B,GAAQo1B,EAAA,SAAgB,WAAA,UAAA,yBA+JxBp7B,EA9JOtY,EAAAsY,QAAA,UA+JP5R,GA9JO1J,WAAA,EAAA+F,KAAA,MAgKXuV,GAAQjT,OAAOjB,KAAK,WA7JjByuC,EAAc2G,qBAAA9F,EAAAvW,YAAA/4B,KAAA,SAAAC,GACV,MAAAA,EAAAlI,QA+JKuB,EAAW2I,YAAY,UAAWiY,EAAM,YACxCzG,KA5JPna,EAAS2I,YAAA,QAAA,2BAAArJ,WAAA,EAAA+F,KAAA,QAEX,SAAAuD,GACA5I,EAAY2I,YAAA,QAAA,mEAAArJ,WAAA,EAAA+F,KAAA,UAgKZ,eAKP4C,EAAG8zC,aA9JW,SAAA/F,GACV/tC,EAAGsS,WAAO,EACVy7B,EAAG57B,UAAWA,EACd47B,EAAG7S,aAAWl7B,EAAA+tC,IAAYhC,mBAAA7Q,aAC1B6S,EAAGrB,cAAgB1sC,EAAA+tC,IAAAC,oBAAAtB,cACnBqB,EAAG0D,IAAAx3C,EAAA,QAAgB8zC,EAAA0D,IAAA,cACnB1D,EAAG2D,IAAAz3C,EAAA,QAAuB8zC,EAAA2D,IAAA,cACE,OAAzB1xC,EAAI+tC,IAAAoB,qBAAqBx5C,SAAAqK,EAAA+tC,IAAAoB,oBACzBpB,EAAI4F,YAAA,EAEJ5F,EAAA4F,YAAY3zC,EAAA+tC,IAAAoB,oBAAA3X,WAgKfuW,EAAIgG,OAAS/zC,EAAG+tC,IAAIgG,OA7JpBhG,EAAAiG,cAAAh0C,EAAA+tC,IAAAiG,cAGJjG,EAAA0F,WAAkBzzC,EAAAwuC,qBACdT,EAAI2F,cAAU1zC,EAAQ2uC,uBAgKtBZ,EAAIgB,cACJhB,EA9JIgB,WAAA8C,YAAA7xC,EAAAgvC,OAAAD,WAAA6C,SA+JJ7D,EAAIgB,WA9JI+C,aAAW9xC,EAAA8uC,OAAAC,WAAA6C,SA+JnB7D,EAAIgB,WA9JUiD,YAAAhyC,EAAAgvC,OAAAD,WAAAgD,SA+JdhE,EAAIgB,WAAWkD,aAAejyC,EAAG8uC,OAAOC,WAAWgD,SACnDhE,EAAIgB,WAAWoD,QAAUnyC,EAAGgvC,OAAOD,WAAWmD,KA7J9CnE,EAAAgB,WAAeqD,SAAKpyC,EAAA8uC,OAAWC,WAAAmD,KA+J/BnE,EA9JIgB,WAAGuD,QAAatyC,EAAAgvC,OAAAD,WAAAsD,KA+JpBtE,EA9JIgB,WAAGwD,SAAAvyC,EAAA8uC,OAAAC,WAAAsD,KA+JPtE,EA9JIgB,WAAS0D,SAAAzyC,EAAAgvC,OAAAD,WAAAyD,MA+JbzE,EA9JIgB,WAAU2D,UAAA1yC,EAAA8uC,OAAAC,WAAAyD,MA+JdzE,EA9JIgB,WAAU6D,WAAA5yC,EAAAgvC,OAAAD,WAAA4D,QA+Jd5E,EA9JIgB,WAAG8D,YAAW7yC,EAAY8uC,OAAAC,WAAA4D,QA+J9B5E,EA9JIgB,WAAG+D,WAAW9yC,EAAYgvC,OAAAD,WAAA12B,QA+J9B01B,EA9JIgB,WAAGgE,YAAgB/yC,EAAA8uC,OAAAC,WAAA12B,QA+JvB01B,EA9JIgB,WAAGkE,WAAgBjzC,EAAAgvC,OAAAD,WAAAiE,QA+JvBjF,EA9JIgB,WAAGmE,YAAAlzC,EAAuB8uC,OAAAC,WAAAiE,QA+J9BjF,EA9JIgB,WAAOqE,UAAApzC,EAAAgvC,OAAqBD,WAAAoE,SA+JhCpF,EA9JIgB,WAAOsE,WAAArzC,EAAA8uC,OAAsBC,WAAAoE,SA+JjCpF,EA9JIgB,WAAOwE,YAAAvzC,EAAAgvC,OAAsBD,WAAAuE,WA+JjCvF,EA9JIgB,WAAGyE,aAAYxzC,EAAA8uC,OAAAC,WAAAuE,UAgKnB,IAAIl1C,GAAW,GAAIH,SACnBG,GA9JIF,OAAA,OAAAvB,KAAAqkB,UAAA+sB,IA+JJ3vC,EAASF,OAAO,aAAc8B,EAAGqtC,eAC5BrtC,EAAG+S,WAjJTm6B,EAAYsE,aAAWzD,GAAAtvC,KAAA,SAAAC,GACnB3G,EAAa2I,YAAA,UAAA,gCAAA,WACbwR,IA+JKwF,KACD,SAAS/W,GA7JjB5I,EAAe2I,YAAc,QAAA,8BAAA,WAEzBV,EAAA+tC,OACA/tC,EAAA4uC,QACA5uC,EAAAsS,WAAa,IAyIZ46B,EAAgB+G,YAAY71C,GAAUK,KAAK,SAASC,GAChD3G,EAAW2I,YAAY,UAAW,8BAA+B,WACjEwR,IA7JAwF,KACR,SAAA/W,GACO5I,EAAA2I,YAAsB,QAAA,8BAAA,WAgKzBV,EA9JGsS,WAAA,EACHtS,EAAGmuC,sBAAoB,IAiL/BnuC,EAAG4zC,eA9JW,SAAW7F,GACrBb,EAAU0G,eAAW7F,EAAWvW,YAAe/4B,KAAA,SAAAC,GAC5C3G,EAAO2I,YAAW,UAAe,gCAAW,mBAC5CwR,KACA,SAAOvR,GACP5I,EAAO2I,YAAW,kCAmKzBV,EAAGqa,MA9JI,WACHra,EAAGsa,GAAA,GAAOb,OAgKdzZ,EAAGqa,QAEHra,EAAG0X,MA9JI,WACH1X,EAAGsa,GAAA,MAiKPta,EAAGua,eA7JCC,YAAGjB,EACHkB,QAAG,GAAAhB,MAAAzZ,EAAAsa,GAAA62B,WAA6B,GA+JhCz2B,WAAW,GAaf1a,EAAG2a,aACCC,aAAcxB,EACd+C,WA9JQ,KA+JRtB,QAAS,GA9JGpB,MAAIzZ,EAAGsa,GAAA45B,cAAmBl0C,EAAAsa,GAAA62B,WAAmB,EAAAnxC,EAAAsa,GAAA0B;AA+JzDvB,QAAS,GAAIhB,MA9JGzZ,EAAGsa,GAAI45B,cAAAl0C,EAAAsa,GAAsB62B,WAAG,EAAAnxC,EAAgBsa,GAAA0B,WA+JhElB,YAAa,GAkBjB9a,EAAGgb,MA9JQ,WA+JPhb,EAAGib,OA9JKpM,QAAW,GAiKvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CA7JpB,IAAAwL,GAAA,GAAAZ,MACK06B,EAAM,EAEVn0C,GAAAm5B,SACIte,QAAO,GAAApB,MAAWY,EAAM65B,cAAMC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,WA+J9BvB,QAAS,GAAIhB,MAAKY,EAAM65B,cAAgB,GAAI75B,EAAM82B,WAAY92B,EAAM2B,aAK5Ehc,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QA9JK,GAiKnB7O,EAAGsb,MA9JQ,WA+JPtb,EAAGub,OA9JK1M,QAAW,GAiKvB7O,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IA3JlC3b,EAAG4b,SAAA,eAAwB,aAAK,aAAA,aA+JhC5b,EAAG6b,OA9JI7b,EAAA4b,QAAY,GA+JnB5b,EAAG8b,iBA9JiB,cAgKpB9b,EAAGib,QA7JCpM,QAAI,GAiKR7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QA7JCxM,QAAI,GAiKR7O,EAAGub,QA7JC1M,QAAI,EAkKR,IA9JIkN,GAAI,GAAWtC,KA+JnBsC,GA9JQP,QAAAO,EAAWC,UAAkB,EA+JrC,IA9JIC,GAAe,GAAAxC,KA+JnBwC,GA9JQT,QAAWO,EAAAC,UAAkB,GA+JrChc,EAAG2Z,SA7JCN,KAAI0C,EACJvlB,OAAI,SAEJ6iB,KAAI4C,EACJzlB,OAAI,oLArgBZpC,QACKC,OAAO,wBACPe,WAAW,eAAgB63C,MAksBpC,WACI,YAMA,SAASmH,GAAkBr6C,EAAOhC,EAAW0S,EAAQjQ,EAAQH,EAASg6C,EAAsBja,EAAoBsR,EAAmBvxC,GAU/H,QAASm6C,KAEL,GAAIC,GAAYz9C,SAAS2lC,eAAe,aA7JzC+X,EAAQ19C,SAAW2lC,eAAA,YAClBgY,aAAYF,GA+JRG,WAAY,SAASC,GA7J1BH,EAAAx6B,YAAA26B,MAkKD,QAASziC,KACP,GAAI+oB,GAAY9gC,EAAsBgG,uBAAuBwU,gBAAgBxC,SA5J7EkiC,GAAaO,kBAAA3Z,GAAAx8B,KAAA,SAAAC,GACQ,MAArBA,EAASlI,QAgKDwJ,EAAG60C,OACC92C,KAAM,WACNrI,KAAMiH,KAAKC,MAAM8B,EAAIhJ,MACrByjC,SAAU93B,WAAU,EAAKyzC,eAAc,IAG3C90C,EAAGsS,WAAY,GAIfjY,EAAQwH,MAAM,QAAS,yBAA0B,SA3JzD,SAAclB,GACdtG,EAAYwH,MAAA,QAAA,mBAAA,UAuHhB,GAAI7B,GAAKC,IACTD,GAAGsU,SAAW,KA7JdtU,EAAGgT,YAAA,EA+JHhT,EAAG+S,WA9JC,EA+JJ/S,EAAGsS,WA9JK,EA+JRva,EA9JQ2c,SAAA,EA+JR1U,EAAGs0C,aA9JaA,EAgKhBpiC,GAoCC,IAAI2iC,GAAQ,GAAIp+C,QAAOs+C,cAAcC,SAASl+C,SAAS2lC,eAAe,aA3JvEhmC,QAAAs+C,cAAkBp7B,OAAMs7B,YAAAJ,EAAA,SAAA,WAgKrB,GAAIK,GA9JQL,EAAKM,eAChBriC,EAAOoiC,EAAS,GAAApiC,IAgKbsiC,EAAYP,EAAMQ,oBAGlBC,EAAYF,EAAUhyC,QAAQ0P,KAAQ,CAC1C+hC,GAAMS,SAASxiC,EAAKwiC,GAEpBT,EAAMU,uKA/DbnhD,QACKC,OA9JO,6BA+JPe,WAAW,oBAAqBg/C,MAmEzC,WACI,YAOA,SAASoB,GAAsBz9C,EAAYyC,EAAQH,EAASN,EAAO07C,EAA0BzjC,EAAgBJ,EAAwBzX,EAAuBM,GAvHxJ,QAAAyX,KACGujC,EAAU72B,gBAAAngB,KAAA,SAAAC,GACH,MAAAA,EAAAlI,SACEwJ,EAAAqS,YAAA3T,EAAAhJ,KACTsK,EAAAsS,WAAA,IAkKI,SAAU3R,GA7JjB5I,EAAS2I,YAAkB,QAAA,mBAAA,oBAmK3B,QAAS+gB,GAAoBtP,GACzBP,EA9JoB8P,eAAcvP,GAAa1T,KAAA,SAAAC,GACnC,MAAJA,EAAIlI,QA+JJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KA7JrBsK,EAAAsS,WAAI,EAgKJtS,EAAG01C,iBAAmB,KACtB11C,EAAGguC,oBAAsB,KACzBhuC,EAAG+rC,mBAAqB,KA7JzB/rC,EAAA6hB,gBAAA,KA+JC7hB,EAAG4tC,gBACH5tC,EAAG4rC,mBACH5rC,EAAGs6B,kBACHt6B,EAAG21C,aAAe,MAElB59C,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAASk1C,KA7JhB,GAAY36C,IACTkX,UAAAnS,EAAAmT,gBAAAhB,UA+JYrc,UAAW,EA5JlB2/C,GAAOI,2BAAA56C,GAAAwD,KAAA,SAAAC,GACI,MAAAA,EAAAlI,QAgKAwJ,EAAGs6B,eAAiB57B,EAAIhJ,KA9J/BsK,EAAAsS,WAAkB,EAEpBtS,EAAW01C,iBAAA,KACX11C,EAAAguC,oBAAa,KACbhuC,EAAY+rC,mBAAA,KACZ/rC,EAAY21C,aAAA,KACJ31C,EAAA4tC,gBACR5tC,EAAA4rC,oBAIH7zC,EAAA2I,YAAA,QAAA,yBAAA,eAEI,SAAIC,GACJ5I,EAAY2I,YAAW,QAAA,mBAAA,gBAqK3B,QA/JEo1C,KACE,GAAI76C,IACJkX,UAAAnS,EAAAmT,gBAAAhB,UAEI+oB,aAAQl7B,EAAA+rC,mBAAgB7Q,aAiK5Bua,GA/JmBM,+BAAA96C,GAAAwD,KAAA,SAAAC,GACD,MA+JVA,EA/JIlI,QAgKJwJ,EAAG4rC,gBA/JkBltC,EAAIhJ,KAgKzBsK,EAAGsS,WA/JW,EAiKdtS,EAAG01C,iBAAmB,KA9JtB11C,EAAGguC,oBAAY,KAgKfhuC,EAAG4tC,gBACH5tC,EAAG21C,aAAe,MAGlB59C,EAAW2I,YAAY,QAAS,yBAA0B,gBAE/D,SA/JCC,GAgKA5I,EA/JI2I,YAAc,QAAS,mBAAoB,iBAsKvD,QAASs1C,KA9JR,GAAO/6C,IAgKAkX,UAAWnS,EAAGmT,gBAAgBhB,UA9J/Brc,UAAY,EACZolC,aAAMl7B,EAAU+rC,mBAAG7Q,aAgKlBwR,cAAe1sC,EAAGguC,oBAAoBtB,cAE1C+I,GAAyBQ,6BAA6Bh7C,GAAKwD,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QA9JTwJ,EAAA4tC,aAAsBlvC,EAAAhJ,KAiKjBsK,EAAGsS,WAAY,EAEftS,EAAG01C,iBAAmB,KACtB11C,EAAG21C,aAAe,MAElB59C,EAAW2I,YAAY,QAAS,yBAA0B,iBA7JjE,SAAAC,GACT5I,EAAA2I,YAAA,QAAA,mBAAA,kBA+LI,QAhKGw1C,KAGC,GAAAj7C,IAiKIkX,UAAWnS,EAAGmT,gBAAgBhB,UA/JnCrc,UAAc,EACdolC,aAAcl7B,EAAA+rC,mBAAA7Q,aACdwR,cAAA1sC,EAAuBguC,oBAAetB,eAQzCra,IAkKI,KAhKI,GAAIn3B,KAAI8E,GAAA4tC,aACJ5tC,EAAG4tC,aAAA1yC,GAAci7C,SACjB9jB,EAAGx6B,KAAAmI,EAAA4tC,aAAY1yC,GAAAs8B,YAmKnBv8B,EAAIm7C,YAAc/jB,EAAIqB,KAAK,IAG/B+hB,GAAyBY,qBAAqBp7C,GAAKwD,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KAvJtBsK,EAAGs2C,QAAA,EACHt2C,EAAGsS,WAAA,GAEHva,EAAG2I,YAAe,QAAA,yBAAA,iBAkKvB,SAhKQC,GAiKP5I,EAhKO2I,YAAe,QAAA,mBAAA,kBAwK9B,QAAS61C,KACL,GACIlkB,IADcl4B,EAAsBgG,0BA9J5C,IAAS,MAATq2C,EAAS,CACD,GAAAv7C,IACAw7C,WAAcz2C,EAAA21C,aACdne,WAAWx3B,EAAA01C,iBAAAle,WAkKXnF,GAAIx6B,KAAKoD,OA/Jb,IAAA,MAAAu7C,EAkKI,IAhKI,GAAGt7C,KAAA8E,GAAA4tC,aAAqB,CACxB,GAAGvlB,KAiKoB1yB,SAAnBqK,EAAG4tC,eA/JJvlB,EAAAmP,WAAmBx3B,EAAA4tC,aAAA1yC,GAAAs8B,WACnBnP,EAAAouB,WAAAz2C,EAAsB4tC,aAAA1yC,GAAAu7C,YAEzBpkB,EAAGx6B,KAAAwwB,GAmKX,GAAIptB,IACAy7C,YAAe/5C,KAAKqkB,UAAUqR,GAGlCojB,GAAyBkB,iBAAiB17C,GAAKwD,KAAK,SAAUC,GA/J3DA,EAAAhJ,KAAUke,aAAK,GACd7b,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAoB,iBAiKhD3B,IACAlS,EAAGgT,YAAa,EAChBtB,IACA1R,EAAGs2C,QAAS,IA9Jfv+C,EAAA2I,YAAA,QAAiChC,EAAAhJ,KAAAme,QAAA,iBAClC7T,EAAMgT,YAAA,IAmKP,SAhKCrS,GAiKA5I,EAAW2I,YAAY,iCAS/B,QAASk2C,KACL,GAAI37C,IACAkX,UAhKOnS,EAAAmT,gBAAAhB,UAiKP+oB,aAhKIl7B,EAAW+rC,mBAAqB7Q,aAiKpCwR,cAAe1sC,EAAGguC,oBAAoBtB,cAI1C+I,GAAyBmB,gBAAgB37C,GAAKwD,KAAK,SAAUC,GACrDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBACpD3B,IACA2kC,IA/JH72C,EAAAgT,YAAA,EACDtB,IACA1R,EAAAs2C,QAAc,IAEdv+C,EAAc2I,YAAG,QAAmBhC,EAAAhJ,KAAAme,QAAA,iBACpC7T,EAAAgT,YAAkB,IAmKnB,SAhKSrS,GAiKR5I,EAhKO2I,YAAe,iCAuK9B,QAASgR,KACL1R,EAAG01C,iBAAmB,KACtB11C,EAhKGguC,oBAAe,KAiKlBhuC,EAAG+rC,mBAhKY,KAiKf/rC,EAAG6hB,gBAAkB,KACrB7hB,EAAGmT,gBAAkB,KACrBnT,EAAG21C,aAAe,KAClB31C,EAAG82C,aAAe,KAElB92C,EAAG4tC,gBACH5tC,EAAG4rC,mBACH5rC,EAAGs6B,kBACHt6B,EAAG2hB,eACH3hB,EAAG8nC,OAAQ,EACX9nC,EAAGgT,YAAa,EAIpB,QAAS6jC,KACL,GAAI57C,IACAyxC,cAAe1sC,EAAGguC,oBAAoBtB,cAE1C+I,GAAyBoB,mBAAmB57C,GAAKwD,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAG+2C,gBAAkBr4C,EAAIhJ,KACzBsK,EAAGsS,WAAY,GAQfva,EAAW2I,YAAY,QAAS,yBAA0B,iBA9JtE,SAASC,GAiKD5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAxV5D,GAAIV,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGyhB,oBAAsBA,EA7JzBzhB,EAAG41C,2BAAmBA,EA+JtB51C,EAAG81C,+BA9JoBA,EA+JvB91C,EAAGg2C,6BAA+BA,EAClCh2C,EAAGk2C,qBAAuBA,EA7J1Bl2C,EAAGu2C,iBAAmBA,EA+JtBv2C,EAAG42C,gBA9JWA,EA+Jd52C,EAAG62C,mBAAqBA,EACxB72C,EAAG0R,OAASA,EA7JZ1R,EAAGs2C,QAAA,CA+JH,IA9JIE,GAAQ,GAIZx2C,GAAGg3C,mBAAoBC,iBAAA,cAAA5uB,KAAA,MAAA4uB,iBAAA,aAAA5uB,KAAA,MACvBroB,EAAGqU,kBA+JChJ,MAAS,IA5JTA,MAAQ,KAgKRA,MAAS,KA5JTA,MAAQ,KAETA,MAAS,MAgKZrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAAc,EA7JjBvU,EAAGwU,qBAAS,SAAAC,GACRzU,EAAAuU,YAAQE,GAiKZ1c,EAAW2c,SAAU,EA7JrBxC,+JAqHJ9d,QACKC,OAAO,iCACPe,WA9JM,wBAAUogD,MAkgBzB,WACI,YAOA,SAhKQ0B,GAAiBn/C,EAAcyC,EAAAH,EAAAN,EAAA07C,EAAAzjC,EAAAJ,EAAAzX,EAAAM,GA+LnC,QAASyX,KACLujC,EAAyB72B,gBAAgBngB,KAAK,SAAUC,GA/JnD,MAAAA,EAAAlI,SACDwJ,EAAAqS,YAAc3T,EAAAhJ,KACdsK,EAAMsS,WAAA,IAkKP,SAhKK3R,GAiKJ5I,EAhKI2I,YAAe,QAAA,mBAAA,qBAsK3B,QAhKQy2C,KAiKJ,GAAIl8C,IACAkX,UAhKWnS,EAAAmT,gBAAgBhB,UAkK/BsjC,GAhKiB0B,qBAA6Bl8C,GAAGwD,KAAA,SAAAC,GAiK1B,MAAfA,EAAIlI,QA/JJwJ,EAAA4tC,aAASlvC,EAAAhJ,KAiKTsK,EAAGsS,WAAY,EA9JnBtS,EAAM01C,iBAAA,KACN11C,EAAAo3C,oBAAoB,KAiKhBp3C,EAAGq3C,mBACHC,KA7JAv/C,EAAW2I,YAAY,QAAA,yBAA6B,iBAkKzD,SAhKQC,GAiKP5I,EAhKI2I,YAAA,QAAA,mBAAA,kBAsKZ,QAAS62C,KACL,GAhKGt8C,IAkKCyxC,cAAe1sC,EAAG01C,iBAAiBhJ,cAEvC+I,GAAyBoB,mBAAmB57C,GAAKwD,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAGq3C,gBAAkB34C,EAAIhJ,KACzBsK,EAAGsS,WAAY,EAEftS,EAAGo3C,oBAAsB,MA9J7Br/C,EAAM2I,YAAA,QAAA,yBAAA,gBAkKP,SAhKCC,GACA5I,EAAA2I,YAAkB,QAAA,mBAAoB,iBAsK9C,QAAS82C,KACL,GAAIv8C,IACAkX,UAhKInS,EAAAmT,gBAAAhB,UAiKJqlB,WAhKOx3B,EAAA01C,iBAAale,WAiKpBigB,UAhKIz3C,EAAAo3C,oBAAAK,UAkKRhC,GAhKW+B,mBAAAv8C,GAAAwD,KAAA,SAAAC,GACHA,EAAAhJ,KAAAke,aAAuB,GACvB7b,EAAG2I,YAAa,UAAAhC,EAAAhJ,KAAAme,QAAA,iBAiKhB3B,IACAolC,IA/JLt3C,EAAAgT,YAAe,EACdtB,IAiKI1R,EAAGs2C,QAAS,IAEZv+C,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAClD7T,EAAGgT,YAAa,IA7J5B,SAASrS,GACF5I,EAAA2I,YAAmB,iCAwK1B,QAhKO42C,KACH,GAAGr8C,IACAkX,UAAAnS,EAAAmT,gBAAiBhB,UAEpBsjC,GAAW6B,sBAAAr8C,GAAAwD,KAAA,SAAAC,GACK,MAAbA,EAAAlI,QAiKKwJ,EAAG03C,mBAAqBh5C,EAAIhJ,KAC5BsK,EAAGsS,WAAY,GAxJfva,EAAG2I,YAAkB,QAAI,yBAAA,iBAkK9B,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAM5D,QAASgR,KACL1R,EAAG01C,iBAAmB,KACtB11C,EAhKGmT,gBAAe,KAiKlBnT,EAAGo3C,oBAhKY,KAiKfp3C,EAAG4tC,gBACH5tC,EAAGqS,eACHrS,EAAGq3C,mBACHr3C,EAAG8nC,OAAQ,EACX9nC,EAAGgT,YAAa,EApJpB,GAAIhT,GAhKIC,IAiKRD,GAAGsU,SAhKS,KAiKZtU,EAAGm3C,qBAAuBA,EAC1Bn3C,EAAGu3C,oBAAsBA,EACzBv3C,EAAGw3C,mBAhKSA,EAiKZx3C,EAAGs3C,sBAAwBA,EAI3Bt3C,EAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAhKQ,MAkKZrL,EAAGsU,SAAWtU,EAhKCqU,gBAAA,GAiKfrU,EAAGuU,YAhKS,EAiKZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAhKGuU,YAAUE,GAmKjB1c,EAAW2c,SAAU,EACrBxC,+JAjCJ9d,QACKC,OAAO,iCACPe,WAAW,qBAAsB8hD,MA6J1C,WACI,YAOA,SAjKQS,GAAK59C,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAwX,EAAAC,EAAAC,EAAA5X,GA0MT,QAAS+X,KACW/X,EAAsBgG,uBAAuBwU,gBAAgBxC,SAhKjFJ,GAAS6lC,cAAuB79C,EAAAhC,GAAA0G,KAAA,SAAAC,GAClB,MAANA,EAAMlI,QACNwJ,EAAA8V,YAAcpX,EAAAhJ,KAkKVmiD,IAhKR73C,EAAAsS,WAAA,GAEQva,EAAG2I,YAAmB,QAAA,yBAAA,YAmK3B,SAAUC,GACT5I,EAjKO2I,YAAA,QAAmB,mBAAA,aAqKlC,QAASm3C,KACLhmC,EAjKWimC,sBAAAr5C,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,QAkKAwJ,EAAG+3C,kBAAoBr5C,EAAIhJ,KAhKhCsK,EAAAsS,WAAe,GAmKVva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAjKQ0V,GAAkBC,EAAiB9X,GAkKnC8X,EAhKJvE,EAAAwE,oBAAyBD,GAAmB5X,KAAK,SAAKC,GAC/B,MAAXA,EAAAlI,SACDwJ,EAAAuW,UAAA7X,EAAkBhJ,KAClBsK,EAAAuW,UAAYpb,OAAA,GAkKPd,EAAQ8C,OAAO,UAAW,0BAA4B6C,EAAG2d,KAAKlH,gBAAgBC,aAAerf,WAAW,EAAM+F,KAAM,OA/JzH4C,EAAAsS,WAAA,EACH/T,GAkKQA,QAIZyB,EAAGuW,aACHvW,EAAG2d,KAAKhH,cAAgB,MAWhC,QAAS3C,KACLhU,EAAG+S,WAjKK,EAkKR/S,EAAGgT,YAjKK,EAkKRhT,EAAGiU,aAjKQ,EAkKXjU,EAAGwX,aAjKK,EAkKRxX,EAAGyX,WAjKQ,EAoKf,QAASC,KACL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAEf/S,EAAGg4C,WAEP,QAAStmC,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFACItb,WAAW,EACX+F,KAAM,MA9JduV,GAAIjT,OAAMjB,KAAA,WACNuB,EAAAgT,YAAc,EAkKdhT,EAAG+S,WAAY,EA/Jf/S,EAAAg4C,aA4KR,QAASC,GAAkBD,GACvBh4C,EAjKGwX,aAAU,EAkKbxX,EAAGyX,WAjKY,EAkKfzX,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAGhBhT,EAAGg4C,QAAU5jD,QAAQ8e,KAAK8kC,GA/J1Bh4C,EAAGg4C,QAAAv+B,KAAA,GAAmBA,MAAAzZ,EAAAg4C,QAAAE,YAEtB,KAAG,GAAAh9C,KAAA8E,GAAAizB,SACAjzB,EAAAizB,SAAe/3B,GAAAi9C,UAAAn4C,EAAAg4C,QAAAI,cACfp4C,EAAAg4C,QAAclB,aAAA92C,EAAAizB,SAAA/3B,GAqKjB,KAAK,GAAIA,KAAK8E,GAAG8V,YACT9V,EAAG8V,YAAY5a,GAAGmb,YAAcrW,EAAGg4C,QAAQ3hC,YAC3CrW,EAAGg4C,QAAQvhC,gBAAkBzW,EAAG8V,YAAY5a,GAIpDkb,GAAwBpW,EAAGg4C,QAAQ3hC,UAAW,WAC1C,IAAK,GAAInb,KAAK8E,GAAGuW,UAjK7BvW,EAAAuW,UAAArb,GAAA2b,UAAA7W,EAAAg4C,QAAAnhC,UACY7W,EAAAg4C,QAAArhC,cAAA3W,EAAAuW,UAAArb,MAuLR,QAASm9C,GAAUh/B,GAjKhB,GAAAi/B,GAAS,GAAA7+B,MAAAJ,GACTqC,EAAS48B,EAAAC,cAAA,EAmKJ58B,EAAM28B,EAAQt8B,UAjKnBw8B,EAAA98B,EAAA,IAA0BC,CAC1B,OAAA68B,GAyKH,QAlKIC,GAAYT,GACA79C,EAAAgG,sBACb,IAAAH,EAAA+S,UAwMQ,CAhKH,GAAAilC,IACAU,UAAa14C,EAAAg4C,QAAAU,UACT/kC,WAAQzT,EAAWG,OAmKnBgW,UAlKOrW,EAAAg4C,QAAYvhC,gBAAIJ,UAmKvBQ,QAlKiClhB,QAAzBqK,EAAGg4C,QAAUrhC,eAAY,MAAA3W,EAAAg4C,QAAArhC,cAAA3W,EAAAg4C,QAAArhC,cAAAE,QAAA,KAmKjCuhC,YAlKQp4C,EAAQg4C,QAAOlB,aAAWqB,SAmKlC1+B,KAAMxf,EAAQ,QAAQ+F,EAAGg4C,QAAQv+B,KAAM,cACvCk/B,YAlKO34C,EAAAg4C,QAAYW,YAmKnBC,QAlKQ54C,EAAAg4C,QAAAY,QAmKRxgC,SAlKQpY,EAAAg4C,QAAA5/B,SAqKZvG,GAlKGgnC,YAAAb,GAAAv5C,KAAA,SAAAC,GACAA,EAAAhJ,KAAYke,aAAA,GACP7b,EAAA2I,YAAgB,UAAAhC,EAAAhJ,KAAAme,QAAA,kBAmKhB3B,IACAwF,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAjKlD7T,EAAAgT,YAAY,IAGrB,SAAQrS,GAmKH5I,EAAW2I,YAAY,gCA/J5B,SAAYC,GACZ5I,EAAa2I,YAAA,+BAAArJ,WAAA,EAAA+F,KAAA,aAnEjB,CACC,GAAA07C,MAoKQh2B,IACJ,KAAK,GAAI5nB,KAAK8E,GAAGg4C,QAAQrhC,cAjKMhhB,QAAnCqK,EAAag4C,QAAArhC,cAAsBzb,GAAA2b,SACpCiM,EAAcjrB,KAAAmI,EAAAg4C,QAAArhC,cAAAzb,GAAA2b,QAqKTiiC,GAAOh2B,CAjKf,IAASK,GAAOxmB,KAAAqkB,UAAA83B,GACRC,EAAY51B,EAAAG,UAAsB,EAAAH,EAAAhoB,OAAuB,EAC7Dg3B,SAAAC,IAAe2mB,EACX,IAAIf,IACAlkC,UAAG5T,EAAkBG,OACrBgW,UAAArW,EAAAg4C,QAAAvhC,gBAAAJ,UACAQ,QAAGkiC,EAmKHX,YAlKGp4C,EAAAg4C,QAAAlB,aAAAqB,SACH1+B,KAAAxf,EAAW,QAAA+F,EAAYg4C,QAASv+B,KAAA,cAmKhCk/B,YAAa34C,EAAGg4C,QAAQW,YAjK7BC,QAAU54C,EAAKg4C,QAAAY,QAqKd/mC,GAAqBmnC,WAAWhB,GAASv5C,KAAK,SAAUC,GAChDA,EAAIhJ,KAAKke,aAAc,GAjK9B7b,EAAA2I,YAAoB,UAAAhC,EAAAhJ,KAAAme,QAAA,kBACzB3B,IACYlS,EAAAgT,YAAgB,EACjB0E,MAEA3f,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,kBACH7T,EAAAgT,YAAW,IAGf,SAAWrS,GAmKP5I,EAAW2I,YAAY,kCAoFnC,QAlKQ0Y,GAAO1jB,GAmKX,GAAI2jB,GAlKO3jB,EAAA2jB,KAmKP9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAiE1D,QAASC,GAlKO7jB,GAmKZ,GAAI2jB,GAAO3jB,EAlKC2jB,KAmKR9iB,EAAOb,EAlKIa,IAmKf,IAlKY,QAkKRA,EAGA,IAAK,GAFDijB,GAlKO,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEHxe,EAAG,EAAAA,EAAA8E,EAAA2Z,OAAaxe,OAAAD,IAAA,CAmKpB,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAhKhE,IAAAF,IAAeI,EACd,MAAW5Z,GAAA2Z,OAAAze,GAAY1E,OAsK/B,MAAO,GA1iBX,GAAGwJ,GAAAC,IAEHD,GAAGqU,kBAAAhJ,MAAsB,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACzBrL,EAAGsU,SAAAtU,EAAAqU,gBAAqB,GAmKxBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAjKGgT,YAAA,EAkKHhT,EAAG+S,WAjKU,EAkKb/S,EAjKGsS,WAAA,EAkKHva,EAjKI2c,SAAS,EAkKb1U,EAjKGuW,aAoKHvW,EAAGgU,OAjKCA,EAkKJhU,EAAG0R,OAASA,EA/JZ1R,EAAGoW,wBAAcA,EACjBpW,EAAGi4C,kBAAAA,EAkKHj4C,EAAGy4C,kBAjKkBA,EAkKrBz4C,EAAGg4C,WA/JHh4C,EAAAg4C,QAAW59B,KAAA,GAAUX,MAmKrBzZ,EAAGizB,WACCgmB,SAAY,mBAhKhBd,SAAgB,MAmKZc,SAjKY,mBAkKZd,SAjKW,KAoKf,IAAIj4C,GAjKa/F,EAAKgG,sBAkKtBH,GAAGwX,aAjKK,EAkKRxX,EAAGyX,WAAY,EACfvF,IAmDAlS,EAAGk5C,WAjKK,WAkKJl5C,EAAGuW,aACHvW,EAAGg4C,QAjKCrhC,cAAc,KAkKlB3W,EAAGg4C,QAAQvhC,gBAAkB,MAzFjCzW,EAAGm5C,UAAW,SAAG9/B,GAEd,GAAA+/B,GAAcf,EAAAh/B,EACd,KAAA,GAAAne,KAAA8E,GAAA+3C,kBACI,GAAAM,EAAcr4C,EAAA+3C,kBAAA78C,GAAAg9C,cAAAkB,EAGlB,MAgKSp5C,GAAGg4C,QAAQv+B,KAAO,SAClBpf,GAAQ8C,OAAO,UAAW,iBAAmB9F,WAAW,EAAM+F,KAAM,QApEhF4C,EAAAq5C,cAAiB,SAAAvmC,GACb,GAAGH,GAAAtY,EAAasY,QAAA,UACb,kDAmKKtb,WAAW,EAjKhB+F,KAAU,MAGbuV,GAAIjT,OAAUjB,KAAA,WACVoT,EAAAwnC,cAAAvmC,EAAA4lC,WAAAj6C,KAAA,SAAAC,GACI3G,EAAW2I,YAAA,UAAA,sCAAA,kBACXwR,KAmKD,SAAUvR,GACT5I,EAAW2I,YAAY,kCAE5B,eAOPV,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAGhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WAjKX1X,EAAAsa,GAAS,MAqKTta,EAAGua,eAjKCC,YAAGjB,EAmKHkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAAcxB,EAjKdyB,QAAS,GAAApB,MAAQ,KAAA,EAAU,IAmK3BgB,QAlKQ,GAAGhB,MAmKXqB,YAlKW,GA6Kf9a,EAAG+a,UAlKU,WAmKT/a,EAAGua,cAlKYE,QAAUza,EAAGua,cAAeE,QAAQ,KAAS,GAAAhB,MAmK5DzZ,EAAG2a,YAlKYF,QAAQza,EAAAua,cAAmBE,SAqK9Cza,EAAG+a,YAEH/a,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MAlKC,WACAlb,EAAAmb,OAAItM,QAAA,CACK,IAAK4K,OAsKlBzZ,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAlKK,SAAQC,EAAQC,EAAAC,GACpB3b,EAAAsa,GAAI,GAAMb,MAAAgC,EAAQC,EAAAC,IAqKtB3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,YAAa,QACvE5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GAEvB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGib,QAjKHpM,QAAS,GAqKT7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAlKQ,GAqKZ7O,EAAGub,QACC1M,QAlKI,EAsKR,IAAIkN,GAlKQ,GAAAtC,KAmKZsC,GAASP,QAlKGO,EAAWC,UAAW,EAmKlC,IAAIC,GAlKQ,GAAWxC,KAmKvBwC,GAlKYT,QAASO,EAAAC,UAAA,GAmKrBhc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAlKQ,SAoKR6iB,KAAM4C,EACNzlB,OAAQ,cAuBZiU,EAAO4P,MAlKK,WAmKR5P,EAAO6P,GAlKC,GAAMb,OAoKlBhP,EAAO4P,QAEP5P,EAAOiN,MAAQ,WACXjN,EAAO6P,GAAK,MAGhB7P,EAAOpL,KAAO,SAlKEuL,GAmKZH,EAAOjU,OAlKKqY,QAAA,GAqKhBpE,EAAOuQ,MAAQ,WACXvQ,EAAOyR,QAlKQrN,QAAA,GAqKnBpE,EAAO+Q,QAlKI,SAAeC,EAAAC,EAAAC,GAmKtBlR,EAAO6P,GAlKC,GAAAb,MAAWgC,EAAAC,EAAYC,IAqKnClR,EAAOkQ,aACHwB,WAlKQ,OAmKRrB,YAAa,EACbsB,QAAS,QAGb3R,EAAOmR,SAAW,QAjKlBnR,EAAGoR,OAAApR,EAAgBmR,QAAU,GAoK7BnR,EAAOjU,QACHqY,QAlKQ,GAoKZpE,EAAOyR,SACHrN,QAAQ,yJAvbhBza,QAhKKC,OAAA,uBAkKAe,WAAW,oBAAqBuiD,MA2bzC,WACI,YAOA,SAAS2B,GAAmBv/C,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASuX,EAAwBC,EAAsBG,EAAgBF,EAAcC,EAAgB5X,EAAuBgrB,GA0ChM,QAASjT,GAAK3T,GAjKXyT,EAAQI,mBAAYD,GAAA1T,KAAA,SAAAC,GACA,MAAhBA,EAAOlI,SACNwJ,EAAAqS,YAAY3T,EAAAhJ,KAmKRsK,EAAGsS,WAAY,GAEf/T,GAjKDA,KACJ,SAAOoC,GAmKN5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAhKzDwkB,IAIH,QAAGzD,GAA0BtP,EAAO5T,GAChCyB,EAAG+3C,qBAmKC5lC,GACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GAjK1C,MAAhBA,EAAAlI,QACCwJ,EAAA2hB,YAAQjjB,EAAAhJ,MAEFsK,EAAC2hB,YAAAxmB,OAAA,GAmKFd,EAAQ8C,OAAO,UAAW,oDAjKlC9F,WAAA,EACA+F,KAAA,OAuKI4C,EAAGsS,WAAY,EAjKnB/T,GACAA,KAoKIlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAhK7D,SAAQlB,GAmKAtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAQvD,QAlKIg2C,GAAMt5C,GACNyB,EAAA+3C,qBACDpiD,QAAAqK,EAAAg4C,QAAAn2B,iBAEChQ,EAAQimC,sBAAAr5C,KAAA,SAAAC,GAmKmB,MAAfA,EAAIlI,QACJwJ,EAAG+3C,kBAAoBr5C,EAAIhJ,KAjKlCsK,EAAA+3C,kBAAkBv9C,EAAA++C,OAAAv5C,EAAA+3C,kBAAA,eACZ/3C,EAAAsS,WAAK,GAEZva,EAAgB2I,YAAA,QAAA,yBAAA,kBAoKRnC,GAjKHA,KAmKF,SAlKKoC,GAmKJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAG5DV,EAAGw5C,cACCC,UAAW,EACXC,WAAY,WAGZD,UAAW,EACXC,WAAY,WA/JbD,UAAQ,EACXC,WAAgB,YAqKZD,UAAW,EAjKZC,WAAQ,cAqKPD,UAAW,EAjKZC,WAAO,aAqKND,UAAW,EAjKZC,WAAQ,WAqKPD,UAAW,EAjKZC,WAAU,aAsCjB,QAAGx0B,KACCC,EAAiBC,6BAAA3mB,KAAA,SAAAC,GAoKb,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGqlB,yBAA2B3mB,EAAIhJ,IAlK3C,KAAa,GAAAwF,KAAA8E,GAAAqlB,yBACDrlB,EAAAqlB,yBAAAnqB,GAAAy+C,aAAAh9C,KAAAC,MAAAoD,EAAAqlB,yBAAAnqB,GAAA0+C,UACA55C,EAAAqlB,yBAAAnqB,GAAAs+C,YAAA78C,KAAAC,MAAAoD,EAAAqlB,yBAAAnqB,GAAA2+C,QAEZ75C,GAAYsS,WAAA,MAEZva,GAAA2I,YAA2B,QAAA,yBAAA,2BAE3B,SAAcC,GAoKT5I,EAAW2I,YAAY,QAAS,mBAAoB,4BA9J5D,QAAGsT,KACAhU,EAAAg4C,QAAA8B,mBACA95C,EAAAg4C,QAAU+B,gBAoKT/5C,EAAG+S,WAAY,EAlKhB/S,EAAAgT,YAAe,EACfhT,EAAAiU,aAAQ,EAqKX,QAASvC,KAlKL,GAAAiB,GAAYtY,EAAAsY,QAAA,eACb,yFAoKStb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAlKvBmB,IACIlU,EAAAg4C,WACIh4C,EAAAg4C,QAAQ7kC,gBAAgB,KAoKxBnT,EAAGg4C,QAnKIn2B,gBAAkB,KAoKzB7hB,EAAGg4C,QAnKI8B,gBAAY,KAoKnB95C,EAAGg4C,QAAQ+B,aAAe,OAOlC,QAASriC,KACL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAlKnBmB,IACIlU,EAAGg4C,WACHh4C,EAAAg4C,QAAI7kC,gBAAW,KAoKfnT,EAAGg4C,QAnKCn2B,gBAAuB,KAoK3B7hB,EAAGg4C,QAnKK8B,gBAAmB,KAoK3B95C,EAAGg4C,QAAQ+B,aAnKI,KAsKnB,QAAS7lC,MAmCT,QAAS8lC,GAnKOlnC,GAoKZ9S,EAAG+S,WAnKI,EAoKP/S,EAAGgT,YAnKK,EAGRhT,EAAGg4C,QAAA5jD,QAAe8e,KAAAJ,EAqKlB,KAnKI,GAAA5X,KAAA8E,GAAYqS,YAoKRrS,EAAGqS,YAAYnX,GAAGiX,YAAcnS,EAAGg4C,QAAQ7lC,YAlKnDnS,EAAAg4C,QAAA7kC,gBAAAnT,EAAAqS,YAAAnX,GAIAumB,GAAAzhB,EAAAg4C,QAAA7lC,UAAA,WACI,IAAA,GAAAjX,KAAW8E,GAAA2hB,YACX3hB,EAAA2hB,YAAYzmB,GAAApF,YAAAkK,EAAAg4C,QAAAliD,YAoKJkK,EAAGg4C,QAAQn2B,gBAAkB7hB,EAAG2hB,YAAYzmB,GAIpD28C,GAAkB,WAlKtB73C,EAAAg4C,QAAA8B,kBACI,KAAA,GAAW5+C,KAAA8E,GAAA+3C,kBACX,IAAY,GAAA5tC,KAAAnK,GAAAg4C,QAAA2B,aAAAC,SAEhB,GAAAngC,MAAAzZ,EAAA+3C,kBAAA78C,GAAAg9C,aAAA+B,uBAAA,GAAAxgC,MAAAzZ,EAAAg4C,QAAA2B,aAAAC,SAAAzvC,IAAA8vC,sBACej6C,EAAAg4C,QAAA8B,gBAAAjiD,KAAAmI,EAAA+3C,kBAAA78C,GAyKP8E,GAAGg4C,QAAQ+B,eACX,KAAK,GAAI7+C,KAAK8E,GAAGw5C,YACb,IAAK,GAAIrvC,KAAKnK,GAAGg4C,QAAQwB,YAAYU,QAC7Bl6C,EAAGw5C,YAAYt+C,GAAGw+C,YAAc15C,EAAGg4C,QAAQwB,YAAYU,QAAQ/vC,IAC/DnK,EAAGg4C,QAAQ+B,aAAaliD,KAAKmI,EAAGw5C,YAAYt+C,QAcpE,QAASi/C,GAAyBnC,GAC9B,GAAItkC,GAAcvZ,EAAsBgG,uBACpCi6C,GACAR,YAEJ,KAAK,GAAI1+C,KAAK8E,GAAGg4C,QAAQ8B,gBACrBM,EAAWR,SAAS/hD,KAAKoC,EAAQ,QAAQ+F,EAAGg4C,QAAQ8B,gBAAgB5+C,GAAGg9C,YAAa,cAExF,IAAImC,IACAH,WAEJ,KAAK,GAAIh/C,KAAK8E,GAAGg4C,QAAQ+B,aACrBM,EAAWH,QAAQriD,KAAKmI,EAAGg4C,QAAQ+B,aAAa7+C,GAAGw+C,WAEvD,IAAK15C,EAAG+S,UAuBH,CAlKT,GAASilC,IACFlkC,UAAQJ,EAAkBrT,OAC1B8R,UAAQnS,EAAAg4C,QAAe7kC,gBAAAhB,UACvBrc,UAAYkK,EAAAg4C,QAAAn2B,gBAAA/rB,UACZ8jD,SAAaj9C,KAAAqkB,UAAAo5B,GACbP,QAAcl9C,KAAAqkB,UAAAq5B,GAErBl1B,GAAkB60B,yBAAAhC,GAAAv5C,KAAA,SAAAC,GACVA,EAAUhJ,KAAAke,aAAgB,GAC1B7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,yBACI3B,IACAwF,MAqKI3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAlKtD7T,EAAOgT,YAAK,IAGhB,SAAArS,GACG5I,EAAU2I,YAAA,gCAGV,SAAQC,GACR5I,EAAQ2I,YAAe,+BAAArJ,WAAA,EAAA+F,KAAA,aAqHX,CACf,GAAI46C,IACAlkC,UAAWJ,EAAYrT,OACvB8R,UAAWnS,EAAGg4C,QAAQ7kC,gBAAgBhB,UACtCrc,UAAWkK,EAAGg4C,QAAQn2B,gBAAgB/rB,UACtC8jD,SAAUj9C,KAAKqkB,UAAUo5B,GAlK5BP,QAAAl9C,KAAAqkB,UAA2Bq5B,GAE5Bl1B,GAAwBm1B,kBAAAtC,GAAAv5C,KAAA,SAAAC,GACjBA,EAAAhJ,KAAAke,aAAA,GACH7b,EAAc2I,YAAG,UAAAhC,EAAAhJ,KAA0Bme,QAAA,yBACvC3B,IACAwF,MAED3f,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,yBACZ7T,EAAAgT,YAAA,IAGR,SAAUrS,GACT5I,EAAW2I,YAAY,kCA2S/B,QAnKQ0Y,GAAA1jB,GAoKJ,GAAI2jB,GAAO3jB,EAAK2jB,KAlKZ9iB,EAAAb,EAAAa,IAoKJ,OAnKe,QAAXA,IAAW,IAAA8iB,EAAAC,UAAA,IAAAD,EAAAC,UAoOnB,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAEzCxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GArtBX,GAAGwJ,GAAAC,IAoKHD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EAjKjBvU,EAAGwU,qBAAoB,SAAAC,GACnBzU,EAAGuU,YAAKE,GAGZzU,EAAGgT,YAAA,EAmKHhT,EAAG+S,WAlKC,EAmKJ/S,EAAGsS,WAlKU,EAmKbva,EAlKI2c,SAAW,EAmKf1U,EAAGuW,aACHvW,EAAG+3C,qBAjKH/3C,EAAGqlB,4BAmKHrlB,EAAG2hB,eACH3hB,EAAGw5C,eAEHx5C,EAAGyhB,oBAlKcA,EAmKjBzhB,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGg6C,yBAA2BA,EAjK9Bh6C,EAAAm6C,yBAAwBA,EAmKxBn6C,EAAGg4C,WAEHh4C,EAAGg4C,QAlKQ59B,KAAA,GAASX,MAmKpBzZ,EAAGg4C,QAAQ8B,mBACX95C,EAAGg4C,QAAQ+B,eAEX,IAlKI5nC,GAAGhY,EAA2BgG,uBAAwBwU,gBAAWxC,SAmKrEnS,GAAG63C,kBAlKgBA,EAGnB3lC,IAkjBAlS,EAAGwlB,qBAAuB,SAAU1S,GAChC,GAAIH,GAAUtY,EAAQsY,QAAQ,UAlK9B,0DACItb,WAAc,EACV+F,KAAI,MAsKZuV,GAAQjT,OAAOjB,KAAK,WAChB0mB,EAA4BK,qBAAqB1S,EAAIhd,WAAW2I,KAAK,SAAUC,GAlK/E3G,EAAA2I,YAAkB,UAAY,6CAAA,yBAC1BwR,KAoKD,SAnKUvR,GAoKT5I,EAnKS2I,YAAY,kCAqK1B,eAOPV,EAAGqa,MAAQ,WACPra,EAAGsa,GAnKK,GAAAb,OAqKZzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAAcxB,EACdyB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAlK/BgB,QAAS,GAAAhB,MACLqB,YAAI,GA8KR9a,EAAG+a,UAnKK,WAoKJ/a,EAAGua,cAAcE,QAAUza,EAAGua,cAAcE,QAAU,KAAO,GAAIhB,MAlKjEzZ,EAAA2a,YAAQF,QAAWza,EAAAua,cAAAE,SAsKvBza,EAAG+a,YAEH/a,EAAGgb,MAAQ,WACPhb,EAAGib,OAnKKpM,QAAS,GAsKrB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAnKE,CACA,IAAA4K,OAuKhBzZ,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAnKM,SAAAC,EAAAC,EAAAC,GAoKL3b,EAAGsa,GAnKK,GAAAb,MAAAgC,EAAUC,EAAAC,IAsKtB3b,EAAG4b,SAnKS,eAAc,aAAQ,aAAgB,YAAA,QAoKlD5b,EAAG6b,OAnKS7b,EAAA4b,QAAU,GAqKtB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAIZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAAQO,EAASC,UAAY,GAC3Chc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,cAuBZiU,EAAO4P,MAAQ,WACX5P,EAAO6P,GAAK,GAAIb,OAEpBhP,EAAO4P,QAEP5P,EAAOiN,MAAQ,WACXjN,EAAO6P,GAAK,MAGhB7P,EAAOpL,KAAO,SAAUuL,GACpBH,EAAOjU,OAAOqY,QAAS,GAG3BpE,EAAOuQ,MAAQ,WACXvQ,EAAOyR,QAAQrN,QAAS,GAG5BpE,EAAO+Q,QAAU,SAAUC,EAAMC,EAAOC,GACpClR,EAAO6P,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGtClR,EAAOkQ,aACHwB,WAAY,OACZrB,YAAa,EACbsB,QAAS,QAGb3R,EAAOmR,SAAW,QAClBnR,EAAOoR,OAASpR,EAAOmR,QAAQ,GAjK/BnR,EAAGjU,QACCqY,QAAI,GAqKRpE,EAAOyR,SACHrN,QAnKQ,iOA9bhBza,QACKC,OAAO,uBACPe,WAAW,qBAAsBkkD,MAqmB1C,WACI,YAOA,SAASiB,GAAe9/C,EAAS1C,EAAYyC,EAAQH,EAASE,EAAWR,EAAOygD,EAAaC,EAAmB1oC,EAC5G2oC,EAAoB1oC,EAAgBJ,EAAwBzX,EAAuBwgD,EAAqBC,EACxGC,EAA4BC,EAAwBC,EAAsBC,GAmC1E,QAAS9oC,KAlKNH,EAAA8D,mBAAApX,KAAA,SAAAC,GAoKwB,MAAfA,EAAIlI,QAlKLwJ,EAAA8V,YAAYpX,EAAAhJ,KAChBsc,EAAgBI,mBAAAD,GAAA1T,KAAA,SAAAC,GAoKY,MAAfA,EAAIlI,QACJwJ,EAAGqS,YAAc3T,EAAIhJ,KAlK9BmlD,EAAYI,aAAAlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QACHwJ,EAAAk7C,QAAAx8C,EAAAhJ,KAoKQsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAjK/D,SAAAC,GAoKC5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAhK9DV,EAASsS,WAAA,GAqKHva,EAAW2I,YAAY,QAAS,yBAA0B,mBAjKlE,SAASC,GAoKL5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAjKjEV,EAAWsS,WAAA,GAqKFva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAASC,GAlKb5I,EAAS2I,YAAA,QAAA,mBAAA,aAqKRV,EAAGm7C,aACKC,SAAU,EAlKVC,WAAA,WACAC,WAAA,qBAuKAF,SAAU,EACVC,WAAY,cAlKZC,WAAA,wBAuKAF,SAAU,EAlKlBC,WAAe,OACVC,WAAQ,iBAGLF,SAAC,EACHC,WAAA,OACEC,WAAA,kBAuKRt7C,EAAGu7C,eACCC,aAAc,UAlKtBnzB,KAAS,MAEDmzB,aAAY,WACZnzB,KAAA,MA6MR,QAASozB,GAAuBC,EAAuBrlC,GACnD,GAAIqlC,GAAyBrlC,EAAW,CAlKrC,GAAApb,IACAygD,sBAAwBA,EAoKnBrlC,UAAWA,EAjKnBskC,GAAQgB,uBAAA1gD,GAAAwD,KAAA,SAAAC,GAoKA,GAAmB,MAAfA,EAAIlI,OAAgB,CAjKxBkI,EAAAhJ,KAAAyF,OAAA,IAoKQ6E,EAAG47C,eACCC,aAAc,MACdC,KAAK,IAhKzB,KAAA,GAAA5gD,KAAAwD,GAAAhJ,KACRsK,EAAA47C,aAAA/jD,KAAA6G,EAAAhJ,KAAAwF,GAEA8E,GAAAsS,WAAA,MAEgBva,GAAA2I,YAAkB,QAAA,yBAAA,aAsKnB,SAASC,GAnKf5I,EAAe2I,YAAS,QAAY,yBAA4B,kBAGjEV,GAAK+7C,WAAAC,eAAA,KACNh8C,EAAAm7C,cAKH,QAAGc,GAAcC,GACJvmD,SAAVumD,GACApB,EAAaqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACY,MAAzBA,EAAAlI,SACAwJ,EAAAo8C,gBAAsB19C,EAAAhJ,KACtBsK,EAAAsS,WAAA,KAMH,QAAG+pC,GAA2BxqB,GAEjBl8B,SAAVk8B,GACAmpB,EAAesB,2BAAAzqB,GAAApzB,KAAA,SAAAC,GACP,MAAAA,EAAAlI,SACCwJ,EAAAu8C,aAAA79C,EAAAhJ,KACTsK,EAAAsS,WAAA,KAoLH,QAASmP,GApKetP,GAqKpBP,EApKmB8P,eAAkBvP,GAAA1T,KAAA,SAAAC,GACrB,MAoKRA,EAAIlI,QACJwJ,EAAG2hB,YApKajjB,EAAIhJ,MAqKfsK,EAAG2hB,YApKWxmB,OAAU,GAqKzBpD,EAAW2I,YApKI,OAAY,iDAAA,WAsK/BV,EAAGsS,WAAY,GAEfjY,EAAQwH,MApKG,QAAS,yBAAK,mBAuK9B,SAASlB,GACRtG,EAAQwH,MApKI,QAAG,mBAAY,oBAsK/B7B,EAAG+7C,WAAWl6B,gBApKa,KAqK3B7hB,EAAGw8C,YAAa,KAChBx8C,EAAG+7C,WApKQU,oBAAc,KAqKzBz8C,EAAG+7C,WApKSC,eAAW,KAuK3B,QAASU,GApKM5mD,GAqKX4kD,EApKmBiC,qBAAqB7mD,GAAA2I,KAAA,SAAAC,GAqKpC,GAAmB,MAAfA,EAAIlI,OAAgB,CAlKxB,GADDwJ,EAAA8V,YAAcpX,EAAAhJ,MACbsK,EAAW8V,YAAY3a,OAAS,EAqKxBd,EAAQ8C,OAAO,UAAW,uCAnKtB9F,WAAC,EACT+F,KAAU,WAEV,CAqKI,GAAInC,IACAnF,UAAWA,EAlKnB8kD,GAAUgC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GACE,MAAAA,EAAAlI,QACAwJ,EAAA68C,eAAAn+C,EAAAhJ,MAqKKsK,EAAG68C,eAAe1hD,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,6DAnK3C9F,WAAA,EACW+F,KAAA,OAuKE4C,EAAGsS,WAAY,GAlKjBjY,EAAAwH,MAAA,QAAA,yBAAA,mBAEV,SAAYlB,GAqKJtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAjKxD7B,EAAAsS,WAAgB,MAEfjY,GAAMwH,MAAA,QAAA,yBAAA,mBAsKP,SApKClB,GACAtG,EAAMwH,MAAA,QAAA,mBAAA,oBAwKd,QAASi7C,GAAqBhnD,EAAWugB,EAAW0mC,GAnKpD,GAAA1mC,GAAevgB,GAAAinD,EAAA,CACR,GAAA9hD,IAqKKnF,UAAWA,EACXugB,UAAWA,EAnKd2mC,MAAOD,EACTE,YAAe,EAsKdvC,GAAmBwC,sBAAsBjiD,GAAKwD,KAAK,SAASC,GACxD,GAAmB,MAAfA,EAAIlI,OAAgB,CAChBkI,EAAIhJ,KAAKyF,OAAS,IAClB6E,EAAGm9C,kBACCtB,aAAc,MACdC,KAAK,IAGb,KAAK,GAAI5gD,KAAKwD,GAAIhJ,KACdsK,EAAGm9C,gBAAgBtlD,KAAK6G,EAAIhJ,KAAKwF,GAGrC8E,GAAGsS,WAAY,MAO/B,QAAS8qC,GAAyBlB,GAC9BxB,EAAmB2C,yBAAyBnB,GAAYz9C,KAAK,SAASC,GAC/C,MAAfA,EAAIlI,QACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,MACpBsK,EAAGo8C,gBAAgBjhD,OAAS,GAC7Bd,EAAQ8C,OAAO,UAAW,0DACtB9F,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,GAlKnBjY,EAAAwH,MAAA,QAAyB,yBAAW,mBAsKrC,SApKKlB,GAqKJtG,EApKIwH,MAAA,QAAW,mBAAA,oBAwKvB,QAASy7C,GAAyBxnD,EAAWomD,EAAYrqB,GAErD,GAAI52B,IACAnF,UAAWA,EACXomD,WAAYA,EACZrqB,cAAeA,EACforB,YAAa,EAEjBvC,GApKmB6C,0BAAsBtiD,GAAKwD,KAAA,SAAAC,GAqKvB,MAAfA,EAAIlI,QAEJwJ,EAAGw9C,aApKI9+C,EAAYhJ,MAqKdsK,EApKEo8C,gBAAAjhD,OAAA,GACHd,EAAA8C,OAAW,UAAY,+DAqKnB9F,WAAW,EAnKX+F,KAAK,OAGd4C,EAAAsS,WAAA,GAEAjY,EAAAwH,MAAY,QAAA,yBAAA,mBAsKhB,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAInD,QApKQ47C,KAsKJ,GAAIxiD,IACAob,UApKWrW,EAAA+7C,WAAYU,oBAAApmC,UAqKvBvgB,UAAWkK,EAAG+7C,WAAWl6B,gBAAgB/rB,UACzC4nD,cAAe19C,EAAG+7C,WAAW4B,iBAAiBzB,WAC9C0B,iBAAkB59C,EAAG+7C,WAAW8B,oBAAoBhsB,cACpDisB,WAAY99C,EAAG+7C,WAAWgC,iBAAiB/9B,OAC3Cg+B,SAAUh+C,EAAG+7C,WAAWkC,iBAAiB51B,KAnKjD40B,YAAS,EAELzC,GAAI0D,kBAAkBjjD,GAAWwD,KAAA,SAAAC,GACb,MAAhBA,EAAAlI,QACIwJ,EAAAm+C,SAAQz/C,EAAAhJ,MACJsK,EAAGm+C,SAAAhjD,OAAmB,GACtBd,EAAG8C,OAAY,UAAA,iDAqKX9F,WAAW,EACX+F,KAAM,QAGdrF,EAAW2I,YAAY,QAAS,mCAAoC,WAlK5E,SAAQC,MAuKZ,QAASy9C,GAA6BnjD,GAnKnC,GAAStF,QAATsF,EAAc,CACb,GAAAojD,GAAWpjD,EAAAqjD,eAAqBC,WAAAvjD,MAAoB,IAqKhDgF,GAAGu+C,aACH,KAAK,GAAIrjD,KAAKmjD,GAAQ,CAClB,GAAIvF,IAnKP0F,cAAoBH,EAAWnjD,GAE5B8E,GAAAu+C,WAAI1mD,KAAWihD,QAuKnB94C,GAAGu+C,cAiCX,QAASE,GApK2BvC,EAAO39C,GAqKvCu8C,EAAuBqB,yBApKgBD,GAAAz9C,KAAA,SAAAC,GAqKhB,MAAfA,EAAIlI,SACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KAErBsK,EAAGo8C,gBApKQjhD,OAAY,GAqKvBd,EAAQ8C,OApKG,UAAA,gCAAA6C,EAAA+7C,WAAA4B,iBAAA9B,cAAAxkD,WAAA,EAAA+F,KAAA,OAsKf4C,EAAGsS,WAAY,EACX/T,GACAA,OAiFhB,QApKQ09C,GAAuBC,GAqKRvmD,SAAfumD,GACApB,EAAuBqB,yBAAyBD,GAAYz9C,KAAK,SAASC,GACtE,GAAmB,MAAfA,EAAIlI,OAAgB,CAEhBkI,EAAIhJ,KAAKyF,OAAS,IAnKxB6E,EAAAo8C,kBACQzqB,gBAAW,MACXmqB,KAAA,IAGd,KAAY,GAAG5gD,KAAAwD,GAAWhJ,KAChBsK,EAAGo8C,gBAAWvkD,KAAA6G,EAAAhJ,KAAiBwF,GAGjC8E,GAAAsS,WAAA,KA0KhB,QAAS+pC,GApKiBxqB,GAEXl8B,SAoKPk8B,GACAmpB,EApKesB,2BAAqBzqB,GAAApzB,KAAA,SAAoCC,GAqKpE,GAAmB,MAAfA,EAAIlI,OAAgB,CAnKpBkI,EAAKhJ,KAAAyF,OAAA,IAqKD6E,EAAGu8C,eACCmC,YAAa,MAnK5B5C,KAAA,IAGE,KAAA,GAAa5gD,KAAAwD,GAAAhJ,KACPsK,EAAKu8C,aAAQ1kD,KAAA6G,EAAAhJ,KAAAwF,GAEd8E,GAAAsS,WAAA,KAiLhB,QAASqsC,KAEL,GAAI1jD,IACAyiD,cAAe19C,EAAG4+C,QAAQjB,iBAAiBzB,WAC3C0B,iBAAkB59C,EAAG4+C,QAAQf,oBAAoBhsB,cACjDisB,WAAY99C,EAAG4+C,QAAQC,iBAAiBC,UACxCC,SAAU/+C,EAAG4+C,QAAQX,iBAAiB51B,KAE1CmyB,GAAYwE,WAAW/jD,GAAKwD,KAAK,SAASC,GACnB,MAAfA,EAAIlI,OACJwJ,EAAGm+C,SAAWz/C,EAAIhJ,KAElBqC,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAASC,MAIhB,QAASs+C,KACLj/C,EAAGsS,WAAY,CACf,IAAIpS,GAAa/F,EAAsBgG,uBACnClF,GAEAygD,sBAA0C/lD,QAAlBqK,EAAGw8C,YAA4Bx8C,EAAGw8C,YAAYd,sBAAwB,KAC9FrlC,UAAiD1gB,QAArCqK,EAAG+7C,WAAWU,oBAAoCz8C,EAAG+7C,WAAWU,oBAAoBpmC,UAAY,KAnKpH6oC,WAAoDvpD,QAA3CqK,EAAA+7C,WAAAC,eAAqDh8C,EAAA+7C,WAAAC,eAAAX,WAAA,KAC1D/4B,YAAgD3sB,QAAhDqK,EAAA+7C,WAAuBl6B,gBAAqC7hB,EAAK+7C,WAASl6B,gBAAKS,YAAA,KAC3EwR,SAAQ5zB,EAAWi/C,UAqKnBC,iBApK6BzpD,QAAtBqK,EAAA+7C,WAAsB5oC,gBAAAnT,EAAA+7C,WAAA5oC,gBAAA84B,YAAA,KAqK7BoT,KAAMr/C,EAAG+7C,WAAWuD,QAGK,YAAzBt/C,EAAG+7C,WAAWuD,SAnKK3pD,QAAfqK,EAAG4+C,QAAAjB,kBAAYhoD,QAAAqK,EAAA4+C,QAAAjB,iBAAA7B,KAAA,GAAA97C,EAAA4+C,QAAAjB,iBAAA7B,KACXnmD,QAAJqK,EAAA4+C,QAAIf,qBACAloD,QAoKHqK,EApKG4+C,QAAAf,oBAAA/B,KAAA,GAAA97C,EAAA4+C,QAAAf,oBAAA/B,KAqK2BnmD,QAA/BqK,EAAG4+C,QAAQC,kBAAqElpD,QAAnCqK,EAAG4+C,QAAQC,iBAAiB/C,KAAuD,GAAnC97C,EAAG4+C,QAAQC,iBAAiB/C,OACzH7gD,EAAIihD,WAA6CvmD,QAA/BqK,EAAG4+C,QAAQjB,iBAAiC39C,EAAG4+C,QAAQjB,iBAAiBzB,WAAa,KACnGjhD,EAAI42B,cAAiB7xB,EAAG4+C,QAAQ,oBAAuB5+C,EAAG4+C,QAAQf,oBAAoBhsB,cAAgB,KACtG52B,EAAI+kB,OAAyCrqB,QAA/BqK,EAAG4+C,QAAQC,iBAAiC7+C,EAAG4+C,QAAQC,iBAAiBC,UAAY,KAClG7jD,EAAIskD,OAAqC5pD,QAA3BqK,EAAG4+C,QAAQY,aAA6Bx/C,EAAG4+C,QAAQY,aAAazmC,GAAK,KAnK1F9d,EAAA+iD,SAAWroD,QAAAqK,EAAA+7C,WAAAkC,iBAAAj+C,EAAA4+C,QAAAX,iBAAA51B,KAAA,MAIU,WAAtBroB,EAAA+7C,WAAkBuD,UAClBrkD,EAAAnF,UAA6CH,QAA7CqK,EAAkB+7C,WAAOl6B,gBAAoB7hB,EAAA+7C,WAAAl6B,gBAAA/rB,UAAA,KAE7CmF,EAAAihD,WAA8BvmD,QAAjBqK,EAAA+7C,WAAiB4B,iBAAA39C,EAAA+7C,WAAA4B,iBAAAzB,WAAA,KAqK9BjhD,EAAI42B,cAAsDl8B,QAArCqK,EAAG+7C,WAAW8B,oBAAoC79C,EAAG+7C,WAAW8B,oBAAoBhsB,cAAgB,KAnK7H52B,EAAA+kB,OAAiDrqB,QAArCqK,EAAA+7C,WAAkBgC,iBAAwB/9C,EAAA+7C,WAAAgC,iBAAA/9B,OAAA,KAClD/kB,EAAIskD,OAAoB5pD,QAAhBqK,EAAA+7C,WAAgByD,aAAAx/C,EAAA+7C,WAAAyD,aAAAzmC,GAAA,KAqKxB9d,EApKI+iD,SAAkBroD,QAAfqK,EAAW+7C,WAAIkC,iBAAAj+C,EAAA+7C,WAAAkC,iBAAA51B,KAAA,MA0K1BoyB,EApKewE,qBAAehkD,GAAAwD,KAAA,SAAAC,GAqK1B,GApKW,MAoKPA,EAAIlI,OApKG,CAqKPwJ,EAAG8Z,cApKIpb,EAAehJ,IAqKtB,IAAIugB,GAAInf,SAASijB,cAAc,IAC/BjjB,UApKGC,KAAAijB,YAAA/D,GACHA,EAAAgE,MAAA,eAqKA,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OAnKrBqI,KAAK,oBAuKLtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EACrCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,iBAAkB,mBACpDwR,IAUAlS,EAAGsS,WAAY,MAEfjY,GAAQwH,MAAM,QAAS,0BAA4BxK,WAAW,EAAM+F,KAAM,MAE9E4C,GAAGsS,WAAY,IAIvB,QAASmtC;AACLz/C,EAAGsS,WAAY,CACf,IAAIpS,GAAa/F,EAAsBgG,uBACnClF,GAEAygD,sBAA0C/lD,QAAlBqK,EAAGw8C,YAA4Bx8C,EAAGw8C,YAAYd,sBAAwB,KAC9FrlC,UAAiD1gB,QAArCqK,EAAG+7C,WAAWU,oBAAoCz8C,EAAG+7C,WAAWU,oBAAoBpmC,UAAY,KAC5G6oC,WAA6CvpD,QAAhCqK,EAAG+7C,WAAWC,eAA+Bh8C,EAAG+7C,WAAWC,eAAeX,WAAa,KACpG/4B,YAA+C3sB,QAAjCqK,EAAG+7C,WAAWl6B,gBAAgC7hB,EAAG+7C,WAAWl6B,gBAAgBS,YAAc,KACxGwR,SAAU5zB,EAAWi/C,UACrBC,iBAAoDzpD,QAAjCqK,EAAG+7C,WAAW5oC,gBAAgCnT,EAAG+7C,WAAW5oC,gBAAgB84B,YAAc,KAnKrHoT,KAASr/C,EAAA+7C,WAAWuD,QAGS,YAArBt/C,EAAA+7C,WAAAuD,SACgC3pD,QAAhCqK,EAAA4+C,QAAejB,kBAAiBhoD,QAAAqK,EAAA4+C,QAAAjB,iBAAA7B,KAAA,GAAA97C,EAAA4+C,QAAAjB,iBAAA7B,KACKnmD,QAArCqK,EAAA4+C,QAAaf,qBAqK8BloD,QAAtCqK,EAAG4+C,QAAQf,oBAAoB/B,KAA0D,GAAtC97C,EAAG4+C,QAAQf,oBAAoB/B,KAnK1DnmD,QAAjCqK,EAAA4+C,QAAYC,kBAAmClpD,QAAAqK,EAAA4+C,QAAAC,iBAAA/C,KAAA,GAAA97C,EAAA4+C,QAAAC,iBAAA/C,OACvC7gD,EAAIihD,WAAgBvmD,QAALqK,EAAK4+C,QAAAjB,iBAAA39C,EAAA4+C,QAAAjB,iBAAAzB,WAAA,KACjBjhD,EAAA42B,cAAe7xB,EAAA4+C,QAAA,oBAAA5+C,EAAA4+C,QAAAf,oBAAAhsB,cAAA,KACf52B,EAAA+kB,OAAArqB,QAAAqK,EAAA4+C,QAAAC,iBAAA7+C,EAAA4+C,QAAAC,iBAAAC,UAAA,KACH7jD,EAAAskD,OAAgC5pD,QAArBqK,EAAA4+C,QAAYY,aAASx/C,EAAA4+C,QAAoCY,aAAAzmC,GAAA,KAqKpE9d,EAAI+iD,SAA8CroD,QAAlCqK,EAAG+7C,WAAWkC,iBAAiCj+C,EAAG4+C,QAAQX,iBAAiB51B,KAAO,MAhKrG,WAAAroB,EAAA+7C,WAAAuD,UACDrkD,EAAAnF,UAA0BH,QAAXqK,EAAA+7C,WAAWl6B,gBAAA7hB,EAAA+7C,WAAAl6B,gBAAA/rB,UAAA,KAsK1BmF,EApKIihD,WAAwBvmD,QAAhBqK,EAAA+7C,WAAgB4B,iBAAA39C,EAAA+7C,WAAA4B,iBAAAzB,WAAA,KAqK5BjhD,EAAI42B,cApKIl8B,QAAAqK,EAAA+7C,WAAA8B,oBAAA79C,EAAA+7C,WAAA8B,oBAAAhsB,cAAA,KAqKR52B,EAAI+kB,OApK6BrqB,QAArBqK,EAAI+7C,WAAKgC,iBAAY/9C,EAAA+7C,WAAAgC,iBAAA/9B,OAAA,KAqKjC/kB,EAAIskD,OApK8B5pD,QAAtBqK,EAAG+7C,WAAAyD,aAAmBx/C,EAAA+7C,WAAAyD,aAAAzmC,GAAA,KAqKlC9d,EAAI+iD,SApK6BroD,QAAjBqK,EAAA+7C,WAAAkC,iBAAiBj+C,EAAA+7C,WAAAkC,iBAAA51B,KAAA,MAwKrCoyB,EApKiBwE,qBAAmBhkD,GAAAwD,KAAA,SAAAC,GAsKhC,GADAsB,EAAGsS,WApKY,EAqKI,MAAf5T,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WApKI,CAqKP,IAAIrX,IACAuF,QAASN,EAAWM,QACpBk/C,KAAM1/C,EAAG8Z,cACT6lC,WAAW,GAlKlBvgD,EAAA7E,EAA+B8E,MACpChI,WAAA,EACIiI,eAAkB,cAClBC,gBAAgB,aACRrK,YAAI,8DACJE,WAAQ,kBAqKRC,aApKO,KAqKP+H,KAAM,KACNoC,SApKQ,SAqKRC,UAAU,EACVyQ,SAnKA3N,MAAS,WACF,MAAAtH,MAyKXmE,GAAcM,OAAOjB,KAAK,SAASC,KAlK5C,kBAGAsB,GAAAsS,WAAA,EACCjY,EAAcwH,MAAA,QAAA,oDAAAxK,WAAA,EAAA+F,KAAA,MAsKV4C,GAAGsS,WAAY,IAIvB,QApKQoF,KAqKJ1X,EAAG+7C,WApKC5oC,gBAA0B,KAqK9BnT,EAAGqS,eACHrS,EAAG+7C,WApKCl6B,gBAAuB,KAqK3B7hB,EAAG2hB,eACH3hB,EAAGw8C,YAAc,KAnKjBx8C,EAAAk7C,WAqKAl7C,EAAG+7C,WApKSU,oBAAgB,KAqK5Bz8C,EAAG8V,eACH9V,EAAG+7C,WApKQC,eAAA,KAqKXh8C,EAAG4+C,QApKKjB,iBAAW,KAqKnB39C,EAAG47C,gBACH57C,EApKG4+C,QAAAf,oBAAc,KAqKjB79C,EAAGo8C,mBACHp8C,EAAG4+C,QAAQC,iBAAmB,KAC9B7+C,EAAGu8C,gBAnKPv8C,EAAA4+C,QAASX,iBAAuB,KAC5Bj+C,EAAG4+C,QAAAY,gBACHx/C,EAAAm+C,YACAn+C,EAAA+7C,WAAU4B,iBAAA,KAqKV39C,EAAGm9C,mBACHn9C,EAAG+7C,WApKC8B,oBAA2B,KAqK/B79C,EAAG+7C,WApKCgC,iBAA0B,KAqK9B/9C,EAAG+7C,WApKCkC,iBAA2B,KAqK/Bj+C,EAAG+7C,WApKCyD,aAAiB,KAqKrBx/C,EAAGm+C,YACHjsC,IAGJ,QAASR,KAnKL1R,EAAA+7C,WAAOuD,QAAW,KAqKlBt/C,EAAG+7C,cACH/7C,EAAGw8C,YApKQ,KAqKXx8C,EAAG4+C,WACH1sC,IA34BJ,GAAGlS,GAAAC,IAoKHD,GAAGsU,SAnKS,KAoKZtU,EAAGgT,YAAa,EAlKhBhT,EAAG+S,WAAA,EAoKH/S,EAAGsS,WAAY,EAlKftS,EAAG4/C,kBAoKH5/C,EAAGqS,eACHrS,EAAG4+C,WACH5+C,EAAG+7C,cAlKH/7C,EAAG27C,uBAAgBF,EAoKnBz7C,EAAGyhB,oBAnKcA,EAoKjBzhB,EAAGi8C,iCAnKcA,EAoKjBj8C,EAAGq8C,+BAnKYA,EAoKfr8C,EAAG08C,oBAAsBA,EACzB18C,EAAG88C,qBAAuBA,EAlK1B98C,EAAGo9C,yBAAcA,EAoKjBp9C,EAAGs9C,yBAnKeA,EAoKlBt9C,EAAGo9C,yBAnKyBA,EAoK5Bp9C,EAAGs9C,yBAnKcA,EAoKjBt9C,EAAG2+C,QAnKCA,EAoKJ3+C,EAAGy9C,aAAeA,EAClBz9C,EAAG0X,MAAQA,EACX1X,EAAG0R,OAASA,EACZ1R,EAAGo+C,6BAA+BA,EAlKlCp+C,EAAAy+C,+BAAwBA,CAqKxB,IAAItsC,GAnKWhY,EAAKgG,uBAAAwU,gBAAAxC,SAoKpBnS,GAAGi/C,qBAnKiBA,EAoKpBj/C,EAAGy/C,sBAAwBA,EAC3B1nD,EAAW2c,SAAU,EAlKrBxC,IAkKAF,EAAWI,mBAAUD,GAAA1T,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,SAqKQwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAlKvB,SAAS3R,GACL5I,EAAA2I,YAAe,QAAA,mBAAiC,oBAqfpDV,EAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAAM,sWAriBdj0B,QACKC,OAnKM,0BAoKNe,WAAW,iBAAkBmlD,MAkvBtC,WACI,YAOA,SAASsF,GApKO9lD,EAAiBhC,EAAWyC,EAAAH,EAAA+jB,GAoMxC,QAASlM,KACLkM,EApKWgB,qBAAY3gB,KAAA,SAAAC,GACZ,MAoKHA,EApKGlI,QACHwJ,EAAAqf,iBAAc3gB,EAAShJ,KAqKvBsK,EAAG8/C,uBAAyBtlD,EAAOyC,OAAO+C,EAAGqf,kBAAoBjH,UAAY,IAnK9EpY,EAAAsS,WAAY,GAsKXva,EAAW2I,YAAY,QAAS,yBAA0B,iBAlKtE,SAASC,GACF5I,EAAY2I,YAAA,QAAA,mBAAA,kBAwKnB,QApKQsT,KAqKJhU,EAAG+/C,OACH//C,EAAG+S,WApKC,EAqKJ/S,EAAGgT,YApKC,EAqKJhT,EAAGwX,aApKW,EAqKdxX,EAAGyX,WApKC,EAuKR,QAASC,KAnKL1X,EAAAgT,YAAO,EAqKPkB,IACAlU,EAAG+S,WApKQ,EAqKX/S,EAAG+/C,OAGP,QAASruC,KACL,GAAIiB,GApKQtY,EAAIsY,QAAa,eAqKzB,yFAGItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAnKhBuB,EAAAgT,YAAI,EACJkB,IACAlU,EAAA+S,WAAc,EACd/S,EAAA+/C,SA0KR,QApKQ7rC,KAqKJlU,EAAGggD,iBApKS5rC,gBAuKhB,QAAS6rC,GApKaF,GAqKlB//C,EAAGwX,aApKS,EAqKZxX,EAAGyX,WApKS,EAqKZzX,EAAG+S,WApKS,EAqKZ/S,EAAGgT,YAAa,EAChBhT,EAAG+/C,IApKK3rD,QAAI8e,KAAA6sC,GAEA,IAoKRA,EAAIG,SACJlgD,EAAG8f,YApKK,EAsKZ,KAAK,GAAIjI,KApKG7X,GAAAqf,iBAqKJrf,EAAGqf,iBApKexH,GAAAuI,sBAAA2/B,EAAAG,SAqKlBlgD,EAAG+/C,IApKC1/B,qBAAMrgB,EAAAqf,iBAAAxH,IA0KtB,QAASsoC,GAAmBJ,GACxB,GAAIptC,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GApKQjT,OAAAjB,KAAA,WAqKJ2f,EAAoB+hC,mBAAmBJ,EAAI3/B,qBAAqB3hB,KAAK,SAAUC,GAnK7D,MAAXA,EAAAlI,QAqKCuB,EAAW2I,YAAY,UAAW,mCAAoC,gBAnKvEwR,KAEHna,EAAc2I,YAAS,QAAA,6BAAArJ,WAAsD,EAAA+F,KAAW,QAuKzF,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,qEAAuErJ,WAAW,EAAM+F,KAAM,UAlK1I,cAyKA,QApKOgjD,GAAcL,GACJ,OAAV//C,EAAA+/C,IAAA1/B,sBAAU1qB,SAAAqK,EAAA+/C,IAAA1/B,qBACV0/B,EAAAG,OAAW,EAKXH,EAAAG,OAAQlgD,EAAA+/C,IAAA1/B,qBAAsBD,oBAG9BpgB,EAAA+S,UAmBHqL,EAAAiiC,iBAAAN,GAAAthD,KAAA,SAAAC,GAqKYA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,uBACpD3B,IAnKXlS,EAAAgT,YAAA,EACThT,EAAA+S,WAAA,EAqKoB2E,MAnKpB3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,uBACY7T,EAAAgT,YAAA,IAwKG,SAAUrS,GApKhB5I,EAAiB2I,YAAO,+BAA6BrJ,WAAqB,EAAA+F,KAAA,SA9BxEghB,EAAQkiC,gBAAmBP,GAAAthD,KAAA,SAAAC,GACnBA,EAAAhJ,KAAAke,aAAe,GACvB7b,EAAW2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBACX3B,IACAlS,EAAAgT,YAAkB,EAClB0E,MAEA3f,EAAW2I,YAAmB,QAAAhC,EAAAhJ,KAAAme,QAAA,uBAC9B7T,EAAWgT,YAAA,IAuKP,SAAUrS,GACT5I,EAAW2I,YAAY,iCA2BnC,QAAS6/C,GAAyBR,GApK/B,GAAAh/C,GAAA,yBAAcg/C,EAAA,SAAA,WAAA,UAAA,gBACdpnC,GAAAonC,EAAA,SAAuB,WAAe,UAAA,6BAClCptC,EAAAtY,EAAcsY,QAAA,UAsKb5R,GAAO1J,WAAW,EAAM+F,KAAM,MAClCuV,GAAQjT,OAAOjB,KAAK,WApKrB2f,EAAamiC,yBAAAR,EAAA3/B,qBAAA3hB,KAAA,SAAAC,GACD,MAAAA,EAAAlI,QACAuB,EAAA2I,YAAA,UAAAiY,EAAA,gBACZzG,KAuKana,EAAW2I,YAAY,QAAS,6BAA+BrJ,WAAW,EAAM+F,KAAM,QAnKnG,SAASuD,GACT5I,EAAY2I,YAAA,QAAA,qEAAArJ,WAAA,EAAA+F,KAAA,UAEZ,cAvBH,GAAI4C,GApKIC,IAyKRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBApKmB,SAAAC,GAqKlBzU,EAAGuU,YApKSE,GAuKhBzU,EAAGgT,YApKS,EAqKZhT,EAAG+S,WApKW,EAqKd/S,EAAGsS,WApKS,EAqKZtS,EAAGqf,oBACHtnB,EAAW2c,SAAU,EAErB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OApKSA,EAqKZ1R,EAAGkU,UApKSA,EAqKZlU,EAAGigD,iBApKSA,EAqKZjgD,EAAGmgD,mBAAqBA,EACxBngD,EAAGogD,iBAAmBA,EACtBpgD,EAAGugD,yBAA2BA,EAC9BvgD,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAEbvF,8EAnCJ9d,QACKC,OAAO,4BACPe,WApKU,mBAAkByqD,MAo3BrC,WACI,YAOA,SAASW,GAAazoD,EAAYyC,EAAQH,EAASN,EAAO0mD,EAAiBtmD,EAAsBsQ,GAiD7F,QAASyH,KACLuuC,EAAgBC,iBAAiBjiD,KAAK,SAAUC,GACzB,MAAfA,EAAIlI,QACJwJ,EAAGwkB,aAAe9lB,EAAIhJ,KACtBsK,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,aAEtD,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAI5D,QAASsT,KACLhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAEhBhT,EAAG66B,MAAO,EAEV76B,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAGnB,QAASC,KACL1X,EAAGgT,YAAa,EAChBkB,IACAlU,EAAG2gD,YAEP,QAASjvC,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAChBkB,IACAlU,EAAG2gD,cAMX,QAASzsC,KACLlU,EAAG4gD,aAAaxsC,gBAGpB,QAASysC,GAAaC,GAClB9gD,EAAGwX,aAAa,EAChBxX,EAAGyX,WAAY,EACfzX,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAG2gD,SAAWvsD,QAAQ8e,KAAK4tC,GAG/B,QAASC,GAAeD,GAEpB,GAAInuC,GAAUtY,EAAQsY,QAAQ,UAC1B,4CACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBgiD,EAAgBM,eAAeD,EAASE,YAAYviD,KAAK,SAAUC,GAC5C,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,+BAAgC,YAClEwR,KAEA7X,EAAQwH,MAAM,QAAS,yBACnBxK,WAAW,EACX+F,KAAM,UAKnB,cAKP,QAAS6jD,GAAqBH,GAC1B,GAAI//C,GAAM,yBAA4B+/C,EAAS,SAAY,WAAa,UAAY,gBAChFnoC,GAASmoC,EAAS,SAAY,WAAa,UAAY,4BACvDnuC,EAAUtY,EAAQsY,QAAQ,UAC1B5R,GACI1J,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBgiD,EAAgBQ,qBAAqBH,EAASE,YAAYviD,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWiY,EAAM,YACxCzG,KAEAna,EAAW2I,YAAY,QAAS,yBAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,iEAC5BrJ,WAAW,EACX+F,KAAM,UAlK1B,cA0KI,QAtKC8jD,GAAWJ,GAuKR,GAAIptC,GAAcvZ,EAAsBgG,sBACnCH,GAAG+S,WApJT+tC,EAAAntC,WAAuBD,EAAerT,OAClCogD,EAAcU,aAAAL,GAAAriD,KAAA,SAAAC,GAuKLA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,YArKpD3B,IACDlS,EAAAgT,YAAA,EACAhT,EAAA+S,WAAA,EACZ2E,MAwKa3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,YArKtD7T,EAAAgT,YAAA,IAGT,SAAerS,GACftG,EAAiBwH,MAAA,+BACjBxK,WAAuB,EACvB+F,KAAe,WAjCb0jD,EAAAhtC,UAAaJ,EAAoBrT,OAClCogD,EAAKW,YAAAN,GAAAriD,KAAA,SAAAC,GAuKOA,EAAIhJ,KAAKke,aAAc,GArKpC7b,EAAmB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,YACT3B,IACVlS,EAAAgT,YAAA,EACU0E,MAEA3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,YACV7T,EAAAgT,YAAA,IAGC,SAASrS,GAuKDtG,EAAQwH,MAAM,kCAlL1B,GAAI7B,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAAW2c,SAAU,EAErB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAG6gD,aAAeA,EAClB7gD,EAAG+gD,eAAiBA,EACpB/gD,EAAGihD,qBAAuBA,EAC1BjhD,EAAGkhD,aAAeA,EAClBlhD,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EACfvF,IACAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GAAQ,GAAIC,QAAO,gBACnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EAAMje,KAAKme,GAGZ,MAFA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,0GAjDnBtM,QACKC,OAAO,wBACPe,WAAW,eAAgBorD,MAmNpC,WACI,YAOA,SAtKQa,GAAgBtpD,EAAAkC,EAAsBD,EAAUQ,EAAKD,EAAAF,EAAAN,EAAAunD,EAAAtvC,EAAAJ,EAAA8oC,EAuKzDE,EAtKgB2G,EAAgBC,EAAArnD,EAAAM,GAmPhC,QAASyX,KACDC,GACAsvC,IACAzvC,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GArKtC,MAArBA,EAAAlI,SACKwJ,EAAAqS,YAAA3T,EAAAhJ,KACEsK,EAACsS,WAAS,IAElB,SAAK3R,GACD5I,EAAW2I,YAAA,QAAA,mBAAA,sBAInBV,EAAA0hD,iBAAoB7/B,gBAAY,KAC5B7hB,EAAA2hB,gBA4KR,QAASF,GAtKWtP,GAuKhBwvC,IACA/vC,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QArKLwJ,EAAA2hB,YAAejjB,EAAAhJ,KACdsK,EAAAsS,WAAW,GAwKXva,EAtKU2I,YAAA,QAAA,yBAAA,mBAwKf,SAAUC,GArKV5I,EAAY2I,YAAA,QAAA,mBAAA,oBA4KnB,QAtKQgR,KAwKJ1R,EAAGmT,gBAtKU,KAuKbnT,EAAG6hB,gBAtKiB,KAuKpB7hB,EAAG4hD,oBAtKkB,KAuKrB5hD,EAAG6hD,yBAtKoB,KAuKvB7hD,EAAG8hD,kBAtKS,KAuKZ9hD,EAAG+hD,2BAtKyB,KAuK5B/hD,EAAGgiD,gBAtKS,KAuKZhiD,EAAGiiD,iBAtKY,KAuKfjiD,EAAGkiD,eAtKS,KA2KhB,QAASC,KAELniD,EAAGsS,WAAY,CACf,IAAI8vC,GAtKG,KACHC,EAAS,KACTniD,EAAA/F,EAA6BgG,uBAuK7BmiD,EAtKY,IAGY,KAsKxBtiD,EAAG4hD,oBAtKQ7oC,GAuKXqpC,GAtKQ,EAuKDpiD,EAtKC4hD,oBAAA7oC,GAAA,IAuKRqpC,EAAQpiD,EAtKG8hD,kBAAApV,eA2KX4V,EAD8B,IAA9BtiD,EAAG4hD,oBAAoB7oC,GArKpB,YAEK/Y,EAAA4hD,oBAAWW,eA0KvB,IAAIC,GAAa,IACJ,IAATJ,EACAI,EAAa,kBAAoBxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,IAAML,EAAY,OAAStiD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGiiD,iBAAiBY,eAAiB,4BAAmC7iD,EAAG6hD,yBAAyBiB,qBACpT,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAC7Hb,EAAQ,EACfI,EAAaxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,IAAML,EAAY,OAAStiD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBArKtS,eAAA7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cACTb,IAAA,IAuKYI,EAAaxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,IAAML,EAAY,MAAQtiD,EAAG6hD,yBAAyBiB,qBAC7I,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cArK3H,IAAOE,GAAA,IASL,IAgKCA,EAAc,gGAhKAxtD,QAAfqK,EAAAojD,cAAepjD,EAAAojD,aAAAjoD,OAAA,EAAA,CACf,GAAAkoD,KACA,KAAA,GAAAnoD,KAAkB8E,GAAAojD,aAClBC,EAAAxrD,KAAAmI,EAAoBojD,aAAAloD,GAAAooD,cAEpBtjD,GAAAujD,KAAYF,EAAA3vB,OAIZ,GAAsB/9B,QAAtBqK,EAAA82C,cAAsB92C,EAAA82C,aAAA37C,OAAA,EAAA,CACtB,GAAAkoD,KACA,KAAA,GAAAnoD,KAAA8E,GAAsB82C,aAwKbuM,EAAIxrD,KAAKmI,EAAG82C,aAAa57C,GAAG8kB,OArKrChgB,GAAAjC,KAAeslD,EAAA3vB,OAKf,GAAe/9B,QAAfqK,EAAA69C,qBAAe79C,EAAA69C,oBAAA1iD,OAAA,EAAA,CACf,GAAAkoD,KACA,KAAA,GAAAnoD,KAAA8E,GAAqB69C,oBACrBwF,EAAAxrD,KAAAmI,EAAmB69C,oBAAA3iD,GAAA22B,cAEnB7xB,GAAAwjD,YAAYH,EAAA3vB,OAKZ,GAAa/9B,QAAbqK,EAAA29C,kBAAa39C,EAAA29C,iBAAAxiD,OAAA,EAAA,CACb,GAAAkoD,KACA,KAAA,GAAcnoD,KAAA8E,GAAA29C,iBACd0F,EAAAxrD,KAAkBmI,EAAA29C,iBAAAziD,GAAAghD,WAyKbl8C,GAAGyjD,SAAWJ,EAAI3vB,OAWY,IAA9B1zB,EAAG4hD,oBAAoB7oC,GACvBspC,EAAc,EACPriD,EAAG4hD,oBAAoB7oC,GAAK,IAtKxCspC,EAAiBriD,EAAA8hD,kBAAApV,cAMhB,IAAEzxC,IAEHnF,UAAAkK,EAAA6hB,gBAA4B/rB,UACvB4tD,YAAsB/tD,QAAtBqK,EAAAyjD,SAAuCzjD,EAAIyjD,SAAA,GAwK3CE,eAAmChuD,QAAlBqK,EAAGwjD,YAA4BxjD,EAAGwjD,YAAc,GACjEI,QAAqBjuD,QAAXqK,EAAGjC,KAAqBiC,EAAGjC,KAAO,GAC5CulD,cAA2B3tD,QAAXqK,EAAGujD,KAAqBvjD,EAAGujD,KAAO,GAtK1DnE,iBAAqBp/C,EAAAmT,gBAAA84B,YACd3pB,YAAAtiB,EAAgB6hB,gBAAAS,YACfuhC,WAAA7jD,EAAc4hD,oBAAA7oC,GACd+qC,WAAM9jD,EAAA+jD,iBAAAD,WACPE,MAAArnD,KAAAqkB,UAAAhhB,EAAAqyB,KACCqd,SAAAz1C,EAAc,QAAA+F,EAAA+iD,KAAAC,KAAA,cACdrT,OAAM11C,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAwKNlE,SAAU/+C,EAAGikD,mBAAmB57B,KAGhCyL,SAAU5zB,EAAWi/C,UACrB+E,QAAS1B,EAtKjB2B,kBAAgB,QACRC,OAAApkD,EAAW6hD,yBAAA9oC,GACXsrC,aAAArkD,EAAAyiD,mBAAA4B,aACAC,UAAAtkD,EAAA4hD,oBAAkC2C,WAwKlCC,WAvKYnC,EAwKZoC,SAvKQtB,EAGU,KAuKlBnjD,EAvKG4hD,oBAAe7oC,GAwKlB9d,EAvKImvB,MAAA,GAwKiC,IAA9BpqB,EAAG4hD,oBAAoB7oC,KAC1B/Y,EAAG8hD,kBAAkBpV,cAAgB,GAtKxCzxC,EAAAmvB,MAAAz0B,QAAAqK,EAAAgiD,gBAAAxqB,WAAAx3B,EAAAgiD,gBAAAxqB,WAAA,GACEv8B,EAAAyxC,cAAmC/2C,QAAlBqK,EAAA8hD,kBAAkBpV,cAAA1sC,EAAA8hD,kBAAApV,cAAA,KA0KlCzxC,EAAImvB,MAA6Cz0B,QAApCqK,EAAGiiD,iBAAiB3qB,aAA6Bt3B,EAAGiiD,iBAAiB3qB,aAAe,GAC7Fr8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,KASzH4U,EAvKWa,mBAAAlnD,GAAAwD,KAAA,SAAAC,GAwKP,GAvKe,MAAXA,EAAAlI,OAAW,CAwKXwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAtK5BsK,EAAAsS,WAAe,CACd,IAAA2D,GAAWnf,SAAAijB,cAAqB,IAwK5BjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACrBqI,KAAM,oBArKbtJ,EAASC,OAAAwlB,IAAAC,gBAAAvc,EAwKNnD,GAAQ4E,KAAK5K,EAAK,UAtKvBsD,EAAA2I,YAAiB,UAAA,iBAAA,uBAQjBrG,GAAAwH,MAAgB,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OAwKX4C,EAAGsS,WAAY,GAGnB,SAAU3R,GAtKT5I,EAAA2I,YAAqB,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OAwKlB4C,EAAGsS,WAAY,IAmM3B,QAASoyC,KArKLC,GAwKA,IAvKI1pD,IAwKA6oD,WAvKiCnuD,QAA3BqK,EAAU+jD,iBAAiC/jD,EAAG+jD,iBAAWD,WAAgB,GAwK/EhuD,UAvKOkK,EAAA6hB,gBAAW/rB,UAClBF,OAAAoK,EAAA4hD,oBAAgB7oC,GAwKhB6rC,YAvKM5kD,EAAU8hD,kBAAiBpV,cAwKjClV,WAvKoB,IAAbx3B,EAAS8hD,kBAAIpV,cAAA1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACpBqtB,qBAA6D,IAA7C7kD,EAAA8hD,kBAAmBpV,cAA0B1sC,EAAA+hD,2BAAgC7F,WAAM,EAwKnGxM,SAvKMz1C,EAAU,QAAA,GAAWwf,MAAMzZ,EAAA+iD,KAAQC,MAAQ,cAwKjDrT,OAAQ11C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cApKpC,KAAdjjD,EAAA6hD,yBAAc9oC,KAwKV9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MAIlCivB,EAAsBwD,UAAU7pD,GAAKwD,KAAK,SAAUC,GAC7B,MAAfA,EAAIlI,QAtKLwJ,EAAAk7C,QAAAx8C,EAAgBhJ,KACfsK,EAAMk7C,QAAA//C,OAAA,GACLd,EAAS8C,OAAG,UAAc,kFACvB9F,WAAQ,EAwKJ+F,KAAM,OAId4C,EAAGsS,WAAY,GArKfva,EAAM2I,YAAA,QAAA,yBAAA,0BAyKX,SAvKSC,GAwKR5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAwC5D,QAASg8C,GAAoB5mD,GAtKzB,GAAIA,EAAM,CAwKN,GAAImF,IAtKJ6oD,WAA8BnuD,QAAhBqK,EAAA+jD,iBAAgB/jD,EAAA+jD,iBAAAD,WAAA,GAC9BhuD,UAAcA,EACdF,OAAAoK,EAAA4hD,oBAAmC7oC,GAER,KAA3B/Y,EAAA6hD,yBAA2B9oC,KAC3B9d,EAAA+oD,MAAArnD,KAAqBqkB,UAAAhhB,EAAAqyB,MAErBivB,EAAeyD,cAAoB9pD,GAAAwD,KAAA,SAAAC,GACpB,MAAfA,EAAYlI,QACLwJ,EAAA8V,YAAkBpX,EAAAhJ,MAEjBsK,EAAQ8V,YAAW3a,OAAS,GAC1Bd,EAAG8C,OAAA,UAAmB,uCAwKhB9F,WAAW,EACX+F,KAAM,OAnKd4C,EAAGsS,WAAA,GAEXjY,EAAcwH,MAAA,QAAA,yBAAoB,mBAElC,SAAUlB,GAwKNtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAMvD,QAASi7C,GAvKmBhnD,EAAAugB,EAAgB0mC,GAyKxC,GADA/8C,EAAGsS,WAvKS,EAwKR+D,GAAavgB,GAA+B,MAAlBkK,EAAGglD,aAA+C,MAAxBhlD,EAAG8hD,kBAA2B,CAClFmD,GACA,IAvKI5yB,KAwKJ,KAAK,GAvKGn3B,KAAI8E,GAAAglD,YAwKR3yB,EAAIx6B,KAAKmI,EAAGglD,YAAY9pD,GAAGwgD,sBAG/B17C,GAAG+8C,MAAQ1qB,EAAIqB,MAEf,IAAIz2B,IACAoZ,UAAWA,EACX2mC,MAAOh9C,EAAG+8C,OArKV9hD,GACA6oD,WAAuBnuD,QAApBqK,EAAA+jD,iBAAoB/jD,EAAA+jD,iBAAAD,WAAA,GACvBhuD,UAAGA,EACHF,OAAIoK,EAAM4hD,oBAAA7oC,GAwKV6rC,YAvKa5kD,EAAA8hD,kBAAWpV,cAwKxBlV,WAvKa,IAAAx3B,EAAA8hD,kBAAApV,cAAA1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WAwKbqtB,qBAvKe,IAAA7kD,EAAA8hD,kBAAApV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EAwKfxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAtKlDrT,OAAI11C,EAAA,QAAgB,GAAAwf,MAAUzZ,EAAK+iD,KAAAE,IAAA,cAwKnCiC,UAvKIvoD,KAAWqkB,UAAA/jB,GAEM,KAuKrB+C,EAAG6hD,yBAvKkB9oC,KAwKrB9d,EAvKI+oD,MAAArnD,KAAaqkB,UAAAhhB,EAAAqyB,MAyKrBivB,EAvKsB6D,eAAAlqD,GAAAwD,KAAA,SAAAC,GACR,MAANA,EAAAlI,QACAwJ,EAAA47C,aAAUl9C,EAAAhJ,MACVsK,EAAA47C,aAAUzgD,OAAA,GACVd,EAAS8C,OAAA,UAAA,qDACL9F,WAAO,EACH+F,KAAA,OA2KR4C,EAAGsS,WAAY,IAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,kBAtKlD7B,EAAAsS,WAAY,IAyKhB,SAAU3R,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,kBAC3C7B,EAAGsS,WAAY,KAkD3B,QAAS8qC,KAGL,GAFAgI,IAE2BzvD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CAEpE,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG29C,iBACbtrB,EAAIx6B,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWpxB,EAAIqB,MAClB,IAAIz2B,IACA+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,UAGfxoD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9BF,OAAQoK,EAAG4hD,oBAAoB7oC,GAC/B6rC,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAC/GqtB,qBAA8D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EAC9GxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAClDrT,OAAQ11C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cAC9CiC,UAAWvoD,KAAKqkB,UAAU/jB,GAEO,KAAjC+C,EAAGqlD,uBAAuBtsC,KAC1B9d,EAAI+oD,MAAQsB,qBAEhBhE,EAAsBiE,kBAAkBtqD,GAAKwD,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,QACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KACzBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,gBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAQhE,QAvKQ48C,GAAOxnD,EAAyBomD,EAAUrqB,GAyK9C,GADA2zB,IAC8B7vD,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAtK1E,GAAAk3B,KAwKA,KAvKI,GAAIn3B,KAAI8E,GAAA69C,oBAwKRxrB,EAvKIx6B,KAAGmI,EAAA69C,oBAAkB3iD,GAAA22B,cAyK7B7xB,GAAGwjD,YAvKanxB,EAAAqB,MAyKhB,IAAIz2B,IACA+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,aAGlBvoD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAtKnFhuD,UAAUkK,EAAK6hB,gBAAA/rB,UACdF,OAAQoK,EAAA4hD,oBAAe7oC,GAwKvB6rC,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAC/GqtB,qBAA8D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EAC9GxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAClDrT,OAAQ11C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cAtKjDiC,UAAAvoD,KAAAqkB,UAAqB/jB,GAEO,KAA7B+C,EAAAqlD,uBAA6BtsC,KAC7B9d,EAAA+oD,MAAAsB,qBAEAhE,EAAiBmE,WAAaxqD,GAAAwD,KAAA,SAAAC,GACd,MAARA,EAAAlI,QAwKAwJ,EAAGizB,SAAWv0B,EAAIhJ,KAClBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAvKCC,GACA5I,EAAU2I,YAAA,QAAA,mBAAA,iBAmLtB,QAAS+8C,KAGL,GAFAiI,IACA1lD,EAAGsS,WAvKS,EAwKW3c,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAtK5D,GAAAk3B,KAwKA,KAvKI,GAAIn3B,KAAI8E,GAAA82C,aAwKRzkB,EAvKIx6B,KAAGmI,EAAA82C,aAAe57C,GAAI8kB,OAyK9BhgB,GAAG2lD,KAAOtzB,EAvKEqB,MAwKZ,IAAIz2B,IACA+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,YAClBxjC,OAvKOhgB,EAAA2lD,KAyKP5G,SAvKI/+C,EAAQikD,mBAAe57B,KAAA6f,OAAAloC,EAAAikD,mBAA0B57B,KAAA,MAGtDptB,GACC6oD,WAAuBnuD,QAAfqK,EAAM+jD,iBAA6B/jD,EAAA+jD,iBAAAD,WAAA,GAC3ChuD,UAAGkK,EAAA6hB,gBAAY/rB,UAwKfF,OAAQoK,EAAG4hD,oBAAoB7oC,GAC/B6rC,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAC/GqtB,qBAA8D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EAC9GxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAClDrT,OAAQ11C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cAC9CiC,UAAWvoD,KAAKqkB,UAAU/jB,GAEO,KAAjC+C,EAAGqlD,uBAAuBtsC,KAC1B9d,EAAI+oD,MAAQsB,qBAEhBhE,EAAsBsE,WAAW3qD,GAAKwD,KAAK,SAAUC,GACjDsB,EAAGsS,WAAY,EACI,MAAf5T,EAAIlI,QACJwJ,EAAGm+C,SAAWz/C,EAAIhJ,MACbsK,EAAGm+C,SAAShjD,OAAS,EACtB6E,EAAG6lD,cAAe,EAElB7lD,EAAG6lD,cAAe,IAGtB9tD,EAAW2I,YAAY,QAAS,mCAAoC,UACpEV,EAAGsS,WAAY,IAEpB,SAAU3R,GAAOX,EAAGsS,WAAY,KAK3C,QAASwzC,GAAqB/sC,GAC1B/Y,EAAG+lD,wBACH/lD,EAAGgmD,eACH,IAAI/qD,IACAnF,UAAWkK,EAAG6hB,gBAAgB/rB,UAGlC,IAAsC,GAAlCkK,EAAG6hD,yBAAyB9oC,IAAmC,MAAxB/Y,EAAG8hD,kBAA2B,CACrE7mD,EAAI2pD,YAAc5kD,EAAG8hD,kBAAkBpV,cACvCzxC,EAAIu8B,WAAqD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WACpHv8B,EAAI4pD,qBAA+D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EACnHjhD,EAAIy0C,SAAWz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cACvD/nD,EAAI00C,OAAS11C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,aACnD,IAAI5wB,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGojD,aACb/wB,EAAIx6B,KAAKmI,EAAGojD,aAAaloD,GAAG+7B,QAEhCh8B,GAAIg8B,QAAU5E,EAAIqB,WApK1Bz4B,GAASy0C,SAAAz1C,EAAA,QAA2B,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAChC/nD,EAAA00C,OAAA11C,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,aAEAgD,KAwKArL,EAAqBsL,mBAAmBjrD,GAAKwD,KAAK,SAAUC,GAtK9C,MAANA,EAAAlI,QACJwJ,EAAKgmD,aAAYtnD,EAAAhJ,MACTsK,EAAAgmD,aAAQ7qD,OAAiB,EAwKzBd,EAAQ8C,OAAO,UAAW,6DAtK/B9F,WAAe,EACd+F,KAAS,OAGT4C,EAAAmmD,eAAe,EAyKfnmD,EAAGsS,WAAY,GArKfjY,EAAAwH,MAAa,QAAG,yBAAiC,mBAyKtD,SAvKKlB,GAwKJtG,EAvKIwH,MAAA,QAAgB,mBAAkB,oBAyN9C,QAASukD,GAvKWC,GAwKhB,GAAIA,EAvKIC,sBAA0B,CAwK9BtmD,EAAGumD,aAtKHvmD,EAAA+lD,oBAmLA,IAAIS,GAAW,QAAUC,EAAUJ,EAASK,QAAU,GAClDC,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,OAAO2F,OAAS0C,OAAUF,GAC9DhsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAAUC,GAtKtCA,EAAAH,SAAAF,IAwKKK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAAUxrB,SAAY+qB,EAASC,sBAAsBS,YAIrG/mD,EAAGqyB,KACCp1B,UArKZ,KAAS,GAAA/B,KAAA8E,GAAe4mD,YACpB5mD,EAAA4mD,YAAA1rD,GAAAorD,wBACGtmD,EAAYqyB,IAAAp1B,OAAA+C,EAAA4mD,YAAA1rD,GAAAwrD,QAAA1mD,EAAA4mD,YAAA1rD,GAAAorD,sBAAAS,YA4KX/mD,GAAGqyB,IAAM,KAtKTryB,EAAGqyB,KACCp1B,WAyKJ+pD,IAMR,QAASC,GAAmBC,GACxBF,GACA,IAvKI/rD,IAwKAnF,UAvKIkK,EAAA+jD,iBAAgBjuD,UAwKpBguD,WAvKI9jD,EAAW+jD,iBAAGD,WAwKlBpU,SAvKIz1C,EAAW,QAAA,GAAAwf,MAAoBzZ,EAAA+iD,KAAAC,MAAA,cAwKnCrT,OAvKI11C,EAAa,QAAG,GAAAwf,MAAAzZ,EAAA+iD,KAAkBE,IAAA,cAyK1CjjD,GAAGsS,WAvKK,EAwKRkvC,EAvKkB2F,0BAAyBlsD,GAAGwD,KAAK,SAAOC,GAwKtD,GAvKY,MAARA,EAAAlI,OAAgB,CAChBwJ,EAAAq+C,OAAW1hD,KAAKC,MAAA8B,EAAUhJ,KAAAgK,QA2K1BM,EAAG+lD,uBAtKP,IAAAqB,KACI5sD,GAAGqI,QAAY7C,EAAAq+C,OAAA2F,MAAA,SAAA6C,GACX,GAAI/N,IACDuO,KAAAR,EAAAQ,KACCX,OAAIG,EAAAH,OACJI,OAAkB,UAAfD,EAAAH,OAAeG,EAAAC,UAyKtBM,GAvKOvvD,KAAAihD,GAwKP94C,EAAG4mD,YAAcQ,IAErBpnD,EAAG+lD,qBAvKYqB,EAwKfpnD,EAAGsS,WAvKI,MAERva,GAAU2I,YAAU,QAAY,yBAAA,QAwK/BV,EAAGsS,WAAY,GAGnB,SAAU3R,GAtKT5I,EAAA2I,YAAyB,QAAA,mBAAA,QAC3BV,EAAAsS,WAAA,IAEO,IAANtS,EAAA6hD,yBAAM9oC,IACN2rC,IA2KR,QAvKQ4C,GAAkBJ,EAAGb,GAyKzBrmD,EAAGumD,aACHvmD,EAAG+lD,oBACH,IAvKIS,GAAI,QAAiBC,EAAQJ,EAASK,QAAQ,GAC9CC,EAAUnsD,EAAA6P,KAAArK,EAAAq+C,OAAA2F,OACV0C,OAASF,GAyKbhsD,GAAOqI,QAAQ7C,EAAG+lD,qBAAsB,SAAUc,GAtK1CA,EAAAH,SAAUF,IAwKVK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAtK5CxrB,SAAA4rB,EAAAZ,sBAAAS,YAgLR,QAASN,GAvKOc,GAwKZ,MAAO3gD,UAvKS2gD,EAAWjkC,UAAA,IA0K/B,QAASkkC,KAELxnD,EAAGukD,aACH,KAAK,GAvKGrpD,KAAG8E,GAAA+lD,qBAAY,CAwKnB,GAAI9qD,IAtKAwsD,SAAQznD,EAAA+lD,qBAAe7qD,GAAAmsD,KAwKvBK,SAAU1nD,EAAG+lD,qBAAqB7qD,GAAGwrD,OArKzC1mD,GAAAukD,WAAc1sD,KAAAoD,IA2KtB,QAAS+rD,KArKThnD,EAAAqyB,IAAS,KACLryB,EAAGqyB,KACAp1B,WAyKHzC,EAAOqI,QAAQ7C,EAAG+lD,qBAAsB,SAAUM,GAC9CA,EAASC,sBAAwB,KACM,IAAnCtmD,EAAG6hD,yBAAyB9oC,KAC5BstC,EAASC,4BAgCrB,QAASltC,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAuC1D,QAvKQC,GAAA7jB,GAwKJ,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EApKR,IAAS,GAqKGijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GArKjDxe,EAAA,EAAAA,EAAmB8E,EAAA2Z,OAAMxe,OAAAD,IAAA,CAC9B,GAAA0e,GAAA,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEI,IAAAF,IAAcI,EACd,MAAe5Z,GAAA2Z,OAAAze,GAAA1E,OAInB,MAAG,GAqLP,QAASmxD,KACL,GAvK0B,KAuKtB3nD,EAAGkiD,eAvKc75B,KAAK,CAwKtBroB,EAAG+iD,KAvKKE,GAAG7uD,QAAA8e,KAAclT,EAAA+iD,KAAAC,KAwKzB,IAAI4E,GAAoB,CACxB5nD,GAAG+iD,KAvKIE,GAAAznC,QAAAxb,EAAA+iD,KAAAE,GAAuBjnC,UAAA4rC,GACX,IAAf5nD,EAAG6hD,yBAAY9oC,GAwKf2rC,IArKAoB,EAAe9lD,EAAA6hB,gBAAA/rB,eAGJ,KAAfkK,EAAAkiD,eAAe75B,OAwKfroB,EAAG+iD,KAvKCE,GAAA,IAQZ,QAAS4E,KACL,GAAA,KAAA7nD,EAAAkiD,eAAA75B,KAAA,CACGroB,EAAA+iD,KAAAE,GAAA7uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,KACA,IAAA8E,GAAA,CACC9nD,GAAA+iD,KAAAE,GAAW8E,SAAA/nD,EAAU+iD,KAAAE,GAAU9R,WAAS2W,GACxC9nD,EAAA+iD,KAAAE,GAAAznC,QAAiBxb,EAAA+iD,KAAOE,GAAKjnC,UAAU,GAC7B,IAAVhc,EAAA6hD,yBAAU9oC,GAwKN2rC,IArKAoB,EAAa9lD,EAAU6hB,gBAAA/rB,eA0KI,KAA1BkK,EAAGkiD,eAAe75B,OACvBroB,EAAG+iD,KAAKE,GAAK,IAerB,QAvKQ+E,KAwKJ,GAvKqB,KAuKjBhoD,EAAGkiD,eAvKc75B,KAAA,CAwKjBroB,EAAG+iD,KAvKCE,GAAA7uD,QAAa8e,KAAAlT,EAAA+iD,KAAAC,KAwKjB,IAAI8E,GAAqB,CAtKzB9nD,GAAG+iD,KAAAE,GAAA8E,SAAgB/nD,EAAA+iD,KAAAE,GAAA9R,WAAA2W,GAwKnB9nD,EAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY,GAEH,IAAnChc,EAAG6hD,yBAAyB9oC,GAtK/B2rC,IAEFoB,EAAM9lD,EAAA6hB,gBAAA/rB,eAIS,KAAXkK,EAAAkiD,eAAW75B,OACdroB,EAAA+iD,KAAAE,GAAS,IA8KjB,QAASgF,GAAaC,EAAO3pD,GAEzByB,EAAG+jD,iBAAmB,KAtKvB/jD,EAAAgmD,gBACChmD,EAAG8hD,kBAAS,KAwKZ9hD,EAAGmoD,wBAtKJnoD,EAAA+hD,2BAAA,KAwKC/hD,EAAGooD,sBAtKJpoD,EAAAgiD,gBAAoB,KACnBhiD,EAAG4tC,gBAwKH5tC,EAAGiiD,iBAAmB,KACtBjiD,EAAGqoD,kBAtKJroD,EAAAkiD,eAAgB,KACfliD,EAAA+iD,KAAAC,KAAa,GACbhjD,EAAA+iD,KAAAE,GAAa,GACbjjD,EAAAglD,YAAW,KAwKXhlD,EAAGglD,eACHhlD,EAAGk7C,WAtKJl7C,EAAA29C,iBAAc,KACb39C,EAAA47C,gBACA57C,EAAA69C,oBAAY,KACZ79C,EAAAo8C,mBACAp8C,EAAA82C,aAAa,KACb92C,EAAA82C,gBAwKA92C,EAAGizB,YACHjzB,EAAGikD,mBAAqB,KACxBjkD,EAAGojD,aAAe,KAtKtBpjD,EAAAm+C,YACIn+C,EAAAyiD,mBAAgB,IAEhB,IAAAxnD,IAwKImF,SAAUF,GAAWi/C,UACrBrpD,UAAWoyD,EArKf5G,GAAiB2G,aAAahtD,GAAAwD,KAAc,SAAUC,GACnD,GAAY,MAAZA,EAAAlI,OAAyB,CAwKpB,GAAIkI,EAAIhJ,KAAKyF,OAAS,EAClB6E,EAAGmoD,qBAAuBzpD,EAAIhJ,SAE7B,CAtKN,GAAA4yD,IACG1F,gBAAS,aACHlW,cAAA,EAyKJ1sC,GAAGmoD,qBAAqBtwD,KAAKywD,GAKjCtoD,EAAGsS,WAAY,MArKxBva,GAAoB2I,YAAM,QAAY,yBAAA,qBAyKlC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,sBArKzD6nD,EAAYvoD,EAAQ6hD,yBAAA9oC,IAgLvB,QAvKIyvC,GAAQjqD,GAyKRyB,EAAGkiD,eAAiB,KACpBliD,EAAG+iD,KAAKC,KAAO,GAtKnBhjD,EAAA+iD,KAASE,GAAA,GACLjjD,EAAAglD,YAAgB,KAwKhBhlD,EAAGglD,eAtKHhlD,EAAAk7C,WAwKAl7C,EAAG29C,iBAvKkB,KAwKrB39C,EAAG47C,gBACH57C,EAAG69C,oBAvKqB,KAwKxB79C,EAAGo8C,mBACHp8C,EAAG82C,aAAe,KAClB92C,EAAG82C,gBACH92C,EAAGizB,YACHjzB,EAAGikD,mBAAqB,KACxBjkD,EAAGojD,aAAe,KAClBpjD,EAAGm+C,YAtKHn+C,EAAAyiD,mBAAO,IAyKP,IAAIxnD,IACAmF,SAAUF,GAAWi/C,UACrBrpD,UAAWkK,EAAG6hB,gBAAgB/rB,UAtKnC42C,cAAY1sC,EAAA8hD,kBAAYpV,cAEvB4U,GAAekH,aAAWvtD,GAAAwD,KAAA,SAAAC,GACP,MAAZA,EAAKlI,QAyKJwJ,EAAGooD,mBAAqB1pD,EAAIhJ,KAnK/BsK,EAAAsS,WAAA,GAEEva,EAAU2I,YAAa,QAAQ,yBAAA,kBAyKnC,SAvKSC,GACR5I,EAAO2I,YAAA,QAAyB,mBAAU,mBA4KlD,QAAS+nD,GAAWP,EAAOQ,GAyBvB,GAvBA1oD,EAAG+hD,2BAvKc,KAwKjB/hD,EAAGooD,sBACHpoD,EAAGgiD,gBAAkB,KACrBhiD,EAAG4tC,gBACH5tC,EAAGiiD,iBAAmB,KACtBjiD,EAAGqoD,kBACHroD,EAAGkiD,eAAiB,KACpBliD,EAAG+iD,KAAKC,KAAO,GAtKnBhjD,EAAA+iD,KAASE,GAAA,GACLjjD,EAAAglD,YAAO,KAwKPhlD,EAAGglD,eACHhlD,EAAGk7C,WACHl7C,EAAG29C,iBAvKY,KAwKf39C,EAAG47C,gBACH57C,EAAG69C,oBAvKQ,KAwKX79C,EAAGo8C,mBACHp8C,EAAG82C,aAvKQ,KAwKX92C,EAAG82C,gBACH92C,EAAGizB,YACHjzB,EAAGikD,mBAAqB,KACxBjkD,EAAGojD,aAvKS,KAwKZpjD,EAAGm+C,YACHn+C,EAAGyiD,mBAAqB,KACkB,GAAtCziD,EAAG8hD,kBAAkBpV,cACrB8b,QAEC,CAtKN,GAAAvtD,IACQmF,SAAAF,GAAAi/C,UACHrpD,UAAAoyD,EACGxb,cAAAgc,EAyKHpH,GAAsBmH,WAAWxtD,GAAKwD,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KACtBsK,EAAGsS,WAAY,GArKpBva,EAAe2I,YAAa,QAAA,yBAAA,kBAE/B,SAAIC,GACD5I,EAAQ2I,YAAY,QAAQ,mBAAa,oBA+KpD,QAASioD,GAAYT,EAAOU,GACxB,GAAI3tD,IACAmF,SAvKQF,GAAAi/C,UACRrpD,UAAQoyD,EAwKRhM,WAAY0M,EAGhBtH,GAAsBqH,YAAY1tD,GAAKwD,KAAK,SAAUC,GAC/B,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KAtK3BsK,EAAAsS,WAAa,GAEfva,EAAA2I,YAAmB,QAAA,yBAAA,kBAEnB,SAAAC,GACA5I,EAAA2I,YAAuB,QAAA,mBAAA,mBA4K9B,QAvKO6nD,GAAAlE,GACiB,GAAjBA,EACArkD,EAAA6oD,iBAAiBnG,eAAA,WAAA2B,aAAA,MAGjBrkD,EAAA6oD,iBAAcnG,eAAA,WAAA2B,aAAA,MAAA3B,eAAA,eAAA2B,aAAA,MA2MrB,QAAS4B,KACLjmD,EAAG+jD,iBAAmB,KACtB/jD,EAvKGgmD,gBAwKHgB,IAGJ,QAAStB,KACL1lD,EAAGm+C,YACHn+C,EAAGojD,aAAe,KAGtB,QAASoC,KACLxlD,EAAGizB,YACHjzB,EAAG82C,aAAe,KAtKtB4O,IA0KA,QAvKON,KACHplD,EAAG69C,oBAAU,KACb79C,EAAGo8C,mBACHoJ,IA0KJ,QAvKOP,KACHjlD,EAAG47C,gBACH57C,EAAG29C,iBAAkB,KACrByH,IAyKJ,QAvKOT,KACH3kD,EAAGglD,YAAA,KACHhlD,EAAGk7C,WACH+J,IAyKJ,QAASxD,KAtKLzhD,EAAAmT,gBAAU,KAwKVnT,EAAGqS,eACHsvC,IAEJ,QAASA,KAtKL3hD,EAAA6hB,gBAAA,KAwKA7hB,EAAG2hB,eACHmnC,IAEJ,QAASA,KACL9oD,EAAG8hD,kBAvKkB,KAwKrB9hD,EAAG6hD,yBAA2B,KAC9B7hD,EAAG4hD,oBAvKoB,KAwKvB+C,IAx9CJ,GAAI3kD,GAAKC,IACTD,GAAGsU,SAtKS,KAuKZtU,EAAGk7C,WACHl7C,EAAG47C,gBACH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAG8hD,qBACH9hD,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EArKftS,EAAAmiD,mBAAkBA,CAuKlB,IAtKIhwC,GAAGhY,EAAYgG,uBAAAwU,gBAAAxC,SAuKnBnS,GAAGyhB,oBAtKiBA,EAuKpBzhB,EAAGm+C,YACHn+C,EAAGyhB,oBAtKWA,EAwKdzhB,EAAG0kD,eAtKIA,EAuKP1kD,EAAGioD,aAtKIA,EAuKPjoD,EAAG08C,oBAAsBA,EACzB18C,EAAG88C,qBAAuBA,EArK1B98C,EAAAo9C,yBAAiBA,EAuKjBp9C,EAAGs9C,yBAtKiBA,EAuKpBt9C,EAAGy9C,aAtKCA,EAuKJz9C,EAAG8lD,qBAtKeA,EAuKlB9lD,EAAGinD,mBAAqBA,EArKxBjnD,EAAAsnD,iBAAkBA,EAuKlBtnD,EAAGwnD,cAtKeA,EAuKlBxnD,EAAGymD,UAtKKA,EAuKRzmD,EAAGomD,YAtKSA,EAuKZpmD,EAAG2nD,iBAtKeA,EAuKlB3nD,EAAG6nD,aAAeA,EAClB7nD,EAAGgoD,gBAAkBA,EACrBhoD,EAAGyoD,WAtKSA,EAuKZzoD,EAAGwoD,aAtKQA,EAuKXxoD,EAAG2oD,YAtKKA,EAuKR3oD,EAAGuoD,gBAtKQA,EAuKXvoD,EAAG0R,OAAQA,CAEX,IAAIxR,IAAa/F,EAAsBgG,sBACvCpI,GAAW2c,SAAU,EACrB1U,EAAG+iD,QAIH7wC,IAGAlS,EAAGu7C,eAtKgBC,aAAA,MAAAnzB,KAAA,MAAAmzB,aAAA,UAAAnzB,KAAA,MAAAmzB,aAAA,WAAAnzB,KAAA,MA0KnBroB,EAAG+oD,iBACGpG,eAAgB,SAAUt6B,KAAM,MAASs6B,eAAgB,UAAWt6B,KAAM,MAC1Es6B,eAAgB,YAAat6B,KAAM,MAASs6B,eAAgB,WAAYt6B,KAAM,MAEpFroB,EAAGgpD,kBAEGzG,gBAtKE,qBAAAxpC,GAAA,EAA4CwrC,WAAA,cAwKpDvkD,EAAGqlD,yBAtKevC,qBAAA,6BAAA/pC,GAAA,IAuKV+pC,qBAAsB,gBAAiB/pC,GAAI,IAkPnD/Y,EAAGipD,WAAa,WAtKZjpD,EAAAsS,WAAO,CAwKP,IAvKI8vC,GAAQ,KAwKRC,EAvKU,KACVniD,EAAW/F,EAAkBgG,uBAwK7BmiD,EAAY,IApKkB,KAA9BtiD,EAAG4hD,oBAAoB7oC,GACvBqpC,GAAA,EACGpiD,EAAA4hD,oBAAA7oC,GAAA,IACHqpC,EAAApiD,EAAA8hD,kBAAepV,eAKf4V,EADa,IAAbtiD,EAAA4hD,oBAAa7oC,GACD,YAEN/Y,EAAA4hD,oBAA2BW,eA2KrC,IAAIC,GAvKO,IACP,IAAAJ,EAwKAI,EAvKM,kBAA2BxiD,EAAAyiD,mBAAmBC,eAAW,IAAA1iD,EAAgBkiD,eAAiBS,eAAgB,IAAIL,EAAA,OAAAtiD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBAwK9G,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAtKpIb,EAAc,EAwKdI,EAAaxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,IAAML,EAAY,OAAStiD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBAtKvS,eAAc7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAwKHb,IAAS,IAChBI,EAAaxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,IAAML,EAAY,MAAQtiD,EAAG6hD,yBAAyBiB,qBAC7I,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI;AAExH,GAAIE,GAAc,IASlB,IA9KAA,EAAO,gGA8KgBxtD,QAAnBqK,EAAGojD,cAA6BpjD,EAAGojD,aAAajoD,OAAS,EAAG,CAC5D,GAAIkoD,KAtKJ,KAAG,GAAAnoD,KAAA8E,GAAAojD,aACCC,EAAAxrD,KAAMmI,EAAAojD,aAAAloD,GAAAooD,cAyKVtjD,GAAGujD,KAvKKF,EAAK3vB,OA2KjB,GAAuB/9B,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aAtKduM,EAAAxrD,KAAAmI,EAAA82C,aAAuB57C,GAAA8kB,OAE1BhgB,GAAAjC,KAASslD,EAAK3vB,OA4KlB,GAA8B/9B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG69C,oBAtKdwF,EAAAxrD,KAAAmI,EAAA69C,oBAAiC3iD,GAAG22B,cAEvC7xB,GAAAwjD,YAAiBH,EAAA3vB,OA4KrB,GAA2B/9B,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG29C,iBACb0F,EAAIxrD,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWJ,EAAI3vB,OAWY,IAA9B1zB,EAAG4hD,oBAAoB7oC,GACvBspC,EAAc,EAtKRriD,EAAA4hD,oBAAA7oC,GAAA,IAwKNspC,EAAcriD,EAAG8hD,kBAAkBpV,cAMvC,IAvKIzxC,IAEAnF,UAAAkK,EAAY6hB,gBAAG/rB,UACf4tD,YAAe/tD,QAAHqK,EAAGyjD,SAAiBzjD,EAAAyjD,SAAA,GAChCE,eAAyBhuD,QAAbqK,EAAAwjD,YAAaxjD,EAAAwjD,YAAA,GACzBI,QAAkBjuD,QAARqK,EAAAjC,KAAwBiC,EAAAjC,KAAM,GACxCulD,cAA2B3tD,QAAXqK,EAAAujD,KAAoBvjD,EAAAujD,KAAA,GACpCnE,iBAAap/C,EAAAmT,gBAAmB84B,YAwKhC3pB,YAAatiB,EAAG6hB,gBAAgBS,YAChCuhC,WAAY7jD,EAAG4hD,oBAAoB7oC,GAtKnC+qC,WAAU9jD,EAAA+jD,iBAAWD,WACrBE,MAAArnD,KAASqkB,UAAAhhB,EAAAqyB,KACTqd,SAAAz1C,EAAA,QAAmB+F,EAAA+iD,KAAAC,KAAA,cACnBrT,OAAQ11C,EAAG,QAAA+F,EAAA+iD,KAAAE,GAAyB,cACpClE,SAAA/+C,EAAAikD,mBAAiB57B,KAGjByL,SAAU5zB,EAAAi/C,UAwKV+E,QAAS1B,EACT2B,kBAAmB,QAtKnBC,OAAGpkD,EAAA6hD,yBAA8B9oC,GACjCsrC,aAAYrkD,EAAAyiD,mBAAA4B,aAwKZC,UAvKUtkD,EAAA4hD,oBAAoB2C,WAC9BC,WAAOnC,EAwKPoC,SAvKQtB,EAGH,KAuKLnjD,EAAG4hD,oBAvKE7oC,GAwKL9d,EAvKImvB,MAAI,GACwB,IAuKzBpqB,EAvKC4hD,oBAAqB7oC,KAwKzB/Y,EAAG8hD,kBAAkBpV,cAAgB,GACrCzxC,EAAImvB,MAA0Cz0B,QAAjCqK,EAAGgiD,gBAAgBxqB,WAA2Bx3B,EAAGgiD,gBAAgBxqB,WAAa,GACvFv8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,KAGjHzxC,EAAImvB,MAA6Cz0B,QAApCqK,EAAGiiD,iBAAiB3qB,aAA6Bt3B,EAAGiiD,iBAAiB3qB,aAAe,GAC7Fr8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,KASzH4U,EAvKmBa,mBAAqBlnD,GAAAwD,KAAA,SAAAC,GAwKpC,GAvKc,MAuKVA,EAvKIlI,OAAM,CAwKVwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAvKO,CACV,IAAArX,IACAuF,QAAWN,EAAYM,QAwKnBk/C,KAAM1/C,EAAG8Z,cACT6lC,WAAW,GAEXvgD,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAtKnBC,gBAAA,aACDrK,YAAc,8DACXE,WAAY,kBAwKXC,aAAc,KACd+H,KAAM,KAtKdoC,SAAe,SACXC,UAAW,EACRyQ,SAwKK3N,MAAO,WACH,MAAOtH,MAlK5BmE,GAAaM,OAAYjB,KAAA,SAAAC,KAEpB,kBAMGrE,GAAAwH,MAAA,QAAoB,0BAAUxK,WAAA,EAAA+F,KAAA,OACjC4C,EAAAsS,WAAS,GA0KT,SAAU3R,GAtKd5I,EAAA2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OAwKQ4C,EAAGsS,WAAY,KAwkB3BtS,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MACbqB,YAAa,GAUjB9a,EAAG+a,UAvKK,WAwKJ/a,EAAGua,cAvKIE,QAAAza,EAAAua,cAAAE,QAAA,KAAA,GAAAhB,MAwKPzZ,EAAG2a,YAvKIF,QAAAza,EAAAua,cAAAE,SA0KXza,EAAG+a,YAEH/a,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACP,IAAI4K,OAIpBzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAvKKpM,QAAW,CACX,IAAA4K,OA0KZzZ,EAAGwb,QAAU,SAvKKC,EAASC,EAAOC,GAwK9B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAvKQ,eAAM,aAAA,aAAA,aAwKjB5b,EAAG6b,OAvKS7b,EAAA4b,QAAQ,GAwKpB5b,EAAG8b,iBAAmB,cAGtB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QACCpM,QAvKO,GA8LX7O,EAAGkpD,UAAY,WArKAvzD,QAuKPqK,EAAG+iD,OACH/iD,EAAG+iD,KAvKKC,KAAA,KAwKRhjD,EAAG+iD,KAvKCE,GAAO,OAmNnBjjD,EAAGmpD,SAAW,WAtKiB,IAA/BnpD,EAAS6hD,yBAAsB9oC,GAC3B2rC,IAyKIoB,EAAqB9lD,EAAG6hB,gBAAgB/rB,sRA3rCpD1B,QACKC,OAAO,8BACPe,WAAW,qBAAsBisD,MAk+C1C,WACI,YAOA,SAvKQ+H,GAAqBrvD,EAAAhC,EAAAyC,EAAAH,EAAA+jB,EAAApM,EAAAooB,EAAAsR,EAwKzBwB,EAvKOyN,EAAeG,EAAAE,EAAAjpC,EAAA8oC,EAAAjpC,EAwKtBgpC,EAvKOyO,EAAmB3O,EAAA8G,GA0O1B,QAAStvC,KACLkM,EAvKKgB,qBAAA3gB,KAAA,SAAAC,GACE,MAAAA,EAAAlI,QAwKCwJ,GAAGqf,iBAAmB3gB,EAAIhJ,KAC1BsK,GAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,iBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAI5D,QAAS4oD,GAAuBC,GAC5BC,IACwB,IAApBD,GACAvpD,GAAGypD,wBACHC,MAEAjoC,EAAoBzhB,GAAG2pD,UAAUx2C,gBAAgBhB,WACjDnS,GAAG4pD,0BAIX,QAASJ,KACLxpD,GAAG6pD,YAAc,KACjB7pD,GAAG2pD,UAAU9nC,gBAAkB,KAC/B7hB,GAAG2hB,eACH3hB,GAAG8pD,cAAgB,KACnBC,IACAC,IACAC,IACAC,IACA1E,IAGJ,QAASA,KACLxlD,GAAG2pD,UAAU9K,iBAAmB,KAtKpC7+C,GAAAu8C,gBA0KA,QAvKI2N,KAwKAlqD,GAAG2pD,UAAU9L,oBAAsB,KACnC79C,GAAGo8C,mBAtKPoJ,IA0KA,QAASyE,KACLjqD,GAAG2pD,UAAUhM,iBAAmB,KAtKpC39C,GAAA47C,gBACIsO,IACA1E,IA0KJ,QAASwE,KAtKThqD,GAAA2pD,UAASlzC,gBAAW,KAChBzW,GAAG8V,eACHm0C,IACAC,IAwKA1E,IAGJ,QAvKOuE,KACH/pD,GAAG2pD,UAAA3E,YAAmB,KACtBhlD,GAAAk7C,QAAA,KAwKA8O,IAtKJC,IACIC,IACA1E,IAGJ,QAASwB,KACLxsD,EAAGqI,QAAA7C,GAAA+lD,qBAAkB,SAAAM,GAClBA,EAAAC,sBAAc,OAgLrB,QAvKO6D,GAAoB/pC,EAAA7hB,GACpB6hB,IACApgB,GAAA2pD,UAAAx2C,gBAAsB,KACzBnT,GAAA2pD,UAAA5d,mBAAA,KAwKI/rC,GAAGs6B,kBACHt6B,GAAG2pD,UAAU3b,oBAAsB,KACnChuC,GAAG4rC,mBACH5rC,GAAG2pD,UAAUjU,iBAAmB,KAtKnC11C,GAAA4tC,gBACT5tC,GAAA2pD,UAAAS,aAAA,KAwKYpqD,GAAGqqD,YACHr4C,EAAes4C,kBAAkBlqC,GAAqB3hB,KAAK,SAAUC,GAvKjF,MAAAA,EAAAlI,QACYwJ,GAAAqS,YAAA3T,EAAAhJ,KACIsK,GAAAsS,WAAA,EAyKQ/T,GACAA,KAtKpBxG,EAAiB2I,YAAqB,QAAA,yBAAwB,YAErD,SAAAC,GAyKG5I,EAAW2I,YAAY,QAAS,mBAAoB,cArK7DV,GAAA2pD,UAAAx2C,gBAAA,KACCnT,GAAAqS,eACDrS,GAAA2pD,UAAA5d,mBAAA,KACC/rC,GAAAs6B,kBACDt6B,GAAA2pD,UAAA3b,oBAAA,KACChuC,GAAA4rC,mBACD5rC,GAAA2pD,UAAAjU,iBAAA,KACC11C,GAAA4tC,gBAyKA5tC,GAAG2pD,UAAUS,aAAe,KAvK7BpqD,GAAAqqD,YA2KH,QAASE,GAAiBp4C,EAAW5T,GAvKlC4T,GACInS,GAAA2pD,UAAc5d,mBAAA,KAyKb/rC,GAAG2pD,UAAU3b,oBAAsB,KACnChuC,GAAG4rC,mBAvKX5rC,GAAW2pD,UAAUjU,iBAAA,KAClB11C,GAAA4tC,gBACA5tC,GAAA2pD,UAAYS,aAAA,KACZpqD,GAAAqqD,YACHjwB,EAAqB4R,yBAAA75B,GAAA1T,KAAA,SAAAC,GACH,MAAfA,EAAelI,QACfwJ,GAAAs6B,eAAuB57B,EAAAhJ,KACvBsK,GAAAsS,WAAwB,EAyKP/T,GAvKRA,KAEGxG,EAAA2I,YAAA,QAAA,yBAAA,eAEZ,SAAAC,GACA5I,EAAA2I,YAAuB,QAAA,mBAAA,kBAIvBV,GAAA2pD,UAAS5d,mBAAA,KACT/rC,GAAAs6B,kBACAt6B,GAAA2pD,UAAA3b,oBAAuB,KACvBhuC,GAAA4rC,mBACA5rC,GAAA2pD,UAAAjU,iBAAuB,KACvB11C,GAAA4tC,gBACA5tC,GAAA2pD,UAAAS,aAAqB,KACrBpqD,GAAAqqD,aAIH,QAAGG,GAAsBtvB,EAAA38B,GACtB28B,GACAl7B,GAAA2pD,UAAY3b,oBAAA,KACZhuC,GAAA2pD,UAAAjU,iBAAsB,KACtB11C,GAAA4tC,gBACH5tC,GAAA2pD,UAAAS,aAAA,KAyKQpqD,GAAGqqD,YAtKR3e,EAAiB2C,gBAAAnT,GAAAz8B,KAAA,SAAAC,GACC,MAAjBA,EAAAlI,QACIwJ,GAAA4rC,gBAAAltC,EAAAhJ,KACLsK,GAAAsS,WAAA,EACC/T,GACIA,KA0KQxG,EAAW2I,YAAY,QAAS,yBAA0B,gBAtKtE,SAAAC,GACQ5I,EAAI2I,YAAgB,QAAA,mBAAA,mBA4KxBV,GAAG2pD,UAxKC3b,oBAAuB,KAyK3BhuC,GAAG4rC,mBAvKJ5rC,GAAA2pD,UAAUjU,iBAAK,KACd11C,GAAA4tC,gBAyKA5tC,GAAG2pD,UAAUS,aAAe,KAC5BpqD,GAAGqqD,aAIX,QAxKQI,GAAA/d,EAAuBnuC,GACvBmuC,GACA1sC,GAAA2pD,UAAAjU,iBAAA,KAyKA11C,GAxKG2pD,UAAAS,aAAA,KACHpqD,GAAAqqD,YACAnd,EAAGwd,iBAAwBhe,GAAAjuC,KAAA,SAAAC,GAyKJ,MAAfA,EAAIlI,QACJwJ,GAAG4tC,aAAelvC,EAAIhJ,KACtBsK,GAAGsS,WAAY,EAvKtB/T,GACFA,KAEAxG,EAAc2I,YAAA,QAAA,yBAAA,aAEjB,SAAAC,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,gBA4KIV,GAAG2pD,UAAUjU,iBAAmB,KAChC11C,GAAG4tC,gBAvKX5tC,GAAS2pD,UAAYS,aAAA,KACdpqD,GAAAqqD,aAIP,QAASM,GAAmBtqD,EAAA9B,GACrB8B,GACAL,GAAA2pD,UAAAS,aAAkB,KACrBf,EAAAuB,oBAAAvqD,GAAA5B,KAAA,SAAAC,GAyK2B,MAAfA,EAAIlI,QACJwJ,GAAGqqD,SAAW3rD,EAAIhJ,KAvKzBsK,GAAAsS,WAAgB,EACR/T,GACVA,KAEHxG,EAAA2I,YAAA,QAAA,yBAAA,aA0KO,SAAUC,GAvKZ5I,EAAA2I,YAAe,QAAA,mBAAA,gBAIpBV,GAAA2pD,UAAAS,aAAA,KACApqD,GAAAqqD,aA4KJ,QAxKO5oC,GAAUtP,GACVA,GACHnS,GAAA2pD,UAAA9nC,gBAAA,KACAjQ,EAAA8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QACAwJ,GAAA2hB,YAAAjjB,EAAAhJ,MAyKiBsK,GAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDAvKrC9F,WAAqB,EACR+F,KAAA,OA2KN4C,GAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,sBArK/C7B,GAAA2pD,UAAA9nC,gBAAqB,KACrB7hB,GAAG2hB,eACHooC,KA+KR,QAxKQL,GAAG5zD,EAAWyI,GAyKlBwrD,IACIj0D,EACA4kD,EAxKWmQ,iBAAkB/0D,GAAA2I,KAAA,SAAAC,GACN,MAAfA,EAAGlI,QACHwJ,GAAAk7C,QAAIx8C,EAAAhJ,KAyKJsK,GAAGsS,WAxKC,EACD/T,GACHA,KAELxG,EAAe2I,YAAA,QAAA,yBAAA,0BA0Kf,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BArKzDm6C,EAAUI,eAAqBx8C,KAAA,SAAAC,GACd,MAAjBA,EAAAlI,QACAwJ,GAAUk7C,QAAAx8C,EAAAhJ,KACVsK,GAAAsS,WAAkB,EACR/T,GACVA,KAEAxG,EAAW2I,YAAA,QAAA,yBAAA,0BA0KP,SAAUC,GAvKZ5I,EAAA2I,YAAiB,QAAW,mBAAU,2BA2K3ColD,EAxKiBhwD,GAyKjBg1D,EAxKOh1D,GA2KX,QAxKQi1D,GAAGj1D,EAAUyI,GAyKjByrD,IAvKIl0D,EAyKA4kD,EAxKYiC,qBAAgB7mD,GAAA2I,KAAA,SAAAC,GACjB,MAAHA,EAAGlI,QACHwJ,GAAG8V,YAAYpX,EAAAhJ,KACfsK,GAAAsS,WAAI,EACA/T,GACDA,KA0KHxG,EAAW2I,YAAY,QAAS,yBAA0B,YAG9D,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,mBAAoB,aArK5DqR,EAAG8D,mBAAiBpX,KAAA,SAAAC,GACP,MAAVA,EAAAlI,QACAwJ,GAAA8V,YAAkBpX,EAAAhJ,KAClBsK,GAAAsS,WAAU,EACV/T,GACAA,KA0KKxG,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GAvKZ5I,EAAA2I,YAAqB,QAAc,mBAAU,aAgLtD,QAxKQsqD,GAAmBjO,EAAA1mC,EAAgBvgB,EAAcyI,GA0KrD,GADA0rD,IACIn0D,EAxKW,CAyKX,GAAImF,IACA+hD,MAxKID,EAyKJ1mC,UAxKQA,EAyKRvgB,UAxKOA,EA0KX4kD,GAAmBwC,sBAAsBjiD,GAAKwD,KAAK,SAAUC,GAvK3C,MAAfA,EAAAlI,SACCwJ,GAAA47C,aAAWl9C,EAAYhJ,KAyKfsK,GAAG47C,aAAazgD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,6BAA+B6C,GAAG2pD,UAAUlzC,gBAAgBC,aAvKjGrf,WAAA,EACY+F,KAAA,OAGV4C,GAAAsS,WAAe,EACf/T,GACAA,WAIF,CACD,GAAAtD,IACGygD,sBAAUqB,EACV1mC,UAAUA,EAEbskC,GAAgBgB,uBAAiB1gD,GAAewD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,SACJwJ,GAAG47C,aAAel9C,EAAIhJ,KACnBsK,GAAA47C,aAAYzgD,OAAA,GACXd,EAAA8C,OAAA,UAAA,kCAAA6C,GAAA2pD,UAAAlzC,gBAAAC,aACArf,WAAA,EACD+F,KAAA,OAGR4C,GAAAsS,WAAe,EACd/T,GAyKQA,QAOpB,QAAS0sD,GAAyB/O,EAAYpmD,EAAWyI,GAErD,GADA2rD,IACIp0D,EAAW,CAvKnB,GAASmF,IACDnF,UAAQA,EACLomD,WAAUA,EA0KbxB,GAxKY2C,yBAAgBpiD,GAAAwD,KAAA,SAAAC,GACN,MAAdA,EAAGlI,SACHwJ,GAAGo8C,gBAAY19C,EAAAhJ,KACXsK,GAAAo8C,gBAAAjhD,OAAA,GACAd,EAAA8C,OAAA,UAAA,gCAAA6C,GAAA2pD,UAAAhM,iBAAA9B,cACDxkD,WAAA,EACH+F,KAAW,OAGf4C,GAAAsS,WAAW,EAyKH/T,GACAA,WAIZu8C,GAAuBqB,yBAAyBD,GAAYz9C,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,GAAGo8C,gBAAkB19C,EAAIhJ,KAvKhCsK,GAAAo8C,gBAAoBjhD,OAAW,GACrBd,EAAA8C,OAAA,UAAA,gCAAA6C,GAAA2pD,UAAAhM,iBAAA9B,cACExkD,WAAA,EACb+F,KAAA,OAGQ4C,GAAAsS,WAAQ,EACJ/T,GAyKAA,OAMpB,QAAS2sD,GAxKqBhP,EAASrqB,EAAA/7B,EAA0ByI,GA0K7D,GADAinD,IACI1vD,EAxKG,CAyKH,GAxKImF,IAyKAihD,WAAYA,EAvKbrqB,cAAAA,EACA/7B,UAAUA,EAEbH,UAAAk8B,GAyKI6oB,EAAmB6C,0BAA0BtiD,GAAKwD,KAAK,SAAUC,GAC7D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAGu8C,aAAe79C,EAAIhJ,KAClBsK,GAAGu8C,aAAaphD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,+BAAiC6C,GAAG2pD,UAAU9L,oBAAoBlsB,iBACxFt6B,WAAW,EAvKZ+F,KAAA,MAGnB,KAAA,GAAmBya,KAAA7X,IAAAu8C,aACPv8C,GAAAu8C,aAAgB1kC,GAAA6mC,YAAA1+C,GAAAu8C,aAAA1kC,GAAAohC,SACjBj5C,GAAAu8C,aAAc1kC,GAAAinC,UAAA9+C,GAAAu8C,aAAA1kC,GAAAmI,MAEb5rB,SAAAyO,QAAA7C,GAAA4pD,sBAAA,SAAAr1B,EAAAC,GACApgC,QAAAyO,QAAA7C,GAAAu8C,aAAA,SAAA4O,EAAAC,GACD72B,EAAA0kB,WAAAkS,EAAAzM,aACQ1+C,GAAAu8C,aAAqBjnB,OAAA81B,EAAA,OA4KxBprD,GAAGu8C,aAAaphD,OAAS,GAvKtCd,EAAA8C,OAAA,UAAA,oCAAA6C,GAAA2pD,UAAA9L,oBAAAlsB,iBACHt6B,WAA2B,EACf+F,KAAW,OAGX4C,GAAAsS,WAAA,EACA/T,GACDA,WA6KXy8C,GAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,SAvKhBwJ,GAAAu8C,aAAqB79C,EAAAhJ,KACrBsK,GAAAu8C,aAAoBphD,OAAA,GAyKJd,EAAQ8C,OAAO,UAAW,+BAAiC6C,GAAG2pD,UAAU9L,oBAAoBlsB,iBACxFt6B,WAAW,EAvKf+F,KAAA,OAGZhJ,QAAAyO,QAAmB7C,GAAA4pD,sBAAqB,SAAgBr1B,EAAUC,GACtDpgC,QAAAyO,QAAgB7C,GAAAu8C,aAAA,SAAA4O,EAAAC,GACjB72B,EAAc0kB,WAAIkS,EAAAzM,aAClB1+C,GAAYu8C,aAAAjnB,OAAA81B,EAAA,OAIfprD,GAAAu8C,aAAWphD,OAAY,GAyKnBd,EAAQ8C,OAAO,UAAW,oCAAsC6C,GAAG2pD,UAAU9L,oBAAoBlsB,iBAC7Ft6B,WAAW,EAvKb+F,KAAK,OAGhB4C,GAAAsS,WAAA,EACH/T,GACYA,OAgLpB,QAASunD,GAxKiBhwD,GA0KtB,GAAImF,IACAnF,UAAWA,EAEXA,IACAkK,GAAG2pD,UAAU5F,iBAAmB,KAChCnJ,EAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,QAvKXwJ,GAAAgmD,aAAqBtnD,EAAOhJ,MACjCsK,GAAAgmD,aAAA7qD,OAAA,GACed,EAAA8C,OAAA,UAAA,6DACD9F,WAAA,EACC+F,KAAA,OA2KH4C,GAAGsS,WAAY,GAtKfjY,EAAIwH,MAAA,QAAgB,yBAAA,aA0KzB,SAxKSlB,GAyKRtG,EAxKQwH,MAAA,QAAe,mBAAW,gBA4KtC7B,GAAG2pD,UAAU5F,iBAAmB,KAChC/jD,GAAGgmD,iBAIX,QAASiB,GAAmBC,GACxBF,GACA,IAAI/rD,IAvKAnF,UAAUkK,GAAA2pD,UAAA5F,iBAAAjuD,UAyKVguD,WAxKI9jD,GAAA2pD,UAAA5F,iBAAuBD,WA0K/BtC,GAAkB6J,iBAAiBpwD,GAAKwD,KAAK,SAAUC,GAvKnD,GAAA,MAAAA,EAAAlI,OAAoB,CAChBwJ,GAAAq+C,OAAQ1hD,KAAAC,MAAW8B,EAAKhJ,KAAAgK,QAyKxBM,GAAGsrD,WAxKI9wD,EAAe+wD,KAAIvrD,GAAAq+C,OAAA2F,OAAA0C,OAyK1B1mD,GAAG+lD,uBACH,IAAIqB,KACJ5sD,GAAOqI,QAxKK7C,GAAAq+C,OAAW2F,MAAA,SAAA6C,GAyKnB,GAAI/N,IACAuO,KAAMR,EAAEQ,KACRX,OAAQG,EAAEH,OAvKXI,OAAY,UAAZD,EAAYH,OAAAG,EAAAC,UA0KfM,GAxKIvvD,KAAAihD,KA0KR94C,GAAG+lD,qBAAuBqB,EAC1BpnD,GAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,SArKlE,SAAAC,GACI5I,EAAW2I,YAAA,QAAA,mBAAA,UA6KnB,QAxKQ4mD,GAAAJ,EAAmBb,GAyKvBrmD,GAAGumD,aACHvmD,GAAG+lD,oBAEH,IAAIS,GAAW,QAxKSC,EAAOJ,EAAWK,QAAA,GAyKtCC,EAxKgBnsD,EAAA6P,KAAWrK,GAAAq+C,OAAA2F,OAyK3B0C,OAAUF,GAEdhsD,GAAOqI,QAAQ7C,GAAG+lD,qBAAsB,SAAUc,GAC1CA,EAAEH,SAxKKF,IAyKPK,EAAEC,OAxKMtsD,EAAAyC,OAAA0pD,EAAAG,QAyKJxrB,SAxKI4rB,EAAAZ,sBAAAS,YAiMpB,QAASN,GAxKGc,GAyKR,MAAO3gD,UAxKC2gD,EAAejkC,UAAA,IA4K3B,QAAStP,KACLhU,GAAG+S,WAxKS,EAyKZ/S,GAAGgT,YAxKa,EA4KpB,QAAStB,KACL1R,GAAGgT,YAAa,EAChBkB,IACAlU,GAAG2pD,aAGP,QAASz1C,KACLlU,GAAGwrD,0BAxKqBp3C,gBA2K5B,QAASq3C,KACL,GAAIxwD,IACAoF,OAAQL,GAAG2pD,UAAUjU,iBAAiBr1C,OACtCgC,OAAQrC,GAAG2pD,UAAUS,aAAa/nD,OAEtCgnD,GAxK4BqC,mBAAkBzwD,GAAAwD,KAAA,SAAAC,GAyK1CsB,GAAG6pD,YAAcnrD,EAxKGhJ,KAAAqjB,GAyKpB/Y,GAAG4pD,sBAxKuBlrD,EAAAhJ,KAAAi2D,wBA4KlC,QAASC,KACL,GAAI3wD,IACAoF,OAAQL,GAAG2pD,UAAUjU,iBAAiBr1C,OACtCgC,OAAQrC,GAAG2pD,UAAUS,aAAa/nD,OAClCvM,UAAWkK,GAAG2pD,UAAU9nC,gBAAgB/rB,UAE5CuzD,GAxKoBwC,iBAAA5wD,GAA2BwD,KAAA,SAAeC,GAyK1DsB,GAAG6pD,YAxKSnrD,EAAAhJ,KAAWqjB,GA0KvB/Y,GAAGypD,qBAxKY/qD,EAAahJ,KAAAo2D,uBA4KpC,QAASC,KACL,GAAI9wD,IACAoF,OAxKQL,GAAA2pD,UAAQjU,iBAAWr1C,OAyK3BgC,OAAQrC,GAAG2pD,UAxKSS,aAAW/nD,OAyK/BvM,UAAWkK,GAAG2pD,UAxKM9nC,gBAAoB/rB,UA0K5CuzD,GAA6B2C,kBAAkB/wD,GAAKwD,KAAK,SAAUC,GAC/DsB,GAAG6pD,YAAcnrD,EAAIhJ,KAAKqjB,GAC1B/Y,GAAG4pD,sBAAwBlrD,EAAIhJ,KAAKi2D,wBAK5C,QAASb,KACL,GAAImB,GAA2D,MAA/CjsD,GAAG2pD,UAAUS,aAAa8B,iBACtCjxD,GACAoF,OAxKQL,GAAA2pD,UAAIjU,iBAAAr1C,OAyKZgC,OAAQrC,GAAG2pD,UAxKCS,aAAA/nD,OAyKZvM,UAAWkK,GAAG2pD,UAAU9nC,gBAAgB/rB,UAExCm2D,IAAajsD,GAAG2pD,UAAU9nC,gBAC1BwnC,EAA6B8C,mBAAmBlxD,GAAKwD,KAAK,SAAUC,GAC7C,MAAfA,EAAIlI,QACJwJ,GAAG6pD,YAAcnrD,EAAIhJ,KAAKqjB,GApK5B/Y,GAAA4pD,sBAAAlrD,EAAAhJ,KAAAi2D,sBACN3rD,GAAWypD,qBAAA/qD,EAAAhJ,KAAAo2D,sBAGR/zD,EAAU2I,YAAA,QAAmBhC,EAAAhJ,KAAAme,QAAA,6BA4K3Bo4C,EACLF,IAGAN,IAKR,QAASW,KACL,GAAIC,KAgCJ,IA/BA7xD,EAAOqI,QAxKC7C,GAAQ2pD,UAAM9K,iBAAS,SAAoBgI,GAyK/C,GAAIyF,IACAtsC,OAAQ6mC,EAAE/H,UAvKbgL,cAAA9pD,GAAA2pD,UAAAG,cACE7Q,SAAU4N,EAAAnI,YACV1B,MAAAh9C,GAAA2pD,UAAe3E,YAAAtJ,sBAyKdrlC,UAAWrW,GAAG2pD,UAAUlzC,gBAAgBJ,UACxC6lC,WAAYl8C,GAAG2pD,UAAUhM,iBAAiBzB,WAC1CrqB,cAAe7xB,GAAG2pD,UAAU9L,oBAAoBhsB,cAtKxDw6B,GAAAx0D,KAAAy0D,KA6LItsD,GAAG6pD,YAxKI,CAyKP,GAxKI5uD,IAyKA4uD,YAAa7pD,GAAG6pD,YAChB0C,MAAOF,EAEXhD,GAxK2BmD,cAASvxD,GAAAwD,KAAA,SAAoBC,GAyKjC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BACpDk4C,KArKTh0D,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iCAOHrZ,GAAOqI,QAAW7C,GAAA2pD,UAAA9K,iBAAgC,SAAGgI,GAC7C,GAAEyF,IACAtsC,OAAS6mC,EAAA/H,UACPgL,cAAY9pD,GAAK2pD,UAAAG,cAyKjB7Q,SAAU4N,EAAEnI,YACZ1B,MAAOh9C,GAAG2pD,UAAU3E,YAAYtJ,sBAChCrlC,UAAWrW,GAAG2pD,UAAUlzC,gBAAgBJ,UACxC6lC,WAAYl8C,GAAG2pD,UAAUhM,iBAAiBzB,WAC1CrqB,cAAe7xB,GAAG2pD,UAAU9L,oBAAoBhsB,cAEpD7xB,IAAG4pD,sBAAsB/xD,KAAKy0D,KAM1C,QAASG,GAAW35C,GAChB,GAAI+2C,GAAc/2C,EAAI+2C,WAKtB,IAAIA,EAAa,CACb,GAAI5uD,IACA4uD,YAAaA,EACb6C,WAAY55C,EAAIkN,OAEpBqpC,GAA6BsD,cAAc1xD,GAAKwD,KAAK,SAAUC,GAvKxC,MAAtBA,EAAUlI,QACRuB,EAAS2I,YAAW,UAAUhC,EAAAhJ,KAAAme,QAAA,2BAyKWle,QAAhCqK,GAAG2pD,UAAU9nC,gBACbkqC,IArKDN,KAKV1zD,EAAS2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iCA6KV7T,IAAG4pD,sBAAsBt0B,OAAOxiB,EAAK,GAnK7C,QAAS85C,KACL,GAAIC,MACAC,EAAW9sD,GAAA2pD,UAAU5F,iBAAiBnxB,cAAA,KA4L1C,IAnBAp4B,EAxKIqI,QAAW7C,GAAA+lD,qBAAuB,SAAAmB,GAyKlC,GAAIA,EAAKR,SAAW1mD,GAAGsrD,WAAY,CAvKvC9wD,EAAAqI,QAAAqkD,EAAAZ,sBAAgD,SAAUO,GACnD7mD,GAAA+sD,WACAjJ,WAAA9jD,GAAwB2pD,UAAS5F,iBAAAD,WAyKxBiD,OAAQF,EAAEE,OACViG,QAASF,EAAWjG,EAAEoG,YApKlC,IAAQC,GAAG1yD,EAAU3F,SAAA2F,EAAiB8xB,IAAAtsB,GAAAypD,qBAAA,UAAAzpD,GAAA+sD,UAAAhG,OAC9BmG,IACRL,EAAch1D,KAAAmI,GAAU+sD,eAGrB7F,GAAAR,OAAkB1mD,GAAKsrD,aAyKtBwB,GAAY5F,EAAKZ,sBAAsB2G,UAAY,SAGvDjtD,GAAG6pD,aAAegD,EAAS1xD,OAAS,EAAG,CACvC,GAAIF,IAvKH4uD,YAAA7pD,GAAA6pD,YACDh3B,UAAMg6B,EAENxD,GAAqB8D,aAAalyD,GAAAwD,KAAA,SAAAC,GACpB,MAAdA,EAAWlI,QAyKHuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BAvKhE7T,GAAAypD,qBAA6B/qD,EAAAhJ,KACtBk2D,KA2KK7zD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iCAlK1Dg5C,GAAW1xD,OAAU,EACrB6E,GAAAypD,qBAAqBzpD,GAAAypD,qBAAa2D,OAAAP,GAIlC90D,EAAA2I,YAAA,QAA6B,6CAA4C,2BA2KjF,QAAS2sD,GAAUv6C,GACf,GAAIA,EAAI+2C,YAAa,CACjB,GAAI5uD,IACA4uD,YAxKO/2C,EAAA+2C,YAyKP7D,aAxKOlzC,EAAAi0C,OA0KXsC,GAxKSiE,aAAAryD,GAAAwD,KAAA,SAAAC,GACU,MAAXA,EAAAlI,QAyKAuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BACpD+3C,KArKR7zD,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iCA4KA7T,IAAGypD,qBAAqBn0B,OAAOxiB,EAAK,GAK5C,QAxKQy6C,MACJ,IAAA,GAAOryD,GAAA,EAAQglC,EAAGlgC,GAAA4pD,sBAA4BzuD,OAAAD,EAAaglC,EAAAhlC,UACnD8E,IAAA4pD,sBAAa1uD,GAAA+9C,eACbj5C,IAAA4pD,sBAAU1uD,GAAA4uD,oBACV9pD,IAAA4pD,sBAA4B1uD,GAAAsyD,aA2KpC,IAAIvyD,IACAoF,OAxKIL,GAAA2pD,UAAejU,iBAAUr1C,OAyK7B+pB,MAxKIpqB,GAAA2pD,UAAejU,iBAAale,WAyKhCn1B,OAAQrC,GAAG2pD,UAAUS,aAAa/nD,OAvKlCynD,cAAc9pD,GAAA2pD,UAAAG,cAyKd6B,uBAAyBY,MAAOvsD,GAAG4pD,uBAEnC5pD,IAAG2pD,UAAU9nC,iBACb5mB,EAAInF,UAAYkK,GAAG2pD,UAAU9nC,gBAAgB/rB,UAC7CmF,EAAIuyD,cAAgB,MACpBvyD,EAAI6wD,sBAAyBj5B,UAAW7yB,GAAGypD,sBAC3CJ,EAA6BoE,uBAAuBxyD,GAAKwD,KAAK,SAAUC,GACjD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BACpD7T,GAAG4pD,sBAAwBlrD,EAAIhJ,KAAKi2D,sBACpC3rD,GAAGypD,qBAAuB/qD,EAAIhJ,KAAKo2D,sBAInC/zD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,+BAK1D5Y,EAAIuyD,cAAgB,MAvKpBnE,EAAgBoE,uBAAAxyD,GAAAwD,KAAA,SAAAC,GACN,MAANA,EAAMlI,QACNuB,EAAa2I,YAAG,UAAAhC,EAAAhJ,KAAAme,QAAA,2BAChB7T,GAAO4pD,sBAAAlrD,EAAAhJ,KAAAi2D,uBAGH5zD,EAAI2I,YAAgB,QAAAhC,EAAAhJ,KAAAme,QAAA,8BA4MpC,QAASuF,IAxKG1jB,GAyKR,GAAI2jB,GAxKI3jB,EAAA2jB,KAyKJ9iB,EAAOb,EAAKa,IAChB,OAxKI,QAAAA,IAA6B,IAA7B8iB,EAAAC,UAA+D,IAApBD,EAAKC,UAiNxD,QAASC,IAxKG7jB,GAyKR,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAvKhB,IAAO,QAAHA,EA2KA,IAxKI,GAFAijB,GAAM,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAENxe,EAAA,EAAWA,EAAA8E,GAAA2Z,OAAAxe,OAAAD,IAAA,CAyKX,GAAI0e,GAAa,GAAIH,MAAKzZ,GAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAtK/D,IAAIF,IAAeI,EACf,MAAA5Z,IAAA2Z,OAAWze,GAAA1E,OA4KvB,MAAO,GAjhCX,GAvKIwJ,IAAGC,IAyKPD,IAAGqU,kBAtKChJ,MAAQ,IAERA,MAAG,KAEHA,MAAG,KAEHA,MAAG,KAEHA,MAAG,MAyKPrL,GAAGsU,SAvKItU,GAAAqU,gBAAW,GAwKlBrU,GAAGuU,YAvKI,EAwKPvU,GAAG2pD,aAEH3pD,GAAGwU,qBAvKI,SAAqBC,GACxBzU,GAAAuU,YAAOE,GA0KX1c,EAvKS2c,SAAA,EAwKT1U,GAAGgT,YAvKS,EAwKZhT,GAAG+S,WAvKS,EAwKZ/S,GAAGsS,WAvKS,EAwKZva,EAAW2c,SAvKC,EAwKZ1U,GAAGu8C,gBACHv8C,GAAGypD,wBACHzpD,GAAG4pD,yBAEH5pD,GAAGgU,OAASA,EACZhU,GAAG0R,OAASA,EACZ1R,GAAGkU,UAAYA,EACflU,GAAGmqD,mBAAqBA,EACxBnqD,GAAGuqD,iBAvKkBA,EAwKrBvqD,GAAGwqD,qBAvKoBA,EAwKvBxqD,GAAGyqD,iBAAmBA,EACtBzqD,GAAGyhB,oBAAsBA,EACzBzhB,GAAG2qD,yBAA2BA,EAC9B3qD,GAAG0pD,OAASA,EACZ1pD,GAAG+qD,WAAaA,EAChB/qD,GAAGgrD,qBAAuBA,EAC1BhrD,GAAGirD,yBAA2BA,EAtK9BjrD,GAAAkrD,qBAAqBA,EAwKrBlrD,GAAG8lD,qBAvKWA,EAwKd9lD,GAAGinD,mBAvKeA,EAwKlBjnD,GAAGsnD,iBAvKgBA,EAwKnBtnD,GAAGutD,cAvKKA,GAwKRvtD,GAAGosD,YAAcA,EACjBpsD,GAAG4sD,WAAaA,EAChB5sD,GAAG8qD,oBAvKCA,EAwKJ9qD,GAAGysD,WAvKaA,EAwKhBzsD,GAAGqtD,UAvKYA,EAwKfrtD,GAAGyrD,oBAvKYA,EAwKfzrD,GAAGspD,uBAvKYA,EAwKfp3C,IAGAlS,GAAG0tD,gBACCC,cAAiB,MACjB50C,GAAI,IAEJ40C,cAAiB,MAtKrB50C,GAAA,IAuiCA/Y,GAAGqa,MAxKK,WAyKJra,GAAGsa,GAxKK,GAAIb,OA0KhBzZ,GAAGqa,QAEHra,GAAG0X,MAAQ,WACP1X,GAAGsa,GAAK,MAGZta,GAAGua,eACCC,YAxKWjB,GAyKXkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,GAAG2a,aAvKHC,aAASxB,GACLyB,QAAI,GAAApB,MAAc,KAAI,EAAA,IAyKtBgB,QAAS,GAAIhB,MACbqB,YAAa,GAWjB9a,GAAG+a,UAAY,WACX/a,GAAGua,cAxKaE,QAAAza,GAAAua,cAAAE,QAAA,KAAA,GAAAhB,MAyKhBzZ,GAAG2a,YAAYF,QAAUza,GAAGua,cAAcE,SAG9Cza,GAAG+a,YAEH/a,GAAGkb,MAAQ,WACPlb,GAAGmb,OAAOtM,QAxKG,CACD,IAAA4K,OA6KhBzZ,GAAGwb,QAxKQ,SAAAC,EAAAC,EAAsBC,GAyK7B3b,GAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,GAAG4b,SAAW,eAAgB,aAAc,aAAc,YAAa,QAvKvE5b,GAAA6b,OAAS7b,GAAA4b,QAAa,GA0KtB5b,GAAG8b,iBAxKmB,cA0KtB9b,GAAGmb,QACCtM,QAxKQ,EA0KZ,IAAIkN,IAAW,GAAItC,KACnBsC,IAASP,QAAQO,GAxKGC,UAAU,EAyK9B,IAAIC,IAxKgB,GAAAxC,KAyKpBwC,IAAcT,QAAQO,GAASC,UAAY,GAC3Chc,GAAG2Z,SACCN,KAAM0C,GACNvlB,OAxKQ,SA0KR6iB,KAAM4C,GACNzlB,OAAQ,4YAxgChBpC,QAtKIC,OAAA,yBAwKCe,WAAW,4BAA6Bg0D,MA8hCjD,WACI,YAOA,SAxKIwE,GAAwB71D,EAAAyC,EAAAH,EAAAN,EAAA8zD,EAAAniB,EAAA15B,EAAAJ,EAAAzX,GA2MxB,QAxKQ+X,KA0KJF,EAxKQI,mBAAgBD,GAAA1T,KAAA,SAAAC,GAChB,MAAAA,EAAAlI,SACJwJ,EAAAqS,YAAA3T,EAAAhJ,KA0KIsK,EAAGsS,WAxKY,IA0KpB,SAxKS3R,GAyKR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS+gB,GAAoBtP,EAAW5T,GAChC4T,GACAP,EAxKC8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACmB,MAAhBA,EAAAlI,QACJwJ,EAAA2hB,YAAAjjB,EAA6BhJ,MACjBsK,EAAA2hB,YAAgBxmB,OAAA,GACpBd,EAAW8C,OAAA,UAAY,oDACpB9F,WAAA,EAyKK+F,KAAM,OAId4C,EAAGsS,WAAY,EACX/T,GACAA,KAEJlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBA6CvD,QAASisD,KACL,GAAIp6C,GAAcvZ,EAAsBgG,uBAvKzC4tD,GACI57C,UAASnS,EAAK+tD,SAAM56C,gBAAOhB,UAyK1Brc,UAAWkK,EAAG+tD,SAASlsC,gBAAgB/rB,UACvC42C,cAAe1sC,EAAG+tD,SAAS/f,oBAAoBtB,cAvKpDlV,WAAWx3B,EAAA+tD,SAAgBrY,iBAAcle,WA0KnCx3B,GAAG+S,WAtJZg7C,EAASp6C,WAAkBD,EAAArT,OACnB0tD,EAAOC,WAAKhuD,EAAA+tD,SAAAC,WACZH,EAAYI,uBAAAF,GAAAtvD,KAAA,SAAAC,GACZA,EAAShJ,KAAOke,aAAA,GACZ7b,EAAa2I,YAAS,UAAehC,EAAGhJ,KAAMme,QAAA,+BAyK1C3B,IAvKHlS,EAAIgT,YAAc,EACfhT,EAAA+S,WAAa,EAyKbrB,MAtKA3Z,EAAU2I,YAAU,QAAAhC,EAAAhJ,KAAAme,QAAA,+BAyKpB7T,EAAGgT,YAAa,IAErB,SAAUrS,GAvKV5I,EAAA2I,YAAA,mCA/BRgS,QAAAoB,UAAmBJ,EAAArT,OAyKdwtD,EAAiCK,sBAAsBH,GAAUtvD,KAAK,SAAUC,GAvK5EA,EAAAhJ,KAAAke,aAAA,GACA7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,+BAyKI3B,IAvKDlS,EAAIgT,YAAA,EACVtB,MAEK3Z,EAAQ2I,YAAS,QAAYhC,EAAAhJ,KAAAme,QAAA,+BAC9B7T,EAAAgT,YAAA,IAGV,SAAArS,GACO5I,EAAA2I,YAAA,kCAyBjB,QAAYytD,GAAAJ,GACT,GAAAp7C,GAAAtY,EAAAsY,QAAA,UAAA,4CAyKYtb,WAAW,EACX+F,KAAM,MAtKbuV,GAAWjT,OAAAjB,KAAA,WA0KJovD,EAAiCO,yBAAyBL,EAASC,YAAYvvD,KAAK,SAAUC,GACvE,MAAfA,EAAIlI,QAxKfuB,EAAA2I,YAA8B,UAAY,uBAAwB,+BAC9DwR,KAENna,EAAqB2I,YAAc,QAAE,6CACvBrJ,WAAA,EA0KG+F,KAAM,QAtKnB,SAAcuD,GA0KT5I,EAAW2I,YAAY,QAAS,gEAC5BrJ,WAAW,EAxKX+F,KAAA,UAGb,cAIH,QAAI6wD,GAAYn7C,GA0KZ9S,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAG0S,QAAQO,QAAUH,EAAIG,QAvK1BjT,EAAA0S,QAASte,QAAA8e,KAAAJ,EAIT,KAAA,GAAA5X,KAAA8E,GAAAqS,YACArS,EAAAqS,YAAAnX,GAAyBiX,WAAAnS,EAAA0S,QAAAP,YACzBnS,EAAA0S,QAAiBS,gBAAAnT,EAAAqS,YAAAnX,GAIpB,KAAA,GAAAA,KAAA8E,GAAAoT,iBA0KYpT,EAAGoT,iBAAiBlY,GAAGmY,iBAAmBrT,EAAG0S,QAAQW,iBAxKxDrT,EAAA0S,QAAOW,eAAArT,EAAAoT,iBAAAlY,GA4KZ,KAzKI,GAAIA,KAAI8E,GAAAsT,oBACJtT,EAAGsT,oBAAkBpY,GAAAqY,oBAAAvT,EAAA0S,QAAAc,UA0KrBxT,EAAG0S,QAAQa,kBAAoBvT,EAAGsT,oBAAoBpY,IAWlE,QAzKQ8Y,KA0KJhU,EAAG+S,WAzKS,EA0KZ/S,EAAGgT,YAzKY,EA6KnB,QAAStB,KACL1R,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfmB,IAGJ,QAASA,KACLlU,EAAGquD,uBAzKYj6C,gBA/DnB,GAxKIpU,GAAIC,IA0KRD,GAAGqU,kBAxKShJ,MAAiB,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAyK7BrL,EAAGsU,SAxKStU,EAAAqU,gBAAkB,GA0K9BrU,EAAGuU,YAxKK,EAyKRvU,EAAGwU,qBAxKiB,SAAgBC,GAyKhCzU,EAAGuU,YAxKSE,GA2KhBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGsuD,0BACHtuD,EAAG+tD,YACHh2D,EAxKW2c,SAAA,CAyKX,IACIvC,IADchY,EAAsBgG,uBACxBhG,EAAsBgG,uBAAuBwU,gBAAgBxC,UAK7EnS,GAAGgU,OAxKKA,EAyKRhU,EAAG0R,OAxKKA,EAyKR1R,EAAGkU,UAxKYA,EAyKflU,EAAGyhB,oBAAsBA,EACzBzhB,EAAG8tD,sBAAwBA,EAC3B9tD,EAAGiuD,uBAxKWA,EAyKdjuD,EAAGmuD,eAxKgBA,EA4KnBj8C,IA0CA27C,EAAiCU,2BAA2Bp8C,GAAW1T,KAAK,SAAUC,GAvK/D,MAApBA,EAAQlI,SACJwJ,EAAA4tC,aAAKlvC,EAAAhJ,KA0KJsK,EAAGsS,WAAY,IAEpB,SAxKC3R,GACA5I,EAAS2I,YAAI,QAAA,mBAAA,oBA0LjBmtD,EAAiCW,2BAA2B/vD,KAAK,SAAUC,GAvKhD,MAAxBA,EAAYlI,QACRwJ,EAAAsuD,uBAA2B5vD,EAAAhJ,KAC3BsK,EAAAsS,WAAY,GA0KPjY,EAAQwH,MAAM,QAAS,yBAA0B,gCAEtD,SAAUlB,GAvKdtG,EAAQwH,MAAA,QAAY,mBAAA,+MAuD3BzN,QACKC,OAxKO,yCAyKPe,WAxKO,gCAAgCw4D,MA6ZhD,WACI,YAOA,SAzKOa,GAAe10D,EAAAE,EAAAwQ,EAAA1S,EAAAwC,EAAAC,EAAAR,EAAAK,EAAAF,EAAA6X,EA0KlB08C,EAzKe98C,EAAqB+8C,GA0LpC,QAASz8C,KAxKT,GACQC,IADRhY,EAAiCgG,uBACjBhG,EAAgBgG,uBAAAwU,gBAAAxC,UA0K5BH,GAzKWI,mBAAAD,GAA6B1T,KAAA,SAAAC,GACjB,MAAfA,EAAGlI,SA0KHwJ,EAzKGqS,YAAA3T,EAAAhJ,KACHk5D,IA0KA5uD,EAAGsS,WAAY,IAEpB,SAzKS3R,GA0KR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAzKQkuD,KA0KJ,GAzKIl7C,GAAcvZ,EAASgG,uBACvBgS,EAAWhY,EAAYgG,uBAAgBwU,gBAAAxC,UACvClX,GACAkX,UAAAA,EA0KA/R,SAAUsT,EAAYrT,OAE1BsuD,GAzKwBE,iBAAY5zD,GAAAwD,KAAA,SAAAC,GAChC,GAAA,MAAAA,EAAAlI,OAAA,CACIwJ,EAAA8uD,aAAapwD,EAAAhJ,KA0Kby8B,QAzKIC,IAAApyB,EAAW8uD,aA0Kf,KAzKI,GAAA5zD,KAAA8E,GAAA8uD,aACA9uD,EAAG8uD,aAAa5zD,GAAA6zD,gBAAA,EAChB/uD,EAAA8uD,aAAA5zD,GAAA6d,GAAA/Y,EAAA8uD,aAAA5zD,GAAA8zD,WA0KAhvD,EAzKGgvD,WAAAhvD,EAAA8uD,aAAA5zD,GAAA6d,GACHoZ,QAAAC,IAAWpyB,EAAAgvD,WAIhBhvD,GAAAsS,WAAe,MA2KdjY,GAAQwH,MAAM,QAAS,yBAA0B,wBAEtD,SAzKIlB,GACH5I,EAAS2I,YAAa,QAAA,mBAAY,yBAgM1C,QAzKQuuD,GAAW98C,EAAA5T,GA2KX4T,EACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GAxKhD,MAAZA,EAAOlI,QACXwJ,EAAA2hB,YAAAjjB,EAAAhJ,KACQsK,EAAAkvD,kBAAoBxwD,EAAAhJ,KACpBy8B,QAAAC,IAAWpyB,EAAA2hB,cACX3hB,EAAA2hB,YAAAxmB,OAAA,GACGd,EAAA8C,OAAA,UAAA,oDACH9F,WAAW,EACP+F,KAAA,OAKR4C,EAAAsS,WAAW,EACP/T,GACAA,KA2KAlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBArKhD7B,EAAA+pB,sBAAa,KA4KpB,QAzKOolC,GAAUr5D,EAAayI,GA2KtBzI,GACA44D,EAAgBU,WAAWt5D,EAAW,GAAG2I,KAAK,SAAUC,GAxK3C,MAARA,EAAKlI,QACHwJ,EAAAqvD,aAAe3wD,EAAAhJ,KACfy8B,QAAQC,IAAApyB,EAAAqvD,eA0KFrvD,EAAGqvD,aAAal0D,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,qDACtB9F,WAAW,EAxKd+F,KAAA,OA4KL4C,EAAGsS,WAAY,EACX/T,GAxKFA,KA4KFlE,EAAQwH,MAAM,QAAS,yBAA0B,aAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,cAlIvD,GAAI7B,GAAKC,IACTD,GAAGsU,SAAW,KAEdtU,EAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGivD,oBAAsBA,EACzBjvD,EAAGmvD,WAAaA,EAChBj9C,IA6CAlS,EAAG+uD,eAzKiB,SAAKO,GA4KrB,GAAIA,EAAIP,eACJ,IAAK,GAzKG7zD,KAAG8E,GAAA8uD,aACH9uD,EAAA8uD,aAAA5zD,GAAAq0D,OAAAD,EAAAC,QA0KAvvD,EAzKGwvD,SAAAxvD,EAAA8uD,aAAA5zD,GAAAq0D,MACHvvD,EAAAvL,IAAAuL,EAAW8uD,aAAY5zD,GAAAu0D,eAG5Bt9B,QAAAC,IAAUpyB,EAAKwvD,UACdr9B,QAAAC,IAAWpyB,EAAAvL,KA0KX09B,QAAQC,IAAIpyB,EAAGgvD,gBAInBhvD,GAAGwvD,SAAW,KACdxvD,EAAGvL,IAAM,MA8DjBuL,EAAG0vD,kBAzKgB,SAAA58C,GACf,GAAGpd,IA0KCi6D,GAAI78C,EAER9Y,GAAO8F,GAAG,YAxKdpK,KAASA,kNAmBbtB,QACKC,OAzKO,kBA0KPe,WAAW,kBAAmBq5D,MA2JvC,WACI,YAOA,SAASmB,GAAyB71D,EAAOE,EAASwQ,EAAQ1S,EAAYwC,EAAWP,EAAQQ,EAAQH,EAASF,EAAuB6X,EAxKpI08C,EAAY98C,EAAA+8C,GAgBL,QAAGz8C,KACA,GACIC,IADJhY,EAAsCgG,uBAClChG,EAAcgG,uBAAAwU,gBAAAxC,UA2KjBH,GAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KAzK9Bk5D,IACA5uD,EAAAsS,WAAa,IA4KT,SAAU3R,GAzKjB5I,EAAgB2I,YAAA,QAAA,mBAAA,oBAgLhB,QAASkuD,KACL,GAAIl7C,GA1KOvZ,EAAYgG,uBA2KnBgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UAzK1ElX,GACCkX,UAAWA,EA2KX/R,SAAUsT,EAAYrT,OAE1BsuD,GAA2BE,iBAAiB5zD,GAAKwD,KAAK,SAAUC,GAC5D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8uD,aAAepwD,EAAIhJ,KAzKzBy8B,QAAAC,IAAApyB,EAAA8uD,aACD,KAAA,GAAA5zD,KAAc8E,GAAA8uD,aACd9uD,EAAA8uD,aAAY5zD,GAAA6zD,gBAAsB,EAC5B/uD,EAAA8uD,aAAA5zD,GAAA6d,GAAA/Y,EAAA8uD,aAAA5zD,GAAA8zD,WACNhvD,EAAWgvD,WAAAhvD,EAAA8uD,aAAA5zD,GAAA6d,GACXoZ,QAAUC,IAAApyB,EAAYgvD,WAIlBhvD,GAAGsS,WAAA,MAEHjY,GAAKwH,MAAS,QAAG,yBAAc,wBA4KpC,SA1KSlB,GA2KR5I,EA1KW2I,YAAA,QAAgB,mBAAgB,yBAiMnD,QAASuuD,GA1KkB98C,EAAA5T,GA4KnB4T,EACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QAzKXwJ,EAAA2hB,YAAAjjB,EAAAhJ,KACEsK,EAAAkvD,kBAAWxwD,EAAAhJ,KACXy8B,QAAMC,IAAApyB,EAAA2hB,cA2KI3hB,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDAzKrC9F,WAAoB,EA2KL+F,KAAM,OArKd4C,EAAGsS,WAAA,EACH/T,GACIA,KA4KJlE,EA1KQwH,MAAA,QAAW,yBAAA,mBA4KxB,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAI/C7B,EAAG+pB,sBA1KS,KA6KpB,QAASolC,GA1KOr5D,EAAcyI,GA4KtBzI,GACA44D,EA1KYU,WAAet5D,EAAA,GAAA2I,KAAA,SAAoBC,GA2KxB,MAAfA,EAAIlI,QACJwJ,EAAGqvD,aAAe3wD,EAAIhJ,KAzK3By8B,QAAAC,IAAApyB,EAAAqvD,eACArvD,EAAAqvD,aAAsBl0D,OAAA,GA2Kbd,EAAQ8C,OAAO,UAAW,qDACtB9F,WAAW,EAzKf+F,KAAA,OAKJ4C,EAAGsS,WAAA,EACH/T,GACIA,KA6KJlE,EA1KQwH,MAAM,QAAA,yBAAA,aA4KnB,SAAUlB,GACTtG,EA1KOwH,MAAA,QAAY,mBAAA,cAnInC,GAAA7B,GAAAC,IA0KID,GAAGsU,SAAW,KAxKlBtU,EAAAqU,kBAAAhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2KIrL,EA1KCsU,SAAOtU,EAAAqU,gBAAA,GA4KRrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAzKxCzU,EAASuU,YAAgBE,GA8KrBzU,EAAGivD,oBAAsBA,EAzKzBjvD,EAAGmvD,WAAAA,EACHj9C,IAuNAlS,EAAG+uD,eAAiB,SAAUO,GAG1B,GAAIA,EAAIP,eACJ,IA1KI,GAAA7zD,KAAQ8E,GAAA8uD,aA2KJ9uD,EAAG8uD,aAAa5zD,GAAGq0D,OAASD,EAAIC,QAzKzCvvD,EAAUwvD,SAAKxvD,EAAA8uD,aAAA5zD,GAAAq0D,MACdvvD,EAAWvL,IAAAuL,EAAA8uD,aAAqB5zD,GAAAu0D,eAGrCt9B,QAAiBC,IAAApyB,EAAAwvD,UAChBr9B,QAAAC,IAAApyB,EAAAvL,KA2KQ09B,QAAQC,IAAIpyB,EAAGgvD,gBAInBhvD,GAAGwvD,SA1KQ,KA2KXxvD,EAAGvL,IA1KK,MA0OhBuL,EAAG0vD,kBA1KiB,SAAM58C,GA2KtB,GAAIpd,IACAi6D,GAAI78C,EAER9Y,GAAO8F,GAAG,YACNpK,KAAMA,kNAxJlBtB,QACKC,OAAO,kBACPe,WAAW,2BAA4Bw6D,MA6JhD,WACI,YAnKH,SAAYC,GAAA91D,EAAAE,EAAAwQ,EAAAzQ,EAAAjC,EAAAwC,EAAAC,EAAAH,EAAAy1D,EAAA31D,EAAA6X,EACT08C,EAAA98C,EAAA+8C,GAiPI,QAASz8C,KA1KLlS,EAAAxJ,QAAQ,CA4KR,IA3KI2b,GAAShY,EAAsBgG,uBAAAwU,gBAAAxC,SA6KnCH,GA3KeI,mBAAcD,GAAgB1T,KAAA,SAAAC,GACxB,MA2KbA,EA3KIlI,SA4KJwJ,EAAGqS,YAAc3T,EAAIhJ,KAzKrBsK,EAAAsS,WAAe,IA6KpB,SA3KK3R,GA4KJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QA3KQqvD,GAASxxD,GA4KbyB,EAAGgwD,kBACCC,gBAAiB,eA1KzBC,cAAS,IAEDD,gBAAW,uBACXC,cAAA,IA8KAD,gBA3KW,yDA4KXC,cA3KQ,IA8KRD,gBA3KgB,wBA4KhBC,cAAe,IAGf3xD,GACAA,IAIR,QAAS4xD,KACL,GAAIh+C,GA3KQhY,EAAuBgG,uBAA0BwU,gBAAAxC,UA4KzD/R,EAAWsT,EAAYrT,MAE3ByvD,GA3K+BM,2BAAoBj+C,EAAA/R,GAAA3B,KAAA,SAAAC,GA4K5B,MAAfA,EAAIlI,SACJwJ,EAAGqwD,oBAAsB3xD,EAAIhJ,KA1K9BsK,EAAAsS,WAAA,IA6KJ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QA3KQ4vD,GAAgBn+C,EAAW5T,GA6K/B,GAAI4T,EA3KW,CA4KX,GAAI/R,GA3KIsT,EAAerT,MA4KvByvD,GA3K6BS,2BAAYp+C,EAAA/R,GAAA3B,KAAA,SAAAC,GACrB,MA2KZA,EA3KIlI,QA4KJwJ,EAAGwwD,oBA3KgB9xD,EAAAhJ,KA4KnBk5D,IACA5uD,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SA3KQlB,GA4KPtG,EA3KQwH,MAAA,QAAA,mBAAA,wBA+KZ7B,GAAG2vD,GAAG9tC,gBA3KgB,KA4KtB7hB,EAAG2vD,GAAGc,iBAAiB,KACvBzwD,EA3KG2vD,GAAAe,UAAU,KA4Kb1wD,EAAG2vD,GA3KCgB,YAAc,KA4KlB3wD,EAAG2vD,GAAGx6D,MAAM,KApKpB,QAAGy5D,KA6KC,GA3KIl7C,GAAIvZ,EAAAgG,uBA4KJgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAK7E,IAA0Bxc,QAAtBqE,EAAOvE,OAAOC,KACd,GAAIuF,IACAkX,UAAWA,EACX68C,WAAYh1D,EAAOvE,OAAOC,KAAKi6D,GAAGX,WA1KzC5uD,SAAAsT,EAAArT,YAGT,IAAApF,IACYkX,UAAAA,EACI/R,SAAAsT,EAAgBrT,OAI5BsuD,GAAiBE,iBAAwB5zD,GAAAwD,KAAA,SAAAC,GACrC,GAAK,MAAAA,EAAAlI,OAAA,CAENwJ,EAAA8uD,aAAqBpwD,EAAShJ,IAC9B,KAAc,GAAAwF,KAAA8E,GAAA8uD,aA6KD9uD,EAAG8uD,aAAa5zD,GAAG6zD,gBAAiB,EA3KjD/uD,EAAc8uD,aAAA5zD,GAAA01D,aAAA,EACd5wD,EAAA8uD,aAAuB5zD,GAAA6d,GAAU/Y,EAAK8uD,aAAA5zD,GAAA8zD,YAgLxBhvD,EAAG8uD,aAAa3zD,OAAS,GA3KvCd,EAAc8C,OAAA,UAAA;AACd9F,WAAwB,EACpB+F,KAAc,OAGlB4C,EAAAsS,WAAa,MAEbjY,GAAYwH,MAAA,QAAA,yBAAA,wBAEf,SAAWlB,GACR5I,EAAe2I,YAAA,QAAA,mBAAA,yBAmBlB,QAAGuuD,GAAc98C,EAAA5T,GAEd4T,EACAP,EAAkB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACE,MAApBA,EAAAlI,QA6KawJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGkvD,kBAAoBxwD,EAAIhJ,MA1KhCsK,EAAA2hB,YAAAxmB,OAAA,GACAd,EAAA8C,OAAA,UAAA,oDACI9F,WAAA,EACH+F,KAAA,OAgLI4C,EAAGsS,WAAY,EA1K3B/T,GACGA,KAEAlE,EAAAwH,MAAA,QAAA,yBAAA,mBA8KI,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAI/C7B,EAAG2vD,GAAG5lC,sBAAsB,KAzKpC,QAASolC,GAAOr5D,EAAAyI,GAERzI,GA6KA44D,EAAgBU,WAAWt5D,EAAW,KAAK2I,KAAK,SAAUC,GA3K/C,MAAfA,EAAelI,QACHwJ,EAAAqvD,aAAgB3wD,EAAAhJ,MACjBsK,EAAAqvD,aAAkBl0D,OAAA,GA6Kbd,EAAQ8C,OAAO,UAAW,qDA3K/B9F,WAAY,EA6KH+F,KAAM,OAKd4C,EAAGsS,WAAY,EA3KtB/T,GACFA,KAGAlE,EAAAwH,MAAA,QAAA,yBAAA,aAEC,SAAAlB,GA6KItG,EAAQwH,MAAM,QAAS,mBAAoB,cAOvD,QA5KQgvD,GAAe/6D,EAAAyI,GA6KfzI,EACA44D,EAAgBmC,iBAAiB/6D,GAAW2I,KAAK,SAAUC,GA3K3D,MAAAA,EAAAlI,QACAwJ,EAAA8wD,eAAApyD,EAAAhJ,MA6KasK,EAAG8wD,eAAe31D,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,qDACtB9F,WAAW,EA3K1B+F,KAAA,OAKO4C,EAAAsS,WAAW,EACZ/T,GACAA,KAGPlE,EAAWwH,MAAA,QAAY,yBAA6B,aA8KjD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,eAxK/C7B,EAAA2vD,GAAIc,iBAAW,KACfzwD,EAAA2vD,GAAAe,UAAA,KA6KA1wD,EAAG2vD,GA5KCgB,YAAQ,KA6KZ3wD,EAAG2vD,GAAGx6D,MA5KK,MAgLnB,QAAS47D,GA5KevnC,EAAejrB,GA8K/BirB,EACAklC,EA5KYqC,oBAAevnC,GAAoB/qB,KAAA,SAAAC,GA6KxB,MAAfA,EAAIlI,QACJwJ,EAAGgxD,gBAAkBtyD,EAAIhJ,KA3K9BsK,EAAAsS,WAAA,GACGtS,EAAAgxD,gBAAgB71D,OAAA,GAChBd,EAAA8C,OAAiB,UAAA,yDACP9F,WAAA,EACV+F,KAAY,OA+KV4C,EAAGsS,WAAY,EACX/T,GACAA,KAzKXlE,EAAAwH,MAAA,QAAsB,yBAAA,aAEvB,SAAAlB,GACAtG,EAAYwH,MAAA,QAAA,mBAAsB,eAgLlC7B,EAAG2vD,GAAGe,UAAU,KA3KhB1wD,EAAA2vD,GAAAgB,YAAc,KACd3wD,EAAA2vD,GAAIx6D,MAAM,MAiLlB,QAAS87D,KACLvC,EA5KKwC,YAAAlxD,EAAA2vD,GAAAc,iBAAAjnC,WAAAxpB,EAAA2vD,GAAAe,UAAAS,OAAA1yD,KAAA,SAAAC,GACS,MAANA,EAAAlI,SACAwJ,EAAAoxD,aAAW1yD,EAAAhJ,KACXsK,EAAAsS,WAAU,GA6KLtS,EAAGoxD,aAAaj2D,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,iDACtB9F,WAAW,EA3K3B+F,KAAA,OAGQ4C,EAAGsS,WAAA,EACH/T,UACIA,cAiLhB,QAAS8yD,GAAyB9yD,GAC9ByB,EAAGsxD,6BACHtxD,EAAGuxD,uBACHvxD,EAAGgd,MAAQ,CACX,IAAIqV,KAEJ,KAAK,GAAIn3B,KAAK8E,GAAG2vD,GAAGgB,YAChBt+B,EA5KIx6B,KAAGmI,EAAA2vD,GAAAgB,YAAYz1D,GAAAs2D,OA+KvBxxD,GAAGwxD,OAASn/B,EAAIqB,MAEhB,IA5KIz4B,IA6KAuuB,WAAYxpB,EAAG2vD,GAAGc,iBAAiBjnC,WACnC2nC,MAAOnxD,EAAG2vD,GAAGe,UAAUS,MA3K5Br7D,UAAAkK,EAAiB2vD,GAAA9tC,gBAAe/rB,UA6K3B07D,OAASxxD,EAAG2vD,GAAGgB,YAAYx1D,OAAS,EAAK6E,EAAGwxD,OAAS,KA1KzDxxD,GAAKyxD,SACDx2D,EAAIy2D,gBAAgB1xD,EAAG0xD,iBA6K3BhD,EA5KW2C,yBAA8Bp2D,GAAAwD,KAAA,SAAAC,GA6KrC,GA5KgB,MAAZA,EAAGlI,OAAS,CACZwJ,EAAGuxD,oBAAgB7yD,EAAAhJ,IA6KnB,KAAK,GAAIwF,KAAK8E,GAAGuxD,oBAEbvxD,EAAGuxD,oBAAoBr2D,GAAGy2D,QAAU3xD,EAAGuxD,oBAAoBr2D,GAAG02D,WAC9D5xD,EAAG84C,KAAO94C,EAAGuxD,oBAAoBr2D,GAAGy2D,OAIpCpzD,IA3KPA,QAIGlE,GAAQwH,MAAA,QAAW,yBAAK,QA8K7B,SA5KSlB,GA6KR5I,EAAW2I,YAAY,QAAS,mBAAoB,SAI5D,QAASsT,KACLhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGiU,aAAc,EACjBjU,EAAGyxD,QA5KS,EA6KZzxD,EAAG6xD,OAAQ,EACX3/C,IACAi+C,IACAnwD,EAAG2vD,MACH3vD,EAAGuxD,uBACHvxD,EAAGsxD,6BACHtxD,EAAG8xD,aAGP,QAASpgD,KACL,GAAIiB,GA5KGtY,EAAAsY,QAAA,eACH,yFA6KAtb,WAAW,EACX+F,KAAM,MAzKVuV,GAAIjT,OAAWjB,KAAA,WACK9I,QAAhBqE,EAAAvE,OAAgBC,KACZsE,EAAI8F,GAAI/H,EAAWyE,gBA+KnBwD,EAAGgT,YA5Ka,EA6KhBhT,EAAG2vD,MACH3vD,EAAGuxD,uBACHvxD,EAAGsxD,6BACHtxD,EAAG8xD,gBAUf,QAASp6C,KAEL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfb,IAEAlS,EAAG2vD,MACH3vD,EAAGuxD,uBA3KPvxD,EAAAsxD,6BACItxD,EAAA8xD,aAqLJ,QAASC,GAAoBj/C,GAUzB,GAAI7X,IACAuuB,WA5KYxpB,EAAA2vD,GAAMc,iBAASjnC,WA6K3B1zB,UAAWkK,EAAG2vD,GAAG9tC,gBAAgB/rB,UACjC07D,OAAQ1+C,EAAI0+C,OACZ1+C,IA5KCA,GAED1T,EAAgB7E,EAAA8E,MAChBhI,WAAM,EACNiI,eAAY,cA6KZC,gBAAiB,aACjBrK,YAAa,+CACbE,WAAY,sBA3KpBC,aAAS,KACL+H,KAAA,KACIoC,SAAA,SACAC,UAAA,EA6KAyQ,SACI3N,MA5KO,WACH,MAAGtH,MAiLfmE,GAAcM,OAAOjB,KAAK,aAEvB,cAEP,QAASuzD,GA5KWl/C,GA8KhB,GAAIuf,KAEJ,KAAK,GAAIn3B,KAAK8E,GAAG2vD,GAAGgB,YAChBt+B,EA5KGx6B,KAAAmI,EAAA2vD,GAAUgB,YAAKz1D,GAAAs2D,OA+KtBxxD,GAAGwxD,OAASn/B,EAAIqB,OA1KI/9B,QAAhBmd,EAAGm/C,eACHn/C,EAAGm/C,gBA+KP,IAAIh3D,IACAk2D,MAAOnxD,EAAG2vD,GAAGe,UAAUS,MACvBK,OAAQ1+C,EAAI0+C,OA3KpB1+C,IAASA,EACLo/C,kBAAgBp/C,EAAA8+C,WA8KZO,iBA5K0Bx8D,QAAnBmd,EAAem/C,aAAIE,iBAAAr/C,EAAAm/C,aAAAE,iBAAAr/C,EAAAm/C,aAAAE,oBA6K1BC,oBA5KmBz8D,QAAAmd,EAAAm/C,aAAAG,oBAAAt/C,EAAAm/C,aAAAG,oBAAAt/C,EAAAm/C,aAAAG,qBAAA,EA6KnBC,cA5KqC18D,QAAzBmd,EAAAm/C,aAAaK,YAAYx/C,EAAAm/C,aAAAK,YAAAx/C,EAAAm/C,aAAAK,YAAA,EA8KzCtyD,GAAGuyD,eA5Kaz/C,EAAA8+C,WA6KhB5xD,EAAGwyD,gBA5Ka1/C,EAAM2/C,SA6KtBzyD,EAAG0yD,gBAAkB5/C,EAAIoK,SACzBld,EAAG2yD,YAAc7/C,EAAI8/C,KACrB5yD,EAAG6yD,YA5KQ//C,EAAAggD,KA6KX9yD,EAAG+yD,YA5KSjgD,EAAAkgD,KA6KZ7gC,QAAQC,IA5KIpyB,EAAAiT,QA6KZ,IAAI7T,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aA3KzBrK,YAAS,8CACFE,WAAA,qBACAC,aAAA,KACA+H,KAAA,KACCoC,SAAM,SA6KNC,UAAU,EA3KdyQ,SACQ3N,MAAK,WA8KD,MAAOtH,MAMnBmE,GA5KIM,OAAiBjB,KAAA,SAAA8D,GAmLjBvC,EAAGi3B,QA5KI10B,EAAA5C,aAAsBs3B,QA6K7Bj3B,EAAGo3B,WA5KU70B,EAAQ5C,aAAAy3B,WA6KrBtkB,EAAImgD,YAAcpnC,WAAWtpB,EAAM5C,aAAa2yD,aAAaxmC,QAAQ,GAErE9rB,EAAG4xD,WA5KQ5xD,EAAOuyD,eAAG1mC,WAAuB/Y,EAAAmgD,aAAAnnC,QAAA,GA6K5ChZ,EAAI8+C,WAAa5xD,EAAG4xD,WAEpB5xD,EAAGkzD,iBAAqBrnC,WAAW/Y,EAAImgD,aAAannC,QAAQ,GAAK9rB,EAAGwyD,gBAAkBxyD,EAAG0yD,gBAAmB,IAC5G5/C,EA5KIogD,iBAAIlzD,EAAAkzD,iBA8KRlzD,EAAGmzD,SAAanzD,EAAG0yD,gBAAkB7mC,WAAW/Y,EAAImgD,aAAannC,QAAQ,GAAMhZ,EAAIogD,iBACnFpgD,EAAIqgD,SAAWnzD,EAAGmzD,SAElBnzD,EAAGozD,UA5KStgD,EAAMqgD,SAASnzD,EAAA2yD,YAAA,IA6K3B7/C,EAAIsgD,UAAYpzD,EAAGozD,UA1KnBpzD,EAAAqzD,UAAWvgD,EAAAqgD,SAAqBnzD,EAAA6yD,YAAA,IA6KhC//C,EAAIugD,UAAYrzD,EAAGqzD,UAEnBrzD,EAAGszD,UAAcxgD,EAAIqgD,SAAWnzD,EAAG+yD,YAAe,IA3K1DjgD,EAASwgD,UAAStzD,EAAAszD,UAEXtzD,EAAAuzD,WAAazgD,EAAAqgD,SAAArgD,EAAAsgD,UAAAtgD,EAAAugD,UACbvgD,EAAAygD,WAAcvzD,EAAAuzD,WAEdzgD,EAAAm/C,aAAQ1vD,EAAA5C,cACX,cA8NJ,QAAS6zD,KA1KTh5D,EAASqI,QAAA7C,EAAAuxD,oBAAyB,SAAA/jD,GA6K1B,GAAIA,EAAEimD,cACF,GAAIzzD,EAAGsxD,0BAA0Bn2D,OAAS,EAAG,CACzC,GAAIk3B,GAAM73B,EAAOyC,OAAO+C,EAAGsxD,0BAA0B,SAASoC,GAC1D,MAAOA,GAAElC,QAAUhkD,EAAEgkD,QAEtBn/B,GAAIl3B,OAAS,EAGhBX,EAAOqI,QAAQ7C,EAAGsxD,0BAA2B,SAAUr2D,GA3KzDA,EAAAu2D,QAAAhkD,EAAAgkD,QACYv2D,EAAAg4D,YAAiB7+D,QAAA8e,KAAA1F,EAAAylD,aAClBh4D,EAAAi4D,iBAAgB9+D,QAAA8e,KAAA1F,EAAA0lD,kBACrBj4D,EAAAk4D,SAAA/+D,QAAA8e,KAAA1F,EAAA2lD,UACPl4D,EAAAm4D,UAAAh/D,QAAA8e,KAAA1F,EAAA4lD,WA6Ken4D,EAAIo4D,UAAYj/D,QAAQ8e,KAAK1F,EAAE6lD,WA3KnCp4D,EAAAq4D,UAAel/D,QAAA8e,KAAA1F,EAAA8lD,WACpBr4D,EAAAs4D,WAAAn/D,QAAA8e,KAAA1F,EAAA+lD,aAGEvzD,EAAAsxD,0BAAAz5D,KAAAzD,QAAA8e,KAAA1F,UAIbxN,GAAUsxD,0BAAAz5D,KAAAzD,QAAA8e,KAAA1F,MA+KdxN,EAAGsxD,0BA5KwB92D,EAAA++C,OAAAv5C,EAAAsxD,0BAAA,UA6K3BtxD,EAAG8xD,UA5KS,EA6KZt3D,EAAOqI,QAAQ7C,EAAGuxD,oBAAqB,SAAU/jD,GACzCA,EAAEimD,gBACFjmD,EAAEylD,YAAc,EAChBzlD,EAAE0lD,iBAAmB,KA3K7B1lD,EAAA2lD,SAAqB,KA6Kb3lD,EAAE4lD,UAAY,KA3KnB5lD,EAAA6lD,UAAY,KA6KP7lD,EAAE8lD,UAAY,KA3KjB9lD,EAAA+lD,WAAA,KA6KG/lD,EAAEimD,eAAgB,KAI1BzzD,EAAG8xD,UA5KUt3D,EAAMy2B,MAAAjxB,EAAYsxD,0BAAG,SAAA9jD,GA6K9B,MAAOA,GAAE+lD,aAGbvzD,EAAGgd,MAAQxiB,EAAOy2B,MAAMz2B,EAAOyC,OAAO+C,EAAGuxD,oBAAqB,SAAUt2D,GA3KpE,MAAIA,GAAAw4D,gBACJ,SAAIjmD,GA6KJ,MAAOA,GAAE+lD,YAGb,IA5KIlhC,GAAA73B,EAAayC,OAAA+C,EAAUuxD,oBAAA,SAAA/jD,GACvB,MAAAA,GAAQimD,eA+KRphC,GAAIl3B,OAAS,EA3Kb6E,EAAA2zD,aAAA,EA+KA3zD,EAAG2zD,aAAc,EAczB,QA5KQC,GAAc9gD,EAAA5X,GAsLlBV,EAAOqI,QAAQ7C,EAAGuxD,oBAAqB,SAAU/jD,GACzCA,EAAEgkD,QAAU1+C,EAAI0+C,SAChBhkD,EAAEylD,YAAc7+D,QAAQ8e,KAAKJ,EAAImgD,aA3KzCzlD,EAAc0lD,iBAAY9+D,QAAU8e,KAAOJ,EAAAogD,kBA6K/B1lD,EAAE2lD,SAAW/+D,QAAQ8e,KAAKJ,EAAIqgD,UAC9B3lD,EAAE4lD,UAAYh/D,QAAQ8e,KAAKJ,EAAIsgD,WAC/B5lD,EAAE6lD,UAAYj/D,QAAQ8e,KAAKJ,EAAIugD,WAC/B7lD,EAAE8lD,UAAYl/D,QAAQ8e,KAAKJ,EAAIwgD,WAC/B9lD,EAAE+lD,WAAan/D,QAAQ8e,KAAKJ,EAAIygD,eAK5CvzD,EAAGsxD,0BAA0Bh8B,OAAOp6B,EAAG,GAEvC8E,EAAG8xD,UA5KKt3D,EAAay2B,MAAGjxB,EAAAsxD,0BAAA,SAAA9jD,GA6KpB,MAAOA,GAAE+lD,aAcjB,QA5KQM,KA6KJ,GAAIxhC,MA1KA3e,EAAIvZ,EAAgBgG,sBA6KxB,KAAK,GAAIjF,KAAK8E,GAAGsxD,0BA3Kb,IAAI,GAAAnnD,KAAAnK,GAAAsxD,0BAAqBp2D,GAAA+2D,aAAAE,iBAC1B9/B,EAAAx6B,KAAYmI,EAAAsxD,0BAAAp2D,GAAA+2D,aAAAE,iBAAAhoD,GAKhBgoB,SAASC,IAAAC,EA6KR,IAAIp3B,IACAk2D,MAAOnxD,EAAG2vD,GAAGe,UAAUS,MACvBr7D,UAAWkK,EAAG2vD,GAAG9tC,gBAAgB/rB,UA3KlCyiC,KAAAv4B,EAAQ2vD,GAAAmE,KACPjhC,UAAW7yB,EAAA2vD,GAAAh7D,SACXo/D,SAAU/zD,EAAG2vD,GAAAqE,OACbzE,MAAOvvD,EAAE2vD,GAAAx6D,MA6KT8+D,YAAaj0D,EAAG2vD,GAAGuE,gBAAgBhE,cACnClB,WAAYhvD,EAAGgvD,WACfxlC,WAAYxpB,EAAG2vD,GAAGc,iBAAiBjnC,WACnC2qC,qBAAsBx3D,KAAKqkB,UAAUqR,GACrCve,UAAWJ,EAAYrT,OAE3BquD,GAAgBmF,OAAO54D,GAAKwD,KAAK,SAAUC,GACpB,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,wBAAyB,YAC3DwR,IACAlS,EAAGgT,YAAa,EAChB0E,MA1KJ3f,EAAS2I,YAAA,UAAA,2BAAA,YA6KLV,EAAGgT,YAAa,IAGrB,SA5KIrS,GA6KH5I,EAAW2I,YAAY,iCAG/B,QAAS0zD,GAAoBthD,GAEzB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAAW,4CA3K1Ctb,WAAY,EA6KP+F,KAAM,MAGVuV,GA5KQjT,OAAEjB,KAAA,WA8KN,GAAIxD,IA3KLy2D,gBAAqB5+C,EAAA4+C,gBAGpBhD,GAAS2F,oBAAAp5D,GAAAwD,KAAA,SAAAC,GA6Kc,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,4BAA6B,YA3KtEwR,KAEEna,EAAW2I,YAAA,QAAqB,yBAC7BrJ,WAAe,EACV+F,KAAA,QA+KR,SAAUuD,GACT5I,EA5KW2I,YAAW,mCAgLlC,QAAS4zD,MACAt0D,EAAG2vD,GAAGgB,YAAYx1D,OA5KK,IA6KxB6E,EAAGuxD,wBAOX,QAAS7B,GAAkB58C,GAEvB9S,EAAGyxD,QAAS,EACZzxD,EAAG6xD,OAAQ,EACX7xD,EAAGpK,OAASxB,QAAQ8e,KAAKJ,EAAIyhD,WAC7Bv0D,EAAGisC,YA5KY73C,QAAA8e,KAAAJ,EAAAm5B,aA6KfjsC,EAAGsiB,YAAcluB,QAAQ8e,KAAKJ,EAAIwP,aAClCtiB,EAAGlK,UAAY1B,QAAQ8e,KAAKJ,EAAIhd,WA3KhCkK,EAAGu4B,KAAAnkC,QAAA8e,KAAAJ,EAAAylB,MACHv4B,EAAGw0D,gBAAYpgE,QAAA8e,KAAAJ,EAAA0hD,iBACfx0D,EAAAy0D,SAAOrgE,QAAW8e,KAAAJ,EAAA2hD,UA6KlBz0D,EAAG00D,eA5KOtgE,QAAe8e,KAAAJ,EAAA28C,eA6KzBzvD,EAAGi0D,YA5KO7/D,QAAc8e,KAAAJ,EAAAmhD,aA6KxBj0D,EAAG20D,UA5KOvgE,QAAA8e,KAAAJ,EAAmB6hD,WA6K7B30D,EAAGwpB,WA5KOp1B,QAAW8e,KAAAJ,EAAA0W,YA6KrBxpB,EAAG40D,aA5KOxgE,QAAY8e,KAAAJ,EAAA8hD,cA6KtB50D,EAAGuvD,MA5KOn7D,QAAA8e,KAAYJ,EAAAy8C,OA6KtBvvD,EAAG0xD,gBA5KOt9D,QAAY8e,KAAAJ,EAAA4+C,iBA8KtBX,EA5KU/wD,EAAAwpB,WAAgB,WA6KtB,IAAK,GAAItuB,KAAK8E,GAAGgxD,gBACThxD,EAAGgxD,gBAAgB91D,GAAG25D,aAAe/hD,EAAI+hD,cACzC70D,EAAG2vD,GAAGe,UAAY1wD,EAAGgxD,gBAAgB91D,GA3K9C8E,EAAY0wD,UAAO1wD,EAAM2vD,GAAGe,UAAAmE,YAClB70D,EAAA2vD,GAAAe,UAAAS,QA6KGnxD,EAAG2vD,GAAGgB,eA1KX3wD,EAAO2vD,GAAAc,oBACHzwD,EAAA2vD,GAAAc,iBAAAjnC,WAAAxpB,EAAAwpB,WACDxpB,EAAG2vD,GAAA9tC,mBACJ7hB,EAAA2vD,GAAA9tC,gBAAA/rB,UAAA1B,QAAA8e,KAAAJ,EAAAhd,WA6KGu7D,EAAyB,WACrB,IAAK,GAAIn2D,KAAK8E,GAAGuxD,oBA1KxBvxD,EAAAkzD,iBAAAlzD,EAAAuxD,oBAAAr2D,GAAA45D,WAAA90D,EAAAuxD,oBAAAr2D,GAAAu3D,SAAAzyD,EAAAuxD,oBAAAr2D,GAAAgiB,SAAA,IA6KWld,EAAGuxD,oBAAoBr2D,GAAGg4D,iBAAmBlzD,EAAGkzD,iBA1KpDlzD,EAAAmzD,SAAAnzD,EAAAuxD,oBAAAr2D,GAAAgiB,SAAAld,EAAAuxD,oBAAAr2D,GAAA45D,WAAA90D,EAAAuxD,oBAAAr2D,GAAAg4D,iBACClzD,EAAAuxD,oBAAAr2D,GAAAi4D,SAAAnzD,EAAAmzD,SA8KGnzD,EAAGozD,UAAcpzD,EAAGmzD,SAAWnzD,EAAGuxD,oBAAoBr2D,GAAG03D,KAAQ,IA3KpE5yD,EAAAuxD,oBAAAr2D,GAAAk4D,UAAApzD,EAAAozD,UA8KGpzD,EAAGqzD,UAAcrzD,EAAGmzD,SAAWnzD,EAAGuxD,oBAAoBr2D,GAAG43D,KAAQ,IACjE9yD,EAAGuxD,oBAAoBr2D,GAAGm4D,UAAYrzD,EAAGqzD,UAEzCrzD,EAAGszD,UAActzD,EAAGmzD,SAAWnzD,EAAGuxD,oBAAoBr2D,GAAG83D,KAAQ,IACjEhzD,EAAGuxD,oBAAoBr2D,GAAGo4D,UAAYtzD,EAAGszD,UAEzCtzD,EAAGuzD,WAAcvzD,EAAGmzD,SAAWnzD,EAAGuxD,oBAAoBr2D,GAAGk4D,UAAYpzD,EAAGuxD,oBAAoBr2D,GAAGm4D,UAAYrzD,EAAGuxD,oBAAoBr2D,GAAGo4D,UACrItzD,EAAGuxD,oBAAoBr2D,GAAGq4D,WAAavzD,EAAGuzD,WAE1CvzD,EAAGgd,OAAShd,EAAGuxD,oBAAoBr2D,GAAGq4D,iBAS9DvzD,EAAGgT,YAAa,EAChBhT,EAAGiU,aAAc,EACjB87C,EAAkB,WACd,IAAK,GAAI70D,KAAK8E,GAAGgwD,gBA3KdhwD,EAAQgwD,gBAAG90D,GAAAg1D,gBAAkCp9C,EAAAmhD,cAC1Cj0D,EAAAi0D,YAAcj0D,EAAQgwD,gBAAA90D,GAAA+0D,mBAkLpC,QAAS8E,KAGL,GAAI95D,IACArF,OAAQoK,EAAGpK,OACX87D,gBAAiB1xD,EAAG0xD,gBA3KrB3zD,KAAA,GAEAqB,EAAY7E,EAAa8E,MACxBhI,WAAS,EA6KTiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,wCACbE,WAAY,eACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SACI3N,MAAO,WACH,MAAOtH,MAKnBmE,GAAcM,OAAOjB,KAAK,WA3KtBuB,EAAAgT,YAAc,EAClBhT,EAAK2vD,MACD3vD,EAAAuxD,uBA6KAvxD,EAAGsxD,6BACHtxD,EAAG8xD,aACH3C,EAAWnvD,EAAGlK,YA1KlB,cA7uBJ,GAAIkK,GAAKC,IAzKbD,GAAAqU,kBAAAhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA4KIrL,EA3KCsU,SAAOtU,EAAAqU,gBAAA,GA6KRrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GA1KxCzU,EAASuU,YAAAE,GAELzU,EAAAg1D,eAASh1D,EAAAqU,gBAAA,GA6KTrU,EAAGuU,YAAc,EA1KjBvU,EAAGi1D,sBAAqB,SAASxgD,GAC9BzU,EAAAuU,YAAcE,GAGjBzU,EAAGgT,YAAA,EA4KHhT,EAAG+S,WA3KI,EA4KP/S,EAAGsS,WAAY,EAEfva,EAAW2c,SAAU,EA1KrB1U,EAAGoxD,gBA8KHpxD,EAAG2vD,MAEH3vD,EAAGgU,OA3KKA,EA4KRhU,EAAG0R,OA3KKA,EA4KR1R,EAAG0X,MA3KCA,EA4KJ1X,EAAG+xD,oBA3KaA,EA4KhB/xD,EAAGgyD,mBA3KYA,EA4KfhyD,EAAGivD,oBA3KSA,EA4KZjvD,EAAGswD,yBA3KwBA,EA4K3BtwD,EAAGmvD,WAAaA,EAChBnvD,EAAG6wD,iBA3KmBA,EA4KtB7wD,EAAG+wD,oBA3KgBA,EA4KnB/wD,EAAGqxD,yBAA2BA,EAC9BrxD,EAAGwzD,cAAgBA,EACnBxzD,EAAG4zD,4BAA8BA,EACjC5zD,EAAG6zD,OAASA,EACZ7zD,EAAGixD,YAAcA,EA1KjBjxD,EAAAo0D,oBAASA,EA4KTp0D,EAAGs0D,MA3KKA,EA4KRt0D,EAAG+0D,gBA3KiBA,EA4KpB/0D,EAAG0vD,kBA3KWA,EA8Kd1vD,EAAGyxD,QAAS,EACZzxD,EAAG6xD,OA3KC,EA4KJ7xD,EAAGgd,MA3KK,EA4KRhd,EAAG8xD,UA3KY,EA4Kf9xD,EAAGpK,OA3KS,EA4KZoK,EAAG2vD,GAAGgB,eAvKkBh7D,QA2KpBqE,EAAOvE,OA3KKC,MA6KZsK,EAAG0vD,kBAAkB11D,EAAOvE,OAAOC,KAAKi6D,GAM5C,IAAIj8C,GA3KavZ,EAAKgG,sBAItB+R,KA4KA69C,IA7CA/vD,EAAG+uD,eAAK,SAAAO,GAGL,IAAA,GAASp0D,KAAA8E,GAAA8uD,aACD9uD,EAAA8uD,aAAA5zD,GAAAq0D,OAAAD,EAAAC,QACRvvD,EAAAwvD,SAAsBxvD,EAAA8uD,aAAA5zD,GAAAq0D,MACtBvvD,EAAAvL,IAAAuL,EAAqB8uD,aAAA5zD,GAAAu0D,cACrBzvD,EAAAgvD,WAAsBhvD,EAAA8uD,aAAA5zD,GAAA8zD,aAgiBzBhvD,EAAGgd,MA5KI,EA6KPhd,EAAG8xD,UA5KI,EA6KP9xD,EAAG2zD,aA5KI,EA6KP3zD,EAAGuL,OA5KI,SAAYuH,GAIf9S,EAAAgd,MAAIxiB,EAAUy2B,MAAQz2B,EAAQyC,OAAA+C,EAAAuxD,oBAAA,SAAAt2D,GAC1B,MAAAA,GAAAw4D,gBACA,SAAAjmD,GACA,MAAMA,GAAA+lD,YAyLV,IAAIlhC,GAAM73B,EAAOyC,OAAO+C,EAAGuxD,oBAAqB,SAAU/jD,GACtD,MAAOA,GAAEimD,eAGTphC,GAAIl3B,OAAS,EACb6E,EAAG2zD,aAAc,EAGjB3zD,EAAG2zD,aAAc,GAIzB3zD,EAAGyjB,UA5KI,WA8KHjpB,EAAOqI,QAAQ7C,EAAGuxD,oBAAqB,SAAU/jD,GA3KzC,GAAAA,EAAAylD,aAAAt9D,QAAA6X,EAAAylD,cACLzlD,EAAAimD,cAAsBzzD,EAAA2zD,eA+KzB3zD,EAAGgd,MAAQxiB,EAAOy2B,MAAMz2B,EAAOyC,OAAO+C,EAAGuxD,oBAAqB,SAAUt2D,GACpE,MAAOA,GAAIw4D,gBACX,SAAUjmD,GACV,MAAOA,GAAE+lD,cAgTjBvzD,EAAG8jB,QA5KK,WA6KJ,GA5KI7oB,IACArF,OAAMoK,EAAGpK,OACT87D,gBAAiB1xD,EAAA0xD,gBACjB3zD,KAAA,GAEAqB,EAAgB7E,EAAG8E,MACnBhI,WAAA,EACAiI,eAAe,cACfC,gBAAA,aACArK,YAAW,wCA6KXE,WAAY,eA3KhBC,aAAgB,KACZ+H,KAAI,KA6KJoC,SA5KI,SA6KJC,UA5KI,EA6KJyQ,SA3KI3N,MAAA,WACG,MAAAtH,MAiLXmE,GA5KaM,OAAKjB,KAAA,WACdzE,EAAA8F,GAAA/H,EAAWyE,gBA6KZ,eAGPwD,EAAG4jB,OAAS,WA3KR,GAAI3oB,IACArF,OAAAoK,EAAWpK,OACX87D,gBAAM1xD,EAAA0xD,gBA6KN3zD,KAAM,GA1KVqB,EAAoB7E,EAAA8E,MA6KhBhI,WAAW,EA3KXiI,eAAU,cA6KVC,gBA5KI,aA6KJrK,YAAa,wCACbE,WAAY,eA3KZC,aAAA,KA6KA+H,KA5KI,KA6KJoC,SA5KQ,SA6KRC,UA5KQ,EA6KRyQ,SACI3N,MA5KI,WA6KA,MA5KItH,MAiLhBmE,GA5KQM,OAAWjB,KAAA,WA6KfzE,EAAO8F,GAAG/H,EAAWyE,gBACtB,eA1KPwD,EAAAgkB,SAAS,WACL,GAAI/oB,IACArF,OAAGoK,EAAApK,OA6KH87D,gBAAiB1xD,EAAG0xD,gBACpB3zD,KA5KC,GA8KDqB,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cA3KxBC,gBAAS,aACLrK,YAAA,wCACGE,WAAS,eACTC,aAAQ,KACR+H,KAAA,KACAoC,SAAA,SACAC,UAAA,EACAyQ,SACA3N,MAAO,WACP,MAAAtH,MAKHmE,GAAGM,OAAajB,KAAQ,WACrBzE,EAAA8F,GAAA/H,EAAeyE,gBACf,8PAv0BXpI,QACKC,OAAO,kBACPe,WAAW,eAAgBy6D,MAq/BpC,WACI,YAOA,SAASqF,GA5KqBn7D,EAAAE,EAAiBwQ,EAAA1S,EAAgBiC,EAAAO,EAAAC,EAAAH,EAAAF,EAAA6X,EA6K3D08C,EAAiB98C,EA5KS+8C,GA4L1B,QAASz8C,KACF,GACCC,IADiBhY,EA5KoBgG,uBA6KzBhG,EA5KWgG,uBAAuBwU,gBAAexC,UA6KjEH,GAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YA5Ka3T,EAAGhJ,KA6KnBk5D,IACA5uD,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QA5KOkuD,KACH,GAAGl7C,GAAcvZ,EAAAgG,uBACjBgS,EAAAhY,EAA8BgG,uBAAAwU,gBAAAxC,UAC1BlX,GA6KAkX,UA5KWA,EA6KX/R,SA5KQsT,EAAGrT,OA8KfsuD,GAA2BE,iBAAiB5zD,GAAKwD,KAAK,SAAUC,GAC5D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8uD,aAAepwD,EAAIhJ,KACtBy8B,QAAQC,IAAIpyB,EAAG8uD,aA3KlB,KAAA,GAAA5zD,KAAA8E,GAAkB8uD,aA6KX9uD,EAAG8uD,aAAa5zD,GAAG6zD,gBAAiB,EACpC/uD,EAAG8uD,aAAa5zD,GAAG6d,GAAK/Y,EAAG8uD,aAAa5zD,GAAG8zD,WA3K7ChvD,EAAAgvD,WAAAhvD,EAAA8uD,aAAA5zD,GAAA6d,GACEoZ,QAAGC,IAAApyB,EAAAgvD,WAIXhvD,GAAAsS,WAAgB,MAEhBjY,GAAAwH,MAAgB,QAAA,yBAAA,wBA8KjB,SA5KClB,GACA5I,EAAA2I,YAAY,QAAA,mBAAA,yBAuBpB,QAAGuuD,GAAsB98C,EAAA5T,GAEjB4T,EACAP,EAAoB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACd,MAAAA,EAAAlI,QA6KEwJ,EAAG2hB,YAAcjjB,EAAIhJ,KA3K7BsK,EAAAkvD,kBAA+BxwD,EAAAhJ,KAC/By8B,QAAWC,IAAApyB,EAAA2hB,cACX3hB,EAAgB2hB,YAAAxmB,OAAA,GAChBd,EAAiB8C,OAAA,UAAA,oDACJ9F,WAAA,EACD+F,KAAA,OAKZ4C,EAASsS,WAAA,EACE/T,GACHA,KA8KAlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GA3KjBtG,EAAcwH,MAAO,QAAK,mBAAY,oBAgLlC7B,EAAG+pB,sBAAsB,KAGjC,QA5KQolC,GAAWr5D,EAAAyI,GAEXzI,GA6KA44D,EAAgBU,WAAWt5D,EAAW,OAAO2I,KAAK,SAAUC,GA3K5C,MAAhBA,EAAAlI,QACAwJ,EAAWqvD,aAAA3wD,EAAAhJ,KACXy8B,QAAgBC,IAAApyB,EAAAqvD,eAChBrvD,EAAAqvD,aAAiBl0D,OAAA,GACjBd,EAAa8C,OAAA,UAAA,qDACD9F,WAAA,EACE+F,KAAA,OAGd4C,EAAUsS,WAAA,EACD/T,GACEA,KA+KHlE,EAAQwH,MAAM,QAAS,yBAA0B,aAEtD,SAAUlB,GA3KjBtG,EAAcwH,MAAO,QAAK,mBAAY,cA2C1C,GAAI7B,GAAKC,IACTD,GAAGsU,SAAW,KAEdtU,EAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBA5Kc,GA8K/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SA5KKC,GA6K3BzU,EAAGuU,YAAcE,GAGrBzU,EAAGivD,oBAAsBA,EACzBjvD,EAAGmvD,WAAaA,EAChBj9C,IA6CAlS,EAAG+uD,eA5Ke,SAAAO,GA+Kd,GAAIA,EA5KIP,eA6KJ,IAAK,GA5KG7zD,KAAA8E,GAAO8uD,aA6KP9uD,EAAG8uD,aAAa5zD,GAAGq0D,OAASD,EAAIC,QAChCvvD,EAAGwvD,SAAWxvD,EAAG8uD,aAAa5zD,GAAGq0D,MACjCvvD,EAAGvL,IAAMuL,EAAG8uD,aAAa5zD,GAAGu0D,eAzKjCt9B,QAAAC,IAAapyB,EAAAwvD,UACbr9B,QAAKC,IAAApyB,EAAAvL,KACL09B,QAAAC,IAAApyB,EAAAgvD,gBAgLHhvD,GAAGwvD,SAAW,KA3KfxvD,EAAAvL,IAAA,MA0OPuL,EAAG0vD,kBA5KW,SAAA58C,GA6KV,GAAIpd,IA3KAi6D,GAAA78C,EA8KJ9Y,GA5KI8F,GAAA,YACApK,KAAAA,kNAuBZtB,QACKC,OAAO,kBACPe,WAAW,4BA5K4B8/D,MAsUhD,WACI,YAOA,SAASC,GA5Ka1qD,EAAAxQ,EAAWF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAAu0D,GA6K7B,GAAI1uD,GA5KGC,IA6KPD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA3KtB/S,EAAAsS,WAAY,EACTva,EAAA2c,SAAA,CA6KI,IAAIxU,GAAa/F,EAAsBgG,sBAnKvCH,GAAGo1D,SAAW,WA8KV,GAAIn6D,IA5KLwnB,MAAAziB,EAAAyiB,MACAivC,gBAAcnvD,EAAAmvD,gBA8KTtxD,SAAUF,EAAWG,OA3K1B,KAAAkC,EAAAxE,MACI9C,EAAArF,OAAc,EA8Kb84D,EAAgBhrC,gBAAgBzoB,GAAKwD,KAAK,SAAUC,GAC7B,MAAfA,EAAIlI,SA5KjBuB,EAAsB2I,YAAA,UAAA,iCAAA,YACT4b,EAAArN,UA+KL,SAAUtO,GA5KZ5I,EAAO2I,YAAA,kCAGG,IAAf6B,EAAexE,MACX9C,EAAIrF,OAAI,EA8KR84D,EA7KO2G,SAAkBp6D,GAAAwD,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,SACGuB,EAAY2I,YAAA,UAAA,wBAAA,YA8KX4b,EAAkBrN,UA3K1B,SAAWtO,GA8KP5I,EAAW2I,YAAY,kCAGP,IAAf6B,EAAMxE,MACX9C,EAAIrF,OAAS,EA5KrB84D,EAAS9qC,OAAsB3oB,GAAAwD,KAAA,SAAAC,GACT,MAAdA,EAAAlI,SACAuB,EAAY2I,YAAA,UAAsB,sBAAuB,YACnD4b,EAAArN,UAEN,SAAUtO,GA8KN5I,EAAW2I,YAAY,kCA1KpB,IAAH6B,EAAGxE,OA8KP9C,EA7KIrF,OAAQ,EA8KZ84D,EA7Ka1qC,SAAQ/oB,GAAAwD,KAAc,SAAAC,GACxB,MAAHA,EAAGlI,SACHuB,EAAG2I,YAAgB,UAAQ,2BAAgB,YAC3C4b,EAAgBrN,UA+KrB,SAAUtO,GACT5I,EAAW2I,YAAY,mCAMnCV,EAAG0R,OA7KI,WA8KH4K,EA7KeiB,QAAA,iKAiGvBnpB,QACKC,OAAO,kBACPe,WAAW,eAAgB+/D,MA+EpC,WACI,YAOA,SAASG,GA7KmB7qD,EAAGxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EA8K1BG,EA7KmBu0D,GAsMpB,QAASx8C,KAEL,GAAI3P,EAAO,CACP,GAAItH,IACAu2D,OA7KIjvD,EAAQivD,OA8KZhoC,WAAWjnB,EAAMinB,WA5KlB1zB,UAAUyM,EAAKzM,UA+KlB44D,GAAgB6G,aAAat6D,GAAKwD,KAAK,SAAUC,GAC7C,GAAmB,MAAfA,EAAIlI,OAAgB,CA5KzBwJ,EAAAw1D,YAAA92D,EAAAhJ,KACAy8B,QAAAC,IAAApyB,EAAAw1D,YA8KK,KAAI,GAAIt6D,KAAK8E,GAAGw1D,YAChBx1D,EAAGw1D,YAAYt6D,GAAGy2D,QAAU3xD,EAAGw1D,YAAYt6D,GAAGo3D,YA5KrDtyD,EAAA84C,KAAW94C,EAAAw1D,YAAqBt6D,GAAAy2D,QACrCx/B,QAAAC,IAAApyB,EAAA84C,MACI94C,EAAWgd,OAAAhd,EAAA84C,KACX3mB,QAAAC,IAAgBpyB,EAAAgd,WAkLR3iB,GA7KIwH,MAAQ,QAAO,yBAAW,aA+KnC,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eAjD5D,GAAIV,GA7KIC,IA8KRD,GAAGsU,SAAW,KAEdtU,EAAGqU,kBA7KEhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA8KLrL,EAAGsU,SA7KItU,EAAAqU,gBAAW,GA+KlBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GA5KxCzU,EAASuU,YAAAE,GAgLTzU,EAAGgT,YA7KK,EA8KRhT,EAAG+S,WA7KS,EA8KZ/S,EAAGsS,WAAY,EACfva,EAAW2c,SA7KQ,CACHva,GAAegG,sBA8K/BgyB,SAAQC,IAAI7vB,GACZvC,EAAGqoB,KAAO9lB,EAAMuQ,IA7KIuV,KA8KpBroB,EAAG4xB,iBAAmBrvB,EA7KEuQ,IAAA8e,iBA8KxB5xB,EAAGy0B,KAAOlyB,EAAMuQ,IAAI2hB,KACpBz0B,EAAGy1D,OAASlzD,EAAMuQ,IAAI2iD,OACtBz1D,EAAG4xD,WAAarvD,EAAMuQ,IAAI8+C,WAC1B5xD,EAAGgd,MAAQ,EACX9K,IAwCAlS,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,WA1K9Bvd,EAAG01D,YAAA,WACCr7D,EAAI8C,OAAO,UAAA,oCACP9F,WAAI,EA8KJ+F,KAAM,QAGd4C,EAAG21D,YAAc,mKAhFrBvhE,QACKC,OAAO,kBACPe,WAAW,sBA7KgBkgE,MAoFpC,WACI,YAoLA,SAASM,GAAmBnrD,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,EAAuBu0D,GA2BtI,QAASx8C,KACD3P,GACAmsD,EA9KQmH,YAAkBtzD,EAAAivD,OAAAjvD,EAAA4uD,OAAA1yD,KAAA,SAAAC,GA+KtB,GAAmB,MAAfA,EAAIlI,OAAgB,CA5KxBwJ,EAAA81D,YAAWp3D,EAAYhJ,KA+KnB8E,EAAOqI,QAAQ7C,EAAG81D,YAAa,SAAUtoD,GACrCA,EAAEuoD,kBAAmB,GA5K7B,KAAS,GAAA5rD,KAAAnK,GAAAmyD,iBACb,IAAgB,GAAAj3D,KAAS8E,GAAA81D,YACb91D,EAAW81D,YAAK56D,GAAAk8B,YAAAp3B,EAAAmyD,iBAAAhoD,GAAAitB,aACTp3B,EAAA81D,YAAY56D,GAAA66D,iBAAW/1D,EAAAmyD,iBAAyBhoD,GAAA4rD,iBAI/D,KAAA,GAAW76D,KAAA8E,GAAA81D,YA+KH91D,EAAG81D,YAAY56D,GAAGs2D,OAAS5qD,SAASrE,EAAMivD,OA5KjD,IAAMn/B,GAAA73B,EAAYyC,OAAA+C,EAAA81D,YAAA,SAAAtoD,GACnB,MAASA,GAAAuoD,kBAED1jC,GAAAl3B,OAAW,EACf6E,EAAAoyD,qBAAuB,EAG5BpyD,EAAUoyD,qBAAK,EAgLVpyD,EAAG4xD,WAAap3D,EAAOy2B,MAAMz2B,EAAOyC,OAAO+C,EAAG81D,YAAa,SAAU76D,GACjE,OAAQA,EAAI86D,mBA7Kb,SAASvoD,GAChB,MAASA,GAAAwoD,cAGLh2D,EAAAqyD,cAAW73D,EAAYy2B,MAAAz2B,EAAWyC,OAAA+C,EAAA81D,YAA4B,SAAA76D,GAC9D,MAAAA,GAAA86D,mBA+KI,SAAUvoD,GA7KnB,MAAeA,GAAAwoD,kBAmLV37D,GAAQwH,MAAM,QAAS,yBAA0B,aA5K9D,SAASlB,GACR5I,EAAkB2I,YAAQ,QAAA,mBAAA,cAvElC,GAAAV,GAASC,IACLD,GAAAsU,SAAS,KAETtU,EAAGqU,kBAAahJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAChBrL,EAAGsU,SAAAtU,EAAYqU,gBAAA,GAEfrU,EAAAuU,YAAW,EACXvU,EAAAwU,qBAAiB,SAAAC,GA+KbzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,CACJva,GAAsBgG,sBACvCgyB,SAAQC,IAAI7vB,GA7KZvC,EAAGqoB,KAAA9lB,EAAWuQ,IAAAuV,KA+KdroB,EAAG4xB,iBA9KWrvB,EAAAuQ,IAAA8e,iBA+Kd5xB,EAAGy0B,KA9KKlyB,EAAOuQ,IAAG2hB,KA+KlBz0B,EAAGy1D,OA9KKlzD,EAAAuQ,IAAA2iD,OAgLRz1D,EAAGmyD,iBAAmB5vD,EAAM4vD,iBAC5BnyD,EAAGoyD,oBA9KoB7vD,EAAG6vD,oBAgL1BlgD,IAqDAlS,EAAGuL,OAAS,SAAUuH,EAAKzH,GA7K/ByH,EAAAijD,kBACY/1D,EAAAqyD,eAAAv/C,EAAAkjD,YACPh2D,EAAA4xD,WAAW/lC,WAAuB7rB,EAAA4xD,YAAA/lC,WAAA/Y,EAAAkjD,aAAAnqC,WAAA7rB,EAAA4xD,YAAA/lC,WAAA/Y,EAAAkjD,aAAAnqC,WAAA/Y,EAAAkjD,aAAAnqC,WAAA7rB,EAAA4xD,cAG9B5xD,EAAAqyD,cAAoBxmC,WAAQ7rB,EAASqyD,eAAOxmC,WAAmB/Y,EAAAkjD,aAAQnqC,WAAmB7rB,EAASqyD,eAAAxmC,WAAA/Y,EAAAkjD,aAAAnqC,WAAA/Y,EAAAkjD,aAAAnqC,WAAA7rB,EAAAqyD,eACvGryD,EAAA4xD,YAAsB9+C,EAAAkjD,YAkLnB,IAAI3jC,GAAM73B,EAAOyC,OAAOoO,EAAO,SAAUmC,GA9KtC,MAAAA,GAAAuoD,kBAGA1jC,GAAAl3B,OAAc,EACd6E,EAAAoyD,qBAAuB,EAkLtBpyD,EAAGoyD,qBAAsB,GA3KjCpyD,EAAAyjB,UAAW,WACP,GAAAzjB,EAAAoyD,oBAAa,CACTpyD,EAAAqyD,cAAI,CACT,KAAO,GAAMn3D,KAAI8E,GAAA81D,YACjB91D,EAAA81D,YAAmB56D,GAAM66D,iBAAI/1D,EAAAoyD,oBACtBpyD,EAAAqyD,eAAUryD,EAAA81D,YAAA56D,GAAA86D,YACRh2D,EAAA4xD,WAAU/lC,WAAA7rB,EAAA4xD,YAAA/lC,WAAA7rB,EAAA81D,YAAA56D,GAAA86D,aAAAnqC,WAAA7rB,EAAA4xD,YAAA/lC,WAAA7rB,EAAA81D,YAAA56D,GAAA86D,aAAAnqC,WAAA7rB,EAAA81D,YAAA56D,GAAA86D,aAAAnqC,WAAA7rB,EAAA4xD,gBAGtB,CACA5xD,EAAS4xD,WAAO,CACZ,KAAA,GAAA12D,KAAA8E,GAAA81D,YACI91D,EAAO81D,YAAA56D,GAAA66D,kBAAA,EACH/1D,EAAAqyD,cAAIxmC,WAAA7rB,EAAAqyD,eAAAxmC,WAAA7rB,EAAA81D,YAAA56D,GAAA86D,aAAAnqC,WAAA7rB,EAAAqyD,eAAAxmC,WAAA7rB,EAAA81D,YAAA56D,GAAA86D,aAAAnqC,WAAA7rB,EAAA81D,YAAA56D,GAAA86D,aAAAnqC,WAAA7rB,EAAAqyD,eACJryD,EAAA4xD,YAAa5xD,EAAA81D,YAAA56D,GAAA86D,cAoLzBh2D,EAAGi2D,cA/Ka,WAgLZ,GAAI5jC,KAEJ,KAAK,GAAIn3B,KA/KG8E,GAAI81D,YAgLR91D,EAAG81D,YA/KI56D,GAAA66D,kBAgLP1jC,EA/KIx6B,MACAo/B,QAAQj3B,EAAI81D,YAAG56D,GAAA+7B,QACfG,WAAYp3B,EAAG81D,YAAA56D,GAAAk8B,WACnBo6B,OAAYxxD,EAAG81D,YAAA56D,GAAAs2D,OAgLXc,YAAatyD,EAAG81D,YAAY56D,GAAG86D,YAC/BD,iBAAkB/1D,EAAG81D,YAAY56D,GAAG66D,iBACpCG,SAAUl2D,EAAG81D,YAAY56D,GAAGg7D,UAKxC,IAAIv2D,IACA2yD,YAAatyD,EAAGqyD,cAChBF,iBAAkB9/B,EAClB+/B,oBAAgDz8D,QAA1BqK,EAAGoyD,qBAA4CpyD,EAAGoyD,oBAExE7vD,KACAA,EAAM5C,aAAeA,GAEzB2c,EAAkBrN,MAAM1M,GACxBvI,EAAO8F,GAAG,aAGdE,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,WAG9Bvd,EAAG01D,YAAc,WACbr7D,EAAQ8C,OAAO,UAAW,oCA9K3B9F,WAAa,EACZ+F,KAAQ,8JAchBhJ,QA7KAC,OAAA,kBACKe,WAAO,qBAAAwgE,MAoVhB,WACI,YAzKA,SAAAO,GAAAp8D,EAAAhC,EAAAyC,EAAAH,EAAAF,EAAAsQ,EAAA2rD,GAkBI,QAAGlkD,KACAlS,EAAAq2D,iBAAYC,eAAA,iBAAAA,eAAA,iBAOf,QAAGC,KAiLC,GAAIt7D,IA/KLkX,UAAAA,EACA/R,SAAAsT,EAAsBrT,OAEzB+1D,GAAAG,+BAAAt7D,GAAAwD,KAAA,SAAAC,GACA,GAAgB,MAAPA,EAAOlI,OAAA,CACRwJ,EAAOuwB,kBAAA5zB,KAAAC,MAAA8B,EAAAhJ,KAAA8gE,aAEHh8D,EAAIqI,QAAI7C,EAAAuwB,kBAAgB,SAAA/iB,GACpBA,EAAAipD,YAAI5qC,WAAcre,EAAA4d,UAAA5d,EAAA+c,eAAAuB,QAAA,IAkLtB,IAhLIgtB,MAiLAA,EAhLMt+C,EAAA83B,QAAAtyB,EAAmBuwB,kBAAA,QAEzBmmC,IAiLJl8D,GAAO8xB,IAhLCwsB,EAAS,SAAQ/xB,EAAA1b,GAiLrBqrD,EAAM7+D,MACF8+D,OAhLQtrD,EAiLRkf,cAAe/vB,EAAOy2B,MAAMlK,EAAK,iBACjC0vC,YAAaj8D,EAAOy2B,MAAMlK,EAAK,eAC/BqE,UAAW5wB,EAAOy2B,MAAMlK,EAAK,aA/KjC6vC,MAASp8D,EAAQ83B,QAAAvL,EAAa,SAC1B8vC,eAoLRr8D,EAAOqI,QAAQ6zD,EAAO,SAAUlpD,GA/K5BhT,EAAI8xB,IAAI9e,EAAAopD,MAAY,SAAA7vC,EAAA1b,GAChBmC,EAAAqpD,QAAGh/D,MAiLCg/D,QAASxrD,EACTkf,cAAe/vB,EAAOy2B,MAAMlK,EAAK,iBA/KlC0vC,YAAAj8D,EAAAy2B,MAAsBlK,EAAA,eAiLrBqE,UAAW5wB,EAAOy2B,MAAMlK,EAAK,aA/KlCmrB,KAAA13C,EAAa83B,QAAavL,EAAA,QACzB+vC,oBAqLRt8D,EAhLOqI,QAAA6zD,EAAA,SAAuBlpD,GAiL1BhT,EAhLIqI,QAAW2K,EAAAqpD,QAAA,SAAAhvC,GACXrtB,EAAA8xB,IAAUzE,EAAGqqB,KAAA,SAAAnrB,EAAA1b,GACbwc,EAAAivC,WAASj/D,MAiLDi/D,WAAYzrD,EACZkf,cAAe/vB,EAAOy2B,MAAMlK,EAAK,iBACjC0vC,YAAaj8D,EAAOy2B,MAAMlK,EAAK,eA/K1CqE,UAAA5wB,EAAAy2B,MAAAlK,EAAA,aACOpF,YAAeoF,UAsL3B/mB,EAAG+2D,gBAAkBL,EAErBvkC,QAAQC,IAAIskC,OA9KZ3+D,GAAU2I,YAAY,QAAA,yBAAA,mBAE9B,SAAQC,GACJ5I,EAAG2I,YAAiB,QAAI,mBAAA,oBA0FhC,GAhLCV,GAAOC,IAmLRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MA/KxGrL,EAAAsU,SAAStU,EAAAqU,gBAA2B,GAEhCrU,EAAGuU,YAAW,EAiLdvU,EAAGwU,qBAAuB,SAAUC,GA/KjCzU,EAAAuU,YAAkBE,EAIrB,IAAGf,GAAAvZ,EAAiCgG,uBAChCgS,EAAGuB,EAAciB,gBAAAxC,SAiLrBnS,GAAGu2D,+BAAiCA,EACpCrkD,IAzKAqkD,IAsRAv2D,EAAGg3D,UAAY,SAAUpvB,GA9KrBn9B,EAAI4F,WAAM,eAiLNu3B,SAAUA,iHArItBxzC,QA9KHC,OAAY,6BACTe,WAAA,oBAAA+gE,MA2TJ,WACI,YAOA,SAASc,GAhLwBl/D,EAAIyC,EAAAH,EAAuBN,EAAAI,EAAwB4X,EAAAmlD,EAAAC,EAAAC,EAAAvc,EAAAF,EAAAG,EAAArwC,EAAA4sD,EAiLhFzlD,GAqEA,QAASM,KACLolD,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IAGJ,QAASN,KACL1lD,EAjLgB8P,eAASvP,GAAA1T,KAAA,SAAAC,GAkLF,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAEfjY,EAjLIwH,MAAO,QAAM,yBAA6B,qBAmLnD,SAAUlB,GACTtG,EAAQwH,MAAM,QAjLE,mBAAsB,sBAqL9C,QAASg2D,GAjLe/hE,EAAYqhB,GAkLhC+/C,EAAmBY,gBAAgBhiE,GAAW2I,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,SACJwJ,EAAG+3D,cAAgBr5D,EAAIhJ,KACvBsK,EAAGsS,WAAY,GAGf6E,GACAA,KAEL,SAAUxW,GACTtG,EAAQwH,MAAM,QAjLM,mBAAoB,sBAsLhD,QAAS21D,GAAkBrgD,GACvB+/C,EAAmBc,4BAA4Bv5D,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,SAhLJwJ,EAAGi4D,gBAAkBv5D,EAAAhJ,KAkLrBgc,KAEAyF,GAhLAA,KAEL,SAAUxW,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAoL5D,QAAS62D,KACLv3D,EAAGk4D,kBACC/vC,YAAa,cACbC,UAAW,EACXC,KAAM,MAENF,YAAa,sBACbC,UAAW,EACXC,KAAM,OAENF,YAAa,uBACbC,UAAW,EACXC,KAAM,OAGNF,YAAa,iCACbC,UAAW,EACXC,KAAM,OAENF,YAAa,6CACbC,UAAW,EACXC,KAAM,OAENF,YAAa,mBACbC,UAAW,EACXC,KAAM,OAGVroB,EAAGm4D,YAAYC,iBAAmB,KAClCp4D,EAAGm4D,YAAYE,mBAAqB,KACpCr4D,EAAGm4D,YAAY1hD,gBAAkB,KACjCzW,EAAGm4D,YAAY3b,YAAc,KAC7Bx8C,EAAGm4D,YAAYxa,iBAAmB,KAClC39C,EAAGs4D,oBACHt4D,EAAGm4D,YAAYta,oBAAsB,KAhLtC79C,EAAAu4D,uBAkLCv4D,EAAGm4D,YAAYK,oBAAsB,KAEzC,QAjLQf,KAkLJz3D,EAAGy4D,mBAAsBlwC,iBAAkB,wBAAyBC,OAAQ,IAAOD,iBAAkB,iBAAkBC,OAAQ,IAAOD,iBAAkB,oBAAqBC,OAAQ,IACrLxoB,EAAGm4D,YAAYE,mBAAqB,KACpCr4D,EAAGm4D,YAAY1hD,gBAAkB,KACjCzW,EAAGm4D,YAAY3b,YAAc,KAC7Bx8C,EAAGm4D,YAAYxa,iBAAmB,KAClC39C,EAAGs4D,oBACHt4D,EAAGm4D,YAAYta,oBAAsB,KACrC79C,EAAGu4D,uBAhLdv4D,EAAYm4D,YAAAK,oBAAA,KAmLL,QAASd,KACL13D,EAAG04D,oBAAuBhwC,eAAgB,SAAUC,OAAQ,IAAOD,eAAgB,UAAWC,OAAQ,IAAOD,eAAgB,YAAaC,OAAQ,IAAOD,eAAgB,qBAAsBC,OAAQ,IAAOD,eAAgB,QAASC,OAAQ,IAjLvP3oB,EAAAm4D,YAAA1hD,gBAAA,KACKzW,EAAAm4D,YAAO3b,YAAA,KACPx8C,EAAAm4D,YAAWxa,iBAAA,KAmLR39C,EAAGs4D,oBACHt4D,EAAGm4D,YAAYta,oBAAsB,KAjL7C79C,EAASu4D,uBACLv4D,EAAAm4D,YAAAK,oBAAwB,KAoLxB,QAASZ,KAjLN53D,EAAAm4D,YAAAxa,iBAAmC,KACnC39C,EAAAs4D,oBAmLCt4D,EAAGm4D,YAAYta,oBAAsB,KAjLtC79C,EAAAu4D,uBACAv4D,EAAAm4D,YAAAK,oBAAsC,KACrC3d,EAAiBI,aAAAlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GAmLM,MAAfA,EAAIlI,QACJwJ,EAAG24D,YAAcj6D,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAhLxBva,EAAkB2I,YAAG,QAAA,yBAAuB,0BAE5C,SAAAC,GACA5I,EAAA2I,YAAA,QAA8B,mBAAe,2BAqLhD,QAASi3D,KACL33D,EAAGm4D,YAAY3b,YAAc,KAjL9Bx8C,EAAAm4D,YAAAxa,iBAAmC,KACnC39C,EAAAs4D,oBAmLCt4D,EAAGm4D,YAAYta,oBAAsB,KAjLtC79C,EAAAu4D,uBACAv4D,EAAAm4D,YAAAK,oBAA8B,KAC7BzmD,EAAG6lC,cAAqB79C,EAAAhC,GAAA0G,KAAA,SAAAC,GAmLD,MAAfA,EAAIlI,QACJwJ,EAAG44D,gBAAkBl6D,EAAIhJ,KAjLlCsK,EAAAsS,WAAa,GAEbva,EAAe2I,YAAA,QAAA,yBAAA,0BAElB,SAAWC,GAmLH5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAwC5D,QAlLI8d,GAAAriB,GACA6D,EAAA64D,iBACA74D,EAAA64D,cAAA18D,EAAAsN,OAAAiE,MAAA,GAmLAjD,EAAOrM,SAASF,OAAO,UAAW/B,EAAMsN,OAAOiE,MAAM,IAhLzD,QAASorD,KAoLL,GAlLIC,IAmLAC,gBAGJ,KAAK,GAlLG99D,KAAA8E,GAAQi5D,qBAmLZF,EAAOC,aAAanhE,MAhLZqhE,WAAMl5D,EAASi5D,qBAAoB/9D,GAAAg+D,WAmLnCC,cAAen5D,EAAGi5D,qBAAqB/9D,GAAGi+D,cAC1CrS,OAAQ9mD,EAAGi5D,qBAAqB/9D,GAAG4rD,QAK/C,IAAIqR,IACAriE,UAlLOkK,EAAAm4D,YAAYt2C,gBAAA/rB,UAmLnBq7D,MAAOnxD,EAAGm4D,YAAYiB,YAAYjI,MAClCkI,UAAWr5D,EAAGm4D,YAAYK,oBAAoBc,UAjL9CC,aAAc,GAmLdC,eAlLI78D,KAAAqkB,UAAA+3C,GAmLJjlD,UAAW5T,EAAWG,OAG1B83D,GAAYsB,YAAcz5D,EAAGy5D,YAC7BvC,EAAmBwC,uBAAuBvB,GAAa15D,KAAK,SAAUC,GAC9DA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBAjLvD2jD,KAEGz/D,EAAI2I,YAAgB,QAAAhC,EAAAhJ,KAAAme,QAAA,0BAqLzB,SAAUlT,GAjLT5I,EAAI2I,YAAU,iCAqLtB,QAlLOi5D,GAAetjD,EAAAqlC,GAmLlB,GAlLoC,IAAhC17C,EAAAm4D,YAAWC,iBAAqB5vC,QAAoB,IAApBxoB,EAAAm4D,YAAoBC,iBAAA5vC,OAmLpD,GAAIkzB,EAAuB,CACvB17C,EAAGm4D,YAAYxa,iBAAmB,KAjLrC39C,EAAAs4D,oBACFt4D,EAAAm4D,YAAmBta,oBAAA,KAClB79C,EAAAu4D,uBACAv4D,EAAAy5D,eACAz5D,EAAMi5D,uBACP,IAAAh+D,IACCob,UAAaA,EACbqlC,sBAAWA,EAEZwb,GAAA0C,sCAAA3+D,GAAAwD,KAAA,SAAAC,GACc,MAAbA,EAAalI,SACFwJ,EAAAs4D,iBAAA55D,EAAAhJ,KACLsK,EAAAs4D,iBAAAn9D,OAAA,GAmLUd,EAAQ8C,OAAO,UAAW,6BAA+B6C,EAAGm4D,YAAY3b,YAAYqd,yBAjLxGxiE,WAAA,EACiB+F,KAAA,OAGd08D,IACC95D,EAAasS,WAAA,GAEP6E,UACPA,iBAuLKnX,GAAGm4D,YAAYxa,iBAAmB,KAjLvC39C,EAAAs4D,oBACAt4D,EAAAm4D,YAAYta,oBAAqB,KACjC79C,EAAAu4D,uBACAv4D,EAAAy5D,eACAz5D,EAAAi5D,4BAuLCa,KAGR,QAlLOC,GAAiC7d,GACH,IAA9Bl8C,EAAAm4D,YAAYC,iBAAkB5vC,OAC9B0zB,GACAl8C,EAAAm4D,YAAYta,oBAAmB,KAC/B79C,EAAAu4D,uBACAv4D,EAAAy5D,eACAz5D,EAAAi5D,wBAoLK/B,EAAmB/a,yBAAyBD,GAAYz9C,KAAK,SAAUC,GAjLxD,MAAlBA,EAAAlI,SACFwJ,EAAAu4D,oBAAuB75D,EAAgBhJ,KAC3BsK,EAAAu4D,oBAAkBp9D,OAAA,GAClBd,EAAA8C,OAAc,UAAA,iCAAA6C,EAAAm4D,YAAAxa,iBAAA9B,cACdxkD,WAAmB,EACZ+F,KAAA,OAGP08D,IAmLC95D,EAAGsS,WAAY,GAhLhB6E,UACZA,eAKKnX,EAAAm4D,YAAeta,oBAAK,KACpB79C,EAAGo8C,mBACHp8C,EAAGy5D,eAmLHz5D,EAlLGi5D,yBAuLPa,IAmBR,QAASA,GAAgB7+D,EAAKkc,GAhL3B,GAiLCnX,EAAGm4D,YAAYK,oBAAsB,KAjLtCx4D,EAAAg6D,WA8LK,GAAI/+D,GAAMA,MA7Ld,IAAAA,IACQg/D,YAAIj6D,EAAWm4D,YAAK+B,gBAAA7xC,KACpBG,OAAGxoB,EAAAm4D,YAAAC,iBAA2B5vC,OAC9BG,OAAG3oB,EAAAm4D,YAAiBE,mBAAqB1vC,OACzC+yB,sBAAkD/lD,QAA/CqK,EAAuBm4D,YAAG3b,YAAqBx8C,EAAAm4D,YAAA3b,YAAAd,sBAAA,KAClDQ,WAA8BvmD,QAArBqK,EAAKm4D,YAAGxa,iBAAa39C,EAAAm4D,YAAAxa,iBAAAzB,WAAA,KAmL9BrqB,cAlL8Bl8B,QAAvBqK,EAAYm4D,YAAWta,oBAAA79C,EAAAm4D,YAAAta,oBAAAhsB,cAAA,KAmL9BzxB,SAAU,EAgBlB82D,GAlLW4C,gBAAuB7+D,GAAIwD,KAAA,SAAAC,GAC3B,MAAHA,EAAGlI,SACHwJ,EAAGm6D,gBAAez7D,EAAKhJ,KACvBsK,EAAGo6D,eAAgB,GAEnBjjD,GACAA,KAEL,SAAUxW,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAsL5D,QAlLO25D,GAAgBlC,GACnBf,EAAyBkD,sBAAanC,GAAA15D,KAAA,SAAAC,GACtC,GAAuB,MAAhBA,EAAAlI,OAAgB,CAElB,GAiLGwJ,EAAGy5D,YAAc/6D,EAAIhJ,KAjLxBsK,EAAAg6D,WAmLO,IAAK,GAAI9+D,KAAK8E,GAAGy5D,YAjLhBz5D,EAAAy5D,YAAAv+D,GAAAq/D,QAAA;AAqLLv6D,EAAGsS,WAAY,IAGpB,SAlLK3R,GAmLJ5I,EAlLQ2I,YAAe,QAAA,mBAAwB,oBAsavD,QAlLQsT,KAmLJhU,EAAG+S,WAlLC,EAmLJ/S,EAAGgT,YAAa,EAjLhBhT,EAAAiU,aAAA,EAmLAjU,EAAGg6D,YAlLS,EAmLZh6D,EAAGo6D,eAlLgB,EAmLnBp6D,EAAGm4D,eACHn4D,EAAGy5D,eACHz5D,EAAGi5D,wBAEP,QAASuB,KACLx6D,EAAGo6D,eAlLgB,EAqLvB,QAlLQK,KAmLJz6D,EAAGo6D,eAAgB,EA/KvB,QAAG1oD,KAoLC1R,EAAG0S,WACH1S,EAAGgT,YAlLI,EAmLPhT,EAAG+S,WAAY,EACf/S,EAAGg6D,YAlLE,EAmLLh6D,EAAGo6D,eAAgB,EACnBp6D,EAAGm4D,eACHn4D,EAAGy5D,eACHz5D,EAAGi5D,wBAEP,QAAS/kD,KACLlU,EAAGmU,YAAYC,gBA7sBnB,GAhLIpU,GAAIC,IAkLRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAhLCtU,EAAAqU,gBAAwB,GAkL5BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GA/KjCzU,EAAAuU,YAASE,GAIZzU,EAAG06D,yBAA0BrvD,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAiL7BrL,EAAG26D,gBAhLgB36D,EAAA06D,uBAAW,GAkL9B16D,EAAG46D,mBAhLW,EAiLd56D,EAAG66D,4BAA8B,SAAUpmD,GACvCzU,EAAG46D,mBAAqBnmD,GAI5BzU,EAAG86D,gCAAmCzvD,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MA/KzHrL,EAAA+6D,gBAAY/6D,EAAA86D,8BAAA,GAkLL96D,EAAGg7D,mBAAqB,EACxBh7D,EAAGi7D,4BAA8B,SAAUxmD,GAhL/CzU,EAAAg7D,mBAAAvmD,GAoLIzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAhLnB/S,EAAAk7D,cAAS,EACLl7D,EAAAsS,WAAS,EAkLTva,EAAW2c,SAAU,EA9KrBjK,EAAG+T,aAAcA,EAkLjBxe,EAAGgU,OAASA,EAhLZhU,EAAGw6D,YAAcA,EACjBx6D,EAAGy6D,aAAAA,EAkLHz6D,EAAG0R,OAjLIA,EAkLP1R,EAAGkU,UAAYA,EACflU,EAAGm4D,eACHn4D,EAAG84D,gBAAkBA,EAhLrBruD,EAAIrM,SAAc,GAAAH,SAElB+B,GAAGo6D,eAAA,EACHp6D,EAAAi5D,wBAkLAj5D,EAAGy5D,eAEHz5D,EAAGg6D,YAjLI,EAkLPh6D,EAAGm7D,WAAY,EACfn7D,EAAGo7D,eAAgB,EACnBp7D,EAAG63D,gBAAkBA,EAhLrB73D,EAAAq6D,cAAAA,EAkLAr6D,EAAG85D,gBAAkBA,EACrB95D,EAAGy3D,mBAAqBA,EAhLxBz3D,EAAA03D,gBAASA,EAkLT13D,EAAG23D,eAjLWA,EAkLd33D,EAAG43D,iBAjLgBA,EAmLnB53D,EAAG25D,yBAA2BA,EAC9B35D,EAAG+5D,iCAjLsBA,CAkLzB,IAAI75D,GAjLY/F,EAAgBgG,uBAkL5BgS,EAjLWhY,EAAoBgG,uBAAoBwU,gBAAAxC,SAmLvDD,KA5BAlS,EAAGq7D,YAAc,SAAAC,EAAAnkD,GACd+/C,EAAeM,kBAAA8D,GAAA78D,KAAA,SAAAC,GACf,GAAS,MAAAA,EAAAlI,OAAA,CACTwJ,EAAYu7D,qBAAA78D,EAAAhJ,KACZsK,EAAAy5D,YAAcz5D,EAAAu7D,qBAAAC,cACdx7D,EAAAi5D,qBAAkBj5D,EAAAu7D,qBAAAE,aACd,KAAA,GAAWvgE,KAAI8E,GAAAy5D,YAClBz5D,EAAcy5D,YAAAv+D,GAAA22D,OAAA,CAGf7xD,GAAAsS,WAAc,EAmLLtS,EAAGo6D,eAAgB,EAhL5BjjD,GACAA,KAEA,SAAAxW,GACA5I,EAAA2I,YAAkB,QAAA,mBAAA,qBAIrBV,EAAG07D,eAAA,SAAmBC,EAAAxkD,GAmLlB+/C,EAAmB0E,8BAA8BD,GAAOl9D,KAAK,SAAUC,GAjLxE,MAAAA,EAAAlI,SACAwJ,EAAAu7D,qBAAmC78D,EAAAhJ,KAClCsK,EAAAy5D,YAAaz5D,EAAAu7D,qBAAsB9B,YACnCz5D,EAAAg5D,aAAYr8D,KAAAC,MAAsBoD,EAAAu7D,qBAAuBM,oBAAgBrC,gBAmLjEx5D,EAAGo6D,eAAgB,GAEnBjjD,GACAA,KAhLR,SAAAxW,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,qBAkTJV,EAAG0X,MAlLI,WACH1X,EAAGm4D,YAAA2D,mBAAmB,KACtB97D,EAAGm4D,YAAY4D,UAAA,KACf/7D,EAAGu4B,KAAA,KACHv4B,EAAGy5D,eACHz5D,EAAAi5D,wBAqLAj5D,EAAGm4D,YAlLQ3b,YAAY,KAmLvBx8C,EAAGm4D,YAlLQxa,iBAAA,KAmLX39C,EAAGs4D,oBACHt4D,EAAGm4D,YAAYta,oBAAsB,KACrC79C,EAlLGu4D,uBAmLHv4D,EAAGm4D,YAlLYK,oBAAqB,MA8PxCx4D,EAAGg8D,sBAlLoB,WAmLnB,GAAIjD,IACAC,gBAEJ,KAlLI,GAAA99D,KAAA8E,GAAWi5D,qBAmLXF,EAAOC,aAAanhE,MAhLnBqhE,WAAAl5D,EAAAi5D,qBAAoC/9D,GAAAg+D,WAClCC,cAAYn5D,EAAAi5D,qBAA4B/9D,GAAKi+D,cAC5CrS,OAAA9mD,EAAAi5D,qBAAuB/9D,GAAA4rD,QAsL/B,IAAI7rD,IACAghE,SAlLOj8D,EAAAm4D,YAAc8D,SAmLrBzC,eAlLO78D,KAAAqkB,UAAuB+3C,GAmL9BplD,WAlLQzT,EAAMG,OAoLlB62D,GAlLY8E,sBAAuB/gE,GAAAwD,KAAA,SAAAC,GAmLZ,MAAfA,EAAIlI,OAjLJuB,EAAA2I,YAAmB,UAAA,6BAA2C,WAoL9D3I,EAlLW2I,YAAA,QAAmB,8BAAI,UAoLvC,SAAUC,GACT5I,EAAW2I,YAlLS,QAAW,8BAAA,YAyLvCV,EAAGk8D,oBAlLiB,SAAUppD,GAoL1B9S,EAAGm4D,YAAYgE,aAAerpD,EAAIqpD,aAClCn8D,EAAGm4D,YAAYiE,mBAAqBtpD,EAAI6lC,YACxC34C,EAAGm4D,YAAYkE,SAAWvpD,EAAIupD,SAC9Br8D,EAAGo7D,eAlLM,EAmLTp7D,EAAGo6D,eAlLQ,GAoLfp6D,EAAGs8D,sBAlLwB,WAmLvB,GAAIrhE,IACAohE,SAlLOr8D,EAAAm4D,YAAckE,SAmLrB1jB,YAlLO34C,EAAAm4D,YAAAiE,mBAmLPD,aAAcn8D,EAAGm4D,YAAYgE,aAC7BxoD,WAAYzT,EAAWG,OAE3B62D,GAlLKqF,sBAAAthE,GAAAwD,KAAA,SAAAC,GACD,MAAAA,EAAAlI,QAmLIuB,EAAW2I,YAAY,UAAW,wCAAyC,WAC3E25D,EAAcr6D,EAAGm4D,YAAYmB,WAjLhCt5D,EAAAo7D,eAAA,EACEngE,MAGClD,EAAG2I,YAAA,QAAsB,8BAAA,UAoL9B,SAlLQC,GAmLP5I,EAAW2I,YAAY,QAAS,8BAA+B,YAIvEV,EAAGw8D,sBAlLwB,SAAA15D,GAmLvB,GAAK9C,EAAGg6D,WAIH,CAED,GAAIrnD,GAlLQtY,EAAGsY,QAAY,UAmLvB,4CAA8Ctb,WAAW,EAAM+F,KAAM,MACzEuV,GAlLQjT,OAAIjB,KAAA,WAmLRy4D,EAlLQuF,yBAAA35D,EAAAu5D,UAAA59D,KAAA,SAAAC,GAmLe,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,MAC1BqC,EAAW2I,YAAY,UAAW,uCAAwC,WAC1E25D,EAAcv3D,EAAKw2D,YA9KxBvhE,EAAc2I,YAAA,QAAA,8BAAA,UAoLd,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,iBArMvD,CAmLhB,GAAI0U,GAAQpV,EAAGy5D,YAlLKr2D,QAAWN,EAmL/B9C,GAAGy5D,YAAYnkC,OAlLKlgB,EAAM,KAwMlCpV,EAAG08D,mBAAqB,WACpB,GAAK18D,EAAGg6D,WAtKL,CACA,GAAA/+D,IACAq+D,UAAYt5D,EAAAm4D,YAAAmB,UAmLP3gB,YAAa34C,EAAGm4D,YAAYiE,mBAjL/BD,aAAgBn8D,EAAAm4D,YAAegE,aACjCroD,UAAY5T,EAAAG,OAEX+2D,GAAUsF,mBAAAzhE,GAAAwD,KAAA,SAAAC,GACU,MAAhBA,EAAAlI,QACAuB,EAAW2I,YAAY,UAAA,uCAAiB,WACxC25D,EAAWp/D,EAAAq+D,WACXr+D,MAEAlD,EAAe2I,YAAI,QAAY,8BAAoC,UAoLpE,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,eA5BnD,CAjLrB,GAAQzF,IACJkhE,aAAYn8D,EAAAm4D,YAAqBgE,aACjCxjB,YAAY34C,EAAAm4D,YAAYiE,mBAGxBp8D,GAAAy5D,YAAA5hE,KAAAoD,GAmLC+E,EAAGm4D,YAAYgE,aAAe,KAC9Bn8D,EAAGm4D,YAAYgE,gBAjLhBn8D,EAAAm4D,YAAYiE,mBAAc,KAC1Bp8D,EAAAm4D,YAAYiE,wBAwMnBp8D,EAAG28D,wBAA0B,SAAU7pD,GACnC9S,EAAGgT,YAAa,EAChBhT,EAAGg6D,YAAa,EAChBh6D,EAAGm4D,YAAY8D,SAAWnpD,EAAImpD,QAE9B,KAAK,GAAI/gE,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,YAAcgd,EAAIhd,YACpCkK,EAAGm4D,YAAYt2C,gBAAkB7hB,EAAG2hB,YAAYzmB,GA/KxD28D,GAAA/kD,EAAmBhd,UAAA,WACf,IAAI,GAAIoF,KAAA8E,GAAA+3D,cACD/3D,EAAA+3D,cAAkB78D,GAAAi2D,QAAIr+C,EAAAq+C,QACtBnxD,EAAAm4D,YAAgBiB,YAAAp5D,EAAA+3D,cAAA78D,KAuL3B,KAlLG,GAAAA,KAAU8E,GAAA44D,gBACuB,IAAhC54D,EAAA44D,gBAAuB19D,GAAAmb,YAmLnBrW,EAAGm4D,YAAY1hD,gBAAkBzW,EAAG44D,gBAAgB19D,GAK5D,KAlLI,GAAIA,KAAI8E,GAAAk4D,gBACJl4D,EAAGk4D,gBAAch9D,GAAImtB,OAAAvV,EAAAmnD,cACrBj6D,EAAAm4D,YAAO+B,gBAAYl6D,EAAAk4D,gBAAAh9D,GAsL3B,KAAK,GAAIA,KAAK8E,GAAGy4D,iBAjLTz4D,EAAGy4D,iBAAYv9D,GAAAstB,SAAA1V,EAAA0V,SAmLfxoB,EAAGm4D,YAAYC,iBAAmBp4D,EAAGy4D,iBAAiBv9D,GAI9D,KAAK,GAAIA,KAAK8E,GAAG04D,kBACT14D,EAAG04D,kBAAkBx9D,GAAGytB,SAAW7V,EAAI6V,SAjL1C3oB,EAAAm4D,YAAAE,mBAAoCr4D,EAAA04D,kBAAAx9D,GAsLzC,KAAK,GAlLGA,KAAI8E,GAAG24D,YAmLP34D,EAAG24D,YAlLUz9D,GAAKwgD,wBAAyB5oC,EAAA4oC,wBAmL3C17C,EAAGm4D,YAlLQ3b,YAAAx8C,EAAqB24D,YAAYz9D,GAKzC,KAkLP4X,EAlLI0V,QAAe,IAAA1V,EAAA0V,QAmLnBmxC,EAAyB,EAAG7mD,EAAI4oC,sBAAuB,WACnD,IAAK,GAAIxgD,KAAK8E,GAAGs4D,iBAjLZt4D,EAAKs4D,iBAAAp9D,GAAAghD,aAAAppC,EAAAopC,aACHl8C,EAAAm4D,YAAYxa,iBAAS39C,EAAAs4D,iBAAoBp9D,MAMpD,IAAA4X,EAAA0V,QAmLAuxC,EAAiCjnD,EAAIopC,WAAY,WAjLhD,IAAI,GAAQhhD,KAAA8E,GAAAu4D,oBACNv4D,EAAAu4D,oBAAar9D,GAAA22B,gBAAA/e,EAAA+e,gBAChB7xB,EAAAm4D,YAAAta,oBAAA79C,EAAAu4D,oBAAAr9D,MAwLR8E,EAAG07D,eAAe5oD,EAAImpD,SAAU,WAjL5Bj8D,EAAAy5D,YAAMz5D,EAAAy5D,YACNz5D,EAAAi5D,qBAAyBj5D,EAAAg5D,aAAAA,cAI7B,IAAA/9D,IACIg/D,YAAQnnD,EAAAmnD,YAmLRzxC,OAlLI1V,EAAA0V,OAmLJG,OAlLO7V,EAAA6V,OAmLP+yB,sBAlLoC,MAArB5oC,EAAY4oC,sBAAS5oC,EAAA4oC,sBAA+B,KAmLnEQ,WAA+B,MAAlBppC,EAAIopC,WAAsBppC,EAAIopC,WAAa,KAjLzDrqB,cAAe,MAAA/e,EAAA+e,cAAA/e,EAAA+e,cAAA,KACdzxB,SAAAF,EAAWG,OAqLfy5D,GAAgB7+D,EAAK,WACjB,IAAK,GAAIC,KAAK8E,GAAGm6D,gBACTn6D,EAAGm6D,gBAAgBj/D,GAAGo+D,YAAcxmD,EAAIumD,YACxCr5D,EAAGm4D,YAAYK,oBAAsBx4D,EAAGm6D,gBAAgBj/D,OAOxE8E,EAAG48D,sBAlLoB,WAmLnB58D,EAAGm4D,YAAYgE,aAAe,KAjL/Bn8D,EAAAm4D,YAAAiE,mBAAoC,KACnCp8D,EAAAo7D,eAAU,EAmLVp7D,EAAGo6D,eAlLc,ySAlgBzBhmE,QACKC,OAAO,4BACPe,WAhLO,0BAAe6hE,MAw4B/B,WACI,YAOA,SAlLQ4F,GAAQ9kE,EAAYyC,EAAAH,EAAAN,EAAAI,EAAA4X,EAAAmlD,EAAAC,EAAAC,EAAAvc,EAAAF,EAAAG,EAAArwC,EAAA4sD,GA0QxB,QAASnlD,GAAK3T,GACV24D,EAAmB4F,iBAAiBr+D,KAAK,SAAUC,GAC/C,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAGi4D,gBAAkBv5D,EAAIhJ,IAjLzB,KAAA,GAAAwF,KAAc8E,IAAAi4D,gBAClB,IAAA,GAAA9tD,KAAAnK,IAAAkoB,YACaloB,GAAKi4D,gBAAG/8D,GAAA6hE,aAAqB/8D,GAAAkoB,YAAA/d,GAAAke,OAC3BroB,GAAAi4D,gBAAoB/8D,GAAGitB,YAAAnoB,GAAAkoB,YAAsB/d,GAAAge,YAsLxD,KAAK,GAAIjtB,KAAK8E,IAAGi4D,gBACb,IAAK,GAAI9tD,KAAKnK,IAAG8uD,aACuB,GAAhC9uD,GAAGi4D,gBAAgB/8D,GAAGstB,OAjLpBxoB,GAAAi4D,gBAAU/8D,GAAYstB,QAAAxoB,GAAA8uD,aAAA3kD,GAAAqe,SACpBxoB,GAAAi4D,gBAAA/8D,GAAAqtB,iBAAAvoB,GAAA8uD,aAAA3kD,GAAAoe,iBAAA,IAAAvoB,GAAAi4D,gBAAA/8D,GAAA2+D,yBAoLmC,GAAhC75D,GAAGi4D,gBAAgB/8D,GAAGstB,OACzBxoB,GAAGi4D,gBAAgB/8D,GAAGstB,QAAUxoB,GAAG8uD,aAAa3kD,GAAGqe,SACnDxoB,GAAGi4D,gBAAgB/8D,GAAGqtB,iBAAmBvoB,GAAG8uD,aAAa3kD,GAAGoe,iBAAmB,IAAMvoB,GAAGi4D,gBAAgB/8D,GAAG2gD,cA9KnH77C,GAAAi4D,gBAAA/8D,GAAAstB,QAAAxoB,GAAA8uD,aAAA3kD,GAAAqe,SACZxoB,GAAuBi4D,gBAAK/8D,GAAAqtB,iBAAiCvoB,GAAA8uD,aAAI3kD,GAAAoe,iBAAwB,IAAAvoB,GAAAi4D,gBAAA/8D,GAAAy2B,gBAM7F,KAAA,GAAgBz2B,KAAK8E,IAAAi4D,gBACZ,IAAI,GAAQ9tD,KAAAnK,IAAAg9D,cACNh9D,GAAAi4D,gBAAmB/8D,GAAAytB,QAAkB3oB,GAAAg9D,cAAW7yD,GAAAwe,SAChD3oB,GAAAi4D,gBAAY/8D,GAAAwtB,eAAyB1oB,GAAAg9D,cAAgB7yD,GAAAue,eAsL5DxE,KAEA3lB,GAjLTA,KAEI,SAAAoC,GACA5I,EAAA2I,YAAgB,QAAA,mBAAA,yBAoLnBk3C,IAjLJ+f,IAsLA,QAlLO/f,KACHoS,IACAj4C,EAAG8D,iBAAc9b,EAAAhC,GAAA0G,KAAA,SAAAC,GACA,MAAdA,EAAAlI,QACAwJ,GAAA8V,YAAApX,EAAuBhJ,KAmLlBsK,GAAGsS,WAAY,GAIfva,EAAW2I,YAAY,QAAS,yBAA0B,YAhL/D,SAAAC,GAmLC5I,EAAW2I,YAAY,QAAS,mBAAoB,aAhL5Du8D,IAoLA,QAlLOA,KACHC,IACAl9D,GAAGkoB,cACAC,YAAa,cACbC,UAAA,EACAC,KAAA,MAEAF,YAAA,sBAmLCC,UAAW,EAjLnBC,KAAS,OAoLDF,YAAa,uBACbC,UAAW,EACXC,KAAM,OA/KTF,YAAA,iCACTC,UAAA,EAmLYC,KAAM,OAjLlBF,YAAA,6CACYC,UAAA,EACPC,KAAW,OAqLJF,YAAa,mBAlLhBC,UAAA,EACDC,KAAK,OAGNy0C,IAGH,QAAGA,KACCK,IAoLAn9D,GAAG8uD,eAAkBvmC,iBAAkB,wBAAyBC,OAAQ,IAAOD,iBAAkB,iBAAkBC,OAAQ,IAAOD,iBAAkB,oBAAqBC,OAAQ,IACjL40C,IAGJ,QAASA,KAlLNC,KACAr9D,GAAAg9D,gBAAAt0C,eAA8B,SAAeC,OAAA,IAAAD,eAAA,UAAAC,OAAA,IAAAD,eAAA,WAAAC,OAAA,IAAAD,eAAA,qBAAAC,OAAA,IAAAD,eAAA,QAAAC,OAAA,IAuLhD,QAASsyB,GAAa18C,GAlLnBomD,KACA9J,EAAqBI,aAAAlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,QACIwJ,GAAAk7C,QAAAx8C,EAAqBhJ,KAqLhB6I,IAlLTyB,GAAAsS,WAAa,GAEbva,EAAe2I,YAAA,QAAA,yBAAA,0BAElB,SAAWC,GAoLH5I,EAAW2I,YAAY,QAAS,mBAAoB,2BA5K5D,QAAGk5D,GAAYvjD,EAAAqlC,EAAAvkC,GAEZ,GADA8yC,KACqB,IAArBjqD,GAAAm4D,YAAAmF,qBAAqB90C,QAAA,IAAAxoB,GAAAm4D,YAAAmF,qBAAA90C,OACrB,GAAAkzB,EAAc,CAEV17C,GAAAu4B,KAAe,KAClBv4B,GAAAy5D,eACDz5D,GAAAi5D,wBACAj5D,GAAAo6D,eAAuB,CACvB,IAAAn/D,IAoLaob,UAAWA,EAlLXqlC,sBAAAA,EAEbwb,GAAgB0C,sCAAA3+D,GAAAwD,KAAA,SAAAC,GAoLgB,MAAfA,EAAIlI,SAlLLwJ,GAAA47C,aAAAl9C,EAAAhJ,KACEsK,GAAA47C,aAAAzgD,OAAA,GACGd,EAAA8C,OAAA,UAAA,6BAAA6C,GAAAm4D,YAAAoF,gBAAA1D,yBACHxiE,WAAA,EACD+F,KAAA,OAGjB4C,GAAAsS,WAAuB,GAEvB6E,GACAA,UAMAnX,IAAAu4B,KAAc,KACdv4B,GAAAy5D,eACAz5D,GAAAi5D,wBACAj5D,GAAAo6D,eAAgB,EAMnB,QAAGoD,GAA2BthB,EAAA/kC,GAC3B+yC,KACmC,GAAnClqD,GAAAm4D,YAAAmF,qBAAmC90C,SAClC0zB,GAEJl8C,GAAAu4B,KAAA,KAoLYv4B,GAAGy5D,eAlLZz5D,GAAAi5D,wBACDj5D,GAAAo6D,eAAc,EAoLJlD,EAAmB/a,yBAAyBD,GAAYz9C,KAAK,SAAUC,GAlL3D,MAAVA,EAAUlI,SACpBwJ,GAAmBo8C,gBAAiB19C,EAAKhJ,KAC7BsK,GAAWo8C,gBAAKjhD,OAAA,GACjBd,EAAA8C,OAAsB,UAAA,iCAAA6C,GAAAm4D,YAAAsF,qBAAA5hB,cACXxkD,WAAG,EACJ+F,KAAQ,OAsLb4C,GAAGsS,WAAY,GAEf6E,GAlLHA,QAyLLnX,GAAGu4B,KAAO,KACVv4B,GAAGy5D,eACHz5D,GAAGi5D,wBACHj5D,GAAGo6D,eAAgB,IAK/B,QAASiB,GAAYC,EAAYnkD,GAC7B+/C,EAAmBM,kBAAkB8D,GAAY78D,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,SACJwJ,GAAGu7D,qBAAuB78D,EAAIhJ,KAC9BsK,GAAGy5D,YAAcz5D,GAAGu7D,qBAAqBC,cAlLzCx7D,GAAAi5D,qBAAiBj5D,GAAAu7D,qBAAiBE,cAoLlCz7D,GAAGsS,WAnLU,EAoLbtS,GAAGo6D,eAnLY,GAqLfjjD,GACAA,KAEL,SAnLKxW,GAoLJ5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAI5D,QAnLOi3D,KAoLH+F,KACA3rD,EAAe8D,iBAAiB9b,EAAOhC,GAAY0G,KAAK,SAAUC,GAlLlE,MAAAA,EAAAlI,QACAwJ,GAAA44D,gBAAAl6D,EAAAhJ,KAoLQsK,GAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YAjLlE,SAAAC,GACA5I,EAAe2I,YAAA,QAAiB,mBAAwB,aAuL5D,QAAS62D,KACLoG,KACA39D,GAAGk4D,kBACC/vC,YAnLI,cAoLJC,UAAW,EAlLZC,KAAA,MAqLCF,YAAa,sBAlLjBC,UAAA,EAoLIC,KAAM,OAjLVF,YAAA,uBACGC,UAAA,EACCC,KAAA,OAGDF,YAAA,iCACCC,UAAA,EACAC,KAAA,OAEDF,YAAA,6CACCC,UAAA,EACAC,KAAA,OAqLAF,YAAa,mBAlLjBC,UAAA,EACIC,KAAA,OAyLR,QAnLQovC,KAoLJmG,KACA59D,GAAGy4D,mBAnLclwC,iBAAA,wBAAAC,OAAA,IAAAD,iBAAA,iBAAAC,OAAA,IAAAD,iBAAA,oBAAAC,OAAA,IAuLrB,QAASkvC,KAlLLmG,KAoLA79D,GAAG04D,oBAAuBhwC,eAAgB,SAAUC,OAAQ,IAAOD,eAAgB,UAAWC,OAAQ,IAAOD,eAAgB,WAAYC,OAAQ,IAAOD,eAAgB,qBAAsBC,OAAQ,IAI1M,QAnLOivC,KACHkG,KAoLAjjB,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QAlLPwJ,GAAA24D,YAAcj6D,EAAAhJ,KACnBsK,GAAAsS,WAAA,GAqLQva,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SAAUC,GAlLjB5I,EAAS2I,YAAa,QAAU,mBAAA,2BAE5Bq9D,IAsLJ,QAASpE,GAnLgBtjD,EAAAqlC,GAqLrB,GADAsiB,KAlLuB,IAmLnBh+D,GAAGm4D,YAnLIC,iBAAY5vC,QAAA,IAAAxoB,GAAAm4D,YAAAC,iBAAA5vC,OAoLnB,GAAIkzB,EAnLG,CACH17C,GAAAy5D,eAoLAz5D,GAAGi5D,wBAlLRj5D,GAAAo6D,eAAe,CACd,IAAAn/D,IAoLQob,UAAWA,EACXqlC,sBAAuBA,EAE3Bwb,GAAmB0C,sCAAsC3+D,GAAKwD,KAAK,SAAUC,GACtD,MAAfA,EAAIlI,SACJwJ,GAAGs4D,iBAAmB55D,EAAIhJ,KAlLrCsK,GAAAs4D,iBAAAn9D,OAAsC,GAC3Cd,EAAA8C,OAAA,UAAA,6BAAA6C,GAAAm4D,YAAA3b,YAAAqd,yBACmBxiE,WAAA,EACX+F,KAAA,OAIG4C,GAAAsS,WAAA,GAEC6E,UACAA,iBAwLJnX,IAAGy5D,eACHz5D,GAAGi5D,wBACHj5D,GAAGo6D,eAnLS,MAuLhB2D,KAIR,QAAShE,GAnLW7d,GAoLhB+hB,KAC+C,IAA3Cj+D,GAAGm4D,YAAYC,iBAAiB5vC,OAC5B0zB,GACAl8C,GAnLCy5D,eAoLDz5D,GAAGi5D,wBAlLHj5D,GAAGo6D,eAAO,EACVlD,EAAiB/a,yBAAAD,GAAAz9C,KAAA,SAAAC,GACd,MAAAA,EAAAlI,SACAwJ,GAAAu4D,oBAAgB75D,EAAAhJ,KAoLPsK,GAAGu4D,oBAAoBp9D,OAAS,GAChCd,EAAQ8C,OAAO,UAAW,iCAAmC6C,GAAGm4D,YAAYxa,iBAAiB9B,cACzFxkD,WAAW,EACX+F,KAAM,OA/KvB4C,GAAYsS,WAAA,GAqLH6E,UAlLLA,eAwLHnX,GAAGy5D,eACHz5D,GAAGi5D,wBACHj5D,GAAGo6D,eAnLY,GAuLnB2D,IAKR,QAASA,KACL/9D,GAAGk+D,yBAA4Bj2C,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IACnHkP,aAAc,iCAAkClP,GAAI,IAG1D,QAAS+gD,KACL95D,GAAGm4D,YAnLQK,oBAAO,IAoLlB,IAAIv9D,IACAg/D,YAnLOj6D,GAAAm4D,YAAA+B,gBAAuB7xC,KAoL9BG,OAnLOxoB,GAAAm4D,YAAgBC,iBAAA5vC,OAoLvBG,OAAQ3oB,GAAGm4D,YAAYE,mBAAmB1vC,OAC1Cw1C,iBAAkBn+D,GAAGm4D,YAAYiG,2BAA2BrlD,GAC5D2iC,sBAAsD/lD,QAA9BqK,GAAGm4D,YAAY3b,YAA4Bx8C,GAAGm4D,YAAY3b,YAAYd,sBAAwB,KACtHQ,WAAgDvmD,QAAnCqK,GAAGm4D,YAAYxa,iBAAiC39C,GAAGm4D,YAAYxa,iBAAiBzB,WAAa,KAlLlHrqB,cAA2Cl8B,QAAtBqK,GAAAm4D,YAAYta,oBAAU79C,GAAAm4D,YAAAta,oBAAAhsB,cAAA,KACvCzxB,SAAAJ,GAAAE,WAAmBG,OAsLnB62D,GAnLW4C,gBAAiB7+D,GAAAwD,KAAA,SAAqBC,GACtC,MAAHA,EAAGlI,SACHwJ,GAAGm6D,gBAAYz7D,EAAAhJ,KACfsK,GAAGsS,WAAA,IAqLR,SAnLK3R,GAoLJ5I,EAnLI2I,YAAA,QAAA,mBAAA,kBAyLZ,QAAS8d,GAAariB,GAlLtB6D,GAAA64D,iBACI74D,GAAA64D,cAAA18D,EAAAsN,OAAAiE,MAAA,GACAjD,EAAArM,SAAeF,OAAA,UAAiB/B,EAAOsN,OAAAiE,MAAY,IAsLvD,QAASorD,KACL,GAAIX,IACA4E,YAnLI/8D,GAAWm4D,YAAYkG,oBAASh2C,KAoLpCi2C,eAAgBt+D,GAAGm4D,YAAYoG,iBAAiBxlD,GAlLjDyP,OAAAxoB,GAAUm4D,YAAKmF,qBAAA90C,OACdG,OAAA3oB,GAAWm4D,YAAYqG,uBAAS71C,OAoLhCtS,UAAWrW,GAAGm4D,YAAY1b,oBAAoBpmC,UAC9CqlC,sBAA0D/lD,QAAlCqK,GAAGm4D,YAAYoF,gBAAgCv9D,GAAGm4D,YAAYoF,gBAAgB7hB,sBAAwB,EAC9HQ,WAAoDvmD,QAAvCqK,GAAGm4D,YAAYsF,qBAAqCz9D,GAAGm4D,YAAYsF,qBAAqBvhB,WAAa,EAlL1HrqB,cAA0Bl8B,QAAjBqK,GAAiBm4D,YAAAsG,wBAAAz+D,GAAAm4D,YAAAsG,wBAAA5sC,cAAA,EACtBkqC,UAAA/7D,GAAAm4D,YAAA4D,UACGjoD,UAAA9T,GAAAE,WAAmBG,OAGZ,MAANL,GAAAu4B,MAAM,MAAAv4B,GAAAu4B,OACP4/B,EAAAmD,WAAAt7D,GAAAm4D,YAAAK,oBAAA8C,YAqLHt7D,GAAGqyB,OACHryB,GAAGqyB,IAnLCqsC,YAAMvG,EAoLVn4D,GAnLGqyB,IAAAmpC,cAAAx7D,GAAAy5D,YAoLHz5D,GAAGqyB,IAnLCopC,cAAaz7D,GAAAi5D,qBAsLjB/B,EAAmByH,eAAe3+D,GAAGqyB,KAAK5zB,KAAK,SAAUC,GAlLzDA,EAAAhJ,KAAAke,aAAA,GACI7b,EAAa2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBACb3B,KAEDna,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,wBAsLA,SAnLOlT,GACP5I,EAAA2I,YAAA,iCAwLP,QAAS25D,GAAclC,GACnBf,EAA0BkD,sBAAsBnC,GAAa15D,KAAK,SAAUC,GACxE,GAAmB,MAAfA,EAAIlI,OAAgB,CAjLvB,GAkLGwJ,GAAGy5D,YAAc/6D,EAAIhJ,KAlLxBsK,GAAAg6D,WACL,IAAA,GAAA9+D,KAAA8E,IAAAy5D,YACGz5D,GAAAy5D,YAAsBv+D,GAAAq/D,QAAkB,CAsLnCv6D,IAAGsS,WAAY,IAhLpB,SAAA3R,GAoLC5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAI5D,QAnLIk+D,GAAAzG,GAqLAhB,EAnLuByH,uBAAKzG,GAAA15D,KAAA,SAAAC,GAoLxB,GAnLO,MAAHA,EAAGlI,OAAc,CAqLjB,GApLAwJ,GAAGi5D,qBAAYv6D,EAAAhJ,KACZsK,GAAAg6D,WACH,IAAA,GAAW9+D,KAAA8E,IAAAi5D,qBAoLHj5D,GAAGi5D,qBAAqB/9D,GAAGq/D,QAAS,CAK5Cv6D,IAAGsS,WAAY,IAhLvB,SAAA3R,GACI5I,EAAG2I,YAAY,QAAiB,mBAAmB,uBAuL3D,QAASm+D,KACL,GAnLkB,MAmLd7+D,GAAGm4D,YAnLWgB,eAAAxjE,QAAAqK,GAAAm4D,YAAAgB,cAoLdphE,EAnLQ2I,YAAW,UAAA,gCAAA,eAsLnB,IAnLIV,GAAAg6D,WAAA,CAoLA,GAnLI/+D,IAoLAq+D,UAnLOt5D,GAAAm4D,YAAmBmB,UAoL1BH,cAnLWn5D,GAAAm4D,YAAiBgB,cAoL5BrlD,UAnLQ9T,GAAAE,WAAeG,OAqL3B82D,GAnLsB0H,oBAAA5jE,GAAAwD,KAAA,SAAAC,GAoLC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uCAAwC,WAC1Ek+D,EAAuB3jE,EAAIq+D,WAlL3Bt5D,GAAGm4D,YAAYgB,cAAA,MAEfphE,EAAU2I,YAAA,QAAA,8BAAA,UAqLf,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,eAhLnE,CACA,GAAGzF,IACAk+D,cAAgBn5D,GAAAm4D,YAAAgB,cAqLnBn5D,IAAGi5D,qBAAqBphE,KAAKoD,GAlLhC+E,GAAAm4D,YAAAgB,cAAA,KACDn5D,GAAAm4D,YAAAgB,kBA0LR,QAnLQ2F,GAAgBhsD,GAoLpB9S,GAAGm4D,YAnLQgB,cAAcrmD,EAAAqmD,cAoLzBn5D,GAAGm4D,YAnLQe,WAAApmD,EAAAomD,WAoLXl5D,GAAGm4D,YAnLQmB,UAAgBxmD,EAAAwmD,UAoL3Bt5D,GAAGm7D,WAnLK,EAsLZ,QAAS4D,KACL,GAnLmC,MAmL/B/+D,GAAGm4D,YAAYgB,eAnL2BxjE,QAAXqK,GAAWm4D,YAAAgB,cAoL1CphE,EAAW2I,YAnLS,UAAW,gCAAA,eAqL9B,CACD,GAAIzF,IACAi+D,WAAYl5D,GAAGm4D,YAAYe,WAC3BC,cAnLWn5D,GAAAm4D,YAAYgB,cAoLvBxlD,WAAY3T,GAAGE,WAAWG,OAE9B82D,GAnLY6H,qBAAA/jE,GAAAwD,KAAA,SAAAC,GAoLW,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,yCAA0C,WAC5Ek+D,EAAuB5+D,GAAGm4D,YAAYmB,WAlLzCt5D,GAAAm4D,YAAAgB,cAAA,KACEn5D,GAAAm7D,WAAc,GAEdpjE,EAAA2I,YAAgB,QAAA,8BAAA,UAqLpB,SAAUC,GAlLZ5I,EAAA2I,YAAA,QAAA,8BAAA,YA4LT,QAASw7D,GAAoBppD,GAjL7B9S,GAAAm4D,YAASgE,aAAkBrpD,EAAAqpD,aACvBn8D,GAAGm4D,YAAYiE,mBAAAtpD,EAAsB6lC,YACrC34C,GAAAm4D,YAAU8G,UAAAnsD,EAAAmsD,UAoLVj/D,GAAGm4D,YAnLCmB,UAAgBxmD,EAAAwmD,UAoLpBt5D,GAAGo7D,eAnLY,EAuLnB,QAnLQkB,KAoLJ,GAnLmC,MAA/Bt8D,GAAAm4D,YAAeiE,oBAAmEzmE,QAAnDqK,GAAAm4D,YAAuBiE,mBACtDrkE,EAAU2I,YAAG,UAAW,yBAAA,eAqLvB,CAlLL,GAAAzF,IACQgkE,UAAIj/D,GAAAm4D,YAAgB8G,UACpBtmB,YAAG34C,GAAAm4D,YAAsBiE,mBACzBD,aAAGn8D,GAAYm4D,YAAAgE,aAoLfxoD,WAAY3T,GAAGE,WAAWG,OAjL9B+2D,GAAuB8E,oBAASjhE,GAAAwD,KAAoB,SAAAC,GAoL7B,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,wCAAyC,WAC3E25D,EAAcr6D,GAAGm4D,YAAYmB,WAC7Bt5D,GAAGo7D,eAAgB,EACnBp7D,GAAGm4D,YAAYgE,aAAe,KAlLrCn8D,GAAAm4D,YAAoBiE,mBAAA,MAGlBrkE,EAAgB2I,YAAW,QAAM,8BAAa,UAqL9C,SAAUC,GAlLZ5I,EAAA2I,YAAkB,QAAA,8BAAA,YA4L3B,QAnLQw+D,GAAmBp8D,GAqLvB,GAnLI9C,GAAAg6D,WAIA,CAoLA,GAAIrnD,GAAUtY,EAAQsY,QAAQ,UAlL/B,4CAAMtb,WAAA,EAAA+F,KAAA,MACNuV,GAAIjT,OAAAjB,KAAc,WACd04D,EAAmB+H,uBAAAp8D,EAAAo2D,YAAAz6D,KAAA,SAAAC,GACA,MAAnBA,EAAAlI,QAAmBkI,EAAAhJ,MAoLVqC,EAAW2I,YAAY,UAAW,2CAA4C,WAC9Ek+D,EAAuB97D,EAAKw2D,YAjLhCvhE,EAAK2I,YAAoB,QAAA,8BAAA,UAE7B,SAAAC,GACG5I,EAAA2I,YAAA,QAAA,8BAAA,iBAhBO,CAoLd,GAAI0U,GAAQpV,GAAGi5D,qBAAqB71D,QAAQN,EAC5C9C,IAAGi5D,qBAAqB3jC,OAAOlgB,EAAO,IAoB9C,QAASonD,GAAsB15D,GAC3B,GAAK9C,GAAGg6D,WA/KR,CAqLI,GAnLIrnD,GAAGtY,EAAcsY,QAAI,UACrB,4CAAmBtb,WAAA,EAAA+F,KAAA,MAoLvBuV,GAnLQjT,OAAKjB,KAAI,WAsLb24D,EAA0BoF,sBAAsB15D,EAAKm8D,WAAWxgE,KAAK,SAAUC,GAlLhE,MAAZA,EAAAlI,QAAYkI,EAAAhJ,MAoLPqC,EAAW2I,YAAY,UAAW,uCAAwC,WAC1E25D,EAAcv3D,EAAKw2D,YAjLpBvhE,EAAY2I,YAAS,QAAA,8BAAoB,UAqL7C,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,iBAnBvD,CAChB,GAAI0U,GAAQpV,GAAGy5D,YAAYr2D,QAAQN,EACnC9C,IAAGy5D,YAAYnkC,OAAOlgB,EAAO,IAuBrC,QAASsnD,KACL,GAnL6B,MAmLzB18D,GAAGm4D,YAnLUiE,oBAAkCzmE,QAAtBqK,GAAsBm4D,YAAAiE,mBAoL/CrkE,EAAW2I,YAnLI,UAAA,yBAAiC,eAsLhD,IAAKV,GAAGg6D,WAvKR,CAoLI,GAAI/+D,IAlLPq+D,UAAAt5D,GAAAm4D,YAAAmB,UACM3gB,YAAY34C,GAAAm4D,YAAAiE,mBACXD,aAAMn8D,GAAAm4D,YAAAgE,aACNroD,UAAW9T,GAAGE,WAAAG,OAqLlB+2D,GAnLkBsF,mBAAWzhE,GAAAwD,KAAA,SAAAC,GAoLN,MAAfA,EAAIlI,QAlLZuB,EAAA2I,YAA2B,UAAA,sCAA6C,WAChE25D,EAAIp/D,EAAWq+D,WACft5D,GAAAm4D,YAAWgE,aAAY,KACvBn8D,GAAAm4D,YAAAiE,mBAA2B,MAqL3BrkE,EAnLG2I,YAAA,QAAA,8BAAA,UAqLR,SAAUC,GAlLV5I,EAAU2I,YAAK,QAAA,8BAAA,eAsJF,CAChB,GAAIzF,IAlLDkhE,aAAYn8D,GAAAm4D,YAAAgE,aAoLXxjB,YAAa34C,GAAGm4D,YAAYiE,mBAhLpCp8D,IAAAy5D,YAAW5hE,KAAYoD,GAoLnB+E,GAAGm4D,YAAYgE,aAAe,KAC9Bn8D,GAAGm4D,YAAYgE,gBACfn8D,GAAGm4D,YAAYiE,mBAAqB,KAlLvCp8D,GAAAm4D,YAAAiE,uBA6MT,QAAS+C,GAAkBrsD,GAEvB,GAAIH,GAnLOtY,EAAAsY,QAAY,UAoLnB,4CAnLmCtb,WAAA,EAAA+F,KAAA,MAqLvCuV,GAAQjT,OAAOjB,KAAK,WAEhBy4D,EAAmBkI,kBAAkBtsD,EAAIwmD,WAAW76D,KAAK,SAAUC,GAE5C,MAAfA,EAAIlI,QAlLXuB,EAAA2I,YAA0B,QAAA,wCAAA,SAC5BwR,KAEAna,EAAY2I,YAAgB,QAAA,8BAAA,UAqLxB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,aAK3E,QAnLS2+D,GAAAvsD,GAoLL9S,GAAGgT,YAnLW,EAoLdhT,GAAGg6D,YAnLK,EAoLRh6D,GAAGm4D,YAnLK4D,UAAkBjpD,EAAAipD,UAoL1B/7D,GAAGm4D,YAnLKgB,cAAermD,EAAWqmD,cAoLlCn5D,GAAGm4D,YAAYmB,UAAYxmD,EAAIwmD,SAE/B,KAAK,GAnLGp+D,KAAI8E,IAAI8V,YAoLR9V,GAAG8V,YAnLY5a,GAAAmb,YAAYvD,EAAAuD,YAoL3BrW,GAAGm4D,YAnLC1b,oBAA0Bz8C,GAAA8V,YAAY5a,GAuLlD,KAAK,GAAIA,KAnLG8E,IAAAkoB,YAoLJloB,GAAGkoB,YAAYhtB,GAAGmtB,OAASvV,EAAIiqD,cAlLhC/8D,GAAAm4D,YAAekG,oBAAAr+D,GAAAkoB,YAAAhtB,GAuLtB,KAAK,GAAIA,KAAK8E,IAAG8uD,aACT9uD,GAAG8uD,aAAa5zD,GAAGstB,SAAW1V,EAAI0V,SAClCxoB,GAAGm4D,YAAYmF,qBAAuBt9D,GAAG8uD,aAAa5zD,GA/KlE,KAAS,GAAAA,KAAA8E,IAAAg9D,cAoLGh9D,GAAGg9D,cAAc9hE,GAAGytB,SAAW7V,EAAI6V,SAlLxC3oB,GAAAm4D,YAAYqG,uBAAmBx+D,GAAAg9D,cAAA9hE,GAIlC,KAAG,GAAAA,KAAA8E,IAAAgoB,mBAoLKhoB,GAAGgoB,mBAAmB9sB,GAAG6d,KAAOjG,EAAIwrD,iBACpCt+D,GAAGm4D,YAAYoG,iBAAmBv+D,GAAGgoB,mBAAmB9sB,GAIhE+/C,GAnLI,WAoLA,IAAK,GAAI//C,KAAK8E,IAAGk7C,QAlLhBl7C,GAAAk7C,QAAAhgD,GAAAwgD,wBAAA5oC,EAAA4oC,wBACG17C,GAAMm4D,YAAAoF,gBAAAv9D,GAAAk7C,QAAAhgD,MAwLK,IAAf4X,EAAI0V,QAA+B,IAAf1V,EAAI0V,QAlLxBoxC,EAA0B9mD,EAAAuD,UAAyBvD,EAAK4oC,sBAAe,WACnE,IAAI,GAAIxgD,KAAA8E,IAAA47C,aACJ57C,GAAA47C,aAAW1gD,GAAYghD,aAAWppC,EAAAopC,aAClCl8C,GAAAm4D,YAAiBsF,qBAAYz9D,GAAA47C,aAAA1gD,MAM7B,IAmLR4X,EAAI0V,QACJg1C,EAA+B1qD,EAAIopC,WAAY,WAlL5C,IAAA,GAAUhhD,KAAK8E,IAAAo8C,gBACdp8C,GAAWo8C,gBAAYlhD,GAAA22B,gBAAS/e,EAAA+e,gBAoLxB7xB,GAAGm4D,YAAYsG,wBAA0Bz+D,GAAGo8C,gBAAgBlhD,MAM5EmgE,EAAYvoD,EAAIwmD,UAAW,WACvBt5D,GAAGy5D,YAAcz5D,GAAGy5D,WAlL5B,KAAS,GAAAv+D,KAAA8E,IAAAy5D,YAoLGz5D,GAAGy5D,YAAYv+D,GAAGq/D,QAAS,CAjL/Bv6D,IAAAi5D,qBAAej5D,GAAAi5D,oBAqLf,KAAK,GAAI/9D,KAAK8E,IAAGi5D,qBAlLhBj5D,GAAAi5D,qBAAA/9D,GAAAq/D,QAAA,IAwLT,QAASvmD,KACLhU,GAAG+S,WAAY,EACf/S,GAAGgT,YAnLa,EAoLhBhT,GAAGiU,aAAc,EACjBjU,GAAGg6D,YAnLa,EAoLhBh6D,GAAGo6D,eAAgB,EACnBp6D,GAAGm4D,eACHn4D,GAAGy5D,eACHz5D,GAAGi5D,wBACHj5D,GAAGu4B,KAAO,KAGd,QAASiiC,KAlLTx6D,GAAAo6D,eAAS,EAuLT,QAASl2C,KACLlkB,GAAG0S,WACH1S,GAAGgT,YAAa,EAChBhT,GAAG+S,WAnLK,EAoLR/S,GAAGg6D,YAnLK,EAoLRh6D,GAAGo6D,eAnLgB,EAoLnBp6D,GAAGm4D,eACHn4D,GAAGy5D,eACHz5D,GAAGi5D,wBACHj5D,GAAGu4B,KAAO,KAEd,QAAS7mB,KACL,GAAIiB,GAAUtY,EAnLKsY,QAAA,eAoLf,yFACItb,WAAW,EACX+F,KAnLG,MAsLXuV,GAAQjT,OAAOjB,KAAK,WACbuB,GAAG0S,WACV1S,GAAGgT,YAAa,EAChBhT,GAAG+S,WAAY,EAlLnB/S,GAAAg6D,YAAS,EACLh6D,GAAAo6D,eAAmB,EAoLnBp6D,GAAGm4D,eACHn4D,GAAGy5D,eACHz5D,GAAGi5D,wBACHj5D,GAAGu4B,KAnLM,OAyLb,QAASrkB,KACLlU,GAAGmU,YAnLQC,gBAsLf,QAAS41C,KACLhqD,GAAGm4D,YAAY1b,oBAAsB,KACrCz8C,GAAG8V,eACHonD,IAGJ,QAASA,KACLl9D,GAAGm4D,YAnLSkG,oBAAyB,KAoLrClB,IAGJ,QAASA,KACLn9D,GAAGm4D,YAAYmF,qBAnLmB,KAoLlCD,KAGJ,QAASA,MACLr9D,GAAGm4D,YAAYqG,uBAAyB,KACxC7Z,KAGJ,QAASA,MACL3kD,GAAGm4D,YAAYoF,gBAAkB,KACjCv9D,GAAGk7C,WACH+O,KAGJ,QAASA,MAlLLjqD,GAAAm4D,YAAcsF,qBAAgB,KAoL9Bz9D,GAAG47C,gBACHsO,KAGJ,QAnLQA,MAoLJlqD,GAAGm4D,YAnLKsG,wBAAA,KAoLRz+D,GAAGo8C,mBAIP,QAASshB,MACL19D,GAAGm4D,YAAY1hD,gBAAkB,KACjCzW,GAAG44D,mBACH+E,KAGJ,QAASA,MACL39D,GAAGm4D,YAAY+B,gBAAkB,KAlLrC0D,KAsLA,QAnLOA,MACH59D,GAAGm4D,YAAYC,iBAAgB,KAC/ByF,KAsLJ,QAnLQA,MAoLJ79D,GAAGm4D,YAnLQE,mBAAY,KAoLvByF,KAGJ,QAnLSA,MAoLL99D,GAAGm4D,YAnLQ3b,YAAe,KAoL1Bx8C,GAAGm4D,YAnLQiG,2BAAY,KAoLvBp+D,GAAG24D,eACHqF,KAGJ,QAnLQA,MAoLJh+D,GAAGm4D,YAnLQxa,iBAAY,KAoLvB39C,GAAGs4D,oBACH2F,KAGJ,QAnLQA,MAoLJj+D,GAAGm4D,YAnLQta,oBAAY,KAoLvB79C,GAAGu4D,uBACHv4D,GAAGm4D,YAAYiG,2BAA6B,KAC5Cp+D,GAAGm4D,YAAYK,oBAAsB,KAlLrCx4D,GAAAm6D,mBAvzBJ,GAAIn6D,IAlLIC,IAoLRD,IAAGqU,kBAlLShJ,MAAgB,IAAYA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAmLxCrL,GAAGsU,SAAWtU,GAAGqU,gBAAgB,GAEjCrU,GAAGuU,YAlLQ,EAmLXvU,GAAGwU,qBAlLoB,SAAAC,GAmLnBzU,GAAGuU,YAlLIE,GAsLXzU,GAAG26D,gBAlLM36D,GAAAqU,gBAAA,GAoLTrU,GAAG46D,mBAlLoB,EAmLvB56D,GAAG66D,4BAlLyB,SAAYpmD,GAmLpCzU,GAAG46D,mBAlLmBnmD,GAsL1BzU,GAAG+6D,gBAlLiB/6D,GAAAqU,gBAAgB,GAmLpCrU,GAAGg7D,mBAlLa,EAmLhBh7D,GAAGi7D,4BAlL2B,SAAIxmD,GAmL9BzU,GAAGg7D,mBAlLevmD,GAqLtBzU,GAAGgT,YAAa,EAChBhT,GAAG+S,WAlLQ,EAmLX/S,GAAGk7D,cAlLS,EAmLZl7D,GAAGsS,WAAY,EACfva,EAAW2c,SAAU,EAGrBjK,EAlLO+T,aAAaA,EAmLpBxe,GAAGgU,OAlLIA,EAmLPhU,GAAGw6D,YAlLIA,EAmLPx6D,GAAG0R,OAASA,EACZ1R,GAAGkkB,KAlLMA,EAmLTlkB,GAAGkU,UAlLYA,EAmLflU,GAAGq7D,YAlLYA,EAmLfr7D,GAAG08D,mBAAqBA,EACxB18D,GAAGm4D,eACHn4D,GAAG84D,gBAlLiBA,EAmLpBruD,EAAOrM,SAlLU,GAAKH,SAoLtB+B,IAAGo6D,eAlLgB,EAmLnBp6D,GAAGi5D,wBACHj5D,GAAGy5D,eAEHz5D,GAAGg6D,YAAa,EAChBh6D,GAAGm7D,WAlLU,EAmLbn7D,GAAGo7D,eAlLY,EAoLfp7D,GAAGq6D,cAAgBA,EACnBr6D,GAAG85D,gBAAkBA,EACrB95D,GAAGy3D,mBAAqBA,EACxBz3D,GAAG03D,gBAAkBA,EACrB13D,GAAG23D,eAlLeA,EAmLlB33D,GAAGu3D,eAlLYA,EAmLfv3D,GAAG43D,iBAlLYA,EAmLf53D,GAAG8+D,qBAAuBA,EAC1B9+D,GAAG++D,uBAAyBA,EAC5B/+D,GAAGw8D,sBAAwBA,EAC3Bx8D,GAAGk/D,uBAlLkBA,EAoLrBl/D,GAAGi9D,WAlLYA,EAmLfj9D,GAAG+9D,sBAAwBA,EAC3B/9D,GAAG6+D,oBAAsBA,EAEzB7+D,GAAGo9D,YAlLUA,EAmLbp9D,GAAGi7C,aAlLYA,EAmLfj7C,GAAGs8D,sBAlLwBA,EAmL3Bt8D,GAAG43C,cAAgBA,EACnB53C,GAAGk8D,oBAAsBA,EACzBl8D,GAAGq/D,gBAAkBA,EACrBr/D,GAAGw9D,+BAlL+BA,EAmLlCx9D,GAAG45D,sCAlL2BA,EAmL9B55D,GAAG4+D,uBAlLwBA,EAmL3B5+D,GAAG25D,yBAA2BA,EAC9B35D,GAAGm/D,kBAAoBA,EACvBn/D,GAAG+5D,iCAAmCA,CACtB5/D,GAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,IAAGE,WAlLS/F,EAAoBgG,uBAmLhC+R,IAEAlS,GAAGgoB,qBAlLoBC,aAAiB,qBAAsBlP,GAAA,IAAYkP,aAAA,oBAAAlP,GAAA,IAmLxEkP,aAAc,iCAlLmBlP,GAAmB,iRAuF1D3kB,QACKC,OAAO,4BACPe,WAAW,kBAAmBynE,MAu/BvC,WACI,YAOA,SAASyC,GAASvlE,EAnLMhC,EAAGyC,EAAgBiQ,EAAApQ,EAAmBklE,EAAYnhD,EAAAjkB,GA+NtE,QAAS+X,KACLqtD,EAAYC,aAAa/gE,KAAK,SAASC,GAChB,MAAfA,EAAIlI,QAlLPwJ,EAAAy/D,SAAO/gE,EAAAhJ,KACT0oB,EAAUgB,qBAAA3gB,KAAA,SAAAC,GACG,MAAAA,EAAAlI,QACDwJ,EAAAqf,iBAAA3gB,EAAAhJ,KACCsK,EAAAsS,WAAA,GAEbva,EAAc2I,YAAA,QAAA,yBAAA,UAGdV,EAAOsS,WAAA,GAELva,EAAS2I,YAAA,QAAA,yBAAA,SAqLX,SAnLCC,GAqLA5I,EAnLU2I,YAAA,QAAA,mBAAA,UAuLlB,QAASsT,KAlLLhU,EAAG+S,WAAA,EACH/S,EAAGgT,YAAY,EAwLnB,QAnLO0E,KACH1X,EAAGgT,YAAO,EAoLVhT,EAAG+S,WAAY,EACfmB,IACAlU,EAAG0/D,QAIP,QAnLOhuD,KAoLH,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFAlLCtb,WAAA,EACF+F,KAAA,MAsLHuV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAlLxBhT,EAAS+S,WAAA,EACFmB,IACHlU,EAAA0/D,UAyLJ,QAASxrD,KACLlU,EAAG2/D,SAASvrD,gBAGhB,QAnLIwrD,GAAAF,GAqLA1/D,EAAG+S,WAAY,EAlLnB/S,EAAAgT,YAAoB,EAEhBhT,EAAG0/D,KAAAtrE,QAAU8e,KAAAwsD,EACb,KAAA,GAAA7nD,KAAA7X,GAAAqf,iBAoLQrf,EAAGqf,iBAAiBxH,GAAGuI,sBAAwBs/C,EAAKt/C,sBACpDpgB,EAAG0/D,KAAKr/C,qBAAuBrgB,EAAGqf,iBAAiBxH,IAM/D,QAASgoD,GAAWH,GAlLpB,GAAA/sD,GAAStY,EAAAsY,QAAmB,UACrB,4CAAsCtb,WAAA,EAAA+F,KAAA,MAqLzCuV,GAAQjT,OAAOjB,KAAK,WAChB8gE,EAAYM,WAAWH,EAAK32C,QAAQtqB,KAAK,SAASC,GAC3B,MAAfA,EAAIlI,QAlLXuB,EAAA2I,YAAmB,UAAA,2BAAA,QACrBwR,KAEH7X,EAAAwH,MAAA,QAAA,qBAAAxK,WAAA,EAAA+F,KAAA,QAqLO,SAASuD,GAlLXtG,EAAAwH,MAAA,QAAmB,kEAAAxK,WAAA,EAAA+F,KAAA,UAExB,cAwLJ,QAnLI0iE,GAAAJ,GAoLA,GAAIx/D,GAAa/F,EAAsBgG,sBACvCu/D,GAAKt/C,oBAAsBpgB,EAAG0/D,KAAKr/C,qBAAqBD,oBAlLnDpgB,EAAA+S,WAkBT2sD,EAAS/rD,WAAAzT,EAAuBG,OACzBk/D,EAAYQ,SAAAL,GAAAjhE,KAAA,SAAsBC,GAClCA,EAAAhJ,KAAAke,aAAsB,GACtB7b,EAAY2I,YAAA,UAA6BhC,EAAAhJ,KAAAme,QAAA,eACzC3B,IACAlS,EAAAgT,YAAkB,EAoLThT,EAAG+S,WAAY,EACf2E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eAClD7T,EAAGgT,YAAa,IAErB,SAASrS,GACR5I,EAAW2I,YAAY,+BAAiCrJ,WAAW,EAAM+F,KAAM,WAjNpFsiE,EAAA5rD,UAAY5T,EAAAG,OACfk/D,EAAAS,QAAAN,GAAAjhE,KAAA,SAAAC,GAoLYA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eAlL3D6D,IACFxF,IACAlS,EAAYgT,YAAA,IAsLHjb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eAClD7T,EAAGgT,YAAa,IAjLzB,SAAYrS,GACZ5I,EAAA2I,YAAmB,kCA0M1B,QApLQu/D,GAAAP,GACP,GAAA3+D,GAAW,yBAAY2+D,EAAA,SAAA,WAAA,UAAA,gBAsLhB/sD,IADS+sD,EAAK,SAAY,WAAa,UAAY,qBACzCrlE,EAAQsY,QAAQ,UAnL7B5R,GAAS1J,WAAO,EAAA+F,KAAY,OAsL7BuV,GAAQjT,OAAOjB,KAAK,WAnLrB8gE,EAAAU,iBAA8BP,EAAO32C,QAAStqB,KAAM,SAAEC,GACxC,MAAHA,EAAGlI,QAqLDuB,EAAW2I,YAAY,UAAW,2BAA4B,QAnL3EwR,KAEQna,EAAc2I,YAAA,QAAA,qBAAArJ,WAAA,EAAA+F,KAAA,QAsLd,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,8DAAgErJ,WAAW,EAAM+F,KAAM,UAlLhI,cAZH,GAAI4C,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAnLuB,SAAAC,GAClBzU,EAAAuU,YAAAE,GAuLRzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EAEftS,EAAGy/D,YACHz/D,EAAG0/D,QACH3nE,EAnLW2c,SAAA,EAqLX1U,EAAGigE,iBAnLYA,EAoLfjgE,EAAGgU,OAASA,EACZhU,EAAG0R,OAnLQA,EAqLX1R,EAAGkU,UAnLUA,EAoLblU,EAAG4/D,SAnLSA,EAoLZ5/D,EAAG6/D,WAAaA,EAChB7/D,EAAG8/D,SAAWA,EAhLd5tD,IAqLAzH,EAnLOkc,SAAA,SAAaxqB,EAAAyqB,GAEhB,GAAGC,GAAA,GAAaC,QAAA,gBACbC,EAAAC,OAAAC,aAAgB9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MACnB,KAAGN,EAAAje,KAAAme,GAGA,MAFA5qB,GAAAkB,iBACAtF,EAAA2I,YAAuB,OAAA,iCAAA,mBAChB,4HAuIlBtM,QACKC,OAAO,oBACPe,WAnLW,WAAWkqE,MA+X/B,WACI,YAOA,SAASY,GAAUnmE,EAAOhC,EAAYyC,EAAQH,EAASyX,EAAcC,EAAgBtH,EAAQtQ,GAmCzF,QAAS+X,KACW/X,EAAsBgG,uBAAuBwU,gBAAgBxC,SAnLjFL,GAASquD,YAASpmE,EAAAhC,GAAA0G,KAAA,SAAAC,GACC,MAAZA,EAAAlI,QACAwJ,EAAAuW,UAAa7X,EAAAhJ,KAqLRqc,EAAe8D,mBAAmBpX,KAAK,SAASC,GACzB,MAAfA,EAAIlI,SACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGsS,WAAY,KAjL5BtS,EAAAsS,WAAY,GAEZva,EAAO2I,YAAA,QAAA,yBAAA,UAsLP,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,WAK5D,QAASsT,KACLhU,EAAGgT,YAAa,EAChBhT,EAAGwX,aAAY,EAnLfxX,EAAAyX,WAAQ,EAuLZ,QApLQC,KAqLJ1X,EAAGgT,YApLW,EAqLdhT,EAAGkU,YACHlU,EAAG/K,SAGP,QAASyc,KAnLT,GAAAiB,GAAStY,EAAYsY,QAAA,eACd,yFAqLKtb,WAAW,EACX+F,KAAM,MAjLduV,GAAGjT,OAAYjB,KAAA,WACZuB,EAAAgT,YAAa,EAqLZhT,EAAGkU,YAnLJlU,EAAA/K,WA2LP,QAASif,KACLlU,EAAGogE,UAAUhsD;CAGjB,QApLQisD,GAAAprE,GAqLJ+K,EAAG+S,WAAY,EAnLf/S,EAAAgT,YAAe,EAqLfhT,EAAGwX,aApLC,EAqLJxX,EAAGyX,WApLS,EAqLZzX,EAAG/K,MAAQb,QApLC8e,KAAWje,EAqLvB,KAAK,GAAI4iB,KApLG7X,GAAA8V,YAqLJ9V,EAAG8V,YApLI+B,GAAAxB,YAAAphB,EAAAohB,YAqLPrW,EAAG/K,MApLCwhB,gBAAuBzW,EAAA8V,YAAA+B,IA2LvC,QAASyoD,GAAkBrrE,GACvB,GAAI8L,GAAM,yBAA4B9L,EAAM,SAAY,WAAa,UAAY,gBAC7E0jB,GAAS1jB,EAAM,SAAY,WAAa,UAAY,sBAnL5D0d,EAAkBtY,EAAMsY,QAAA,UAAA5R,GAAA1J,WAAA,EAAA+F,KAAA,MAEpBuV,GAAKjT,OAAAjB,KAAA,WACDqT,EAAIwuD,kBAAWrrE,EAAA4hB,SAAApY,KAAA,SAAAC,GACE,MAAZA,EAAAlI,QACLuB,EAAY2I,YAAmB,UAASiY,EAAK,SACrCzG,KAEAna,EAAA2I,YAAA,QAAA,6BAAArJ,WAAA,EAAA+F,KAAA,QAsLL,SApLQuD,GAqLP5I,EAAW2I,YAAY,QAAS,oEAAsErJ,WAAW,EAAM+F,KAAM,UAElI,cAKP,QAASmjE,GAAYtrE,GACjB,GAAI0d,GAAUtY,EAAQsY,QAAQ,UAAW,4CACrCtb,WApLG,EACH+F,KAAK,MAuLTuV,GAAQjT,OApLIjB,KAAA,WAqLRqT,EApLQyuD,YAAAtrE,EAAA4hB,SAAApY,KAAA,SAAAC,GACG,MAAHA,EAAGlI,QACHuB,EAAG2I,YAAY,UAAA,4BAAA,SACfwR,KAEAna,EAAW2I,YAAY,QAAS,sBAC7BrJ,WAAA,EAqLC+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,8DAC5BrJ,WAAW,EACX+F,KAAM,UAjLlB,cAyLJ,QApLIojE,KAqLA,GApLI9sD,GAAYvZ,EAAsBgG,sBAqLtC,IAAKH,EApLG+S,UAsBX,CAsLO,GAAI9d,IACAohB,UAAWrW,EAAG/K,MAAMwhB,gBAAgBJ,UApL3CW,UAAiBhX,EAAA/K,MAAA+hB,UAsLVH,QAAS7W,EAAG/K,MAAM4hB,QApLrBuB,SAAApY,EAAA/K,MAAAmjB,SAsLGzE,WAAYD,EAAYrT,OAE5ByR,GAAa2uD,UAAUxrE,GAAOwJ,KAAK,SAASC,GACpCA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBACpD3B,IApLZlS,EAAAgT,YAAoB,EACThT,EAAG+S,WAAA,EAsLF2E,MAnLZ3f,EAAuB2I,YAAS,QAAKhC,EAAAhJ,KAAAme,QAAA,gBACnC7T,EAAAgT,YAAc,IAuLT,SAASrS,GApLjB5I,EAAa2I,YAAA,qCA1CI,CAqLZ,GAAIzL,IACAohB,UApLIrW,EAAA/K,MAAAwhB,gBAAAJ,UAqLJW,UApLOhX,EAAA/K,MAAA+hB,UAqLP0pD,UApLIhtD,EAAWrT,OAsLnByR,GApLY6uD,SAAK1rE,GAAAwJ,KAAA,SAAAC,GACbA,EAAAhJ,KAAWke,aAAY,GAqLnB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBAnL7D3B,IAqLSlS,EAAGgT,YAAa,EAChB0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gBAClD7T,EAAGgT,YAAa,IAjL5B,SAAArS,GACR5I,EAAA2I,YAAA,kCASI,GAAIV,GAAKC,IAORD,GAAGqU,kBApLehJ,MAAY,IAAAA,MAAQ,KAAAA,MAAA,KAAAA,MAAkC,KAAAA,MAAA,MAqLxErL,EAAGsU,SApLWtU,EAAAqU,gBAAA,GAsLdrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GACjCzU,EAAGuU,YAAcE,GAGpBzU,EAAGgT,YApLa,EAqLhBhT,EAAG+S,WApLY,EAqLf/S,EAAGsS,WApLS,EAqLZtS,EAAG4gE,aACH7oE,EAAW2c,SApLS,EAsLpB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGqgE,UAAYA,EACfrgE,EAAGsgE,kBApLYA,EAqLftgE,EAAGugE,YApLYA,EAqLfvgE,EAAGwgE,UApLSA,EAqLZxgE,EAAGwX,aAAY,EACfxX,EAAGyX,WApLI,EAsLPvF,yHAtCJ9d,QAnLIC,OAAG,qBACHe,WAAG,YAAa8qE,MAsYxB,WAEI,YAQA,SArLQW,GAAgB9mE,EAAAhC,GAoMpB,QArLQ+oE,GAAW7lE,GAsLf,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCZ,EAAKlG,GAEjF,QAASisE,GAAwB/lE,GAC7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GAExF,QArLOksE,GAAahmE,GAChB,MAAGlB,GAAAgnE,KAAYhpE,EAAA8D,SAAA,yCAAAZ,EAAAlG,GAwLnB,QAASmsE,GAAkBjmE,GApL3B,MAASlB,GAAQgnE,KAAAhpE,EAAA8D,SAAA,gCAAAZ,EAAAlG,GAwLjB,QArLOosE,GAAQlmE,GAsLX,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GA7BxFkL,KArLI6gE,iBAAaA,EAsLjB7gE,KAAK+gE,wBArLsBA,EAsL3B/gE,KAAKghE,2BArL0BA,EAsL/BhhE,KAAKihE,kBArLOA,EAsLZjhE,KAAKkhE,eArLeA,CA0LpB,IAAIpsE,IACAoN,SACIi/D,MArLIrpE,EAAWqK,QAmK3BhO,QApLIC,OAAG,yBAsLF8U,QAAQ,qBAAsB03D,GAEnCA,EAAmBQ,SAAW,QAAS,iBAqC3C,WAEI,YAQA,SAASpoD,GAAkBlf,EAAOhC,GAS9B,QArLO8hB,KAsLJ,GArLI9kB,IACAoN,SACAi/D,MAAUrpE,EAAAqK,OAEbk/D,aAAiB,cAuLjB,OAAOvnE,GArLIgnE,KAAMhpE,EAAA8D,SAAqB,gDAAY9G,GAsKvDkL,KAAK4Z,4BAA8BA,IAjL9B1X,SAsLIi/D,MAASrpE,EAAWqK,SAZhChO,QACKC,OArLO,iCAsLP8U,QArLO,oBAAG8P,GAuLfA,EAAkBooD,SAAW,QAAS,iBA0B1C,WACI,YAQA,SAASlnE,GArLckkB,EAAAtkB,EAAAU,EAAA1C,EAAAsC,GAoMnB,QAAS6X,KACLna,EAAW2E,OAASA,EAASjC,EAAQ8mE,eAAezkE,QAAQ,WAAarC,EAAQoC,aAAaC,QAAQ,UApLtG/E,EAAQqK,MAAOA,EAAK3H,EAAW8mE,eAAAzkE,QAAA,UAAArC,EAAAoC,aAAAC,QAAA,SAsL/B/E,EArLIuK,OAAaA,EAAY7H,EAAM8mE,eAAczkE,QAAS,WAAKrC,EAAAoC,aAAAC,QAAA,UAsL/DoD,EArLYvD,KAAIC,MAAAnC,EAAgB8mE,eAAAzkE,QAAA,uBAAAH,KAAAC,MAAAnC,EAAAoC,aAAAC,QAAA,sBAsLhC/E,EAAWypE,SArLCA,EAAW,EAAuBthE,EAAAi/C,UAAA,GAsL1Cj/C,IACAnI,EArLW0pE,oBAAA,OAAAvhE,EAAAyU,iBAAAhf,SAAAuK,EAAAyU,gBAsLPzU,EArLIyU,gBAAuBs3B,YAAS,GAuLxCl0C,EAAW2pE,kBArLO,OAAAxhE,EAAAyU,iBAAAhf,SAAAuK,EAAAyU,gBAsLdzU,EAAWyU,gBAAgBxC,UAAY,IAInD,QAASwvD,GAAMC,EArLCC,EAAWtjE,GAsLvB,GAAIujE,GArLQzjD,EAAM0jD,OAAAH,EAAA,IAAAC,EAuLlB9nE,GAAMioE,SAAS7/D,QAAQ8/D,OAAOC,cAAgB,SAAWJ,EAEzD/nE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,SAC5B4C,KAAK,SAAS0jE,GAEXpqE,EAAWqK,MAAQA,EAAQ+/D,EAAShgE,QAAQ,SApL/CpK,EAAYuK,OAAAA,EAAA6/D,EAAAhgE,QAAA,UACbpK,EAAc2E,OAAAA,GAAA,EAEVjC,EAAQ8mE,eAAAa,QAAA,QAAAhgE,GACR3H,EAAA8mE,eAAoBa,QAAA,SAAgB1lE,GACpCjC,EAAA8mE,eAAoBa,QAAA,SAAA9/D,GAuLpB7H,EAAQoC,aAAaulE,QAAQ,QAAShgE,GApL1C3H,EAAAoC,aAAsBulE,QAAO,SAAc1lE,GACvCjC,EAAQoC,aAAKulE,QAAc,SAAM9/D,GAsLjC/D,EArLI4jE,IAsLL,SArLKxhE,GAsLJpC,EArLOoC,KAyLnB,QAAS0hE,GArLUT,EAAAC,GAsLf,MAAO9nE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,aAAe+lE,EAAW,aAAeC,GAGrF,QAAS1pE,KACLJ,EAAWqK,MAAQA,EAAQ,GAC3BrK,EAAW2E,OAASA,GAAS,EAC7B3E,EAAWuK,OAASA,EAAS,EAE7B7H,EArLO8mE,eAAA7pD,QAsLPjd,EArLQoC,aAAQ6a,QAwLpB,QAASvX,KACL,MAAOD,GAGX,QArLQoiE,GAAaC,GAsLjBriE,EArLYqiE,EAsLZxqE,EAAWypE,SArLCthE,EAAWi/C,UAEK,OAqLxBj/C,EArLWyU,iBAAahf,SAAAuK,EAAAyU,gBAsLxB5c,EArLW0pE,oBAAYvhE,EAAAyU,gBAAAs3B,YAuLvBl0C,EArLW0pE,oBAAA,KAuLfhnE,EAAQ8mE,eArLOa,QAAa,oBAAAzlE,KAAAqkB,UAAAuhD,IAsL5B9nE,EAAQoC,aAAaulE,QAAQ,oBAAqBzlE,KAAKqkB,UAAUuhD,IAjFrE,GAAI7lE,IAAS,EACT0F,EAAQ,GACRE,EArLO,EAsLPk/D,EArLQ,GAsLRthE,IAEJD,MAAK0hE,MAAQA,EACb1hE,KAAKoiE,WAAaA,EAClBpiE,KAAK9H,OAASA,EACd8H,KAAKE,qBAAuBA,EApL5BF,KAAAqiE,qBAA4BA,EAuL5BpwD,kEAnBJ9d,QACKC,OArLG,wBAsLH8U,QArLO,wBAAahP,GAuLzBA,EArLoBqoE,QAAW,SAAA,QAAY,UAAiB,aAAA,cA6QhE,WACI,YAEApuE,SACKC,OAAO,wBACP4N,QAAQ,SAAU,WAGf,GAAIwgE,GAAS,mEAEb,QApLRV,OAAA,SAAAzkC,GACY,GACColC,GAAAC,EAsLOC,EAAMC,EAAMC,EAvLpBC,EAAA,GACCC,EAAsB,GAsLGC,EAAO,GApL1B/nE,EAAA,CAEV,GACAwnE,GAAAplC,EAAmB3/B,WAAAzC,KACnBynE,EAAArlC,EAAA3/B,WAA0BzC,KAC1B8nE,EAAA1lC,EAAA3/B,WAA6BzC,KAE7B0nE,EAAiBF,GAAA,EAsLNG,GAAgB,EAAPH,IAAa,EAAMC,GAAQ,EACpCG,GAAgB,GAAPH,IAAc,EAAMK,GAAQ,EACrCC,EAAc,GAAPD,EAnLV7iC,MAAAwiC,GACAG,EAAAG,EAAA,GACI9iC,MAAW6iC,KAsLRC,EAAO,IAlLhBF,EAAWA,EAsLFN,EAAOljC,OAAOqjC,GApLzBH,EAAAljC,OAAwBsjC,GAChBJ,EAAKljC,OAAWujC,GAsLbL,EAAOljC,OAAO0jC,GApLzBP,EAAAC,EAAAK,EAA2B,GACzBJ,EAAWC,EAAAC,EAAWG,EAAW,SAsLvB/nE,EAAIoiC,EAAMniC,OAnLtB,OAAA4nE,IAwLDG,OAAQ,SAAS5lC,GApLhB,GACEolC,GAAWC,EAsLNC,EAAMC,EAAMC,EAvLnBC,EAAe,GACFC,EAAW,GAsLCC,EAAO,GACzB/nE,EAAI,EAlLfioE,EAAA,qBAsLWA,GAAWC,KAAK9lC,IApLpC5oC,OAAA+oC,MAAA,oJAIaH,EAAAA,EAAArhC,QAAqB,sBAAA,GAElC,GAsLoB2mE,GAAOH,EAAOr/D,QAAQk6B,EAAMiC,OAAOrkC,MApL9C2nE,EAAkBJ,EAAOr/D,QAAAk6B,EAAYiC,OAAArkC,MACtC4nE,EAAAL,EAAAr/D,QAA8Bk6B,EAAAiC,OAAArkC,MAsLlB+nE,EAAOR,EAAOr/D,QAAQk6B,EAAMiC,OAAOrkC,MAnLtCwnE,EAAAE,GAAA,EAAAC,GAAA,EACAF,GAAA,GAAAE,IAAA,EAAAC,GAAA,EACLE,GAAoB,EAAXF,IAAW,EAAAG,EAuLZF,GAAkB/7C,OAAOC,aAAay7C,GAnLtC,IAAAI,IACCC,GAAA/7C,OAAAC,aAAA07C,IAuLW,IAARM,IApLZF,GAAc/7C,OAAAC,aAAA+7C,IAwLNN,EAAOC,EAAOK,EAAO,GACrBJ,EAAOC,EAAOC,EAAOG,EAAO,SAEvB/nE,EAAIoiC,EAAMniC,OAEnB,OAAO4nE,WAK3B,WAEI,YAQA,SAtLQv7C,GAASztB,EAAAhC,GAwDb,QAASsrE,GAASx6C,EAAAoS,GACd,MAAAlhC,GAAWupE,IAAAvrE,EAAgB8D,SAAA,mCAAAgtB,EAAA,cAAAoS,EAAAlmC,GAyL/B,QAASwuE,GAAe16C,GArLpB,MAAA9uB,GAAQupE,IAAAvrE,EAAe8D,SAAA,0BAAAgtB,EAAA9zB,GAyL3B,QAASyuE,GAAsB36C,GArL/B,MAAS9uB,GAAAupE,IAAAvrE,EAAuB8D,SAAA,kCAAAgtB,EAAA9zB,GAyLhC,QAAS0uE,GAAuCxoC,GArLhD,MAASlhC,GAAAupE,IAAAvrE,EAAqB8D,SAAa,kDAAAo/B,EAAAlmC,GAyL3C,QAAS2uE,GAAmCzoC,GArLxC,MAAIlhC,GAAAupE,IAAWvrE,EAAA8D,SAAoB,8CAAuCo/B,EAAAlmC,GAyL9E,QAtLQ4uE,GAAW1oC,GAuLf,MAAOlhC,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAkCo/B,EAAWlmC,GAGxF,QAAS6uE,GAAiBC,GACtB,MAAO9pE,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA8BgoE,EAAM9uE,GAnLnF,QAAA63B,GAAA5D,GAuLQ,MAAOjvB,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAA0BmtB,EAAcj0B,GAGnF,QAtLSk4B,GAAUjE,EAAWpzB,EAAAqlC,GAuL1B,MAAOlhC,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAoCmtB,EAAe,WAAapzB,EAAS,cAAgBqlC,EAAWlmC,GAG/I,QAAS+uE,GAAgB7oE,GArLrB,MAAOlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,0BAAAZ,EAAAlG,GAyLX,QAASgvE,GAtLaC,GAuLlB,MAAOjqE,GAtLKupE,IAAAvrE,EAAY8D,SAAa,6BAAAmoE,EAAAjvE,GAyLzC,QAASkvE,GAtLMD,GAuLX,MAAOjqE,GAtLKupE,IAAAvrE,EAAa8D,SAAW,qCAAAmoE,EAAAjvE,GAyLxC,QAASmvE,GAA2BL,EAAMM,EAAcC,GACpD,MAAOrqE,GAtLKupE,IAAAvrE,EAAe8D,SAAA,sCAAAgoE,EAAA9uE,GAyL/B,QAASsvE,GAtLqBppE,GAuL1B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAAyCZ,EAAKlG,GAG1F,QAASuvE,GAtLkBrpE,GAuLvB,MAAOlB,GAAMgnE,KAtLGhpE,EAAO8D,SAAA,iCAAAZ,EAAAlG,GAyL3B,QAASwvE,GAtLgBtpE,GAuLrB,MAAOlB,GAAMgnE,KAtLGhpE,EAAO8D,SAAO,gCAAAZ,EAAAlG,GAyLlC,QAASyvE,GAtLyBvpE,GAuL9B,MAAOlB,GAtLKgnE,KAAAhpE,EAAc8D,SAAO,qCAAAZ,EAAAlG,GAyLrC,QAAS0vE,GAA2BxpE,GAChC,MAAOlB,GAtLCgnE,KAAOhpE,EAAA8D,SAAA,qCAAAZ,EAAAlG,GAyLnB,QAtLQ2vE,GAAiBzpE,GAuLrB,MAAOlB,GAtLKgnE,KAAAhpE,EAAS8D,SAAA,4BAAAZ,EAAAlG,GAyLzB,QAAS4vE,KACL,MAAO5qE,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAA8B9G,GAGzE,QAAS6vE,GAtLkB3pE,GAuLvB,MAAOlB,GAtLKgnE,KAAAhpE,EAAa8D,SAAA,+BAAAZ,EAAAlG,GAyL7B,QAAS8vE,GAAgB5pE,GACrB,MAAOlB,GAtLCgnE,KAAQhpE,EAAM8D,SAAQ,0BAAuBZ,EAAAlG,GAyLzD,QAAS+vE,GAtLc7pE,GAuLnB,MAAOlB,GAtLKgnE,KAAAhpE,EAAc8D,SAAc,4BAAOZ,EAAAlG,GAyLnD,QAASgwE,GAAkB9pE,GACvB,MAAOlB,GAtLKgnE,KAAAhpE,EAAgB8D,SAAM,4BAAQZ,EAAAlG,GAyL9C,QAASiwE,GAAW/pE,GAChB,MAAOlB,GAtLKgnE,KAAAhpE,EAAS8D,SAAgB,qBAAaZ,EAAAlG,GAyLtD,QAASkwE,GAtLWhqE,GAuLhB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAG/E,QAASmwE,GAAcjqE,GACnB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAqBZ,EAAKlG,GAGtE,QAASowE,GAAWlqE,GAChB,MAAOlB,GAAMgnE,KAtLIhpE,EAAU8D,SAAA,qBAAAZ,EAAAlG,GAyL/B,QAASqwE,GAAkBnqE,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAnLrF,QAAYswE,GAAApqE,GAuLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAnL1F,QAAAuwE,GAAArqE,GACK,MAAOlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,yBAAAZ,EAAAlG,GAGZ,QAAAwwE,GAAyBtqE,GAuLjB,GAAIlG,IArLHoN,SACAi/D,MAAArpE,EAA0BqK,OAI/B,OADArN,GAAK,aAAA,cACAgF,EAAAgnE,KAAAhpE,EAAwB8D,SAAA,iCAAAZ,EAAAlG,GAG7B,QAAKywE,GAAoBvqE,GACzB,GAAKlG,IACAoN,SACAi/D,MAAArpE,EAAiBqK,OAItB,OADArN,GAAK,aAAoB,cACpBgF,EAAAgnE,KAAAhpE,EAA4B8D,SAAA,wCAAAZ,EAAAlG,GAGjC,QAAK0wE,GAAoBxqE,GACzB,GAAKlG,IACAoN,SACAi/D,MAAArpE,EAAqBqK,OAI1B,OADArN,GAAK,aAAqB,cACrBgF,EAAAgnE,KAAchpE,EAAA8D,SAAA,gCAAAZ,EAAAlG,GAGnB,QAAK2wE,GAAoBzqE,GACzB,GAAKlG,IACAoN,SACAi/D,MAAArpE,EAAqBqK,OAI1B,OADArN,GAAK,aAAsB,cACtBgF,EAAAgnE,KAAAhpE,EAAmB8D,SAAA,6BAAAZ,EAAAlG,GAGxB,QAAK4wE,GAAe1qE,GACpB,GAAKlG,IACAoN,SAuLOi/D,MAASrpE,EAAWqK,OAI5B,OAvLJrN,GAAK,aAAsB,cAuLhBgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,EAAKlG,GAG5E,QAAS6wE,GAAoB3qE,GACzB,GAAIlG,IArLJoN,SACAi/D,MAASrpE,EAAAqK,OA0LT,OADArN,GAAO,aAAkB,cAClBgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,EAAKlG,GAI5E,QAAS8wE,GAAwBhwC,EAAWqmB,GArL5C,MAASniD,GAAAupE,IAAAvrE,EAAmB8D,SAAA,mCAAAg6B,EAAA,eAAAqmB,EAAAnnD,GAI5B,QAAS+wE,GAAAjwC,EAAsByB,GAC3B,MAAOv9B,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAAg6B,EAAoC,iBAAIyB,EAAAviC,GAGnF,QAASgxE,GAAAC,EAAAjoE,GACL,MAAOhE,GAAMupE,IAAIvrE,EAAW8D,SAAW,sBAAAmqE,EAAA,SAAAjoE,EAAoDhJ,GAG/F,QAASkxE,GAAAD,EAAAjoE,GACL,MAAOhE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAAmqE,EAAA,SAAgDjoE,EAAAhJ,GAG3F,QAASmxE,GAAAjrE,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,yBAAAZ,EAAAlG,GAlQ3CkL,KAAIojE,wBAAWA,EACfpjE,KAAIikE,2BAAaA,EAuLjBjkE,KAAKokE,8BAAgCA,EArLrCpkE,KAAKqkE,uBAAQA,EACbrkE,KAAKskE,sBAAaA,EAClBtkE,KAAKukE,2BAASA,EACdvkE,KAAKwkE,2BAAuBA,EAC5BxkE,KAAKykE,kBAAAA,EAuLLzkE,KAAK2kE,qBAAuBA,EArL5B3kE,KAAA4kE,gBAAAA,EAuLA5kE,KAAK2sB,eAAiBA,EArLtB3sB,KAAAgtB,iBAAgBA,EAuLhBhtB,KAtLI6jE,gBAAWA,EAuLf7jE,KAtLI8jE,kBAAmBA,EAuLvB9jE,KAtLIgkE,0BAA6BA,EAuLjChkE,KAtLIwjE,uCAAgCA,EAuLpCxjE,KAtLIyjE,mCAAkCA,EAuLtCzjE,KAtLI6kE,kBAAgBA,EAuLpB7kE,KAAK8kE,kBAtLcA,EAuLnB9kE,KAAK2jE,iBAtLkBA,EAuLvB3jE,KAAK0kE,mBAAqBA,EAC1B1kE,KAAK+kE,WAtLGA,EAuLR/kE,KAAK0jE,qBAtLkBA,EAuLvB1jE,KAAKglE,mBAAqBA,EAC1BhlE,KAAKslE,YAAcA,EACnBtlE,KAAKilE,cAAgBA,EArLrBjlE,KAAAklE,WAAeA,EAuLfllE,KAtLImlE,kBAAeA,EAuLnBnlE,KAAKolE,0BAA4BA,EACjCplE,KAtLIqlE,eAAeA,EAuLnBrlE,KAAKulE,mBAAqBA,EAC1BvlE,KAtLIsjE,eAAWA,EAuLftjE,KAAKujE,sBAtLkBA,EAuLvBvjE,KAAKwlE,oBAAsBA,EAC3BxlE,KAAKylE,iBAtLkBA,EAwLvBzlE,KAAK4lE,wBAtLkBA,EAuLvB5lE,KAAK6lE,aAAeA,EACpB7lE,KAAK8lE,WAtLOA,EAuLZ9lE,KAAK0lE,oBAtLeA,EAyLpB1lE,KAAKgmE,aAtLeA,EAuLpBhmE,KAAK2lE,oBAtLeA,EAwLpB3lE,KAAKimE,eAtLgBA,CA0LrB,IAAInxE,IACAoN,SArLJi/D,MAASrpE,EAAWqK,QA4HxBhO,QArLAC,OAAA,uBAuLK8U,QAAQ,iBAAkBqe,GAE/BA,EAtLQ65C,SAAS,QAAA,kBAicrB,WAEI,YAQA,SAtLQtmB,GAAkBhhD,EAAWhC,GAmNjC,QAASouE,GAAUlrE,GACf,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAqBZ,EAAKlG,GAGtE,QAASqxE,GAAanrE,GAClB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAGhF,QAASsxE,GAAQprE,GACb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuBZ,EAAKlG,GAGxE,QAASuxE,GAAkBrrE,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GAErF,QAtLIwxE,GAAatrE,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAIhF,QAASktB,GAAyBhnB,GAC9B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG5F,QAASyxE,GAAyBvrE,GAC9B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmCZ,EAAKlG,GAGpF,QAAS0xE,GAAWxrE,GAChB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAG9E,QAAS2xE,GAAkBzrE,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GAGlF,QAASgwB,GAAkB4hD,GACvB,MAAO5sE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAyB8qE,EAAQ5xE,GAG7E,QAAS2uB,GAAgBzoB,GACrB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAAS6xE,GAAM3rE,GACX,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,EAAKlG,GAGzE,QAASivB,GAAS/oB,GACd,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,EAAKlG,GAO5E,QAASsgE,GAASp6D,GACd,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,EAAKlG,GAG5E,QAtLQ8xE,GAAS5rE,GAuLb,MAAOlB,GAtLCgnE,KAAShpE,EAAW8D,SAAA,wBAAAZ,EAAAlG,GAyLhC,QAtLI+xE,GAAyBC,GACzB,MAAOhtE,GAAMitE,IAAAjvE,EAAK8D,SAAW,wBAAWkrE,EAAAhyE,GAG5C,QAASkyE,GAAAhsE,GACL,GAAIlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAwLxBk/D,aAAc,cApLlB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAAAZ,EAAAlG,GA0L5C,QAtLQmyE,GAASjsE,GAuLb,MAtLIlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,yCAAAZ,EAAAlG,GAwLjB,QAASoyE,GAAqBlsE,GAC1B,GAAIlG,IArLJoN,SACOi/D,MAAMrpE,EAAKqK,OAwLdk/D,aAAc,cApLlB,OAAIvnE,GAASgnE,KAAAhpE,EAAA8D,SAAA,2CAAAZ,EAAAlG,GAiEjBkL,KAAKmmE,aAAeA,EACpBnmE,KAAKgiB,yBAA2BA,EArLhChiB,KAAAumE,yBAA2BA,EAuL3BvmE,KAtLIqmE,kBAAiBA,EAuLrBrmE,KAAKmnE,mBAAqBX,EAC1BxmE,KAAKymE,kBAAoBA,EArLzBzmE,KAAA6mE,qBAASA,EAuLT7mE,KAtLIyjB,gBAAiBA,EAuLrBzjB,KAAK8kB,kBAAoBA,EACzB9kB,KAAK2mE,MAAQA,EArLb3mE,KAAA+jB,SAASA,EAuLT/jB,KAtLIo1D,SAAOA,EAuLXp1D,KAAK4mE,UAAYA,EACjB5mE,KAAKinE,wBAA0BA,EAE/BjnE,KAtLIgnE,WAAaA,EAuLjBhnE,KAAKkmE,UAAUA,EACflmE,KAAKsmE,YAAaA,EArLlBtmE,KAAAomE,QAASA,EAuLTpmE,KAtLIknE,qBAAkBA,CAGtB,IAAApyE,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QA/BhChO,QArLIC,OAAA,2BAuLC8U,QAtLG,uBAA4B4xC,GAwLpCA,EAAqBsmB,SAAW,QAAS,iBA8H7C,WAEI,YAQA,SAtLQgG,GAAkBttE,EAAAhC,GAmBtB,QAASuvE,GAAarsE,GAClB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,6CAAsCZ,EAAAlG,GAGjF,QAASwyE,GAAWtsE,GAChB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,+CAAiDZ,EAAAlG,GAG5F,QAASyyE,GAAavsE,GAClB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,gCAA0BZ,EAAAlG,GAGrE,QAAS0yE,GAAexsE,GACpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA+BZ,EAAAlG,GAyL3E,QAAS2yE,GAAmBzsE,GACxB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGrF,QAAS4yE,GAAoB1sE,GArLjC,MAAAlB,GAAAitE,IAAAjvE,EAAA8D,SAAA,oCAAAZ,EAAAlG,GAyLI,QAtLQ6yE,GAAA3sE,GACP,MAAQlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,oCAAAZ,EAAAlG,GAyLjC,QAAS8yE,GAAoB5sE,GArLjC,MAASlB,GAAAgnE,KAAAhpE,EAA4B8D,SAAA,qCAAYZ,EAAAlG,GAG7C,QAAK+yE,GAAA7sE,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,4CAAAZ,EAAAlG,GAGxB,QAAKgzE,GAAuB9sE,GAC5B,MAAKlB,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,+CAAAZ,EAAAlG,GAgIvBkL,KAAKqnE,oBAAsBA,EArL3BrnE,KAAAunE,oBAASA,EAuLTvnE,KAtLIsnE,sBAAaA,EAuLjBtnE,KAAK6nE,mBAtLYA,EAuLjB7nE,KAAKwnE,kBAtLgBA,EAuLrBxnE,KAAK8nE,sBAAwBA,EAC7B9nE,KAAK2nE,mBAAqBA,EAC1B3nE,KAtLI4nE,oBAAOA,EAuLX5nE,KAtLIynE,mBAAkBA,EAuLtBznE,KAAK0nE,oBAAsBA,CAE3B,IAAI5yE,IArLJoN,SACIi/D,MAAarpE,EAAIqK,QAiKzBhO,QACKC,OAtLO,wBAuLP8U,QAAQ,qBAtLYk+D,GAwLzBA,EAAmBhG,SAAW,QAAS,iBAgE3C,WAEI,YAQA,SAtLQ2G,GAASjwE,EAAAgC,GAyMb,QAAS+qD,GAAUiiB,GApLf,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BkrE,EAAKhyE,GAwLhF,QAASgwD,GAAcgiB,GApLvB,MAAShtE,GAAAgnE,KAAAhpE,EAAA8D,SAA8B,oCAAAkrE,EAAAhyE,GAwLvC,QAASowD,GAAe4hB,GACpB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCkrE,EAAKhyE,GAIrF,QAASwwD,GAAkBwhB,GApLvB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAkCkrE,EAAAhyE,GAG9E,QAAS0wD,GAAAshB,GACL,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAAkrE,EAAiChyE,GA0L7E,QAtLI6wD,GAAamhB,GAuLb,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCkrE,EAAKhyE,GAzCjFkL,KAAK6kD,UAAYA,EACjB7kD,KAAK8kD,cAAgBA,EACrB9kD,KAAKklD,eAAiBA,EArLtBllD,KAAAslD,kBAAwBA,EAuLxBtlD,KAtLIwlD,WAAaA,EAuLjBxlD,KAAK2lD,WAAaA,CAGlB,IAtLI7wD,IAuLAoN,SACIi/D,MAASrpE,EAAWqK,QAlBhChO,QArLIC,OAAK,4BACL8U,QAAK,sBAAuB6+D,GAwLhCA,EAAoB3G,SAAW,aAAc,YAyDjD,WAEI,YAQA,SAtLIrvD,GAAmBjY,EAAKhC,GA0MxB,QAtLI4mB,GAAajpB,GAEjB,MAqLIX,GAAOoN,QAAQ,gBAAkBxM,OArL5BoE,EAAAgnE,KAAAhpE,EAAqB8D,SAAK,sBAAAnG,EAAAX,GAyLnC,QAAS6pB,GAtLYqpD,GAuLjB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,qBAAsB9G,GAGjE,QAtLI+pB,GAAkBD,GAuLlB,MAAO9kB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uBAAwB9G,GAGnE,QAASkqB,GAAeD,GACpB,MAAOjlB,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAA+B9G,GAnL9E,QAAAmzE,KAuLQ,MAAOnuE,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAgC9G,GAG3E,QAtLSu1D,GAAAzhC,GAuLL,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,sBAAuBgtB,EAAI9zB,GAItE,QAASksB,GAAW3B,GApLpB,MADAvqB,GAAKoN,QAAA,gBAAsBxM,OACtBoE,EAAAgnE,KAAAhpE,EAAsB8D,SAAA,iBAAAyjB,EAAAvqB,GAG3B,QAAKgsB,GAAAzB,GACL,MAAKvlB,GAAAitE,IAAAjvE,EAAwB8D,SAAA,iBAAAyjB,KAAAvqB,GAG7B,QAAKurB,GAAAuI,GACL,MAAK9uB,GAAAouE,OAAApwE,EAAsB8D,SAAA,kBAAAgtB,EAAA9zB,GAyL3B,QAtLImsB,GAAS2H,GAuLT,MAtLI9uB,GAASgnE,KAAAhpE,EAAW8D,SAAA,wBAAAgtB,KAAA9zB,GAyL5B,QAASqd,GAAmB6oB,GAIxB,MAAOlhC,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAAgCo/B,GAlE3Eh7B,KAtLIghB,WAAaA,EAuLjBhhB,KAAK8gB,YAAcA,EACnB9gB,KAAKqgB,cAAgBA,EArLrBrgB,KAAA2e,cAASA,EAuLT3e,KAtLIioE,iBAAiBA,EAuLrBjoE,KAAK6e,gBAAkBA,EACvB7e,KAAKgf,eAAiBA,EACtBhf,KAtLEihB,oBAAyBA,EAuL3BjhB,KAtLImS,mBAAaA,EAuLjBnS,KAAK0e,WAtLYA,EAuLjB1e,KAAKqqD,kBAtLgBA,CAyLrB,IAAIv1D,IArLAoN,SAuLIi/D,MAASrpE,EAAWqK,QAtBhChO,QACKC,OAAO,uBArLR8U,QAAS,iBAAc6I,GAwL3BA,EAAeqvD,SAAW,QAAS,iBAyEvC,WAEI,YAQA,SAtLQ+G,GAAiBruE,EAAWhC,GAuMhC,QAASswE,GAAyBC,GAC9B,MAAOvuE,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA4C9G,GAGvF,QAASwzE,GAA4BD,GACjC,MAAOvuE,GAAMupE,IAAIvrE,EAAW8D,SAAW,qDAAsD9G,GAGjG,QAASyzE,GAAsBC,GArLtC,MAAY1uE,GAAAgnE,KAAAhpE,EAAA8D,SAAA,4BAAA4sE,EAAA1zE,GAyLL,QAAS2zE,GAAuBD,GArLpC,MAAA1uE,GAAAitE,IAAAjvE,EAAA8D,SAAA,4BAAA4sE,EAAA1zE,GAyLI,QAAS4zE,GAAyB9/C,GArLtC,MAAA9uB,GAAoBouE,OAAApwE,EAAW8D,SAAc,6BAAAgtB,EAAA9zB,GAyLzC,QAAS6zE,GAA0BH,GArLnC,MAAK1uE,GAAYouE,OAAApwE,EAAA8D,SAAA,8CAAA9G,GAGjB,QAAK8zE,GAAoBhgD,GACzB,MAAK9uB,GAAAgnE,KAAahpE,EAAA8D,SAAA,mCAAAgtB,EAAA9zB,GAyLhB,QAAS+zE,GAA6B7tE,GArLpC,GAAAlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAwLpBk/D,aAAc,cAElB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiDZ,EAAKlG,GAnDlGkL,KAAKuoE,sBAAwBA,EAC7BvoE,KAAKyoE,uBAAyBA,EArL9BzoE,KAAA0oE,yBAA6BA,EAuL7B1oE,KAtLIooE,yBAA4BA,EAuLhCpoE,KAAK2oE,0BAA4BA,EACjC3oE,KAAKsoE,4BAA8BA,EArLnCtoE,KAAA4oE,+BAAiCA,EAuLjC5oE,KAtLI6oE,6BAA6BA,CAGjC,IAAA/zE,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QAnBhChO,QArLIC,OAAA,gCAuLC8U,QAtLG,4BAA6Bi/D,GAwLrCA,EAA0B/G,SAAW,QAAS,iBA2DlD,WAEI,YAQA,SAAS0H,GAAqBhvE,EAAOhC,GAtIjC,QAAI+mB,KACA,MAAA/kB,GAASupE,IAAAvrE,EAAA8D,SAAA,0BAAA9G,GAyLb,QAASi0E,GAA4BhgD,GACjC,MAAOjvB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uCAAyCmtB,EAAcj0B,GAGlG,QAtLIk0E,GAAkBC,GAuLlB,MAAOnvE,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAoCqtE,EAAgBn0E,GAG/F,QAtLIo0E,GAAiBtgD,GAuLjB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAiCgtB,EAAI9zB,GAGhF,QAtLIq0E,KAuLA,MAAOrvE,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAA0B9G,GAGrE,QAtLIs0E,KAuLA,MAAOtvE,GAAMupE,IAAIvrE,EAAW8D,SAAW,sCAAuC9G,GAGlF,QAtLIu0E,KAuLA,MAAOvvE,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAiC9G,GAG5E,QAtLIw0E,KAuLA,MAAOxvE,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA6B9G,GAnLxE,QAASy0E,GAAW3gD,GAChB,MAAO9uB,GAAAitE,IAAQjvE,EAAA8D,SAAkB,8BAAAgtB,EAAA9zB,GAyLrC,QAAS6xE,GAAM/9C,GArLf,MAAS9uB,GAAAitE,IAAYjvE,EAAS8D,SAAA,oBAAAgtB,EAAA9zB,GAyL9B,QAAS00E,GAAS5gD,GArLlB,MAAS9uB,GAAAitE,IAAAjvE,EAAkB8D,SAAA,uBAAAgtB,EAAA9zB,GAyL3B,QAAS+uB,GAAQ+E,GArLjB,MAAS9uB,GAAAitE,IAAAjvE,EAAoB8D,SAAI,uBAAAgtB,EAAA9zB,GAyLjC,QAASgwB,GAAkB3sB,GArL3B,MAAS2B,GAAAitE,IAAAjvE,EAAmB8D,SAAW,oBAAAzD,EAAArD,GA0LvC,QAtLI20E,KAuLA,MAAO3vE,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAgC9G,GAnLlF,QAAW40E,GAAArkD,GAuLA,GAAIvwB,IArLZoN,SAEAi/D,MAAArpE,EAAAqK,OAQI,OADArN,GAAKoN,QAAA,gBAAwBxM,OACxBoE,EAAAgnE,KAAAhpE,EAAyB8D,SAAA,4BAAAypB,EAAAvwB,GAG9B,QAAK60E,GAAAtkD,GACL,GAAKvwB,IACAoN,SACAi/D,MAAArpE,EAAAqK,OAID,OADArN,GAAAoN,QAAS,gBAAAxM,OACToE,EAASgnE,KAAAhpE,EAAA8D,SAAA,2BAAAypB,EAAAvwB,GAyLb,QAAS80E,GAAuBvkD,GAC5B,GAAIvwB,IArLRoN,SACWi/D,MAAUrpE,EAAWqK,OAI5B,OADJrN,GAASoN,QAAA,gBAA4BxM,OAC1BoE,EAAMgnE,KAAIhpE,EAAW8D,SAAW,0CAAAypB,EAAsDvwB,GAGjG,QAAS+0E,GAAAxkD,GACL,GAAAvwB,IAuLIoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAC1BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCypB,EAAYvwB,GAG9F,QAASg1E,GAAczkD,GACnB,GAAIvwB,IArLRoN,SACWi/D,MAAMrpE,EAAOqK,OAIpB,OADJrN,GAASoN,QAAA,gBAAAxM,OACEoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAAypB,EAAyCvwB,GA0LrF,QAtLQi1E,GAAS1kD,GAuLb,GAtLIvwB,IAuLAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OAvLArN,GAAOoN,QAAM,gBAAgBxM,OAuLtBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCypB,EAAYvwB,GAlLvG,QAAWk1E,GAAA3kD,GAuLA,GAAIvwB,IArLZoN,SAuLgBi/D,MAASrpE,EAAWqK,OAI5B,OAvLHrN,GAAQoN,QAAA,gBAAwBxM,OAuLtBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CypB,EAAYvwB,GAnLvG,QAASm1E,GAAqB5kD,GAC1B,GAAKvwB,IAuLGoN,SArLHi/D,MAAArpE,EAAmBqK,OAIxB,OADArN,GAAKoN,QAAA,gBAAuBxM,OACvBoE,EAAAgnE,KAAAhpE,EAAwB8D,SAAA,yCAAAypB,EAAAvwB,GAI7B,QAAKo1E,GAAoB7kD,GACzB,GAAKvwB,IACAoN,SACLi/D,MAAArpE,EAAAqK,OAIA,OADArN,GAAKoN,QAAA,gBAAuBxM,OACvBoE,EAAAgnE,KAAAhpE,EAAoB8D,SAAA,wCAAAypB,EAAAvwB,GAGzB,QAAKo1E,GAAoB7kD,GACzB,GAAKvwB,IACAoN,SACAi/D,MAAArpE,EAAsBqK,OAI3B,OADArN,GAAKoN,QAAA,gBAA2BxM,OAC3BoE,EAAAgnE,KAAAhpE,EAAwB8D,SAAA,wCAAAypB,EAAAvwB,GAG7B,QAAKq1E,GAAU9kD,GACf,GAAKvwB,IACAoN,SAuLOi/D,MAASrpE,EAAWqK,OAlL5B,OADArN,GAAAoN,QAAS,gBAAAxM,OACToE,EAASgnE,KAAAhpE,EAAA8D,SAAA,qCAAAypB,EAAAvwB,GAyLb,QAASs1E,GAAsB/kD,GAC3B,GAAIvwB,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAlLhC,OAqLIrN,GAAOoN,QAAQ,gBAAkBxM,OArL5BoE,EAAAgnE,KAAAhpE,EAAkB8D,SAAA,yCAAAypB,EAAAvwB,GAyL3B,QAASu1E,GAAoBhlD,GArL7B,GAAAvwB,IACIoN,SAuLQi/D,MAASrpE,EAAWqK,OAI5B,OAvLArN,GAAOoN,QAAM,gBAAexM,OAuLrBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCypB,EAAYvwB,GAIhG,QAASw1E,GAAkBjlD,GACvB,GAAIvwB,IArLRoN,SACWi/D,MAAUrpE,EAAWqK,OAI5B,OADJrN,GAASoN,QAAA,gBAAAxM,OACEoE,EAAMgnE,KAAIhpE,EAAW8D,SAAW,qCAAuCypB,EAAAvwB,GAGlF,QAASy1E,GAAwBllD,GAC7B,GAAAvwB,IAuLIoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAC1BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4CypB,EAAYvwB,GAIpG,QAAS01E,GAAiBnlD,GArL1B,MAASvrB,GAAMitE,IAAIjvE,EAAA8D,SAAA,oBAAAypB,EAAAvwB,GAyLnB,QAAS21E,GAAiB7hD,GArL1B,MAAS9uB,GAAAouE,OAAapwE,EAAA8D,SAAA,qBAAAgtB,EAAA9zB,GAyLtB,QAAS41E,GAAuB9hD,GArLhC,MAAS9uB,GAAQgnE,KAAIhpE,EAAA8D,SAAA,2BAAAgtB,KAAA9zB,GAjRrBkL,KAAA0pE,cAASA,EAwLT1pE,KAtLIyqE,iBAAkBA,EAuLtBzqE,KAAK6e,gBAAkBA,EACvB7e,KAAK0qE,uBAAyBA,EArL9B1qE,KAAAypE,qBAAyBA,EAuLzBzpE,KAtLImpE,sBAAkBA,EAuLtBnpE,KAAK2pE,cAAgBA,EACrB3pE,KAAK+oE,4BAA8BA,EACnC/oE,KAAK4pE,uBAAyBA,EArL9B5pE,KAAA6pE,kBAAyBA,EAuLzB7pE,KAtLI8pE,cAAaA,EAuLjB9pE,KAAK+pE,oBAAsBA,EAE3B/pE,KAAKgqE,uBAAyBA,EAC9BhqE,KAAKiqE,sBAAwBA,EAC7BjqE,KAAKkqE,qBAAuBA,EAC5BlqE,KAAKmqE,kBAAoBA,EACzBnqE,KAAKoqE,sBAAwBA,EAC7BpqE,KAAKqqE,oBAAsBA,EAC3BrqE,KAAKsqE,kBAAoBA,EACzBtqE,KAAKuqE,wBAA0BA,EAC/BvqE,KAAKkpE,YAAcA,EArL1BlpE,KAAWgpE,oBAAAA,EAuLJhpE,KAAKwqE,iBAAmBA,EArL5BxqE,KAAAopE,mCAAAA,EAuLIppE,KAAKspE,yBAA2BA,EArLpCtpE,KAAAqpE,sBAAAA,EAuLIrpE,KAtLCupE,gBAAOA,EAuLRvpE,KAtLC2mE,MAAQA,EAuLT3mE,KAAK6jB,QAAUA,EArLnB7jB,KAAAwpE,SAAeA,EAuLXxpE,KAAK8kB,kBAAoBA,CAlLzB,IAAAhwB,IACAoN,SACKi/D,MAAArpE,EAAmBqK,QAyI5BhO,QACKC,OAAO,0BArLR8U,QAAS,uBAAoB4/D,GAwLjCA,EAAqB1H,SAAW,QAAS,iBAwR7C,WAEI,YAQA,SAtLQp8C,GAAalrB,EAAAhC,KA+LboK,SArLAi/D,MAAOrpE,EAAQqK,SAsKvBhO,QArLIC,OAAA,iCAuLC8U,QAtLG,2BAA4B8b,GAwLpCA,EAAyBo8C,SAAW,QAAS,iBAkCjD,WAEI,YAQA,SAASuJ,GAA6B7wE,EAAOhC,GAoBzC,QAtLI8yE,GAAkBn1E,GAuLlB,GAAIX,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GAtLIoN,QAAS,gBAAAxM,OAuLNoE,EAtLCgnE,KAAShpE,EAAW8D,SAAA,uCAAAnG,EAAAX,GAiMhC,QAAS+1E,KACL,MAAO/wE,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAqC9G,GAGhF,QAASg2E,GAAelnD,GACpB,MAAO9pB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCgoB,EAAS9uB,GAGrF,QAtLQi2E,GAASnnD,GAuLb,MAtLI9pB,GAASgnE,KAAAhpE,EAAA8D,SAAA,oCAAAgoB,EAAA9uB,GAyLjB,QAASk2E,GAAYpnD,GApLjB,GAAAqnD,IAuLI/oE,SACIi/D,MAASrpE,EAAWqK,OAK5B,OADA8oE,GAtLQ/oE,QAAS,gBAAWxM,OAuLrBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCgoB,EAASqnD,GAG3F,QAtLIC,GAAkBtnD,GAuLlB,MAAO9pB,GAAMitE,IAAIjvE,EAAW8D,SAAW,0BAA2BgoB,EAAS9uB,GAG/E,QAtLQq2E,GAASvnD,GAuLb,MAtLI9pB,GAASgnE,KAAAhpE,EAAA8D,SAAA,6CAAAgoB,EAAA9uB,GA0MjB,QAtLQs2E,GAASv1E,GAuLb,MAAOiE,GAtLCouE,OAASpwE,EAAW8D,SAAA,kCAAA/F,EAAAf,GA+FhCkL,KAAK6qE,oBAAsBA,EArL3B7qE,KAAA8qE,eAASA,EAuLT9qE,KAtLI+qE,iBAAaA,EAuLjB/qE,KAAKgrE,YAtLYA,EAwLjBhrE,KAAKkrE,aAAeA,EACpBlrE,KAAK4qE,mBAAqBA,EAC1B5qE,KAtLImrE,wBAAeA,EAyLnBnrE,KAAKorE,gBAAgBA,CAGrB,IAtLIt2E,IAuLAoN,SACIi/D,MAtLIrpE,EAASqK,QAgKzBhO,QACKC,OAAO,qCACP8U,QAAQ,+BAAgCyhE,GAE7CA,EAtLuBvJ,SAAA,QAAkB,iBAqR7C,WAEI,YAQA,SAtLQjnC,GAAkBrgC,EAAAhC,GA0MtB,QAASsiC,GAAkBloB,GACvB,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAA+BsW,EAAWpd,GAGrF,QAASu2E,GAAqBrD,GAC1B,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAmC9G,GAG9E,QAASw2E,GAAetD,GArL5B,MAAAluE,GAAAupE,IAAAvrE,EAAA8D,SAAA,kBAAA9G,GAyLI,QAtLQy2E,GAAAvD,GACP,MAAQluE,GAAAupE,IAAAvrE,EAAA8D,SAA4B,qBAAA9G,GAyLrC,QAASomC,GAAUF,EAAUJ,EAAKhS,GArLtC,MAAS9uB,GAAAupE,IAAAvrE,EAAyB8D,SAAO,0BAAYo/B,EAAA,SAAAJ,EAAA,OAAAhS,EAAA9zB,GAyLjD,QAAS0mC,GAAc+T,GACnB,MAAOz1C,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAqB2zC,KAAgBz6C,GAGjF,QAASsmC,GAAemU,GArLpB,MAAAz1C,GAASitE,IAAAjvE,EAAA8D,SAAA,oBAAA2zC,EAAAz6C,GAyLb,QAASwmC,GAAiB1S,GACtB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,qBAAuBgtB,EAAI9zB,GAGzE,QAASi3C,GAAyBnjB,GAC9B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uCAAyCgtB,EAAI9zB,GAGxF,QAAS2mC,GAAuB7S,GAC5B,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA6BgtB,KAAQ9zB,GAGjF,QAAS4lC,GAAwB1/B,GAC7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,KAASlG,GA5D3FkL,KAAKw7B,cAAgBA,EACrBx7B,KAAKo7B,eAAiBA,EArLtBp7B,KAAAs7B,iBAASA,EAuLTt7B,KAtLIo6B,kBAAaA,EAuLjBp6B,KAAKurE,kBAtLYA,EAuLjBvrE,KAAKsrE,eAtLgBA,EAuLrBtrE,KAAKqrE,qBAAuBA,EAC5BrrE,KAAKy7B,uBAAyBA,EAC9Bz7B,KAtLI+rC,yBAAeA,EAuLnB/rC,KAtLI06B,wBAAkBA,EAuLtB16B,KAAKk7B,UAAYA,CAnLjB,IAAApmC,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QAtBhChO,QACKC,OAtLO,0BAuLP8U,QAAQ,qBAtLYixB,GAwLzBA,EAAmBinC,SAAW,QAAS,iBAoE3C,WAEI,YAQA,SAAS31B,GAAmB3xC,EAAOhC,GA4B/B,QAASs2C,GAAgBxlB,GArLrB,MAAO9uB,GAAAupE,IAAQvrE,EAAA8D,SAAkB,+BAAAgtB,EAAA9zB,GAyLrC,QAAS42C,GAAkB1Q,GACvB,MAAOlhC,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAiCo/B,EAAWlmC,GAGvF,QAASo3C,GAAcs/B,GACnB,MAAO1xE,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAA+B4vE,EAAO12E,GAGjF,QAASg4C,GAAe0C,GArLxB,MAAS11C,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,qBAAA4zC,EAAA16C,GAyL/B,QAAS+3C,GAAgB2C,GArLzB,MAAS11C,GAAAitE,IAAAjvE,EAAe8D,SAAS,qBAAA4zC,EAAA16C,GAyLjC,QAAS63C,GAAkB/jB,GArL3B,MAAS9uB,GAAAouE,OAAApwE,EAA0B8D,SAAA,sBAAAgtB,EAAA9zB,GAyLnC,QAASi4C,GAAwBnkB,GArLjC,MAAS9uB,GAAAgnE,KAAYhpE,EAAS8D,SAAA,4BAAAgtB,KAAA9zB,GAmI9BkL,KAAK8sC,eAAiBA,EArL1B9sC,KAAS6sC,gBAAAA,EACL7sC,KAAK2sC,kBAAAA,EACL3sC,KAAK0rC,kBAAiBA,EAItB1rC,KAAK+sC,wBAAeA,EACpB/sC,KAAKouC,gBAAAA,EACLpuC,KAAKksC,cAAAA,CAGL,IAAAp3C,IAuLIoN,SACIi/D,MAASrpE,EAAWqK,QAtBhChO,QArLAC,OAAA,2BAuLK8U,QAAQ,qBAAsBuiC,GAEnCA,EAtLY21B,SAAA,QAAA,iBAkPhB,WAEI,YAQA,SAASqK,GAAkB3xE,EAAOhC,GAiB9B,QAAS4zE,GAAcC,GACnB,MAAO7xE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+B+vE,EAAY72E,GAEvF,QAAS82E,GAAeD,GACpB,MAAO7xE,GAAMitE,IAAIjvE,EAAW8D,SAAW,8BAA+B+vE,EAAY72E,GAGtF,QAAS+2E,GAAiBjjD,GACtB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,+BAAiCgtB,EAAI9zB,GAnL1F,QAAYg3E,KAuLD,MAAOhyE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wCAAyC9G,GAnLxF,QAAAi3E,GAAAnjD,GACK,MAAO9uB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,qCAAAgtB,KAAA9zB,GAGZ,QAAAk3E,GAA8BhxE,GAuLtB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iDAAkDZ,EAAKlG,GAnCnGkL,KAtLI0rE,cAAaA,EAuLjB1rE,KAAK4rE,eAAiBA,EACtB5rE,KAAK6rE,iBAAmBA,EACxB7rE,KAAK+rE,uBAAyBA,EAC9B/rE,KAAK8rE,iBAAmBA,EACxB9rE,KAAKgsE,yBAA2BA,CAGhC,IAAIl3E,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OAAO,6BACP8U,QAAQ,oBAAqBuiE,GAElCA,EAtLerK,SAAU,QAAW,iBAkOxC,WAEI,YAQA,SAtLQ6K,GAASnyE,EAAAhC,GA2Mb,QAASo0E,GAAgBC,GArLzB,MAASryE,GAAAgnE,KAAUhpE,EAAU8D,SAAS,sBAAAuwE,EAAAr3E,GAwLtC,QAASs3E,GAAiBD,GACtB,MAAOryE,GAAMitE,IAAIjvE,EAAW8D,SAAW,sBAAuBuwE,EAAcr3E,GAGhF,QAASu3E,GAAmBzjD,GACxB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,uBAAyBgtB,EAAI9zB,GAG3E,QAASw3E,KACL,MAAOxyE,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAmC9G,GAG9E,QAASy3E,GAA4BvxE,GACjC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4CZ,EAAKlG,GAjL7F,QAAS03E,GAAAxxE,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAiCZ,EAAIlG,GAGjF,QAAS23E,GAAAzxE,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAAZ,EAAsClG,GAyLlF,QAAS43E,GAAmB1xE,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmCZ,EAAKlG,GAnLxF,QAAA63E,GAAA/jD,GAuLQ,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA+BgtB,KAAQ9zB,GArDnFkL,KAAKksE,gBAtLYA,EAuLjBlsE,KAAKosE,iBAAmBA,EACxBpsE,KAAKqsE,mBAAqBA,EAC1BrsE,KAAK2sE,yBAA2BA,EArLhC3sE,KAAAssE,mBAASA,EAuLTtsE,KAtLIusE,4BAA4BA,EAwLhCvsE,KAAKwsE,kBAAoBA,EArLzBxsE,KAAAysE,qBAASA,EAuLTzsE,KAtLI0sE,mBAAiBA,CAGrB,IAAA53E,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QAtBhChO,QArLIC,OAAK,6BACL8U,QAAK,sBAA0B+iE,GAwLnCA,EAAoB7K,SAAW,QAAS,iBA8D5C,WApLI,YA8LA,SAASwL,GAAmB9yE,EAAOhC,GAgB/B,QAAS+0E,GAAeC,GACpB,MAAOhzE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBkxE,EAAah4E,GAEjF,QAASi4E,GAAgBD,GArLzB,MAAShzE,GAAAitE,IAAAjvE,EAAoB8D,SAAA,uBAAAkxE,EAAAh4E,GAyL7B,QAASk4E,GAAkBpkD,GArL3B,MAAS9uB,GAAAouE,OAAApwE,EAAkB8D,SAAW,wBAAAgtB,EAAA9zB,GAyLtC,QAASm4E,KArLT,MAASnzE,GAAAupE,IAAAvrE,EAAqB8D,SAAA,kCAAA9G,GAyL9B,QAASo4E,GAAwBtkD,GArLjC,MAAS9uB,GAAAgnE,KAAAhpE,EAAe8D,SAAa,8BAAAgtB,KAAA9zB,GA9BrCkL,KAAK6sE,eAAAA,EACL7sE,KAAK+sE,gBAAgBA,EAuLrB/sE,KAAKgtE,kBAAoBA,EACzBhtE,KAAKktE,wBAA0BA,EArL/BltE,KAAIitE,mBAASA,CAyLb,IAAIn4E,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAjBhChO,QArLIC,OAAK,6BACL8U,QAAK,qBAAoB0jE,GAwL7BA,EAAmBxL,SAAW,QAAS,iBAwC3C,WAEI,YAQA,SAAS+L,GAAoBrzE,EAAOhC,GA0ChC,QAASs1E,GAAiBzB,GACtB,GAAI72E,IArLRoN,SACWi/D,MAAMrpE,EAAKqK,OA2LlB,OAxLJrN,GAASoN,QAAA,gBAAyBxM,OAwLvBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwB+vE,EAAY72E,GAGhF,QAASu4E,GAAiB1B,GArLjC,GAAY72E,IAuLGoN,SArLZi/D,MAAArpE,EAAAqK,OA2LQ,OAxLHrN,GAAOoN,QAAA,gBAAAxM,OAwLGoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkC+vE,EAAY72E,GAE1F,QAASw4E,GAAkBC,GArL/B,MAASzzE,GAAAitE,IAAAjvE,EAA2B8D,SAAA,+BAAY2xE,EAAAz4E,GAG5C,QAAK04E,GAAmB5kD,GACxB,MAAK9uB,GAAAouE,OAAApwE,EAAqB8D,SAAA,wBAAAgtB,EAAA9zB,GAE1B,QAAK24E,GAAqBC,EAAAC,GAC1B,MAAK7zE,GAAAouE,OAAApwE,EAA8B8D,SAAA,gCAAA8xE,EAAA,eAAAC,EAAA74E,GA2LnC,QAAS84E,GAAsBF,GAC3B,MAAO5zE,GAAMupE,IAAIvrE,EAAW8D,SAAW,uCAAyC8xE,EAAc54E,GAIlG,QAAS+4E,GAA4B7yE,GACjC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAA8CZ,EAAKlG,GAE/F,QAASg5E,GAA0BllD,GArLnC,MAAS9uB,GAAAgnE,KAAAhpE,EAAgB8D,SAAc,8BAAAgtB,KAAA9zB,GAGvC,QAASi5E,GAAiBl4E,GACtB,MAAOiE,GAAMupE,IAAIvrE,EAAW8D,SAAW,qCAAqC/F,EAAAf,GA4LhF,QAASk5E,GAAgCplD,GArLzC,MAAS9uB,GAAAupE,IAAAvrE,EAAqB8D,SAAA,iDAAAgtB,KAAA9zB,GAwL9B,QAASm5E,GAAwCrlD,GAC7C,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,wDAA0DgtB,KAAQ9zB,GAG7G,QAASo5E,GAAgCtlD,GACrC,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA2CgtB,KAAQ9zB,GAE9F,QAASq5E,GAAwCvlD,GArLjD,MAAS9uB,GAAAupE,IAAAvrE,EAAsB8D,SAAA,iDAAAgtB,KAAA9zB,GAwL/B,QAASs5E,GAAsBxlD,GAC3B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uCAAyCgtB,KAAQ9zB,GAG5F,QAASu5E,GAAqBC,GAC1B,MAAOx0E,GAAMupE,IAAIvrE,EAAW8D,SAAW,sCAAwC0yE,KAAWx5E,GAO9F,QAASy5E,GAAsC3lD,GAC3C,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA6CgtB,EAAI9zB,GAE5F,QAAS05E,GAAuC5lD,GArLvD,MAAY9uB,GAAAupE,IAAAvrE,EAAA8D,SAAA,oEAAAgtB,EAAA9zB,GAyLL,QAAS25E,GAA4BzzE,GArLzC,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,6CAAAZ,EAAAlG,GA2LI,QAAS45E,GAAyBhI,GArLtC,MAAS5sE,GAAAgnE,KAAAhpE,EAA0B8D,SAAY,uBAAA8qE,EAAA5xE,GAG3C,QAAK65E,GAAkBjI,GACvB,MAAK5sE,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,sBAAA8qE,EAAA5xE,GAyLzB,QAAS85E,GAAiClI,GACtC,MAAO5sE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgC8qE,EAAQ5xE,GAGpF,QAtLQ+5E,GAAoBnB,EAAAp1C,GAuLxB,MAAOx+B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAA0C8xE,EAAe,SAAWp1C,EAAMxjC,GAGtH,QAASg6E,GAA4BpB,EAAcp1C,GArLnD,MAASx+B,GAAAgnE,KAAAhpE,EAAe8D,SAAa,gDAAA8xE,EAAA,SAAAp1C,EAAAxjC,GA4LrC,QAASi6E,GAAuBrB,EAAcp1C,GArL9C,MAASx+B,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,iCAAA8xE,EAAA,SAAAp1C,KAAAxjC,GAwL/B,QAASk6E,GAA8BtB,EAAcp1C,GACjD,MAAOx+B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAkC8xE,EAAe,SAAWp1C,KAAUxjC,GAMlH,QAtLIm6E,GAAkBj0E,GAuLlB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GAGjF,QAASo6E,GAA0BxB,EAAcp1C,GAC7C,MAAOx+B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAmC8xE,EAAe,SAAWp1C,EAAMxjC,GAnLnH,QAAAq6E,GAAAzB,EAAAp1C,GAuLQ,MAAOx+B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mDAAqD8xE,EAAe,SAAWp1C,EAAMxjC,GAGjI,QAtLSs6E,GAAA1B,EAAuBp1C,GAuL5B,MAAOx+B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAAgC8xE,EAAe,SAAWp1C,EAAMxjC,GAvWnHkL,KAAYotE,iBAAAA,EAuLLptE,KAAKstE,kBAAoBA,EArL7BttE,KAAAwtE,oBAAAA,EAuLIxtE,KAAKytE,sBAAwBA,EArLjCztE,KAAA8tE,0BAAAA,EAwLI9tE,KAtLC6tE,4BAA6BA,EAuL9B7tE,KAAK+tE,oBAAsBA,EArL/B/tE,KAAAguE,gCAAsCA,EAuLlChuE,KAAKkuE,gCAAkCA,EArL3CluE,KAASmuE,wCAAqCA,EAuL1CnuE,KAAKouE,sBAAwBA,EArL7BpuE,KAAKuuE,sCAAgBA,EACrBvuE,KAAK0uE,yBAAiBA,EACtB1uE,KAAK6uE,oBAAmBA,EACxB7uE,KAAK+uE,uBAAyBA,EAC9B/uE,KAAKkvE,0BAAmBA,EACxBlvE,KAAKovE,sBAAAA,EAuLLpvE,KAAK4tE,sBAAwBA,EAC7B5tE,KAAK8uE,4BAA8BA,EArLnC9uE,KAAIiuE,wCAASA,EAuLbjuE,KAtLIivE,sBAASA,EAuLbjvE,KAAK2uE,iBAtLYA;AAuLjB3uE,KAAKmvE,kCAAoCA,EACzCnvE,KAAKyuE,4BAA8BA,EACnCzuE,KAAK4uE,iCAAmCA,EACxC5uE,KAAKwuE,uCAAyCA,EArL9CxuE,KAAAgvE,8BAAmCA,EAuLnChvE,KAtLIquE,qBAAkBA,EAuLtBruE,KAAKqtE,iBAAmBA,CAjLxB,IAAAv4E,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QA5ChChO,QACKC,OAAO,6BArLR8U,QAAS,sBAAAikE,GAwLbA,EAAoB/L,SAAW,QAAS,iBA4L5C,WAEI,YAQA,SAtLSn0B,GAAAnzC,EAAAhC,GAiNL,QAASw1C,GAAiB73C,GArL1B,GAAAX,IACQoN,SACAi/D,MAASrpE,EAAAqK,OAIb,OAqLArN,GAAOoN,QAAQ,gBAAkBxM,OArL1BoE,EAAAgnE,KAAQhpE,EAAA8D,SAAkB,6BAAAnG,EAAAX,GAyLrC,QAAS44C,GAAgBx7B,GACrB,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAA2BsW,EAAWpd,GAEjF,QAtLQu6E,GAASn9D,GAuLb,MAtLIpY,GAASupE,IAAAvrE,EAAA8D,SAAA,uCAAAsW,EAAApd,GAwLjB,QAASw6E,GAAuB1mD,GAC5B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAqCgtB,EAAI9zB,GAEpF,QAASk5C,GAAuBvB,GArL5B,MAAO3yC,GAAMupE,IAAAvrE,EAAK8D,SAAW,gCAAW6wC,EAA8C33C,GAyL1F,QAtLIk/C,GAAiBlG,GAuLjB,GAAIh5C,IACAoN,SArLCi/D,MAAArpE,EAAoBqK,OAIzB,OADJrN,GAASoN,QAAA,gBAAsBxM,OACpBoE,EAAMgnE,KAAAhpE,EAAO8D,SAAW,qBAAWkyC,EAAAh5C,GAyL9C,QAASy8C,GAAag+B,GAClB,MAAOz1E,GAAMitE,IAAIjvE,EAAW8D,SAAW,kBAAmB2zE,EAAUz6E,GAGxE,QAAS21D,GAAiB7hC,GACtB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAA8BgtB,EAAI9zB,GApL7E,QAAS6+C,GAAApc,GACL,MAAOz9B,GAAMouE,OAAKpwE,EAAW8D,SAAW,mBAAA27B,EAAAziC,GAyL5C,QAtLI8+C,GAAkBrc,GAuLlB,MAAOz9B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA2B27B,KAAgBziC,GAGvF,QAtLI06E,GAAiBhlE,EAAA1Q,EAAWhC,EAAWrC,GAuLvC,GAAIX,IArLRoN,SACWutE,eAAU/5E,QAGrB,OAASoE,GAAAgnE,KAAAhpE,EAAA43E,SAAgC,6BAAIj6E,EAAAX,GAO7C,QAASw5C,GAAAjB,GACL,MAAOvzC,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA2CyxC,EAAIv4C,GAyL1F,QAtLI67C,GAAiBl7C,GAuLjB,GAAIX,IArLRoN,SACWutE,eAAU/5E,QAGrB,OAASoE,GAAAgnE,KAAAhpE,EAAqB8D,SAAO,wCAAAnG,EAAAX,GAyLrC,QAAS+7C,GAAqBjoB,GArL9B,MAAS9uB,GAAAouE,OAAApwE,EAAyB8D,SAAA,wCAAAgtB,EAAA9zB,GAyLlC,QAAS25C,GAAiBpB,GArL1B,MAASvzC,GAAAupE,IAAAvrE,EAAA8D,SAAA,kCAA0CyxC,EAAAv4C,GAGnD,QAAS+6C,GAAAp6C,GACL,MAAOqE,GAAMgnE,KAAIhpE,EAAW8D,SAAW,iCAAAnG,EAAAX,GAG3C,QAASk7C,GAAApnB,GACL,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,kCAAAgtB,EAAA9zB,GAjH5CkL,KAAKg0C,YAAAA,EACLh0C,KAAKuxC,aAAAA,EACLvxC,KAAK2zC,eAAAA,EACL3zC,KAAK4zC,qBAAAA,EACL5zC,KAAK0tC,gBAAAA,EACL1tC,KAAKguC,uBAAwBA,EAC7BhuC,KAAKwvE,YAAAA,EACLxvE,KAAKstC,iBAAAA,EACLttC,KAAKsuC,qBAAAA,EACLtuC,KAAKsvE,uBAAmBA,EACxBtvE,KAAK2wC,sBAAAA,EACL3wC,KAAK6wC,qBAAAA,EACL7wC,KAAKyuC,iBAAAA,EACLzuC,KAAK6vC,oBAAAA,EACL7vC,KAAKgwC,iBAAAA,EACLhwC,KAAKyqD,iBAAAA,EACLzqD,KAAKqvE,2BAAmBA,CA0LxB,IAAIv6E,IArLAoN,SACAi/D,MAASrpE,EAAAqK,QAyJjBhO,QArLIC,OAAK,wBACL8U,QAAK,kBAAA+jC,GAwLTA,EAtLSm0B,SAAA,QAAA,iBA8Sb,WAEI,YAQA,SAtLQhtB,GAAkBt6C,EAAWhC,GAqMjC,QAtLI68C,GAAkB3Z,GAuLlB,MAAOlhC,GAAMupE,IAAIvrE,EAAW8D,SAAW,sBAAwBo/B,EAAWlmC,GAR9EkL,KAtLI20C,kBAAkBA,CAuLtB,IAAI7/C,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAjBhChO,QArLIC,OAAA,6BAuLC8U,QAtLG,uBAA6BkrC,GAwLrCA,EAAqBgtB,SAAW,QAAS,iBAwB7C,WACI,YAOA,SAASuO,GAAyB71E,EAAOhC,GA7JrC,QAAK83E,GAAcC,GACnB,MAAK/1E,GAAAgnE,KAAehpE,EAAA8D,SAAA,oCAAAi0E,EAAA/6E,GAGpB,QAAKg7E,GAAkBl6C,EAAAm6C,GACvB,MAAKj2E,GAAAouE,OAAApwE,EAAyB8D,SAAA,qCAAAg6B,EAAA,IAAAm6C,EAAAj7E,GAG9B,QAAK4nD,GAAuB9mB,GAC5B,MAAK97B,GAAAupE,IAAAvrE,EAAwB8D,SAAA,0BAAAg6B,EAAA9gC,GAG7B,QAAKmoD,GAAmBrnB,EAAAxf,GACxB,MAAKtc,GAAAupE,IAAAvrE,EAAsB8D,SAAA,2BAAAg6B,EAAA,IAAAxf,EAAAthB,GAG3B,QAAKsoD,GAA4B4yB,GAuL7B,MAAOl2E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+Bo0E,EAAUl7E,GAnLrF,QAAIwoD,GAASiG,GACT,MAAAzpD,GAASgnE,KAAAhpE,EAAA8D,SAAA,uBAAA2nD,EAAAzuD,GAyLb,QAASmpD,GAAkBqF,GACvB,MAAOxpD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwB0nD,EAAMxuD,GAG1E,QAtLQoyE,GAASlsE,GAuLb,GAAIlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OApL5Bk/D,aAAkB,cAwLlB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yCAA0CZ,EAAKlG,GAlL3F,QAASm7E,GAAAj1E,GACL,GAAAlG,IAuLIoN,SArLCi/D,MAAArpE,EAAuBqK,OAwLxBk/D,aAAc,cApLlB,OAAOvnE,GAAMgnE,KAAIhpE,EAAW8D,SAAW,kCAAkCZ,EAAAlG,GAG7E,QAASo7E,GAAiBl1E,GACtB,GAAIlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAwLxBk/D,aAAc,cApLlB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yCAA2BZ,EAAAlG,GA6NvE,QAASq7E,GAAqBn1E,GAC1B,GAAIlG,IArLJoN,SAuLQi/D,MAASrpE,EAAWqK,OApLhCk/D,aAAS,cAwLL,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GAIxF,QAAS+vD,GAAUiiB,GACf,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAoBkrE,EAAKhyE,GAGrE,QAASowD,GAAe4hB,GACpB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA0BkrE,EAAKhyE,GAG3E,QAASwwD,GAAkBwhB,GACvB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BkrE,EAAKhyE,GAG9E,QAAS0wD,GAAWshB,GArLxB,MAAAhtE,GAAAgnE,KAAAhpE,EAAA8D,SAAA,qBAAAkrE,EAAAhyE,GAyLI,QAtLQ6wD,GAAAmhB,GACP,MAAQhtE,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,qBAAAkrE,EAAAhyE,GAmCjCkL,KAAKi+C,kBAAoBA,EArLzBj+C,KAAA4vE,sBAASA,EAuLT5vE,KAtLI8vE,sBAAkBA,EAuLtB9vE,KAAK08C,qBAAuBA,EAC5B18C,KAAKi9C,sBAAwBA,EArL7Bj9C,KAAAo9C,yBAA+BA,EAuL/Bp9C,KAtLIs9C,0BAA6BA,EAuLjCt9C,KAAKknE,qBAAuBA,EAC5BlnE,KAAKiwE,iBAAmBA,EACxBjwE,KAAKkwE,wBAA0BA,EAC/BlwE,KAAK6kD,UAAYA,EACjB7kD,KAAKklD,eAAiBA,EACtBllD,KAAKslD,kBAAoBA,EArLhCtlD,KAAYwlD,WAAAA,EAuLLxlD,KAAK2lD,WAAaA,EArLtB3lD,KAAAmwE,qBAAAA,CAyLI,IAtLCr7E,IACAoN,SAuLOi/D,MAASrpE,EAAWqK,QA3BhChO,QACKC,OAtLG,gCAuLH8U,QAAQ,2BAA4BymE,GAEzCA,EAtLavO,SAAA,QAA0B,iBAkV3C,WAEI,YAQA,SAASgP,GAAuBt2E,EAAOhC,GAenC,QAASu4E,GAAmBr1E,GArLhC,MAAAlB,GAAAgnE,KAAyBhpE,EAAW8D,SAAS,iCAAAZ,EAAAlG,GAGzC,QAAKw7E,GAAoBt1E,GACzB,MAAKlB,GAAAitE,IAAAjvE,EAAwB8D,SAAA,iCAAAZ,EAAAlG,GAG7B,QAAKy7E,GAAwBv1E,GAC7B,MAAKlB,GAAAgnE,KAAAhpE,EAA2B8D,SAAA,iCAAAZ,EAAAlG,GAGhC,QAAK07E,GAAmB5nD,GACxB,MAAK9uB,GAAAupE,IAAAvrE,EAA0B8D,SAAA,yCAAAgtB,EAAA9zB,GA4J/BkL,KAAKqwE,mBAAqBA,EArL1BrwE,KAAAwwE,sBAA2BA,EAuL3BxwE,KAtLIswE,sBAAiBA,EAuLrBtwE,KAAKuwE,sBAAwBA,CAI7B,IAAIz7E,IArLXoN,SACGi/D,MAAArpE,EAAAqK,QAqKAhO,QACKC,OAAO,wBArLR8U,QAAK,yBAAoBknE,GAwL7BA,EAtLiBhP,SAAA,QAAA,iBA6NrB,WACI,YAOA,SAAS5rB,GAAyB19C,EAAYgC,GAyB1C,QAAS6kB,KArLT,MAAS7kB,GAAAupE,IAAAvrE,EAAqB8D,SAAK,wCAAA9G,GAwLnC,QAtLQqd,GAAS6oB,GAuLb,MAAOlhC,GAtLCupE,IAASvrE,EAAW8D,SAAA,8BAAAo/B,GAyLhC,QAAS4a,GAA2B56C,GArLhC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAA+CZ,EAAAlG,GAyL3F,QAASghD,GAA+B96C,GArLxC,MAASlB,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,mDAAAZ,EAAAlG,GAyL/B,QAASkhD,GAtLuBh7C,GAuL5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iDAAkDZ,EAAKlG,GAGnG,QAtLIshD,GAAkBp7C,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yCAA0CZ,EAAKlG,GAG3F,QAtLQ4hD,GAAS17C,GAuLb,MAtLIlB,GAASitE,IAAAjvE,EAAA8D,SAAA,0CAAAZ,EAAAlG,GAyLjB,QAtLQ6hD,GAAc37C,GAuLlB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGrF,QAAS8hD,GAAmB57C,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GAGzF,QAASoiD,GAAqBl8C,GAC1B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GAGrF,QAASwiD,GAAoBt8C,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6CZ,EAAKlG,GAE9F,QAASuiD,GAAsBr8C,GAC3B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAE5F,QAASyiD,GAAmBv8C,GACxB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GA3PxFkL,KAAA2e,cAASA,EAuLT3e,KAtLImS,mBAAoBA,EAuLxBnS,KAAK41C,2BAA6BA,EAClC51C,KAAK81C,+BAAiCA,EArLtC91C,KAAAg2C,6BAA8BA,EAuL9Bh2C,KAtLIo2C,qBAAiBA,EAuLrBp2C,KAAK22C,gBAAkBA,EACvB32C,KAAK02C,iBAAmBA,EArLxB12C,KAAA42C,mBAASA,EAuLT52C,KAtLIk3C,qBAAiBA,EAuLrBl3C,KAAKs3C,oBAAsBA,EAC3Bt3C,KAAKu3C,mBAAqBA,EArL1Bv3C,KAAAq3C,sBAASA,CAyLT,IAAIviD,IArLJoN,SACIi/D,MAAarpE,EAAKqK,QA6J1BhO,QACKC,OAAO,iCACP8U,QAAQ,2BAA4BssC,GAGzCA,EAtLqB4rB,SAAK,aAAsB,YAmQpD,WAEI,YAQA,SAASxvD,GAAqB9X,EAAOhC,GAcjC,QAtLIihD,GAAahB,GAuLb,MAAOj+C,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBm8C,EAASjjD,GAnL7E,QAAS8jD,GAAUb,GACf,MAAOj+C,GAAMitE,IAAAjvE,EAAK8D,SAAW,uBAA+Bm8C,EAAKjjD,GAGrE,QAASskD,GAAAxwB,GACL,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,wBAA0BgtB,EAAK9zB,GAG3E,QAAS+iD,KACL,MAAO/9C,GAAMupE,IAAAvrE,EAAK8D,SAAW,+BAAwC9G,GA6JzEkL,KAAK+4C,WAAaA,EAClB/4C,KAAK44C,YAAcA,EACnB54C,KAAK63C,oBAAsBA,EAC3B73C,KAAKo5C,cAAgBA,CAGrB,IAtLItkD,IAuLAoN,SACIi/D,MAtLIrpE,EAASqK,QAsKzBhO,QACKC,OAAO,uBACP8U,QAAQ,uBAAwB0I,GAErCA,EAAqBwvD,SAAW,QAAS,iBAkC7C,WACI,YAOA,SAASqP,GAAc32E,EAAOhC,GAmC1B,QAtLI44E,GAAkB11E,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GApL/E,QAAS67E,GAAA31E,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,6BAAAZ,EAAAlG,GAwL3C,QAAS87E,GAAY51E,GACjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAE/E,QAAS+7E,GAAQ71E,GACb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAE/E,QAASg8E,GAAS91E,GArLzB,MAAYlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,wBAAAZ,EAAAlG,GAET,QAAAi8E,GAAA/zC,EAAAnnC,GACK,MAAOiE,GAAAupE,IAAAvrE,EAAA8D,SAAA,mBAAAohC,EAAA,cAAAnnC,EAAAf,GAwLR,QAASk8E,GAAOh2E,GACZ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gBAAiBZ,EAAKlG,GApLtE,QAASm8E,GAAAj2E,GAuLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,eAAgBZ,EAAKlG,GApLjE,QAAKo8E,GAAAl2E,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAA8D,SAA6B,kBAAAZ,EAAAlG,GAElC,QAAKqD,GAAA6C,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,gBAAAZ,EAAAlG,GAE5B,QAAKq8E,GAAmBn2E,GACxB,MAAKlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,qCAAAZ,EAAAlG,GAE1B,QAAKs8E,GAAsBp2E,GAC3B,MAAKlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,oCAAAZ,EAAAlG,GAwL1B,QAASu8E,GAAkBr2E,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GAExF,QAtLIy0E,GAASvuE,GAuLT,MAtLIlB,GAASgnE,KAAAhpE,EAAW8D,SAAA,yBAAAZ,EAAAlG,GAwL5B,QAASw8E,GAASt2E,GACd,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kBAAmBZ,EAAKlG,GAEpE,QAASy8E,GAAav2E,GArLtB,MAASlB,GAAAgnE,KAAAhpE,EAAgB8D,SAAA,sBAAAZ,EAAAlG,GAGzB,QAAS08E,GAAAx2E,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,sBAAAZ,EAAAlG,GAG3C,QAAS28E,GAAAz2E,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAAAZ,EAAAlG,GAwL5C,QAAS48E,GAAkB12E,GArL3B,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAA+B,+BAAKZ,EAAAlG,GAwL7C,QAAS68E,GAAmB32E,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GAElF,QAtLI88E,GAAa52E,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GApLhF,QAAS+8E,GAAA72E,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAAAZ,EAAAlG,GAG5C,QAASg9E,GAAiB92E,GACtB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,6BAAAZ,EAAAlG,GAG3C,QAASi9E,GAAqB/2E,GAC1B,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,gCAAAZ,EAAqClG,GA5GvFkL,KAAY6wE,QAAAA,EAuLL7wE,KAAK4xE,YAAcA,EArLvB5xE,KAAA6xE,QAAAA,EAuLI7xE,KAAKyxE,iBAAmBA,EArL5BzxE,KAAAuxE,aAAAA,EAuLIvxE,KAtLCqxE,kBAAOA,EAuLRrxE,KAtLCupE,gBAAQA,EAuLTvpE,KAAKsxE,SAAWA,EArLpBtxE,KAAA0xE,kBAAuBA,EAuLnB1xE,KAAK2xE,mBAAqBA,EArL9B3xE,KAASoxE,2BAAuBA,EAuL5BpxE,KAAKmxE,4BAA8BA,EArLnCnxE,KAAK7H,OAAAA,EACL6H,KAAKkxE,SAAAA,EACLlxE,KAAKixE,MAAAA,EACLjxE,KAAKgxE,OAAAA,EAuLLhxE,KAAK+wE,SAAWA,EAChB/wE,KAAK8wE,SAAWA,EAChB9wE,KAAK0wE,gBAAkBA,EArLvB1wE,KAAI2wE,mBAASA,EAuLb3wE,KAtLI4wE,YAASA,EAwLb5wE,KAAK8xE,oBAAsBA,EAC3B9xE,KAAK+xE,uBAAyBA,EAC9B/xE,KAAKwxE,aAAeA,CAIpB,IAAI18E,IArLJoN,SACIi/D,MAAarpE,EAAIqK,QAiJzBhO,QACKC,OAtLG,2BAuLH8U,QAAQ,gBAAiBunE,GAE9BA,EAAcrP,SAAW,QAAS,iBAmHtC,WACI,YAOA,SAtLQ7f,GAAkBznD,EAAAhC,GAwBtB,QAAKk6E,GAAcppD,EAAAjzB,GACnB,MAAKmE,GAAAupE,IAAAvrE,EAAsB8D,SAAA,wBAAAgtB,EAAA,WAAAjzB,EAAAb,GAyL3B,QAASm9E,GAAcC,GArLnB,MAAAp4E,GAASgnE,KAAAhpE,EAAA8D,SAAA,kBAAAs2E,EAAAp9E,GAyLb,QAASq9E,GAAcD,GACnB,MAAOp4E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iBAAkBs2E,EAASp9E,GAGvE,QAtLIs9E,GAAkBtL,GAuLlB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAqBkrE,EAAKhyE,GAKtE,QAASu9E,GAAuBvL,GArLhC,MAAShtE,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,0BAAAkrE,EAAAhyE,GAyL3B,QAASgwD,GAAcgiB,GArLvB,MAAShtE,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,uBAAAkrE,EAAAhyE,GAyL/B,QAAS+vD,GAAUiiB,GACf,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gBAAiBkrE,EAAKhyE,GAnLtE,QAAAowD,GAAA4hB,GACA,MAAAhtE,GAAAgnE,KAAAhpE,EAAA8D,SAAA,sBAAAkrE,EAAAhyE,GAyLI,QAASwwD,GAAkBwhB,GArL/B,MAAchtE,GAAAgnE,KAAWhpE,EAAS8D,SAAA,yBAAAkrE,EAAAhyE,GAG9B,QAAK0wD,GAAUshB,GACf,MAAKhtE,GAAAgnE,KAAchpE,EAAA8D,SAAA,kBAAAkrE,EAAAhyE,GAGnB,QAAK6wD,GAAemhB,GACpB,MAAKhtE,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,kBAAAkrE,EAAAhyE,GAGzB,QAAKs2D,GAAoB0b,GACzB,MAAKhtE,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,sBAAAkrE,EAAAhyE,GAG1B,QAAKoyD,GAAS4f,GACd,MAAKhtE,GAAWgnE,KAAAhpE,EAAA8D,SAAA,gCAAAkrE,EAAAhyE,GAIhB,QAAKw9E,GAAWxL,GAChB,MAAKhtE,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,oBAAAkrE,EAAAhyE,GAyLvB,QAASy9E,GAAezL,GArLxB,MAAKhtE,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,qBAAAkrE,EAAAhyE,GAyL3B,QAAS09E,GAA0B1L,GAC/B,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuBkrE,EAAKhyE,GAGxE,QAtLI29E,GAAS3L,GAuLT,MAtLIhtE,GAASgnE,KAAAhpE,EAAW8D,SAAA,wBAAAkrE,EAAAhyE,GA2F5BkL,KAAKmyE,cAAgBA,EArLrBnyE,KAAAoyE,iBAASA,EAuLTpyE,KAtLI8kD,cAAaA,EAuLjB9kD,KAAKklD,eAAiBA,EArLtBllD,KAAAslD,kBAASA,EAuLTtlD,KAtLIwlD,WAAaA,EAuLjBxlD,KAAK2lD,WAAaA,EAClB3lD,KAAKiyE,cAAgBA,EACrBjyE,KAAKorD,iBAAmBA,EACxBprD,KAAKknD,0BAA4BA,EArLxClnD,KAAYsyE,cAAAA,EAuLLtyE,KAAKuyE,eAAiBA,EArL1BvyE,KAAAwyE,0BAAAA,EAuLIxyE,KAAK6kD,UAAYA,EArLrB7kD,KAAAgyE,iBAAAA,EAuLIhyE,KAtLCqyE,uBAAOA,EAuLRryE,KAtLCyyE,kBAAQA,CAEb,IAAA39E,IAuLQoN,SArLCi/D,MAAArpE,EAAqBqK,QA2J9BhO,QArLIC,OAAA,2BAuLC8U,QAtLG,oBAAkBq4C,GAwL1BA,EAAkB6f,SAAW,QAAS,iBAmG1C,WAEI,YAQA,SAAS1mE,GAAgBZ,EAAOhC,GA2C5B,QAtLI46E,GAAaC,GAuLb76E,EAAW6G,eAAgB,CArL/B,IAAAi0E,IAAS1wE,SAAuB+/D,cAAA,6BAAAwN,eAAA,kCAC5B,OAAO31E,GAAMgnE,KAAKhpE,EAAW+D,cAAW,8BAAgC82E,EAAKC,GA0LjF,QAASC,GAAoBjqD,GArL7B,MAAS9uB,GAAAupE,IAAYvrE,EAAK8D,SAAA,qCAAAgtB,EAAA9zB,GAG1B,QAASg+E,GAAaH,GAClB,MAAO74E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAAA+2E,EAAgC79E,GAG5E,QAASi+E,GAAyBJ,GAC9B,MAAO74E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA8B+2E,KAAK79E,GAG/E,QAASk+E,GAAAzyE,GACL,MAAOzG,GAAMupE,IAAAvrE,EAAK8D,SAAW,gCAA4C2E,EAAKzL,GAyLlF,QAASm+E,GAAkBN,GArLlC,MAAY74E,GAAAgnE,KAAAhpE,EAAA8D,SAAA,2BAAA+2E,KAAA79E,GAyLL,QAtLQo+E,GAAAP,GACP,MAAQ74E,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,4BAAA+2E,EAAA79E,GAyL9B,QAASq+E,GAAqBR,GArLlC,MAAS74E,GAAAgnE,KAAAhpE,EAAyB8D,SAAY,gCAAA+2E,EAAA79E,GAG1C,QAAKs+E,GAAgBT,GACrB,MAAK74E,GAAAitE,IAAAjvE,EAAiB8D,SAAA,4BAAA+2E,EAAA79E,GAGtB,QAAKu+E,KACL,MAAKv5E,GAAAupE,IAAgBvrE,EAAA8D,SAAA,yBAAA9G,GAGrB,QAAKw+E,KACL,MAAKx5E,GAAAupE,IAAAvrE,EAAiB8D,SAAA,uCAAA9G,GAGtB,QAAKy+E,KACL,MAAKz5E,GAAAupE,IAAAvrE,EAAyB8D,SAAA,oCAAA9G,GAG9B,QAAI0+E,GAASx4E,GACT,MAAAlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,uBAAAZ,EAAAlG,GAyLb,QAAS2+E,GAAwB7qD,GArLjC,MAAS9uB,GAAAouE,OAAApwE,EAAqB8D,SAAQ,oCAAAgtB,EAAA9zB,GAyLtC,QAAS4+E,GAAiB9qD,GArL1B,MAAS9uB,GAAAouE,OAAcpwE,EAAS8D,SAAA,6BAAAgtB,EAAA9zB,GAyLhC,QAAS6+E,GAAchB,GArLvB76E,EAAS6G,eAAc,CAwLnB,IAAIi0E,IAAc1wE,SAAW+/D,cAAiB,6BAA8BwN,eAAgB,kCAM5F,OAAO31E,GAAMgnE,KAAKhpE,EAAW+D,cAAgB,0BAA2B82E,EAAOC,GASnF,QAASgB,GAAqBjB,GArL9B76E,EAAS6G,eAAe,CACpB,IAAAi0E,IAAkB1wE,SAAW+/D,cAAW,6BAAsBwN,eAAA,kCAuL9D,OAAO31E,GAAMgnE,KAAKhpE,EAAW+D,cAAgB,kCAAmC82E,EAAOC,GAG3F,QAtLIr0E,GAAaK,EAAKR,EAAWC,GAwL7BvG,EAAW6G,eAAgB,EAhL3Bk1E,IAAA/+E,OAAOsY,QAuLH0mE,YAAa,uBACbC,gBAAiB,2CArLzBC,OAAS,aACLC,iBAAkB,MAGtB,IAAAC,GAAS,GAAAL,KAAAM,IAAiB3+E,QAAK4+E,OAAA,WAAAC,WAAA,IAAAC,aAAAvnE,QAAA,QAC3BzR,EAAO8C,EAAW,YAAWC,EAAW,GAuLxC2B,MAAKu0E,SAAW,CAnLhB,IAAA/+E,IAAa4+E,OAAK,WAAWI,IAAWl5E,EAAAsD,EAAApC,KAAAi4E,YAAA71E,EAAiCd,KAAK42E,KAAA91E,GAuL1Es6B,GAEAy7C,SAAU,SArLlBC,UAAS,EAwLDC,IAAK,cApLbX,GAASY,OAAAt/E,EAAe0jC,EAAK,SAAAx4B,EAAAjL,GA6LrB,MA5LGiL,IAwLCwxB,QAAQC,IAAIzxB,GApLpBwxB,QAAOC,IAAM18B,GAwLFA,IAYf,QAtLQs/E,GAAApC,GACP76E,EAAQ6G,eAAmB,CAuLxB,IAAIi0E,IAAc1wE,SAAW+/D,cAAiB,6BAA8BwN,eAAgB,kCArLpG,OAAA31E,GAAgBgnE,KAAUhpE,EAAU+D,cAAA,yBAAA82E,EAAAC,GAGhC,QAAKoC,GAAiBrC,GACtB,MAAK74E,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,+BAAA+2E,EAAA79E,GAGxB,QAAKmgF,GAAiBtC,GACtB,MAAK74E,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,yBAAA+2E,EAAA79E,GAG5B,QAAKogF,GAAmBz/E,GACxBqC,EAAK6G,eAAgB,CACrB,IAAKi0E,IAAA1wE,SAAoB+/D,cAAA,6BAAAwN,eAAA,kCACzB,OAAK31E,GAAAgnE,KAAgBhpE,EAAA+D,cAAA,yBAAApG,EAAAm9E,GAGrB,QAAKuC,GAAuB1/E,GAC5B,MAAKqE,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,4BAAAnG,EAAAX,GAG1B,QAAKsgF,GAAiB3/E,GACtBqC,EAAK6G,eAAmB,CACxB,IAAKi0E,IAAA1wE,SAAA+/D,cAAuC,6BAAAwN,eAAA,kCAC5C,OAAK31E,GAAAgnE,KAAAhpE,EAAuB+D,cAAA,6BAAApG,EAAAm9E,GAG5B,QAAKyC,GAAwB5/E,GAC7BqC,EAAK6G,eAA0B,CAC/B,IAAKi0E,IAAA1wE,SAA0B+/D,cAAA,6BAAAwN,eAAA,kCAC/B,OAAK31E,GAAAgnE,KAAAhpE,EAAsB+D,cAAA,wBAAApG,EAAAm9E,GAyL3B,QAAS0C,GAAsB7/E,GArL/B,MAAKqE,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,gCAAAnG,EAAAX,GAyL9B,QAASygF,GAAe5C,GArLpB,GAAA79E,IACAoN,SACIi/D,MAASrpE,EAAWqK,OA0LxB,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAC1BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwB+2E,EAAO79E,GAG3E,QAtLQ0gF,GAAc7C,GAClB,MAAO74E,GAAMgnE,KAAKhpE,EAAW8D,SAAA,yBAAgB+2E,EAAA79E,GAyLjD,QAAS6pB,GAAc82D,GArLvB,MAAS37E,GAAAupE,IAAAvrE,EAAoB8D,SAAI,0BAAA65E,EAAA3gF,GAyLjC,QAAS4gF,GAAmB16E,GArL5B,MAASlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAO,8BAAAZ,EAAAlG,GAyLxC,QAAS4iC,GAAuB18B,GArLhC,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,gCAA4CZ,EAAAlG,GA/OrDkL,KAAAkzE,eAAkBA,EAuLlBlzE,KAtLIqzE,iBAAkBA,EAuLtBrzE,KAAKozE,iBAAmBA,EArLxBpzE,KAAAuzE,yBAAuBA,EAuLvBvzE,KAtLIwzE,eAAiBA,EAuLrBxzE,KAAKmzE,qBAAuBA,EArL5BnzE,KAAAszE,4BAAqBA,EAuLrBtzE,KAtLIyzE,wBAAkBA,EAuLtBzzE,KAAK0zE,iBAAmBA,EArLxB1zE,KAAA2zE,cAAoBA,EAuLpB3zE,KAtLIizE,kBAAkBA,EAuLtBjzE,KAAK2e,cAAgBA,EArLrB3e,KAAA01E,mBAAuBA,EAuLvB11E,KAtLIgzE,qBAAkBA,EAuLtBhzE,KAAK4zE,qBAAuBA,EArL5B5zE,KAAAi1E,mBAAqBA,EAuLrBj1E,KAtLIk1E,wBAAkBA,EAuLtBl1E,KAAKm1E,sBAAwBA,EArL7Bn1E,KAAAu1E,eAASA,EAuLTv1E,KAtLIw1E,iBAAkBA,EAuLtBx1E,KAAK+yE,qCAAuCA,EArL5C/yE,KAAA+0E,qBAASA,EAuLT/0E,KAtLIg1E,sBAAkBA,EAuLtBh1E,KAAK8yE,wBAA0BA,EArL/B9yE,KAAAs1E,sBAA2BA,EAuL3Bt1E,KAtLIo1E,wBAAkBA,EAuLtBp1E,KAAKq1E,wBAA0BA,EArL/Br1E,KAAA6yE,oBAAyBA,EAuLzB7yE,KAtLIzB,WAAaA,EAuLjByB,KAAK0yE,UAAYA,EAEjB1yE,KAtLI03B,uBAAkBA,CA0LtB,IAAI5iC,IACAoN,SArLJi/D,MAASrpE,EAAkBqK,MACvBwzE,8BAA6B,MAyIrCxhF,QArLIC,OAAA,wBAuLC8U,QAtLG,kBAAkBxO,GAwL1BA,EAtLa0mE,SAAa,QAAA,iBA6a9B,WAEI,YAQA,SAASwU,GAAsB97E,EAAOhC,GArKlC,QAAS+9E,GAAAC,GACL,MAAOh8E,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAqC9G,GAGhF,QAASihF,GAAoBD,GACzB,MAAOh8E,GAAMupE,IAAAvrE,EAAK8D,SAAW,6CAAwC9G,GAGzE,QAASkhF,GAAAC,GACL,MAAOn8E,GAAMgnE,KAAAhpE,EAAO8D,SAAW,wBAAWq6E,EAAAnhF,GAG9C,QAASohF,GAAiBD,GACtB,MAAOn8E,GAAMitE,IAAAjvE,EAAO8D,SAAW,wBAAWq6E,EAAAnhF,GAG9C,QAASqhF,GAAqBvtD,GAC1B,MAAA9uB,GAAWouE,OAAApwE,EAAgB8D,SAAA,yBAAAgtB,EAAA9zB,GA6L/B,QAASshF,GAA2BxtD,GArLhC,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAA,+BAA2CgtB,KAAO9zB,GA0LlF,QAASuhF,GAAwBr7E,GAC9B,GAAIlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OApLhCk/D,aAAS,cAEL,OAAIvnE,GAAAgnE,KAAchpE,EAAW8D,SAAA,uCAA+CZ,EAAAlG,GApDhFkL,KAAAg2E,kBAASA,EAuLTh2E,KAtLIk2E,mBAAkBA,EAuLtBl2E,KAAKm2E,qBAAuBA,EAC5Bn2E,KAAK61E,sBAAwBA,EAE7B71E,KAtLI+1E,wBAAiBA,EAuLrB/1E,KAAKo2E,2BAA6BA,EAClCp2E,KAAKq2E,wBAA0BA,CAG/B,IAAIvhF,IACAoN,SArLJi/D,MAASrpE,EAAAqK,QAmKbhO,QACKC,OAAO,4BACP8U,QAAQ,wBAAyB0sE,GAEtCA,EAtLqBxU,SAAK,QAAW,iBAkPzC,WAEI,YAQA,SAASkV,GAtLWx8E,EAAAhC,GAsMhB,QAASy+E,GAAgC3tD,GArLrC,MAAO9uB,GAAAupE,IAAOvrE,EAAQ8D,SAAS,8CAAoBgtB,EAAA9zB,GAwLvD,QAAS0hF,GAAkBV,GACvB,MAAOh8E,GAtLCupE,IAAQvrE,EAAI8D,SAAA,4BAAA9G,GAyLxB,QAAS2hF,GAAoBX,GACzB,MAtLIh8E,GAAOupE,IAAAvrE,EAAA8D,SAAA,qCAAA9G,GAyLf,QAAS4hF,GAAcT,GACnB,MAAOn8E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAqBq6E,EAAQnhF,GAGzE,QAAS6hF,GAAeV,GACpB,MAAOn8E,GAAMitE,IAAIjvE,EAAW8D,SAAW,oBAAqBq6E,EAAQnhF,GAGxE,QAAS8hF,GAAiBhuD,GArL1B,MAAS9uB,GAAAouE,OAAApwE,EAAqB8D,SAAO,qBAAAgtB,EAAA9zB,GAyLrC,QAtLI+hF,GAAkBZ,GAuLlB,MAAOn8E,GAAMouE,OAAOpwE,EAAW8D,SAAW,8BAA+B9G,GAG7E,QAtLIgiF,GAAkBluD,GAuLlB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA6BgtB,KAAQ9zB,GAGjF,QAtLIiiF,GAAkB/7E,GAuLlB,GAAIlG,IACAoN,SArLCi/D,MAAArpE,EAAAqK,OAEDk/D,aAAc,cAwLlB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GArDlFkL,KAAK02E,cAtLGA,EAuLR12E,KAAK22E,eAAiBA,EACtB32E,KAAK42E,iBAAmBA,EACxB52E,KAtLIw2E,kBAAqBA,EAuLzBx2E,KAtLI62E,kBAAoBA,EAuLxB72E,KAtLIy2E,oBAAgBA,EAuLpBz2E,KAAK82E,uBAAyBA,EAC9B92E,KAAKu2E,gCAAkCA,EACvCv2E,KAtLI+2E,iBAAeA,CAwLnB,IAAIjiF,IACAoN,SArLIi/D,MAAArpE,EAAWqK,QAmKvBhO,QACKC,OAAO,4BACP8U,QAAQ,oBAAqBotE,GAElCA,EAtLYlV,SAAa,QAAA,iBAmP7B,WAEI,YAQA,SAtLQ5mB,GAAkB1gD,EAAAhC,GAiBtB,QAASk/E,KACL,MAAOl9E,GAAMupE,IAAAvrE,EAAK8D,SAAW,iCAA4C9G,GA0L7E,QAtLImiF,GAAiBviF,GAuLjB,MAAOoF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBlH,EAAUI,GAG9E,QAtLIoiF,GAAkBxiF,GAuLlB,MAAOoF,GAAMitE,IAAIjvE,EAAW8D,SAAW,uBAAwBlH,EAAUI,GAG7E,QAtLIqiF,GAAkBvuD,GAuLlB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,wBAA0BgtB,EAAI9zB,GAE5E,QAASkqD,GAAqBhkD,GApL1B,MAqLAlG,GAAO,aAAkB,cArLzBgF,EAAAgnE,KAAAhpE,EAAA8D,SAAA,wCAAAZ,EAAAlG,GAoJJkL,KAAKi3E,cAAgBA,EACrBj3E,KAAKk3E,eAAiBA,EArLtBl3E,KAAAm3E,iBAASA,EAuLTn3E,KAtLIg3E,iBAAkBA,EAuLtBh3E,KAAKg/C,qBAAuBA,CAK5B,IAAIlqD,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OAAO,0BACP8U,QAAQ,oBAAqBsxC,GAElCA,EAtLQ4mB,SAAW,QAAgB,iBAiOvC,WApLI,YA8LA,SAtLSzmB,GAAA7gD,EAA0BhC,GA2M/B,QAASs/E,GAAqBp8E,GAC1B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAASuiF,GAAoBnlE,GACzB,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAoCsW,EAAWpd,GAG1F,QAASwiF,GAAwB1uD,GAC7B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAsCgtB,EAAI9zB,GAGrF,QAASyiF,GAAiB7iF,GACtB,MAAOoF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBlH,EAAUI,GAG9E,QAAS0iF,GAAkB9iF,GACvB,MAAOoF,GAAMitE,IAAIjvE,EAAW8D,SAAW,uBAAwBlH,EAAUI,GAG7E,QAtLQ2iF,GAAS7uD,GAuLb,MAtLI9uB,GAASouE,OAAApwE,EAAA8D,SAAA,wBAAAgtB,EAAA9zB,GAyLjB,QAtLQ6nD,GAAcjoD,GAuLlB,MAAOoF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmClH,EAAUI,GAIzF,QAASmxD,GAAmBjrD,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GAnLzF,QAAA4iF,GAAAhjF,GAuLQ,MAAOoF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuClH,EAAUI,GAG7F,QAtLS6iF,GAAqB9hF,EAAAmhC,EAAA4gD,EAAAC,EAAAC,GAuL1B,MAAOh+E,GAAMupE,IAAIvrE,EAAW8D,SAAW,wCAA0C/F,EAAa,YAAcmhC,EArLpH,YAAkB4gD,EAAW,cAASC,EAAA,gBAAAC,EAAAhjF,GAMlC,QAAKijF,GAAoB/8E,GACzB,MAAKlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,mCAAAZ,EAAAlG,GAlEzBkL,KAAKu3E,iBAAAA,EACLv3E,KAAKw3E,kBAAAA,EAuLLx3E,KAAKy3E,oBAAsBA,EAC3Bz3E,KAAKq3E,oBAAsBA,EArL3Br3E,KAAIs3E,wBAASA,EAuLbt3E,KAtLI28C,qBAASA,EAuLb38C,KAAKo3E,qBAtLuBA,EAuL5Bp3E,KAAK23E,uBAAyBA,EAC9B33E,KAAK03E,2BAA6BA,EAClC13E,KAAKimD,mBAAqBA,EArL1BjmD,KAAA+3E,mBAASA,CAyLT,IAAIjjF,IArLJoN,SACIi/D,MAAarpE,EAAIqK,QAtBzBhO,QACIC,OAAK,2BACL8U,QAAK,uBAAqByxC,GAwL9BA,EAtLSymB,SAAA,QAAwB,iBAkQrC,WAEI,YAQA,SAAS4W,GAAmBl+E,EAAOhC,GAoB/B,QAASmgF,GAAsBC,GArL/B,MAASp+E,GAAAgnE,KAAAhpE,EAAuB8D,SAAI,mCAAAs8E,EAAApjF,GAwLpC,QAASqjF,GAAuBD,GAC5B,MAAOp+E,GAAMitE,IAAIjvE,EAAW8D,SAAW,mCAAoCs8E,EAAepjF,GAI9F,QAASsjF,GAtLuBxvD,GAuL5B,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,oCAAsCgtB,EAAI9zB,GAIxF,QAASujF,GAAyBziD,GAC9B,MAAO97B,GAAMupE,IAAIvrE,EAAW8D,SAAW,sDAAwDg6B,EAAW9gC,GAI9G,QAASwjF,KArLb,MAAAx+E,GAAAupE,IAAAvrE,EAAA8D,SAAA,kDAAA9G,GAyLI,QAtLQyjF,GAAAv9E,GACP,MAAQlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,sDAAAZ,EAAAlG,GAIlC,QAASk3E,GAAyBpjD,GAC9B,MAAK9uB,GAAAupE,IAAgBvrE,EAAA8D,SAAA,sDAAAgtB,EAAA9zB,GAErB,QAAK0jF,GAAmB5vD,GACxB,MAAK9uB,GAAAupE,IAAAvrE,EAAmB8D,SAAA,sDAAAgtB,EAAA9zB,GAyLxB,QAAS2jF,GAAwBP,GAC7B,MAAOp+E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oDAAqDs8E,EAAepjF,GArDhHkL,KAtLIi4E,sBAAiBA,EAuLrBj4E,KAAKm4E,uBAAyBA,EAC9Bn4E,KAAKo4E,yBAA2BA,EArLhCp4E,KAAAq4E,yBAA+BA,EAuL/Br4E,KAtLIs4E,sBAAkBA,EAuLtBt4E,KAAKgsE,yBAA2BA,EAChChsE,KAAKw4E,kCAAoCA,EArLzCx4E,KAAAu4E,0BAAgCA,EAuLhCv4E,KAtLIy4E,wBAAiBA,CAGrB,IAAA3jF,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QArBhChO,QACKC,OAtLG,6BAuLH8U,QAAQ,qBAAsB8uE,GAEnCA,EAtLe5W,SAAU,QAAW,iBAoPxC,WAEI,YAQA,SAtLQjjD,GAAkBrmB,EAAWgC,GAsMjC,QAASqlB,GAAmBu5D,GACxB,MAAO5+E,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA0C9G,GAOrF,QAtLSurD,GAAAP,GAuLL,MAAOhmD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BkkD,EAAKhrD,GAnLjF,QAASsrD,GAAqBN,GAC1B,MAAKhmD,GAAAitE,IAAAjvE,EAAmB8D,SAAA,2BAAAkkD,EAAAhrD,GAGxB,QAAKorD,GAAsBt3B,GAC3B,MAAK9uB,GAAAouE,OAAApwE,EAA0B8D,SAAA,4BAAAgtB,EAAA9zB,GAE/B,QAAKwrD,GAAuB13B,GAC5B,MAAK9uB,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,kCAAAgtB,KAAA9zB,GAmJ9BkL,KAAKqgD,gBAAkBA,EACvBrgD,KAAKogD,iBAAmBA,EArLxBpgD,KAAAkgD,mBAAwBA,EAuLxBlgD,KAtLImf,mBAAiBA,EAuLrBnf,KAAKsgD,yBAA2BA,CApLhC,IAAAxrD,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OAtLG,4BAuLH8U,QAAQ,sBAAuBiV,GAEpCA,EAAoBijD,SAAW,aAAc,YA2CjD,WAEI,YAQA,SAAS5gB,GAAgB1mD,EAAOhC,GAmB5B,QAtLI2oD,GAAoBunB,GAuLpB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAyB9G,GAGpE,QAtLI6jF,GAAkB3Q,GAuLlB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,2BAA4B9G,GAnLvE,QAASqsD,GAAAN,GACL,MAAO/mD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAAilD,EAAA/rD,GAG5C,QAASosD,GAAAL,GACL,MAAO/mD,GAAMitE,IAAAjvE,EAAK8D,SAAW,mBAAWilD,EAAA/rD,GAG5C,QAAS8jF,GAAA/3B,GACL,MAAO/mD,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAA9G,GAyL3C,QAASgsD,GAAel4B,GACpB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,oBAAsBgtB,EAAI9zB,GAnLxE,QAASksD,GAAmBp4B,GACxB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAAAgtB,KAAoC9zB,GA2IhFkL,KAAKmhD,YAAcA,EArLnBnhD,KAAAkhD,aAASA,EAuLTlhD,KAtLI8gD,eAAiBA,EAuLrB9gD,KAAKygD,eAAiBA,EACtBzgD,KAAK24E,gBAAkBA,EArLvB34E,KAAA44E,sBAASA,EAuLT54E,KAtLIghD,qBAAiBA,CA2LrB,IAAIlsD,IACAoN,SArLJi/D,MAASrpE,EAAkBqK,QAkK/BhO,QACKC,OAAO,wBACP8U,QAAQ,kBAAmBs3C,GAEhCA,EAtLa4gB,SAAA,QAAqB,iBAyOtC,WApLC,YAQG,SAAA/f,GAA8BvpD,EAASgC,GAkNnC,QAASkuD,GAAahtD,GAClB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAEhF,QAtLI0zD,GAAaxtD,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAE9E,QAASyzD,GAAavtD,GArLtB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAyB,8BAAWZ,EAAAlG,GAwL7C,QAAS4zD,GAAY1tD,GACjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAG/E,QAtLIotD,GAAiBlnD,GAuLjB,GAAIlG,IACAoN,SArLCi/D,MAAArpE,EAAAqK,OA0LL,OADArN,GAAO,aAAkB,cAClBgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GAElF,QAtLIkyE,GAAahsE,GAuLb,GAAIlG,IArLRoN,SACWi/D,MAAUrpE,EAAWqK,OAI5B,OADJrN,GAAS,aAAA,cACEgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAAAZ,EAAAlG,GAyL5C,QAAS+jF,GAAuB79E,GAC5B,GAAIlG,IArLHoN,SAuLOi/D,MAASrpE,EAAWqK,OAlL/B,OADLrN,GAAA,aAAA,cACYgF,EAAAgnE,KAAAhpE,EAAA8D,SAAA,wCAAAZ,EAAAlG,GAKZ,QAAS+vD,GAAAiiB,GACL,MAAKhtE,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,2BAAAkrE,EAAAhyE,GAEvB,QAAKgwD,GAAAgiB,GACL,MAAKhtE,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,kCAAAkrE,EAAAhyE,GAwL1B,QAASowD,GAAe4hB,GArLpB,MAAAhtE,GAASgnE,KAAAhpE,EAAA8D,SAAA,iCAAAkrE,EAAAhyE,GAyLb,QAASwwD,GAAkBwhB,GACvB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCkrE,EAAKhyE,GAGtF,QAAS0wD,GAAWshB,GAChB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BkrE,EAAKhyE,GAG/E,QAAS6wD,GAAWmhB,GAChB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BkrE,EAAKhyE,GAG/E,QAASgkF,GAAc99E,GACnB,GAAIlG,IArLRoN,SACWi/D,MAAMrpE,EAAKqK,OAIlB,OADJrN,GAAS,aAAiB,cACfgF,EAAMgnE,KAAIhpE,EAAW8D,SAAW,+BAAiCZ,EAAAlG,GAG5E,QAASikF,GAAmB/9E,GACxB,GAAAlG,IAuLIoN,SArLCi/D,MAAArpE,EAAAqK,OA0LL,OADArN,GAAO,aAAkB,cAClBgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG,GAGvF,QAASkkF,GAAqBh+E,GArLlC,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,sCAAAZ,EAAAlG,GAEA,QAAAmkF,GAAAj+E,GACK,MAAOlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,6BAAAZ,EAAAlG,GAGZ,QAAAokF,GAA2Bl+E,GAuLnB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GApLzF,QAAKqkF,GAAcn+E,GACnB,MAAKlB,GAAAgnE,KAAehpE,EAAA8D,SAAA,qCAAAZ,EAAAlG,GA0DpBkL,KAAKkiD,mBAAqBA,EArL9BliD,KAASgnE,WAAAA,EAuLLhnE,KAAKgoD,aAAeA,EArLpBhoD,KAAKwoD,WAAAA,EACLxoD,KAAKuoD,aAAAA,EACLvoD,KAAK0oD,YAAAA,EACL1oD,KAAK64E,uBAAAA,EACL74E,KAAK6kD,UAAAA,EACL7kD,KAAK8kD,cAAAA,EACL9kD,KAAKklD,eAAAA,EACLllD,KAAKslD,kBAAAA,EACLtlD,KAAKwlD,WAAAA,EAuLLxlD,KAAK2lD,WAAaA,EAClB3lD,KAAK84E,cAAgBA,EArLrB94E,KAAI+4E,oBAASA,EAuLb/4E,KAtLIg5E,qBAASA,EAuLbh5E,KAAKi5E,YAtLYA,EAuLjBj5E,KAAKk5E,sBAAwBA,EAC7Bl5E,KAAKm5E,oBAAsBA,CAnL3B,IAAArkF,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QApNhChO,QAuLKC,OAAO,8BArLZ8U,QAAA,wBAAAm4C,GAwLAA,EAtLa+f,SAAA,aAAsB,YA8TvC,WAEI,YAQA,SAASgY,GAA4Bt/E,EAAOhC,GAmBxC,QAtLIuhF,GAAar+E,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGtF,QAtLIwkF,GAAkBt+E,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG,GAGvF,QAASykF,GAAiC3jD,EAAWz1B,GArL5D,MAAYrG,GAAAupE,IAAAvrE,EAAA8D,SAAA,yDAAAg6B,EAAA,aAAAz1B,EAAArL,GAyLL,QAAS0kF,GAA2B5jD,EAAWz1B,GArLnD,MAAArG,GAAAupE,IAAAvrE,EAAA8D,SAAA,mDAAAg6B,EAAA,aAAAz1B,EAAArL,GAyLI,QAAS2kF,KArLb,MAAA3/E,GAAAupE,IAAsBvrE,EAAW8D,SAAc,kDAAA9G,GAE/C,QAAS4kF,GAAA1+E,GACL,GAAKlG,IACAoN,SACAi/D,MAAerpE,EAAAqK,OAIpB,OADArN,GAAK,aAAc,cACdgF,EAAAgnE,KAAAhpE,EAAyB8D,SAAA,wDAAAZ,EAAAlG,GAG9B,QAAK6kF,GAAiB3+E,GACtB,MAAKlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,wDAAAZ,EAAAlG,GAwIzBkL,KAtLIq5E,aAAaA,EAuLjBr5E,KAAKs5E,cAAgBA,EACrBt5E,KAAKu5E,iCAAmCA,EArLxCv5E,KAAAw5E,2BAA+BA,EAuL/Bx5E,KAtLIy5E,2BAA6BA,EAuLjCz5E,KAAK05E,WAAaA,EAClB15E,KAAK25E,iCAAmCA,CAIxC,IAAI7kF,IArLJoN,SACIi/D,MAAarpE,EAAIqK,QAiKzBhO,QACKC,OAAO,2BACP8U,QAAQ,8BAA+BkwE,GAE5CA,EAtL4BhY,SAAA,QAAc,iBA6O9C,WAEI,YAQA,SAASwY,GAAuB9/E,EAAOhC,GAwBnC,QAAS+hF,GAAyB7+E,GArLlC,MAASlB,GAAAgnE,KAAWhpE,EAAK8D,SAAA,+BAAAZ,EAAAlG,GAyLzB,QAASglF,GAtLuB9+E,GAuL5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAtLIilF,GAA6B/+E,GAuL7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmCZ,EAAKlG,GAGpF,QAtLQklF,GAASh/E,GAuLb,MAtLIlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,mCAAAZ,EAAAlG,GAyLjB,QAASmlF,GAAyBC,GArL9B,MAAOpgF,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,6CAAAs+E,EAAAplF,GAyL7B,QAASqlF,GAAenS,GACpB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAyB9G,GAGpE,QAtLIslF,GAA6BpS,GAuL7B,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAyB9G,GAGpE,QAASulF,GAA0Br/E,GArLnC,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,4CAAAZ,EAAAlG,GAyL7B,QAASwlF,GAAyBt/E,GArLlC,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,2CAAAZ,EAAAlG,GAyLhC,QAASylF,GAA2Bv/E,GArLpC,MAASlB,GAAAgnE,KAAWhpE,EAAK8D,SAAA,6CAAAZ,EAAAlG,GAyLzB,QAAS0lF,GAA4Bx/E,GArLrC,MAASlB,GAAAgnE,KAAWhpE,EAAK8D,SAAA,8CAAAZ,EAAAlG,GAyLzB,QAAS2lF,GAA6Bz/E,GArLtC,MAASlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,+CAAAZ,EAAAlG,GAyL5B,QAAS4lF,GAtLYC,GAuLjB,MAAO7gF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA0B++E,EAAc7lF,GAGpF,QAtLI8lF,GAAkB5/E,GAuLlB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,yBAA0BZ,EAAKlG,GAG1E,QAtLQ+lF,GAAS7/E,GAuLb,MAtLIlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,yBAAAZ,EAAAlG,GAsGjBkL,KAAKo6E,8BAAgCA,EACrCp6E,KAAK06E,mBAAqBA,EArL1B16E,KAAA46E,sBAA2BA,EAuL3B56E,KAtLI66E,sBAAkBA,EAuLtB76E,KAAKm6E,eAAiBA,EArLtBn6E,KAAAi6E,yBAAyBA,EAuLzBj6E,KAtLIq6E,0BAA6BA,EAuLjCr6E,KAAK65E,yBAA2BA,EArLhC75E,KAAA85E,2BAA2BA,EAuL3B95E,KAtLI+5E,4BAA6BA,EAuLjC/5E,KAAKg6E,6BAA+BA,EArLpCh6E,KAAAs6E,yBAA0BA,EAuL1Bt6E,KAtLIu6E,2BAA6BA,EAuLjCv6E,KAAKw6E,4BAA8BA,EACnCx6E,KAAKy6E,6BAA+BA,CAGpC,IAAI3lF,IACAoN,SACIi/D,MAASrpE,EAAWqK,QA1BhChO,QACKC,OAAO,oCACP8U,QAAQ,yBAA0B0wE,GAEvCA,EAtLiBxY,SAAA,QAAA,iBA8QrB,WAEI,YAQA,SAtLIzvD,GAAS7X,EAAsBhC,GAgC/B,QAAKgjF,GAAArlF,GAuLD,GAAIX,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GAtLIoN,QAAS,gBAAWxM,OAuLjBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBnG,EAAMX,GAnL1E,QAASimF,GAAkB//E,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAAZ,EAAqClG,GAGjF,QAASkmF,GAAAhgF,GACL,MAAOlB,GAAMupE,IAAAvrE,EAAK8D,SAAW,+BAAWZ,EAAAlG,GAG5C,QAASmmF,GAAAvU,GACL,MAAO5sE,GAAMitE,IAAIjvE,EAAW8D,SAAW,uBAAA8qE,EAAA5xE,GAG3C,QAASomF,GAAAzlF,GACL,GAAAX,IAuLIoN,SACIi/D,MAASrpE,EAAWqK,OAlLhC,OAqLIrN,GAAOoN,QAAQ,gBAAkBxM,OArL5BoE,EAAAgnE,KAAWhpE,EAAK8D,SAAA,+BAAAnG,EAAAX,GAyLzB,QAASqmF,GAtLYC,GAuLjB,MAAOthF,GAAMupE,IAAIvrE,EAAW8D,SAAW,qCAAsC9G,GAGjF,QAtLIumF,KAuLA,MAAOvhF,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAgC9G,GAG3E,QAtLIwmF,GAAkBF,GAuLlB,MAAOthF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA0Bw/E,EAAWtmF,GAnLxF,QAAYymF,GAAAt/B,GAuLD,MAAOniD,GAAMupE,IAAIvrE,EAAW8D,SAAW,iCAAmCqgD,EAAYnnD,GAnL9F,QAAAqxE,GAAAj0D,GACK,MAAOpY,GAAAupE,IAAAvrE,EAAA8D,SAAA,6BAAAsW,EAAApd,GAGZ,QAAAktB,GAAkC9P,GAuL1B,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA4CsW,EAAWpd,GAnLlG,QAAKyxE,GAAqBr0D,GAC1B,MAAKpY,GAAAupE,IAAAvrE,EAAwB8D,SAAA,kCAAAsW,EAAApd,GAG7B,QAAK2sB,GAAAvP,GACL,MAAKpY,GAAAupE,IAAAvrE,EAAA8D,SAA4B,gCAAAsW,EAAApd,GAGjC,QAAK0mF,GAAAtpE,EAA8BupE,GACnC,MAAK3hF,GAAAupE,IAAAvrE,EAAA8D,SAA+B,uCAAAsW,EAAA,eAAAupE,EAAA3mF,GAGpC,QAAK4mF,GAAAxpE,GACL,MAAKpY,GAAAupE,IAAAvrE,EAAA8D,SAA+B,oCAAAsW,EAAApd,GAGpC,QAAI6mF,GAASC,GACT,MAAA9hF,GAASgnE,KAAAhpE,EAAA8D,SAAA,+BAAAggF,EAAA9mF,GAyLb,QAASgwB,GAAkB4hD,GACvB,MAAO5sE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwB8qE,EAAQ5xE,GAG5E,QAAS4uB,GAAa7tB,GAClB,MAAOiE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAmC/F,KAAef,GAG9F,QAAS+mF,GAAchmF,GACnB,MAAOiE,GAAMouE,OAAOpwE,EAAW8D,SAAW,wBAA0B/F,EAAWf,GAGnF,QAASgnF,GAAgBjmF,GACrB,MAAOiE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA4B/F,KAAef,GAGvF,QAASinF,GAAmBlmF,GACxB,MAAOiE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA4B/F,KAAef,GAGvF,QAASknF,GAAenmF,GACpB,MAAOiE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAyB/F,KAAef,GAGpF,QAASmnF,GAAiBr4D,GACtB,MAAO9pB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCgoB,EAAS9uB,GAEzF,QAtLIonF,GAAiBt4D,GAuLjB,MAAO9pB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCgoB,EAAS9uB,GAvIzFkL,KAtLIm7E,sBAAkBA,EAuLtBn7E,KAAKu7E,yBAA2BA,EArLhCv7E,KAAAs7E,aAASA,EAuLTt7E,KAtLImmE,aAAaA,EAuLjBnmE,KAAKgiB,yBAA2BA,EAChChiB,KAAKumE,yBAA2BA,EAChCvmE,KAAKyhB,eAAiBA,EACtBzhB,KAAK07E,wBAA0BA,EAC/B17E,KAAK86E,kBAAoBA,EACzB96E,KAAKk7E,cAAgBA,EACrBl7E,KAAK27E,cAAgBA,EACrB37E,KAAKi7E,qBAAuBA,EArLnCj7E,KAAY8kB,kBAAAA,EAuLL9kB,KAAK+6E,kBAAmBA,EArL5B/6E,KAAA0jB,aAAAA,EAuLI1jB,KAAK67E,cAAgBA,EArLzB77E,KAAA87E,gBAAAA,EAuLI97E,KAtLC+7E,mBAAOA,EAuLR/7E,KAtLCg8E,eAAQA,EAuLTh8E,KAAKi8E,iBAAmBA,EArL5Bj8E,KAAAk8E,iBAA4BA,EAuLxBl8E,KAAKq7E,eAAiBA,EArL1Br7E,KAASg7E,QAAAA,EAuLLh7E,KAAKw7E,sBAAuBA,CApL5B,IAAA1mF,IACAoN,SACKi/D,MAAArpE,EAAAqK,QAoJThO,QACKC,OAAO,2BArLR8U,QAAS,yBAAiByI,GAwL9BA,EAAuByvD,SAAW,QAAS,iBA8I/C,WAEI,YAQA,SAtLIl8C,GAASprB,EAA4BhC,GAoMrC,QAASuiD,GAAkBtC,GACvB,MAAOj+C,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+Bm8C,EAASjjD,GAGpF,QAASilD,GAAyBhC,GAC9B,MAAOj+C,GAAMitE,IAAIjvE,EAAW8D,SAAW,8BAA+Bm8C,EAASjjD,GAnL1F,QAAYywB,GAAA1vB,GAuLD,MAAOiE,GAAMouE,OAAOpwE,EAAW8D,SAAW,+BAAiC/F,EAAWf,GAnL9F,QAAAqwB,KACK,MAAOrrB,GAAAupE,IAAAvrE,EAAA8D,SAAA,6CAAA9G,GA6JRkL,KAAKq6C,kBAAoBA,EACzBr6C,KAAK+5C,yBAA2BA,EArLhC/5C,KAAAmlB,2BAASA,EAuLTnlB,KAtLIulB,qBAAkBA,CAGtB,IAAAzwB,IACIoN,SAuLIi/D,MAASrpE,EAAWqK;GAhBhChO,QACKC,OAAO,uBArLR8U,QAAS,8BAA2Bgc,GAwLxCA,EAA4Bk8C,SAAW,QAAS,iBAkCpD,WAEI,YAQA,SAtLS+a,GAAgBriF,EAAAhC,GAGrB,QAAKquE,GAAAiW,GACL,MAAKtiF,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,2BAAAwgF,GAHxBp8E,KAAKmmE,aAAAA,EA+KThyE,QArLIC,OAAK,2BACL8U,QAAK,2BAA2BizE,GAwLpCA,EAtLS/a,SAA0B,QAAA,iBAiMvC,WACI,YAOA,SAtLQ3mB,GAAS3gD,EAAAhC,GAuBb,QAASukF,GAAqBC,GAC1B,GAAA9nF,GAAO,6CAAgC8nF,EAAwBzmF,UAuLzD,WAAaymF,EAASv8D,OACtB,eAAiBu8D,EAASC,WArL3B,aAAcD,EAAMx9B,SACrB,eAASw9B,EAAAz4B,WACT,eAASy4B,EAAAnlD,WAuLP,aAtLWmlD,EAAWn8E,SAuLtB,gBAAkBm8E,EAASt/B,WApLjC,OAAOljD,GAAAupE,IAAQvrE,EAAA8D,SAAkBpH,EAAAM,GA6LrC,QAASmpD,GAAkBjjD,GArL3B,MAASlB,GAAAgnE,KAAAhpE,EAAiB8D,SAAA,6CAAAZ,EAAAlG,GAyL1B,QAAS0nF,GAAkC5mD,EAAWz1B,GArLtD,MAASrG,GAAAupE,IAAAvrE,EAAa8D,SAAW,iDAAAg6B,EAAA,aAAAz1B,EAAArL,GAIjC,QAAS86E,GAAAC,GACL,MAAO/1E,GAAMgnE,KAAIhpE,EAAW8D,SAAW,oCAAmCi0E,EAAY/6E,GAG1F,QAASg7E,GAAal6C,EAAWm6C,GAC7B,MAAOj2E,GAAMouE,OAAIpwE,EAAW8D,SAAW,qCAA0Cg6B,EAAA,IAAAm6C,EAAAj7E,GAGrF,QAAS4nD,GAAA9mB,GACL,MAAO97B,GAAMupE,IAAIvrE,EAAW8D,SAAW,0BAAAg6B,EAAA9gC,GAG3C,QAAS81D,GAAAh1B,EAAyBonB,GAC9B,MAAOljD,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAAAg6B,EAAoC,gBAAWonB,EAAAloD,GAG1F,QAASmoD,GAAejiD,GACpB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,0BAAAZ,EAAAlG,GAG3C,QAASsoD,GAAsBpiD,GAC3B,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,8BAAAZ,EAAAlG,GAG3C,QAASwoD,GAAwBtiD,GAC7B,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,+BAAAZ,EAAsClG,GAGjF,QAAS2nF,GAAcC,GACnB,GAAA5nF,IAuLIoN,SACIi/D,MAASrpE,EAAWqK,OApL5Bk/D,aAAkB,cAGtB,OAASvnE,GAAAgnE,KAAahpE,EAAW8D,SAAA,uCAAA8gF,EAAA5nF,GAyLjC,QAAS6nF,GAAqB7V,GArL9B,MAAShtE,GAAAgnE,KAAAhpE,EAAc8D,SAAW,wBAAAkrE,EAAAhyE,GAyLlC,QAAS8nF,GAAUnnF,GArLnB,GAAAX,IACIoN,SAuLQi/D,MAASrpE,EAAWqK,OAI5B,OAvLArN,GAAOoN,QAAM,gBAAgBxM,OAuLtBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BnG,EAAMX,GAlG9EkL,KAAKi+C,kBAtLYA,EAuLjBj+C,KAAK4vE,sBAAwBA,EAC7B5vE,KAAK8vE,sBAAwBA,EAC7B9vE,KAAK08C,qBAAuBA,EArL5B18C,KAAA4qD,iBAASA,EAuLT5qD,KAtLIi9C,sBAAaA,EAuLjBj9C,KAAKo9C,yBAtLYA,EAuLjBp9C,KAAKs9C,0BAtL2BA,EAuLhCt9C,KAAKy8E,gBAAkBA,EACvBz8E,KAAK28E,qBAAuBA,EAC5B38E,KAtLI48E,UAAOA,EAuLX58E,KAtLIq8E,0BAA6BA,EAwLjCr8E,KAAKw8E,kCAAoCA,CAGzC,IAAI1nF,IACAoN,SArLJi/D,MAAiBrpE,EAAKqK,QA6J1BhO,QArLIC,OAAK,wBACL8U,QAAK,qBAASuxC,GAwLlBA,EAAmB2mB,SAAW,QAAS,iBA0G3C,WACI,YAOA,SAAShY,GAA6BtvD,EAAOhC,GAkBzC,QAAS6yD,GAAoB/hC,GArLzB,MAAA9uB,GAASupE,IAAAvrE,EAAA8D,SAAA,8BAAAgtB,EAAA9zB,GAwLb,QAtLQy3D,GAASvxD,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCZ,EAAKlG,GAEjF,QAASo4D,GAAalyD,GArLtB,MAASlB,GAAAgnE,KAAAhpE,EAAkB8D,SAAS,8BAAAZ,EAAAlG,GAwLpC,QAAS04D,GAAuBxyD,GAC5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,EAAKlG,GAEzE,QAtLI22D,GAAiBzwD,GAuLjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GApLtF,QAASu4D,GAAAryD,GACL,MAAOlB,GAAMgnE,KAAAhpE,EAAO8D,SAAW,8BAAWZ,EAAiClG,GAwL/E,QAAS43D,GAAc1xD,GArLvB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAA6B,mCAAAZ,EAAAlG,GAwLtC,QAAS82D,GAAiB5wD,GACtB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GAEzF,QAASi3D,GAAkB/wD,GArLvB,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,wCAAAZ,EAAAlG,GAER,QAAAo3D,GAAAlxD,GAuLQ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GAnOhGkL,KAAY2qD,oBAAAA,EAuLL3qD,KAAKusD,cAAgBA,EArLzBvsD,KAAAktD,aAAAA,EAuLIltD,KAAKwtD,uBAAyBA,EArLlCxtD,KAAAyrD,mBAAAA,EAuLIzrD,KAtLCqtD,aAAOA,EAuLRrtD,KAtLC0sD,cAAQA,EAuLT1sD,KAAK+rD,kBAAoBA,EArL7B/rD,KAAA4rD,iBAA4BA,EAuLxB5rD,KAAKksD,mBAAmBA,CAnLxB,IAAAp3D,IACAoN,SACKi/D,MAAArpE,EAAAqK,QAiKThO,QACKC,OAAO,yBArLR8U,QAAS,+BAA0BkgD,GAwLvCA,EAA6BgY,SAAW,QAAS,iBAwDrD,WAEI,YA9KA,SAAAxT,GAAA9zD,EAAAhC,GAgBI,QAAKy2D,KACA,MAAAz0D,GAAYupE,IAAAvrE,EAAA8D,SAAA,qDAAA9G,GA0Ld,QAASm5D,GAAsBH,GAC1B,MAAOh0D,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCkyD,KAAch5D,GA/KlG,QAASq5D,GAA0BvlC,GAC3B,MAAM9uB,GAAAouE,OAAApwE,EAAA8D,SAAA,qBAAwDgtB,EAAA9zB,GA0LtE,QAASw5D,GAtL2Bp8C,GAuLhC,MAtLMpY,GAAAupE,IAAAvrE,EAAiB8D,SAAS,wDAAAsW,EAAApd,GA0LpC,QAtLI+nF,GAA4B3qE,GAuL5B,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,2DAA6DsW,EAAWpd,GA7NlHkL,KAAAiuD,sBAAOA,EACPjuD,KAAAguD,uBAA8BA,uBAuL9BhuD,KAAKmuD,yBAA2BA,EArLrCnuD,KAAAuuD,yBAA8BA,EAuL1BvuD,KAAKsuD,2BAA6BA,EArLtCtuD,KAAS68E,8BAA0BA,CAI/B,IAAA/nF,IACAoN,SACKi/D,MAAArpE,EAAAqK,QAoKThO,QACKC,OAAO,yCACP8U,QAAQ,mCAAoC0kD,GApLpDA,EAAYwT,SAAA,QAAA,iBAuOb,WAEI,YAQA,SAAS0b,GAAyBhjF,EAAOhC,GA/GrC,QAAKilF,KAuLD,MAAOjjF,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA6B9G,GAGxE,QAtLIkoF,GAASp0D,GAwLT,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAAgCgtB,EAAI9zB,GAG/E,QAtLImoF,GAAiBjiF,GAErB,MAASlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,6BAAAZ,EAAAlG,GAG5B,QAASooF,GAAkBliF,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAA+BZ,EAAKlG,GA0LhF,QAASqoF,GAA2BniF,GApLhC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAqCZ,EAAKlG,GAyLtF,QAtLIsoF,GAAkBpiF,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAASuoF,GAAkCrgD,GApLvC,MAAOljC,GAAMupE,IAAAvrE,EAAK8D,SAAW,2CAAmDohC,EAAKloC,GAKzF,QAASwoF,GAAwBtiF,GAwL7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GAGzF,QAASyoF,GAAyBviF,GAE9B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGtF,QAAS0oF,GAA4BxiF,GAEjC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCZ,EAAKlG,GAGzF,QAtLS2oF,GAAAziF,GAEb,MAAAlB,GAAAgnE,KAAAhpE,EAAiC8D,SAAW,0CAASZ,EAAAlG,GAyLjD,QAtLM4oF,GAAwB1iF,GAE7B,MAAKlB,GAAAgnE,KAAAhpE,EAA2B8D,SAAA,mCAAAZ,EAAAlG,GAGjC,QAAK6oF,GAAA3iF,GAwLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GAGrF,QAtLI8oF,GAAS5iF,GAwLT,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAG/E,QAtLI+oF,GAAS7iF,GAwLT,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAG7E,QAtLGgpF,GAAS9iF,GAwLR,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAG/E,QAASipF,GAAkB/iF,GAEvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAG/E,QAASkpF,GAAkBhjF,GAEvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAK/E,QAASmpF,GAAyBr1D,GApL9B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,qCAAAgtB,EAAA9zB,GAyL3C,QAASopF,GAAgBt1D,GAErB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA8BgtB,EAAI9zB,GAG7E,QAASqpF,GAAwBv1D,EAAIw1D,EAAQC,GAEzC,MAAOvkF,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAsCgtB,EAAK,YAAcw1D,EAAS,UAAYC,EAAOvpF,GAGhI,QAtLSwpF,GAAA11D,GAEb,MAAA9uB,GAAAupE,IAAyBvrE,EAAW8D,SAAS,6BAAAgtB,EAAA9zB,GAGzC,QAAKypF,GAAsB31D,GAE3B,MAAK9uB,GAAAupE,IAAAvrE,EAAuB8D,SAAA,mCAAAgtB,EAAA9zB,GAG5B,QAAK0pF,GAAoB51D,GAEzB,MAAK9uB,GAAAupE,IAAAvrE,EAAwB8D,SAAA,+BAAAgtB,EAAA9zB,GAG7B,QAAK2pF,GAAmBzjF,GAwLpB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,+BAAgCZ,EAAKlG,GAnLhF,QAAK4pF,GAAA1jF,GAEL,MAAKlB,GAAAitE,IAAAjvE,EAAA8D,SAAiC,iCAAAZ,EAAAlG,GAKtC,QAAK6pF,GAAqB/1D,GAE1B,MAAK9uB,GAAAupE,IAAAvrE,EAAoB8D,SAAA,+BAAAgtB,EAAA9zB,GAyLzB,QAAS8pF,GAAkBh2D,GApL3B,MAAK9uB,GAAAupE,IAAAvrE,EAAkB8D,SAAA,8BAAAgtB,EAAA9zB,GAGvB,QAAK+pF,GAAmBj2D,GAExB,MAAK9uB,GAAAupE,IAAAvrE,EAAqB8D,SAAA,uCAAAgtB,EAAA9zB,GAG1B,QAAKgqF,GAAA9jF,GAwLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GApLnF,QAAKiqF,GAAmB/jF,GAwLpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAnL5F,QAAKkqF,GAA6BhkF,GAuL9B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiDZ,EAAKlG,GAjLlG,QAAKmqF,GAA2BjkF,GAEhC,MAAKlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,wCAAyCZ,EAAAlG,GAE9C,QAAKoqF,GAAAlkF,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,4BAAAZ,EAAAlG,GAwLzB,QAASqqF,GAAgBv2D,GAErB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA8BgtB,EAAI9zB,GAK7E,QAtLQsqF,GAAoBx2D,GAuLxB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA4CgtB,EAAI9zB,GAnL3F,QAASuqF,GAAmBz2D,GACxB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,+CAA6BgtB,EAAA9zB,GAGxE,QAASwqF,GAAwBtkF,GAuL7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAA+CZ,EAAKlG,GAGhG,QAASyqF,GAAyBvkF,GArLlC,MAASlB,GAAAitE,IAAAjvE,EAAuB8D,SAAA,oCAAAZ,EAAAlG,GAyLhC,QAAS0qF,GAAuBxkF,GAC5B,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,kCAAmCZ,EAAKlG,GAGnF,QAAS2qF,GAAuCzkF,GAC5C,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmDZ,EAAKlG,GAGpG,QAAS4qF,GAAsBC,GArL3B,MAAO7lF,GAAMupE,IAAAvrE,EAAK8D,SAAW,kCAAW+jF,EAAuC7qF,GAGnF,QAAS8qF,GAAAC,GACL,MAAO/lF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCikF,EAAK/qF,GAGnF,QAASgrF,GAAAhnE,GAuLL,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAAgCkd,EAAIhkB,GAG/E,QAASirF,GAAoB/kF,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCZ,EAAKlG,GAGjF,QAASkrF,GAAQhlF,GArLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAAZ,EAAAlG,GA3G5CkL,KAAKg9E,oBAAsBA,EArL3Bh9E,KAAA8+E,mBAASA,EAuLT9+E,KAtLI++E,qBAAoBA,EAuLxB/+E,KAAK2+E,sBAAwBA,EAC7B3+E,KAAKq9E,kCAAoCA,EArLzCr9E,KAAAi9E,kBAASA,EAuLTj9E,KAtLIm9E,2BAA4BA,EAuLhCn9E,KAAKo9E,sBAAwBA,EAC7Bp9E,KAAK4+E,kBAAoBA,EArLzB5+E,KAAA6+E,2BAA0BA,EAuL1B7+E,KAtLI+8E,iBAAiBA,EAuLrB/8E,KAAKk9E,yBAA2BA,EAGhCl9E,KAtLIs9E,4BAA6BA,EAuLjCt9E,KAAKu9E,yBAA2BA,EAChCv9E,KAAKw9E,4BAA8BA,EArLnCx9E,KAAAy9E,+BAAkCA,EAuLlCz9E,KAtLI09E,wBAAkBA,EAuLtB19E,KAAK29E,wBAA0BA,EAC/B39E,KAAK49E,mBAAqBA,EArL1B59E,KAAA69E,iBAASA,EAuLT79E,KAtLI89E,mBAAkBA,EAuLtB99E,KAAK+9E,kBAAoBA,EACzB/9E,KAAKg+E,kBAAoBA,EAIzBh+E,KAAKi+E,yBAtL2BA,EAuLhCj+E,KAAKk+E,gBAAkBA,EACvBl+E,KAAKm+E,wBAtLiBA,EAwLtBn+E,KAAKs+E,iBAAmBA,EACxBt+E,KAtLIu+E,uBAAkBA,EAuLtBv+E,KAAKw+E,mBAAqBA,EApL1Bx+E,KAAAy+E,oBAASA,EAuLTz+E,KAtLI0+E,sBAAkBA,EAGtB1+E,KAAAi/E,6BAAyBA,EAuLzBj/E,KAtLIk/E,iBAAaA,EAuLjBl/E,KAAKm/E,gBAtLYA,EA0LjBn/E,KAtLIg/E,2BAAeA,EAyLnBh/E,KAAKo/E,8BAAgCA,EACrCp/E,KAAKq/E,mCAAqCA,EAC1Cr/E,KAAKs/E,mCAAqCA,EArLjDt/E,KAAYu/E,yBAAAA,EACTv/E,KAAAw/E,uBAAAA,EACAx/E,KAAAy/E,uCAAAA,EAuLIz/E,KAtLC0/E,sBAAOA,EAuLR1/E,KAtLC4/E,qBAAQA,EAuLT5/E,KAAK8/E,kBAAoBA,EAnL7B9/E,KAAS+/E,oBAAAA,EAEL//E,KAAKggF,QAAAA,CAEL,IAAAlrF,IACAoN,SACKi/D,MAAArpE,EAAeqK,QA6GxBhO,QACKC,OAAO,0CACP8U,QAAQ,2BAA4B4zE,GAEzCA,EAtLa1b,SAAsB,QAAU,iBA+djD,WAEI,YAQA,SAtLQ6e,GAAkBnmF,EAAWhC,GAqMjC,QAtLIooF,GAAiBllF,GAuLjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAASqrF,GAAsBnlF,GArL3B,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,iCAAkCZ,EAAAlG,GAG7E,QAASsrF,GAAmBplF,GAuLxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAASurF,GAAsBz3D,GArL/B,MAAS9uB,GAAAupE,IAAAvrE,EAAuB8D,SAAA,yCAAAgtB,EAAA9zB,GA4JhCkL,KAAKkgF,mBAAqBA,EArL1BlgF,KAAAqgF,sBAASA,EAuLTrgF,KAAKmgF,sBAAwBA,EAC7BngF,KAtLIogF,sBAAkBA,CA0LtB,IAAItrF,IArLAoN,SAuLIi/D,MAASrpE,EAAWqK,QAjBhChO,QACKC,OAtLG,wBAuLH8U,QAAQ,yBAA0B+2E,GAEvCA,EAtLa7e,SAAA,QAAA,iBA8NjB,WAEI,YAQA,SAASjL,GAAqBr8D,EAAOhC,GAUjC,QAASw+D,GAA+Bt7D,GApLxC,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAI,+CAAAZ,EAAAlG,GA2KpCkL,KAAKs2D,+BAAiCA,CAGtC,IAtLIxhE,IAuLAoN,SACIi/D,MAASrpE,EAAWqK,QAZhChO,QACKC,OAAO,6BACP8U,QAAQ,uBAAwBitD,GAEjCA,EAAqBiL,SAAW,QAAS,iBAoBjD,WAEI,YAQA,SAAShgD,GAAmBtnB,EAAOhC,GAsB/B,QAASwoF,GAAiBC,GArLtB,MAAOzmF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAAuC2kF,EAAAzrF,GAyLnF,QAASitB,GAAY6G,GArLjB,MAAO9uB,GAAMupE,IAAAvrE,EAAK8D,SAAW,2BAAWgtB,EAAA9zB,GAG5C,QAASktB,GAAA4G,GACL,MAAO9uB,GAAMupE,IAAAvrE,EAAK8D,SAAW,wCAAWgtB,EAAA9zB,GAyL5C,QAASwtB,GAAwBsG,GAC7B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAoCgtB,EAAI9zB,GAGnF,QAtLIstB,GAAkBwG,GAuLlB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAAgCgtB,EAAI9zB,GAG/E,QAAS0rF,GAAgB53D,GArLzB,MAAS9uB,GAAAupE,IAAAvrE,EAAoB8D,SAAA,wCAAAgtB,EAAA9zB,GAyL7B,QAAS4uB,GAAakF,GAClB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAiCgtB,EAAI9zB,GAnLjF,QAASgwB,GAAA9pB,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,gCAAAZ,EAAAlG,GAG3C,QAASuvB,GAAAuE,GACL,MAAO9uB,GAAMouE,OAAIpwE,EAAW8D,SAAW,iCAAAgtB,EAAA9zB,GAG3C,QAASgvB,GAAA8E,GACL,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAAgtB,EAAA9zB,GAG5C,QAASkvB,GAAA4E,GACL,MAAO9uB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,wBAAAgtB,EAAA9zB,GAwL3C,QAAS2rF,GAAiB73D,GArL1B,MAAS9uB,GAAAgnE,KAAAhpE,EAAuB8D,SAAK,qBAAAgtB,EAAA9zB,GAqHrCkL,KAtLIsgF,iBAAiBA,EAuLrBtgF,KAAK+hB,YAAcA,EACnB/hB,KAAKgiB,yBAA2BA,EAChChiB,KAAKsiB,wBAA0BA,EAC/BtiB,KAAKwgF,gBAAkBA,EArLvBxgF,KAAAoiB,eAASA,EAuLTpiB,KAAK0jB,aAAeA,EACpB1jB,KAtLI8jB,mBAAiBA,EAuLrB9jB,KAAKgkB,oBAAsBA,EAC3BhkB,KAAKygF,iBAAmBA,EArLxBzgF,KAAA8kB,kBAASA,EAuLT9kB,KAAKqkB,kBAAoBA,CAlLzB,IAAAvvB,IAuLIoN,SArLAi/D,MAAarpE,EAAIqK,QA8JzBhO,QACKC,OAAO,2BACP8U,QAtLG,qBAAiBkY,GAwLzBA,EAAmBggD,SAAW,QAAS,iBA0E3C,WAEI,YAQA,SAtLIsf,GAA2B5mF,EAAIhC,GA0M/B,QAtLS6oF,GAAA3lF,GAuLL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAyBZ,GAnLzE,QAAS4lF,GAAA5lF,GAuLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,GAnLpE,QAAK6lF,GAAA7lF,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,oBAAAZ,GAyL7B,QAAS8lF,GAAmB9lF,GArLxB,MAAAlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,yBAAAZ,GAyLb,QAAS+lF,GAAsB/lF,GAC3B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,GApLzE,QAASgmF,GAAmBhmF,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAAAZ,GAwL5C,QAASimF,GAAejmF,GArLxB,MAASlB,GAAAgnE,KAAAhpE,EAAsB8D,SAAK,qBAAAZ,GAIpC,QAASkmF,GAAAlmF,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAAAZ,GAG5C,QAASmmF,GAAAnmF,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,2BAAAZ,GAyL3C,QAASomF,GAAoBpmF,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,GAGvE,QAASqmF,GAAiBrmF,GACtB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,GAGpE,QAASsmF,GAAStmF,GArLtB,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,qBAAAZ,GAyLI,QAtLQumF,GAAAvmF,GACP,MAAQlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,kBAAAZ,GAqHjCgF,KAAK2gF,kBAAoBA,EArLzB3gF,KAAA4gF,iBAASA,EAuLT5gF,KAtLI6gF,cAAaA,EAuLjB7gF,KAAK8gF,mBAAqBA,EAC1B9gF,KAAK+gF,sBAAwBA,EArL7B/gF,KAAAghF,mBAAsBA,EAuLtBhhF,KAtLIihF,eAAkBA,EAyLtBjhF,KAAKkhF,qBAAuBA,EAC5BlhF,KAAKmhF,qBAAuBA,EArLnCnhF,KAAYohF,oBAAAA,EAuLLphF,KAAKqhF,iBAAmBA,EArL5BrhF,KAAAshF,SAAAA,EAuLIthF,KAAKuhF,YAAcA,EAvBvBptF,QACKC,OAAO,2BArLR8U,QAAS,0BAAqBw3E,GAwLlCA,EAAwBtf,SAAW,QAAS,iBA4EhD,WAEI,YAQA,SAtLQogB,GAAkB1pF,EAAWgC,GAmMjC,QAAS2nF,GAAezmF,GArL5B,GAAAlG,IAuLYoN,SArLHi/D,MAAArpE,EAA0BqK,OAI/B,OADArN,GAAK,aAAA,cACAgF,EAAAgnE,KAAAhpE,EAA0B8D,SAAA,4BAAAZ,EAAAlG,GAG/B,QAAK4sF,GAAe1mF,GACpB,MAAKlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,gCAAAZ,EAAAlG,GAG1B,QAAK6sF,GAAoB3mF,GACzB,MAAKlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,2BAAAZ,EAAAlG,GA2JzBkL,KAAK0hF,4BAA8BA,EACnC1hF,KAAK2hF,8BAAgCA,EACrC3hF,KAAKyhF,eAAiBA,CAItB,IAAI3sF,IArLRoN,SAuLYi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OAAO,gCACP8U,QAAQ,sBAAuBs4E,GAEpCA,EAtLapgB,SAAA,aAA+B,YA0NhD,WAEI,YAQA,SAASwgB,GAAmB9nF,EAAOhC,GAwC/B,QAAS+pF,GAAc7mF,GACnB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BZ,EAAKlG,GAnLpF,QAAYgtF,GAAA9mF,GAuLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAnLnF,QAAAitF,GAAA/mF,GACK,MAAOlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,8BAAAZ,EAAAlG,GAGZ,QAAAktF,GAAwBhnF,GAuLhB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCZ,EAAKlG,GAGjF,QAASmtF,GAAYjnF,GArLrB,MAAKlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,yBAAAZ,EAAAlG,GAGzB,QAAKmlF,GAAqBC,GAC1B,MAAKpgF,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,6CAAAs+E,EAAAplF,GAyL7B,QAASotF,GAAWla,GAChB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAyB9G,GAnLpE,QAAKslF,GAAsBpS,GAC3B,MAAKluE,GAAAupE,IAAAvrE,EAAmB8D,SAAA,wBAAA9G,GAyLxB,QAASqtF,GAAcrpE,GACnB,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAA+Bkd,EAAIhkB,GAG9E,QAASstF,GAAgBtpE,GACrB,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAiCkd,EAAIhkB,GAGhF,QAASutF,GAAiBvpE,GACtB,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAkCkd,EAAIhkB,GAGjF,QAASwtF,GAAkBxpE,GACvB,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,iCAAmCkd,EAAIhkB,GAGlF,QAASytF,GAAYzpE,GACjB,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,2BAA6Bkd,EAAIhkB,GAG5E,QAAS0tF,GAAQ7H,GArLjB,MAAS7gF,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,qBAAA++E,EAAA7lF,GAGjC,QAAS2tF,GAAAznF,GACL,MAAOlB,GAAMitE,IAAAjvE,EAAK8D,SAAW,qBAAWZ,EAAsBlG,GAyLlE,QAAS4tF,GAAW1nF,GArLpB,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAK,qBAAAZ,EAAAlG,GAyLnC,QAAS6tF,GAAkB3nF,GArL3B,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAK,gCAAAZ,EAAAlG,GAyLnC,QAAS8tF,GAAc5nF,GArLvB,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAK,4BAAAZ,EAAAlG,GAyLlC,QAAS+tF,GAAe7nF,GArLxB,MAASlB,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,6BAAAZ,EAAAlG,GAyL/B,QAASguF,GAAmB9nF,GArL5B,MAASlB,GAAAgnE,KAAShpE,EAAK8D,SAAA,iCAAAZ,EAAAlG,GAyLvB,QAASiuF,GAAoB/nF,GArL7B,MAASlB,GAAAgnE,KAAYhpE,EAAK8D,SAAA,kCAAAZ,EAAAlG,GAyL1B,QAASkuF,GAAuBhoF,GAC5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG,GAnL9F,QAAYmuF,GAAAjoF,GAuLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAnLpF,QAAAouF,GAAAloF,GACK,MAAOlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,6BAAAZ,EAAAlG,GAGZ,QAAAquF,GAAoBnoF,GAuLZ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAnLhF,QAAKsuF,GAAApoF,GACL,MAAKlB,GAAAgnE,KAAiBhpE,EAAA8D,SAAA,kCAAAZ,EAAAlG,GAyLtB,QAASuuF,GAAqBroF,GArL1B,MAAAlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,mCAAAZ,EAAAlG,GAyLb,QAASwuF,GAAwBtoF,GAC7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GAGxF,QAtLQyuF,GAASvoF,GAuLb,MAtLIlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,+BAAAZ,EAAAlG,GAyLjB,QAAS0uF,GAAgBxoF,GArLrB,MAAOlB,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,8BAAAZ,EAAAlG,GAyL7B,QAAS2uF,GAAsBzoF,GArL/B,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAiC,oCAAAZ,EAAAlG,GAyL1C,QAAS4uF,GAAkB1oF,GArL3B,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAmC,gCAAAZ,EAAAlG,GAkB5CkL,KAAKo6E,8BAAgCA,EArLrCp6E,KAAAwiF,QAASA,EAuLTxiF,KAtLIyiF,WAAaA,EAuLjBziF,KAAK0iF,WAAaA,EAClB1iF,KAAKkiF,WAAaA,EArLlBliF,KAAAi6E,yBAASA,EAuLTj6E,KAtLI6hF,cAAiBA,EAuLrB7hF,KAAK8hF,gBAAkBA,EACvB9hF,KAAK+hF,iBAAmBA,EArLxB/hF,KAAAgiF,kBAAwBA,EAuLxBhiF,KAtLIiiF,YAAaA,EAuLjBjiF,KAAKmiF,cAAgBA,EACrBniF,KAAKoiF,gBAAkBA,EArLvBpiF,KAAAqiF,iBAASA,EAuLTriF,KAtLIsiF,kBAAiBA,EAuLrBtiF,KAAKuiF,YAAcA,EACnBviF,KAAK2iF,kBAAoBA,EArLzB3iF,KAAA4iF,cAASA,EAuLT5iF,KAtLI6iF,eAAkBA,EAuLtB7iF,KAAK8iF,mBAAqBA,EAC1B9iF,KAAK+iF,oBAAsBA,EArL3B/iF,KAAAgjF,uBAA2BA,EAuL3BhjF,KAtLIijF,gBAAkBA,EAuLtBjjF,KAAKkjF,eAAiBA,EACtBljF,KAAKmjF,gBAAkBA,EArLvBnjF,KAAAojF,oBAA2BA,EAuL3BpjF,KAtLIqjF,qBAAoBA,EAuLxBrjF,KAAKsjF,wBAA0BA,EAC/BtjF,KAAKujF,iBAAmBA,EArLxBvjF,KAAAwjF,gBAASA,EAuLTxjF,KAtLIyjF,sBAAkBA,EAuLtBzjF,KAAK0jF,kBAAoBA,CApLzB,IAAA5uF,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QA1ChChO,QACKC,OAtLG,oCAuLH8U,QAAQ,qBAAsB04E,GAEnCA,EAtLaxgB,SAAgB,QAAA,iBAsWjC,WApLI,YA8LA,SAtLSuiB,GAAU7pF,EAAAhC,GAgBf,QAAK8rF,GAAgB5oF,EAAA6oF,GACrB,GAAK/uF,IACAoN,SACAi/D,MAAArpE,EAAsBqK,OAI3B,OADArN,GAAK,aAAiB,cACjBgF,EAAAgnE,KAAAhpE,EAAkB8D,SAAA,uDAAAZ,EAAAlG,GAIvB,QAAKgvF,KACL,GAAKhvF,IACAoN,SACAi/D,MAAArpE,EAAoBqK,OA0LrB,OAvLArN,GAAA,aAAS,cACLgF,EAASgnE,KAAAhpE,EAAW8D,SAAA,4DAAA9G,GAwL5B,QAAS+vD,GAAUiiB,GACf,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA0BkrE,EAAKhyE,GAE3E,QAtLIowD,GAAkB4hB,GAuLlB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BkrE,EAAKhyE,GAGhF,QAtLIwwD,GAAkBwhB,GAuLlB,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCkrE,EAAKhyE,GAGnF,QAtLI0wD,GAAashB,GAuLb,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BkrE,EAAKhyE,GAG5E,QAtLI6wD,GAAamhB,GAuLb,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BkrE,EAAKhyE,GAzO5EkL,KAAK4jF,sBAAaA,EAClB5jF,KAAK8jF,qCAAaA,EAClB9jF,KAAK6kD,UAAAA,EACL7kD,KAAKklD,eAAAA,EACLllD,KAAKslD,kBAAgBA,EACrBtlD,KAAKwlD,WAAAA,EACLxlD,KAAK2lD,WAAAA,CAEL,IAAA7wD,IACAoN,SACKi/D,MAAArpE,EAAkBqK,QAqK3BhO,QACKC,OAAO,gCArLZ8U,QAAA,2BAAuCy6E,GAEvCA,EAASviB,SAA0B,QAAA,iBAkPvC,WAEI,YAQA,SAAShK,GAAWt9D,EAAOhC,GA+CvB,QAtLIisF,GAAkB/oF,GAOtB,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAK,gBAAAZ,EAAAlG,GAyLrC,QAASkvF,GAAUhpF,GArLnB,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,gBAAAZ,EAAAlG,GAyL9B,QAASmvF,GAAUr7D,GArLnB,MAAS9uB,GAAAouE,OAAepwE,EAAK8D,SAAA,cAAAgtB,EAAA9zB,GAuM7B,QAtLI03D,GAAaxxD,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iBAAkBZ,EAAKlG,GApLnE,QAAS21E,GAAiBzvE,GACtB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAAZ,EAAAlG,GAwL5C,QAASovF,GAAclpF,GArLvB,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,yBAAAZ,EAAAlG,GAwL9B,QAASqvF,GAAQnpF,GACb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,EAAKlG,GAEzE,QAtLIsvF,GAAappF,GAuLb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iBAAkBZ,EAAKlG,GApLnE,QAASuvF,GAAArpF,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAAZ,EAAAlG,GAwL5C,QAASwvF,GAAUtpF,GACf,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gBAAiBZ,EAAKlG,GAElE,QAASyvF,GAAWC,GAChB,MAAO1qF,GAAMupE,IAAIvrE,EAAW8D,SAAW,gBAAkB4oF,EAAO1vF,GAEpE,QAAS2vF,GAAYD,GArL5B,MAAY1qF,GAAAupE,IAAAvrE,EAAA8D,SAAA,mBAAA4oF,EAAA1vF,GAET,QAAAy0E,GAAAib,GAuLQ,MAAO1qF,GAAMupE,IAAIvrE,EAAW8D,SAAW,uBAAyB4oF,EAAO1vF,GAG3E,QAtLSynB,GAAAioE,GAuLL,MAAO1qF,GAAMupE,IAAIvrE,EAAW8D,SAAW,qBAAuB4oF,EAAO1vF,GAnL7E,QAAS4vF,GAAA1pF,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,gBAAAZ,EAAAlG,GAG7B,QAAK6vF,GAAiB3pF,GAEtB,MAAKlB,GAAAgnE,KAAahpE,EAAA8D,SAAA,yBAAAZ,EAAAlG,GA8LlB,QAAS8vF,GAAa5pF,GApLtB,MAASlB,GAAAgnE,KAAAhpE,EAAsB8D,SAAK,sBAAWZ,EAAAlG,GAyL/C,QAAS+vF,GAtLY7pF,GAwLjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAsBZ,EAAKlG,GAGvE,QAASgwF,GAAgB9pF,GAErB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuBZ,EAAKlG,GAGxE,QAtLQiwF,GAAS/pF,GAwLb,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAG7E,QAtLIkwF,GAAkBhqF,GAEtB,MAASlB,GAAAitE,IAAUjvE,EAAK8D,SAAA,6BAAAZ,EAAAlG,GAGxB,QAASmwF,GAAoBjqF,GAwLzB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGlF,QAtLIowF,KAuLA,MAAOprF,GAAMupE,IAAIvrE,EAAW8D,SAAW,sBAAuB9G,GAGlE,QAtLIqwF,KAuLA,MAAOrrF,GAAMupE,IAAIvrE,EAAW8D,SAAW,sBAAuB9G,GAGlE,QAtLIswF,KAuLA,MAAOtrF,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAA+B9G,GAG1E,QAASuwF,KACL,MAAOvrF,GAAMupE,IAAIvrE,EAAW8D,SAAW,mBAAoB9G,GAnLnE,QAAAwwF,GAAA18D,GAuLQ,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,0BAA4BgtB,EAAI9zB,GAG3E,QAtLSywF,KAuLL,MAAOzrF,GAAMupE,IAAIvrE,EAAW8D,SAAW,iCAAkC9G,GAnLjF,QAAS0wF,KAuLD,MAAO1rF,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAA0B9G,GAnLrE,QAAK2wF,KACL,MAAK3rF,GAAAupE,IAAAvrE,EAAA8D,SAA6B,2BAAA9G,GAGlC,QAAK4wF,GAAc1qF,GAEnB,MAAKlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,wBAAAZ,EAAAlG,GAG5B,QAAK6wF,GAAA3qF,GAEL,MAAKlB,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,kBAAAZ,EAAAlG,GAI9B,QAAK4kF,GAAA1+E,GAEL,MAqLIlG,GAAO,aAAkB,cArLxBgF,EAAAgnE,KAAgBhpE,EAAA8D,SAAA,oBAAAZ,EAAAlG,GAGrB,QAAK8wF,GAAa5qF,GAElB,MADAlG,GAAK,aAAgB,cAChBgF,EAAUgnE,KAAAhpE,EAAA8D,SAAA,2BAAAZ,EAAAlG,GA9MfkL,KAAA4kF,aAASA,EAuLT5kF,KAtLIklF,gBAAiBA,EAuLrBllF,KAAK0lF,eAAiBA,EACtB1lF,KAAKslF,2BAA6BA,EArLlCtlF,KAAA6kF,YAASA,EAuLT7kF,KAtLIwlF,mBAAiBA,EAuLrBxlF,KAAK2lF,YAAcA,EApLnB3lF,KAAA4lF,qBAA0BA,EAuL1B5lF,KAtLImlF,gBAAiBA,EAuLrBnlF,KAAKqlF,aAAeA,EACpBrlF,KAAK+kF,sBAAwBA,EArL7B/kF,KAAAolF,wBAA+BA,EAuL/BplF,KAtLIglF,uBAAiBA,EAuLrBhlF,KAAKylF,qBAAuBA,EAC5BzlF,KAAKilF,2BAA6BA,EArLlCjlF,KAAAulF,2BAAyBA,EAuLzBvlF,KAtLI8kF,gBAAiBA,EAwLrB9kF,KAAK+jF,cAAgBA,EArLrB/jF,KAAA2kF,mBAAiBA,EAuLjB3kF,KAtLI0kF,UAAaA,EAuLjB1kF,KAAKokF,WAAaA,EAClBpkF,KAAKuc,cAAgBA,EArLrBvc,KAAAmkF,QAASA,EAuLTnkF,KAtLIwsD,WAAaA,EAuLjBxsD,KAAKyqE,iBAAmBA,EACxBzqE,KAAKkkF,cAAgBA,EArLrBlkF,KAAAupE,gBAAoBA,EAuLpBvpE,KAtLIskF,UAAaA,EAuLjBtkF,KAAKukF,WAAaA,EAClBvkF,KAAKykF,YAAcA,EArLnBzkF,KAAAqkF,SAASA,EAuLTrkF,KAtLIgkF,UAAaA,EAuLjBhkF,KAAKikF,UAAYA,EACjBjkF,KAAK05E,WAAaA,CAjLlB,IAAA5kF,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QAlDhChO,QACKC,OAtLG,mBAuLH8U,QAAQ,aAAckuD,GAE3BA,EAtLIgK,SAAS,QAAA,iBA8YjB,WAEI,YAQA,SAtLQjK,GAASr9D,EAAAhC,GAuMb,QAASuiE,GAAsBhB,GAC3B,MAAOv/D,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA2Cy9D,EAAWvkE,GAKjG,QAAS+wF,GAAiBj9D,GACtB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uCAAwCgtB,EAAI9zB,GAGvF,QAAS2nE,GAAmBzhE,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAK9E,QAASmnE,GAAoB1M,GACzB,MAAOz1D,GAAMitE,IAAIjvE,EAAW8D,SAAW,4BAA6B2zD,EAAUz6D,GAnLlF,QAASynE,GAAgB3zC,GACrB,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,6BAAuBgtB,EAAA9zB,GAkJnEkL,KAAKy8D,mBAtLYA,EAuLjBz8D,KAAKu8D,sBAAwBA,EAC7Bv8D,KAAKi8D,oBAAsBA,EArL3Bj8D,KAAAq6D,sBAA4BA,EAuL5Br6D,KAAK6lF,iBAAmBA,CAIxB,IAAI/wF,IACAoN,SArLAi/D,MAAarpE,EAAKqK,QAoK1BhO,QArLIC,OAAK,4BAuLJ8U,QAAQ,4BAA6BiuD,GAE1CA,EAA0BiK,SAAW,QAAS,iBA+ClD,WAEI,YAQA,SAtLI55C,GAAwB1tB,EAAAhC,GAsNxB,QAASguF,GAAwB9qF,GArL7B,GAAAlG,IAuLIoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OAvLArN,GAAOoN,QAAM,gBAAgBxM,OAuLtBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GApLlF,QAASm0B,GAAqB88D,GAuL1B,MAAOjsF,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAqCmqF,EAAQjxF,GAGxF,QAASkxF,GAAmBD,GArL5B,MAASjsF,GAAAupE,IAAAvrE,EAAsB8D,SAAK,gCAAAmqF,EAAAjxF,GAyLpC,QAASmxF,GAAgBntE,EAAGotE,GACxB,MAAOpsF,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA2Ckd,EAAK,WAAaotE,EAAQpxF,GAGhH,QAtLIqxF,GAAiBnrF,GAuLjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG,GAGvF,QAASsxF,GAAmB5B,EAAO0B,GArL/B,MAAOpsF,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAkC4oF,EAAK,WAAA0B,EAAApxF,GAGlF,QAASuxF,GAAkBz9D,GACvB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAuBgtB,EAAA9zB,GA2LlE,QAASwxF,GAAuB9B,GAC5B,MAAO1qF,GAAMupE,IAAIvrE,EAAW8D,SAAW,wCAA0C4oF,EAAO1vF,GAG5F,QAASyxF,GAAyBvrF,GAC9B,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG3F,QAAS0xF,GAA0BxrF,GAC/B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG5F,QAAS2xF,GAA2BzrF,GAChC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4CZ,EAAKlG,GAG7F,QAAS4xF,GAAkB1rF,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmCZ,EAAKlG,GAGpF,QAAS6xF,GAAoB3rF,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGtF,QAAS8xF,GAAmB5rF,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GAGrF,QAtLI+xF,GAAkB7rF,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAASgyF,GAAuBl+D,GArL5B,MAAO9uB,GAAMupE,IAAAvrE,EAAK8D,SAAW,wCAAmCgtB,EAAA9zB,GAyLpE,QAASiyF,GAAoCn+D,GArL7C,MAAS9uB,GAAAupE,IAAWvrE,EAAK8D,SAAA,qDAAAgtB,EAAA9zB,GAyLzB,QAASkyF,GAAmCp+D,GACxC,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,oDAAqDgtB,EAAI9zB,GAGpG,QAtLImyF,GAA6Br+D,GAuL7B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA4CgtB,EAAI9zB,GAG3F,QAASoyF,GAAyBt+D,GAC9B,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA2CgtB,EAAI9zB,GAI1F,QAASqyF,GAAiBhpF,EAAUqmF,EAAOuB,GArL/C,GAAAjxF,IACYoN,SACCi/D,MAAArpE,EAAAqK,OAIb,OAqLQrN,GAAOoN,QAAQ,gBAAkBxM,OArLhCoE,EAAAgnE,KAAAhpE,EAA0B8D,SAAO,kCAAY4oF,EAAA,WAAAuB,EAAA5nF,EAAArJ,GAGlD,QAAKsyF,GAAAjpF,EAAwBqmF,EAAAuB,GAC7B,GAAKjxF,IACAoN,SACAi/D,MAAArpE,EAAmBqK,OAIpB,OAqLArN,GAAOoN,QAAQ,gBAAkBxM,OArLjCoE,EAASgnE,KAAAhpE,EAAA8D,SAAA,4BAAA4oF,EAAA,WAAAuB,EAAA5nF,EAAArJ,GAyLb,QAASuyF,GAAwBrsF,GAC7B,GAAIlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GAAO,aAAkB,cAClBgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAjJhFkL,KAAKipB,sBAAwBA,EArL7BjpB,KAAAgmF,mBAAoBA,EAuLpBhmF,KAtLIomF,mBAAiBA,EAuLrBpmF,KAAK8lF,wBAA0BA,EArL/B9lF,KAAAmmF,cAAqBA,EAuLrBnmF,KAtLImnF,iBAAiBA,EAuLrBnnF,KAAKonF,WAAaA,EArLlBpnF,KAAAimF,gBAASA,EAuLTjmF,KAtLIqmF,kBAAiBA,EAuLrBrmF,KAAKsmF,uBAAyBA,EApL9BtmF,KAAAwmF,0BAA8BA,EAuL9BxmF,KAtLIymF,2BAA4BA,EAuLhCzmF,KAAK0mF,kBAAoBA,EACzB1mF,KAAK2mF,oBAAsBA,EArL3B3mF,KAAA4mF,mBAAwBA,EAuLxB5mF,KAtLI6mF,iBAAkBA,EAuLtB7mF,KAAK8mF,uBAAyBA,EAC9B9mF,KAAK+mF,oCAAsCA,EArL3C/mF,KAAAgnF,mCAAiCA,EAuLjChnF,KAAKinF,0BAA4BA,EACjCjnF,KAtLIknF,yBAAkBA,EAuLtBlnF,KAAKumF,yBAA2BA,EAChCvmF,KAAKqnF,wBAA0BA,CAE/B,IAAIvyF,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAnChChO,QACKC,OAtLG,mBAuLH8U,QAAQ,uBAAwBse,GAErCA,EAtLqB45C,SAAK,QAAW,iBAiVzC,WAEI,YAQA,SAASlK,GAA2Bp9D,EAAOhC,GAkBvC,QAAS6mE,GAAuB2oB,GArLpC,MAASxtF,GAAAupE,IAAAvrE,EAAqB8D,SAAO,2CAAY0rF,EAAAxyF,GAI7C,QAAK8pE,GAAqBrP,GAC1B,MAAKz1D,GAAAgnE,KAAAhpE,EAA0B8D,SAAA,6BAAA2zD,EAAAz6D,GAG/B,QAAKiqE,GAAaxP,GAClB,MAAKz1D,GAAAitE,IAAAjvE,EAAkB8D,SAAA,6BAAA2zD,EAAAz6D,GAyLvB,QAASmqE,GAAuBr2C,GArLhC,MAAK9uB,GAAAouE,OAAApwE,EAA4B8D,SAAA,8BAAAgtB,EAAA9zB,GAwJjCkL,KAtLI4+D,oBAAoBA,EAuLxB5+D,KAAKi/D,uBAAyBA,EAC9Bj/D,KAAK++D,qBAAuBA,EAE5B/+D,KAAK2+D,uBAAyBA,CAI9B,IAAI7pE,IArLRoN,SAuLYi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OAAO,4BACP8U,QAAQ,6BAA8BguD,GAE3CA,EAtLyBkK,SAAW,QAAW,iBA+NnD,WAEI,YAQA,SAASnK,GAAmBn9D,EAAOhC,GA6B/B,QAAS4mE,GAAe1jE,GACpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAsBZ,EAAKlG,GAGvE,QAAS2kE,GAAuBz+D,GAC5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BZ,EAAKlG,GAnL/E,QAASinE,GAAA/gE,GACL,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,oCAAAZ,EAA0ClG,GAwLrF,QAASwnE,GAAsBthE,GArL/B,MAASlB,GAAAitE,IAAAjvE,EAAA8D,SAA8B,oCAAAZ,EAAAlG,GAyLvC,QAASsqE,GAAgBpkE,GArLzB,MAASlB,GAAAitE,IAAAjvE,EAAA8D,SAA+B,qBAAAZ,EAAAlG,GA6LxC,QAASqqE,GAAkBv2C,GArL3B,MAAS9uB,GAAAouE,OAAApwE,EAAuB8D,SAAA,sBAAAgtB,EAAA9zB,GAyLhC,QAAS0nE,GAAyB5zC,GArLlC,MAAS9uB,GAAAouE,OAAApwE,EAAyB8D,SAAA,6BAAAgtB,EAAA9zB,GAyLlC,QAASyiE,GAAkBz+C,GArL3B,MAAShf,GAAAupE,IAAAvrE,EAAmB8D,SAAK,8BAAAkd,EAAAhkB,GAyLjC,QAASijE,KArLT,MAASj+D,GAAAupE,IAAAvrE,EAAsB8D,SAAA,gDAAA9G,GAyL/B,QAAS6mE,GAA8B/yC,GArLvC,MAAS9uB,GAAAupE,IAAAvrE,EAAuB8D,SAAI,qDAAAgtB,EAAA9zB,GAIpC,QAAS+iE,GAAAjvC,GACL,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uCAAAgtB,EAAA9zB,GAG3C,QAAS+kE,GAAA7+D,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,8BAAAZ,EAAAlG,GAG3C,QAAS+nE,KACL,MAAO/iE,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAAA9G,GAG3C,QAASonD,GAAyBD,GAC9B,MAAOniD,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA2CqgD,EAAInnD,GAyL1F,QAAS6kE,GAAsC3+D,GArL/C,MAASlB,GAAAgnE,KAAAhpE,EAAiB8D,SAAiB,kCAAQZ,EAAAlG,GAxFnDkL,KAAA0+D,eAASA,EAuLT1+D,KAtLIo/D,gBAAaA,EAuLjBp/D,KAAKu3D,kBAtLYA,EAwLjBv3D,KAAK65D,gBAAkBA,EACvB75D,KAAKk8C,yBAA2BA,EAChCl8C,KAtLI25D,sCAAiCA,EAuLrC35D,KAtLI68D,eAAkBA,EAuLtB78D,KAAK63D,gBAAkBA,EArLvB73D,KAAAy5D,uBAASA,EAuLTz5D,KAtLI+3D,0BAA4BA,EAuLhC/3D,KAAK27D,8BAAgCA,EACrC37D,KAAK+7D,sBAAwBA,EArL7B/7D,KAAAs8D,sBAA4BA,EAuL5Bt8D,KAtLIw8D,yBAA4BA,EAuLhCx8D,KAAKm/D,kBAAoBA,CAhLzB,IAAArqE,IACIoN,SAuLIi/D,MAASrpE,EAAWqK,QA/BhChO,QArLIC,OAAK,4BAuLJ8U,QAAQ,qBAAsB+tD,GAEnCA,EAtLiBmK,SAAA,QAAA,iBAuRrB,WAEI,YAQA,SAAS9B,GAAYxnE,EAAYgC,GAa7B,QAASytF,KACL,OACIrlF,SACIi/D,MAASrpE,EAAWqK,QAKhC,QAASo9D,KApLR,MAAOzlE,GAAAupE,IAAAvrE,EAAA8D,SAAA,gBAAA2rF,KAGZ,QAAAC,GAA2BC,GAuLnB,MAAO3tF,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA4C6rF,EAAQF,KAnL/F,QAAKG,GAAsBD,EAAAjsF,GAC3B,MAAK1B,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,wBAAA6rF,EAAAjsF,EAAA+rF,KAO9B,QAAIxnB,GAASN,GACT,MAAA3lE,GAASgnE,KAAAhpE,EAAA8D,SAAA,cAAA6jE,EAAA8nB,KAyLb,QAASznB,GAASL,GACd,MAAO3lE,GAAMitE,IAAIjvE,EAAW8D,SAAW,cAAe6jE,EAAM8nB,KAnLhE,QAAS3nB,GAAAh3C,GACL,MAAO9uB,GAAMouE,OAAIpwE,EAAW8D,SAAW,eAAAgtB,EAAA2+D,KAwL3C,QAASvnB,GAAiBp3C,GACtB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAuBgtB,KAAQ2+D,KAE3E,QAtLII,KAuLA,MAAO7tF,GAAMupE,IAAIvrE,EAAW8D,SAAW,qBAAsB2rF,KApDjEvnF,KAtLI+/D,QAAOA,EAuLX//D,KAtLI8/D,SAAOA,EAuLX9/D,KAAK4/D,WAAaA,EAClB5/D,KAAKu/D,WAAaA,EArLlBv/D,KAAAwnF,mBAASA,EAuLTxnF,KAtLI0nF,oBAAaA,EAuLjB1nF,KAAKggE,iBAtLYA,EAuLjBhgE,KAAK2nF,cAtLgBA,EAwKzBxzF,QArLIC,OAAA,oBAuLC8U,QAtLO,cAASo2D,GAwLrBA,EAAY8B,SAtLI,aAAoB,YAkPxC,WAEI,YAQA,SAASwmB,GAAyB9tF,EAAOhC,GAvKrC,QAAK+vF,GAAkB7sF,GAEvB,MAAKlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,sCAAwCZ,EAAAlG,GAG7C,QAAKgzF,GAAA9sF,GAEL,MAAKlB,GAAAgnE,KAAAhpE,EAAA8D,SAAgC,uCAAAZ,EAAAlG,GAGrC,QAAKizF,GAAA/sF,GAwLD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG5F,QAASkzF,GAAiBhtF,GApLtB,MAAAlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,wCAAAZ,EAAAlG,GAyLb,QAASmzF,GAAuBjtF,GAE5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAA+CZ,EAAKlG,GAGhG,QAASozF,GAAuBltF,GApLhC,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAK,8CAAAZ,EAAAlG,GAkMrC,QAtLIqzF,GAAiBntF,GAuLjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG5F,QAASszF,GAAoBptF,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4CZ,EAAKlG,GAG7F,QAtLIuzF,GAAoBrtF,GAuLpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAA+CZ,EAAKlG,GAGhG,QAtLIwzF,GAAoBttF,GAuLpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6CZ,EAAKlG,GAG9F,QAtLIyzF,GAA4BvtF,GAuL5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmDZ,EAAKlG,GApLpG,QAAS0zF,GAAAxtF,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,2CAAAZ,EAAiDlG,GAQ5F,QAAS2zF,GAAgBztF,GACrB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,yCAAyCZ,EAAIlG,GAlF5FkL,KAAA6nF,eAAAA,EAuLI7nF,KAAK8nF,gBAAkBA,EArL3B9nF,KAAA+nF,mBAAAA,EAuLI/nF,KAtLCgoF,iBAAOA,EAuLRhoF,KAtLCioF,uBAAQA,EAuLTjoF,KAAKkoF,uBAAyBA,CAnLlC,IAAApzF,IAuLQoN,SArLCi/D,MAAArpE,EAAiBqK,OA0NtBnC,MAtLImoF,mBAAiBA,EAuLrBnoF,KAAKooF,oBAAsBA,EArL3BpoF,KAAAqoF,uBAASA,EAuLTroF,KAtLIsoF,qBAAiBA,EAuLrBtoF,KAAKuoF,2BAA6BA,EAClCvoF,KAAKwoF,oBAAsBA,EA4B3BxoF,KAAKyoF,kBAAoBA,EAtF7Bt0F,QACKC,OAAO,kCACP8U,QAAQ,2BAA4B0+E,GAEzCA,EAAyBxmB,SAAW,QAAS,iBA2FjD,WAEI,YAQA,SAtLQ9f,GAAkBxnD,EAAAhC,GAgBtB,QAAK4wF,GAAU1tF,GACf,MAAKlB,GAAWgnE,KAAAhpE,EAAA8D,SAAA,6BAAAZ,EAAAlG,GAGhB,QAAK6zF,GAAA9kC,GACL,MAAK/pD,GAAAupE,IAAAvrE,EAAsB8D,SAAA,2BAAAioD,EAAA/uD,GAyL3B,QAAS8zF,GAAmB/kC,EAAYhuD,EAAWmhC,EAASqsB,EAAeu0B,EAASjiF,GAChF,MAAOmE,GAAMupE,IAAIvrE,EAAW8D,SAAW,iCAAmCioD,EAAa,cAAgBhuD,EAAY,YAAcmhC,EAAU,kBAAoBqsB,EAAgB,YAAcu0B,EAAU,WAAajiF,EAAQb,GAnLhO,QAAS+zF,GAAY5hC,GACjB,MAAOntD,GAAAgnE,KAAAhpE,EAAA8D,SAAA,mBAAAqrD,EAAAnyD,GAyLX,QAASg0F,GAAgB7hC,GACrB,MAAOntD,GAAMitE,IAAIjvE,EAAW8D,SAAW,mBAAoBqrD,EAAMnyD,GAnLrE,QAASi0F,GAAangE,GAuLlB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,oBAAsBgtB,EAAI9zB,GApCxEkL,KAAK6oF,aAAeA,EACpB7oF,KAAK8oF,gBAAkBA,EACvB9oF,KAAK+oF,gBAAkBA,EACvB/oF,KAAK2oF,gBAAkBA,EArL9B3oF,KAAY0oF,iBAAAA,EAuLL1oF,KAAK4oF,mBAAqBA,CAI1B,IAtLC9zF,IACAoN,SAuLOi/D,MAASrpE,EAAWqK,QAlBhChO,QArLIC,OAAA,2BAuLC8U,QAtLG,mBAAiBo4C,GAwLzBA,EAAiB8f,SAAW,QAAS,iBAgDzC,WAEI,YAQA,SAAS4nB,GAAyBlvF,EAAOhC,GAkBrC,QAASmxF,GAAuBjhB,GArLpC,MAAAluE,GAAAupE,IAAAvrE,EAAA8D,SAAA,oCAAA9G,GAyLI,QAtLQo0F,GAAAlhB,GACP,MAAQluE,GAAAupE,IAAAvrE,EAAA8D,SAA4B,wCAAAgtB,GAAA9zB,GAyLrC,QAASq0F,GAAoBC,GArLjC,MAAStvF,GAAAgnE,KAAAhpE,EAAyB8D,SAAO,wBAAYwtF,EAAAt0F,GAGjD,QAAKu0F,GAAqBD,GAC1B,MAAKtvF,GAAAitE,IAAAjvE,EAAmB8D,SAAA,wBAAAwtF,EAAAt0F,GAyLxB,QAASw0F,GAAqB1gE,GAC1B,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,yBAA2BgtB,EAAI9zB,GAG7E,QAtLQy0F,GAAoB3gE,GAuLxB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,gDAAkDgtB,EAAI9zB,GAnLjG,QAAS00F,GAAoB5gE,GAuLzB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,8CAA+C9G,GAG1F,QAAS20F,GAA2B7gE,GArLpC,MAAS9uB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,+BAAAgtB,KAAA9zB,GAyL7B,QAAS40F,GAAyB1uF,GAC/B,GAAIlG,IArLRoN,SAuLYi/D,MAASrpE,EAAWqK,OAExBk/D,aAAc,cApLtB,OAASvnE,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,4CAAAZ,EAAAlG,GAxD/BkL,KAAAmpF,oBAAwBA,EAuLxBnpF,KAtLIqpF,qBAAiBA,EAuLrBrpF,KAAKspF,qBAAuBA,EAC5BtpF,KAAKipF,uBAAyBA,EArL9BjpF,KAAA2pF,sBAAwBT,EAuLxBlpF,KAtLIupF,wBAAoBA,EAuLxBvpF,KAAKwpF,4BAA8BA,EArLnCxpF,KAAAypF,2BAA8BA,EAuL9BzpF,KAtLI0pF,yBAAkBA,CAyLtB,IAtLI50F,IAuLAoN,SACIi/D,MAASrpE,EAAWqK,QApBhChO,QACKC,OAAO,gCACP8U,QAAQ,2BAA4B8/E;AAEzCA,EAtLqB5nB,SAAK,QAAW,iBAsPzC,WAEI,YAQA,SAASwoB,GAAyB9vF,EAAOhC,GAjKrC,QAAS+xF,GAAA7uF,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAAAZ,EAAAlG,GAG5C,QAASg1F,KACL,MAAOhwF,GAAMupE,IAAAvrE,EAAK8D,SAAW,8BAAW9G,GA2L5C,QAASi1F,KACL,MAAOjwF,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAgC9G,GAnL3E,QAAKk1F,GAAAhiB,GAuLD,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,0BAA2B9G,GAGtE,QAASm1F,GAAkBj1F,GACvB,MAAO8E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAqB5G,EAAOF,GAGxE,QAASo1F,GAAmBl1F,GArLnC,MAAY8E,GAAAitE,IAAAjvE,EAAA8D,SAAA,oBAAA5G,EAAAF,GAyLL,QAASq1F,GAAqBvhE,GArLlC,MAAA9uB,GAAAouE,OAAApwE,EAAA8D,SAAA,qBAAAgtB,EAAA9zB,GAyLI,QAASs1F,GAA2BxhE,GArLxC,MAAA9uB,GAAiBgnE,KAAAhpE,EAAoB8D,SAAA,2BAAAgtB,KAAA9zB,GAGjC,QAAKu1F,GAAehtD,EAAAzU,GACpB,MAAK9uB,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,mCAAAyhC,EAAA,OAAAzU,KAAA9zB,GAGvB,QAAKw1F,GAAmBtvF,GACxB,GAAKlG,IAuLGoN,SACIi/D,MAASrpE,EAAWqK,OApL5Bk/D,aAAS,cAwLT,OAtLIvnE,GAASgnE,KAAAhpE,EAAW8D,SAAA,kCAAAZ,EAAAlG,GAqH5BkL,KAAKiqF,kBAAoBA,EArLzBjqF,KAAKkqF,mBAAqBA,EAC1BlqF,KAAKmqF,qBAAsBA,EAC3BnqF,KAAK6pF,YAAAA,EACL7pF,KAAKgqF,aAAAA,EACLhqF,KAAKoqF,2BAA6BA,EAClCpqF,KAAK+pF,eAAAA,EAuLL/pF,KAAKqqF,qBAAuBA,EArL5BrqF,KAAA8pF,kBAASA,EAwLT9pF,KAAKsqF,qBAAuBA,CAI5B,IAAIx1F,IACAoN,SArLJi/D,MAASrpE,EAAAqK,QA+JbhO,QArLIC,OAAA,wBAuLC8U,QAAQ,2BAA4B0gF,GAEzCA,EAAyBxoB,SAAW,QAAS,iBA2EjD,WAEI,YAQA,SAtLQmpB,GAAkBzwF,EAAWhC,GAwMjC,QAASuyF,GAAqBhtD,EAAMzU,GArLxC,MAAA9uB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,mCAAAyhC,EAAA,OAAAzU,EAAA9zB,GAyLI,QAtLQ01F,KACP,MAAQ1wF,GAAAupE,IAAAvrE,EAAA8D,SAA4B,oCAAA9G,GAyLrC,QAAS21F,GAAkBC,GArL/B,MAAS5wF,GAAAitE,IAAAjvE,EAAyB8D,SAAO,uBAAY8uF,EAAA51F,GAGjD,QAAK61F,GAAAD,GACL,MAAK5wF,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,uBAAA8uF,EAAA51F,GAG9B,QAAK81F,GAAAhiE,GACL,MAAK9uB,GAAAouE,OAAApwE,EAA6B8D,SAAA,wBAAAgtB,EAAA9zB,GAyLlC,QAAS+1F,GAAqBC,GArL1B,MAAAhxF,GAASupE,IAAAvrE,EAAA8D,SAAA,uCAAAgtB,GAAA9zB,GAyLb,QAASi2F,GAAuBC,GAC5B,MAAOlxF,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA4CovF,EAAQl2F,GAI/F,QAASm2F,GAAejwF,GACpB,GAAIlG,IArLRoN,SACWi/D,MAAUrpE,EAAWqK,OAwLxBk/D,aAAc,cApLlB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAAyBZ,EAAAlG,GAiIrEkL,KAAKwqF,oBAAsBA,EAC3BxqF,KAAK2qF,iBAAmBA,EArLxB3qF,KAAAyqF,kBAAyBA,EAuLzBzqF,KAtLI4qF,oBAAiBA,EAuLrB5qF,KAAK6qF,qBAAuBA,EAC5B7qF,KAAK+qF,uBAAyBA,EArL9B/qF,KAAAirF,eAASA,EAuLTjrF,KAtLIqqF,qBAAoBA,CA0LxB,IAtLIv1F,IAuLAoN,SACIi/D,MAASrpE,EAAWqK,QApBhChO,QArLIC,OAAA,wBAuLC8U,QAtLG,uBAA4BqhF,GAwLpCA,EAAqBnpB,SAAW,QAAS,iBA4D7C,WAEI,YAQA,SAASjnE,GAAYL,EAAOhC,GAnJxB,QAAKiyB,GAAc/uB,GACnB,MAAKlB,GAAAgnE,KAAehpE,EAAA8D,SAAA,kBAAAZ,EAAAlG,GAGpB,QAAKu7B,GAAAr1B,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,8BAAAZ,EAAAlG,GAyLzB,QAASo2F,GAAY7oF,GACjB,MAAOvI,GAAMupE,IAAIvrE,EAAW8D,SAAW,oBAAsByG,GAGjE,QAtLI8oF,GAAS9oF,GAuLT,MAtLIvI,GAASupE,IAAAvrE,EAAW8D,SAAA,6BAAAyG,EAAAvN,GAI5B,QAASs2F,KACL,MAAOtxF,GAAMupE,IAAAvrE,EAAK8D,SAAW,iBAGjC,QAASyvF,GAAoBC,GACzB,MAAOxxF,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAAA0vF,GAyL3C,QAASC,GAAiBlpF,GACtB,MAAOvI,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAA2ByG,GAGtE,QAASmpF,GAAmBnpF,GACxB,MAAOvI,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA4CyG,EAAQvN,GAG/F,QAAS22F,GAAoBppF,EAAQ7G,GACjC,MAAO1B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAA0ByG,EAAQ7G,EAAU1G,GAGxF,QAAS42F,GAAsBC,GAC3B,MAAO7xF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8B+vF,EAAY72F,GAGtF,QAAS82F,GAAWC,GAChB,MAAO/xF,GAAMitE,IAAIjvE,EAAW8D,SAAW,cAAeiwF,EAAM/2F,GAGhE,QAASg3F,GAAWD,GAChB,MAAO/xF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAeiwF,EAAM/2F,GAGjE,QAASi3F,GAAqBF,GAC1B,MAAO/xF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAyBiwF,EAAM/2F,GAE3E,QAtLIk3F,GAAkBH,GAuLlB,MAAO/xF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuBiwF,EAAM/2F,GAGzE,QAtLQm3F,GAASrjE,GAuLb,MAtLI9uB,GAASouE,OAAApwE,EAAA8D,SAAA,eAAAgtB,EAAA9zB,GAyLjB,QAtLQo3F,GAAcL,GAuLlB,MAAO/xF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAyBiwF,EAAM/2F,GAG3E,QAASq3F,GAAeC,GACpB,GAAIpxF,IACA+3C,QAASq5C,EAEb,OAAOtyF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAyBZ,EAAKlG,GAnL9E,QAAAu3F,GAAA1qB,GAuLQ,GAAI3mE,IArLZsxF,SAAA3qB,EAEK,OAAQ7nE,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,qBAAAZ,EAAAlG,GAyLjC,QAASuL,GAAcF,GArL3B,MAASrG,GAAAupE,IAAAvrE,EAAqB8D,SAAO,sBAAYuE,EAAArL,GAG7C,QAAKy3F,GAAAvxF,GACLk3B,QAAKC,IAAAr6B,EAAsB00F,iBAAA,oBAAAxxF,EAAAuF,QAAA,aAAAvF,EAAAwF,UAI3B,QAAKqpB,GAAuB3X,EAAA/R,GAuLxB,MAAOrG,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAoCsW,EAAY,aAAe/R,EAAUrL,GAnLpH,QAAIi+B,GAAS/3B,GACT,MAAAlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,sBAAAZ,EAAAlG,GAyLb,QAASo+B,GAAmBl4B,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,EAAKlG,GAG5E,QAASmlC,GAAoBj/B,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BZ,EAAKlG,GAG7E,QAASk9B,GAAmBh3B,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA2BZ,EAAKlG,GAG5E,QAAS8+B,GAAgB54B,GACrB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,EAAKlG,GApUzEkL,KAAAorF,YAASA,EAuLTprF,KAtLIwrF,mBAAiBA,EAuLrBxrF,KAAKyrF,oBAAsBA,EAC3BzrF,KAAKurF,iBAAmBA,EArLxBvrF,KAAAkrF,YAASA,EAuLTlrF,KAtLI0rF,sBAAkBA,EAuLtB1rF,KAAKmsF,eAAiBA,EACtBnsF,KAAKqsF,cAAgBA,EACrBrsF,KAtLC8rF,WAASA,EAuLV9rF,KAtLIqrF,oBAAaA,EAuLjBrrF,KAAKisF,WAtLYA,EAuLjBjsF,KAAK4rF,WAtLOA,EAuLZ5rF,KAAKksF,iBAAmBA,EACxBlsF,KAAKmrF,yBAtLiBA,EAuLtBnrF,KAAK+rF,qBAAuBA,EAC5B/rF,KAtLIgsF,eAAkBA,EAuLtBhsF,KAAK+pB,aAAeA,EACpB/pB,KAAKqwB,gBAAkBA,EACvBrwB,KAAKK,cAAgBA,EACrBL,KAAKusF,WAAaA,EArLzBvsF,KAAY6pB,0BAAAA,EAuLL7pB,KAAK+yB,eAAiBA,EArL1B/yB,KAAAkzB,mBAAAA,EAuLIlzB,KAAKi6B,oBAAqBA,EArL9Bj6B,KAAAgyB,mBAAAA,EAuLIhyB,KAtLC4zB,gBAAOA,CAwLR,IAAI9+B,IArLRoN,SAuLYi/D,MAASrpE,EAAWqK,QApChChO,QACKC,OAAO,wBACP8U,QAAQ,cAAe/O,GAE5BA,EAtLQinE,SAAa,QAAI,iBA+U7B,WAEI,YAQA,SAtLIqrB,GAAwB3yF,EAAKhC,GAmBjC,QAAY40F,GAAoB5zE,GAuLxB,MAAOhf,GAAMouE,OAAOpwE,EAAW8D,SAAW,sCAAuCkd,EAAIhkB,GApLzF,QAAK63F,GAAc7zE,GACnB,MAAKhf,GAAAouE,OAAApwE,EAAqB8D,SAAA,0CAAAkd,EAAAhkB,GAE1B,QAAK83F,GAAmB5xF,GACxB,MAAKlB,GAAAgnE,KAAchpE,EAAA8D,SAAA,oCAAAZ,EAAAlG,GAGnB,QAAK+3F,GAAgB7xF,GACrB,MAAKlB,GAAAgnE,KAAahpE,EAAA8D,SAAA,wCAAAZ,EAAAlG,GAGlB,QAAKg4F,GAAa9xF,GAClB,MAAKlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,4CAAAZ,EAAAlG,GAGxB,QAAKi4F,GAAiB/xF,GACtB,MAAKlB,GAAAgnE,KAAehpE,EAAA8D,SAAA,uCAAAZ,EAAAlG,GAEpB,QAAKk4F,GAAgBhyF,GACrB,MAAKlB,GAAAgnE,KAAahpE,EAAA8D,SAAA,sCAAAZ,EAAAlG,GAGlB,QAAKm4F,GAAqBjyF,GAC1B,MAAKlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,gDAAAZ,EAAAlG,GAE1B,QAAKo4F,GAAiBlyF,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iDAAkDZ,EAAKlG,GAEnG,QAtLIq4F,GAASnyF,GAuLT,MAtLIlB,GAASgnE,KAAAhpE,EAAW8D,SAAA,qDAAAZ,EAAAlG,GAwL5B,QAASs4F,KACL,MAAOtzF,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAqC9G,GApLhF,QAASu4F,GAAkBryF,GACvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwBZ,EAAAlG,GA8HpEkL,KAtLI4sF,mBAAaA,EAuLjB5sF,KAAKitF,uBAtLYA,EAuLjBjtF,KAAKotF,qBAtLgBA,EAuLrBptF,KAAKgtF,qBAAuBA,EAC5BhtF,KAAK6sF,uBAtLiBA,EAuLtB7sF,KAAK8sF,2BAA6BA,EAClC9sF,KAtLIktF,sBAAkBA,EAuLtBltF,KAAK+sF,4BAA8BA,EACnC/sF,KAAKmtF,0BAA2BA,EAChCntF,KAAK0sF,yBAA0BA,EArLtC1sF,KAAY2sF,6BAAAA,EAuLL3sF,KAAKqtF,sBAAwBA,CAE7B,IAAIv4F,IArLRoN,SACYi/D,MAAArpE,EAAAqK,QAgKZhO,QArLIC,OAAA,2BAuLC8U,QAtLG,wBAA4BujF,GAwLpCA,EAAsBrrB,SAAW,QAAS,iBAiE9C,WACI,YAMA,SAAS7rC,GAAoBz7B,EAAOhC,GA5IhC,QAASw1F,GAAetyF,GACpB,MAAOlB,GAAMgnE,KAAAhpE,EAAO8D,SAAW,uCAAgCZ,EAAAlG,GAGnE,QAASy4F,GAAuB33D,GAC5B,MAAO97B,GAAMupE,IAAAvrE,EAAK8D,SAAW,4CAA0Cg6B,EAAA9gC,GAG3E,QAAS04F,GAAsBxyF,GAC3B,MAAIlB,GAAMgnE,KAAAhpE,EAAA8D,SAAA,wCAAAZ,EAAAlG,GAyLd,QAtLI24F,GAA6B73D,EAAW7M,GAuLxC,MAAOjvB,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA6Cg6B,EAAY,WAAa7M,EAAcj0B,GAG/H,QAtLQ44F,GAAM1yF,GAuLV,MAtLIlB,GAAAgnE,KAAUhpE,EAAA8D,SAAA,gDAAAZ,EAAAlG,GAyLlB,QAAS64F,GAAqC/3D,EAAW7M,GACrD,MAAOjvB,GAAMupE,IAAIvrE,EAAW8D,SAAW,qDAAuDg6B,EAAY,WAAa7M,EAAcj0B,GAGzI,QAASmvE,GAA2BL,EAAMM,EAAcC,GACpD,MAAOrqE,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA6CgoE,EAAO,iBAAmBM,EAAe,eAAiBC,EAAYrvE,GAG9J,QAASsvE,GAA8BppE,GACnC,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAA8CZ,EAAKlG,GAG/F,QAtLIuvE,GAA4BrpE,GAuL5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GAGxF,QAtLIwvE,GAAkBtpE,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG,GAGvF,QAtLIyvE,GAA6BvpE,GAuL7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG5F,QAtLI0vE,GAA6BxpE,GAuL7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GAG5F,QAtLI2vE,GAAkBzpE,GAuLlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAGnF,QAtLI84F,GAA6B5yF,GAuL7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4CZ,EAAKlG,GAG7F,QAAS+4F,GAAqB7yF,GAC1B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAnL7F,QAAYsgC,GAAA4H,GAuLD,MAAOljC,GAAMouE,OAAOpwE,EAAW8D,SAAW,+BAAiCohC,EAAKloC,GAnLxF,QAAAykC,GAAAp7B,GAEK,GAAArJ,IAuLOoN,SArLZi/D,MAAsBrpE,EAAWqK,OAI7B,OADArN,GAAKoN,QAAA,gBAAqBxM,OACrBoE,EAAAgnE,KAAAhpE,EAAyB8D,SAAA,sCAAAuC,EAAArJ,GAG9B,QAAKg5F,GAAAC,GACL,MAAKj0F,GAAAupE,IAAAvrE,EAAA8D,SAA6B,+BAAAmyF,EAAAj5F,GAElC,QAAKk5F,KACL,MAAKl0F,GAAAupE,IAAAvrE,EAA2B8D,SAAA,kBAAA9G,GAEhC,QAAKggC,GAAAi5D,GACL,MAAKj0F,GAAAupE,IAAAvrE,EAAwB8D,SAAA,yCAAAmyF,EAAAj5F,GA2L7B,QAASm5F,GAAcjzF,GACnB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGtF,QAASo5F,GAAelzF,GArLxB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAiC,qCAAAZ,EAAAlG,GAG1C,QAASq5F,GAAAnzF,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAAqCZ,EAAKlG,GAGtF,QAASs5F,GAAApzF,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAAZ,EAAAlG,GAG5C,QAASiqD,GAAA/jD,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAAZ,EAAAlG,GA0L5C,QAtLIu5F,GAAkBrzF,GAEtB,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAK,qCAAAZ,EAAAlG,GAyLnC,QAASw5F,GAAYtzF,GArLrB,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAK,yCAAAZ,EAAAlG,GAGrC,QAASy5F,GAAAvzF,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAAZ,EAAAlG,GAwB5CkL,KAAKutF,4BAA8BA,EArLnCvtF,KAAAwtF,yBAAuBA,EAuLvBxtF,KAtLIytF,2BAA4BA,EAuLhCztF,KAAK0tF,iCAAmCA,EACxC1tF,KAAK2tF,qCAAuCA,EArL5C3tF,KAAAikE,2BAA6BA,EAuL7BjkE,KAtLIokE,8BAA4BA,EAuLhCpkE,KAAKqkE,uBAAyBA,EAC9BrkE,KAAKskE,sBAAwBA,EArL7BtkE,KAAAukE,2BAAkCA,EAuLlCvkE,KAtLIwkE,2BAA4BA,EAuLhCxkE,KAAKykE,kBAAoBA,EACzBzkE,KAAKu5B,uBAAyBA,EArL9Bv5B,KAAA6tF,qBAA4BA,EAuL5B7tF,KAtLI8tF,oBAAiBA,EAuLrB9tF,KAAKguF,WAAaA,EAClBhuF,KAAKo1B,oBAAsBA,EArL3Bp1B,KAAA80B,yBAA6BA,EAuL7B90B,KAtLI4tF,4BAA6BA,EAuLjC5tF,KAAKstF,gBAAiBA,EAGtBttF,KAtLIiuF,cAAaA,EAuLjBjuF,KAAKkuF,eAAiBA,EACtBluF,KAAKmuF,kBAAoBA,EArLzBnuF,KAAAouF,WAASA,EAuLTpuF,KAtLI++C,WAAaA,EAuLjB/+C,KAAKquF,eAAiBA,EACtBruF,KAAKsuF,YAAcA,EArLnBtuF,KAAAuuF,gBAAoBA,CAyLpB,IAAIz5F,IArLJoN,SACIi/D,MAAarpE,EAAKqK,MAuLdwzE,8BAA+B,MA1C3CxhF,QACKC,OAAO,4BACP8U,QAAQ,sBAAuBqsB,GAEpCA,EAtLe6rC,SAAU,QAAW,iBA2VxC,WAEI,YAQA,SAASotB,GAAiB10F,EAAOhC,GA1K7B,QAAK22F,GAAAC,GACL,MAAK50F,GAAAgnE,KAAAhpE,EAAA8D,SAAmC,mBAAA8yF,EAAA55F,GAGxC,QAAK65F,GAAA3zF,GACL,MAAKlB,GAAAitE,IAAAjvE,EAAyB8D,SAAA,mBAAAZ,EAAAlG,GAflCkL,KAAAyuF,aAAAA,EACAzuF,KAAA2uF,gBAAAA,CAyLI,IAAI75F,IArLRoN,SACSi/D,MAAArpE,EAAoBqK,QAwK7BhO,QACKC,OAtLG,yBAuLH8U,QAAQ,mBAAoBslF,GAEjCA,EAAiBptB,SAAW,QAAS,iBA2BzC,WAEI,YAQA,SAtLSwtB,GAAa90F,EAAAhC,GAiMlB,QAAS+2F,GAAqB7zF,GAE1B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GApLnF,QAASg6F,GAAgB9zF,GAwLrB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCZ,EAAKlG,GApLjF,QAASi6F,GAAA/zF,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,yBAAAZ,EAAAlG,GAlB3CkL,KAAK6uF,qBAAiBA,EACtB7uF,KAAK8uF,mBAAcA,EACnB9uF,KAAK+uF,aAAAA,CAwLL,IAAIj6F,IArLAoN,SACAi/D,MAASrpE,EAAAqK,QAwKjBhO,QACKC,OAAO,yBACP8U,QAAQ,+BAAgC0lF,GAE7CA,EAtL0BxtB,SAAA,QAAA,iBAoN9B,WAEI,YAQA,SAAS4tB,GAAwBl3F,EAAYgC,GArKzC,QAASkuD,GAAAhtD,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAAAZ,EAAAlG,GAG5C,QAASm6F,GAAAj0F,GAwLL,MAvLAlG,GAAO,aAAW,cAuLXgF,EAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GApLrF,QAASo6F,GAAApoB,GACL,MAAOhtE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAAkrE,EAAkChyE,GAwL9E,QAASq6F,GAAmBroB,GArL5B,MAAShtE,GAAAgnE,KAAAhpE,EAAA8D,SAAiC,oCAAAkrE,EAAAhyE,GAyL1C,QAASs6F,GAAsBtoB,GArL/B,MAAShtE,GAAAgnE,KAAAhpE,EAAqB8D,SAAK,uCAAAkrE,EAAAhyE,GAyLnC,QAASu6F,GAAevoB,GArLxB,MAAShtE,GAAAgnE,KAAAhpE,EAAoB8D,SAAK,gCAAAkrE,EAAAhyE,GAyLlC,QAASw6F,GAAexoB,GArLxB,MAAShtE,GAAAgnE,KAAAhpE,EAAuB8D,SAAU,gCAAAkrE,EAAAhyE,GAxC1CkL,KAAAivF,uBAASA,EAuLTjvF,KAtLIgoD,aAAaA,EAuLjBhoD,KAAKkvF,cAAgBA,EApLrBlvF,KAAAmvF,mBAASA,EAuLTnvF,KAtLIovF,sBAAkBA,EAuLtBpvF,KAAKqvF,eAAiBA,EACtBrvF,KAAKsvF,eAAiBA,CAGtB,IAAIx6F,IACAoN,SArLJi/D,MAASrpE,EAAAqK,QAmKbhO,QACKC,OAAO,gCACP8U,QAAQ,0BAA2B8lF,GAExCA,EAtLqB5tB,SAAI,aAAsB,YAsOnD,WACI,YAOA,SAASmuB,GAAoBz3F,EAAYkC,EAASO,EAAQH,EAASE,EAAWR,EAAOiY,EAAgBJ,EAAwB0vC,EArLzH1G,EAAsB4G,EAAArnD,EAAAM,GAsEtB,QAASyX,KACLC,EAwLIH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SAAS3R,GArLf5I,EAAA2I,YAAA,QAAA,mBAAA,qBAyLGV,EAAG0hD,iBAAiB7/B,gBAAkB,KArLlD7hB,EAAA2hB,gBAMA,QAASF,GAAAtP,GAuLDP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GArL9D,MAAAA,EAAAlI,QACAwJ,EAAA2hB,YAAqBjjB,EAAAhJ,KACrBsK,EAAAsS,WAAe,GAEhBva,EAAS2I,YAAA,QAAA,yBAAA,kBAELV,EAAA6hB,gBAAoB,KAuLpB7hB,EAAG6hD,yBAA2B,KAC9B7hD,EAAG8hD,kBAAoB,KArL/B9hD,EAAS+hD,2BAA0B,KAuL3B/hD,EAAGgiD,gBAAkB,KArLzBhiD,EAAOiiD,iBAAW,KAuLdjiD,EAAGkiD,eAAiB,KArL5BliD,EAAS+jD,iBAAmB,KAuLpB/jD,EAAGgmD,iBArLP,SAAOrlD,GAuLH5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAASyhD,KAELniD,EAAGsS,WAAY,CACf,IAAIpS,GAAa/F,EAAsBgG,uBAUnCiiD,EAAQpiD,EAAGkiD,eAAeutC,iBArL7BjtC,EAAA,IA6BD,IA5BC,GAAAJ,EAEAI,EAAgB,kBAAAxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,0BAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBAuLT,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBArLrIb,EAAA,EAEAI,EADwB,IAAxBxiD,EAAA8hD,kBAAwBpV,cACP,kBAAA1sC,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,wBAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBACjB,eAAiB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBAwLG,kBAAoBjjD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,wBAA0B3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBArLrT,eAAA7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBAyLW,GAATb,IAEHI,EADuC,IAAvCxiD,EAAG8hD,kBAAkBpV,cACR,kBAAoB1sC,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,yBAA2B3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGiiD,iBAAiBY,eAAiB,4BAAmC7iD,EAAG6hD,yBAAyBiB,qBArL7T,cAAkB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,oBAyLF,kBAAoBhjD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,yBAA2B3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBArL1T,cAA4B7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,qBAQfrtD,QAAlBqK,EAAOojD,cAAsBpjD,EAAAojD,aAAWjoD,OAAA,EAAA,CAuLpC,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAGojD,aArLhBC,EAAAxrD,KAAAmI,EAAAojD,aAA2BloD,GAAAooD,cAwL5BtjD,GAAGujD,KAAOF,EAAI3vB,OAIlB,GAAuB/9B,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIkoD,KArLZ,KAAS,GAAAnoD,KAAA8E,GAAe82C,aACbuM,EAAAxrD,KAAMmI,EAAK82C,aAAW57C,GAAA8kB,OAwLzBhgB,GAAGjC,KAAOslD,EAAI3vB,OAKlB,GAA8B/9B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIkoD,KAtLhB,KAAA,GAAAnoD,KAAA8E,GAAA69C,oBACYwF,EAAAxrD,KAAAmI,EAAA69C,oBAAA3iD,GAAA22B,cAyLA7xB,GAAGwjD,YAAcH,EAAI3vB,OAlL1B,GAAW/9B,QAAXqK,EAAA29C,kBAAW39C,EAAA29C,iBAAAxiD,OAAA,EAAA,CACX,GAAAkoD,KACA,KAAA,GAAAnoD,KAAe8E,GAAA29C,iBACf0F,EAAWxrD,KAAAmI,EAAA29C,iBAAAziD,GAAAghD,WAEXl8C,GAAAyjD,SAAaJ,EAAA3vB,OAab,GAAAz4B,IAEAnF,UAAAkK,EAAA6hB,gBAAuB/rB,UACvB4tD,YAAqB/tD,QAArBqK,EAAqByjD,SAAAzjD,EAAAyjD,SAAA,GACrBE,eAAmBhuD,QAAAqK,EAAAwjD,YAAAxjD,EAAAwjD,YAAA,GACnBI,QAAgBjuD,QAAhBqK,EAAgBjC,KAAAiC,EAAAjC,KAAA,GAChBulD,cAAY3tD,QAAAqK,EAAAujD,KAAAvjD,EAAAujD,KAAA,GACZnE,iBAAcp/C,EAAAmT,gBAAA84B,YACd3pB,YAAAtiB,EAAmB6hB,gBAAAS,YAwLduhC,WAAY,EAtLjBC,WAAa9jD,EAAA+jD,iBAAAD,WACbE,MAAArnD,KAAAqkB,UAAkBhhB,EAAAqyB,KAClBqd,SAAaz1C,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cACbrT,OAAA11C,EAAe,QAAA+F,EAAA+iD,KAAAE,GAAA,cACflE,SAAc/+C,EAAAikD,mBAAA57B,KACdyL,SAAO5zB,EAAAi/C,UAwLF+E,QAAS1B,EAtLjB2B,kBAAqB,QACrBE,aAAArkD,EAAAyiD,mBAAA4B,aAwLQC,UAAW,QACXE,WAAYxkD,EAAG8hD,kBAAkBpV,cAtLtC0X,OAAApkD,EAAgB6hD,yBAAuB9oC,GAGpC/Y,GAAA8hD,kBAAgBpV,cAAoB,GACpCzxC,EAAAmvB,MAAqCz0B,QAArCqK,EAAgBgiD,gBAAgBxqB,WAAuBx3B,EAAAgiD,gBAAAxqB,WAAA,GACvDv8B,EAAAyxC,cAAwD/2C,QAA7BqK,EAAA8hD,kBAAWpV,cAAkB1sC,EAAA8hD,kBAAApV,cAAA,KAyLtDzxC,EAAImvB,MAA6Cz0B,QAApCqK,EAAGiiD,iBAAiB3qB,aAA6Bt3B,EAAGiiD,iBAAiB3qB,aAAe,GAC7Fr8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,IAGrHva,QAAQC,IAAIn3B,GAGZqmD,EAAsB03B,oBAAoB/9E,GAAKwD,KAAK,SAASC,GACrD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAtL9BsK,EAAAsS,WAAY,CACd,IAAA2D,GAAgBnf,SAAAijB,cAAA,IACfjjB,UAAcC,KAAAijB,YAAA/D,GACRA,EAAAgE,MAAA,eACP,IAAArc,GAAA,GAAAC,OAAAa,EAAAhJ,OACeqI,KAAA,oBAyLFtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EACrCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,iBAAkB,mBACpDwR,QAjLA7X,GAAIwH,MAAA,QAAgB,0BAAAxK,WAAA,EAAA+F,KAAA,OACpB4C,EAAGsS,WAAA,GA0LX,SAvLG3R,GACC5I,EAAW2I,YAAY,QAAS,iBAAArJ,WAAoB,EAAA+F,KAAA,OAwLpD4C,EAAGsS,WAAY,IAsN3B,QAASoyC,KAEL,GAAIzpD,IAtLG6oD,WAAgBnuD,QAAHqK,EAAG+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACfhuD,UAAGkK,EAAA6hB,gBAAkB/rB,UAyLrBF,OAvLI,EAwLJgvD,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAvLG,IAAAx3B,EAAA8hD,kBAAApV,cAAA1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACHqtB,qBAAuD,IAA1C7kD,EAAA8hD,kBAAuBpV,cAAmB1sC,EAAA+hD,2BAAyC7F,WAAA,EAwLhGxM,SAvLIz1C,EAAU,QAAU,GAAMwf,MAAAzZ,EAAQ+iD,KAAAC,MAAW,cAwLjDrT,OAAmC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cAIzG,KAAnCjjD,EAAG6hD,yBAAyB9oC,KAC5B9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MArLlCivB,EAAOwD,UAAgB7pD,GAAawD,KAAG,SAAAC,GACzB,MAANA,EAAAlI,QACJwJ,EAAKk7C,QAAYx8C,EAAAhJ,KAyLTsK,EAAGk7C,QAAQ//C,OAAS,GAtLzBd,EAAW8C,OAAA,UAAA,kFAwLF9F,WAAW,EACX+F,KAAM,OAnLlB4C,EAAKsS,WAAY,GAyLbva,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAK5D,QAvLQ6jD,KACgB,IAuLhBvkD,EAAG6hD,yBAvLa9oC,GAwLhB/Y,EAAG6oD,iBAAoBnG,eAAgB,WAAY2B,aAAc,MAEjErkD,EAAG6oD,iBAAoBnG,eAAgB,WAAY2B,aAAc,MAAS3B,eAAgB,eAAgB2B,aAAc,MAKhI,QAvLQ3H,GAAU5mD,GAwLd,GAvLIA,EAAS,CAwLT,GAvLImF,IAwLA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAtLnFhuD,UAAWA,EAyLVF,OAAQ,EAE2B,KAAnCoK,EAAG6hD,yBAAyB9oC,KAC5B9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MAElCivB,EAAsByD,cAAc9pD,GAAKwD,KAAK,SAASC,GAChC,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,MArLjCsK,EAAA8V,YAAA3a,OAAA,GAwLgBd,EAAQ8C,OAAO,UAAW,uCAtLhC9F,WAAA,EAwLU+F,KAAM,OAnLtB4C,EAAUsS,WAAW,GAErBjY,EAAAwH,MAAqB,QAAA,yBAAgB,mBAErC,SAAYlB,GACZtG,EAAYwH,MAAG,QAAA,mBAAiB,qBA6LxC,QAvLQi7C,GAAShnD,EAAAugB,EAAA0mC,GAyLb,GAvLI1mC,GAAAvgB,GAAoC,MAAnBkK,EAAAglD,aAAmB,MAAAhlD,EAAA8hD,kBAAA,CACpC,GAAAzvB,KACA,KAAA,GAAAn3B,KAAY8E,GAAGglD,YACf3yB,EAAQx6B,KAAGmI,EAAAglD,YAAA9pD,GAAAwgD,sBAGX17C,GAAG+8C,MAAA1qB,EAAAqB,MACH,IAAIz2B,IACAoZ,UAAIA,EACL2mC,MAAAh9C,EAAA+8C,OAEC9hD,GAwLA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWA,EAEX8uD,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAtLvHqtB,qBAAkE,IAA5C7kD,EAAA8hD,kBAA8BpV,cAAc1sC,EAAA+hD,2BAAA7F,WAAA,EAC1DxM,SAAQz1C,EAAA,QAAgB,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAwLxBrT,OAvL2B,KAApB3vC,EAAAkiD,eAAoB75B,KAAApuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cAwL3BrtD,OAvLO,EAwLPsvD,UAvLQvoD,KAAMqkB,UAAA/jB,GAEG,KAuLjB+C,EAAG6hD,yBAvLc9oC,KAwLjB9d,EAAI+oD,MAvLIrnD,KAAAqkB,UAAWhhB,EAAAqyB,MAyLvBivB,EAvLY6D,eAAgBlqD,GAAUwD,KAAK,SAAAC,GACpB,MAuLfA,EAvLIlI,QAwLJwJ,EAAG47C,aAvLCl9C,EAAgBhJ,MAChBsK,EAAA47C,aAAiBzgD,OAAA,GACjBd,EAAA8C,OAAa,UAAA,qDACb9F,WAAY,EACZ+F,KAAA,OA2LJ4C,EAAGsS,WAvLU,GAyLbjY,EAAQwH,MAvLI,QAAO,yBAAA,mBAyLxB,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAkDvD,QAASu7C,KAEL,GAA2BznD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG29C,iBACbtrB,EAAIx6B,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWpxB,EAAIqB,MAClB,IAAIz2B,IAtLH+/C,MAAAh9C,EAAA+8C,MACL1mC,UAAArW,EAAA6hB,gBAAAxL,UACI6lC,WAAMl8C,EAAAyjD,UA0LFxoD,GAtLA6oD,WAAQnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACRhuD,UAAAkK,EAAa6hB,gBAAG/rB,UAEhB8uD,YAAA5kD,EAAA8hD,kBAA0BpV,cAC1BlV,WAAkD,IAAxCx3B,EAAA8hD,kBAAoBpV,cAAoB1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WAClDqtB,qBAA8D,IAAlD7kD,EAAA8hD,kBAA8BpV,cAAyB1sC,EAAG+hD,2BAAY7F,WAAwB,EAwL1GxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAClDrT,OAAmC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cACxIrtD,OAAQ,EAtLTsvD,UAAAvoD,KAAAqkB,UAAyB/jB,GAyLS,KAAjC+C,EAAGqlD,uBAAuBtsC,KAtLlC9d,EAAA+oD,MAAAsB,qBAyLIhE,EAvLqBiE,kBAAAtqD,GAAAwD,KAAA,SAAAC,GAwLE,MAAfA,EAAIlI,QAtLJwJ,EAAGo8C,gBAAiB19C,EAAGhJ,KACvBsK,EAAAsS,WAAe,GAyLfva,EAvLU2I,YAAA,QAAA,yBAAA,gBAyLf,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAQhE,QAAS48C,GAAyBxnD,EAAWomD,EAAYrqB,GAErD,GAA8Bl8B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAtLlF,GAASk3B,KACD,KAAG,GAAAn3B,KAAA8E,GAAA69C,oBACAxrB,EAAAx6B,KAAAmI,EAAA69C,oBAAoB3iD,GAAgB22B,cAEvC7xB,GAAGwjD,YAAAnxB,EAAkBqB,MAyLrB,IAAIz2B,IACA+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAtLjC6lC,WAAAl8C,EAAAyjD,SACD5xB,cAAW7xB,EAAAwjD,aAGPvoD,GAwLA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAtLlFhuD,UAAQkK,EAAA6hB,gBAAA/rB,UAwLR8uD,YAAa5kD,EAAG8hD,kBAAkBpV,cAtLlClV,WAAsC,IAAnCx3B,EAAA8hD,kBAAyBpV,cAAU1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACtCqtB,qBAA8B,IAAb7kD,EAAA8hD,kBAAapV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EAwL9BxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAtLtDrT,OAAoC,KAApC3vC,EAAAkiD,eAAsB75B,KAAwBpuB,EAAA,QAAc,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cAyLxDrtD,OAvLO,EAwLPsvD,UAAWvoD,KAAKqkB,UAAU/jB,GArLH,KAuLvB+C,EAAGqlD,uBAvLoBtsC,KAwLvB9d,EAAI+oD,MAvLQsB,qBAyLhBhE,EAAsBmE,WAAWxqD,GAAKwD,KAAK,SAASC,GAC7B,MAAfA,EAAIlI,QACJwJ,EAAGizB,SAAWv0B,EAAIhJ,KAtLlBsK,EAAGsS,WAAY,GAEfva,EAAQ2I,YAAe,QAAA,yBAA0B,eAEtD,SAASC,GACR5I,EAAQ2I,YAAe,QAAA,mBAAoB,iBAiMvD,QAvLQ+8C,KAyLJ,GADAiyC,IACuB/5F,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIk3B,KAtLJ,KAAG,GAAAn3B,KAAQ8E,GAAI82C,aACXzkB,EAAAx6B,KAASmI,EAAA82C,aAAA57C,GAAA8kB,OAyLbhgB,GAAG2lD,KAvLCtzB,EAAUqB,MAwLd,IAAIz2B,IAtLA+/C,MAAMh9C,EAAA+8C,MACN1mC,UAAArW,EAAa6hB,gBAAGxL,UAChB6lC,WAAWl8C,EAAAyjD,SAwLX5xB,cAAe7xB,EAAGwjD,YAtLlBxjC,OAAAhgB,EAAA2lD,KAEA5G,SAAA/+C,EAAAikD,mBAA0B57B,KAAA6f,OAAkBloC,EAAAikD,mBAA0B57B,KAAA,MAGtEptB,GACA6oD,WAA0BnuD,QAAfqK,EAAK+jD,iBAAU/jD,EAAA+jD,iBAAAD,WAAA,GAwL1BhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UArL9B8uD,YAAY5kD,EAAA8hD,kBAAkBpV,cAwL9BlV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAtLnHqtB,qBAA6D,IAAvC7kD,EAAA8hD,kBAAyBpV,cAAc1sC,EAAA+hD,2BAAA7F,WAAA,EACzDxM,SAAQz1C,EAAA,QAAgB,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAwLxBrT,OAvL0B,KAAnB3vC,EAAAkiD,eAAmB75B,KAAApuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cAwL1BrtD,OAvLQ,EAwLRsvD,UAvLQvoD,KAAQqkB,UAAO/jB,GAEL,KAuLlB+C,EAAGqlD,uBAvLetsC,KAwLlB9d,EAAI+oD,MAAQsB,qBAEhBhE,EAAsBsE,WAAW3qD,GAAKwD,KAAK,SAASC,GAtL7B,MAAfA,EAAGlI,QAwLHwJ,EAvLGm+C,SAAAz/C,EAAAhJ,MACHsK,EAAQm+C,SAAMhjD,OAAS,EAwLnB6E,EAAG6lD,cAAe,EArLlB7lD,EAAA6lD,cAAe,GA0LnB9tD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAASC,OAKpB,QAASmlD,GAAqB/sC,GAC1B,GAAI9d,IACAnF,UAAWkK,EAAG6hB,gBAAgB/rB,UAElC,IAAuC,IAAnCkK,EAAG6hD,yBAAyB9oC,GAAU,CACtC9d,EAAI2pD,YAAc5kD,EAAG8hD,kBAAkBpV,cACnCzxC,EAAIu8B,WAAqD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WACpHv8B,EAAI4pD,qBAA+D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EACnHjhD,EAAIy0C,SAAWz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cACvD/nD,EAAI00C,OAAoC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,aACjJ,IAAI5wB,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGojD,aACb/wB,EAAIx6B,KAAKmI,EAAGojD,aAAaloD,GAAG+7B,QAEhCh8B,GAAIg8B,QAAU5E,EAAIqB,OAEtBknB,EAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAGgmD,aAAetnD,EAAIhJ,MACjBsK,EAAGgmD,aAAa7qD,OAAS,EAC1Bd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EACX+F,KAAM,OAIV4C,EAAGmmD,eAAgB,EAEvBnmD,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAMnD,QAAS6tF,KAtLT1vF,EAAAm+C,YAwLIn+C,EAAGojD,aAAe,KAOtB,QAvLQgD,GAAaC,GAyLjB,GAAIA,EAvLIC,sBAAc,CAwLlBtmD,EAAGumD,aACHvmD,EAAG+lD,oBArLH,IAAIS,GAAM,QAAAC,EAAAJ,EAAAK,QAAA,GACNC,EAAgBnsD,EAAA6P,KAAArK,EAAAq+C,OAAoB2F,OAAA0C,OAAgBF,GAwLxDhsD,GAvLIqI,QAAW7C,EAAG4mD,YAAA,SAAgBC,GAwL1BA,EAAEH,SAAWF,IAtLjBK,EAAAC,OAAatsD,EAAGyC,OAAA0pD,EAAkBG,QAAAxrB,SAAA+qB,EAAAC,sBAAAS,YA2LtC/mD,EAAGqyB,KAtLCp1B,UAyLJ,KAAK,GAAI/B,KAAK8E,GAAG4mD,YAtLV5mD,EAAA4mD,YAAA1rD,GAAAorD,wBACCtmD,EAAAqyB,IAAAp1B,OAAQ+C,EAAA4mD,YAAA1rD,GAAAwrD,QAAA1mD,EAAA4mD,YAAA1rD,GAAAorD,sBAAAS,OA0LhB50B,SAvLQC,IAAIpyB,EAAAqyB,SAyLZryB,GAAGqyB,IAvLK,KAwLRryB,EAAGqyB,KACCp1B,WAEJ+pD,IAOR,QAASC,GAAmBC,GACxBF,GAtLJ,IAAA/rD,IAwLQnF,UAAWkK,EAAG+jD,iBAAiBjuD,UAtL/BguD,WAAG9jD,EAAA+jD,iBAAuBD,WAyL9BtC,GAvLkB6J,iBAAGpwD,GAAAwD,KAAqB,SAAAC,GAClC,GAAY,MAARA,EAAAlI,OAAQ,CAwLRwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAtLrCM,EAAAsrD,WAAkB9wD,EAAA+wD,KAAAvrD,EAAAq+C,OAAA2F,OAAA0C,OAwLb1mD,EAAG+lD,uBAtLP,IAAAqB,KACA5sD,GAAUqI,QAAA7C,EAAAq+C,OAAA2F,MAAA,SAAA6C,GACV,GAAW/N,IACCuO,KAAGR,EAAAQ,KACfX,OAAkBG,EAAAH,OAwLNI,OAAsB,UAAbD,EAAEH,OAAsBG,EAAEC,UArLzCM,GAAAvvD,KAAAihD,GACN94C,EAAA4mD,YAAgBQ,IAEhBpnD,EAAA+lD,qBAAgBqB,EAChBpnD,EAAAsS,WAAgB,MAEhBva,GAAU2I,YAAgB,QAAS,yBAAe,SA0LtD,SAvLIC,GACA5I,EAAW2I,YAAK,QAAU,mBAAA,UAyLlCgkD,IAIJ,QAAS4C,GAvLWJ,EAAWb,GAwL3BrmD,EAAGumD,aACHvmD,EAAG+lD,oBAEH,IAAIS,GAvLQ,QAAWC,EAAYJ,EAASK,QAAA,GAwLxCC,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,OAAO2F,OACvC0C,OAvLGF,GAyLPhsD,GAAOqI,QAAQ7C,EAAG+lD,qBAAsB,SAASc,GACzCA,EAAEH,SAAWF,IACbK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAtLzCxrB,SAAA4rB,EAAAZ,sBAAAS,YA8LX,QAvLIN,GAAAc,GACA,MAAO3gD,UAAA2gD,EAAgBjkC,UAAa,IA0LxC,QAASkkC,KACLxnD,EAAGukD,aACH,KAvLI,GAAGrpD,KAAO8E,GAAA+lD,qBAAI,CACd,GAAI9qD,IACAwsD,SAAUznD,EAAA+lD,qBAAA7qD,GAAAmsD,KACVK,SAAA1nD,EAAW+lD,qBAAmB7qD,GAAAwrD,OAyLlC1mD,GAAGukD,WAvLC1sD,KAAeoD,IA2L3B,QAAS+rD,KACLxsD,EAAOqI,QAAQ7C,EAAG+lD,qBAAsB,SAASM,GAtL7CA,EAAIC,sBAAM,OAuNlB,QAvLQltC,GAAM1jB,GAwLV,GAvLI2jB,GAAA3jB,EAAW2jB,KAwLX9iB,EAAOb,EAAKa,IAtLhB,OAAO,QAAAA,IAAmC,IAAnC8iB,EAAAC,UAAmC,IAAAD,EAAAC,UA8N9C,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EApLJ,IAAA,GAqLQijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GArLtDxe,EAAA,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACI,GAAA0e,GAAS,GAAAH,MAAAzZ,EAAuB2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAE7B,IAAAF,IAAAI,EAwLK,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GAiCX,QAASmxD,KACL,GAvL6B,KAuLzB3nD,EAAGkiD,eAvLQ75B,KAAoB,CAwL/BroB,EAAG+iD,KAvLKE,GAAG7uD,QAAA8e,KAAalT,EAAA+iD,KAAOC,KAwL/B,IAAI4E,GAvLO,CAwLX5nD,GAAG+iD,KAvLKE,GAAAznC,QAAIxb,EAAA+iD,KAAWE,GAAAjnC,UAAA4rC,GACU,IAuL7B5nD,EAAG6hD,yBAvLmB9oC,IAwLtB2rC,QAtLoB,KAuLjB1kD,EAAGkiD,eAvLc75B,OAwLxBroB,EAAG+iD,KAAKE,GAAK,IAuBrB,QAvLQ+E,KAyLJ,GAvLc,KAAVhoD,EAAAkiD,eAAU75B,KAAA,CAwLVroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAtLtC,IAAO8E,GAAW,CACd9nD,GAAA+iD,KAAME,GAAA8E,SAAW/nD,EAAA+iD,KAAUE,GAAA9R,WAAA2W,GAwL3B9nD,EAAG+iD,KAvLGE,GAAAznC,QAASxb,EAAO+iD,KAAAE,GAAOjnC,UAAA,GACJ,IAuLrBhc,EAAG6hD,yBAvLkB9oC,IAwLrB2rC,QAE6B,KAA1B1kD,EAAGkiD,eAAe75B,OACzBroB,EAAG+iD,KAAKE,GAAK,IAUrB,QAvLQgF,GAAUC,GAyLd,GAAIhoD,GAvLI/F,EAAagG,uBAwLjBlF,GAtLAmF,SAAGF,EAAgBi/C,UAwLnBrpD,UAAWoyD,EAEf5G,GAAsB2G,aAAahtD,GAAKwD,KAAK,SAASC,GAtLjD,MAAAA,EAAAlI,QACEwJ,EAAAmoD,qBAAWzpD,EAAAhJ,KACdsK,EAAAsS,WAAS,EA0LLtS,EAAGooD,sBACHpoD,EAAG4tC,gBACH5tC,EAAGgiD,gBAAkB,KACrBhiD,EAAG+hD,2BAA6B,MAIhChqD,EAAW2I,YAAY,QAAS,yBAA0B,qBAE/D,SAASC,GAtLb5I,EAAQ2I,YAAW,QAAA,mBAAA,sBAyLqB,IAAnCV,EAAG6hD,yBAAyB9oC,IAC5B+sC,IArLJvB,IA2LJ,QAASiE,KAtLN,GAAAtoD,GAAc/F,EAAAgG,uBACblF,GACAmF,SAAYF,EAAAi/C,UACZrpD,UAAakK,EAAK6hB,gBAAS/rB,UAC3B42C,cAAa1sC,EAAA8hD,kBAAApV,cAyLb4U,GAAsBkH,aAAavtD,GAAKwD,KAAK,SAASC,GAC/B,MAAfA,EAAIlI,QACJwJ,EAAGooD,mBAAqB1pD,EAAIhJ,KAtL/BsK,EAAAsS,WAAe,GAEhBva,EAAY2I,YAAA,QAAA,yBAAA,kBAyLb,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAK5D,QAAS+nD,GAAWP,EAAOQ,GAtLxB,GAAAxoD,GAAA/F,EAAAgG,uBAEAlF,GACImF,SAAOF,EAASi/C,UACfrpD,UAAQoyD,EAwLRxb,cAAegc,EApLpBpH,GAAmBmH,WAAAxtD,GAAAwD,KAAA,SAAAC,GACC,MAAhBA,EAAOlI,QACNwJ,EAAA4tC,aAAYlvC,EAAAhJ,KAwLRsK,EAAGsS,WAAY,EArLa,GAA3BtS,EAAA8hD,kBAAsBpV,eACnB8b,IAKbxoD,EAAAgiD,gBAAmB,MAyLVjqD,EAAW2I,YAAY,QAAS,yBAA0B,kBArLlE,SAAQC,GAwLJ5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAM5D,QAASioD,GAAYT,EAAOU,GAtL5B,GAAA1oD,GAAqB/F,EAAMgG,uBAEnBlF,GACAmF,SAASF,EAAOi/C,UAChBrpD,UAAIoyD,EAwLJhM,WAAY0M,EAGhBtH,GAAsBqH,YAAY1tD,GAAKwD,KAAK,SAASC,GAtLzC,MAAJA,EAAIlI,QAwLJwJ,EAAGqoD,eAvLW3pD,EAAUhJ,KAwLxBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,kBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAlsC5D,GAtLIV,GAAAC,IAuLJD,GAAGsU,SAAW,KArLdtU,EAAAk7C,WAuLAl7C,EAAG47C,gBACH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EArLf/S,EAAAsS,WAAS,EAuLTtS,EAAGmiD,mBAtLmBA,CAuLtB,IAAIhwC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAAsBA,EArLzBzhB,EAAAm+C,YAwLAn+C,EAAG0kD,eAAiBA,EACpB1kD,EAAGioD,aAAeA,EArLlBjoD,EAAA08C,oBAASA,EAuLT18C,EAAG88C,qBAtLmBA,EAuLtB98C,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGs9C,yBAA2BA,EArL9Bt9C,EAAAy9C,aAASA,EAuLTz9C,EAAG8lD,qBAtLmBA,EAuLtB9lD,EAAGinD,mBAAqBA,EACxBjnD,EAAGsnD,iBAAmBA,EArLtBtnD,EAAAwnD,cAASA,EAuLTxnD,EAAGymD,UAtLQA,EAuLXzmD,EAAGomD,YAAcA,EACjBpmD,EAAG2nD,iBAAmBA,EApLtB3nD,EAAAukD,WAASA,EAuLTvkD,EAAGgoD,gBAAkBA,EACrBhoD,EAAGyoD,WAtLQA,EAuLXzoD,EAAGwoD,aAAeA,EAClBxoD,EAAG2oD,YAAcA,EArLjB3oD,EAAA+iD,QAwLAhrD,EAAW2c,SAAU,EACrBxC,IAGAlS,EAAGu7C,eAAkBC,aAAc,MAAOnzB,KAAM,MAASmzB,aAAc,UAAWnzB,KAAM,MAASmzB,aAAc,WAAYnzB,KAAM,MAEjIroB,EAAG+oD,iBArLEpG,eAAA,QAAAt6B,KAAA,IAAAonE,iBAAA,IAuLC9sC,eAAgB,SAAUt6B,KAAM,IAAKonE,iBAAkB,IArLjE9sC,eAAA,UAAAt6B,KAAA,IAAAonE,iBAAA,IA0LIzvF,EAtLCgpD,kBAAQzG,gBAAoB,iBAAAxpC,GAAA,EAAAwrC,WAAA,UAAAhC,gBAAA,qBAAAxpC,GAAA,EAAAwrC,WAAA,cAuL7BvkD,EAAGqlD,yBAEGvC,qBAAsB,gBAAiB/pC,GAAI,IA0NjD/Y,EAAG2vF,YAAc,WAtLjB,GAAAzvF,GAAS/F,EAA+BgG,uBAUhCiiD,EAAGpiD,EAAAkiD,eAAoButC,iBACvBjtC,EAAG,IAoNP,IAnNO,GAAHJ,EAEAI,EAAG,kBAAiBxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,0BAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBACjB,eAAmB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBACnBb,EAAA,EAEHI,EADa,IAAdxiD,EAAA8hD,kBAAcpV,cACF,kBAAqB1sC,EAAAyiD,mBAAoBC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,wBAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBAwL5C,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAErH,kBAAoBjjD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,wBAA0B3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBAClT,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBApL1I,GAAAb,IAEII,EADW,IAAZxiD,EAAA8hD,kBAAYpV,cACE,kBAAsB1sC,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,yBAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBAwL3B,cAA0B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,oBAG/D,kBAAoBhjD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,yBAA2B3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBACnT,cAA0B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,qBAQ7DrtD,QAAnBqK,EAAGojD,cAA6BpjD,EAAGojD,aAAajoD,OAAS,EAAG,CAtL5D,GAAAkoD,KAwLA,KAvLI,GAAAnoD,KAAU8E,GAAAojD,aACXC,EAAIxrD,KAAAmI,EAAQojD,aAAGloD,GAAAooD,cAyLlBtjD,GAAGujD,KAvLCF,EAAA3vB,OA2LR,GAvLsB/9B,QAuLlBqK,EAAG82C,cAvL0B92C,EAAM82C,aAAQ37C,OAAW,EAAK,CAwL3D,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aAtLduM,EAAIxrD,KAAAmI,EAAS82C,aAAG57C,GAAA8kB,OAyLnBhgB,GAAGjC,KAvLCslD,EAAA3vB,OA4LR,GAvLsB/9B,QAuLlBqK,EAAG69C,qBAvL+B79C,EAAQ69C,oBAAgB1iD,OAAM,EAAA;AAwLhE,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG69C,oBACbwF,EAAIxrD,KAAKmI,EAAG69C,oBAAoB3iD,GAAG22B,cAEvC7xB,GAAGwjD,YAAcH,EAAI3vB,OAKzB,GAvLqB/9B,QAAjBqK,EAAA29C,kBAA+B39C,EAAA29C,iBAAAxiD,OAAA,EAAA,CAwL/B,GAvLIkoD,KAwLJ,KAAK,GAAInoD,KAAK8E,GAAG29C,iBAtLd0F,EAAAxrD,KAAOmI,EAAI29C,iBAAAziD,GAAAghD,WAyLdl8C,GAAGyjD,SAAWJ,EAAI3vB,OAatB,GAvLIz4B,IAyLAnF,UAvLQkK,EAAK6hB,gBAAG/rB,UAwLhB4tD,YAA6B/tD,QAAfqK,EAAGyjD,SAAyBzjD,EAAGyjD,SAAW,GAtLxDE,eAAqBhuD,QAAJqK,EAAAwjD,YAAIxjD,EAAAwjD,YAAA,GAwLrBI,QAAqBjuD,QAAXqK,EAAGjC,KAAqBiC,EAAGjC,KAAO,GAC5CulD,cAA2B3tD,QAAXqK,EAAGujD,KAAqBvjD,EAAGujD,KAAO,GAClDnE,iBAAkBp/C,EAAGmT,gBAAgB84B,YACrC3pB,YAAatiB,EAAG6hB,gBAAgBS,YAtLhCuhC,WAAG,EACHC,WAAU9jD,EAAA+jD,iBAAAD,WACVE,MAAKrnD,KAAIqkB,UAAQhhB,EAAAqyB,KAwLjBqd,SAvLQz1C,EAAQ,QAAA+F,EAAA+iD,KAAiBC,KAAG,cAwLpCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAtLpClE,SAAG/+C,EAAAikD,mBAAe57B,KAwLlByL,SAAU5zB,EAAWi/C,UACrB+E,QAAS1B,EACT2B,kBAAmB,QACnBE,aAAcrkD,EAAGyiD,mBAAmB4B,aACpCC,UAAW,QACXE,WAAYxkD,EAAG8hD,kBAAkBpV,cACjC0X,OAAQpkD,EAAG6hD,yBAAyB9oC,GAGpC/Y,GAAG8hD,kBAAkBpV,cAAgB,GAtLzCzxC,EAAAmvB,MAAAz0B,QAAAqK,EAAAgiD,gBAAAxqB,WAAAx3B,EAAAgiD,gBAAAxqB,WAAA,GAwLQv8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,KAEjHzxC,EAAImvB,MAA6Cz0B,QAApCqK,EAAGiiD,iBAAiB3qB,aAA6Bt3B,EAAGiiD,iBAAiB3qB,aAAe,GAtLjGr8B,EAAAyxC,cAA8B/2C,QAAhBqK,EAAA8hD,kBAAgBpV,cAAA1sC,EAAA8hD,kBAAApV,cAAA,IA0LlCva,QAvLIC,IAAAn3B,GA0LJqmD,EAvLoB03B,oBAAgB/9E,GAAAwD,KAAA,SAAAC,GAChC,GAAY,MAAZA,EAAYlI,OAAA,CACZwJ,EAAA8Z,cAAepb,EAAAhJ,KACRsK,EAAAsS,WAAe,CACtB,IAAUrX,IACFuF,QAAQN,EAAgBM,QACtBk/C,KAAG1/C,EAAA8Z,cACH6lC,WAAW,GAErBvgD,EAAmB7E,EAAA8E,MACnBhI,WAAiB,EACNiI,eAAA,cACCC,gBAAG,aACJrK,YAAA,8DAwLCE,WAAY,kBACZC,aAAc,KAtLvB+H,KAAA,KACSoC,SAAI,SACRC,UAAA,EACLyQ,SACa3N,MAAA,WACR,MAAiBtH,MA4LjBmE,GAAcM,OAAOjB,KAAK,SAASC,KArLnC,kBAMArE,GAAIwH,MAAO,QAAU,0BAAWxK,WAAA,EAAA+F,KAAA,OAwLhC4C,EAAGsS,WAvLW,GA0LtB,SAvLQ3R,GAwLJ5I,EAvLI2I,YAAW,QAAY,iBAAWrJ,WAAkB,EAAA+F,KAAA,OAwLxD4C,EAAGsS,WAvLC,KA+rBhBtS,EAAGqa,MAAQ,WACPra,EAAGsa,GAvLK,GAAAb,OAyLZzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAvLYjB,EAwLZkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAvLYxB,EAwLZ+C,WAAY,KACZtB,QAvLO,GAAApB,MAAS,KAAK,EAAA,IAwLrBgB,QAAS,GAAIhB,MACbqB,YAAa,GAUjB9a,EAAG+a,UAvLS,WAwLR/a,EAAGua,cAvLSE,QAAWza,EAAAua,cAAoBE,QAAQ,KAAK,GAAOhB,MAwL/DzZ,EAAG2a,YAvLSF,QAAaza,EAAAua,cAAeE,SA0L5Cza,EAAG+a,YAEH/a,EAAGkb,MAvLK,WAwLJlb,EAAGmb,OAAOtM,QAAS,CAtLnB,IAAA4K,OA2LJzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAvLM,CAwLJ,IAvLI4K,OA0LpBzZ,EAAGwb,QAAU,SAvLMC,EAAAC,EAAAC,GAwLf3b,EAAGsa,GAAK,GAvLIb,MAAGgC,EAAAC,EAAAC,IA0LnB3b,EAAG4b,SAAW,eAvLC,aAAA,aAAA,aAwLf5b,EAAG6b,OAvLS7b,EAAA4b,QAAQ,GAwLpB5b,EAAG8b,iBAAmB,cAGtB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QAtLHpM,QAAS,GA+MT7O,EAAGkpD,UAvLS,WAwLsB,KAA1BlpD,EAAGkiD,eAAe75B,MAElBroB,EAAG+iD,KAvLKC,KAAG,GAAAvpC,MAwLXzZ,EAAG+iD,KAvLKC,KAAO5uD,QAAO8e,KAAGlT,EAAA+iD,KAAAC,MAwLzBhjD,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,MACK,IAAnChjD,EAAG6hD,yBAAyB9oC,IAtLhC2rC,KACG,KAAA1kD,EAAAkiD,eAAA75B,MACHroB,EAAG+iD,KAAAC,KAAM,KACThjD,EAAG+iD,KAAAE,GAAM,OAyLTjjD,EAAG+iD,KAAKC,KAAO,KAtLfhjD,EAAA+iD,KAAAE,GAAA,OA2LRjjD,EAAGgc,QAAU,WACqB,KAA1Bhc,EAAGkiD,eAAe75B,OAClBroB,EAAG+iD,KAAKC,KAAO5uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,MAtL5ChjD,EAAS+iD,KAAAE,GAAA7uD,QAAmB8e,KAAMlT,EAAA+iD,KAAAC,MAC9B,IAAAhjD,EAAA6hD,yBAAA9oC,IACI2rC,+NAr3BZtwD,QACKC,OAAO,0BACPe,WAAW,sBAAuBo6F,MA+sC3C,WACI,YAOA,SAASI,GAvLW73F,EAAOkC,EAAAO,EAAAH,EAAAN,EAAAQ,EAAAyX,EAAAJ,EAAA0vC,EAwLvB1G,EAvLqB4G,EAAArnD,EAAAM,GA0PrB,QAASyX,KAtLDC,EAEAH,EAAUI,mBAAWD,GAAA1T,KAAA,SAAAC,GACV,MAAXA,EAAWlI,SAwLHwJ,EAAGqS,YAAc3T,EAAIhJ,KAtLjCsK,EAAAsS,WAAsB,IAyLf,SAvLI3R,GACH5I,EAAG2I,YAAY,QAAA,mBAAA,qBA0LnBV,EAAG0hD,iBAvLI7/B,gBAAqB,KAwL5B7hB,EAAG2hB,gBAMX,QAASF,GAvLctP,GAwLnBP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GAtL9C,MAAdA,EAASlI,QACRwJ,EAAA2hB,YAAWjjB,EAAYhJ,KAwLnBsK,EAAGsS,WAAY,GArLnBva,EAAA2I,YAAA,QAAA,yBAAA,mBAEJ,SAAAC,GAwLI5I,EAAW2I,YAAY,QAAS,mBAAoB,oBApL5DV,EAAA6hB,gBAAwB,KACpB7hB,EAAA6hD,yBAAiB,KACjB7hD,EAAA8hD,kBAAU,KAwLV9hD,EAAGiiD,iBAvLW,KAwLdjiD,EAAGgiD,gBAvLe,KAwLlBhiD,EAAGkiD,eAvLgB,KA4LvB,QAASC,KAELniD,EAAGsS,WAvLK,CAwLR,IAAIpS,GAAa/F,EAAsBgG,uBA7KnCiiD,EAAMpiD,EAAAkiD,eAAAutC,iBACNjtC,EAAU,IAsMd,IArMI,GAAAJ,EACAI,EAAA,kBAAexiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,8BAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBAwLX,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAC3Hb,EAAQ,EAtLnBI,EAAA,kBAAiCxiD,EAAKyiD,mBAAmBC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,4BAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAgiD,gBAAAkB,aAAA,4BAAAljD,EAAA6hD,yBAAAiB,qBACjD,eAAoB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBACjB,GAAAb,IAwLPI,EAvLO,kBAAYxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,6BAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAgiD,gBAAAkB,aAAA,4BAAAljD,EAAA6hD,yBAAAiB,qBAwLf,cAA0B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,qBAMzDrtD,QAAnBqK,EAAGojD,cAA6BpjD,EAAGojD,aAAajoD,OAAS,EAAG,CAC5D,GAvLIkoD,KAwLJ,KAAK,GAvLEnoD,KAAA8E,GAAAojD,aACHC,EAAAxrD,KAAAmI,EAAWojD,aAAYloD,GAAAooD,cAE5BtjD,GAAAujD,KAASF,EAAK3vB,OA2LjB,GAAuB/9B,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aAtLhBuM,EAAAxrD,KAAYmI,EAAA82C,aAAe57C,GAAA8kB,OAyL5BhgB,GAAGjC,KAAOslD,EAAI3vB,OAKlB,GAA8B/9B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIkoD,KAtLR,KAAA,GAAAnoD,KAAA8E,GAAA69C,oBACQwF,EAAIxrD,KAAAmI,EAAA69C,oBAAgB3iD,GAAA22B,cAyLxB7xB,GAAGwjD,YAvLIH,EAAY3vB,OA4LvB,GAvL2B/9B,QAAvBqK,EAAA29C,kBAAgC39C,EAAA29C,iBAAoBxiD,OAAA,EAAA,CAwLpD,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG29C,iBACb0F,EAAIxrD,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWJ,EAAI3vB,OA3K1B,GAAAz4B,IAEGnF,UAAWkK,EAAA6hB,gBAAA/rB,UACX4tD,YAAU/tD,QAAAqK,EAAAyjD,SAAAzjD,EAAAyjD,SAAA,GACVE,eAAehuD,QAAAqK,EAAAwjD,YAAAxjD,EAAAwjD,YAAA,GACfI,QAAWjuD,QAAAqK,EAAAjC,KAAAiC,EAAAjC,KAAA,GACXulD,cAAkB3tD,QAAAqK,EAAAujD,KAAAvjD,EAAAujD,KAAA,GAClBnE,iBAAap/C,EAAAmT,gBAAA84B,YACb3pB,YAAYtiB,EAAA6hB,gBAAAS,YACZuhC,WAAY,EACZC,WAAA9jD,EAAA+jD,iBAAqBD,WACpBE,MAAArnD,KAAYqkB,UAAAhhB,EAAAqyB,KACbqd,SAAAz1C,EAAsB,QAAA+F,EAAA+iD,KAAAC,KAAA,cACtBrT,OAAW11C,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAyLNlE,SAAU/+C,EAAGikD,mBAAmB57B,KAvLrCyL,SAAA5zB,EAAiBi/C,UACjB+E,QAAA1B,EACA2B,kBAAsB,QACtBE,aAAArkD,EAAAyiD,mBAAuB4B,aACvBC,UAAA,QACAE,WAA2B7uD,QAA3BqK,EAAAskD,UAA2BtkD,EAAAskD,UAAA,IAC3BF,OAAApkD,EAAe6hD,yBAAA9oC,GAGf/Y,GAAA8hD,kBAAmBpV,cAAA,GACnBzxC,EAAAmvB,MAAgBz0B,QAAAqK,EAAAgiD,gBAAAxqB,WAAAx3B,EAAAgiD,gBAAAxqB,WAAA,GAChBv8B,EAAYyxC,cAAA/2C,QAAAqK,EAAA8hD,kBAAApV,cAAA1sC,EAAA8hD,kBAAApV,cAAA,KAEZzxC,EAAAmvB,MAAmBz0B,QAAnBqK,EAAmBiiD,iBAAA3qB,aAAAt3B,EAAAiiD,iBAAA3qB,aAAA,GAyLVr8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,IArLtHva,QAAAC,IAAAn3B,GA2LCqmD,EAAsBy3B,cAAc99E,GAAKwD,KAAK,SAASC,GAvLhD,GAAU,MAAVA,EAAAlI,OAAU,CACrBwJ,EAAA8Z,cAAApb,EAAAhJ,KAyLgBsK,EAAGsS,WAAY,CACf,IAAI2D,GAAInf,SAASijB,cAAc,IAvL5CjjB,UAAkBC,KAAAijB,YAAqB/D,GAyL1BA,EAAEgE,MAAQ,eAvLvB,IAAiBrc,GAAG,GAAAC,OAAAa,EAAgBhJ,OAyLfqI,KAAM,oBAtLxBtJ,EAAgBC,OAASwlB,IAAMC,gBAAKvc,EACpCnD,GAAgB4E,KAAA5K,EAAU,UAC1BsD,EAAgB2I,YAAiB,UAAK,iBAAkB,mBAyL9CwR,QAMA7X,GAAQwH,MAAM,QAAS,0BAA4BxK,WAAW,EAAM+F,KAAM,OAvLjF4C,EAAAsS,WAAY,GAGb,SAAM3R,GACP5I,EAAA2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OACC4C,EAAAsS,WAAc,IA6XtB,QAASoyC,KAEL,GAAIzpD,IACI6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAtLlCF,OAAW,EACXgvD,YAAa5kD,EAAA8hD,kBAAApV,cACblV,WAAY,IAAAx3B,EAAA8hD,kBAAApV,cAAA1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACZqtB,qBAAuD,IAA1C7kD,EAAA8hD,kBAAuBpV,cAAmB1sC,EAAiB+hD,2BAAwB7F,WAAiB,EAC7GxM,SAAUz1C,EAAA,QAAW,GAAMwf,MAAQzZ,EAAA+iD,KAAQC,MAAG,cAC/CrT,OAAe,KAAX3vC,EAAQkiD,eAAG75B,KAAApuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cAIe,KAAjCjjD,EAAA6hD,yBAAa9oC,KAyLb9d,EAxLI+oD,MAAArnD,KAAUqkB,UAAUhhB,EAAMqyB,MA0LlCivB,EAAsBwD,UAAU7pD,GAAKwD,KAAK,SAASC,GAC5B,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,MAtLlBsK,EAAAk7C,QAAgB//C,OAAA,GACfd,EAAM8C,OAAA,UAAA,qDAAA6C,EAAA6hB,gBAAAS,aACDjrB,WAAQ,EACT+F,KAAQ,OA4LZ4C,EAAGsS,WAAY,GAtLhBva,EAAA2I,YAAgB,QAAgB,yBAAyB,0BA0L7D,SAxLMC,GAyLL5I,EAxLQ2I,YAAQ,QAAgB,mBAAA,2BA4LxC,QAASg8C,GAAoB5mD,GACzB,GAAIA,EAAW,CACX,GAAImF,IAvLD6oD,WAAoCnuD,QAApCqK,EAAA+jD,iBAAuC/jD,EAAA+jD,iBAA6BD,WAAG,GACtEhuD,UAAMA,EAENF,OAAI,EAEa,KAAlBoK,EAAA6hD,yBAAkB9oC,KAyLjB9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MAElCivB,EAAsByD,cAAc9pD,GAAKwD,KAAK,SAASC,GAChC,MAAfA,EAAIlI,QAvLTwJ,EAAA8V,YAAoBpX,EAAAhJ,MAEdsK,EAAK8V,YAAG3a,OAAkB,GAC3Bd,EAAQ8C,OAAA,UAAoB,uCAyLpB9F,WAAW,EAvLb+F,KAAI,OA4LV4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAMvD,QAxLQi7C,GAAchnD,EAAgBugB,EAAA0mC,GA0LlC,GAxLI1mC,GAAAvgB,GAAmC,MAAfkK,EAAAglD,aAA6C,MAAdhlD,EAAA8hD,kBAAc,CACjE,GAAAzvB,KACA,KAAA,GAAAn3B,KAAA8E,GAAgBglD,YAChB3yB,EAAAx6B,KAAAmI,EAAAglD,YAAqB9pD,GAAAwgD,sBAGrB17C,GAAA+8C,MAAA1qB,EAAeqB,MACf,IAAAz2B,IACAoZ,UAAUA,EACV2mC,MAAQh9C,EAAA+8C,OAER9hD,GACA6oD,WAASnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACThuD,UAAAA,EAEA8uD,YAAW5kD,EAAA8hD,kBAAApV,cACXlV,WAA6C,IAA7Bx3B,EAAA8hD,kBAAapV,cAA4B1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACzDqtB,qBAAoC,IAAzB7kD,EAAA8hD,kBAAyBpV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EAyLhCxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAClDrT,OAAmC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cAvLzIrtD,OAAA,EACCsvD,UAASvoD,KAAGqkB,UAAA/jB,GAEb,KAAA+C,EAAA6hD,yBAAA9oC,KACC9d,EAAA+oD,MAAYrnD,KAAAqkB,UAAAhhB,EAAiBqyB,MA0LjCivB,EAAsB6D,eAAelqD,GAAKwD,KAAK,SAASC,GACjC,MAAfA,EAAIlI,QAvLJwJ,EAAA47C,aAAAl9C,EAAAhJ,MAyLKsK,EAAG47C,aAAazgD,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,qDAvL1C9F,WAAsB,EACN+F,KAAA,OA4LJ4C,EAAGsS,WAxLU,GA0LbjY,EAxLIwH,MAAA,QAAW,yBAAA,mBA0LpB,SAxLSlB,GAyLRtG,EAxLQwH,MAAA,QAAW,mBAAA,qBA0O/B,QAASu7C,KAEL,GAA2BznD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG29C,iBACbtrB,EAAIx6B,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWpxB,EAAIqB,MAClB,IAAIz2B,IACA+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,UAGfxoD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAE9B8uD,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAvLlHqtB,qBAAiB,IAAA7kD,EAAA8hD,kBAAApV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EACtBxM,SAAAz1C,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cACIrT,OAAM,KAAA3vC,EAAAkiD,eAAA75B,KAAApuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cACFrtD,OAAA,EACAsvD,UAAWvoD,KAAGqkB,UAAA/jB,GAEN,KAAR+C,EAAAqlD,uBAAQtsC,KACR9d,EAAA+oD,MAAAsB,qBA0LJhE,EAxLIiE,kBAA0BtqD,GAAAwD,KAAkB,SAAAC,GAC1B,MAAlBA,EAAAlI,QACAwJ,EAAAo8C,gBAAY19C,EAAehJ,KAyLvBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,gBAtLlE,SAAYC,GAyLR5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAQhE,QAAS48C,GAxLiBxnD,EAAAomD,EAAArqB,GA0LtB,GAA8Bl8B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIk3B,KACJ,KAxLI,GAAGn3B,KAAA8E,GAAA69C,oBAyLHxrB,EAxLGx6B,KAAAmI,EAAA69C,oBAAA3iD,GAAA22B,cA0LP7xB,GAAGwjD,YAAcnxB,EAAIqB,MAtLrB,IAAAz2B,IAyLI+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,SAvLlB5xB,cAAA7xB,EAAoBwjD,aAGjBvoD,GACA6oD,WAAWnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GAyLXhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAE9B8uD,YAAa5kD,EAAG8hD,kBAAkBpV,cAvLlClV,WAAsC,IAAnCx3B,EAAA8hD,kBAAyBpV,cAAU1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACtCqtB,qBAA8B,IAAb7kD,EAAA8hD,kBAAapV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EAyL9BxM,SAAUz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAvLtDrT,OAAoC,KAApC3vC,EAAAkiD,eAAsB75B,KAAwBpuB,EAAA,QAAc,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cACxDrtD,OAAQ,EAyLRsvD,UAxLOvoD,KAAAqkB,UAAkB/jB,GAEQ,KAwLjC+C,EAAGqlD,uBAxLqBtsC,KAyLxB9d,EAAI+oD,MAxLIsB,qBA0LZhE,EAxLsBmE,WAAAxqD,GAAAwD,KAAA,SAAAC,GAyLC,MAAfA,EAAIlI,QACJwJ,EAAGizB,SAAWv0B,EAAIhJ,KAClBsK,EAAGsS,WAAY,GAEfva,EAxLG2I,YAAA,QAAA,yBAAA,eA0LR,SAASC,GAvLT5I,EAAS2I,YAAK,QAAA,mBAAA,iBAoMzB,QAAS+8C,KAEL,GADAiyC,IACuB/5F,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAvL5D,GAAGk3B,KACH,KAAI,GAAAn3B,KAAS8E,GAAA82C,aACTzkB,EAAAx6B,KAAAmI,EAAW82C,aAAA57C,GAAA8kB,OA0LfhgB,GAAG2lD,KAAOtzB,EAAIqB,MAvLd,IAAIz2B,IACA+/C,MAAAh9C,EAAA+8C,MACA1mC,UAAWrW,EAAA6hB,gBAAAxL,UAyLX6lC,WAAYl8C,EAAGyjD,SAvLf5xB,cAAa7xB,EAAGwjD,YAChBxjC,OAAAhgB,EAAA2lD,KAEA5G,SAAU/+C,EAAAikD,mBAAoB57B,KAAQ6f,OAAKloC,EAAOikD,mBAAA57B,KAAA,MAGlDptB,GAyLA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAvLlFhuD,UAAGkK,EAAA6hB,gBAAyB/rB,UA0L5B8uD,YAAa5kD,EAAG8hD,kBAAkBpV,cAvLtClV,WAAwD,IAAxDx3B,EAAA8hD,kBAAqCpV,cAAwB1sC,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAgiD,gBAAAxqB,WACzDqtB,qBAAwB,IAAL7kD,EAAK8hD,kBAAApV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EAyLxBxM,SAxLOz1C,EAAA,QAAmB,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAyL1BrT,OAxLkC,KAAzB3vC,EAAGkiD,eAAa75B,KAAYpuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cAyLrCrtD,OAxLQ,EAyLRsvD,UAAWvoD,KAxLCqkB,UAAW/jB,GA0LU,KAAjC+C,EAAGqlD,uBAAuBtsC,KAC1B9d,EAAI+oD,MAAQsB,qBAEhBhE,EAxLWsE,WAAY3qD,GAAAwD,KAAA,SAAAC,GACZ,MAwLHA,EAxLGlI,QACHwJ,EAAAm+C,SAAcz/C,EAAAhJ,MAyLTsK,EAAGm+C,SAAShjD,OAAS,EAvLtB6E,EAAA6lD,cAAK,EA0LL7lD,EAAG6lD,cAAe,GAGtB9tD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAASC,OAKpB,QAASmlD,GAAqB/sC,GAC1B,GAAI9d,IACAnF,UAAWkK,EAAG6hB,gBAAgB/rB,UAElC,IAAuC,IAAnCkK,EAAG6hD,yBAAyB9oC,GAAU,CACtC9d,EAAI2pD,YAAc5kD,EAAG8hD,kBAAkBpV,cACnCzxC,EAAIu8B,WAAqD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WACpHv8B,EAAI4pD,qBAA+D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EACnHjhD,EAAIy0C,SAAWz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cACvD/nD,EAAI00C,OAAoC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,aACjJ,IAAI5wB,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGojD,aACb/wB,EAAIx6B,KAAKmI,EAAGojD,aAAaloD,GAAG+7B,QAEhCh8B,GAAIg8B,QAAU5E,EAAIqB,OAEtBknB,EAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAGgmD,aAAetnD,EAAIhJ,MACjBsK,EAAGgmD,aAAa7qD,OAAS,EAC1Bd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EACX+F,KAAM,OAIV4C,EAAGmmD,eAAgB,EAEvBnmD,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAlLnD,QAAS6tF,KAyLL1vF,EAAGm+C,YAvLHn+C,EAAAojD,aAAO,KA+LX,QAASgD,GAxLUC,GAyLf,GAAIA,EAxLIC,sBAAc,CAyLlB,GAxLIE,GAAA,QAAeC,EAAAJ,EAAAK,QAAA,GAyLfC,EAAiBnsD,EAAO6P,KAAKrK,EAAG6vF,iBAAmBpoC,SAAYjB,GACnEhsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAASC,GAvLpCA,EAAMY,WAAAjB,IACNK,EAAAC,OAAatsD,EAAGyC,OAAA0pD,EAAoBG,QAAgBxrB,SAAA+qB,EAAiBC,sBAAaS,YAgMtF/mD,EAAGqyB,KAvLCp1B,UAEJ,KAAI,GAAG/B,KAAA8E,GAAA4mD,YACC5mD,EAAA4mD,YAAQ1rD,GAAAorD,wBAyLRtmD,EAAGqyB,IAAIp1B,OAAO+C,EAAG4mD,YAAY1rD,GAAGwrD,QAAU1mD,EAAG4mD,YAAY1rD,GAAGorD,sBAAsBS,YAM1FC,KAQR,QAASC,GAAmBC,GACxBF,GACA,IAAI/rD,IAvLRnF,UAASkK,EAAA+jD,iBAAyBjuD,UAyL1BguD,WAAY9jD,EAAG+jD,iBAAiBD,WAEpCtC,GAxLc6J,iBAAApwD,GAAAwD,KAAA,SAAAC,GACV,GAAiB,MAAZA,EAAIlI,OAAQ,CACTwJ,EAAAq+C,OAAQ1hD,KAAAC,MAAA8B,EAAAhJ,KAAuBgK,QAyL/BM,EAAGsrD,WAAa9wD,EAAO+wD,KAAKvrD,EAAGq+C,OAAO2F,OAAO0C,OAvLlD1mD,EAAA+lD,uBAyLK,IAAIqB,KAvLR5sD,GAASqI,QAAA7C,EAAAq+C,OAAA2F,MAAA,SAAA6C,GACF,GAAG/N,IACCuO,KAAGR,EAAAQ,KACFX,OAAGG,EAAAH,OACfI,OAAkB,UAAAD,EAAAH,OAAAG,EAAAC,UA0LVM,GAASvvD,KAAKihD,GAvLhB94C,EAAA4mD,YAAAQ,IAENpnD,EAAA+lD,qBAA8BqB,EAyL1BpnD,EAAGsS,WAAY,MAtLnBva,GAAa2I,YAAG,QAAkB,yBAA0B,SA2LhE,SAxLIC,GACA5I,EAAQ2I,YAAA,QAAA,mBAAA,UA0LhBgkD,IAIJ,QAxLQ4C,GAAAJ,EAAsBb,GAyL1BrmD,EAAGumD,aACHvmD,EAAG+lD,oBAEH,IAAIS,GAxLW,QAAAC,EAAAJ,EAAAK,QAAA,GAyLXC,EAxLQnsD,EAAW6P,KAAArK,EAAYq+C,OAAA2F,OAyL/B0C,OAAUF,GAEdhsD,GAAOqI,QAxLC7C,EAAA+lD,qBAAgC,SAAAc,GAyLhCA,EAAEH,SAAWF,IACbK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QACpCxrB,SAAY4rB,EAAKZ,sBAAsBS,YAOvD,QAASN,GAAUc,GACf,MAAO3gD,UAAS2gD,EAAWjkC,UAAU,IAGzC,QAxLQkkC,KAyLJxnD,EAAGukD,aACH,KAxLI,GAAKrpD,KAAI8E,GAAA+lD,qBAAsB,CAyL/B,GAxLI9qD,IAyLAwsD,SAAUznD,EAAG+lD,qBAAqB7qD,GAAGmsD,KAvLtCK,SAAW1nD,EAAA+lD,qBAAA7qD,GAAAwrD,OA0Ld1mD,GAAGukD,WAxLW1sD,KAAAoD,IA4LtB,QAAS+rD,KACLxsD,EAAOqI,QAAQ7C,EAAG+lD,qBAAsB,SAASM,GAC7CA,EAxLIC,sBAAc,OAwN1B,QAASltC,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KAvLpB9iB,EAASb,EAAAa,IACL,OAAU,QAANA,IAAM,IAAA8iB,EAAAC,UAAA,IAAAD,EAAAC,UA+Nd,QAxLOC,GAAW7jB,GACd,GAAG2jB,GAAA3jB,EAAA2jB,KAyLC9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAEzCxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAtLnE,IAAAF,IAASI,EACL,MAAW5Z,GAAA2Z,OAAUze,GAAA1E,OA4L7B,MAAO,GAiCX,QAxLImxD,KAyLA,GAxL2B,KAwLvB3nD,EAAGkiD,eAxLS75B,KAAgB,CAyL5BroB,EAAG+iD,KAxLKE,GAAG7uD,QAAS8e,KAAKlT,EAAA+iD,KAAMC,KAyL/B,IAAI4E,GAxLoB,CAyLxB5nD,GAAG+iD,KAxLKE,GAAGznC,QAAAxb,EAAA+iD,KAAAE,GAAAjnC,UAAuB4rC,GACX,IAwLnB5nD,EAAG6hD,yBAxLgB9oC,IAyLnB2rC,QAvLmB,KAwLhB1kD,EAAGkiD,eAxLa75B,OAyLvBroB,EAAG+iD,KAAKE,GAAK,IAuBrB,QAAS+E,KAtLL,GAA4B,KAAxBhoD,EAAAkiD,eAAiB75B,KAAY,CAC7BroB,EAAA+iD,KAAAE,GAAU7uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,KAyLV,IAAI8E,GAAqB,CAvL7B9nD,GAAO+iD,KAAAE,GAAQ8E,SAAG/nD,EAAA+iD,KAAAE,GAAA9R,WAAsB2W,GACpC9nD,EAAA+iD,KAAME,GAAAznC,QAAWxb,EAAA+iD,KAAUE,GAAAjnC,UAAA,GACE,IAAzBhc,EAAE6hD,yBAAuB9oC,IAyLzB2rC,QAE6B,KAA1B1kD,EAAGkiD,eAAe75B,OACzBroB,EAAG+iD,KAAKE,GAAK,IAUrB,QAxLSgF,GAAYC,GA0LjB,GAAIhoD,GAxLI/F,EAAagG,uBAyLjBlF,GACAmF,SAAUF,EAAWi/C,UAvLrBrpD,UAAGoyD,EA0LP5G,GAAsB2G,aAAahtD,GAAKwD,KAAK,SAASC,GAC/B,MAAfA,EAAIlI,QAvLPwJ,EAAAmoD,qBAAqBzpD,EAAAhJ,KACnBsK,EAAAsS,WAAW,EA2LVtS,EAAGooD,sBACHpoD,EAAG4tC,gBACH5tC,EAAGgiD,gBAAkB,KACrBhiD,EAAG+hD,2BAA6B,MApLhChqD,EAAI2I,YAAA,QAAA,yBAAA,oBAEbV,EAAA8hD,kBAAA,KAyLK9hD,EAAG+hD,2BAA6B,KAvLrC/hD,EAAQgiD,gBAAW,KACfhiD,EAAAiiD,iBAAK,KAyLJjiD,EAAGkiD,eAAiB,MAtLzB,SAAAvhD,GACC5I,EAAa2I,YAAA,QAAA,mBAAA,sBAEF,IAAXV,EAAA6hD,yBAAW9oC,IAyLP+sC,IAKR,QAxLI0C,KACA,GAAAtoD,GAAa/F,EAAAgG,uBACblF,GAyLImF,SAAUF,EAAWi/C,UACrBrpD,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9B42C,cAAe1sC,EAAG8hD,kBAAkBpV,cAtLxC4U,GAAgBkH,aAAAvtD,GAAAwD,KAAA,SAAAC,GACA,MAAZA,EAAOlI,QACJwJ,EAAAooD,mBAAwB1pD,EAAAhJ,KAyLvBsK,EAAGsS,WAAY,GAtLxBva,EAAY2I,YAAW,QAAA,yBAAA,kBAEnB,SAAAC,GAyLC5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAK5D,QAxLO+nD,GAAOP,EAASQ,GACnB,GAAIxoD,GAAY/F,EAAAgG,uBA0LZlF,GACAmF,SAAUF,EAAWi/C,UAvL1BrpD,UAAQoyD,EACJxb,cAAgBgc,EA2LnBpH,GAAsBmH,WAAWxtD,GAAKwD,KAAK,SAASC,GAvLlC,MAAnBA,EAAUlI,QACDwJ,EAAA4tC,aAAelvC,EAAOhJ,KAyLtBsK,EAAGsS,WAAY,EAtLiB,GAA9BtS,EAAA8hD,kBAAgBpV,eACf8b,IA8LHxoD,EAAG+hD,2BAA6B,KAChC/hD,EAAGgiD,gBAAkB,KAvLrBhiD,EAAAiiD,iBAAA,KACAjiD,EAAAkiD,eAAA,MA0LAnqD,EAAW2I,YAAY,QAAS,yBAA0B,kBAtLtE,SAASC,GACD5I,EAAO2I,YAAK,QAAA,mBAAA,mBA8LpB,QAASioD,GAxLOT,EAAAU,GAyLZ,GAAI1oD,GAAa/F,EAAsBgG,uBAEnClF,GACAmF,SAAUF,EAAWi/C,UACrBrpD,UAAWoyD,EACXhM,WAAY0M,EAGhBtH,GAAsBqH,YAAY1tD,GAAKwD,KAAK,SAASC,GAC9B,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KACxBsK,EAAGsS,WAAY,GAtLhBva,EAAA2I,YAAuB,QAAK,yBAAA,iBAE/BV,EAAGkiD,eAAgB,MAyLpB,SAxLSvhD,GACR5I,EAAQ2I,YAAa,QAAQ,mBAAK,mBAt+B1C,GAAIV,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGk7C,WAtLHl7C,EAAG47C,gBAwLH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGgT,YAvLa,EAwLhBhT,EAAG+S,WAvLY,EAwLf/S,EAAGsS,WAvLS,EAwLZtS,EAAGmiD,mBAAqBA,CACxB,IAAIhwC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAAsBA,EACzBzhB,EAAGm+C,YAEHn+C,EAAG0kD,eAvLQA,EAwLX1kD,EAAGioD,aAvLaA,EAwLhBjoD,EAAG08C,oBAvLSA,EAwLZ18C,EAAG88C,qBAvLgBA,EAwLnB98C,EAAGo9C,yBAvLYA,EAwLfp9C,EAAGs9C,yBAvLSA,EAwLZt9C,EAAGy9C,aAvLeA,EAwLlBz9C,EAAG8lD,qBAvLkBA,EAwLrB9lD,EAAGinD,mBAAqBA,EACxBjnD,EAAGsnD,iBAAmBA,EACtBtnD,EAAGwnD,cAAgBA,EACnBxnD,EAAGymD,UAAYA,EACfzmD,EAAGomD,YAAcA,EACjBpmD,EAAG2nD,iBAAmBA,EAEtB3nD,EAAGgoD,gBAAkBA,EACrBhoD,EAAGyoD,WAAaA,EAChBzoD,EAAGwoD,aAAeA,EAClBxoD,EAAG2oD,YAAcA,EACjB3oD,EAAG+iD,QAEHhrD,EAAW2c,SAAU,EACrBxC,IAGAlS,EAAGu7C,eAAkBC,aAAc,MAAOnzB,KAAM,MAASmzB,aAAc,UAAWnzB,KAAM,MAASmzB,aAAc,WAAYnzB,KAAM,MAEjIroB,EAAG6oD,iBAAoBnG,eAAgB,WAAY2B,aAAc,MAAS3B,eAAgB,eAAgB2B,aAAc,MAExHrkD,EAAG+oD,iBAtLHpG,eAAS,QAAkBt6B,KAAA,IAAAonE,iBAAA,IAwLrB9sC,eAAgB,SAAUt6B,KAAM,IAAKonE,iBAAkB,IAtLzD9sC,eAAO,UAAet6B,KAAa,IAAAonE,iBAAA,IA2LvCzvF,EAAGgpD,kBAvLgBzG,gBAAmB,iBAAYxpC,GAAA,EAAAwrC,WAAA,UAAAhC,gBAAA,qBAAAxpC,GAAA,EAAAwrC,WAAA,cAwLlDvkD,EAAGqlD,yBAvLYvC,qBAAgC,6BAAA/pC,GAAA,IAAA+pC,qBAAA,gBAAA/pC,GAAA,IA+X/C/Y,EAAG2vF,YAxLK,WAyLJ,GAAIzvF,GAAa/F,EAAsBgG,uBA9KnCiiD,EAAGpiD,EAAAkiD,eAAiButC,iBACpBjtC,EAAG,IAuMP,IAda,GAATJ,EACAI,EAAa,kBAAoBxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,8BAAgC3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGiiD,iBAAiBY,eAAiB,4BAAmC7iD,EAAG6hD,yBAAyBiB,qBAC3T,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAC3Hb,EAAQ,EACfI,EAAa,kBAAoBxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,4BAA8B3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBAvLzT,eAAoB7oD,EAAW,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBACpC,GAAAb,IACII,EAAQ,kBAAgBxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,6BAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAgiD,gBAAAkB,aAAA,4BAAAljD,EAAA6hD,yBAAAiB,qBACpB,cAAqB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,qBAMdrtD,QAAXqK,EAAAojD,cAAgCpjD,EAAAojD,aAAAjoD,OAAoB,EAAA,CAyLpD,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAGojD,aAvLlBC,EAAAxrD,KAAAmI,EAAAojD,aAAkBloD,GAAAooD,cAElBtjD,GAAAujD,KAAAF,EAAA3vB,OA4LH,GAAuB/9B,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aACbuM,EAAIxrD,KAAKmI,EAAG82C,aAAa57C,GAAG8kB,OAtLpChgB,GAAAjC,KAAAslD,EAAA3vB,OA6LA,GAA8B/9B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG69C,oBACbwF,EAAIxrD,KAAKmI,EAAG69C,oBAAoB3iD,GAAG22B,cAEvC7xB,GAAGwjD,YAAcH,EAAI3vB,OAKzB,GAxLiB/9B,QAAbqK,EAAA29C,kBAAoC39C,EAAA29C,iBAAmBxiD,OAAA,EAAA,CAyLvD,GAxLIkoD,KAyLJ,KAxLG,GAAInoD,KAAA8E,GAAQ29C,iBACf0F,EAAAxrD,KAAamI,EAAA29C,iBAAoBziD,GAAGghD,WA0LpCl8C,GAxLGyjD,SAAIJ,EAAS3vB,OAqMpB,GAxLIz4B,IA0LAnF,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9B4tD,YAA6B/tD,QAAfqK,EAAGyjD,SAAyBzjD,EAAGyjD,SAAW,GAvLxDE,eAAmChuD,QAAhCqK,EAAgBwjD,YAA6BxjD,EAAAwjD,YAAY,GAC5DI,QAAUjuD,QAAAqK,EAAAjC,KAAAiC,EAAAjC,KAAA,GACVulD,cAAiB3tD,QAAHqK,EAAGujD,KAAcvjD,EAAAujD,KAAA,GAyL/BnE,iBAxLgBp/C,EAAAmT,gBAAgB84B,YAyLhC3pB,YAAatiB,EAAG6hB,gBAAgBS,YAvLhCuhC,WAAU,EAyLVC,WAAY9jD,EAAG+jD,iBAAiBD,WAChCE,MAAOrnD,KAAKqkB,UAAUhhB,EAAGqyB,KACzBqd,SAAUz1C,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cACxCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAvLpClE,SAAG/+C,EAAAikD,mBAAuB57B,KAC1ByL,SAAU5zB,EAAAi/C,UACV+E,QAAS1B,EAyLT2B,kBAxLgB,QAyLhBE,aAAcrkD,EAAGyiD,mBAAmB4B,aAvLpCC,UAAG,QAyLHE,WAA6B7uD,QAAhBqK,EAAGskD,UAA0BtkD,EAAGskD,UAAY,IACzDF,OAAQpkD,EAAG6hD,yBAAyB9oC,GArLpC/Y,GAAG8hD,kBAAApV,cAAiC,GACpCzxC,EAAImvB,MAAMz0B,QAAAqK,EAAAgiD,gBAAAxqB,WAAAx3B,EAAAgiD,gBAAAxqB,WAAA,GACVv8B,EAAKyxC,cAA8B/2C,QAAlBqK,EAAA8hD,kBAAkBpV,cAAA1sC,EAAA8hD,kBAAApV,cAAA,KA0LnCzxC,EAAImvB,MAA6Cz0B,QAApCqK,EAAGiiD,iBAAiB3qB,aAA6Bt3B,EAAGiiD,iBAAiB3qB,aAAe,GAvL9Fr8B,EAAAyxC,cAAe/2C,QAAAqK,EAAA8hD,kBAAApV,cAAA1sC,EAAA8hD,kBAAApV,cAAA,IA2LtBva,QAAQC,IAAIn3B,GAGZqmD,EAAsBy3B,cAAc99E,GAAKwD,KAAK,SAASC,GAC/C,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CACf,IAAIrX,IAvLhBuF,QAAAN,EAAAM,QAyLgBk/C,KAAM1/C,EAAG8Z,cAvLf6lC,WAAA,GAEKvgD,EAAG7E,EAAgB8E,MAC9BhI,WAAiB,EACjBiI,eAAoB,cACVC,gBAAW,aACrBrK,YAAmB,8DACnBE,WAAqB,kBACrBC,aAAgB,KACJ+H,KAAA,KACAoC,SAAG,SACHC,UAAU,EACZyQ,SACM3N,MAAA,WACH,MAAAtH,MAKbmE,GAAWM,OAAAjB,KAAA,SAAAC,KAEA,kBAMRrE,GAAAwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OACC4C,EAAAsS,WAAY,GA2LhB,SAAS3R,GAvLL5I,EAAI2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OAyLJ4C,EAAGsS,WAAY,KA2f3BtS,EAAGqa,MAAQ,WACPra,EAAGsa,GAxLK,GAAAb,OA0LZzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAxLIjB,EAyLJkB,QAxLQ,GAAIhB,MAyLZiB,WAAW,GAGf1a,EAAG2a,aACCC,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAxLE,KAAA,EAAA,IAyLfgB,QAAS,GAxLGhB,MAyLZqB,YAAa,GAUjB9a,EAAG+a,UAxLQ,WAyLP/a,EAAGua,cAxLKE,QAAiBza,EAAAua,cAAkBE,QAAA,KAAA,GAAAhB,MAyL3CzZ,EAAG2a,YAxLSF,QAAaza,EAACua,cAAGE,SA2LjCza,EAAG+a,YAEH/a,EAAGkb,MAxLK,WAyLJlb,EAAGmb,OAxLKtM,QAAS,CAyLL,IAAI4K,OAIpBzZ,EAAGgb,MAxLK,WAyLJhb,EAAGib,OAxLKpM,QAAG,CACC,IAAI4K,OA2LpBzZ,EAAGwb,QAAU,SAxLOC,EAAMC,EAAAC,GAyLtB3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAxLK,aAAgB,aAAA,aAyLnC5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAxLY,cA2Lf9b,EAAGmb,QACCtM,QAxLG,GA2LP7O,EAAGib,QACCpM,QAAQ,GAwBZ7O,EAAGkpD,UAAY,WACmB,KAA1BlpD,EAAGkiD,eAAe75B,MAElBroB,EAAG+iD,KAxLCC,KAAQ,GAAAvpC,MAyLZzZ,EAAG+iD,KAAKC,KAAO5uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,MAvLpChjD,EAAA+iD,KAAKE,GAAI7uD,QAAQ8e,KAAAlT,EAAA+iD,KAAaC,MACJ,IAAtBhjD,EAAA6hD,yBAAsB9oC,IAyLtB2rC,KAC6B,KAA1B1kD,EAAGkiD,eAAe75B,MACzBroB,EAAG+iD,KAAKC,KAAO,KACfhjD,EAAG+iD,KAAKE,GAAK,OAEbjjD,EAxLG+iD,KAAAC,KAAA,KACHhjD,EAAA+iD,KAAAE,GAAA,OA4LRjjD,EAAGgc,QAAU,WACqB,KAA1Bhc,EAAGkiD,eAAe75B,OAClBroB,EAAG+iD,KAAKC,KAAO5uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,MACpChjD,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,OAtLtC,IAAAhjD,EAAA6hD,yBAAA9oC,IACI2rC,8NAv0BZtwD,QACKC,OAAO,0BACPe,WAvLU,gBAAYw6F,MAk2C/B,WACI,YAOA,SAASE,GAAe/3F,EAAYkC,EAASO,EAAQH,EAASE,EAAWR,EAAOiY,EAAgBJ,EAAwB0vC,EACpH1G,EAxLW2G,EAAyBC,EAAOrnD,EAAAM,GA2P3C,QAASyX,KACDC,EAEAH,EAxLOI,mBAAqBD,GAAA1T,KAAA,SAAAC,GACN,MAAfA,EAAAlI,SACAwJ,EAAAqS,YAAkB3T,EAAAhJ,KAClBsK,EAAAsS,WAAA,IA0LJ,SAAS3R,GACR5I,EAxLG2I,YAAA,QAAA,mBAAA,qBAGPV,EAAG0hD,iBAAA7/B,gBAAoB,KACvB7hB,EAAG2hB,gBA8LX,QAxLQF,GAAWtP,GAyLfP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GAvLxD,MAAAA,EAAAlI,QACHwJ,EAAA2hB,YAAAjjB,EAAAhJ,KAyLIsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAtLtE,SAASC,GACD5I,EAAA2I,YAAa,QAAA,mBAAsB,oBA0LvCV,EAAG6hB,gBAxLW,KAyLd7hB,EAAG6hD,yBAxLe,KAyLlB7hD,EAAG8hD,kBAxLmB,KAyLtB9hD,EAAGiiD,iBAAmB,KAvLtBjiD,EAAAgiD,gBAAA,KAyLAhiD,EAAGkiD,eAxLS,KA6LhB,QAASC,KAELniD,EAAGsS,WAxLY,CAyLf,IAAIpS,GAAa/F,EAAsBgG,uBA9KnC4vF,GAyLA3tC,MAAOpiD,EAAGkiD,eAAeutC,iBACzBO,OAAQhwF,EAAG8hD,kBAAkBpV,eAG7B8V,EAxLO,IA0MX,IAzMW,GAwLPutC,EAxLIC,QAAeD,EAAA3tC,MAAA,EAyLnBI,EAAa,kBAAoBxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,cAAgB3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGiiD,iBAAiBY,eAAiB,4BAAmC7iD,EAAG6hD,yBAAyBiB,qBAvL3S,eAAyB7oD,EAAA,QAAiB+F,EAAG+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBACzC,GAwLD8sC,EAxLC3tC,OAAA,GAAA2tC,EAAAC,OAyLRxtC,EAAa,kBAAoBxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,YAAc3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGiiD,iBAAiBY,eAAiB,4BAAmC7iD,EAAG6hD,yBAAyBiB,qBACzS,cAA0B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,oBACvD,GAAd+sC,EAAK3tC,OAA4B,GAAd2tC,EAAK3tC,OAA6B,GAAf2tC,EAAKC,OAClDxtC,EAAa,kBAAoBxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,YAAc3iD,EAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,EAAGgiD,gBAAgBkB,aAAe,4BAAmCljD,EAAG6hD,yBAAyBiB,qBACtS,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAvL3H,GAAA8sC,EAAA3tC,OAA6B,GAA7B2tC,EAAAC,SAyLPxtC,EAxLO,kBAAkBxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,aAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAgiD,gBAAAkB,aAAA,4BAAAljD,EAAA6hD,yBAAAiB,qBACrB,cAAsB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,qBAMfrtD,QAAXqK,EAAAojD,cAAgCpjD,EAAAojD,aAAAjoD,OAAoB,EAAA,CAyLpD,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAGojD,aACbC,EAAIxrD,KAAKmI,EAAGojD,aAAaloD,GAAGooD,cAEhCtjD,GAAGujD,KAAOF,EAAI3vB,OApLlB,GAAU/9B,QAANqK,EAAA82C,cAAM92C,EAAA82C,aAAA37C,OAAA,EAAA,CACN,GAAAkoD,KACA,KAAA,GAAAnoD,KAAW8E,GAAA82C,aACXuM,EAAAxrD,KAAYmI,EAAA82C,aAAA57C,GAAA8kB,OA0LZhgB,GAAGjC,KAAOslD,EAAI3vB,OAKlB,GAxLW/9B,QAwLPqK,EAAG69C,qBAxLI79C,EAAA69C,oBAAA1iD,OAAA,EAAA,CAyLP,GAxLIkoD,KAyLJ,KAAK,GAAInoD,KAAK8E,GAAG69C,oBAvLdwF,EAAAxrD,KAAAmI,EAAA69C,oBAAiB3iD,GAAA22B,cAEpB7xB,GAAAwjD,YAAWH,EAAA3vB,OA6Lf,GAA2B/9B,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG29C,iBAvLrB0F,EAAAxrD,KAAAmI,EAAA29C,iBAAAziD,GAAAghD,WA0LIl8C,GAAGyjD,SAAWJ,EAAI3vB,OA5KvB,GAAAz4B,IAEAnF,UAAakK,EAAA6hB,gBAAA/rB,UACb4tD,YAAY/tD,QAAAqK,EAAAyjD,SAAAzjD,EAAAyjD,SAAA,GACZE,eAAYhuD,QAAAqK,EAAAwjD,YAAAxjD,EAAAwjD,YAAA,GACZI,QAAqBjuD,QAArBqK,EAAAjC,KAAqBiC,EAAAjC,KAAA,GACpBulD,cAAY3tD,QAAAqK,EAAAujD,KAAsBvjD,EAAAujD,KAAA,GACnCnE,iBAAsBp/C,EAAAmT,gBAAA84B,YACtB3pB,YAAWtiB,EAAA6hB,gBAAAS,YA0LNuhC,WAAY,EAxLjBC,WAAiB9jD,EAAA+jD,iBAAAD,WACjBE,MAAArnD,KAAeqkB,UAAAhhB,EAAAqyB,KACfqd,SAAAz1C,EAAsB,QAAA+F,EAAA+iD,KAAAC,KAAA,cACtBrT,OAAA11C,EAAA,QAAuB+F,EAAA+iD,KAAAE,GAAA,cACvBlE,SAAA/+C,EAAAikD,mBAA2B57B,KAC3ByL,SAAA5zB,EAAAi/C,UACA+E,QAAA1B,EACA2B,kBAAuB,QACvBE,aAAArkD,EAAqByiD,mBAAA4B,aA0LhBC,UAAWtkD,EAAGyiD,mBAAmB4B,aAvLtCG,WAAYxkD,EAAA8hD,kBAAApV,cACZ0X,OAAApkD,EAAc6hD,yBAAA9oC,GAGd/Y,GAAA8hD,kBAAkBpV,cAAA,GAClBzxC,EAAAmvB,MAAaz0B,QAAAqK,EAAAgiD,gBAAAxqB,WAAAx3B,EAAAgiD,gBAAAxqB,WAAA,GACbv8B,EAAAyxC,cAAe/2C,QAAAqK,EAAA8hD,kBAAApV,cAAA1sC,EAAA8hD,kBAAApV,cAAA,KAEfzxC,EAAOmvB,MAAAz0B,QAAAqK,EAAAiiD,iBAAA3qB,aAAAt3B,EAAAiiD,iBAAA3qB,aAAA,GA0LEr8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,IAGrHva,QAAQC,IAAIn3B,GAGZqmD,EAAsBw3B,uBAAuB79E,GAAKwD,KAAK,SAASC,GAxLjE,GAAoB,MAApBA,EAAiBlI,OAAG,CA0LPwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAxLpCsK,EAAAsS,WAAiB,CACd,IAAA2D,GAAgBnf,SAAUijB,cAAW,IACrCjjB,UAAgBC,KAAAijB,YAAiB/D,GACjCA,EAAAgE,MAAgB,eA0LN,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACjBqI,KAAM,oBAvL3BtJ,EAAqBC,OAAAwlB,IAAAC,gBAAiBvc,EACtCnD,GAAA4E,KAA0B5K,EAAE,UA0LfsD,EAAW2I,YAAY,UAAW,iBAAkB,mBACpDwR,QAnLR7X,GAAcwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OACR4C,EAAAsS,WAAA,GA4LN,SAAS3R,GACL5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,EAAGsS,WAAY,IA4M3B,QAzLQoyC,KA2LJ,GAzLIzpD,IA0LI6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAvLlCF,OAAK,EACLgvD,YAAa5kD,EAAA8hD,kBAAuBpV,cAChClV,WAAmD,IAAzCx3B,EAAA8hD,kBAAiBpV,cAA8B1sC,EAAAiiD,iBAAgB3qB,aAAiBt3B,EAAAgiD,gBAAoBxqB,WAC/GqtB,qBAAyC,IAAlB7kD,EAAA8hD,kBAAkBpV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EAC5CxM,SAAaz1C,EAAA,QAAA,GAAoBwf,MAAGzZ,EAAA+iD,KAAAC,MAAA,cAChCrT,OAAkC,KAAlC3vC,EAAUkiD,eAAgB75B,KAAgBpuB,EAAQ,QAAM,GAAAwf,MAAAzZ,EAAA+iD,KAAgBC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cAI7C,KAyL/BjjD,EAzLG6hD,yBAAuB9oC,KAC1B9d,EAAA+oD,MAAArnD,KAAaqkB,UAAAhhB,EAAAqyB,MA2LjBivB,EAAsBwD,UAAU7pD,GAAKwD,KAAK,SAASC,GAC5B,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,MAEZsK,EAAGk7C,QAAQ//C,OAAS,GAxL1Bd,EAAA8C,OAAgB,UAAa,iDAA4B6C,EAAA6hB,gBAAAS,aAClDjrB,WAAA,EACD+F,KAAQ,OA6Lb4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SAzLKC,GACJ5I,EAAS2I,YAAQ,QAAc,mBAAA,2BA6LvC,QAASg8C,GAAoB5mD,GACzB,GAAIA,EAAW,CACX,GAAImF,IACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAxLnFhuD,UAAAA,EAEHF,OAAS,EA2L8B,KAAnCoK,EAAG6hD,yBAAyB9oC,KAxL7B9d,EAAA+oD,MAAArnD,KAAkBqkB,UAAAhhB,EAAAqyB,MA2LrBivB,EAAsByD,cAAc9pD,GAAKwD,KAAK,SAASC,GAChC,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,MAvLnBsK,EAAA8V,YAAA3a,OAAA,GACDd,EAAQ8C,OAAA,UAAkB,uCACnB9F,WAAA,EA0LA+F,KAAM,OAId4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAMvD,QAASi7C,GAAqBhnD,EAAWugB,EAAW0mC,GAEhD,GAzLI1mC,GAAavgB,GAA6B,MAAzBkK,EAAYglD,aAA2B,MAAXhlD,EAAA8hD,kBAAW,CACxD,GAAAzvB,KACA,KAAA,GAASn3B,KAAI8E,GAAAglD,YACb3yB,EAAAx6B,KAAAmI,EAAgBglD,YAAW9pD,GAAAwgD;AAG3B17C,EAAA+8C,MAAA1qB,EAAYqB,MACZ,IAAAz2B,IACAoZ,UAAYA,EACZ2mC,MAAUh9C,EAAA+8C,OAEV9hD,GACA6oD,WAAqBnuD,QAAXqK,EAAA+jD,iBAAW/jD,EAAA+jD,iBAAAD,WAAA,GACrBhuD,UAASA,EAETF,OAAA,EACAgvD,YAAc5kD,EAAA8hD,kBAAmBpV,cA0L7BlV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAxLnHqtB,qBAAiC,IAAlB7kD,EAAA8hD,kBAAkBpV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EACjCxM,SAAWz1C,EAAA,QAAA,GAAAwf,MAAyBzZ,EAAA+iD,KAAAC,MAAA,cA0LhCrT,OAAmC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cACxIiC,UAAWvoD,KAAKqkB,UAAU/jB,GAvLE,KAA5B+C,EAAA6hD,yBAA4B9oC,KAC5B9d,EAAI+oD,MAAArnD,KAAAqkB,UAAoBhhB,EAAAqyB,MAE5BivB,EAAgB6D,eAAiBlqD,GAAAwD,KAAA,SAAgBC,GACzC,MAAAA,EAAAlI,QA0LAwJ,EAAG47C,aAAel9C,EAAIhJ,MACjBsK,EAAG47C,aAAazgD,OAAS,GAxL9Bd,EAAA8C,OAAA,UAAA,qDA0LQ9F,WAAW,EACX+F,KAAM,OArLd4C,EAAGsS,WAAY,GA2LfjY,EAzLIwH,MAAS,QAAA,yBAAW,mBA2L7B,SAzLSlB,GA0LRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAkDvD,QAASu7C,KAEL,GAA2BznD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG29C,iBACbtrB,EAAIx6B,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWpxB,EAAIqB,MAClB,IAAIz2B,IACA+/C,MAAOh9C,EAAG+8C,MACV1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,UAGfxoD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAE9B8uD,YAAa5kD,EAAG8hD,kBAAkBpV,cAClClV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAC/GqtB,qBAA8D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EAxLjHxM,SAAAz1C,EAAiB,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cACtBrT,OAAA,KAAA3vC,EAAAkiD,eAAA75B,KAAApuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cACIrtD,OAAM,EACFsvD,UAAAvoD,KAAgBqkB,UAAA/jB,GA2LiB,KAAjC+C,EAAGqlD,uBAAuBtsC,KAxL1B9d,EAAA+oD,MAAQsB,qBA2LZhE,EAzLoBiE,kBAAkBtqD,GAAAwD,KAAA,SAAkBC,GACpD,MAAAA,EAAAlI,QACAwJ,EAAAo8C,gBAAkB19C,EAAQhJ,KAC1BsK,EAAAsS,WAAY,GA2LRva,EAAW2I,YAAY,QAAS,yBAA0B,gBAvL/D,SAAAC,GACC5I,EAAQ2I,YAAe,QAAG,mBAAA,kBAiMtC,QAAS48C,GAzLsBxnD,EAAAomD,EAAArqB,GA2L3B,GAA8Bl8B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG69C,oBAxLbxrB,EAAGx6B,KAAAmI,EAAA69C,oBAAY3iD,GAAA22B,cA2LnB7xB,GAAGwjD,YAzLYnxB,EAAAqB,MAEhB,IAAAz2B,IACC+/C,MAAWh9C,EAAA+8C,MA0LP1mC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,aAtLlBvoD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAA6hB,gBAAA/rB,UAEX8uD,YAAQ5kD,EAAA8hD,kBAAApV,cA0LRlV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAxL/GqtB,qBAAsC,IAAnC7kD,EAAA8hD,kBAAmCpV,cAAA1sC,EAAA+hD,2BAAA7F,WAAA,EACtCxM,SAAIz1C,EAAa,QAAA,GAAawf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cA0L9BrT,OAAmC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,cAxL5IrtD,OAAA,EACIsvD,UAAQvoD,KAAAqkB,UAAgB/jB,GA2LS,KAAjC+C,EAAGqlD,uBAAuBtsC,KAC1B9d,EAzLI+oD,MAAQsB,qBA2LhBhE,EAzLgBmE,WAAWxqD,GAAAwD,KAAA,SAAAC,GACL,MAyLdA,EAAIlI,QACJwJ,EAAGizB,SAAWv0B,EAAIhJ,KAClBsK,EAAGsS,WAAY,GAvLfva,EAAG2I,YAAY,QAAA,yBAAA,eA2LpB,SAzLKC,GA0LJ5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAYhE,QAzLQ+8C,KA2LJ,GADAiyC,IACuB/5F,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIk3B,KAxLJ,KAAG,GAAAn3B,KAAQ8E,GAAI82C,aACXzkB,EAAAx6B,KAASmI,EAAA82C,aAAA57C,GAAA8kB,OA2LbhgB,GAAG2lD,KAzLCtzB,EAAUqB,MA0Ld,IAAIz2B,IAxLA+/C,MAAMh9C,EAAA+8C,MACN1mC,UAAArW,EAAa6hB,gBAAGxL,UAChB6lC,WAAWl8C,EAAAyjD,SA0LX5xB,cAAe7xB,EAAGwjD,YAxLlBxjC,OAAQhgB,EAAA2lD,KAER5G,SAAA/+C,EAAaikD,mBAAG57B,KAAkB6f,OAAAloC,EAAAikD,mBAA0B57B,KAAiB,MAG7EptB,GACA6oD,WAA0BnuD,QAAfqK,EAAK+jD,iBAAU/jD,EAAA+jD,iBAAAD,WAAA,GA0L1BhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAvL9B8uD,YAAY5kD,EAAA8hD,kBAAkBpV,cA0L9BlV,WAAoD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WAxLnHqtB,qBAA6D,IAAvC7kD,EAAA8hD,kBAAyBpV,cAAc1sC,EAAA+hD,2BAAA7F,WAAA,EACzDxM,SAAQz1C,EAAA,QAAgB,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cA0LxBrT,OAzL0B,KAAnB3vC,EAAAkiD,eAAmB75B,KAAApuB,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAC,MAAA,cAAA/oD,EAAA,QAAA,GAAAwf,MAAAzZ,EAAA+iD,KAAAE,IAAA,cA0L1BrtD,OAzLQ,EA0LRsvD,UAzLQvoD,KAAQqkB,UAAO/jB,GAEL,KAyLlB+C,EAAGqlD,uBAzLetsC,KA0LlB9d,EAAI+oD,MAAQsB,qBAEhBhE,EAAsBsE,WAAW3qD,GAAKwD,KAAK,SAASC,GAxL7B,MAAfA,EAAGlI,QA0LHwJ,EAzLGm+C,SAAAz/C,EAAAhJ,MACHsK,EAAQm+C,SAAMhjD,OAAS,EA0LnB6E,EAAG6lD,cAAe,EAvLlB7lD,EAAA6lD,cAAe,GA4LnB9tD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAASC,OAKpB,QAASmlD,GAAqB/sC,GAC1B,GAAI9d,IACAnF,UAAWkK,EAAG6hB,gBAAgB/rB,UAElC,IAAuC,IAAnCkK,EAAG6hD,yBAAyB9oC,GAAU,CACtC9d,EAAI2pD,YAAc5kD,EAAG8hD,kBAAkBpV,cACnCzxC,EAAIu8B,WAAqD,IAAvCx3B,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAGiiD,iBAAiB3qB,aAAet3B,EAAGgiD,gBAAgBxqB,WACpHv8B,EAAI4pD,qBAA+D,IAAvC7kD,EAAG8hD,kBAAkBpV,cAAuB1sC,EAAG+hD,2BAA2B7F,WAAa,EACnHjhD,EAAIy0C,SAAWz1C,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cACvD/nD,EAAI00C,OAAoC,KAA1B3vC,EAAGkiD,eAAe75B,KAAepuB,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKC,MAAO,cAAgB/oD,EAAQ,QAAQ,GAAIwf,MAAKzZ,EAAG+iD,KAAKE,IAAK,aACjJ,IAAI5wB,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGojD,aACb/wB,EAAIx6B,KAAKmI,EAAGojD,aAAaloD,GAAG+7B,QAEhCh8B,GAAIg8B,QAAU5E,EAAIqB,OAGtBknB,EAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAGgmD,aAAetnD,EAAIhJ,MACjBsK,EAAGgmD,aAAa7qD,OAAS,EAC1Bd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EACX+F,KAAM,OAIV4C,EAAGmmD,eAAgB,EAEvBnmD,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAnLnD,QAAS6tF,KA0LL1vF,EAAGm+C,YAxLHn+C,EAAAojD,aAAO,KAgMX,QAASgD,GAzLUC,GA2Lf,GAAIA,EAzLIC,sBAAe,CA0LnB,GAAIE,GAAW,QAAUC,EAAUJ,EAASK,QAAU,GAClDC,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,OAAO2F,OAAS0C,OAAUF,GAxL9DhsD,GAAIqI,QAAM7C,EAAA4mD,YAAA,SAAAC,GACNA,EAAAH,SAAgBF,IAChBK,EAAAC,OAActsD,EAAAyC,OAAA0pD,EAAgBG,QAAAxrB,SAAA+qB,EAAAC,sBAAAS,YAiMlC/mD,EAAGqyB,KACCp1B,UAEJ,KAzLI,GAAI/B,KAAA8E,GAAQ4mD,YA0LR5mD,EAAG4mD,YAAY1rD,GAAGorD,wBAxL1BtmD,EAAAqyB,IAAAp1B,OAAsB+C,EAAA4mD,YAAA1rD,GAAkBwrD,QAAU1mD,EAAA4mD,YAAc1rD,GAAAorD,sBAAAS,OA4LhE50B,SAzLQC,IAAGpyB,EAAAqyB,SA4LXryB,GAAGqyB,IAAM,KACT20B,IAQR,QAASC,GAAmBC,GAExBF,GAxLA,IAAI/rD,IACAnF,UAAUkK,EAAA+jD,iBAAAjuD,UACVguD,WAAS9jD,EAAK+jD,iBAAGD,WA2LrBtC,GAAkB6J,iBAAiBpwD,GAAKwD,KAAK,SAASC,GAxL/C,GAAkB,MAAlBA,EAAAlI,OAAkB,CA0LbwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAvLpCM,EAAO+lD,uBACP,IAAAqB,KACA5sD,GAAAqI,QAAe7C,EAAAq+C,OAAA2F,MAAA,SAAA6C,GACf,GAAA/N,IA0LYuO,KAAMR,EAAEQ,KACRX,OAAQG,EAAEH,OAxLhBI,OAAA,UAAAD,EAAAH,OAAAG,EAAAC,UAENM,GAAcvvD,KAAAihD,GA0LN94C,EAAG4mD,YAAcQ,IAvLzBpnD,EAAA+lD,qBAAgBqB,EAChBpnD,EAAAsS,WAAA,MAEAva,GAAY2I,YAAe,QAAQ,yBAA2B,SA4LlE,SAASC,GAxLL5I,EAAG2I,YAAA,QAAuB,mBAAU,UA2L5CgkD,IAsBJ,QAzLI+B,GAAAc,GACA,MAAO3gD,UAAA2gD,EAAgBjkC,UAAa,IA4LxC,QAASkkC,KAELxnD,EAAGukD,aACH,KAzLI,GAAIrpD,KAAA8E,GAAS+lD,qBAAA,CA0Lb,GAzLI9qD,IACAwsD,SAAAznD,EAAW+lD,qBAAmB7qD,GAAAmsD,KAC9BK,SAAA1nD,EAAY+lD,qBAAG7qD,GAAAwrD,OA2LnB1mD,GAAGukD,WAzLS1sD,KAAGoD,GA0Lfk3B,QAAQC,IAAIpyB,EAAGukD,aAIvB,QAzLQyC,KA2LJxsD,EAAOqI,QAzLC7C,EAAA+lD,qBAA8B,SAAAM,GA0LlCA,EAASC,sBAAwB,OAiCzC,QAzLQltC,GAAI1jB,GA0LR,GAAI2jB,GAzLI3jB,EAAI2jB,KA0LR9iB,EAzLIb,EAAIa,IA0LZ,OAzLY,QAyLLA,IAzLoC,IAApB8iB,EAAQC,UAAgC,IAAfD,EAAGC,UAgOvD,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KAxLpB9iB,EAASb,EAAAa,IACL,IAAA,QAAAA,EAGI,IAAI,GAFJijB,GAAS,GAAAC,MAAAJ,GAAuBK,SAAA,EAAA,EAAA,EAAA,GAE5Bxe,EAAA,EAAAA,EAAA8E,EAAiB2Z,OAAOxe,OAAQD,IAAO,CAC3C,GAAO0e,GAAW,GAAAH,MAAAzZ,EAAa2Z,OAASze,GAAGme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA2LvC,IAzLIF,IAAWI,EA0LX,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GA8BX,QAzLImxD,KA0LA,GAzL2B,KAyLvB3nD,EAAGkiD,eAzLS75B,KAAgB,CA0L5BroB,EAAG+iD,KAzLKE,GAAG7uD,QAAS8e,KAAKlT,EAAA+iD,KAAMC,KA0L/B,IAAI4E,GAAoB,CACxB5nD,GAAG+iD,KAzLKE,GAAGznC,QAAAxb,EAAA+iD,KAAAE,GAAAjnC,UAAuB4rC,GACX,IAyLnB5nD,EAAG6hD,yBAzLgB9oC,IA0LnB2rC,QAxLmB,KAyLhB1kD,EAAGkiD,eAzLa75B,OA0LvBroB,EAAG+iD,KAAKE,GAAK,IAuBrB,QAAS+E,KAEL,GAA8B,KAA1BhoD,EAAGkiD,eAAe75B,KAAa,CAC/BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAClC,IAAI8E,GAAqB,CACzB9nD,GAAG+iD,KAAKE,GAAG8E,SAAS/nD,EAAG+iD,KAAKE,GAAG9R,WAAa2W,GAC5C9nD,EAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY,GACH,IAAnChc,EAAG6hD,yBAAyB9oC,IAC5B2rC,QAE6B,KAA1B1kD,EAAGkiD,eAAe75B,OACzBroB,EAAG+iD,KAAKE,GAAK,IAUrB,QAzLOgF,GAAaC,GA2LhB,GAzLIhoD,GAAU/F,EAAAgG,uBA0LVlF,GACAmF,SAzLIF,EAAai/C,UA0LjBrpD,UAAWoyD,EAEf5G,GAzLmB2G,aAAAhtD,GAAAwD,KAAA,SAAAC,GA0LI,MAAfA,EAAIlI,QACJwJ,EAAGmoD,qBAAuBzpD,EAAIhJ,KAC9BsK,EAAGsS,WAAY,EAtLhBtS,EAAAooD,sBACHpoD,EAAA4tC,gBA0LI5tC,EAAGgiD,gBAAkB,KACrBhiD,EAAG+hD,2BAA6B,MAIhChqD,EAAW2I,YAAY,QAAS,yBAA0B,qBAE/D,SAASC,GAxLb5I,EAAQ2I,YAAW,QAAA,mBAAA,sBAGnBV,EAAA8hD,kBAAA,KA0LC9hD,EAAG+hD,2BAA6B,KAxLjC/hD,EAAAgiD,gBAAmB,KAClBhiD,EAAGiiD,iBAAK,KA0LRjiD,EAAGkiD,eAAiB,KAvLL,IAAhBliD,EAAA6hD,yBAAgB9oC,IACf+sC,IA+LJ,QAzLI0C,KACA,GAAAtoD,GAAY/F,EAAAgG,uBACZlF,GACAmF,SAAaF,EAAAi/C,UACbrpD,UAAakK,EAAA6hB,gBAAA/rB,UA0LT42C,cAAe1sC,EAAG8hD,kBAAkBpV,cAExC4U,GAAsBkH,aAAavtD,GAAKwD,KAAK,SAASC,GAxLlC,MAAfA,EAAAlI,QACDwJ,EAAOooD,mBAAK1pD,EAAAhJ,KACZsK,EAAOsS,WAAK,GA2LRva,EAAW2I,YAAY,QAAS,yBAA0B,kBAvLnE,SAAYC,GACR5I,EAAA2I,YAAwB,QAAG,mBAAwB,mBA8L1D,QAAS+nD,GAAWP,EAAOQ,GAxLxB,GAAAxoD,GAAQ/F,EAAWgG,uBAEdlF,GA0LAmF,SAAUF,EAAWi/C,UACrBrpD,UAAWoyD,EACXxb,cAAegc,EAtLnBpH,GAAgBmH,WAAAxtD,GAAAwD,KAAA,SAAAC,GA0LO,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KAxL/BsK,EAAUsS,WAAS,EA2LgC,GAAtCtS,EAAG8hD,kBAAkBpV,eACrB8b,IAKJxoD,EAAGgiD,gBAAkB,MAvLrBjqD,EAAA2I,YAAA,QAAA,yBAAA,iBAGTV,EAAA+hD,2BAAS,KACR/hD,EAAAgiD,gBAAQ,KA0LJhiD,EAAGiiD,iBAAmB,KACtBjiD,EAAGkiD,eAAiB,MACrB,SAASvhD,GAxLhB5I,EAAS2I,YAAkB,QAAA,mBAAA,mBA+L3B,QAzLQioD,GAAaT,EAAOU,GA0LxB,GAAI1oD,GAzLQ/F,EAAyBgG,uBA2LjClF,GACAmF,SAzLQF,EAAUi/C,UA0LlBrpD,UAAWoyD,EACXhM,WAAY0M,EAGhBtH,GAAsBqH,YAAY1tD,GAAKwD,KAAK,SAASC,GAC9B,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KACxBsK,EAAGsS,WAAY,GAvLxBva,EAAY2I,YAAW,QAAA,yBAAA,iBAElBV,EAAAkiD,eAAO,MA0LR,SAzLQvhD,GA0LP5I,EAzLO2I,YAAY,QAAa,mBAAQ,mBA3/BhD,GAAIV,GAxLIC,IAyLRD,GAAGsU,SAAW,KACdtU,EAAGk7C,WACHl7C,EAAG47C,gBAvLH57C,EAAAizB,YAyLAjzB,EAAGo8C,mBACHp8C,EAAGgT,YAxLa,EAyLhBhT,EAAG+S,WAxLS,EAyLZ/S,EAAGsS,WAxLQ,EAyLXtS,EAAGmiD,mBAxLYA,CAyLf,IAAIhwC,GAxLQhY,EAAAgG,uBAAAwU,gBAAAxC,SAyLZnS,GAAGyhB,oBAxLeA,EAyLlBzhB,EAAGm+C,YAEHn+C,EAAG0kD,eAAiBA,EACpB1kD,EAAGioD,aAAeA,EAClBjoD,EAAG08C,oBAAsBA,EACzB18C,EAAG88C,qBAAuBA,EAC1B98C,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGs9C,yBAA2BA,EAC9Bt9C,EAAGy9C,aAAeA,EAClBz9C,EAAG8lD,qBAAuBA,EAC1B9lD,EAAGinD,mBAAqBA,EAExBjnD,EAAGwnD,cAAgBA,EACnBxnD,EAAGymD,UAAYA,EACfzmD,EAAGomD,YAAcA,EACjBpmD,EAAG2nD,iBAAmBA,EAEtB3nD,EAAGgoD,gBAAkBA,EACrBhoD,EAAGyoD,WAAaA,EAChBzoD,EAAGwoD,aAAeA,EAClBxoD,EAAG2oD,YAAcA,EACjB3oD,EAAG+iD,QAtLHhrD,EAAS2c,SAAA,EAyLTxC,IAGAlS,EAAGu7C,eAxLSC,aAAqB,MAAAnzB,KAAA,MAAAmzB,aAAA,UAAAnzB,KAAA,MAAAmzB,aAAA,WAAAnzB,KAAA,MA0LjCroB,EAAG6oD,iBAxLgBnG,eAAmB,WAAY2B,aAAA,MAAA3B,eAAA,eAAA2B,aAAA,MA0LlDrkD,EAAG+oD,iBACGpG,eAAgB,SAAUt6B,KAAM,IAAKonE,iBAAkB,IACvD9sC,eAxLY,UAAet6B,KAAA,IAAQonE,iBAAK,IAyLxC9sC,eAxLe,WAAAt6B,KAAA,IAAAonE,iBAAA,IA4LrBzvF,EAAGgpD,kBAAqBzG,gBAAiB,iBAAkBxpC,GAAI,EAAGwrC,WAAY,UAAahC,gBAAiB,qBAAsBxpC,GAAI,EAAGwrC,WAAY,cACrJvkD,EAAGqlD,yBAA4BvC,qBAAsB,6BAA8B/pC,GAAI,IAAO+pC,qBAAsB,gBAAiB/pC,GAAI,IA+MzI/Y,EAAG2vF,YAAc,WACb,GAAIzvF,GAzLY/F,EAAKgG,uBAmMjB4vF,GAxLR3tC,MAASpiD,EAAAkiD,eAAoButC,iBACzBO,OAAAhwF,EAAA8hD,kBAAuBpV,eA4LnB8V,EAzLO,IAkBX,IAjBW,GAyLPutC,EAAKC,QAzLED,EAAA3tC,MAAA,EA0LPI,EAzLI,kBAAuBxiD,EAASyiD,mBAAAC,eAA0B,IAAA1iD,EAAAkiD,eAAAS,eAAA,cAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBA0L1D,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,oBAxLrH,GAAd8sC,EAAS3tC,OAAK,GAAA2tC,EAAAC,OACbxtC,EAAW,kBAAqBxiD,EAAAyiD,mBAAoBC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,YAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAiiD,iBAAAY,eAAA,4BAAA7iD,EAAA6hD,yBAAAiB,qBA0LhD,cAA0B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,oBAxL3D,GAAlB+sC,EAAA3tC,OAAkB,GAAA2tC,EAAA3tC,OAAA,GAAA2tC,EAAAC,OAClBxtC,EAAA,kBAA2BxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,YAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAgiD,gBAAAkB,aAAA,4BAAAljD,EAAA6hD,yBAAAiB,qBAC3B,eAAoB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,oBACD,GAAnB8sC,EAAA3tC,OAAmB,GAAA2tC,EAAAC,SACnBxtC,EAAA,kBAAkBxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,aAAA3iD,EAAA8hD,kBAAAc,gBAAA,4BAAA5iD,EAAAgiD,gBAAAkB,aAAA,4BAAAljD,EAAA6hD,yBAAAiB,qBAClB,cAAiB7oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,qBAMpBrtD,QAAAqK,EAAAojD,cAAApjD,EAAAojD,aAAAjoD,OAAA,EAAA,CACG,GAAAkoD,KACC,KAAA,GAAAnoD,KAAa8E,GAAAojD,aA0LTC,EAAIxrD,KAAKmI,EAAGojD,aAAaloD,GAAGooD,cAEhCtjD,GAAGujD,KAAOF,EAAI3vB,OAIlB,GAAuB/9B,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aAxLjBuM,EAAOxrD,KAAAmI,EAAA82C,aAAA57C,GAAA8kB,OAEPhgB,GAAAjC,KAAQslD,EAAG3vB,OA8Lf,GAzLiB/9B,QAAbqK,EAAA69C,qBAAoC79C,EAAA69C,oBAAmB1iD,OAAA,EAAiB,CA0LxE,GAzLIkoD,KA0LJ,KAzLG,GAAInoD,KAAK8E,GAAA69C,oBACZwF,EAAAxrD,KAAamI,EAAA69C,oBAAuB3iD,GAAA22B,cA2LpC7xB,GAzLGwjD,YAASH,EAAS3vB,OA8LzB,GAzLkB/9B,QAyLdqK,EAAG29C,kBAzL2B39C,EAAQ29C,iBAAgBxiD,OAAM,EAAA,CA0L5D,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG29C,iBACb0F,EAAIxrD,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWJ,EAAI3vB,OAatB,GAAIz4B,IAvLAnF,UAAUkK,EAAI6hB,gBAAA/rB,UA0Ld4tD,YAA6B/tD,QAAfqK,EAAGyjD,SAAyBzjD,EAAGyjD,SAAW,GACxDE,eAAmChuD,QAAlBqK,EAAGwjD,YAA4BxjD,EAAGwjD,YAAc,GACjEI,QAAqBjuD,QAAXqK,EAAGjC,KAAqBiC,EAAGjC,KAAO,GAC5CulD,cAA2B3tD,QAAXqK,EAAGujD,KAAqBvjD,EAAGujD,KAAO,GAxLlDnE,iBAAGp/C,EAAAmT,gBAAuB84B,YAC1B3pB,YAAUtiB,EAAA6hB,gBAAAS,YACVuhC,WAAS,EA0LTC,WAzLQ9jD,EAAK+jD,iBAAGD,WA0LhBE,MAAOrnD,KAAKqkB,UAAUhhB,EAAGqyB,KAxLzBqd,SAAGz1C,EAAc,QAAI+F,EAAA+iD,KAAAC,KAAA,cA0LrBrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cACpClE,SAAU/+C,EAAGikD,mBAAmB57B,KAChCyL,SAAU5zB,EAAWi/C,UACrB+E,QAAS1B,EAxLT2B,kBAAG,QACHE,aAAUrkD,EAAAyiD,mBAAA4B,aACVC,UAAStkD,EAAKyiD,mBAAG4B,aA2LjBG,WAAYxkD,EAAG8hD,kBAAkBpV,cAxLjC0X,OAAGpkD,EAAA6hD,yBAAe9oC,GA4LlB/Y,GAAG8hD,kBAAkBpV,cAAgB,GACrCzxC,EAAImvB,MAA0Cz0B,QAAjCqK,EAAGgiD,gBAAgBxqB,WAA2Bx3B,EAAGgiD,gBAAgBxqB,WAAa,GACvFv8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,KAEjHzxC,EAAImvB,MAA6Cz0B,QAApCqK,EAAGiiD,iBAAiB3qB,aAA6Bt3B,EAAGiiD,iBAAiB3qB,aAAe,GAC7Fr8B,EAAIyxC,cAAuD/2C,QAAtCqK,EAAG8hD,kBAAkBpV,cAA8B1sC,EAAG8hD,kBAAkBpV,cAAgB,IAtLrHva,QAAAC,IAAAn3B,GA4LAqmD,EAAsBw3B,uBAAuB79E,GAAKwD,KAAK,SAASC,GAxL5D,GAAc,MAAdA,EAAWlI,OAAG,CACdwJ,EAAA8Z,cAAiBpb,EAAYhJ,KAC7BsK,EAAAsS,WAAoB,CACpB,IAAUrX,IACVuF,QAAmBN,EAAQM,QAC3Bk/C,KAAkB1/C,EAAG8Z,cACrB6lC,WAAgB,GAEJvgD,EAAG7E,EAAiB8E,MACpBhI,WAAU,EACZiI,eAAgB,cAClBC,gBAAmB,aACjBrK,YAAG,8DACHE,WAAW,kBACZC,aAAA,KACT+H,KAAA,KACAoC,SAAiB,SACNC,UAAG,EA0LFyQ,SAxLG3N,MAAA,WACJ,MAAAtH,MAKHmE,GAAAM,OAAoBjB,KAAA,SAAAC,KAExB,kBA+LIrE,GAAQwH,MAAM,QAAS,0BAA4BxK,WAAW,EAAM+F,KAAM,OAxLtF4C,EAAAsS,WAAsB,GA4LlB,SAzLQ3R,GA0LJ5I,EAzLQ2I,YAAa,QAAA,iBAAcrJ,WAAA,EAAA+F,KAAA,OA0LnC4C,EAAGsS,WAzLU,KA2rBzBtS,EAAGqa,MAzLK,WA0LJra,EAAGsa,GAzLK,GAAIb,OA2LhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAxL/BgB,QAAS,GAAAhB,MACLqB,YAAU,GAmMd9a,EAAG+a,UAzLU,WA0LT/a,EAAGua,cAzLcE,QAAGza,EAAAua,cAAgBE,QAAA,KAAA,GAAAhB,MA0LpCzZ,EAAG2a,YAAYF,QAAUza,EAAGua,cAAcE,SAG9Cza,EAAG+a,YAEH/a,EAAGkb,MAzLK,WA0LJlb,EAAGmb,OAzLKtM,QAAG,CACC,IAAI4K,OA6LpBzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CACP,IAzLG4K,OA4LnBzZ,EAAGwb,QAzLS,SAAGC,EAAYC,EAAAC,GA0LvB3b,EAAGsa,GAAK,GAzLGb,MAAAgC,EAAAC,EAAAC,IA4Lf3b,EAAG4b,SAzLI,eAAc,aAAA,aAAA,aA0LrB5b,EAAG6b,OAzLK7b,EAAA4b,QAAc,GA0LtB5b,EAAG8b,iBAAmB,cAGtB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QACCpM,QAAQ,GAwBZ7O,EAAGkpD,UAzLU,WACMvzD,QAyLXqK,EAAG+iD,OAxLsB,KAyLrB/iD,EAAGkiD,eAzLe75B,MA0LlBroB,EAAG+iD,KAAKC,KAAO,GAAIvpC,MACnBzZ,EAAG+iD,KAAKC,KAAO5uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,MAxLxChjD,EAAA+iD,KAAYE,GAAG7uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,MA0LX0B,KAxLD,KAAA1kD,EAAAkiD,eAAA75B,MACAroB,EAAA+iD,KAAMC,KAAA,KACThjD,EAAA+iD,KAAAE,GAAA,OA2LIjjD,EAAG+iD,KAAKC,KAAO,KACfhjD,EAAG+iD,KAAKE,GAAK,QAIzBjjD,EAAGgc,QAAU,WAxLqB,KAAlChc,EAASkiD,eAAA75B,OACLroB,EAAA+iD,KAAAC,KAAA5uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,MACAhjD,EAAA+iD,KAAAE,GAAA7uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,OA2LA0B,iPAnhCRtwD,QAvLIC,OAAG,0BAyLFe,WAxLU,iBAAe06F,MAy3ClC,WACI,YAOA,SAASG,GAAiBl2F,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASF,EAAuB6X,EAAgBk+E,GAgClH,QAASh+E,KAELg+E,EAAoBC,qBAAqB1xF,KAAK,SAAUC,GAxLjC,MAAlBA,EAAAlI,SA0LGwJ,EAAG47C,aAAel9C,EAAIhJ,KAxLvBsK,EAAAsS,WAAe,IA2LnB,SAzLK3R,GACJ5I,EAAW2I,YAAY,QAAQ,mBAAa,mBA4LhDwvF,EAzLQE,qBAAA3xF,KAAA,SAAAC,GA0Le,MAAfA,EAAIlI,SAxLLwJ,EAAIqwF,iBAAkB3xF,EAAAhJ,KACtBsK,EAAAsS,WAAU,IA2Ld,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAQ5D,QAAS4vF,GAAmBC,GAxLxB,GAAI59E,GAAAtY,EAAasY,QAAA,UAAsB,4CACnCtb,WAAM,EACN+F,KAAA,MAGJuV,GAAAjT,OAAAjB,KAAA,WACIyxF,EAAmBI,mBAAKC,EAAAC,UAAA/xF,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,QACAuB,EAAY2I,YAAA,UAAA,uBAAA,iBA0LXwR,KAvLDna,EAAA2I,YAAqB,QAAA,+BACrBrJ,WAAe,EACf+F,KAAA,QA4LJ,SAAUuD,GACT5I,EAzLG2I,YAAA,QAAA,gEACHrJ,WAAW,EA0LP+F,KAAM,UAGf,cAIP,QAzLOqzF,GAAkB39E,GACrB9S,EAAG+S,WAAA,EACH/S,EAAGgT,YAAA,EA0LJhT,EAAGuwF,OAAOG,WAAa59E,EAAI69E,WAE1B3wF,EAAGuwF,OAzLCn8F,QAAA8e,KAAAJ,EA2LJ,KAAK,GAAI5X,KAAK8E,GAAG47C,aACT57C,EAAG47C,aAAa1gD,GAAGghD,YAAcl8C,EAAGuwF,OAAOr0C,aAC3Cl8C,EAAGuwF,OAAO5yC,iBAAmB39C,EAAG47C,aAAa1gD,IAMzD,QAzLQ01F,GAAcL,GA0LlB,GAzLI78E,GAAAvZ,EAAoCgG,uBA0LpCowF,GAxLJC,SAAA,EACIt0C,WAAQl8C,EAAAuwF,OAAW5yC,iBAAKzB,WA2LxB20C,WAzLO,GA0LPF,WAzLO3wF,EAAAuwF,OAAAG,WA4LX,IAzLG1wF,EAAA+S,UA+MCw9E,EAAO58E,WAAaD,EAAYrT,OAChCkwF,EAAOC,SAAWxwF,EAAGuwF,OAAOC,SAC5BN,EAAoBO,iBAAiBF,GAAQ9xF,KAAK,SAAUC,GACpDA,EAAIhJ,KAAKke,aAAc,GAxLxB7b,EAAA2I,YAAkB,UAAAhC,EAAAhJ,KAAAme,QAAA,kBAClB3B,IACHlS,EAAAgT,YAAW,EA0LPhT,EAAG+S,WAAY,EACfrB,MAvLL3Z,EAAA2I,YAAkB,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAClB7T,EAAAgT,YAAmB,IAEvB,SAAcrS,GACb5I,EAAW2I,YAAY,qCApCV,CACb6vF,EAAAz8E,UAAWJ,EAAYrT,MA0LvB,IAAIjC,GAAW,GAAIH,SACnBG,GAASF,OAAO,OAAQvB,KAAKqkB,UAAUuvE,IAtL/CL,EAA2BY,gBAAQP,EAAAx2F,GAAA0E,KAAA,SAAAC,GAC3BA,EAAAhJ,KAAake,aAAA,GA0LL7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBAxLtD3B,IACNlS,EAAUgT,YAAW,EACrBtB,MA2LQ3Z,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAClD7T,EAAGgT,YAAa,IAGrB,SAzLIrS,GACH5I,EAAG2I,YAAY,kCAkN3B,QAzLQsT,KA0LJhU,EAAG+S,WAAY,EAxLf/S,EAAAgT,YAAU,EA0LVhT,EAAGiU,aAzLW,EA4LlB,QAASvC,KAvLL1R,EAAAuwF,UA0LAvwF,EAAGgT,YAzLS,EA0LZhT,EAAG+S,WAzLQ,EA4Lf,QAASmB,KACLlU,EAAG+wF,WAAW38E,gBArKlB,GAzLIpU,GAAAC,IA2LJD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAxLpGrL,EAAAsU,SAAStU,EAAAqU,gBAAmB,GA2L5BrU,EAAGuU,YAzLa,EA0LhBvU,EAAGwU,qBAzLS,SAAoBC,GA0L5BzU,EAAGuU,YAzLYE,GA4LnBzU,EAAGgT,YAzLY,EA0LfhT,EAAG+S,WAzLQ,EA0LX/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EAIrB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGuwF,UAEHvwF,EAAG4wF,iBAAmBA,EACtB5wF,EAAGywF,iBAAmBA,EAEtBzwF,EAAGswF,mBAAqBA,CAERn2F,GAAsBgG,uBAAuBwU,gBAAgBxC,SAE7ED,2IAnCJ9d,QAxLIC,OAAG,4BA0LFe,WAzLU,mBAAe66F,MAwWlC,WACI,YAOA,SAASe,GAAej3F,EAAOhC,EAAYyC,EAAQH,EAASwvF,EAA0B1vF,EAAsBM,EAAQgQ,GAiDhH,QA1LIyH,KA4LA23E,EA1LWE,oBAAuBtrF,KAAA,SAAAC,GACX,MAAfA,EAAGlI,QA2LHwJ,EAAGixF,eAAiBvyF,EAAIhJ,KAzL7BsK,EAAAsS,WAAe,GA4LVva,EAAW2I,YAAY,QAAS,yBAA0B,kBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAtL5D,QAASsT,KACLhU,EAAAgT,YAAc,EA2LdhT,EAAGwX,aA1LY,EA2LfxX,EAAGyX,WA1LO,EA8Ld,QA1LQC,KA2LJ1X,EAAGgT,YA1La,EA2LhBkB,IACAlU,EAAGkxF,eA1LSC,KAAA,GA8LhB,QAASz/E,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFAzLGtb,WAAU,EACT+F,KAAA,MA6LRuV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAzLjBkB,IA2LClU,EAAGkxF,eAAeC,KAAO,KAOjC,QAASj9E,KAzLLlU,EAAGoxF,mBAAiBh9E,gBA6LxB,QA1LQ+1E,GAAoB+G,GA2LxBlxF,EAAGwX,aA1LQ,EA2LXxX,EAAGyX,WAAU,EACbzX,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGkxF,eAAiB98F,QAAQ8e,KAAKg+E,GAKrC,QA1LQ9G,GAAU8G,GA2Ld,GA1LIv+E,GAAAtY,EAAesY,QAAO,UAAA,4CA2LtBtb,WAAW,EAzLX+F,KAAA,MA6LJuV,GAAQjT,OAAOjB,KAAK,WAzLhBorF,EAAeO,qBAAA8G,EAAAjG,QAAAxsF,KAAA,SAAAC,GACI,MAAZA,EAAAlI,QACHuB,EAAe2I,YAAA,UAAA,oCAAA,QACnBwR,KA4LQna,EAAW2I,YAAY,QAAS,8BAzLxCrJ,WAAoB,EACR+F,KAAK,QA6Ld,SA1LQuD,GA2LP5I,EA1LI2I,YAAA,QAAA,sEA2LArJ,WA1LG,EACH+F,KAAA,UA6LT,cAKP,QAASi0F,GA1LEH,GA2LP,GA1LIhxF,GAAO/F,EAAyBgG,sBAChCH,GAAA+S,WA4MAm+E,EAAev9E,WAAazT,EAAWG,OACvCwpF,EAAyBM,mBAAmB+G,GAAgBzyF,KAAK,SAASC,GAzLzEA,EAAShJ,KAAAke,aAAA,GACX7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACZ3B,IACAlS,EAAAgT,YAAc,EA2LLhT,EAAG+S,WAAY,EACf2E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAzLlD7T,EAAAgT,YAAA,IA6LL,SAASrS,GACR5I,EAAW2I,YAAY,mCAzN3BwwF,EAAAp9E,UAAoB5T,EAAiBG,OA2LrCwpF,EA1LiBK,kBAAoBgH,GAAAzyF,KAAA,SAAAC,GAC7BA,EAAAhJ,KAAAke,aAAuB,GACvB7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACA3B,IACAlS,EAAGgT,YAAY,EACf0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAClD7T,EAAGgT,YAAa,IA6LrB,SA1LCrS,GA2LA5I,EAAW2I,YAAY,kCAwBnC,QAAS2pF,GAA2B6G,GAChC,GAAInwF,GAAM,yBAA4BmwF,EAAe,SAAY,WAAa,UAAY,gBAzL1Fv4E,GAAAu4E,EAAA,SAAA,WAAA,UAAA,+BACRv+E,EAAAtY,EAAAsY,QAAA,UA2LY5R,GAAO1J,WAAW,EAAM+F,KAAM,MAzL1CuV,GAAAjT,OAAAjB,KAAA,WACYorF,EAAAQ,2BAAA6G,EAAAjG,QAAAxsF,KAAA,SAAAC,GACsB,MAAlBA,EAAAlI,QA4LIuB,EAAW2I,YAAY,UAAWiY,EAAM,QACxCzG,KAzLPna,EAAA2I,YAAA,QAAA,qBAAArJ,WAAA,EAAA+F,KAAA,QA6LE,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,4DAA8DrJ,WAAW,EAAM+F,KAAM,UAzL/H,cAKD,QAAGmtF,KA6LEp4D,QAAQC,IAAI,QACdpyB,EAAGsS,WAAY,CA1LhB,IAEY0T,IAFC7rB,EAAAgG,wBAGb8rC,YAAiB,iBA+LZ49C,GAAyBU,qBAAqBvkE,GAAWvnB,KAAK,SAAUC,GA1LpE,GAAA,MAAAA,EAAAlI,OAAA,CACGwJ,EAAA8Z,cAAApb,EAAAhJ,KACZsK,EAAAsS,WAAqB,CACrB,IAAA2D,GAAAnf,SAAuBijB,cAAA,IACvBjjB,UAAqBC,KAAAijB,YAAA/D,GACrBA,EAAAgE,MAAA,eACA,IAAArc,GAAuB,GAAAC,OAAAa,EAAAhJ,OACXqI,KAAA,oBA6LKtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,eAAgB,mBA1L3DwR,QAESna,GAAW2I,YAAA,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OACb4C,EAAAsS,WAAO,GAGb,SAAW3R,GACX5I,EAAO2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OA4LH4C,EAAGsS,WAAY,IAha/B,GAAAtS,GAAAC,IAKAD,GAAAqU,kBAA0BhJ,MAAO,IAAAA,MAAS,KAAQA,MAAY,KAAQA,MAAS,KAAAA,MAAA,MA2L5ErL,EA1LCsU,SAAStU,EAAAqU,gBAAA,GA4LVrU,EA1LCuU,YAAG,EA2LJvU,EA1LCwU,qBAAiB,SAAgBC,GA2LhCzU,EAAGuU,YAAcE,GAIlBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAzLf/S,EAAGsS,WAAA,EACHtS,EAAGixF,kBACHl5F,EAAG2c,SAAY,EA4Lf1U,EAAGgU,OAASA,EAEZhU,EAAG0R,OAASA,EAzLZ1R,EAAGkU,UAASA,EACZlU,EAAGmqF,mBAASA,EACZnqF,EAAGoqF,qBAAYA,EACfpqF,EAAGqxF,mBAASA,EA2LZrxF,EAAGqqF,2BAA6BA,EAzLhCrqF,EAAGuqF,qBAAmBA,EACtBvqF,EAAGwX,aAAA,EA2LHxX,EAAGyX,WAAU,EAEbvF,IAvLAzH,EAAAkc,SAAA,SAAAxqB,EAAAyqB,GAEA,GAAAC,GAAgB,GAAAC,QAAA,gBA2LRC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MAzLtD,KAAAN,EAAAje,KAAAme,GA6LI,MA5LA5qB,GAAIkB,iBA2LJtF,EA1LO2I,YAAe,OAAI,iCAAA,mBACnB,6HA0InBtM,QACKC,OAAO,iCAxLfe,WAAY,iBAAA47F,MAyab,WACI,YAOA,SAASM,GA3LgBv3F,EAAAhC,EAAA0C,EAAAD,EAAAH,EAAAwvF,EAAAW,EAAA//E,EAAAtQ,GAgPrB,QA3LQ+X,KA4LJs4E,EAAqBC,sBAAsBhsF,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,QA1LJwJ,EAAAuxF,iBAAY7yF,EAAWhJ,KAC3BsK,EAAAsS,WAAA,GA6LIva,EA3LI2I,YAAW,QAAY,yBAAW,mBA6L3C,SAAUC,GACT5I,EA3LQ2I,YAAW,QAAY,mBAAS,oBA6L5C8wF,IAGJ,QAASA,KACL3H,EA3LmBI,eAAqBxrF,KAAA,SAAAC,GACjB,MA2LfA,EA3LIlI,OA4LJwJ,EAAGyxF,eA3LO/yF,EAAAhJ,KA6LVqC,EAAW2I,YAAY,QAAS,4CAA6C,UAGjF,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,4CAA6C,WAKzF,QA3LQgxF,GAAeC,EAAY1G,EAAW1sF,GACtCozF,IA4LAC,IACApH,EA3LmBF,qBAAuBqH,EAAS1G,GAASxsF,KAAA,SAAAC,GA4LxD,GA3LI,MAAAA,EAAAlI,OAAA,CACAwJ,EAAG6xF,SAAAnzF,EAAahJ,IAChB,KAAA,GAAAwF,KAAA8E,GAAA6xF,SACG7xF,EAAA6xF,SAAA32F,GAAAy9C,YAAA34C,EAAA6xF,SAAA32F,GAAAy9C,YAAA,IAAA34C,EAAA6xF,SAAA32F,GAAAq3B,QAEHvyB,GAAGsS,WAAA,EA4LC/T,GACAA,QAzLRxG,GAAW2I,YAAY,QAAA,yBAAA,UA6LxB,SAAUC,GA1LV5I,EAAA2I,YAAA,QAAA,mBAAA,YAiMX,QAASoxF,GA3LOC,EAAGC,GA4LfC,IACAjyF,EAAGgyF,aACH,KAAK,GAAI92F,GAAI,EA3LEA,EAAA62F,EAAA72F,IA4LN82F,EAGDhyF,EAAGgyF,WAAWn6F,MA1Lfq6F,cAAcF,EAAA92F,KAwLb8E,EAAGgyF,WA3LIn6F,SAoMnB,QAASo6F,KA1LTjyF,EAAA2xF,SAAS,KACL3xF,EAAAmyF,cAAU,KACVnyF,EAAA6xF,YACA7xF,EAAAoyF,aAAc,KA8LlB,QA3LIR,KA4LA5xF,EAAGmyF,cA3LC,KA4LJnyF,EAAG6xF,YACH7xF,EAAGoyF,aA3LS,KA+LhB,QAASp+E,KACLhU,EAAGgT,YA3La,EA4LhBd,IAGJ,QAASwF,KACL1X,EAAGyxF,kBACHzxF,EAAGmyF,cAAgB,KACnBnyF,EAAG6xF,YA1LL7xF,EAAAqyF,YAAS,KA4LPryF,EAAGoyF,aAAe,GAClBpyF,EA3LE2xF,SAAY,KACd3xF,EAAGkyF,cAAY,GACfh+E,IA4LAlU,EAAG+S,WAAY,EACf/S,EAAGgT,YA3LS,EA4LZd,IAGJ,QAASgC,KACLlU,EAAGsyF,kBA3LCl+E,gBA8LR,QAASm+E,GA3LUz/E,GA4Lf9S,EAAG+S,WA3LS,EA4LZ/S,EAAGgT,YA3LS,EA4LZhT,EAAG+qF,iBA3LmB32F,QAAA8e,KAAAJ,EAAAi4E,kBA4LtB/qF,EAAGoyF,aA3Lah+F,QAAO8e,KAAIJ,EAAMs/E,aA6LjC,KAAK,GAAIv6E,KAAK7X,GAAGyxF,eACTzxF,EAAGyxF,eA3LW55E,GAAOozE,SAAIn4E,EAAAm4E,SA4LzBjrF,EAAGqyF,YAAcryF,EAAGyxF,eAAe55E,GACnCi6E,EA3LI9xF,EAAQqyF,YAAUN,WAAAj/E,EAAAyrC,WAAAvjD,MAAA,MAGf,OA2LX8X,EAAI2hB,OACJz0B,EAAG2xF,SA3LK7+E,EAAA2hB,KAAWk9D,SA4LnBD,EA3LW5+E,EAAY2hB,KAAAk9D,SAAA7+E,EAAAm4E,OAAA,WA4LnB,IAAK,GAAI/vF,KAAK8E,GAAG6xF,SACT7xF,EAAG6xF,SAAS32F,GAAGs3F,SAAW1/E,EAAI0/E,SA1LvCxyF,EAAUmyF,cAAKnyF,EAAA6xF,SAAA32F,OAQjC,QAAYwW,KACT,GAAAiB,GAAAtY,EAAAsY,QAAA,eA4LY,yFAzLAtb,WAAA,EACI+F,KAAA,MAGhBuV,GAASjT,OAAAjB,KAAkB,WACnBuB,EAAKyxF,kBA6LDzxF,EAAGmyF,cAAgB,KA3LxBnyF,EAAA6xF,YACC7xF,EAAAqyF,YAAS,KACVryF,EAAAoyF,aAAA,GACCpyF,EAAA2xF,SAAS,KACV3xF,EAAAkyF,cAAA,GACCh+E,IACDlU,EAAA+S,WAAA,EACC/S,EAAAgT,YAAS,EACVd,MAKH,QAAG24E,GAAc4H,GACd,GAAA9/E,GAAAtY,EAAuBsY,QAAA,UAAe,4CAClCtb,WAAA,EA6LC+F,KAAM,MAEVuV,GAAQjT,OAAOjB,KAAK,WA3LrB+rF,EAAaK,oBAAA4H,EAAA1H,kBAAAtsF,KAAA,SAAAC,GACD,MAAAA,EAAAlI,QACAuB,EAAA2I,YAAA,UAAA,uBAAA,kBACZwR,KAEQna,EAAU2I,YAAA,QAAA,+BA6LDrJ,WAAW,EA3LjB+F,KAAA,QAGX,SAAYuD,GACZ5I,EAAA2I,YAAwB,QAAA,uEACxBrJ,WAAoB,EACpB+F,KAAA,UAGH,cAgMA,QA5LQs1F,KACJ,GAAIz3F,IACAgwF,OAAOjrF,EAAAqyF,YAAWpH,OAClBmH,aAAMpyF,EAAAoyF,aACNI,OAAAxyF,EAAWmyF,cAAYK,QA+LvBvvF,EAAO,EACX,KAAK,GAAI/H,KAAK8E,GAAGgyF,WACb/uF,GAAQjD,EAAGgyF,WAAW92F,GAAGg3F,cACpBlyF,EAAGgyF,WAAW72F,OAAS,GAAMD,IA3LjC+H,GAAO,IA+LZhI,GAAIsjD,WA5LOt7C,CA6LX,IAAI/C,GA5LO/F,EAAYgG,sBA6LlBH,GAAG+S,WA3KJ9X,EAAA8vF,iBAAe/qF,EAAA+qF,iBA6Lf9vF,EA5LI0Y,WAAWzT,EAAYG,OA6L3BmqF,EAAqBE,kBAAkBzvF,GAAKwD,KAAK,SAAUC,GAC7B,GAAtBA,EAAIhJ,KAAKke,WACT7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBACpD6D,MA1LR3f,EAAU2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,kBACV7T,EAAAgT,YAAA,IA+LG,SA5LQrS,GA6LP5I,EA5LS2I,YAAY,mCAgKzBzF,EA5LI6Y,UAAW5T,EAAYG,OA6L3BmqF,EAAqBI,iBAAiB3vF,GAAKwD,KAAK,SAAUC,GA3L5C,GAAfA,EAAUhJ,KAAKke,WACd7b,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAoB,kBA6L5C6D,MAGA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBA3LzD7T,EAAAgT,YAAe,IA+Lb,SA5LIrS,GA6LH5I,EA5LG2I,YAAA,kCAmNf,QAASwqF,KACLlrF,EAAGsS,WAAY,CACf,IAEI0T,IA9La7rB,EAAKgG,wBA+LlB8rC,YAAa,iBAxLrBu+C,GAAkBU,eAAYllE,GAAYvnB,KAAA,SAAAC,GACtC,GAAA,MAAAA,EAAAlI,OAAA,CACGwJ,EAAA8Z,cAAapb,EAAAhJ,KACXsK,EAAIsS,WAAW,CACZ,IAAC2D,GAAAnf,SAAYijB,cAAA,IACbjjB,UAAGC,KAAWijB,YAAK/D,GA6LnBA,EAAEgE,MA5LC,eACH,IAAGrc,GAAA,GAAWC,OAAKa,EAAAhJ,OACfqI,KAAA,oBA8LAtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,eAAgB,mBA3LrDwR,QAEFna,GAAgB2I,YAAA,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OAChB4C,EAAAsS,WAAW,GA+LX,SAAU3R,GA3LjB5I,EAAS2I,YAAY,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OACd4C,EAAAsS,WAAgB,IA5HvB,GAAItS,GA3LIC,IA6LRD,GAAGqU,kBACChJ,MAAS,IAzLTA,MAAG,KAEHA,MAAG,KA6LHA,MAAS,KAzLbA,MAAS,MA6LTrL,EAAGsU,SA3LCtU,EAAAqU,gBAAA,GA6LJrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YA3LS,EA4LZhT,EAAG+S,WA3LS,EA4LZ/S,EAAGsS,WAAY,EACftS,EAAGuxF,oBACHvxF,EAAGgyF,cACHj6F,EA3LW2c,SAAA,EA6LX1U,EAAG8xF,SA3LQA,EA4LX9xF,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAG0xF,sBAAwBA,EAC3B1xF,EAAGuyF,kBAAoBA,EACvBvyF,EAAG6qF,oBAAsBA,EA1LzB7qF,EAAA0yF,kBAAqBA,EA4LrB1yF,EAAGkrF,eA3LIA,EA4LPh5E,IAzLAzH,EAAAkc,SAAS,SAAmBxqB,EAAAyqB,GAExB,GAAGC,GAAA,GAAUC,QAAA,gBACVC,EAAAC,OAAYC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MACf,KAAGN,EAAAje,KAAame,GA8LZ,MA7LD5qB,GAAAkB,iBA4LCtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,oJApDnBtM,QACKC,OAAO,6BACPe,WAAW,oBA3LGk8F,MA+fvB,WACI,YAOA,SA5LQqB,GAAkBloF,EAAAxQ,EAAAu7B,EAAAz7B,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EA6LtBG,GAgBA,QA5LO+X,KAEHsjB,EAAiBT,yBAAgBxyB,EAAAyyB,OAAAv2B,KAAA,SAAAC,GAC7B,GAAO,MAAHA,EAAGlI,OAAe,CAElBwJ,EAAAi1B,eAAYv2B,EAAYhJ,IA6LxB,KAAK,GAAIwF,KAAK8E,GAAGi1B,eAAgB,CAC7Bj1B,EAAGi1B,eAAe/5B,GAAGg6B,MAAQv4B,KAAKC,MAAMoD,EAAGi1B,eAAe/5B,GAAGo4B,UA3LjE,KAAQ,GAAAnpB,KAAMnK,GAAAi1B,eAAA/5B,GAAAg6B,MAAAL,SACf70B,EAAW60B,SAASA,SAAAh9B,KAAAmI,EAAAi1B,eAAA/5B,GAAAg6B,MAAAL,SAAA1qB,IA+LnBnK,EAAGsS,WA5LQ,IA8LhB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA9B5D,GA5LIV,GAAGC,IA6LPD,GAAGsU,SA5LC,KA6LJtU,EAAGgT,YA5LI,EA6LPhT,EAAG+S,WA5LI,EA6LP/S,EAAGsS,WA5LC,EA6LJva,EAAW2c,SAAU,CACJva,GAAsBgG,sBA9JvC,IAiKAH,EAAG60B,UACCA,aAGJ3iB,IArKA3P,EAAS4yB,YACD5yB,EAAA4yB,WAAUD,MAAQ,CAClB,GAAAj6B,GAAA0B,KAAAC,MAAA2F,EAAA4yB,WAAAD,MA6LA,KAAK,GAAIh6B,KAAKD,GAAI45B,SA3LlB70B,EAAA60B,SAAAA,SAAAh9B,KAAAoD,EAAA45B,SAAA35B,IA+MR8E,EAAG0R,OAAS,WA1LZ4K,EAASrN,MAAAtS,KAAoBqkB,UAAAhhB,EAAe60B,YA+L5C70B,EAAGo1B,iBA5LW,SAAAtiB,EAAA5X,GA6LV,GAAIyX,GAAUtY,EAAQsY,QAAQ,UA3L9B,4CACItb,WAAA,EACI+F,KAAI,MA+LZuV,GAAQjT,OA5LOjB,KAAA,WA6LX+2B,EA5LmBH,oBAAqBviB,GAAArU,KAAA,SAAAC,GA6LhCA,EA5LIhJ,MA6LJqC,EA5LU2I,YAAA,UAAAhC,EAAAhJ,KAAA,IA6LVsK,EAAG60B,SAASA,SAASS,OAAOp6B,EAAG,IAU/BnD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAM,KAzLlD,SAAMiL,GACN5I,EAAW2I,YAAY,8LA4FnCtM,QACKC,OA5LM,4BA6LNe,WA5LM,yBAAgBu9F,MAmS/B,WACI,YAOA,SAASC,GA5LoBnoF,EAAasuB,EAAM9+B,EAAAF,EAAAhC,EAAAy9B,EAAAjzB,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAuiB,EA6L5CpiB,GACA,GAAI6F,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,CACrB,IACI5R,IADa3I,EAAsBgG,2BAGnC64B,EAAWvuB,EAAOuuB,SAAW,GAAID,MACrCC,GAASC,QAAQphC,MACb4E,KAAM,eACNy8B,GA5LI,SAAIp2B,EAAsBq2B,GAC1B,MAAIl5B,MAAAm5B,MAAaj+B,OAAA,MAkMzB69B,EAASK,kBA5LkB,SAAAC,GA8LvBnH,QAAQrwB,KAAK,oBAAqBw3B,EAElC,IAAIl7B,GA5LG,GAAUH,SA6LjBG,GA5LQF,OAAA,aAAWo7B,EAAYC,OA6L/Bn7B,EAASF,OAAO,QAASqE,EAAMyyB,OAE/BQ,EAAoBgE,uBAAuBp7B,GAAUK,KAAK,SAASC,GAC3DA,EAAIhJ,MACJsK,EAAG60B,SAAWn2B,EAAIhJ,KAAKgK,OACvB6C,EAAM6zB,QAAQvB,SAASh9B,KAAKmI,EAAG60B,WA1LpC98B,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAA,KAGf,SAAIiL,GACA5I,EAAA2I,YAAa,iCA8LjBoC,EAAKjL,KAAKyhC,EAASC,QAGvBv5B,EAAGy5B,mBA5La,WA8LZ,GAAIx+B,IACAwnB,MA5LIziB,EAAIu4B,KA6LRrD,MA5LIv4B,KAAAqkB,UAAcze,EAAA6zB,SAEH,IA4Lf7zB,EA5LI/L,OA6LAsM,EA5LI3H,OAAM,EA6LVmhB,EAAkBrN,MAAMhU,GAExBZ,EAAQ8C,OAAO,UAAW,iDA3L1B9F,WAAa,EACb+F,KAAA,OAgMJkf,EA5LOrN,MAAYhU,IAiM3B+E,EAAG0R,OA5LQ,WA6LP4K,EAAkBiB,QAAQ,6MAtElCnpB,QACKC,OA5LO,4BA6LPe,WA5LW,8BAAWw9F,MAqQ/B,WACI,YAMA,SA7LKC,GAAO96F,EAAA0C,EAAA+6B,EAAAxjB,EAAAJ,EAAAzX,GAwGf,QAAW+X,KACRC,EA+LYH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GA7LxE,MAAAA,EAAAlI,SACYwJ,EAAAqS,YAAA3T,EAAAhJ,KACIsK,EAAAsS,WAAA,IAgMD,SAAU3R,GA7LhB5I,EAAA2I,YAA4B,QAAQ,mBAAuB,qBAI7DV,EAAA0hD,iBAAa7/B,gBAAA,KACb7hB,EAAA2hB,gBAMH,QAAIF,GAAkBtP,GACtBP,EAAsB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACZ,MAAAA,EAAAlI,QACFwJ,EAAA2hB,YAASjjB,EAAAhJ,KACTsK,EAAOsS,WAAW,GAgMdva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBApI5D,GA7LCV,GAAAC,IA8LDD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EA5LpBhT,EAAA+S,WAAS,EACL/S,EAAAsS,WAAA,CACA,IAAIH,GAAKhY,EAAAgG,uBAAAwU,gBAAAxC,SACTnS,GAAGyhB,oBAAWA,EACd1pB,EAAG2c,SAAa,EAChBxC,IAEAlS,EAAAu7C,eACIC,aAAa,UACjBnzB,KAAA,MAEGmzB,aAAW,WACVnzB,KAAA,MAiMJroB,EAAGgpD,kBA5LHzG,gBAAgB,WA8LZuwC,cAAe,MAEfvwC,gBA7LY,iBA8LZuwC,cA7LQ,MAgMZ9yF,EAAG+yF,iBACCC,eA7LY,aA8LZC,aAAc,MAEdD,eAAgB,eAChBC,aA7LW;GAgMXD,eA7Le,eA8LfC,aAAc,MAGlBjzF,EAAGkzF,yBACCC,mBAAoB,aA5LpBC,iBAAkB,MAsMtBpzF,EAAGqzF,qBACCxwC,eAAgB,kBAChBvrB,aAAc,MAGlBt3B,EAAGqzF,qBACCxwC,eAAgB,kBAChBvrB,aAAc,MAGlBt3B,EAAGszF,eACCC,aAAc,gBACdC,WAAY,MAGhBxzF,EAAGyzF,WA5LChsC,SAAA,QA8LAV,OAAQ,MA1LRU,SAAI,QA8LJV,OA7LI,MAgMR/mD,EAAG0zF,YACCC,cAAe,UA5LfC,YAAQ,MAgMRD,cA7LY,UA8LZC,YA7LY,MAgMhB5zF,EAAGizB,WACCgmB,SAAU,cACV46C,WAAY,MAGZ56C,SAAU,sDACV46C,WAAY,MAGhB7zF,EAAG8zF,WACCC,SA7LO,uCA8LPC,WA7LQ,MAgMRD,SAAU,wCACVC,WAAY,iIAnSpB5/F,QA6LKC,OAAO,4BACPe,WAAW,mBAAoBy9F,MAkJxC,WACI,YAOA,SAASoB,GAAwBj6F,EAAQD,EAAOhC,EAAYyC,EAAQH,GAChE,GA9LI2F,GAAKC,IA+LTD,GAAGqU,kBACChJ,MAAS,IA5LTA,MAAA,KAgMAA,MA9LI,KAgMJA,MAAS,KAETA,MA9LQ,MAgMZrL,EAAGsU,SAAWtU,EA9LCqU,gBAAA,GA+LfrU,EAAGuU,YA9LS,EA+LZvU,EAAGwU,qBA9La,SAAWC,GA+LvBzU,EAAGuU,YA9LSE,GAgMhBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WA9LQ,EAgMX/S,EAAGk0F,mBAAqB,WACpBl6F,EAAO8F,GAAG,yBAIdE,EAAGm0F,oBA9LmB,WA+LlBn6F,EAAO8F,GAAG,iFAhClB1L,QACKC,OAAO,yBACPe,WAAW,0BAA2B6+F,MAsC/C,WACI,YAMA,SA/LOG,GAAar8F,EAAAkC,EAAAwQ,EAAAhQ,EAAAV,EAAAQ,EAAAitB,EAAAntB,EAAAG,EAAAG,EAAA66B,EAAAxjB,EAAAJ,EAAAzX,GAqPhB,QA/LI+X,KACAC,GAgMIH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SA9LjBwJ,EAAgBqS,YAAA3T,EAAAhJ,KACf8/B,EAAcy4D,aAAAxvF,KAAA,SAAAC,GACF,MAAAA,EAAAlI,SAgMQwJ,EAAGg3B,YAAct4B,EAAIhJ,KACrBsK,EAAGsS,WAAY,IA7LzB,SAAA3R,GACF5I,EAAA2I,YAAA,QAAA,mBAAA,oBAEZV,EAAAsS,WAAA,IAEI,SAAQ3R,GAgMA5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAzLhE,QAAA+gB,GAAAtP,GACIA,EAiMIP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QA9LLwJ,EAAA2hB,YAAAjjB,EAAAhJ,KACDsK,EAAA2hB,YAAAxmB,OAAA,GACEd,EAAA8C,OAAA,UAAA,4CAAA9F,WAAA,EAAA+F,KAAA,OAEhB4C,EAAAsS,WAAA,GAEgBva,EAAA2I,YAAA,QAAA,yBAAA,mBAiML,SAASC,GA9LjB5I,EAAY2I,YAAA,QAAA,mBAAA,qBAkMPV,EAAGq0F,KAAKxyE,gBAAkB,KA9LlC7hB,EAAA2hB,eACI3hB,EAAAq0F,KAAUtyC,2BAAA,KACV/hD,EAAAs0F,0BAgMIt0F,EAAGq0F,KAAKv4B,mBAAqB,KAC7B97D,EAAGqoD,kBACHroD,EAAGu0F,kBAIX,QAASC,GAA4B1+F,GA9L7BA,EAiMA0/B,EA/LWg4D,4BAAkB13F,GAAA2I,KAAA,SAAAC,GACN,MAAfA,EAAGlI,QAgMHwJ,EAAGs0F,uBAAyB51F,EAAIhJ,KA9LrCsK,EAAUs0F,uBAAKn5F,OAAA,GACdd,EAAW8C,OAAY,UAAS,6CAAoB9F,WAAA,EAAA+F,KAAA,OAgMhD4C,EAAGsS,WAAY,GA7LtBva,EAAA2I,YAAA,QAAA,yBAAA,mBAEE,SAAAC,GAgMC5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAGxDV,EAAGq0F,KAAKtyC,2BAA6B,KACrC/hD,EAAGs0F,0BA9LXt0F,EAASq0F,KAAAv4B,mBAAoB,KACzB97D,EAAAqoD,kBACIroD,EAAAu0F,kBAoMR,QAASE,GAAyB3+F,EAAWomD,GA9LtCA,EAiMC10B,EAAeq+C,wBAAwB/vE,EAAWomD,GAAYz9C,KAAK,SAASC,GACrD,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KACpBsK,EAAGqoD,eAAeltD,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,gDAAkD9F,WAAW,EAAM+F,KAAM,OACvG4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GA9Lf5I,EAAA2I,YAAA,QAAA,mBAAA,iBAkMGV,EAAGq0F,KAAKv4B,mBAAqB,KA/LzC97D,EAAAqoD,kBACYroD,EAAAu0F,kBAKR,QAASG,GAAA5+F,EAAAwhC,GACNA,IACCt3B,EAAAu0F,iBACD/sE,EAAAs+C,aAAAhwE,EAAAwhC,GAAA74B,KAAA,SAAAC,GACC,GAAS,MAAAA,EAAAlI,OAAA,CACVwJ,EAAAu0F,cAAA71F,EAAAhJ,IACU,KAAA,GAAAwF,KAAA8E,GAAAu0F,cAAA,CACV,GAAAI,GAAA9oE,WAAA7rB,EAAAu0F,cAAAr5F,GAAA05F,sBAAA9oE,QAAA,GAoMqBhE,EAAI6sE,CA/LX7sE,GAAAA,EAAA3kB,UACA,IAAA0xF,GAAA,EACd/sE,GAAuB1kB,QAAA,KAAe,IACpByxF,EAAA/sE,EAAAxE,UAAAwE,EAAA1kB,QAAA,KAAA0kB,EAAA3sB,SAiMD2sB,EAAI7gB,KAAKC,MAAM4gB,GA/LnBA,EAAAA,EAAA3kB,UACD,IAAA2xF,GAAAhtE,EAAAxE,UAAAwE,EAAA3sB,OAAA,GAiMS45F,EAAejtE,EAAExE,UAAU,EAAGwE,EAAE3sB,OAAS,EA/L7B,KAAZ45F,IACVD,EAAA,IAAAA,GAiMM90F,EAAGu0F,cAAcr5F,GAAG85F,OAASD,EAAa94F,QAAQ,wBAAyB,KAAO64F,EAAYD,EA5LpG70F,EAAAu0F,cAAAp5F,OAAA,GAiMMd,EAAQ8C,OAAO,UAAW,kDAAoD9F,WAAW,EAAM+F,KAAM,OACzG4C,EAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAOhE,QAjMCu0F,GAAWC,GAkMJA,GAhMH1tE,EAAAu+C,WAAoBmvB,EAAqB,GAAAz2F,KAAQ,SAASC,GACtD,GAAA,MAAAA,EAAAlI,OAAA,CAkMOwJ,EAAGm1F,SAAWz2F,EAAIhJ,IAhM/B,KAAkB,GAAGwF,KAAA8E,GAASm1F,SAChBn1F,EAAAm1F,SAAAj6F,GAAgBk6F,WAAAvpE,WAAA7rB,EAAAm1F,SAAAj6F,GAAAk6F,YAAAtpE,QAAA,EAEhB9rB,GAAAm1F,SAAAh6F,OAAA,GACdd,EAAuB8C,OAAS,UAAK,uBAAA9F,WAAA,EAAA+F,KAAA,WAoMxBrF,GAAW2I,YAAY,QAAS,yBAA0B,eA/LvE,SAAYC,GACZ5I,EAAY2I,YAAA,QAAA,mBAAA,gBA3Mf,GAAGV,GAAAC,IAEHD,GAAAqU,kBAAgBhJ,MAAA,IAAsBA,MAAA,KAAAA,MAAuB,KAAAA,MAAgB,KAAAA,MAAA,MAC7ErL,EAAGsU,SAAAtU,EAAAqU,gBAAsB,GAEzBrU,EAAAuU,YAAA,EAgMAvU,EAAGwU,qBAAuB,SAASC,GA9LhCzU,EAAAuU,YAAgBE,GAkMnBzU,EA/LGgT,YAAA,EAgMHhT,EAAG+S,WA/LC,EAgMJ/S,EAAGsS,WA/LO,CAgMV,IAAIpS,GAAa/F,EAAsBgG,uBACnCgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAAsBA,EA9LzBzhB,EAAGw0F,4BAAmBA,EAgMtBx0F,EAAGy0F,yBA/LkBA,EAgMrBz0F,EAAG00F,2BA/LgBA,EAgMnB10F,EA/LGi1F,mBAAAA,EAgMHj1F,EAAGq1F,MACHr1F,EAAGq0F,QACHt8F,EAAW2c,SAAU,EACrBxC,IAEAlS,EAAGu7C,eA9LCC,aAAc,UACfnzB,KAAA,MAECmzB,aAAc,WAgMdnzB,KAAM,MAIVroB,EAAGs1F,mBACCC,aAAc,wBA9LfC,YAAA,IAECD,aAAA,0BAgMAC,YAAY,IAGhBx1F,EAAG+yF,iBACCC,eAAgB,UAChBC,aAAc,MAEdD,eAAgB,QA9LjBC,aAAA,MAECD,eAAc,UAgMdC,aAAc,MA9BlBjzF,EAAGy1F,eACAC,aAAO,aAEVA,aAAA,gBAoMA11F,EAAG21F,aAhMCC,UAAM,wBACPC,YAAA,IAoMKD,UAAW,mBACXC,YAAa,IAKrB71F,EAjMG81F,WAAA,SAAAhjF,GAEC9S,EAAAsS,WAAY,EAkMZtS,EAAG+1F,WACCjgG,UAAWkK,EAAGq0F,KAAKxyE,gBAAgB/rB,UAhMxCwhC,aAAkBt3B,EAAAq0F,KAAAv4B,mBAAAxkC,aACjB49D,YAAgBpiF,EAAAoiF,YAChB90F,SAAcF,EAAAG,OACf++C,iBAAAp/C,EAAAq0F,KAAAlhF,gBAAA84B,YACC3pB,YAAgB,aAAAtiB,EAAAq0F,KAAAxyE,gBAAAS,YAAA,eAAAtiB,EAAAq0F,KAAAxyE,gBAAA1J,SAAA,KAAAnY,EAAAq0F,KAAAxyE,gBAAA9D,SAChBmmC,QAAA,IAEA18B,EAAAm+C,oBAAgB3lE,EAAA+1F,WAAAt3F,KAAA,SAAAC,GAChB,GAAc,MAAdA,EAAAlI,OAAc,CAmMNwJ,EAAGg2F,WAAat3F,EAAIhJ,KAhMvBsK,EAAAsS,WAAO,CACR,IAAArX,IACAuF,QAAeN,EAAAM,QACPk/C,KAAI1/C,EAAAg2F,WACJr2C,WAAG,GAmMHvgD,EAjMY7E,EAAW8E,MAkMvBhI,WAjMW,EAkMXiI,eAjMW,cAkMXC,gBAAiB,aACjBrK,YAjMY,8DAkMZE,WAjMI,kBAkMJC,aAAc,KAhMd+H,KAAG,KAkMHoC,SAAU,SAhMfC,UAAc,EACbyQ,SAkMQ3N,MAAO,WAhMhB,MAAAtH,MAuMCmE,GAAcM,OAAOjB,KAAK,SAASC,KAAS,kBAKxDsB,EAAGi2F,WAAa,SAjMInjF,GAmMhB9S,EAAGsS,WAjMY,CAoMf,IAAIrX,IACAnF,UAjMGkK,EAASq0F,KAAKxyE,gBAAA/rB,UAkMjBwhC,aAjMIt3B,EAAWq0F,KAAAv4B,mBAAqBxkC,aAkMpC49D,YAAapiF,EAAIoiF,YACjB90F,SAjMGF,EAAAG,OACH++C,iBAAQp/C,EAAAq0F,KAAkBlhF,gBAAA84B,YAC1B3pB,YAAG,aAActiB,EAAAq0F,KAAAxyE,gBAAAS,YAAA,eAAAtiB,EAAAq0F,KAAAxyE,gBAAA1J,SAAA,KAAAnY,EAAAq0F,KAAAxyE,gBAAA9D,SACjBmmC,QAAQ,GAoMZ18B,GAjMOm+C,oBAAiB1qE,GAAAwD,KAAA,SAAAC,GACpB,GAAmB,MAAhBA,EAAAlI,OAAgB,CAkMfwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CACf,IAAI2D,GAAInf,SAASijB,cAAc,IAhMlCjjB,UAAAC,KAAAijB,YAA4B/D,GAC7BA,EAAAgE,MAAW,eAGP,IAAIrc,GAAI,GAAAC,OAAWa,EAAKhJ,OAAAqI,KAAA,oBACpBtJ,EAAGC,OAAAwlB,IAAAC,gBAA6Bvc,EA4CxCnD,GAAA4E,KAAc5K,EAAA,UACXsD,EAAA2I,YAAgB,UAAA,eAAA,uBAEf3I,GAAQ2I,YAAW,QAAK,kBAAArJ,WAAA,EAAA+F,KAAA,OAkMxB4C,EAAGsS,WAjMI,GAoMZ,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,EAAGsS,WAAY,6NAtW3Ble,QA9LAC,OAAS,yBACLe,WAAS,sBAAAg/F,MAijBjB,WACE,YAMA,SAAS8B,KACP,OACE1rF,SAAU,IACVtV,YAAa,4CACbE,WAAY,WACVyV,EAAE,YAAYqrF,SACZ3nE,SAAY,IACZsY,MAAS,QAXjBzyC,QAAQC,OAAO,0BACViW,UAAU,UAjMU4rF,MAsN3B,WACE,YASA,SAASC,GAAQA,EAASztF,GACxB,MAAOtU,SAAQkV,UAAW6sF,GACxBtqF,SAAU,SAAS0B,EAAIrC,GACrB,GAAIxM,GAAM,uBAAyBgK,EAASzE,MAAMC,KAAO,aAAe,IAAM,oBAAsBgH,EAAMkrF,cAAgB,GAI1H,OApMA13F,IAAG,cAAgBgK,EAAAzE,MAAAC,KAAA,gBAAA,IAAA,IAkMnBxF,GAjMIy3F,EAAAtqF,SAAc0B,EAAArC,GAkMlBxM,GAjMG,6CAuLTtK,QAAQC,OAAO,eACViW,UAAU,UAAW6rF,MAoB5B,WACE,YAMA,SAASA,KAGP,OACE3rF,SAjMU,IAkMVq3B,YAjMU,EAkMVh2B,SAjMU,SAAAnB,EAAaQ,GAkMrB,GAAIxM,GAjMI,8CAkMR,IAAIwM,EAAMmrF,aAAc,CACtB,GAjMEC,GAAA,+DAAoEprF,EAAAmrF,aAAA,aAkMtE33F,GAjMM43F,EAAQ53F,EAoMhB,MAAOA,KAjBbtK,QAAQC,OAAO,eACV4N,QAjMI,UAAak0F,MA4NxB,WACE,YAMA,SAASI,GAAYC,EAjMgB/7F,EAAA1C,GAkMnC,GAAI0+F,EAUJ,OARAD,GAAkBE,aAAaj4F,KAAK,WAClCg4F,EAAaD,EAAkBG,wBAGjCl8F,EAAQkhC,iBAAiB,SAAU,WACjC86D,EAAaD,EAAkBG,yBAI/BnsF,SAAU,IACVb,KAjMM,SAAGc,EAAYC,GA6MnB,QAASksF,KAhMLH,GAoMF/rF,EAAK66B,KACHsxD,eAjMgB5vF,KAAAkgC,MAASsvD,EAAAroF,OAAc,MAAAnH,KAAAkgC,MAAAsvD,EAAA3rF,QAAA,KAkMvCgsF,mBAjMiB7vF,KAAKC,MAAAuvF,EAAYM,WAAA,MAAA9vF,KAAAC,MAAAuvF,EAAAO,WAAA,OAgLlCj/F,EAAWk/F,YACbT,EAAkBE,aAAaj4F,KAAK,WAhMlCE,WAAUi4F,KAmMZn8F,EAjMMkhC,iBAAiB,SAAKi7D,GAmM5BnsF,EAjMMvO,IAAA,WAAU,WAkMdzB,EAjMIy8F,oBAAqB,SAAKN,+DAwKxCxiG,QAAQC,OAAO,eACViW,UAAU,cAjMOisF,MAiPxB,WACE,YAMA,SAASC,GAAkB1+F,GACzB,GAAI4G,GAAM5G,EAAGI,QACTi/F,EAAgBC,iBAAiBtgG,SAASC,KAAM,WAChDsgG,EAAQ,GAAIpmF,MAChBomF,GAAMtmF,IAAMomF,EAAcG,gBAAgBr7F,QAAQ,0BAA2B,MAC7Eo7F,EAAM1mF,QAAU,WACdjS,EAAItG,UAENi/F,EAAM3mF,OAAS,WACbhS,EAAIwR,WAGNjQ,KAAKy2F,WAAa,WAChB,MAAOh4F,GAAIrG,SAGb4H,KAAK02F,oBAAsB,WACzB,GAAIY,GAAQzgG,SAAS0gG,gBAAgBC,YACjCC,EAAQ5gG,SAAS0gG,gBAAgBG,YACrC,MAAGJ,GAAS,KAAZ,CACA,GAGIK,GAAaC,EAHbC,EAAYT,EAAMvsF,OAASusF,EAAMjpF,MACjC2pF,EAAkBL,EAAQH,CAU9B,OAPIQ,GAAiBD,GACnBF,EAAcF,EACdG,EAAcH,EAAQI,IAEtBD,EAjMYN,EAkMZK,EAjMYL,EAAWO,IAmMhB1pF,MAjMKypF,EAAW/sF,OAAA8sF,EAAqBb,WAAAQ,EAAoBM,GAAW,EAAMb,WAAMU,EAAAE,GAAA,sBA8J7FxjG,QAAQC,OAAO,eACV8U,QAAQ,oBAAqBqtF,MA4CpC,WACE,YAxLD,SAAAwB,GAAY7B,GACX,MAAA/hG,SAAAkV,UAAA6sF,GAkMIxsF,KAAM,SAASC,EAAO2D,EAAIrC,GAhM9BqC,EAAQrE,SAAO,qBACVgC,EAAUkrF,cAkMP7oF,EAAGrE,SAASgC,EAAMkrF,uCAT1BhiG,QAAQC,OAAO,eACViW,UAAU,cAAe0tF,MAoBhC,WACE,YAMA,SAASC,GAAUv9F,EAAUsN,EAAkBpE,EAAQs0F,GAhMxD,GAAAC,GAAYttF,EAAAnW,OACX,QAkMI8V,SAAU,IACVtV,YAAa,iDACbE,WAAY,gBACZuU,KAAM,SAAUC,EAAO2D,GAvLrB,QAAO6qF,GAAiBC,GACjBz0F,EAAAsL,aAAA3B,EAAA,GAAA8qF,EAAA5uF,SACP4uF,EAAOh1D,cAAAi1D,wBAmMFtwF,EAAiBuwF,oBAClBvwF,EAAiBwwF,uBACjBH,EAAKh1D,cAAci1D,wBAAyB,EAC5C59F,EAAS,WACPsN,EAAiBywF,kBAAiB,IACjC,KA7Lb,QAAAC,KAmMQ,GAAIC,GAAmB3wF,EAAiB4wF,wBAjMxCC,EAAOC,GACVH,IAAmB3wF,EAAAuwF,mBAAA3uF,EAAAmvF,YAAAF,GAmMdjvF,EAAM4B,OAAO,WACX5B,EAAMmvF,WAAaF,EAjMtB7wF,EAAUywF,iBAAAE,KAKf,QAAAG,KACA,MAAUvrF,GAAA,GAAAyrF,WAAe,GAAArB,aAAO,GAlCpC/tF,EAAQmvF,WAAOxrF,EAAA,GAAAyrF,WAAA,GAAArB,aAAA,GACVQ,EAAUtqF,GAAA,QAAWuqF,GAmMpBD,EAAStqF,GAAG,SAAU6qF,GAhM5B9uF,EAAS1N,IAAA,WAAiB,WACxBi8F,EAAe3zD,IAAA,QAAW4zD,GACxBD,EAAU3zD,IAAA,SAAak0D,wEAgL3BtkG,QAAQC,OAAO,0BACZiW,UAAU,YAAa2tF,MAoD5B,WACE,YAMA,SAASzjG,KACP,GAAIykG,KAEJh5F,MAAKi5F,cAAgB,WAjMxBD,EAAYphG,KAAAshG,MAAAF,EAAAG,YAGXn5F,KAAAiG,MAAA,SAAA,cAAQ,SAAOlM,EAAAk+F,GAsMX,QAASmB,KApJb,QAAAC,KAoMQ,MAAOt/F,GAAOspE,MACTrmE,OAAO,SAAS6iC,GAnMrB,MAAOA,GAAAxqC,cAsMFg3B,IAAI,SAASwT,GACZ,GAAIy5D,GAAOz5D,EAAExqC,WAnMlB,QACMmH,KAAAqjC,EAAArjC,KACTtH,MAAgB2qC,EAAA3qC,MACRqkG,OAAI15D,EAAArjC,KAAAgkB,MAAA,YAAAtlB,OACJ5F,MAAAgkG,EAAchkG,MACpBC,KAAU+jG,EAAA/jG,KACVikG,SAAA35D,EAAArjC,QAGAi9F,KAAA,SAAAzjF,EAAArG,GAqMM,MAA6B,MAArBqG,EAAEujF,MAAQ5pF,EAAE4pF,OAAevjF,EAAE1gB,MAAQqa,EAAEra,QAIvD,QAASqjG,KACP,MAAOlkG,QAAOilG,YAAczB,EAAY7wF,wBAjM5C,QAAImxF,KACD,MAAA9jG,QAAcilG,YAAAzB,EAAA5wF,oBAvErB,GAASixF,GAAYK,GAqMf34F,MAAK25F,aAAe,WAlMxB,GAAAC,GAAkBP,IAChBQ,EAAaD,EAAA58F,OAAkB,SAAA6F,GAoMzB,MAAqB,IAAdA,EAAK02F,OAzLd,OAPJM,GAAaj3F,QAAA,SAAkBC,GAoMzB,GAAIkjC,GAAW6zD,EAAO58F,OAAO,SAASmS,GACpC,MAAsB,IAAfA,EAAMoqF,OAAgD,IAAlCpqF,EAAM3S,KAAK2G,QAAQN,EAAKrG,OAjM3DqG,GAAUw8C,QAAAtZ,EAAA7qC,OAAA6qC,EAAA,OAGN8zD,EAAA1sC,OAAkB6rC,IAsMpBh5F,KAnME24F,sBAAyBA,EAoM3B34F,KAAKu4F,mBAAqBA,EAE1Bv4F,KAnMIw4F,iBAAQ,SAAoBsB,GAoM9BxB,EAAkBwB,GAhMpB95F,KAAAs4F,gBAAS,WACP,MAAKA,IAsMPt4F,KAnME+5F,oBAAS,WAoMTzB,GAnMkBA,GAsMpBt4F,KAAKg6F,yBAA2B,SAASn3F,GAKvC,QAASo3F,GAAiBC,GACxBA,EAAY76C,SAAW66C,EAAY76C,QAAQz8C,QAAQ,SAASu3F,GAC1DA,EAAQX,UAAY/5F,EAAO7H,KAAKuiG,EAAQX,UACxCS,EAAiBE,KAPrB,GAAI16F,KAEJ,OADAw6F,GAAiBp3F,GACVpD,GAvCX,MAnMC,IAAU25F,gDAsLfjlG,QAAQC,OAAO,0BACV8R,SAAS,mBAAoB3R,MAkGpC,WACE,YAMA,SAAS6lG,GAActiG,EAAY0S,EAAQ1Q,EAAOU,EAASJ,EAASG,EAAQwN,GAoB1E,QArMS4xF,KAwMP7/F,EAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA8B9D,EAAWuK,QAAQ7D,KAC/E,SAAUC,GACR,GAAmB,MAAfA,EAAIlI,OAAgB,CAClBkI,EAAIhJ,KAAKyF,OAAS,IACpBd,EAAQ8C,OAAO,OAAQ,+EAAgF,IACvGpF,EAAWI,UAEbsC,EAAQoC,aAAaulE,QAAQ,YAAazlE,KAAKqkB,UAAUtiB,EAAIhJ,MAC7D,IAAI+F,GAAW6+F,EAAY57F,EAAIhJ,KApM1C+U,GAAYqvF,UAAAr+F,EACX02B,QAAAC,IAAA3nB,EAAAqvF,WAsMUrvF,EAAO8vF,oBAAsB9vF,EAAOqvF,UAAU,GAAGL,WApMnD,SAAO94F,MAKb,QAAI25F,GAAa7+F,GACjB,GAAA++F,KACE,KAAA,GAAAt/F,KAAUO,GAAA,CACV,GAAAq9C,IACA3jD,MAAAsG,EAAYP,GAAAqmB,SACZ9kB,KAAMhB,EAAUP,GAAAqmB,SAuMZ/rB,KAAMiG,EAASP,GAAGu/F,SArMpBhB,SAAMh+F,EAAaP,GAAGgC,QACtB3H,MAASkG,EAAGP,GAASw/F,UAwMlBj/F,GAASP,GAAGU,aAAaT,OAAS,EArMrC29C,EAAMwG,QAAIg7C,EAAY7+F,EAAYP,GAAAU,cAEhCk9C,EAAAwG,QAAa,KAwMfk7C,EAAY3iG,KAAKihD,GAGnB,MAtMO0hD,GArDZZ,IAsMGnvF,EAAOkwF,UAAY,SAAU/vF,GAC3BH,EAAOmwF,eAAgB,EACvBnwF,EAAOowF,gBAAkBjwF,EAAOkwF,cAAcnD,YAC9C,IAAIoD,GAAe,EACnBtwF,GAAOuwF,aAAepwF,EAAOkwF,cAAcG,wBAAwBr4D,IAAMm4D,GAG3EtwF,EAAOvO,IAAI,sBAAuB,WAnMpC8L,EAAqBwwF,sBACnBxwF,EAAeywF,kBAAoB,+FAiLrCrkG,QAAQC,OAAO,0BACZe,WAAW,gBAAiBilG,MAsEjC,WACE,YAWA,SAASa,GAAoBlzF,GAC3B,OACEwC,SAtME,IAuMFb,KAtMI,SAAUC,EAAGc,GAuMfA,EAAKmD,GAAG,QAAS,SAASwqF,GACxBA,EAAKh1D,cAAci1D,wBAAyB,EAC5C1uF,EAAM4B,OAAO,WACXxD,EAAiBgyF,4BAQ3B,QAASmB,GAAsBnzF,GAC7B,OArMFwC,SAAS,IACPb,KAAI,SAAAC,EAAkBc,GAuMlBA,EAAKmD,GAAG,QAAS,SAASwqF,GArMzBA,EAAAh1D,cAAgBi1D,wBAAW,EAC9BtwF,EAAqBuwF,mBAuMf3uF,EAAM4B,OAAO,WACXxD,EAAiBywF,kBAAiB,SAS9C,QAtMQ2C,KAuMN,OACE5wF,SAtMM,IAuMNpV,WAAY,6BAKhB,QAASimG,GAA0B5wF,EAAQwC,EAAUquF,EAAQthG,EAAQgO,GA4CnE,QAASuzF,GAtMKtmG,GAuMZ,MAAOA,IAtMKumG,EAAqBC,KAAA,SAAcC,GAuMzC,MAtMkB,IAAZzmG,EAAOwH,KAAK2G,QAAAs4F,KAyJ1B,GAAI17F,GAtMIC,KAuMJ07F,EAAW37F,EAAG47F,WAAanxF,EAAOkzB,MAAM29D,EAAOF,sBACnD,IAAIO,GAAYA,EAASr8C,SAAWq8C,EAASr8C,QAAQnkD,OAAQ,CAC3D6E,EAAG67F,gBAtMkB,WAAO1pE,QAAA2pE,KAAA,kEAuM5B97F,EAAG+7F,kBAAoB,WAAa5pE,QAAQ2pE,KAAK,sEAEjD,IAtMEN,GAAKxzF,EAAwBiyF,yBAAA0B,EAwM/B37F,GAAGg8F,QAAU,WArMXh8F,EAAA67F,kBAuMA5uF,EAtME/D,SAAA,6BAyMJlJ,EAtMEi8F,UAAK,WAuMLj8F,EAtME+7F,oBAuMF9uF,EAASwB,YAAY,6BAGvBzO,EAAGk8F,QAtMC,WAuMFjvF,EAASq+B,SAAS,4BACdtrC,EAAGi8F,YArMPj8F,EAAKg8F,WAGHT,EAAOvhG,EAAAmiG,UAuMTlvF,EAAS/D,SAAS,4BAGpBuB,EAAOvO,IAtMC,oBAAoB,SAAYC,EAAQC,IAuMzCm/F,EAtMCn/F,IAAiB6Q,EAAAq+B,SAAA,8BAuMrBtrC,EAAGi8F,YACHhvF,EAASwB,YAAY,+BAIzBhE,EAtMIvO,IAAO,sBAAO,SAAAC,EAAAC,GAuMZm/F,EAtMGn/F,KAAmB6Q,EAAAq+B,SAAA,8BAuMxBtrC,EAAGg8F,UACH/uF,EAAS/D,SAAS,gCAa1B,QAASkzF,GAtMuBpiG,GAuM9B,OACEwQ,SAAU,IACVqzB,QAAS,yBACTl0B,KAtME,SAASC,EAAA2D,EAAArC,EAAAkwF,GAuMTA,EAtMgBS,gBAAc,WAAYtuF,EAAA8uF,aAuM1CjB,EAAsBW,kBAAoB,WAAaxuF,EAAG+uF,aAMhE,QAASC,GAAgBv0F,GACvB,OACEwC,SAAU,IACVqzB,QAAS,yBACTl0B,KAAM,SAASC,EAAO2D,EAAIrC,EAAOkwF,GAC/B7tF,EAAGM,GAAG,QAAS,WACT7F,EAAiBuwF,mBApM9B3uF,EAAY4B,OAAA,WACXxD,EAAAywF,kBAAA,KAyMU2C,EAAsBY,WAtM7BZ,EAA4Bc,qMAyE/B9nG,QAtMMC,OAAS,0BAuMViW,UAtMO,sBAAmB4wF,GAuM1B5wF,UAtMO,wBAAgB6wF,GAuMvB7wF,UAtMO,wBAAoB8wF,GAuM3BhmG,WAtMW,4BAAmBimG,GAuM9B/wF,UAtMO,0BAAmB8xF,GAuM1B9xF,UAtMO,kBAAiBiyF,MAwU/B,WACE,YAMA,SAxMSC,KAyMP,OAvMEhyF,SAAI,IAyMJq3B,YAxME,EAyMF3sC,YAAa,8CACbG,aAAc,sBACdD,WAAY,gBAVhBhB,QAxMQC,OAAA,0BAyMLiW,UAxMQ,WAAAkyF,MAsNb,WACE,YAMA,SAASC,GAxMKhyF,GAiPZ,QAASiyF,KACP18F,EAAG4O,UAAa5O,EAAG28F,OAAS,GAAK38F,EAAG48F,KAAKzhG,OAAU,IAzCrD,GAAI6E,GAxMIC,IAyMRD,GAAG48F,QAEH58F,EAAG28F,OAAS,EACZ38F,EAAG4O,SAxMI,EA0MP5O,EAAG68F,OAAS,SAASC,GACnBA,EAAIC,QAAQ/8F,EAAG48F,KAAK58F,EAAG48F,KAAKzhG,OAAS,IACrC6E,EAAG48F,KAAK/kG,KAAKilG,GAvMf98F,EAAAg9F,UAAS,IA2MTvyF,EAxMIW,OAAIhX,QAAOuW,KAAA3K,EAAA,WAAA,MAAAA,GAAA28F,SAAAD,GA0Mf18F,EAAGg9F,UAxMS,SAAYL,GAyMtB38F,EAAG48F,KAxMC58F,EAAM28F,QAASM,SACfj9F,EAAA48F,KAAAD,GAAUO,iBAyMZl9F,EAxME28F,OAAOA,EAyMT38F,EAAG48F,KAAK/5F,QAAQ,SAAUgkD,EAAGs2C,GAvM7BA,GAAYn9F,EAAG28F,OAAA91C,EAAAt7C,QAAa,GAAYs7C,EAAAt7C,QAAA,OA6M5CvL,EAAGo9F,WAxMa,WAyMd,MAAoB,IAAbp9F,EAAG28F,QAGZ38F,EAAGq9F,UAAY,WACb,MAAOr9F,GAAG28F,QAAU38F,EAAG48F,KAAKzhG,OAAS,GAGvC6E,EAAGs9F,QAAU,WACXt9F,EAAGg9F,UAAUh9F,EAAG28F,OAAS,IArM7B38F,EAAAu9F,YAAA,WAyMIv9F,EAAGg9F,UAAUh9F,EAAG28F,OAAS,yBA1C7BvoG,QAAQC,OAxMI,0BAyMTe,WAxMS,eAAWqnG,MA2PzB,WACE,YAMA,SA7MIe,KA8MF,OACEhzF,SA7MU,IA8MVq3B,YA7MS,EA8MThE,QA7MI,YA8MJj0B,OACE6zF,KAAM,KAERvoG,YAAc,kDACdyU,KAAM,SAASc,EAAQwC,EAAUquF,EAAQoC,GAevC,QAASnyF,GAAOo0B,GACVA,EACFl1B,EAAOg1B,UAAW,EAElBh1B,EAAOg1B,UAAW,EAzMxB,QAAUw9D,KACVxyF,EAAAgzF,MAAYhzF,EAAAgzF,KAAAE,eAAA,GAgNV,QAASC,KACP,OAAOnzF,EAAOgzF,MAAOhzF,EAAOgzF,KAAKI,OA1MnC,QAAAX,KACA,OAAAJ,EAAYgB,SAAShB,EAAAgB,QAAWF,aAgNhC,QAASb,GAAQgB,GA5MfjB,EAAAgB,QAAAC,EA0KFtzF,EAAOg1B,UAAW,CAElB,IAAIq9D,IA5MV3nG,MAASmmG,EAAAnmG,MACPoW,OAAOA,EACL0xF,OAAUA,EACVW,WAAeA,EACbV,aAAQA,EACNY,QAAKnoG,OACLonG,QAAKA,EAgNPW,GAAOb,OAAOC,KA1BpB1oG,QAAQC,OAAO,0BACZiW,UAAU,eAAgBkzF,MA0D/B,WACE,YAMA,SAASQ,GAAW9jG,EAAWF,GAC7B,OACEwQ,SA7ME,IA8MFtV,YAAa,kDACbyU,KAAM,SAASc,GA5MfA,EAAOW,OAAI,WACTX,EAAKwzF,gBAAqBjkG,EAAAmiG,QAAShnG,2CAmMzCf,QA7MMC,OAAS,0BA8MViW,UA7MQ,aAAA0zF,MAiOf,WACE,YAMA,SAASE,KACP,OACE1zF,SAAU,IACVtV,YAAa,gDA5MjBE,WAAS,iBAqMThB,QA7MEC,OAAS,0BACPiW,UAAO,YAAS4zF,MA6NtB,WACE,YAMA,SA7MIC,GAAe1zF,EAAW1S,EAAO6C,EAAAP,EAAAI,EAAuBN,EAAAC,GA8M1D,GA7MI4F,GAAGC,IA8MPD,GAAGE,WA7MO/F,EAAiBgG,uBA+M3BsK,EAAO2zF,OACLC,GACE5hG,KA7MM,QA+MR6hG,GACE7hG,KAAM,UAER8hG,GACE9hG,KAAM,UAER+hG,GACE/hG,KAAM,UAzMbgO,EAAAg0F,gBA+MOn8F,OAAQ,EA5MduJ,SAAe,8BACZ2F,KAAA,cAGHlP,OAAS,EACPuJ,SAAO,yCACL2F,KAAA,cAGA6lF,MAAA,+BACAxrF,SAAY,uBA8MV2F,KAAM,cAGNlP,OAAQ,EA5MfuJ,SAAW,iCACV2F,KAAA,cAEAlP,OAAQ,EACLuJ,SAAW,6BA+MR2F,KAAM,eA3MN6lF,MAAK,0BACNxrF,SAAO,6BA+MN2F,KAAM,eAGNlP,OAAQ,EA7MTuJ,SAAS,uCACV2F,KAAI,eAkNN/G,EAAOi0F,WAEHp8F,OAAQ,EA7MTW,KAAA,+EACDuO,KAAQ,cAGNlP,OAAQ,EA+MRW,KA9ME,2EA+MFuO,KAAM,cAGNlP,OAAQ,EA7MTW,KAAA,+EACDuO,KAAO,eAGNlP,OAAA,EACDW,KAAO,mFA+MLuO,KAAM,cA3MRlP,OAAG,EA+MDW,KAAM,wFACNuO,KAAM,cAGNlP,OAAQ,EACRW,KAAM,uFA7MVuO,KAAS,eAiNLlP,OAAQ,EACRW,KAAM,4EACNuO,KAAM,eAIV/G,EAAOk0F,WAAa,SAAU59F,GA7MhC,GAAQkC,GAAOlC,EAAA8K,QAIf,QAHG9K,EAAAuB,QAA0B,IAAhBvB,EAAAuB,UA+MPW,EAAOA,EAAKhH,QAAQ,QAAS,WAAawO,EAAO2zF,MAAMr9F,EAAIuB,QAAQ7F,KAAO,cA5MvE7B,EAAAgkG,YAAe37F,IAiNtBlL,EA9MEgI,SAAY,WAEZ,GAAAK,GAAOJ,EAAAE,WAAAG,MA+MPjG,GA9MQkG,cAAAF,GAAA3B,KAAA,SAAAC,GA+Ma,MAAfA,EAAIlI,QA7MVwJ,EAAAO,YAAc7B,EAAAhJ,KACS,MAAjBsK,EAAAO,YACJ9F,EAAO4E,KAAA,4CAAWW,EAAAO,YAAAC,QAAA,aAAAR,EAAAO,YAAAE,SAAA,UAGhBpG,EAAO8C,OAAO,OAAA,4BACd9F,WAAQ,EACR+F,KAAQ,QAGRrF,EAAS2I,YAAA,QAAA,yBAAA,SAgNV,SAAUC,GACX5I,EAAW2I,YAAY,QAAS,YAAa,8GA1UnDtM,QAAAC,OAAS,0BACPe,WAAO,gBAAA+oG,MAkVX,WACE,YAMA,SA9MQU,KA+MN,OACEr0F,SAAU,IACVtV,YA9MW,6CAuMfd,QA9MQC,OAAO,0BA+MViW,UAAU,UAAWu0F,MAgB5B,WACI,YAMA,SAASC,GAAiBpwF,GACtB,OA9MElE,SAAO,IACVtV,YAAU,8DAgNLyU,KAAK,SAASc,EAAQxB,EAASiC,GAzM/B,QAAS6zF,KACN,GAAOC,GAAA/1F,EAAYoB,KAAA,WAAA,EACjB20F,GAAAC,aAAkB,mBAAe,IAAAvwF,EAAAM,cAAA/H,KAAAi4F,GAAA,IAAA,WAgN9Bz0F,EAAOmE,SAAWF,EAAgBM,cARtCvE,EAAO00F,iBAAmBzwF,EA9M/BjE,EAAWW,OAAA,WACX,MAAAsD,GAAAM,eACK+vF,mCAmMZ3qG,QAAQC,OAAO,0BACViW,UAAU,mBAAoBw0F,MArLvC,WACE,YAMA,SAASM,KACP,OACE50F,SAAU,KACVZ,OACAk0B,QAAA,KAiNA5oC,YAAa,4CACb+G,SAAS,GA1Nb7H,QAAQC,OAAO,0BACViW,UAAU,UAAA80F,MAkOjB,WA/ME,YAsNA,SAhNKC,GAAav3F,GAiNhB,MAAO,UAASw1B,GA/MhB,MAAOx1B,GAAQP,OAAAC,KAAA81B,6BA0MjBlpC,QAAQC,OAAO,eACV4I,OAAO,WAAYoiG,MAe1B,WACE,YAMA,SAhNMC,GAAQx3F,GAiNZ,MAhNI,UAAUw1B,GAiNZ,MAhNEx1B,GAAMP,OAAAC,KAAA,uBAAA81B,EAAA,kCA0MZlpC,QAAQC,OAAO,eACV4I,OAAO,cAAeqiG,MAe7B,WACE,YAMA,SAhNIC,GAAAz3F,GAiNF,MAhNI,UAAQw1B,EAAAkiE,GAkNV,MADAA,GAhNEA,GAAU,MACV13F,EAAMP,OAAAE,QAAA61B,EAAA,IAAAkiE,6BAyMZprG,QAhNMC,OAAQ,eAiNT4I,OAhNC,iBAAUsiG,MAgOlB,WACE,YAMA,SAhNME,KAiNJ,MAhNI,UAAMx8F,GAiNR,MAAQA,GAAO+jB,OAAO/jB,GAAMhH,QAAQ,YAAa,IAAM,IAN3D7H,QAAQC,OAAO,eA/Mb4I,OAAO,YAAWwiG,MA+NtB,WACE,YAMA,SAhNMC,KAiNJ,OACExqG,YAhNQ,8CAiNR0U,OA/MA+1F,cAAA,IACEC,cAAQ,MAuMdxrG,QAhNMC,OAAM,sBAiNPiW,UAhNO,aAAAo1F,MA+Nd,WACI,YAOA,SAASG,GAAsBp1F,EAAQxQ,EAASF,EAAOhC,EAAYy9B,EAAqBhO,EAAgBhtB,EAAQH,EAASL,EA/MvHG,GAqCJ,QAAS+X,KACA,GAAA9R,GAAArI,EAAAuK,MACLklB,GAAU67C,wBAAAjjE,EAAA+R,GAAA1T,KAAA,SAAAC,GACV,GAAa,MAAAA,EAAAlI,QAkNC,GAAIkI,EAAIhJ,KAAKyF,OAAS,EAAG,CACrBuD,EAAIhJ,KAAO8E,EAAO83B,QAAQ5zB,EAAIhJ,KAAM,cAEpC,KAAK,GAAIqxB,KAAOroB,GAAIhJ,KAChBgJ,EAAIhJ,KAAKqxB,GAAOvsB,EAAO83B,QAAQ5zB,EAAIhJ,KAAKqxB,GAAM,cAGlD/mB,GAAG8/F,yBAA2BphG,EAAIhJ,KA/M7CsK,EAAAsS,WAAA,EACTkjB,EAAAy4D,aAAAxvF,KAAA,SAAAC,GAiN2C,MAAfA,EAAIlI,SACJwJ,EAAGg3B,YAAct4B,EAAIhJ,KAhNlCsK,EAAAsS,WAAA,IAmNQ,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,yBA7MpE3I,GAAa2I,YAAA,QAAA,yBAAA,aAmNV,SAjNQC,GACP5I,EAAO2I,YAAO,QAAY,mBAAA,cAmN9BV,EAAGkoB,cACKC,YAAa,cAhNjBC,UAAS,EACLC,KAAI,MAEJF,YAAO,sBAkNPC,UAAW,EACXC,KAAM,OAENF,YAAa,uBACbC,UAAW,EACXC,KAAM,OAGNF,YAAa,iCAhNpBC,UAAA,EACXC,KAAA,OAEeF,YAAA,6CACAC,UAAW,EAkNRC,KAAM,OA/MfF,YAAU,mBACVC,UAAA,EACKC,KAAA,OAoNJroB,EAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAhNvHkP,aAAa,iCAAAlP,GAAA,IAkJX,QAAGgnF,GAAoB7K,GACpBA,GACA8K,IACCx4E,EAAY08C,2BAAsBgxB,GAAuBz2F,KAAA,SAAgBC,GAC7E,MAAAA,EAAAlI,QAsNgBwJ,EAAGigG,sBAAwBvhG,EAAIhJ,KA/M/BsK,EAAAsS,WAAS,GAuNTva,EAAW2I,YAAY,QAAS,yBAA0B,uBAE/D,SArNSC,GAsNR5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAGxDs/F,IAIR,QAASE,KACL,GAAIlgG,EAAGmgG,mBAAoB,CACvBC,GACA,IAAI/tE,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGmgG,mBACb9tE,EAAIx6B,KAAKmI,EAAGmgG,mBAAmBjlG,GAAGghD,WAEtCl8C,GAAGyjD,SArNCpxB,EAAWqB,MAsNf,IAAIz4B,IApNLolG,eAAcrgG,EAAAyjD,SACbyxC,YAAWl1F,EAAAq1F,GAAYH,YAExB1tE,GAAe68C,8BAAAppE,GAAAwD,KAAA,SAAAC,GACG,MAAbA,EAAAlI,QACAwJ,EAAAsgG,yBAAW5hG,EAAAhJ,KAMZsK,EAAAsS,WAAA,GAECva,EAAW2I,YAAA,QAAA,yBAAA,uBAuNZ,SAASC,GApNZ5I,EAAA2I,YAAA,QAAA,mBAAA,4BAwNA0/F,KAKR,QAASG,KACL,GAAIvgG,EAAGwgG,sBArNc,CAsNjBC,GACA,IArNIpuE,KAsNJ,KAAK,GAAIn3B,KAAK8E,GAAGwgG,sBACbnuE,EAAIx6B,KAAKmI,EAAGwgG,sBAAsBtlG,GAAG22B,cAnNzC7xB,GAAEwjD,YAAcnxB,EAAAqB,MAsNhB,IAAIz4B,IACAylG,kBAAmB1gG,EAAGwjD,YACtB0xC,YAAal1F,EAAGq1F,GAAGH,YAnN5B1tE,GAAkB88C,uBAAKrpE,GAAAwD,KAAA,SAAAC,GACH,MAAhBA,EAAAlI,QACKwJ,EAAA2gG,kBAAajiG,EAAAhJ,KAMfsK,EAAAsS,WAAc,GAuNRva,EAAW2I,YAAY,QAAS,yBAA0B,2BAnNlE,SAAOC,GACH5I,EAAM2I,YAAc,QAAY,mBAAG,gCAwNvC+/F,KAKR,QAASG,KACL,GAAI5gG,EAAG6gG,eAAgB,CApNnBC,GACA,IAAAzuE,KAsNA,KAAK,GAAIn3B,KAAK8E,GAAG6gG,eApNbxuE,EAAAx6B,KAAOmI,EAAI6gG,eAAA3lG,GAAA8kB,OAEfhgB,GAAGggB,OAAGqS,EAAAqB,MAsNN,IAAIz4B,IACAyxD,WAAY1sD,EAAGggB,OACfk1E,YAAal1F,EAAGq1F,GAAGH,YAEvB1tE,GAAe+8C,sBAAsBtpE,GAAKwD,KAAK,SAASC,GACjC,MAAfA,EAAIlI,QACJwJ,EAAG+gG,kBAAoBriG,EAAIhJ,KAM3BsK,EAAGsS,WAAY,GAnNfva,EAAE2I,YAAA,QAAA,yBAAA,2BAEV,SAAQC,GACJ5I,EAAK2I,YAAA,QAAA,mBAAA,gCAwNTogG,KAIR,QAASE,KACL,GAAIhhG,EAAGihG,eArNe,CAsNlBC,GACA,IAAI7uE,KACJ,KAAK,GArNGn3B,KAAA8E,GAAAihG,eAAA,CACJ5uE,EAAAx6B,KAAKmI,EAAAihG,eAAA/lG,GAAA6d,IAuNL/Y,EAAGi4B,OArNS5F,EAAAqB,MAsNZ,IAAIz4B,IACAkmG,WArNUnhG,EAAAi4B,OAsNVi9D,YAAal1F,EAAGq1F,GAAGH,YAEvB1tE,GArNYg9C,2BAAwBvpE,GAAAwD,KAAA,SAAAC,GACtB,MAANA,EAAGlI,QAsNHwJ,EAAGgmD,aAAetnD,EAAIhJ,KA/MtBsK,EAAAsS,WAAY,GAuNZva,EAAW2I,YAAY,QAAS,yBAA0B,2BAE/D,SArNSC,GAsNR5I,EArNU2I,YAAA,QAAgB,mBAAA,iCAyNlCwgG,KAKR,QAASE,KACL,GAAIphG,EAAG+jD,iBArNa,CAsNhBiD,GACA,IAAI30B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGihG,eACb5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAElC/Y,GAAGi4B,OArNM5F,EAAAqB,MAsNT,IAAIz4B,IACAkmG,WArNYnhG,EAAAi4B,OAsNZ6rB,WArNY9jD,EAAA+jD,iBAAYD,WAsNxBoxC,YArNWl1F,EAAGq1F,GAAAH,YAsNdp/F,UAAWkK,EAAGq1F,GAAGv/F,UAErB0xB,GArNYi9C,2BAA4BxpE,GAAAwD,KAAA,SAAAC,GAsNpC,GArNc,MAqNVA,EArNIlI,OAAM,CAsNVwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,MAAMsuD,KACjC,IAAIoD,KApNJ5sD,GAAAqI,QAAA7C,EAAAq+C,OAAA,SAAAwI,GACC,GAAA/N,IACDuO,KAAAR,EAAAQ,KACQI,SAAUZ,EAAAH,OACVI,OAAY,UAAJD,EAAAH,QAAgBG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAuN5BM,GAASvvD,KAAKihD,KAElB94C,EAAG4mD,YArNaQ,MAwNhBrvD,GAAW2I,YAAY,QAAS,yBAA0B,2BAE/D,SArNMC,GAsNL5I,EArNI2I,YAAA,QAAA,mBAAA,6BA6NhB,QAAS0lD,GArNWc,GAuNhB,GAAIA,EAAKo6C,kBAAmB,CACxBt6C,GACA,IArNIR,GAAA,QAAAC,EAAAS,EAAAO,UAAA,GAsNAd,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,QAChCqI,OAAUF,IAEV+6C,EAAU/mG,EAAOgnG,MAAMxhG,EAAGq+C,OAAQ,SAASwI,GAC3C,MAAOJ,GAAUI,EAAEH,SAnNvBlsD,GAAMqI,QAAA7C,EAAA4mD,YAAkB,SAAAC,GAsNpB,GAAIA,EAAEY,WAAajB,EAAU,CAnNrC,GAAAi7C,GAA2BjnG,EAAM8xB,IAAA46B,EAAAo6C,kBAAA,SAsNrBz6C,GAAEC,OAASu6C,EAAgB7mG,EAAOyC,OAAO0pD,EAAeG,OAAQ,SAASD,GACrE,MAAOrsD,GAAO3F,SAAS4sG,EAAW56C,EAAEvrB,aAhNhD,GAAAurB,EAAAY,WAAe85C,EAAA76C,OAAA,CACP,GAAI9xB,GAAAp6B,EAAW6P,KAAKrK,EAAA0hG,mBACjBzqE,QAAAj3B,EAAAihG,eAA4BloF,IAuN/B,IAAI6b,EAAM,CACN,GAAI+sE,GAAannG,EAAO6P,KAAKuqB,EAAK9X,QAC9B8kF,mBAAsB5hG,EAAG+jD,iBAAiBnxB,eAnN/C,IAAA+uE,EAAY,CACZ,GAAAE,GAAArnG,EAAA8xB,IAAAq1E,EAAAjsG,KAAA,SACH8E,GAAWqI,QAAY0+F,EAAAz6C,OAAS,SAAAg7C,GAsNhBtnG,EAAO3F,SAASgtG,EAAeC,EAAG/6C,SApNzCvsD,EAAAy2E,OAAAswB,EAAAz6C,OAAA,SAAAi7C,GACU,MAAAA,GAASh7C,SAAA+6C,EAAA/6C,aA2NhC/mD,EAAGgiG,UAAY96C,EAAKo6C,wBAlNxBt6C,KA0NR,QArNQP,GAAGc,GAsNP,MArNI3gD,UAAU2gD,EAAAjkC,UAAA,IAwNlB,QAAS+9E,GAAgBj6C,GAUrB,MARIA,IArNYA,EAAAjsD,OAAgB,GAsN5BX,EAAOqI,QArNIukD,EAAA,SAAAP,GAsNP,GAAkB,GAAdA,EAAEvrB,SAAe,CACjB,GAAI2mE,GAAaznG,EAAO6P,KAAKw8C,EAAEq7C,aAAen7C,OAAUF,EAAEvrB,WAAY+rB,IACtER,GAAEoG,WAAa,MAAQg1C,KAI5B76C,EAGX,QAASxxB,KACL51B,EAAGsS,WArNK,EAsNR6vF,GACA,IAAI9vE,KACJ,KArNI,GAAAn3B,KAAA8E,GAAAgiG,UAsNA3vE,EAAIx6B,KAAKmI,EAAGgiG,UAAU9mG,GAAG6rD,OAE7B/mD,GAAGoiG,QAAU/vE,EAAIqB,MACjB,IAAIz4B,IApNRonG,eAASriG,EAAAoiG,QACDjB,WAAGnhG,EAAAi4B,OACHi9D,YAAAl1F,EAAAq1F,GAAAH,YAuNJ1tE,GArNak9C,kBAAQzpE,GAAAwD,KAAA,SAAuBC,GAsNxC,GArNgB,MAAZA,EAAIlI,OAAQ,CAsNZwJ,EAAG+1B,gBAAkBr3B,EAAIhJ,IApN1B,KAAA,GAAAwF,KAAc8E,GAAI+1B,gBACjB,IAAM,GAAA5rB,KAAAnK,GAAA+1B,gBAAA76B,GAAAg5B,aACN,IAAA,GAAA8B,KAAsBh2B,GAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA,CACtBj0B,EAAa+1B,gBAAM76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAC,IAAAt5B,KAAAC,MAAAoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SAsNPl2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAG+B,gBAAkBp7B,KAAKC,MAAMoD,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAG+B,iBApNhI/3B,EAAA+1B,gBAAA76B,GAAuBg5B,aAAU/pB,GAAAm4F,WAAcz2E,WAAA,GAAAC,QAAA,GAClD9rB,EAAA+1B,gBAAgB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAA67B,OAAA,EACjB7xD,EAAA+1B,gBAAwB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAu9B,WAAA1nC,WAAA,GAAAC,QAAA,EAsNnB,IAAIwK,GAAO,CACX97B,GAAO+7B,MAAMv2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGC,IAAIO,UAAW,SAASnrB,EAAO0b,GACzFuP,GAAQjrB,IAlNjBrL,EAAY+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cACZz2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,MAAAhd,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cAAAH,EAuNSt2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGhZ,MAAQsZ,EAjN1E,IAAA,GAAAp7B,KAAA8E,GAAA+1B,gBACH,IAAA,GAAA5rB,KAAAnK,GAAAg3B,YAsNY,GAAIh3B,EAAG+1B,gBAAgB76B,GAAG6d,KAAO/Y,EAAGg3B,YAAY7sB,GAAG8sB,QAAS,CACxD,GAAIh8B,IACAg8B,QAASj3B,EAAGg3B,YAAY7sB,GAAG8sB,QAnN9Cj3B,GAAA+1B,gBAAwB76B,GAAAg8B,aAAA18B,EAAAyC,OAAA+C,EAAAg3B,YAAA/7B,GAKrB+E,EAAAsS,WAAY,MAEbva,GAAS2I,YAAI,QAAA,yBAAA,eAuNjB,SArNKC,GAsNJ5I,EArNI2I,YAAmB,QAAA,mBAAA,eA8Q/B,QArNQ6hG,KAuNJ,GArNIlwE,IACAmwE,eAyNJ,KArNI,GAAItnG,KAAM8E,GAAA+1B,gBAsNV,IArNI,GAAA5rB,KAAAnK,GAAY+1B,gBAAG76B,GAAAg5B,aACf,IAAA,GAAA8B,KAAYh2B,GAAG+1B,gBAAiB76B,GAAAg5B,aAAA/pB,GAAA8pB,QACb,GAAnBj0B,EAAA+1B,gBAAmB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAlS,SACnBuO,EAAWmwE,YAAM3qG,MAsNLm9B,MAAOh1B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGhB,MApNzDytE,YAAAziG,EAAA+1B,gBAAgC76B,GAAAg5B,aAAc/pB,GAAK8pB,QAAA+B,GAAAu9B,YA4NtE,IAAIt4D,IACAunG,YAAanwE,EArNGmwE,YAwNpBh7E,GAAeo9C,qBAAqB3pE,GAAKwD,KAAK,SAASC,GAC/CA,EArNIhJ,KAAGke,aAAc,GAsNrB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBACpD6uF,IACAxwF,IACAlS,EAAG2iG,eAAgB,EApNpB3iG,EAAA4iG,WAAc,EACb5iG,EAAA6iG,kBAAW,GAGf9qG,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAuND,SAASlT,GACR5I,EAAW2I,YAAY,iCAK/B,QArNQs/F,KAsNJhgG,EAAGmgG,mBArNgB,KAsNnBngG,EAAGmgG,sBACHngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eArNa,KAsNhBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBArNa,KAsNhB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASqqE,KACLpgG,EAAGwgG,sBArNwB,KAsN3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eArNiB,KAsNpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eArNiB,KAsNpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS0qE,KACLzgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eArNC,KAsNJjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAnNPhmD,EAAA+1B,mBAwNA,QAAS+qE,KApNT9gG,EAAAihG,kBAsNIjhG,EAAGihG,eAAiB,KApNpBjhG,EAAA+gG,qBAsNA/gG,EAAG+jD,iBArNgB,KAsNnB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASmrE,KApNLlhG,EAAA+jD,iBAAO,KAsNP/jD,EAAGgmD,gBAnNPhmD,EAAA+1B,mBA6NA,QArNQosE,KAsNJniG,EAAG+1B,mBAGP,QAASixB,KApNLxsD,EAAAqI,QAAe7C,EAAA4mD,YAAA,SAAuBM,GAClCA,EAAI47C,kBAAoB,OA0NhC,QAASJ,KACL1iG,EAAGmgG,mBArNoB,KAsNvBngG,EAAGwgG,sBArNoB,KAsNvBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eArNiB,KAsNpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBA7uBP,GAAI/1B,GAAKC,IA9MbD,GAAAqU,kBAAsBhJ,MAAY,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAChCrL,EAAAsU,SAAAtU,EAAAqU,gBAAA,GAEArU,EAAAuU,YAAY,EACVvU,EAAAwU,qBAAwB,SAAAC,GACnBzU,EAAAuU,YAAkBE,GAmNvBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAhNS,EAiNZva,EAhNM2c,SAAW,EAiNjB1U,EAAG4iG,WAhNS,EAiNZ5iG,EAAG2iG,eAAgB,EACnB3iG,EAAG6iG,kBAhNI,EAiNP7iG,EAhNEigG,yBAiNFjgG,EAAGsgG,4BACHtgG,EAhNC2gG,qBACD3gG,EAAA+gG,qBAiNA/gG,EAAG8/F,4BACH9/F,EAAGq1F,MACHr1F,EAAG+/F,2BAA6BA,EAChC//F,EAAGkgG,8BAAgCA,EACnClgG,EAAGugG,uBAAyBA,EAC5BvgG,EAAG4gG,sBAAwBA,EAC3B5gG,EAAGghG,2BAA6BA,EAChChhG,EAAGohG,2BAA6BA,EA/MvCphG,EAAAomD,YAAYA,EACXpmD,EAAA41B,kBAAAA,EAiNM51B,EAAGuiG,iBAAmBA,EA/M5BviG,EAAQ0iG,MAAOA,CACV,IAAAvwF,GAAUhY,EAAWgG,uBAAAwU,gBAAAxC,SAiNpBD,KAgEAlS,EAAG+iG,OAAS,SAASjwF,GACjB9S,EAAG2iG,eAAgB,EACnB3iG,EAAGq1F,GAAKjhG,QAAQ8e,KAAKJ,GACrB9S,EAAGq1F,GAAG9lC,MAAQn7D,QAAQ8e,KAAKJ,EAAIy8C,OAC/BvvD,EAAGq1F,GAAG2N,SAAW5uG,QAAQ8e,KAAKJ,EAAIkwF,UAhN7ChjG,EAAYq1F,GAAA4N,YAAA7uG,QAAA8e,KAAAJ,EAAAmwF,aACXjjG,EAAAq1F,GAAAtoE,SAAA34B,QAAA8e,KAAAJ,EAAAia,UAkNU/sB,EAAGq1F,GAAGxyC,eAAiBzuD,QAAQ8e,KAAKJ,EAAI+vC,gBACxC7iD,EAAGq1F,GAAGH,YAAc9gG,QAAQ8e,KAAKJ,EAAIoiF,aAjNvCl1F,EAAAq1F,GAAOv/F,UAAA1B,QAAA8e,KAAAJ,EAAAhd,UAoNL,KAAK,GAAIoF,KAAK8E,GAAGkoB,YACTloB,EAAGkoB,YAAYhtB,GAAGmtB,MAAQvV,EAAIka,WAjN9BhtB,EAAAq1F,GAAA6N,SAAaljG,EAAAkoB,YAAAhtB,GAAAitB;AAsNrB,IAAK,GAAIjtB,KAAK8E,GAAGgoB,mBACThoB,EAAGgoB,mBAAmB9sB,GAAG6d,KAAOjG,EAAIga,iBACpC9sB,EAAGq1F,GAAGptE,aAAejoB,EAAGgoB,mBAAmB9sB,GAAG+sB,aAItD,IAAoB,GAAhBjoB,EAAGq1F,GAAG1sE,OAAa,CA/MjC,GAAAtP,GAAA,GAAAI,KAmNczZ,GAAGq1F,GAAG8N,cAAgB,GAAI1pF,MAAKJ,EAAK66B,cAAe76B,EAAK83B,WAAY,GACpEnxC,EAAGq1F,GAAG+N,YAAc,GAAI3pF,MAAKJ,EAAK66B,cAAe76B,EAAK83B,WAAa,EAAG,OAYnE,IAAoB,GAAhBnxC,EAAGq1F,GAAG1sE,OAAa,CAE1B,GAAIliB,GAAI,GAAIgT,MACRwmB,EAAIx5B,EAAE6S,QAjNb,QAAA2mB,GACX,IAAA,GAqN0B,GAAIojE,GAAM,GAAI5pF,KAnNzB4pF,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACHhc,EAAAq1F,GAAkB+N,YAAAC,CAsNJ,IAAIA,GAAM,GAAI5pF,KAnNhB4pF,GAAA7nF,QAAa6nF,EAAArnF,UAAA,GACZhc,EAAAq1F,GAAK8N,cAAAE,CAuNR,MACJ,KAAK,GAEG,GAAIA,GAAM,GAAI5pF,KACd4pF,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAG+N,YAAcC,CAEpB,IAAIA,GAAM,GAAI5pF,KACd4pF,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAnN3Chc,EAAAq1F,GAAA8N,cAAAE,CAGI,MACL,KAAa,GAsNG,GAAIA,GAAM,GAAI5pF,KAnNnB4pF,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACGhc,EAAAq1F,GAAA+N,YAAAC,CAsNE,IAAIA,GAAM,GAAI5pF,KACd4pF,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAG8N,cAAgBE,CAG1B,MACJ,KAAK,GAEG,GAAIA,GAAM,GAAI5pF,KAnN7B4pF,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACXhc,EAAAq1F,GAAA+N,YAAAC,CAEe,IAAAA,GAAA,GAAA5pF,KACA4pF,GAAc7nF,QAAA6nF,EAAArnF,UAAA,GAqNHhc,EAAGq1F,GAAG8N,cAAgBE,CAjNvC,MACQ,KAAA,GAEI,GAAAA,GAAA,GAAA5pF,KACA4pF,GAAA7nF,QAAA6nF,EAAArnF,WAqNKhc,EAAGq1F,GAAG+N,YAAcC,CAEpB,IAAIA,GAAM,GAAI5pF,KACd4pF,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAG8N,cAAgBE,CAjN9C,MAqNgB,KAAK,GAnNrB,GAAAA,GAAA,GAAA5pF,KACY4pF,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACIhc,EAAAq1F,GAAA+N,YAAyBC,CAuNjB,IAAIA,GAAM,GAAI5pF,KApN7B4pF,GAAA7nF,QAAsB6nF,EAAQrnF,WACnChc,EAAuBq1F,GAAA8N,cAAAE,CAGpB,MACA,KAAc,GAGd,GAAAA,GAAuB,GAAA5pF,KACf4pF,GAAA7nF,QAAc6nF,EAAArnF,UAAA,GAsNLhc,EAAGq1F,GAAG+N,YAAcC,CAnNxB,IAAAA,GAAA,GAAA5pF,KACD4pF,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACAhc,EAAAq1F,GAAA8N,cAAAE,OAOQ,IAApBrjG,EAAAq1F,GAAA1sE,SAGK3oB,EAAAq1F,GAAA8N,cAAA,GAAA1pF,MACLzZ,EAAAq1F,GAAA+N,YAAA,GAA6B3pF,MAG7BsmF,GAAwB//F,EAAAq1F,GAAAH,cAqhB3Bl1F,EAAGuL,OAAS,SArNO0oB,EAAAqvE,EAAAxwF,GAuNf,GAAIywF,GAAQ,CACRD,GAAIzqE,YACJyqE,EAAIzqE,aAAc,EAGlByqE,EAAIzqE,aArNO,CAuNf,KAAK,GAAI39B,KAAK+4B,GAGV,GAFAA,EArNG/4B,GAAA4oB,QAAcw/E,EAAAzqE,YAuNS,GAAtB5E,EAAQ/4B,GAAG4oB,SApNZ,GAAA,GAAAmQ,EAAA/4B,GAAA22D,MAAA,CACH,GAAA0B,GAAA1nC,WAAAoI,EAAA/4B,GAAA48B,cAAAjM,WAAA/Y,EAAAoK,SAsNQ+W,GAAQ/4B,GAAGq4D,WAAa1nC,WAAW0nC,GAAYznC,QAAQ,GACvDy3E,EAAQtvE,EAAQ/4B,GAAGq4D,UACnB,IAAI+uC,GAAaz2E,WAAWy3E,EAAIhB,YAAcz2E,WAAW03E,EApNhED,GAAAhB,WAAAz2E,WAA6By2E,GAAAx2E,QAAA,GAC3BmI,EAAA/4B,GAAgB22D,OAAA,OAGdhmC,YAAYy3E,EAAAhB,YAAgBz2E,WAAAoI,EAAA/4B,GAAAq4D,YACzB+vC,EAAAhB,WAAQz2E,WAAkBy3E,EAAAhB,YAAAz2E,WAAAoI,EAAA/4B,GAAAq4D,YAE3B+vC,EAAAhB,WAAaz2E,WAAAoI,EAAA/4B,GAAAq4D,YAAA1nC,WAAAy3E,EAAAhB,YAChBruE,EAAI/4B,GAAMq4D,WAAA1nC,WAAA,GAAAC,QAAA,GAsNVmI,EArNI/4B,GAAA22D,OAAe,GAyN/B7xD,EAAG82B,SAAW,SArNMlC,EAAI0uE,EAAAxwF,GAsNpB,GAAI+jB,GAAQ,CACZ,IAAIjC,EAAK9Q,QAAS,CACd,GAAIyvC,GAAa1nC,WAAW+I,EAAKkD,cAAgBjM,WAAW/Y,EAAIoK,SAChE0X,GAAK2+B,WAAa1nC,WAAW0nC,GAAYznC,QAAQ,GACjD+K,EAAQjC,EAAK2+B,UACb,IAAI+uC,GAAaz2E,WAAWy3E,EAAIhB,YAAcz2E,WAAWgL,EACzDysE,GAAIhB,WArNWz2E,WAAYy2E,GAAAx2E,QAAA,GAsN3B8I,EAAKi9B,OAAQ,EACbyxC,EAAIzqE,aArNQ,MAuNRhN,YArNGy3E,EAAShB,YAAKz2E,WAAA+I,EAAA2+B,YAsNjB+vC,EArNIhB,WAAWz2E,WAAYy3E,EAAAhB,YAASz2E,WAAoB+I,EAAA2+B,YAuNxD+vC,EAAIhB,WAAaz2E,WAAW+I,EAAK2+B,YAAc1nC,WAAWy3E,EAAIhB,YAClE1tE,EArNG2+B,WAAA1nC,WAAA,GAAAC,QAAA,GACH8I,EAAAi9B,OAAA,EAsNAyxC,EAAIzqE,aAAc,GAiJ1B74B,EAAG+xB,KAAO,WACN2wE,IACAxwF,IACAlS,EAAG2iG,eAAgB,kJA1vB3BvuG,QA/MAC,OAAO,uBACLe,WAAW,wBAAIyqG,MA88BrB,WACI,YAOA,SAAS2D,GAAkBzrG,EAAYyC,EAAQgtB,EAAgBntB,EAASN,EAAOC,EAAQG,GA0BnF,QAAS+X,KACLlS,EAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAC/GkP,aArNc,iCAAgClP,GAAG,IAuNnD/Y,EAAGyoB,iBACCC,eAAgB,SAChBC,OAAQ,IAnNbD,eAAoB,UACfC,OAAQ,IAERD,eAAI,WACJC,OAAK,IAELD,eAAI,qBACJC,OAAI,IAwNJD,eArNG,QACHC,OAAI,IAuNR3oB,EAAGkoB,cACCC,YArNQ,SACRC,UAAK,EACLC,KAAK,MAuNLF,YAAa,sBACbC,UAAW,EACXC,KAAM,OAnNdF,YAAS,uBACLC,UAAA,EACIC,KAAM,OAwNNF,YAAa,iCApNbC,UAAA,EACJC,KAAS,OAuNLF,YArNa,6CAsNbC,UArNQ,EAsNRC,KAAM,OAENF,YAAa,mBACbC,UAAW,EACXC,KAAM,OAGVb,EAAeyF,iBAAiB,EAAG,EAAG9a,GAAW1T,KAAK,SAAUC,GAC5D,GAAmB,MAAfA,EAAIlI,OAAgB,CApNxBwJ,EAAMktB,WAAAxuB,EAAAhJ,IACN,KAAA,GAAawF,KAAI8E,GAAAktB,WAAA,CAsNT,IAAK,GAAI/iB,KAAKnK,GAAGgoB,mBACThoB,EAAGktB,WAAWhyB,GAAG4xB,gBAAkB9sB,EAAGgoB,mBAAmB7d,GAAG4O,KApNjE/Y,EAAAktB,WAAAhyB,GAAqB+sB,aAAUjoB,EAASgoB,mBAAK7d,GAAA8d,aAGpD,KAAA,GAAA9d,KAAAnK,GAAAyoB,eACAzoB,EAAAktB,WAAAhyB,GAAAytB,QAAA3oB,EAAAyoB,eAAAte,GAAAwe,SACG3oB,EAAAktB,WAAgBhyB,GAAA6xB,SAAA/sB,EAAAyoB,eAAAte,GAAAue,eAwNf,KAAK,GAAIve,KAAKnK,GAAGkoB,YApNlBloB,EAAAktB,WAAAhyB,GAAA8xB,UAAAhtB,EAAAkoB,YAAA/d,GAAAke,OACQroB,EAAAktB,WAAYhyB,GAAA8xB,SAAahtB,EAAKkoB,YAAS/d,GAAAge,aAyNlDnoB,EAAGyjG,QAAS,EAEZzjG,EAAGsS,WAAY,MAnNlBva,GAAY2I,YAAA,QAAA,yBAAA,QAGd,SAAAC,GACA5I,EAAA2I,YAAwB,QAAA,mBAAA,SA2O/B,QArNOgjG,GAAA5wF,GAEH9S,EAAG2jG,aAAAC,YAAoB,KACvB5jG,EAAG2jG,aAAAE,oBAAmB,KAuNtB7jG,EAAGgT,YAAa,EApNhBhT,EAAGq1F,GAAAjhG,QAAA8e,KAAkBJ,EAsNrB,IAAI6hF,GAAY9oE,WAAW7rB,EAAGq1F,GAAGT,sBAAsB9oE,QAAQ,EAlN/D9rB,GAAGq1F,GAAAT,qBAAiB,GAAAxlE,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAA84E,GAEpB30F,EAAGq1F,GAAAroE,SAAAhtB,EAAAq1F,GAAoBroE,SACvBhtB,EAAGq1F,GAAAziC,KAAA/mC,WAAiB7rB,EAAAq1F,GAAAziC,MAAA9mC,QAAA,GACpB9rB,EAAGq1F,GAAAviC,KAAAjnC,WAAiB7rB,EAAAq1F,GAAAviC,MAAAhnC,QAAA,GACpB9rB,EAAGq1F,GAAAriC,KAAAnnC,WAAoB7rB,EAAAq1F,GAAAriC,MAAAlnC,QAAA,GACvB9rB,EAAGq1F,GAAAl4E,IAAA0O,WAAmB7rB,EAAAq1F,GAAAl4E,KAAA2O,QAAA,GACtB9rB,EAAGq1F,GAAAyO,IAAAj4E,WAAe7rB,EAAAq1F,GAAAyO,KAAAh4E,QAAA,GAsNlB9rB,EAAGq1F,GAAG0O,UAAYl4E,WAAW7rB,EAAGq1F,GAAG0O,WAAWj4E,QAAQ,GApNtD9rB,EAAGq1F,GAAA2O,aAAkBn4E,WAAA7rB,EAAAq1F,GAAA2O,cAAAl4E,QAAA,GAIrBg4C,EAAG9jE,EAAAq1F,GAAiBrxB,oBACpBhkE,EAAGikG,YAAA,EACHjkG,EAAGyjG,QAAA,EAwNP,QAAS3/B,GAAgBE,GApNrBx8C,EAAGy8C,0BAAkBD,GAAAvlE,KAAA,SAAAC,GAsNjB,GAAmB,MAAfA,EAAIlI,QA7IJ,GA8IAwJ,EAAG2jG,aAAejlG,EAAIhJ,KApNzBsK,EAAA2jG,aAAcO,QAAAr4E,WAAA7rB,EAAA2jG,aAAAO,SAAAp4E,QAAA,GAChB9rB,EAAA2jG,aAAmBQ,YAAAC,EAAApkG,EAAA2jG,aAAAO,SAuNdlkG,EAAG2jG,aAAaU,uBAAyBx4E,WAAW7rB,EAAG2jG,aAAaU,wBAAwBv4E,QAAQ,GApNzG9rB,EAAA2jG,aAAkBW,2BAAAF,EAAApkG,EAAA2jG,aAAAU,wBAuNbrkG,EAAG2jG,aAAapwC,WAAa1nC,WAAW7rB,EAAG2jG,aAAapwC,YAAYznC,QAAQ,GApN/E9rB,EAAA2jG,aAAaY,eAAAH,EAAApkG,EAAA2jG,aAAApwC,YAEfvzD,EAAA2jG,aAAkBa,WAAA34E,WAAA7rB,EAAA2jG,aAAAa,YAAA14E,QAAA,GAsNb9rB,EAAG2jG,aAAac,eAAiBL,EAAapkG,EAAG2jG,aAAaa,YAnNjExkG,EAAA2jG,aAAce,QAAA74E,WAAA7rB,EAAA2jG,aAAAe,SAAA54E,QAAA,GAChB9rB,EAAA2jG,aAAkBgB,YAAAP,EAAApkG,EAAA2jG,aAAAe,SAuNb1kG,EAAG2jG,aAAaiB,UAAY/4E,WAAW7rB,EAAG2jG,aAAaiB,WAAW94E,QAAQ,GApN7E9rB,EAAA2jG,aAAAkB,cAAqBT,EAAApkG,EAAA2jG,aAAAiB,WAEtB5kG,EAAK2jG,aAAAI,UAAoBl4E,WAAA7rB,EAAA2jG,aAAAI,WAAAj4E,QAAA,GAsNrB9rB,EAAG2jG,aAAamB,cAAgBV,EAAapkG,EAAG2jG,aAAaI,WAE7D/jG,EAAG2jG,aAAaoB,cAAgBl5E,WAAW7rB,EAAG2jG,aAAaoB,eAAej5E,QAAQ,GAClF9rB,EAAG2jG,aAAaqB,kBAAoBZ,EAAapkG,EAAG2jG,aAAaoB,eAnNtE/kG,EAAA2jG,aAAqBsB,WAAAp5E,WAAA7rB,EAAA2jG,aAAAsB,YAAAn5E,QAAA,GACrB9rB,EAAA2jG,aAAAuB,eAAwBd,EAAApkG,EAAA2jG,aAAAsB,YAExBjlG,EAAA2jG,aAAAwB,WAA2Bt5E,WAAA7rB,EAAA2jG,aAAAwB,YAAAr5E,QAAA,GAC3B9rB,EAAA2jG,aAAiByB,eAAAhB,EAAApkG,EAAA2jG,aAAAwB,YAEjBnlG,EAAA2jG,aAAoB0B,WAAAx5E,WAAA7rB,EAAA2jG,aAAA0B,YAAAv5E,QAAA,GACpB9rB,EAAA2jG,aAAiB2B,eAAAlB,EAAApkG,EAAA2jG,aAAA0B,YAEjBrlG,EAAA2jG,aAAoB4B,UAAA15E,WAAA7rB,EAAA2jG,aAAA4B,WAAAz5E,QAAA,GACpB9rB,EAAA2jG,aAAmB6B,cAAApB,EAAApkG,EAAA2jG,aAAA4B,WAuNdvlG,EAAG2jG,aAAalzE,gBAAkB5E,WAAW7rB,EAAG2jG,aAAalzE,iBAAiB3E,QAAQ,GApN3F9rB,EAAA2jG,aAAkB8B,oBAAArB,EAAApkG,EAAA2jG,aAAAlzE,iBAuNbzwB,EAAG2jG,aAAa+B,SAAW75E,WAAW7rB,EAAG2jG,aAAa+B,UAAU55E,QAAQ,GApN1E9rB,EAAA2jG,aAAWgC,aAAAvB,EAAApkG,EAAA2jG,aAAA+B,UAEjB1lG,EAAA2jG,aAAAiC,gBAAA/5E,WAAA7rB,EAAA2jG,aAAAiC,iBAAA95E,QAAA,GACG9rB,EAAA2jG,aAAgBkC,oBAAAzB,EAAApkG,EAAA2jG,aAAAiC,iBAuNX5lG,EAAG2jG,aAAamC,gBAAkBj6E,WAAW7rB,EAAG2jG,aAAamC,iBAAiBh6E,QAAQ,GACtF9rB,EAAG2jG,aAAaoC,oBAAsB3B,EAAapkG,EAAG2jG,aAAamC,iBAEnE9lG,EAAG2jG,aAAaqC,eAAiBn6E,WAAW7rB,EAAG2jG,aAAaqC,gBAAgBl6E,QAAQ,GApN3F9rB,EAAA2jG,aAAAsC,mBAAA7B,EAAApkG,EAAA2jG,aAAAqC,gBAuNOhmG,EAAG2jG,aAAauC,eAAiBr6E,WAAW7rB,EAAG2jG,aAAauC,gBAAgBp6E,QAAQ,GACpF9rB,EAAG2jG,aAAawC,mBAAqB/B,EAAapkG,EAAG2jG,aAAauC,gBApNtElmG,EAAA2jG,aAAAyC,aAAAv6E,WAAA7rB,EAAA2jG,aAAAyC,cAAAt6E,QAAA,GACI9rB,EAAA2jG,aAAA0C,iBAAqBjC,EAAApkG,EAAA2jG,aAAAyC,cAuNrBpmG,EAAG2jG,aAAa/wC,MAAS5yD,EAAG2jG,aAAasB,WAAajlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GACpG9rB,EAAG2jG,aAAa7wC,MAAS9yD,EAAG2jG,aAAawB,WAAanlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GArN3G9rB,EAAA2jG,aAAkB3wC,MAAYhzD,EAAA2jG,aAAQ0B,WAAgBrlG,EAAS2jG,aAAOoB,cAAQ,KAAAj5E,QAAuB,GACjG9rB,EAAA2jG,aAAAxmF,KAAAnd,EAAA2jG,aAAA4B,UAAAvlG,EAAA2jG,aAAAoB,cAAA,KAAAj5E,QAAA,GAuNG9rB,EAAG2jG,aAAaC,YAAc5jG,EAAG2jG,aAAaC,YAC9C5jG,EAAG2jG,aAAa2C,cAAgBtmG,EAAG2jG,aAAaI,UAAY/jG,EAAG2jG,aAAapwC,YAAYznC,QAAQ,GAChG9rB,EAAG2jG,aAAa2C,aAAez6E,WAA4C,IAAhC7rB,EAAG2jG,aAAa,cAAqB73E,QAAQ,GAExF9rB,EAAG2jG,aAAa4C,aAAevmG,EAAG2jG,aAAa+B,SAAW1lG,EAAG2jG,aAAaoB,eAAej5E,QAAQ,GACjG9rB,EAAG2jG,aAAa4C,YAAc16E,WAA2C,IAA/B7rB,EAAG2jG,aAAa,aAAoB73E,QAAQ,GAEtF9rB,EAAG2jG,aAAa6C,iBAAmBxmG,EAAG2jG,aAAaiC,gBAAkB5lG,EAAG2jG,aAAapwC,YAAYznC,QAAQ,GACzG9rB,EAAG2jG,aAAa6C,gBAAkB36E,WAA+C,IAAnC7rB,EAAG2jG,aAAa,iBAAwB73E,QAAQ,GApNvG9rB,EAAYsS,WAAA,EACH,GAAAtS,EAAAq1F,GAAA1sE,OACI3oB,EAAAq1F,GAAAv0F,QAAA,GAAA2Y,MAAAzZ,EAAA2jG,aAAA8C,UACDzmG,EAAAq1F,GAAAv0F,QAAA0a,QAAA,GACHxb,EAAAq1F,GAAAx0F,UAAA,GAAA4Y,MAAAzZ,EAAAq1F,GAAAv0F,SACEd,EAAAq1F,GAAAx0F,UAAA2a,QAAA,OAEH,IAAU,GAAAxb,EAAAq1F,GAAA1sE,OAAA,CACb,GAAA06E,GAAA,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACQpD,GAAA7nF,QAAA6nF,EAAArnF,UAAsB,GAuNtBhc,EAAGq1F,GAAGv0F,QAAUuiG,CApNhC,IAAAA,GAAA,GAAA5pF,MAAAzZ,EAAAq1F,GAAAv0F,QAuNgBuiG,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GArN5Bhc,EAAAq1F,GAAAx0F,UAAAwiG,MAEV,IAAc,GAAArjG,EAAAq1F,GAAA1sE,OAAA,CAuNJ,GAAI06E,GAAM,GAAI5pF,MAAKzZ,EAAG2jG,aAAa8C,SArN5CpD,GAAA7nF,QAAkB6nF,EAAArnF,UAAA,GACjBhc,EAAAq1F,GAAAx0F,UAAgBwiG,CAEjB,IAAAA,GAAA,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACCpD,GAAA7nF,QAAgB6nF,EAAArnF,UAAA,GACRhc,EAAAq1F,GAAAv0F,QAAAuiG,OAITtrG,GAAA2I,YAAA,QAAA,yBAAA,QAyNC,SAAUC,GArNd5I,EAAA2I,YAAA,QAAA,mBAAA,SA0NJ,QAtNO0jG,GAAe/4F,GAuNlB,GAtNIspF,GAAA9oE,WAAaxgB,GAAAygB,QAAA,EA0NjB,OAFA9rB,GAAGq1F,GAtNCT,qBAAM,GAAAxlE,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAA84E,GAEN30F,EAAAq1F,GAAAT,qBAnDR,GAAI50F,GAAKC,IAUTD,GAAGgT,YAAa,EAChBhT,EAAG+S,WArNU,EAsNb/S,EAAGyjG,QArNK,EAsNRzjG,EAAGikG,YArNK,EAsNRjkG,EAAGsS,WArNS,EAsNZtS,EAAG0mG,QArNS,EAsNZ1mG,EAAG0jG,SAAWA,EACd1jG,EAAG2jG,gBACH5rG,EAAW2c,SArNK,EAsNhB1U,EAAGq1F,KACH,IAAIljF,GArNYhY,EAAiBgG,uBAAuBwU,gBAAQxC,SAwNhED,KAkFAlS,EAAGwtB,WArNI,WACH,GAAGxtB,EAAAktB,WAAA/xB,OAAoB,EAAA,CACpB6E,EAAAktB,WAAiB1yB,EAAA83B,QAAAtyB,EAAAktB,WAAA,cAEjB,KAAA,GAAAnG,KAAA/mB,GAAoBktB,WACpBltB,EAAAktB,WAAmBnG,GAAAvsB,EAAA83B,QAAAtyB,EAAAktB,WAAAnG,GAAA,cAuNlB/mB,GAAG2mG,cAAgB3mG,EAAGktB,WApNvBltB,EAAAyjG,QAAA,EAsNCzjG,EAAGikG,YAAa,MAhNjB5pG,GAAA8C,OAAA,UAA2B,uBAAA9F,WAAA,EAAA+F,KAAA,QA4WlC4C,EAAG4mG,WAtNK,WAuNJ,GAtNI3rG,IAuNA4rG,OAAQ7mG,EAAGq1F,GAAGrxB,mBArNlBkxB,YAAAl1F,EAAAq1F,GAAAH,YACI2O,oBAAa7jG,EAAA2jG,aAAAE,oBAwNjB7jG,GAAGsS,WAtNO,EAuNVtS,EAtNG0mG,QAAA,EAwNHl/E,EAtNe49C,kBAAAnqE,GAAAwD,KAAA,SAAAC,GACXA,EAAMhJ,KAAAke,aAAA,GACP7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,WACC7T,EAAAq1F,MACAr1F,EAAAsS,WAAW,EACXtS,EAAM0mG,QAAA,EAuNFx0F,IACAlS,EAAGyjG,QAAS,GAnNZ1rG,EAAG2I,YAAiB,QAAAhC,EAAAhJ,KAAAme,QAAA,YAwNzB,SAtNSlT,GAuNR5I,EAAW2I,YAtNQ,kCA0N3BV,EAAG+xB,KAAO,WACN/xB,EAAG0R,UAGP1R,EAAG0R,OAAS,WACR1R,EAAGq1F,MACHr1F,EAAGgT,YAtNa,yGA9FxB5e,QACKC,OAAO,uBACPe,WAAW,oBAAqBouG,MAsTzC,WACI,YAOA,SAASsD,GAtNkB/uG,EAAAkC,EAAAO,EAAAC,EAAAN,EAAAqtB,EAAAntB,EAAAN,EAAAC,GAiPvB,QAASkY,KArNLlS,EAAGgoB,qBAAaC,aAAA,qBAAAlP,GAAA,IAAAkP,aAAA,oBAAAlP,GAAA,IACbkP,aAAa,iCAAKlP,GAAA,IAyNrB/Y,EAAGyoB,iBArNGC,eAAA,SAuNEC,OAAQ,IApNVD,eAAkB,UAClBC,OAAO,IAEPD,eAAiB,WACjBC,OAAM,IAEND,eAAe,qBAuNbC,OAAQ,IAnNhBD,eAAsB,QACnBC,OAAa,IAyNhB3oB,EAAGkoB,cArNEC,YAAgB,SACrBC,UAAe,EACPC,KAAI,MAEJF,YAAG,sBACHC,UAAG,EAuNHC,KAAM,OApNNF,YAAG,uBAuNHC,UAAW,EArNXC,KAAG,OAGHF,YAAG,iCACHC,UAAG,EAuNHC,KAAM,OApNNF,YAAG,6CAuNHC,UAAW,EArNXC,KAAG,OAwNHF,YAAa,mBArNbC,UAAG,EACHC,KAAG,OAyNXb,EAtNWyF,iBAAa,EAAA,EAAA9a,GAAoB1T,KAAA,SAAgBC,GAuNpD,GAAmB,MAAfA,EAAIlI,OAAgB,CArNrBwJ,EAAAktB,WAAaxuB,EAAAhJ,IACb,KAAA,GAAAwF,KAAa8E,GAAAktB,WAAiB,CAuNzB,IAAK,GAAI/iB,KAAKnK,GAAGgoB,mBArNThoB,EAAAktB,WAAahyB,GAAA4xB,gBAAc9sB,EAAAgoB,mBAAyB7d,GAAQ4O,KAC5D/Y,EAAAktB,WAAAhyB,GAAiB+sB,aAAajoB,EAAGgoB,mBAAa7d,GAAA8d,aAG3D,KAAA,GAAa9d,KAAAnK,GAAAyoB,eAuNAzoB,EAAGktB,WAAWhyB,GAAGytB,QAAU3oB,EAAGyoB,eAAete,GAAGwe,SArNhD3oB,EAAAktB,WAAYhyB,GAAA6xB,SAAc/sB,EAAAyoB,eAAate,GAAAue,eAGpD,KAAA,GAAave,KAAAnK,GAAAkoB,YACAloB,EAAAktB,WAAAhyB,GAAA8xB,UAAsBhtB,EAAAkoB,YAAgB/d,GAAAke,OAuNtCroB,EAAGktB,WAAWhyB,GAAG8xB,SAAWhtB,EAAGkoB,YAAY/d,GAAGge,aAlN3DnoB,EAAAyjG,QAAa,EACbzjG,EAAAsS,WAAa,MAEbva,GAAA2I,YAAa,QAAkB,yBAA2B,QAyNjE,SAtNOC,GACH5I,EAAG2I,YAAa,QAAA,mBAAkC,SAwN1D8mB,EAtNWm9C,qBAAalmE,KAAiB,SAAAC,GAC9B,MAAHA,EAAGlI,OAuNHwJ,EAAG+mG,gBAAkBroG,EAAIhJ,KApNzBqC,EAAG2I,YAAa,QAAA,yBAAmC,aAwNxD,SAtNQC,GAuNP5I,EAtNO2I,YAAa,QAAY,mBAAa,cAoPrD,QAASgjG,GAtNO5wF,GAwNZ9S,EAAGgT,YAAa,EAChBhT,EAAGq1F,GAAKjhG,QAtNQ8e,KAAAJ,EAuNhB,IAAI6hF,GAtNY9oE,WAAQ7rB,EAAIq1F,GAAAT,sBAAY9oE,QAAA,GA0NpChE,EAAI6sE,CACR7sE,GAAIA,EAAE3kB,UACN,IAAI0xF,GAAa,EACb/sE,GAAE1kB,QAAQ,KAAO,IArNjByxF,EAAU/sE,EAAKxE,UAAAwE,EAAA1kB,QAAA,KAAA0kB,EAAA3sB,SAuNnB2sB,EAAI7gB,KAtNIC,MAAA4gB,GAuNRA,EAAIA,EAAE3kB,UACN,IAAI2xF,GAAYhtE,EAAExE,UAAUwE,EAAE3sB,OAAS,GACnC45F,EAAejtE,EAAExE,UAAU,EAAGwE,EAAE3sB,OAAS,EArN3B,KAAtB45F,IACQD,EAAY,IAAAA,GAuNhB90F,EAAGq1F,GAAGT,qBAAuBG,EAAa94F,QAAQ,wBAAyB,KAAO64F,EAAYD,EAE9F70F,EAAGq1F,GAAGroE,SAAWhtB,EAAGq1F,GAAGroE,SArNvBhtB,EAAAq1F,GAAAziC,KAAa/mC,WAAA7rB,EAAAq1F,GAAAziC,MAAA9mC,QAAA,GAuNb9rB,EAAGq1F,GAAGviC,KAAOjnC,WAAW7rB,EAAGq1F,GAAGviC,MAAMhnC,QAAQ,GAC5C9rB,EAAGq1F,GAAGriC,KAAOnnC,WAAW7rB,EAAGq1F,GAAGriC,MAAMlnC,QAAQ,GAC5C9rB,EAAGq1F,GAAGl4E,IAAM0O,WAAW7rB,EAAGq1F,GAAGl4E,KAAK2O,QAAQ,GAC1C9rB,EAAGq1F,GAAGyO,IAAMj4E,WAAW7rB,EAAGq1F,GAAGyO,KAAKh4E,QAAQ,GArN3C9rB,EAAAq1F,GAAA0O,UAAal4E,WAAY7rB,EAAAq1F,GAAA0O,WAAAj4E,QAAA,GACxB9rB,EAAAq1F,GAAI2O,aAAMn4E,WAAA7rB,EAAAq1F,GAAA2O,cAAAl4E,QAAA,GAwNVg4C,EAtNI9jE,EAAaq1F,GAAGrxB,oBAuNpBhkE,EAAGikG,YAtNC,EAuNJjkG,EAAGyjG,QAAS,EAGhB,QAAS3/B,GAAgBE,GAErB,GAtNI/oE,IAuNA+rG,eAtNehjC,EAuNfxiD,SAtNO,EAwNXgG,GAtNWs8C,gBAAS7oE,GAAAwD,KAAA,SAAAC,GACZ,GAAA,MAAAA,EAAAlI,QA0EJ,GAzEOwJ,EAAA2jG,aAASjlG,EAAAhJ,KAuNRsK,EAAG2jG,aAAaO,QAAUr4E,WAAW7rB,EAAG2jG,aAAaO,SAASp4E,QAAQ,GArNvE9rB,EAAA2jG,aAAAQ,YAAAC,EAAApkG,EAAA2jG,aAAAO,SAwNClkG,EAAG2jG,aAAaa,WAAa34E,WAAW7rB,EAAG2jG,aAAaa,YAAY14E,QAAQ,GArNrF9rB,EAAU2jG,aAAKc,eAAAL,EAAApkG,EAAA2jG,aAAAa,YAwNNxkG,EAAG2jG,aAAapwC,WAAa1nC,WAAW7rB,EAAG2jG,aAAapwC,YAAYznC,QAAQ,GAC5E9rB,EAAG2jG,aAAaY,eAAiBH,EAAapkG,EAAG2jG,aAAapwC,YApNpEvzD,EAAA2jG,aAAYe,QAAA74E,WAAA7rB,EAAA2jG,aAAAe,SAAA54E,QAAA,GACf9rB,EAAA2jG,aAAAgB,YAAAP,EAAApkG,EAAA2jG,aAAAe,SAwNS1kG,EAAG2jG,aAAaiB,UAAY/4E,WAAW7rB,EAAG2jG,aAAaiB,WAAW94E,QAAQ,GArN9E9rB,EAAA2jG,aAAYkB,cAAAT,EAAApkG,EAAA2jG,aAAAiB,WAEjB5kG,EAAA2jG,aAAaI,UAAAl4E,WAAA7rB,EAAA2jG,aAAAI,WAAAj4E,QAAA,GAuNJ9rB,EAAG2jG,aAAamB,cAAgBV,EAAapkG,EAAG2jG,aAAaI,WAE7D/jG,EAAG2jG,aAAaoB,cAAgBl5E,WAAW7rB,EAAG2jG,aAAaoB,eAAej5E,QAAQ,GArN9F9rB,EAAA2jG,aAAAqB,kBAAAZ,EAAApkG,EAAA2jG,aAAAoB,eAwNY/kG,EAAG2jG,aAAasB,WAAap5E,WAAW7rB,EAAG2jG,aAAasB,YAAYn5E,QAAQ,GAC5E9rB,EAAG2jG,aAAauB,eAAiBd,EAAapkG,EAAG2jG,aAAasB,YArNtEjlG,EAAA2jG,aAAAwB,WAAAt5E,WAAA7rB,EAAA2jG,aAAAwB,YAAAr5E,QAAA,GACI9rB,EAAA2jG,aAAAyB,eAA6BhB,EAAApkG,EAAA2jG,aAAAwB,YAyNzBnlG,EAAG2jG,aAAa0B,WAAax5E,WAAW7rB,EAAG2jG,aAAa0B,YAAYv5E,QAAQ,GAtNvF9rB,EAAA2jG,aAA0B2B,eAAYlB,EAAiBpkG,EAAA2jG,aAAS0B,YAyNrDrlG,EAAG2jG,aAAa4B,UAAY15E,WAAW7rB,EAAG2jG,aAAa4B,WAAWz5E,QAAQ,GAC1E9rB,EAAG2jG,aAAa6B,cAAgBpB,EAAapkG,EAAG2jG,aAAa4B,WAE7DvlG,EAAG2jG,aAAalzE,gBAAkB5E,WAAW7rB,EAAG2jG,aAAalzE,iBAAiB3E,QAAQ,GACtF9rB,EAAG2jG,aAAa8B,oBAAsBrB,EAAapkG,EAAG2jG,aAAalzE,iBAEnEzwB,EAAG2jG,aAAa+B,SAAW75E,WAAW7rB,EAAG2jG,aAAa+B,UAAU55E,QAAQ,GACxE9rB,EAAG2jG,aAAagC,aAAevB,EAAapkG,EAAG2jG,aAAa+B,UArN5D1lG,EAAA2jG,aAAAiC,gBAAA/5E,WAAA7rB,EAAA2jG,aAAAiC,iBAAA95E,QAAA,GACD9rB,EAAA2jG,aAAAkC,oBAAAzB,EAAApkG,EAAA2jG,aAAAiC,iBAEC5lG,EAAA2jG,aAAAmC,gBAAAj6E,WAAA7rB,EAAA2jG,aAAAmC,iBAAAh6E,QAAA,GACD9rB,EAAA2jG,aAAAoC,oBAAA3B,EAAApkG,EAAA2jG,aAAAmC,iBAED9lG,EAAA2jG,aAAAqC,eAAAn6E,WAAA7rB,EAAA2jG,aAAAqC,gBAAAl6E,QAAA,GACX9rB,EAAe2jG,aAAAsC,mBAAA7B,EAAApkG,EAAA2jG,aAAAqC,gBAEfhmG,EAAgB2jG,aAAAuC,eAAAr6E,WAAA7rB,EAAA2jG,aAAAuC,gBAAAp6E,QAAA,GACX9rB,EAAA2jG,aAAAwC,mBAAA/B,EAAApkG,EAAA2jG,aAAAuC,gBAEQlmG,EAAA2jG,aAAAyC,aAAsBv6E,WAAA7rB,EAAuB2jG,aAAAyC,cAAgBt6E,QAAA,GAwN7D9rB,EAAG2jG,aAAa0C,iBAAmBjC,EAAapkG,EAAG2jG,aAAayC,cAEhEpmG,EAAG2jG,aAAa/wC,MAAS5yD,EAAG2jG,aAAasB,WAAajlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GAtNpG9rB,EAAA2jG,aAAA7wC,MAAA9yD,EAAA2jG,aAAAwB,WAAAnlG,EAAA2jG,aAAAoB,cAAA,KAAAj5E,QAAA,GACT9rB,EAAA2jG,aAAwB3wC,MAAAhzD,EAAA2jG,aAAc0B,WAAsBrlG,EAAI2jG,aAAOoB,cAAc,KAAAj5E,QAAqB,GACvG9rB,EAAA2jG,aAAcxmF,KAAAnd,EAAA2jG,aAAA4B,UAAsCvlG,EAAA2jG,aAAAoB,cAAA,KAAAj5E,QAAA,GAwN9C9rB,EAAG2jG,aAAasD,UAAYjnG,EAAG2jG,aAAayC,aAC5CpmG,EAAG2jG,aAAauD,cAAgB,EArNpClnG,EAAA2jG,aAAgB2C,cAAAtmG,EAAA2jG,aAAAI,UAAA/jG,EAAA2jG,aAAApwC,YAAAznC,QAAA,GAChB9rB,EAAA2jG,aAAQ2C,aAAAz6E,WAAA,IAAA7rB,EAAA2jG,aAAA,cAAA73E,QAAA,GAER9rB,EAAA2jG,aAAgB4C,aAAAvmG,EAAA2jG,aAAA+B,SAAA1lG,EAAA2jG,aAAAoB,eAAAj5E,QAAA,GAChB9rB,EAAA2jG,aAAQ4C,YAAA16E,WAAA,IAAA7rB,EAAA2jG,aAAA,aAAA73E,QAAA,GAER9rB,EAAA2jG,aAAgB6C,iBAAAxmG,EAAA2jG,aAAAiC,gBAAA5lG,EAAA2jG,aAAApwC,YAAAznC,QAAA,GAChB9rB,EAAA2jG,aAAQ6C,gBAAA36E,WAAA,IAAA7rB,EAAA2jG,aAAA,iBAAA73E,QAAA,GAGR9rB,EAAAsS,WAAQ,EAEZ,GAAAtS,EAAAq1F,GAAA1sE,OACI3oB,EAAAq1F,GAAAv0F,QAAgB,GAAA2Y,MAAAzZ,EAAA2jG,aAAA8C,UACRzmG,EAAAq1F,GAAAv0F,QAAA0a,QAAA,GAwNAxb,EAAGq1F,GAAGx0F,UAAY,GAAI4Y,MAAKzZ,EAAGq1F,GAAGv0F,SACjCd,EAAGq1F,GAAGx0F,UAAU2a,QAAQ,OAtNtB,IAAA,GAAAxb,EAAAq1F,GAAA1sE,OAAA,CACV,GAAA06E,GAAa,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACbpD,GAAW7nF,QAAA6nF,EAAArnF,UAAA,GACLhc,EAAAq1F,GAAAv0F,QAAAuiG,CAEN,IAAAA,GAAa,GAAA5pF,MAAAzZ,EAAAq1F,GAAAv0F,QACbuiG,GAAW7nF,QAAA6nF,EAAArnF,UAAA,GACLhc,EAAAq1F,GAAAx0F,UAAAwiG,MACP,IAAA,GAAArjG,EAAAq1F,GAAA1sE,OAAA,CACC,GAAA06E,GAAa,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACbpD,GAAW7nF,QAAA6nF,EAAArnF,UAAA,GACLhc,EAAAq1F,GAAAx0F,UAAAwiG,CAEV,IAAAA,GAAA,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACIpD,GAAA7nF,QAAa6nF,EAAArnF,UAAA,GACbhc,EAAWq1F,GAAAv0F,QAAAuiG,OAMZtrG,GAAA2I,YAAA,QAAA,yBAAA,QA0NH,SAvNIC,GAwNA5I,EAAW2I,YAAY,QAAS,mBAAoB,SAKhE,QAAS0jG,GAvNY/4F,GAwNjB,GAAIspF,GAvNY9oE,WAASxgB,GAAQygB,QAAA,GA2N7BhE,EAAI6sE,CACR7sE,GAAIA,EAAE3kB,UACN,IAAI0xF,GAAa,EACb/sE,GAAE1kB,QAAQ,KAAO,IACjByxF,EAAa/sE,EAAExE,UAAUwE,EAAE1kB,QAAQ,KAAM0kB,EAAE3sB,SAC/C2sB,EAAI7gB,KAAKC,MAAM4gB,GACfA,EAAIA,EAAE3kB,UACN,IAAI2xF,GAAYhtE,EAAExE,UAvNSwE,EAAA3sB,OAAW,GAwNlC45F,EAAejtE,EAAExE,UAvNM,EAAAwE,EAAA3sB,OAAc,EA4NzC,OAJoB,IAAhB45F,IACAD,EAAY,IAAMA,GACtBzpF,EAAQ0pF,EAAa94F,QAAQ,wBAAyB,KAAO64F,EAAYD,EA0M7E,QAASz7E,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KAtNZ9iB,EAAIb,EAAAa,IACR,OAAM,QAAAA,IAAA,IAAA8iB,EAAAC,UAAA,IAAAD,EAAAC,UAwRV,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAvNW,QAuNPA,EAGA,IAvNI,GAFAijB,GAAY,GAAIC,MAAKJ,GAAAK,SAAY,EAAA,EAAA,EAAA,GAE9Bxe,EAAG,EAAKA,EAAA8E,EAAQ2Z,OAAKxe,OAAUD,IAAA,CAClC,GAAG0e,GAAG,GAAYH,MAAQzZ,EAAA2Z,OAAQze,GAAAme,MAAOK,SAAA,EAAA,EAAA,EAAA,EAEzC,IAAGF,IAAGI,EACH,MAAG5Z,GAAA2Z,OAAAze,GAAA1E,OA2Nd,MAAO,GAllBX,GAAIwJ,GAAKC,IAUTD,GAAGgT,YAAa,EAChBhT,EAAG+S,WAtNQ,EAuNX/S,EAAGyjG,QAtNQ,EAuNXzjG,EAAGikG,YAtNQ,EAuNXjkG,EAAGsS,WAAY,EACftS,EAAGmnG,YAAa,EAChBnnG,EAAG0jG,SAAWA,EACd1jG,EAAGonG,cAtNM,EAuNTrvG,EAtNQ2c,SAAQ,EAuNhB1U,EAAGo6D,eAAgB,EACnBp6D,EAAGq1F,KACH,IAAIn1F,GAAa/F,EAAsBgG,uBArNvCgS,EAAShY,EAAcgG,uBAAAwU,gBAAAxC,SAwNvBD,KA4FAlS,EAAGqnG,KAAO,WACFrnG,EAAGmnG,WACHnnG,EAAGmnG,YAtNI,EAwNPnnG,EAAGmnG,YAAa,GAIxBnnG,EAAGwtB,WAtNY,WAwNX,GAAIxtB,EAAGktB,WAtNW/xB,OAAA,EAAU,CAuNxB6E,EAAGktB,WAtNW1yB,EAAQ83B,QAAQtyB,EAAAktB,WAAA,cAwN9B,KAAK,GAtNGnG,KAAM/mB,GAAAktB,WAuNVltB,EAAGktB,WAAWnG,GAAOvsB,EAAO83B,QAAQtyB,EAAGktB,WAAWnG,GAAM,cAE5D/mB,GAAG2mG,cAtNe3mG,EAAIktB,WAuNtBltB,EAAGyjG,QAtNS,EAuNZzjG,EAAGikG,YAtNW,EAuNdjkG,EAAGgT,YAAa,MAGhB3Y,GAtNQ8C,OAAM,UAAY,uBAAA9F,WAAA,EAAA+F,KAAA,QAwYlC4C,EAAGsnG,aAAe,WAEVz7E,WAvNI7rB,EAAA2jG,aAAuBsD,YAASp7E,WAAA7rB,EAAA2jG,aAAoByC,cAwNxDpmG,EAAG2jG,aAAauD,eAAiBr7E,WAAW7rB,EAAG2jG,aAAayC,cAAgBv6E,WAAW7rB,EAAG2jG,aAAasD,YAAYn7E,QAAQ,IArN3H9rB,EAAA2jG,aAAQsD,UAAgBjnG,EAAA2jG,aAAAyC,aAwNxBpmG,EAAG2jG,aAvNIuD,cAAsB,EAwN7B7sG,EAvNO8C,OAAA,UAAA,+BAAA0uB,WAAA7rB,EAAA2jG,aAAAsD,YAAA5vG,WAAA,EAAA+F,KAAA,SA4Nf4C,EAAG4mG,WAAa,WACZ5mG,EAAGsS,WAAY,EACftS,EAAG0mG,QAAS,CAtNb,IAAAzrG,IACK4rG,OAAG7mG,EAAAq1F,GAAArxB,mBACHkxB,YAAGl1F,EAAaq1F,GAAAH,YAwNhB59D,aAAct3B,EAAGq1F,GAAG/9D,aAtNpBiwE,kBAAgBvnG,EAAA2jG,aAAAsD,UAwNhBO,cAAexnG,EAAGq1F,GAAGoS,oBAAoBC,kBACzCnvE,KAAMv4B,EAAGq1F,GAAG5yE,MACZ7sB,OAAQ,EApNZ,IAA8B,UAA1BoK,EAAGq1F,GAAAoS,oBAAuBE,oBAAA,CAC1B,GAAGt1E,IAwNCu1E,SAAU5nG,EAAGq1F,GAAGuS,SAtNpBC,WAAgB7nG,EAAGq1F,GAAAwS,WACfC,UAAG9nG,EAAWq1F,GAAAyS,UAwNdC,SAAU/nG,EAAGq1F,GAAG0S,SArNpB9sG,GAAG+sG,cAASrrG,KAAAqkB,UAAAqR,OACT,IAAa,QAAbryB,EAAAq1F,GAAAoS,oBAAaE,qBAAA,QAAA3nG,EAAAq1F,GAAAoS,oBAAAE,oBAAA,CAChB,GAAGt1E,IAwNCu1E,SAAU5nG,EAAGq1F,GAAGuS,SAtNjBC,WAAA7nG,EAAAq1F,GAAAwS,WACHC,UAAe9nG,EAAAq1F,GAAAyS,UAyNf7sG,GAAI+sG,cAAgBrrG,KAAKqkB,UAAUqR,OArN3Cp3B,GAAS+sG,cAAc,IAGnBxgF,GAAQ69C,0BAAapqE,GAAAwD,KAAA,SAAAC,GACY,IAA7BA,EAAAhJ,KAAYuyG,UAAW,GAAGC,aAwNtBnwG,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKuyG,UAAU,GAAGp0F,QAAS,sBACjE7T,EAAGsS,WAAY,EACftS,EAAG0mG,QAAS,EAnNd1mG,EAAAonG,cAAe,EACjBpnG,EAAAmoG,OAAezpG,EAAAhJ,KAAU0yG,YAAU,GACnCpoG,EAAKq1F,GAAAgT,cAAMj0G,QAAA8e,KAAAlT,EAAAmoG,OAAAE,eACTroG,EAAAq1F,GAAAt8E,GAAA3kB,QAAA8e,KAAAlT,EAAAmoG,OAAApvF,IACF/Y,EAAAq1F,GAAAiT,UAAcl0G,QAAY8e,KAASlT,EAAAmoG,OAAApvF,IACnC/Y,EAAAq1F,GAAAptE,aAAiB7zB,QAAe8e,KAAAlT,EAASmoG,OAAAtlD,gBACzC7iD,EAAAq1F,GAAA4N,YAAgB7uG,QAAA8e,KAAAlT,EAAAmoG,OAAAlF,aAChBjjG,EAAAq1F,GAAAsS,oBAAkBvzG,QAAA8e,KAAAlT,EAAAmoG,OAAAR,qBAChB3nG,EAAAq1F,GAAAkT,cAAuBn0G,QAAA8e,KAAalT,EAAAmoG,OAAQI,eAwN1CvoG,EAAGq1F,GAAG2S,cAAgB5zG,QAAQ8e,KAAKlT,EAAGmoG,OAAOH,eAtN/ChoG,EAAAq1F,GAAAmT,YAAiBp0G,QAAA8e,KAAAlT,EAAAmoG,OAAAK,aACjBxoG,EAAAq1F,GAAO98D,KAAAnkC,QAAc8e,KAAGlT,EAAMmoG,OAAQ1lF,OACR,UAA9BziB,EAAOq1F,GAAAsS,qBACP3nG,EAAOyoG,UAAc9rG,KAAGC,MAAMoD,EAAAq1F,GAAQ2S,eAChChoG,EAAAq1F,GAAAuS,SAAiB5nG,EAAAyoG,UAAab,SAC9B5nG,EAAAq1F,GAAAwS,WAAiB7nG,EAAKyoG,UAAQZ,WACpC7nG,EAAAq1F,GAAYyS,UAAW9nG,EAAGyoG,UAAGX,UAC7B9nG,EAAAq1F,GAAA0S,SAAe/nG,EAAWyoG,UAAMV,UAwNU,QAA7B/nG,EAAGq1F,GAAGsS,qBAA8D,QAA7B3nG,EAAGq1F,GAAGsS,sBAtNhE3nG,EAAAyoG,UAAsB9rG,KAAAC,MAAAoD,EAAAq1F,GAAA2S,eACnBhoG,EAAAq1F,GAAauS,SAAA5nG,EAAAyoG,UAAAb,SACJ5nG,EAAAq1F,GAAAwS,WAAA7nG,EAAAyoG,UAAAZ,WAwNA7nG,EAAGq1F,GAAGyS,UAAY9nG,EAAGyoG,UAAUX,YAjNvC/vG,EAAU2I,YAAA,UAAA,gBAAA,uBAEd,SAAAC,GAwNI5I,EAvNQ2I,YAAe,kCA2N/BV,EAAGglE,WAAa,SAASqwB,GACrB,GAAIp6F,IACAytG,UAvNWrT,EAAAqT,UAwNXC,YAAa1uG,EAAQ,QAAQo7F,EAAGsT,YAAa,cAGnB,WAA1BtT,EAAGsS,qBAA6D,QAA1BtS,EAAGsS,oBACzC1sG,EAAI2tG,aAvNO5oG,EAAAq1F,GAAauT,aACA,QAuNjBvT,EAvNCsS,qBAA2D,QAA7BtS,EAAAsS,sBAwNtC1sG,EAAI4tG,cAAgB7oG,EAAGq1F,GAAGwT,cAG9B,IAAIC,IACAC,eAvNWpsG,KAAAqkB,UAAa/lB,GAwNxBi6F,YAvNWG,EAAAH,YAwNX8T,oBAAqB3T,EAAGt8E,GAG5ByO,GAAe89C,eAAewjC,GAASrqG,KAAK,SAASC,GAC7CA,EAvNIhJ,KAAGke,aAAa,GAwNpB7b,EAvNO2I,YAAa,UAAAhC,EAAiBhJ,KAAAme,QAAa,sBAwNlD7T,EAAGipG,eAAgB,GAMnBlxG,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,uBAEvD,SAvNSlT,GAwNR5I,EAAW2I,YAAY,kCAK/BV,EAAGulE,YAvNa,SAAG8vB,GAwNf,GAAIp6F,IACAiuG,UAvNWlpG,EAAAq1F,GAAAt8E,GAwNXm8E,YAvNWl1F,EAAAq1F,GAAAH,YAwNXjpD,YAAajsC,EAAGq1F,GAAGppD,YACnB3pB,YAvNWtiB,EAAAq1F,GAAA/yE,YAwNX4hC,QAvNQ,UAwNRpwB,SAAU5zB,EAAWi/C,UAGzB33B,GAAeg+C,mBAAmBvqE,GAAKwD,KAAK,SAASC,GACjD,GAvNW,MAuNPA,EAvNIlI,OAAgB,CAwNpB,GAvNIyf,GAAGnf,SAAAijB,cAAa,IAwNpBjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAvNK,eAwNP,IAvNIrc,GAAG,GAAAC,OAAaa,EAAAhJ,OAwNZqI,KAAM,oBArNVtJ,EAAGC,OAAAwlB,IAAaC,gBAAYvc,EAwNhCnD,GAvNO4E,KAAA5K,EAAA,UAwNPsD,EAvNO2I,YAAa,UAAW,iBAAa,mBAwN5CV,EAAGipG,eAvNI,EAyNP/2F,IACAlS,EAAGyjG,QAvNI,MAyNP1rG,GAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAEvD,SAvNSlT,GAwNR5I,EAAW2I,YAAY,kCAK/BV,EAAG+xB,KAAO,WACN/xB,EAAGyjG,QAAS,EACZzjG,EAAGonG,cAvNa,EAwNhBpnG,EAAGgT,YAvNa,EAwNhBhT,EAAGmnG,YAvNa,GA2NpBnnG,EAAG0R,OAAS,WACR1R,EAAGq1F,MACHr1F,EAAGonG,cAvNa,EAwNhBpnG,EAAGyjG,QAAS,EACZvxF,KAIJlS,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAvNQxB,EAwNRyB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MACbqB,YAAa,GAWjB9a,EAAG+a,UAvNK,WACJ/a,EAAAua,cAAeE,QAAAza,EAAAua,cAAAE,QAAA,KAAA,GAAAhB,MACfzZ,EAAA2a,YAAMF,QAAAza,EAAAua,cAAAE,SA0NVza,EAAG+a,YAEH/a,EAAGgb,MAvNC,WAwNAhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CAtNpB,IAAe4K,OA2NlBzZ,EAAGob,MAvNQ,WAwNPpb,EAAGqb,OAvNIxM,QAAA,GA0NX7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GApNvB7O,EAAGwb,QAAA,SAAaC,EAAWC,EAAAC,GACvB3b,EAAGsa,GAAA,GAAAb,MAAYgC,EAAAC,EAAAC,IA0NnB3b,EAAG4b,SAvNK,eAAc,aAAA,aAAA,YAAA,QAwNtB5b,EAAG6b,OAvNK7b,EAAA4b,QAAa,GAyNrB5b,EAAG8b,iBAvNK,cAyNR9b,EAAGib,QACCpM,QAvNI,GA0NR7O,EAAGmb,QACCtM,QAvNQ,GAyNZ7O,EAAGqb,QACCxM,QAvNQ,GA0NZ7O,EAAGub,QACC1M,QAvNO,EA2NX,IAAIkN,GAvNQ,GAAAtC,KAwNZsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAvNQ,GAAAxC,KAwNZwC,GAvNWT,QAAAO,EAAAC,UAAA,GAwNXhc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAvNI4C,EAwNJzlB,OAvNQ,wIAhXhBpC,QACKC,OAAO,uBACPe,WAtNW,4BAAuB0xG,MAgzB3C,WACI,YAOA,SAASqC,GAAcpxG,EAAYyC,EAAQP,EAASutB,EAAgBntB,EAASN,EAAOU,EAAST,EAAQG,GAwBjG,QAvNQ+X,KAwNJ,GAvNIlS,EAAAtK,KAAAm3B,UAAgB1xB,OAAK,EAAA,CACrB6E,EAAAtK,KAAAm3B,UAAgBryB,EAAA83B,QAAAtyB,EAAAtK,KAAAm3B,UAAA,cAyNhB,KAAK,GAAI9F,KAAO/mB,GAAGtK,KAAKm3B,UACpB7sB,EAAGtK,KAAKm3B,UAAU9F,GAAOvsB,EAAO83B,QAAQtyB,EAAGtK,KAAKm3B,UAAU9F,GAAM,cAGpE/mB,GAAG2mG,cAvNY3mG,EAAAtK,KAAYm3B,UAwN3B7sB,EAAGsS,WAvNI,MA0NPjY,GAAQ8C,OAAO,UAAW,0BAA4B9F,WAAW,EAAM+F,KAAM,OAC7EpD,EAAO8F,GAAG/H,EAAWyE,cAGzBwD,GAAGy1F,eAtNAC,aAAc,aAyNbA,aAAc,gBAnNnB11F,EAAAopG,kBACKC,UAAM,EACNC,YAAW,0BAGXD,UAAA,EACAC,YAAS,qBA0NTD,UAAW,EAtNfC,YAAe,wBAiPnB,QAvNO5F,GAAA5wF,GAEH9S,EAAGgT,YAAa,EAwNhBhT,EAAGq1F,GAAKjhG,QAAQ8e,KAAKJ,GACrB9S,EAAGq1F,GAAGH,YAAcl1F,EAAGq1F,GAAGH,YArN3Bl1F,EAAAq1F,GAAAT,qBAAoBwP,EAAApkG,EAAAq1F,GAAAT,sBAEnB50F,EAAGq1F,GAAAroE,SAAAhtB,EAAeq1F,GAAAroE,SAClBhtB,EAAGq1F,GAAAziC,KAAS/mC,WAAA7rB,EAAAq1F,GAAAziC,MAAA9mC,QAAA,GACZ9rB,EAAAq1F,GAAAviC,KAAAjnC,WAAA7rB,EAAAq1F,GAAAviC,MAAAhnC,QAAA,GAwNA9rB,EAAGq1F,GAAGriC,KAAOnnC,WAAW7rB,EAAGq1F,GAAGriC,MAAMlnC,QAAQ,GAC5C9rB,EAAGq1F,GAAGl4E,IAAM0O,WAAW7rB,EAAGq1F,GAAGl4E,KAAK2O,QAAQ,GAC1C9rB,EAAGq1F,GAAGyO,IAAMj4E,WAAW7rB,EAAGq1F,GAAGyO,KAAKh4E,QAAQ,GAtN3C9rB,EAAAq1F,GAAA0O,UAAmBl4E,WAAA7rB,EAAAq1F,GAAA0O,WAAAj4E,QAAA,GAClB9rB,EAAGq1F,GAAA2O,aAASn4E,WAAA7rB,EAAAq1F,GAAA2O,cAAAl4E,QAAA,GAwNZg4C,EAAgB9jE,EAAGq1F,GAAGrxB,oBAI1B,QAvNOixB,GAAKC,GAwNJA,EACA1tE,EAAeu+C,WAAWmvB,EAAa,EAAG,GAAGz2F,KAAK,SAAUC,GAtNjD,MAAhBA,EAAgBlI,OACfwJ,EAAam1F,SAAAz2F,EAAAhJ,KAEFqC,EAAA2I,YAAA,QAAA,yBAAA,eAyNJ,SAAUC,GAtNlB5I,EAAc2I,YAAA,QAAA,mBAAA,gBAIb6oG,oBA+NJ,QAvNIC,GAAO12F,GAyNP,GAAoB,GAAhBA,EAAI22F,SAtNTzpG,EAAAq1F,GAAAv0F,QAAY,GAAW2Y,MAAA3G,EAAA2zF,UACnBzmG,EAAAq1F,GAAAv0F,QAAc0a,QAAA,GACdxb,EAAAq1F,GAAAx0F,UAAY,GAAU4Y,MAAGzZ,EAAAq1F,GAAAv0F,SAwNxBd,EAAGq1F,GAAGx0F,UAAU2a,QAAQ,OArN7B,IAAA,GAAA1I,EAAA22F,SAAA,CAwNK,GAAIpG,GAAM,GAAI5pF,MAAK3G,EAAI2zF,SAtN5BpD,GAAQ7nF,QAAA6nF,EAAWrnF,UAAA,GACfhc,EAAAq1F,GAAOv0F,QAASuiG,CAyNf,IAAIA,GAAM,GAAI5pF,MAAKzZ,EAAGq1F,GAAGv0F,QAtN9BuiG,GAAQ7nF,QAAA6nF,EAAWrnF,UAAA,GACfhc,EAAAq1F,GAAOx0F,UAASwiG,MAyNd,IAAoB,GAAhBvwF,EAAI22F,SAAe,CACxB,GAAIpG,GAAM,GAAI5pF,MAAK3G,EAAI2zF,SACvBpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAtNjChc,EAAQq1F,GAAAv0F,QAAWuiG,CAyNd,IAAIA,GAAM,GAAI5pF,MAAK3G,EAAI2zF,SACvBpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAtNjChc,EAAQq1F,GAAAx0F,UAAWwiG,EAmOlB,GAAIrjG,EAAGq1F,GAAGqU,iBAAkB,CAtN7B,GAASzuG,IACAmkD,iBAAAp/C,EAAAq1F,GAAAppD,YAwNAiY,QAAS,GACT5hC,YAAatiB,EAAGq1F,GAAG/yE,YAtNnBgiC,UAAAtkD,EAAAq1F,GAAAqU,iBAAAhU,aACAiU,YAAA3pG,EAAAq1F,GAAAuU,gBAAA/T,YAwNA//F,UAAWkK,EAAGq1F,GAAGv/F,UAtNjB6yB,OAAA7V,EAAA6V,OACAkhF,YAAA,EAwNA/1E,SAAU5zB,EAAWi/C,UACrB9+C,OAAQH,EAAWG,OArN3BmnB,GAAQi+C,oBAAAxqE,GAAAwD,KAAA,SAAAC,GAwNA,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CAtNhB,IAAI2D,GAAAnf,SAAAijB,cAAA,IACVjjB,UAAQC,KAASijB,YAAY/D,GAClCA,EAAAgE,MAAoB,eACV,IAAArc,GAAQ,GAASC,OAAAa,EAAAhJ,OAClBqI,KAAA,oBAEDtJ,EAAAC,OAAAwlB,IAAAC,gBAAAvc,EAEFnD,GAAA4E,KAAA5K,EAAA,UACEsD,EAAA2I,YAAA,UAAA,eAAA,uBAyNI3I,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OAtNlF4C,EAAAsS,WAAkB,GAGnB,SAAS3R,GACL5I,EAAA2I,YAAsB,QAAM,iBAAkBrJ,WAAA,EAAA+F,KAAA,OAwN9C4C,EAAGsS,WAAY,QAMnBjY,GAAQ8C,OAAO,UAAW,qBAAuB9F,WAAW,EAAM+F,KAAM,OAKhF,QAASgnG,GAAa/4F,GAClB,GAAIspF,GAAY9oE,WAAWxgB,GAAOygB,QAAQ,GAItChE,EAAI6sE,CAvNhB7sE,GAAAA,EAAA3kB,UACK,IAAO0xF,GAAA,EACP/sE,GAAA1kB,QAAW,KAAA,IAyNJyxF,EAAa/sE,EAAExE,UAAUwE,EAAE1kB,QAAQ,KAAM0kB,EAAE3sB,SAC/C2sB,EAAI7gB,KAAKC,MAAM4gB,GAvNvBA,EAASA,EAAA3kB,UACD,IAAA2xF,GAAKhtE,EAAAxE,UAAAwE,EAAA3sB,OAAA,GAyND45F,EAAejtE,EAAExE,UAAU,EAAGwE,EAAE3sB,OAAS,EAnN9C,OAJqB,IAArB45F,IACAD,EAAc,IAAAA,GAyNb90F,EAAGq1F,GAAGT,qBAAuBG,EAAa94F,QAAQ,wBAAyB,KAAO64F,EAAYD,EAtN/F70F,EAAAq1F,GAAAT,qBAIH,QAAG9wB,GAAaE,GACb,GAAA/oE,IACA+rG,eAAYhjC,EACZxiD,SAAS,EAEZgG,GAAWs8C,gBAAU7oE,GAAAwD,KAAA,SAAAC,GACb,GAAA,MAAAA,EAAAlI,OAAA,CAoCA,GAnCLwJ,EAAY2jG,aAAAjlG,EAAAhJ,KAyNHsK,EAAG2jG,aAAaa,WAAa34E,WAAW7rB,EAAG2jG,aAAaa,YAAY14E,QAAQ,GAvN9E9rB,EAAA2jG,aAAcc,eAAAL,EAAApkG,EAAA2jG,aAAAa,YAExBxkG,EAAA2jG,aAAAe,QAAA74E,WAAA7rB,EAAA2jG,aAAAe,SAAA54E,QAAA,GAES9rB,EAAA2jG,aAAOiB,UAAA/4E,WAAA7rB,EAAA2jG,aAAAiB,WAAA94E,QAAA,GACL9rB,EAAA2jG,aAAeI,UAAYl4E,WAAA7rB,EAAA2jG,aAAAI,WAAAj4E,QAAA,GAC3B9rB,EAAA2jG,aAAiBoB,cAAel5E,WAAQ7rB,EAAA2jG,aAAWoB,eAAAj5E,QAAA,GAyNlD9rB,EAAG2jG,aAAasB,WAAap5E,WAAW7rB,EAAG2jG,aAAasB,YAAYn5E,QAAQ,GAvNhF9rB,EAAK2jG,aAAcwB,WAAKt5E,WAAW7rB,EAAA2jG,aAAAwB,YAAAr5E,QAAA,GAC/B9rB,EAAG2jG,aAAK0B,WAAiBx5E,WAAe7rB,EAAG2jG,aAAK0B,YAAgBv5E,QAAA,GAyNhE9rB,EAAG2jG,aAAa4B,UAAY15E,WAAW7rB,EAAG2jG,aAAa4B,WAAWz5E,QAAQ,GAC1E9rB,EAAG2jG,aAAalzE,gBAAkB5E,WAAW7rB,EAAG2jG,aAAalzE,iBAAiB3E,QAAQ,GAvNvF9rB,EAAA2jG,aAAgB+B,SAAQ75E,WAAA7rB,EAAA2jG,aAAA+B,UAAA55E,QAAA,GACxB9rB,EAAA2jG,aAAYiC,gBAAA/5E,WAAA7rB,EAAA2jG,aAAAiC,iBAAA95E,QAAA,GAyNX9rB,EAAG2jG,aAAamC,gBAAkBj6E,WAAW7rB,EAAG2jG,aAAamC,iBAAiBh6E,QAAQ,GAvNzF9rB,EAAA2jG,aAAAqC,eAAAn6E,WAAA7rB,EAAA2jG,aAAAqC,gBAAAl6E,QAAA,GACD9rB,EAAA2jG,aAAeuC,eAAWr6E,WAAA7rB,EAAA2jG,aAA4BuC,gBAAuBp6E,QAAA,GAC7E9rB,EAAO2jG,aAAGyC,aAAWv6E,WAAA7rB,EAAA2jG,aAAAyC,cAAAt6E,QAAA,GAyNjB9rB,EAAG2jG,aAAa/wC,MAAS5yD,EAAG2jG,aAAasB,WAAajlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GACpG9rB,EAAG2jG,aAAa7wC,MAAS9yD,EAAG2jG,aAAawB,WAAanlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GAvNzG9rB,EAAA2jG,aAAgB3wC,MAAAhzD,EAAA2jG,aAAA0B,WAAArlG,EAAA2jG,aAAAoB,cAAA,KAAAj5E,QAAA,GACf9rB,EAAA2jG,aAAcxmF,KAAAnd,EAAA2jG,aAAA4B,UAAAvlG,EAAA2jG,aAAAoB,cAAA,KAAAj5E,QAAA,GAEd9rB,EAAA2jG,aAAc2C,cAAAtmG,EAAA2jG,aAAAI,UAAA/jG,EAAA2jG,aAAAa,YAAA14E,QAAA,GAyNV9rB,EAAG2jG,aAAa2C,aAAez6E,WAA4C,IAAhC7rB,EAAG2jG,aAAa,cAAqB73E,QAAQ,GAExF9rB,EAAG2jG,aAAa4C,aAAevmG,EAAG2jG,aAAa+B,SAAW1lG,EAAG2jG,aAAaoB,eAAej5E,QAAQ,GAvNtG9rB,EAAA2jG,aAAmB4C,YAAA16E,WAAA,IAAA7rB,EAAA2jG,aAAA,aAAA73E,QAAA,GAElB9rB,EAAA2jG,aAAa6C,iBAAAxmG,EAAA2jG,aAAAiC,gBAAA5lG,EAAA2jG,aAAAiB,WAAA94E,QAAA,GAyNT9rB,EAAG2jG,aAAa6C,gBAAkB36E,WAA+C,IAAnC7rB,EAAG2jG,aAAa,iBAAwB73E,QAAQ,GAtNlG9rB,EAAAsS,WAAW,EACE,GAAbtS,EAAAq1F,GAAa1sE,OAyNL3oB,EAAGq1F,GAAGv0F,QAAU,GAAI2Y,MAAKzZ,EAAG2jG,aAAa8C,UAvNrDzmG,EAAAq1F,GAAAv0F,QAAA0a,QAAA,GACIxb,EAAWq1F,GAAAx0F,UAAA,GAAA4Y,MAAAzZ,EAAAq1F,GAAAv0F,SACXd,EAAAq1F,GAAax0F,UAAA2a,QAAA,OA0NJ,IAAoB,GAAhBxb,EAAGq1F,GAAG1sE,OAAa,CACxB,GAAI06E,GAAM,GAAI5pF,MAAKzZ,EAAG2jG,aAAa8C,SACnCpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAGv0F,QAAUuiG,CAEhB,IAAIA,GAAM,GAAI5pF,MAAKzZ,EAAGq1F,GAAGv0F,QACzBuiG,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAGx0F,UAAYwiG,MAEjB,IAAoB,GAAhBrjG,EAAGq1F,GAAG1sE,OAAa,CACxB,GAAI06E,GAAM,GAAI5pF,MAAKzZ,EAAG2jG,aAAa8C,SACnCpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAGx0F,UAAYwiG,CAtNlB,IAACA,GAAA,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACFpD,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACXhc,EAAaq1F,GAAAv0F,QAAAuiG,EAIbpO,EAAaj1F,EAAAq1F,GAAAH,iBA0NLn9F,GAAW2I,YAAY,QAAS,yBAA0B,QAG9D,SAAUC,GAvNX5I,EAAa2I,YAAA,QAAA,mBAAA,SA4NpB,QAxNO6iE,GAAG2xB,GAyNN1tE,EAAe+7C,eAAe2xB,GAAaz2F,KAAK,SAAUC,GAvNvD,GAAoB,MAAjBA,EAAAlI,OAAiB,CAEjBwJ,EAAA8pG,YAAkBprG,EAAGhJ,IACrB,KAAO,GAAAwF,KAAA8E,GAAW8pG,YACZ9pG,EAAA8pG,YAAc5uG,GAAGgpG,QAAKr4E,WAAQ7rB,EAAA8pG,YAAA5uG,GAAAgpG,SAAAp4E,QAAA,GAC9B9rB,EAAA8pG,YAAc5uG,GAAGspG,WAAa34E,WAAA7rB,EAAA8pG,YAAA5uG,GAAAspG,YAAA14E,QAAA,GACpC9rB,EAAA8pG,YAAY5uG,GAAWwpG,QAAM74E,WAAW7rB,EAAQ8pG,YAAA5uG,GAAAwpG,SAAA54E,QAAA,GAChD9rB,EAAA8pG,YAAe5uG,GAAA6oG,UAAiBl4E,WAAc7rB,EAAA8pG,YAAQ5uG,GAAA6oG,WAAAj4E,QAAA,GAC5D9rB,EAAA8pG,YAAsB5uG,GAAA+pG,WAAAp5E,WAAA7rB,EAAA8pG,YAAA5uG,GAAA+pG,YAAAn5E,QAAA,GAyNV9rB,EAAG8pG,YAAY5uG,GAAGiqG,WAAat5E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGiqG,YAAYr5E,QAAQ,GAChF9rB,EAAG8pG,YAAY5uG,GAAGmqG,WAAax5E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGmqG,YAAYv5E,QAAQ,GAChF9rB,EAAG8pG,YAAY5uG,GAAGwqG,SAAW75E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGwqG,UAAU55E,QAAQ,GAvNnF9rB,EAAA8pG,YAAmB5uG,GAAA0qG,gBAAa/5E,WAAA7rB,EAAA8pG,YAAA5uG,GAAA0qG,iBAAA95E,QAAA,GACjC9rB,EAAA8pG,YAAa5uG,GAAA4qG,gBAAAj6E,WAAA7rB,EAAA8pG,YAAA5uG,GAAA4qG,iBAAAh6E,QAAA,GACb9rB,EAAA8pG,YAAe5uG,GAAW8qG,eAAgBn6E,WAAQ7rB,EAAA8pG,YAAe5uG,GAAA8qG,gBAAAl6E,QAAA,GACzD9rB,EAAA8pG,YAAe5uG,GAAAgrG,eAAKr6E,WAAA7rB,EAAA8pG,YAAA5uG,GAAAgrG,gBAAAp6E,QAAA,EA0NxB9rB,GAAGsS,WAxNI,MA0NPva,GAAW2I,YAAY,QAAS,yBAA0B,QAG9D,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,mBAAoB,SAzUhE,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAvNCqU,gBAAA,GAyNfrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAvNkB,SAAAC,GAwNjBzU,EAAGuU,YAvNYE,GA0NnBzU,EAAGgT,YAAa,EAtNhBhT,EAAG+S,WAAA,EAwNH/S,EAAGsS,WAvNW,EAwNdtS,EAAG0mG,QAvNK,EAwNR1mG,EAAG0jG,SAvNKA,EAwNR3rG,EAAW2c,SAAU,EACrB1U,EAAGq1F,MACHr1F,EAAGwpG,UAvNQA,EAyNXxpG,EAAGtK,KAAOsE,EAvNKvE,OAAGC,IAwNlB,IAAIwK,GAvNQ/F,EAAsBgG,sBAwNlC+R,KAmDAlS,EAAG21F,aACCC,UAAW,wBACXC,YAvNY,IA0NZD,UAAW,mBACXC,YAAa,IA+PjB71F,EAAG+pG,eAAiB,WAChB/pG,EAAG8pG,eACHtiF,EAAeg8C,sBAAsBxjE,EAAGq1F,GAAGH,aAAaz2F,KAAK,SAAUC,GACnE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGgqG,YAActrG,EAAIhJ,IACrB,KAAK,GAAIwF,KAAK8E,GAAGopG,gBAvNVppG,EAAAopG,gBAAKluG,GAAAmuG,YAAArpG,EAAAgqG,YAAA,GAAAC,gBAyNJjqG,EAAGgqG,YAAY,GAAGV,YAActpG,EAAGopG,gBAAgBluG,GAAGouG,YApN/DtpG,GAAGsS,WAAY,MA0Ndva,GAAW2I,YAAY,QAAS,yBAA0B,QArN9D,SAAIC,GACD5I,EAAG2I,YAAU,QAAA,mBAAA,UA4NxBV,EAAG4mG,WAxNW;AAyNV,GAAI3rG,IACA4rG,OAxNK7mG,EAAIq1F,GAAArxB,mBACTkxB,YAAUl1F,EAAIq1F,GAAKH,YA0NvBl1F,GAAGsS,WAxNO,EAyNVtS,EAAG0mG,QAAS,EAEZl/E,EAxNQ09C,cAAYjqE,GAAYwD,KAAA,SAAAC,GACzBA,EAAGhJ,KAAAke,aAAY,GAyNd7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,cACpD7T,EAAGq1F,MACHr1F,EAAGsS,WAAY,EACftS,EAAG0mG,QAAS,EACZ1sG,EAAO8F,GAAG/H,EAAWyE,gBAErBzE,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eAEvD,SAAUlT,GACT5I,EAAW2I,YAAY,kCAI/BV,EAAGkqG,iBAxNS,WAyNRlqG,EAAGgqG,eACHhqG,EAAGmqG,aAxNK,EAyNRnqG,EAAGoqG,cAxNK,EAyNRpqG,EAAGqqG,cAxNK,EAyNRrqG,EAAGsqG,cAxNK,EAyNRtqG,EAAGuqG,YAxNa,EAyNhBvqG,EAAGwqG,mBAxNkB,EAyNrBxqG,EAAGyqG,mBAxNe,EAyNlBzqG,EAAG0qG,kBAxNa,EAyNhB1qG,EAAG2qG,kBAAmB,EACtBpnC,EAxNIvjE,EAAAq1F,GAAeH,cA2NvBl1F,EAAG4qG,WAxNa,WAyNZ5qG,EAAGgqG,eACHhqG,EAAGmqG,aAxNS,EAyNZnqG,EAAGoqG,cAxNW,EAyNdpqG,EAAGqqG,cAxNa,EAyNhBrqG,EAAGsqG,cAxNa,EAyNhBtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBAxNmB,EAyNtBxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBAxNiB,EAyNpB1qG,EAAG2qG,kBAxNS,EAyNZpnC,EAxNevjE,EAAAq1F,GAAAH,cA2NnBl1F,EAAG6qG,WAAa,WACZ7qG,EAAGgqG,eACHhqG,EAAGmqG,aAxNc,EAyNjBnqG,EAAGoqG,cAxNK,EAyNRpqG,EAAGqqG,cAxNQ,EAyNXrqG,EAAGsqG,cAAe,EAClBtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBAAoB,EACvBxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBAxNE,EAyNL1qG,EAAG2qG,kBAxNgB,EAyNnBpnC,EAAevjE,EAAGq1F,GAAGH,cAEzBl1F,EAAG8qG,eAAiB,WAChB9qG,EAAGgqG,eAvNPhqG,EAAAmqG,aAAS,EACLnqG,EAAAoqG,cAAgB,EAyNhBpqG,EAAGqqG,cAAe,EAClBrqG,EAAGsqG,cAAe,EAClBtqG,EAAGuqG,YAAa,EAvNhBvqG,EAAAwqG,mBAAQ,EACRxqG,EAAAyqG,mBAAM,EACNzqG,EAAA0qG,kBAAiB,EACjB1qG,EAAA2qG,kBAAqB,EAyNrBpnC,EAxNIvjE,EAAaq1F,GAAEH,cA2NvBl1F,EAAG+qG,gBAxNiB,WAChB/qG,EAAAgqG,eACAhqG,EAAAmqG,aAAI,EAyNJnqG,EAAGoqG,cAxNa,EAChBpqG,EAAGqqG,cAAG,EAyNNrqG,EAAGsqG,cAAe,EAvNlBtqG,EAAAuqG,YAAa,EAyNbvqG,EAAGwqG,mBAAoB,EACvBxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBAAmB,EAvN1B1qG,EAAA2qG,kBAAyB,EACrBpnC,EAAUvjE,EAAAq1F,GAAAH,cA2Ndl1F,EAAGgrG,cAAgB,WAvNfhrG,EAAAgqG,eAyNAhqG,EAAGmqG,aAxNS,EAyNZnqG,EAAGoqG,cAxNQ,EAyNXpqG,EAAGqqG,cAxNQ,EAyNXrqG,EAAGsqG,cAxNQ,EAyNXtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBAxNQ,EAyNXxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBAxNQ,EAyNX1qG,EAAG2qG,kBAxNQ,EAyNXpnC,EAxNWvjE,EAAAq1F,GAAAH,cA2Nfl1F,EAAG+xB,KAAO,WACN/xB,EAAG0R,UAGP1R,EAAG0R,OAxNS,WAyNR1R,EAAGq1F,MACHr1F,EAAGgT,YAxNQ,6HAhQnB5e,QACKC,OAAO,uBACPe,WAAW,gBAvNU+zG,MAirB9B,WACI,YAMA,SAAS8B,GAxNUlzG,EAAakC,EAAewQ,EAAGhQ,EAAaF,EAAWitB,EAAgBntB,EAAAG,EAAeg7B,EAAQxjB,EAAAJ,EAAAzX,GAsR7G,QAAS+X,KACDC,GACAH,EAxNeI,mBAAYD,GAAS1T,KAAA,SAAAC,GAyNb,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KAvN7B8/B,EAAey4D,aAAAxvF,KAAA,SAAAC,GACY,MAAZA,EAAAlI,SAyNCwJ,EAAGg3B,YAAct4B,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAtNpC,SAAiB3R,GACb5I,EAAc2I,YAAA,QAAA,mBAAA,oBAELV,EAAAsS,WAAW,IA0NhB,SAxNU3R,GAyNT5I,EAxNW2I,YAAA,QAAmB,mBAAiB,oBA+N3D,QAAS+gB,GAxNctP,GAyNfA,IACA+4F,IAvNAt5F,EAAe8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACA,MAAXA,EAAAlI,QAyNIwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACjBsK,EAAG2hB,YAAYxmB,OAAS,GACxBd,EAAQ8C,OAAO,UAAW,4CAA8C9F,WAAW,EAAM+F,KAAM,OAtNrG4C,EAAAsS,WAAA,GAENva,EAAmB2I,YAAA,QAAA,yBAAA,mBAEpB,SAAYC,GACZ5I,EAAS2I,YAAA,QAAA,mBAAA,qBAgOhB,QAAS8zF,GAxNwB1+F,GAyNzBA,GAEA0/B,EAAoBg4D,4BAA4B13F,GAAW2I,KAAK,SAAUC,GAvN5D,MAAfA,EAAUlI,QACT20G,IAyNQnrG,EAAGs0F,uBAAyB51F,EAAIhJ,KAC5BsK,EAAGs0F,uBAAuBn5F,OAAS,GACnCd,EAAQ8C,OAAO,UAAW,6CAA+C9F,WAAW,EAAM+F,KAAM,OAvNjH4C,EAAAsS,WAAmB,GAEfva,EAAc2I,YAAA,QAAA,yBAAA,mBAEd,SAAAC,GACA5I,EAAe2I,YAAA,QAAA,mBAAA,oBAStB,QAAG+zF,GAAyB3+F,EAAAomD,GACrBA,GAEA10B,EAAeq+C,wBAAA/vE,EAAAomD,GAAAz9C,KAAA,SAAAC,GACA,MAAfA,EAAAlI,QACA40G,IACAprG,EAAAqoD,eAAa3pD,EAAAhJ,KACbsK,EAAAqoD,eAAoBltD,OAAA,GACpBd,EAAoB8C,OAAA,UAAA,gDAAA9F,WAAA,EAAA+F,KAAA,OACpB4C,EAAAsS,WAAmB,GAEtBva,EAAqB2I,YAAA,QAAA,yBAAA,eA0Nd,SAAUC,GAvNlB5I,EAAa2I,YAAY,QAAA,mBAAA,gBAiO5B,QAxNOg0F,GAAmB5+F,EAAAwhC,GACnBA,GA0NC9P,EAAes+C,aAAahwE,EAAWwhC,GAAc74B,KAAK,SAAUC,GAvNxD,MAAjBA,EAAiBlI,QACb60G,IACArrG,EAAAu0F,cAAc71F,EAAAhJ,KACdsK,EAAeu0F,cAAAp5F,OAAA,GACfd,EAAe8C,OAAA,UAAA,kDAAA9F,WAAA,EAAA+F,KAAA,OACf4C,EAAAsS,WAAe,GAEfva,EAAoB2I,YAAA,QAAA,yBAAA,eAEpB,SAAAC,GACA5I,EAAA2I,YAAmB,QAAA,mBAAA,gBAgO1B,QAxNOu0F,GAAeC,GACfA,GACA1tE,EAAau+C,WAAAmvB,EAAA,GAAAz2F,KAAA,SAAAC,GACb,GAAoB,MAApBA,EAAAlI,OAAoB,CACpBwJ,EAAAm1F,SAAoBz2F,EAAAhJ,IACpB,KAAA,GAAAwF,KAAmB8E,GAAAm1F,SACnBn1F,EAAAm1F,SAAmBj6F,GAAAk6F,WAAAvpE,WAAA7rB,EAAAm1F,SAAAj6F,GAAAk6F,YAAAtpE,QAAA,EA0NN9rB,GAAGm1F,SAASh6F,OAAS,GACrBd,EAAQ8C,OAAO,UAAW,uBAAyB9F,WAAW,EAAM+F,KAAM,WApNvFrF,GAAe2I,YAAA,QAAA,yBAAA,eAEf,SAAAC,GACA5I,EAAa2I,YAAA,QAAA,mBAAA,gBA4dpB,QAzNOwqG,KA0NHlrG,EAzNGq0F,KAAIxyE,gBAAY,KA0NnB7hB,EAzNGq0F,KAAGtyC,2BAAe,KA0NrB/hD,EAzNGq0F,KAAGv4B,mBAAc,KA0NpB97D,EAAGq0F,KAAKiX,kBAAoB,KAC5BtrG,EAAGq1F,GAzNCuU,gBAAoB,KA0NxB5pG,EAAGq0F,KAAKkX,4BAA8B,KACtCvrG,EAzNGq1F,GAAAqU,iBAAmB,KA2N1B,QAzNOyB,KA0NHnrG,EAAGq0F,KAAKtyC,2BAA6B,KACrC/hD,EAzNGq0F,KAAIv4B,mBAAmB,KA0N1B97D,EAzNGq0F,KAAIiX,kBAAY,KA0NnBtrG,EAzNGq1F,GAAGuU,gBAAe,KA0NrB5pG,EAzNGq0F,KAAGkX,4BAAc,KA0NpBvrG,EAAGq1F,GAAGqU,iBAAmB,KAE7B,QAzNO0B,KA0NHprG,EAAGq0F,KAAKv4B,mBAAqB,KAC7B97D,EAzNGq0F,KAAIiX,kBAAW,KA0NlBtrG,EAAGq1F,GAAGuU,gBAzNiB,KA0NvB5pG,EAAGq0F,KAAKkX,4BAA8B,KACtCvrG,EAAGq1F,GAAGqU,iBAzNmB,KA2N7B,QAzNO2B,KA0NHrrG,EAzNGq0F,KAAAiX,kBAAA,KA0NHtrG,EAAGq1F,GAAGuU,gBAAkB,KACxB5pG,EAAGq0F,KAAKkX,4BAA8B,KACtCvrG,EAAGq1F,GAzNCqU,iBAAA,KA2NR,QAzNO8B,KA0NHxrG,EAAGq1F,GAAGuU,gBAzNiB,KA0NvB5pG,EAAGq0F,KAAKkX,4BAA8B,KACtCvrG,EAAGq1F,GAAGqU,iBAzNmB,KA4N7B,QAzNO+B,KA0NHzrG,EAzNGq0F,KAAAkX,4BAAA,KA0NHvrG,EAAGq1F,GAAGqU,iBAAmB,KAE7B,QAASgC,KACL1rG,EAAGq1F,GAAGqU,iBAAmB,KAE7B,QAASiC,KACL3rG,EAAGq1F,GAAGhuC,KAAO,KA9ejB,GAAIrnD,GAAKC,IAETD,GAAGqU,kBAxNYhJ,MAAa,IAAAA,MAAmB,KAAGA,MAAa,KAAAA,MAAkB,KAAGA,MAAa,MAyNjGrL,EAAGsU,SAxNStU,EAAGqU,gBAAa,GA0N5BrU,EAAGuU,YAxNY,EAyNfvU,EAAGwU,qBAxNmB,SAAaC,GAyN/BzU,EAAGuU,YAxNYE,GA2NnBzU,EAAGgT,YAxNa,EAyNhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,CACf,IAAIpS,GAxNY/F,EAAsBgG,uBAyNlCgS,EAxNYhY,EAAgBgG,uBAAYwU,gBAAAxC,SAyN5CnS,GAAGyhB,oBAxNmBA,EAyNtBzhB,EAAGw0F,4BAA8BA,EACjCx0F,EAAGy0F,yBAxN2BA,EAyN9Bz0F,EAAG00F,2BAxN6BA,EAyNhC10F,EAAGwrG,cAxNgBA,EAyNnBxrG,EAAGyrG,uBAAyBA,EAC5BzrG,EAAG0rG,oBAxNqBA,EAyNxB1rG,EAAG2rG,eAxNiBA,EAyNpB3rG,EAAGyrG,uBAxNyBA,EAyN5BzrG,EAAG0rG,oBAxNmBA,EA0NtB1rG,EAAGi1F,mBAxNiBA,EAyNpBj1F,EAAGq1F,MACHr1F,EAAGq0F,QACHt8F,EAAW2c,SAAU,EACrBxC,IAEAlS,EAAGu7C,eACCC,aAxNW,UAyNXnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAxNI,MA4NRroB,EAAGs1F,mBAvNHC,aAAS,wBACLC,YAAA,IA0NAD,aAxNQ,0BAyNRC,YAxNW,IA2Nfx1F,EAAG+yF,iBACCC,eAxNe,UAyNfC,aAxNY,MA0NZD,eAxNe,QAyNfC,aAxNY,MA2NZD,eAxNe,UAyNfC,aAxNY,MAqWhBjzF,EAAGy1F,eACCC,aAAc,WACdkW,eAAe,IAtNflW,aAAQ,cACRkW,eAAG,IA2NP5rG,EAAG21F,aAvNVC,UAAY,wBACTC,YAAA,IAEAD,UAAA,mBACKC,YAAO,IA8NL71F,EAAG6rG,YAAc,SAAS/4F,GAG1B,GA1NA9S,EAAAsS,WAAc,EA0NM,GAAhBQ,EAAI22F,SAxNRzpG,EAAAq1F,GAAAv0F,QAAc,GAAA2Y,MAAA3G,EAAA2zF,UACdzmG,EAAAq1F,GAAAv0F,QAAA0a,QAAuB,GACnBxb,EAAAq1F,GAAAx0F,UAAc,GAAA4Y,MAAAzZ,EAAAq1F,GAAAv0F,SA0Ndd,EAAGq1F,GAAGx0F,UAAU2a,QAAQ,GACxBxb,EAAGq1F,GAAGtoE,SAAW,cAvNrB,IAAY,GAAZja,EAAY22F,SAAA,CACZ,GAAApG,GAAY,GAAA5pF,MAAA3G,EAAA2zF,SACXpD,GAAA7nF,QAAa6nF,EAAArnF,UAAA,GACbhc,EAAAq1F,GAAAv0F,QAAYuiG,CAEb,IAAAA,GAAA,GAAA5pF,MAAAzZ,EAAAq1F,GAAAv0F,QACAuiG,GAAA7nF,QAAA6nF,EAAArnF,UAA2B,GAC3Bhc,EAAAq1F,GAAAx0F,UAAAwiG,EACArjG,EAAAq1F,GAAAtoE,SAAgB,aAEhB,IAAsB,GAAtBja,EAAA22F,SAAsB,CAEtB,GAAApG,GAAA,GAAA5pF,MAAA3G,EAAyB2zF,SACzBpD,GAAA7nF,QAAA6nF,EAAArnF,UAAsB,GA0NlBhc,EAAGq1F,GAAGv0F,QAAUuiG,CAvNpB,IAAKA,GAAA,GAAA5pF,MAAA3G,EAAA2zF,SACLpD,GAAO7nF,QAAA6nF,EAAArnF,UAAA,GACVhc,EAAAq1F,GAAWx0F,UAAUwiG,EACrBrjG,EAAAq1F,GAAAtoE,SAAA,QA4NG,GAzNe,SAAd/sB,EAAAq1F,GAAAtoE,SAED,GAAA03B,GAAA,qBAAAzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,eAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,4CAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,mBACenwF,EAAAg5F,WAAA,SA2NL7xG,EAAQ,QAAQ+F,EAAGq1F,GAAGx0F,UAAW,cAAgB,WAEnDkrG,EAAW,WAAa/rG,EAAGq1F,GAAGqU,iBAAiBhU,aAAe,8BAAgCz7F,EAAQ,QAAQ+F,EAAGq1F,GAAGx0F,UAAW,cAAgB,iBAAmBiS,EAAIg5F,WAAa,0BAA4B9rG,EAAGq0F,KAAKiX,kBAAkBrI,YAAc,gBAAkBjjG,EAAGq0F,KAAKv4B,mBAAmBjZ,eAAiB,4BAnN5T,IAAA4B,GAAY,qBAAAzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,eAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,4CAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,mBA0NWnwF,EAAIg5F,WAAa,oBAvNzC7xG,EAAkB,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,WACjB5G,EAAA,QAAgB+F,EAAAq1F,GAAAv0F,QAAA,cAAA,WAEjBirG,EAAA,WAAA/rG,EAAAq1F,GAAAqU,iBAAAhU,aAAA,gCAAAz7F,EAAA,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,WAAA5G,EAAA,QAAA+F,EAAAq1F,GAAAv0F,QAAA,cAAA,qBAAAgS,EAAAg5F,WAAA,sBAAA9rG,EAAAq0F,KAAAiX,kBAAArI,YAAA,gBAAAjjG,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,uBASH,IAAA7iD,EAASq1F,GAAAqU,iBAAO,CACZ,GAAIzuG,IACAmkD,iBAAep/C,EAAAq0F,KAAAlhF,gBAA8B84B,YA0N1CwY,SAzNSA,EA0NTsnD,SAzNQA,EA0NRzpF,YAzNKtiB,EAAAq0F,KAAAxyE,gBAAoBS,YA0NzBgiC,UAzNStkD,EAAIq1F,GAAIqU,iBAAgBhU,aA0NjCiU,YAzNa3pG,EAAGq1F,GAAAuU,gBAAkB/T,YA0NlC//F,UAAWkK,EAzNEq0F,KAAGxyE,gBAAY/rB,UA0N5B6yB,OAAQ7V,EAAI6V,OACZkhF,YAzNQ,EA0NR/1E,SAzNS5zB,EAAWi/C,UA0NpB9+C,OAAQH,EAAWG,OAGvBmnB,GAzNci+C,oBAAKxqE,GAAAwD,KAAA,SAAAC,GA0Nf,GAzNY,MAAXA,EAAAlI,OAAuB,CA0NpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CAxNrB,IAAArX,IA0NUuF,QAASN,EAAWM,QACpBk/C,KAAM1/C,EAAG8Z,cACT6lC,WAAU,GAvNVvgD,EAAA7E,EAAA8E,MACXhI,WAAA,EACAiI,eAAuB,cACfC,gBAAoB,aACjBrK,YAAA,8DACHE,WAAO,kBA0NJC,aAzNS,KA0NT+H,KAAM,KAxNNoC,SAAA,SACAC,UAAA,EACHyQ,SA0NO3N,MAAO,WAxNJ,MAAAtH,MA8NXmE,GAAcM,OAAOjB,KAAK,SAAUC,KAEjC,kBAvNT3G,GAAA2I,YAA4B,QAAA,kBAAWrJ,WAAA,EAAA+F,KAAA,OACxC4C,EAAAsS,WAAW,GA4NT,SAzNU3R,GA0NT5I,EAzNK2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OA0NL4C,EAAGsS,WAzNK,QA8NZjY,GAAQ8C,OAzNC,UAAW,qBAAqB9F,WAAA,EAAA+F,KAA0B,QAgO1E4C,EAAGi2F,WAAa,SAAUnjF,GAItB,GAFA9S,EAAGsS,WAAY,EAEK,GAAhBQ,EAAI22F,SAxNZzpG,EAASq1F,GAAAv0F,QAAA,GAAA2Y,MAAA3G,EAAyB2zF,UAC1BzmG,EAAAq1F,GAAAv0F,QAAY0a,QAAA,GA0NZxb,EAAGq1F,GAAGx0F,UAAY,GAAI4Y,MAAKzZ,EAAGq1F,GAAGv0F,SAxNjCd,EAAAq1F,GAAAx0F,UAAe2a,QAAA,GA0Nfxb,EAAGq1F,GAzNCtoE,SAAQ,cA2NX,IAzNU,GAyNNja,EAzNG22F,SAAG,CA0NX,GAAIpG,GAzNI,GAAI5pF,MAAG3G,EAAA2zF,SA0NfpD,GAAI7nF,QAzNQ6nF,EAAArnF,UAAe,GA0N3Bhc,EAAGq1F,GAAGv0F,QAzNKuiG,CA2NX,IAAIA,GAzNI,GAAA5pF,MAAWzZ,EAAAq1F,GAAAv0F,QA0NnBuiG,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAzNGq1F,GAAAx0F,UAAewiG,EA0NlBrjG,EAAGq1F,GAzNCtoE,SAAW,aA2Nd,IAAoB,GAAhBja,EAAI22F,SAAe,CAExB,GAAIpG,GAAM,GAAI5pF,MAAK3G,EAAI2zF,SACvBpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAGv0F,QAAUuiG,CAEhB,IAAIA,GAAM,GAAI5pF,MAAK3G,EAAI2zF,SAxN/BpD,GAAS7nF,QAAA6nF,EAAArnF,UAA2B,GAC5Bhc,EAAAq1F,GAAAx0F,UAAcwiG,EA0NdrjG,EAAGq1F,GAAGtoE,SAAW,QAGrB,GAzNY,SAyNR/sB,EAAGq1F,GAAGtoE,SAEN,GAAI03B,GAzNW,qBAAuBzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,eAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,4CAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,mBAClBnwF,EAAAg5F,WAAO,SA2NrB7xG,EAzNK,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,WA2NPkrG,EAAW,WAAa/rG,EAAGq1F,GAAGqU,iBAAiBhU,aAAe,8BAAgCz7F,EAAQ,QAAQ+F,EAAGq1F,GAAGx0F,UAAW,cAAgB,iBAAmBiS,EAAIg5F,WAAa,0BAA4B9rG,EAAGq0F,KAAKiX,kBAAkBrI,YAAc,gBAAkBjjG,EAAGq0F,KAAKv4B,mBAAmBjZ,eAAiB,4BAMzT,IAAI4B,GAAW,qBAA4BzkD,EAAGq0F,KAAKtyC,2BAA2BlG,aAAe,eAAsB77C,EAAGq0F,KAAKv4B,mBAAmBjZ,eAAiB,4CAAwD7iD,EAAGq0F,KAAKiX,kBAAkBrI,YAAc,mBAC3OnwF,EAAIg5F,WAAa,oBAE/B7xG,EAAQ,QAAQ+F,EAAGq1F,GAAGx0F,UAAW,cAAgB,WAxNtD5G,EAAA,QAAmB+F,EAAAq1F,GAAAv0F,QAAa,cAAA,WAEjCirG,EAAe,WAAW/rG,EAAAq1F,GAAAqU,iBAAqBhU,aAAe,gCAAAz7F,EAAA,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,WAAA5G,EAAA,QAAA+F,EAAAq1F,GAAAv0F,QAAA,cAAA,qBAAAgS,EAAAg5F,WAAA,sBAAA9rG,EAAAq0F,KAAAiX,kBAAArI,YAAA,gBAAAjjG,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,uBAkOlE,IAAI7iD,EAAGq1F,GAAGqU,iBAAkB,CACxB,GAAIzuG,IACAmkD,iBAzNep/C,EAAAq0F,KAAAlhF,gBAAqB84B,YA0NpCwY,SAAUA,EAxNXsnD,SAAUA,EACTzpF,YAAWtiB,EAAAq0F,KAAAxyE,gBAAqBS,YA0NhCgiC,UAAWtkD,EAAGq1F,GAAGqU,iBAAiBhU,aAClCiU,YAAa3pG,EAAGq1F,GAAGuU,gBAAgB/T,YAxNtC//F,UAAAkK,EAAAq0F,KAAAxyE,gBAAA/rB,UA0NG6yB,OAAQ7V,EAAI6V,OACZkhF,YAAa,EACb/1E,SAAU5zB,EAAWi/C,UACrB9+C,OAAQH,EAAWG,OAtN3BmnB,GAAci+C,oBAAAxqE,GAAAwD,KAAA,SAAAC,GACd,GAAe,MAAfA,EAAelI,OAAA,CAChBwJ,EAAA8Z,cAAApb,EAAAhJ,KACCsK,EAAcsS,WAAA,CACd,IAAe2D,GAAAnf,SAAAijB,cAAA,IA0NHjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eAxNV,IAACrc,GAAA,GAAAC,OAAAa,EAAAhJ,OACFqI,KAAA,oBA2NKtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAvNtCnD,GAAA4E,KAAA5K,EAAA,UACXsD,EAAa2I,YAAA,UAAA,eAAA,uBA2ND3I,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OAC3E4C,EAAGsS,WAAY,GAtN3B,SAAA3R,GACE5I,EAAY2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OACP4C,EAAAsS,WAAe,QAKnBjY,GAAM8C,OAAA,UAAW,qBAAA9F,WAAA,EAAA+F,KAAA,sMAvO5BhJ,QACKC,OAAO,uBACPe,WAxNW,oBAAgB61G,MA+sBpC,WACI,YAOA,SAASe,GAAmBvhG,EAAQxQ,EAASF,EAAOhC,EAAYy9B,EAAqBhO,EAAgBhtB,EAAQH,EAASL,EAClHG,GAqBA,QAAS+X,KACLsV,EAAek8C,mCAzNevxD,GAAA1T,KAAA,SAAAC,GA0N1B,GAAmB,MAAfA,EAAIlI,OAEJ,GAAIkI,EAAIhJ,KAAKyF,OAAS,EAAG,CACrBuD,EAAIhJ,KAAO8E,EAAO83B,QAAQ5zB,EAAIhJ,KAAM,cAEpC,KAAK,GAAIqxB,KAAOroB,GAAIhJ,KAxNlBgJ,EAAAhJ,KAAAqxB,GAAYvsB,EAAA83B,QAAA5zB,EAAAhJ,KAAAqxB,GAAA,cAGf/mB,GAAG8/F,yBAAYphG,EAAAhJ,KA0NdsK,EAAGsS,WAAY,MAtNpBtS,GAAA8/F,yBAAgCphG,EAAAhJ,SA4N/BqC,GAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAzNCC,GACD5I,EAAQ2I,YAAO,QAAW,mBAAuB,cA2NpDV,EAAGkoB,cACCC,YAAa,cACbC,UAAW,EACXC,KAAM,MAvNXF,YAAa,sBA0NRC,UAAW,EAxNZC,KAAA,OAECF,YAAI,uBACJC,UAAM,EACNC,KAAM,OAGNF,YAAM,iCA0NNC,UAAW,EACXC,KAzNK,OAELF,YAAY,6CACZC,UAAM,EA0NNC,KAAM,OAvNNF,YAAY,mBACZC,UAAM,EACNC,KAAM,OA4NVroB,EAAGyoB,iBAxNCC,eAAc,SACdC,OAAI,IA2NJD,eAAgB,UAxNhBC,OAAI,IAEJD,eAAM,WACNC,OAAM,IA2NND,eAAgB,qBAxNhBC,OAAM,IA4NND,eAzNI,QA0NJC,OAAQ,IAEZ3oB,EAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAC/GkP,aAzNM,iCAA8BlP,GAAA,IA2NtC/Y,EAAGisG,iBAAoBC,GAAI,IAAOA,GAAI,IAAOA,GAAI,IAAOA,GAAI,IAAOA,GAAI,IA1F3E,GAAIlsG,GAzNGC,IA2NPD,GAAGqU,kBAzNehJ,MAAA,IAAoBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0NtCrL,EAAGsU,SAAWtU,EAzNCqU,gBAAe,GA2N9BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAzNsB,SAAGC,GA0NxBzU,EAAGuU,YAzNYE,GA4NnBzU,EAAG8/F,4BACH9/F,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAzNQ,EA0NnB1U,EAAG6iG,kBAzNgB,EA0NnB7iG,EAAGq1F,KACH,IAAIljF,GAAYhY,EAzNagG,uBAAAwU,gBAAAxC,SA0N7BD,KA4EAlS,EAAG+iG,OAzNS,SAAAjwF,GA0NR9S,EAAG6iG,kBAzNK,EA0NR7iG,EAAGq1F,GAAKjhG,QAAQ8e,KAAKJ,GACrB9S,EAAGq1F,GAAG9lC,MAzNIn7D,QAAQ8e,KAAQJ,EAAGy8C,OA0N7BvvD,EAAGq1F,GAAG2N,SAzNU5uG,QAAQ8e,KAAMJ,EAAAkwF,UA0N9BhjG,EAAGq1F,GAAG4N,YAAc7uG,QAAQ8e,KAAKJ,EAAImwF,aACrCjjG,EAAGq1F,GAzNCtoE,SAAI34B,QAAW8e,KAAAJ,EAAaia,UA0NhC/sB,EAAGq1F,GAzNCxyC,eAAAzuD,QAAA8e,KAAAJ,EAAA+vC,gBA0NJ7iD,EAAGq1F,GAAGH,YAAc9gG,QAAQ8e,KAAKJ,EAAIoiF,aACrCl1F,EAAGq1F,GAAGv/F,UAAY1B,QAAQ8e,KAAKJ,EAAIhd,WACnCkK,EAAGq1F,GAAG8W,mBAAqB/3G,QAAQ8e,KAAKJ,EAAIq5F,mBAC5C,IAAIvX,GAAuBxgG,QAAQ8e,KAAKJ,EAAI8hF,qBAC5C50F,GAAGq1F,GAAGT,qBAAuB/oE,WAAW+oE,GAAsB9oE,QAAQ,GACtE9rB,EAAGq1F,GAAG+W,aAA4C,GAA7BpsG,EAAGq1F,GAAGT,sBAA6B9oE,QAAQ,GAChE9rB,EAAGq1F,GAAGgX,YAAc,IAGpBrsG,EAAGq1F,GAAGiX,UAzNE,CA2NR,KAAK,GAzNGpxG,KAAA8E,GAAAkoB,YACAloB,EAAAkoB,YAAahtB,GAAGmtB,MAAKvV,EAAAka,WACrBhtB,EAAAq1F,GAAA6N,SAAiBljG,EAAAkoB,YAAAhtB,GAAiBitB,YA6N1C,KAAK,GAzNGjtB,KAAA8E,GAAAgoB,mBACAhoB,EAAAgoB,mBAAqB9sB,GAAA6d,IAAAjG,EAAAga,iBACrB9sB,EAAAq1F,GAAAvoE,eAAmB9sB,EAAAgoB,mBAAA9sB,GAAA+sB,aAyC3B,IArCgB,KAyNZnV,EAzNIka,SA0NJhtB,EAAGusG,YAzNQxzF,GAAA,EAAgByzF,MAAI,WA2N3BzzF,GAzNI,EA0NJyzF,MAzNI,aAGU,MAyNb15F,EAAIka,SACThtB,EAAGusG,YAAexzF,GAAM,EAAGyzF,MAAS,WAClCzzF,GAAM,EAAGyzF,MAzNO,aA0NhBzzF,GAAM,EAAGyzF,MAAS,aAvND,MAyNd15F,EAzNGka,SA0NRhtB,EAAGusG,YAzNQxzF,GAAA,EAAAyzF,MAAA,WA0NTzzF,GAzNM,EAAAyzF,MAAW,cA0NjBzzF,GAzNM,EAAGyzF,MAAA,aAGO,MAAf15F,EAAAka,SA0NHhtB,EAAGusG,YAzNYxzF,GAAA,EAAYyzF,MAAS,WA0NlCzzF,GAzNK,EAAAyzF,MAAY,aA0NjBzzF,GAAM,EAAGyzF,MAAS,cAClBzzF,GAAM,EAAGyzF,MAAS,aAvNnB,MAAA15F,EAAAka,SACDhtB,EAAAusG,YAAexzF,GAAA,EAAWyzF,MAAA,WA0NxBzzF,GAAM,EAAGyzF,MAAS,aAClBzzF,GAAM,EAAGyzF,MAAS,cAClBzzF,GAAM,EAAGyzF,MAAS,eAClBzzF,GAAM,EAAGyzF,MAAS,aAtN5BxsG,EAASusG,YAAAC,MAAqB,qBACvBA,MAAK,aAIF,GAAH15F,EAAG6V,OAAA,CACH,GAAKtP,GAAA,GAAAI,MACFgzF,EAAA,GAAAhzF,MAAmBJ,EAAA66B,cAAA76B,EAAA83B,WAAA,GA0NjBu7D,EAAU,GAAIjzF,MAAKJ,EAAK66B,cAAe76B,EAAK83B,WAAa,EAAG,EAxNxEnxC,GAASq1F,GAAAx0F,UAAA4rG,EACFzsG,EAAAq1F,GAAKv0F,QAAA4rG,MAEL,IAAK,GAAA1sG,EAAAq1F,GAAA1sE,OAAoB,CACzB,GAAGk+B,IAAA,GAAAptC,OAAAuC,WAAkB,GAAA,GAAAvC,OAAAH,SAAA,GAAA,EAChBqzF,EAAA,GAAAlzF,KACLkzF,GAAGnxF,QAAAqrC,GA0NF7mD,EAAGq1F,GAAGx0F,UAAY8rG,CAtNnB,IAAKtJ,GAAArjG,EAAAq1F,GAAAx0F,UAAoBmb,UAAA,EACtBvV,EAAA,GAAAgT,KACHhT,GAAA+U,QAAK6nF,GACLrjG,EAAGq1F,GAAAv0F,QAAA2F,IA+NVzG,EAAGsnG,aAzNO,SAAAjS,GA0NN,GAAIxpE,WAAWwpE,EAAGuX,iBAAmB/gF,WAAW7rB,EAAGq1F,GAAG+W,cAAgBvgF,WAAWwpE,EAAGuX,iBAAmB/gF,WAAW7rB,EAAGq1F,GAAGgX,aAAc,CAxN1I,GAASO,GAAgBvX,EAAAuX,cAClB5sG,GAAGq1F,GAAAuX,eAAkB/gF,WAAA+gF,GAAA9gF,QAAA,GACrB9rB,EAAAq1F,GAAKwX,eAAA7sG,EAAAq1F,GAAA+W,YAA8BpsG,EAAAq1F,GAAAuX,mBA4NlCvyG,GAAQ8C,OAAO,UAAW,oCAAsC0uB,WAAW7rB,EAAGq1F,GAAGgX,aAAe,OAASxgF,WAAW7rB,EAAGq1F,GAAG+W,cAAgB/0G,WAAW,EAAM+F,KAAM,OAxNzK4C,EAASq1F,GAAAuX,eAAA,KACF5sG,EAAAq1F,GAAKyX,gBAAA,KACL9sG,EAAGq1F,GAAA5yE,MAAA,KA0NFziB,EAAGq1F,GAAGwX,eAAiB,KAxN/B7sG,EAASq1F,GAAA0X,mBAAsB,KACxB/sG,EAAGq1F,GAAAiX,UAAA,GA6NVtsG,EAAGgtG,aAAe,WACVhtG,EAAGq1F,GAAG0X,mBACN/sG,EAAGq1F,GAAGiX,WAAatsG,EAAGq1F,GAAGuX,eAAiB5sG,EAAGq1F,GAAG0X,mBAAmBb,IAAIpgF,QAAQ,GAE/E9rB,EAAGq1F,GAAGiX,UAAY,GAI1BtsG,EAAGitG,eAAiB,SAAU5X,GAzNlC,GAAAp6F,IACYi6F,YAAAG,EAAAH,YACPgY,cAAW7X,EAAAuX,eA2NJC,eAAgBhhF,WAAW7rB,EAAGq1F,GAAGwX,gBAAgB/gF,QAAQ,GACzDghF,gBAAiBzX,EAAG0X,mBAAmBb,GAzN1C3zE,KAAA88D,EAAA5yE,MACL7sB,OAAA,EACIu3G,UAAKntG,EAAAq1F,GAAA+X,cAAAr0F,GA2NDs0F,YAAa,EAGjB7lF,GAAeu9C,kBAAkB9pE,GAAKwD,KAAK,SAAUC,GAzNtDA,EAAAhJ,KAAcke,aAAA,GACd7b,EAAA2I,YAAuB,UAAehC,EAAAhJ,KAAAme,QAAA,mBAClC7T,EAAA+xB,OA2NK7f,IACAlS,EAAG6iG,kBAAmB,GAvN/B9qG,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,oBAEf,SAAWlT,GACR5I,EAAA2I,YAAmB,kCA8NtBV,EAAG+xB,KAAO,WAzNV7f,IACIlS,EAAA6iG,kBAAe,EA2Nf7iG,EAAGq1F,sJAvPXjhG,QACKC,OAAO,uBACPe,WAzNU,qBAAa42G,MAodhC,WACI,YAOA,SAASsB,GAAmB7iG,EAAQhQ,EAASR,EAASsiB,EAAwBxiB,EAAOQ,EAAWxC,EAAYy9B,EAAqBhO,EAAgBhtB,EAAQH,EAASL,EAC9JG,GA0BA,QA1NQ+X,KA2NJsV,EA1NGm8C,qBAAAxxD,GAAA1T,KAAA,SAAAC,GACC,GAAa,MAAbA,EAAAlI,OAEA,GAAMkI,EAAAhJ,KAAAyF,OAAA,EAAA,CA2NEuD,EAAIhJ,KAAO8E,EAAO83B,QAAQ5zB,EAAIhJ,KAAM,cAxN7C,KAAA,GAAkBqxB,KAAAroB,GAAAhJ,KACjBgJ,EAAgBhJ,KAAAqxB,GAAAvsB,EAAA83B,QAAA5zB,EAAAhJ,KAAAqxB,GAAA,cAGhB/mB,GAAA8/F,yBAAgBphG,EAAAhJ,KACRsK,EAAAsS,WAAA,MAERtS,GAAA8/F,yBAAgBphG,EAAAhJ,SAGhBqC,GAAA2I,YAAgB,QAAA,yBAAA,aA4NjB,SAASC,GAzNZ5I,EAAA2I,YAAA,QAAA,mBAAA,cA4NAV,EAAGkoB,cACKC,YAAa,cAzNlBC,UAAA,EACDC,KAAA,MAECF,YAAkB,sBA2NbC,UAAW,EACXC,KAAM,OAxNNF,YAAU,uBACfC,UAAA,EACKC,KAAA,OAGFF,YAAc,iCACdC,UAAW,EACXC,KAAA,OAEAF,YAAY,6CACZC,UAAA,EACFC,KAAA,OAEEF,YAAe,mBACfC,UAAA,EA2NEC,KAAM,OAGdroB,EAAGyoB,iBAzNEC,eAAY,SACTC,OAAG,IA4NHD,eAAgB,UAChBC,OAAQ,IAxNXD,eAAY,WACTC,OAAG,IA4NHD,eAAgB,qBAChBC,OAAQ,IAvNTD,eAAe,QAClBC,OAAA,IA6NJ3oB,EAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAC3GkP,aAAc,iCAAkClP,GAAI,IAI1DyO,EA1Nem9C,qBAASlmE,KAAA,SAAAC,GA2ND,MAAfA,EAAIlI,OAzNPwJ,EAAI+mG,gBAAgBroG,EAAMhJ,KAEzBqC,EAAS2I,YAAS,QAAA,yBAAA,aA4NrB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAuO5D,QA3NQ8b,GAAWioE,GA6Nf,GAAIrlF,GAAgB7E,EAAU8E,MA1N3BhI,WAAK,EACLiI,eAAc,cACdC,gBAAW,aACXrK,YAAc,0CACdE,WAAG,uBACHC,aAAc,KACd+H,KAAG,KAEHqC,UAAG,EACHyQ,SACG3N,MAAA,WACA,MAASkiF,MAIfrlF,GAAMM,OAAAjB,KAAgB,aAEnB,cA2RP,QAAS2a,GA3NG1jB,GA4NR,GAAI2jB,GA3NI3jB,EAAA2jB,KA4NJ9iB,EA3NIb,EAAAa,IA4NR,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAiE1D,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KA1NZ9iB,EAAAb,EAAUa,IA4Nd,IA3NI,QAAAA,EA8NA,IAAK,GA7NLijB,GAAgB,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GA6NPxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAzN/D,IAAIF,IAAKI,EACT,MAAW5Z,GAAA2Z,OAAAze,GAAY1E,OA+N/B,MAAO,GArfX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBA1NmBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2NtBrL,EAAGsU,SA1NKtU,EAAAqU,gBAAuB,GA4N/BrU,EAAGuU,YA1NI,EA2NPvU,EAAGwU,qBA1NkB,SAAAC,GACbzU,EAAAuU,YAAWE,GA6NnBzU,EAAGgT,YA1NK,EA2NRhT,EAAG+S,WA1NK,EA2NR/S,EAAGsS,WA1NW,EA2Ndva,EA1NO2c,SAAA,EA2NP1U,EAAG6iG,kBA1NkB,EA2NrB7iG,EAAGonG,cA1NK,EA2NRpnG,EAAGipG,eA1NW,EA4NdjpG,EAAGwc,cA1NCA,EA2NJxc,EAAG+c,yBACH/c,EAAGq1F,KACH,IAAIljF,GA1NUhY,EAAAgG,uBAAAwU,gBAAAxC,UA2NVjS,EA1NG/F,EAAAgG,sBA2NP+R,KAsFAlS,EAAG+iG,OA1NO,SAASjwF,GA2Nf9S,EAAG6iG,kBAAmB,EACtBr7E,EA1Nao8C,iBAAkB9wD,EAAAoiF,aAAAz2F,KAAA,SAAAC,GACT,MAAfA,EAAAlI,SACDwJ,EAAAutG,oBAAkB7uG,EAAAhJ,KAAAw3G,gBA4NrB,SA1NSvsG,GACR5I,EAAW2I,YAAS,QAAA,mBAAA,cA6NxBV,EAAGq1F,GA1NIjhG,QAAA8e,KAAaJ,GA2NpB9S,EAAGq1F,GA1NGmY,SAASp5G,QAAA8e,KAAAJ,EAAA06F,UA2NfxtG,EAAGq1F,GAAG9lC,MAAQn7D,QAAQ8e,KAAKJ,EAAIy8C,OAC/BvvD,EAAGq1F,GAAG2N,SAAW5uG,QAAQ8e,KAAKJ,EAAIkwF,UAzNlChjG,EAAAq1F,GAAA4N,YAAA7uG,QAAA8e,KAAAJ,EAAAmwF,aACAjjG,EAAAq1F,GAAItoE,SAAI34B,QAAa8e,KAAAJ,EAAAia,UA2NrB/sB,EAAGq1F,GA1NCxyC,eAAezuD,QAAA8e,KAAAJ,EAAA+vC,gBA2NnB7iD,EAAGq1F,GA1NCH,YAAe9gG,QAAS8e,KAAKJ,EAAAoiF,aA2NjCl1F,EAAGq1F,GA1NCv/F,UAAc1B,QAAI8e,KAAKJ,EAAKhd,WA2NhCkK,EAAGq1F,GA1NC8W,mBAAkB/3G,QAAA8e,KAAAJ,EAAAq5F,oBA2NtBnsG,EAAGq1F,GA1NC8X,UAAM/4G,QAAU8e,KAAAJ,EAAAq6F,WA2NpBntG,EAAGq1F,GAAGoY,OAASr5G,QAAQ8e,KAAKJ,EAAI26F,OAChC,IAAI7Y,GA1NqBxgG,QAAG8e,KAAAJ,EAAA8hF,qBA2N5B50F,GAAGq1F,GA1NCT,qBAAmB/oE,WAAiB+oE,GAAsB9oE,QAAK,GA2NnE9rB,EAAGq1F,GA1NC6O,QAAS9vG,QAAI8e,KAAAJ,EAAAoxF,SA2NjBlkG,EAAGq1F,GA1NC6R,cAAWr7E,WAAA7rB,EAAAq1F,GAAAT,qBAAA50F,EAAAq1F,GAAA6O,SAAAp4E,QAAA,GA2Nf9rB,EAAGq1F,GA1NCiX,UAAM,EA2NVtsG,EAAGq1F,GAAGuX,eAAiB5sG,EAAGq1F,GAAGoY,OAC7BztG,EAAGq1F,GAAGqY,WAAa7hF,WAAW7rB,EAAGq1F,GAAGoY,OAASztG,EAAGq1F,GAAGuX,gBAAgB9gF,QAAQ,GAC3E9rB,EAAGq1F,GA1NCsY,SAAav5G,QAAG8e,KAAUJ,EAAA66F,SA2N9B,KA1NI,GAAIzyG,KAAI8E,GAAIkoB,YACVloB,EAAAkoB,YAAQhtB,GAAAmtB,MAAAvV,EAAAka,WACPhtB,EAAGq1F,GAAA6N,SAAUljG,EAAAkoB,YAAAhtB,GAAAitB,YA8NpB,KAAK,GAAIjtB,KAAK8E,GAAGgoB,mBACThoB,EAAGgoB,mBAAmB9sB,GAAG6d,IAAMjG,EAAIga,iBAzN5C9sB,EAAAq1F,GAAevoE,eAAc9sB,EAAAgoB,mBAAA9sB,GAAA+sB,aA+N5B,IAAkB,GAAdnV,EAAI6V,OAAa,CACjB,GA1NCtP,GAAA,GAAAI,MACDgzF,EAAe,GAAAhzF,MAAAJ,EAAW66B,cAAA76B,EAAA83B,WAAA,GACvBu7D,EAAG,GAAAjzF,MAAiBJ,EAAA66B,cAAA76B,EAAA83B,WAAA,EAAA,EACvBnxC,GAAGq1F,GAAGx0F,UAAA4rG,EACNzsG,EAAGq1F,GAAGv0F,QAAQ4rG,IA8NtB1sG,EAAGsnG,aAAe,SAASjS,GACvB,GAAIxpE,WAAWwpE,EAAGuX,iBAAmB/gF,WAAW7rB,EAAGq1F,GAAGoY,SAAW5hF,WAAWwpE,EAAGuX,gBAAkB,EAAG,CAChG,GAAIA,GAAiBvX,EAAGuX,cAzN7B5sG,GAAAq1F,GAAAuX,eAA2B/gF,WAAA+gF,GAAA9gF,QAAA,GACtB9rB,EAAGq1F,GAAGqY,WAAA7hF,WAAA7rB,EAAAq1F,GAAAoY,OAAAztG,EAAAq1F,GAAAuX,gBAAA9gF,QAAA,OA4NNzxB,GAAQ8C,OAAO,UAAW,+BAAiC0uB,WAAW7rB,EAAGq1F,GAAGoY,SAAWp2G,WAAW,EAAM+F,KAAM,OAzN9G4C,EAAGq1F,GAAGuX,eAAY,KA2NlB5sG,EAAGq1F,GAAG5yE,MAAQ,KACdziB,EAAGq1F,GAAGqY,WAAa,MAK3B1tG,EAAGgtG,aA1NK,WACAhtG,EAAAq1F,GAAA0X,mBACA/sG,EAAAq1F,GAAAiX,WAAiBtsG,EAAGq1F,GAAAuX,eAAmB5sG,EAAAq1F,GAAA0X,mBAAAb,IAAApgF,QAAA,GAEvC9rB,EAAAq1F,GAAAiX,UAAQ,GA8NhBtsG,EAAGitG,eAAiB,SAAS5X,GAzNzB,GAAAp6F,IACIuyG,SAAQxtG,EAAKq1F,GAAAmY,SA2NbtY,YA1NIG,EAAWH,YA2NfgY,cA1NO7X,EAAAuX,eA2NPC,eA1NI7sG,EAAAq1F,GAAAqY,WA2NJZ,gBA1NO9sG,EAAAq1F,GAAAsY,SA2NPp1E,KAAM88D,EAAG5yE,MACT7sB,OA1NO,EA2NPu3G,UA1NIntG,EAAAq1F,GAAW8X,UA2NfE,YAAa,EAzNd9E,cAAevoG,EAAAq1F,GAAAoS,oBAAAC,kBA6NlB,IAAqD,UAAjD1nG,EAAGq1F,GAAGoS,oBAAoBE,oBAAiC,CAC3D,GAAIt1E,IAzNFu1E,SAAY5nG,EAAAq1F,GAAAuS,SAClBC,WAAA7nG,EAAAq1F,GAAAwS,WACGC,UAAA9nG,EAAmBq1F,GAAAyS,UACdC,SAAA/nG,EAAAq1F,GAAA0S,SA4NJ9sG,GAAI+sG,cAAgBrrG,KAAKqkB,UAAUqR,OAChC,IAAqD,QAAjDryB,EAAGq1F,GAAGoS,oBAAoBE,qBAAkF,QAAjD3nG,EAAGq1F,GAAGoS,oBAAoBE,oBAA+B,CAC3H,GAAIt1E,IACAu1E,SAAU5nG,EAAGq1F,GAAGuS,SAzNxBC,WAAA7nG,EAAAq1F,GAAAwS,WACRC,UAAA9nG,EAAAq1F,GAAAyS,UA4NY7sG,GAAI+sG,cAAgBrrG,KAAKqkB,UAAUqR,OAzNnCp3B,GAAA+sG,cAAA,IAIZxgF,GAASy9C,mBAA2BhqE,GAASwD,KAAA,SAASC,GAC3B,IAAvBA,EAAAhJ,KAAAuyG,UAAuB,GAAAC,aACdnwG,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAuyG,UAAA,GAAAp0F,QAAA,iBA+NG7T,EAAGonG,cAAe,EA1N3BpnG,EAAAmoG,OAAczpG,EAAAhJ,KAAAk4G,UAAA,GACd5tG,EAAAq1F,GAAAiT,UAAuBl0G,QAAS8e,KAAKlT,EAAAmoG,OAAAG,WAC7BtoG,EAAAq1F,GAAA6T,UAAc90G,QAAA8e,KAAAlT,EAAAmoG,OAAAe,WA4NblpG,EAAGq1F,GAAGptE,aAAe7zB,QAAQ8e,KAAKlT,EAAGmoG,OAAOtlD,gBAC5C7iD,EAAGq1F,GAAG4N,YAAc7uG,QAAQ8e,KAAKlT,EAAGmoG,OAAOlF,aA1NpDjjG,EAAAq1F,GAAasS,oBAAAvzG,QAAA8e,KAAAlT,EAAAmoG,OAAAR,qBACb3nG,EAAYq1F,GAAAkT,cAAAn0G,QAAA8e,KAAAlT,EAAAmoG,OAAAI,eACZvoG,EAAYq1F,GAAA2S,cAAA5zG,QAAA8e,KAAAlT,EAAAmoG,OAAAH,eACJhoG,EAAAq1F,GAAA6O,QAAU9vG,QAAA8e,KAAAlT,EAAAmoG,OAAAjE,SAClBlkG,EAAAq1F,GAAA98D,KAAmBnkC,QAAA8e,KAAAlT,EAAAmoG,OAAA5vE,MACnBv4B,EAAAq1F,GAAeppD,YAAA73C,QAAA8e,KAAAlT,EAAAmoG,OAAAl8D,aACC,UAAhBjsC,EAAgBq1F,GAAAsS,qBA4NH3nG,EAAGyoG,UAAY9rG,KAAKC,MAAMoD,EAAGq1F,GAAG2S,eA1N7ChoG,EAAgBq1F,GAAAuS,SAAA5nG,EAAAyoG,UAAAb,SAChB5nG,EAAAq1F,GAAAwS,WAAwB7nG,EAAAyoG,UAAAZ,WACnB7nG,EAAAq1F,GAAAyS,UAAA9nG,EAAAyoG,UAAAX,UACQ9nG,EAAAq1F,GAAA0S,SAAA/nG,EAAAyoG,UAAsBV,UACC,QAAtB/nG,EAAAq1F,GAAAsS,qBAAsB,QAAA3nG,EAAAq1F,GAAAsS,sBACvC3nG,EAAAyoG,UAAA9rG,KAAAC,MAAAoD,EAAAq1F,GAAA2S,eA4NgBhoG,EAAGq1F,GAAGuS,SAAW5nG,EAAGyoG,UAAUb,SA1N9B5nG,EAAAq1F,GAAAwS,WAAA7nG,EAAAyoG,UAAAZ,WACZ7nG,EAAeq1F,GAAAyS,UAAA9nG,EAAAyoG,UAAqBX,YAgO5B/vG,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAEvD,SAASlT,GACR5I,EAAW2I,YAAY,kCAK/BV,EAAGglE,WA3Na,SAAGqwB,GA4Nf,GAAIp6F,IACAytG,UA3NOrT,EAAAqT,UA4NPC,YA3NI1uG,EAAW,QAAYo7F,EAAAsT,YAAS,cAGb,WAAvBtT,EAAAsS,qBAAoD,QAApBtS,EAAAsS,oBA4NhC1sG,EAAI2tG,aAAe5oG,EAAGq1F,GAAGuT,aA1NX,QAAfvT,EAAAsS,qBAAe,QAAAtS,EAAAsS,sBA4Nd1sG,EA3NI4tG,cAAa7oG,EAAAq1F,GAAAwT,cA8NrB,IAAIC,IACAC,eA3NIpsG,KAAaqkB,UAAA/lB,GA4NjBi6F,YA3NIG,EAAWH,YA4NfgU,UA3NU7T,EAAA6T,UA8Nd1hF,GA3NQw9C,WAAW8jC,GAAArqG,KAAA,SAAAC,GACXA,EAAAhJ,KAAMke,aAAA,GA4NN7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBA1NxD7T,EAAAipG,eAAA,GAMIlxG,EAAW2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,oBA6NhB,SA3NIlT,GA4NH5I,EA3NI2I,YAAa,kCAgOzBV,EAAGulE,YA3NI,SAAkB8vB,GA4NrB,GAAIp6F,IACAiuG,UA3NIlpG,EAAQq1F,GAAA6T,UA4NZhU,YA3NGl1F,EAAAq1F,GAAAH,YA4NHjpD,YA3NIjsC,EAAAq1F,GAAAppD,YA4NJ3pB,YA3NYtiB,EAAAq1F,GAAA/yE,YA4NZ4hC,QA3NG,UA4NHpwB,SA3NI5zB,EAAgBi/C,UA8NxB33B,GA3NQ+9C,YAAgBtqE,GAAAwD,KAAA,SAAAC,GA4NpB,GA3NY,MAARA,EAAAlI,OAAQ,CA4NR,GAAIyf,GAAInf,SAASijB,cAAc,IA1NnCjjB,UAAAC,KAAAijB,YAAA/D,GACIA,EAAAgE,MAAA,eACA,IAAArc,GAAQ,GAAAC,OAAAa,EAAAhJ,OA4NAqI,KAAM,oBAzNnBtJ,EAAAC,OAAsBwlB,IAAEC,gBAAcvc,EACnCnD,GAAA4E,KAAc5K,EAAA,UA4NZsD,EAAW2I,YAAY,UAAW,iBAAkB,mBACpDV,EAAGipG,eAAgB,EACnBjpG,EAAG+xB,OA1NX7f,IACQlS,EAAA6iG,kBAAoB,EACpB7iG,EAAGonG,cAAA,MAEHrvG,GAAW2I,YAAY,QAAShC,EAAAhJ,KAAAme,QAAA,oBAErC,SAASlT,GACR5I,EAAW2I,YAAY,kCAK/BV,EAAG+xB,KAAA,WACC7f,IACAlS,EAAA6iG,kBAAe,EA4Nf7iG,EAAGq1F,OAgEPr1F,EAAGqa,MA3NQ,WA4NPra,EAAGsa,GA3NI,GAAGb,OA6NdzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YA3NIjB,EA4NJkB,QA3NI,GAAAhB,MA4NJiB,WA3NI,GA8NR1a,EAAG2a,aACCC,aA3NIxB,EA4NJyB,QA3NI,GAAApB,MAAa,KAAA,EAAA,IA4NjBgB,QA3NI,GAAAhB,MA4NJqB,YAAa,GAWjB9a,EAAG+a,UA3NS,WA4NR/a,EAAGua,cA3NKE,QAAgBza,EAAAua,cAAAE,QAAA,KAAA,GAAAhB,MA4NxBzZ,EAAG2a,YA3NKF,QAAeza,EAAGua,cAAAE,SA8N9Bza,EAAG+a,YAEH/a,EAAGgb,MA3NK,WA4NJhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MA3NC,WA4NAlb,EAAGmb,OA3NKtM,QAAS,CACT,IAAA4K,OA+NZzZ,EAAGob,MAAQ,WACPpb,EAAGqb,OA3NKxM,QAAG,GA8Nf7O,EAAGsb,MAAQ,WACPtb,EAAGub,OA3NK1M,QAAM,GA8NlB7O,EAAGwb,QA3NS,SAAMC,EAAAC,EAAgBC,GA4N9B3b,EAAGsa,GA3NK,GAAGb,MAAGgC,EAAAC,EAAUC,IA8N5B3b,EAAG4b,SA3NS,eAAU,aAAA,aAAiC,YAAA,QA4NvD5b,EAAG6b,OAAS7b,EAAG4b,QA3NI,GA6NnB5b,EAAG8b,iBA3NmB,cA6NtB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QA3NG,EA+NP,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAASC,UAAY,EA1NtC,IAAGC,GAAa,GAAAxC,KA4NhBwC,GA3NcT,QAAAO,EAAAC,UAAA,GA4Ndhc,EAAG2Z,SACCN,KA3NI0C,EA4NJvlB,OAAQ,SAzNR6iB,KAAI4C,EA4NJzlB,OA3NQ,4MAhRhBpC,QACKC,OAAO,uBACPe,WAAW,qBAAsBk4G,MAwhB1C,WACI,YAOA,SAASO,GA3NO91G,EAAWyC,EAAYgtB,EAAantB,EAAKN,EAASC,GA2P9D,QAASkY,KA1NL,GAAAlS,EAAAtK,KAAAw3B,WAAqB/xB,OAAK,EAAA,CA4NtB6E,EAAGtK,KAAKw3B,WAAa1yB,EAAO83B,QAAQtyB,EAAGtK,KAAKw3B,WAAY,cAExD,KAAK,GAAInG,KAAO/mB,GAAGtK,KAAKw3B,WACpBltB,EAAGtK,KAAKw3B,WAAWnG,GAAOvsB,EAAO83B,QAAQtyB,EAAGtK,KAAKw3B,WAAWnG,GAAM,cAGtE/mB,GAAG2mG,cAAgB3mG,EAAGtK,KAAKw3B,WAC3BltB,EAAGsS,WAAY,MAGfjY,GAAQ8C,OAAO,UAAW,uBAAyB9F,WAAW,EAAM+F,KAAM,OAC1EpD,EAAO8F,GAAG/H,EAAWyE,eAgB7B,QAAS+mE,GAAe2xB,GACpB1tE,EAAe+7C,eAAe2xB,GAAaz2F,KAAK,SAAUC,GACtD,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpBwJ,EAAG8pG,YAAcprG,EAAIhJ,IACrB,KAAK,GAAIwF,KAAK8E,GAAG8pG,YACb9pG,EAAG8pG,YAAY5uG,GAAGmpG,uBAAyBx4E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGmpG,wBAAwBv4E,QAAQ,GACxG9rB,EAAG8pG,YAAY5uG,GAAGgpG,QAAUr4E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGgpG,SAASp4E,QAAQ,GAC1E9rB,EAAG8pG,YAAY5uG,GAAGipG,YAAcC,EAAapkG,EAAG8pG,YAAY5uG,GAAGgpG,SAE/DlkG,EAAG8pG,YAAY5uG,GAAGspG,WAAa34E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGspG,YAAY14E,QAAQ,GAChF9rB,EAAG8pG,YAAY5uG,GAAGupG,eAAiBL,EAAapkG,EAAG8pG,YAAY5uG,GAAGspG,YAElExkG,EAAG8pG,YAAY5uG,GAAGwpG,QAAU74E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGwpG,SAAS54E,QAAQ,GA1N/E9rB,EAAA8pG,YAAW5uG,GAAAypG,YAAAP,EAAApkG,EAAA8pG,YAAA5uG,GAAAwpG,SA6NN1kG,EAAG8pG,YAAY5uG,GAAG6oG,UAAYl4E,WAAW7rB,EAAG8pG,YAAY5uG,GAAG6oG,WAAWj4E,QAAQ,GA1N3F9rB,EAAA8pG,YAAA5uG,GAAA4pG,cAAAV,EAAApkG,EAAA8pG,YAAA5uG,GAAA6oG,WAEQ/jG,EAAA8pG,YAAW5uG,GAAA+pG,WAAAp5E,WAAA7rB,EAAA8pG,YAAA5uG,GAAA+pG,YAAAn5E,QAAA,GACV9rB,EAAA8pG,YAAA5uG,GAAAgqG,eAAAd,EAAApkG,EAAA8pG,YAAA5uG,GAAA+pG,YA6NIjlG,EAAG8pG,YAAY5uG,GAAGiqG,WAAat5E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGiqG,YAAYr5E,QAAQ,GA1N7F9rB,EAAgB8pG,YAAA5uG,GAAAkqG,eAAAhB,EAAApkG,EAAA8pG,YAAA5uG,GAAAiqG,YAENnlG,EAAI8pG,YAAA5uG,GAAAmqG,WAAAx5E,WAAA7rB,EAAA8pG,YAAA5uG,GAAAmqG,YAAAv5E,QAAA,GACF9rB,EAAA8pG,YAAA5uG,GAAAoqG,eAAAlB,EAAApkG,EAAA8pG,YAAA5uG,GAAAmqG,YA6NCrlG,EAAG8pG,YAAY5uG,GAAGwqG,SAAW75E,WAAW7rB,EAAG8pG,YAAY5uG,GAAGwqG,UAAU55E,QAAQ,GA1NzF9rB,EAAc8pG,YAAA5uG,GAAA4yG,aAAA1J,EAAApkG,EAAA8pG,YAAA5uG,GAAAwqG,UAEJ1lG,EAAI8pG,YAAc5uG,GAAA0qG,gBAAA/5E,WAAA7rB,EAAA8pG,YAAA5uG,GAAA0qG,iBAAA95E,QAAA,GAClB9rB,EAAI8pG,YAAA5uG,GAAA2qG,oBAAAzB,EAAApkG,EAAA8pG,YAAA5uG,GAAA0qG,iBA6ND5lG,EAAG8pG,YAAY5uG,GAAG4qG,gBAAkBj6E,WAAW7rB,EAAG8pG,YAAY5uG,GAAG4qG,iBAAiBh6E,QAAQ,GAC1F9rB,EAAG8pG,YAAY5uG,GAAG6qG,oBAAsB3B,EAAapkG,EAAG8pG,YAAY5uG,GAAG4qG,iBAEvE9lG,EAAG8pG,YAAY5uG,GAAG8qG,eAAiBn6E,WAAW7rB,EAAG8pG,YAAY5uG,GAAG8qG,gBAAgBl6E,QAAQ,GA1N/F9rB,EAAS8pG,YAAM5uG,GAAA+qG,mBAAA7B,EAAApkG,EAAA8pG,YAAA5uG,GAAA8qG,gBAEThmG,EAAA8pG,YAAK5uG,GAAAgrG,eAAAr6E,WAAA7rB,EAAA8pG,YAAA5uG,GAAAgrG,gBAAAp6E,QAAA,EA6NR9rB,GAAGsS,WAAY,MAzNxBva,GAAY2I,YAAW,QAAA,yBAAA,QA8NlB,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,mBAAoB,SAKhE,QAASgjG,GAAS5wF,GACd9S,EAAGgT,YAAa,EA1NjBhT,EAAAq1F,GAAQjhG,QAAA8e,KAAWJ,EAClB,IAAG6hF,GAAO9oE,WAAS7rB,EAAAq1F,GAAAT,sBAAA9oE,QAAA,GA+NfhE,EAAI6sE,CA1NT7sE,GAAAA,EAAA3kB,UACC,IAAG0xF,GAAO,EA4NN/sE,GAAE1kB,QAAQ,KAAO,IACjByxF,EAAa/sE,EAAExE,UAAUwE,EAAE1kB,QAAQ,KAAM0kB,EAAE3sB,SA1NhD2sB,EAAA7gB,KAAQC,MAAA4gB,GACPA,EAAGA,EAAA3kB,UA4NH,IAAI2xF,GAAYhtE,EAAExE,UAAUwE,EAAE3sB,OAAS,GACnC45F,EAAejtE,EAAExE,UAAU,EAAGwE,EAAE3sB,OAAS,EA1N3B,KAAnB45F,IACID,EAAS,IAAKA,GA4NjB90F,EAAGq1F,GAAGT,qBAAuBG,EAAa94F,QAAQ,wBAAyB,KAAO64F,EAAYD,EAzN/F70F,EAAAq1F,GAAAroE,SAAWhtB,EAAAq1F,GAAAroE,SACXhtB,EAAAq1F,GAAAziC,KAAY/mC,WAAQ7rB,EAAAq1F,GAAAziC,MAAA9mC,QAAA,GA4NnB9rB,EAAGq1F,GAAGviC,KAAOjnC,WAAW7rB,EAAGq1F,GAAGviC,MAAMhnC,QAAQ,GA1N7C9rB,EAAAq1F,GAAAriC,KAAAnnC,WAAmB7rB,EAAAq1F,GAAAriC,MAAAlnC,QAAA,GA4NlB9rB,EAAGq1F,GAAGl4E,IAAM0O,WAAW7rB,EAAGq1F,GAAGl4E,KAAK2O,QAAQ,GA1N3C9rB,EAAAq1F,GAAAyO,IAASj4E,WAAA7rB,EAAAq1F,GAAAyO,KAAAh4E,QAAA,GACR9rB,EAAAq1F,GAAA0O,UAAQl4E,WAAA7rB,EAAAq1F,GAAA0O,WAAAj4E,QAAA,GA4NR9rB,EAAGq1F,GAAG2O,aAAen4E,WAAW7rB,EAAGq1F,GAAG2O,cAAcl4E,QAAQ,GAC5D9rB,EAAGq1F,GAAGH,YAAcl1F,EAAGq1F,GAAGH,YA1N3BpxB,EAAS9jE,EAAAq1F,GAAArxB,oBAGZ,QAAGF,GAASE,GA6NRx8C,EAAeu8C,kBAAkBC,GAAoBvlE,KAAK,SAAUC,GAChE,GAAmB,MAAfA,EAAIlI,QApJP,GAtEGwJ,EAAA2jG,aAAAjlG,EAAAhJ,KACAsK,EAAA2jG,aAAAO,QAAAr4E,WAAA7rB,EAAA2jG,aAAAO,SAAAp4E,QAAA,GA4NA9rB,EAAG2jG,aAAaQ,YAAcC,EAAapkG,EAAG2jG,aAAaO,SAE3DlkG,EAAG2jG,aAAaU,uBAAyBx4E,WAAW7rB,EAAG2jG,aAAaU,wBAAwBv4E,QAAQ,GA1N5G9rB,EAAW2jG,aAAIW,2BAAAF,EAAApkG,EAAA2jG,aAAAU,wBAEfrkG,EAAA2jG,aAAoBpwC,WAAA1nC,WAAA7rB,EAAA2jG,aAAApwC,YAAAznC,QAAA,GACxB9rB,EAAc2jG,aAAQY,eAAqBH,EAAApkG,EAAA2jG,aAAApwC,YAEjCvzD,EAAA2jG,aAAAa,WAAA34E,WAAA7rB,EAAA2jG,aAAAa,YAAA14E,QAAA,GACE9rB,EAAA2jG,aAAAc,eAAAL,EAAApkG,EAAA2jG,aAAAa,YAEFxkG,EAAA2jG,aAAAe,QAAA74E,WAAA7rB,EAAA2jG,aAAAe,SAAA54E,QAAA,GACE9rB,EAAA2jG,aAAAgB,YAAAP,EAAApkG,EAAA2jG,aAAAe,SA6NA1kG,EAAG2jG,aAAaiB,UAAY/4E,WAAW7rB,EAAG2jG,aAAaiB,WAAW94E,QAAQ,GA1N7E9rB,EAAA2jG,aAAkBkB,cAAAT,EAAApkG,EAAA2jG,aAAAiB,WAEnB5kG,EAAO2jG,aAAKI,UAAAl4E,WAAA7rB,EAAA2jG,aAAAI,WAAAj4E,QAAA,GACZ9rB,EAAA2jG,aAAgBmB,cAAAV,EAAApkG,EAAA2jG,aAAAI,WA6NZ/jG,EAAG2jG,aAAaoB,cAAgBl5E,WAAW7rB,EAAG2jG,aAAaoB,eAAej5E,QAAQ,GA1NtF9rB,EAAK2jG,aAAeqB,kBAAkBZ,EAAKpkG,EAAA2jG,aAAAoB,eA6NvC/kG,EAAG2jG,aAAasB,WAAap5E,WAAW7rB,EAAG2jG,aAAasB,YAAYn5E,QAAQ,GA1N5E9rB,EAAA2jG,aAAIuB,eAA2Bd,EAAApkG,EAAA2jG,aAAAsB,YA6N/BjlG,EAAG2jG,aAAawB,WAAat5E,WAAW7rB,EAAG2jG,aAAawB,YAAYr5E,QAAQ,GAC5E9rB,EAAG2jG,aAAayB,eAAiBhB,EAAapkG,EAAG2jG,aAAawB,YAzN/DnlG,EAAA2jG,aAAA0B,WAAAx5E,WAAA7rB,EAAA2jG,aAAA0B,YAAAv5E,QAAA,GA4NC9rB,EAAG2jG,aAAa2B,eAAiBlB,EAAapkG,EAAG2jG,aAAa0B,YAE9DrlG,EAAG2jG,aAAa4B,UAAY15E,WAAW7rB,EAAG2jG,aAAa4B,WAAWz5E,QAAQ,GAC1E9rB,EAAG2jG,aAAa6B,cAAgBpB,EAAapkG,EAAG2jG,aAAa4B,WAE7DvlG,EAAG2jG,aAAalzE,gBAAkB5E,WAAW7rB,EAAG2jG,aAAalzE,iBAAiB3E,QAAQ,GACtF9rB,EAAG2jG,aAAa8B,oBAAsBrB,EAAapkG,EAAG2jG,aAAalzE,iBAEnEzwB,EAAG2jG,aAAa+B,SAAW75E,WAAW7rB,EAAG2jG,aAAa+B,UAAU55E,QAAQ;AACxE9rB,EAAG2jG,aAAagC,aAAevB,EAAapkG,EAAG2jG,aAAa+B,UAE5D1lG,EAAG2jG,aAAaiC,gBAAkB/5E,WAAW7rB,EAAG2jG,aAAaiC,iBAAiB95E,QAAQ,GACtF9rB,EAAG2jG,aAAakC,oBAAsBzB,EAAapkG,EAAG2jG,aAAaiC,iBAEnE5lG,EAAG2jG,aAAamC,gBAAkBj6E,WAAW7rB,EAAG2jG,aAAamC,iBAAiBh6E,QAAQ,GACtF9rB,EAAG2jG,aAAaoC,oBAAsB3B,EAAapkG,EAAG2jG,aAAamC,iBAEnE9lG,EAAG2jG,aAAaqC,eAAiBn6E,WAAW7rB,EAAG2jG,aAAaqC,gBAAgBl6E,QAAQ,GACpF9rB,EAAG2jG,aAAasC,mBAAqB7B,EAAapkG,EAAG2jG,aAAaqC,gBAElEhmG,EAAG2jG,aAAauC,eAAiBr6E,WAAW7rB,EAAG2jG,aAAauC,gBAAgBp6E,QAAQ,GACpF9rB,EAAG2jG,aAAawC,mBAAqB/B,EAAapkG,EAAG2jG,aAAauC,gBAElElmG,EAAG2jG,aAAayC,aAAev6E,WAAW7rB,EAAG2jG,aAAayC,cAAct6E,QAAQ,GAChF9rB,EAAG2jG,aAAa0C,iBAAmBjC,EAAapkG,EAAG2jG,aAAayC,cAEhEpmG,EAAG2jG,aAAa/wC,MAAS5yD,EAAG2jG,aAAasB,WAAajlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GACpG9rB,EAAG2jG,aAAa7wC,MAAS9yD,EAAG2jG,aAAawB,WAAanlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GACpG9rB,EAAG2jG,aAAa3wC,MAAShzD,EAAG2jG,aAAa0B,WAAarlG,EAAG2jG,aAAaoB,cAAiB,KAAKj5E,QAAQ,GA1N3G9rB,EAAA2jG,aAAAxmF,KAAAnd,EAAA2jG,aAAA4B,UAAAvlG,EAAA2jG,aAAAoB,cAAA,KAAAj5E,QAAA,GACT9rB,EAAA2jG,aAAA2C,cAAAtmG,EAAA2jG,aAAAI,UAAA/jG,EAAA2jG,aAAApwC,YAAAznC,QAAA,GA4NgB9rB,EAAG2jG,aAAa2C,aAAez6E,WAA4C,IAAhC7rB,EAAG2jG,aAAa,cAAqB73E,QAAQ,GA1NxG9rB,EAAA2jG,aAAA4C,aAAAvmG,EAAA2jG,aAAA+B,SAAA1lG,EAAA2jG,aAAAoB,eAAAj5E,QAAA,GACY9rB,EAAA2jG,aAAA4C,YAAA16E,WAAA,IAAA7rB,EAAA2jG,aAAA,aAAA73E,QAAA,GA8NI9rB,EAAG2jG,aAAa6C,iBAAmBxmG,EAAG2jG,aAAaiC,gBAAkB5lG,EAAG2jG,aAAaiB,WAAW94E,QAAQ,GACxG9rB,EAAG2jG,aAAa6C,gBAAkB36E,WAA+C,IAAnC7rB,EAAG2jG,aAAa,iBAAwB73E,QAAQ,GA3NrG9rB,EAAAsS,WAAW,EACP,GAAAtS,EAAAq1F,GAAA1sE,OA6NO3oB,EAAGq1F,GAAGv0F,QAAU,GAAI2Y,MAAKzZ,EAAG2jG,aAAa8C,UA3NtDzmG,EAAAq1F,GAAmBv0F,QAAA0a,QAAA,GACTxb,EAAAq1F,GAAAx0F,UAAA,GAAA4Y,MAAAzZ,EAAAq1F,GAAAv0F,SACVd,EAAAq1F,GAAAx0F,UAAA2a,QAAA,OAEA,IAAA,GAAAxb,EAAAq1F,GAAA1sE,OAAA,CACU,GAAA06E,GAAA,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACVpD,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACUhc,EAAAq1F,GAAAv0F,QAAAuiG,CAEA,IAAAA,GAAA,GAAA5pF,MAAAzZ,EAAAq1F,GAAAv0F,QA6NGuiG,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GA3N9Bhc,EAAGq1F,GAAAx0F,UAAgBwiG,MAEhB,IAAA,GAAArjG,EAAAq1F,GAAA1sE,OAAA,CACd,GAAA06E,GAAuB,GAAA5pF,MAAAzZ,EAAU2jG,aAAK8C,SAClCpD,GAAA7nF,QAAc6nF,EAAArnF,UAAA,GA6NLhc,EAAGq1F,GAAGx0F,UAAYwiG,CA1NlB,IAAAA,GAAA,GAAA5pF,MAAAzZ,EAAA2jG,aAAA8C,SACDpD,GAAA7nF,QAAA6nF,EAAArnF,UAAA,GACAhc,EAAAq1F,GAAAv0F,QAAAuiG,OAGJtrG,GAAU2I,YAAA,QAAA,yBAAA,QA+Nb,SAAUC,GA3NlB5I,EAAA2I,YAAA,QAAA,mBAAA,SAgOA,QA5NQ0jG,GAAQ/4F,GA6NZ,GAAIspF,GAAY9oE,WAAWxgB,GAAOygB,QAAQ,GAItChE,EAAI6sE,CACR7sE,GA5NIA,EAAA3kB,UA6NJ,IA5NI0xF,GAAG,EA6NH/sE,GAAE1kB,QAAQ,KAAO,IACjByxF,EA5NC/sE,EAAAxE,UAAAwE,EAAA1kB,QAAA,KAAA0kB,EAAA3sB,SA6NL2sB,EA5NI7gB,KAAAC,MAAQ4gB,GA6NZA,EA5NIA,EAAA3kB,UA6NJ,IAAI2xF,GAAYhtE,EAAExE,UAAUwE,EAAE3sB,OAAS,GACnC45F,EAAejtE,EAAExE,UAAU,EAAGwE,EAAE3sB,OAAS,EAK7C,OAJoB,IAAhB45F,IACAD,EAAY,IAAMA,GACtB90F,EAAGq1F,GAAGT,qBAAuBG,EAAa94F,QAAQ,wBAAyB,KAAO64F,EAAYD,EAEvF70F,EAAGq1F,GAAGT,qBA/QjB,GAAI50F,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAzNVA,MAAO,KAENA,MAAG,KA6NHA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBA3NqB,SAAUC,GA4N9BzU,EAAGuU,YA3NYE,GA8NnBzU,EAAGgT,YA3NK,EA4NRhT,EAAG+S,WA3NK,EA4NR/S,EAAGsS,WA3NK,EA4NRtS,EAAG0mG,QA3NK,EA4NR1mG,EAAG0jG,SAAWA,EACd3rG,EA3NQ2c,SAAU,EA4NlB1U,EAAGq1F,MACHr1F,EAAGtK,KAAOsE,EA3NEvE,OAAOC,KA6NnBwc,IAqPAlS,EAAG4mG,WAAa,WACZ,GAAI3rG,IACA4rG,OAAQ7mG,EAAGq1F,GAAGrxB,mBACdkxB,YAAal1F,EAAGq1F,GAAGH,YACnBmP,uBAAwBrkG,EAAG2jG,aAAaU,uBACxCG,WAAYxkG,EAAG2jG,aAAaa,WA3NpCjxC,WAASvzD,EAAA2jG,aAAepwC,WACpBmxC,QAAA1kG,EAAe2jG,aAAAe,QACXE,UAAQ5kG,EAAA2jG,aAAgBiB,UA6NxBb,UA5NI/jG,EAAA2jG,aAAAI,UA6NJgB,cA5NO/kG,EAAA2jG,aAAkBoB,cA6NzBE,WA5NSjlG,EAAI2jG,aAAQsB,WA6NrBE,WA5NWnlG,EAAA2jG,aAAewB,WA6N1BE,WA5NWrlG,EAAA2jG,aAAe0B,WA6N1BE,UA5NWvlG,EAAA2jG,aAAe4B,UA6N1B90E,gBAAiBzwB,EAAG2jG,aAAalzE,gBACjCi1E,SA5NQ1lG,EAAG2jG,aAAe+B,SA6N1B1B,aA5NWhkG,EAAA2jG,aAAeiC,gBA6N1BmI,SAAU/tG,EAAG2jG,aAAamC,gBAC1BE,eA5NWhmG,EAAA2jG,aAAeqC,eA6N1B9B,QA5NQlkG,EAAG2jG,aAAYO,QA6NvBgC,eAAgBlmG,EAAG2jG,aAAauC,eAChCE,aA5NWpmG,EAAA2jG,aAAeyC,aA6N1B3jF,MAAOziB,EA5NC2jG,aAAelhF,MA8N3BziB,GAAGsS,WA5NY,EA6NftS,EAAG0mG,QA5NS,EA8NZl/E,EA5Ne29C,WAAAlqE,GAAewD,KAAA,SAAaC,GA6NnCA,EA5NIhJ,KAAGke,aAAe,GA6NtB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD7T,EAAGq1F,MACHr1F,EAAGsS,WA5NI,EA6NPtS,EAAG0mG,QAAS,EACZ1sG,EA5NO8F,GAAA/H,EAAYyE,gBA8NnBzE,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,YAEvD,SA5NSlT,GA6NR5I,EAAW2I,YAAY,kCAI/BV,EAAG+xB,KAAO,WACN/xB,EAAG0R,UAGP1R,EAAG0R,OAAS,WACR1R,EAAGq1F,MACHr1F,EAAGgT,YA5NQ,GA+NfhT,EAAGguG,YAAc,WACbhuG,EAAGiuG,WA5NW,EA6NdjuG,EAAGkuG,cA5NK,EA6NRluG,EAAGmuG,WAAY,EACfnuG,EAAGmqG,aAAc,EACjBnqG,EAAGoqG,cAAe,EAClBpqG,EAAGqqG,cAAe,EA3NtBrqG,EAAAsqG,cAAkB,EACdtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBAAkB,EACrBxqG,EAAAyqG,mBAAgB,EA6NhBzqG,EAAG0qG,kBAAmB,EACtB1qG,EAAGouG,mBAAoB,EACvBpuG,EAAG2qG,kBAAmB,EA3NtBpnC,EAAQvjE,EAAAq1F,GAAAH,cA+NZl1F,EAAGquG,aA5Ne,WA6NdruG,EAAGiuG,WA5NC,EACJjuG,EAAAkuG,cAAe,EACfluG,EAAAmuG,WAAM,EACNnuG,EAAAmqG,aAAgB,EAChBnqG,EAAAoqG,cAAI,EACJpqG,EAAAqqG,cAAI,EA6NJrqG,EAAGsqG,cA5Na,EAChBtqG,EAAGuqG,YAAG,EA6NNvqG,EAAGwqG,mBAAoB,EA3NvBxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBAAU,EACb1qG,EAAGouG,mBAAU,EACbpuG,EAAG2qG,kBAAU,EACbpnC,EAAYvjE,EAAAq1F,GAAAH,cA+NhBl1F,EAAG+pG,eA5NO,WACN/pG,EAAGiuG,WAAG,EACNjuG,EAAAkuG,cAAgB,EA6NhBluG,EAAGmuG,WAAY,EACfnuG,EAAGmqG,aAAc,EA3NrBnqG,EAAAoqG,cAAS,EA6NLpqG,EAAGqqG,cAAe,EA3NlBrqG,EAAAsqG,cAAe,EA6NftqG,EAAGuqG,YA5NS,EA6NZvqG,EAAGwqG,mBA5NQ,EA6NXxqG,EAAGyqG,mBA5NQ,EA6NXzqG,EAAG0qG,kBA5NQ,EA6NX1qG,EAAGouG,mBAAoB,EACvBpuG,EAAG2qG,kBA5NQ,EA6NXpnC,EA5NWvjE,EAAAq1F,GAAAH,cA+Nfl1F,EAAGkqG,iBA5NY,WA6NXlqG,EAAGiuG,WAAY,EACfjuG,EAAGkuG,cA5NQ,EA6NXluG,EAAGmuG,WA5NQ,EA6NXnuG,EAAGmqG,aAAc,EACjBnqG,EAAGoqG,cA5NQ,EA6NXpqG,EAAGqqG,cA5NQ,EA6NXrqG,EAAGsqG,cAAe,EAClBtqG,EAAGuqG,YA5NQ,EA6NXvqG,EAAGwqG,mBA5NQ,EA6NXxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBA5NQ,EA6NX1qG,EAAGouG,mBA5NQ,EA6NXpuG,EAAG2qG,kBAAmB,EACtBpnC,EA5NWvjE,EAAAq1F,GAAAH,cA+Nfl1F,EAAGsuG,YA5NY,WA6NXtuG,EAAGiuG,WA5NQ,EA6NXjuG,EAAGkuG,cAAe,EAClBluG,EAAGmuG,WA5NQ,EA6NXnuG,EAAGmqG,aA5NQ,EA6NXnqG,EAAGoqG,cAAe,EAClBpqG,EAAGqqG,cA5NQ,EA6NXrqG,EAAGsqG,cA5NQ,EA6NXtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBA5NQ,EA6NXxqG,EAAGyqG,mBA5NQ,EA6NXzqG,EAAG0qG,kBAAmB,EACtB1qG,EAAGouG,mBA5NQ,EA6NXpuG,EAAG2qG,kBA5NQ,EA6NXpnC,EAAevjE,EAAGq1F,GAAGH,cAGzBl1F,EAAGuuG,YAAc,WACbvuG,EAAGiuG,WA5NQ,EA6NXjuG,EAAGkuG,cA5NQ,EA6NXluG,EAAGmuG,WAAY,EACfnuG,EAAGmqG,aA5NQ,EA6NXnqG,EAAGoqG,cA5NQ,EA6NXpqG,EAAGqqG,cAAe,EAClBrqG,EAAGsqG,cA5NQ,EA6NXtqG,EAAGuqG,YA5NQ,EA6NXvqG,EAAGwqG,mBAAoB,EACvBxqG,EAAGyqG,mBA5NQ,EA6NXzqG,EAAG0qG,kBA5NQ,EA6NX1qG,EAAGouG,mBAAoB,EACvBpuG,EAAG2qG,kBA5NQ,EA6NXpnC,EA5NWvjE,EAAAq1F,GAAAH,cA+Nfl1F,EAAGwuG,YA5NY,WA6NXxuG,EAAGiuG,WA5NQ,EA6NXjuG,EAAGkuG,cA5NQ,EA6NXluG,EAAGmuG,WA5NQ,EA6NXnuG,EAAGmqG,aA5NQ,EA6NXnqG,EAAGoqG,cAAe,EAClBpqG,EAAGqqG,cA5NQ,EA6NXrqG,EAAGsqG,cA5NQ,EA6NXtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBA5NQ,EA6NXxqG,EAAGyqG,mBA5NQ,EA6NXzqG,EAAG0qG,kBA5NQ,EA6NX1qG,EAAGouG,mBA5Ne,EA6NlBpuG,EAAG2qG,kBA5Ne,EA6NlBpnC,EA5NevjE,EAAGq1F,GAAAH,cA+NtBl1F,EAAG4qG,WAAa,WACZ5qG,EAAGiuG,WA5NU,EA6NbjuG,EAAGkuG,cA5Na,EA6NhBluG,EAAGmuG,WA5NS,EA6NZnuG,EAAGmqG,aA5NY,EA6NfnqG,EAAGoqG,cAAe,EAClBpqG,EAAGqqG,cA5Na,EA6NhBrqG,EAAGsqG,cA5Na,EA6NhBtqG,EAAGuqG,YA5NY,EA6NfvqG,EAAGwqG,mBAAoB,EACvBxqG,EAAGyqG,mBA5NoB,EA6NvBzqG,EAAG0qG,kBA5NmB,EA6NtB1qG,EAAGouG,mBA5Na,EA6NhBpuG,EAAG2qG,kBA5Ne,EA6NlBpnC,EAAevjE,EAAGq1F,GAAGH,cAGzBl1F,EAAG6qG,WA5Na,WA6NZ7qG,EAAGiuG,WAAY,EACfjuG,EAAGkuG,cA5NQ,EA6NXluG,EAAGmuG,WA5NK,EA6NRnuG,EAAGmqG,aAAc,EACjBnqG,EAAGoqG,cAAe,EAClBpqG,EAAGqqG,cA5NW,EA6NdrqG,EAAGsqG,cA5NK,EA6NRtqG,EAAGuqG,YAAa,EAChBvqG,EAAGwqG,mBAAoB,EACvBxqG,EAAGyqG,mBAAoB,EA3N3BzqG,EAAA0qG,kBAAsB,EAClB1qG,EAAAouG,mBAAgB,EA6NhBpuG,EAAG2qG,kBAAmB,EACtBpnC,EAAevjE,EAAGq1F,GAAGH,cAEzBl1F,EAAG8qG,eA5NS,WACR9qG,EAAAiuG,WAAM,EACNjuG,EAAAkuG,cAAiB,EACjBluG,EAAAmuG,WAAc,EA6NdnuG,EAAGmqG,aA5Nc,EACjBnqG,EAAAoqG,cAAe,EACfpqG,EAAAqqG,cAAM,EACNrqG,EAAAsqG,cAAkB,EAClBtqG,EAAAuqG,YAAI,EACJvqG,EAAAwqG,mBAAoB,EA6NpBxqG,EAAGyqG,mBA5NmB,EACtBzqG,EAAG0qG,kBAAG,EA6NN1qG,EAAGouG,mBAAoB,EA3NvBpuG,EAAA2qG,kBAAa,EA6NbpnC,EAAevjE,EAAGq1F,GAAGH,cAGzBl1F,EAAG+qG,gBA5NW,WA6NV/qG,EAAGiuG,WA5NY,EA6NfjuG,EAAGkuG,cA5Nc,EA6NjBluG,EAAGmuG,WA5NC,EA6NJnuG,EAAGmqG,aA5Na,EA6NhBnqG,EAAGoqG,cA5Na,EA6NhBpqG,EAAGqqG,cA5Na,EA6NhBrqG,EAAGsqG,cA5Ne,EA6NlBtqG,EAAGuqG,YA5NY,EA6NfvqG,EAAGwqG,mBA5NmB,EA6NtBxqG,EAAGyqG,mBA5NgB,EA6NnBzqG,EAAG0qG,kBA5NgB,EA6NnB1qG,EAAGouG,mBA5NgB,EA6NnBpuG,EAAG2qG,kBA5Ne,EA6NlBpnC,EA5NIvjE,EAAAq1F,GAAiBH,cA+NzBl1F,EAAGgrG,cA5Ne,WA6NdhrG,EAAGiuG,WA5NC,EA6NJjuG,EAAGkuG,cA5Na,EA6NhBluG,EAAGmuG,WA5NC,EA6NJnuG,EAAGmqG,aA5NC,EA6NJnqG,EAAGoqG,cA5NW,EA6NdpqG,EAAGqqG,cAAe,EA3NlBrqG,EAAGsqG,cAAY,EACftqG,EAAGuqG,YAAS,EA6NZvqG,EAAGwqG,mBAAoB,EA3NvBxqG,EAAAyqG,mBAAe,EA6NfzqG,EAAG0qG,kBA5Nc,EA6NjB1qG,EAAGouG,mBA5NgB,EA6NnBpuG,EAAG2qG,kBA5Na,EA6NhBpnC,EA5NWvjE,EAAAq1F,GAAAH,cA+Nfl1F,EAAGouG,kBA5NY,WA6NXpuG,EAAGiuG,WA5NK,EA6NRjuG,EAAGkuG,cAAe,EAClBluG,EA5NGmuG,WAAU,EA6NbnuG,EAAGmqG,aA5NY,EA6NfnqG,EAAGoqG,cAAe,EAClBpqG,EAAGqqG,cAAe,EAClBrqG,EAAGsqG,cAAe,EA3NnBtqG,EAAAuqG,YAAO,EACNvqG,EAAGwqG,mBAAA,EA6NHxqG,EAAGyqG,mBAAoB,EACvBzqG,EAAG0qG,kBAAmB,EA3NvB1qG,EAAAouG,mBAAqB,EACpBpuG,EAAG2qG,kBAAK,EACRpnC,EAAGvjE,EAAaq1F,GAAAH,4FAzUxB9gG,QACKC,OAAO,uBACPe,WA3NW,aAAGy4G,MAmwBvB,WACI,YAMA,SA5NQY,GAAG12G,EAAoB0S,EAAAhQ,EAAAR,EAAAM,EAAAitB,EAAAntB,EAAAG,EAAAgnD,EAAAhsB,EAAAxjB,EAAAJ,EAAAzX,EAAAygD,GA+R3B,QA5NO1oC,KACAC,GACAH,EAAAI,mBAAoBD,GAAA1T,KAAA,SAAAC,GACD,MAAnBA,EAAAlI,SACAwJ,EAAAqS,YAAoB3T,EAAAhJ,KACpB8/B,EAAmBy4D,aAAAxvF,KAAA,SAAAC,GACD,MAAHA,EAAGlI,SA6NDwJ,EAAGg3B,YAAct4B,EAAIhJ,KACrBsK,EAAGsS,WAAY,IA1NpB,SAAA3R,GACZ5I,EAAe2I,YAAA,QAAA,mBAAA,oBAEfV,EAAAsS,WAAc,IAEd,SAAA3R,GACA5I,EAAe2I,YAAA,QAAA,mBAAA,oBAiOtB,QA5NO+gB,GAAoBtP,GACpBA,GACHP,EAAqB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GA6NM,MAAfA,EAAIlI,QACJ00G,IA3NblrG,EAAc2hB,YAAYjjB,EAAAhJ,KACVsK,EAAA2hB,YAAAxmB,OAAA,GACZd,EAAe8C,OAAA,UAAA,4CAAA9F,WAAA,EAAA+F,KAAA,OAEf4C,EAAAsS,WAAc,GAEdva,EAAe2I,YAAA,QAAA,yBAAA,mBAEf,SAAaC,GACb5I,EAAA2I,YAAoB,QAAA,mBAAA,oBAmO3B,QAAS8zF,GAA4B1+F,GA3NlCA,GACI0/B,EAAYg4D,4BAAA13F,GAAA2I,KAAA,SAAAC,GACG,MAAfA,EAAAlI,QACA20G,IACAnrG,EAAAs0F,uBAAc51F,EAAAhJ,KACdsK,EAAes0F,uBAAAn5F,OAAA,GACfd,EAAe8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OACf4C,EAAAsS,WAAe,GAEfva,EAAoB2I,YAAA,QAAA,yBAAA,mBAEpB,SAAAC,GACA5I,EAAA2I,YAAoB,QAAA,mBAAA,oBAkO3B,QA5NO+zF,GAAY3+F,EAAAomD,GACZA,GACA10B,EAAYq+C,wBAAA/vE,EAAAomD,GAAAz9C,KAAA,SAAAC,GACE,MAAdA,EAAAlI,QACA40G,IACAprG,EAAAqoD,eAAe3pD,EAAAhJ,KACfsK,EAAeqoD,eAAAltD,OAAA,GACFd,EAAA8C,OAAA,UAAA,gDAAA9F,WAAA,EAAA+F,KAAA,OACb4C,EAAAsS,WAAoB,GAEpBva,EAAmB2I,YAAA,QAAA,yBAAA,eAEnB,SAAAC,GACH5I,EAAkB2I,YAAG,QAAA,mBAAA,gBAkOzB,QA5NOg0F,GAAc5+F,EAAAwhC,GACdA,GAEA9P,EAAes+C,aAAAhwE,EAAAwhC,GAAA74B,KAAA,SAAAC,GACF,MAAbA,EAAalI,QACb60G,IACArrG,EAAAu0F,cAAoB71F,EAAAhJ,KACpBsK,EAAAu0F,cAAmBp5F,OAAA,GACnBd,EAAoB8C,OAAA,UAAA,kDAAA9F,WAAA,EAAA+F,KAAA,OACpB4C,EAAAsS,WAAmB,GA8NVva,EAAW2I,YAAY,QAAS,yBAA0B,eA1NvE,SAAAC,GACI5I,EAAY2I,YAAA,QAAA,mBAAA,gBAmOnB,QA5NOu0F,GAAaC,GACbA,GACA1tE,EAAAu+C,WAAoBmvB,EAAA,GAAAz2F,KAAA,SAAAC,GACpB,GAAmB,MAAnBA,EAAAlI,OAAmB,CAEnBwJ,EAAAm1F,SAAmBz2F,EAAAhJ,IACtB,KAAe,GAAMwF,KAAA8E,GAAAm1F,SA6NLn1F,EAAGm1F,SAASj6F,GAAGk6F,WAAavpE,WAAW7rB,EAAGm1F,SAASj6F,GAAGk6F,YAAYtpE,QAAQ,EA1N3E9rB,GAAAm1F,SAAYh6F,OAAA,GACZd,EAAA8C,OAAA,UAAA,oBAAA9F,WAAA,EAAA+F,KAAA,WAGZrF,GAAc2I,YAAA,QAAA,yBAAA,eAEd,SAAAC,GACA5I,EAAe2I,YAAA,QAAA,mBAAA,gBAqOtB,QAASolD,KA1NL,GAAG7qD,IACAnF,UAAAkK,EAAeq0F,KAAAxyE,gBAAA/rB,UACfo/F,YAAYl1F,EAAAq0F,KAAAiX,kBAAApW,YAEft6C,GAAkB+8B,2BAAA18E,GAAAwD,KAAA,SAAAC,GAEA,MAAfA,EAAAlI,QACAwJ,EAAA68C,eAAan+C,EAAAhJ,MACbsK,EAAA68C,eAAoB1hD,OAAA,GACpBpD,EAAoB2I,YAAA,OAAA,uDAAA,WAEpBV,EAAAsS,WAAoB,GAEvBva,EAAkB2I,YAAG,QAAA,yBAAA,oBA8NlB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAK5D,QAASguG,GAAc5qD,EAAYhuD,EAAWyI,GA3N7C,GAAOulD,GAAAhuD,EAAA,CACP61G,IA8NO3rG,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAGq1F,GAAGtxC,iBAAiBC,OA5NlDhkD,EAAA4uG,YAAe5uG,EAAA2uG,QAAYE,KAC5B,IAAK5zG,IA8NG6oD,WAAY9jD,EAAGq1F,GAAGtxC,iBAAiBD,WA5N5ChuD,UAAmBkK,EAAEq0F,KAAAxyE,gBAAgB/rB,UACrCF,OAAc,EAEd4rD,GAAc8wB,uBAAAr3E,GAAAwD,KAAA,SAAAC,GACd,GAAuB,MAAvBA,EAAAlI,OAAgC,CACxBwJ,EAAA6vF,gBAAclzF,KAAAC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,KA8NT,IAAIoD,KACJ5sD,GAAOqI,QAAQ7C,EAAG6vF,gBAAiB,SAAShpC,GA5N5C,GAAA/N,IACDuO,KAAAR,EAAAQ,KACAI,SAAAZ,EAAAY,SACEX,OAAsB,UAAtBD,EAAAY,SAAsBZ,EAAAC,UAEpCM,GAAsBvvD,KAAAihD,KAEtB94C,EAAA4mD,YAA2BQ,EAC3BpnD,EAAAsS,WAAA,MAEAva,GAAuB2I,YAAA,QAAA,yBAAA,eAEf,SAAAC,GACC5I,EAAA2I,YAAA,QAAA,mBAAA,iBAqOZ,QAAS4kD,KACL,GAAIwpD,IA5NL7xG,UAMC,OAJJzC,GAAAqI,QAAA7C,EAAAonD,SAAA,SAAAF,GA8NYA,EAAK47C,oBA5NTgM,EAAA7xG,OAAAiqD,EAAAQ,UAAAR,EAAA47C,kBAAA/7C,UAEJpqD,KAAAqkB,UAAc8tF,GA8dlB,QA7NQ5D,KA8NJlrG,EAAGq0F,KA7NIxyE,gBAAmB,KA8N1B7hB,EAAGq0F,KA7NItyC,2BAA8B,KA8NrC/hD,EAAGq0F,KA7NIv4B,mBAAqB,KA8N5B97D,EAAGq0F,KA7NIiX,kBAAc,KA8NrBtrG,EAAGq1F,GAAGuU,gBA7NS,KA8Nf5pG,EAAGq0F,KA7NKkX,4BAAmB,KA8N3BvrG,EAAGq1F,GA7NCqU,iBAAgB,KAgOxB,QA7NQyB,KA8NJnrG,EAAGq0F,KA7NKtyC,2BAAwB,KA8NhC/hD,EAAGq0F,KA7NIv4B,mBAAe,KA8NtB97D,EAAGq0F,KA7NIiX,kBAAc,KA8NrBtrG,EAAGq1F,GAAGuU,gBA7NS,KA8Nf5pG,EAAGq0F,KA7NKkX,4BAAmB,KA8N3BvrG,EAAGq1F,GA7NCqU,iBAAgB,KAgOxB,QA7NQ0B,KA8NJprG,EAAGq0F,KA7NKv4B,mBAAY,KA8NpB97D,EAAGq0F,KA7NIiX,kBAAe,KA8NtBtrG,EAAGq1F,GA7NCuU,gBAAiB,KA8NrB5pG,EAAGq0F,KAAKkX,4BAA8B,KACtCvrG,EAAGq1F,GAAGqU,iBAAmB,KAG7B,QAAS2B,KACLrrG,EAAGq0F,KA7NKiX,kBAAmB,KA8N3BtrG,EAAGq1F,GA7NCuU,gBAAe,KA8NnB5pG,EAAGq0F,KA7NKkX,4BAAuB,KA8N/BvrG,EAAGq1F,GAAGqU,iBAAmB,KAG7B,QAAS8B,KAELxrG,EAAGq1F,GAAGuU,gBA7NkB,KA8NxB5pG,EAAGq0F,KA7NKkX,4BAAW,KA8NnBvrG,EAAGq1F,GA7NCqU,iBAAmB,KA8NvB5jD,IAGJ,QAAS2lD,KACLzrG,EAAGq0F,KAAKkX,4BAA8B,KA5NtCvrG,EAAAq1F,GAAAqU,iBAAA,KAgOJ,QA7NQgC,KA8NJ1rG,EAAGq1F,GA7NCqU,iBAAU,KAgOlB,QA7NQiC,KA8NJ3rG,EAAGq1F,GA7NChuC,KAAA,KA5VR,GA5NIrnD,GAAGC,IA8NPD,GAAGqU,kBA5NIhJ,MAAoB,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA6N3BrL,EAAGsU,SA5NItU,EAAAqU,gBAAmB,GA8N1BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GA3NhCzU,EAAAuU,YAAeE,GA+NlBzU,EAAGgT,YA5NI,EA6NPhT,EAAG+S,WA5NI,EA6NP/S,EAAGsS,WA5NI,CA6NP,IA5NIpS,GAAG/F,EAAegG,uBAClBgS,EAAGhY,EAAegG,uBAAAwU,gBAAAxC,SA6NtBnS,GAAGyhB,oBA5NiBA,EA6NpBzhB,EAAGw0F,4BA5NwBA,EA6N3Bx0F,EAAGy0F,yBA5NwBA,EA6N3Bz0F,EAAG00F,2BA5NuBA,EA6N1B10F,EAAGi1F,mBA5NIA,EA6NPj1F,EAAG8lD,qBA5NuBA,EA6N1B9lD,EAAG0uG,cA5NgBA,CA8NnB1uG,GAAG/C,UA3NH+C,EAAGwrG,cAAAA,EA6NHxrG,EAAGyrG,uBA5NgBA,EA6NnBzrG,EAAG0rG,oBA5NmBA,EA6NtB1rG,EAAG2rG,eA5NgBA,EA6NnB3rG,EAAGyrG,uBA5NkBA,EA6NrBzrG,EAAG0rG,oBA5NmBA,EAgOtB1rG,EAAGq0F,QACHt8F,EA5NO2c,SAAA,EA6NPxC,IAEAlS,EAAGq1F,MACHr1F,EAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MA1NNmzB,aAAG,WACHnzB,KAAG,MAgOProB,EAAGs1F,mBA3NCC,aAAG,wBACHC,YAAG,IAEHD,aAAG,0BACHC,YAAG,IA+NPx1F,EAAG+yF,iBACCC,eAAgB,UAChBC,aAAc,MA1NdD,eAAe,QACfC,aAAG,MAEHD,eAAG,UACHC,aAAG,MAqaPjzF,EAAGy1F,eACCC,aAAc,WACdqZ,WAAY,IA3NbrZ,aAAA,eACCqZ,WAAA,IAgOJ/uG,EAAGgvG,4BA5NCC,0BAAY,oBA8NZC,wBAAyB,IA3N1BD,0BAAkB,uBACjBC,wBAAgB,IAgOpBlvG,EAAG21F,aA5NCC,UAAc,wBACfC,YAAA,IAgOKD,UAAW,mBACXC,YAAa,IAKrB71F,EAAG81F,WA7Na,SAAGhjF,GA8Nf9S,EAAGsS,WA7NS,CA8NZ,IAAIw8F,GAAQxpD,GAEZ,IA7NoB,GA6NhBxyC,EAAI22F,SACJzpG,EAAGq1F,GAAGv0F,QAAU,GAAI2Y,MAAK3G,EAAI2zF,UAC7BzmG,EAAGq1F,GAAGv0F,QA7NK0a,QAAS,GA8NpBxb,EAAGq1F,GAAGx0F,UA7NM,GAAA4Y,MAAWzZ,EAAAq1F,GAAAv0F,SA8NvBd,EAAGq1F,GAAGx0F,UAAU2a,QAAQ,GACxBxb,EAAGq1F,GAAGtoE,SA7NK,cA8NR,IAAoB,GAAhBja,EAAI22F,SAAe,CAC1B,GA7NGpG,GAAA,GAAS5pF,MAAK3G,EAAA2zF,SA8NjBpD,GA7NI7nF,QAAA6nF,EAAWrnF,UAAY,GA8N3Bhc,EAAGq1F,GAAGv0F,QAAUuiG,CAEhB,IAAIA,GAAM,GAAI5pF,MAAKzZ,EAAGq1F,GAAGv0F,QACzBuiG,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GA5NpChc,EAASq1F,GAAAx0F,UAAAwiG,EACDrjG,EAAAq1F,GAAAtoE,SAAW,aACX,IAAuB,GAAvBja,EAAA22F,SAAuB,CA8NvB,GA7NIpG,GAAI,GAAI5pF,MAAA3G,EAAW2zF,SA8NvBpD,GAAI7nF,QA7NI6nF,EAAArnF,UAAA,GA8NRhc,EAAGq1F,GAAGv0F,QA7NKuiG,CA+NX,IAAIA,GAAM,GA7NE5pF,MAAA3G,EAAQ2zF,SA8NpBpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAGx0F,UA7NKwiG,EA8NXrjG,EAAGq1F,GAAGtoE,SA7NK,QAgOf,GA7NqB,SA6NjB/sB,EA7NGq1F,GAAAtoE,SA8NH,GA7NI03B,GAAW,2CAAyCzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,6BAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,yDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,yBA8N5BnwF,EAAIg5F,WAAa,SA5N1C7xG,EAAA,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,oBA8NCkrG,EAAW,kBAAoB/rG,EAAGq1F,GAAGqU,iBAAiBhU,aAAe,iCAAmCz7F,EAAQ,QAAQ+F,EAAGq1F,GAAGx0F,UAAW,cAAgB,8BAAgCb,EAAGq0F,KAAKv4B,mBAAmBjZ,eAAiB,wDAA0D7iD,EAAGq0F,KAAKiX,kBAAkBrI,YAAc,qBAAuBnwF,EAAIg5F,WAAa,oBAC/WqD,EAAel1G,EAAQ,QAAQ+F,EAAGq1F,GAAGx0F,UAAW,kBA1N5D,IAAS4jD,GAAA,2CAAuCzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,4BAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,yDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,yBAC7BnwF,EAAAg5F,WAAA,oBACX7xG,EAAA,QAAoB+F,EAAAq1F,GAAAx0F,UAAA,cAA4B,OAC5C5G,EAAQ,QAAA+F,EAAWq1F,GAAAv0F,QAAK,cAAA,oBA8NxBirG,EA7NI,kBAAA/rG,EAAAq1F,GAAAqU,iBAAAhU,aAAA,iCAAAz7F,EAAA,QAAA+F,EAAAq1F,GAAAv0F,QAAA,cAAA,+BAAAd,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,wDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,qBAAAnwF,EAAAg5F,WAAA,oBA8NJqD,EA7NOl1G,EAAA,QAAA+F,EAAyBq1F,GAAIx0F,UAAA,cAAA,OAAA5G,EAAA,QAAA+F,EAAAq1F,GAAAv0F,QAAA,aAoO5C,IAAI7F,IAEAmkD,iBAAkBp/C,EAAGq0F,KAAKlhF,gBAAgB84B,YAC1CwY,SA7NGA,EA8NHsnD,SAAUA,EACV/nD,MAAO8qD,EACPK,aAAcA,EA5NtB7sF,YAAStiB,EAAAq0F,KAAAxyE,gBAAoCS,YACrCgiC,UAAAtkD,EAAYq1F,GAAAqU,iBAAAhU,aACZ0Z,SAAApvG,EAAAq0F,KAAekX,4BAAwB2D,wBA8NvCvF,YA7NY3pG,EAAAq1F,GAAAuU,gBAAgB/T,YA8N5B//F,UA7NQkK,EAAAq0F,KAAAxyE,gBAAA/rB,UA8NR6yB,OA7NQ7V,EAAG6V,OA8NXkhF,YA7NY,EA8NZ/1E,SAAU5zB,EA7NUi/C,UA8NpB9+C,OA7NQH,EAAGG,OAIM,KA6NjBL,EA7NGq1F,GAAAqU,iBAAcqF,aA8NjB9zG,EA7NIysD,SAAW1nD,EAAAq1F,GAAAhuC,KAAAI,UAOnBjgC,EAAIk+C,iBAAczqE,GAAAwD,KAAA,SAAAC,GA8Nd,GAAmB,MAAfA,EAAIlI,OAAgB,CA5NxBwJ,EAAA8Z,cAAepb,EAAAhJ,KACXsK,EAAAsS,WAAQ,CA8NR,IA7NIrX,IACAuF,QAAGN,EAAgBM,QACnBk/C,KAAI1/C,EAAG8Z,cA8NP6lC,WA7NI,GA+NJvgD,EA7NG7E,EAAA8E,MACHhI,WAAW,EA8NXiI,eAAgB,cA5NrBC,gBAAc,aACbrK,YAAW,8DA8NPE,WAAY,kBA5NjBC,aAAA,KA8NK+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SA5NP3N,MAAA,WACY,MAAAtH,MAkOTmE,GA7NaM,OAAQjB,KAAA,SAAUC,KA+N5B,kBAEH3G,GA7NQ2I,YAAe,QAAA,kBAAWrJ,WAAsB,EAAW+F,KAAM,OA8NzE4C,EAAGsS,WAAY,GAGpB,SAAS3R,GACR5I,EA7NG2I,YAAc,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OA8NjB4C,EAAGsS,WA7NY,KAqOvBtS,EAAGi2F,WAAa,SAASnjF,GAErB9S,EAAGsS,WAAY,CA5Nf,IAAIw8F,GAAMxpD,GA+NV,IA7NoB,GAAhBxyC,EAAA22F,SA8NAzpG,EAAGq1F,GAAGv0F,QAAU,GAAI2Y,MAAK3G,EAAI2zF,UA5NjCzmG,EAAAq1F,GAAAv0F,QAAA0a,QAAqB,GA8NjBxb,EAAGq1F,GAAGx0F,UAAY,GAAI4Y,MAAKzZ,EAAGq1F,GAAGv0F,SA5NjCd,EAAAq1F,GAAIx0F,UAAI2a,QAAgB,GA8NxBxb,EAAGq1F,GA7NCtoE,SAAG,cA8NJ,IA7NS,GAARja,EAAK22F,SAAG,CA8NZ,GAAIpG,GA7NI,GAAA5pF,MAAW3G,EAAA2zF,SA8NnBpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GA7NCv0F,QAAGuiG,CA+NP,IA7NIA,GAAA,GAAA5pF,MAAWzZ,EAAAq1F,GAAAv0F,QA8NfuiG,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GA5N7Bhc,EAAAq1F,GAAAx0F,UAAcwiG,EACbrjG,EAAAq1F,GAAAtoE,SAAW,aA8NR,IAAoB,GAAhBja,EAAI22F,SAAe,CAC1B,GAAIpG,GAAM,GAAI5pF,MAAK3G,EAAI2zF,SACvBpD,GAAI7nF,QAAQ6nF,EAAIrnF,UAAY,GAC5Bhc,EAAGq1F,GAAGv0F,QAAUuiG,CA3NpB,IAAAA,GAAA,GAAA5pF,MAAA3G,EAAA2zF,SACIpD,GAAA7nF,QAAA6nF,EAAcrnF,UAAW,GACzBhc,EAAAq1F,GAAAx0F,UAAAwiG,EACArjG,EAAGq1F,GAAAtoE,SAAU,QAgOjB,GA7NoB,SA6NhB/sB,EAAGq1F,GA7NCtoE,SA+NJ,GA7NI03B,GAAQ,2CAAAzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,6BAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,yDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,yBA8NgBnwF,EAAIg5F,WAAa,SA5N7C7xG,EAAA,QAAkB+F,EAAAq1F,GAAAx0F,UAAA,cAAiC,oBAC/CkrG,EAAQ,kBAAgB/rG,EAAAq1F,GAAAqU,iBAAAhU,aAAA,iCAAAz7F,EAAA,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,8BAAAb,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,wDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,qBAAAnwF,EAAAg5F,WAAA,oBA8NxBqD,EA7NOl1G,EAAA,QAAuB+F,EAAAq1F,GAAMx0F,UAAS,kBAgOjD,IAAI4jD,GA7NQ,2CAAWzkD,EAAAq0F,KAAAtyC,2BAAAlG,aAAA,4BAAA77C,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,yDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAAA,yBACDnwF,EAAEg5F,WAAA,oBA8NpB7xG,EAAQ,QA7NI+F,EAAAq1F,GAAUx0F,UAAE,cAAA,OA8NxB5G,EAAQ,QA7NI+F,EAAAq1F,GAASv0F,QAAE,cAAwB,oBA8N/CirG,EAAW,kBAAoB/rG,EAAGq1F,GAAGqU,iBAAiBhU,aAAe,iCAAmCz7F,EAAQ,QAAQ+F,EAAGq1F,GAAGv0F,QAAS,cAAgB,+BAAsCd,EAAGq0F,KAAKv4B,mBAAmBjZ,eAAiB,wDAA0D7iD,EAAGq0F,KAAKiX,kBAAkBrI,YAAc,qBAAuBnwF,EAAIg5F,WAAa,oBACnXqD,EA7NQl1G,EAAc,QAAA+F,EAAAq1F,GAAAx0F,UAAA,cAAA,OAAA5G,EAAA,QAAA+F,EAAAq1F,GAAAv0F,QAAA,aAoO9B,IAAI7F,IAEAmkD,iBAAkBp/C,EAAGq0F,KAAKlhF,gBAAgB84B,YAC1CwY,SA7NGA,EA8NHsnD,SAAUA,EACV/nD,MAAO8qD,EACPK,aAAcA,EACd7sF,YAAatiB,EAAGq0F,KAAKxyE,gBAAgBS,YACrCgiC,UAAWtkD,EAAGq1F,GAAGqU,iBAAiBhU,aA5N1C0Z,SAASpvG,EAAAq0F,KAAAkX,4BAAoB2D,wBACrBvF,YAAQ3pG,EAAAq1F,GAAAuU,gBAAA/T,YACR//F,UAAQkK,EAAAq0F,KAAAxyE,gBAAA/rB,UA8NR6yB,OAAQ7V,EAAI6V,OA5NhBkhF,YAAe,EACX/1E,SAAS5zB,EAAAi/C,UA8NT9+C,OA7NIH,EAAaG,OAiOqB,KAAtCL,EAAGq1F,GAAGqU,iBAAiBqF,aACvB9zG,EAAIysD,SAAW1nD,EAAGq1F,GAAGhuC,KAAKI,UAO9BjgC,EAAek+C,iBAAiBzqE,GAAKwD,KAAK,SAASC,GAC/C,GAAmB,MAAfA,EAAIlI,OAAgB,CA5N7BwJ,EAAA8Z,cAA4Bpb,EAAChJ,KAC5BsK,EAAAsS,WAAA,CACA,IAAA2D,GAAAnf,SAAyBijB,cAAA,IAC1BjjB,UAAAC,KAAAijB,YAAA/D,GACCA,EAAAgE,MAAA,eACA,IAAArc,GAAA,GAAAC,OAAyBa,EAAAhJ,OA8NTqI,KAAM,oBA3NVtJ,EAACC,OAAAwlB,IAAAC,gBAAAvc,EAETnD,GAAA4E,KAAa5K,EAAA,UA8NTsD,EAAW2I,YAAY,UAAW,eAAgB,uBA3NtD3I,GAAW2I,YAAA,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OACX4C,EAAAsS,WAAa,GAgOd,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OA5N/E4C,EAAAsS,WAAa,8OAxSpBle,QACKC,OA5NM,uBA6NNe,WA5NM,iBAAeq5G,MA4xB9B,WACI,YAMA,SAASY,GAAoBt3G,EAAYkC,EAASwQ,EAAQhQ,EAASF,EAAWitB,EAAgBntB,EAASG,EAAQg7B,EAAqBxjB,EAAgBJ,EAAwBzX,GAuDxK,QA7NO+X,KACCC,GA8NAH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GA5NxC,MAAfA,EAAAlI,SACEwJ,EAAAqS,YAAmB3T,EAAIhJ,KACvB8/B,EAAgBy4D,aAAAxvF,KAAA,SAAAC,GACQ,MAAxBA,EAAYlI,SACFwJ,EAAAg3B,YAAQt4B,EAAAhJ,KAClBsK,EAAWsS,WAAA,IAEP,SAAS3R,GACP5I,EAAI2I,YAAY,QAAA,mBAAA,oBA+NpBV,EAAGsS,WAAY,IA3NvB,SAAY3R,GACT5I,EAAG2I,YAAY,QAAA,mBAAA,oBAkO1B,QA7NQ+gB,GAAgBtP,GA8NhBA,EA3NAP,EAAgB8P,eAAYvP,GAAA1T,KAAA,SAAAC,GACV,MAAZA,EAAAlI,QACAwJ,EAAA2hB,YAAWjjB,EAAAhJ,KA8NLsK,EAAG2hB,YAAYxmB,OAAS,GACxBd,EAAQ8C,OAAO,UAAW,4CAA8C9F,WAAW,EAAM+F,KAAM,OAEnG4C,EAAGsS,WAAY,GA3NnBva,EAAA2I,YAAwB,QAAI,yBAAa,mBAE7C,SAAIC,GACA5I,EAAA2I,YAAuB,QAAQ,mBAAiB,qBAGpDV,EAAAq0F,KAAIxyE,gBAAW,KA8Nf7hB,EAAGq0F,KA7NCtyC,2BAAuB,KA8N3B/hD,EAAGq0F,KA7NCv4B,mBAAsB,KA8N1B97D,EAAGq0F,KA7NCiX,kBAAsB,MAiOlC,QAAS9W,GAA4B1+F,GAC7BA,EAEA0/B,EAAoBg4D,4BAA4B13F,GAAW2I,KAAK,SAASC,GA5N7E,MAAAA,EAAAlI,QACUwJ,EAAAs0F,uBAAA51F,EAAAhJ,KA8NMsK,EAAGs0F,uBAAuBn5F,OAAS,GA5N/Cd,EAAkB8C,OAAQ,UAAA,6CAAgB9F,WAAA,EAAA+F,KAAA,OAC1C4C,EAAUsS,WAAA,GAEHva,EAAA2I,YAAA,QAAA,yBAAA,mBAEP,SAAAC,GACA5I,EAAc2I,YAAG,QAAiB,mBAAA,qBAGlCV,EAAAq0F,KAAAtyC,2BAAmC,KACnC/hD,EAAAq0F,KAAQv4B,mBAAI,KACZ97D,EAAAq0F,KAAAiX,kBAAa,MAkOrB,QAAS7W,GAAyB3+F,EAAWomD,GA5NrCA,EA+NA10B,EAAeq+C,wBAAwB/vE,EAAWomD,GAAYz9C,KAAK,SAASC,GACrD,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KACpBsK,EAAGqoD,eAAeltD,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,gDAAkD9F,WAAW,EAAM+F,KAAM,OA5NnH4C,EAAAsS,WAAA,GAEYva,EAAW2I,YAAK,QAAA,yBAAA,eA+NrB,SA7NIC,GACH5I,EAAQ2I,YAAS,QAAc,mBAAA,iBAgOnCV,EAAGq0F,KA7NKv4B,mBAAqB,KA8N7B97D,EAAGq0F,KAAKiX,kBA7NU,KA8NlBtrG,EAAGu0F,kBAKX,QAASG,GA7NM5+F,EAAAwhC,GA8NPA,GACAt3B,EAAGq0F,KA7NIiX,kBAAY,GA8NnB9jF,EAAes+C,aAAahwE,EAAWwhC,GAAc74B,KAAK,SAASC,GAC5C,MAAfA,EAAIlI,QA5NJwJ,EAAAu0F,cAAK71F,EAAAhJ,KACFsK,EAAAu0F,cAAYp5F,OAAS,GAC7Bd,EAAY8C,OAAA,UAAA,kDAAA9F,WAAA,EAAA+F,KAAA,OA8NP4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,eA3NjE,SAAAC,GACG5I,EAAA2I,YAAkB,QAAA,mBAAA,iBAGvBV,EAAAq0F,KAAKiX,kBAAoB,KAiOhC,QAASrW,GAAmBC,GACpBA,GA5NR1tE,EAASy+C,aAAqBivB,EAAA,GAAAz2F,KAAA,SAAAC,GAClB,GAAA,MAAAA,EAAAlI,OAAA,CACAwJ,EAAAktB,WAAAxuB,EAAqBhJ,IACrB,KAAA,GAAAwF,KAAA8E,GAAoBktB,WAAA,CACtB,GAAAynE,GAAkB9oE,WAAA7rB,EAAAktB,WAAAhyB,GAAAo0G,YAAAxjF,QAAA,GAgOJhE,EAAI6sE,CACR7sE,GAAIA,EAAE3kB,UA5NjB,IAAA0xF,GAAgB,EACb/sE,GAAA1kB,QAAqB,KAAA,IACrByxF,EAAoB/sE,EAAAxE,UAAAwE,EAAA1kB,QAAA,KAAA0kB,EAAA3sB,SACtB2sB,EAAA7gB,KAAkBC,MAAA4gB,GAChBA,EAAAA,EAAA3kB,UACF,IAAA2xF,GAAmBhtE,EAAAxE,UAAAwE,EAAA3sB,OAAA,GA8NL45F,EAAejtE,EAAExE,UAAU,EAAGwE,EAAE3sB,OAAS,EACzB,KAAhB45F,IA5NfD,EAAsB,IAAAA,GACnB90F,EAAAktB,WAAoBhyB,GAAAo0G,WAAAzjF,WAAA7rB,EAAAktB,WAAAhyB,GAAAo0G,YAAAxjF,QAAA,GACtB9rB,EAAAktB,WAAkBhyB,GAAAgpG,QAAAr4E,WAAA7rB,EAAAktB,WAAAhyB,GAAAgpG,SAAAp4E,QAAA,GAMxB,IAAA,GAAA5wB,KAAA8E,GAAAktB,WACMltB,EAAAktB,WAAkBhyB,GAAAo0G,WAAAzjF,WAAA7rB,EAAAktB,WAAAhyB,GAAAo0G,YAAAxjF,QAAA,EAElB9rB,GAAAktB,WAAmB/xB,OAAA,GACzBd,EAAA8C,OAAA,UAAA,uBAAA9F,WAAA,EAAA+F,KAAA,WAGKrF,GAAA2I,YAAyB,QAAA,yBAAA,eAExB,SAAAC,GA8NE5I,EAAW2I,YAAY,QAAS,mBAAoB,gBA1MhE,GA7NIV,GAAIC,IA+NRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GA5N/BzU,EAAAuU,YAAAE,GAgOJzU,EAAGgT,YA7NY,EA8NfhT,EAAG+S,WA7NY,EA8Nf/S,EAAGsS,WA7NS,CA8NZ,IAAIpS,GA7NY/F,EAAoBgG,uBA8NhCgS,EA7NYhY,EAASgG,uBAAAwU,gBAAAxC,SA8NzBnS,GAAGyhB,oBA7NaA,EA8NhBzhB,EAAGw0F,4BAA8BA,EACjCx0F,EAAGy0F,yBA7NaA,EA8NhBz0F,EAAG00F,2BA7NwBA,EA+N3B10F,EAAGi1F,mBA7NaA,EA8NhBj1F,EAAGq1F,MACHr1F,EAAGq0F,QACHt8F,EAAW2c,SA7NK,EA8NhBxC,IAEAlS,EAAGu7C,eACCC,aA7NY,UA8NZnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAAM,MAIVroB,EAAGs1F,mBACCC,aA7NW,wBA8NXC,YA7NW,IA+NXD,aA7NW,0BA8NXC,YAAY,IAGhBx1F,EAAG+yF,iBACCC,eA7NO,UA8NPC,aAAc,MAEdD,eAAgB,QAChBC,aAAc,MAEdD,eAAgB,UAChBC,aAAc,MA8JlBjzF,EAAGi2F,WA7NO,SAAOnjF,GA8Nb9S,EAAGsS,WAAY,CACf,IAAIrX,IACAnF,UAAWkK,EAAGq0F,KAAKxyE,gBAAgB/rB,UA5NvCwhC,aAAAt3B,EAAAq0F,KAAAv4B,mBAAAxkC,aACR49D,YAAAl1F,EAAAq0F,KAAAiX,kBAAApW,YA8NY90F,SAAUF,EAAWG,OACrB++C,iBAAkBp/C,EAAGq0F,KAAKlhF,gBAAgB84B,YA7NtD3pB,YAAAtiB,EAAAq0F,KAAAxyE,gBAAAS,YACY4hC,QAAA,eAAAlkD,EAAAq0F,KAAAv4B,mBAAAjZ,eAAA,kDAAA7iD,EAAAq0F,KAAAiX,kBAAArI,YAGZz7E,GAASo+C,oBAAgC3qE,GAAAwD,KAAS,SAAQC,GAClD,GAAK,MAAAA,EAAAlI,OAAA,CA+NGwJ,EAAG8Z,cAAgBpb,EAAIhJ,KA7NhCsK,EAAAsS,WAAqB,CACrB,IAAW2D,GAAGnf,SAAAijB,cAAgB,IA+NrBjjB,UAASC,KAAKijB,YAAY/D,GA7NnCA,EAAAgE,MAAc,eACd,IAAArc,GAAA,GAAuBC,OAAAa,EAAShJ,OACxBqI,KAAc,oBAgOTtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EA5N9CnD,GAAY4E,KAAA5K,EAAA,UACZsD,EAAY2I,YAAA,UAAA,eAAA,uBAEX3I,GAAY2I,YAAA,QAAsB,kBAAuBrJ,WAAA,EAAgB+F,KAAA,OAC1E4C,EAAAsS,WAAsB,GAEtB,SAAA3R,GACA5I,EAAA2I,YAAA,QAA6B,iBAAArJ,WAAA,EAAA+F,KAAA,OA+NxB4C,EAAGsS,WAAY,KAMvBtS,EAAG2vF,YAAc,SAAS78E,GA7NvB9S,EAAAsS,WAAgB,CACf,IAAArX,IACAnF,UAAMkK,EAAAq0F,KAAAxyE,gBAAA/rB,UACPwhC,aAAAt3B,EAAAq0F,KAAAv4B,mBAAAxkC,aACC49D,YAAcl1F,EAAAq0F,KAAAiX,kBAAApW,YACd90F,SAAMF,EAAAG,OA+NF++C,iBAAkBp/C,EAAGq0F,KAAKlhF,gBAAgB84B,YAC1C3pB,YAAatiB,EAAGq0F,KAAKxyE,gBAAgBS,YACrC4hC,QAAS,eAAiBlkD,EAAGq0F,KAAKv4B,mBAAmBjZ,eAAiB,kDAAoD7iD,EAAGq0F,KAAKiX,kBAAkBrI,YAzNxJz7E,GAAco+C,oBAAA3qE,GAAAwD,KAAA,SAAAC,GACd,GAAY,MAAZA,EAAYlI,OAAA,CA+NJwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CA7NxB,IAAArX,IACCuF,QAAgBN,EAAAM,QAChBk/C,KAAc1/C,EAAA8Z,cACf6lC,WAAA,GAECvgD,EAAc7E,EAAA8E,MACfhI,WAAA,EACCiI,eAAgB,cAChBC,gBAAc,aA+NFrK,YAAa,8DACbE,WAAY,kBA7NZC,aAAA,KACR+H,KAAW,KACXoC,SAAe,SACPC,UAAI,EACJyQ,SACA3N,MAAA,WACQ,MAAItH,MAmOhBmE,GA9NQM,OAAWjB,KAAA,SAAYC,KAgO5B,kBA3NHsB,GAAAsS,WAAW,EA+NXjY,EAAQwH,MAAM,QAAS,oDAAsDxK,WAAW,EAAM+F,KAAM,MAExG4C,GAAGsS,WAAY,KAIvBtS,EAAG0R,OAAS,WACR1R,EAAGq0F,KA9NClhF,gBAAA,KA+NJnT,EAAGq0F,KA9NKxyE,gBAAQ,KA+NhB7hB,EAAGq0F,KAAKtyC,2BA9NyB,KA+NjC/hD,EAAGq0F,KAAKv4B,mBA9NW,KA+NnB97D,EAAGq0F,KAAKiX,kBA9NgB,oMAvFhCl3G,QACKC,OA7NO,uBA8NPe,WAAW,sBAAuBi6G,MA2T3C,WACI,YAMA,SAASE,GAAcx3G,EAAW0C,EAAQN,GAmBtC,QA9NQ+X,KA+NJzX,EA9NO9F,SAAK66G,KAAA,8CA2MhB,GAAIxvG,GAAKC,IAETD,GAAGqU,kBA9NgBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA+NnBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA9Na,EA+NhBvU,EAAGwU,qBA9NgB,SAAAC,GA+NfzU,EAAGuU,YA9NaE,GAiOpBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,CA7NJnY,GAAcgG,sBAiOzBpI,GA9NW2c,SAAA,EA+NXxC,+DAtBJ9d,QACKC,OA9NO,uBA+NPe,WA9NU,gBAAKm6G,MA4PxB,WACI,YAOA,SAASE,GAAahlG,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ4X,EAAwBzX,GAsB9F,QAAS+X,KACLN,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GA7N3C,MAAdA,EAAAlI,QACCwJ,EAAA0vG,aAAWhxG,EAAAhJ,KA+NXsK,EAAGsS,WAAY,GA5NhBjY,EAAKwH,MAAA,QAAA,yBAAoB,qBAgO7B,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,sBA9BnD,GAAI7B,GAAKC,IAEPD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MAC3FrL,EAAGsU,SA9NMtU,EAAAqU,gBAAA,GAgOTrU,EAAGuU,YA9NW,EA+NdvU,EAAGwU,qBA9NsB,SAAAC,GA+NvBzU,EAAGuU,YAAcE,GAKrBzU,EAAGgT,YA9NK,EA+NRhT,EAAG+S,WA9NQ,EA+NX/S,EAAGsS,WA9NK,EA+NRtS,EAAGwkB,gBACHzsB,EAAW2c,SA9NQ,CA+NnB,IAAIvC,GA9NYhY,EAAqBgG,uBAASwU,gBAAAxC,SAgO9CD,KAeAlS,EAAG2vG,YA9Na,SAAI78F,GA+NhB,GAAIpd,IACAqd,WA9NQ,EA+NR68F,SAAU,EACV/rF,QAAS/Q,EACT2+C,QAAQ,EAEZz3D,GAAO8F,GAAG,mBACNpK,KAAMA,4HAhDlBtB,QACKC,OAAO,2BACPe,WAAW,eA9NOq6G,MAiR3B,WACI,YAOA,SAASI,GAAsBplG,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQG,EAAuByX,GAqBtG,QA9NOM,KACHN,EAAU+pE,wBAAAxpE,GAAA1T,KAAA,SAAAC,GACa,MAAnBA,EAAAlI,QACAwJ,EAAA8vG,wBAAsBpxG,EAAAhJ,KACtBsK,EAAAsS,WAAgB,GAEhBjY,EAAAwH,MAAkB,QAAQ,yBAAgB,sBAgO3C,SA9NUlB,GA+NTtG,EAAQwH,MAAM,QAAS,mBAAoB,uBA7BnD,GAAI7B,GAAKC,IAEPD,GAAGqU,kBA9NoBhJ,MAAQ,IAAAA,MAAY,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA+N3CrL,EAAGsU,SAAWtU,EAAGqU,gBA9Ne,GAgOhCrU,EAAGuU,YA9NW,EA+NdvU,EAAGwU,qBA9NuB,SAAOC,GA+N/BzU,EAAGuU,YAAcE,GAKrBzU,EAAGgT,YA9NS,EA+NZhT,EAAG+S,WAAY,EACf/S,EAAGsS,WA9NQ,EA+NXtS,EAAGwkB,gBACHzsB,EAAW2c,SAAU,CACrB,IAAIvC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KAeAlS,EAAG+vG,YA9NY,SAAAj9F,GA+NX,GAAIpd,IACA6kE,QA9NQ,EA+NR12C,QA9NI/Q,EAgOR9Y,GAAO8F,GA9NC,mBA+NJpK,KAAMA,KAIdsK,EAAG2vG,YA9NS,SAAa78F,GA+NrB,GAAIpd,IACAqd,WA9NO,EA+NP68F,SA9NI,EA+NJ/rF,QA9NO/Q,EA+NP2+C,QAAQ,EAGZz3D,GA9NO8F,GAAA,mBA+NHpK,KAAMA,4HA1DlBtB,QACKC,OAAO,2BACPe,WAAW,wBA9NyBy6G,MA4R7C,WACI,YAOA,SAASG,GA9NYj4G,EAAoByC,EAAKH,EAAAL,EAAmBD,EAAAI,EAAiB6X,EAAAJ,EAAuD4vC,GA6PrI,QAAStvC,KACLlS,EAAGshB,eAAkBC,SAAU,QAASC,SAAU,IAAOD,SAAU,sCAAuCC,SAAU,IAAOD,SAAU,gCAAiCC,SAAU,IAAOD,SAAU,WAAYC,SAAU,IACjND,SA9NK,UAAWC,SAAA,IAAAD,SAAA,sBAAAC,SAAA,IAiOtBxP,EA9NWI,mBAAY6oB,GAAAx8B,KAAA,SAAAC,GACD,MAAdA,EAAAlI,QA+NAwJ,EAAGqS,YAAc3T,EAAIhJ,KA7NtBsK,EAAAsS,WAAY,GAgOXva,EAAW2I,YAAY,QAAS,yBAA0B,YA5NnE,SAASC,GACL5I,EAAK2I,YAAkB,QAAA,mBAAA,aAmO9B,QAASuvG,GAAsB99F,EAAW5T,GAEtC,GADAyB,EAAGsS,WAAY,EACXH,EAAW,CACXnS,EAAG+mE,IAAIllD,gBAAkB,IACzB,IAAI65D,IAAa,CACjB9pE,GAAuB6pE,sBAAsBtpE,EAAWupE,GAAYj9E,KAAK,SAASC,GAC3D,MAAfA,EAAIlI,QA7NfwJ,EAAA2hB,YAAAjjB,EAAAhJ,KACTsK,EAAA2hB,YAAAxmB,OAAA,GA+NwBd,EAAQ8C,OAAO,UAAW,4BAA8B6C,EAAG+mE,IAAI5zD,gBAAgB84B,aAC3E50C,WAAW,EA9NvC+F,KAAA,OAkOoB4C,EAAGsS,WAAY,EA9NZ/T,GACVA,KAENxG,EAAqB2I,YAAc,QAAE,yBAAkC,aAiO/D,SAASC,GA9NjB5I,EAAc2I,YAAA,QAAA,mBAAA,kBAkOTV,GAAG+mE,IAAIllD,gBAAkB,KACzB7hB,EAAG2hB,eAKX,QAAS2Q,GAAQ50B,EAAOg2D,GACpB,GAAIw8C,KAMJ,OApOJxyG,GAAAmF,QAAW,SAAUglB,GACrB,GAAAsoF,GAAAxzG,KAAAqkB,UAAA0yC,EAAA7rC,GACAqoF,GAASC,GAAOD,EAAAC,OACZD,EAAQC,GAASt4G,KAAAgwB,KAiOVjlB,OAAOD,KAAKutG,GAAQ5jF,IAAI,SAAS6jF,GACpC,MAAOD,GAAOC,KAItB,QAASC,GAAUt6G,GA9N1BkK,EAAYsS,WAAA,EACTtS,EAAAqwG,WAgOQ7uD,EAAkBywB,iBAAiBn8E,EAAWkK,EAAGwhB,UAAU/iB,KAAK,SAASC,GACrE,GAAmB,MAAfA,EAAIlI,OAAgB,CA/NpC,GAAA,IAAAwJ,EAAAwhB,SAAA,CACYxhB,EAAAkiB,KAAA,EACIliB,EAAAmiB,YAAgB3nB,EAAAyC,OAAAyB,EAAAhJ,MAAA46G,UAAA,GAiOZ,IAAI5wG,GAAS4yB,EAAQtyB,EAAGmiB,YAAa,SAASrf,GAC1C,OAAQA,EAAKytG,sBAAuBztG,EAAKs0B,aA9NpDp3B,GAAAwwG,WAAA,EAiOOxwG,EAAGwwG,WAAa9wG,EAAOvE,MA/NlC,KAAA,GAAoBD,GAAA,EAAAA,EAASwE,EAAKvE,OAASD,IAAM,CACnC,GAAAu1G,GAAgB/wG,EAAAxE,EAiOf,KAAK,GAAIiP,KAAKsmG,GA/Nf,MAAAtmG,GACSnK,EAAAqwG,QAASx4G,KAAK44G,EAAA,IAmO1B,IAAK,GAAItmG,GAAI,EAAGA,EAAInK,EAAGqwG,QAAQl1G,OAAQgP,IACH,KAA5BnK,EAAGqwG,QAAQlmG,GAAGumG,YACd1wG,EAAGqwG,QAAQlmG,GAAGumG,UAAY,YA7NnC1wG,GAAAoiB,gBAAA5nB,EAAAyC,OAAAyB,EAAAhJ,MAAA46G,UAAA,GACZ,IAAe5wG,GAAA4yB,EAAAtyB,EAAAoiB,gBAAA,SAAAtf,GACP,OAAUA,EAAAytG,sBAAAztG,EAAAs0B,aAkOLp3B,GAAG2wG,cAAgB,EA/NnC3wG,EAAA2wG,cAAAjxG,EAAAvE,MAiOgB,KAAK,GAAID,GAAI,EAAGA,EAAIwE,EAAOvE,OAAQD,IAAK,CA/NxC,GAAAu1G,GAAA/wG,EAAAxE,EACZ,KAAA,GAAuBiP,KAAAsmG,GACK,MAALtmG,GACZnK,EAAeqwG,QAAIx4G,KAAA44G,EAAA;CAGtB,IAAQ,GAAAtmG,GAAM,EAAAA,EAASnK,EAAAqwG,QAAAl1G,OAAAgP,IAiOiB,KAA5BnK,EAAGqwG,QAAQlmG,GAAGumG,YA/NhB1wG,EAAAqwG,QAAAlmG,GAAAumG,UAAA,iBAmOH,IAAoB,IAAhB1wG,EAAGwhB,SAAgB,CAC1BxhB,EAAGkxE,OAAQ,EA/NxBlxE,EAAc4wG,YAAep2G,EAAAyC,OAAAyB,EAAAhJ,MAAA46G,UAAA,GACjB,IAAA5wG,GAAA4yB,EAAAtyB,EAAA4wG,YAAA,SAAA9tG,GACI,OAAAA,EAAAytG,sBAAAztG,EAAAs0B,aAEXp3B,GAAS6wG,WAAA,EACD7wG,EAAA6wG,WAAAnxG,EAAAvE,MAiOA,KAAK,GAAID,GAAI,EAAGA,EAAIwE,EAAOvE,OAAQD,IAAK,CA/N1C,GAAAu1G,GAAmB/wG,EAAAxE,EACnB,KAAA,GAAAiP,KAAAsmG,GAiOoB,MAANtmG,GACAnK,EAAGqwG,QAAQx4G,KAAK44G,EAAc,IA7NrD,IAAA,GAAAtmG,GAAA,EAAAA,EAAAnK,EAAAqwG,QAAAl1G,OAAAgP,IACT,KAAAnK,EAAAqwG,QAAAlmG,GAAAumG,YAiO4B1wG,EAAGqwG,QAAQlmG,GAAGumG,UAAY,YA9N1C1wG,GAAA8wG,aAAAt2G,EAAAyC,OAAAyB,EAAAhJ,MAAA46G,UAAA,GACI,IAAA5wG,GAAA4yB,EAAyBtyB,EAAA8wG,aAAA,SAAAhuG,GAkOjB,OAAQA,EAAKytG,sBAAuBztG,EAAKs0B,aA/NxDp3B,GAAA+wG,cAA8B,EAC1B/wG,EAAA+wG,cAAArxG,EAAAvE,MAkOO,KAAK,GAAID,GAAI,EAAGA,EAAIwE,EAAOvE,OAAQD,IAAK,CAhOnD,GAAmBu1G,GAAe/wG,EAAAxE,EACpB,KAAA,GAAAiP,KAAAsmG,GAkOe,MAANtmG,GAhOTnK,EAAAqwG,QAAAx4G,KAAA44G,EAAA,IAqOH,IAAK,GAAItmG,GAAI,EAAGA,EAAInK,EAAGqwG,QAAQl1G,OAAQgP,IACH,KAA5BnK,EAAGqwG,QAAQlmG,GAAGumG,YACd1wG,EAAGqwG,QAAQlmG,GAAGumG,UAAY,iBA7N/CM,GAAetyG,EAAAhJ,KAGlBsK,GAAAqwG,QAAAl1G,QAAA,GAkOgBd,EAAQ8C,OAAO,UAAW,qCAAuC6C,EAAG+mE,IAAIllD,gBAAgBS,aAhOxFjrB,WAAA,EACZ+F,KAAA,OAGQ4C,EAAGsS,WAAY,MAEfva,GAAQ2I,YAAe,QAAA,yBAA0B,OAkOjDV,EAAGsS,WAAY,GAEpB,SAjOS3R,GAkOR5I,EAAW2I,YAAY,QAAS,mBAAoB,OACpDV,EAAGsS,WAAY,IAIvB,QAjOQ0+F,GAAQjqC,GAqOZ,IAjOI,GAHArnE,GAAS4yB,EAAAy0C,EAAA,SAAAjkE,GAkOT,OAAQA,EAAKytG,sBAAuBztG,EAAKs0B,cA/NzCl8B,EAAM,EAAAA,EAAAwE,EAAAvE,OAAAD,IAAA,CAkON,GAAIu1G,GAAgB/wG,EAAOxE,EAC3B,KAAK,GAAIiP,KAAKsmG,GACA,MAANtmG,GAhObnK,EAAcqwG,QAAUx4G,KAAK44G,EAAA,IAoO5B,IAjOI,GAAAtmG,GAAA,EAAUA,EAAAnK,EAAAqwG,QAAAl1G,OAAAgP,IACD,KAATnK,EAAAqwG,QAASlmG,GAAAumG,YACT1wG,EAAAqwG,QAAQlmG,GAAAumG,UAAA,aAqOhB,QAjOQ/tF,KAkOJ3iB,EAAGkiB,KAAM,EACTliB,EAAGwhB,SAAW,EACdxhB,EAAGqwG,QAAU71G,EAAOyC,OAAO+C,EAAGqwG,SAAWC,UAAa,IA9NjE,QAAW1tF,KACR5iB,EAAAkiB,KAAA,EAkOQliB,EAAGwhB,SAAW,EACdxhB,EAAGqwG,QAAU71G,EAAOyC,OAAO+C,EAAGqwG,SAAWC,UAAa,IAI1D,QAASW,KAhObjxG,EAASkxE,OAAA,EACDlxE,EAAAwhB,SAAK,EAmOLxhB,EAAGqwG,QAAU71G,EAAOyC,OAAO+C,EAAGqwG,SAAWC,UAAa,IAI1D,QAASY,KAhONlxG,EAAAkxE,OAAA,EAmOClxE,EAAGwhB,SAlOI,EAmOPxhB,EAAGqwG,QAAU71G,EAAOyC,OAAO+C,EAAGqwG,SAAWC,UAAa,IAuB1D,QAlOQa,GAAYr+F,GAmOhB,GAAIpd,IACA07G,QAASt+F,EAjOb2+C,QAAA,EAEW,IAkOPzxD,EAAGwhB,UAlOsB,GAAlBxhB,EAAckxE,QAmOrBx7E,EAlOI27G,WAAG,GAqOXr3G,EAAO8F,GAAG,sBAjOPpK,KAAAA,EAoOCE,OAAQoK,EAAGwhB,WA9QnB,GAAIxhB,GAAKC,IAGTD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SA9NCtU,EAAAqU,gBAAe,GAgOnBrU,EAAGuU,YA9NY,EA+NfvU,EAAGwU,qBA9NY,SAAYC,GA+NnBzU,EAAGuU,YA9NWE,GAiOtBzU,EAAGgT,YA9Na,EA+NhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WA9NS,EA+NZva,EAAW2c,SA9NK,EA+NhB1U,EAAGwhB,SAAWxnB,EA9NEvE,OAAAG,OAgOhBoK,EAAGmiB,eACHniB,EAAGoiB,mBACHpiB,EAAGiwG,sBA9NaA,EA+NhBjwG,EAAG2iB,UAAYA,EACf3iB,EAAG4iB,sBA9NuBA,EA+N1B5iB,EAAGmxG,gBA9NaA,EA+NhBnxG,EAAGixG,YA9NaA,EA+NhBjxG,EAAGkxG,aAAeA,EAClBlxG,EAAGowG,UAAYA,EACfpwG,EAAGsyB,QAAUA,CACb,IAAI2I,GAAY9gC,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KAhBAlS,EAAGkkB,KAAA,WAEkB,IAArBlkB,EAAWwhB,UAAU,IAAAxhB,EAAAwhB,SAClBxhB,EAAAkiB,KAAW,EAmOiB,IAAhBliB,EAAGwhB,UAAkC,IAAhBxhB,EAAGwhB,WAjOpCxhB,EAAAkxE,OAAc,IAIjBlxE,EAAGsxG,oBAAA,WACAC,qBACAvxG,EAAAgT,YAAc,EACdhT,EAAAwxG,cAAe,EACfxxG,EAAAyxG,SAAY,sJA/BnBr9G,QACKC,OA9NO,2BA+NPe,WA9NO,0BAAqB46G,MAwfrC,WACI,YAOA,SAAS0B,GAAkBjnG,EAAQ1S,EAAYiC,EAAQQ,EAAQH,EAASN,EAAOG,EAAWyJ,EAAexJ,EAAuBugD,EAAoB1oC,EAAgBJ,EAChK4oC,EAAaI,EAAsB2G,EAAkBxG,EAAsBF,EAA4BF,EACvGG,EAlOmBE,EAAYzgD,GAqU/B,QAAS2X,KACa,GAAdlS,GAAG2xG,QACC33G,EAAOvE,OAAOC,KAlOK+7D,UAAQ,IAmO3BzxD,GAAGoxG,QAAUp3G,EAAOvE,OAAOC,KAAK07G,QAChCpxG,GAAG4xG,OAAS5xG,GAAGoxG,QAAQh6E,WACvBp3B,GAAG+mE,IAAIllD,mBACP7hB,GAAG+mE,IAlOCllD,gBAAgB/rB,UAAekK,GAAAoxG,QAAQt7G,UAmO3CkK,GAAG+mE,IAAIhjB,oBACP/jD,GAAG+mE,IAAIhjB,iBAlOgBD,WAAG9jD,GAAYoxG,QAAAttD,WAmOtC9jD,GAAG+mE,IAAI8qC,gBACP7xG,GAAG+mE,IAAI8qC,aAAavuD,cAAgBtjD,GAAGoxG,QAAQ9tD,cAC/CtjD,GAAG8xG,WAjOC70G,WAoOJ+C,GAAG8xG,UAAU70G,OAASN,KAAKC,MAAMoD,GAAGoxG,QAAQpkD,SAjO5C+kD,IAoOA/xG,GAAGyxD,QAlOK,EACM,MAkOVzxD,GAAGoxG,QAlOOryD,SAmOV/+C,GAAGoxG,QAAQryD,SAAW,UA/NvB/+C,GAAAoxG,QAAAryD,SAAA,YAKP/+C,GAAAyxD,QAAW,EAKnB,QAASugD,GAAAzzG,GACLyT,EAAaI,mBAAaD,IAAe1T,KAAA,SAAAC,GACxB,MAAbA,EAAQlI,SAmOJwJ,GAAGqS,YAAc3T,EAAIhJ,KAjOpB6I,GACDA,IACJyB,GAAKsS,WAAS,IAoOf,SAlOS3R,GAmOR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAASmiB,KACL,GAAIC,MACAC,IAjOR,KAAS,GAAA7nB,KAAA8E,IAAYi0B,QACdj0B,GAAMi0B,QAAA/4B,GAAA8nB,WACKrtB,QAAXqK,GAAWi0B,QAAA/4B,GAAA85B,QACXlS,EAAiBjrB,KAAAmI,GAAOi0B,QAAG/4B,GAAS85B,OAmO3BjS,EAAWlrB,KAAKmI,GAAGi0B,QAAQ/4B,GAAGgoB,YA9N1C,IAAGC,GAAWxmB,KAAAqkB,UAAA8B,EAqOd,OApOA9iB,IAAGojB,YAAUzmB,KAAOqkB,UAAU+B,GAmO9B/iB,GAAGqjB,SAAWF,EAAWG,UAAU,EAAGH,EAAWhoB,OAAS,GAClD6E,GAAG,SAIf,QAlOOujB,KACH,IAAG,GAAAroB,GAAA,EAAWA,EAAA8E,GAAAi0B,QAAA94B,OAAAD,IACX,IAAA8E,GAAAi0B,QAAiB/4B,GAAA8nB,UAoOZ,YADAhjB,GAAGwjB,gBAAiB,EA9N5BxjB,IAAAwjB,gBAAA,EAqOJ,QAlOOC,KAmOH,IAAK,GAAIvoB,GAAI,EAAGA,EAAI8E,GAAGi0B,QAAQ94B,OAAQD,IACnC8E,GAAGi0B,QAAQ/4B,GAAG8nB,UAAYhjB,GAAGwjB,eAvJrC,QAAGyuF,KACA,GAAA39C,IAAW,CACX,KAAA,GAAAp5D,KAAA8E,IAAiBi0B,QAAA,CACjB,GAAAj0B,GAAAi0B,QAAA/4B,GAAsB8nB,aAAA,EAEtB,MADAsxC,IAAA,CAIAA,IAAe,GAOlB,QAAG7yC,GAAuBtP,EAAA5T,GAEvB,GADAyB,GAAAsS,WAAY,EACZH,EAAA,CACA,GAAAupE,IAAY,CACZ9pE,GAAY6pE,sBAAAtpE,EAAAupE,GAAAj9E,KAAA,SAAAC,GACC,MAAAA,EAAAlI,QACAwJ,GAAA2hB,YAAAjjB,EAAAhJ,MACHsK,GAAA2hB,YAAAxmB,OAAA,GAoOOd,EAAQ8C,OAAO,UAAW,oDAlOzB9F,WAAA,EACN+F,KAAA,OAGJ4C,GAAAsS,WAAA,EAEX/T,KAEGlE,EAAoBwH,MAAA,QAAA,yBAAA,mBAEpB,SAASlB,GAoOAtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAjOnD7B,GAAAmmD,eAAY,EAGZnmD,GAAOi0B,eAGRj0B,IAAAmmD,eAAwB,EACrBnmD,GAAA+mE,IAAAllD,gBAAa,KACZ7hB,GAAA2hB,eACC3hB,GAAGi0B,WAyOX,QAASi+E,GAAchqD,EAAO3pD,GAG1B,GArOAyB,GAAGsS,WAAA,EACHqyC,KACuB,IAAnB3qD,EAAIvE,OAAAG,OAoOJ,GAnOIiiF,IAAG,MAqON,CACDA,GAAU,CACV,IAAIy4B,GAAYt2G,EAAOvE,OAAOG,OAElCilD,EAA2Bs3D,kBAAkBjqD,EAAO2vB,EAASy4B,GAAW7xG,KAAK,SAAUC,GAlOnE,MAAdA,EAAAlI,QACPwJ,GAAAk7C,QAAgBx8C,EAAAhJ,KACfsK,GAAAsS,WAAc,EAEf/T,KAEOxG,EAAA2I,YAAA,QAAA,yBAAA,0BAEV,SAAAC,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,2BAuOA,QAnOQg8C,GAAiB5mD,GAoOrBkK,GAAGsS,WAnOY,EAoOf03C,KACIl0D,GACA4kD,EAnOWiC,qBAAkB7mD,GAAA2I,KAAA,SAAAC,GAClB,MAAJA,EAAIlI,QACJwJ,GAAI8V,YAAApX,EAAAhJ,MAEAsK,GAAA8V,YAAe3a,OAAA,GACfd,EAAA8C,OAAa,UAAA,uCACjB9F,WAAY,EACX+F,KAAU,OAGd4C,GAAAsS,WAAA,GAEGjY,EAASwH,MAAA,QAAA,yBAAA,mBAqOb,SAnOQlB,GAoOPtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAMvD,QAnOSi7C,GAAAhnD,EAAAugB,EAAA0mC,EAAAx+C,GAsOL,GAFAyB,GAAGsS,WAnOI,EAoOP23C,KACI5zC,GAAavgB,GAAainD,EAAO,CACjC,GAAI9hD,IACAnF,UAAWA,EAlOdugB,UAAWA,EAChB2mC,MAAeD,EAqOX,IAnOyB,IAArB/iD,EAAGvE,OAAAG,OACH,GAAIiiF,IAAA,MAEJ,CAoOAA,GAAU,CAlOf,IAAAy4B,GAAet2G,EAAAvE,OAAAG,OAsOd+kD,EAAoBy3D,uBAAuBn3G,EAAInF,UAAWmF,EAAI+hD,MAAO/hD,EAAIob,UAAWwhE,EAASy4B,GAAW7xG,KAAK,SAAUC,GAChG,MAAfA,EAAIlI,QACJwJ,GAAG47C,aAAel9C,EAAIhJ,MAlOjBsK,GAAA47C,aAAAzgD,OAAA,GACFd,EAAA8C,OAAA,UAAA,qDACE9F,WAAA,EACA+F,KAAS,OAId4C,GAAAsS,WAAW,EAqOX/T,KAjORlE,EAAawH,MAAK,QAAU,yBAAA,mBAE7B,SAAWlB,GACNtG,EAAGwH,MAAA,QAAA,mBAAA,qBAwOf,QAnOSu7C,GAAkBtnD,EAAgBomD,EAAK39C,GAsO5C,GAFAyB,GAAGsS,WAnOS,EAoOZ43C,KACIp0D,GAnOIomD,EAAA,CAoOJ,GAAIjhD,IACAnF,UAAWA,EAlOhBomD,WAAiBA,EAEvB,IAAA,IAAAliD,EAAAvE,OAAAG,OACQ,GAAAiiF,IAAY,MAEV,CAoOCA,GAAU,CAlOrB,IAAAy4B,GAAAt2G,EAAAvE,OAAAG,OAsOOklD,EAAuBu3D,0BAA0Bp3G,EAAInF,UAAWmF,EAAIihD,WAAY27B,EAASy4B,GAAW7xG,KAAK,SAAUC,GAC5F,MAAfA,EAAIlI,QACJwJ,GAAGo8C,gBAAkB19C,EAAIhJ,MACpBsK,GAAGo8C,gBAAgBjhD,OAAS,GAC7Bd,EAAQ8C,OAAO,UAAW,0DACtB9F,WAAW,EACX+F,KAAM,OAId4C,GAAGsS,WAAY,EAEf/T,KAEAlE,EAAQwH,MAAM,QAAS,yBAA0B,sBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,wBAMvD,QAASy7C,GAAyBxnD,EAAWomD,EAAYrqB,EAAetzB,GAGpE,GAFAyB,GAAGsS,WAAY,EACfkzC,KACI1vD,GAAaomD,GAAcrqB,EAAe,CAC1C,GAAI52B,IACAnF,UAAWA,EACXomD,WAAYA,EACZrqB,cAAeA,EAEnB,IAA6B,IAAzB73B,EAAOvE,OAAOG,OACd,GAAIiiF,IAAU,MAEb,CACDA,GAAU,CACV,IAAIy4B,GAAYt2G,EAAOvE,OAAOG,OAGlColD,EAAgBs3D,mBAAmBr3G,EAAInF,UAAWmF,EAAIihD,WAAYjhD,EAAI42B,cAAegmD,EAASy4B,GAAW7xG,KAAK,SAAUC,GACjG,MAAfA,EAAIlI,QACJwJ,GAAGw9C,aAAe9+C,EAAIhJ,MACjBsK,GAAGo8C,gBAAgBjhD,OAAS,GAC7Bd,EAAQ8C,OAAO,UAAW,+DACtB9F,WAAW,EACX+F,KAAM,OAId4C,GAAGsS,WAAY,EAEf/T,KAEAlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAOvD,QAAS47C,GAAal/C,GAClByB,GAAGsS,WAAY,EACfozC,IACA,IAAIzqD,IACAob,UAAWrW,GAAG+mE,IAAIllD,gBAAgBxL,UAClCvgB,UAAWkK,GAAG+mE,IAAIllD,gBAAgB/rB,UAClC4nD,cAAe19C,GAAG+mE,IAAIppB,iBAAiBzB,WAlO/C0B,iBAAoB59C,GAAA+mE,IAAAlpB,oBAAAhsB,cACZisB,WAAQ99C,GAAA+mE,IAAAloB,iBAAA7+B,OACZ++B,SAAc/+C,GAAGi+C,iBAAS51B,KACtB40B,aAAO,EAEI,KAmOXjjD,EAnOIvE,OAAOG,OAoOXqF,EAAI48E,SAAU,GAGd58E,EAAI48E,SAAU,EACV58E,EAAIq1G,UAAYt2G,EAAOvE,OAAOG,OAC9BqF,EAAIoF,OAASH,GAAWG,QAEhCm6C,EAAY0D,kBAAkBjjD,GAAKwD,KAAK,SAAUC,GAC3B,MAAfA,EAAIlI,QAlOPwJ,GAAAm+C,SAAAz/C,EAAoBhJ,MACtBsK,GAAYm+C,SAAAhjD,OAAA,GACXd,EAAW8C,OAAA,UAAA,iDACP9F,WAAa,EACjB+F,KAAA,OAEQ4C,GAAG6lD,cAAc,GAqOjB7lD,GAAG6lD,cAnOS,EAqOhB7lD,GAAGsS,WAnOS,EAqOZ/T,KAGAxG,EAnOI2I,YAAA,QAAA,mCAAA,WAqOT,SAnOSC,MAwOhB,QAnOQmlD,GAAmBvnD,GAoOvByB,GAAGsS,WAAY,EACf00C,IACA,IAnOI/rD,IAoOAnF,UAAWkK,GAAG+mE,IAAIllD,gBAAgB/rB,UAEtC,IAnOuB,IAAnBkE,EAAGvE,OAAAG,OACH,GAAGiiF,IAAI,EACJ5gD,EAAAj3B,GAAc+mE,IAAA8qC,aAAA94F,OAqOhB,CACD8+D,GAAU,CACV,IAAI5gD,GAAUj3B,GAAG+mE,IAAI8qC,aAAa94F,GAC9Bu3F,EAAYt2G,EAAOvE,OAAOG,OAC1BmiF,GAAc,EAhOtBn9B,EAAAg9B,uBAAA38E,EAAAnF,UAAAmhC,EAAA4gD,EAAAy4B,EAAAv4B,GAAAt5E,KAAA,SAAAC,GACkB,MAAdA,EAAOlI,QACHwJ,GAAA68C,eAAUn+C,EAAAhJ,MAoOLsK,GAAG68C,eAAe1hD,OAAS,EAlOnCd,EAAA8C,OAAA,UAAA,6DACS9F,WAAA,EACN+F,KAAY,OAGR4C,GAAAmmD,eAAgB,EAEpBnmD,GAAGsS,WAAY,EAEf/T,KAsOAlE,EAAQwH,MAAM,QAAS,yBAA0B,aAEtD,SAnOClB,GAoOAtG,EAAQwH,MAAM,QAAS,mBAAoB,cAInD,QAnOOu8C,GAAYnjD,GACf,GAAAtF,QAAAsF,EAAA,CACI,GAAAojD,GAAWpjD,EAAAqjD,eAAAC,WAAAvjD,MAAA,IACXgF,IAAAu+C,aAoOA,KAnOI,GAAIrjD,KAAImjD,GAAA,CAoOR,GAnOIvF,IAoOA0F,cAAiBH,EAAOnjD,GAE5B8E,IAAGu+C,WAnOK1mD,KAAQihD,QAsOpB94C,IAAGu+C,cACHv+C,GAAG6lD,cAAe,CAEtBC,KAGJ,QAASysD,GAnOEC,GAoOP,GAAIjR,GAnOIiR,EAAc,EAwOtB,OAJAh4G,GAAOqI,QAAQ2vG,EAAS,SAAU3rD,GAC1BJ,EAAUI,GAAKJ,EAAU86C,KACzBA,EAAU16C,KAEX06C,EAGX,QAnOI96C,GAAAc,GACA,MAAI3gD,UAAA2gD,EAAajkC,UAAoB,IAsOzC,QAASmvF,GAnOc3uD,EAAAhuD,EAAAyI,GAsOnB,GAFAyB,GAAGsS,WAnOY,EAoOf00C,KAlOIlD,EAAW,CAoOX9jD,GAAG2uG,QAnOKhyG,KAAUC,MAAAoD,GAAA+mE,IAAAhjB,iBAAAC,MAoOlB,IAAIwuD,GAAUh4G,EAAOmI,KAAK3C,GAAG2uG,QAC7B3uG,IAAGuhG,QAnOEgR,EAAAC,GAoOLxyG,GAAG4uG,YAnOW5uG,GAAA2uG,QAAAE,KAqOd,IAAI5zG,IACA6oD,WAAYA,EAlOhBhuD,UAAAA,EACIwtD,cAAQtjD,GAAA+mE,IAAW8qC,aAAKvuD,cAoOxBrsB,QAnOOj3B,GAAA+mE,IAAA8qC,aAAmB94F,GAqO9B,IAnO2B,IAmOvB/e,EAAOvE,OAnOCG,OAoOR,GAAIiiF,IAnOQ,MAqOX,CACDA,GAAU,CACV,IAAIy4B,GAAYt2G,EAAOvE,OAAOG,OAElC2rD,EAnOYsnC,mBAAS5tF,EAAA6oD,WAAA7oD,EAAAnF,UAAAmF,EAAAg8B,QAAAh8B,EAAAqoD,cAAAu0B,EAAAy4B,GAAA7xG,KAAA,SAAAC,GAoOjB,GAnOI,MAAAA,EAAAlI,OAAA,CAoOA,IAnOG,GAAA0E,KAAAwD,GAAAhJ,KACHsK,GAAA6vF,gBAAuBlzF,KAAAC,MAAA8B,EAAAhJ,KAAAwF,GAAAwE,QAA0BskD,KAGrDhkD,IAAAonD,YAoOI5sD,EAAOqI,QAAQ7C,GAAG6vF,gBAAiB,SAAUhpC,GACzC,GAAI/N,IACAuO,KAAMR,EAAEQ,KACRI,SAAUZ,EAAEY,SAlO3BX,OAAoC,UAApCD,EAAyBY,SAAuBZ,EAAAC,UAErD9mD,IAAAonD,SAAAvvD,KAAAihD,KAuPY94C,GAAG4mD,YAnOW5mD,GAAAonD,SAoOdpnD,GAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAnOSC,GAoOR5I,EAnOI2I,YAAA,QAAA,mBAAA,oBAsORV,IAAGi0B,WAOX,QAAS89E,KAlOT/xG,GAAAsS,WAAS,EACLtS,GAAGi0B,WACH,IAAAj6B,EAAAvE,OAAAG,SACIoK,GAAA8xG,WACI70G,WAqOJzC,EAnOIqI,QAAA7C,GAAYonD,SAAA,SAAAF,GACZA,EAAA47C,oBAoOI9iG,GAAG8xG,UAAU70G,OAAOiqD,EAAKO,UAAYP,EAAK47C,kBAAkB/7C,UAIxE,IAAI9rD,IACAnF,UAnOIkK,GAAU+mE,IAAAllD,gBAAA/rB,UAoOdguD,WAnOQ9jD,GAAA+mE,IAAYhjB,iBAAcD,WAoOlCR,cAAiBtjD,GAAG+mE,IAAI8qC,aAAavuD,cACrCovD,YAAe/1G,KAAKqkB,UAAUhhB,GAAG8xG,WAjOV,KAmOvB93G,EAnOIvE,OAAQG,QAAgB,IAAAoE,EAAAvE,OAAAG,QAoO5BmlD,EAnOWqrB,aAAmBnrE,GAAAwD,KAAA,SAAAC,GAoO1B,GAnOY,MAARA,EAAIlI,OAAI,CAoORgE,EAnOIqI,QAAQnE,EAAOhJ,KAAA,SAAWi9G,GAoO1BA,EAnOIC,WAAWj2G,KAAAC,MAAA+1G,EAAAC,YAoOfD,EAnOIE,eAAMl2G,KAAAC,MAAA+1G,EAAAE,gBAoOVF,EAAIG,WAAan2G,KAAKC,MAAM+1G,EAAIG,cAhOpC9yG,GAAGi0B,QAAAv1B,EAAYhJ,KACfsK,GAAA+yG,SAAa/yG,GAAAi0B,QAAA94B,OAqOb6E,GAnOGgzG,QAAA,CACH,KAAA,GAAQ93G,GAAA,EAAMA,EAAA8E,GAAS+yG,SAAA73G,IAoOnB8E,GAAGgzG,SAAWnnF,WAAW7rB,GAAGi0B,QAAQ/4B,GAAGw5B,QAI/C10B,GAAGsS,WAAY,EACftY,EAAOvE,OAAOC,KAAK+7D,QAAS,GAE7B,SAAU9wD,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAlOvDV,GAAAsS,WAAa,IAGR,IAANtY,EAAMvE,OAAAG,QACNmlD,EAAkB94B,yBAAgBhnB,GAAAwD,KAAA,SAAAC,GAClC,GAAkB,MAAlBA,EAAWlI,OAAO,CAClBgE,EAAeqI,QAAOnE,EAAAhJ,KAAA,SAAiBi9G,GACvCA,EAAAC,WAAyBj2G,KAAAC,MAAA+1G,EAAAC,YACbD,EAAGE,eAAIl2G,KAAiBC,MAAA+1G,EAAAE,gBAC1BF,EAAGG,WAAAn2G,KAAiBC,MAAA+1G,EAAAG,cAqOtB9yG,GAAGi0B,QAAUv1B,EAAIhJ,KAlOlBsK,GAAA+yG,SAAO/yG,GAAWi0B,QAAG94B,OAqOpB6E,GAAGgzG,QAAU,CAlOpB,KAAA,GAAA93G,GAAA,EAAAA,EAAA8E,GAAA+yG,SAAA73G,IACG8E,GAAUgzG,SAAAnnF,WAAA7rB,GAAAi0B,QAAA/4B,GAAAw5B,OAEN10B,IAAAi0B,QAASz5B,EAAWyC,OAAA+C,GAAAi0B,SAAAq8E,UAAA,IAEhCtwG,GAAAsS,WAAY,EACJtY,EAAIvE,OAAAC,KAAW+7D,QAAK,EACpBv/C,KAoOD,SAnOSvR,GAoOR5I,EAnOI2I,YAAe,QAAW,mBAAA,cAoO9BV,GAAGsS,WAnOK,IAGD,IAmOXtY,EAAOvE,OAnOIG,QAoOXmlD,EAnOWwrB,YAAAtrE,GAAAwD,KAAA,SAAAC,GAoOP,GAnOO,MAAHA,EAAGlI,OAAe,CAoOlBgE,EAAOqI,QAAQnE,EAAIhJ,KAAM,SAAUi9G,GAlOpCA,EAAAC,WAAYj2G,KAAAC,MAAA+1G,EAAAC,YACXD,EAAAE,eAASl2G,KAAAC,MAAA+1G,EAAAE,gBACbF,EAAAG,WAAAn2G,KAAAC,MAAA+1G,EAAAG,cAEG9yG,GAAAi0B,QAAAv1B,EAAAhJ,KACHsK,GAAA+yG,SAAW/yG,GAAAi0B,QAAY94B,OAE5B6E,GAAUgzG,QAAK,CAoON,KAAK,GAAI93G,GAAI,EAAGA,EAAI8E,GAAG+yG,SAAU73G,IAC7B8E,GAAGgzG,SAAWnnF,WAAW7rB,GAAGi0B,QAAQ/4B,GAAGw5B,OAE3C10B,IAAGi0B,QAAUz5B,EAAOyC,OAAO+C,GAAGi0B,SAAWq8E,UAAa,IAjO/DtwG,GAAAsS,WAAY,EACftY,EAAAvE,OAAAC,KAAA+7D,QAAA,EACIv/C,KACA,SAAWvR,GAoOP5I,EAAW2I,YAAY,QAAS,mBAAoB,cAlOxDV,GAAOsS,WAAO,IAsOW,IAAzBtY,EAAOvE,OAAOG,QACdmlD,EAnOCurB,kBAAArrE,GAAAwD,KAAA,SAAAC,GACD,GAAU,MAAVA,EAAUlI,OAAA,CACNgE,EAAUqI,QAAOnE,EAAAhJ,KAAA,SAAai9G,GAC9BA,EAAYC,WAAOj2G,KAAOC,MAAA+1G,EAAAC,YAC1BD,EAAAE,eAAcl2G,KAAAC,MAAA+1G,EAAAE,gBAoONF,EAAIG,WAAan2G,KAAKC,MAAM+1G,EAAIG,cAjOhD9yG,GAAAi0B,QAAqBv1B,EAAAhJ,KACTsK,GAAA+yG,SAAW/yG,GAAKi0B,QAAA94B,OAEhB6E,GAACgzG,QAAG,CACJ,KAAA,GAAQ93G,GAAA,EAAOA,EAAA8E,GAAA+yG,SAAW73G,IACtB8E,GAAAgzG,SAAWnnF,WAAA7rB,GAAAi0B,QAAA/4B,GAAAw5B,OAqOf10B,IAAGi0B,QAAUz5B,EAAOyC,OAAO+C,GAAGi0B,SAAWq8E,UAAa,IAE1DtwG,GAAGsS,WAnOI,EAoOPtY,EAAOvE,OAAOC,KAAK+7D,QAAS,EAlO5Bv/C,KAoOD,SAnOKvR,GACJ5I,EAAA2I,YAAA,QAAA,mBAAA,cAoOAV,GAAGsS,WAAY,IAGM,IAAzBtY,EAAOvE,OAAOG,QAlOfmlD,EAAeqsB,mBAAAnsE,GAAAwD,KAAA,SAAAC,GACd,GAAuB,MAAfA,EAAAlI,OAAe,CAoOfgE,EAAOqI,QAAQnE,EAAIhJ,KAAM,SAAUi9G,GAC/BA,EAAIC,WAAaj2G,KAAKC,MAAM+1G,EAAIC,YAChCD,EAAIE,eAAiBl2G,KAAKC,MAAM+1G,EAAIE,gBAlO/CF,EAAAG,WAAAn2G,KAA6BC,MAAK+1G,EAAAG,cAE/B9yG,GAAAi0B,QAAav1B,EAAAhJ,KACdsK,GAAA+yG,SAAa/yG,GAAAi0B,QAAA94B,OACX6E,GAAIgzG,QAAK,CACN,KAAA,GAAO93G,GAAA,EAAAA,EAAA8E,GAAA+yG,SAAA73G,IACP8E,GAAAgzG,SAAiBnnF,WAAO7rB,GAAAi0B,QAAA/4B,GAAAw5B,QAoOY,IAA5B10B,GAAGi0B,QAAQ/4B,GAAGo1G,YAlOvBtwG,GAAWwiB,OAAK7lB,KAAAC,MAAAoD,GAAAi0B,QAAA/4B,GAAAypB,iBAwOnB3kB,GAAGsS,WAAY,EAlOvBtY,EAAAvE,OAAAC,KAAA+7D,QAAA,EAoOQv/C,KACD,SAAUvR,GAlOZ5I,EAAW2I,YAAS,QAAA,mBAAA,cACrBV,GAAAsS,WAAkB,IAuOO,IAAzBtY,EAAOvE,OAAOG,QAlOlBmlD,EAAO2rB,kBAAAzrE,GAAAwD,KAAA,SAAAC,GAoOC,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBgE,EAAOqI,QAAQnE,EAAIhJ,KAAM,SAAUi9G,GAlOhCA,EAAAC,WAAYj2G,KAAAC,MAAA+1G,EAAAC,YACXD,EAAAE,eAAqBl2G,KAAAC,MAAA+1G,EAAAE,gBAoOrBF,EAAIG,WAAan2G,KAAKC,MAAM+1G,EAAIG,cAjO3C9yG,GAAAi0B,QAAAv1B,EAAqBhJ,KACvBsK,GAAY+yG,SAAA/yG,GAAAi0B,QAAA94B,OAEX6E,GAAAgzG,QAAY,CACT,KAAU,GAAA93G,GAAK,EAAMA,EAAG8E,GAAI+yG,SAAA73G,IAC3B8E,GAAUgzG,SAAYnnF,WAAG7rB,GAAAi0B,QAAA/4B,GAAAw5B,OAE1B10B,IAAAi0B,QAAiBz5B,EAAQyC,OAAA+C,GAAAi0B,SAAAq8E,UAAA,IAExBtwG,GAAAsS,WAAM,EACNtY,EAAAvE,OAAYC,KAAA+7D,QAAA,EACZv/C,KAoOD,SAnOCvR,GACA5I,EAAS2I,YAAO,QAAa,mBAAA,cAoO7BV,GAAGsS,WAAY,IAM3B,QAAS8zC,GAnOOc,GAqOZ,GADAlnD,GAAGsS,WAAY,EAlOX40C,EAAA47C,kBAAiB,CAmPjB,GAAIt8C,GAAW,QAAUC,EAAUS,EAAKO,UAAY,GAChDd,EAAiBnsD,EAAO6P,KAAKrK,GAAG6vF,iBAAmBpoC,SAAYjB,GACnEhsD,GAAOqI,QAAQ7C,GAAG4mD,YAAa,SAAUC,GACjCA,EAAEY,WAAajB,IACfK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAAUxrB,SAAY4rB,EAAK47C,kBAAkB/7C,YAGzFG,EAAKO,WAAaznD,GAAGuhG,SACrBwQ,IACJ/xG,GAAG4xG,OAAS1qD,EAAK47C,kBAAkB/7C,OAEnC/mD,GAAGsS,WAAY,MAGf00C,MAuCR,QAnOQisD,GAAA/rD,GAoOJlnD,GAAGsS,WAnOS,CAoOZ,IAAI4gG,KACJ14G,GAAOqI,QAAQ7C,GAnOConD,SAAI,SAAkBF,GAClBvxD,QAmOZuxD,EAAK47C,mBAnOuC,MAAV57C,EAAU47C,oBAoO5CoQ,EAAO,OAnOKhsD,EAAA47C,kBAA4B/7C,SAsOhD,IAAIosD,IACAlnE,YAnOWjsC,GAAA+mE,IAAA5zD,gBAAsB84B,YAoOjC95B,UAAWnS,GAAG+mE,IAAI5zD,gBAAgBhB,UAClCmQ,YAnOWtiB,GAAA+mE,IAAAllD,gBAAUS,YAoOrBxsB,UAnOQkK,GAAK+mE,IAAIllD,gBAAc/rB,UAoO/B88B,cAnOe5yB,GAAA+mE,IAAAhjB,iBAAsBnxB,cAoOrCkxB,WAAY9jD,GAAG+mE,IAAIhjB,iBAAiBD,WACpCR,cAAetjD,GAAG+mE,IAAI8qC,aAAavuD,cACnCyD,OAAQmsD,EAAOE,OACfn8E,QAnOOj3B,GAAA+mE,IAAA8qC,aAAY94F,GAoOnBs6F,UAnOWrzG,GAAA+mE,IAAO8qC,aAAKxpF,KAoOvBkK,SAAUvyB,GAAG+mE,IAAI8qC,aAAayB,SAAS/gF,SACvCghF,QAnOGvzG,GAAA+mE,IAAU8qC,aAAKyB,SAAA9gB,OAoOlBj0C,WAnOIv+C,GAAW+mE,IAAA8qC,aAAYvzD,eAASC,WAAoBvjD,MAAA,KAqO5D0/C,GAAmBgiC,gBAAgBy2B,GAAS10G,KAAK,SAAUC,GACvD,GAAmB,MAAfA,EAAIlI,OAAgB,CAlOxBwJ,GAAOwzG,gBAAkB90G,EAAGhJ,IAC5B,IAAAugB,GAAAnf,SAAqBijB,cAAA,IACjBjjB,UAAQC,KAAAijB,YAAgB/D,GAoOxBA,EAAEgE,MAnOE,eAoOJ,IAAIrc,GAnOI,GAAIC,OAAAa,EAAahJ,OAoOrBqI,KAnOI,yBAqOJtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EACrCqY,GAAEu5F,KAnOK/6G,EAoOPwhB,EAAEw9F,SAnOK,YAoOPx9F,EAAEwqB,QACF/rC,OAnOOwlB,IAAAw5F,gBAAUj/G,GAoOjBuL,GAAGsS,WAnOU,MAqObjY,GAAQ8C,OAAO,UAAW,aAlOtB9F,WAAG,EAoOH+F,KAAM,QAGf,SAnOKuD,GACc,MAAfA,EAAAnK,OACC6D,EAAA8C,OAAW,UAAY,sCACpB9F,WAAY,EAoOX+F,KAAM,OAhOdrF,EAAA2I,YAAqB,QAAY,mBAAoB,gBAwO7D,QAASizG,GAnOehB,GAyOpB,GAAI13G,IACA24G,QAASjB,EAnOGiB,QAoOZl/E,OAAQi+E,EAAIj+E,OACZk+E,WAnOWj2G,KAAAqkB,UAAU2xF,EAAOC,YAoO5B59E,MAAO29E,EAAI39E,MACXyB,cAnOOk8E,EAAYl8E,cAoOnB9iB,WAnOW5b,EAAYuK,OAsO3By4C,GAnOmB+rB,qBAAqB7rE,GAAAwD,KAAA,SAAoBC,GACrC,MAAfA,EAAGlI,QAoOCkI,EAAIhJ,KAAKke,UACT7b,EAAW2I,YAAY,UAAWhC,EAAImV,QAAS,oBAjOvD9b,EAAA2I,YAAqB,QAAkBhC,EAAKmV,QAAK,oBAC7C8+F,EAAIp4C,QAAI,EAoORw3C,KAEAh6G,EAnOQ2I,YAAI,QAAiB,gCAAe,qBAqOjD,SAAUC,GACT5I,EAnOW2I,YAAU,QAAI,iCAoOrBrJ,WAnOO,EAoOP+F,KAAM,SAKlB,QAASy2G,KACL,GAAIv9E,GAAO,CAEX97B,GAAOqI,QAnOQ7C,GAAAu+C,WAAY,SAASu1D,GAC5Bn+G,QAAAm+G,EAAAC,eACD/zG,GAAAg0G,SAAU,EAET19E,GAAGw9E,EAAAC,eAGP/zG,GAAOg0G,SAAO,IA6Odh0G,GAAG+mE,IAAItwC,cAnOc,EAoOrBz2B,GAAG+mE,IAAIryC,OAnOM10B,GAAI+mE,IAAItwC,cAAUH,EAsO/Bj8B,EAAQ8C,OAAO,UAnOI,2CAoOf9F,WAAW,EACX+F,KAAM,OAKlB,QAAS62G,GAnOGtB,GAoOR,GAAIr8E,GAnOG,CAoOP97B,GAAO+7B,MAnOCo8E,EAAAC,WAAWp8E,UAAY,SAASnrB,EAAA0b,GAoOpCuP,GAnOOjrB,IAsOPsnG,EAAIl8E,cAlOJk8E,EAAAj+E,OAAOi+E,EAAOl8E,cAAcH,EAqO5Bq8E,EAnOIj+E,OAAQ4B,EAsOpB,QAAS49E,KAEL,GAAkB,IAAdl0G,GAAGm0G,OAAc,CACjB,GAAI/1G,GAnOO,GAAAH,SAoOXG,GAnOQF,OAAG,OAAW8B,GAAGo0G,cAqOzB15D,EAnOWmiC,UAAUz+E,GAAAK,KAAA,SAAAC,GACA,MAAbA,EAAAlI,OACIkI,EAAGhJ,KAAAke,WAoOH7b,EAAW2I,YAAY,UAAW,yCAA0C,oBAlO7EV,GAAAjC,KAAU,KAEd1D,EAAY8C,OAAA,UAAAuB,EAAAhJ,KAAAme,SACRxc,WAAY,EACnB+F,KAAA,OAEA4C,GAAWjC,KAAA,IAsOPhG,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,QAhOnB,SAAYuD,GACN,MAAAA,EAAAnK,OAoOG6D,EAAQ8C,OAAO,QAAS,4EACpB9F,WAAW,EACX+F,KAAM,OAGVrF,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,aAKlB/C,GAAQ8C,OAAO,UAAW,iBACtB9F,WAAW,EACX+F,KAAM,OAMlB,QAASi3G,KACL,GAAqB1+G,QAAjBqK,GAAGu+C,WAlOH,IAAI,GAAKrjD,KAAA8E,IAAAu+C,WACL,GAAAv+C,GAAAu+C,WAAArjD,GAAA64G,cACD,OAAS,CAuOhB,SAAI/zG,GAnOC+mE,IAAAtwC,cAyOT,QAAS69E,KAML,GAJAt0G,GAAGsS,WAAY,EAIM3c,QAAjBqK,GAAGu+C,WAAyB,CAC5B,GAAIg2D,IACA/9E,aAEJ,KAAK,GAAIt7B,KAAK8E,IAAGu+C,WACb,GAAIv+C,GAAGu+C,WAAWrjD,GAAG64G,cACjBQ,EAAW/9E,UAAUx2B,GAAGu+C,WAAWrjD,GAAGsjD,eAAiBx+C,GAAGu+C,WAAWrjD,GAAG64G,kBAExE,IAAIM,IAKA,WAJAh6G,GAAQ8C,OAAO,UAAW,oCACtB9F,WAAW,EACX+F,KAAM,OAQ1B,GAnOczH,QAAVqK,GAAAonD,SAAuB,CAoOvB,GAnOIyrD,KAqOJ,KAAK,GAnOE33G,KAAA8E,IAAAonD,SAAA,CACH,IAAGpnD,GAAAonD,SAASlsD,GAAA4nG,kBAQb,WA+NKzoG,GAAQ8C,OAAO,UAAW,mBAAqB6C,GAAGonD,SAASlsD,GAAGmsD,MAlO1DhwD,WAAM,EACP+F,KAAA,MA8NHy1G,GAAe7yG,GAAGonD,SAASlsD,GAAGusD,UAAYznD,GAAGonD,SAASlsD,GAAG4nG,kBAAkB/7C,QAvNvF,GAAI/mD,GAAA4xG,OAAU,CACV,GAAA4C,IACA1+G,UAAckK,GAAI+mE,IAAAllD,gBAAgB/rB,UAClCguD,WAAgB9jD,GAAA+mE,IAAIhjB,iBAAgBD,WACpC7sB,QAAWj3B,GAAG+mE,IAAI8qC,aAAA94F,GAClBuqC,cAAkBtjD,GAAI+mE,IAAA8qC,aAAiBvuD,cACvClsB,WAAep3B,GAAI4xG,OACnBn7E,cAAkBz2B,GAAI+mE,IAAAtwC,cACtBm9E,QAAQ5zG,GAAO+mE,IAAA6sC,QACfhB,WAAgBj2G,KAAAqkB,UAAauzF,GAC7B7/E,OAAW10B,GAAG+mE,IAAIryC,OAClBm+E,eAA8B,GAAb7yG,GAAA2xG,QAAsBh1G,KAAAqkB,UAAA6xF,GAAA7yG,GAAA6yG,eACvC/+F,UAAY/b,EAAIuK,OAChBkf,SAAmB,GAAJxhB,GAAA2xG,QAAiB,EAAA,GAEpC8C,GACQr9E,WAAIp3B,GAAW4xG,OACf36E,QAAGj3B,GAAA+mE,IAAA8qC,aAAsB94F,GACzB+qC,WAAQ9jD,GAAA+mE,IAAShjB,iBAAcD,WAC/BhuD,UAASkK,GAAK+mE,IAAAllD,gBAAY/rB,UAqO9B0+G,GAnOInf,GAAIof,EAoOR/5D,EAnOckiC,qBAAA43B,GAAA/1G,KAAA,SAAAC,GAoONA,EAAIhJ,KAAKke,aAAc,GAlOvB5T,GAAAsS,WAAa,EACfva,EAAO2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,oBACPk+F,IACArgG,OAIF1R,GAAAsS,WAAe,EACXva,EAAW2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,sBAMf,SAAQlT,GACJ5I,EAAW2I,YAAA,QAAA,iCACXrJ,WAAM,EAoOF+F,KAAM,aAKlB/C,GAAQ8C,OAAO,UAAW,0BACtB9F,WAAW,EAlOd+F,KAAA,OAwOT,QAASsmB,KAlOL,GAAIuuF,OAAM,EAAA,CACN,GAAAt/F,GAAatY,EAAAsY,QAAA,UACb,4DACAtb,WAAiB,EACV+F,KAAI,MAsOXuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IAlOZ+5B,MAAAnS,EAAqB7iB,GAAAqjB,UACT1P,WAAW5b,EAAKuK,OAqOpBy4C,GAnOer3B,gBAAYzoB,GAAewD,KAAA,SAASC,GAoO5B,MAAfA,EAAIlI,QAlORuB,EAAW2I,YAAY,UAAa,wBAAS,oBAC7CqxG,IACJ/xG,GAAAwjB,gBAAA,GAEAzrB,EAAW2I,YAAY,QAAS,+BAoOpBrJ,WAAW,EAlOb+F,KAAA,QAGV,SAAMuD,GAoOF5I,EAAW2I,YAAY,QAAS,+BAC5BrJ,WAAW,EACX+F,KAAM,UAhOlB,kBAwOA/C,GAAQ8C,OAAO,SAlOX,6CACG9F,WAAA,EAoOC+F,KAAM,OAMtB,QAASs3G,KACL,GAAIzC,OAAe,EAAM,CACrB,GAAIt/F,GAAUtY,EAAQsY,QAAQ,UAC1B,4CACItb,WAAW,EAlOZ+F,KAAA,MAsOPuV,GAnOCjT,OAAAjB,KAAA,WACD,GAAQxD,IACJ+5B,MAAWnS,IAqOXk4B,GAAqB8rB,UAAU5rE,GAAKwD,KAAK,SAAUC,GACrB,GAAtBA,EAAIhJ,KAAKke,WACT7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,oBACpDk+F,IAlOX/xG,GAAAwjB,gBAAsB,GAEdzrB,EAAI2I,YAAsB,QAAAhC,EAAUhJ,KAAOme,QAAK,qBAqOlD,SAAUlT,GACT5I,EAAW2I,YAAY,QAAS,yBAlOpCrJ,WAAA,EACA+F,KAAa,UAsOd,kBA9NH/C,GAAI8C,OAAW,SACf,6CAoOQ9F,WAAW,EAlOnB+F,KAAA,OAwOR,QAASwmB,KACL,GAAIquF,OAnOY,EAAQ,CAoOpB,GAAIlrC,IACA/xC,MAAOnS,EAnOK7iB,GAAMqjB,UAoOlBztB,OAAQitB,EAAU7iB,GAAGojB,cAGrBhkB,EAnOO7E,EAAA8E,MAoOPhI,WAnOI,EAoOJiI,eAnOQ,cAoORC,gBAnOc,aAoOdrK,YAAa,2DACbE,WAAY,mBAlObC,aAAe,KACd+H,KAAI,KAoOJoC,SAnOI,SAoOJC,UAnOQ,EAoORyQ,SACI3N,MAAO,WAlOJ,MAAAwkE,MAwOX3nE,GAAcM,OAAOjB,KAAK,WACtBszG,IAlOD/xG,GAAAwjB,gBAAA,GACH,kBAuOAnpB,GAAQ8C,OAAO,SACX,6CACI9F,WAAW,EACX+F,KAAM,OAKtB,QAAS0mB,KACL,GAAImuF,OAAe,EAAM,CACrB,GAAIt/F,GAAUtY,EAAQsY,QAAQ,UAC1B,qDAlOGtb,WAAA,EACA+F,KAAA,MAsOPuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IAlOP+5B,MAAUnS,EAAA7iB,GAAAqjB,UACf1P,WAAA5b,EAAAuK,OAqOQy4C,GAAqBsa,SAASp6D,GAAKwD,KAAK,SAAUC,GAC3B,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,wBAAyB,oBAlOpEqxG,IACC/xG,GAAAwjB,gBAAa,GAqOLzrB,EAAW2I,YAAY,QAAS,kCAlO9BrJ,WAAG,EACN+F,KAAW,QAsOf,SAnOKuD,GAoOJ5I,EAnOI2I,YAAe,QAAW,kCAoO1BrJ,WAnOI,EAoOJ+F,KAnOI,UAsOb,kBA9NH/C,GAAG8C,OAAY,SACX,6CAoOI9F,WAAW,EAlOd+F,KAAS,OAyOtB,QAASwpE,KACL,GAAIqrC,OAnOY,EAAM,CAoOlB,GAAIt/F,GAAUtY,EAAQsY,QAAQ,UAC1B,mDACItb,WAAW,EACX+F,KAAM,MAhOduV,GAAGjT,OAAQjB,KAAA,WACP,GAAAxD,IACA+5B,MAAWnS,EAAO7iB,GAAAqjB,UAClB1P,WAAe5b,EAAIuK,OAEnBy4C,GAAkB6rB,MAAI3rE,GAAAwD,KAAa,SAAAC,GACpB,MAAfA,EAAYlI,QACZuB,EAAkB2I,YAAI,UAAA,uBAAA,oBACtBqxG,IACA/xG,GAAAwjB,gBAA2B,GAE3BzrB,EAAiB2I,YAAc,QAAK,kCACzBrJ,WAAW,EACX+F,KAAG,QAGd,SAAYuD,GACZ5I,EAAY2I,YAAI,QAAa,kCAC7BrJ,WAAmB,EACnB+F,KAAc,UAGlB,kBAwOA/C,GAnOQ8C,OAAA,SAoOJ,6CACI9F,WAAW,EACX+F,KAnOG,OAwOnB,QAAS4mB,KACL,GAAIiuF,OAAe,EAAM,CACrB,GAAIt/F,GAAUtY,EAAQsY,QAAQ,UAlO1B,sDACItb,WAAW,EAoOX+F,KAnOI,MAsOZuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IAlOL+5B,MAAAnS,EAAA7iB,GAAAqjB,UACK1P,WAAO5b,EAAWuK,OAEtBy4C,GAAM/2B,SAAA/oB,GAAAwD,KAAA,SAAAC,GAoOiB,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,wBAAyB,oBAC3DqxG,IACA/xG,GAAGwjB,gBAAiB,GAjOhCzrB,EAAqB2I,YAAA,QAAA,mCACPrJ,WAAQ,EAClB+F,KAAA,QAsOG,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,mCAlOhCrJ,WAAY,EACZ+F,KAAM,UAsOX,kBAMH/C,GAAQ8C,OAnOO,SAoOX,6CACI9F,WAnOQ,EAoOR+F,KAAM,OAMtB,QAASsU,MAEL1R,GAAG+mE,IAAI6sC,QAAU,GACjB5zG,GAAG+mE,IAnOItwC,cAAY,GAoOnBz2B,GAAG+mE,IAAIryC,OAAS,EAChB,KAAK,GAAIx5B,KAAK8E,IAAGu+C,WACTv+C,GAAGu+C,WAAWrjD,GAAG64G,gBAlOpB/zG,GAAAu+C,WAAArjD,GAAA64G,cAAA,IAUT,QAAS/sD,MACLxsD,EAAIqI,QAAA7C,GAAAonD,SAAqB,SAAAF,GACrBA,EAAI47C,kBAAkB,OAwO9B,QAASp9C,MACL1lD,GAAG+mE,IAnOChjB,iBAAoB,KAoOxB/jD,GAAG68C,kBACHmK,KACAhnD,GAAG+mE,IAAI8qC,aAAe,KACtB7xG,GAAGm+C,YACHn+C,GAAG+mE,IAAI6sC,QAnOS,KAoOhB5zG,GAAG+mE,IAAItwC,cAnOS,KAoOhBz2B,GAAG+mE,IAAIryC,OAnOS,KAsOpB,QAAS8wB,MACLE,KACA1lD,GAAGi+C,iBAnOkB,KAoOrBj+C,GAAG+mE,IAAIloB,iBAnOgB,KAoOvB7+C,GAAGw9C,gBAGP,QAAS0M,MACL1E,KACAE,KACA1lD,GAAG+mE,IAAIlpB,oBAAsB,KAC7B79C,GAAGo8C,mBAGP,QAAS6N,MACLC,KACA1E,KACAE,KACA1lD,GAAG+mE,IAAIppB,iBAAmB,KAC1B39C,GAAG47C,gBAGP,QAnOQoO,MAoOJC,KACAC,KACA1E,KACAE,KAKJ,QAASf,MACLqF,KACAC,KACAC,KACA1E,KACAE,KACA1lD,GAAGsoD,IAAI9L,YAnOW,KAoOlBx8C,GAAGk7C,WACHl7C,GAAGmmD,eAnOgB,EA3wCvB,GAAInmD,IAAKC,IAETD,IAAGqU,kBAlOgBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAmOnBrL,GAAGsU,SAAWtU,GAlOEqU,gBAAW,GAoO3BrU,GAAGuU,YAlOQ,EAmOXvU,GAAGwU,qBAlOoB,SAAYC,GAmO/BzU,GAAGuU,YAAcE,GAIrBzU,GAAGgT,YAAa,EAChBhT,GAAG+S,WAAY,EACf/S,GAAGsS,WAAY,EACftS,GAAGg0G,SAAU,EAjObh0G,GAAA/C,UAmOA+C,GAAGsoD,OACHtoD,GAAGi0B,WAEHl8B,EAlOQ2c,SAAO,EAmOf1U,GAAGmmD,eAlOY,EAmOfnmD,GAAGwjB,gBAAiB,EACpBxjB,GAAG6lD,cAlOe,EAmOlB7lD,GAAGyxD,QAlOK,EAmORzxD,GAAG20G,UAAW,EACd30G,GAAG40G,gBAAiB,EACpB50G,GAAGyhB,oBAAsBA,EAjOzBzhB,GAAA08C,oBAAmBA,EAmOnB18C,GAAG88C,qBAlOgBA,EAmOnB98C,GAAGo9C,yBAlOcA,EAmOjBp9C,GAAGs9C,yBAlOmBA,EAmOtBt9C,GAAGy9C,aAlOaA,EAmOhBz9C,GAAGyyG,qBAlOgBA,EAmOnBzyG,GAAGomD,YAlOaA,EAmOhBpmD,GAAGo+C,6BAlO8BA,EAmOjCp+C,GAAGizG,WAlOaA,EAmOhBjzG,GAAG8lD,qBAlOiBA,EAmOpB9lD,GAAGkyG,cAAgBA,EACnBlyG,GAAG2zG,qBAlOgBA,EAmOnB3zG,GAAG6zG,UAAYA,EACf7zG,GAAGi0G,iBAlOkBA,EAmOrBj0G,GAAG0lD,UAAYA,GACf1lD,GAAGyjB,UAAYA,EACfzjB,GAAGujB,WAAaA,EAChBvjB,GAAGk0G,WAAaA,EAChBl0G,GAAGs0G,QAAUA,EAEbt0G,GAAG0jB,gBAlOkBA,EAmOrB1jB,GAAG00G,UAAYA,EACf10G,GAAG4jB,OAASA,EACZ5jB,GAAG8jB,QAAUA,EACb9jB,GAAG4mE,MAAQA,EACX5mE,GAAGgkB,SAAWA,EACdgjC,KACAhnD,GAAG+mE,OACH/mE,GAAG+xG,kBAAoBA,EAEvB/xG,GAAG0R,OAASA,EAEZ,IACIS,IAAYhY,EAlOkBgG,uBAAewU,gBAAAxC,UAmO7CjS,GAAa/F,EAlOiBgG,sBA8OlC,IAV0BxK,QAAtBqE,EAAOvE,OAAOC,OACdsK,GAAG40G,gBAAiB,GAExB50G,GAAG2xG,QAAU33G,EAlOOvE,OAAOG,OAmOV,GAAdoK,GAAG2xG,SACiC,GAAhC33G,EAAOvE,OAAOC,KAAK27G,YAClBrxG,GAAGqxG,WAAW,GA9NN,IAkOZrxG,GAAG2xG,QAlOa,CAmOhB,GAAIkD,IAlOYl4G,KAAQC,MAAK5C,EAAAvE,OAAAC,KAAA07G,QAA4BwB,WAoOzD5yG,IAAGu+C,aACH,KAAK,GAAIu2D,MAlOMD,IAAoBr+E,UAmO3Bq+E,GAlOar+E,UAAWu+E,eAAeD,KAmOvC90G,GAAGu+C,WAlOS1mD,MAmOR2mD,cAlOas2D,IAsOzB90G,IAAG6yG,eAAiB74G,EAAOvE,OAAOC,KAAK07G,QAAQpkD,QAEnDhtD,GAAGnK,KAAOmE,EAAOvE,OAlOOI,KAmOxBmK,GAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MAENmzB,aAlOY,WAmOZnzB,KAAM,MAEV2pF,IACA9/F,IA4xBAzH,EAAOuqG,YAnOY,SAAU74G,GAoOrBA,IACIA,EAAMsN,OAAOiE,MAAMvS,OAAS,GAC5B6E,GAAGo0G,aAAej4G,EAAMsN,OAAOiE,MAAM,GAlOzC1N,GAAMm0G,OAAA,GAENn0G,GAAAm0G,OAAc,IAmxBtBn0G,GAAGkkB,KAAO,WACNlqB,EAAO8F,GAAG/H,EAAWyE,kYA17C7BpI,QACKC,OAAO,2BACPe,WAAW,oBAlOgBs8G,MA2tDpC,WACI,YAOA,SAASuD,GAnOWxqG,EAAOxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAoOtBG,EAnOW4gD,GAoOZ,GAAI/6C,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBAlOHzsB,EAAS2c,SAAU,CAoOnB,IACIxU,IApOI/F,EAAqBgG,uBAAAwU,gBAAAxC,UACjBhY,EAAkBgG,uBAoO9BH,GAAGykB,cAnOS,WAoOR,GAAIxpB,IACAwnB,MAnOQziB,EAAA5H,OAAMusB,eAoOdC,WAAczqB,EAAsBgG,uBAAuBE,OAC3DwkB,WAAc5qB,EAAQ,QAAQ,GAAIwf,MAAQ,eAG1CqL,GACAkQ,MAAOzyB,EAnOCyyB,MAoORrQ,eAAehoB,KAAKqkB,UAAU/lB,GAC9B0Y,WAnOIzT,EAAAG,OAsOR06C,GAnOgBh2B,kBAAAD,GAAArmB,KAAA,SAAAC,GACG,MAmOXA,EAAIlI,QACJuB,EAnOW2I,YAAA,UAAA,oCAAA,iBAoOZ4b,EAnOSrN,QAoOTjV,EAAO8F,GAAG/H,EAnOGyE,gBAqOZzE,EAAW2I,YAAY,QAAS,oBAC5BrJ,WAAW,EAlOZ+F,KAAA,QAsOR,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EAlOZ+F,KAAA,UAwOX4C,EAAG0R,OAnOK,WAoOJ4K,EAnOQiB,QAAA,sKAkLhBnpB,QACKC,OAAO,2BACPe,WAAW,mBAAoB6/G,MAoDxC,WACI,YAOA,SAASC,GAnOWzqG,EAAM1S,EAAAiC,EAAAQ,EAAAH,EAAAN,EAAAG,EAAAyJ,EAAAxJ,EAAAugD,EAAA1oC,EAAAJ,EAoOtB4oC,EAAaI,EAAsB2G,EAAkBxG,EAAsBxgD,EAAUinD,GA8CrF,QAAStvC,KACLlS,EAAGu7C,eACCC,aAnOQ,UAoORnzB,KAAM,MAENmzB,aAnOY,WAoOZnzB,KAAM,MAEVrW,EAAeI,mBAnOID,GAAiB1T,KAAA,SAAAC,GACjB,MAmOXA,EAAIlI,SACJwJ,EAAGqS,YAnOK3T,EAAWhJ,KAoOnBsK,EAAGsS,WAnOS,IAqOjB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS+gB,GAAoBtP,GACrBA,GACAP,EAnOe8P,eAAAvP,GAAA1T,KAAA,SAAAC,GAoOQ,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAChBsK,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDAlOrC9F,WAAA,EACc+F,KAAA,OAuOP4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GAlOZtG,EAASwH,MAAA,QAAA,mBAAA,oBAEX7B,EAAImmD,eAAU,EACdnmD,EAAIi0B,aAGHj0B,EAAAmmD,eAAkB,EAoOlBnmD,EAAG+mE,IAnOIllD,gBAAc,KAoOrB7hB,EAAG2hB,eACH3hB,EAAGi0B,YAGPj0B,EAAG6hB,gBAAgB,KA9NvB,QAASqwF,GAAAhqD,GAaL,GAAGjtD,IACA6oD,WAAI,GACJhuD,UAAIkK,EAAS6hB,gBAAA/rB,UAoOZF,OAAQ,EAjOhB4rD,GAAqBsD,UAAA7pD,GAAAwD,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,QACGwJ,EAAAk7C,QAAAx8C,EAAmBhJ,KACfsK,EAAAsS,WAAA,GAqOCva,EAAW2I,YAAY,QAAS,yBAA0B,0BAjOtE,SAASC,GACL5I,EAAA2I,YAAA,QAAA,mBAAA,2BAuOJ,QAASo8C,GAAqBhnD,EAAWugB,EAAW0mC,GAxMhD,GAAG1mC,GAAAvgB,GAAgBinD,EAAA,CAoOf,GAAI9/C,IACAoZ,UAAWA,EACX2mC,MAAOD,GAjOd9hD,GACT6oD,WAAA,GAoOgBhuD,UAAWA,EACXF,OAAQ,EAnOxBsvD,UAAAvoD,KAAAqkB,UAAA/jB,GAEKukD,GAAW2D,eAAoBlqD,GAAAwD,KAAA,SAAAC,GAqOD,MAAfA,EAAIlI,QACJwJ,EAAG47C,aAAel9C,EAAIhJ,KAnOjCsK,EAAAsS,WAAyB,GAErBva,EAAA2I,YAAA,QAAA,yBAAA,oBAEN,SAAaC,GACb5I,EAAY2I,YAAA,QAAA,mBAAA,qBAEZV,EAAA+mE,IAAAppB,iBAAe,KAClB39C,EAAW+mE,IAAAlpB,oBAAU,KACjB79C,EAAA+mE,IAAAloB,iBAAY,KACZ7+C,EAAAikD,mBAAW,KACZjkD,EAAA+mE,IAAA8qC,aAAgB,MAsQnB,QAASz0D,GAAyBtnD,EAAWomD,GAGzC,GAAIpmD,GAAaomD,EAAY,CAnO5B,GAAAjhD,IACTnF,UAAAA,EAqOgBomD,WAAYA,EAnO5BxB,GAAA2C,yBAAApiD,GAAAwD,KAAA,SAAAC,GACY,MAAAA,EAAAlI,QACIwJ,EAAAo8C,gBAAmB19C,EAAAhJ,MAsOVsK,EAAGo8C,gBAAgBjhD,OAAS,GAC7Bd,EAAQ8C,OAAO,UAAW,0DApOzB9F,WAAQ,EAChB+F,KAAA,OAIV4C,EAAAsS,WAAqB,GAuORjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAnO9D,SAAAlB,GACItG,EAAAwH,MAAc,QAAA,mBAAA,qBAMrB,QAAGy7C,GAAYxnD,EAAAomD,EAAArqB,GAGZ,GAAA/7B,GAAeomD,GAAArqB,EAAA,CACf,GAAA52B,IACAnF,UAAWA,EACXomD,WAAWA,EACXrqB,cAAUA,EAEV6oB,GAAgB6C,0BAAAtiD,GAAAwD,KAAA,SAAAC,GACO,MAAvBA,EAAAlI,QACAwJ,EAAAw9C,aAA2B9+C,EAAAhJ,MACZsK,EAAAo8C,gBAAAjhD,OAAA,GACfd,EAAuB8C,OAAA,UAAA,+DACvB9F,WAA2B,EACd+F,KAAA,OAIb4C,EAAAsS,WAAuB,GAEVjY,EAAAwH,MAAA,QAAA,yBAAA,mBAuOL,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAMvD,QAAS47C,KAGL,GArOIxiD,IACAob,UAAMrW,EAAA6hB,gBAAAxL,UACPvgB,UAAAkK,EAAA6hB,gBAAA/rB,UACC4nD,cAAc19C,EAAA+mE,IAAAppB,iBAAAzB,WACd0B,iBAAM59C,EAAA+mE,IAAAlpB,oBAAAhsB,cAsONisB,WAAY99C,EAAG+mE,IAAIloB,iBAAiB7+B,OApOxC++B,SAAA/+C,EAAeikD,mBAAmB57B,KAC9B40B,aAAQ,EAuOZzC,GArOW0D,kBAAYjjD,GAAAwD,KAAA,SAAAC,GAsOA,MAAfA,EAAIlI,QApOTwJ,EAAAm+C,SAAez/C,EAAAhJ,MACdsK,EAAWm+C,SAAAhjD,OAAY,GAsOfd,EAAQ8C,OAAO,UAAW,iDACtB9F,WAAW,EACX+F,KAAM,OAnOjB4C,EAAA6lD,cAAoB,GAErB7lD,EAAA6lD,cAAuB,GAwOnB9tD,EArOS2I,YAAG,QAAY,mCAAY,WAuOzC,SAAUC,MAuBjB,QAASmlD,KAGL,GAAI7qD,IApORnF,UAASkK,EAAA6hB,gBAAqB/rB,UAuO1B8kD,GAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,QACJwJ,EAAG68C,eAAiBn+C,EAAIhJ,MACnBsK,EAAG68C,eAAe1hD,OAAS,EAC5Bd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EACX+F,KAAM,OAIV4C,EAAGmmD,eAAgB,EAnO3BnmD,EAAAsS,WAAY,GAEZjY,EAAQwH,MAAA,QAAA,yBAAA,aAEZ,SAAAlB,GACItG,EAAQwH,MAAA,QAAW,mBAAK,cA0OhC,QAAS0wG,GAAWC,GAChB,GArOGjR,GAAUiR,EAAK,EAKtB,OAiOIh4G,GArOIqI,QAAW2vG,EAAA,SAAY3rD,GAsOnBJ,EAAUI,GAAKJ,EAAU86C,KACzBA,EAAU16C,KAnOb06C,EAwOT,QAAS96C,GAAUc,GACf,MAAO3gD,UAAS2gD,EAAWjkC,UAAU,IAGzC,QAASmvF,GAAqB3uD,EAAYhuD,EAAWyI,GAGjD,GAAIulD,EAAY,CACZ9jD,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAG+mE,IAAIhjB,iBAAiBC,MAChD,IAAIwuD,GAAUh4G,EAAOmI,KAAK3C,EAAG2uG,QAC7B3uG,GAAGuhG,QAAUgR,EAAWC,GACxBxyG,EAAG4uG,YAAc5uG,EAAG2uG,QAAQE,MAC5BttD,EAAiBqnC,gBAAgB9kC,GAAYrlD,KAAK,SAAUC,GACxD,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpBwJ,EAAG4mD,YAAcloD,EAAIhJ,KACrBsK,EAAGonD,WACH,KAAK,GAAI+tD,KAAcn1G,GAAG2uG,QAAS,CAC/B,GAAI71D,IACA2O,SAAUznD,EAAG2uG,QAAQwG,GACrB59F,UAAU,EACVmwC,SAAUytD,EAEK,WAAfA,IApOHr8D,EAAAgO,OAAatsD,EAAOyC,OAAA+C,EAAA4mD,aACpBa,SAAAznD,EAAA2uG,QAAAwG,MAwODn1G,EAAGonD,SAASvvD,KAAKihD,GAnOzB94C,EAAAo1G,cAAY56G,EAAAyC,OAAA+C,EAAA4mD,aACZa,SAAWznD,EAAA4uG,cAEXmD,IAEJ/xG,EAAAsS,WAAkB,MAEVva,GAAG2I,YAAmB,QAAA,yBAAA,eAuO3B,SArOQC,GAsOP5I,EArOI2I,YAAW,QAAY,mBAAS,oBAwOxCV,GAAGi0B,WAKX,QArOQmyB,GAAGc,GAuOP,GAAIA,EAAK47C,kBAAmB,CACxB,GAAIt8C,GAAW,QAAU5/C,SAASsgD,EAAKQ,SAASpkC,UAAU,IAAM,EAChEtjB,GAAG4uG,YAAc5uG,EAAG2uG,QAAQnoD,GAC5BxmD,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAChCa,SAAYznD,EAAG4uG,YACfyG,aAAgBnuD,EAAK47C,kBAAkB/7C,SAE3CvsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GAC9BA,EAAEa,WAAalB,IACfK,EAAEC,OAAS9mD,EAAGo1G,iBAGlBluD,EAAKQ,WAAa1nD,EAAGuhG,SACrBwQ,IACJ/xG,EAAG4xG,OAAS1qD,EAAK47C,kBAAkB/7C,OACnC/mD,EAAG8uG,aAGH9nD,sBAwCR,QAAS+qD,KAEL/xG,EAAGsS,WAAY,EACftS,EAAGi0B,UApOP,IAAA69E,IAsOQ70G,UAnOJzC,GAAIqI,QAAA7C,EAAaonD,SAAA,SAAcF,GAEvBA,EAAA47C,oBACAgP,EAAA70G,OAAYiqD,EAAAQ,UAAAR,EAAA47C,kBAAA/7C,SAwOpB,IArOI9rD,IAsOAnF,UArOYkK,EAAA6hB,gBAAgB/rB,UAsO5BguD,WArOW9jD,EAAA+mE,IAAAhjB,iBAAmBD,WAsO9BR,cArOgBtjD,EAAA+mE,IAAA8qC,aAAgBvuD,cAsOhCovD,YArOY/1G,KAAQqkB,UAAO8wF,GAuOb,KAAdwD,GACAv6D,EAAqBmsB,wBAAwBjsE,GAAKwD,KAAK,SAAUC,GAC7D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBgE,EAAOqI,QAAQnE,EAAIhJ,KAAM,SAAUi9G,GApOhCA,EAAAC,WAAYj2G,KAAAC,MAAA+1G,EAAAC,YACZD,EAAAE,eAAAl2G,KAAAC,MAAA+1G,EAAAE,gBACHF,EAAQG,WAAMn2G,KAASC,MAAA+1G,EAAAG,cAE5B9yG,EAAAi0B,QAAev1B,EAAAhJ,KACdsK,EAAA+yG,SAAc/yG,EAAAi0B,QAAS94B,OAuOnB6E,EAAGgzG,QAAU,CACb,KAAK,GAAI93G,GAAI,EAAGA,EAAI8E,EAAG+yG,SAAU73G,IAC7B8E,EAAGgzG,SAAWnnF,WAAW7rB,EAAGi0B,QAAQ/4B,GAAGw5B,QAG/C10B,EAAGsS,WAAY,GApOvB,SAAA3R,GACI5I,EAAM2I,YAAA,QAAA,mBAAA,cACNV,EAAAsS,WAAc,IA2OtB,QArOQqhG,GAAYhB,GA2OhB,GAAI13G,IACA24G,QAASjB,EArOGiB,QAsOZl/E,OAAQi+E,EArOIj+E,OAsOZk+E,WAAYj2G,KAAKqkB,UAAU2xF,EAAIC,YAC/B59E,MAAO29E,EArOI39E,MAsOXyB,cArOWk8E,EAAAl8E,cAsOX9iB,WArOW5b,EAAAuK,OAwOfy4C,GArOmB+rB,qBAAqB7rE,GAAAwD,KAAA,SAAAC,GAsOjB,MAAfA,EAAIlI,QApOTkI,EAAUhJ,KAAKke,UAsON7b,EAAW2I,YAAY,UAAWhC,EAAImV,QAAS,oBAE/C9b,EAAW2I,YAAY,QAAShC,EAAImV,QAAS,oBApOpD8+F,EAAAp4C,QAAA,EACDw3C,KAEGh6G,EAAA2I,YAAa,QAAA,gCAAA,qBAuOjB,SArOSC,GAsOR5I,EArOQ2I,YAAA,QAAwB;AAsO5BrJ,WAAW,EApOX+F,KAAG,SAsPf,QArOI62G,GAAqBtB,GAsOrB,GArOIr8E,GAAI,CAsOR97B,GAAO+7B,MArOIo8E,EAAAC,WAAiBp8E,UAAI,SAAAnrB,EAAA0b,GAsO5BuP,GArOQjrB,IAwORsnG,EAAIl8E,cACJk8E,EAAIj+E,OAASi+E,EAAIl8E,cAAgBH,EAEjCq8E,EAAIj+E,OArOO4B,EAlVnB,GAAIt2B,GAAKC,IAGTD,GAAGqU,kBAnOoBhJ,MAAU,IAAGA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoOpCrL,EAAGsU,SAAWtU,EAnOEqU,gBAAY,GAqO5BrU,EAAGuU,YAnOS,EAoOZvU,EAAGwU,qBAnOqB,SAAWC,GAoO/BzU,EAAGuU,YAnOaE,GAuOpBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAG/C,UACH+C,EAAGsoD,OACHtoD,EAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGizB,YACHjzB,EAAGm+C,YACHn+C,EAAGi0B,WACHj0B,EAAGyhB,oBAAsBA,EACzBzhB,EAAGkyG,cAnOQA,EAoOXlyG,EAAG88C,qBAAuBA,EAC1B98C,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGy9C,aAAeA,EAClBz9C,EAAG8lD,qBAnOMA,EAoOT9lD,EAAGs9C,yBAnOoBA,EAoOvBt9C,EAAGuyG,WAnOSA,EAoOZvyG,EAAGymD,UAAYA,EACfzmD,EAAGyyG,qBAnOmBA,EAoOtBzyG,EAAGomD,YAAcA,EACjBpmD,EAAG2zG,qBAAuBA,EAC1B3zG,EAAGi0G,iBAAmBA,CACtB,IAAIqB,GAAY,CAlOhBt1G,GAAA+xG,kBAAoBA,CAuOpB,IAAI5/F,GAnOYhY,EAAWgG,uBAAAwU,gBAAAxC,SAqO3BD,6SAjDJ9d,QACKC,OAnOO,2BAoOPe,WAnOW,kBAAkB8/G,MAsyBtC,WACI,YAOA,SArOQK,GAAe9qG,EAAS1Q,EAAUhC,EAAGyC,EAAAH,EAAAL,EAAA+gD,EAAA5gD,EAAA6X,EAsOzCJ,GAmBA,QAASM,KACLF,EArOYI,mBAAAD,GAAA1T,KAAA,SAAAC,GACG,MAqOPA,EArOIlI,SAsOJwJ,EAAGqS,YArOI3T,EAAWhJ,KAsOlBsK,EAAGsS,WArOU,IAuOlB,SAAS3R,GACR5I,EAAW2I,YArOK,QAAU,mBAAA,oBAyOlC,QAAS+gB,GArOoBtP,GAuOzBP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YArOQjjB,EAAShJ,MAsOfsK,EAAG2hB,YAAYxmB,OAAS,GApOzBpD,EAAG2I,YAAgB,OAAO,iDAAuB,WAuOrDV,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EArOQwH,MAAA,QAAW,mBAAqB,oBAyOhD,QAAS2zG,GAAU1/G,GACfilD,EArOOqrB,aAAAtwE,GAAA2I,KAAA,SAAAC,GACH,GAAa,MAAVA,EAAAlI,OAAU,CAsOTwJ,EAAG6sB,UAAYnuB,EAAIhJ,IACnB,KAAK,GAAIwF,KAAK8E,GAAG6sB,UAAW,CAExB,GAAI4oF,GAAM94G,KAAKC,MAAMoD,EAAG6sB,UAAU3xB,GAAG03G,WAnOjD5yG,GAAA4yG,aACS,KAAA,GAAAkC,KAAmBW,GAAAj/E,UACTi/E,EAAAj/E,UAAUu+E,eAAcD,IACpC90G,EAAc4yG,WAAW/6G,MACT4E,KAAOq4G,EACPY,eAAAD,EAAAj/E,UAAAs+E,IAIX90G,GAAE6sB,UAAA3xB,GAAa03G,WAAU5yG,EAAA4yG,UAuOzB,IAAItP,GAAM3mG,KAAKC,MAAMoD,EAAG6sB,UAAU3xB,GAAG23G,eACrC7yG,GAAG6yG,iBApOP,KAAK,GAAAiC,KAAgBxR,GACrBA,EAAAyR,eAAAD,IACQ90G,EAAK6yG,eAAAh7G,MACN4vD,SAAAqtD,EAsOS7nD,UAAWq2C,EAAIwR,IAI3B90G,GAAG6sB,UAAU3xB,GAAG23G,eAAiB7yG,EAAG6yG,eAExC7yG,EAAGsS,WAAY,MAEfjY,GAAQwH,MAAM,QAAS,yBAA0B,qBAnOzD,SAAIlB,GACAtG,EAAAwH,MAAa,QAAA,mBAAA,sBAyOrB,QAASmS,KACL,GAAIte,IACAqd,UAAW/S,EAAG+S,UACd8+C,OAAO,EAnOX73D,GAAI8F,GAAA,kBACDpK,KAAAA,IAqBP,QAASi+G,GAAoB7gG,GACzB,GAAAurC,IACG7nB,aAwOH,KArOI,GAAAt7B,KAAU4X,GAAA8/F,WAsOVv0D,EAAO7nB,UAAU1jB,EAAI8/F,WAAW13G,GAAGuB,MAAQqW,EAAI8/F,WAAW13G,GAAGw6G,cAEjE11G,GAAG4yG,WAAaj2G,KAAKqkB,UAAUq9B,EAC/B,IArOIpjD,IAsOA24G,QArOI9gG,EAAA8gG,QAsOJl/E,OAAQ5hB,EAAI4hB,OACZk+E,WAAY5yG,EAAG4yG,WApOf59E,MAAMliB,EAAAkiB,MACNrhB,WAAA5b,EAAgBuK,OAuOpBy4C,GArOqB+rB,qBAAoB7rE,GAAAwD,KAAA,SAAAC,GACtB,MAAfA,EAAAlI,QAsOIuB,EAAW2I,YAAY,UAAW,wCAAyC,oBApO/EoS,EAAAynD,QAAiB,GAEbxiE,EAAQ2I,YAAW,QAAK,iCACpBrJ,WAAO,EAsOP+F,KArOI,QAwOb,SAASuD,GACR5I,EArOW2I,YAAU,QAAI,iCAsOrBrJ,WArOO,EAsOP+F,KAAM,SA9IlB,GAAI4C,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YArOQ,EAsOXhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EApOftS,EAAAwkB,gBAsOAzsB,EArOW2c,SAAS,EAsOpB1U,EAAGgU,OAASA,EACZhU,EAAGyhB,oBAAsBA,EApOzBzhB,EAAAw1G,UAASA,EAuOTx1G,EAAG2zG,qBArOCA,CAsOJ,IArOIxhG,GAAIhY,EAAYgG,uBAAAwU,gBAAAxC,SAsOpBD,KAuFAlS,EAAG2vG,YArOY,SAAA78F,GAsOX,GAAIpd,IACAqd,WAAW,EACX68F,SAAU,EApOX/rF,QAAA/Q,EAsOC2+C,QAAQ,EAlOZz3D,GAAK8F,GAAI,kBACLpK,KAAGA,oKAiHftB,QACKC,OAAO,2BACPe,WAAW,oBAAqBmgH,MA0JzC,WACI,YAOA,SArOII,GAAS59G,EAA0BkC,EAAAO,EAAAH,EAAAN,EAAAiuE,EAAAp2D,EAAA0vC,EAsOnC1G,EAAsBg1B,EAA0BruB,EAAkBpnD,EAAuBM,GA2FzF,QAtOIyX,KACIC,EAuOAsP,EAtOOtP,IAwOPnS,EAAG0hD,iBAAiB7/B,gBAAkB,KArOvC7hB,EAAA2hB,gBA4OP,QAtOIF,GAAAtP,GACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAAsS,WAAQ,GAwORva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAtOQC,GAuOP5I,EAtOI2I,YAAc,QAAS,mBAAA,oBA4OnC,QAASk1G,KAGLt0D,EAtOY23B,uBAAgBx6E,KAAA,SAAAC,GACL,MAAfA,EAAGlI,QACHwJ,EAAA61G,cAAiBn3G,EAAAhJ,KAuOjBsK,EAAGsS,WAAY,GAEfva,EAtOI2I,YAAA,QAAA,yBAAA,oBAwOT,SAtOSC,GAuOR5I,EAAW2I,YAtOS,QAAU,mBAAe,qBA0OrD,QAASw4E,KAEL48B,IACAx0D,EAtOe43B,cAAaz6E,KAAa,SAAGC,GAuOrB,MAAfA,EAAIlI,QACJwJ,EAAG+1G,YAtOWr3G,EAAKhJ,KAuOnBsK,EAAGsS,WAtOI,GAwOPva,EAtOQ2I,YAAQ,QAAe,yBAAW,oBAwO/C,SAASC,GACR5I,EAAW2I,YAtOS,QAAW,mBAAI,qBA0O3C,QAASy4E,KAEL68B,IACA10D,EAtOW63B,wBAAA16E,KAAA,SAAAC,GACW,MAAdA,EAAAlI,QAuOAwJ,EAAGi2G,WAAav3G,EAAIhJ,KArOzBsK,EAAAsS,WAAc,GAwOTva,EAAW2I,YAAY,QAAS,yBAA0B,oBAE/D,SAASC,GArOhB5I,EAAkB2I,YAAA,QAAA,mBAAA,qBA0OlB,QAAS04E,KAEL,GAtOIn+E,IAuOAi7G,OAAQl2G,EAAGkiD,eAAe75B,KAE9B8tF,uBACA70D,EAAsB83B,oBAAoBn+E,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAG+oD,eAAiBrqD,EAAIhJ,KACxBsK,EAAGsS,WAAY,GAnOnBva,EAAW2I,YAAA,QAAA,yBAAA,oBAwOZ,SAtOCC,GACA5I,EAAQ2I,YAAA,QAAA,mBAAA,qBAQhB,QAAS01G,KAwOLp2G,EAAGsS,WAtOY,CAuOf,IAAIpS,GAAa/F,EAAsBgG,uBArOvC2uG,EAAAxpD,IAiPI9C,EAAa,KArOjB6zD,EAAA,IA6BJ,IAvB2B,IAsOnBr2G,EAAGs2G,0BAtOgBC,eAwOfF,EAvOU,IAsOVr2G,EAAG+jD,iBAtOO5oD,OAuOM,sCAAwC6E,EAAGw2G,eAAenvD,KAAKI,SAAW,QApOjF,wDAGH,IAsOVznD,EAAGs2G,0BAtOOC,eAwONF,EAD+B,IAA/Br2G,EAAG+jD,iBAAiB5oD,OACJ6E,EAAGw2G,eAAenvD,KAAKI,SAAW,QAElC,sBA/N3BjF,EAAO,+FAAAxiD,EAAAy2G,oBAAAC,gBAAA,OAAAL,EAKc1gH,QAAtBqK,EAAAojD,cAAsBpjD,EAAAojD,aAA0BjoD,OAAA,EAAkB,CAC9D,GAAKkoD,KACN,KAAA,GAAWnoD,KAAA8E,GAAAojD,aACXC,EAAAxrD,KAAemI,EAAAojD,aAAAloD,GAAAooD,cAEftjD,GAAAujD,KAAAF,EAAkB3vB,OAIlB,GAAqB/9B,QAArBqK,EAAA82C,cAAqB92C,EAAA82C,aAAA37C,OAAA,EAAA,CACpB,GAAAkoD,KACD,KAAA,GAAAnoD,KAAA8E,GAAsB82C,aACtBuM,EAAWxrD,KAAAmI,EAAA82C,aAAA57C,GAAA8kB,OAEXhgB,GAAAjC,KAAAslD,EAAgB3vB,OAKhB,GAA2B/9B,QAA3BqK,EAAA69C,qBAA2B79C,EAAA69C,oBAAA1iD,OAAA,EAAA,CAC3B,GAAAkoD,KACA,KAAA,GAAAnoD,KAAA8E,GAAA69C,oBACAwF,EAAAxrD,KAAAmI,EAAqB69C,oBAAA3iD,GAAA22B,cAErB7xB,GAAAwjD,YAAgBH,EAAA3vB,OAKhB,GAAc/9B,QAAdqK,EAAA29C,kBAAc39C,EAAA29C,iBAAAxiD,OAAA,EAAA,CACd,GAAAkoD,KACA,KAAA,GAAAnoD,KAAA8E,GAAsB29C,iBACtB0F,EAAAxrD,KAAemI,EAAA29C,iBAAAziD,GAAAghD,WAEfl8C,GAAAyjD,SAAaJ,EAAA3vB,OAWb,GAAAijF,GAAS,IAwOiBhhH,SAArBqK,EAAGw2G,iBACHG,EAAiB32G,EAAGw2G,eAAenvD,KAAKK,SAnO7C,IAAAvzB,KAwOC,KAAK,GAAIj5B,KAAK8E,GAAG+jD,iBACb5vB,EAAKt8B,KAAKmI,EAAG+jD,iBAAiB7oD,GAAG4oD,WArOzC9jD,GAAA8jD,WAAA3vB,EAAAT,MA6OI,IAAIz4B,IACAnF,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9B4tD,YAA6B/tD,QAAfqK,EAAGyjD,SAAyBzjD,EAAGyjD,SAAW,GACxDE,eAAmChuD,QAAlBqK,EAAGwjD,YAA4BxjD,EAAGwjD,YAAc,GACjEI,QAAqBjuD,QAAXqK,EAAGjC,KAAqBiC,EAAGjC,KAAO,GAC5CulD,cAA2B3tD,QAAXqK,EAAGujD,KAAqBvjD,EAAGujD,KAAO,GAtOvDnE,iBAAajlD,EAAAgG,uBAAAwU,gBAAAs3B,YACV3pB,YAAAtiB,EAAgB6hB,gBAAgBS,YAwO9BwhC,WAAY9jD,EAAG8jD,WACfE,MAAO8qD,EACP/vD,SAAU/+C,EAAGikD,mBAAmB57B,KAChCyL,SAAU5zB,EAAWi/C,UACrB+E,QAAS1B,EACTkF,SAAUivD,EACVtyD,aAAcrkD,EAAGs2G,0BAA0BC,aAlOb,KAAhCv2G,EAAA+jD,iBAAc5oD,OAwOZF,EAAIqpD,UAAY,EArOrBrpD,EAAAqpD,UAAqB,EA4OpBsrB,EAAyBO,wBAAwBl1E,GAAKwD,KAAK,SAASC,GAC5D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAtOvBsK,EAAAsS,WAAA,CACR,IAAW2D,GAAAnf,SAAAijB,cAAA,IACXjjB,UAAAC,KAAoBijB,YAAA/D,GACjBA,EAAAgE,MAAA,eACA,IAAArc,GAAA,GAAiBC,OAAAa,EAAAhJ,OACjBqI,KAAc,oBAyOLtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EACrCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,eAAgB,mBAClDwR,QAjOD7X,GAAAwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OACH4C,EAAAsS,WAAW,GAGf,SAAA3R,GAwOI5I,EAAW2I,YAAY,QAAS,4BAA8BrJ,WAAW,EAAM+F,KAAM,OACrF4C,EAAGsS,WAAY,IAS3B,QAAS4/F,GAvOMhqD,GAyOX,GAAIjtD,IACA6oD,WAvOoCnuD,QAAhCqK,EAAW+jD,iBAAqB/jD,EAAA+jD,iBAA0BD,WAAA,GAwO9DhuD,UAAWoyD,EAtOZtyD,OAAS,EAyOZqyD,GAAaC,GAC0B,IAAnCloD,EAAG6hD,yBAAyB9oC,KAC5B9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MArOlCu9C,EAAA9qB,UAAA7pD,GAAAwD,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QACAwJ,EAAAk7C,QAAAx8C,EAAsBhJ,KACdsK,EAAA8hD,kBAAoB,KACjB9hD,EAAAk7C,QAAA//C,OAAkB,GAClBd,EAAA8C,OAAY,UAAA,kFACZ9F,WAAA,EACH+F,KAAW,OA2OX4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BArOlE,SAAAC,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,2BA2OJ,QAASg8C,GAvOkB5mD,GAwOvB,GAAIA,EAvOO,CAwOP,GAvOImF,IAwOA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAtOvFhuD,UAAcA,EAyOTF,OAAQ,EAE2B,KAAnCoK,EAAG6hD,yBAAyB9oC,KAtO/B9d,EAAA+oD,MAAArnD,KAAAqkB,UAAsBhhB,EAAAqyB,MAEvBivB,EAAMyD,cAAA9pD,GAAAwD,KAAA,SAAAC,GACK,MAAHA,EAAGlI,QAwOHwJ,EAAG8V,YAAcpX,EAAIhJ,MArOjCsK,EAAA8V,YAAsB3a,OAAA,GACVd,EAAW8C,OAAK,UAAA,uCACjB9F,WAAiB,EACjB+F,KAAY,OA2OX4C,EAAGsS,WAAY,GArOvBjY,EAAWwH,MAAA,QAAY,yBAA6B,mBAyOjD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAMvD,QAvOIi7C,GAAAhnD,EAAAugB,EAAA0mC,GAEA,GAAI1mC,GAAavgB,GAAAinD,EAAA,CACb,GAAA9/C,IAwOIoZ,UAAWA,EACX2mC,MAAOD,GAEP9hD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWA,EAIXF,OAAQ,EAtOZsvD,UAAavoD,KAAAqkB,UAAA/jB,GAyO0B,KAAnC+C,EAAG6hD,yBAAyB9oC,KAC5B9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MAElCu9C,EAAyBzqB,eAAelqD,GAAKwD,KAAK,SAASC,GACpC,MAAfA,EAAIlI,QAtOTwJ,EAAA47C,aAAAl9C,EAA0BhJ,MACtBsK,EAAA47C,aAAiBzgD,OAAc,GAClCd,EAAgB8C,OAAA,UAAA,qDACb9F,WAAA,EACH+F,KAAgB,OAIb4C,EAAAsS,WAAA,GAEAjY,EAAAwH,MAAA,QAAA,yBAAA,mBAyOJ,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAKvD,QAASu7C,KAEL,GAA2BznD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG29C,iBACbtrB,EAAIx6B,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WArOpCl8C,GAAAyjD,SAAUpxB,EAAAqB,MACV,IAAAz2B,IACI+/C,MAAIh9C,EAAKglD,YAAGtJ,sBAwOZrlC,UAAWrW,EAAG6hB,gBAAgBxL,UAtO/B6lC,WAAWl8C,EAAAyjD,UA0OVxoD,GAtOD6oD,WAAgCnuD,QAAhCqK,EAAgB+jD,iBAA6B/jD,EAAA+jD,iBAAYD,WAAA,GACxDhuD,UAAMkK,EAAA6hB,gBAAA/rB,UAIPF,OAAO,EAwONsvD,UAAWvoD,KAAKqkB,UAAU/jB,GAEO,KAAjC+C,EAAGqlD,uBAAuBtsC,KAC1B9d,EAAI+oD,MAAQsB,KArOhBsqB,EAAUrqB,kBAAAtqD,GAAAwD,KAAA,SAAAC,GACO,MAAZA,EAAIlI,QACDwJ,EAAAo8C,gBAAQ19C,EAAAhJ,KAwORsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,gBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAQhE,QAAS48C,GAAyBxnD,EAAWomD,EAAYrqB,GAErD,GAA8Bl8B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG69C,oBACbxrB,EAAIx6B,KAAKmI,EAAG69C,oBAAoB3iD,GAAG22B,cAEvC7xB,GAAGwjD,YAAcnxB,EAAIqB,MArOrB,IAAAz2B,IACG+/C,MAAAh9C,EAAAglD,YAAkBtJ,sBACrBrlC,UAAArW,EAAiB6hB,gBAAGxL,UAwOhB6lC,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,aApOrBvoD,GACD6oD,WAAiCnuD,QAApBqK,EAAA+jD,iBAAoB/jD,EAAA+jD,iBAAAD,WAAA,GAwO7BhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAI9BF,OAAQ,EAtOhBsvD,UAAAvoD,KAAAqkB,UAAA/jB,GAEU,KAAN+C,EAAMqlD,uBAAAtsC,KACN9d,EAAA+oD,MAAcsB,KAEdsqB,EAAoBnqB,WAAexqD,GAAAwD,KAAA,SAAgBC,GAC9B,MAArBA,EAAUlI,QACVwJ,EAAAizB,SAAmBv0B,EAAAhJ,KACnBsK,EAAAsS,WAAkB,GAElBva,EAAe2I,YAAA,QAAA,yBAAA,eAEf,SAAUC,GACV5I,EAAU2I,YAAW,QAAA,mBAAA,iBAmP7B,QAAS+8C,KAEL,GADAiyC,IACuB/5F,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIk3B,KAtOR,KAAA,GAAAn3B,KAAA8E,GAAA82C,aACQzkB,EAAIx6B,KAAImI,EAAA82C,aAAgB57C,GAAA8kB,OAyO5BhgB,GAAG2lD,KAvOKtzB,EAAGqB,MAwOX,IAAIz2B,IACA+/C,MAvOIh9C,EAAAglD,YAActJ,sBAwOlBrlC,UAvOMrW,EAAQ6hB,gBAAAxL,UAwOd6lC,WAvOQl8C,EAAOyjD,SAwOf5xB,cAvOY7xB,EAAMwjD,YAwOlBxjC,OAAQhgB,EAAG2lD,KAEX5G,SAvOI/+C,EAAQikD,mBAAU57B,KAAA6f,OAAAloC,EAAAikD,mBAAA57B,KAAA,MA0OtBptB,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAI9BF,OAvOO,EAwOPsvD,UAAWvoD,KAAKqkB,UAAU/jB,GArOhB,KAAd+C,EAAAqlD,uBAActsC,KACV9d,EAAA+oD,MAAWsB,KAyOfsqB,EAAyBhqB,WAAW3qD,GAAKwD,KAAK,SAASC,GAChC,MAAfA,EAAIlI,QACJwJ,EAAGm+C,SAAWz/C,EAAIhJ,MACbsK,EAAGm+C,SAAShjD,OAAS,EACtB6E,EAAG6lD,cAAe,EAElB7lD,EAAG6lD,cAAe,GApOlC9tD,EAAA2I,YAAA,QAAA,mCAAA,WAEI,SAAYC,OAuQpB,QAASmlD,GAvOc/sC,GAyOnB,GAAI9d,IACAnF,UAAWijB,EAEf6hC,GAvOoBgC,qBAAkB3hD,GAAAwD,KAAA,SAAAC,GAwOf,MAAfA,EAAIlI,QAtORwJ,EAAA68C,eAAsBn+C,EAAAhJ,MACdsK,EAAI68C,eAAW1hD,OAAK,GACpBpD,EAAG2I,YAAkB,OAAA,uDAAA,WAyOzBV,EAAGsS,WAvOS,GAyOZva,EAAW2I,YAvOY,QAAA,yBAAA,oBAyO5B,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAGxDV,EAAG42G,gBAvOY,KAwOf52G,EAAG62G,sBAvOuB,KAwO1B72G,EAAGy2G,oBAAqB,KACxBz2G,EAAGs2G,0BAvOkB,KA6OzB,QAAS5mB,KAtOT1vF,EAAAm+C,YAwOIn+C,EAAGojD,aAAe,KAqCtB,QAASgD,GAAYc,GAtOrB,GAAAV,GAAS,QAAA5/C,SAA2BsgD,EAAAQ,SAAApkC,UAAA,IAAA,EAwOhCtjB,GAAG4uG,YAAc5uG,EAAG2uG,QAAQnoD,GAtO5BxmD,EAAAo1G,cAAO56G,EAAAyC,OAAoB+C,EAAA4mD,aACvBa,SAAUznD,EAAA4uG,YACVyG,aAAcnuD,EAAG47C,kBAAkB/7C,SAyOvCvsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAASP,GAtO9BA,EAAAa,WAAelB,IACdK,EAAAC,OAAS9mD,EAAAo1G,iBA4OiC,IAA9Cp1G,EAAGs2G,0BAA0BC,cAtO7BrE,EAAUlyG,EAAA6hB,gBAAA/rB,WA6OlB,QAASwvD,KACL,GAAIwpD,IACA7xG,UAMJ,OAJAzC,GAAOqI,QAvOK7C,EAAAonD,SAAQ,SAAAF,GAwOZA,EAAK47C,oBAtOTgM,EAAA7xG,OAAAiqD,EAAAQ,UAAyBR,EAAA47C,kBAA4B/7C,UAyOlDpqD,KAvOKqkB,UAAG8tF,GA8QnB,QAvOQ7nD,GAAOnxD,EAAuByI,GAG9B5I,QAAAqK,EAAA+jD,mBAC4B,GAAxB/jD,EAAA+jD,iBAAmB5oD,SAwOnB6E,EAAG2uG,QAvOIhyG,KAAWC,MAAIoD,EAAA+jD,iBAAA,GAAAC,OAwOtBhkD,EAAG4uG,YAvOI5uG,EAAY2uG,QAAAE,MAyOnBttD,EAvOeqnC,gBAAY5oF,EAAS+jD,iBAAA,GAAAD,YAA0BrlD,KAAA,SAAAC,GAwO1D,GAAmB,MAAfA,EAAIlI,OAAgB,CAtOpBwJ,EAAA4mD,YAAKloD,EAAAhJ,KACbsK,EAAWonD,WAwOH,KAAK,GAAI+tD,KAAcn1G,GAAG2uG,QAAS,CAC/B,GAAI71D,IACA2O,SAAUznD,EAAG2uG,QAAQwG,GAtOtC2B,eAAA92G,EAAA2uG,QAAAwG,GAAA,QAwOiB59F,UAAU,EACVmwC,SAAUytD,EAEK,WAAfA,IACAr8D,EAAKgO,OAAStsD,EAAOyC,OAAO+C,EAAG4mD,aAC3Ba,SAAYznD,EAAG2uG,QAAQwG,MApOnDn1G,EAAAonD,SAAAvvD,KAAAihD,GAEc94C,EAAAo1G,cAAA56G,EAAAyC,OAAA+C,EAAA4mD,aACIa,SAAGznD,EAAc4uG,cAyOnB5uG,EAAGsS,WAAY,MApOhBva,GAAG2I,YAAY,QAAA,yBAAA,eAEtB,SAAYC,GACZ5I,EAAe2I,YAAG,QAAA,mBAAA,iBA0OtBwxG,EAvOclyG,EAAC6hB,gBAAG/rB,YA2O1B,QAASwxD,GAvOgBJ,EAAGb,GAwOxBrmD,EAAGumD,aACHvmD,EAAG+lD,oBAEH,IAAIS,GAAW,QAAUC,EAAUJ,EAASK,QAAU,GAClDC,EAvOYnsD,EAAA6P,KAAArK,EAAAq+C,OAAA2F,OAwOZ0C,OAvOIF,GAyORhsD,GAvOIqI,QAAO7C,EAAA+lD,qBAAuB,SAAUc,GACpCA,EAAAH,SAAYF,IAwOZK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAtO5CxrB,SAAA4rB,EAAyBZ,sBAAqBS,YA8OtD,QAASN,GAAUc,GACf,MAAO3gD,UAvOQ2gD,EAAAjkC,UAAA,IA0OnB,QAASkkC,KACLxnD,EAAGukD,aACH,KAAK,GAAIrpD,KAAK8E,GAAG+lD,qBAAsB,CACnC,GAAI9qD,IACAwsD,SAAUznD,EAAG+lD,qBAAqB7qD,GAAGmsD,KACrCK,SAAU1nD,EAAG+lD,qBAAqB7qD,GAAGwrD,OAEzC1mD,GAAGukD,WAAW1sD,KAAKoD,IAsC3B,QAASme,GAvOG1jB,GAwOR,GAAI2jB,GAAO3jB,EAAK2jB,KAtOb9iB,EAAAb,EAASa,IAwOZ,OAvOe,QAAXA,IAAgC,IAArB8iB,EAAYC,UAA6B,IAApBD,EAAAC,UA8QxC,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAEzCxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAnOhC,MAAG,GAoQP,QAASmxD,KACL,GAA8B,KAA1B3nD,EAAGkiD,eAAe75B,KAAa,CAC/BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAClC,IAAI4E,GAAoB,CACxB5nD,GAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY4rC,OACT,KAA1B5nD,EAAGkiD,eAAe75B,OACzBroB,EAAG+iD,KAAKE,GAAK,IAQrB,QAAS4E,KAEL,GAA8B,KAA1B7nD,EAAGkiD,eAAe75B,KAAa,CAC/BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAClC,IAAI8E,GAAqB,CACzB9nD,GAAG+iD,KAAKE,GAAG8E,SAAS/nD,EAAG+iD,KAAKE,GAAG9R,WAAa2W,GAC5C9nD,EAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY,OACT,KAA1Bhc,EAAGkiD,eAAe75B,OACzBroB,EAAG+iD,KAAKE,GAAK,IAMrB,QAAS+E,KAEL,GAA8B,KAA1BhoD,EAAGkiD,eAAe75B,KAAa,CAC/BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAClC,IAAI8E,GAAqB,CACzB9nD,GAAG+iD,KAAKE,GAAG8E,SAAS/nD,EAAG+iD,KAAKE,GAAG9R,WAAa2W,GAC5C9nD,EAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY,OAET,KAA1Bhc,EAAGkiD,eAAe75B,OAtOjCroB,EAAS+iD,KAAAE,GAAA,IAiPT,QAASgF,GAvOWC,GAyOhB,GAAIhoD,GAvOY/F,EAAuBgG,uBAwOnClF,GACAmF,SAAUF,EAvOUi/C,UAwOpBrpD,UAAWoyD,EAEf5G,GAAsB2G,aAvOYhtD,GAAAwD,KAAA,SAAAC,GAwOX,MAAfA,EAAIlI,QACJwJ,EAAGmoD,qBAvOazpD,EAAAhJ,KAwOhBsK,EAAGsS,WAAY,EAGftS,EAAGooD,sBACHpoD,EAAG4tC,gBACH5tC,EAAGgiD,gBAAkB,KACrBhiD,EAAG+hD,2BAvOwB,MA2O3BhqD,EAAW2I,YAAY,QAAS,yBAA0B,qBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAK5D,QAvOQ8nD,KAwOJ,GAAItoD,GAAa/F,EAAsBgG,uBACnClF,GACAmF,SAAUF,EAAWi/C,UAtO7BrpD,UAASkK,EAAA6hB,gBAAuB/rB,UACzB42C,cAAA1sC,EAAA8hD,kBAAApV,cAyOH4U,GAAsBkH,aAAavtD,GAAKwD,KAAK,SAASC,GAtOvC,MAAXA,EAAAlI,QACAwJ,EAAAooD,mBAAwB1pD,EAAQhJ,KAChCsK,EAAAsS,WAAU,GAEPva,EAAW2I,YAAA,QAAsB,yBAAY,kBAyOjD,SAvOOC,GAwON5I,EAvOQ2I,YAAY,QAAK,mBAAsB,mBA4OvD,QAAS+nD,GAAWP,EAAOQ,GACvB,GAAIxoD,GAAa/F,EAAsBgG,uBArOvClF,GAwOImF,SAAUF,EAAWi/C,UACrBrpD,UAAWoyD,EAtOnBxb,cAASgc,EA0OLpH,GAvOcmH,WAAAxtD,GAAAwD,KAAA,SAAAC,GACO,MAAbA,EAAAlI,QACAwJ,EAAA4tC,aAAalvC,EAAAhJ,KAwObsK,EAAGsS,WAAY,EAE2B,GAAtCtS,EAAG8hD,kBAAkBpV,eACrB8b,IAKJxoD,EAAGgiD,gBAAkB,MAErBjqD,EAAW2I,YAAY,QAAS,yBAA0B,kBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAM5D,QAASioD,GAAYT,EAAOU,GAtOzB,GAAA1oD,GAAQ/F,EAAWgG,uBAyOdlF,GACAmF,SAAUF,EAAWi/C,UAtO1BrpD,UAAgBoyD,EACfhM,WAAa0M,EA0ObtH,GAAsBqH,YAAY1tD,GAAKwD,KAAK,SAASC,GAC9B,MAAfA,EAAIlI,QAtObwJ,EAAAqoD,eAAc3pD,EAAAhJ,KACbsK,EAAAsS,WAAc,GAEdva,EAAkB2I,YAAS,QAAA,yBAAA,kBAE3B,SAAAC,GAwOI5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAO5D,QAASq2G,KACL/2G,EAAG42G,gBAAkB,KAtOtBd,IA0OH,QAASA,KACL91G,EAAG62G,sBAAwB,KAE3Bb,IAGJ,QAvOQA,KAwOJh2G,EAAGy2G,oBAAsB,KAI7B,QAvOOO,KACHh3G,EAAAy2G,oBAAgB,KASpB,QAAGQ,KAwOCj3G,EAAG+jD,iBAAmB,KACtBmD,KAAK47C,kBAAoB,KAtO1B9iG,EAAAw2G,eAASnvD,KAAA,KACRrnD,EAAAglD,YAAQ,KAgPZ,QAvOQtzC,KAwOJ1R,EAAGgT,YAvOa,EAChBhT,EAAAkU,YAwOAlU,EAAGk3G,2BACHl3G,EAAG6hB,gBAAiB,KACpB7hB,EAAG42G,gBAvOiB,KAwOpB52G,EAAG62G,sBAvOsB,KAwOzB72G,EAAGy2G,oBAAqB,KACxBz2G,EAAGs2G,0BAvOwB,KAj5B/B,GAAIt2G,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAG47C,gBACH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGgT,YArOK,EAsORhT,EAAG+S,WArOK,EAsOR/S,EAAGsS,WArOK,EAsORtS,EAAGo2G,mBArOgBA,CAsOnB,IAAIjkG,GArOIhY,EAAmBgG,uBAAAwU,gBAAAxC,SAsO3BnS,GAAGyhB,oBArOiBA,EAsOpBzhB,EAAGm+C,YACHn+C,EAAGyhB,oBAAsBA,EACzBzhB,EAAGkyG,cArOCA,EAsOJlyG,EAAGioD,aArOaA,EAsOhBjoD,EAAG08C,oBArOsBA,EAsOzB18C,EAAG88C,qBArOaA,EAsOhB98C,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGs9C,yBArOwBA,EAsO3Bt9C,EAAGy9C,aArOaA,EAsOhBz9C,EAAG8lD,qBArOSA,EAsOZ9lD,EAAGinD,mBArOYA,EAsOfjnD,EAAGsnD,iBArOSA,EAsOZtnD,EAAGwnD,cAAgBA,EACnBxnD,EAAGymD,UArOIA,EAsOPzmD,EAAGomD,YArOKA,EAsORpmD,EAAG2nD,iBArOSA,EAsOZ3nD,EAAG41G,kBArOeA,EAsOlB51G,EAAGk5E,YAAcA,EACjBl5E,EAAGm5E,sBAAwBA,EAC3Bn5E,EAAGo5E,oBAAsBA,EACzBp5E,EAAG6nD,aAAeA,EAClB7nD,EAAGgoD,gBAAkBA,EACrBhoD,EAAGyoD,WAAaA,EAChBzoD,EAAGwoD,aAAeA,EAClBxoD,EAAG2oD,YAAcA,EAEjB3oD,EAAG+iD,QACH/iD,EAAG+2G,eAAiBA,EACpB/2G,EAAG81G,iBAAmBA,EACtB91G,EAAGg2G,iBAAmBA,EACtBh2G,EAAGg3G,kBAAoBA,EACvBh3G,EAAGi3G,aAAeA,EAnOlBj3G,EAAA0R,OAASA,EA0OT1R,EAAG6hD,2BAA8B9oC,GAAI,IACrC/Y,EAAGqlD,yBArOStsC,GAAA,IAwOZhhB,EArOQ2c,SAAa,EAsOrBxC,IAGAlS,EAAGu7C,eAAkBC,aAAc,MAAOnzB,KAAM,KAAQmzB,aAAc,UAAWnzB,KAAM,MAASmzB,aAAc,WAAYnzB,KAAM,MAShIroB,EAtOCm7C,aAuOKg8D,eAAgB,eAAgBC,aAAc,MA5NpDp3G,EAAAq3G,eAEGC,aAAA,iBAAsBjvF,KAAA,MAGzBroB,EAAGu3G,oBAAuBC,kBAAA,8BAAAC,gBAAA,MAC1Bz3G,EAAA03G,kBACAhB,gBAAA,aAAAiB,cAAA,IAwOA33G,EAAG43G,wBAA2BC,eAAgB,6BAA8BtB,aAAc,IAAOsB,eAAgB,gBAAiBtB,aAAc,IAgvBhJv2G,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EAtOjBkB,QAAS,GAAAhB,MACLiB,WAAA,GA0OJ1a,EAAG2a,aAtOCC,aAAAxB,EAwOA+C,WAvOY,KAwOZtB,QAvOQ,GAAGpB,MAAA,KAAA,EAAA,IAwOXgB,QAvOQ,GAAKhB,MAwObqB,YAvOY,GAiPhB9a,EAAG+a,UAvOI,WACH/a,EAAGua,cAAAE,QAAuBza,EAAAua,cAAAE,QAAA,KAAA,GAAAhB,MAC1BzZ,EAAG2a,YAAAF,QAAqBza,EAAAua,cAAAE,SA0O5Bza,EAAG+a,YAEH/a,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CAtOd,IAAA4K,OA2OTzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,aAC1D5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAAmB,cAGtB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QACCpM,QAAQ,GAwBZ7O,EAAGkpD,UAvOW,WAyOVkwB,IAE8B,KAA1Bp5E,EAAGkiD,eAAe75B,MAClBroB,EAAG+iD,KAAKC,KAAO,GAAIvpC,MAtOnBzZ,EAAG+iD,KAAAC,KAAA5uD,QAAA8e,KAAAlT,EAA0B+iD,KAAAC,MAC7BhjD,EAAA+iD,KAAAE,GAAA7uD,QAAiB8e,KAAAlT,EAAA+iD,KAAgBC,OAwOA,KAA1BhjD,EAAGkiD,eAAe75B,MACzBroB,EAAG+iD,KAAKC,KAAO,KACfhjD,EAAG+iD,KAAKE,GAAK,OAEbjjD,EAAG+iD,KAAKC,KAAO,KAtOvBhjD,EAAS+iD,KAAAE,GAAA,OA0OTjjD,EAAGgc,QAAU,WAtOmB,KAA5Bhc,EAAOkiD,eAAW75B,OACdroB,EAAA+iD,KAAIC,KAAK5uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,MAwOThjD,EAAG+iD,KAvOCE,GAAM7uD,QAAO8e,KAAKlT,EAAA+iD,KAAYC,QAoa1ChjD,EAAGkU,UAAY,WACXlU,EAAGk3G,wBAAwB9iG,6PApnCnChgB,QACKC,OAAO,mCACPe,WAAW,0BAA2BugH,MAmoC/C,WACI,YAOA,SAASmC,GAAW//G,EAAYyC,EAAQiQ,EAAQpQ,EAASL,EAAQD,EAAOiY,EACpEJ,EAvOWzX,EAA4Bu2E,EAAAz2E,EAAAM,GA8FvC,QAAS2X,KA0OL,GAzOAlS,GAAAgT,YAAI,EAEAhZ,EAAAvE,OAAUC,KAAAqiH,UAAW,CAoBrB,GAlBA/9G,EAAAvE,OAAkBC,KAAA6kE,SAwOdv6D,GAAG+S,WAAY,EAtOvB/S,GAAAyxD,QAAA,GAEQz3D,EAAGvE,OAAAC,KAAA+7D,SACHzxD,GAAG+S,WAAY,EAwOf/S,GAvOGyxD,QAAA,GAyOPzxD,GAAGg4G,aAtOJh4G,GAAA6hB,mBACC7hB,GAAAg4G,UAAW3vF,KAAAruB,EAAYvE,OAASC,KAAAqiH,UAwOhC/3G,GAAG6hB,gBAAgB/rB,UAAYkE,EAAOvE,OAAOC,KAAKI,UAClDmiH,GAAWj+G,EAAOvE,OAAOC,KAAKwiH,WAC9Bl4G,GAAGm4G,OAAOC,SAAWH,GAASG,SAC9Bp4G,GAAGq4G,SAAWJ,GAASG,SAtO/Bp4G,GAASm4G,OAAAjiD,SAAkB+hD,GAAQ/hD,SAC3Bl2D,GAAAm4G,OAAAG,SAAaL,GAAAK,SAwObt4G,GAAGm4G,OAAOI,SAAWN,GAASM,SAtOxB,IAANN,GAAM1/E,KAAA,CACNv4B,GAAAw4G,SAAU77G,KAAWC,MAAAq7G,GAAA1/E,KACrB,KAAA,GAAWr9B,KAAA8E,IAAAw4G,SACX,GAAAt9G,GAAe,EAwOH,IAAK,GAAIiP,KAAKnK,IAAGw4G,SAASt9G,GAAI,CAC1B,GAAImoD,GAAMrjD,GAAGw4G,SAASt9G,EAtO1C8E,IAAsBm4G,OAAA5/E,KAAW8qB,EAAKl5C,GAAKsuG,UAASh2F,UAGzCziB,IAAAm4G,OAAY5/E,KAAAv4B,GAAAw4G,SAAAt9G,GAAAu9G,UAAAh2F,MA6OM,KAArBziB,GAAGg4G,UAAU3vF,MACTruB,EAAOvE,OAAOC,KAAK6kE,SAtOpBv6D,GAAA04G,gBACA1mC,EAAAh4E,EAAAvE,OAAAC,OAyOCsE,EAAOvE,OAAOC,KAAK+7D,QAtOnB6f,EAAKt3E,EAAAvE,OAAAC,OACmB,MAArBsK,GAAAg4G,UAAY3vF,KAwOnBgpD,EAA2Br3E,EAAOvE,OAAOC,MAEzC07E,EAA4Bp3E,EAAOvE,OAAOC,MApOtDsK,GAAAsS,WAAS,EACLtS,GAAAshB,eAAiBC,SAAA,QAAsBC,SAAA,IAwOjCD,SAAU,sCAAuCC,SAAU,IAtO7DD,SAAM,gCAAAC,SAAA,IACND,SAAU,WAAWC,SAAA,IACrBD,SAAW,UAAAC,SAAA,IAAAD,SAAA,sBAAAC,SAAA,IA0OfxP,EAAeI,mBAAmBD,IAAW1T,KAAK,SAASC,GAtOrC,MAAtBA,EAAAlI,QACYwJ,GAAAqS,YAAgB3T,EAAAhJ,KACjBsK,GAAAsS,WAAA,IAEAva,EAAA2I,YAAA,QAAA,yBAAA,WACHV,GAAAsS,WAAW,IAGf,SAAA3R,GAwOI5I,EAAW2I,YAAY,QAAS,mBAAoB,WACpDV,GAAGsS,WAAY,IAS3B,QAASqmG,GAAYxhG,GAtOO,KAA5BnX,GAASg4G,UAAA3vF,KACFroB,GAAA44G,kBAAwBznB,KAAA,wBAAAp4E,GAAA,MAAAo4E,KAAA,WAAAp4E,GAAA,MAAAo4E,KAAA,WAAAp4E,GAAA,MAwOK,MAArB/Y,GAAGg4G,UAAU3vF,KAtOxBroB,GAAA44G,kBAAAznB,KAAA,wBAAAp4E,GAAA,MAAAo4E,KAAA,YAAAp4E,GAAA,MAAAo4E,KAAA,WAAAp4E,GAAA,MAyOI/Y,GAAG44G,kBAAqBznB,KAAM,wBAAyBp4E,GAAI,MAASo4E,KAAM,aAAcp4E,GAAI,MAASo4E,KAAM,WAAYp4E,GAAI,MArO5H5B,GAwOCA,IAIR,QAvOO0hG,KAwOH,OAAQ74G,GAAG84G,cACP,IAAK,GACD94G,GAAG+4G,YAAc,OAAQ,OAAQ,SACjC,MACJ,KAAK,GACD/4G,GAAG+4G,YAAc,OAAQ,SAAU,UACnC,MACJ,KAAK,GAtOJ/4G,GAAA+4G,YAAe,SAAA,UACjB,MACH,KAAK,GACF/4G,GAAA+4G,YAAsB,QAAA,SACtB,MAwOC,KAAK,GACD/4G,GAAG+4G,YAAc,OACjB,MACJ,KAAK,GAtOV/4G,GAAY+4G,YAAW,SAAA,aA4O1B,QAvOOC,GAAAC,GACH,MAAGz+G,GAAA3F,SAAAmL,GAAA+4G,WAAAE,GA0OP,QAvOOhJ,GAAiB99F,EAAA5T,GACjB4T,GACAnS,GAAAsS,WAAA,EACAV,EAAA8P,eAA2BvP,GAAA1T,KAAA,SAAAC,GAwOH,MAAfA,EAAIlI,QACJwJ,GAAG2hB,YAAcjjB,EAAIhJ,KACjBsK,GAAG2hB,YAAYxmB,OAAS,GACxBd,EAAQ8C,OAAO,UAAW,4BAA8B6C,GAAG8C,KAAKqQ,gBAAgB84B,aAAe50C,WAAW,EAAM+F,KAAM,OArOtI4C,GAAAsS,WAAA,EACR/T,GAwOwBA,MAtOxBxG,EAAA2I,YAAA,QAAA,yBAAA,YACYV,GAAAsS,WAAA,IA0OG,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,YAvO3DV,GAAAsS,WAAW,MA2ORtS,GAAG6hB,gBAAkB,KAvO1B7hB,GAAAg4G,UAAmB,KACnBh4G,GAAAk5G,WAAc,KAyOTl5G,GAAGm5G,cAAgB,MA5N3B,QAAGC,KACe,KAAfp5G,GAAAm5G,cAAepgG,GACf84D,IACuB,KAAvB7xE,GAAAm5G,cAAuBpgG,IACG,KAA1B/Y,GAAAg4G,UAAA3vF,MACAgxF,IACwB,MAAxBr5G,GAAAg4G,UAAA3vF,MACAixF,IACsB,KAAtBt5G,GAAAg4G,UAAsB3vF,MACtBkxF,KAEA5oC,IAWH,QAAG6oC,KACA,GAAqB,KAArBx5G,GAAAkiD,eAAqBnpC,IACPpjB,QAAdqK,GAAAy5G,cAAc,CACdz5G,GAAU0vC,SAAAz1C,EAAA,QAAA+F,GAAAy5G,cAAA,cAyODz5G,GAAG2vC,OAASv7C,QAAQ8e,KAAKlT,GAAGy5G,cAvOrC,IAAU3xD,GAAA,CACV9nD,IAAA2vC,OAAcoY,SAAA/nD,GAAA2vC,OAAAwB,WAAA2W,GACd9nD,GAAA2vC,OAAcn0B,QAAAxb,GAAA2vC,OAAA3zB,UAAA,GAyOLhc,GAAG2vC,OAAS11C,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cArOhD,GAAoB,KAApB3vC,GAAAkiD,eAAoBnpC,IACXpjB,QAAAqK,GAAA0vC,SAAA,CACT1vC,GAAA2vC,OAAoBv7C,QAAA8e,KAAAlT,GAAA0vC,SAyOX,IAAIoY,GAAqB,CAvOlC9nD,IAAA2vC,OAAAoY,SAAyB/nD,GAAA2vC,OAAAwB,WAAA2W,GACzB9nD,GAAA2vC,OAAAn0B,QAAAxb,GAA4B2vC,OAAA3zB,UAAA,IAgP/B,QAAS20D,KAvON+oC,KACA15G,GAAAsS,WAAgB,CAChB,IAAA+wC,MACAs2D,KACA1+G,GAyOK+8G,UAAWh4G,GAAGg4G,UAAU3vF,KAvO7B6wF,WAAgBl5G,GAAAk5G,WAAAngG,GAChB4/F,YAAA34G,GAAAm5G,cAAsBpgG,GACtBlY,UAAe5G,EAAA,QAAA+F,GAAA0vC,SAAA,cAAA1vC,GAAA0vC,SAAA,GACf5uC,QAAU7G,EAAA,QAAA+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GACV75C,UAAAkK,GAAA6hB,gBAAwB/rB,UACxB8jH,WAAiB,WAEjB,IAAc,KAAd55G,GAAAm5G,cAAcpgG,GACd,GAAA/Y,GAAA+jD,iBAAc5oD,OAAA,EAAA,CACd,IAAA,GAAAD,KAAsB8E,IAAA+jD,iBACtB41D,EAAqB9hH,KAAAmI,GAAA+jD,iBAAAD,WA0OZ7oD,GAAI4+G,WAAaF,EAAQjmF,KAAK,KAvO1Cz4B,EAAAm8B,WAAAp3B,GAAAqiG,mBACA,CAyOYpnG,EAAI4+G,WAAqClkH,QAAvBqK,GAAG+jD,iBAAiC/jD,GAAG+jD,iBAAiBD,WAAa,EACvF,KAAK,GAAI5oD,KAAK8E,IAAG85G,UAvO1Bz2D,EAAiBxrD,KAAEmI,GAAM85G,UAAA5+G,GAAA6rD,OA0OhB9rD,GAAIm8B,WAAaisB,EAAI3vB,KAAK,KAGT/9B,QAArBqK,GAAGkiD,iBACHjnD,EAAI8+G,aAAe/5G,GAAGkiD,eAAenpC,IAtOzC23D,EAAGC,gBAAa11E,GAAAwD,KAAA,SAAAC,GAChB,MAAAA,EAAAlI,QACuB,GAAZkI,EAAAhJ,KAAOyF,QACdd,EAAA8C,OAAA,UAAA,8BAAA,yBAEI6C,GAAG47C,aAAYl9C,EAAAhJ,KACfsK,GAAGsS,WAAS,IAGZva,EAAG2I,YAAY,QAAA,yBAAA,YACfV,GAAGsS,WAAS,IA0OjB,SAxOI3R,GACH5I,EAAG2I,YAAkB,QAAA,mBAAA,YACrBV,GAAGsS,WAAU,IA4OrB,QAxOQ0nG,KAyOJ,GAxOyB,MAArBh6G,GAAG29C,iBAAkB,CACrBs8D,KACAj6G,GAAGsS,WAAO,CACV,IAAI4nG,MACA72D,KACAs2D,IAyOJ,KAAK,GAxOGz+G,KAAI8E,IAAK29C,iBAyObu8D,EAxOQriH,KAAKmI,GAAA29C,iBAAYziD,GAASghD,WA0OtC,IAAIjhD,IACA+8G,UAAWh4G,GAAGg4G,UAAU3vF,KACxB6wF,WAxOWl5G,GAAAk5G,WAAAngG,GAyOX4/F,YAxOW34G,GAAAm5G,cAAiBpgG,GAyO5BlY,UAAW5G,EAAQ,QAAQ+F,GAAG0vC,SAAU,cAAgB1vC,GAAG0vC,SAAW,GACtE5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAChE75C,UAAWkK,GAAG6hB,gBAAgB/rB,UArO9B4tD,YAAaw2D,EAAQxmF,KAAK,KAC1BkmF,WAAW,cA0Of,IAxOQ,KAwOJ55G,GAAGm5G,cAxOCpgG,GAyOJ,GAAI/Y,GAAG+jD,iBAAiB5oD,OAAS,EAAG,CAvOhC,IAAA,GAAOD,KAAO8E,IAAA+jD,iBACd41D,EAAA9hH,KAAAmI,GAAkB+jD,iBAAcD,WAEpC7oD,GAAA4+G,WAAAF,EAA2BjmF,KAAO,KAC/Bz4B,EAAAm8B,WAAAp3B,GAAAqiG,mBACH,CAyOIpnG,EAAI4+G,WAAqClkH,QAAvBqK,GAAG+jD,iBAAiC/jD,GAAG+jD,iBAAiBD,WAAa,EACvF,KAAK,GAAI5oD,KAAK8E,IAAG85G,UAvOdz2D,EAAAxrD,KAAAmI,GAAA85G,UAAA5+G,GAAA6rD,OAET9rD,GAAUm8B,WAAAisB,EAAA3vB,KAAA,KAGW/9B,QAArBqK,GAAAkiD,iBAyOEjnD,EAAI8+G,aAAe/5G,GAAGkiD,eAAenpC,IAtO7C23D,EAAeE,mBAAmB31E,GAAAwD,KAAW,SAAKC,GACvB,MAAfA,EAAIlI,QACiB,GAAlBkI,EAAAhJ,KAAAyF,QACAd,EAAA8C,OAAY,UAAA,iCAAA,yBAEf6C,GAAAo8C,gBAAW19C,EAAYhJ,KACvBsK,GAAGsS,WAAY,IA0Ofva,EAAW2I,YAAY,QAAS,yBAA0B,eAvOlEV,GAASsS,WAAK,IA0OX,SAxOI3R,GAyOH5I,EAAW2I,YAAY,QAAS,mBAAoB,eACpDV,GAAGsS,WAAY,KAK3B,QAASu+D,KACL,GAA8B,MAA1B7wE,GAAG69C,oBAA6B,CAvOxCs8D,KACQn6G,GAAGsS,WAAU,CACb,IAAG8nG,MACA/2D,KACAs2D,IAyOH,KAxOG,GAAAz+G,KAAA8E,IAAA69C,oBACAu8D,EAAAviH,KAAAmI,GAAmB69C,oBAAQ3iD,GAAAm/G,cAE9B,IAAAp/G,IACA+8G,UAAAh4G,GAAAg4G,UAAA3vF,KAyOI6wF,WAAYl5G,GAAGk5G,WAAWngG,GAC1B4/F,YAAa34G,GAAGm5G,cAAcpgG,GAC9BlY,UAAW5G,EAAQ,QAAQ+F,GAAG0vC,SAAU,cAAgB1vC,GAAG0vC,SAAW,GAvOzE5uC,QAAA7G,EAAgB,QAAA+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GACb75C,UAAGkK,GAAA6hB,gBAAA/rB,UACP6tD,eAAKy2D,EAAA1mF,KAAA,KACDkmF,WAAG,OAEP,IAAK,KAAL55G,GAAKm5G,cAAApgG,GACD,GAAG/Y,GAAA+jD,iBAAc5oD,OAAQ,EAAU,CACnC,IAAA,GAAAD,KAAA8E,IAAA+jD,iBACC41D,EAAA9hH,KAAAmI,GAAA+jD,iBAAAD,WAED7oD,GAAA4+G,WAAAF,EAAAjmF,KAAA,KACCz4B,EAAAm8B,WAAAp3B,GAAAqiG,mBACE,CACHpnG,EAAA4+G,WAAAlkH,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,EACC,KAAA,GAAA5oD,KAAA8E,IAAA85G,UACEz2D,EAAAxrD,KAAcmI,GAAA85G,UAAA5+G,GAAA6rD,OAEhB9rD,GAAAm8B,WAAAisB,EAAA3vB,KAAA,KA4OoB/9B,QAArBqK,GAAGkiD,iBACHjnD,EAAI8+G,aAAe/5G,GAAGkiD,eAAenpC,IAtO7C23D,EAAcG,YAAY51E,GAAAwD,KAAY,SAAAC,GAyOX,MAAfA,EAAIlI,QACmB,GAAnBkI,EAAIhJ,KAAKyF,QAvOpBd,EAAA8C,OAAsB,UAAW,0BAAU,yBAEzC6C,GAAAizB,SAAYv0B,EAAAhJ,KACfsK,GAAAsS,WAAuB,IAEfva,EAAG2I,YAAkB,QAAA,yBAAA,YACrBV,GAAAsS,WAAO,IA0OZ,SAAS3R,GACR5I,EAxOO2I,YAAY,QAAA,mBAAA,YAyOnBV,GAAGsS,WAxOK,KA+OpB,QAASgoG,KACL,GAxOuB,MAwOnBt6G,GAAG6+C,iBAxOgB,CAyOnB6G,KACA1lD,GAxOGsS,WAAA,CACH,IAAGioG,MACAl3D,KACAs2D,IACH,KAAG,GAAAz+G,KAAA8E,IAAA6+C,iBAyOC07D,EAAS1iH,KAAKmI,GAAG6+C,iBAAiB3jD,GAAGs/G,OAEzC,IAAIv/G,IACA+8G,UAAWh4G,GAAGg4G,UAAU3vF,KAvOjC6wF,WAAqBl5G,GAAAk5G,WAAUngG,GAyOtB4/F,YAAa34G,GAAGm5G,cAAcpgG,GAvO/BlY,UAAW5G,EAAA,QAAe+F,GAAA0vC,SAAA,cAAA1vC,GAAA0vC,SAAA,GAC7B5uC,QAAU7G,EAAA,QAAA+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GAyON75C,UAAWkK,GAAG6hB,gBAAgB/rB,UArOjC8tD,QAAA22D,EAAA7mF,KAAwB,KACtBkmF,WAAA,OA0OH,IAxOwB,KAArB55G,GAAIm5G,cAAGpgG,GACN,GAAG/Y,GAAA+jD,iBAAkB5oD,OAAA,EAAA,CACrB,IAAA,GAAAD,KAAA8E,IAAA+jD,iBACG41D,EAAU9hH,KAAQmI,GAAA+jD,iBAAAD,WAElB7oD,GAAA4+G,WAAkBF,EAAAjmF,KAAA,KACrBz4B,EAAAm8B,WAAAp3B,GAAAqiG,mBACD,CACHpnG,EAAA4+G,WAAAlkH,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,EAyOQ,KAAK,GAAI5oD,KAAK8E,IAAG85G,UACbz2D,EAAIxrD,KAAKmI,GAAG85G,UAAU5+G,GAAG6rD,OAtO9B9rD,GAAAm8B,WAAWisB,EAAA3vB,KAAA,KAGH/9B,QAAhBqK,GAAAkiD,iBACAjnD,EAAA8+G,aAAgB/5G,GAAAkiD,eAAAnpC,IA0Of23D,EAAcI,QAAQ71E,GAAKwD,KAAK,SAASC,GAvO1B,MAAdA,EAAAlI,QACEwJ,GAAAm+C,SAAez/C,EAAMhJ,KACA,GAAjBgJ,EAAAhJ,KAAAyF,QACAd,EAAW8C,OAAQ,UAAW,oBAAe,yBAE5C6C,GAAAsS,WAAA,IAEDva,EAAO2I,YAAW,QAAO,yBAAY,QACrCV,GAAAsS,WAAS,IA0Ob,SAAS3R,GAvOT5I,EAAA2I,YAAqB,QAAK,mBAAA,QACzBV,GAAGsS,WAAY,KAkP3B,QAASu/D,KACL,GAAuB,MAAnB7xE,GAAG6xG,cAA+C,KAAvB7xG,GAAGm5G,cAAcpgG,GAAW,CAvO/D/Y,GAASsS,WAAA,EACLtS,GAAAy6G,WACG,KAAA,GAAAv/G,KAAY8E,IAAA6xG,aACX7xG,GAAMy6G,SAAA5iH,KAAAmI,GAAA6xG,aAAA32G,GAAA6d,GAEN,IAAA9d,IACA+8G,UAAch4G,GAAAg4G,UAAU3vF,KACxB6wF,WAAel5G,GAAAk5G,WAAWngG,GAC1B4/F,YAAgB34G,GAAAm5G,cAAcpgG,GAC9BlY,UAAW5G,EAAQ,QAAW+F,GAAA0vC,SAAU,cAAmB1vC,GAAA0vC,SAAW,GACtE5uC,QAAS7G,EAAQ,QAAW+F,GAAA2vC,OAAQ,cAAmB3vC,GAAA2vC,OAAS,GAChE75C,UAAckK,GAAA6hB,gBAAgB/rB,UAC9B+jH,WAAYlkH,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,GAEW,MAApB9jD,GAAAm5G,cAAcpgG,IAAW,KAAA/Y,GAAAm5G,cAAApgG,GACxB9d,EAAGy/G,QAAA16G,GAAAy6G,SAAiB/mF,KAAS,KA0O7Bz4B,EAxOIy/G,SAAQ,EAEK/kH,QAAjBqK,GAAAkiD,iBACAjnD,EAAI8+G,aAAa/5G,GAAGkiD,eAAAnpC,IA0OxB23D,EAxOQmB,YAAiB52E,GAAAwD,KAAA,SAAoBC,GACxB,MAAjBA,EAAKlI,QACDwJ,GAAAgmD,aAAYtnD,EAAUhJ,KAyOC,GAAnBgJ,EAAIhJ,KAAKyF,QAvObd,EAAA8C,OAAiB,UAAK,wBAAA,YA0OtB6C,GAAGsS,WAAY,IAtOnBva,EAAe2I,YAAG,QAAe,yBAAA,YAyO7BV,GAAGsS,WAAY,IAtOvB,SAAQ3R,GACJ5I,EAAQ2I,YAAe,QAAG,mBAAA,YAyO1BV,GAAGsS,WAxOS,KA6OxB,QAASw/D,KACL9qB,IACAhnD,GAAGsS,WAxOQ,CAyOX,IAAIrX,IAvOD+8G,UAASh4G,GAAKg4G,UAAA3vF,KACb6wF,WAAWl5G,GAAAk5G,WAAYngG,GACvB4/F,YAAG34G,GAAYm5G,cAAApgG,GAyOflY,UAAW5G,EAAQ,QAAQ+F,GAAG0vC,SAAU,cAAgB1vC,GAAG0vC,SAAW,GACtE5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAChE75C,UAAWkK,GAAG6hB,gBAAgB/rB,UAtOlC,IAAiC,GAA7BkK,GAAG+jD,iBAAA5oD,OACH,IAAA,GAAAD,KAAA8E,IAAA+jD,iBACG9oD,EAAA6oD,WAAY9jD,GAAA+jD,iBAAA7oD,GAAA4oD,eAEf,CACA,GAAI62D,KACJ,KAAK,GAAIz/G,KAAK8E,IAAG+jD,iBACb42D,EAAa9iH,KAAGmI,GAAA+jD,iBAAoB7oD,GAAA4oD,WAExC7oD,GAAI2/G,iBAAMD,EAAAjnF,KAAA,KAES,KAwOnB1zB,GAAGm5G,cAxOapgG,GAyOhB9d,EAxOIy/G,SAAA,EA0OJz/G,EAxOIy/G,QAAS16G,GAAAy6G,SAAQ/mF,KAAQ,KA0OR/9B,QAArBqK,GAAGkiD,iBACHjnD,EAAI8+G,aAAe/5G,GAAGkiD,eAAenpC,IAEzC23D,EAxOQoB,QAAY72E,GAAAwD,KAAA,SAAAC,GAyOhB,GAAmB,MAAfA,EAAIlI,OAAgB,CAvOG,MAApBkI,EAAAhJ,KAAA,GAAAgK,OACCM,GAAG6vF,gBAAiBlzF,KAAAC,MAAY8B,EAAAhJ,KAAA,GAAAgK,QAAAskD,OA0OhChkD,GAAGqiG,eAxOiB3jG,EAAAhJ,KAAA,GAAA0hC,WAyOQ,KAAvBp3B,GAAGm5G,cAAcpgG,IAAmC,MAArB/Y,GAAGqiG,gBAvOd,KAArBriG,GAAAg4G,UAAa3vF,MACbgxF,IACD,MAAAr5G,GAAAg4G,UAAA3vF,MACCixF,IACwB,KAAvBt5G,GAAIg4G,UAAQ3vF,MACTkxF,KAyO0B,KAAvBv5G,GAAGm5G,cAAcpgG,IAAkC,MAArB/Y,GAAGqiG,eAvOxC1xB,KA0OyB,KAArB3wE,GAAGg4G,UAAU3vF,MAvOtBwyF,IACmB,MAAlB76G,GAAAg4G,UAAkB3vF,MAyOVyyF,IAvOiB,KAAnB96G,GAAAg4G,UAAA3vF,MACF0yF,KAiBX,IAAA3zD,KACE5sD,GAAAqI,QAAA7C,GAAA6vF,gBAA6B,SAAAhpC,GAChC,GAAA/N,IACGuO,KAAYR,EAAAQ,KACXI,SAAaZ,EAAAH,OACPI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAELM,GAAYvvD,KAAAihD,KAGb94C,GAAA4mD,YAAMQ,EACNpnD,GAAAsS,WAAc,MAEdva,GAAA2I,YAAgB,QAAc,yBAAA,cAC9BV,GAAAsS,WAAW,GA0OhB,SAxOK3R,GAyOJ5I,EAxOI2I,YAAgB,QAAW,mBAAK,cAyOpCV,GAAGsS,WAxOC,IA6OZ,QAAS8zC,GAxOWc,GAyOhB,GAAIA,EAAK47C,kBAAmB,CACxB,GAAIt8C,GAxOQ,QAAaC,EAAQS,EAAKO,UAAA,GAyOlCd,EAxOQnsD,EAAgB6P,KAAArK,GAAA6vF,iBAyOxBnpC,OAxOOF,GAEEhsD,GAAIgnG,MAAQxhG,GAAA6vF,gBAAW,SAAAhpC,GAyOhC,MAAOJ,GAxOUI,EAAAH,SA0OrBlsD,GAAOqI,QAxOK7C,GAAA4mD,YAAiB,SAAKC,GAyO9B,GAAIA,EAAEY,WAAajB,EAAU,CAEzB,GAAIi7C,GAAYjnG,EAAO8xB,IAAI46B,EAAK47C,kBAAmB,SAvOpDj8C,GAAAC,OAAAu6C,EAAkB7mG,EAAWyC,OAAA0pD,EAAAG,OAAA,SAAAD,GAC5B,MAAArsD,GAAkB3F,SAAA4sG,EAAe56C,EAAAvrB,oBA6OzC0rB,IAEJhnD,IAAG85G,UAxOY5yD,EAAA47C,kBACY,KAwOtB9iG,GAAGm5G,cAxOOpgG,IAAY,MAAA/Y,GAAA85G,WACZ,KAwOP95G,GAAGg4G,UAxOI3vF,MAyOPgxF,IAvOmB,MAwOnBr5G,GAAGg4G,UAxOI3vF,MAyOPixF,IAvOa,KAAdt5G,GAAAg4G,UAAc3vF,MACbkxF,KACe,KAAZv5G,GAAAm5G,cAAYpgG,IAAA,MAAA/Y,GAAA85G,UAyOnBnpC,KAEyB,KAArB3wE,GAAGg4G,UAAU3vF,MACbwyF,IACqB,MAArB76G,GAAGg4G,UAAU3vF,MACbyyF,IAvOO,KAAV96G,GAAAg4G,UAAU3vF,MACR0yF,KA6OX,QAxOQ/zD,KAyOJxsD,EAxOIqI,QAAS7C,GAAK4mD,YAAG,SAAkBM,GAyOnCA,EAxOIo6C,kBAAiB,KAyOrBp6C,EAAKJ,YAYb,QAASu6C,GAAgBj6C,GAUrB,MARIA,IAxOWA,EAAAjsD,OAAiB,GAyO5BX,EAAOqI,QAxOMukD,EAAY,SAAAP,GAyOrB,GAxOgB,GAwOZA,EAAEvrB,SAxOe,CAyOjB,GAAI2mE,GAAaznG,EAAO6P,KAAKw8C,EAAEq7C,aAAen7C,OAAUF,EAAEvrB,WAAY+rB,IAvOtER,GAAAoG,UAAIpG,EAAAm0D,QAAqB,MAAK/Y,KA4OnC76C,EAGX,QAASX,GAxOOc,GAyOZ,MAAO3gD,UAAS2gD,EAAWjkC,UAAU,IAOzC,QAAS+1F,KACL4B,KACAj7G,GAAGsS,WAAY,CACf,IAAI+wC,MACAo3D,KACAd,KACA1+G,GACA+8G,UAxOWh4G,GAAAg4G,UAAY3vF,KAyOvB6wF,WAAYl5G,GAAGk5G,WAAWngG,GAC1B4/F,YAxOY34G,GAAAm5G,cAAKpgG,GAyOjBlY,UAxOI5G,EAAW,QAAY+F,GAAA0vC,SAAS,cAAoB1vC,GAAA0vC,SAAA,GAyOxD5uC,QAxOO7G,EAAA,QAAY+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GAyOnB75C,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9B8jH,WAAY,WAEhB,IAA2B,KAAvB55G,GAAGm5G,cAAcpgG,IAAoC,KAAvB/Y,GAAGm5G,cAAcpgG,GAAW,CAC1D,GAAI/Y,GAAG+jD,iBAAiB5oD,OAAS,EAAG,CAChC,IAAK,GAAID,KAAK8E,IAAG+jD,iBACb41D,EAAQ9hH,KAAKmI,GAAG+jD,iBAAiBD,WAErC7oD,GAAI4+G,WAAaF,EAAQjmF,KAAK,KAvOjCz4B,EAAAm8B,WAAcp3B,GAAAqiG,mBACZ,CACApnG,EAAA4+G,WAAYlkH,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,EACZ,KAAA,GAAA5oD,KAAW8E,IAAA85G,UACTz2D,EAAIxrD,KAAQmI,GAAA85G,UAAA5+G,GAAc6rD,OA0O3B9rD,GAAIm8B,WAAaisB,EAAI3vB,KAAK,KAI9B,IAxOI,GAAAx4B,KAAA8E,IAAa6xG,aACb4I,EAAA5iH,KAAWmI,GAAA6xG,aAAmB32G,GAAA6d,GA0OlC9d,GAxOIigH,QAAAT,EAAc/mF,KAAA,SA0OlBz4B,GAAIigH,QAAU;AAvOdjgH,EAAIm8B,WAAG,EAEAzhC,SAwOPqK,GAAGkiD,iBACHjnD,EAxOI8+G,aAAe/5G,GAAAkiD,eAAAnpC,IA0OvB23D,EAxOWgB,iBAAkBz2E,GAAAwD,KAAW,SAAAC,GAC5B,MAAJA,EAAIlI,QAyOJwJ,GAAGm7G,qBAAuBz8G,EAAIhJ,KAvOlCsK,GAAAsS,WAAc,IA0OVva,EAxOO2I,YAAe,QAAI,yBAAA,wBAyO1BV,GAAGsS,WAxOS,IA0OjB,SAAS3R,GACR5I,EAxOW2I,YAAY,QAAA,mBAAA,wBAyOvBV,GAAGsS,WAxOQ,IA4OnB,QAAS8oG,KACL,GAxO+B,MAwO3Bp7G,GAAGq7G,yBAxOiC,CAyOpCC,KACAt7G,GAAGsS,WAAY,CACf,IAAIipG,MACAl4D,KACAo3D,KAvOHd,IACL,KAAA,GAAAz+G,KAAA8E,IAAAq7G,yBACGE,EAAY1jH,KAAAmI,GAAAq7G,yBAAAngH,GAAAsgH,mBAEX,IAAAvgH,IACA+8G,UAAeh4G,GAAAg4G,UAAW3vF,KAC1B6wF,WAAgBl5G,GAAAk5G,WAAcngG,GAC9B4/F,YAAW34G,GAAQm5G,cAAWpgG,GAC9BlY,UAAS5G,EAAQ,QAAW+F,GAAA0vC,SAAQ,cAAmB1vC,GAAA0vC,SAAS,GAChE5uC,QAAW7G,EAAG,QAAA+F,GAAgB2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GAyO1B75C,UAAWkK,GAAG6hB,gBAAgB/rB,UAvO/B4tD,YAAA63D,EAAiB7nF,KAAa,KACjCkmF,WAAc,cA0Od,IAA2B,KAAvB55G,GAAGm5G,cAAcpgG,IAAoC,KAAvB/Y,GAAGm5G,cAAcpgG,GAAW,CAvO3D,GAAA/Y,GAAA+jD,iBAAA5oD,OAAA,EAAA,CACC,IAAA,GAAAD,KAAe8E,IAAA+jD,iBACV41D,EAAQ9hH,KAAAmI,GAAA+jD,iBAAkBD,WA0O3B7oD,GAAI4+G,WAAaF,EAAQjmF,KAAK,KAvOlCz4B,EAAAm8B,WAAmBp3B,GAAAqiG,mBAyOZ,CAvORpnG,EAAA4+G,WAAyBlkH,QAALqK,GAAK+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,EACxB,KAAA,GAAW5oD,KAAA8E,IAAA85G,UACZz2D,EAAAxrD,KAAAmI,GAAA85G,UAAA5+G,GAAA6rD,OA0OK9rD,GAAIm8B,WAAaisB,EAAI3vB,KAAK,KAG9B,IAAK,GAAIx4B,KAAK8E,IAAG6xG,aAvOzB4I,EAAc5iH,KAAQmI,GAAK6xG,aAAc32G,GAAA6d,GAEjC9d,GAAIigH,QAAST,EAAG/mF,KAAU,SA0O1Bz4B,GAAIigH,QAxOG,KAyOPjgH,EAxOIm8B,WAAG,EAEQzhC,SAwOfqK,GAAGkiD,iBACHjnD,EAAI8+G,aAxOQ/5G,GAAAkiD,eAAAnpC,IA0OhB23D,EAAcgB,iBAxOEz2E,GAAAwD,KAAA,SAAAC,GACG,MAwOXA,EAxOIlI,QAyOJwJ,GAAGy7G,wBAxOK/8G,EAAAhJ,KAyORsK,GAAGsS,WAxOW,IA0Odva,EAxOO2I,YAAA,QAAA,yBAAA,2BAyOPV,GAAGsS,WAxOQ,IA0OhB,SAxOS3R,GAyOR5I,EAAW2I,YAxOC,QAAA,mBAAA,2BAyOZV,GAAGsS,WAxOY,KA8O3B,QAASopG,KACL,GAAsC,MAAlC17G,GAAG27G,4BAAqC,CACxCC,KACA57G,GAAGsS,WAAY,CACf,IAAIupG,MACAx4D,KACAo3D,KACAd,IACJ,KAAK,GAAIz+G,KAAK8E,IAAG27G,4BACbE,EAAchkH,KAAKmI,GAAG27G,4BAA4BzgH,GAAG4gH,sBAEzD,IAAI7gH,IAvOA+8G,UAAIh4G,GAAAg4G,UAAW3vF,KACf6wF,WAAOl5G,GAAQk5G,WAAGngG,GAyOlB4/F,YAxOQ34G,GAAOm5G,cAAApgG,GAyOflY,UAxOQ5G,EAAQ,QAAA+F,GAAA0vC,SAAA,cAAA1vC,GAAA0vC,SAAA,GAyOhB5uC,QAxOQ7G,EAAA,QAAY+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GAyOpB75C,UAxOQkK,GAAA6hB,gBAAsB/rB,UAyO9B6tD,eAAgBk4D,EAAcnoF,KAAK,KACnCkmF,WAxOI,OA0OR,IAA2B,KAAvB55G,GAAGm5G,cAAcpgG,IAAoC,KAAvB/Y,GAAGm5G,cAAcpgG,GAAW,CAvO1D,GAAG/Y,GAAA+jD,iBAAc5oD,OAAA,EAAA,CACd,IAAA,GAAAD,KAAY8E,IAAA+jD,iBACZ41D,EAAA9hH,KAAAmI,GAAA+jD,iBAAAD,WAEA7oD,GAAA4+G,WAAYF,EAAAjmF,KAAA,KAyOXz4B,EAAIm8B,WAAap3B,GAAGqiG,mBAvOpB,CACRpnG,EAAW4+G,WAAqBlkH,QAATqK,GAAA+jD,iBAA6B/jD,GAAA+jD,iBAAAD,WAAA,EACjD,KAAA,GAAY5oD,KAAA8E,IAAA85G,UAyOHz2D,EAAIxrD,KAAKmI,GAAG85G,UAAU5+G,GAAG6rD,OAE7B9rD,GAAIm8B,WAAaisB,EAAI3vB,KAAK,KArOlC,IAAK,GAAAx4B,KAAA8E,IAAA6xG,aACD4I,EAAW5iH,KAAAmI,GAAU6xG,aAAU32G,GAAK6d,GAEpC9d,GAAAigH,QAAUT,EAAA/mF,KAAA,SAEVz4B,GAAAigH,QAAU,KACVjgH,EAAAm8B,WAAiB,EAEHzhC,SAAlBqK,GAAOkiD,iBACHjnD,EAAI8+G,aAAe/5G,GAAAkiD,eAAUnpC,IA0OjC23D,EAxOYgB,iBAAmBz2E,GAAIwD,KAAK,SAAAC,GACrB,MAAXA,EAAElI,QAyOFwJ,GAAG+7G,mBAxOer9G,EAAShJ,KAyO3BsK,GAAGsS,WAAY,IAEfva,EAAW2I,YAAY,QAAS,yBAA0B,oBAvO/DV,GAAAsS,WAAA,IA0OA,SAAS3R,GAvOb5I,EAAY2I,YAAK,QAAA,mBAAA,oBACZV,GAAAsS,WAAc,KA8O1B,QAASuoG,KAEL,GAxOI,MAAA76G,GAAAg8G,uBAAA,CAyOAC,KAvOAj8G,GAAAk8G,WAyOAl8G,GAAGsS,WAxOC,CACJ,IAAI6pG,MACA94D,IACJrjD,IAAAo8G,SAyOA,IAxOI3B,KAyOJ,KAAK,GAAIv/G,KAAK8E,IAAGg8G,uBACbG,EAAYtkH,KAAKmI,GAAGg8G,uBAAuB9gH,GAAGmhH,eAElD,KAAK,GAAInhH,KAAK8E,IAAG+jD,iBAvOhB/jD,GAAAo8G,OAAAvkH,KAAAmI,GAAqB+jD,iBAAA7oD,GAAA4oD,WAEtB,KAAK,GAAA5oD,KAAA8E,IAAA6xG,aACL4I,EAAK5iH,KAASmI,GAAA6xG,aAAA32G,GAAA6d,GA0Od,KAAK,GAAI7d,KAAK8E,IAAG85G,UAvOtBz2D,EAAAxrD,KAAemI,GAAA85G,UAAW5+G,GAAA6rD,OAErB,IAAA9rD,IACG+8G,UAAUh4G,GAAAg4G,UAAQ3vF,KACrB6wF,WAAAl5G,GAAAk5G,WAAAngG,GAEA4/F,YAAA34G,GAAAm5G,cAAApgG,GAyOIlY,UAAW5G,EAAQ,QAAQ+F,GAAG0vC,SAAU,cAAgB1vC,GAAG0vC,SAAW,GACtE5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAvOnE75C,UAAAkK,GAAgB6hB,gBAAU/rB,UAyOvB+jH,WAAY75G,GAAGo8G,OAAO1oF,KAAK,KAvO/BkwB,QAAYu4D,EAASzoF,KAAS,KAC9BkmF,WAAe,MACXxiF,WAAMisB,EAAA3vB,KAAe,KAyOrBwnF,QAxOQT,EAAA/mF,KAAa,KA0OA/9B,SAArBqK,GAAGkiD,iBACHjnD,EAAI8+G,aAAe/5G,GAAGkiD,eAAenpC,IAtO7C23D,EAAOgB,iBAAAz2E,GAAAwD,KAAA,SAAAC,GAyOC,GAAmB,MAAfA,EAAIlI,OAAgB,CACpB,IAAK,GAAI0E,KAAKwD,GAAIhJ,KAAM,CAvOrBsK,GAAAk8G,QAAYx9G,EAAAhJ,KACXsK,GAAAk8G,QAAWhhH,GAAAo5B,UAAU33B,KAAAC,MAAAoD,GAAAk8G,QAAAhhH,GAAAo5B,WAyOrBt0B,GAAGk8G,QAAQhhH,GAAGohH,QAAW3/G,KAAKC,MAAMoD,GAAGk8G,QAAQhhH,GAAGohH,QAClD,KAAK,GAAInyG,GAAI,EAAGA,EAAInK,GAAGk8G,QAAQhhH,GAAGo5B,UAAUn5B,OAAQgP,IAAK,CACrD,GAAIyqB,GAAO50B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAG8sB,QAClCslF,EAAWv8G,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGitB,UAC1Cp3B,IAAGw8G,kBAAoBhiH,EAAOyC,OAAO+C,GAAGk8G,QAAQhhH,GAAGohH,SAAWrlF,QAAWrC,IACzE50B,GAAGy8G,sBAAwBjiH,EAAOyC,OAAO+C,GAAGw8G,mBAAqBplF,WAAcmlF,IAvO9Fv8G,GAAAk8G,QAAwBhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA18G,GAAAy8G,uBAGnBz8G,GAAAsS,WAAA,EACK,GAAAtS,GAAA84G,aACDpoC,EAAAM,SAAAhxE,GAAAg4G,UAAA3vF,MAAA5pB,KAAA,SAAAC,GACJ,MAAAA,EAAAlI,SACQwJ,GAAAmiB,YAAU3nB,EAAAyC,OAAAyB,EAAAhJ,MAAAojH,aAAA,IACT94G,GAAAoiB,gBAAW5nB,EAAAyC,OAAAyB,EAAAhJ,MAAAojH,aAAA,OAIfxnC,QAGRv5E,GAAc2I,YAAa,QAAG,yBAAyB,OACnDV,GAAAsS,WAAA,GA0OJ,SAxOK3R,GAyOJ5I,EAAW2I,YAAY,QAAS,mBAAoB,OAvOpDV,GAAAsS,WAAI,KAiPhB,QAAS0/D,GAAuBl/D,EAAKqE,GAEjCnX,GAAG28G,cACH38G,GAAGsS,WAxOK,CAyOR,IAAI6pG,MAvOA94D,IAyOJ,KAAK,GAxOEnoD,KAAA8E,IAAAg8G,uBACHG,EAAItkH,KAAUmI,GAAAg8G,uBAAA9gH,GAAAmhH,eA0OlB,KAAK,GAAInhH,KAAK8E,IAAG85G,UAvObz2D,EAAGxrD,KAAAmI,GAAA85G,UAAkB5+G,GAAA6rD,OA0OzB,IAAI9rD,IAvOJm8B,WAAcisB,EAAA3vB,KAAA,KACVkpF,QAAQT,EAAWzoF,KAAK,KAyOxBwnF,QAxOOl7G,GAAAy6G,SAAA/mF,KAAA,KAyOPolF,aAxOO94G,GAAA84G,aAyOPhjH,UAxOOkK,GAAA6hB,gBAAA/rB,UAEAH,SAwOPmd,EACA7X,EAAIi7D,SAAWpjD,EAAIojD,SAtOnBj7D,EAAAi7D,SAAWl2D,GAAAk2D,SA2Ofwa,EAAcsB,uBAAuB/2E,GAAKwD,KAAK,SAASC,GACpD,GAAmB,MAAfA,EAAIlI,OAAgB,CAvOvB,IAAA,GAAA0E,KAAAwD,GAAAhJ,KAA2B,CACzBsK,GAAA28G,WAAAj+G,EAAAhJ,KACHsK,GAAA28G,WAAAzhH,GAAAo5B,UAAA33B,KAAAC,MAAAoD,GAAA28G,WAAAzhH,GAAAo5B,WACGt0B,GAAA28G,WAAYzhH,GAAAwhH,QAAA//G,KAAAC,MAAAoD,GAAA28G,WAAAzhH,GAAAohH,QACX,KAAA,GAAanyG,GAAA,EAAAA,EAAAnK,GAAA28G,WAAAzhH,GAAAo5B,UAAAn5B,OAAAgP,IAAA,CACP,GAAAyqB,GAAA50B,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAA8sB,QACKslF,EAAAv8G,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAitB,UACXp3B,IAAUw8G,kBAAAhiH,EAAAyC,OAAA+C,GAAA28G,WAAAzhH,GAAAwhH,SAAAzlF,QAAArC,IACL50B,GAAKy8G,sBAAGjiH,EAA0ByC,OAAA+C,GAAAw8G,mBAAAplF,WAAAmlF,IACvCv8G,GAAW28G,WAAQzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAA4B18G,GAAAy8G,uBAG/Cz8G,GAAA04G,aAAc5iH,UAAUkK,GAAA28G,WAAA,GAAA7mH,UACxBkK,GAAA04G,aAAevmG,UAAWnS,GAAA28G,WAAA,GAAAxqG,UAC1BnS,GAAA04G,aAAgBmE,aAAc78G,GAAA28G,WAAA,GAAAE,aACAlnH,QAA9BqE,EAAWvE,OAAAC,KAAQqiH,WACS,GAA5B/3G,GAAS28G,WAAQxhH,QACjBnB,EAAc8F,GAAA/H,EAAAyE,eA2OdhC,EAAOqI,QAAQ7C,GAAGqS,YAAa,SAAS7E,GAvOrCA,EAAA2E,WAAoBnS,GAAA04G,aAAUvmG,YAC1BnS,GAAAmT,gBAAiB/e,QAAY8e,KAAA1F,MA2OpCyiG,EAAsBjwG,GAAG04G,aAAavmG,UAAW,SAASlX,GAvOtDT,EAAIqI,QAAA7C,GAAa2hB,YAAa,SAAAnU,GAC1BA,EAAA1X,WAAgBkK,GAAA04G,aAAA5iH,YACjBkK,GAAA6hB,gBAAAztB,QAAA8e,KAAA1F,QA4OPhT,EAAOqI,QAAQ7C,GAAG88G,cAAe,SAAStvG,GAvOlCA,EAAA6a,MAAAroB,GAAag4G,UAAS3vF,OAyOtBroB,GAAGg4G,UAAY5jH,QAAQ8e,KAAK1F,MAIpChT,EAAOqI,QAAQ7C,GAAG+8G,eAAgB,SAASvvG,GAvOvCA,EAAAuL,IAAU/Y,GAAA04G,aAAcmE,eACzB78G,GAAAk5G,WAAA9kH,QAAA8e,KAAA1F,MAEHmrG,IAEGxhG,GACCA,IAyOJnX,GAAGsS,WAAY,MAtOfva,GAAQ2I,YAAW,QAAK,yBAAA,UAyOxBV,GAAGsS,WAxOI,GA0OZ,SAAS3R,GACR5I,EAxOQ2I,YAAW,QAAY,mBAAS,UAyOxCV,GAAGsS,WAxOQ,IAgPnB,QAASg/D,GAAkBx+D,GACvB9S,GAAG28G,cAvOP38G,GAAAsS,WAAS,CACL,IAAI6pG,MACA94D,IAyOJ,KAxOI,GAAGnoD,KAAA8E,IAAAg8G,uBACHG,EAAItkH,KAAAmI,GAAgBg8G,uBAAA9gH,GAAAmhH,eA0OxB,KAxOI,GAAInhH,KAAA8E,IAAA85G,UACJz2D,EAAIxrD,KAAAmI,GAAA85G,UAAU5+G,GAAA6rD,OA0OlB,IAAI9rD,IACAm8B,WAAYisB,EAAI3vB,KAAK,KAvOrBkpF,QAAIT,EAAMzoF,KAAA,KAyOVwnF,QAxOIl7G,GAAAy6G,SAAc/mF,KAAA,KAyOlBolF,aAxOI94G,GAAY84G,aAyOhBhjH,UAxOIkK,GAAA6hB,gBAAgB/rB,UAEhBH,SAwOJmd,EACA7X,EAxOIi7D,SAAWpjD,EAAGojD,SA0OlBj7D,EAxOIi7D,SAAAl2D,GAAYk2D,SA2OpBwa,EAxOYY,kBAAoBr2E,GAAAwD,KAAS,SAAGC,GAyOxC,GAxOiB,MAwObA,EAxOIlI,OAAc,CAyOlB,IAAK,GAxOG0E,KAAAwD,GAAQhJ,KAAQ,CAyOpBsK,GAAG28G,WAAaj+G,EAAIhJ,KAvOpBy8B,QAAIC,IAAApyB,GAAA28G,YACJ38G,GAAA28G,WAAIzhH,GAAao5B,UAAG33B,KAAAC,MAAAoD,GAAA28G,WAAAzhH,GAAAo5B,WAyOpBt0B,GAxOG28G,WAAAzhH,GAAAwhH,QAAA//G,KAAAC,MAAAoD,GAAA28G,WAAAzhH,GAAAohH,QACH,KAAI,GAAAnyG,GAAA,EAAAA,EAAcnK,GAAG28G,WAAAzhH,GAAAo5B,UAAoBn5B,OAAagP,IAAG,CACzD,GAAKyqB,GAAS50B,GAAG28G,WAAWzhH,GAAAo5B,UAAAnqB,GAAA8sB,QACpBslF,EAAQv8G,GAAA28G,WAAazhH,GAAAo5B,UAAAnqB,GAAAitB,UAyOzBp3B,IAAGw8G,kBAAoBhiH,EAAOyC,OAAO+C,GAAG28G,WAAWzhH,GAAGwhH,SAAWzlF,QAAWrC,IAvO5E50B,GAAAy8G,sBAAsBjiH,EAAAyC,OAAA+C,GAAAw8G,mBAAAplF,WAAAmlF,IAyOtBv8G,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAU18G,GAAGy8G,uBArOjB9mH,QAA9BqE,EAAAvE,OAAcC,KAAGqiH,WAyOW,GAAxB/3G,GAAG28G,WAAWxhH,QAvOlBnB,EAAU8F,GAAA/H,EAAcyE,eAG5BwD,GAAAsS,WAAI,MAEJva,GAAG2I,YAAkB,QAAW,yBAAA,UAChCV,GAAAsS,WAAI,GA0OT,SAxOC3R,GAyOA5I,EAxOQ2I,YAAe,QAAK,mBAAA,UAyO5BV,GAAGsS,WAxOQ,IAiPnB,QAASgnG,KACL0D,KACAh9G,GAAGsS,WAAY,CACf,IAAI+wC,MACAo3D,KAvORx/G,GAyOQ+8G,UAAWh4G,GAAGg4G,UAAU3vF,KAvOxB6wF,WAAGl5G,GAAAk5G,WAAAngG,GACH4/F,YAAA34G,GAAAm5G,cAAApgG,GACAlY,UAAG5G,EAAU,QAAA+F,GAAA0vC,SAAA,cAAA1vC,GAAA0vC,SAAA,GACb5uC,QAAG7G,EAAY,QAAA+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GACf75C,UAAIkK,GAAA6hB,gBAAc/rB,UAClB+jH,WAAUlkH,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,GACV81D,WAAY,WA0OhB,IAxOqB,KAAjB55G,GAAAm5G,cAAiBpgG,IAAwB,KAAxB/Y,GAAAm5G,cAAwBpgG,GAAA,CAyOzC,IAxOI,GAAA7d,KAAA8E,IAAY85G,UAyOZz2D,EAAIxrD,KAAKmI,GAAG85G,UAAU5+G,GAAG6rD,OAE7B9rD,GAxOIm8B,WAAUisB,EAAK3vB,KAAG,IAyOtB,KAAK,GAAIx4B,KAAK8E,IAAG6xG,aAvOjB4I,EAAS5iH,KAAQmI,GAAA6xG,aAAc32G,GAAA6d,GA0O/B9d,GAAIigH,QAAUT,EAAS/mF,KAAK,SAE5Bz4B,GAxOIigH,QAAS,KAyObjgH,EAAIm8B,WAAa,EAErBs5C,GAxOQiB,kBAAwB12E,GAAAwD,KAAA,SAAAC,GACT,MAAfA,EAAAlI,QAyOAwJ,GAAGi9G,sBAAwBv+G,EAAIhJ,KAvO/BsK,GAAAsS,WAAa,IAEbva,EAAS2I,YAAQ,QAAW,yBAA2B,yBACvDV,GAAAsS,WAAc,IA0OnB,SAxOK3R,GAyOJ5I,EAxOI2I,YAAY,QAAA,mBAAA,yBAyOhBV,GAAGsS,WAxOC,IA4OZ,QAAS4qG,KACLC,KACAn9G,GAAGsS,WAxOC,CAyOJ,IAAI8qG,MACA/5D,KACAo3D,IACJ,KAAK,GAAIv/G,KAAK8E,IAxOEq9G,0BAyOZD,EAxOYvlH,KAAGmI,GAAAq9G,0BAA2BniH,GAAMoiH,OA0OpD,IAAIriH,IACA+8G,UAAWh4G,GAAGg4G,UAxOM3vF,KAyOpB6wF,WAAYl5G,GAAGk5G,WAxOIngG,GAyOnB4/F,YAAa34G,GAxOGm5G,cAAGpgG,GA0OnBlY,UAAW5G,EAAQ,QAAQ+F,GAAG0vC,SAAU,cAAgB1vC,GAAG0vC,SAAW,GACtE5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAChE75C,UAxOWkK,GAAA6hB,gBAAY/rB,UAyOvB+jH,WAxOkClkH,QAAtBqK,GAAG+jD,iBAAmB/jD,GAAA+jD,iBAAAD,WAAA,GA0OlCJ,YAAa05D,EAxOW1pF,KAAA,KAyOxBkmF,WAAY,cAEhB,IAA2B,KAAvB55G,GAAGm5G,cAAcpgG,IAAoC,KAAvB/Y,GAAGm5G,cAAcpgG,GAAW,CAC1D,IAAK,GAAI7d,KAAK8E,IAAG85G,UACbz2D,EAAIxrD,KAAKmI,GAxOE85G,UAAA5+G,GAAA6rD,OA0Of9rD,GAAIm8B,WAAaisB,EAAI3vB,KAAK,IAC1B,KAAK,GAAIx4B,KAxOE8E,IAAA6xG,aAyOP4I,EAxOI5iH,KAAAmI,GAAW6xG,aAAY32G,GAAA6d,GA0O/B9d,GAAIigH,QAAUT,EAAS/mF,KAAK,SAE5Bz4B,GAxOIigH,QAAA,KAyOJjgH,EAxOIm8B,WAAG,EA0OXs5C,GAAciB,kBAAkB12E,GAAKwD,KAAK,SAASC,GAC5B,MAAfA,EAAIlI,QACJwJ,GAAGu9G,yBAA2B7+G,EAAIhJ,KAClCsK,GAAGsS,WAAY,IAEfva,EAAW2I,YAAY,QAAS,yBAA0B,4BAC1DV,GAAGsS,WAAY,IAtOvB,SAAA3R,GACG5I,EAAA2I,YAAa,QAAA,mBAAA,4BACbV,GAAAsS,WAAY,IA4OnB,QAxOQkrG,KAyOJC,KAvOAz9G,GAAAsS,WAAc,CAyOd,IAxOIorG,MAyOAr6D,KAvOAo3D,IAyOJ,KAxOI,GAAAv/G,KAAA8E,IAAY29G,6BACZD,EAAS7lH,KAAAmI,GAAY29G,6BAAKziH,GAAA0iH,kBA0O9B,IAxOI3iH,IACA+8G,UAAWh4G,GAAGg4G,UAAA3vF,KAyOd6wF,WAAYl5G,GAAGk5G,WAAWngG,GAvO1B4/F,YAAO34G,GAAAm5G,cAAWpgG,GAGlBlY,UAAI5G,EAAc,QAAA+F,GAAA0vC,SAAA,cAAA1vC,GAAA0vC,SAAA,GAyOlB5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAChE75C,UAAWkK,GAAG6hB,gBAAgB/rB,UAvOlC+jH,WAAqClkH,QAAvBqK,GAAA+jD,iBAAiC/jD,GAAS+jD,iBAAKD,WAAA,GA0OzDH,eAxOa+5D,EAAehqF,KAAA,KAyO5BkmF,WAxOW,OA0Of,IAxO0B,KAwOtB55G,GAAGm5G,cAxOQpgG,IAAuC,KAAzB/Y,GAAAm5G,cAAsBpgG,GAAG,CAyOlD,IAAK,GAxOG7d,KAAK8E,IAAI85G,UAyObz2D,EAAIxrD,KAxOImI,GAAI85G,UAAU5+G,GAAA6rD,OA0O1B9rD,GAAIm8B,WAxOWisB,EAAA3vB,KAAA,IAyOf,KAAK,GAAIx4B,KAxOG8E,IAAG6xG,aAyOX4I,EAxOQ5iH,KAAGmI,GAAA6xG,aAAc32G,GAAA6d,GA0O7B9d,GAAIigH,QAAUT,EAAS/mF,KAAK,SAE5Bz4B,GAxOIigH,QAAG,KAyOPjgH,EAxOIm8B,WAAG,EA0OXs5C,GAxOYiB,kBAAkB12E,GAAAwD,KAAU,SAAGC,GACpB,MAwOfA,EAAIlI,QACJwJ,GAAG69G,oBAAsBn/G,EAAIhJ,KAC7BsK,GAAGsS,WAAY,IAEfva,EAxOU2I,YAAa,QAAG,yBAAa,qBAyOvCV,GAAGsS,WAxOQ,IA0OhB,SAAS3R,GACR5I,EAxOI2I,YAAA,QAAyB,mBAAa,qBAyO1CV,GAAGsS,WAxOY,IA4OvB,QAASwoG,KACLgD,KACA99G,GAAGsS,WAxOY,CAyOf,IAAIyrG,MACA16D,IACJrjD,IAAGo8G,SACH,IAAI3B,KACJ,KAAK,GAAIv/G,KAAK8E,IAAGg+G,wBACbD,EAxOWlmH,KAAAmI,GAAQg+G,wBAAmB9iH,GAAS+iH,WA0OnD,KAAK,GAAI/iH,KAAK8E,IAxOE+jD,iBAyOZ/jD,GAAGo8G,OAAOvkH,KAAKmI,GAAG+jD,iBAAiB7oD,GAAG4oD,WAE1C,KAAK,GAAI5oD,KAAK8E,IAAG6xG,aACb4I,EAxOQ5iH,KAAAmI,GAAA6xG,aAAA32G,GAAA6d,GA0OZ,KAAK,GAxOG7d,KAAG8E,IAAA85G,UAyOPz2D,EAAIxrD,KAxOGmI,GAAA85G,UAAA5+G,GAAA6rD,OA0OX,IAAI9rD,IACA+8G,UAAWh4G,GAAGg4G,UAAU3vF,KAvOzB6wF,WAASl5G,GAAKk5G,WAAAngG,GAEb4/F,YAAG34G,GAAYm5G,cAAApgG,GAyOflY,UAAW5G,EAAQ,QAAQ+F,GAAG0vC,SAAU,cAAgB1vC,GAAG0vC,SAAW,GACtE5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAChE75C,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9B+jH,WAAY75G,GAAGo8G,OAAO1oF,KAAK,KAC3BkwB,QAASm6D,EAAarqF,KAAK,KAC3BkmF,WAAY,OACZxiF,WAAYisB,EAAI3vB,KAAK,KAvO7BwnF,QAAST,EAAA/mF,KAAkB,KAEvBg9C,GAAGiB,kBAAY12E,GAAAwD,KAAA,SAAAC,GACX,GAAc,MAAdA,EAAAlI,OAAc,CACd,IAAM,GAAA0E,KAAAwD,GAAAhJ,KAAA,CACDsK,GAAKk+G,SAAGx/G,EAAAhJ,KACbsK,GAAAk+G,SAAoBhjH,GAAAo5B,UAAA33B,KAAAC,MAA0BoD,GAAAk+G,SAAAhjH,GAAAo5B,WAyOtCt0B,GAAGk+G,SAAShjH,GAAGohH,QAAW3/G,KAAKC,MAAMoD,GAAGk+G,SAAShjH,GAAGohH,QAvOvD,KAAQ,GAAAnyG,GAAA,EAAWA,EAAAnK,GAAAk+G,SAAAhjH,GAAAo5B,UAAAn5B,OAAAgP,IAAA,CACZ,GAAAyqB,GAAU50B,GAAGk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAA8sB,QAyOTslF,EAAWv8G,GAAGk+G,SAAShjH,GAAGo5B,UAAUnqB,GAAGitB,UAvOjDp3B,IAAAw8G,kBAAAhiH,EAAAyC,OAAA+C,GAAAk+G,SAAAhjH,GAAAohH,SAAArlF,QAAArC,IACM50B,GAAAy8G,sBAASjiH,EAAAyC,OAAA+C,GAAAw8G,mBAAAplF,WAAAmlF,IACZv8G,GAAAk+G,SAAYhjH,GAAKo5B,UAAAnqB,GAAAuyG,QAAA18G,GAAAy8G,uBAG1Bz8G,GAAAsS,WAAc,EAyOa,GAAnBtS,GAAG84G,aAvOJpoC,EAAWM,SAAAhxE,GAAAg4G,UAAA3vF,MAAA5pB,KAAA,SAAAC,GACC,MAAJA,EAAIlI,SAChBwJ,GAAAmiB,YAAA3nB,EAAAyC,OAAAyB,EAAAhJ,MAAAojH,aAAA,IACY94G,GAAGoiB,gBAAA5nB,EAAAyC,OAAAyB,EAAAhJ,MAAAojH,aAAA,OAIVznC,QA4OJt5E,GAxOO2I,YAAc,QAAA,yBAA2B,QAyOhDV,GAAGsS,WAxOI,GA0OZ,SAAS3R,GACR5I,EAAW2I,YAxOK,QAAc,mBAAc,QAyO5CV,GAAGsS,WAxOY,IA4OvB,QAAS++D,GAA2Bv+D,GAChC9S,GAAGm+G,uBACHn+G,GAAGsS,WAxOS,CAyOZ,IAAIyrG,MACA16D,IACJ,KAAK,GAAInoD,KAAK8E,IAAGg+G,wBACbD,EAxOOlmH,KAAAmI,GAAYg+G,wBAAA9iH,GAAA+iH,WA0OvB,KAAK,GAxOG/iH,KAAA8E,IAAA85G,UAyOJz2D,EAxOIxrD,KAAGmI,GAAA85G,UAAY5+G,GAAA6rD,OA0OvB,IAxOG9rD,IACCm8B,WAAWisB,EAAA3vB,KAAA,KACXkpF,QAAGmB,EAAYrqF,KAAA,KAyOfwnF,QAASl7G,GAAGy6G,SAAS/mF,KAAK,KAC1BolF,aAAc94G,GAAG84G,aACjBhjH,UAAWkK,GAAG6hB,gBAAgB/rB,UAEvBH,SAAPmd,IACA7X,EAAIm9G,SAAWtlG,EAAIslG,UAEvB1nC,EAAcW,2BAA2Bp2E,GAAKwD,KAAK,SAASC,GAvOhE,GAAS,MAAAA,EAAAlI,OAAA,CACL,IAAA,GAAA0E,KAAAwD,GAAAhJ,KAAA,CACGsK,GAAYm+G,oBAAAz/G,EAAAhJ,KACLsK,GAAAm+G,oBAAAjjH,GAAAo5B,UAAA33B,KAAAC,MAAAoD,GAAAm+G,oBAAAjjH,GAAAo5B,WACNt0B,GAAWm+G,oBAAAjjH,GAAAwhH,QAAA//G,KAAAC,MAAAoD,GAAAm+G,oBAAAjjH,GAAAohH,QACL,KAAA,GAAAnyG,GAAA,EAAAA,EAAAnK,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAn5B,OAAAgP,IAAA,CACK,GAAGyqB,GAAA50B,GAAUm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAA8sB,QACTslF,EAAWv8G,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAAitB,UAC1Bp3B,IAAaw8G,kBAAiBhiH,EAAAyC,OAAA+C,GAAAm+G,oBAAAjjH,GAAAwhH,SAAAzlF,QAAArC,IACnB50B,GAAAy8G,sBAAmBjiH,EAAUyC,OAAA+C,GAAgBw8G,mBAAcplF,WAAAmlF,IAC7Dv8G,GAAAm+G,oBAAmBjjH,GAAQo5B,UAAAnqB,GAAAuyG,QAAmB18G,GAASy8G,uBAGpD9mH,QAAZqE,EAAYvE,OAAAC,KAAAqiH,WAyOiC,GAAjC/3G,GAAGm+G,oBAAoBhjH,QAvOhCnB,EAAc8F,GAAA/H,EAAgByE,eA2O7BwD,GAAGsS,WAAY,MAtOnBva,GAAc2I,YAAG,QAAc,yBAAA,UAC3BV,GAAAsS,WAAc,GA0OnB,SAxOK3R,GAyOJ5I,EAxOG2I,YAAA,QAAA,mBAAA,UACHV,GAAAsS,WAAc,IAgPtB,QAASinG,KACL6E,KACAp+G,GAAGsS,WAAY,CACf,IAxOG+wC,MACCo3D,KACAx/G,GAyOA+8G,UAAWh4G,GAAGg4G,UAAU3vF,KACxB6wF,WAAYl5G,GAAGk5G,WAAWngG,GAC1B4/F,YAAa34G,GAAGm5G,cAAcpgG,GAvOtClY,UAAS5G,EAAA,QAAA+F,GAA4B0vC,SAAA,cAAA1vC,GAAA0vC,SAAA,GACjC5uC,QAAA7G,EAAA,QAAA+F,GAAA2vC,OAAA,cAAA3vC,GAAA2vC,OAAA,GACG75C,UAAYkK,GAAA6hB,gBAAA/rB,UACX+jH,WAAclkH,QAAdqK,GAAc+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,GACd81D,WAAM,WAEV,IAAiB,KAAjB55G,GAAKm5G,cAAYpgG,IAA2B,KAA3B/Y,GAAAm5G,cAA2BpgG,GAAA,CACxC,IAAA,GAAA7d,KAAY8E,IAAK85G,UAyObz2D,EAAIxrD,KAAKmI,GAAG85G,UAAU5+G,GAAG6rD,OAtO7B9rD,GAAAm8B,WAAcisB,EAAA3vB,KAAU,IACxB,KAAA,GAAAx4B,KAAY8E,IAAG6xG,aACf4I,EAAa5iH,KAAGmI,GAAA6xG,aAAc32G,GAAA6d,GAE9B9d,GAAAigH,QAAWT,EAAQ/mF,KAAQ,SAE3Bz4B,GAAAigH,QAAc,KACdjgH,EAAAm8B,WAAgB,EA0OpBs5C,GAxOIkB,mBAAyB32E,GAAKwD,KAAA,SAAAC,GAClB,MAAZA,EAAAlI,QAyOIwJ,GAAGq+G,uBAAyB3/G,EAAIhJ,KAvOjCsK,GAAAsS,WAAc,IAEbva,EAAS2I,YAAa,QAAG,yBAAA,0BAyOzBV,GAAGsS,WAAY,IAEpB,SAxOM3R,GAyOL5I,EAxOI2I,YAAiB,QAAA,mBAAgB,0BAyOrCV,GAAGsS,WAAY,IAIvB,QAxOQyoG,KAyOJ/6G,GAAGsS,WAAY,EAvOftS,GAAAs+G,uBAyOA,IAxOIC,MAyOAl7D,IACJrjD,IAAGo8G,SACH,IAAI3B,KACJ,KAAK,GAxOGv/G,KAAA8E,IAAAw+G,2BAyOJD,EAxOO1mH,KAAYmI,GAAAw+G,2BAAAtjH,GAAAujH,qBA0OvB,KAxOG,GAAAvjH,KAAS8E,IAAK+jD,iBACb/jD,GAAAo8G,OAAAvkH,KAAWmI,GAAA+jD,iBAAqB7oD,GAAA4oD,WA0OpC,KAAK,GAAI5oD,KAAK8E,IAAG6xG,aACb4I,EAAS5iH,KAAKmI,GAAG6xG,aAAa32G,GAAG6d,GAtOzC,KAAS,GAAA7d,KAAA8E,IAAA85G,UACLz2D,EAAAxrD,KAAAmI,GAAA85G,UAAA5+G,GAAA6rD,OAEA,IAAI9rD,IACA+8G,UAAMh4G,GAAAg4G,UAAA3vF,KACN6wF,WAAWl5G,GAAAk5G,WAAAngG,GACf4/F,YAAiB34G,GAAAm5G,cAAApgG,GACblY,UAAA5G,EAAe,QAAQ+F,GAAA0vC,SAAA,cAAgC1vC,GAAA0vC,SAAA,GAyOvD5uC,QAAS7G,EAAQ,QAAQ+F,GAAG2vC,OAAQ,cAAgB3vC,GAAG2vC,OAAS,GAvOhE75C,UAAMkK,GAAA6hB,gBAAA/rB,UACN+jH,WAAW75G,GAAGo8G,OAAA1oF,KAAU,KACxBgwB,YAAY66D,EAAc7qF,KAAA,KAC1BkmF,WAAA,OAyOAxiF,WAAYisB,EAAI3vB,KAAK,KACrBwnF,QAAST,EAAS/mF,KAAK,KAE3Bg9C,GAxOakB,mBAAmB32E,GAAAwD,KAAQ,SAAAC,GACpC,GAAc,MAAdA,EAAAlI,OAAc,CACd,IAAA,GAAa0E,KAAGwD,GAAAhJ,KAAA,CAyORsK,GAAGs+G,qBAAuB5/G,EAAIhJ,KAvOtCsK,GAAAs+G,qBAA+BpjH,GAAAo5B,UAAK33B,KAAAC,MAAAoD,GAAAs+G,qBAAApjH,GAAAo5B,WACpCt0B,GAAAs+G,qBAAYpjH,GAAAohH,QAAA3/G,KAAAC,MAAAoD,GAAAs+G,qBAAApjH,GAAAohH,QAyOJ,KAAK,GAAInyG,GAAI,EAAGA,EAAInK,GAAGs+G,qBAAqBpjH,GAAGo5B,UAAUn5B,OAAQgP,IAAK,CAvO3E,GAAAyqB,GAAoB50B,GAAAs+G,qBAAwBpjH,GAAAo5B,UAAWnqB,GAAA8sB,QAC5CslF,EAAGv8G,GAAWs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAitB,UACpBp3B,IAAKw8G,kBAAgBhiH,EAAAyC,OAAA+C,GAAAs+G,qBAAApjH,GAAAohH,SAAArlF,QAAArC,IAyOjB50B,GAAGy8G,sBAAwBjiH,EAAOyC,OAAO+C,GAAGw8G,mBAAqBplF,WAAcmlF,IAvOvFv8G,GAAAs+G,qBAAsBpjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA18G,GAAAy8G,uBA2OtBz8G,GAAGsS,WAAY,EAvOI,GAAnBtS,GAAA84G,aACDpoC,EAAAM,SAAAhxE,GAAAg4G,UAAA3vF,MAAA5pB,KAAA,SAAAC,GACW,MAAAA,EAAAlI,SACVwJ,GAAamiB,YAAA3nB,EAAAyC,OAAAyB,EAAAhJ,MAAAojH,aAAA,IAyOD94G,GAAGoiB,gBAAkB5nB,EAAOyC,OAAOyB,EAAIhJ,MAAQojH,aAAgB,OApOxE1nC,QA4OHr5E,GAAW2I,YAAY,QAAS,yBAA0B,cAvO/DV,GAAAsS,WAAc,GA0Od,SAxOI3R,GAyOH5I,EAAW2I,YAAY,QAAS,mBAAoB,cACpDV,GAAGsS,WAAY,IAIvB,QAxOO8+D,GAAYt+D,GACf9S,GAAA0+G,wBACU/oH,QAANmd,IACD9S,GAAAgT,YAAS,GAEZhT,GAAAsS,WAAc,CAyOd,IAxOIqsG,MAyOAt7D,IAvOJ,KAAK,GAAInoD,KAAK8E,IAAGw+G,2BACbG,EAAG9mH,KAAOmI,GAAKw+G,2BAAuBtjH,GAAAujH,qBAE1C,KAAK,GAAIvjH,KAAK8E,IAAG85G,UACbz2D,EAAAxrD,KAASmI,GAAA85G,UAAQ5+G,GAAA6rD,OAErB,IAAA9rD,IACIm8B,WAAYisB,EAAA3vB,KAAA,KAyOZkpF,QAAS+B,EAAQjrF,KAAK,KAvOtBwnF,QAAMl7G,GAAAy6G,SAAA/mF,KAAA,KACNolF,aAAc94G,GAAA84G,aACdhjH,UAAAkK,GAAY6hB,gBAAc/rB,UAE1BH,SAAAmd,IACA7X,EAAAm9G,SAAWtlG,EAAQslG,UA0OvB1nC,EAxOIU,4BAA8Bn2E,GAAAwD,KAAA,SAAAC,GAC9B,GAAe,MAAfA,EAAAlI,OAAsB,CACtB,IAAS,GAAA0E,KAAAwD,GAAahJ,KAAK,CAC3BsK,GAAA0+G,qBAAYhgH,EAAAhJ,KACZsK,GAAA0+G,qBAAqBxjH,GAAAo5B,UAAA33B,KAAAC,MAAAoD,GAAA0+G,qBAAAxjH,GAAAo5B,WACrBt0B,GAAS0+G,qBAAcxjH,GAAAwhH,QAAA//G,KAAAC,MAAAoD,GAAA0+G,qBAAAxjH,GAAAohH,QAyOf,KAAK,GAAInyG,GAAI,EAAGA,EAAInK,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUn5B,OAAQgP,IAAK,CAvOpE,GAAAyqB,GAAA50B,GAAA0+G,qBAAqCxjH,GAAAo5B,UAAKnqB,GAAA8sB,QAC5CslF,EAAgBv8G,GAAA0+G,qBAAAxjH,GAAAo5B,UAAAnqB,GAAAitB,UACfp3B,IAAIw8G,kBAAehiH,EAAAyC,OAAA+C,GAAA0+G,qBAAAxjH,GAAAwhH,SAAAzlF,QAAArC,IACjB50B,GAAAy8G,sBAAejiH,EAAAyC,OAAA+C,GAAAw8G,mBAAAplF,WAAAmlF,IACfv8G,GAAA0+G,qBAAyBxjH,GAAAo5B,UAAWnqB,GAAGuyG,QAAY18G,GAAAy8G,uBAGxB9mH,QAwO9BqE,EAxOIvE,OAAIC,KAAUqiH,WACgB,GAA9B/3G,GAAA0+G,qBAAkBvjH,QAClBnB,EAAG8F,GAAA/H,EAAAyE,eA2OXwD,GAAGsS,WAAY,MAtOfva,GAAG2I,YAAY,QAAA,yBAAA,UACfV,GAAAsS,WAAO,GA0OZ,SAAS3R,GACR5I,EAAW2I,YAxOQ,QAAA,mBAAgC,UAyOnDV,GAAGsS,WAAY,IAWvB,QAxOOuQ,KAyOH,GAxOI+7F,MACAC,KAyOAC,KAEAC,KAvORC,KACOC,KACAC,IACH,IAAmB,KAAfl/G,GAAAg4G,UAAA3vF,MACA,IAAA,GAAMntB,KAAA8E,IAAAk8G,QACL,GAAIl8G,GAAKk8G,QAAGhhH,GAAA8nB,UAAA,CACQrtB,QAArBqK,GAAak8G,QAAQhhH,GAAAs2D,QAyOTotD,EAAQ/mH,KAAKmI,GAAGk8G,QAAQhhH,GAAGs2D,OAtOnC,KAAQ,GAAArnD,KAAUnK,IAAGk8G,QAAAhhH,GAAAo5B,UAAA,CAyOTt0B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAG6Y,YAvOrC67F,EAAAhnH,KAAAmI,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAA8sB,SACU8nF,EAAKlnH,KAAAmI,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAitB,YAET,KAAA,GAASpB,KAAKh2B,IAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAuyG,QACT18G,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,YACHk8F,EAAAjoF,QAAgBj3B,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAA,QAyOVkpF,EAAQ1tD,OAAUxxD,GAAGk8G,QAAQhhH,GAAG,OAvOlCgkH,EAAA9nF,WAAAp3B,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAA,WACCkpF,EAAAlqF,MAAAh1B,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAA,MAyOCkpF,EAAQxqF,OAAU10B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAG,eAvOlEgpF,EAAAnnH,KAAAqnH,GACSA,YA8OhB,IAxOuB,MAwOnBl/G,GAAGg4G,UAxOM3vF,MAyOhB,IAAK,GAAIntB,KAxOG8E,IAAIk+G,SAyOZ,GAAIl+G,GAAGk+G,SAxOIhjH,GAAA8nB,UAAA,CACArtB,QAAHqK,GAAGk+G,SAAAhjH,GAAAikH,SACHL,EAAGjnH,KAAAmI,GAAAk+G,SAAuBhjH,GAAAikH,QA0O9B,KAAK,GAAIh1G,KAAKnK,IAAGk+G,SAAShjH,GAAGo5B,UAAW,CAvOjCt0B,GAAAk+G,SAAYhjH,GAAAo5B,UAAanqB,GAAA6Y,YACzB67F,EAAAhnH,KAAAmI,GAAAk+G,SAAoBhjH,GAAUo5B,UAAGnqB,GAAA8sB,SACpC8nF,EAAUlnH,KAAWmI,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAAitB,YA0OrB,KAAK,GAAIpB,KAAKh2B,IAAGk+G,SAAShjH,GAAGo5B,UAAUnqB,GAAGuyG,QAvOnC18G,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,YACZk8F,EAAAC,QAAAn/G,GAAAk+G,SAAAhjH,GAAA,QACQgkH,EAAYlqF,MAASh1B,GAAAk+G,SAAAhjH,GAAAo5B,UAA0BnqB,GAAAuyG,QAAA1mF,GAAA,MAC3CkpF,EAAAxqF,OAAA10B,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAA,eAyOCgpF,EAAQnnH,KAAKqnH,GAvOpBA,YA+Ob,KAAK,GAAIhkH,KAAK8E,IAAGs+G,qBACb,GAAIt+G,GAAGs+G,qBAAqBpjH,GAAG8nB,UAAW,CACartB,QAA/CqK,GAAGs+G,qBAAqBpjH,GAAGkkH,kBAvOtCH,EAAApnH,KAA0BmI,GAAAs+G,qBAAApjH,GAAAkkH,iBAE5B,KAAY,GAAAj1G,KAAAnK,IAAAs+G,qBAAApjH,GAAAo5B,UAAA,CACLt0B,GAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAA6Y,YACK67F,EAAAhnH,KAAAmI,GAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAA8sB,SACL8nF,EAAAlnH,KAAAmI,GAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAitB,YAEM,KAAG,GAAApB,KAAWh2B,IAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAuyG,QACV18G,GAAAs+G,qBAAcpjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,YACXk8F,EAAQE,iBAAap/G,GAAAs+G,qBAA8BpjH,GAAA,iBACrDgkH,EAAWlqF,MAAQh1B,GAAAs+G,qBAAmBpjH,GAASo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAA,MAClDkpF,EAAAxqF,OAAgB10B,GAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAA,eACdgpF,EAAAnnH,KAAAqnH,GACJA,OAgPhB,GAAIjkH,IACAokH,UAAWT,EAAQlrF,KAAK,KAvOxB4rF,WAAIT,EAAUnrF,KAAS,KAyOvB6zB,WAxOGw3D,EAAArrF,KAAA,KACH6rF,UAAI5iH,KAAUqkB,UAAAg+F,GA0OdQ,WAAYV,EAASprF,KAAK,KAvO9B+rF,cAAcR,EAAAvrF,KAAmB,KA0OjC,OAAA,GAGJ,QAASgsF,GAxOc5sG,GAyOnB,GAxOW,GAwOPA,EAxOIkQ,UAyOJ,IAAK,GAAI7Y,GAAI,EAAGA,EAAI2I,EAAIwhB,UAAUn5B,OAAQgP,IAAK,CAvOhD2I,EAASwhB,UAAKnqB,GAAA6Y,WAAA,CACb,KAAA,GAAWgT,GAAA,EAAAA,EAAYljB,EAAAwhB,UAASnqB,GAAAuyG,QAAAvhH,OAAoB66B,IACjDljB,EAAYwhB,UAAAnqB,GAAA6Y,YAyOHlQ,EAAIwhB,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAAY,OAlOpD,KAAA,GAAA7Y,GAAA,EAAAA,EAAiB2I,EAAAwhB,UAAAn5B,OAAAgP,IAAA,CACjB2I,EAAMwhB,UAAAnqB,GAAA6Y,WAAA,CACP,KAAS,GAAAgT,GAAA,EAAAA,EAAAljB,EAAAwhB,UAAAnqB,GAAAuyG,QAAAvhH,OAAA66B,IACRljB,EAAWwhB,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,GA8OnB,QAAS28F,GAAe7sG,EAAK8sG,GAvOzB,GAAA9sG,EAAKkQ,UACD,IAAA,GAAS9nB,KAAK4X,GAAG4pG,QAyOb5pG,EAAI4pG,QAAQxhH,GAAG8nB,WAAY,MAG/B,KAAK,GAAI9nB,KAAK4X,GAAI4pG,QAvOlB5pG,EAAM4pG,QAAAxhH,GAAA8nB,WAAA,CA4OV,IAxOIqP,GAAA73B,EAAWyC,OAAQ2iH,EAAAtrF,UAAW,SAAU9mB,GACxC,MAAAA,GAASwV,WAETqP,GAAAl3B,OAAY,EACZykH,EAAA58F,WAAa,EAEb48F,EAAA58F,WAAgB,EA4OxB,QAxOQ68F,GAAQ/sG,EAAW8sG,GA8OvB,GAFA5/G,GAAG8/G,YACH9/G,GAAG+/G,aAvOiB,KAwOhB//G,GAAGg4G,UAxOS3vF,KAyOZ,IAAK,GAAIntB,GAxOG,EAAIA,EAAA8E,GAAAk8G,QAAc/gH,OAAAD,IAyO1B,IAAK,GAxOGiP,GAAG,EAAAA,EAAAnK,GAAAk8G,QAAoBhhH,GAAAo5B,UAAOn5B,OAAUgP,IAyO5C,IAxOI,GAAG6rB,GAAA,EAAAA,EAAAh2B,GAAAk8G,QAAwBhhH,GAAAo5B,UAAOnqB,GAAOuyG,QAAGvhH,OAAA66B,IACzCh2B,GAAAk8G,QAAAhhH,GAAAo5B,UAAwBnqB,GAAAuyG,QAAU1mF,GAAGhT,WAyOpChjB,GAAG8/G,SAASjoH,KAAKmI,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,IACpDh2B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,EAvOhDhjB,GAAYk8G,QAAAhhH,GAAA8nB,WAAA,GACRhjB,GAAgBk8G,QAAGhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,GAAAhjB,GAAA8/G,SAAA3kH,OAIX6E,GAAAk8G,QAAAhhH,GAAAo5B,UAAyBnqB,GAAAuyG,QAAW1mF,GAAAhT,YAyOnChjB,GAAG+/G,UAAUloH,KAAKmI,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,IACjDh2B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,QAAU6E,GAAG+/G,UAAU5kH,SAvOvE6E,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAA6Y,WAAA,EACHhjB,GAAAk8G,QAAAhhH,GAAA8nB,WAAA,KAPAhjB,GAAAk8G,QAAchhH,GAAAo5B,UAAYnqB,GAAA6Y,WAAqB,EACvChjB,GAAAk8G,QAAIhhH,GAAA8nB,WAAgB,OAarC,IAAc,MAAdhjB,GAASg4G,UAAK3vF,KACb,IAAA,GAAAntB,GAAW,EAAAA,EAAA8E,GAAYk+G,SAAS/iH,OAAAD,IAC7B,IAAA,GAAAiP,GAAY,EAAAA,EAAAnK,GAAAk+G,SAAAhjH,GAAAo5B,UAAAn5B,OAAAgP,IAyOP,IAAK,GAAI6rB,GAAI,EAAGA,EAAIh2B,GAAGk+G,SAAShjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,OAAQ66B,IACxDh2B,GAAGk+G,SAAShjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WACvChjB,GAAG8/G,SAASjoH,KAAKmI,GAAGk+G,SAAShjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,IAvOpEh2B,GAAAk+G,SAAAhjH,GAA4Bo5B,UAAKnqB,GAAA6Y,WAAA,EACnChjB,GAAAk+G,SAAuBhjH,GAAA8nB,WAAA,GACJhjB,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,GAAAhjB,GAAA8/G,SAAA3kH,OAIR6E,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,YACJhjB,GAAA+/G,UAAAloH,KAAAmI,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,IACOh2B,GAAAk+G,SAAAhjH,GAAAo5B,UAA4BnqB,GAAAuyG,QAAAvhH,QAAA6E,GAAA+/G,UAAA5kH,SACzB6E,GAAAk+G,SAAAhjH,GAAAo5B,UAA8BnqB,GAAA6Y,WAAA,EAyOtBhjB,GAAGk+G,SAAShjH,GAAG8nB,WAAY,KA/OnChjB,GAAAk+G,SAAAhjH,GAAAo5B,UAAAnqB,GAAA6Y,WAAA,EAyOAhjB,GAAGk+G,SAAShjH,GAAG8nB,WAAY,OA1N3C,KAAA,GAAA9nB,GAAA,EAAcA,EAAG8E,GAAAs+G,qBAAAnjH,OAAAD,IACjB,IAAA,GAAWiP,GAAG,EAAAA,EAAAnK,GAAAs+G,qBAAgBpjH,GAAAo5B,UAAAn5B,OAAAgP,IAyOtB,IAAK,GAAI6rB,GAAI,EAAGA,EAAIh2B,GAAGs+G,qBAAqBpjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,OAAQ66B,IAvO7Eh2B,GAAWs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WACHhjB,GAAI8/G,SAAAjoH,KAAAmI,GAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,IAyOHh2B,GAAGs+G,qBAAqBpjH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,EAvO1DhjB,GAAAs+G,qBAA4BpjH,GAAK8nB,WAAK,GACxBhjB,GAAAs+G,qBAAApjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,GAAAhjB,GAAA8/G,SAAA3kH,OAIb6E,GAAAs+G,qBAAwBpjH,GAAWo5B,UAAWnqB,GAAGuyG,QAAA1mF,GAAAhT,YAC3ChjB,GAAI+/G,UAAUloH,KAAAmI,GAAAs+G,qBAAwBpjH,GAAUo5B,UAAQnqB,GAAKuyG,QAAA1mF,IACvDh2B,GAAGs+G,qBAAqBpjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAAvhH,QAAA6E,GAAA+/G,UAAA5kH,SAC/C6E,GAAWs+G,qBAAGpjH,GAAqBo5B,UAAGnqB,GAAU6Y,WAAG,EACpDhjB,GAAAs+G,qBAA2BpjH,GAAO8nB,WAAG,KAPvChjB,GAAKs+G,qBAAUpjH,GAAAo5B,UAAAnqB,GAAA6Y,WAAA,EACjBhjB,GAAAs+G,qBAA2BpjH,GAAA8nB,WAAA,EAuP1C,IAAIqP,GAAM73B,EAAOyC,OAAO6V,EAAI4pG,QAAS,SAASlvG,GAC1C,MAxOOA,GAAAwV,WA0OPqP,GAxOIl3B,OAAA,EAyOJ2X,EAxOIkQ,WAAG,EAERlQ,EAAAkQ,WAAc,CA0OjB,IAxOImR,GAAG35B,EAAAyC,OAAY2iH,EAAAtrF,UAAA,SAAA9mB,GAyOf,MAAOA,GAAEwV,WAETmR,GAAKh5B,OAAS,EACdykH,EAAI58F,WAAY,EAEhB48F,EAAI58F,WAAY,EAIxB,QAASg9F,KArOL,GAFJhgH,GAAAigH,kBACIjgH,GAAAkgH,aACe,KAAXlgH,GAAAg4G,UAAW3vF,KACX,IAAA,GAAAntB,GAAW,EAAAA,EAAA8E,GAAA28G,WAAAxhH,OAAAD,IACX,IAAA,GAAYiP,GAAA,EAAAA,EAAAnK,GAAA28G,WAAAzhH,GAAAo5B,UAAAn5B,OAAAgP,IACZ,IAAA,GAAe6rB,GAAA,EAAAA,EAAAh2B,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAAvhH,OAAA66B,IACLh2B,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WACIhjB,GAAAigH,eAAApoH,KAAAmI,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,IACJh2B,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAA6Y,WAAA,EACGhjB,GAAA28G,WAAazhH,GAAA8nB,WAAA,GACThjB,GAAS28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,GAAAhjB,GAAAigH,eAAA9kH,OA4OL6E,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,YAvO7ChjB,GAAKkgH,UAAWroH,KAAGmI,GAAA28G,WAAWzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,IAC5Bh2B,GAAQ28G,WAAGzhH,GAAUo5B,UAAGnqB,GAAWuyG,QAAAvhH,QAAA6E,GAAAkgH,UAAA/kH,SACtC6E,GAAS28G,WAAQzhH,GAAQo5B,UAAGnqB,GAAU6Y,WAAG,EACzChjB,GAAA28G,WAAqBzhH,GAAA8nB,WAAW,KAPrChjB,GAAQ28G,WAAGzhH,GAAWo5B,UAAAnqB,GAAA6Y,WAAA,EAClBhjB,GAAA28G,WAAWzhH,GAAA8nB,WAAU,OAqPjC,IAxOyB,MAwOrBhjB,GAAGg4G,UAxOU3vF,KAyOpB,IAAK,GAAIntB,GAAI,EAAGA,EAxOI8E,GAAAm+G,oBAAqBhjH,OAAQD,IAyO7C,IAAK,GAAIiP,GAAI,EAxOGA,EAAAnK,GAAAm+G,oBAAajjH,GAAAo5B,UAAAn5B,OAAAgP,IAyOzB,IAAK,GAAI6rB,GAxOG,EAAAA,EAAAh2B,GAAUm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAAvhH,OAAA66B,IAyOdh2B,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAClDhjB,GAAGigH,eAAepoH,KAAKmI,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,IACtEh2B,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,EACnDhjB,GAAGm+G,oBAAoBjjH,GAAG8nB,WAAY,GAC9BhjB,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAAyC,GAA5BhjB,GAAGigH,eAAe9kH,OApO1F6E,GAASm+G,oBAAcjjH,GAAAo5B,UAAWnqB,GAAAuyG,QAAA1mF,GAAAhT,YACrChjB,GAASkgH,UAAQroH,KAASmI,GAAGm+G,oBAAAjjH,GAAAijH,oBAAAh0G,GAAAuyG,QAAA1mF,IAyOjBh2B,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,QAAU6E,GAAGkgH,UAAU/kH,SAvOxE6E,GAAGm+G,oBAAYjjH,GAAWo5B,UAAAnqB,GAAA6Y,WAAA,EAC7BhjB,GAAAm+G,oBAAyBjjH,GAAA8nB,WAAW,KAP7ChjB,GAAAm+G,oBAAwBjjH,GAAAo5B,UAAAnqB,GAAA6Y,WAAA,EACpBhjB,GAAGm+G,oBAAUjjH,GAAA8nB,WAAA,OAsP3B,KAAK,GAAI9nB,GAAI,EAAGA,EAxOI8E,GAAA0+G,qBAAqBvjH,OAASD,IAyO9C,IAAK,GAAIiP,GAAI,EAxOGA,EAAAnK,GAAA0+G,qBAAaxjH,GAAAo5B,UAAAn5B,OAAAgP,IAyOzB,IAAK,GAAI6rB,GAxOG,EAAAA,EAAAh2B,GAAU0+G,qBAAAxjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAAvhH,OAAA66B,IAyOdh2B,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WACnDhjB,GAAGigH,eAAepoH,KAAKmI,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,IACvEh2B,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,EACpDhjB,GAAG0+G,qBAAqBxjH,GAAG8nB,WAAY,GAC/BhjB,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAAyC,GAA5BhjB,GAAGigH,eAAe9kH,OApO3F6E,GAAA0+G,qBAAwBxjH,GAAAo5B,UAAAnqB,GAAoBuyG,QAAA1mF,GAAWhT,YAC1DhjB,GAAAkgH,UAAoBroH,KAAAmI,GAAA0+G,qBAAwBxjH,GAAAwjH,qBAAAv0G,GAAAuyG,QAAA1mF,IAyOhCh2B,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,QAAU6E,GAAGkgH,UAAU/kH,SAvOzE6E,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAWnqB,GAAA6Y,WAAA,EACzChjB,GAAA0+G,qBAAwBxjH,GAAA8nB,WAAa,KAPrDhjB,GAAA0+G,qBAAAxjH,GAAAo5B,UAAAnqB,GAAA6Y,WAAA,EACWhjB,GAAG0+G,qBAAsBxjH,GAAA8nB,WAAA,GAwP/C,QAASm9F,KACL,GAAIngH,GAAGogH,uBAAwB,CAC3B,IAAK,GAAIllH,GAAI,EAAGA,EAAI8E,GAAGk8G,QAAQ/gH,OAAQD,IAAK,CACxC8E,GAAGk8G,QAAQhhH,GAAG8nB,UAAYhjB,GAAGogH,sBAC7B,KAAK,GAAIj2G,KAAKnK,IAAGk8G,QAAQhhH,GAAGo5B,UAAW,CACnCt0B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,CACvC,KAAK,GAAIgT,GAAI,EAAGA,EAAIh2B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,OAAQ66B,IACvDh2B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAG6Y,YAvOrChjB,GAAAk8G,QAAAhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,IA6ONhjB,GAAGqgH,oBAAqB,MAvOxB,CACA,IAAA,GAAAnlH,GAAA,EAAeA,EAAA8E,GAAAk8G,QAAY/gH,OAAKD,IAAA,CAyO5B8E,GAAGk8G,QAAQhhH,GAAG8nB,WAAY,CAvO1B,KAAA,GAAA7Y,KAAAnK,IAAAk8G,QAAAhhH,GAAAo5B,UAAA,CAyOIt0B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,CACvC,KAAK,GAAIgT,GAAI,EAAGA,EAAIh2B,GAAGk8G,QAAQhhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQvhH,OAAQ66B,IAvOtEh2B,GAAck8G,QAAKhhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,GA4OpBhjB,GAAGqgH,oBAxOqB,GA8OhC,QAASC,KACL,GAAIC,MAvOAC,KAyOAC,KACAC,KACAC,KACAC,KACAC,IACJ,IAAyB,KAArB7gH,GAAGg4G,UAAU3vF,KAvOpB,IAAA,GAAAntB,KAAA8E,IAAA28G,WAyOW,GAAI38G,GAAG28G,WAAWzhH,GAAG8nB,UAAW,CAvOVrtB,QAAzBqK,GAAA28G,WAAyBzhH,GAAAs2D,SACtBqvD,EAAWhpH,KAAAmI,GAAA28G,WAAAzhH,GAAAg7D,UACNqqD,EAAS1oH,KAASmI,GAAA28G,WAAAzhH,GAAAs2D,QA0OnB,KAAK,GAAIrnD,KAAKnK,IAAG28G,WAAWzhH,GAAGo5B,UAAW,CAvO/Ct0B,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAA6Y,YACWw9F,EAAa3oH,KAAAmI,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAA8sB,SACXypF,EAAe7oH,KAAAmI,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAitB,YA0OnB,KAAK,GAAIpB,KAAKh2B,IAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAGuyG,QACpC18G,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAvOzC29F,EAAI9oH,KAAWmI,GAAA28G,WAAYzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhB,QA+OnD,GAAyB,MAArBh1B,GAAGg4G,UAAU3vF,MACb,IAAK,GAAIntB,KAAK8E,IAAGm+G,oBACb,GAAIn+G,GAAGm+G,oBAAoBjjH,GAAG8nB,UAAW,CAvOpBrtB,QAAxBqK,GAAcm+G,oBAAUjjH,GAAAikH,SAyObyB,EAAe/oH,KAAKmI,GAAGm+G,oBAAoBjjH,GAAGikH,QAElD,KAAK,GAAIh1G,KAAKnK,IAAGm+G,oBAAoBjjH,GAAGo5B,UAAW,CAvOjDt0B,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAA6Y,YACCw9F,EAAA3oH,KAAAmI,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAA8sB,SACEypF,EAAa7oH,KAAAmI,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAAitB,YAEjB,KAAQ,GAAGpB,KAAIh2B,IAAGm+G,oBAAqBjjH,GAAAo5B,UAAanqB,GAAAuyG,QAC5C18G,GAAIm+G,oBAAqBjjH,GAAAo5B,UAAanqB,GAAAuyG,QAAQ1mF,GAAAhT,WAC5C29F,EAAW9oH,KAAAmI,GAAUm+G,oBAAcjjH,GAAWo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhB,aA+OjE,KAAK,GAAI95B,KAAK8E,IAAG0+G,qBACb,GAAI1+G,GAAG0+G,qBAxOqBxjH,GAAG8nB,UAAU,CACOrtB,QAwOxCqK,GAAG0+G,qBAxOkBxjH,GAAKkkH,kBAyO1BqB,EAxOe5oH,KAAQmI,GAAG0+G,qBAAqBxjH,GAAAkkH,iBA0OnD,KAAK,GAAIj1G,KAAKnK,IAxOE0+G,qBAAcxjH,GAAAo5B,UAAY,CAyOlCt0B,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAG6Y,YACxCw9F,EAAe3oH,KAAKmI,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAG8sB,SAC5DypF,EAAmB7oH,KAAKmI,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGitB,YAEpE,KAAK,GAAIpB,KAAKh2B,IAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAC9C18G,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAvOnD29F,EAAc9oH,KAAAmI,GAAA0+G,qBAAAxjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhB,QA+OtC,GAAI/5B,IACAokH,UAAWkB,EAxOa7sF,KAAG,KAyO3B8rF,WAAYoB,EAxOOltF,KAAY,KAyO/BotF,eAxOgBtmH,EAAGumH,KAASF,GAAentF,KAAA,KAyO3C4rF,WAAYkB,EAxOO9sF,KAAA,KAyOnB6zB,WAAYm5D,EAxOYhtF,KAAY,KAyOpC6rF,UAAWoB,EAxOYjtF,KAAA,KAyOvB+rF,cAAegB,EAxOY/sF,KAAS,KA0OxC,OAAA,GAGJ,QAASstF,GAAoBluG,GACzB,GAAIA,EAAIkQ,UACJ,IAAK,GAAI7Y,GAAI,EAAGA,EAAI2I,EAAIwhB,UAAUn5B,OAAQgP,IAAK,CAC3C2I,EAAIwhB,UAAUnqB,GAAG6Y,WAAY,CAvO9B,KAAA,GAAAgT,GAAA,EAAAA,EAAAljB,EAAAwhB,UAAAnqB,GAAAuyG,QAAAvhH,OAAA66B,IACEljB,EAAIwhB,UAAWnqB,GAAGuyG,QAAA1mF,GAAAhT,WAAqB,MA6O5C,KAAK,GAAI7Y,GAAI,EAxOGA,EAAG2I,EAAAwhB,UAAAn5B,OAAqBgP,IAAG,CAyOvC2I,EAAIwhB,UAxOQnqB,GAAG6Y,WAAA,CAyOf,KAAK,GAAIgT,GAAI,EAxOEA,EAAKljB,EAAGwhB,UAAAnqB,GAAAuyG,QAAqBvhH,OAAG66B,IAyO3CljB,EAAIwhB,UAxOOnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAwB,GA+OnD,QAASi+F,KACL,GAAIjhH,GAAGkhH,6BACH,IAAK,GAAIhmH,GAAI,EAAGA,EAAI8E,GAAG28G,WAAWxhH,OAAQD,IAAK,CAC3C8E,GAAG28G,WAAWzhH,GAAG8nB,UAAYhjB,GAAGkhH,4BAChC,KAAK,GAAI/2G,KAAKnK,IAAG28G,WAAWzhH,GAAGo5B,UAAW,CACtCt0B,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,CAC1C,KAAK,GAAIgT,KAAKh2B,IAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAGuyG,QACxC18G,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAGuyG,QAAQ1mF,GAAGhT,WAAY,OAlOjE,KAAI,GAAA9nB,GAAA,EAAYA,EAAA8E,GAAA28G,WAAAxhH,OAAAD,IAAA,CAyOZ8E,GAAG28G,WAAWzhH,GAAG8nB,UAAYhjB,GAAGkhH,4BAvOhC,KAAA,GAAA/2G,KAAYnK,IAAA28G,WAAAzhH,GAAAo5B,UAAA,CAyORt0B,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAG6Y,WAAY,CAvO3C,KAAA,GAAOgT,KAAOh2B,IAAI28G,WAAWzhH,GAAAo5B,UAAYnqB,GAAAuyG,QACvC18G,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA1mF,GAAAhT,WAAA,IAgPjB,QAASm+F,KAvOTnhH,GAAAsS,WAAS,CACL,IAAG5S,GAAAmjB,GACH,IAAe,KAAZ7iB,GAAAg4G,UAAY3vF,KAAA,CACX,IAAG,GAAAntB,KAAU8E,IAAA27G,4BACb,GAAa,GAARzgH,EAAW,CACZ,GAAK/F,GAAW6K,GAAA27G,4BAA+BzgH,GAAAkmH,uBAC3CjsH,GAAKA,EAAW,KAAO6K,GAAA27G,4BAA2BxgH,OAAQ,GA2OlE,GAAIF,IACAnF,UAAWkK,GAxOC6hB,gBAAiB/rB,UAyO7BguD,WAAY9jD,GAxOGo8G,OAAK1oF,KAAG,KA2OvB2tF,YAAalsH,EACb6iH,UAAWh4G,GAxOCg4G,UAAQ3vF,KAyOpB6wF,WAAYl5G,GAAGk5G,WAxOIngG,GA4OnBuoG,cAAe5hH,EAAO6/G,UACtBgC,iBAAkB7hH,EAAO6/G,WAEzBltF,EAAM73B,EAAOyC,OAAO+C,GAAGk8G,QAAS,SAASjhH,GACzC,MAAOA,GAAI+nB,WAtOZqP,GAAIl3B,OAAG,EACD6E,GAAA+S,WAuPD9X,EAAIi7D,SAAWl2D,GAxOCm4G,OAAGjiD,SAyOfj7D,EAAI6Y,UAAYiB,GAAc1U,OAClCqwE,EAAce,aAAax2E,GAAKwD,KAAK,SAASC,GACvB,MAAfA,EAAIlI,QACJwJ,GAAGsS,WAAY,EACfva,EAAW2I,YAAY,UAAW,oBAAqB,mBACvDV,GAAGogH,wBAAyB,EAvOzCpuC,EAAAh4E,EAAAvE,OAAAC,MACamlH,KAEH9iH,EAAW2I,YAAO,QAAA,yBAAqC,oBA0OzD,SAxOQC,GAyOP5I,EAxOO2I,YAAA,QAAwB,mBAAa,sBA3BpDgwE,EAAgBc,aAAOv2E,GAAAwD,KAAA,SAAuBC,GACnB,MAAlBA,EAAIlI,QACDwJ,GAAGk2D,SAAAx3D,EAAAhJ,KACHsK,GAAGsS,WAAA,EACHva,EAAG2I,YAAoB,UAAG,oBAAyB,mBACnDV,GAAGogH,wBAAuB,EAyO1BvF,KAtOA9iH,EAAG2I,YAAoB,QAAG,yBAAY,oBA0O3C,SAxOSC,GAyOR5I,EAxOW2I,YAAU,QAAQ,mBAAuB,qBA6P5DrG,EAAQ8C,OAxOO,UAAA,qBAAA,uBA2OhB,IAxOwB,MAwOpB6C,GAAGg4G,UAxOU3vF,KAAO,CAyO3B,IAAK,GAAIntB,KAAK8E,IAAG29G,6BACb,GAAS,GAALziH,EAAQ,CACR,GAAI/F,GAAQ6K,GAAG29G,6BAA6BziH,GAAGy2B,eAC/Cx8B,GAAQA,EAAQ,KAAO6K,GAAG29G,6BAA6BxiH,OAAS,GAGxE,GAAIF,IACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BguD,WAAY9jD,GAAGo8G,OAAO1oF,KAAK,KAC3B8tF,YAAa9hH,EAAO6nD,WACpBk6D,SAAU/hH,EAAO8/G,WAvOpB6B,YAAelsH,EAEhB6iH,UAAah4G,GAAGg4G,UAAO3vF,KACnBqyF,QAAGh7G,EAAW4/G,WACdoC,OAAKhiH,EAAS6/G,WA0OdltF,EAxOI73B,EAASyC,OAAO+C,GAAAk+G,SAAO,SAAWjjH,GAyOtC,MAAOA,GAxOC+nB,WA0ORqP,GAAIl3B,OAAS,EACR6E,GAAG+S,WA1NT9X,EAAAi7D,SAAAl2D,GAAqBm4G,OAAAjiD,SAyOZj7D,EAAI6Y,UAAYiB,GAAc1U,QAdlCqwE,EAAcc,aAAav2E,GAAKwD,KAAK,SAASC,GACvB,MAAfA,EAAIlI,QAvOjBwJ,GAAAsS,WAAqB,EACrBva,EAAA2I,YAAA,UAAA,oBAAA,oBACaV,GAAA2hH,yBAA4B,EAC7B7G,KAEJ/iH,EAAW2I,YAAa,QAAY,yBAAA,qBA0OpC,SAxOIC,GAyOH5I,EAAW2I,YAAY,QAAS,mBAAoB;GAO5DrG,EAAQ8C,OAAO,UAAW,qBAAsB,wBAtOnD,CACD,IAAA,GAAAjC,KAAA8E,IAAgBw+G,2BAChB,GAAA,GAAAtjH,EAAA,CACA,GAAA/F,GAAoB6K,GAAAw+G,2BAAAtjH,GAAA0mH,cACpBzsH,GAAAA,EAAqB,KAAA6K,GAAAw+G,2BAAArjH,OAAA,GAGrB,GAAAF,IACGnF,UAAUkK,GAAA6hB,gBAAa/rB,UAC1BguD,WAAc9jD,GAAGo8G,OAAA1oF,KAAY,KACzB8tF,YAAO9hH,EAAW6nD,WAyOlBs6D,mBAxOWniH,EAAc+/G,cAyOzB/E,QAxOQh7G,EAAA4/G,WAyOR+B,YAxOQlsH,EA0OR6iH,UAxOSh4G,GAAIg4G,UAAQ3vF,KAyOrBq5F,OAxOQhiH,EAAO6/G,WA0OfltF,EAAM73B,EAxOMyC,OAAA+C,GAAAs+G,qBAA2B,SAAcrjH,GAyOrD,MAAOA,GAAI+nB,WAEXqP,GAAIl3B,OAxOQ,EAyOZu1E,EAAcc,aAxOEv2E,GAAcwD,KAAK,SAAGC,GAyOf,MAAfA,EAAIlI,QACJwJ,GAAGsS,WAAY,EACfva,EAAW2I,YAAY,UAAW,oBAAqB,qBACvDV,GAAG8hH,0BAA2B,EAC9B/G,KAtOThjH,EAAkB2I,YAAM,QAAA,yBAAA,sBAEvB,SAAOC,GACH5I,EAAO2I,YAAA,QAAuB,mBAAsB,uBA2OxDrG,EAxOI8C,OAAS,UAAQ,qBAAuB,qBA8OxD,QAAS4kH,GAAStlH,GAEd,GAAIiD,GAAS4gH,IACTrlH,GACAi7D,SAAUx2D,EAAOohH,eACjB9I,UAAWh4G,GAAGg4G,UAAU3vF,KACxBzyB,OAAQoK,GAAG84G,aACXG,QAxOGx8G,EACH3G,UAASkK,GAAK6hB,gBAAG/rB,WA0OjBsJ,EAxOe7E,EAAA8E,MAyOfhI,WAAW,EACXiI,eAAgB,cAChBC,gBAxOiB,aAyOjBrK,YAxOY,4DAyOZE,WAAY,iBACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SACI3N,MAAO,WACH,MAAOtH,MAnOnBmE,GAAUM,OAAAjB,KAAA,aAAA,cAmPd,QAASwyE,IAAOn+D,GAtOZ,GAAIuf,KA0OJ,IAxOyB,KAwOrBryB,GAAGg4G,UAxOK3vF,MAyOR,IAxOI,GAAKntB,KAAI8E,IAAI28G,WAyOb,GAxOI38G,GAAA28G,WAAczhH,GAAG8nB,UAyOjB,IAAK,GAAI7Y,KAAKnK,IAAG28G,WAAWzhH,GAAGo5B,UACvBt0B,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAG6Y,YAC9BhjB,GAAGk2D,SAAWl2D,GAAG28G,WAAWzhH,GAAGo5B,UAAUnqB,GAAG+rD,SAvOzD7jC,EAAAx6B,MACiBu/B,WAAIp3B,GAAU28G,WAAQzhH,GAAKo5B,UAAAnqB,GAAAitB,WAC7BH,QAAGj3B,GAAA28G,WAAYzhH,GAAAo5B,UAAAnqB,GAAA8sB,QACbu6B,OAAQxxD,GAAA28G,WAAazhH,GAAAo5B,UAAQnqB,GAAQqnD,OAC7CkrD,QAAaliH,EAAW8xB,IAAA9xB,EAAAyC,OAAY+C,GAAA28G,WAAAzhH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA,SAAAlvG,GAyOxB,MAAOA,GAAEwV,YACT,SAAS/nB,GACT,MAAOA,GAAI+5B,QACZtB,cAMpB,IAxOkB,MAAd1zB,GAAAg4G,UAAW3vF,MAyOlB,IAxOI,GAAKntB,KAAI8E,IAAAm+G,oBA0OT,GADAn+G,GAAGk2D,SAxOIl2D,GAAAm+G,oBAA2B,GAAAjoD,SAC9Bl2D,GAAAm+G,oBAAiBjjH,GAAA8nB,UAyOjB,IAxOI,GAAG7Y,KAAAnK,IAAAm+G,oBAA2BjjH,GAAAo5B,UAyO1Bt0B,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAG6Y,YACvChjB,GAAGk2D,SAAWl2D,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAG+rD,SACrD7jC,EAAIx6B,MACAu/B,WAAYp3B,GAAGm+G,oBAAoBjjH,GAAGo5B,UAAUnqB,GAAGitB,WAvOpEH,QAAAj3B,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAA8sB,QACiBu6B,OAAGxxD,GAAAm+G,oBAAwBjjH,GAAAo5B,UAAAnqB,GAAAqnD,OAC7BkrD,QAAGliH,EAAe8xB,IAAA9xB,EAAAyC,OAAA+C,GAAAm+G,oBAAAjjH,GAAAo5B,UAAAnqB,GAAAuyG,QAAA,SAAAlvG,GACf,MAAAA,GAAWwV,YACV,SAAG/nB,GACH,MAAGA,GAAA+5B,QACVtB,cA+Of,KAAK,GAAIx4B,KAAK8E,IAAG0+G,qBAtOlB,GADE1+G,GAAAk2D,SAAal2D,GAAAm+G,oBAAA,GAAAjoD,SACfl2D,GAAY0+G,qBAAAxjH,GAAA8nB,UACX,IAAS,GAAA7Y,KAAAnK,IAAA0+G,qBAAAxjH,GAAAo5B,UACIt0B,GAAA0+G,qBAAaxjH,GAAAo5B,UAAAnqB,GAAA6Y,YACZhjB,GAAGk2D,SAAAl2D,GAAA0+G,qBAA6BxjH,GAAAo5B,UAAAnqB,GAAA+rD,SAC9B7jC,EAAAx6B,MACIu/B,WAAGp3B,GAAA0+G,qBAA+BxjH,GAAAo5B,UAAAnqB,GAAAitB,WACtCH,QAAQj3B,GAAO0+G,qBAAGxjH,GAAAo5B,UAA4BnqB,GAAA8sB,QAyO1Cu6B,OAAQxxD,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGqnD,OAChDkrD,QAASliH,EAAO8xB,IAAI9xB,EAAOyC,OAAO+C,GAAG0+G,qBAAqBxjH,GAAGo5B,UAAUnqB,GAAGuyG,QAAS,SAASlvG,GAvOtG,MAAAA,GAAAwV,YACQ,SAAA/nB,GACC,MAAYA,GAAA+5B,QAyORtB,SAO3B,IAAIz4B,IACAi7D,SAxOIl2D,GAAAk2D,SAyOJ6hD,UAxOI/3G,GAAAg4G,UAAkB3vF,KAyOtB25F,WAAYrlH,KAAKqkB,UAAUqR,GAvO3BjyB,SAAU2U,GAAc1U,OA4O5BqwE,GAxOaqB,oBAAc92E,GAAAwD,KAAA,SAAAC,GACf,MAwOJA,EAxOIlI,QAyOJwJ,GAAGsS,WAxOS,EAyOZva,EAAW2I,YAxOI,UAAe,uBAAA,UACf,KAwOXV,GAAGg4G,UAxOQ3vF,MAyOXroB,GAAGkhH,8BAxO4B,EACKvrH,QAwOhCqE,EAxOOvE,OAAAC,KAAAqiH,UAyOPzmC,EAxOIt3E,EAAAvE,OAAAC,MA0OJmlH,KAtOa,MAAd76G,GAAAg4G,UAAc3vF,MAyOjBroB,GAAG2hH,yBAxOwB,EAyOShsH,QAAhCqE,EAAOvE,OAAOC,KAAKqiH,UAvOpB1mC,EAAAr3E,EAAAvE,OAAAC,MAEColH,MA2OJ96G,GAAG8hH,0BAxOoB,EACQnsH,QAwO3BqE,EAxOIvE,OAAAC,KAAWqiH,UAyOf3mC,EAxOOp3E,EAAyBvE,OAAAC,MA0OhCqlH,MAGRhjH,EAAW2I,YAAY,QAAS,4BAA6B,WAElE,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,YAI5D,QAASg5G,MACL15G,GAAG29C,iBAAmB,KACtB39C,GAAG47C,gBACHq+D,KAGJ,QAASA,MACLj6G,GAAG69C,oBAxOiB,KAyOpB79C,GAAGo8C,mBACH+9D,KAGJ,QAASA,MACLn6G,GAAG6+C,iBAxOkB,KAyOrB7+C,GAAGizB,YACHyyB,KAGJ,QAASA,MACL1lD,GAAG6xG,aAxOa,KAyOhB7xG,GAAGm+C,YAGP,QAAS88D,MACLj7G,GAAGq7G,yBAxOqB,KAyOxBr7G,GAAGm7G,wBACHG,KAGJ,QAASA,MACLt7G,GAAG27G,4BAxOoB,KAyOvB37G,GAAGy7G,2BACHG,KAGJ,QAASA,MACL57G,GAAGg8G,uBAxOwB,KAyO3Bh8G,GAAG+7G,sBACHE,KAGJ,QAASA,MACLj8G,GAAGk8G,WAGP,QAASc,MACLh9G,GAAGq9G,0BAxOkB,KAyOrBr9G,GAAGi9G,yBACHE,KAGJ,QAASA,MACLn9G,GAAG29G,6BAxOW,KAyOd39G,GAAGu9G,4BACHE,KAGJ,QAASA,MACLz9G,GAAGg+G,wBAxOkB,KAyOrBh+G,GAAG69G,uBACHC,KAGJ,QAxOQA,MAyOJ99G,GAAGk+G,YAGP,QAASE,MACLp+G,GAAGw+G,2BAxO4B,KAyO/Bx+G,GAAGq+G,0BACH4D,KAGJ,QAASA,MACLjiH,GAAGs+G,wBA0BP,QAxOQllG,IAAA1jB,GAyOJ,GAxOI2jB,GAAA3jB,EAAY2jB,KACZ9iB,EAAAb,EAAAa,IAyOJ,OAxOU,QAANA,IAAM,IAAA8iB,EAAAC,UAAA,IAAAD,EAAAC,UA0Sd,QAASC,IAxOE7jB,GAyOP,GAxOI2jB,GAAK3jB,EAAI2jB,KAyOT9iB,EAxOOb,EAAAa,IAyOX,IAxOY,QAwORA,EAGA,IAAK,GAFDijB,GAxOa,GAAAC,MAAQJ,GAAAK,SAAA,EAAA,EAAqB,EAAG,GA0OxCxe,EAAI,EAxOGA,EAAG8E,GAAA2Z,OAAWxe,OAAGD,IAAA,CAyO7B,GAAI0e,GAxOY,GAAKH,MAAAzZ,GAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA0OrB,IAAIF,IAxOYI,EAyOZ,MAAO5Z,IAAG2Z,OAxOEze,GAAQ1E,OA4OhC,MAAO,GAt9EX,GAAIwJ,IAvOIC,IAyORD,IAAGqU,kBAvOkBhJ,MAAQ,IAAQA,MAAK,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAwO1CrL,GAAGsU,SAvOQtU,GAAIqU,gBAAkB,GAyOjCrU,GAAGuU,YAvOa,EAwOhBvU,GAAGwU,qBAvOQ,SAAAC,GACHzU,GAAGuU,YAAYE,GA0OvBzU,GAAGsS,WAAY,EAtOftS,GAAGkiH,WAAU,EAwObnqH,EAvOW2c,SAAA,EAwOX1U,GAAG47C,gBACH57C,GAAGo8C,mBACHp8C,GAAGizB,YACHjzB,GAAGm+C,YACHn+C,GAAGgmD,gBAtOHhmD,GAAAk8G,WAwOAl8G,GAAGm7G,wBACHn7G,GAAGy7G,2BACHz7G,GAAG+7G,sBACH/7G,GAAGi9G,yBACHj9G,GAAGu9G,4BACHv9G,GAAG69G,uBACH79G,GAAGq+G,0BACHr+G,GAAGy6G,YACHz6G,GAAGm4G,SACH,IAAIF,OAEAljG,GAAgB5a,EAAsBgG,uBACtCgS,GAAY4C,GAAcJ,gBAAgBxC,SAtO9CnS,IAAA+S,WAAS,EAwOT/S,GAAGmiH,UAvOC,EAwOJniH,GAAGgT,YAvOQ,EAwOXhT,GAAGyxD,QAvOQ,EAwOXzxD,GAAGiwG,sBAvOSA,EAyOZjwG,GAAG2wE,gBAvOgBA,EAwOnB3wE,GAAGg6G,mBAvOeA,EAwOlBh6G,GAAG6wE,YAvOaA,EAwOhB7wE,GAAGs6G,QAAUA,EAEbt6G,GAAG8xE,QAAUA,EACb9xE,GAAGomD,YAAcA,EACjBpmD,GAAG6xE,YAAcA,EAEjB7xE,GAAGq5G,sBAAwBA,EAC3Br5G,GAAGo7G,yBAvOuBA,EAwO1Bp7G,GAAG07G,kBAvOkBA,EAwOrB17G,GAAG66G,OAvOSA,EAwOZ76G,GAAGsxE,kBAvOgBA,EAyOnBtxE,GAAGs5G,uBAAyBA,EAC5Bt5G,GAAGk9G,0BAvOeA,EAwOlBl9G,GAAGw9G,mBAvOkBA,EAwOrBx9G,GAAG86G,QAAUA,EACb96G,GAAGqxE,2BAA6BA,EAEhCrxE,GAAGu5G,wBAA0BA,EAC7Bv5G,GAAG+6G,oBAAsBA,EACzB/6G,GAAGoxE,4BAA8BA,EAEjCpxE,GAAG6iB,UAAYA,EACf7iB,GAAG0/G,cAAgBA,EAtOnB1/G,GAAA84G,aAAS9+G,EAAavE,OAAOC,KAAAojH,aAwO7B94G,GAAGmhH,WAAaA,EAChBnhH,GAAG+hH,SAvOKA,EAyOR/hH,GAAG6/G,cAvOeA,EAwOlB7/G,GAAGggH,oBAvOgBA,EAwOnBhgH,GAAGmgH,aAAeA,EAClBngH,GAAGg5G,QAvOCA,EAwOJh5G,GAAGo5G,sBAvOwBA,EAwO3Bp5G,GAAG2/G,eAvOYA,EAwOf3/G,GAAGixE,OAvOSA,GAwOZjxE,GAAGw5G,YAAcA,EACjBx5G,GAAG24G,YAAcA,EACjB34G,GAAGghH,oBAvOYA,EAwOfhhH,GAAGihH,mBAvOYA,EAwOfjhH,GAAGsgH,gBAvOYA,EAyOfpuG,IACA2mG,IAGA74G,GAAG88G,gBAAmB3rB,KAAM,mBAAoB9oE,KAAM,MAAS8oE,KAAM,YAAa9oE,KAAM,OAAU8oE,KAAM,cAAe9oE,KAAM,MAC7HroB,GAAG+8G,iBAvOkB5rB,KAAA,WAAAp4E,GAAA,IAAAo4E,KAAA,gBAAAp4E,GAAA,IA0OrB/Y,GAAGi2G,aAAgBmM,WAAY,UAAWrpG,GAAI,MAASqpG,WAAY,WAAYrpG,GAAI,MAASqpG,WAAY,YAAarpG,GAAI,MAuJzH/Y,GAAGg3D,UAAY,SAASpvB,GAtOrBn9B,EAAA4F,WAAY,eACfu3B,SAAWA,KAmBX5nC,GAAAqiH,UAAI,WACDriH,GAAA2vC,OAAY,KACZ3vC,GAAA0vC,SAAW,KACX1vC,GAAAy5G,cAAa,KACbz5G,GAAAm5G,cAAS,MA8pBZn5G,GAAGsiH,aAxOS,WACgB,KAwOpBtiH,GAAGg4G,UAxOC3vF,MAyOJgxF,IAvOqB,MAwOrBr5G,GAAGg4G,UAxOU3vF,MAyObixF,IACqB,KAArBt5G,GAAGg4G,UAAU3vF,MACbkxF,KAs+CRv5G,GAAG+xB,KAxOK,WAyOJ/3B,EAxOI8F,GAAA/H,EAAWyE,gBAsanBwD,GAAGqa,MAAQ,WACPra,GAAGsa,GAAK,GAAIb,OAEhBzZ,GAAGqa,QAEHra,GAAG0X,MAAQ,WACP1X,GAAGsa,GAAK,MArOZta,GAAAua,eACIC,YAAAjB,GACAkB,QAAI,GAAShB,MACbiB,WAAU,GA2Od1a,GAAG2a,aACCC,aAxOaxB,GAyObyB,QAxOI,GAAApB,MAAc,KAAA,EAAA,IAyOlBgB,QAAS,GAAIhB,MAvObqB,YAAI,GAkPR9a,GAAG+a,UAxOK,WAyOJ/a,GAAGua,cAxOYE,QAAWza,GAAAua,cAAAE,QAAA,KAAA,GAAAhB,MAyO1BzZ,GAAG2a,YAxOSF,QAAOza,GAAAua,cAAAE,SA2OvBza,GAAG+a,YAEH/a,GAAGgb,MAxOC,WAyOAhb,GAAGib,OAAOpM,QAAS,CACP,IAAI4K,OArOpBzZ,GAAGkb,MAAO,WACNlb,GAAAmb,OAAUtM,QAAA,CAyOE,IAAI4K,OApOpBzZ,GAAAob,MAAS,WAyOLpb,GAAGqb,OAAOxM,QAAS,GAGvB7O,GAAGsb,MAxOQ,WAyOPtb,GAAGub,OAxOM1M,QAAS,GA2OtB7O,GAAGwb,QAAU,SAxOOC,EAAOC,EAAAC,GAyOvB3b,GAAGsa,GAAK,GAAIb,MAAKgC,EAxOMC,EAAAC,IA2O3B3b,GAAG4b,SAAW,eAxOc,aAAY,aAAc,YAAa,QAyOnE5b,GAAG6b,OAAS7b,GAAG4b,QAAQ,GAEvB5b,GAAG8b,iBAAmB,cAEtB9b,GAAGib,QACCpM,QAAQ,GAGZ7O,GAAGmb,QACCtM,QAAQ,GAEZ7O,GAAGqb,QACCxM,QAxOI,GA2OR7O,GAAGub,QACC1M,QAAQ,EAIZ,IAAIkN,IAAW,GAAItC,KACnBsC,IAASP,QAAQO,GAASC,UAxOU,EAyOpC,IAAIC,IAAgB,GAAIxC,KACxBwC,IAAcT,QAAQO,GAASC,UAxOU,GAyOzChc,GAAG2Z,SACCN,KAAM0C,GACNvlB,OAAQ,SAER6iB,KAAM4C,GACNzlB,OAAQ,4LA58EhBpC,QACKC,OAAO,2BAtORe,WAAG,aAAuB0iH,MAwsFlC,WACI,YAOA,SAASyK,GAAe93G,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EACvEjiB,EAASL,EAAQG,EAAuBu2E,GACxC,GAxOI1wE,GAAAC,IAyOJD,GAAGsU,SAxOS,KAyOZtU,EAAGgT,YAxOY,EAyOfhT,EAAG+S,WAxOS,EAyOZ/S,EAAGsS,WAxOS,EAyOZva,EAAW2c,SAxOQ,CAyOnB,IAAIxU,GAxOY/F,EAAuBgG,sBA0OvCH,GAAGwiH,KAAO,WACN,GAAIn/D,MACApoD,GACAw9G,WACIh2F,MAxOOziB,EAAAu4B,KAyOPkqF,OAxOQviH,EAAOG,OAyOfqiH,OAxOQzoH,EAAA,QAAA,GAAAwf,MAA2B,eA2O3C4pC,GAAIxrD,KAAKoD,EACT,IAAI80F,IACA75B,SAxOQ3zD,EAAG2zD,SAyOX8hD,UAxOQz1G,EAAIy1G,UAyOZliH,UAAWyM,EAxOCzM,UAyOZyiC,KAAM57B,KAAKqkB,UAAUqiC,GAEF,MAAnB9gD,EAAMy1G,YACNjoB,EAAK4yB,QAxOEpgH,EAAAivD,QACQ,MAwOfjvD,EAxOIy1G,YAyOJjoB,EAAK0xB,SAAWl/G,EAAM48G,SAvOT,KAAd58G,EAAAy1G,YACCjoB,EAAA6yB,mBAAuBrgH,EAASsgH,eAyOhB,GAAhBtgH,EAAM3M,OACN86E,EAAclH,gBAAgBumB,GAAMtxF,KAAK,SAAUC,GAC5B,MAAfA,EAAIlI,QAvOXuB,EAAA2I,YAAoB,UAAA,oBAAA,UACtB4b,EAAmBrN,QACnBjV,EAAe8F,GAAA,6BA0ON/H,EAAW2I,YAAY,QAAS,qBAC5BrJ,WAAW,EAvOtB+F,KAAA,QAGL,SAAAuD,GAyOQ5I,EAAW2I,YAAY,QAAS,qBAC5BrJ,WAAW,EAvOlB+F,KAAA,SA4OoB,GAAhBmF,EAAM3M,QAAgC,UAAjB2M,EAAM02G,QAChCvoC,EAAct4E,OAAO23F,GAAMtxF,KAAK,SAAUC,GAvO7B,MAAZA,EAAAlI,QACFuB,EAAe2I,YAAA,UAAA,wBAAA,UACf4b,EAAWrN,QAyOFjV,EAAO8F,GAAG,4BAtOjB/H,EAAA2I,YAAoB,QAAA,uBACtBrJ,WAAA,EACA+F,KAAA,QA2OI,SAAUuD,GAvOZ5I,EAAA2I,YAAuB,QAAA,uBACzBrJ,WAAA,EACA+F,KAAA,SAIkB,GAAhBmF,EAAA3M,QAAgB,GAAA2M,EAAA3M,OAClB86E,EAAAa,SAAAwe,GAAyBtxF,KAAA,SAAAC,GACJ,MAArBA,EAAAlI,QACHuB,EAAA2I,YAAA,UAAA,wBAAA,UAyOY4b,EAAkBrN,QAClBjV,EAAO8F,GAAG,mBAtOnB/H,EAAU2I,YAAA,QAAA,wBAyOGrJ,WAAW,EACX+F,KAAM,QArOnB,SAAAuD,GACH5I,EAAA2I,YAAA,QAAA,wBAyOYrJ,WAAW,EACX+F,KAAM,SApOlB,GAAAmF,EAAA3M,OAyOI86E,EAAcS,SAAS4e,GAAMtxF,KAAK,SAAUC,GACrB,MAAfA,EAAIlI,QAvOXuB,EAAiB2I,YAAA,UAAA,2BAAA,UACnB4b,EAA0BrN,QAC1BjV,EAAA8F,GAAA,6BA0OS/H,EAAW2I,YAAY,QAAS,yBAC5BrJ,WAAW,EAvOtB+F,KAAY,QA2OV,SAAUuD,GAvOZ5I,EAAA2I,YAAmB,QAAA,yBACrBrJ,WAAA,EACA+F,KAAA,SAKAszE,EAAAQ,MAAA6e,GAAuBtxF,KAAA,SAAAC,GAyOC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,UAvO/D4b,EAAWrN,SAGnBlX,EAAA2I,YAAA,QAAA,sBAyOiBrJ,WAAW,EAvOpB+F,KAAW,QA2OX,SAAUuD,GAvOlB5I,EAAgB2I,YAAA,QAAA,sBACfrJ,WAAa,EACJ+F,KAAI,UA8OjB4C,EAAG0R,OAxOC,WACA4K,EAAaiB,QAAA,+JAiGrBnpB,QACKC,OAxOO,2BAyOPe,WAxOO,iBAAiBmtH,MAkXjC,WACI,YAOA,SAxOQO,GAAe/qH,EAAayC,EAAAiQ,EAAcpQ,EAAAL,EAAAD,EAAAiY,EAyO9CJ,EAAwBzX,EAAuBu2E,EAAez2E,EAASM,GA+BvE,QAAS2X,KAvONlS,EAAAsS,WAAS,EACRtS,EAAAshB,eAAQC,SAAA,QAAAC,SAAA,IAyOFD,SAAU,sCAAuCC,SAAU,IAC3DD,SAAU,wBAAyBC,SAAU,IAvOpDD,SAAS,WAAAC,SAAA,IACRD,SAAQ,UAAAC,SAAA,IAAAD,SAAA,sBAAAC,SAAA,IAGRxP,EAAQI,mBAAAD,GAAA1T,KAAA,SAAAC,GAyOmB,MAAfA,EAAIlI,QACJwJ,EAAGqS,YAAc3T,EAAIhJ,KAvOzBsK,EAAAsS,WAAA,IA0OIva,EAAW2I,YAAY,QAAS,yBAA0B,WAC1DV,EAAGsS,WAAY,IArO/B,SAAiB3R,GACb5I,EAAgB2I,YAAI,QAAA,mBAAA,WACxBV,EAAcsS,WAAQ,IA2PtB,QAASywG,KApOL,GAqOA/iH,EAAGsS,WAAY,EACftS,EAAGgjH,aAAc,EAtOV,GAAPhjH,EAAO84G,aAyOHpoC,EAAcM,SAAShxE,EAAGg4G,UAAU3vF,KAAMroB,EAAG6hB,gBAAgB/rB,WAAW2I,KAAK,SAASC,GAC/D,MAAfA,EAAIlI,SACJwJ,EAAGmiB,YAAc3nB,EAAOyC,OAAOyB,EAAIhJ,MAAQojH,aAAgB,IAC3D94G,EAAGoiB,gBAAkB5nB,EAAOyC,OAAOyB,EAAIhJ,MAAQojH,aAAgB,IAC/D94G,EAAGgjH,aAAc,SAGtB,CACH,GAAI/nH,IAxOhBnF,UAAAkK,EAAA6hB,gBAAA/rB,UACYgjH,aAAA94G,EAAA84G,aACIf,UAAA/3G,EAAAg4G,UAAkB3vF,KA2OtBqoD,GAAcK,SAAS91E,GAAKwD,KAAK,SAASC,GAxOtB,MAARA,EAAAlI,QACHwJ,EAAA6sB,UAAAnuB,EAAAhJ,KACR,GAAAsK,EAAA6sB,UAAA1xB,QACKpD,EAAA2I,YAAA,OAAA,+CAAA,UAEC,GAAAV,EAAA84G,eACA94G,EAAAijH,cAAA,GAEEjjH,EAAAsS,WAAA,IAEPva,EAAY2I,YAAA,QAAA,yBAAA,UACTV,EAAAsS,WAAA,IAGD,SAAS3R,GACT5I,EAAU2I,YAAW,QAAA,mBAAA,UACrBV,EAAAsS,WAAkB,KA8O9B,QAzOQ29F,GAAgB99F,EAAA5T,GAChB4T,GACAnS,EAAAsS,WAAW,EACXV,EAAqB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GA0OE,MAAfA,EAAIlI,QAxONwJ,EAAA2hB,YAAajjB,EAAAhJ,KACdsK,EAAU2hB,YAAMxmB,OAAA,GACfd,EAAa8C,OAAA,UAAA,4BAAA6C,EAAA8C,KAAAqQ,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OAEb4C,EAAAsS,WAAa,EACd/T,GACCA,MAEExG,EAAI2I,YAAgB,QAAA,yBAAA,YACpBV,EAAAsS,WAAW,IA2OhB,SAzOK3R,GA0OJ5I,EAzOO2I,YAAA,QAAA,mBAAA,YA0OPV,EAAGsS,WAzOY,MA4OnBtS,EAAG6hB,gBAAkB,KACrB7hB,EAAGg4G,UAAY,MAgEvB,QAASkL,GAAWpwG,GAChB,GAAI7X,IAxOAi9G,WAAAplG,EA0OAojD,SAzOQpjD,EAAIojD,SA0OZ4iD,aAzOQ94G,EAAA84G,aA0ORf,UAzOQ/3G,EAAAg4G,UAAA3vF,KA0ORvyB,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9BykE,QAAQ,EACR9I,QAzOQ,EA4OZz3D,GAAO8F,GAAG,cACNpK,KAAMuF,IAId,QAASkoH,GAzOOrwG,GA0OZ,GAAI7X,IACAi9G,WAAYplG,EACZojD,SAAUpjD,EAAIojD,SACd4iD,aAAc94G,EAAG84G,aACjBf,UAAW/3G,EAAGg4G,UAAU3vF,KAxO7BvyB,UAASkK,EAAA6hB,gBAAY/rB,UACpB27D,QAAA,EA0OI8I,QAAQ,EAGZvgE,GAAO8F,GAAG,cAxOVpK,KAAAuF,IA8OJ,QA1OQg2E,GAAAn+D,GACP,GAAAH,GAAWtY,EAAAsY,QAAmB,UA2OvB,0CACItb,WAAW,EAzOlB+F,KAAA,MAEDuV,GAAKjT,OAAAjB,KAAA,WA2OD,GAAIxD,IAzOTi7D,SAAmBpjD,EAAEojD,SACrB8hD,UAAch4G,EAAAg4G,UAAgB3vF,KAE9BqoD,GAAcO,OAAAh2E,GAAAwD,KAAA,SAAAC,GACS,MAAvBA,EAAAlI,QACQuB,EAAc2I,YAAA,UAAA,uBAAA,UA2OTqiH,IACA/iH,EAAGsS,WAAY,GAxO5Bva,EAAe2I,YAAA,QAAA,4BAAA,WAEf,SAAcC,GACN5I,EAAU2I,YAAA,QAAA,mBAAA,cAdrB,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAvOpGrL,EAAGsU,SAAQtU,EAAAqU,gBAAW,GA0OtBrU,EAAGuU,YAxOa,EAyOhBvU,EAAGwU,qBAAuB,SAASC,GAC3BzU,EAAGuU,YAAcE,GAGzBzU,EAAGsS,WAxOK,EAyORtS,EAAGijH,cAAe,EAClBjjH,EAAG84G,aAAe9+G,EAAOvE,OAAOG,OAChCoK,EAAGgjH,aAAc,EAvOjBjrH,EAAW2c,SAAA,EAyOX1U,EAAGmiB,eACHniB,EAAGoiB,mBACHpiB,EAAGmjH,WAAaA,EAvOhBnjH,EAAGkjH,WAAQA,CA0OX,IAAInuG,GAAgB5a,EAAsBgG,uBACtCgS,EAAY4C,EAAcJ,gBAAgBxC,SAvO9CnS,GAAG+iH,eAAUA,EAyOb/iH,EAAGixE,OAxOSA,EAyOZjxE,EAAGiwG,sBAAwBA,EAtO3BjwG,EAAG88G,gBAAW3rB,KAAA,mBAA8B9oE,KAAA,MAAc8oE,KAAA,YAAa9oE,KAAA,OAAA8oE,KAAA,cAAA9oE,KAAA,MACvEnW,IAoQAlS,EAAGgU,OAxOO,WACN,GAAA/Y,IA0OI69G,aAAc94G,EAAG84G,aAKrB9+G,GAxOI8F,GAAI,cAyOJpK,KAAMuF,KAyEd+E,EAAG2iB,UAAY,WACX3iB,EAAGijH,cAAe,EAClBjjH,EAAGgT,YAzOY,EA0OfhT,EAAG84G,aAzOe,CA0OlB,IAAI79G,IACAnF,UAzOQkK,EAAA6hB,gBAAW/rB,UA0OnBgjH,aAzOQ94G,EAAA84G,aA0ORf,UAzOQ/3G,EAAAg4G,UAAU3vF,KA2OtBqoD,GAzOYK,SAAW91E,GAAAwD,KAAA,SAAYC,GACR,MAyOfA,EAzOIlI,QA0OJwJ,EAAG6sB,UAzOOnuB,EAAAhJ,KA0ONsK,EAAG6sB,UAAU1xB,QAAU,EACvB6E,EAAGijH,cAAe,EAvO1BlrH,EAAW2I,YAAY,OAAS,UAAA,UAE5BV,EAAAsS,WAAM,IA2ONva,EAAW2I,YAAY,QAAS,yBAA0B,UAC1DV,EAAGsS,WAAY,IAGvB,SAzOQ3R,GA0OJ5I,EAzOI2I,YAAW,QAAY,mBAAW,UA0OtCV,EAAGsS,WAzOC,KA4OhBtS,EAAG4iB,sBAzOwB,WA0OvB5iB,EAAGijH,cAzOa,EA0OhBjjH,EAAGgT,YAzOa,EA0OhBhT,EAAG84G,aAAe,CAClB,IAAI79G,IACAnF,UAzOGkK,EAAU6hB,gBAAK/rB,UA0OlBgjH,aAzOI94G,EAAW84G,aA0Off,UAzOQ/3G,EAAAg4G,UAAW3vF,KA2OvBqoD,GAAcK,SAAS91E,GAAKwD,KAAK,SAASC,GACf,MAAfA,EAAIlI,QACJwJ,EAAG6sB,UAAYnuB,EAAIhJ,KAxOhBsK,EAAA6sB,UAAa1xB,QAAA,EACxB6E,EAAcijH,cAAe,EAErBlrH,EAAW2I,YAAY,OAAW,UAAA,UAElCV,EAAAsS,WAAU,IAEVva,EAAW2I,YAAY,QAAS,yBAAyB,UA0OzDV,EAAGsS,WAzOY,IA4OvB,SAAS3R,GAxON5I,EAAU2I,YAAK,QAAA,mBAAA,UACdV,EAAAsS,WAAW,mLAoC3Ble,QACKC,OAAO,2BACPe,WAAW,kBAAmB0tH,MAqQvC,WACI,YAOA,SA1OIM,GAAgBrrH,EAAAyC,EAAAH,EAAAN,EAAA6gD,EAAA5oC,EA2OhBJ,EA1OmBzX,GA0QnB,QA1OI+X,KA2OA0oC,EA1OU08B,oBAAAnlE,GAAA1T,KAAA,SAAAC,GA2Oa,MAAfA,EAAIlI,QACJwJ,EAAGqjH,kBAAoB3kH,EAAIhJ,KAC3BsK,EAAGsjH,gBACH9oH,EAAOqI,QAAQ7C,EAAGqjH,kBAAmB,SAAU/f,GAzOlDA,EAAAt/C,MAAiBrnD,KAAAC,MAAA0mG,EAAAt/C,OACnBxpD,EAAYqI,QAAArI,EAAAmI,KAAA2gG,EAAAt/C,OAAA,SAAAj9B,GACEvsB,EAAA3F,SAAAmL,EAAAsjH,aAAAv8F,IACjB/mB,EAAAsjH,aAAAzrH,KAAAkvB,OA8OQ/mB,EAAGsS,WA1OI,GA4OPva,EA1OO2I,YAAc,QAAA,yBAAA,kBA4O1B,SAAUC,GACT5I,EA1OG2I,YAAA,QAAA,mBAAA,mBAyPX,QAASuvG,GA1Oc99F,EAAY5T,GA2O3B4T,EACAP,EA1OuB8P,eAAYvP,GAAS1T,KAAA,SAAAC,GAC7B,MA0OPA,EA1OIlI,QA2OJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACjBsK,EAAG2hB,YAAYxmB,OAAS,GAzOhCd,EAAc8C,OAAA,UAAA,4BAAA6C,EAAArL,SAAAwe,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OAEV4C,EAAGsS,WAAY,EA2OX/T,GACAA,KAEJxG,EAAW2I,YAAY,QAAS,yBAA0B,aAxOlE,SAAWC,GACR5I,EAAY2I,YAAA,QAAA,mBAAA,eA6OfV,EAAG2hB,eACH3hB,EAAGrL,SA1OSktB,gBAAe,MAsBnC,QAAG0hG,KACC,GAAGC,GAAAxjH,EAAe,MAAA7E,OAAA,EACfm5D,GAAA,CACe3+D,SAAfqK,EAAArL,SAAA0yD,MAAe,MAAArnD,EAAArL,SAAA0yD,OACdiN,GAAM,GAENA,GACAt0D,EAAA8uG,MAAAj3G,MA2OIgxB,GAAI26F,EAzOZC,SAAczjH,EAAArL,SAAc0yD,OA4OxBiN,GA1OQ,IA6ORj6D,EAAQ8C,OA1OO,UAAA,qBAAA9F,WAAA,EAAA+F,KAAA,OA2Ofk3D,GAAQ,GAEZt0D,EAAGrL,SA1OS0yD,KAAG,KA6OnB,QAASq8D,GA1OU5gH,GA2Of9C,EAAG8uG,MAAMx5E,OAAOxyB,EAAM,GAG1B,QAASkR,KACLhU,EAAGgT,YA1OQ,EA2OXhT,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAGnB,QA1OOC,KACH1X,EAAGgT,YAAA,EACHhT,EAAArL,YA2OAqL,EAAG8uG,SAEP,QA1OQp9F,KA2OJ,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAzO9B,yFACQtb,WAAQ,EA2OR+F,KA1OI,MA6OZuV,GAAQjT,OAAOjB,KA1OI,WA2OfuB,EAAGgT,YA1OS,EA2OZhT,EAAGrL,YACHqL,EAAG8uG,WAOX,QAAS6U,GA1OchvH,GA2OnBqL,EAAGwX,aA1OQ,EA2OXxX,EAAGyX,WAAY,EACfzX,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGrL,SAAWP,QAAQ8e,KAAKve,EAG3B,KA1OI,GAAAkjB,KAAA7X,GAAYqS,YACZrS,EAAAqS,YAAcwF,GAAA1F,YAAAxd,EAAAwd,YACdnS,EAAArL,SAAcwe,gBAAGnT,EAAAqS,YAAAwF,GA8OrBo4F,GA1OYt7G,EAAAwd,UAAA,WA2OR,IAAK,GAAI0F,KAAK7X,GAAG2hB,YACT3hB,EAAG2hB,YAAY9J,GAAG/hB,YAAcnB,EAASmB,YAzO3CkK,EAAArL,SAAcktB,gBAAA7hB,EAAA2hB,YAAA9J,MAK5B7X,EAAA8uG,SACIt0G,EAAI+7B,MAAM5hC,EAAAqvD,MAAA,SAAA4/D,EAAA18D,GACN,GAAAs8D,GAAYxjH,EAAA,MAAA7E,OAAA,CACZ6E,GAAA8uG,MAAAj3G,MACAgxB,GAAA26F,EACAC,SAAcG,MA+OtB,QAASlsC,GAAoB/iF,GAzOzB,GAAAge,GAAUtY,EAAAsY,QAAc,UACpB,4CA2OItb,WAAW,EACX+F,KAAM,MAvOlBuV,GAASjT,OAAOjB,KAAK,WACbm8C,EAAkB88B,oBAAQ/iF,EAAAmvD,YAAArlD,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,QACIuB,EAAW2I,YAAA,UAAA,uBAAA,kBACXwR,KAEAna,EAAY2I,YAAW,QAAA,8BACjBrJ,WAAA,EACN+F,KAAc,UA8OnB,cAKP,QAASymH,GA1OkBlvH,GA2OvB,GAAIqL,EAAG8uG,MAAM3zG,OAAS,EAAG,CACrBxG,EA1OGmB,UAAckK,EAAArL,SAAAktB,gBAAA/rB,SA2OjB,IA1OIsxD,KA2OJ,KAAK,GAAIlsD,KAAK8E,GAAG8uG,MACb1nD,EAAS,QAAUxgD,SAAS1L,GAAK,IAAM8E,EAAG8uG,MAAM5zG,GAAGuoH,QAGvD9uH,GAASqvD,MAAQrnD,KAAKqkB,UAAUomC,GAC3BpnD,EAAG+S,WAUJ6nC,EAAqB68B,kBAAkB9iF,GAAU8J,KAAK,SAAUC,GA1OvE3G,EAAkB2I,YAAY,UAAQ,wBAAgB,yBAC3DwR,IACSlS,EAAAgT,YAAA,EA4OOhT,EAAG+S,WAAY,GA1O5B,SAAqBpS,GACV5I,EAAG2I,YAAgB,QAAA,iCAE9BgX,MA0NSkjC,EAAqB48B,iBAAiB7iF,GAAU8J,KAAK,SAAUC,GAzOtE3G,EAAA2I,YAAA,UAAA,sBAAA,yBACTwR,IA2OoBlS,EAAGgT,YAAa,GACjB,SAAUrS,GA1O7B5I,EAAA2I,YAAA,QAAA,iCAEgBgX,SAyPJrd,GAAQ8C,OAAO,UAAW,4BAA8B9F,WAAW,EAAM+F,KAAM,OApPvF,GA1OI4C,GAAGC,IA4OPD,GAAGqU,kBA1OiBhJ,MAAA,IAAAA,MAAyB,KAAUA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2OvDrL,EAAGsU,SA1OOtU,EAAAqU,gBAAsB,GA4OhCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAzOhCzU,EAAAuU,YAAeE,GA8OnBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGyzF,YACH17F,EAAW2c,SAAU,EAErB1U,EAAGujH,WA1OSA,EA2OZvjH,EAAG0jH,WA1OYA,EA2Of1jH,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAG03E,oBAAsBA,EACzB13E,EAAG2jH,kBAAoBA,EAzOvB3jH,EAAG6jH,kBAAoBA,EA2OvB7jH,EAAGiwG,sBA1OWA,CA2Od,IAAI99F,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGwX,aA1OK,EA2ORxX,EAAGyX,WAAY,EACfvF,IAyBAF,EA1OYI,mBAAcD,GAAU1T,KAAA,SAAAC,GA2Ob,MAAfA,EAAIlI,QAzOJwJ,EAAAqS,YAAc3T,EAAAhJ,KA2OdsK,EAAGsS,WA1OS,GA4OZva,EAAW2I,YA1OQ,QAAU,yBAAa,kBA4O/C,SAAUC,GACT5I,EAAW2I,YA1OY,QAAA,mBAAmB,mBAsQ9CV,EAAG8uG,SAEH9uG,EAAG8jH,SAAW,SA1OKhhH,GA2Of9C,EAAG+jH,MAAO,EACV/jH,EAAGrL,SA1OI0yD,KAASvkD,EAAK2gH,SA2OrBzjH,EAAGgkH,IA1OKlhH,EAAA+lB,IA4OZ7oB,EAAGikH,SAAW,WACVjkH,EAAG+jH,MA1OI,CA2OP,KA1OI,GAAG7oH,KAAA8E,GAAA8uG,MACA9uG,EAAA8uG,MAAA5zG,GAAY2tB,KAAA7oB,EAAAgkH,MA2OXhkH,EAAG8uG,MAAM5zG,GAAGuoH,SAAWzjH,EAAGrL,SAAS0yD,KAE3CrnD,GAAGrL,SAAS0yD,KAAO,mJA7G3BjzD,QAzOIC,OAAG,2BACHe,WAAA,oBAAAguH,MA0eR,WACI,YAOA,SA3OOc,GAAwBnqH,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA4X,EAAAzX,GAkQ3B,QAASgqH,KACLvyG,EA3OkBqQ,yBAAA9P,GAAA1T,KAAA,SAAAC,GACH,MAAXA,EAAAlI,SA4OIwJ,EAAGokH,uBAAyB1lH,EAAIhJ,KAEhCsK,EAAGsS,WAAY,IAzOvB,SAAQ3R,GACJ5I,EAAG2I,YAAkB,QAAA,mBAAA,0BA+O7B,QAAS6wG,KA1ON3/F,EAAe40D,yBAAAr0D,GAAA1T,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,SA4OHwJ,EAAGqkH,oBAAsB3lH,EAAIhJ,KAzOhCsK,EAAAsS,WAAA,IA6OF,SA3OC3R,GA4OA5I,EA3OQ2I,YAAe,QAAK,mBAAA,0BA1CpC,GAAIV,GAAAC,IAEJD,GAAGqU,kBAAYhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACfrL,EAAAsU,SAAAtU,EAAAqU,gBAAA,GA6OCrU,EAAGuU,YAAc,EA1OlBvU,EAAAwU,qBAAgB,SAAAC,GA4ObzU,EA3OCuU,YAAAE,GA+OJzU,EAAGgT,YA3OS,EA4OZhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHxkB,EAAGyxG,SAAU,EACbzxG,EAAGwxG,cAAe,EAClBz5G,EAAW2c,SAAU,CACrB,IAAIvC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EgyG,KACA5S,IA0BAvxG,EAAG+vG,YAAc,SAAUj9F,GACvB,GAAIpd,IACA6kE,QA3OQ,EA4OR12C,QAAS/Q,EAEb9Y,GAAO8F,GAAG,mBACNpK,KAAMA,KAGdsK,EAAG2vG,YAAc,SAAU78F,GACvB,GAAIpd,IA1OAqd,WAAG,EACH68F,SAAG,EA4OH/rF,QAAS/Q,EACT2+C,QAAQ,EAGZz3D,GAAO8F,GAAG,mBA1OXpK,KAAQA,KA+OXsK,EAAG2iB,UA3OI,WACHwhG,IA4OInkH,EAAGokH,uBAAuBjpH,OAAS,GA1OxCd,EAAW8C,OAAA,UAAY,kBAAA9F,WAAA,EAAA+F,KAAA,OAEtB4C,EAAAgT,YAAc,EA4OdhT,EAAGyxG,SA3OQ,EA4OXzxG,EAAGwxG,cA3Oc,IA8OjBxxG,EAAGgT,YAAa,EAChBhT,EAAGyxG,SAAU,EA1OjBzxG,EAAAwxG,cAAsB,IA+OtBxxG,EAAGsxG,oBA3Oa,WA4OZC,IA1OIvxG,EAAAqkH,oBAAOlpH,OAAA,GACPd,EAAG8C,OAAW,UAAA,kBAAA9F,WAAA,EAAA+F,KAAA,OA4OlB4C,EAAGgT,YA3OS,EA4OZhT,EAAGwxG,cA3Oe,EA4OlBxxG,EAAGyxG,SAAU,IAEbzxG,EAAGgT,YAAa,EAChBhT,EAAGwxG,cA3OE,EA4OLxxG,EAAGyxG,SA3OS,IA+OhBzxG,EA3OC+xB,KAAA,WA4OG/xB,EAAGgT,YAAa,iHAzGxB5e,QA1OIC,OAAG,2BACHe,WAAG,yBAAsB8uH,MAsVjC,WACI,YAOA,SA3OQI,GAAgBvqH,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAAyX,EA4OpBI,EA3OOH,EAAW+oC,EAAAmiC,EAAAv7B,GA2SlB,QAAStvC,KAGLlS,EAAGu7C,eACCC,aAAc,MACdnzB,KAAM,MAzOPmzB,aAAY,UA4OXnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAAM,MAGV00D,EA3OyBC,mBAAYv+E,KAAA,SAAgBC,GAClC,MAAXA,EAAAlI,SACJwJ,EAAKukH,kBAAmB7lH,EAAAhJ,KACpBsK,EAAAsS,WAAS,IA6Od,SAAS3R,GA1OR5I,EAAS2I,YAAa,QAAU,mBAAA,oBA8OpCq8E,EA3OuByB,uBAAuBrsE,GAAA1T,KAAA,SAAuBC,GACzD,MA2OJA,EA3OIlI,SA4OJwJ,EAAGwkH,eA3OiB9lH,EAAAhJ,KA4OpBsK,EA3OGsS,WAAU,IA6OlB,SAAS3R,GACR5I,EA3OI2I,YAAA,QAAA,mBAAA,oBA8ORsR,EA3OYI,mBAAWD,GAAY1T,KAAW,SAAAC,GAClC,MA2OJA,EA3OIlI,SA4OJwJ,EAAGqS,YA3OI3T,EAAahJ,KA4OpBsK,EAAGsS,WA3OI,IA6OZ,SA3OS3R,GA4OR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QA3OS+jH,GAAA3xG,GA4OL9S,EAAG0kH,WA3OS,EA4OZ1kH,EAAGgT,YAAa,EAChBhT,EAAG24C,YAAc7lC,EAAI6lC,YACrB34C,EAAG2kH,eAAiB7xG,EAAIskB,WACxBp3B,EAAG4kH,UAAY9xG,EAAI8xG,SACnB,KAAK,GAAI/sG,KAAK7X,GAAGqS,YACTrS,EAAGqS,YAAYwF,GAAG1F,YAAcW,EAAIX,YA1O3CnS,EAAA6kH,SAAA1xG,gBAAAnT,EAAAqS,YAAAwF,GAGT4J,GAAA3O,EAAAX,UAAA,WACY,IAAA,GAAA0F,KAAA7X,GAAA2hB,YACI3hB,EAAA2hB,YAAA9J,GAAA/hB,YAA0Bgd,EAAAhd,YA6OtBkK,EAAG6kH,SAAShjG,gBAAkB7hB,EAAG2hB,YAAY9J,GAIrDiuC,GAAqBhzC,EAAIhd,UAAW,WA3OxC,IAAA,GAAA+hB,KAAoB7X,GAAA68C,eACN78C,EAAA68C,eAAgBhlC,GAAAisC,aAAAhxC,EAAAgxC,aA6Od9jD,EAAG6kH,SAASxwF,SAAWr0B,EAAG68C,eAAehlC,MAKrDulE,EAA2BtqE,EAAIhd,UAAWgd,EAAIgxC,cAnOtD,QAAIghE,GAAY3tG,GAChB4lE,EAAA+B,2BAAA3sE,GAAA1T,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QA6OYwJ,EAAG+kH,gBAAkBrmH,EAAIhJ,KA3O5BsK,EAAAglH,eAAgBxqH,EAAA++C,OAAAv5C,EAAA+kH,gBAAA,eACrB/kH,EAAAsS,WAAuB,EACftS,EAAAilH,SAAI,EACJjlH,EAAGklH,aAAA,EA6OHllH,EAAGmlH,cAAe,EA3OlBnlH,EAAGolH,UAAA,GAERrtH,EAAe2I,YAAA,QAAA,yBAAA,kBA8OVyW,GACAA,KACL,SAASxW,GA3OhB5I,EAAS2I,YAAqB,QAAA,mBAAA,oBAqU9B,QA7OQm3C,KA8OJhmC,EA7OGimC,sBAAAr5C,KAAA,SAAAC,GACU,MAATA,EAAAlI,QA8OIwJ,EAAG+3C,kBAAoBr5C,EAAIhJ,KA5OjCsK,EAAS+3C,kBAAAv9C,EAAA++C,OAAAv5C,EAAA+3C,kBAAA,eA8OH/3C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBA3OnE,SAAAC,GACI5I,EAAA2I,YAAc,QAAA,mBAAA,oBAgRrB,QAAS+gB,GAAoBtP,EAAWgF,GA5OrChF,GACAnS,EAAA6kH,SAAAhjG,gBAAuB,KACvB7hB,EAAA2hB,eA8OK3hB,EAAG6kH,SAASxwF,SAAW,KA5O3Br0B,EAAA68C,kBACA78C,EAAA4mD,eACJ5mD,EAAAmgG,sBA8OQngG,EAAGmgG,mBAAqB,KA5OhCngG,EAASwgG,yBA8ODxgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAG6gG,kBA5OJ7gG,EAAA6gG,eAAgB,KACf7gG,EAAAi+C,iBAAc,KACdj+C,EAAAihG,kBACDjhG,EAAAihG,eAAA,KACCjhG,EAAAigG,yBACAjgG,EAAAsgG,4BACDtgG,EAAA2gG,qBACC3gG,EAAA+gG,qBACA/gG,EAAAqlH,YA8OAzzG,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QA5OhBwJ,EAAA2hB,YAAyBjjB,EAAAhJ,MACbsK,EAAA2hB,YAAgBxmB,OAAA,GACjBd,EAAA8C,OAAoB,UAAI,oDACxB9F,WAAY,EA8OH+F,KAAM,OAxO1B+Z,IACYnX,EAAAsS,WAAW,GAEZjY,EAAAwH,MAAY,QAAA,yBAAA,mBAEpB,SAASlB,GACRtG,EAAWwH,MAAA,QAAY,mBAAS,sBAGpC7B,EAAA6kH,SAAehjG,gBAAmB,KAC9B7hB,EAAA2hB,eA8OA3hB,EAAG6kH,SA7OIxwF,SAAc,KA8OrBr0B,EAAG68C,kBACH78C,EAAG4mD,eA5OJ5mD,EAAAmgG,sBACCngG,EAAAmgG,mBAAuB,KA8OvBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAG6gG,kBA5OX7gG,EAAS6gG,eAAe,KACjB7gG,EAAAi+C,iBAAY,KACZj+C,EAAAihG,kBACAjhG,EAAAihG,eAAkB,KAClBjhG,EAAAigG,yBACAjgG,EAAAsgG,4BACHtgG,EAAK2gG,qBACD3gG,EAAA+gG,qBA8OA/gG,EAAGqlH,aAIX,QA7OIv/D,GAAwBhwD,EAAWqhB,GA8OnC,GA7OIrhB,EAAS,CA8OTkK,EAAG6kH,SA7OQxwF,SAAY,KA8OvBr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KA5OxBngG,EAAAwgG,yBA8OAxgG,EAAGwgG,sBA7OkB,KA8OrBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eA7OY,KA8Of7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGigG,yBA5OHjgG,EAAAsgG,4BA8OAtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIpqH,IACAnF,UAAWA,EACXykE,OAAQ,EACR+qD,OAAQ,EA3OpBvoC,GAAyBQ,4BAAUtiF,GAAAwD,KAAA,SAAAC,GACN,MAAzBA,EAAAlI,QACYwJ,EAAA68C,eAAgBn+C,EAAAhJ,MACjBsK,EAAA68C,eAAsB1hD,OAAA,EACtBd,EAAA8C,OAAiB,UAAc,6DAC/B9F,WAAY,EACZ+F,KAAU,OAIV4C,EAAAmmD,eAAA,EAGHhvC,IACAnX,EAAAsS,WAAA,GAEJjY,EAAWwH,MAAA,QAAY,yBAA6B,mBA+OjD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,wBA1O/C7B,GAAA6kH,SAAAxwF,SAAgB,KA8OhBr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBA7OkB,KA8OrBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBA7Oe,KA8OlBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eA7OK,KA8OR7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eA7OI,KA8OPjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EA7OGqlH,YAmPX,QAAS3W,GAAc5qD,EAAYhuD,EAAWyI,GAC1C,GAAIulD,GAAchuD,EAAW,CA5O9BkK,EAAAmgG,sBACKngG,EAAAmgG,mBAAY,KACZngG,EAAAwgG,yBA8OAxgG,EAAGwgG,sBA7OsB,KA8OzBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eA7OI,KA8OP7gG,EAAGi+C,iBA7OmB,KA8OtBj+C,EAAGihG,kBACHjhG,EAAGihG,eA7Oa,KA8OhBjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,YACHr+D,IACAhnD,EA7OG2uG,QAAAhyG,KAAAC,MAAAoD,EAAA6kH,SAAAxwF,SAAA2vB,OACHhkD,EAAG4uG,YAAI5uG,EAAA2uG,QAAcE,KACrB,IAAG5zG,IA8OC6oD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjChuD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCykE,OAAQ,EAEZwiB,GAAyBS,yBAAyBviF,GAAKwD,KAAK,SAASC,GA5O1E,GAAwB,MAAxBA,EAAelI,OAAS,CACnBwJ,EAASq+C,OAAA1hD,KAAAC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,KACT,IAAAoD,KACO5sD,GAAAqI,QAAU7C,EAAAq+C,OAAA,SAAAwI,GACV,GAAA/N,IACAuO,KAAeR,EAAAQ,KACfI,SAAWZ,EAAAH,OACFI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAELM,GAAOvvD,KAAAihD,KAEX94C,EAAA4mD,YAAcQ,MAEdrvD,GAAA2I,YAAkB,QAAc,yBAAuB,eAE3D,SAAAC,GACA5I,EAAA2I,YAAiB,QAAW,mBAAA,oBAgP/BsmD,KACAhnD,EAAGmgG,sBA5ORngG,EAAQmgG,mBAAW,KACfngG,EAAIwgG,yBACJxgG,EAAIwgG,sBAAmB,KACvBxgG,EAAI6gG,kBACJ7gG,EAAA6gG,eAAU,KACV7gG,EAAAi+C,iBAAc,KACdj+C,EAAAihG,kBACAjhG,EAAAihG,eAAW,KACdjhG,EAAAigG,yBA8OIjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,YAMX,QAASj/D,GA7OMc,GA+OX,GAAIA,EA7OIo6C,kBAAe,CA8OnB,GAAI96C,GA7OG,QAAAC,EAAAS,EAAAO,UAAA,GACHd,EAAWnsD,EAAY6P,KAAArK,EAASq+C,QA8OhCqI,OAAUF,GA3OHhsD,GAAAgnG,MAAYxhG,EAAAq+C,OAAS,SAAAwI,GA8O5B,MAAOJ,GAAUI,EAAEH,SAEvBlsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAASC,GA5O7C,GAAAA,EAAeY,WAAAjB,EAAA,CAEV,GAAYi7C,GAAAjnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SA8OJz6C,GAAEC,OAASu6C,EAAgB7mG,EAAOyC,OAAO0pD,EAAeG,OAAQ,SAASD,GA5OrF,MAAArsD,GAAA3F,SAAA4sG,EAAA56C,EAAAvrB,aAqQQt7B,EAAGgiG,UAAY96C,EAAKo6C,iBACpB,IAAIjvE,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGgiG,UA5OpB3vE,EAAAx6B,KAAAmI,EAAAgiG,UAAoB9mG,GAAW6rD,OAE7B/mD,GAAA+mD,OAAS10B,EAAAqB,OAET6xF,EAASvlH,EAAW6kH,SAAAhjG,gBAAA/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA+mD,WAsP/B,QA7OQy+D,GAAGt+D,GA8OP,GA7OIA,EAAGu+D,kBAAiB,CACpB,GAAGj/D,GAAA,QAAiBC,EAAAS,EAAAO,UAAA,GACjBd,EAAAnsD,EAAwB6P,KAAArK,EAAA6vF,iBACxBpoC,SAAAjB,GAEHhsD,GAAGqI,QAAA7C,EAAA0lH,iBAAoB,SAAA7+D,GACpBA,EAAAY,WAAWjB,IACdK,EAAAC,OAAAtsD,EAAuByC,OAAA0pD,EAAeG,QAC1BxrB,SAAW4rB,EAAKu+D,kBAAA1+D,gBA2P5BC,KAMR,QA7OQA,KA8OJxsD,EA7OOqI,QAAA7C,EAAS0lH,iBAAW,SAAAx+D,GACvBA,EAAGy+D,kBAAiB,OAkP5B,QA7OQC,GAAG1+D,GA+OPlnD,EAAG2kH,eA7OI,EA+OP,IA7OIpjB,GAAGskB,EAAArkB,MAAAxhG,EAAiB6vF,gBAAA,SAAAhpC,GACpB,MAAGjgD,UAAAigD,EAAAY,SAAiBnkC,UAAA,MA8OrBmkC,QAEH,IA7OIP,EAAGO,WAAA85C,EACHvhG,EAAG2kH,eAAAnqH,EAAoB8xB,IAAA46B,EAAAu+D,kBAAA,UAAA/xF,KAAA,SACpB,CA8OH,GACIoyF,GAAmB5+D,EAAKu+D,iBAC5BjrH,GAAOqI,QAAQ7C,EAAG6vF,gBAAiB,SAAShpC,GA5O3C,GAAAA,EAAAY,WAAqB85C,EACtBvhG,EAAW2kH,eAAAnqH,EAAA8xB,IAAAw5F,EAAA,UAAApyF,KAAA,SAER,IAAA+yB,EAAiBI,EAAAY,WAAAhB,EAAAS,EAAAO,UAAA,CACjB,GAAAs+D,GAAcvrH,EAAA8xB,IAAAw5F,EAAA,UACdE,EAAqBxrH,EAAA6P,KAAArK,EAAA6vF,iBAAApoC,SAAA,QAAAhB,EAAAI,EAAAY,UAAA,IACrBq+D,GAAqBtrH,EAAAyC,OAAA+oH,EAAAl/D,OAAA,SAAAm/D,GACrB,MAAAzrH,GAAwB3F,SAAAkxH,EAAAE,EAAA3qF,eAmP/Bt7B,EAAG4xG,OA7OI1qD,EAAAu+D,kBAAiB1+D,OA8OxBw+D,EA7OOvlH,EAAA6kH,SAAAhjG,gBAAwB/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA4xG,QAiPnC,QA7OQnrD,GAAGc,GA8OP,MA7OI3gD,UAAU2gD,EAAAjkC,UAAA,IAgPlB,QAAS+9E,GA7OWj6C,GAuPhB,MArPIA,IAAAA,EAAAjsD,OAAyB,GA8OzBX,EA7OIqI,QAAQukD,EAAW,SAAKP,GA8OxB,GA7OO,GAAHA,EAAAvrB,SAAG,CACH,GAAI2mE,GAAIznG,EAAe6P,KAAAw8C,EAAAq7C,aAAYn7C,OAAAF,EAAAvrB,WAAA+rB,IA8OnCR,GAAEoG,UA7OUpG,EAAAm0D,QAAO,MAAW/Y,KAiPnC76C,EAsBX,QA7OQm+D,GAAGzvH,EAAiBguD,EAAAiD,GA8OxB/mD,EAAGwgG,yBACHxgG,EAAGwgG,sBA7OqB,KA8OxBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eA7OI,KA8OP7gG,EAAGi+C,iBA7OI,KA8OPj+C,EAAGihG,kBACHjhG,EAAGihG,eA7OI,KA8OPjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIpqH,IA5ORnF,UAASA,EACDguD,WAAAA,EACA1sB,WAAG2vB,EACHwT,OAAG,EA+OPwiB,GA7OOU,4BAAwBxiF,GAAAwD,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QACAwJ,EAAAigG,sBAAiBvhG,EAAAhJ,KAOjBsK,EAAAsS,WAAA,GAEHva,EAAA2I,YAAA,QAAA,yBAAA,mBA+OD,SA7OIC,GACH5I,EAAU2I,YAAA,QAAA,mBAAA,oBAkPlB,QA7OQuqD,KA8OJ,GAAIjrD,EAAGmgG,mBA7OoB,CA8OvBngG,EAAG6gG,kBACH7gG,EAAG6gG,eA7OS,KA8OZ7gG,EAAGi+C,iBA7OY,KA8Ofj+C,EAAGihG,kBACHjhG,EAAGihG,eA7Oa,KA8OhBjhG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIhzF,KACJ,KAAK,GA7OGn3B,KAAG8E,GAAAmgG,mBA8OP9tE,EAAIx6B,KA7OGmI,EAAAmgG,mBAAAjlG,GAAAghD,WA+OXl8C,GAAGyjD,SAAWpxB,EAAIqB,MAClB,IA7OGz4B,IACCihD,WAAWl8C,EAAAyjD,SA8OX3tD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UA5OxCguD,WAAA9jD,EAAA6kH,SAAAxwF,SAAAyvB,WACH1sB,WAAAp3B,EAAA+mD,OACGwT,OAAA,EAEHwiB,GAAGW,+BAAwBziF,GAAAwD,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QACAwJ,EAAAsgG,yBAAiB5hG,EAAAhJ,KACjBsK,EAAAsS,WAAiB,GAEjBva,EAAA2I,YAAiB,QAAA,yBAAA,sBAEjB,SAAAC,GACA5I,EAAA2I,YAAA,QAA2B,mBAAA,2BAG9BV,GAAG6gG,kBA8OH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGsgG,4BA5OXtgG,EAAS2gG,qBA8OD3gG,EAAG+gG,qBA5OH/gG,EAAAqlH,YAkPR,QA7OQa,KA8OJ,GAAIlmH,EAAGwgG,sBA7OoB,CA8OvBxgG,EAAGi+C,iBAAmB,KA5OtBj+C,EAAAihG,kBA8OAjhG,EAAGihG,eA7OO,KA8OVjhG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIhzF,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGwgG,sBACbnuE,EAAIx6B,KAAKmI,EAAGwgG,sBAAsBtlG,GAAG22B,cAEzC7xB,GAAGwjD,YAAcnxB,EAAIqB,MACrB,IAAIz4B,IACAihD,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,YAClB1tD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC1sB,WAAYp3B,EAAG+mD,OACfwT,OAAQ,EAEZwiB,GAAyBY,wBAAwB1iF,GAAKwD,KAAK,SAASC,GAC7C,MAAfA,EAAIlI,OACJwJ,EAAG2gG,kBAAoBjiG,EAAIhJ,KAE3BqC,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,GAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eA7OW,KA8OdjhG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,YAKX,QAASc,KACL,GAAInmH,EA7OG6gG,eAAA,CA8OH7gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGqlH,WACH,IAAIhzF,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG6gG,eA5OhBxuE,EAAAx6B,KAAAmI,EAAA6gG,eAA0B3lG,GAAA8kB,OAE3BhgB,GAAAggB,OAAIqS,EAAWqB,MACf,IAAIz4B,IACAihD,WAAYl8C,EAAAyjD,SA8OZ5xB,cAAe7xB,EAAGwjD,YA5OtBxjC,OAAOhgB,EAAQggB,OACXlqB,UAAMkK,EAAA6kH,SAAahjG,gBAAU/rB,UA8O7BguD,WA7OM9jD,EAAS6kH,SAAOxwF,SAAOyvB,WA8O7B/E,SA7OQ/+C,EAAAi+C,iBAAiB51B,KA8OzB+O,WAAYp3B,EAAG+mD,OACfwT,OAAQ,EAEZwiB,GAAyBa,wBAAwB3iF,GAAKwD,KAAK,SAASC,GAC7C,MAAfA,EAAIlI,QACJwJ,EAAG+gG,kBAAoBriG,EAAIhJ,MACtBsK,EAAG+gG,kBAAkB5lG,OAAS,GAC/Bd,EAAQ8C,OAAO,UAAW,iDACtB9F,WAAW,EACX+F,KAAM,QAzOtBrF,EAAA2I,YAAA,QAAA,yBAAA,eA+OG,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA1OhEV,GAASihG,kBACLjhG,EAAOihG,eAAW,KACdjhG,EAAA+gG,qBA8OA/gG,EAAGqlH,YA+CX,QAASjoC,GAA2BtnF,EAAWguD,GAE3C,GADA9jD,EAAGomH,eAAgB,EACftiE,EAAY,CA5OhB,GAAOzxB,KA8OH,KAAK,GAAIn3B,KAAK8E,GAAGihG,eACb5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d;AAElC/Y,EAAGi4B,OAAS5F,EAAIqB,OAChB1zB,EAAGqlH,YA5ORrlH,EAAAqmH,YAAY,EACZrmH,EAAQsmH,UAAW,EAEdtmH,EAAGumH,WAAY,EAKpBvmH,EAAAqyB,MACK,IAAAp3B,IACGnF,UAAOA,EA8ONguD,WAAYA,EACZ1sB,WAAYp3B,EAAG+mD,OACf9uB,OAAQj4B,EAAGi4B,OACX0gB,YAAa34C,EAAG24C,YA1OrB34C,GAAAsS,WAAA,EACAyqE,EAAwBK,2BAAAniF,GAAAwD,KAAA,SAAAC,GACxB,GAAiB,MAAjBA,EAAAlI,OAAiB,CACjBwJ,EAAAqlH,SAAiB3mH,EAAAhJ,KAAA8wH,WACjBxmH,EAAAymH,SAAmB,CACnB,KAAA,GAAiBvrH,KAAA8E,GAAAqlH,SACjBrlH,EAAAqlH,SAAiBnqH,GAAA8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBACjB7yG,EAAAqlH,SAAwB,GAAAqB,SAAA,EACxB1mH,EAAAqlH,SAA2BnqH,GAAAyrH,aAC3B3mH,EAAoBqlH,SAAAnqH,GAAAyrH,WAAA,GAAAltG,MAAAzZ,EAAAqlH,SAAAnqH,GAAAyrH,YAEpB,KAAW,GAAAzrH,KAAA8E,GAAAqlH,SACJrlH,EAAAqlH,SAAAnqH,GAAA0rH,OAAA,CAGM5mH,GAAAqlH,SAAAlqH,OAAA,GACJ6E,EAAA6mH,mBAAA,EA8OI7mH,EAAG8mH,sBAAuB,EA5O1C9mH,EAAA+mH,aAAyBroH,EAAAhJ,KAAAsxH,SACbhnH,EAAAinH,eAAgBvoH,EAAAhJ,KAAAwxH,QACjBlnH,EAAAmnH,YAAA,EA8OKnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,EAChBrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,IACvBvnH,EAAGknH,QAAmC,IAAxBlnH,EAAGsnH,SAAS1tE,SAAkBj9C,KAAKC,MAAMoD,EAAGsnH,SAAS1tE,WAAcA,aACjF55C,EAAG65C,QAAkC,IAAvB75C,EAAGsnH,SAASztE,QAAiBl9C,KAAKC,MAAMoD,EAAGsnH,SAASztE,UAAaK,YA3OpFl6C,EAAYsnH,SAAA1nC,SACZ,GAAA5/E,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBA+OaznH,EAAGmnH,YAAa,EA5OvBnnH,EAAAonH,UAAA,EACFpnH,EAAYqnH,YAAS,GA8O2B,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBACxDznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GA5OR,GAA3BrnH,EAA2BsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBACzBznH,EAAoBmnH,YAAA,EACHnnH,EAAAonH,UAAA,EACApnH,EAAAqnH,YAAA,MAOjBrnH,EAAW0nH,YAAA,EACJ1nH,EAAAomH,eAAA,GAIPpmH,EAAAsS,WAAe,MAEdtS,GAAAsS,WAAe,GA+OhB,SA7OC3R,GACA5I,EAAA2I,YAAe,QAAA,mBAAA,cACfV,EAAAsS,WAAQ,QAgPZjY,GA7OQ8C,OAAI,UAAW,uBA8OnB9F,WA7OO,EA8OP+F,KA7OI,OA06BhB,QAASuqH,GA7OO70G,GA8OD,MAAPA,GACIA,EA7OI80G,SAAO90G,EAAA+0G,WA8OXxtH,EA7OI8C,OAAA,kBAA4B,uDAC5B9F,WAAU,EACV+F,KAAA,OA+OJ0V,EA7OI+0G,SAAA,MAmPhB,QAAS7zG,KACLhU,EAAGgT,YA7OS,EA8OZhT,EAAGqlH,YACHrlH,EAAG6kH,SAAShjG,gBAAkB,KAC9B7hB,EAAG2hB,eACH3hB,EAAG6kH,SAASxwF,SAAW,KACvBr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAG24C,YAAc,KA0CrB,QAASv/B,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,GA7OgC,KAAnB8iB,EAAOC,SAiU/B,QAASC,GA7OU7jB,GA8Of,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EA7OIb,EAAOa,IA8Of,IA7OY,QA6ORA,EAGA,IAAK,GAFDijB,GA7OO,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GA+OFxe,EA7OG,EAAAA,EAAA8E,EAAW2Z,OAAAxe,OAAAD,IAAA,CA8OnB,GAAI0e,GA7OU,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA+Od,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GAhyDX,GA3OIwJ,GAAGC,IAEPD,GAAAqU,kBACQhJ,MAAA,IA6OAA,MA3OI,KA6OJA,MAAS,KAzObA,MAAQ,KAEJA,MAAG,MA6OLA,MAAS,MAEfrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GA1OnCzU,EAAAuU,YAASE,GA6OTzU,EAAG+S,WA3OI,EA4OP/S,EAAG+3C,qBACH/3C,EAAG6kH,YACH7kH,EAAGumH,WA3OI,EA4OPvmH,EAAG0kH,WAAY,EACf1kH,EAAGilH,SAAU,EACbjlH,EAAGklH,aA3OU,EA4ObllH,EAAGsS,WA3OY,EA4OftS,EAAGgT,YA3OY,EA4OfhT,EAAGmlH,cAAe,EAClBnlH,EAAGolH,UAAW,EAEdplH,EAAG0uG,cA3OCA,EA4OJ1uG,EAAGykH,eA3OcA,EA6OjBzkH,EAAGgU,OAASA,EACZhU,EAAG2nH,cAAgBA,EACnB3nH,EAAGwlH,oBAAsBA,EACzBxlH,EAAGomD,YAAcA,EACjBpmD,EAAGyhB,oBAAsBA,EACzBzhB,EAAG8lD,qBA3OYA,EA4Of9lD,EAAGo9E,2BA3OuBA,EA4O1Bp9E,EAAG8kH,gBA3OSA,EA4OZ9kH,EAAGirD,yBA3OmBA,EA4OtBjrD,EAAGkmH,qBA3OaA,EA4OhBlmH,EAAGmmH,cA3OSA,EA4OZnmH,EAAGsmH,UAAW,EACdtmH,EAAGqmH,YAAa,EAChBrmH,EAAG4lH,WAAaA,EAChB5lH,EAAGigG,yBA1OHjgG,EAAAsgG,4BA4OAtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBAEH/gG,EAAG6mH,mBA3Oe,EA4OlB7mH,EAAG8mH,sBAAuB,EAC1B9mH,EAAGymH,SAAU,CAEb,IAAIvmH,GA3OI/F,EAAqBgG,uBA4OzBgS,EA3OYhY,EAAoBgG,uBAAAwU,gBAAAxC,SA4OpCD,KAoGAlS,EAAG8nH,gBAAkB,SAAShyH,GACtBA,EACAgvH,EAAgB,WA3OjB9kH,EAAA2yG,IAAU5uD,iBAAK,KACd/jD,EAAA2yG,IAAWoV,YAAY,KA6OnB/nH,EAAGilH,SAAU,EACbjlH,EAAGklH,aAAc,EACjBllH,EAAGmlH,cAAe,EA3O3BnlH,EAAAolH,UAAc,EACTplH,EAAOgoH,gBAAAxtH,EAAAyC,OAAA+C,EAAA+kH,iBACCjvH,UAAAA,IA8OJkK,EAAGioH,iBAAmBztH,EAAO++C,OAAOv5C,EAAGgoH,gBAAiB,iBA3OzDhoH,EAAG+kH,gBAAmBvqH,EAAAyC,OAAA+C,EAAA+kH,iBACnBjvH,UAAAA,OAKNkK,EAAA2yG,IAAA5uD,iBAAW,KACX/jD,EAAA2yG,IAAAoV,YAAU,KACVjD,MAiPR9kH,EAAGkoH,iBA5OW,SAAApyH,EAAAguD,GA6ONA,EACAghE,EAAgB,WACZ9kH,EAAG2yG,IAAIoV,YAAc,KA3O9B/nH,EAAYilH,SAAA,EACXjlH,EAAAklH,aAAA,EACOllH,EAAAmlH,cAAA,EACHnlH,EAAAolH,UAAe,EA6OXplH,EAAG/C,UA3OR+C,EAAA/C,OAAanH,UAAAA,EACbkK,EAAU/C,OAAA6mD,WAAAA,EACV9jD,EAAAmoH,YAAe3tH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,QA6OV+C,EAAGooH,kBAAoB5tH,EAAO++C,OAAOv5C,EAAGmoH,YAAa,iBA3OtDnoH,EAAA+kH,gBAAAvqH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,WAGJ+C,EAAA2yG,IAAAoV,YAAe,KA6Od/nH,EAAG8nH,gBAAgBhyH,KAM3BkK,EAAGqoH,aA5Oa,SAAOvyH,EAAWguD,EAAA7sB,GAC3BA,EACA6tF,EAAe,WACf9kH,EAAAilH,SAAU,EACRjlH,EAAAklH,aAAA,EACFllH,EAAAmlH,cAAa,EACbnlH,EAAAolH,UAAe,EACfplH,EAAA/C,UA6OK+C,EAAG/C,OAAOnH,UAAYA,EAClBkK,EAAG/C,OAAO6mD,WAAaA,EACvB9jD,EAAG/C,OAAOg6B,QAAUA,EA3O1Bj3B,EAAAsoH,YAAY9tH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,QACf+C,EAAAuoH,kBAAa/tH,EAAA++C,OAAAv5C,EAAAsoH,YAAA,YA6ORtoH,EAAG+kH,gBAAkBvqH,EAAOyC,OAAO+C,EAAG+kH,gBAAiB/kH,EAAG/C,UAzOlE+C,EAAAkoH,iBAAApyH,EAAAguD,IAiPJ9jD,EA7OCwoH,MAAO,WACPxoH,EAAA2yG,IAAA9wF,gBAAW,KA8OR7hB,EAAG2yG,IAAI5uD,iBAAmB,KAC1B/jD,EAAG2yG,IAAIoV,YAAc,KA5O7B/nH,EAASilH,SAAA,EACLjlH,EAAAklH,aAAgB,EACZllH,EAAAmlH,cAAK,EA8OLnlH,EAAGolH,UAAW,EA5OfN,KAkPHjtE,IA7NA73C,EAAGw5C,cACAC,UAAY,EACZC,WAAY,WAGZD,UAAY,EACZC,WAAa,WAgPRD,UAAW,EA5OhBC,WAAgB,YAGhBD,UAAS,EACTC,WAAgB,cAGhBD,UAAA,EACAC,WAAA,aAGAD,UAAA,EACAC,WAAA,WAGAD,UAAa,EACbC,WAAa,aAokBhB15C,EAAGm5C,WAAY,EACfn5C,EAAGs0D,MAAQ,WACHt0D,EAAG6kH,SA7OKvwD,MA8ORt0D,EAAGm5C,WAAY,EAEfn5C,EAAGm5C,WA7OS,GAgPpBn5C,EAAGyoH,OA7OQ,SAAS3lH,GA8OhB,GA7OIsS,GAAGpV,EAAAqyB,IAAAjvB,QAAiBN,EA8OxB9C,GAAGqyB,IA7OIiD,OAAAlgB,EAAc,IA8ZzBpV,EAAG0oH,gBA7OI,WAEC1oH,EAAAihG,eAAkB9lG,OAAG,IACrB6E,EAAA8mH,sBAAkB,IAkX1B9mH,EAAG2oH,cAAgB,WAEf3oH,EAAGomH,eA7OI,CA8OP,IA7OInrH,IAEAnF,UAAGkK,EAAA6kH,SAAiBhjG,gBAAA/rB,UACpBguD,WAAG9jD,EAAA6kH,SAAiBxwF,SAAAyvB,WACpB2vC,SAAGzzF,EAAA+mD,OACH5I,SAAGn+C,EAAAi4B,OAgPP8kD,GAAyBiB,kBAAkB/iF,GAAKwD,KAAK,SAASC,GACvC,MAAfA,EAAIlI,QAEJwJ,EAAGqlH,YA5ONrlH,EAAA6mH,mBAAuB,EACrB7mH,EAAA8mH,sBAAuB,EACvB9mH,EAAAymH,SAAA,EACAzmH,EAAA24C,YAAiB,KACjB34C,EAAA6kH,SAAA1xG,gBAAiB,KACjBnT,EAAA6kH,SAAAhjG,gBAAoB,KACpB7hB,EAAA2hB,eACA3hB,EAAA6kH,SAAWxwF,SAAA,KACVr0B,EAAA68C,kBACJ78C,EAAK4mD,eACD5mD,EAAAmgG,sBA8OAngG,EAAGmgG,mBAAqB,KA5OzBngG,EAAAwgG,yBACCxgG,EAAAwgG,sBAAM,KACNxgG,EAAA6gG,kBACA7gG,EAAA6gG,eAAkB,KAClB7gG,EAAAi+C,iBAAc,KACdj+C,EAAAihG,kBACAjhG,EAAAihG,eAAe,KA+OfjhG,EAAGigG,yBA5OPjgG,EAAAsgG,4BACItgG,EAAA2gG,qBA8OA3gG,EAAG+gG,qBACH/gG,EAAGknH,QA7OIttE,YA8OP55C,EAAG65C,QA7OCK,YAELniD,EAAS2I,YAAK,QAAA,8BACbrJ,WAAW,EA8OP+F,KAAM,QAGf,SA7OIuD,GACH5I,EAAG2I,YAAiB,QAAA,gEACjBrJ,WAAA,EACA+F,KAAA,UAMX4C,EAAA4oH,gBAAS,WACL,GAAIv2F,KA8OJ,KA7OI,GAAGn3B,KAAA8E,GAAA6oH,gBACHx2F,EAAGx6B,KAAAmI,EAAA6oH,gBAAiB3tH,GAAA0kF,OA+OxB5/E,GAAG4/E,OA7OKvtD,EAAMqB,MA+Od,IAAIS,KACJ,KAAK,GAAIj5B,KAAK8E,GAAGihG,eA5Ob9sE,EAAGt8B,KAAAmI,EAASihG,eAAI/lG,GAAA6d,GA+OpB/Y,GAAGi4B,OA7OK9D,EAAAT,MA+OR,IAAIz4B,IACA2kF,OA7OI5/E,EAAA4/E,OA8OJ9pF,UA7OIkK,EAAA6kH,SAAehjG,gBAAkB/rB,UA8OrCguD,WA7OI9jD,EAAU6kH,SAAGxwF,SAAAyvB,WA8OjB2vC,SA7OIzzF,EAAA+mD,OA8OJ5I,SA7OIn+C,EAAQi4B,OAgPhB8kD,GA7OgBiB,kBAAgB/iF,GAAAwD,KAAA,SAAAC,GACjB,MA6OPA,EA7OIlI,QA+OJwJ,EAAG8oH,eA7Oa,EA8OhB1rC,EA7OuBp9E,EAAA6kH,SAAAhjG,gBAAA/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,aAgPvB/rD,EAAW2I,YAAY,QAAS,8BAC5BrJ,WA7OG,EACH+F,KAAA,QAgPT,SA7OKuD,GA8OJ5I,EAAW2I,YAAY,QAAS,gEA5O7BrJ,WAAA,EACA+F,KAAA,UAkPX4C,EAAG+oH,SAAW,WACV/oH,EAAGgpH,gBAAiB,GA1OxBhpH,EAAGipH,aAAA,SAAkBn2G,GA8OjB9S,EAAGsS,WAAY,EA5OftS,EAAAgT,YAAO,EA8OPhT,EAAG+S,WA7OI,EA8OP/S,EAAGgpH,gBAAiB,EACpBhpH,EAAGqlH,YACHrlH,EAAGymH,SAAU,EACbzmH,EAAG8mH,sBAAuB,EAC1B9mH,EAAGwnH,kBAAmB,CAEtB,IAAIvsH,IACAnF,UAAWgd,EAAIhd,UACfguD,WAAYhxC,EAAIgxC,WAChB87B,OAAQ9sE,EAAI8sE,OAGhB7C,GAAyB2B,oBAAoBzjF,GAAKwD,KAAK,SAASC,GAC5D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGqlH,SAAW3mH,EAAIhJ,KAAK8wH,UACvB,KAAK,GAAItrH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAAS,GAAGqB,SAAU,EACrB1mH,EAAGqlH,SAASnqH,GAAGyrH,aACf3mH,EAAGqlH,SAASnqH,GAAGyrH,WAAa,GAAIltG,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YAIxD3mH,GAAGqlH,SAASlqH,OAAS,IACrB6E,EAAG6mH,mBAAoB,GAE3B7mH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,EAChBrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,IAEvBvnH,EAAG24C,YAAc34C,EAAGsnH,SAAS3uE,YAC7B34C,EAAG6kH,SAAShjG,mBACZ7hB,EAAG6kH,SAASxwF,YACZr0B,EAAG6kH,SAAShjG,gBAAgB/rB,UAAYkK,EAAGsnH,SAASxxH,UACpDkK,EAAG6kH,SAASxwF,SAASyvB,WAAa9jD,EAAGsnH,SAASxjE,WAC9C9jD,EAAG+mD,OAAS/mD,EAAGsnH,SAAS7zB,SA5O3BzzF,EAAAsiB,YAAAxP,EAAAwP,YACFtiB,EAAA4yB,cAAgB9f,EAAA8f,aACf,IAAAP,KACI,KAAA,GAAMn3B,KAAA8E,GAAAqlH,SACLhzF,EAAIx6B,KAAQmI,EAAAqlH,SAAAnqH,GAAA+7B,QA+Obj3B,GAAGi4B,OAAS5F,EAAIqB,OAKZ1zB,EAAGsnH,SAAS1nC,SA5OL,GAAZ5/E,EAAYsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBA+OHznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GA5OnB,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBACCznH,EAAAmnH,YAAA,EACNnnH,EAAWonH,UAAA,EACXpnH,EAAAqnH,YAAY,GACG,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBACPznH,EAAGmnH,YAAA,EACXnnH,EAAAonH,UAAgB,EA8ORpnH,EAAGqnH,YAAa,IA1O5BrnH,EAAAsS,WAAA,EACItS,EAAAumH,WAAQ,MA+ORxuH,GA7OO2I,YAAU,QAAA,gCAAA,qBAgPtB,SAASC,GACR5I,EAAW2I,YA7OQ,QAAY,iCA8O3BrJ,WAAW,EACX+F,KAAM,UAOlB4C,EAAGkpH,eA7OiB,WA8OhBlpH,EAAGsS,WAAY,EACftS,EAAGgpH,gBA7OgB,EA8OnBhpH,EAAGqlH,YACHrlH,EAAGymH,SAAU,EACbzmH,EAAG8mH,sBA7OgB,EA8OnB9mH,EAAGwnH,kBA7OgB,CA+OnB,IAAIvsH,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WA7OY9jD,EAAA6kH,SAAOxwF,SAASyvB,WA8O5B87B,OAAQ5/E,EAAGsnH,SA7OS1nC,OA8OpBzhC,SAAUn+C,EAAGi4B,OACbw7D,SAAUzzF,EAAG+mD,OACbqgE,SAAU,EAGdrqC,GA7OwBe,iBAAgB7iF,GAAAwD,KAAA,SAAAC,GA8OpC,GAAmB,MAAfA,EAAIlI,OA7Oe,CA8OnBwJ,EAAGmpH,aA7OazqH,EAAGhJ,KAAAyzH,aACgB,GA6O/BnpH,EAAGmpH,aA7OYjhB,YA8OfnwG,EAAW2I,YA7OI,UAAaV,EAAAmpH,aAAAt1G,QAAA,mBACF,GA6OnB7T,EAAGmpH,aA7OKjhB,YA8OfnwG,EAAW2I,YA7OI,UAAaV,EAAAmpH,aAAAt1G,QAAA,mBA+O5B9b,EAAW2I,YAAY,QAASV,EAAGmpH,aAAat1G,QAAS,mBAE7D7T,EAAGqlH,SAAW3mH,EAAIhJ,KAAK8wH,UACvB,KAAK,GAAItrH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SA7OInqH,GAAA8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBA8OP7yG,EAAGqlH,SA7OI,GAAAqB,SAAa,EAChB1mH,EAAGqlH,SAAAnqH,GAAAyrH,aA8OH3mH,EAAGqlH,SAASnqH,GAAGyrH,WAAa,GAAIltG,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YA1OxD3mH,GAAGqlH,SAAAlqH,OAAY,IA8Of6E,EA7OG6mH,mBAAA,GAGR7mH,EAAAmnH,YAAc,EACbnnH,EAAAonH,UAAW,EACXpnH,EAAGqnH,YAAY,EA8OfrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,IA3OnBvnH,EAAAsnH,SAAO1nC,SACA,GAAX5/E,EAAWsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBA+OHznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACuB,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBACxDznH,EAAGmnH,YAAa,EA5OjBnnH,EAAAonH,UAAY,EAC3BpnH,EAAAqnH,YAAA,GACmB,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBACTznH,EAAAmnH,YAAA,EA8OMnnH,EAAGonH,UAAW,EA5OfpnH,EAAGqnH,YAAS,IAiPnBrnH,EAAGsS,WAAY,MA3OvBva,GAAA2I,YAAyB,QAAA,gCAA0C,qBAgPhE,SA7OQC,GA8OP5I,EA7OO2I,YAAA,QAAoB,iCACvBrJ,WAAG,EACH+F,KAAG,UAqPf4C,EAAGopH,eA7OY,WA8OXppH,EAAGsS,WA7OQ,EA8OXtS,EAAG8mH,sBA7OQ,EA8OX9mH,EAAGwnH,kBA7OQ,EA8OXxnH,EAAGqlH,WACH,IAAIpqH,IACAnF,UA7OOkK,EAAA6kH,SAAAhjG,gBAAmB/rB,UA8O1BguD,WA7OO9jD,EAAA6kH,SAAiBxwF,SAAAyvB,WA8OxB87B,OA7OO5/E,EAAAsnH,SAAA1nC,OA8OPzhC,SAAUn+C,EAAGi4B,OACbw7D,SA7OOzzF,EAAA+mD,OA8OPqgE,SA7OO,EAgPXrqC,GA7OmBe,iBAAW7iF,GAAAwD,KAAA,SAAAC,GA8O1B,GA7Oe,MAAXA,EAAGlI,OAAQ,CASX,GAqOAwJ,EA7OGmpH,aAAAzqH,EAAAhJ,KAAAyzH,aAC6B,GAAhCnpH,EAAAmpH,aAAWjhB,YACPnwG,EAAW2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,mBACL,GAAA7T,EAAAmpH,aAAAjhB,YA8ONnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,mBA3O3D9b,EAAK2I,YAAA,QAAAV,EAAAmpH,aAAAt1G,QAAA,mBAET7T,EAAA+S,UAgCA/S,EAAA+xB,WAhCW,CACX/xB,EAAMqlH,SAAA3mH,EAAAhJ,KAAA8wH,UA8OF,KAAK,GAAItrH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAAS,GAAGqB,SAAU,EACrB1mH,EAAGqlH,SAASnqH,GAAGyrH,aACf3mH,EAAGqlH,SAASnqH,GAAGyrH,WAAa,GAAIltG,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YAzOhE3mH,GAAKmnH,YAAG,EA8OJnnH,EAAGonH,UAAW,EA5OdpnH,EAAAqnH,YAAI,EA8OJrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,IA3OrBvnH,EAAGsnH,SAAA1nC,SACkB,GAAlB5/E,EAAAsnH,SAAeE,kBAAG,GAAAxnH,EAAAsnH,SAAAG,kBAElBznH,EAAAmnH,YAAA,EA8OGnnH,EAAGonH,UAAW,EA5OxBpnH,EAAAqnH,YAAA,GACK,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBACGznH,EAAAmnH,YAAS,EACRnnH,EAAAonH,UAAS,EACXpnH,EAAAqnH,YAAA,GACA,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBA8OGznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA5OlCpnH,EAAAqnH,YAAyB,IAmPjBrnH,EA7OGsS,WAAA,MAgPHva,GA7OU2I,YAAA,QAAA,gCAAA,qBAGf,SAASC,GACR5I,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,UAmPlB4C,EAAGqpH,UA7OI,SAAiBv2G,GA8OpB9S,EAAGsS,WAAY,EA3OhBtS,EAAAqlH,WAEC,IAAGpqH,IACAnF,UAAYgd,EAAAhd,UACZguD,WAAAhxC,EAAiBgxC,WACjBwlE,WAAWx2G,EAAAy2G,WACXC,gBAAU12G,EAAA80G,QACVhoC,OAAA5/E,EAAAsnH,SAAA1nC,OA+OH7C,GAAyBc,mBAAmB5iF,GAAKwD,KAAK,SAASC,GA5O3D,GAAM,KAANA,EAAMlI,OAAA,CACNwJ,EAAAmpH,aAAezqH,EAAAhJ,KAAAyzH,aACC,GAAhBnpH,EAAAmpH,aAAgBjhB,YACRnwG,EAAI2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,iBA8OkC,GAA/B7T,EAAGmpH,aAAajhB,YACvBnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,iBA3O3D9b,EAAW2I,YAAK,QAAAV,EAAAmpH,aAAAt1G,QAAA,iBAEpB7T,EAAAqlH,SAAc3mH,EAAGhJ,KAAA8wH,WA8OjBxmH,EAAGmnH,YA7Oa,EA8OhBnnH,EAAGonH,UA7OI,EA8OPpnH,EAAGqnH,YA7OQ,EA8OXrnH,EAAGsnH,SA7OQ5oH,EAAAhJ,KAAY6xH,GA8OvB,KAAK,GAAIrsH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAAS,GAAGqB,SAAU,CAGzB1mH,GAAGsnH,SAAS1nC,SA5OA,GAAb5/E,EAAAsnH,SAAaE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBAEbznH,EAAAmnH,YAAa,EACbnnH,EAAAonH,UAAe,EA8OVpnH,EAAGqnH,YAAa,GA5OK,GAA1BrnH,EAAcsnH,SAAGE,kBAAS,GAAAxnH,EAAAsnH,SAAAG,kBAC1BznH,EAAAmnH,YAAS,EACTnnH,EAAAonH,UAAS,EACTpnH,EAAAqnH,YAAS,GACkC,GAAlCrnH,EAAAsnH,SAASE,kBAAyB,GAAAxnH,EAAAsnH,SAAAG,mBAC3CznH,EAAAmnH,YAAqB,EACrBnnH,EAAAonH,UAAkB,EAClBpnH,EAAAqnH,YAAoB,IAiPvBrnH,EAAGsS,WAAY,MAIfva,GAAW2I,YAAY,QAASV,EAAGmpH,aAAat1G,QAAS,kBAI9D,SAASlT,GACR5I,EAAW2I,YA7OI,kCAiPvBV,EAAGypH,kBA7OoB,WA8OnB,GAAIp3F,KAEJ,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SAEbhzF,EAAIx6B,MACI/B,UA7OOkK,EAAAqlH,SAAanqH,GAAApF,UA8OpBguD,WAAY9jD,EAAGqlH,SAASnqH,GAAG4oD,WAC3B1sB,WAAYp3B,EAAGqlH,SAASnqH,GAAGk8B,WA5O5BH,QAAAj3B,EAAYqlH,SAAAnqH,GAAA+7B,QACZ+vF,SAAAhnH,EAAYqlH,SAAAnqH,GAAA8rH,SACZa,SAAA,GAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,UAAA,IAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GACH/zG,UAAW5T,EAAYG,OA8OnB0oH,SAAU/oH,EAAGqlH,SAASnqH,GAAG0sH,QACzBjB,WAAY1sH,EAAQ,QAAQ+F,EAAGqlH,SAASnqH,GAAGyrH,WAAY,cA5OvD+C,SAAKzvH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAAwuH,SAAA,cACbC,UAAW1vH,EAAY,QAAS+F,EAAAqlH,SAAAnqH,GAAAyuH,UAAA,cAC5BC,QAAW3vH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAA0uH,QAAA,cACXC,MAAM7pH,EAAAqlH,SAAAnqH,GAAA2uH,OAiPd,IAAI5uH,IACA4xB,UAAWlwB,KAAKqkB,UAAUqR,GA3O/B0qD,GAAiBiD,oBAAW/kF,GAAAwD,KAAA,SAAAC,GACZ,KAAZA,EAAAlI,OACAuB,EAAA2I,YAAiB,UAAAhC,EAAAhJ,KAAAme,QAAA,sBACNnV,EAAAhJ,KAAAo0H,cAAA,EACX/xH,EAAU2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBAEV9b,EAAA2I,YAAmB,QAAAhC,EAAAhJ,KAAAme,QAAA,sBA8Od7T,EAAGgT,YAAa,IAErB,SA7OCrS,GACA5I,EAAA2I,YAAe,kCAmPvBV,EAAG+pH,YAAc,WAEb/pH,EAAGgqH,QA7OS,CA8OZ,KAAK,GA7OG9uH,KAAG8E,GAAAqlH,SACiB1vH,QAApBqK,EAAAqlH,SAAOnqH,GAAA8rH,UAA+B,IAAAhnH,EAAAqlH,SAAAnqH,GAAA8rH,UAAArxH,QAAAqK,EAAAqlH,SAAAnqH,GAAAyrH,aA8OtC3mH,EAAGgqH,QA7OC,EAiPZ,IAAKhqH,EAAGgqH,OAhHT3vH,EAAY8C,OAAA,UAAc,8BACtB9F,WAAY,EA8OP+F,KAAM,WA5WF,CA8OR4C,EAAGsS,WAAY,EACftS,EAAGiqH,aA7OI,EA8OPjqH,EAAG8mH,sBA7OkB,CA8OrB,IAAIz0F,KACJ,KAAK,GA7OGn3B,KAAG8E,GAAAqlH,SAAY,CA8OnB,GA7OIvsE,IA8OA8mC,OA7OO5/E,EAAAsnH,SAAY1nC,OA8OnBsqC,OAAQlqH,EAAGqlH,SAASnqH,GAAG0sH,QACvB9xH,UAAWkK,EAAGqlH,SAASnqH,GAAGpF,UA5O1BguD,WAAY9jD,EAAAqlH,SAAYnqH,GAAA4oD,WACxB7sB,QAAGj3B,EAAAqlH,SAAAnqH,GAAoB+7B,QA8OvB+vF,SAAUpgH,SAAS5G,EAAGqlH,SAASnqH,GAAG8rH,UAClC6C,MAAOjjH,SAAS5G,EAAGqlH,SAASnqH,GAAG2uH,OA5OhClD,WAAa1sH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAAyrH,WAAA,cACb+C,SAAWzvH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAAwuH,SAAA,cACXC,UAAA1vH,EAAa,QAAA+F,EAAAqlH,SAAAnqH,GAAAyuH,UAAA,cACbC,QAAA3vH,EAAe,QAAK+F,EAAAqlH,SAAAnqH,GAAA0uH,QAAA,cA8OnBxyF,WAAYp3B,EAAGqlH,SAASnqH,GAAGk8B,WA5O3B1C,OAAG10B,EAAAqlH,SAAiBnqH,GAAAw5B,OACpBtK,MAAOpqB,EAAAqlH,SAASnqH,GAAAkvB,MA8OhB+/F,SAAUnqH,EAAGqlH,SAASnqH,GAAGy4C,YACzBy2E,YA7OOpqH,EAAAqlH,SAAanqH,GAAA0sH,QAAA,EA8OpByC,aA7OO,EA8OPC,QA7OOtqH,EAAAsnH,SAAagD,QA8OpBx2G,UA7OW5T,EAAGG,OA8OdzK,OA7OO,EA+OXy8B,GAAIx6B,KA7OIihD,GAgPZ,GAAI79C,IACAoqH,SA7OQ1oH,KAAGqkB,UAAaqR,GA6PvBryB,GAAG0kH,WA2DJzpH,EAAIsvH,cA7OGvqH,EAAA4kH,UA8OP7nC,EA7OOI,yBAAAliF,GAAAwD,KAAA,SAAAC,GA8OCA,EAAIhJ,KAAKke,aAAc,GA5O5B7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,4BAEZ7T,EAAAumH,WAAA,EACHvmH,EAAWwqH,YAAY,GAGnBzyH,EAAK2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,qBAiPN,SAASlT,GACR5I,EAAW2I,YAAY,kCAxE3Bq8E,EAAyBkC,2BAA2BhkF,GAAKwD,KAAK,SAASC,GACnE,GAAmB,MAAfA,EAAIlI,OAAgB,CA3OpB,GA4OAwJ,EAAGmpH,aAAezqH,EAAIhJ,KAAKyzH,aA5OhB,GAAXnpH,EAAAmpH,aAAWjhB,YAAA,CAExBnwG,EAAuB2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,wBACvB7T,EAAmBqlH,SAAA3mH,EAAAhJ,KAAA8wH,WACRxmH,EAAAmnH,YAAA,EACJnnH,EAAAonH,UAAA,EACQpnH,EAAAqnH,YAAS,EACRrnH,EAAAsnH,SAAS5oH,EAAShJ,KAAA6xH,GACtB,KAAS,GAAArsH,KAAA8E,GAAAqlH,SACPrlH,EAAAqlH,SAAAnqH,GAAA8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBACA7yG,EAAAqlH,SAAA,GAAAqB,SAAA,EACH1mH,EAAAqlH,SAAAnqH,GAAAyrH,aA8Oc3mH,EAAGqlH,SAASnqH,GAAGyrH,WAAa,GAAIltG,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YA3OhF3mH,GAAyBsnH,SAAA1nC,SACG,GAAA5/E,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBAEAznH,EAAAmnH,YAAe,EACpBnnH,EAAAonH,UAAY,EACbpnH,EAAAqnH,YAAa,GAC2B,GAA3BrnH,EAAAsnH,SAAWE,kBAAyB,GAAAxnH,EAAAsnH,SAAAG,kBACxDznH,EAAAmnH,YAAA,EACQnnH,EAAAonH,UAAY,EA8OPpnH,EAAGqnH,YAAa,GA5OjB,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBACDznH,EAAImnH,YAAK,EACTnnH,EAAGonH,UAAU,EACXpnH,EAAGqnH,YAAa,QAiPrB,IAAmC,GAA/BrnH,EAAGmpH,aAAajhB,YAAkB,CACzCnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,uBAC3D,IAAIlf,GAAW,EA5OpB,KAAA,GAAauG,KAAAwD,GAAAhJ,KAAAm9B,UACbl+B,EAAWA,EAAA+J,EAAAhJ,KAAAm9B,UAAA33B,GAAA23B,UAAA,MAEIx4B,GAAK8C,OAAAuB,EAAAhJ,KAAAme,QAAAlf,GAAA0C,WAAA,EAAA+F,KAAA,MA8OfD,QAAOuC,OAAOjB,KAAK,kBAGnB1G,GAAW2I,YAAY,QAASV,EAAGmpH,aAAat1G,QAAS,gBAG7D7T,GAAGumH,WA7OI,EA8OPvmH,EAAGwqH,YA7OW,MA+OdzyH,GA7OO2I,YAAW,8BA+OtBV,GAAGsS,WA7OY,GA+OhB,SA7OS3R,GA8OR5I,EA7OW2I,YAAA,mCAyQ3BV,EAAG+xB,KA7OK,WA8OJ/xB,EAAG6mH,mBA7OiB,EA8OpB7mH,EAAG8mH,sBA7OsB,EA8OzB9mH,EAAGymH,SA7OS,EA8OZzmH,EAAGumH,WAAY,EA5OfvmH,EAAA+S,WAAA,EA8OA/S,EAAGgT,YA7OS,EA8OZd,KAGJlS,EAAGyqH,WAAa,WACZzqH,EAAG8oH,eA7OS,GAiPhB9oH,EAAG0qH,YA7OY,WA8OX,GAAIr4F,KACJ,KAAK,GA7OGn3B,KAAG8E,GAAAihG,eA8OP5uE,EA7OIx6B,KAAGmI,EAAAihG,eAAa/lG,GAAA6d,GA+OxB/Y,GAAGi4B,OA7OK5F,EAAKqB,MA+Ob,IAAIz4B,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC2vC,SA7OQzzF,EAAG+mD,OA8OX5I,SA7OQn+C,EAAIi4B,OA+OhB8kD,GA7OmBkB,kBAAahjF,GAAAwD,KAAA,SAAAC,GA8O5B,GA7Oe,MA6OXA,EAAIlI,OA7OO,CAiPX,GAHAwJ,EAAG2qH,YA7OQjsH,EAAAhJ,KA8OXsK,EAAG6oH,mBAEC7oH,EAAGqlH,SA7OIlqH,OAAW,EA8OlB,IA7OI,GAAGD,KAAA8E,GAAAqlH,SA8OH,IA7OG,GAAIl7G,KAAGnK,GAAA2qH,YACP3qH,EAAAqlH,SAAanqH,GAAAk8B,YAAAp3B,EAAA2qH,YAAAxgH,GAAAitB,YACbp3B,EAAA6oH,gBAAWhxH,KAAAmI,EAAA2qH,YAAAxgH,QAKnBnK,GAAA6oH,gBAAY7oH,EAAA2qH,WA+OX3qH,GAAG6oH,gBAAgB1tH,OAAS,EA5O7B6E,EAAA8oH,eAAA,EA+OCzuH,EAAQ8C,OAAO,UAAW,uBACtB9F,WAAW,EACX+F,KAAM,SAInB,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAmB5DV,EAAG4qH,WA7Oa,SAAO93G,GA8OnB,GAAIA,EAAIk0G,SAAU,CAEd,GAAI/rH,IA5OJnF,UAAMkK,EAAA6kH,SAAAhjG,gBAAA/rB,UACN+0H,eAAgB5wH,EAAU,QAAA6Y,EAAA6zG,WAAA,cA8OtBK,SAAUl0G,EAAIk0G,SA5OtB6C,MAAyB,IAAzB/2G,EAAA+2G,OAA6Cl0H,QAApBmd,EAAA+2G,MAA8B/2G,EAAS+2G,MAAK,EAgPjE9sC,GA7OoBkD,QAAAhlF,GAAgBwD,KAAG,SAAAC,GACxB,MAAXA,EAAAlI,SACGsc,EAAA42G,SAAAt1H,QAAA8e,KAAAxU,EAAAhJ,KAAAo1H,cACHh4G,EAAA62G,UAAWv1H,QAAY8e,KAASxU,EAAIhJ,KAAKq1H,eACtCj4G,EAAA82G,QAAax1H,QAAA8e,KAAAxU,EAAAhJ,KAAAs1H,eAErB,SAASrqH,GACR5I,EAAW2I,YAAY,QAAA,mBAAA,wBAevBrG,GAAI8C,OAAQ,UAAA,uBACT9F,WAAY,EACZ+F,KAAA,OAEH0V,EAAI6zG,WAAM,MA2RlB3mH,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MAAK,KA7OM,EAAG,KAgP/BzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KA7OM,GAAI,IA+O5BqB,YAAa,GAGjB9a,EAAGkrH,UACCtwG,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MACbqB,YAAa,GAGjB9a,EAAGmrH,cAAgB,WAEfnrH,EAAGkrH,SAASzwG,QAAU,GAAIhB,OAW9BhP,EAAOkQ,aACHwB,WAAY,KACZrB,YAAa,GAKjBrQ,EAAOsQ,UAAY,WACftQ,EAAO8P,cA7OQE,QAAYhQ,EAAA8P,cAAAE,QAAA,KAAA,GAAAhB,MA8O3BhP,EAAOkQ,YAAYF,QAAUhQ,EAAO8P,cAAcE,SAGtDza,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QA7OC,GAgPf7O,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QA7OM,GAgPpB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACnB,IAAIwL,GAAQ,GAAIZ,MACZ06B,EAAS,EAEbn0C,GAAGm5B,SACCte,QAAS,GAAIpB,MAAKY,EAAM65B,cAAgBC,EAAQ95B,EAAM82B,WAAY92B,EAAM2B,aAKhFhc,EAAGX,KAAO,SA7OCyT,GA+OPA,EAAI8zG,OA7OI,GAgPZ5mH,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MA7OI,WACHtb,EAAGub,OAAA1M,QAAA,GAgPP7O,EAAGwb,QA7OI,SAAYC,EAAAC,EAAAC,GACf3b,EAAGsa,GAAA,GAAAb,MAAagC,EAAAC,EAAAC,IAgPpB3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,aA5O1D5b,EAAG6b,OAAA7b,EAAA4b,QAAa,GA8OhB5b,EAAG8b,iBA7OI,cA+OP9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QA7OQ,GAiPZ7O,EAAGqb,QACCxM,QA7OI,GAgPR7O,EAAGub,QACC1M,QAAQ,EAGZ,IAAIkN,GA7OW,GAAAtC,KA8OfsC,GAASP,QA7OMO,EAAAC,UAAkB,EA8OjC,IAAIC,GAAgB,GAAIxC,KACxBwC,GA7OYT,QAAOO,EAASC,UAAY,GA8OxChc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,oPAtxDhBpC,QACKC,OA3OM,0CA4ONe,WAAW,uCAAwCkvH,MA8yD5D,WACI,YAOA,SA7OO8G,GAA2BrxH,EAAAQ,EAAAN,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAAyX,EA8O9BI,EA7OYH,EAAU+oC,EAAAmiC,EAAAv7B,GA8StB,QA7OOtvC,KACHF,EAAGI,mBAAwBD,GAAA1T,KAAA,SAAAC,GACP,MAAjBA,EAAAlI,SACAwJ,EAAAqS,YAAiB3T,EAAAhJ,KACjBsK,EAAAsS,WAAmB,IAEnB,SAAA3R,GACA5I,EAAA2I,YAAwB,QAAA,mBAAA,oBAkS/B,QA7OI+gB,GAAYtP,EAAAgF,GACZhF,GA8OInS,EAAGqlH,YACHtoC,EAAyBsC,8BAA8BltE,GAAW1T,KAAK,SAAUC,GAC1D,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MA5OlBsK,EAAA2hB,YAAWxmB,OAAA,GACnBd,EAAc8C,OAAU,UAAO,oDACnB9F,WAAU,EA8OT+F,KAAM,OAId+Z,IACAnX,EAAGsS,WAAY,GA3OjBjY,EAASwH,MAAA,QAAA,yBAAA,mBA+OZ,SAAUlB,GA5OVtG,EAAAwH,MAAW,QAAA,mBAAA,sBAGd7B,EAAAqlH,YA8OArlH,EAAG6kH,SAAShjG,gBAAgB,KA5O7B7hB,EAAA6kH,SAAUwG,aAAA,KACTrrH,EAAAkiD,eAAkB,MAiP1B,QAASopE,GAAiBz1F,GA5OvBknD,EAAqBuC,mCAAAzpD,GAAAp3B,KAAA,SAAAC,GACpB,MAAAA,EAAAlI,OACIwJ,EAAAurH,SAAQ7sH,EAAAhJ,KAGLsK,EAAAsS,WAAW,GA+Of,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cA5OzDV,EAAQsS,WAAW,IA+OlBtS,EAAG6kH,SAASwG,aAAc,KACtBrrH,EAAGkiD,eAAgB,KA/M3B,QAAGk7B,GAAUtnF,GACTkK,EAAAomH,eAAM,EACNpmH,EAAAwrH,YAAQ,CACT,IAAAvwH,IACCnF,UAAMkK,EAAA6kH,SAAAhjG,gBAAA/rB,UACN8pF,OAAQ5/E,EAAA6kH,SAAAwG,aAAAzrC,OA8OJlwC,SAAUz1C,EAAQ,QAAQ+F,EAAG0vC,SAAU,cACvCC,OAAQ11C,EAAQ,QAAQ+F,EAAG2vC,OAAQ,cA3OvC3vC,GAAAsS,WAAW,EA8OXyqE,EA7OgBwC,mCAAAtkF,GAAAwD,KAAA,SAAAC,GACZ,GAAgB,MAAhBA,EAAAlI,OAAgB,CACZwJ,EAAAqlH,SAAa3mH,EAAIhJ,KAAK8wH,WA8OtBxmH,EAAGymH,SAAU,EA3OTzmH,EAAAqlH,SAAAlqH,OAAiB,EA8OjB6E,EAAGyrH,aAAc,EAGjBzrH,EAAGyrH,aAAc,CA1OtB,IAAAt3F,KA8OC,KAAK,GAAIj5B,KAAK8E,GAAGqlH,SACblxF,EAAKt8B,KAAKmI,EAAGqlH,SAASnqH,GAAG+7B,QAE7Bj3B,GAAGm+C,SAAWhqB,EAAKT,MACnB,IAAIrB,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SACbhzF,EAAIx6B,KAAKmI,EAAGqlH,SAASnqH,GAAGk8B,WA3OnCp3B,GAAAyzF,SAAAphE,EAAAqB,MA+OO,KAAK,GAAIx4B,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBA7OrE7yG,EAAAqlH,SAAA,GAAAqB,SAAA,EACY1mH,EAAAqlH,SAAAnqH,GAAAyrH,aACI3mH,EAAAqlH,SAAAnqH,GAAAyrH,WAAA,GAAAltG,MAA0CzZ,EAAAqlH,SAAAnqH,GAAAyrH,YAItC3mH,GAAAqlH,SAAAlqH,OAAA,GACP6E,EAAA6mH,mBAAA,EA+OO7mH,EAAG8mH,sBAAuB,EA7OvC9mH,EAAA+mH,aAAmBroH,EAAAhJ,KAAAsxH,SACThnH,EAAAinH,eAAAvoH,EAAAhJ,KAAAwxH,QACVlnH,EAAAmnH,YAAA,EACUnnH,EAAAonH,UAAA,EACVpnH,EAAAqnH,YAAA,EACUrnH,EAAAsnH,SAAA5oH,EAAAhJ,KAAA6xH,IACVvnH,EAAAknH,QAAA,IAAAlnH,EAAAsnH,SAAA1tE,SAAAj9C,KAAAC,MAAAoD,EAAAsnH,SAAA1tE,WAAAA,aACU55C,EAAA65C,QAAA,IAAA75C,EAAAsnH,SAAAztE,QAAAl9C,KAAAC,MAAAoD,EAAAsnH,SAAAztE,UAAAK,YAEAl6C,EAAAsnH,SAAA1nC,SA+O6C,GAAlC5/E,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBA5O1D3rH,EAAAmnH,YAAgB,EA+OTnnH,EAAGonH,UAAW,EA7OrBpnH,EAAAqnH,YAAA,GAiP8C,GAAlCrnH,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBA7OjE3rH,EAAAmnH,YAAA,EACQnnH,EAAAonH,UAAA,EACTpnH,EAAAqnH,YAAA,GAGD,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACI3rH,EAAAmnH,YAAA,EACFnnH,EAAAonH,UAAA,EACCpnH,EAAAqnH,YAAA,MASbrnH,EAAgB0nH,YAAA,EA+OH1nH,EAAGomH,eAAgB,GAIvBpmH,EAAGsS,WAAY,MA3OxBtS,GAAWsS,WAAA,GAgPP,SAAU3R,GA7Od5I,EAAA2I,YAAwB,QAAA,mBAAA,cACxBV,EAAAsS,WAAA,IAm0BH,QA9OIytE,GAAAjtE,GAgPA9S,EAAG6yB,UA9OKz+B,QAAW8e,KAAAJ,EAAY+f,WA+O/B7yB,EAAG+zF,SAAW3/F,QAAQ8e,KAAKJ,EAAI8e,kBAC/B5xB,EAAG25B,SA9OU,EA+ObojD,EA9OmBgD,kBAAuBjtE,EAAIgtE,mBAAcrhF,KAAA,SAAAC,GA+OrC,MAAfA,EAAIlI,QACJwJ,EA9OCi0B,QAAAv1B,EAAAhJ,KACDsK,EAAAsS,WAAW,GAuQXtS,EAAGsS,WA9OY,GAgPpB,SAAU3R,GACT5I,EAAW2I,YA9OY,QAAG,mBAAY,cA+OtCV,EAAGsS,WA9OS,IAmQpB,QAASq1G,GA9OW70G,GA+OL,MAAPA,GACIA,EAAI80G,SA9OI90G,EAAS+0G,WA+OjBxtH,EA9OQ8C,OAAA,kBAAsB,uDA+O1B9F,WA9OI,EA+OJ+F,KA9OI,OAgPR0V,EA9OI+0G,SAAS,MA0PzB,QAASrO,KACL,GAA4B,KAAxBx5G,EAAGkiD,eAAenpC,IACMpjB,QAApBqK,EAAGy5G,cAA4B,CAC/Bz5G,EAAG0vC,SAAWz1C,EAAQ,QAAQ+F,EAAGy5G,cAAe,cAChDz5G,EAAG2vC,OAASv7C,QAAQ8e,KAAKlT,EAAGy5G,cAC5B,IAAI3xD,GAAqB,CACzB9nD,GAAG2vC,OAAOoY,SAAS/nD,EAAG2vC,OAAOwB,WAAa2W,GAC1C9nD,EAAG2vC,OAAOn0B,QAAQxb,EAAG2vC,OAAO3zB,UAAY,GACxChc,EAAG2vC,OAAS11C,EAAQ,QAAQ+F,EAAG2vC,OAAQ,cAG/C,GAA4B,KAAxB3vC,EAAGkiD,eAAenpC,IA7OCpjB,QAAfqK,EAAC0vC,SAAc,CACf1vC,EAAA2vC,OAAAv7C,QAAA8e,KAAyBlT,EAAA0vC,SA+OzB,IA9OIoY,GAAc,CA+OlB9nD,GAAG2vC,OA9OKoY,SAAI/nD,EAAA2vC,OAAgBwB,WAAA2W,GA+O5B9nD,EAAG2vC,OA9OKn0B,QAAGxb,EAAA2vC,OAAe3zB,UAAS,IAwT/C,QAAS5C,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAwE1D,QA9OOC,GAAU7jB,GACb,GAAA2jB,GAAA3jB,EAAA2jB,KACI9iB,EAAIb,EAAIa,IA+OZ,IA9OW,QA8OPA,EAGA,IAAK,GAhPDijB,GAAG,GAAYC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAgPVxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GApnCX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBACChJ,MA7OQ,IA+ORA,MA7OQ,KA+ORA,MAAS,KAETA,MA7OQ,KA+ORA,MAAS,MAEXA,MAAS,MACXrL,EAAGsU,SA7OQtU,EAAAqU,gBAAc,GA+OzBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAErBzU,EAAG+S,WAAY,EACf/S,EAAG+3C,qBACH/3C,EAAG6kH,YACH7kH,EAAGumH,WAAY,EACfvmH,EAAG0kH,WAAY,EACf1kH,EAAGilH,SAAU,EACbjlH,EAAGklH,aAAc,EACjBllH,EAAGsS,WAAY,EACftS,EAAGgT,YAAa,EAChBhT,EAAGmlH,cA7OQ,EA8OXnlH,EAAGolH,UA7OK,EA+ORplH,EAAGsrH,iBA7OeA,EA8OlBtrH,EAAGyrH,aAAc,EAIjBzrH,EAAG2nH,cAAgBA,EAGnB3nH,EAAGyhB,oBAAsBA,EA5OzBzhB,EAAA+/E,kBAAuBA,EA+OvB//E,EAAGo9E,2BA7O4BA,EA8O/Bp9E,EAAGw5G,YA7OSA,EA8OZx5G,EAAGsmH,UAAW,EACdtmH,EAAGqmH,YA7Oa,EA+OhBrmH,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBAEH/gG,EAAG6mH,mBAAoB,EA5OvB7mH,EAAA8mH,sBAAkB,EA8OlB9mH,EAAGymH,SA7OI,EA+OPzmH,EAAGwrH,YA7Oa,EA8OhBxrH,EAAG25B,SA7OI,CA+OP,IA7OIz5B,GAAG/F,EAAiBgG,uBACpBgS,EAAGhY,EAAcgG,uBAAAwU,gBAAAxC,SA8OrBD,KAcAlS,EAAGwoH,MAAQ,WACPxoH,EAAG2yG,IAAI9wF,gBAAkB,KACzB7hB,EAAG2yG,IAAI5uD,iBAAmB,KAC1B/jD,EAAG2yG,IAAIoV,YAAc,KA5OtB/nH,EAAAilH,SAAQ,EACPjlH,EAAGklH,aAAS,EA8OZllH,EAAGmlH,cAAe,EA5OnBnlH,EAAAolH,UAAA,EA8OCplH,EAAGwrH,YAAa,EA5OjBxrH,EAAAmnH,YAAQ,EACPnnH,EAAGonH,UAAK,EA8ORpnH,EAAGqnH,YAAa,EAChBvC,mBAGJ9kH,EAAGi2G,aA7OcmM,WAAc,UAAArpG,GAAA,MAAAqpG,WAAA,WAAArpG,GAAA,MAAAqpG,WAAA,YAAArpG,GAAA,MA+O/B/Y,EAAGw5C,cA5OAC,UAAA,EACCC,WAAA,WAgPAD,UAAW,EA5OXC,WAAA,WAGDD,UAAW,EACVC,WAAA,YAGAD,UAAS,EACTC,WAAA,cAGDD,UAAA,EACCC,WAAA,aAgPAD,UAAW,EACXC,WAAY,WA1OZD,UAAW,EA8OXC,WA7OW,aAqDf15C,EAAGm5C,WAAY,EACfn5C,EAAGs0D,MAAA,WA8OKt0D,EAAG6kH,SAASvwD,MA5OjBt0D,EAAAm5C,WAAS,EA+OJn5C,EAAGm5C,WAAY,GAGvBn5C,EAAGyoH,OA7OS,SAAA3lH,GA8OR,GAAIsS,GAAQpV,EAAGqyB,IAAIjvB,QAAQN,EAC3B9C,GAAGqyB,IAAIiD,OAAOlgB,EAAO,IAKzBpV,EAAG0oH,gBAAkB,WA3OjB1oH,EAAAihG,eAAQ9lG,OAAA,IA8OJ6E,EAAG8mH,sBAAuB,IAxIlC9mH,EAAG2oH,cAAA,WACA3oH,EAAA6mH,mBAAU,EA+OT7mH,EAAG8mH,sBAAuB,EA7O3B9mH,EAAAqlH,YACArlH,EAAA6kH,SAAU1xG,gBAAA,KA+OTnT,EAAG6kH,SAAShjG,gBAAkB,KA7O9B7hB,EAAA6kH,SAAAwG,aAAa,KACbrrH,EAAAkiD,eAAY,KAChBliD,EAAAknH,QAAAttE,YA+OI55C,EAAG65C,QAAQK,YAIfl6C,EAAG4oH,gBA9OY,WA+OX,GAAIv2F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG6oH,gBA7Odx2F,EAAAx6B,KAAUmI,EAAA6oH,gBAAK3tH,GAAA0kF,OAgPlB5/E,GAAG4/E,OAASvtD,EAAIqB,MAEhB,IAAIS,KACJ,KAAK,GAAIj5B,KAAK8E,GAAGihG,eA7OlB9sE,EAAQt8B,KAAAmI,EAAAihG,eAAY/lG,GAAA6d,GAEnB/Y,GAAGi4B,OAAI9D,EAAAT,MAEP,IAAGz4B,IACA2kF,OAAA5/E,EAAA4/E,OACA9pF,UAAAkK,EAAe6kH,SAAAhjG,gBAAA/rB,UACfguD,WAAW9jD,EAAA6kH,SAAAxwF,SAAAyvB,WACX2vC,SAAAzzF,EAAa+mD,OACb5I,SAAAn+C,EAAai4B,OAGhB8kD,GAAAiB,kBAAA/iF,GAAAwD,KAAA,SAAAC,GA+OuB,MAAfA,EAAIlI,QA5ObwJ,EAAA8oH,eAA4B,EA+OnB1rC,EAA2Bp9E,EAAG6kH,SAAShjG,gBAAgB/rB,UAAWkK,EAAG6kH,SAASxwF,SAASyvB,aA3O/F/rD,EAAY2I,YAAA,QAAA,8BA+OArJ,WAAW,EA7O3B+F,KAAA,QAiPO,SAAUuD,GA7OjB5I,EAAA2I,YAAA,QAAA,gEACIrJ,WAAW,EACX+F,KAAY,UAmPhB4C,EAAG+oH,SAAW,WA7Od/oH,EAAAgpH,gBAAA,GAiPAhpH,EAAGipH,aAAe,SAAUn2G,GA7O5B9S,EAAAsS,WAAA,EACItS,EAAAgT,YAAW,EACXhT,EAAA+S,WAAY,EA+OZ/S,EAAGgpH,gBAAiB,EA7OxBhpH,EAAAqlH,YACIrlH,EAAAymH,SAAW,EACXzmH,EAAA8mH,sBAAY,EA+OZ9mH,EAAGwnH,kBAAmB,CAEtB,IAAIvsH,IACAnF,UAAWgd,EAAIhd,UA7OvBguD,WAAShxC,EAAAgxC,WACD87B,OAAA9sE,EAAW8sE,OAiPf7C,GA9OgB2B,oBAAgBzjF,GAAAwD,KAAA,SAAAC,GA+O5B,GA9OW,MA8OPA,EA9OIlI,OAAG,CA+OPwJ,EAAGqlH,SA9OS3mH,EAAAhJ,KAAA8wH,UA+OZ,KAAK,GA9OGtrH,KAAA8E,GAAQqlH,SA+OZrlH,EAAGqlH,SA9OKnqH,GAAA8oD,MAAWrnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBA+OnB7yG,EAAGqlH,SA9OK,GAAMqB,SAAA,EA+OV1mH,EAAGqlH,SAASnqH,GAAGyrH,aACf3mH,EAAGqlH,SAASnqH,GAAGyrH,WAAa,GAAIltG,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YAIxD3mH,GA9OGqlH,SAAAlqH,OAAA,IACH6E,EAAA6mH,mBAAuB,GAE5B7mH,EAAAmnH,YAAe,EACdnnH,EAAAonH,UAAc,EA+OdpnH,EAAGqnH,YAAa,EA7OjBrnH,EAAAsnH,SAAA5oH,EAAAhJ,KAAA6xH,IAEAvnH,EAAA24C,YAAS34C,EAAAsnH,SAAgB3uE,YACzB34C,EAAA6kH,SAAShjG,mBACT7hB,EAAA6kH,SAAAxwF,YA+OCr0B,EAAG6kH,SAAShjG,gBAAgB/rB,UAAYkK,EAAGsnH,SAASxxH,UACpDkK,EAAG6kH,SAASxwF,SAASyvB,WAAa9jD,EAAGsnH,SAASxjE,WAC9C9jD,EAAG+mD,OAAS/mD,EAAGsnH,SAAS7zB,SA7O3BzzF,EAAAsiB,YAAiBxP,EAAAwP,YACtBtiB,EAAA4yB,cAAyB9f,EAAA8f,aACjB,IAAIP,KACJ,KAAG,GAAAn3B,KAAW8E,GAAAqlH,SA+OVhzF,EAAIx6B,KAAKmI,EAAGqlH,SAASnqH,GAAG+7B,QA5O5Bj3B,GAAGi4B,OAAA5F,EAAYqB,OAEpB1zB,EAAUsnH,SAAK1nC,SACkB,GAArB5/E,EAAAsnH,SAAYoE,oBAA6B,GAApB1rH,EAAoBsnH,SAAAqE,oBAgPxC3rH,EAAGmnH,YAAa,EA7OpBnnH,EAAAonH,UAAc,EACnBpnH,EAAAqnH,YAAgB,GAiPgC,GAAlCrnH,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBACxD3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA7OnBpnH,EAAAqnH,YAAA,GAGQ,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBA+OH3rH,EAAGmnH,YAAa,EA7OzBnnH,EAAYonH,UAAA,EA+OHpnH,EAAGqnH,YAAa,IA3O5BrnH,EAAAsS,WAAe,EACZtS,EAAAumH,WAAc,MAgPbxuH,GAAW2I,YAAY,QAAS,gCAAiC,qBA3O1E,SAAAC,GA+OK5I,EAAW2I,YAAY,QAAS,iCA7O7BrJ,WAAA,EACA+F,KAAA,UAmPX4C,EAAGkpH,eAAiB,WA7OpBlpH,EAAAsS,WAAS,EACLtS,EAAGgpH,gBAAgB,EACnBhpH,EAAGqlH,YACHrlH,EAAAymH,SAAU,EA+OVzmH,EAAG8mH,sBA9Oe,EA+OlB9mH,EAAGwnH,kBA9OY,CAgPf,IA9OIvsH,IA+OAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UA7OxC8pF,OAAA5/E,EAAYsnH,SAAA1nC,OACfzhC,SAAAn+C,EAAAi4B,OACIw7D,SAAQzzF,EAAA+mD,OA+ORujE,QA9OOtqH,EAAAsnH,SAAWgD,QA+OlB56E,SA9OOz1C,EAAU,QAAA+F,EAAA0vC,SAAA,cA+OjBC,OAAQ11C,EAAQ,QAAQ+F,EAAG2vC,OAAQ,cACnCy3E,SA9OQ,EAiPZrqC,GA9Oa0C,uBAAAxkF,GAAAwD,KAAA,SAAAC,GA+OT,GA9OW,MA8OPA,EA9OIlI,OAAG,CA+OPwJ,EAAGmpH,aAAezqH,EAAIhJ,KAAKyzH,aACQ,GAA/BnpH,EAAGmpH,aAAajhB,YA7OhBnwG,EAAO2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,mBAEkB,GAApB7T,EAAAmpH,aAAQjhB,YA+ObnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,mBA3O/D9b,EAAc2I,YAAa,QAAAV,EAAAmpH,aAAAt1G,QAAA,mBAgP3B7T,EAAGqlH,SAAW3mH,EAAIhJ,KAAK8wH,UA7OvB,KAAG,GAAAtrH,KAAW8E,GAAAqlH,SA+OVrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBA7OrD7yG,EAAKqlH,SAAS,GAAGqB,SAAU,CAGvB1mH,GAAAqlH,SAAOlqH,OAAY,IA+OnB6E,EAAG6mH,mBA9OgB,GAiPvB7mH,EAAGmnH,YAAa,EA7OhBnnH,EAAAonH,UAAO,EA+OPpnH,EAAGqnH,YA9OI,EA+OPrnH,EAAGsnH,SA9OI5oH,EAAAhJ,KAAA6xH,IAEHvnH,EAAGsnH,SAAA1nC,SACa,GAAb5/E,EAAAsnH,SAAaoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBAEb3rH,EAAAmnH,YAAa,EACbnnH,EAAAonH,UAAe,EACfpnH,EAAAqnH,YAAc,GAGO,GAAjBrnH,EAAAsnH,SAASoE,oBAAQ,GAAA1rH,EAAAsnH,SAAAqE,oBACpB3rH,EAAAmnH,YAAgB,EA+OhBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YA9OI,GAiPgC,GAAlCrnH,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,qBACxD3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UA9OS,EA+OZpnH,EAAGqnH,YA9OI,IAkPfrnH,EAAGsS,WAAY,MAEfva,GAAW2I,YA9OI,QAAa,gCAAA,qBAiPjC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,UAQlB4C,EAAGopH,eAAiB,WAEhB,GAAI/2F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SACbhzF,EAAIx6B,KA9OCmI,EAAAqlH,SAAAnqH,GAAA4kF,kBAgPT,IAAIA,GAAoBztD,EAAIqB,MAE5BqpD,GA9Oe8C,qBAAqBC,GAAoBrhF,KAAA,SAAAC,GACrC,MAAZA,EAAAlI,QA+OCuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBACpD7T,EAAGqlH,YACHrlH,EAAG6kH,SAAS1xG,gBAAkB,KAC9BnT,EAAG6kH,SAAShjG,gBAAkB,KA7OvC7hB,EAAA2hB,eACI3hB,EAAA6kH,SAAAwG,aAAoB,KACpBrrH,EAAAurH,YACAvrH,EAAAkiD,eAAW,KACXliD,EAAA6mH,mBAA2B,EAC3B7mH,EAAA8mH,sBAA2B,EAC3B9mH,EAAAmnH,YAAS,EACTnnH,EAAAonH,UAAiB,EACjBpnH,EAAQqnH,YAAW,EACnBrnH,EAAQwrH,YAAU,GAgPbzzH,EAAW2I,YAAY,QAAS,gCAAiC,qBA3OzE,SAAUC,GACV5I,EAAc2I,YAAG,QAAiB,iCAC1BrJ,WAAQ,EA+OR+F,KAAM,UAIlB4C,EAAGqpH,UA9OU,SAAQv2G,GA+OjB9S,EAAGsS,WA9OW,EAEdtS,EAAGqlH,WA+OH,IAAIpqH,IA7OAnF,UAAMgd,EAAAhd,UACNguD,WAAWhxC,EAAAgxC,WACXwlE,WAAWx2G,EAAGy2G,WACdC,gBAAe12G,EAAA80G,QACfhoC,OAAA5/E,EAAUsnH,SAAG1nC,OACblwC,SAAUz1C,EAAG,QAAA+F,EAAA0vC,SAAA,cA+ObC,OAAQ11C,EAAQ,QAAQ+F,EAAG2vC,OAAQ,cA5OvCotC,GAAyByC,yBAAuBvkF,GAAKwD,KAAA,SAAeC,GAChE,GAAQ,KAAJA,EAAIlI,OAAW,CA+OfwJ,EAAGmpH,aAAezqH,EAAIhJ,KAAKyzH,aA7OR,GAAhBnpH,EAAAmpH,aAAgBjhB,YACnBnwG,EAAA2I,YAA2B,UAAGV,EAASmpH,aAAAt1G,QAAgB,iBAEpD,GAAA7T,EAAAmpH,aAAAjhB,YACHnwG,EAAW2I,YAAY,UAASV,EAAAmpH,aAAAt1G,QAA8B,iBAiP1D9b,EAAW2I,YAAY,QAASV,EAAGmpH,aAAat1G,QAAS,iBA5OlE7T,EAAAqlH,SAAe3mH,EAAAhJ,KAAA8wH,WACdxmH,EAAAmnH,YAAW,EACPnnH,EAAAonH,UAAW,EACXpnH,EAAAqnH,YAAM,EA+ONrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,GACvB,KAAK,GAAIrsH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAAS,GAAGqB,SAAU,CAGzB1mH,GAAGsnH,SAAS1nC,SAC0B,GAAlC5/E,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBA5OpD3rH,EAAAmnH,YAAA,EACCnnH,EAAAonH,UAAA,EACDpnH,EAAAqnH,YAAA,GAGF,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBACV3rH,EAAAmnH,YAAuB,EACvBnnH,EAAAonH,UAAmB,EA+ONpnH,EAAGqnH,YAAa,GA3OZ,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACJ3rH,EAAAmnH,YAAA,EA+OAnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,IA1OxBrnH,EAAAsS,WAAc,MAkPdva,GA9OW2I,YAAY,QAAAV,EAAAmpH,aAAyBt1G,QAAS,kBAkP9D,SA9OSlT,GA+OR5I,EA9OW2I,YAAA,kCAmPnBV,EAAGypH,kBA9OY,WA+OX,GAAIp3F,KAEJ,KAAK,GA9OGn3B,KAAG8E,GAAAqlH,SAgPPhzF,EA9OIx6B,MACA/B,UAAGkK,EAASqlH,SAASnqH,GAAApF,UACrBguD,WAAY9jD,EAAGqlH,SAASnqH,GAAA4oD,WACxB1sB,WAAGp3B,EAAAqlH,SAAkBnqH,GAAAk8B,WACrBH,QAAGj3B,EAAAqlH,SAAgBnqH,GAAI+7B,QACvB+vF,SAAUhnH,EAAAqlH,SAAAnqH,GAAA8rH,SACVa,SAA2B,GAAlB7nH,EAAKqlH,SAAGnqH,GAAA2sH,UAAU,IAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GA+O3B/zG,UA9OQ5T,EAAQG,OAEhBsmH,WAAY1sH,EAAI,QAAA+F,EAAAqlH,SAAAnqH,GAAAyrH,WAAA,cA+OhB+C,SAAUzvH,EAAQ,QAAQ+F,EAAGqlH,SAASnqH,GAAGwuH,SAAU,cA7OnDC,UAAO1vH,EAAS,QAAQ+F,EAAAqlH,SAAAnqH,GAAAyuH,UAAA,cA+OxBC,QA9OQ3vH,EAAG,QAAS+F,EAAAqlH,SAAAnqH,GAAA0uH,QAA2B;AA+O/CC,MAAO7pH,EAAGqlH,SAASnqH,GAAG2uH,OAI9B,IAAI5uH,IACA4xB,UAAWlwB,KAAKqkB,UAAUqR,GAE9B0qD,GA9OmBiD,oBAAa/kF,GAAAwD,KAAA,SAAAC,GACb,KA8OXA,EAAIlI,OACJuB,EA9OW2I,YAAA,UAAahC,EAAAhJ,KAAAme,QAAA,sBAgPnBnV,EAAIhJ,KAAKo0H,cAAe,EAC7B/xH,EA9OS2I,YAAO,UAAShC,EAAAhJ,KAAAme,QAA2B,uBAiPpD9b,EA9OW2I,YAAA,QAAahC,EAAAhJ,KAAAme,QAAA,sBA+OxB7T,EAAGgT,YAAa,IAErB,SA9OQrS,GA+OP5I,EA9OO2I,YAAY,kCAmP3BV,EAAG+pH,YA9Oc,WAgPb/pH,EAAGgqH,QA9OK,CA+OR,KAAK,GA9OG9uH,KAAM8E,GAAAqlH,SA+OqB1vH,QAA3BqK,EAAGqlH,SAASnqH,GAAG8rH,UAAoD,IAA3BhnH,EAAGqlH,SAASnqH,GAAG8rH,UAA+CrxH,QAA7BqK,EAAGqlH,SAASnqH,GAAGyrH,aACxF3mH,EAAGgqH,QAAS,EA1OpB,IAAGhqH,EAAAgqH,OAqYC3vH,EAAQ8C,OAAO,UAAW,8BA7OtB9F,WAAO,EA+OP+F,KA9OI,WAzJG,CACZ4C,EAAAsS,WAAA,EACAtS,EAAAiqH,aAAW,EACXjqH,EAAA8mH,sBAAU,CACV,IAAAz0F,KACA,KAAA,GAAAn3B,KAAA8E,GAAAqlH,SA+OK,GAAIrlH,EAAGqlH,SAASnqH,GAAG8rH,SAAU,CA7O3B,GAAAluE,IACK8mC,OAAG5/E,EAASsnH,SAAA1nC,OACZsqC,OAASlqH,EAAAqlH,SAAAnqH,GAAA0sH,QACV9xH,UAAGkK,EAAAqlH,SAAAnqH,GAAApF,UACHguD,WAAG9jD,EAAAqlH,SAAAnqH,GAAA4oD,WACD7sB,QAASj3B,EAAAqlH,SAAAnqH,GAAA+7B,QACX+vF,SAAQpgH,SAAW5G,EAAAqlH,SAAUnqH,GAAA8rH,UAC/B6C,MAAQjjH,SAAW5G,EAAAqlH,SAAQnqH,GAAA2uH,OACzBlD,WAAA1sH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAAyrH,WAAA,cA+OE+C,SAAUzvH,EAAQ,QAAQ+F,EAAGqlH,SAASnqH,GAAGwuH,SAAU,cACnDC,UAAW1vH,EAAQ,QAAQ+F,EAAGqlH,SAASnqH,GAAGyuH,UAAW,cA7OrEC,QAAyB3vH,EAAA,QAAA+F,EAAAqlH,SAA4BnqH,GAAA0uH,QAAK,cAC9CxyF,WAAgBp3B,EAAAqlH,SAAAnqH,GAAAk8B,WACjB1C,OAAA10B,EAAeqlH,SAASnqH,GAAAw5B,OACpB0yF,SAAApnH,EAAaqlH,SAAAnqH,GAAAksH,SAChBv0F,UAAW7yB,EAAAqlH,SAAYnqH,GAAA23B,UA+OnBjB,iBAAkB5xB,EAAGqlH,SAASnqH,GAAG02B,iBA7OpCW,SAAOvyB,EAAAqlH,SAAanqH,GAAAq3B,SACrBq5F,UAAW5rH,EAAAqlH,SAAYnqH,GAAA0wH,UA+OnBphG,YAAaxqB,EAAGqlH,SAASnqH,GAAGsvB,YA7O/BqhG,gBAAA7rH,EAAAqlH,SAAAnqH,GAAA2wH,gBACDzhG,MAAWpqB,EAAAqlH,SAAYnqH,GAAAkvB,MA+OnB+/F,SAAUnqH,EAAGqlH,SAASnqH,GAAGy4C,YA7O9Bm4E,gBAAoB9rH,EAAAqlH,SAAAnqH,GAAA4wH,gBAClB5oE,aAAYljD,EAAAqlH,SAAUnqH,GAAAgoD,aACpBknE,YAAYpqH,EAAAqlH,SAAanqH,GAAA0sH,QAAS,EAClCyC,aAAY,EA+OXC,QAAStqH,EAAGqlH,SAASnqH,GAAGovH,QACxBx2G,UAAW5T,EAAWG,OA7OvBy/E,kBAAkB9/E,EAAGqlH,SAAAnqH,GAAA4kF,kBACrBlqF,OAAA,EAgPHy8B,GAAIx6B,KAAKihD,GAKjB3mB,QAAQC,IAAIC,EAEZ,IAAIp3B,IACAoqH,SAAU1oH,KAAKqkB,UAAUqR,GAgBxBryB,GAAG0kH,WAzKJzpH,EAAGsvH,cAAevqH,EAAI4kH,UACtB7nC,EAAoBI,yBAAkBliF,GAAAwD,KAAA,SAAAC,GAClCA,EAAAhJ,KAAWke,aAAY,GA+OnB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,4BA5OxD7T,EAAAumH,WAAW,EA+OPvmH,EAAGwqH,YAAc,GAGjBzyH,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,qBA1OvD,SAAAlT,GACA5I,EAAW2I,YAAS,kCA4JvBq8E,EAAyB2C,uCAAuCzkF,GAAKwD,KAAK,SAAUC,GA5OjF,GA6OCsB,EAAGqlH,YA7OQ,MAAZ3mH,EAAAlI,OAAY,CAEf,GADGwJ,EAAAmpH,aAAAzqH,EAAAhJ,KAAAyzH,aAC6B,GAArBnpH,EAAAmpH,aAAYjhB,YAAS,CAgPpBnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,wBA7O7D7T,EAAAqlH,SAAA3mH,EAAAhJ,KAAA8wH,WACHxmH,EAAAwrH,YAAqB,EACjBxrH,EAAAmnH,YAAA,EACLnnH,EAAAonH,UAAA,EA+OMpnH,EAAGqnH,YAAa,EAChBrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,GACvB,KAAK,GAAIrsH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAAS,GAAGqB,SAAU,EACrB1mH,EAAGqlH,SAASnqH,GAAGyrH,aACf3mH,EAAGqlH,SAASnqH,GAAGyrH,WAAa,GAAIltG,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YAExD3mH,GAAGsnH,SAAS1nC,SA7O1B,GAAA5/E,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBAEkB3rH,EAAAmnH,YAAA,EA+OAnnH,EAAGonH,UAAW,EA7OdpnH,EAAAqnH,YAAA,GAGA,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBACT3rH,EAAYmnH,YAAW,EACpBnnH,EAAAonH,UAAA,EACFpnH,EAAAqnH,YAAkB,GAGH,GAAfrnH,EAAesnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACb3rH,EAAAmnH,YAAA,EACMnnH,EAAAonH,UAAA,EACjBpnH,EAAoBqnH,YAAA,QAIpB,IAAa,GAAArnH,EAAAmpH,aAAAjhB,YAAA,CACbnwG,EAAa2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,uBACb,IAAAlf,GAAA,EACQ,KAAA,GAAAuG,KAAYwD,GAAAhJ,KAASm9B,UA+OhBl+B,EAAWA,EAAW+J,EAAIhJ,KAAKm9B,UAAU33B,GAAG23B,UAAY,MA5O9Dx4B,GAAA8C,OAAAuB,EAAAhJ,KAAAme,QAAAlf,GAAA0C,WAAA,EAAA+F,KAAA,MACHD,QAAYuC,OAAAjB,KAAS,kBAkPhB1G,GAAW2I,YAAY,QAASV,EAAGmpH,aAAat1G,QAAS,gBA3O9D7T,GAAAumH,WAAA,EA+OCvmH,EAAGwqH,YAAc,MA1OjBzyH,GAAI2I,YAAA,8BAEhBV,GAAAsS,WAAqB,GAErB,SAAU3R,GACF5I,EAAQ2I,YAAW,mCA4QnCV,EAAG+xB,KAAO,WACN/xB,EAAG25B,SAAU,GAGjB35B,EAAGyqH,WAAa,WACZzqH,EAAG8oH,eA9OgB,GAkPvB9oH,EAAG0qH,YAAc,WACb,GAAIr4F,KACJ,KAAK,GAAIn3B,KAAK8E,GA9OEihG,eA+OZ5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAElC/Y,GAAGi4B,OAAS5F,EAAIqB,MAEhB,IAAIz4B,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WA9OO9jD,EAAA6kH,SAAAxwF,SAAAyvB,WA+OP2vC,SA9OIzzF,EAAA+mD,OA+OJ5I,SAAUn+C,EAAGi4B,OAEjB8kD,GAAyBkB,kBAAkBhjF,GAAKwD,KAAK,SAAUC,GA7O5D,GAAe,MAAfA,EAAAlI,OAAe,CAkPV,GAjPJwJ,EAAA2qH,YAAWjsH,EAAYhJ,KA+OnBsK,EAAG6oH,mBAEC7oH,EAAGqlH,SAASlqH,OAAS,EACrB,IAAK,GAAID,KAAK8E,GAAGqlH,SA7O9B,IAAoB,GAAAl7G,KAAAnK,GAAY2qH,YACrB3qH,EAAAqlH,SAAAnqH,GAAAk8B,YAAAp3B,EAAA2qH,YAAAxgH,GAAAitB,YA+Ocp3B,EAAG6oH,gBAAgBhxH,KAAKmI,EAAG2qH,YAAYxgH,QAxOvDnK,GAAA6oH,gBAAwB7oH,EAAG2qH,WAE3B3qH,GAAA6oH,gBAAsB1tH,OAAG,EACzB6E,EAAA8oH,eAAuB,EAGvBzuH,EAAY8C,OAAA,UAAgB,uBAC5B9F,WAAkB,EAClB+F,KAAW,SAkPhB,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBA4E5DV,EAAGqiH,UA9OS,WA+ORriH,EAAG2vC,OA9OK,KA+OR3vC,EAAG0vC,SAAW,KACd1vC,EAAGy5G,cAAgB,MAwBvBz5G,EAAG4qH,WAAa,SA9OQ93G,GA+OpB,GAAIA,EAAIk0G,SAAU,CAEd,GAAI/rH,IACAnF,UAAWkK,EA9OC6kH,SAAShjG,gBAAkB/rB,UA+OvC+0H,eA9OgB5wH,EAAG,QAAY6Y,EAAA6zG,WAAa,cA+O5CK,SAAUl0G,EAAIk0G,SACd6C,MA9OoB,IA8OZ/2G,EAAI+2G,OA9OuBl0H,QAAZmd,EAAA+2G,MAAY/2G,EAAA+2G,MAAA,EAiPvC9sC,GA9OuBkD,QAAShlF,GAAAwD,KAAQ,SAAAC,GACpB,MA8OZA,EAAIlI,SACJsc,EAAI42G,SAAWt1H,QAAQ8e,KAAKxU,EAAIhJ,KAAKo1H,cACrCh4G,EAAI62G,UA9OYv1H,QAAG8e,KAAAxU,EAAahJ,KAAAq1H,eA+OhCj4G,EAAI82G,QAAUx1H,QA9OK8e,KAAAxU,EAAWhJ,KAAAs1H,eAgPnC,SAAUrqH,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAgBxDrG,GAAQ8C,OAAO,UA9OK,uBA+OhB9F,WAAW,EACX+F,KAAM,OAEV0V,EAAI6zG,WA9OY,MAsPxB3mH,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YA9OYjB,EA+OZkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aA9OYxB,EA+OZyB,QAAS,GAAIpB,MA9OG,KAAA,EAAW,IA+O3BgB,QAAS,GAAIhB,MACbqB,YAAa,GAUjB9a,EAAG+a,UAAY,WACX/a,EAAGua,cAAcE,QAAUza,EAAGua,cAAcE,QAAU,KAAO,GAAIhB,MACjEzZ,EAAG2a,YAAYF,QAAUza,EAAGua,cAAcE,SAG9Cza,EAAG+a,YAEH/a,EAAGX,KAAO,SAAUyT,GAChBA,EAAI8zG,OAAQ,GAIhB5mH,EAAGgb,MA9OI,WA+OHhb,EAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACP,IAAI4K,OAIpBzZ,EAAGob,MA9OK,WA+OJpb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MA9OK,WA+OJtb,EAAGub,OA9OC1M,QAAc,GAiPtB7O,EAAGwb,QA9OK,SAAaC,EAAAC,EAAAC,GA+OjB3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SA9OS,eAAiB,aAAI,aAAA,YAAA,QA+OjC5b,EAAG6b,OA9OS7b,EAAG4b,QAAA,GAgPf5b,EAAG8b,iBA9OgB,cAgPnB9b,EAAGib,QACCpM,QAAQ,GAIZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAIZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAAgB,GAAIxC,KACxBwC,GA9OOT,QAAeO,EAAAC,UAAA,GA+OtBhc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SA5OZ6iB,KAAS4C,EA+OLzlB,OAAQ,gQA1mChBpC,QACKC,OAAO,0CACPe,WAAW,yCAA0Cg2H,MAkoC9D,WACI,YAOA,SAASW,GA9OiBhyH,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAAyX,EA+OtBI,EA9OQH,EAAuB+oC,EAA6BmiC,EAAAv7B,GAkT5D,QAAStvC,KACLlS,EAAGu7C,eACCC,aA9OY,UA+OZnzB,KAAM,MA5ONmzB,aAAA,WA+OAnzB,KA9OI,MAgPR00D,EA9OgBC,mBAAyBv+E,KAAI,SAAKC,GAClC,MA8ORA,EA9OIlI,SA+OJwJ,EAAGukH,kBAAoB7lH,EAAIhJ,KA7O5BsK,EAAAsS,WAAe,IAgPnB,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDq8E,EAAyB0B,mBAAmBtsE,GAAW1T,KAAK,SAASC,GAC9C,MAAfA,EAAIlI,SACJwJ,EAAGgsH,iBAAmBttH,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDsR,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GA7OtD,MAAAA,EAAAlI,SACDwJ,EAAAqS,YAAe3T,EAAAhJ,KACXsK,EAAAsS,WAAW,IAgPhB,SAAS3R,GA7OR5I,EAAI2I,YAAa,QAAA,mBAAA,oBAkPzB,QAAS+jH,GAAe3xG,GACpB9S,EAAG0kH,WAAY,EACf1kH,EAAGgT,YAAa,EAChBhT,EAAG24C,YAAc7lC,EAAI6lC,YA7OtB34C,EAAA2kH,eAAoB7xG,EAAAskB,WACnBp3B,EAAG4kH,UAAS9xG,EAAA8xG,SA+OZ,KAAK,GAAI/sG,KAAK7X,GAAGqS,YA7OlBrS,EAAAqS,YAAAwF,GAAA1F,YAAAW,EAAAX,YA+OSnS,EAAG6kH,SAAS1xG,gBAAkBnT,EAAGqS,YAAYwF,GAIrD4J,GAAoB3O,EAAIX,UAAW,WA7OpC,IAAA,GAAA0F,KAAgB7X,GAAA2hB,YACf3hB,EAAa2hB,YAAA9J,GAAA/hB,YAAAgd,EAAAhd,YACJkK,EAAI6kH,SAAAhjG,gBAAA7hB,EAAA2hB,YAAA9J,GAIdiuC,GAAchzC,EAAAhd,UAAA,WACb,IAAA,GAAc+hB,KAAA7X,GAAA68C,eACD78C,EAAK68C,eAAShlC,GAAAisC,aAAAhxC,EAAAgxC,aACd9jD,EAAA6kH,SAAAxwF,SAAAr0B,EAAA68C,eAAAhlC,MAKjBulE,EAAwBtqE,EAAAhd,aAuPxB,QAASgvH,GAAgB3tG,GA5OtB4lE,EAAA+B,2BAAA3sE,GAAA1T,KAAA,SAAAC,GA+OwB,MAAfA,EAAIlI,QA7ONwJ,EAAA+kH,gBAAermH,EAAAhJ,KACjBsK,EAAAglH,eAAQxqH,EAAA++C,OAAAv5C,EAAA+kH,gBAAA,eA+OJ/kH,EAAGsS,WAAY,EACftS,EAAGilH,SAAU,EACbjlH,EAAGklH,aAAc,EA7OlBllH,EAAAmlH,cAAY,EAChBnlH,EAAOolH,UAAS,GAgPXrtH,EAAW2I,YAAY,QAAS,yBAA0B,kBA5O3DyW,GACJA,KACH,SAAYxW,GA+OR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAmH5D,QAASm3C,KA9ONhmC,EAAgBimC,sBAAAr5C,KAAA,SAAAC,GACC,MAAjBA,EAAAlI,QAgPSwJ,EAAG+3C,kBAAoBr5C,EAAIhJ,KA9O3BsK,EAAA+3C,kBAAAv9C,EAAA++C,OAAAv5C,EAAA+3C,kBAAA,eACT/3C,EAAAsS,WAAgB,GAEhBva,EAAA2I,YAAsB,QAAA,yBAAA,mBAEtB,SAAAC,GACA5I,EAAA2I,YAAuB,QAAA,mBAAA,oBAkR1B,QAAS+gB,GA/OMtP,EAAwBgF,GAgP/BhF,GACAnS,EAAG6kH,SAAShjG,gBAAkB,KA9O/B7hB,EAAA2hB,eACC3hB,EAAA6kH,SAAWoH,UAAY,KAG3BjsH,EAAA6kH,SAAAxwF,SAAyB,KACrBr0B,EAAA68C,kBAgPA78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KA9OzBngG,EAAAwgG,yBACCxgG,EAAAwgG,sBAAuB,KAgPvBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KA9OxB7gG,EAAAi+C,iBAAe,KACXj+C,EAAAihG,kBAgPAjhG,EAAGihG,eA/OI,KAgPPjhG,EAAGigG,yBACHjgG,EAAGsgG,4BA9OJtgG,EAAA2gG,qBACC3gG,EAAA+gG,qBAgPAhkB,EAAyBmB,yBAAyB/rE,GAAW1T,KAAK,SAASC,GACpD,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MA9O5BsK,EAAe2hB,YAAKxmB,OAAA,GACVd,EAAA8C,OAAA,UAAA,oDACC9F,WAAA,EACC+F,KAAI,OAKV+Z,IAgPCnX,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBA7OzD,SAASlB,GACLtG,EAAOwH,MAAA,QAAe,mBAAkB,sBAkP5C7B,EAAG6kH,SAAShjG,gBAAkB,KAC9B7hB,EAAG2hB,eA9OH3hB,EAAA6kH,SAAAoH,UAAqB,KAiPrBjsH,EAAG6kH,SA/OSxwF,SAAG,KAgPfr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGwgG,yBA9OHxgG,EAAAwgG,sBAA2B,KAgP3BxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBA9OX3gG,EAAS+gG,sBAEL/gG,EAAA6kH,SAAAwG,aAAyB,KAkP7B,QAASa,GA/OMr2F,GAiPXknD,EA/OqBoB,gBAAAtoD,GAAAp3B,KAAA,SAAAC,GACV,MAAHA,EAAGlI,OACHwJ,EAAGurH,SAAA7sH,EAAehJ,KAiPlBsK,EA/OGsS,WAAA,GAiPR,SAAS3R,GA9OR5I,EAAI2I,YAAA,QAAA,mBAAA,cAgPJV,EAAGsS,WA/OC,IAiPRtS,EAAG6kH,SA/OCwG,aAAW,KAoPnB,QA/OQvlE,GAAWhwD,EAAAqhB,GAgPf,GA/OIrhB,EAAA,CAgPAkK,EAAG6kH,SA/OQxwF,SAAA,KAgPXr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBA/OmB,KAgPtBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBA/OsB,KAgPzBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBA/OI,KAgPPj+C,EAAGihG,kBACHjhG,EAAGihG,eA/OK,KAgPRjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EA/OG+gG,oBACH,IAAG9lG,IACAnF,UAAIA,EACPykE,OAAA,EAgPI+qD,OAAQtlH,EAAG6kH,SAASwG,aAAazrC,OAErC7C,GAAyBQ,4BAA4BtiF,GAAKwD,KAAK,SAASC,GACjD,MAAfA,EAAIlI,QA9OjBwJ,EAAA68C,eAA4Bn+C,EAAAhJ,MACXsK,EAAA68C,eAAA1hD,OAAA,EACZd,EAAgB8C,OAAW,UAAA,6DAChB9F,WAAc,EAClB+F,KAAU,OAIV4C,EAAAmmD,eAAS,EAGRhvC,IACDnX,EAAAsS,WAAA,GAiPCjY,EAAQwH,MAAM,QAAS,yBAA0B,mBA7OtD,SAAIlB,GACJtG,EAAAwH,MAAA,QAAgB,mBAAA,wBAkPnB7B,GAAG6kH,SAASxwF,SAAW,KACvBr0B,EAAG68C,kBACH78C,EAAG4mD,eA9OR5mD,EAAAmgG,sBACKngG,EAAAmgG,mBAAS,KACTngG,EAAAwgG,yBAgPAxgG,EAAGwgG,sBA/Oc,KAgPjBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eA/OI,KAgPP7gG,EAAGi+C,iBA/Oe,KAgPlBj+C,EAAGihG,kBACHjhG,EAAGihG,eA/OW,KAgPdjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBAMX,QAAS2N,GAAc5qD,EAAYhuD,EAAWyI,GAE1C,GAAIulD,GAAchuD,EAAW,CA9O9BkK,EAAAmgG,sBAgPKngG,EAAGmgG,mBAAqB,KA9OzBngG,EAAAwgG,yBACAxgG,EAAAwgG,sBAAY,KACZxgG,EAAA6gG,kBACA7gG,EAAA6gG,eAAS,KACT7gG,EAAAi+C,iBAAS,KACTj+C,EAAAihG,kBACAjhG,EAAAihG,eAAoB,KACpBjhG,EAAAigG,yBACAjgG,EAAAsgG,4BACAtgG,EAAA2gG,qBACA3gG,EAAA+gG,qBACA/5C,IACAhnD,EAAA2uG,QAAAhyG,KAAAC,MAAwBoD,EAAA6kH,SAAAxwF,SAAA2vB,OACxBhkD,EAAA4uG,YAAA5uG,EAAA2uG,QAA2BE,KAC3B,IAAA5zG,IACA6oD,WAAiB9jD,EAAA6kH,SAAAxwF,SAAAyvB,WACjBhuD,UAAAkK,EAAA6kH,SAAoBhjG,gBAAA/rB,UACpBykE,OAAA,EACA+qD,OAAAtlH,EAAA6kH,SAAiBwG,aAAAzrC,OAEjB7C,GAAoBS,yBAAAviF,GAAAwD,KAAA,SAAAC,GACpB,GAAW,MAAXA,EAAWlI,OAAA,CAgPFwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAAQskD,KACxC,IAAIoD,KA9OT5sD,GAAWqI,QAAA7C,EAAAq+C,OAAA,SAAAwI,GACX,GAAA/N,IACAuO,KAAmBR,EAAAQ,KACnBI,SAAcZ,EAAAH,OACRI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEVM,GAAevvD,KAAAihD,KAElB94C,EAAA4mD,YAAAQ,MAiPYrvD,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GA9OpB5I,EAAA2I,YAAA,QAAA,mBAAA,oBAGIsmD,KACIhnD,EAAAmgG,sBAgPAngG,EAAGmgG,mBA/OI,KAgPPngG,EAAGwgG,yBACHxgG,EAAGwgG,sBA/OgB,KAgPnBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eA/OY,KAgPf7gG,EAAGi+C,iBAAmB,KA9OvBj+C,EAAAihG,kBACCjhG,EAAAihG,eAAW,KAgPXjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBA9OR3gG,EAAA+gG,qBAqPH,QA/OQ36C,GAAYc,GAEhB,GAAAA,EAAAo6C,kBAAA,CACI,GAAA96C,GAAW,QAAAC,EAAAS,EAAAO,UAAA,GACXd,EAAYnsD,EAAA6P,KAAArK,EAAAq+C,QAgPRqI,OAAUF,GA7OHhsD,GAAAgnG,MAAAxhG,EAAAq+C,OAAA,SAAAwI,GACX,MAAAJ,GAAYI,EAAAH,SAEhBlsD,GAAAqI,QAAA7C,EAAA4mD,YAAA,SAAAC,GACI,GAAAA,EAAAY,WAAWjB,EAAA,CAiPH,GAAIi7C,GAAYjnG,EAAO8xB,IAAI46B,EAAKo6C,kBAAmB,SA9O/Dz6C,GAAAC,OAAAu6C,EAAA7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GACe,MAAArsD,GAAA3F,SAAA4sG,EAAA56C,EAAAvrB,aAwBRt7B,EAAAgiG,UAAA96C,EAAiBo6C,iBACjB,IAAAjvE,KACA,KAAA,GAAAn3B,KAAA8E,GAAAgiG,UACA3vE,EAAAx6B,KAAAmI,EAAiBgiG,UAAA9mG,GAAA6rD,OAEjB/mD,GAAA+mD,OAAA10B,EAAAqB,OAEA6xF,EAAAvlH,EAAoB6kH,SAAAhjG,gBAAA/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA+mD,WAwP/B,QAASy+D,GAAoBt+D,GACzB,GAAIA,EAAKu+D,kBAAmB,CACxB,GAAIj/D,GAAW,QAAUC,EAAUS,EAAKO,UAAY,GAChDd,EA/OiBnsD,EAAA6P,KAAArK,EAAA6vF,iBAgPjBpoC,SA/OIjB,GAiPRhsD,GAAOqI,QA/OI7C,EAAA0lH,iBAAA,SAAA7+D,GACHA,EAAAY,WAAcjB,IAgPdK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QA9OpCxrB,SAAK4rB,EAAAu+D,kBAAA1+D,gBAcjBC,KAqPR,QA/OQA,KAgPJxsD,EA/OOqI,QAAA7C,EAAA0lH,iBAA2B,SAAAx+D,GAC9BA,EAAGy+D,kBAAoB,OAoP/B,QAASC,GAAW1+D,GAEhBlnD,EAAG2kH,eAAiB,EAEpB,IA/OIpjB,GAAQskB,EAAArkB,MAAAxhG,EAAW6vF,gBAAK,SAAAhpC,GAgPxB,MA/OOjgD,UAAAigD,EAAWY,SAAInkC,UAAA,MAgPvBmkC,QAEH,IAAIP,EAAKO,WAAa85C,EA9OnBvhG,EAAA2kH,eAAcnqH,EAAA8xB,IAAA46B,EAAAu+D,kBAAA,UAAA/xF,KAAA,SACb,CACA,GAgPIoyF,GAAmB5+D,EAAKu+D,iBA9O7BjrH,GAAAqI,QAAS7C,EAAA6vF,gBAAc,SAAAhpC,GAgPlB,GAAIA,EAAEY,WAAa85C,EACfvhG,EAAG2kH,eAAiBnqH,EAAO8xB,IAAIw5F,EAAkB,UAAUpyF,KAAK,SAEhE,IAAI+yB,EAAUI,EAAEY,WAAahB,EAAUS,EAAKO,UAAW,CA9O9D,GAAAs+D,GAAqBvrH,EAAW8xB,IAAAw5F,EAAU,UAChCE,EAAAxrH,EAAA6P,KAAArK,EAAA6vF,iBAAApoC,SAAA,QAAAhB,EAAAI,EAAAY,UAAA,IACCq+D,GAAWtrH,EAAAyC,OAAA+oH,EAAAl/D,OAAA,SAAAm/D,GACpB,MAAiBzrH,GAAA3F,SAAAkxH,EAAAE,EAAA3qF,eAqPxBt7B,EAAG4xG,OA/OI1qD,EAAAu+D,kBAAiB1+D,OAgPxBw+D,EA/OOvlH,EAAA6kH,SAAiBhjG,gBAAA/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA4xG,QAmP5B,QA/OQnrD,GAAGc,GAgPP,MA/OO3gD,UAAA2gD,EAAAjkC,UAA2B,IAkPtC,QA/OQ+9E,GAAUj6C,GA0Pd,MARIA,IA/OYA,EAAGjsD,OAAS,GAgPxBX,EAAOqI,QAAQukD,EAAU,SAASP,GA9OlC,GAAA,GAAAA,EAAAvrB,SAAyB,CACjB,GAAI2mE,GAAWznG,EAAK6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IACpBR,GAAAoG,WAAG,MAAiBg1C,KAmPzB76C,EAgCX,QAASm+D,GAAkBzvH,EAAWguD,EAAYiD,GAC9C/mD,EAAGwgG,yBACHxgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KA9OxB7gG,EAAAi+C,iBAAuB,KACnBj+C,EAAAihG,kBACAjhG,EAAAihG,eAAkB,KAgPlBjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,oBACH,IA/OI9lG,IACAnF,UAAGA,EACHguD,WAAGA,EACH1sB,WAAG2vB,EACHwT,OAAG,EAiPPwiB,GA/OOU,4BAA2BxiF,GAAAwD,KAAA,SAAAC,GAC3B,MAAAA,EAAAlI,QACAwJ,EAAAigG,sBAAoBvhG,EAAAhJ,KACvBsK,EAAAsS,WAAA,GAEGva,EAAA2I,YAAiB,QAAQ,yBAAA,mBAiP7B,SA/OKC,GAgPJ5I,EA/OI2I,YAAc,QAAS,mBAAgB,oBAoPnD,QAASuqD,KACL,GAAIjrD,EAAGmgG,mBA/OiB,CAgPpBngG,EAAG6gG,kBACH7gG,EAAG6gG,eA/OY,KAgPf7gG,EAAGi+C,iBA/Oa,KAgPhBj+C,EAAGihG,kBACHjhG,EAAGihG,eA/Oa,KAgPhBjhG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,oBACH,IAAI1uE,KACJ,KAAK,GA/OGn3B,KAAG8E,GAAAmgG,mBAgPP9tE,EAAIx6B,KA/OGmI,EAAAmgG,mBAAAjlG,GAAAghD,WAiPXl8C,GAAGyjD,SAAWpxB,EAAIqB,MAClB,IA/OGz4B,IACCihD,WAAWl8C,EAAAyjD,SAgPX3tD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UA9OxCguD,WAAA9jD,EAAA6kH,SAAAxwF,SAAAyvB,WACH1sB,WAAAp3B,EAAA+mD,OACGwT,OAAA,EAEHwiB,GAAGW,+BAAwBziF,GAAAwD,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QACAwJ,EAAAsgG,yBAAiB5hG,EAAAhJ,KACjBsK,EAAAsS,WAAiB,GAEjBva,EAAA2I,YAAiB,QAAA,yBAAA,sBAEjB,SAAAC,GACA5I,EAAA2I,YAAA,QAA2B,mBAAA,2BAkP9BV,GAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KA9O5BjhG,EAASsgG,4BACLtgG,EAAA2gG,qBACI3gG,EAAA+gG,qBAoPR,QA/OQmlB,KAgPJ,GAAIlmH,EAAGwgG,sBA/OoB,CAgPvBxgG,EAAGi+C,iBAAmB,KA9OtBj+C,EAAAihG,kBAgPAjhG,EAAGihG,eA/OO,KAgPVjhG,EAAG2gG,qBACH3gG,EAAG+gG,oBACH,IAAI1uE,KACJ,KAAK,GAAIn3B,KA/OG8E,GAAAwgG,sBAgPRnuE,EAAIx6B,KAAKmI,EAAGwgG,sBAAsBtlG,GAAG22B,cAEzC7xB,GAAGwjD,YAAcnxB,EAAIqB,MACrB,IAAIz4B,IACAihD,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,YAClB1tD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC1sB,WAAYp3B,EAAG+mD,OACfwT,OAAQ,EAEZwiB,GAAyBY,wBAAwB1iF,GAAKwD,KAAK,SAASC,GAC7C,MAAfA,EAAIlI,OACJwJ,EAAG2gG,kBAAoBjiG,EAAIhJ,KAE3BqC,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,GAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eA/OgB,KAgPnBjhG,EAAG2gG,qBACH3gG,EAAG+gG,qBAKX,QAASolB,KACL,GAAInmH,EAAG6gG,eAAgB,CACnB7gG,EAAGihG,kBACHjhG,EA/OGihG,eAAA,IAgPH,IAAI5uE,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG6gG,eACbxuE,EAAIx6B,KAAKmI,EAAG6gG,eAAe3lG,GAAG8kB,OAElChgB,GAAGggB,OAASqS,EAAIqB,MA9OxB,IAASz4B,IACDihD,WAAKl8C,EAAAyjD,SACD5xB,cAAW7xB,EAAAwjD,YACXxjC,OAAAhgB,EAAAggB,OACAlqB,UAAAkK,EAAY6kH,SAAAhjG,gBAAA/rB,UAgPZguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WA9OrC/E,SAAO/+C,EAAQi+C,iBAAG51B,KACd+O,WAAMp3B,EAAA+mD,OAgPNwT,OA/OM,EAiPVwiB,GAAyBa,wBAAwB3iF,GAAKwD,KAAK,SAASC,GAC7C,MAAfA,EAAIlI,OACJwJ,EAAG+gG,kBAAoBriG,EAAIhJ,KAG3BqC,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,GAAGihG,kBACHjhG,EA/OGihG,eAAA,KACHjhG,EAAA+gG,qBA8RR,QAAS3jB,KA5OL,GA6OAp9E,EAAGomH,eAAgB,EA9OvBpmH,EAAAqlH,YACIrlH,EAAAmsH,UAqPO,CACH,GAAI95F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGihG,eACb5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAElC/Y,GAAGi4B,OAAS5F,EAAIqB,OAChB1zB,EAAGqlH,YA9ORrlH,EAAOqmH,YAAY,EACfrmH,EAAAsmH,UAAA,EAEAtmH,EAAAumH,WAAU,EAoPTvmH,EAAGqyB,MACH,IAAIp3B,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjCiD,OAAQ/mD,EAAG+mD,OA9OpB9uB,OAAYj4B,EAAAi4B,OACJ2nD,OAAA5/E,EAAW6kH,SAAAwG,aAAAzrC,OACXwsC,YAAS,OAoNZ,IAAInxH,IA9OJnF,UAAYkK,EAAA6kH,SAAShjG,gBAAY/rB,UACjC8pF,OAAO5/E,EAAQ6kH,SAAAwG,aAAsBzrC,OACjCwsC,YAAM,EA2QdpsH,GAAGsS,WAAY,EACfyqE,EAAyBmC,6BAA6BjkF,GAAKwD,KAAK,SAASC,GA9O1E,GAAwB,MAAfA,EAAAlI,OAAe,CACnBwJ,EAAAqlH,SAAe3mH,EAAAhJ,KAAQ8wH,WACpBhsH,EAAOqI,QAAO7C,EAAAqlH,SAAA,SAAA73G,GAgPS,KAAdA,EAAEq6G,WACFr6G,EAAEq6G,SAAW,MAErB7nH,EAAGymH,SAAU,CACb,KAAK,GAAIvrH,KAAK8E,GAAGqlH,SA9OpBrlH,EAAAqlH,SAAkBnqH,GAAA8oD,MAAWrnD,KAAAC,MAAYoD,EAAAqlH,SAAQnqH,GAAA23G,gBACnD7yG,EAAAqlH,SAAA,GAAwBqB,SAAA,CAGxB1mH,GAAAqlH,SAAiBlqH,OAAA,GAEjB6E,EAAA+mH,aAAiBroH,EAAAhJ,KAAAsxH,SAQhBhnH,EAAAinH,eAAYvoH,EAAAhJ,KAAAwxH,QAoDTlnH,EAAAmnH,YAAmB,EACnBnnH,EAAAonH,UAAiB,EACjBpnH,EAAAqnH,YAAiB,EACjBrnH,EAAAsnH,SAAA5oH,EAAAhJ,KAA2B6xH,IAC3BvnH,EAAA6kH,SAAAoH,UAAoB,GAAAxyG,MAAAzZ,EAAAsnH,SAAA2E,WAiPXjsH,EAAGsnH,SAAS1nC,SAC0B,GAAlC5/E,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBAEnD3rH,EAAGmnH,YAAa,EA9O/BnnH,EAAAonH,UAAuB,EACrBpnH,EAAAqnH,YAAuB,GACJ,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBACnB3rH,EAAAmnH,YAAiB,EACjBnnH,EAAAonH,UAAiB,EACjBpnH,EAAAqnH,YAAoB,EACpBrnH,EAAA6mH,mBAAoB,GACb,GAAA7mH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACI3rH,EAAGmnH,YAAA,EACDnnH,EAAAonH,UAAA,EAgPApnH,EAAGqnH,YAAa,MAxO5BrnH,EAAA0nH,YAAe,EACf1nH,EAAAomH,eAAQ,GAmPRpmH,EAAGsS,WA/OI,MAiPPtS,GAAGsS,WA/OY,GAiPpB,SA/OI3R,GAgPH5I,EA/OI2I,YAAW,QAAY,mBAAS,cAgPpCV,EAAGsS,WAAY,IA4qBvB,QA/OOq1G,GAAc70G,GACb,MAAAA,GAgPIA,EAAI80G,SAAW90G,EAAI+0G,WACnBxtH,EAAQ8C,OAAO,kBAAmB,uDAC9B9F,WAAW,EA9OxB+F,KAAA,OAEM0V,EAAI+0G,SAAQ,MAqPrB,QAAS7zG,KACLhU,EAAGgT,YA/OS,EAgPZhT,EAAGmnH,YA/OS,EAgPZnnH,EAAGqlH,YACHrlH,EAAG6kH,YA0CP,QAASzrG,GAAS1jB,GACd,GAAI2jB,GA/OI3jB,EAAI2jB,KAgPR9iB,EAAOb,EAAKa,IAChB,OA/OI,QAAAA,GAAA,KAAA8iB,EAAAC,SA4SR,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MA/OGJ,GAAGK,SAAa,EAAA,EAAA,EAAA,GAiP/Bxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IA/OQI,EAgPR,MAAO5Z,GA/OC2Z,OAAIze,GAAA1E,OAmPxB,MAAO,GAx0DX,GAAIwJ,GA9OIC,IAgPRD,GAAGqU,kBACKhJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEXA,MAAS,MAEfrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GAC/BzU,EAAGuU,YAAcE,GA5OrBzU,EAAA+S,WAAS,EA+OT/S,EAAG+3C,qBACH/3C,EAAG6kH,YACH7kH,EAAGumH,WA9OS,EA+OZvmH,EAAG0kH,WAAY,EACf1kH,EAAGilH,SAAU,EACbjlH,EAAGklH,aAAc,EACjBllH,EAAGsS,WA9OS,EA+OZtS,EAAGgT,YAAa,EAChBhT,EAAGmlH,cAAe,EAClBnlH,EAAGolH,UAAW,EAEdplH,EAAG0uG,cAAgBA,EACnB1uG,EAAGykH,eAAiBA,EAEpBzkH,EAAGgU,OA9OIA,EA+OPhU,EAAG2nH,cA9OeA,EA+OlB3nH,EAAGksH,gBA9OIA,EA+OPlsH,EAAGwlH,oBAAsBA,EA7OzBxlH,EAAAomD,YAASA,EA+OTpmD,EAAGyhB,oBA9OQA,EA+OXzhB,EAAG8lD,qBA9OYA,EA+Of9lD,EAAGo9E,2BA9OuBA,EA+O1Bp9E,EAAG8kH,gBA9OYA,EA+Of9kH,EAAGirD,yBA9OaA,EA+OhBjrD,EAAGkmH,qBA9OmBA,EA+OtBlmH,EAAGmmH,cA9OYA,EA+OfnmH,EAAGsmH,UA9OS,EA+OZtmH,EAAGqmH,YAAa,EAChBrmH,EAAG4lH,WAAaA,EAChB5lH,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBAEH/gG,EAAG6mH,mBA9OmB,EA+OtB7mH,EAAG8mH,sBAAuB,EAC1B9mH,EAAGqsH,iBAAkB,EACrBrsH,EAAGymH,SAAU,EACbzmH,EAAGmnH,YAAa,EAChBnnH,EAAGssH,kBAAmB,CAEtB,IA9OIpsH,GAAQ/F,EAAUgG,uBA+OlBgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KA+FAlS,EAAG8nH,gBA9OW,SAAShyH,GA+OfA,EACAgvH,EAAgB,WA7Ob9kH,EAAA2yG,IAAA5uD,iBAAY,KAChB/jD,EAAO2yG,IAAAoV,YAAS,KA+OX/nH,EAAGilH,SAAU,EACbjlH,EAAGklH,aAAc,EA7O1BllH,EAAUmlH,cAAgB,EACjBnlH,EAAAolH,UAAS,EA+OTplH,EAAGgoH,gBAAkBxtH,EAAOyC,OAAO+C,EAAG+kH,iBAClCjvH,UAAaA,IA5OjBkK,EAAGioH,iBAAQztH,EAAA++C,OAAAv5C,EAAAgoH,gBAAA,iBA+OXhoH,EAAG+kH,gBAAkBvqH,EAAOyC,OAAO+C,EAAG+kH,iBA7O/CjvH,UAAmBA,OAmPdkK,EAAG2yG,IAAI5uD,iBAAmB,KAC1B/jD,EAAG2yG,IAAIoV,YAAc,KA7O1BjD,MAmPH9kH,EAAGkoH,iBAAmB,SAASpyH,EAAWguD,GAClCA,EA7OLghE,EAAS,WACA9kH,EAAA2yG,IAAAoV,YAAA,KA+OA/nH,EAAGilH,SAAU,EACbjlH,EAAGklH,aAAc,EACjBllH,EAAGmlH,cAAe,EA7O1BnlH,EAAWolH,UAAI,EACVplH,EAAA/C,UACL+C,EAAA/C,OAAgBnH,UAAIA,EACVkK,EAAA/C,OAAQ6mD,WAASA,EAClB9jD,EAAAmoH,YAAA3tH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,QACH+C,EAAAooH,kBAAA5tH,EAAA++C,OAAAv5C,EAAAmoH,YAAA,iBACEnoH,EAAA+kH,gBAAAvqH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,WAGR+C,EAAA2yG,IAAQoV,YAAA,KA+OJ/nH,EAAG8nH,gBAAgBhyH,KAM3BkK,EAAGqoH,aA9OS,SAAavyH,EAASguD,EAAe7sB,GA+OzCA,EA7OA6tF,EAAgB,WACZ9kH,EAAAilH,SAAI,EA+OJjlH,EAAGklH,aAAc,EA7OjBllH,EAAAmlH,cAAI,EA+OJnlH,EAAGolH,UA9OW,EA+OdplH,EAAG/C,UACH+C,EAAG/C,OAAOnH,UAAYA,EAClBkK,EAAG/C,OAAO6mD,WAAaA,EA7O5B9jD,EAAA/C,OAAAg6B,QAAAA,EA+OCj3B,EAAGsoH,YAAc9tH,EAAOyC,OAAO+C,EAAG+kH,gBAAiB/kH,EAAG/C,QACtD+C,EAAGuoH,kBAAoB/tH,EAAO++C,OAAOv5C,EAAGsoH,YAAa,YACrDtoH,EAAG+kH,gBAAkBvqH,EAAOyC,OAAO+C,EAAG+kH,gBAAiB/kH,EAAG/C,UAG9D+C,EAAGkoH,iBAAiBpyH,EAAWguD,IAKvC9jD,EAAG0R,OAAS,WA7OhB1R,EAAA6mH,mBAAA,EACK7mH,EAAAmsH,WAAO,EACPnsH,EAAA6kH,SAAW1xG,gBAAA,KAgPRnT,EAAG6kH,SAAShjG,gBAAkB,KAC9B7hB,EAAG6kH,SAASwG,aAAe,KA9OnCrrH,EAAS6kH,SAAAoH,UAAA,KACLjsH,EAAA6kH,SAAgBxwF,SAAA,KACZr0B,EAAA4mD,eAgPA5mD,EAAGmgG,sBA9OJngG,EAAAmgG,mBAAmB,KAgPlBngG,EAAGigG,yBACHjgG,EA/OGwgG,yBAgPHxgG,EAAGwgG,sBA/OU,KAgPbxgG,EA/OGsgG,4BAgPHtgG,EAAG6gG,eA/OU,KAgPb7gG,EA/OG6gG,kBAgPH7gG,EAAG2gG,qBACH3gG,EA/OGi+C,iBAAA,KAgPHj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KA9OpBjhG,EAAE+gG,qBAgPF/gG,EAAGqlH,aA5OPrlH,EAAGwoH,MAAA,WACAxoH,EAAA2yG,IAAA9wF,gBAAuB,KACtB7hB,EAAG2yG,IAAA5uD,iBAAc,KAgPjB/jD,EAAG2yG,IAAIoV,YAAc,KA9OtB/nH,EAAAilH,SAAY,EACZjlH,EAAAklH,aAAA,EACAllH,EAAAmlH,cAAW,EACXnlH,EAAAolH,UAAY,EACZN,KAKHjtE,IAgBA73C,EAAGw5C,cACAC,UAAgB,EAChBC,WAAW,WAGXD,UAAA,EACAC,WAAA,WAkPKD,UAAW,EA9OhBC,WAAA,YAGAD,UAAU,EACVC,WAAa,cAGZD,UAAa,EACbC,WAAY,aAGhBD,UAAgB,EACTC,WAAA,WAGAD,UAAA,EACCC,WAAA,aAulBR15C,EAAG+xB,KAAO,WACN/xB,EAAG6mH,mBA/OgB,EAgPnB7mH,EAAG8mH,sBAAuB,EAC1B9mH,EAAGymH,SA/OS,EAgPZzmH,EAAGumH,WA/OS,EAgPZvmH,EAAG+S,WA/OY,EAgPf/S,EAAGgT,YA/OY,EAgPfd,KAMJlS,EAAGm5C,WA/OQ,EAgPXn5C,EAAGs0D,MA/OQ,WACHt0D,EAAG6kH,SAAAvwD,MACHt0D,EAAGm5C,WAAA,EAEHn5C,EAAGm5C,WAAA,GAkPXn5C,EAAGyoH,OA/OQ,SAAA3lH,GAgPP,GA/OIsS,GAAGpV,EAAAqyB,IAAAjvB,QAAmBN,EAgP1B9C,GAAGqyB,IA/OIiD,OAAAlgB,EAAA,IA+JXpV,EAAA0oH,gBAAS,WAED1oH,EAAAihG,eAAK9lG,OAAoB,IAgPzB6E,EAAG8mH,sBAAuB,IAgMlC9mH,EAAG2oH,cA/OQ,WAgPP3oH,EAAGomH,eA/OI,CAgPP,IAAInrH,IACA2kF,OAAQ5/E,EAAGsnH,SAAS1nC,OACpB9pF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WA9OzC2vC,SAASzzF,EAAA+mD,OACD5I,SAAGn+C,EAAAi4B,OAkPP8kD,GA/OciB,kBAAA/iF,GAAAwD,KAAA,SAAAC,GACO,MAAjBA,EAAKlI,QAiPDwJ,EAAGqlH,YA9OJrlH,EAAA6mH,mBAAa,EACZ7mH,EAAA8mH,sBAAM,EACN9mH,EAAAymH,SAAY,EACZzmH,EAAA24C,YAAe,KACf34C,EAAA6kH,SAAW1xG,gBAAA,KACXnT,EAAA6kH,SAAWhjG,gBAAY,KACvB7hB,EAAA2hB,eACA3hB,EAAA6kH,SAAUoH,UAAG,KAEbjsH,EAAA6kH,SAAQxwF,SAAA,KAgPRr0B,EAAG68C,kBA9OP78C,EAAA4mD,eACI5mD,EAAAmgG,sBAgPAngG,EAAGmgG,mBA/OI,KAgPPngG,EAAGwgG,yBACHxgG,EAAGwgG,sBA/OI,KAgPPxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KA9OrB7gG,EAAAi+C,iBAAc,KACbj+C,EAAAihG,kBAgPAjhG,EAAGihG,eAAiB,KA7OrBjhG,EAAAigG,yBACAjgG,EAAAsgG,4BACAtgG,EAAA2gG,qBAgPC3gG,EAAG+gG,sBAEHhpG,EAAW2I,YAAY,QAAS,8BAC5BrJ,WAAW,EACX+F,KAAM,QA5OlB,SAAOuD,GACH5I,EAAG2I,YAAA,QAAuB,gEAgPtBrJ,WAAW,EACX+F,KAAM,UAMlB4C,EAAG4oH,gBAAkB,WACjB,GAAIv2F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG6oH,gBACbx2F,EAAIx6B,KAAKmI,EAAG6oH,gBAAgB3tH,GAAG0kF,OAEnC5/E,GAAG4/E,OAASvtD,EAAIqB,MAEhB,IAAIS,KACJ,KAAK,GAAIj5B,KAAK8E,GAAGihG,eACb9sE,EAAKt8B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAEnC/Y,GAAGi4B,OAAS9D,EAAKT,MAEjB,IAAIz4B,IACA2kF,OAAQ5/E,EAAG4/E,OACX9pF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC2vC,SAAUzzF,EAAG+mD,OACb5I,SAAUn+C,EAAGi4B,OAGjB8kD,GAAyBiB,kBAAkB/iF,GAAKwD,KAAK,SAASC,GACvC,MAAfA,EAAIlI,QAEJwJ,EAAG8oH,eAAgB,EACnB1rC,EAA2Bp9E,EAAG6kH,SAAShjG,gBAAgB/rB,UAAWkK,EAAG6kH,SAASxwF,SAASyvB,aAGvF/rD,EAAW2I,YAAY,QAAS,8BAC5BrJ,WAAW,EA9OlB+F,KAAA,QAGL,SAAQuD,GACJ5I,EAAU2I,YAAA,QAAA,gEACNrJ,WAAW,EACX+F,KAAA,UAoPZ4C,EAAG+oH,SA/OU,WAgPT/oH,EAAGgpH,gBA/OiB,GAkPxBhpH,EAAGipH,aA/OQ,SAAWn2G,GAgPlB9S,EAAGsS,WA/OI,EAgPPtS,EAAGgT,YA/OI,EAgPPhT,EAAG+S,WAAY,EACf/S,EAAGgpH,gBA/OgB,EAgPnBhpH,EAAGqlH,YACHrlH,EAAGymH,SAAU,EACbzmH,EAAG8mH,sBAAuB,EAC1B9mH,EAAG0rH,oBAAqB,CAExB,IA/OIzwH,IAgPAnF,UA/OIgd,EAAWhd,UAgPfguD,WA/OIhxC,EAAYgxC,WAgPhB87B,OA/OI9sE,EAAQ8sE,OAgPZ0qC,QA/OIx3G,EAAQw3G,QAkPhBvtC,GAAyB4B,sBAAsB1jF,GAAKwD,KAAK,SAASC,GAC9D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGqlH,SAAW3mH,EAAIhJ,KAAK8wH,UA9O5B,KAAA,GAAYtrH,KAAA8E,GAAAqlH,SACfrlH,EAAAqlH,SAAAnqH,GAAyB8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAA6BnqH,GAAK23G,gBAC/C7yG,EAAAqlH,SAAW,GAAAqB,SAAK,EACjB1mH,EAAAqlH,SAAWnqH,GAAIyrH,WAAK,GAAAltG,MAAAzZ,EAAAqlH,SAAAnqH,GAAAyrH,WAmPvB,IAAIlsG,GAAUjgB,EAAOsR,IAAI9L,EAAGqlH,SAAU,aA9OtCrlH,GAAG6kH,SAAAoH,UAAUxxG,EAAAksG,WACb3mH,EAAKqlH,SAASlqH,OAAG,IACb6E,EAAG6mH,mBAAoB,GAiP3B7mH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA9OdpnH,EAAAqnH,YAAgB,EAgPhBrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,IACvBvnH,EAAG24C,YA/OI34C,EAAAsnH,SAAmB3uE,YAgP1B34C,EAAG6kH,SAAShjG,mBACZ7hB,EAAG6kH,SAASxwF,YACZr0B,EAAG6kH,SAAShjG,gBAAgB/rB,UAAYkK,EAAGsnH,SAASxxH,UACpDkK,EAAG6kH,SAASxwF,SAASyvB,WAAa9jD,EAAGsnH,SAASxjE,WAC9C9jD,EAAG+mD,OAAS/mD,EAAGsnH,SAAS7zB,SACxBzzF,EAAGsiB,YAAcxP,EAAIwP,YACrBtiB,EAAG4yB,cAAgB9f,EAAI8f,cACvB5yB,EAAG6kH,SA/OIyF,QAAAx3G,EAAiBw3G,OAgPxB,IAAIj4F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SACbhzF,EAAIx6B,KAAKmI,EAAGqlH,SAASnqH,GAAG+7B,QAE5Bj3B,GAAGi4B,OAAS5F,EAAIqB,OAKZ1zB,EAAGsnH,SAAS1nC,SAC0B,GAAlC5/E,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBAEnD3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACyB,GAAlCrnH,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBAC1D3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACyB,GAAlCrnH,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,qBAC1D3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,IAGxBrnH,EAAGsS,WAAY,EACftS,EAAGumH,WAAY,MAEfxuH,GAAW2I,YAAY,QAAS,gCAAiC,qBAGtE,SAASC,GACR5I,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,UAOlB4C,EAAGkpH,eAAiB,WAQhB,GAPAlpH,EAAGsS,WAAY,EACftS,EAAGgpH,gBAAiB,EACpBhpH,EAAGymH,SAAU,EACbzmH,EAAG8mH,sBAAuB,EAC1B9mH,EAAG0rH,oBAAqB,EACxB1rH,EAAGssH,kBAAmB,EACtBtsH,EAAGmnH,YAAa,EACZnnH,EAAGosH,YACH,GAAInxH,IACAnF,UA/OOkK,EAAA6kH,SAAahjG,gBAAA/rB,UAgPpBguD,WA/OO9jD,EAAA6kH,SAAWxwF,SAAAyvB,WAgPlB87B,OA/OO5/E,EAAAsnH,SAAa1nC,OAgPpBzhC,SA/OOn+C,EAAAi4B,OAgPPw7D,SA/OOzzF,EAAA+mD,OAgPPqgE,SAAU,OAEX,CAEH,GAAI/0F,KACJ,KAAK,GAAIn3B,KAAK8E,GA/OEqlH,SAgPZhzF,EAAIx6B,KAAKmI,EA/OGqlH,SAAGnqH,GAAA+7B,QAiPnBj3B,GAAGi4B,OAAS5F,EA/OIqB,MAiPhB,IAAIz4B,IACAnF,UAAWkK,EA/OC6kH,SAAGhjG,gBAAoB/rB,UAgPnCguD,WAAY9jD,EA/OGsnH,SAAOxjE,WAgPtB87B,OAAQ5/E,EAAGsnH,SA/OI1nC,OAgPfzhC,SAAUn+C,EA/OEi4B,OAgPZw7D,SAAUzzF,EA/OEsnH,SAAG7zB,SAgPf2zB,SAAU,GAGlBpnH,EAAGqlH,YAEHtoC,EA/OegB,mBAAA9iF,GAAAwD,KAAA,SAAAC,GAgPX,GA/OW,MA+OPA,EA/OIlI,OAAgB,CAgPpBwJ,EAAGmpH,aA/OIzqH,EAAAhJ,KAAgByzH,aAgPY,GAA/BnpH,EAAGmpH,aAAajhB,YAChBnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,mBACrB,GAA/B7T,EAAGmpH,aAAajhB,YA9OxBnwG,EAAY2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,mBAEZ9b,EAAY2I,YAAA,QAAAV,EAAAmpH,aAAAt1G,QAAA,mBAEpB7T,EAAAqlH,SAAc3mH,EAAAhJ,KAAA8wH,WACbhsH,EAAWqI,QAAA7C,EAAAqlH,SAAqB,SAAA73G,GACjB,KAAZA,EAAAq6G,WAgPSr6G,EAAEq6G,SAAW,KAGrB,KAAK,GAAI3sH,KAAK8E,GAAGqlH,SA9O1BrlH,EAAgBqlH,SAAAnqH,GAAW8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBACvB7yG,EAAAqlH,SAAgB,GAAAqB,SAAA,CAGf1mH,GAAWqlH,SAAGlqH,OAAS,IACvB6E,EAAA6mH,mBAAwB,GAkPpB7mH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA9OtBpnH,EAAAqnH,YAAA,EACQrnH,EAAAsnH,SAAI5oH,EAAWhJ,KAAK6xH,IAEjBvnH,EAAAsnH,SAAW1nC,SACS,GAApB5/E,EAAAsnH,SAAAoE,oBAAoB,GAAA1rH,EAAAsnH,SAAAqE,oBAEpB3rH,EAAAmnH,YAAU,EACVnnH,EAAAonH,UAAc,EACdpnH,EAAAqnH,YAAS,GACkB,GAAlBrnH,EAAAsnH,SAAAoE,oBAAkB,GAAA1rH,EAAAsnH,SAAAqE,oBAC3B3rH,EAAAmnH,YAAc,EACdnnH,EAAAonH,UAAS,EAgPJpnH,EAAGqnH,YAAa,GA9OD,GAAXrnH,EAAAsnH,SAAWoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACpB3rH,EAAAmnH,YAAiB,EACjBnnH,EAAAonH,UAAc,EACdpnH,EAAAqnH,YAAqB,EACrBrnH,EAAAqsH,iBAAqB,IAIxBrsH,EAAGsS,WAAA,MAEHva,GAAG2I,YAAiB,QAAA,gCAAA,qBAkPzB,SA/OQC,GAgPP5I,EA/OO2I,YAAA,QAAA,iCACHrJ,WAAG,EACH+F,KAAG,UAuPf4C,EAAGopH,eA/OgB,WAqPf,GALAppH,EAAGsS,WA/OK,EAgPRtS,EAAG8mH,sBA/OW,EAgPd9mH,EAAG0rH,oBAAqB,EACxB1rH,EAAGssH,kBAAmB,EAElBtsH,EAAGosH,YACH,GAAInxH,IA9OTnF,UAAkBkK,EAAA6kH,SAAWhjG,gBAAA/rB,UACxBguD,WAAM9jD,EAAA6kH,SAAAxwF,SAAAyvB,WACL87B,OAAS5/E,EAAGsnH,SAAA1nC,OACTzhC,SAAQn+C,EAAAi4B,OAgPRw7D,SAAUzzF,EAAG+mD,OA9OlBujE,QAAatqH,EAAAsnH,SAAAgD,QAgPRlD,SAAU,OA7Ob,CACD,GAAA/0F,KAgPA,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SA9OlBhzF,EAASx6B,KAAKmI,EAAAqlH,SAAAnqH,GAAA+7B,QAEbj3B,GAAAi4B,OAAM5F,EAAAqB,MAEN,IAAAz4B,IACAnF,UAAekK,EAAA6kH,SAAShjG,gBAAS/rB,UACjCguD,WAAa9jD,EAAAsnH,SAAAxjE,WACb87B,OAAU5/E,EAAGsnH,SAAA1nC,OAgPTzhC,SAAUn+C,EAAGi4B,OACbw7D,SAAUzzF,EAAGsnH,SAAS7zB,SA9O9B62B,QAAAtqH,EAAAsnH,SAAyBgD,QACjBlD,SAAI,GAkPZpnH,EAAGqlH,YACHtoC,EAAyBgB,mBAAmB9iF,GAAKwD,KAAK,SAASC,GAC3D,GA/OO,MA+OHA,EA/OGlI,OAAA,CASH,GARAwJ,EAAAmpH,aAAWzqH,EAAAhJ,KAAYyzH,aACR,GAAXnpH,EAAAmpH,aAAWjhB,YACXnwG,EAAM2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,mBAgPgC,GAA/B7T,EAAGmpH,aAAajhB,YACvBnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,mBA7OnE9b,EAAW2I,YAAY,QAASV,EAAAmpH,aAAAt1G,QAAA,mBAE5B7T,EAAM+S,UAmCN/S,EAAA+xB,WAnCM,CAgPF/xB,EAAGqlH,SAAW3mH,EAAIhJ,KAAK8wH,WACvBhsH,EAAOqI,QAAQ7C,EAAGqlH,SAAU,SAAS73G,GACf,KAAdA,EAAEq6G,WACFr6G,EAAEq6G,SAAW,KAGrB,KAAK,GAAI3sH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBA9OnD7yG,EAAAqlH,SAAc,GAAAqB,SAAA,CAGzB1mH,GAAYmnH,YAAA,EACZnnH,EAAAonH,UAAiB,EACjBpnH,EAAWqnH,YAAA,EACXrnH,EAAUsnH,SAAA5oH,EAAAhJ,KAAA6xH,IAEVvnH,EAAAsnH,SAAqB1nC,SAgP8B,GAAlC5/E,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBA7OpD3rH,EAAAmnH,YAAA,EACCnnH,EAAAonH,UAAA,EACJpnH,EAAAqnH,YAAA,GACC,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBAgPG3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA9OlCpnH,EAAAqnH,YAAyB,GACG,GAALrnH,EAAKsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACjB3rH,EAAWmnH,YAAS,EACdnnH,EAAKonH,UAAG,EACVpnH,EAAAqnH,YAAoB,EACpBrnH,EAAAqsH,iBAAsB,IAM7BrsH,EAAGsS,WAAS,MAiPZva,GA/OO2I,YAAA,QAAoB,gCAAA,qBAkPhC,SA/OQC,GAgPP5I,EA/OO2I,YAAa,QAAA,iCAChBrJ,WAAG,EACH+F,KAAG,UAqPf4C,EAAGqpH,UA/OY,SAAAv2G,GAgPX9S,EAAGsS,WA/OQ,EAgPXtS,EAAGqlH,WAEH,IAAIpqH,IACAnF,UA/OQgd,EAAIhd,UAgPZguD,WAAYhxC,EAAIgxC,WAChBwlE,WA/OOx2G,EAASy2G,WAgPhBC,gBAAiB12G,EAAI80G,QACrBhoC,OA/OI5/E,EAAAsnH,SAAA1nC,OAiPR7C,GAAyBc,mBAAmB5iF,GAAKwD,KAAK,SAASC,GAC3D,GA/OW,KAAPA,EAAIlI,OAAY,CAgPhBwJ,EAAGmpH,aA/OQzqH,EAAShJ,KAAAyzH,aAgPe,GAA/BnpH,EAAGmpH,aAAajhB,YAChBnwG,EA/OO2I,YAAa,UAAAV,EAAAmpH,aAAAt1G,QAAA,iBACF,GAAX7T,EAAAmpH,aAAWjhB,YAgPlBnwG,EA/OO2I,YAAa,UAAAV,EAAAmpH,aAAAt1G,QAAA,iBAiPpB9b,EA/OO2I,YAAa,QAAAV,EAAAmpH,aAAAt1G,QAAA,iBAiPxB7T,EAAGqlH,SA/OQ3mH,EAAAhJ,KAAA8wH,WAgPXhsH,EAAOqI,QA/OQ7C,EAAGqlH,SAAS,SAAA73G,GAChB,KAAHA,EAAAq6G,WACAr6G,EAAAq6G,SAAG,MAiPX7nH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA9OdpnH,EAAGqnH,YAAY,EACfrnH,EAAGsnH,SAAA5oH,EAAYhJ,KAAA6xH,GAgPf,KA/OG,GAAArsH,KAAA8E,GAAAqlH,SACHrlH,EAAAqlH,SAAWnqH,GAAA8oD,MAAYrnD,KAASC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBAgP5B7yG,EAAGqlH,SAAS,GAAGqB,SAAU,CA5OjC1mH,GAAWsnH,SAAA1nC,SACI,GAAX5/E,EAAWsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBAiPH3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACyB,GAAlCrnH,EAAGsnH,SAASoE,oBAA6D,GAAlC1rH,EAAGsnH,SAASqE,oBAC1D3rH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA9OdpnH,EAAAqnH,YAAW,GACZ,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,qBACZ3rH,EAAAmnH,YAAiB,EACPnnH,EAAAonH,UAAA,EACVpnH,EAAAqnH,YAAuB,IAInBrnH,EAAAsS,WAAa,MAGZva,GAAA2I,YAAe,QAASV,EAASmpH,aAAAt1G,QAAA,kBAmPtC,SA/OKlT,GAgPJ5I,EAAW2I,YAAY,kCAI/BV,EAAGypH,kBA/OmB,WAgPlB,GAAIp3F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SAEbhzF,EAAIx6B,MA9OA/B,UAAMkK,EAAAqlH,SAAAnqH,GAAApF,UACNguD,WAAc9jD,EAAAqlH,SAASnqH,GAAA4oD,WACvB1sB,WAAep3B,EAAAqlH,SAASnqH,GAAAk8B,WACxBH,QAAWj3B,EAAAqlH,SAASnqH,GAAA+7B,QACpB+vF,SAAahnH,EAAAqlH,SAAAnqH,GAAA8rH,SACba,SAAsB,GAAT7nH,EAAAqlH,SAASnqH,GAAA2sH,UAAA,IAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GACtB/zG,UAAU5T,EAAAG,OAgPN0oH,SAAU/oH,EAAGqlH,SAASnqH,GAAG0sH,SA3OrC,IAAA3sH,IACI4xB,UAAQlwB,KAAAqkB,UAAgBqR,GAiP5BF,SA/OQC,IAAIn3B,GAgPZ8hF,EA/OuBiD,oBAAY/kF,GAAcwD,KAAA,SAAaC,GACxC,KA+OdA,EAAIlI,OACJuB,EA/OI2I,YAAW,UAAYhC,EAAWhJ,KAAGme,QAAA,sBAClCnV,EAAAhJ,KAAAo0H,cAAA,EAgPP/xH,EA/OI2I,YAAW,UAAYhC,EAAShJ,KAAGme,QAAa,uBAEpD9b,EAAG2I,YAAoB,QAAAhC,EAAAhJ,KAAAme,QAAA,sBACvB7T,EAAAgT,YAAe;EAiPpB,SAASrS,GACR5I,EAAW2I,YAAY,kCAM/BV,EAAG+pH,YAAc,WAIb,GAHA/pH,EAAGsS,WA/OY,EAgPftS,EAAGiqH,aA/OY,EAgPfjqH,EAAG8mH,sBAAuB,EACtB9mH,EAAG6kH,SAASoH,UAAW,CACvB,GA/OI55F,KAgPJ,KA/OI,GAAGn3B,KAAA8E,GAAAqlH,SAAW,CACd,GAAGvsE,IACAoxE,OAAAlqH,EAAWqlH,SAASnqH,GAAA0sH,QAgPnB9jE,WAAY9jD,EAAGqlH,SAASnqH,GAAG4oD,WA9O3B7sB,QAAGj3B,EAASqlH,SAAQnqH,GAAA+7B,QACpB+vF,SAAOhnH,EAAAqlH,SAASnqH,GAAA8rH,SAgPhB5vF,WAAYp3B,EAAGqlH,SAASnqH,GAAGk8B,WAC3BywF,SA/OoBlyH,QAAbqK,EAAAqlH,SAAanqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GAgPpBnzF,OA/OO10B,EAAAqlH,SAAWnqH,GAAAw5B,OAgPlBtK,MA/OOpqB,EAAAqlH,SAAAnqH,GAAakvB,MAgPpB+/F,SA/OOnqH,EAAIqlH,SAAGnqH,GAASy4C,YAgPvB/9C,OA/OO,EAiPXy8B,GAAIx6B,KA/OIihD,GAkPZ,GAAI94C,EAAGosH,YACH,GAAInxH,IACA2kF,OA/OO5/E,EAAAsnH,SAAA1nC,OAgPP9pF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjCnL,YAAa34C,EAAGsnH,SAAS3uE,YA9O1B2xE,QAAAtqH,EAAYsnH,SAAAgD,QAmPXjF,SAAU1oH,KAAKqkB,UAAUqR,GA9OzBve,UAAK5T,EAAAG,OACb4rH,UAAWhyH,EAAY,QAAS+F,EAAA6kH,SAAAoH,UAAA,mBAkP5B,IAAIhxH,IACA2kF,OAAQ5/E,EAAGsnH,SAAS1nC,OACpB9pF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAGsnH,SAASxjE,WACxBnL,YAAa34C,EAAGsnH,SAAS3uE,YACzB2xE,QAAStqH,EAAGsnH,SAASgD,QA3O9BjF,SAAA1oH,KAAuBqkB,UAAAqR,GACvBve,UAAA5T,EAAqBG,OACrB4rH,UAAmBhyH,EAAA,QAAA+F,EAAA6kH,SAAAoH,UAAA,cAKdjsH,GAAA0kH,WA4SAzpH,EAAIsvH,cA/OWvqH,EAAA4kH,UAgPf7nC,EA/OsBI,yBAASliF,GAAsBwD,KAAK,SAAGC,GAgPrDA,EA/OIhJ,KAAGke,aAAa,GAgPpB7b,EA/OO2I,YAAW,UAAAhC,EAAAhJ,KAAAme,QAAA,4BAiPlB7T,EAAGumH,WA/OI,EAgPPvmH,EAAGwqH,YAAc,GA5OlBzyH,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,qBAIP,SAAWlT,GAgPP5I,EAAW2I,YAAY,kCAzT3Bq8E,EAAoBiC,qBAAA/jF,GAAAwD,KAAA,SAAAC,GACpB,GAAa,MAAbA,EAAUlI,OAAG,CAEb,GADAwJ,EAAUmpH,aAAGzqH,EAAAhJ,KAAAyzH,aACQ,GAATnpH,EAAAmpH,aAASjhB,YAAA,CAiPTnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,wBA9OxE7T,EAAAqlH,SAAA3mH,EAAAhJ,KAAA8wH,WACOhsH,EAAAqI,QAAA7C,EAAAqlH,SAAA,SAAA73G,GACiB,KAAVA,EAAAq6G,WACDr6G,EAASq6G,SAAG,MAEZ7nH,EAAAmnH,YAAA,EAgPAnnH,EAAGonH,UAAW,EA9OpBpnH,EAAAqnH,YAAA,EACKrnH,EAAGsnH,SAAS5oH,EAAAhJ,KAAA6xH,GACX,KAAG,GAAArsH,KAAS8E,GAAAqlH,SACbrlH,EAAAqlH,SAASnqH,GAAA8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBACP7yG,EAAAqlH,SAAA,GAAAqB,SAAA,CAED1mH,GAAAsnH,SAAS1nC,SACX,GAAA5/E,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBAiPU3rH,EAAGmnH,YAAa,EA9O9BnnH,EAAAonH,UAAA,EACWpnH,EAAAqnH,YAAmB,GAChB,GAAArnH,EAAAsnH,SAAAoE,oBAAA,GAAA1rH,EAAAsnH,SAAAqE,oBACF3rH,EAAImnH,YAAK,EACPnnH,EAAAonH,UAAA,EACLpnH,EAAAqnH,YAAY,GACkB,GAAlBrnH,EAAAsnH,SAAAoE,oBAAkB,GAAA1rH,EAAAsnH,SAAAqE,qBAC9B3rH,EAAAmnH,YAAY,EACpBnnH,EAAAonH,UAAA,EACQpnH,EAAAqnH,YAAqB,QAIzB,IAAiC,GAAzBrnH,EAAGmpH,aAAUjhB,YAAY,CAChCnwG,EAAE2I,YAAY,UAAAV,EAAAmpH,aAAAt1G,QAAA,uBACd,IAAElf,GAAW,EAgPb,KAAK,GAAIuG,KAAKwD,GAAIhJ,KAAKm9B,UACnBl+B,EAAWA,EAAW+J,EAAIhJ,KAAKm9B,UAAU33B,GAAG23B,UAAY,MA7OjDx4B,GAAQ8C,OAAKuB,EAAShJ,KAAAme,QAAYlf,GAAA0C,WAAA,EAAA+F,KAAA,MAC9CD,QAAAuC,OAAYjB,KAAA,kBAGhB1G,GAAa2I,YAAA,QAAAV,EAAAmpH,aAAAt1G,QAAA,gBAGb7T,GAAAumH,WAAe,EAgPdvmH,EAAGwqH,YAAc,MA7OjBzyH,GAAO2I,YAAS,8BAiPpBV,GAAGsS,WA/OQ,GAiPZ,SA/OS3R,GAgPR5I,EA/OW2I,YAAO,qCAqQ1BrG,GA/OI8C,OAAM,UAAA,uBAgPN9F,WAAW,EACX+F,KAAM,QAOlB4C,EAAG+xB,KA/OC,WAiPA/xB,EAAG+S,WA/OY,EAgPf/S,EAAGgT,YA/Oa,EAgPhBd,KAGJlS,EAAGyqH,WAAa,WA9OZzqH,EAAA8oH,eAAA,GAmPJ9oH,EAAG0qH,YA/Oa,WAgPZ,GAAIr4F,KACJ,KAAK,GAAIn3B,KA/OG8E,GAAAihG,eAgPR5uE,EAAIx6B,KAAKmI,EA/OEihG,eAAA/lG,GAAA6d,GAiPf/Y,GAAGi4B,OAAS5F,EAAIqB,MAEhB,IAAIz4B,IACAnF,UA/OQkK,EAAM6kH,SAAAhjG,gBAAY/rB,UAgP1BguD,WA/OY9jD,EAAE6kH,SAAAxwF,SAAWyvB,WAgPzB2vC,SAAUzzF,EAAG+mD,OACb5I,SA/OOn+C,EAAAi4B,OAiPX8kD,GA/OwBkB,kBAAAhjF,GAAAwD,KAAA,SAAAC,GAgPpB,GA/OkB,MAAdA,EAAGlI,OAAe,CAmPlB,GAlPAwJ,EAAA2qH,YAAiBjsH,EAAAhJ,KAgPjBsK,EAAG6oH,mBAEC7oH,EAAGqlH,SAASlqH,OAAS,EACrB,IAAK,GAAID,KAAK8E,GAAGqlH,SA9Od,IAAA,GAASl7G,KAAAnK,GAAQ2qH,YACb3qH,EAAAqlH,SAASnqH,GAAAk8B,YAAsBp3B,EAAK2qH,YAAYxgH,GAAAitB,YAgP3Cp3B,EAAG6oH,gBAAgBhxH,KAAKmI,EAAG2qH,YAAYxgH,QAKnDnK,GAAG6oH,gBA/OiB7oH,EAAA2qH,WAiPpB3qH,GAAG6oH,gBA/OI1tH,OAAa,EAgPpB6E,EAAG8oH,eA/OW,EAiPdzuH,EA/OO8C,OAAA,UAAW,uBACd9F,WAAG,EAgPH+F,KAAM,SAInB,SAASuD,GACR5I,EA/OO2I,YAAA,QAAA,mBAAA,qBA0QfV,EAAGqa,MA/OK,WAgPJra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YA/OWjB,EAgPXkB,QAAS,GAAIhB,MAAK,KAAM,EAAG,KAG/BzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WAAY,KAEZtB,QAAS,GAAIpB,OAAK,GAAIA,OAAO8yG,aAAY,GAAI9yG,OAAOy6B,cAAgB,IA7OpEp5B,YAAG,GAkPP9a,EAAGkrH,UACCtwG,aA/OcxB,EAgPd+C,WA/OS,KAgPTtB,QA/OQ,GAAIpB,MAAA,KAAO,EAAA,IAgPnBgB,QAAS,GA/OGhB,MAgPZqB,YA/OY,GAkPhB9a,EAAGmrH,cA/Oa,WAiPZnrH,EAAGkrH,SA/OSzwG,QAAQza,EAAG6kH,SAASoH,WAyPpCjsH,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QA/OE,GAkPhB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACnB,IAAIwL,GAAQ,GAAIZ,MACZ06B,EAAS,EAEbn0C,GAAGm5B,SACCte,QA/OQ,GAAApB,MAAAY,EAAW65B,cAAmBC,EAAS95B,EAAA82B,WAAW92B,EAAA2B,aAoPlEhc,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QA/OE,GAkPhB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAAU,SA/OGC,EAAWC,EAAAC,GAgPvB3b,EAAGsa,GAAK,GA/OIb,MAAAgC,EAAWC,EAAAC,IAkP3B3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,aAC1D5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBA/Oa,cAiPhB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAGZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAASC,UA/OK,EAgP/B,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAAQO,EA/OSC,UAAS,GAgPxChc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,oPA9zDhBpC,QACKC,OAAO,0CACPe,WAAW,mCA9OC22H,MAokErB,WACI,YAOA,SAASS,GA/OUzyH,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAAyX,EAgPfI,EA/OgBH,EAAmB+oC,EAAAmiC,EAAAv7B,GA8SnC,QAAStvC,KAELlS,EAAGu7C,eACCC,aAAc,MACdnzB,KAAM,MAENmzB,aA/OW,UAgPXnzB,KAAM,MAENmzB,aA/OQ,WAgPRnzB,KAAM,MAGV00D,EAAyBC,mBAAmBv+E,KAAK,SAASC,GACnC,MAAfA,EAAIlI,SA9OTwJ,EAAAukH,kBAAc7lH,EAAAhJ,KACbsK,EAAAsS,WAAW,IAiPZ,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA5OxDq8E,EAAiBwB,iBAAApsE,GAAA1T,KAAA,SAAAC,GACM,MAAfA,EAAIlI,SACJwJ,EAAAwkH,eAAe9lH,EAAAhJ,KAgPfsK,EAAGsS,WA/OY,IAiPpB,SAAS3R,GACR5I,EA/OQ2I,YAAW,QAAA,mBAAA,oBAkPvBsR,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KA9OxBsK,EAAAsS,WAAS,IAEX,SAAA3R,GACA5I,EAAW2I,YAAA,QAAA,mBAAA,oBAmPlB,QAAS+jH,GAAe3xG,GACpB9S,EAAG0kH,WAAY,EA9OhB1kH,EAAAgT,YAAQ,EACPhT,EAAG24C,YAAS7lC,EAAA6lC,YAgPZ34C,EAAG2kH,eAAiB7xG,EAAIskB,WA9OzBp3B,EAAA4kH,UAAA9xG,EAAA8xG,SAgPC,KAAK,GAAI/sG,KAAK7X,GAAGqS,YA9OVrS,EAAAqS,YAAWwF,GAAA1F,YAAAW,EAAAX,YACVnS,EAAA6kH,SAAA1xG,gBAAAnT,EAAAqS,YAAAwF,GAIR4J,GAAa3O,EAAAX,UAAA,WACb,IAAS,GAAI0F,KAAK7X,GAAA2hB,YAgPN3hB,EAAG2hB,YAAY9J,GAAG/hB,YAAcgd,EAAIhd,YACpCkK,EAAG6kH,SAAShjG,gBAAkB7hB,EAAG2hB,YAAY9J,GAIrDiuC,GAAqBhzC,EAAIhd,UAAW,WA9OxC,IAAa,GAAA+hB,KAAS7X,GAAA68C,eAgPN78C,EAAG68C,eAAehlC,GAAGisC,aAAehxC,EAAIgxC,aA9O3C9jD,EAAA6kH,SAAAxwF,SAAAr0B,EAAA68C,eAAAhlC,MAKbulE,EAAYtqE,EAAAhd,UAAAgd,EAAAgxC,cAwPhB,QAASghE,GAAgB3tG,GACrB4lE,EAAyB+B,2BAA2B3sE,GAAW1T,KAAK,SAASC,GACtD,MAAfA,EAAIlI,QA9OPwJ,EAAA+kH,gBAAermH,EAAAhJ,KAChBsK,EAAOglH,eAAKxqH,EAAA++C,OAAAv5C,EAAA+kH,gBAAA,eACZ/kH,EAAOsS,WAAK,EACTtS,EAAAilH,SAAS,EAgPRjlH,EAAGklH,aAAc,EACjBllH,EAAGmlH,cAAe,EA9OnBnlH,EAAAolH,UAAW,GAiPVrtH,EAAW2I,YAAY,QAAS,yBAA0B,kBA7O3DyW,GACJA,KACH,SAAYxW,GACR5I,EAAS2I,YAAA,QAAA,mBAAA,oBAwUjB,QAhPOm3C,KAiPHhmC,EAhPaimC,sBAAAr5C,KAAA,SAAAC,GACV,MAAAA,EAAAlI,QACCwJ,EAAA+3C,kBAASr5C,EAAAhJ,KACVsK,EAAA+3C,kBAAAv9C,EAAA++C,OAAAv5C,EAAA+3C,kBAAA,eACC/3C,EAAAsS,WAAS,GAETva,EAAS2I,YAAA,QAAA,yBAAA,mBAEX,SAASC,GAiPP5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA7M5D,QAAG+gB,GAAatP,EAAAgF,GACbhF,GACAnS,EAAA6kH,SAAAhjG,gBAA2B,KAC3B7hB,EAAA2hB,eACA3hB,EAAA6kH,SAAAoH,UAAoB,KAGpBjsH,EAAA6kH,SAAAxwF,SAAuB,KACvBr0B,EAAA68C,kBACC78C,EAAA4mD,eACA5mD,EAAAmgG,sBACJngG,EAAAmgG,mBAAA,KAiPQngG,EAAGwgG,yBA/OXxgG,EAASwgG,sBAAO,KAiPRxgG,EAAG6gG,kBA/OJ7gG,EAAA6gG,eAAgB,KACf7gG,EAAAi+C,iBAAc,KACdj+C,EAAAihG,kBACDjhG,EAAAihG,eAAA,KACCjhG,EAAAigG,yBACAjgG,EAAAsgG,4BACDtgG,EAAA2gG,qBACC3gG,EAAA+gG,qBACA/gG,EAAAqlH,YAiPAzzG,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QA/OhBwJ,EAAA2hB,YAAyBjjB,EAAAhJ,MACbsK,EAAA2hB,YAAgBxmB,OAAA,GACjBd,EAAA8C,OAAoB,UAAI,oDACxB9F,WAAY,EAiPH+F,KAAM,OA3O1B+Z,IACYnX,EAAAsS,WAAW,GAEZjY,EAAAwH,MAAY,QAAA,yBAAA,mBAEpB,SAASlB,GACRtG,EAAWwH,MAAA,QAAY,mBAAS,sBAGpC7B,EAAA6kH,SAAehjG,gBAAmB,KAC9B7hB,EAAA2hB,eAiPA3hB,EAAG6kH,SAhPIoH,UAAc,KAkPrBjsH,EAAG6kH,SAASxwF,SAAW,KA/OxBr0B,EAAA68C,kBACC78C,EAAA4mD,eAiPA5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGwgG,yBA/OXxgG,EAASwgG,sBAAoB,KACtBxgG,EAAA6gG,kBACA7gG,EAAA6gG,eAAa,KACb7gG,EAAAi+C,iBAAkB,KAClBj+C,EAAAihG,kBACAjhG,EAAAihG,eAAgB,KACnBjhG,EAAKigG,yBACDjgG,EAAAsgG,4BAiPAtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,aAIX,QAASv/D,GAhPUhwD,EAAeqhB,GAiP9B,GAAIrhB,EAhPW,CAiPXkK,EAAG6kH,SAASxwF,SAAW,KACvBr0B,EAAG68C,kBACH78C,EAAG4mD,eA/OH5mD,EAAAmgG,sBAiPAngG,EAAGmgG,mBAhPkB,KAiPrBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAhPqB,KAiPxBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBA/OHjhG,EAAAihG,eAAA,KAiPAjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIpqH,IACAnF,UAAWA,EACXykE,OAAQ,EA/OX+qD,OAAA,EAEDvoC,GAAwBQ,4BAAAtiF,GAAAwD,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,QACAwJ,EAAA68C,eAAiBn+C,EAAOhJ,MACxBsK,EAAA68C,eAAY1hD,OAAA,EACZd,EAAU8C,OAAA,UAAA,6DACV9F,WAAc,EACd+F,KAAe,OAoPV4C,EAAGmmD,eAAgB,EA7OvBhvC,IACRnX,EAAWsS,WAAY,GAkPfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBA9O9D,SAAAlB,GACKtG,EAAWwH,MAAA,QAAA,mBAAA,wBAmPX7B,GAAG6kH,SAhPQxwF,SAAA,KAiPXr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAhPe,KAiPlBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAhPkB,KAiPrBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAhPI,KAiPP7gG,EAAGi+C,iBAhPI,KAiPPj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAhPG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,YAqPX,QAAS3W,GAAc5qD,EAAYhuD,EAAWyI,GA9O1C,GAAIulD,GAAYhuD,EAAA,CACZkK,EAAAysH,SAAA,EAiPAzsH,EAAGmgG,sBACHngG,EAAGmgG,mBAhPc,KAiPjBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAhPmB,KAiPtBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAhPa,KAiPhB7gG,EAAGi+C,iBAhPW,KAiPdj+C,EAAGihG,kBACHjhG,EAAGihG,eAhPQ,KAiPXjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAhPG+gG,qBACH/gG,EAAGqlH,YACHr+D,IAiPAhnD,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAG6kH,SAASxwF,SAAS2vB,OAC7ChkD,EAAG4uG,YAAc5uG,EAAG2uG,QAAQE,KAC5B,IAAI5zG,IACA6oD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjChuD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UA/OhDykE,OAAe,EAEVwiB,GAAgBS,yBAAWviF,GAAAwD,KAAA,SAAAC,GACvB,GAAa,MAAVA,EAAAlI,OAAU,CACVwJ,EAAAq+C,OAAA1hD,KAAcC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,KACd,IAAAoD,KACA5sD,GAAAqI,QAAW7C,EAAAq+C,OAAA,SAAAwI,GACX,GAAS/N,IACFuO,KAAAR,EAAAQ,KACHI,SAAOZ,EAAAH,OACPI,OAAiB,UAAVD,EAAAH,QAAUG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAErBM,GAAAvvD,KAAAihD,KAkPC94C,EAAG4mD,YAAcQ,EA/OtBpnD,EAAAysH,SAAA,MAkPK10H,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA7OzDsmD,KACAhnD,EAAImgG,sBACJngG,EAAAmgG,mBAAU,KACVngG,EAAAwgG,yBACAxgG,EAAAwgG,sBAAe,KACfxgG,EAAA6gG,kBACH7gG,EAAA6gG,eAAA,KAiPI7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGigG,yBA/OXjgG,EAAAsgG,4BAiPQtgG,EAAG2gG,qBA/OX3gG,EAAS+gG,qBACL/gG,EAAAqlH,YAsPJ,QAASj/D,GAhPGc,GAkPR,GAhPGA,EAAAo6C,kBAAc,CACb,GAAA96C,GAAW,QAAYC,EAASS,EAAAO,UAAoB,GAiPhDd,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,QAChCqI,OAAUF,GA9OJhsD,GAAAgnG,MAAAxhG,EAAAq+C,OAAA,SAAAwI,GACV,MAAWJ,GAAAI,EAAAH,SAkPXlsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAASC,GA/O5C,GAAAA,EAAAY,WAAAjB,EAAA,CAEI,GAAYi7C,GAAAjnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SAiPJz6C,GAAEC,OAASu6C,EAAgB7mG,EAAOyC,OAAO0pD,EAAeG,OAAQ,SAASD,GA/OrF,MAAArsD,GAAA3F,SAAA4sG,EAAA56C,EAAAvrB,aAwBIt7B,EAAAgiG,UAAW96C,EAAAo6C,iBACR,IAAAjvE,KACA,KAAA,GAAAn3B,KAAc8E,GAAAgiG,UACd3vE,EAASx6B,KAAAmI,EAAAgiG,UAAY9mG,GAAA6rD,OAkPpB/mD,GAAG+mD,OAAS10B,EAAIqB,OA9OjB6xF,EAAiBvlH,EAAA6kH,SAAAhjG,gBAAA/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA+mD,WAyP5B,QAhPQy+D,GAAoBt+D,GAiPxB,GAhPIA,EAAGu+D,kBAAiB,CACpB,GAAGj/D,GAAA,QAAAC,EAAwBS,EAAAO,UAAA,GACxBd,EAAAnsD,EAAA6P,KAA2BrK,EAAA6vF,iBAC3BpoC,SAAAjB,GAEHhsD,GAAGqI,QAAW7C,EAAA0lH,iBAAA,SAAA7+D,GACdA,EAAAY,WAAuBjB,IACfK,EAAAC,OAAItsD,EAAWyC,OAAK0pD,EAAAG,QACjBxrB,SAAA4rB,EAAkBu+D,kBAAA1+D,gBA8P7BC,KAMR,QAhPQA,KAiPJxsD,EAAOqI,QAAQ7C,EAAG0lH,iBAAkB,SAASx+D,GA/OzCA,EAAGy+D,kBAAoB,OAqP/B,QAhPQC,GAAG1+D,GAkPPlnD,EAAG2kH,eAhPI,EAkPP,IAhPIpjB,GAAGskB,EAAArkB,MAAAxhG,EAAA6vF,gBAAmB,SAAAhpC,GACtB,MAAGjgD,UAAAigD,EAAAY,SAAiBnkC,UAAA,MAiPrBmkC,QAEH,IAhPIP,EAAGO,WAAA85C,EACHvhG,EAAG2kH,eAAAnqH,EAAoB8xB,IAAA46B,EAAAu+D,kBAAA,UAAA/xF,KAAA,SACpB,CACH,GAiPIoyF,GAAmB5+D,EAAKu+D,iBAC5BjrH,GAAOqI,QAAQ7C,EAAG6vF,gBAAiB,SAAShpC,GACxC,GAAIA,EAAEY,WAAa85C,EA/OtBvhG,EAAA2kH,eAAqBnqH,EAAW8xB,IAAAw5F,EAAU,UAAApyF,KAAA,SAExC,IAAS+yB,EAAAI,EAAWY,WAAAhB,EAAAS,EAAAO,UAAA,CACpB,GAAAs+D,GAAiBvrH,EAAA8xB,IAAAw5F,EAAA,UACjBE,EAAcxrH,EAAA6P,KAAArK,EAAA6vF,iBAAApoC,SAAA,QAAAhB,EAAAI,EAAAY,UAAA,IACdq+D,GAAqBtrH,EAAAyC,OAAA+oH,EAAAl/D,OAAA,SAAAm/D,GACrB,MAAAzrH,GAAqB3F,SAAAkxH,EAAAE,EAAA3qF,eAsP5Bt7B,EAAG4xG,OAhPI1qD,EAAAu+D,kBAAiB1+D,OAiPxBw+D,EAhPOvlH,EAAA6kH,SAAiBhjG,gBAAA/rB,UAAAkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA4xG,QAoP5B,QAhPQnrD,GAAGc,GAiPP,MAhPO3gD,UAAA2gD,EAAWjkC,UAAA,IAmPtB,QAAS+9E,GAhPWj6C,GA2PhB,MAxPIA,IAAAA,EAAAjsD,OAAyB,GAiPzBX,EAhPIqI,QAAQukD,EAAW,SAAKP,GAiPxB,GAhPO,GAAHA,EAAAvrB,SAAG,CACH,GAAI2mE,GAAIznG,EAAe6P,KAAAw8C,EAAAq7C,aAAYn7C,OAAAF,EAAAvrB,WAAA+rB,IAiPnCR,GAAEoG,UAhPUpG,EAAAm0D,QAAO,MAAW/Y,KAoPnC76C,EAsBX,QAhPQm+D,GAAGzvH,EAAiBguD,EAAAiD,GAiPxB/mD,EAAGwgG,yBACHxgG,EAAGwgG,sBAhPqB,KAiPxBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAhPI,KAiPP7gG,EAAGi+C,iBAhPI,KAiPPj+C,EAAGihG,kBACHjhG,EAAGihG,eAhPI,KAiPPjhG,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WA/OP,IAAApqH,IACInF,UAAAA,EACIguD,WAAAA,EACA1sB,WAAG2vB,EACHwT,OAAG,EAkPPwiB,GAhPOU,4BAAwBxiF,GAAAwD,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QACAwJ,EAAAigG,sBAAiBvhG,EAAAhJ,KAOjBsK,EAAAsS,WAAA,GAEAva,EAAW2I,YAAA,QAAA,yBAAA,mBAkPf,SAhPIC,GACH5I,EAAG2I,YAAiB,QAAQ,mBAAA,oBAqPpC,QAASuqD,KACL,GAhPIjrD,EAAAmgG,mBAAA,CAiPAngG,EAAG6gG,kBACH7gG,EAAG6gG,eAhPiB,KAiPpB7gG,EAAGi+C,iBAhPS,KAiPZj+C,EAAGihG,kBACHjhG,EAAGihG,eAhPa,KAiPhBjhG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIhzF,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGmgG,mBACb9tE,EAhPIx6B,KAAGmI,EAAAmgG,mBAAcjlG,GAAAghD,WAkPzBl8C,GAAGyjD,SAhPQpxB,EAAAqB,MAiPX,IAAIz4B,IACAihD,WAAYl8C,EAAGyjD,SA/OhB3tD,UAASkK,EAAK6kH,SAAAhjG,gBAAA/rB,UACbguD,WAAW9jD,EAAA6kH,SAAYxwF,SAASyvB,WAiPhC1sB,WAAYp3B,EAAG+mD,OA/OhBwT,OAAA,EAEHwiB,GAAwBW,+BAAAziF,GAAAwD,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,QACAwJ,EAAAsgG,yBAAwB5hG,EAAAhJ,KACxBsK,EAAAsS,WAAA,GAEAva,EAAA2I,YAAiB,QAAA,yBAAA,sBAEjB,SAAAC,GACA5I,EAAA2I,YAAiB,QAAA,mBAAA,2BAGpBV,GAAG6gG,kBACH7gG,EAAG6gG,eAAA,KACH7gG,EAAGi+C,iBAAW,KAiPdj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBA/OX/gG,EAASqlH,YAqPT,QAASa,KACL,GAAIlmH,EAAGwgG,sBAAuB,CA/O1BxgG,EAAAi+C,iBAAqB,KAiPrBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KA/OpBjhG,EAAA2gG,qBAiPA3gG,EAAG+gG,qBACH/gG,EAAGqlH,WACH,IAAIhzF,KACJ,KAAK,GAhPGn3B,KAAE8E,GAAAwgG,sBAiPNnuE,EAAIx6B,KAhPImI,EAAAwgG,sBAAuBtlG,GAAA22B,cAkPnC7xB,GAAGwjD,YAAcnxB,EAAIqB,MACrB,IAAIz4B,IACAihD,WAAYl8C,EAAGyjD,SACf5xB,cAAe7xB,EAAGwjD,YAClB1tD,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC1sB,WAAYp3B,EAAG+mD,OACfwT,OAAQ,EAEZwiB,GAAyBY,wBAAwB1iF,GAAKwD,KAAK,SAASC,GAC7C,MAAfA,EAAIlI,OACJwJ,EAAG2gG,kBAAoBjiG,EAAIhJ,KAE3BqC,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,GAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGqlH,YAKX,QAASc,KACL,GAAInmH,EAAG6gG,eAAgB,CACnB7gG,EAAGihG,kBACHjhG,EAhPGihG,eAAA,KAiPHjhG,EAAGqlH,WACH,IAAIhzF,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG6gG,eACbxuE,EAAIx6B,KAAKmI,EAAG6gG,eAAe3lG,GAAG8kB,OA9O1ChgB,GAASggB,OAAAqS,EAAAqB,MACD,IAAAz4B,IACIihD,WAAWl8C,EAAAyjD,SACX5xB,cAAA7xB,EAAiBwjD,YACjBxjC,OAAAhgB,EAAAggB,OAiPAlqB,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UA/O3CguD,WAAe9jD,EAAG6kH,SAAAxwF,SAAkByvB,WAChC/E,SAAM/+C,EAAAi+C,iBAAuB51B,KAiP7B+O,WAhPMp3B,EAAS+mD,OAiPfwT,OAhPQ,EAkPZwiB,GAAyBa,wBAAwB3iF,GAAKwD,KAAK,SAASC,GAC7C,MAAfA,EAAIlI,QACJwJ,EAAG+gG,kBAAoBriG,EAAIhJ,MACtBsK,EAAG+gG,kBAAkB5lG,OAAS,GAC/Bd,EAAQ8C,OAAO,UAAW,iDACtB9F,WAAW,EACX+F,KAAM,QAIdrF,EAAW2I,YAAY,QAAS,yBAA0B,eA9OlE,SAAAC,GAiPI5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,GAAGihG,kBACHjhG,EAAGihG,eAAiB,KA/O5BjhG,EAAS+gG,qBACL/gG,EAAOqlH,YA+RX,QAASjoC,GAhPwBtnF,EAAAguD,GAkP7B,GADA9jD,EAAGomH,eAhPa,EAiPZtiE,GAhPU9jD,EAAA6kH,SAAcoH,UAAU,CAiPlC,GAAI55F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGihG,eACb5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAElC/Y,GAAGi4B,OAAS5F,EAAIqB,OAChB1zB,EAAGqlH,YACHrlH,EAAGqmH,YAAa,EAChBrmH,EAAGsmH,UAAW,EA9OnBtmH,EAAAumH,WAAY,EAKPvmH,EAAGqyB,MAiPH,IAAIp3B,IACAnF,UAAWA,EA/OXguD,WAASA,EACb1sB,WAAep3B,EAAA+mD,OACZ9uB,OAAOj4B,EAAAi4B,OAiPN0gB,YAAa34C,EAAG24C,YAChBszE,UAAWhyH,EAAQ,QAAQ+F,EAAG6kH,SAASoH,UAAW,cAEtDjsH,GAAGsS,WAAY,EACfyqE,EAAyBK,2BAA2BniF,GAAKwD,KAAK,SAASC,GA/OtE,GAAkB,MAAlBA,EAAAlI,OAAkB,CACpBwJ,EAAAqlH,SAAA3mH,EAAwBhJ,KAAA8wH,WACxBhsH,EAAAqI,QAAwB7C,EAAAqlH,SAAA,SAAA73G,GACP,KAAAA,EAAAq6G,WACAr6G,EAAAq6G,SAAA,MAEjB7nH,EAAAymH,SAAiB,CACjB,KAAA,GAAiBvrH,KAAA8E,GAAAqlH,SACjBrlH,EAAAqlH,SAAwBnqH,GAAA8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBACxB7yG,EAAAqlH,SAAA,GAA2BqB,SAAA,CAGhB1mH,GAAAqlH,SAAAlqH,OAAA,GACJ6E,EAAA6mH,mBAAA,EACK7mH,EAAA8mH,sBAAA,EACC9mH,EAAA+mH,aAAAroH,EAAAhJ,KAAAsxH,SAwPAhnH,EAAGinH,eAAiBvoH,EAAIhJ,KAAKwxH,QA5LtClnH,EAAAmnH,YAAiB,EACjBnnH,EAAAonH,UAAiB,EACjBpnH,EAAAqnH,YAAA,EACArnH,EAAAsnH,SAAoB5oH,EAAAhJ,KAAA6xH,IAETvnH,EAAAsnH,SAAA1nC,SAiPsC,GAAhC5/E,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBAEjDznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA/OjCpnH,EAAAqnH,YAAuB,GACE,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBACvBznH,EAAmBmnH,YAAA,EACFnnH,EAAAonH,UAAA,EACApnH,EAAAqnH,YAAA,GACG,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBACpBznH,EAAoBmnH,YAAA,EACTnnH,EAAAonH,UAAA,EACJpnH,EAAAqnH,YAAA,MAONrnH,EAAA0nH,YAAkB,EAClB1nH,EAAWomH,eAAY,GAoPnBpmH,EAAGsS,WAAY,MA9OftS,GAAAsS,WAAe,GAkPpB,SAhPQ3R,GAiPP5I,EAhPI2I,YAAW,QAAY,mBAAS,cAiPpCV,EAAGsS,WAAY,QAGnBjY,GAAQ8C,OAAO,UAAW,uBA/OvB9F,WAAA,EACA+F,KAAA,OA84BX,QAhPIuqH,GAAA70G,GACQ,MAAJA,GACIA,EAAA80G,SAAW90G,EAAA+0G,WAiPXxtH,EAhPO8C,OAAI,kBAAqB,uDAChC9F,WAAW,EACR+F,KAAA,OAEH0V,EAAG+0G,SAAA,MAsPf,QAAS7zG,KA/ONhU,EAAAgT,YAAA,EACChT,EAAAqlH,YAiPArlH,EAAG6kH,SAAShjG,gBAAkB,KA/O9B7hB,EAAA2hB,eAiPA3hB,EAAG6kH,SAASoH,UAAY,KACxBjsH,EAAG6kH,SAhPKxwF,SAAK,KAiPbr0B,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAhPqB,KAiPxBngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAhPuB,KAiP1BxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAhPS,KAiPZ7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KA/OpBjhG,EAAAigG,yBAiPAjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBA/OH3gG,EAAA+gG,qBAiPA/gG,EAAG24C,YAhPS,KA2RhB,QAhPQv/B,GAAU1jB,GAiPd,GAAI2jB,GAhPI3jB,EAAQ2jB,KAiPZ9iB,EAhPIb,EAAAa,IAiPR,OAhPQ,QAgPDA,GAhPkC,KAAlB8iB,EAAAC,SA6S3B,QAASC,GAhPW7jB,GAiPhB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAhPKa,IAiPhB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAhPO,GAAAC,MAAYJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEhBxe,EAAA,EAASA,EAAA8E,EAAK2Z,OAAAxe,OAAAD,IAAA,CAiPjB,GAhPI0e,GAAW,GAAAH,MAAAzZ,EAAY2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAkP3B,IAhPGF,IAAAI,EACC,MAAA5Z,GAAA2Z,OAAgBze,GAAG1E,OAoP/B,MAAO,GAzyDX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBACKhJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEXA,MAAS,MAEfrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA/OQ,EAgPXvU,EAAGwU,qBA/OoB,SAAWC,GAgP9BzU,EAAGuU,YA/OKE,GAiPZzU,EAAG+S,WAAY,EACf/S,EAAG+3C,qBACH/3C,EAAG6kH,YACH7kH,EAAGumH,WAAY,EACfvmH,EAAG0kH,WAAY,EACf1kH,EAAGilH,SAAU,EA9ObjlH,EAAGklH,aAAO,EAgPVllH,EAAGsS,WAAY,EACftS,EAAGgT,YA/OI,EAgPPhT,EAAGmlH,cA/OI,EAgPPnlH,EAAGolH,UA/OC,EAiPJplH,EAAG0uG,cAAgBA,EA9OnB1uG,EAAGykH,eAAaA,EAiPhBzkH,EAAGgU,OAASA,EACZhU,EAAG2nH,cAAgBA,EACnB3nH,EAAGwlH,oBAAsBA,EA9OzBxlH,EAAGomD,YAAcA,EAgPjBpmD,EAAGyhB,oBA/OWA,EAgPdzhB,EAAG8lD,qBA/OkBA,EAgPrB9lD,EAAGo9E,2BA/OiBA,EAgPpBp9E,EAAG8kH,gBAAkBA,EACrB9kH,EAAGirD,yBA/OiBA,EAgPpBjrD,EAAGkmH,qBAAuBA,EAC1BlmH,EAAGmmH,cA/OWA,EAgPdnmH,EAAGsmH,UA/OK,EAgPRtmH,EAAGqmH,YA/OK,EAgPRrmH,EAAG4lH,WA/OKA,EAgPR5lH,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBAEH/gG,EAAG6mH,mBA/OY,EAgPf7mH,EAAG8mH,sBAAuB,EAC1B9mH,EAAGymH,SA/OS,CAgPZ,IAAIvmH,GA/OY/F,EAAiBgG,uBAgP7BgS,EAAYhY,EA/OqBgG,uBAAawU,gBAAAxC,SAgPlDD,KAmGAlS,EAAG8nH,gBAAkB,SAAShyH,GACtBA,EACAgvH,EAAgB,WACZ9kH,EAAG2yG,IAAI5uD,iBAAmB,KA9O3B/jD,EAAA2yG,IAAAoV,YAAW,KACf/nH,EAAOilH,SAAS,EAgPXjlH,EAAGklH,aAAc,EACjBllH,EAAGmlH,cAAe,EA9OnBnlH,EAAAolH,UAAW,EACfplH,EAAOgoH,gBAASxtH,EAAAyC,OAAA+C,EAAA+kH,iBAgPPjvH,UAAaA,IA7O1BkK,EAAUioH,iBAAeztH,EAAY++C,OAAAv5C,EAAAgoH,gBAAA,iBAC5BhoH,EAAA+kH,gBAAevqH,EAAOyC,OAAA+C,EAAA+kH,iBAgPlBjvH,UAAaA,OAKrBkK,EAAG2yG,IAAI5uD,iBAAmB,KA9O/B/jD,EAAA2yG,IAASoV,YAAA,KACRjD,MAoPJ9kH,EAAGkoH,iBAAmB,SAASpyH,EAAWguD,GA9OvCA,EACCghE,EAAQ,WAgPA9kH,EAAG2yG,IAAIoV,YAAc,KACrB/nH,EAAGilH,SAAU,EA9ObjlH,EAAAklH,aAAA,EACAllH,EAAAmlH,cAAA,EAgPAnlH,EAAGolH,UAAW,EACdplH,EAAG/C,UA9OX+C,EAAW/C,OAAInH,UAAAA,EACVkK,EAAQ/C,OAAS6mD,WAAYA,EAClC9jD,EAAAmoH,YAAoB3tH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,QACxB+C,EAAcooH,kBAAiB5tH,EAAA++C,OAAYv5C,EAAAmoH,YAAA,iBAC/BnoH,EAAC+kH,gBAAAvqH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,WAGV+C,EAAA2yG,IAAAoV,YAAA,KACC/nH,EAAM8nH,gBAAAhyH,KAqPVkK,EAAGqoH,aA/OY,SAAKvyH,EAAAguD,EAAA7sB,GACZA,EACA6tF,EAAI,WAgPA9kH,EAAGilH,SAAU,EA9OjBjlH,EAAKklH,aAAe,EAChBllH,EAAAmlH,cAAiB,EAgPjBnlH,EAAGolH,UAAW,EA9OdplH,EAAA/C,UAgPA+C,EAAG/C,OA/OCnH,UAAiBA,EAgPjBkK,EAAG/C,OAAO6mD,WAAaA,EACvB9jD,EAAG/C,OAAOg6B,QAAUA,EACxBj3B,EAAGsoH,YAAc9tH,EAAOyC,OAAO+C,EAAG+kH,gBAAiB/kH,EAAG/C,QA9OvD+C,EAAAuoH,kBAAA/tH,EAAA++C,OAAAv5C,EAAAsoH,YAAA,YAgPCtoH,EAAG+kH,gBAAkBvqH,EAAOyC,OAAO+C,EAAG+kH,gBAAiB/kH,EAAG/C,UAG9D+C,EAAGkoH,iBAAiBpyH,EAAWguD,IA1O9C9jD,EAAAwoH,MAAW,WACRxoH,EAAA2yG,IAAA9wF,gBAAA,KAgPQ7hB,EAAG2yG,IAAI5uD,iBAAmB,KAC1B/jD,EAAG2yG,IAAIoV,YAAc,KA/O7B/nH,EAAAilH,SAAA,EACKjlH,EAAAklH,aAAO,EACPllH,EAAAmlH,cAAW,EAiPRnlH,EAAGolH,UAAW,EACdN,KA3OJjtE,IAgBA73C,EAAGw5C,cACIC,UAAA,EAiPCC,WAAY,WA7OjBD,UAAW,EACXC,WAAY,WAGZD,UAAc,EACdC,WAAY,YAGZD,UAAW,EAiPNC,WAAY,cAGZD,UAAW,EA/OhBC,WAAS,aAGTD,UAAc,EACdC,WAAA,WAGAD,UAAA,EACAC,WAAA,aA+kBH15C,EAAGm5C,WAAY,EACfn5C,EAAGs0D,MAAQ,WACHt0D,EAAG6kH,SAhPKvwD,MAiPRt0D,EAAGm5C,WAAY,EAEfn5C,EAAGm5C,WAhPS,GAmPpBn5C,EAAGyoH,OAhPQ,SAAS3lH,GAiPhB,GAhPIsS,GAAGpV,EAAAqyB,IAAAjvB,QAAiBN,EAiPxB9C,GAAGqyB,IAhPIiD,OAAAlgB,EAAc,IAiLzBpV,EAAA0oH,gBAAoB,WAEb1oH,EAAAihG,eAAiB9lG,OAAA,IAiPhB6E,EAAG8mH,sBAAuB,IA4LlC9mH,EAAG2oH,cAAgB,WACf3oH,EAAGomH,eAAgB,CACnB,IAAInrH,IA9ORnF,UAASkK,EAAA6kH,SAAgBhjG,gBAAA/rB,UACjBguD,WAAG9jD,EAAA6kH,SAAgBxwF,SAAAyvB,WACnB2vC,SAAGzzF,EAAA+mD,OACH5I,SAAGn+C,EAAAi4B,OAmPP8kD,GAhPqBiB,kBAAgB/iF,GAAAwD,KAAA,SAAAC,GACjB,MAAZA,EAAIlI,QAELwJ,EAAAqlH,YACCrlH,EAAA6mH,mBAAM,EACN7mH,EAAA8mH,sBAAe,EACf9mH,EAAAymH,SAAA,EACAzmH,EAAA24C,YAAW,KACX34C,EAAA6kH,SAAW1xG,gBAAY,KACvBnT,EAAA6kH,SAAYhjG,gBAAY,KACxB7hB,EAAA2hB,eACA3hB,EAAA6kH,SAAYoH,UAAG,KAkPfjsH,EAAG6kH,SAASxwF,SAAW,KA/O3Br0B,EAAA68C,kBACI78C,EAAA4mD,eAiPA5mD,EAAGmgG,sBACHngG,EAAGmgG,mBAhPS,KAiPZngG,EAAGwgG,yBACHxgG,EAAGwgG,sBAhPoB,KAiPvBxgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAGi+C,iBAAmB,KACtBj+C,EAAGihG,kBACHjhG,EAAGihG,eAhPY,KAEhBjhG,EAAAigG,yBACCjgG,EAAAsgG,4BAiPAtgG,EAAG2gG,qBA/OJ3gG,EAAA+gG,sBAEAhpG,EAAA2I,YAAiB,QAAA,8BACjBrJ,WAAA,EACA+F,KAAW,QAmPf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,gEAC5BrJ,WAAW,EA/OpB+F,KAAA,UAsPH4C,EAAG4oH,gBAAkB,WACjB,GAAIv2F,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG6oH,gBACbx2F,EAAIx6B,KAAKmI,EAAG6oH,gBAAgB3tH,GAAG0kF,OAEnC5/E,GAAG4/E,OAASvtD,EAAIqB,MAEhB,IAAIS,KACJ,KAAK,GAAIj5B,KAAK8E,GAAGihG,eACb9sE,EAAKt8B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAEnC/Y,GAAGi4B,OAAS9D,EAAKT,MAEjB,IAAIz4B,IACA2kF,OAAQ5/E,EAAG4/E,OACX9pF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC2vC,SAAUzzF,EAAG+mD,OACb5I,SAAUn+C,EAAGi4B,OAGjB8kD,GAAyBiB,kBAAkB/iF,GAAKwD,KAAK,SAASC,GACvC,MAAfA,EAAIlI,QAEJwJ,EAAG8oH,eAAgB,EACnB1rC,EAA2Bp9E,EAAG6kH,SAAShjG,gBAAgB/rB,UAAWkK,EAAG6kH,SAASxwF,SAASyvB,aAGvF/rD,EAAW2I,YAAY,QAAS,8BAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,gEA/O/BrJ,WAAA,EACF+F,KAAA,UAqPP4C,EAAG+oH,SAAW,WACV/oH,EAAGgpH,gBAhPiB,GAmPxBhpH,EAAGipH,aAhPQ,SAAWn2G,GAiPlB9S,EAAGsS,WAAY,EACftS,EAAGgT,YAhPI,EAiPPhT,EAAG+S,WAAY,EACf/S,EAAGgpH,gBAAiB,EACpBhpH,EAAGqlH,YACHrlH,EAAGymH,SAAU,EACbzmH,EAAG8mH,sBAhPU,EAiPb9mH,EAAGwnH,kBAhPW,CAkPd,IAAIvsH,IACAnF,UAhPIgd,EAAAhd,UAiPJguD,WAhPYhxC,EAAGgxC,WAiPf87B,OAhPI9sE,EAAA8sE,OAmPR7C,GAhPmB2B,oBAAAzjF,GAAAwD,KAAA,SAAAC,GACf,GAAA,MAAAA,EAAAlI,OAAA,CACIwJ,EAAAqlH,SAAQ3mH,EAAAhJ,KAAW8wH,UAiPnB,KAhPI,GAAGtrH,KAAA8E,GAAAqlH,SACHrlH,EAAAqlH,SAAOnqH,GAAQ8oD,MAAGrnD,KAAUC,MAAAoD,EAASqlH,SAAGnqH,GAAA23G,gBAiPxC7yG,EAAGqlH,SAhPO,GAAAqB,SAAY,CAItB1mH,GAAAqlH,SAASlqH,OAAQ,IAiPjB6E,EAAG6mH,mBAhPgB,GAkPvB7mH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAhPQ,EAiPXrnH,EAAGsnH,SAhPQ5oH,EAAAhJ,KAAA6xH,IAiPXvnH,EAAG6kH,SAhPQoH,UAAA,GAAAxyG,MAAAzZ,EAAuBsnH,SAAA2E,WAiPlCjsH,EAAG24C,YAhPQ34C,EAAAsnH,SAAe3uE,YAiP1B34C,EAAG6kH,SAAShjG,mBACZ7hB,EAAG6kH,SAASxwF,YACZr0B,EAAG6kH,SAAShjG,gBAAgB/rB,UAAYkK,EAAGsnH,SAASxxH,UACpDkK,EAAG6kH,SAASxwF,SAASyvB,WAAa9jD,EAAGsnH,SAASxjE,WAC9C9jD,EAAG+mD,OAAS/mD,EAAGsnH,SAAS7zB,SACxBzzF,EAAGsiB,YAAcxP,EAAIwP,YACrBtiB,EAAG4yB,cAAgB9f,EAAI8f,aACvB,IAAIP,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SACbhzF,EAAIx6B,KAAKmI,EAAGqlH,SAASnqH,GAAG+7B,QAE5Bj3B,GAAGi4B,OAAS5F,EAAIqB,OAKZ1zB,EAAGsnH,SAAS1nC,SACwB,GAAhC5/E,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBAEjDznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACuB,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBACxDznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACuB,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,mBACxDznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,IAGxBrnH,EAAGsS,WAAY,EACftS,EAAGumH,WAAY,MAEfxuH,GAAW2I,YAAY,QAAS,gCAAiC,qBAGtE,SAASC,GACR5I,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,UAOlB4C,EAAGkpH,eAAiB,WAChBlpH,EAAGsS,WAAY,EACftS,EAAGgpH,gBAAiB,EACpBhpH,EAAGqlH,YACHrlH,EAAGymH,SAAU,EACbzmH,EAAG8mH,sBAAuB,EAC1B9mH,EAAGwnH,kBAAmB,CAEtB,IAAIvsH,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC87B,OAAQ5/E,EAAGsnH,SAhPI1nC,OAiPfzhC,SAAUn+C,EAhPEi4B,OAiPZw7D,SAAUzzF,EAhPE+mD,OAiPZqgE,SAAU,EAGdrqC,GAhPwBe,iBAAY7iF,GAAAwD,KAAA,SAAyBC,GAiPzD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGmpH,aAhPazqH,EAAGhJ,KAAAyzH,aACW,GAgP1BnpH,EAAGmpH,aAhPYjhB,YAiPfnwG,EAAW2I,YAhPI,UAAaV,EAAAmpH,aAAAt1G,QAAA,mBACG,GAgPxB7T,EAAGmpH,aAhPYjhB,YAiPtBnwG,EAAW2I,YAhPI,UAAaV,EAAAmpH,aAAAt1G,QAAA,mBAkP5B9b,EAAW2I,YAhPI,QAAaV,EAAAmpH,aAAAt1G,QAAA,mBAkPhC7T,EAAGqlH,SAAW3mH,EAhPEhJ,KAAG8wH,WAiPnBhsH,EAAOqI,QAAQ7C,EAhPCqlH,SAAG,SAAW73G,GACX,KAgPXA,EAAEq6G,WACFr6G,EAAEq6G,SAAW,KAGrB,KAAK,GAAI3sH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAhPI,GAAAqB,SAAA,CAmPP1mH,GAAGqlH,SAASlqH,OAAS,IACrB6E,EAAG6mH,mBAAoB,GAG3B7mH,EAAGmnH,YAhPI,EAiPPnnH,EAAGonH,UAhPI,EAiPPpnH,EAAGqnH,YAAa,EA/OjBrnH,EAAAsnH,SAAc5oH,EAAAhJ,KAAA6xH,IAEVvnH,EAAAsnH,SAAY1nC,SAiPyB,GAAhC5/E,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBA9OrDznH,EAAOmnH,YAAW,EACtBnnH,EAAWonH,UAAA,EACLpnH,EAAAqnH,YAAA,GAiPyC,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBACxDznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EACdpnH,EAAGqnH,YAAa,GACuB,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,mBA/OzDznH,EAAAmnH,YAAW,EACvBnnH,EAAgBonH,UAAA,EACTpnH,EAAAqnH,YAAA,IAINrnH,EAAAsS,WAAa,MAkPTva,GAAW2I,YAAY,QAAS,gCAAiC,qBAGtE,SAhPSC,GAiPR5I,EAAW2I,YAAY,QAAS,iCA/O5BrJ,WAAG,EACH+F,KAAG,UAwPf4C,EAAGopH,eAAiB,WAChBppH,EAAGsS,WAhPQ,EAiPXtS,EAAG8mH,sBAhPQ,EAiPX9mH,EAAGwnH,kBAhPQ,EAiPXxnH,EAAGqlH,WACH,IAAIpqH,IACAnF,UAhPOkK,EAAA6kH,SAAAhjG,gBAAwB/rB,UAiP/BguD,WAhPO9jD,EAAA6kH,SAAAxwF,SAAwByvB,WAiP/B87B,OAhPO5/E,EAAAsnH,SAAA1nC,OAiPPzhC,SAhPOn+C,EAAAi4B,OAiPPw7D,SAhPOzzF,EAAA+mD,OAiPPqgE,SAhPO,EAmPXrqC,GAhPWe,iBAAwB7iF,GAAAwD,KAAA,SAAAC,GAiP/B,GAhPO,MAAHA,EAAGlI,OAAA,CASR,GARKwJ,EAAGmpH,aAAAzqH,EAAAhJ,KAAoByzH,aACA,GAApBnpH,EAAAmpH,aAAAjhB,YACAnwG,EAAA2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,mBAC6B,GAArB7T,EAAAmpH,aAAYjhB,YACnBnwG,EAAW2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,mBAkPX9b,EAAW2I,YAAY,QAASV,EAAGmpH,aAAat1G,QAAS,mBA9OzD7T,EAAA+S,UAkCJ/S,EAAA+xB,WAlCS,CACb/xB,EAAWqlH,SAAA3mH,EAAYhJ,KAAA8wH,WACnBhsH,EAAWqI,QAAA7C,EAAAqlH,SAAA,SAAA73G,GACL,KAAAA,EAAAq6G,WAiPMr6G,EAAEq6G,SAAW,KAGrB,KAAK,GAAI3sH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBA/OlE7yG,EAAkBqlH,SAAW,GAAAqB,SAAA,CAGpB1mH,GAAKmnH,YAAG,EAiPJnnH,EAAGonH,UAAW,EA/OdpnH,EAAAqnH,YAAI,EAiPJrnH,EAAGsnH,SAAW5oH,EAAIhJ,KAAK6xH,IA9OrBvnH,EAAGsnH,SAAA1nC,SACkB,GAAlB5/E,EAAAsnH,SAAeE,kBAAG,GAAAxnH,EAAAsnH,SAAAG,kBAElBznH,EAAAmnH,YAAA,EAiPGnnH,EAAGonH,UAAW,EA/OxBpnH,EAAAqnH,YAAA,GACK,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBACGznH,EAAAmnH,YAAS,EACRnnH,EAAAonH,UAAS,EACXpnH,EAAAqnH,YAAA,GACA,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,mBAiPGznH,EAAGmnH,YAAa,EAChBnnH,EAAGonH,UAAW,EA/OlCpnH,EAAAqnH,YAAyB,IAsPjBrnH,EAhPGsS,WAAA,MAmPHva,GAhPU2I,YAAA,QAAA,gCAAA,qBAGf,SAASC,GACR5I,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,UAsPlB4C,EAAGqpH,UAhPI,SAAiBv2G,GAiPpB9S,EAAGsS,WAAY,EA9OhBtS,EAAAqlH,WAEC,IAAGpqH,IACAnF,UAAYgd,EAAAhd,UACZguD,WAAAhxC,EAAiBgxC,WACjBwlE,WAAWx2G,EAAAy2G,WACXC,gBAAU12G,EAAA80G,QACVhoC,OAAA5/E,EAAAsnH,SAAA1nC,OAkPH7C,GAAyBc,mBAAmB5iF,GAAKwD,KAAK,SAASC,GA/O3D,GAAM,KAANA,EAAMlI,OAAA,CACNwJ,EAAAmpH,aAAezqH,EAAAhJ,KAAAyzH,aACC,GAAhBnpH,EAAAmpH,aAAgBjhB,YACRnwG,EAAI2I,YAAA,UAAAV,EAAAmpH,aAAAt1G,QAAA,iBAiPkC,GAA/B7T,EAAGmpH,aAAajhB,YACvBnwG,EAAW2I,YAAY,UAAWV,EAAGmpH,aAAat1G,QAAS,iBA9O3D9b,EAAW2I,YAAK,QAAAV,EAAAmpH,aAAAt1G,QAAA,iBAEpB7T,EAAAqlH,SAAc3mH,EAAGhJ,KAAA8wH,WAiPjBhsH,EAhPOqI,QAAA7C,EAASqlH,SAAW,SAAK73G,GACb,KAAZA,EAAAq6G,WAiPCr6G,EAAEq6G,SAAW,MA7OrB7nH,EAAAmnH,YAAgB,EAiPhBnnH,EAAGonH,UAhPI,EAiPPpnH,EAAGqnH,YAAa,EA/OhBrnH,EAAGsnH,SAAA5oH,EAAahJ,KAAA6xH,GAChB,KAAG,GAAArsH,KAAW8E,GAAAqlH,SACXrlH,EAAAqlH,SAAanqH,GAAA8oD,MAAArnD,KAAAC,MAAAoD,EAAAqlH,SAAAnqH,GAAA23G,gBACb7yG,EAAAqlH,SAAW,GAAIqB,SAAK,CAGpB1mH,GAAAsnH,SAAS1nC,SACW,GAApB5/E,EAAAsnH,SAASE,kBAAW,GAAAxnH,EAAAsnH,SAAAG,kBAEpBznH,EAAAmnH,YAAkB,EAClBnnH,EAAAonH,UAAY,EACZpnH,EAAAqnH,YAAkB,GACE,GAApBrnH,EAAAsnH,SAAoBE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBACnBznH,EAAMmnH,YAAA,EACLnnH,EAAIonH,UAAQ,EACTpnH,EAAAqnH,YAAQ,GAiP+B,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,mBA/O7DznH,EAAAmnH,YAAa,EAiPRnnH,EAAGonH,UAAW,EA/OtBpnH,EAAAqnH,YAAA,IAoPArnH,EAAGsS,WAhPQ,MAoPXva,GAhPW2I,YAAA,QAAaV,EAAAmpH,aAAAt1G,QAAA,kBAoP7B,SAASlT,GACR5I,EAAW2I,YAhPW,kCAoP9BV,EAAGypH,kBAAoB,WACnB,GAAIp3F,KAEJ,KAAK,GAhPGn3B,KAAG8E,GAAAqlH,SAkPPhzF,EAhPIx6B,MAiPI/B,UAAWkK,EAAGqlH,SAASnqH,GAAGpF,UAC1BguD,WAAY9jD,EAAGqlH,SAASnqH,GAAG4oD,WA/O3B1sB,WAAKp3B,EAAAqlH,SAAAnqH,GAAAk8B,WACbH,QAAWj3B,EAAAqlH,SAAYnqH,GAAS+7B,QAC5B+vF,SAAWhnH,EAAAqlH,SAAAnqH,GAAA8rH,SACXa,SAAM,GAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,UAAA,IAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GAiPF/zG,UAAW5T,EAAWG,OACtB0oH,SAAU/oH,EAAGqlH,SAASnqH,GAAG0sH,SAIrC,IAAI3sH,IA/OL4xB,UAAAlwB,KAAiBqkB,UAAWqR,GAE3B0qD,GAAoBiD,oBAAA/kF,GAAAwD,KAAA,SAAAC,GACN,KAAXA,EAAAlI,OACAuB,EAAU2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,sBACVnV,EAAAhJ,KAAAo0H,cAAuB,EACvB/xH,EAAA2I,YAAmB,UAAAhC,EAAAhJ,KAAAme,QAAA,uBAElB9b,EAAM2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,sBACN7T,EAAAgT,YAAc,IAkPf,SAhPSrS,GACR5I,EAAU2I,YAAG,kCAoPrBV,EAAGypH,kBAAoB,WA/OnB,GAAAp3F,KAkPA,KAAK,GAhPGn3B,KAAG8E,GAAAqlH,SAkPPhzF,EAAIx6B,MACI/B,UAhPUkK,EAAAqlH,SAAanqH,GAAApF,UACvBguD,WAAW9jD,EAAAqlH,SAAYnqH,GAAA4oD,WAiPvB1sB,WAhPGp3B,EAAAqlH,SAAAnqH,GAAAk8B,WACHH,QAAAj3B,EAAWqlH,SAAAnqH,GAAY+7B,QAiPvB+vF,SAAUhnH,EAAGqlH,SAASnqH,GAAG8rH,SA/O1Ba,SAAoB,GAAT7nH,EAAIqlH,SAAKnqH,GAAA2sH,UAAA,IAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GACvB/zG,UAAe5T,EAAGG,OACd0oH,SAAM/oH,EAAAqlH,SAAYnqH,GAAA0sH,SAoP9B,IAAI3sH,IACA4xB,UAhPWlwB,KAAAqkB,UAAYqR,GAkP3B0qD,GAAyBiD,oBAAoB/kF,GAAKwD,KAAK,SAASC,GAC1C,KAAdA,EAAIlI,OA/OJuB,EAAO2I,YAAS,UAAYhC,EAAAhJ,KAAAme,QAAA,sBACrBnV,EAAAhJ,KAAAo0H,cAAoB,EAiP3B/xH,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,uBA9OpD9b,EAAG2I,YAAa,QAAAhC,EAAAhJ,KAAAme,QAAA,sBAChB7T,EAAGgT,YAAW,IAkPnB,SAhPQrS,GAiPP5I,EAAW2I,YAAY,kCAK/BV,EAAG+pH,YAAc,WACb/pH,EAAGsS,WAAY,EACftS,EAAGiqH,aAAc,EACjBjqH,EAAG8mH,sBAhPgB,EAiPnB9mH,EAAGgqH,QAAS,CACZ,KAAK,GAAI9uH,KAAK8E,GAhPEqlH,SACmB1vH,QAgP3BqK,EAAGqlH,SAhPQnqH,GAAI8rH,UAAiD,IAArChnH,EAAAqlH,SAAyBnqH,GAAG8rH,WAiPvDhnH,EAAGgqH,QAhPQ,EAoPnB,IAAIhqH,EAAG6kH,SAASoH,YAAcjsH,EAAGgqH,OAAQ,CACrC,GAAI33F,KACJ,KAhPI,GAAGn3B,KAAA8E,GAAAqlH,SAAY,CAiPf,GAhPGvsE,IACHoxE,OAAWlqH,EAAAqlH,SAAYnqH,GAAA0sH,QAiPnB9jE,WAAY9jD,EAAGqlH,SAASnqH,GAAG4oD,WAC3B7sB,QAASj3B,EAAGqlH,SAASnqH,GAAG+7B,QA/OxB+vF,SAAKhnH,EAAAqlH,SAAAnqH,GAAA8rH,SACb5vF,WAAWp3B,EAAYqlH,SAASnqH,GAAAk8B,WAC5BywF,SAAWlyH,QAAAqK,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GACXnzF,OAAM10B,EAAAqlH,SAAAnqH,GAAAw5B,OAiPFtK,MAAOpqB,EAAGqlH,SAASnqH,GAAGkvB,MACtB+/F,SAAUnqH,EAAGqlH,SAASnqH,GAAGy4C,YACzB/9C,OAAQ,EAEZy8B,GAAIx6B,KAAKihD,GA7OlB,GAAA79C,IACI2kF,OAAY5/E,EAAAsnH,SAAA1nC,OACZ9pF,UAAAkK,EAAA6kH,SAAuBhjG,gBAAA/rB,UACvBguD,WAAA9jD,EAAmB6kH,SAAAxwF,SAAAyvB,WACnBnL,YAAW34C,EAAA24C,YACV2xE,QAAMtqH,EAAAsnH,SAAAgD,QAINjF,SAAa1oH,KAAAqkB,UAAAqR,GACbve,UAAa5T,EAAAG,OACb4rH,UAAUhyH,EAAA,QAAA+F,EAAA6kH,SAAAoH,UAAA,cAkPLjsH,GAAG0kH,WA6DJzpH,EAAIsvH,cAAgBvqH,EAAG4kH,UA/OhC7nC,EAA0BI,yBAAAliF,GAAAwD,KAAA,SAAAC,GACVA,EAAAhJ,KAAAke,aAAA,GAiPC7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,4BA9OpE7T,EAAAumH,WAAA,EACUvmH,EAAAwqH,YAAA,GAGMzyH,EAAI2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,qBAIpB,SAAAlT,GACY5I,EAAU2I,YAAK,kCA1E3Bq8E,EAAyBiC,qBAA2B/jF,GAAAwD,KAAS,SAAKC,GACtD,GAAgB,MAAhBA,EAAAlI,OAAgB,CAEb,GADJwJ,EAAAmpH,aAAmBzqH,EAAKhJ,KAAAyzH,aACW,GAA/BnpH,EAAAmpH,aAAajhB,YAAkB,CAE3BnwG,EAAG2I,YAAa,UAAkBV,EAAAmpH,aAAAt1G,QAAA,wBACzC7T,EAAWqlH,SAAA3mH,EAAYhJ,KAAA8wH,WACpBhsH,EAAAqI,QAAA7C,EAAAqlH,SAAA,SAAA73G,GACoB,KAAZA,EAAAq6G,WAiPKr6G,EAAEq6G,SAAW,MA9O1B7nH,EAAAmnH,YAAoB,EAChBnnH,EAAAonH,UAAW,EACVpnH,EAAEqnH,YAAY,EACdrnH,EAAEsnH,SAAW5oH,EAAAhJ,KAAA6xH,GAiPb,KAAK,GAAIrsH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBA/OpD7yG,EAAKqlH,SAAG,GAAUqB,SAAA,CAEpB1mH,GAAAsnH,SAAY1nC,SAiP6B,GAAhC5/E,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,kBA9OjDznH,EAAAmnH,YAAA,EACFnnH,EAAAonH,UAAA,EACEpnH,EAAAqnH,YAAA,GACO,GAAArnH,EAAAsnH,SAAAE,kBAAA,GAAAxnH,EAAAsnH,SAAAG,kBAiPPznH,EAAGmnH,YAAa;AA/OhBnnH,EAAAonH,UAAQ,EACbpnH,EAAAqnH,YAAS,GAiPmC,GAAhCrnH,EAAGsnH,SAASE,kBAAyD,GAAhCxnH,EAAGsnH,SAASG,mBA/O7DznH,EAAAmnH,YAAa,EACbnnH,EAAAonH,UAAW,EACXpnH,EAAAqnH,YAAa,QAIb,IAAa,GAAbrnH,EAAAmpH,aAAajhB,YAAA,CAiPhBnwG,EAhPU2I,YAAS,UAAAV,EAAAmpH,aAA4Bt1G,QAAS,uBACxD,IAAGlf,GAAA,EACH,KAAG,GAAAuG,KAAWwD,GAAAhJ,KAAAm9B,UACXl+B,EAAAA,EAAa+J,EAAAhJ,KAAAm9B,UAAA33B,GAAA23B,UAAA,MAkPFx4B,GAAQ8C,OAAOuB,EAAIhJ,KAAKme,QAASlf,GAAY0C,WAAW,EAAM+F,KAAM,MA/OvFD,QAAAuC,OAAAjB,KAAA,kBAGJ1G,GAAY2I,YAAA,QAAAV,EAAAmpH,aAAAt1G,QAAA,gBAGf7T,GAAWumH,WAAY,EAiPfvmH,EAAGwqH,YAAc,MA9OrBzyH,GAAK2I,YAAA,8BAETV,GAAAsS,WAAW,GAkPR,SAAS3R,GACR5I,EAAW2I,YAAY,qCAsB/BrG,GAhPQ8C,OAAA,UAAW,6BAiPf9F,WAhPO,EAiPP+F,KAhPI,OAkPR4C,EAAGsS,WAhPI,GAsPftS,EAAG+xB,KAAO,WACN/xB,EAAG6mH,mBAhPmB,EAiPtB7mH,EAAG8mH,sBAhPqB,EAiPxB9mH,EAAGymH,SAhPQ,EAiPXzmH,EAAGumH,WAhPU,EAiPbvmH,EAAG+S,WAhPY,EAiPf/S,EAAGgT,YAhPY,EAiPfd,KAGJlS,EAAGyqH,WAhPa,WAiPZzqH,EAAG8oH,eAAgB,GAIvB9oH,EAAG0qH,YAAc,WACb,GAAIr4F,KACJ,KAAK,GAAIn3B,KAAK8E,GAhPEihG,eAiPZ5uE,EAAIx6B,KAAKmI,EAhPGihG,eAAG/lG,GAAa6d,GAkPhC/Y,GAAGi4B,OAAS5F,EAhPIqB,MAkPhB,IAAIz4B,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG6kH,SAASxwF,SAASyvB,WACjC2vC,SAAUzzF,EAAG+mD,OACb5I,SAhPOn+C,EAAAi4B,OAkPX8kD,GAAyBkB,kBAAkBhjF,GAAKwD,KAAK,SAASC,GAC1D,GAhPO,MAgPHA,EAhPGlI,OAAA,CAoPH,GAnPAwJ,EAAA2qH,YAAWjsH,EAAAhJ,KAiPXsK,EAAG6oH,mBAEC7oH,EAAGqlH,SAASlqH,OAAS,EA/OrB,IAAK,GAAAD,KAAA8E,GAAAqlH,SACF,IAAA,GAAAl7G,KAAYnK,GAAA2qH,YAiPH3qH,EAAGqlH,SAASnqH,GAAGk8B,YAAcp3B,EAAG2qH,YAAYxgH,GAAGitB,YAC/Cp3B,EAAG6oH,gBAAgBhxH,KAAKmI,EAAG2qH,YAAYxgH,QA3OtDnK,GAAK6oH,gBAAa7oH,EAAA2qH,WAEnB3qH,GAAK6oH,gBAAA1tH,OAAA,EACD6E,EAAA8oH,eAAc,EAEdzuH,EAAA8C,OAAe,UAAS,uBACxB9F,WAAY,EACZ+F,KAAU,SAoPnB,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBA+C5DV,EAAGqa,MAAQ,WACPra,EAhPGsa,GAAA,GAASb,OAkPhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eA/OCC,YAAGjB,EACHkB,QAAG,GAAShB,MAAA,KAAA,EAAA,KAmPhBzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,GAAI,IAE5BqB,YAhPQ,GAmPZ9a,EAAGkrH,UACCtwG,aAhPYxB,EAiPZ+C,WAhPY,KAiPZtB,QAAS,GAhPGpB,MAAA,KAAU,EAAG,IAiPzBgB,QAAS,GAhPGhB,MAiPZqB,YAhPY,GAmPhB9a,EAAGmrH,cAhPa,WAkPZnrH,EAAGkrH,SAASzwG,QAAUza,EAAG6kH,SAASoH,WAUtCjsH,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAhPKtM,QAAW,CAiPnB,IAAIwL,GAAQ,GAAIZ,MA/OZ06B,EAAQ,EAkPZn0C,GAAGm5B,SACCte,QAAS,GAhPGpB,MAAGY,EAAA65B,cAAwBC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,aAqP/Chc,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAAU,SAASC,EAhPEC,EAASC,GAiP7B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAhPIC,IAmP/B3b,EAAG4b,SAAW,eAhPc,aAAY,aAAQ,aAiPhD5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAGZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAhPOC,UAAc,EAiPtC,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAAQO,EAASC,UAAY,GAC3Chc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,oPA/xDhBpC,QACKC,OAAO,0CACPe,WAAW,iCA/OiBo3H,MAsiErC,WACI,YAOA,SAASE,GAhPa30H,EAAA2C,EAAA+P,EAAAxQ,EAAAO,EAAAwN,EAAAgK,EAAA3X,EAAA0iF,EAAA5iF,GA8PlB,QAhPOwyH,KACH36G,EAAAI,mBAAAD,GAAA1T,KAAA,SAAAC,GAiPuB,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KA/O9BsK,EAAAsS,WAAwB,IAkPpB,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA9OzDsH,EAAcuwF,mBACTvwF,EAAMgyF,sBAkQd,QAASv4E,GAhPgBtP,GAiPjBA,GACAnS,EAAG6kH,SAAShjG,gBAhPW,KAiPvB7hB,EAAG2hB,eACH3hB,EAAG6kH,SAASwG,aAAe,KAC3BrrH,EAAGurH,YACHvrH,EAAGqlH,YACHrlH,EAAG6kH,SAAS+H,YAAc,KAC1B5sH,EAAG6sH,gBACH7sH,EAAGtK,QACHsK,EAAG8sH,WACH9sH,EAAG+sH,YAhPQ,EAiPX/sH,EAAGgtH,eAhPQ,EAkPXjwC,EAhPuBmB,yBAAA/rE,GAAA1T,KAAA,SAAAC,GACL,MAgPVA,EAhPIlI,QAiPJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACQ,GAAzBsK,EAAG2hB,YAAYxmB,QACfd,EAAQ8C,OAAO,UAAW,2BA/OzB9F,WAAA,EACF+F,KAAA,QAoPH4C,EAAGsS,WAAY,GA9OvB,SAAO3R,GACH5I,EAAI2I,YAAe,QAAU,mBAAA,cAC7BV,EAAAsS,WAAe,MAmPnBtS,EAAG6kH,SAAShjG,gBAAkB,KAC9B7hB,EAAG2hB,eACH3hB,EAAG6kH,SAASwG,aAAe,KAC3BrrH,EAAGurH,YACHvrH,EAAGqlH,YACHrlH,EAAG6kH,SAAS+H,YAAc,KAC1B5sH,EAAG6sH,gBA/OX7sH,EAAStK,QACFsK,EAAA8sH,WACA9sH,EAAA+sH,YAAW,EACX/sH,EAAAgtH,eAAS,GAoPhB,QAhPOd,GAAiBr2F,GACjBA,GACA71B,EAAA6kH,SAAAwG,aAAqB,KACrBrrH,EAAAurH,YACAvrH,EAAAqlH,YACArlH,EAAA6kH,SAAA+H,YAAwB,KACxB5sH,EAAA6sH,gBACA7sH,EAAAtK,QACAsK,EAAA8sH,WACA9sH,EAAA+sH,YAAiB,EACjB/sH,EAAAgtH,eAAiB,EACjBjwC,EAAwBoB,gBAAAtoD,GAAAp3B,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,OACAwJ,EAAAurH,SAAoB7sH,EAAAhJ,KAEpBsK,EAAAsS,WAAc,GAkPV,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cACpDV,EAAGsS,WAAY,MA7OxBtS,EAAQ6kH,SAAAwG,aAAW,KACfrrH,EAAAurH,YAiPCvrH,EAAGqlH,YA/ORrlH,EAAA6kH,SAAA+H,YAAA,KAiPK5sH,EAAG6sH,gBA/OR7sH,EAAQtK,QACJsK,EAAA8sH,WAiPC9sH,EAAG+sH,YAAa,EAChB/sH,EAAGgtH,eAAgB,GAK3B,QAAS7tC,KA9OL,GAAAn/E,EAAA6kH,SAAcwG,aAAA,CACdrrH,EAAAqlH,YACArlH,EAAA6kH,SAAa+H,YAAe,KAiPxB5sH,EAAG6sH,gBA/OP7sH,EAAAtK,QAiPIsK,EAAG8sH,WACH9sH,EAAG+sH,YAAa,EA/OrB/sH,EAAAgtH,eAAW,CACV,IAAA/xH,IACAnF,UAAYkK,EAAA6kH,SAAAhjG,gBAAA/rB,UACZ8pF,OAAa5/E,EAAK6kH,SAASwG,aAAAzrC,OAE3B7C,GAAaoC,iBAAAlkF,GAAAwD,KAAA,SAAAC,GAiPc,MAAfA,EAAIlI,OACJwJ,EAAG6sH,aAAenuH,EAAIhJ,KA9OlCsK,EAAAsS,WAAA,GAkPO,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cACpDV,EAAGsS,WAAY,QA7OnBtS,GAAAqlH,YACJrlH,EAAO6kH,SAAS+H,YAAU,KAiPtB5sH,EAAG6sH,gBACH7sH,EAAGtK,QA/ORsK,EAAQ8sH,WACJ9sH,EAAA+sH,YAAgB,EAiPf/sH,EAAGgtH,eAAgB,EAI3B,QAhPQC,GAAY3H,EAAAjnC,GAkPhBr+E,EAAGsS,WAAY,EA/OftS,EAAGtK,QAiPHsK,EAAG8sH,WACH9sH,EAAG+sH,YAAa,EAChB/sH,EAAGgtH,eAAgB,EACnBjwC,EAAyBqB,wBAAwBknC,EAAQjnC,GAAS5/E,KAAK,SAASC,GAC5E,GAAmB,MAAfA,EAAIlI,OAAgB,CA/OrBwJ,EAAAqlH,SAAW3mH,EAAAhJ,IACf,IAAOuF,KAiPF,IAAI+E,EAAGqlH,SAASlqH,OAAS,EAAG,CACxB,IAAK,GAAID,KAAK8E,GAAGqlH,SAAU,CA9O7B,GAAS6H,GAAAltH,EAAAqlH,SAAAnqH,GAAA02B,iBAiPCkuD,EAAoB9/E,EAAGqlH,SAASnqH,GAAG4kF,kBACnC3pF,EAAe6J,EAAGqlH,SAASnqH,GAAG23B,UA/OhCuE,EAAap3B,EAAKqlH,SAAAnqH,GAAAk8B,WACnB+1F,KAiPGC,IACJptH,GAAGqlH,SAASnqH,GAAGmyH,OAASxhG,WAAa7rB,EAAGqlH,SAASnqH,GAAG,SAAUiI,WAAYsd,MAAM,YA/OtF,IAAA6sG,IAAgB1mH,SAAc1L,GAAA,GAAAiI,UAEtBnD,GAAAqlH,SAAAlqH,OAAAyL,SAAA1L,IAiPEkyH,EAAav1H,MA/OzB6U,KAAA9F,SAAA5G,EAAAqlH,SAAAnqH,GAAAmyH,QAAAlqH,aAIAgqH,EAAAt1H,MACA4E,KAAAuD,EAAAqlH,SAAAnqH,GAAAgvH,OAAA,IAAAlqH,EAAAqlH,SAAAnqH,GAAA02B,iBAAA,KAAA5xB,EAAAqlH,SAAAnqH,GAAA8rH,SAAA,KAAAhnH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,IAAA5tH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAAyrH,WAAA,cAAA,KAAA1sH,EAAA,QAAA+F,EAAAqlH,SAAAnqH,GAAAwuH,SAAA,cAEA9hH,MAAA5H,EAAAqlH,SAAAnqH,GAAAqyH,WACA1kG,GAAAykG,EAiPY5gH,KAAM,GAAI+M,MAAKzZ,EAAGqlH,SAASnqH,GAAGyrH,YAC9Bh6G,GAAI,GAAI8M,MAAKzZ,EAAGqlH,SAASnqH,GAAGwuH,UA/OxC8D,YAAAxtH,EAAAqlH,SAAAnqH,GAAAsyH,YACA5+G,UAAA6+G,QAAAztH,EAAAqlH,SAAAnqH,GAAAsyH,YAAA5lH,MAAA,WAkPY8lH,SAAS,EA/OdN,aAAAA,EACFO,UACOprH,QACO9F,KAAA,aAAYmxH,SAAA,aAAAlhH,KAAA,GAAA+M,MAAAzZ,EAAAqlH,SAAAnqH,GAAAyrH,YAAAh6G,GAAA,GAAA8M,MAAAzZ,EAAAqlH,SAAAnqH,GAAAwuH,eAIxCzuH,EAAApD,MACO4E,KAAAuD,EAAAqlH,SAAAnqH,GAAAgvH,OAAA,IAAAgD,EACErkG,GAAAykG,EAiPYxtC,kBAAmBA,EACnB3pF,aAAcA,EA/OjBihC,WAAMA,EACPo2F,YAAAxtH,EAAAqlH,SAAAnqH,GAAAsyH,YACAL,MAAAA,EACIlrF,QAAA,2GAIR,GAAAoc,KAiPA,KAAK,GAAInjD,KAAKD,GAAK,CA/OnB,GAAAurD,GAAevrD,EAAAC,GAAAk8B,WACRy2F,EAAa5yH,EAAAC,GAAA/E,aAiPZ6vC,IACJ,KAAK,GAAI77B,KAAKlP,GACNA,EAAIkP,GAAGitB,aAAeovB,GA/OvCxgB,EAAAnuC,KAAAoD,EAAAkP,GAAA1N,KAmPS4hD,GAAOxmD,MACH4E,KAAMoxH,EACN7nF,SAAUA,IA3OtC7T,QAAAC,IAAAn3B,EAAA,IAkPoB+E,EAAGgkD,MAAQxpD,EAAO++C,OAAO8E,EAAQ,OA/OzC,KAAA,GAAAnjD,KAAAD,GACI+E,EAAAgkD,MAAAnsD,KAAAoD,EAAuBC,GAG9B,IAAAuf,GAAoBjgB,EAAYsR,IAAA9L,EAAAqlH,SAAU,cACtCxqG,EAAArgB,EAAAgnG,MAAAxhG,EAAAqlH,SAAA,WACEyI,GAAUrzG,EAAAksG,WAAA9rG,EAAA6uG,UAElB1pH,EAAAtK,KAAsBsK,EAAAgkD,MACtBhkD,EAAA+sH,YAAkB,EAClB/sH,EAAAgtH,eAAmB,EACnBhtH,EAAesS,WAAA,OAqPNtS,GAAGsS,WAAY,CAEnBtS,GAAGsS,WAAY,GAhPvB,SAAgB3R,GACZ5I,EAAe2I,YAAA,QAAmB,mBAAgB,cAC9CV,EAAAsS,WAAQ,IAiWhB,QAjPQw7G,GAAUrzG,EAAAI,GAmPd,GAjPIkzG,GAAG,GAAAt0G,MAAagB,EAkPpBszG,GAjPOvyG,QAAAuyG,EAAgB/xG,UAAA,EAmPvB,IAAIgyG,GAjPI,GAAAv0G,MAAcoB,EAkPtBmzG,GAjPQxyG,QAAQwyG,EAAGhyG,UAAS,GAmP5BvR,EAjPI0uB,SAkPA80F,SAjPQ,YAkPRC,OAAO,EACPngH,UAjPW,IAkPXogH,SAjPQ,IAkPR//G,OAAO,EACPggH,MAjPG,MAkPHC,KAjPI,EAkPJC,eAjPO,EAkPPC,UAAU,EACVC,iBAjPG,QACHC,SAAG,aAAW,OAAA,KAAA,IACdC,kBAAY,OAAc,MAC1BC,gBAAkBC,aAAA,OAAAliH,KAAA,OAAAC,GAAA,MAClBkiH,gBAAUD,aAAA,oBAAAliH,KAAA,oBAAAC,GAAA,mBACVmiH,mBACGpiH,KAAA,SAAaA,GACb,MAAgB/W,UAAhB+W,EAAgBA,EAAAmP,OAAA,OAAAlmB,QAmPfgX,GAAM,SAASA,GACX,MAAchX,UAAPgX,EAAmBA,EAAGkP,OAAO,OAASlmB,SA9OtDo5H,kBAAY,sDACZC,uBACAJ,aAAU,sDACVliH,KAAa,iDACbC,GAAA,kDAECsiH,SAAQlB,EAkPRmB,OAjPOlB,EAkPPzjH,WAjPQ,OAkPR6iH,cACIzzH,SAjPS,EAkPTw1H,iBAAiB,GAErBC,WAjPY,yDAkPZC,YAjPY,mDAuPpB,QAASC,GAAqB70G,EAASI,GACnC,GAAIkzG,GAAU,GAjPEt0G,MAAOgB,EAkPvBszG,GAAQvyG,QAAQuyG,EAjPI/xG,UAAa,EAmPjC,IAAIgyG,GAAU,GAAIv0G,MAAKoB,EACvBmzG,GAAQxyG,QAAQwyG,EAAQhyG,UAAY,GACpCvR,EAAO8kH,YACHtB,SAAU,YACVC,OAAO,EACPngH,UAAW,IACXogH,SAAU,IACV//G,OAAO,EACPggH,MAAO,MACPC,KAAM,EACNC,eAAe,EACfC,UAAU,EACVC,iBAAkB,QAClBC,SAAU,aAjPM,OAAS,KAAA,iBAkPzBC,kBAjPgB,OAAA,MAkPhBC,gBAjPgBC,aAAU,OAAAliH,KAAA,OAAAC,GAAA,KAAA6iH,cAAA,kBAkP1BX,gBAAkBD,aAjPS,oBAAAliH,KAAA,oBAAAC,GAAA,kBAAA6iH,cAAA,8BAkP3BV,mBACIpiH,KAAQ,SAASA,GACb,MAAgB/W,UAAT+W,EAAqBA,EAAKmP,OAAO,OAASlmB,QAErDgX,GAAM,SAjPMA,GAkPR,MAjPchX,UAiPPgX,EAjPmBA,EAAGkP,OAAA,OAAelmB,SAoPpDo5H,kBAjPgB,sDAkPhBC,uBACIJ,aAjPY,sDAkPZliH,KAAQ,iDACRC,GAAM,iDACN6iH,cAAiB,uDAErBjlH,WAAY,OACZ0kH,SAjPQlB,EAkPRmB,OAjPQlB,EAkPRZ,cACIzzH,SAjPQ,EAkPRw1H,iBAjPY,GAmPhBC,WAAY,yDACZC,YAAa,mDA0CrB,QAASj2G,GAAS1jB,GAhPlB,GAAO2jB,GAAA3jB,EAAY2jB,KACf9iB,EAAAb,EAAAa,IAkPA,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAmD1D,QAASC,GAjPO7jB,GAkPZ,GAAI2jB,GAjPI3jB,EAAI2jB,KAkPR9iB,EAjPIb,EAAKa,IAkPb,IAjPY,QAiPRA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GA/O1Cxe,EAAA,EAAMA,EAAG8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CAkPb,GAjPI0e,GAAU,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAmPd,IAAIF,IAAeI,EAhPhB,MAAA5Z,GAAW2Z,OAAOze,GAAA1E,OAqP7B,MAAO,GA7jBX,GAAIwJ,GAAKC,IACTlI,GAhPW2c,SAAA,CAiPX,IAAIvC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAAsBA,EACzBzhB,EAAGksH,gBAAkBA,EACrBlsH,EAAGm/E,iBAAmBA,EACtBn/E,EAAGitH,aAAeA,EA/OlBjtH,EAAG+sH,YAAO,EAiPV/sH,EAAGgtH,eAhPI,EAiPPL,IAgQAliH,EAAOusD,UAAY,WAGfvsD,EAAOglH,IAAIC,KAAK14D,aAGpBvsD,EAAOklH,YAAc,WACjBllH,EAAOglH,IAAIC,KAAKC,eAIpBllH,EAAOmlH,OAAS,SAAS10H,EAAGuB,GACxBuD,EAAGsS,WAAY,EACftS,EAAG6vH,aAAepzH,EAClBuD,EAAG8sH,WACH/vC,EAAyBqC,gBAAgBlkF,GAAGuD,KAAK,SAASC,GACtD,GAAmB,MAAfA,EAAIlI,OAAgB,CAhPvBwJ,EAAAi0B,QAAAv1B,EAAoBhJ,IACrB,IAAAuF,KACG,KAAA,GAASC,KAAA8E,GAAAi0B,QAAkB,CAE3B,GAAS2/E,GAAA5zG,EAAAi0B,QAAe/4B,GAAA04G,QACxBuZ,KACAC,KAEAE,GAAe1mH,SAAA1L,GAAA,GAAAiI,UAEfnD,GAAUi0B,QAAA94B,OAAA,EAAAyL,SAAA1L,IACVkyH,EAAav1H,MACb8U,IAAgB/F,SAAA0mH,GAAA,GAAAnqH,aAKXgqH,EAAIt1H,MACA4E,KAAAuD,EAAQi0B,QAAO/4B,GAAA04G,QAkPfhsG,MAjPI,UAkPJihB,GAjPIykG,EAkPJ5gH,KAAM,GAAI+M,MAAKzZ,EAAGi0B,QAAQ/4B,GAAGyrH,YAC7Bh6G,GAAI,GAAI8M,MAAKzZ,EAAGi0B,QAAQ/4B,GAAGwuH,UAhP5B96G,SAAA,GAAA6K,MAAAzZ,EAAAi0B,QAAA/4B,GAAAwuH,UAAA,GAAAjwG,MAAA,EAAA,IACAi0G,SAAA,EAkPCN,aAAcA,IA/OtBnyH,EAAApD,MACG4E,KAAAm3G,EAkPK/qF,GAAIykG,EAhPbH,MAAAA,IAMA,GAAA9uE,MACArY,IACA,KAAA,GAAO9qC,KAAAD,GACP+qC,EAAUnuC,KAAAoD,EAAAC,GAAAuB,KAEV4hD,GAAAxmD,MAkPK4E,KAAMuD,EAAG6vH,aACT7pF,SAAUA,IA9OlBhmC,EAAA8vH,SAAWt1H,EAAA++C,OAAA8E,EAAA,OAER,KAAA,GAAAnjD,KAAWD,GACX+E,EAAA8vH,SAAWj4H,KAAAoD,EAAAC,GAEX,IAAAuf,GAAejgB,EAAAsR,IAAA9L,EAAAi0B,QAAA,cACfpZ,EAAOrgB,EAAAgnG,MAAAxhG,EAAAi0B,QAAA,WACPq7F,GAAU70G,EAAAksG,WAAA9rG,EAAA6uG,UACV1pH,EAAA8sH,QAAa9sH,EAAA8vH,SACb9vH,EAAA+sH,YAAgB,EACnB/sH,EAAAgtH,eAAA,EACIhtH,EAAAsS,WAAQ,MAmPRtS,GAAGsS,WAjPI,GAmPZ,SAAS3R,GACR5I,EAjPG2I,YAAc,QAAA,mBAAA,cAkPjBV,EAAGsS,WAjPY,KAsPvBtS,EAAG+vH,cAjPQ,WAkPP/vH,EAAG+sH,YAjPI,EAkPP/sH,EAAGgtH,eAjPa,GAoPpBhtH,EAAG0iG,MAjPQ,WAkPP1iG,EAAG6kH,SAjPI1xG,gBAAa,KAkPpBnT,EAAG6kH,SAjPIhjG,gBAAgB,KAkPvB7hB,EAAG2hB,eACH3hB,EAAG6kH,SAASwG,aAAe,KAC3BrrH,EAAGurH,YACHvrH,EAAGqlH,YAhPPrlH,EAAA6kH,SAAS+H,YAAmB,KACxB5sH,EAAA6sH,gBACA7sH,EAAA+sH,YAAgB,GAyVpB/sH,EAAG2vH,YAAc,WACb3vH,EAAGsS,WAAY,EACf7H,EAAO4F,WAAW,gCAClBrQ,EAAGsS,WAAY,GAGnBtS,EAAGg3D,UAAY,WACXh3D,EAAGsS,WAjPY,EAkPf7H,EAAO4F,WAAW,8BAClBrQ,EAAGsS,WAjPS,GAqPhBtS,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAjPIb,OAmPhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAjPWjB,EAkPXkB,QAjPQ,GAAGhB,MAkPXiB,WAAW,GAGf1a,EAAG2a,aACCC,aAjPOxB,EAkPPyB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MACbqB,YAAa,GAWjB9a,EAAG+a,UAAY,WAhPf/a,EAAOua,cAAcE,QAAAza,EAAWua,cAAAE,QAAA,KAAA,GAAAhB,MAC5BzZ,EAAA2a,YAAWF,QAAKza,EAAAua,cAAAE,SAoPpBza,EAAG+a,YAEH/a,EAAGkb,MAjPI,WACHlb,EAAGmb,OAAAtM,QAAe,CACf,IAAU4K,OAqPjBzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAjPKpM,QAAS,CAkPL,IAAI4K,OAKpBzZ,EAAGwb,QAAU,SAjPOC,EAAAC,EAAaC,GAkP7B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAjPe,aAAS,aAAgB,YAAA,QAkPtD5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GAEvB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QACCpM,QAAQ,EAEZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAjPGC,UAAc,EAkPlC,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAjPMO,EAAKC,UAAA,GAkPzBhc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,+KAljBhBpC,QACKC,OAAO,0CACPe,WAhPU,sBAAAs3H,MAszBnB,WACI,YAOA,SAASsD,GAjPkBj2H,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAAyX,EAkPvBI,EAAgBH,EAAsB+oC,EAAsBmiC,GAgC5D,QAjPQ7qE,KAkPJF,EAjPeI,mBAAAD,GAAA1T,KAAA,SAAAC,GACD,MAAVA,EAAAlI,SACAwJ,EAAOqS,YAAA3T,EAAAhJ,KACPsK,EAAOsS,WAAA,IAmPR,SAjPC3R,GACA5I,EAAU2I,YAAA,QAAA,mBAAA,oBAuPlB,QAjPQokH,GAAA3tG,GAmPJ4lE,EAjPmB8B,kBAAqB1sE,GAAY1T,KAAA,SAASC,GAkPtC,MAAfA,EAAIlI,QAhPJwJ,EAAA+kH,gBAAmBrmH,EAAAhJ,KAkPnBsK,EAAGglH,eAjPexqH,EAAA++C,OAAev5C,EAAA+kH,gBAAgB,eAkPjD/kH,EAAGsS,WAAY,EACftS,EAAGilH,SAAU,EAhPjBjlH,EAAAklH,aAAmB,EACnBllH,EAAAmlH,cAAA,EACInlH,EAAAolH,UAAc,GAEdrtH,EAAM2I,YAAA,QAAA,yBAAA,kBAEVyW,GACAA,KAkPD,SAjPCxW,GACA5I,EAAA2I,YAAc,QAAA,mBAAA,oBAqPtB,QAjPQinH,GAAY70G,GACZ,MAAAA,GAkPIA,EAAIm9G,KAAOn9G,EAAI+0G,WACfxtH,EAAQ8C,OAAO,kBAAmB,2CAC9B9F,WAAW,EACX+F,KAAM,OA/Ob0V,EAAA+0G,SAAA,MAwUT,QAjPQhwE,KAkPJhmC,EAjPgBimC,sBAAAr5C,KAAA,SAAAC,GACA,MAATA,EAAAlI,QAkPCwJ,EAAG+3C,kBAAoBr5C,EAAIhJ,KAC3BsK,EAAG+3C,kBAAoBv9C,EAAO++C,OAAOv5C,EAAG+3C,kBAAmB,eAhPpE/3C,EAAYsS,WAAW,GAEnBva,EAAY2I,YAAa,QAAA,yBAAc,mBAmPvC,SAASC,GAhPb5I,EAAA2I,YAAA,QAAA,mBAAA,oBAeH,QAAG+gB,GAAyBtP,GACrBA,GAkPCnS,EAAG6kH,SAAShjG,gBAAkB,KAC9B7hB,EAAG2hB,eAhPR3hB,EAAA6kH,SAAWxwF,SAAgB,KAC3Br0B,EAAA68C,kBAkPK78C,EAAGqlH,YAhPRrlH,EAAAqmH,YAAmB,EAkPdrmH,EAAGsmH,UAAW,EAhPnBtmH,EAAA6kH,SAASoH,UAAA,KACRjsH,EAAAumH,WAAQ,EAkPJvmH,EAAG6kH,SAAS/qE,gBAAkB,KAC9B95C,EAAG6kH,SAAS/qE,mBAhPjB95C,EAAA6kH,SAAS9qE,aAAA,KACR/5C,EAAA6kH,SAAQ9qE,gBAkPJ/5C,EAAGqyB,OAhPPzgB,EAAe8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACO,MAAjBA,EAAQlI,QACbwJ,EAAA2hB,YAAoBjjB,EAAAhJ,MACVsK,EAAQ2hB,YAASxmB,OAAY,GAC9Bd,EAAA8C,OAAA,UAAA,oDACH9F,WAAA,EACE+F,KAAA,OAqPI4C,EAAGsS,WAAY,GA/OtBjY,EAAYwH,MAAM,QAAA,yBAAA,mBAEnB,SAAYlB,GACZtG,EAASwH,MAAO,QAAA,mBAAA,sBAGhB7B,EAAA6kH,SAAShjG,gBAAqB,KAkP9B7hB,EAAG2hB,eACH3hB,EAAG6kH,SAASxwF,SAAW,KACvBr0B,EAAG68C,kBACH78C,EAAGqlH,YACHrlH,EAAGqmH,YAAa,EAChBrmH,EAAGsmH,UAAW,EACdtmH,EAAG6kH,SAASoH,UAAY,KAhP5BjsH,EAAOumH,WAAA,EAkPHvmH,EAAG6kH,SAAS/qE,gBAAkB,KAC9B95C,EAAG6kH,SAAS/qE,mBACZ95C,EAAG6kH,SAAS9qE,aAAe,KAC3B/5C,EAAG6kH,SAAS9qE,gBAhPhB/5C,EAAAqyB,QAGR,QAAAyzB,GAAAhwD,GACK,GAAOA,EAAA,CACPkK,EAAA6kH,SAAWxwF,SAAA,KAmPJr0B,EAAG68C,kBACH78C,EAAGqlH,YAjPNrlH,EAAAqmH,YAAA,EACLrmH,EAAAsmH,UAAgB,EACZtmH,EAAK6kH,SAAAoH,UAAA,KAmPDjsH,EAAGumH,WAAY,EAjPpBvmH,EAAA6kH,SAAA/qE,gBAA8B,KAC9B95C,EAAA6kH,SAAc/qE,mBAmPT95C,EAAG6kH,SAAS9qE,aAAe,KAjPhC/5C,EAAA6kH,SAAc9qE,gBACd/5C,EAAAqyB,MACI,IAAAp3B,IAmPKnF,UAAWA,EAhPpB8kD,GAAoBgC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GACR,MAAAA,EAAAlI,QACFwJ,EAAA68C,eAAAn+C,EAAAhJ,MACIsK,EAAA68C,eAAA1hD,OAAA,EACEd,EAAA8C,OAAA,UAAA,6DACD9F,WAAA,EACJ+F,KAAA,OAIX4C,EAAAmmD,eAAsB,EAEtBnmD,EAAAsS,WAAoB,GAETjY,EAAAwH,MAAA,QAAA,yBAAA,mBAoPH,SAASlB,GAjPhBtG,EAAawH,MAAA,QAAA,mBAAsB,wBAqP/B7B,GAAG6kH,SAASxwF,SAAW,KAjP/Br0B,EAAS68C,kBACL78C,EAAAqlH,YACIrlH,EAAAqmH,YAAQ,EAmPRrmH,EAAGsmH,UAlPI,EAmPPtmH,EAAG6kH,SAlPIoH,UAAY,KAmPnBjsH,EAAGumH,WAAY,EAjPhBvmH,EAAA6kH,SAAS/qE,gBAAK,KACb95C,EAAA6kH,SAAW/qE,mBAmPX95C,EAAG6kH,SAAS9qE,aAAe,KAC3B/5C,EAAG6kH,SAAS9qE,gBACZ/5C,EAAGqyB,OAgFX,QAAS6qD,GAAkBpnF,EAAWguD,GAClC,GAAIA,EAAY,CAjPjB9jD,EAAAqlH,YACKrlH,EAAAqmH,YAAS,EACTrmH,EAAAsmH,UAAA,EAmPAtmH,EAAG6kH,SAlPIoH,UAAU,KAmPjBjsH,EAAGumH,WAlPI,EAmPPvmH,EAAG6kH,SAlPI/qE,gBAAe,KAmPtB95C,EAAG6kH,SAlPI/qE,mBAmPP95C,EAAG6kH,SAlPI9qE,aAAS,KAmPhB/5C,EAAG6kH,SAlPI9qE,gBAmPP/5C,EAAGqyB,MACH,IAAIp3B,IAjPAnF,UAAGA,EACHguD,WAAGA,EAoPP9jD,GAAGsS,WAAY,EACfyqE,EAlPGG,kBAAAjiF,GAAAwD,KAAA,SAAAC,GACA,GAAiB,MAAjBA,EAAAlI,OAAiB,CAmPZwJ,EAAGqlH,SAAW3mH,EAAIhJ,KAAK8wH,UACvB,KAAK,GAAItrH,KAAK8E,GAAGqlH,SACbrlH,EAAGqlH,SAASnqH,GAAG8oD,MAAQrnD,KAAKC,MAAMoD,EAAGqlH,SAASnqH,GAAG23G,gBACjD7yG,EAAGqlH,SAAS,GAAGqB,SAAU,CAU7B,IA1PL1mH,EAAA+mH,aAAkBroH,EAAAhJ,KAAAsxH,SACC,MAAnBtoH,EAAAhJ,KAAAsxH,SAAmBkJ,UACnBlwH,EAAA6kH,SAAcoH,UAAA,GAAAxyG,MAAAzZ,EAAA+mH,aAAAkF,WACRjsH,EAAA6kH,SAAAqL,QAAA,GAAAz2G,MAAAzZ,EAAA+mH,aAAAmJ,SACVlwH,EAAc6kH,SAAAsL,cAAAp4H,EAAA6I,iBAAAZ,EAAA6kH,SAAAoH,UAAAjsH,EAAA6kH,SAAAqL,SACdlwH,EAAeumH,WAAA,GAElBvmH,EAAAinH,eAAAvoH,EAAAhJ,KAAAwxH,QAmPqC,MAArBlnH,EAAGinH,eAAwB,CAC3BjnH,EAAGinH,eAAe/uE,YAAcv7C,KAAKC,MAAMoD,EAAGinH,eAAe/uE,aAC7Dl4C,EAAG6kH,SAAS/qE,kBACZ,KAAK,GAAI5+C,KAAK8E,GAAG+3C,kBAjPrC,IAAA,GAAA5tC,KAAAnK,GAAAinH,eAAA/uE,YAAA0B,SAE6B,GAAAngC,MAAAzZ,EAAA+3C,kBAAA78C,GAAAg9C,aAAA+B,uBAAA,GAAAxgC,MAAAzZ,EAAAinH,eAAA/uE,YAAA0B,SAAAzvC,IAAA8vC,sBACJj6C,EAAA6kH,SAAA/qE,gBAA2BjiD,KAASmI,EAAK+3C,kBAAA78C,GAMtD8E,GAAWinH,eAAY/sE,QAASv9C,KAAAC,MAAAoD,EAAAinH,eAA0BptE,SAmPlD75C,EAAG6kH,SAAS9qE,eAjPhB,KAAK,GAAA7+C,KAAA8E,GAAAw5C,YACF,IAAA,GAAYrvC,KAAAnK,GAASinH,eAAA/sE,QAAoBA,QAmP5Bl6C,EAAGw5C,YAAYt+C,GAAGw+C,YAAc15C,EAAGinH,eAAe/sE,QAAQA,QAAQ/vC,IAClEnK,EAAG6kH,SAAS9qE,aAAaliD,KAAKmI,EAAGw5C,YAAYt+C,GA3OzD8E,GAAAinH,eAAYmJ,kBAAAzzH,KAAAC,MAAAoD,EAAAinH,eAAAmJ,mBACZpwH,EAAAqyB,IAAAryB,EAAYinH,eAAAmJ,kBAAAC,eACZrwH,EAAAinH,eAAY/sE,QAAAA,QAAA/+C,OAAA,IAmPR6E,EAAGqmH,YAAa,EAChBrmH,EAAGsmH,UAAW,EACdtmH,EAAGwqH,YAAc,GAhPtBxqH,EAAAinH,eAAA/uE,YAAA0B,SAAAz+C,OAAA,IACC6E,EAAAqmH,YAAkB,EAC3BrmH,EAAcsmH,UAAA,EACLtmH,EAAAwqH,YAAW,GAGPxqH,EAAAqyB,IAAAl3B,OAAA,IACF6E,EAAA6kH,SAAAvwD,OAAA,EACFt0D,EAAAm5C,WAAY,EACTn5C,EAAAwqH,YAAA,GAEHxqH,EAAA6kH,SAAAyL,SAAkBtwH,EAAAinH,eAAAqJ,SACH,MAAftwH,EAAA6kH,SAAeyL,WACftwH,EAAAqmH,YAAe,EAClBrmH,EAAAsmH,UAAA,EACTtmH,EAAAwqH,YAAuB,GAuPfxqH,EAAGsS,WAlPK,MAoPRtS,GAAGsS,WAAY,GAEpB,SAAS3R,GACR5I,EAlPO2I,YAAY,QAAA,mBAAA,kBAmPnBV,EAAGsS,WAlPI,QAqPXtS,GAlPGqlH,YAmPHrlH,EAAGqmH,YAlPS,EAmPZrmH,EAAGsmH,UAAW,EACdtmH,EAlPG6kH,SAAAoH,UAAA,KACHjsH,EAAGumH,WAAS,EACZvmH,EAAG6kH,SAAA/qE,gBAAc,KACjB95C,EAAG6kH,SAAS/qE,mBACZ95C,EAAG6kH,SAAA9qE,aAAiB,KACpB/5C,EAAG6kH,SAAA9qE,gBAwHX,QAAS3gC,GAAA1jB,GAmPL,GAAI2jB,GAAO3jB,EAAK2jB,KAjPjB9iB,EAAUb,EAAAa,IACT,OAAe,QAARA,GAAiB,KAAA8iB,EAAAC,SA+S5B,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAlPKa,IAmPhB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAlPa,GAAIC,MAAKJ,GAAGK,SAAA,EAAa,EAAA,EAAA,GAoPjCxe,EAAI,EAAGA,EAlPI8E,EAAA2Z,OAAOxe,OAAAD,IAAe,CAmPtC,GAAI0e,GAAa,GAlPGH,MAAGzZ,EAAA2Z,OAASze,GAAAme,MAAaK,SAAQ,EAAA,EAAA,EAAA,EAoPrD,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GAtpBX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,MAASA,MAAS,MAhPnDrL,EAAGsU,SAAAtU,EAAAqU,gBAA2B,GAmP9BrU,EAAGuU,YAjPI,EAkPPvU,EAAGwU,qBAAuB,SAASC,GAC/BzU,EAAGuU,YAAcE,GAGrBzU,EAAG+3C,qBACH/3C,EAAGumH,WAjPI,EAkPPvmH,EAAGilH,SAjPI,EAkPPjlH,EAAGklH,aAjPI,EAkPPllH,EAAG2nH,cAjPeA,EAkPlB3nH,EAAGmlH,cAjPa,EAkPhBnlH,EAAGolH,UAjPI,EAkPPplH,EAAGsS,WAjPI,EAoPPtS,EAAGyhB,oBAAsBA,EAhPzBzhB,EAAA8lD,qBAASA,EAkPT9lD,EAAGk9E,kBAAoBA,EACvBl9E,EAAG8kH,gBAjPeA,EAkPlB9kH,EAAGsmH,UAjPS,EAkPZtmH,EAAGqmH,YAAa,CAEhB,IAjPInmH,GAAQ/F,EAAgBgG,uBAkPxBgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KAiDAlS,EAAG8nH,gBAjPQ,SAAahyH,GAChBA,EACAgvH,EAAO,WACP9kH,EAAA2yG,IAAW5uD,iBAAA,KACX/jD,EAAA2yG,IAAUoV,YAAA,KACV/nH,EAAOilH,SAAA,EACPjlH,EAAOklH,aAAA,EACPllH,EAAMmlH,cAAA,EACNnlH,EAAAolH,UAAe,EACfplH,EAAAgoH,gBAAUxtH,EAAAyC,OAAA+C,EAAA+kH,iBAAAjvH,UAAAA,IACVkK,EAAAioH,iBAAkBztH,EAAA++C,OAAAv5C,EAAAgoH,gBAAA,iBAClBhoH,EAAA+kH,gBAAwBvqH,EAAQyC,OAAM+C,EAAA+kH,iBAAAjvH,UAAAA,OAItCkK,EAAA2yG,IAAA5uD,iBAAmB,KAkPnB/jD,EAAG2yG,IAjPCoV,YAAiB,KAkPrBjD,MAKR9kH,EAAGkoH,iBAAmB,SAASpyH,EAAWguD,GAhPlCA,EACAghE,EAAA,WACI9kH,EAAA2yG,IAAAoV,YAAc,KACd/nH,EAAAilH,SAAQ,EACRjlH,EAAAklH,aAAM,EACNllH,EAAAmlH,cAAiB,EAkPjBnlH,EAAGolH,UAAW,EAhPlBplH,EAAA/C,UACA+C,EAAA/C,OAAUnH,UAAAA,EACFkK,EAAA/C,OAAA6mD,WAAAA,EACR9jD,EAAAmoH,YAAc3tH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,QACV+C,EAAAooH,kBAAS5tH,EAAA++C,OAAAv5C,EAAAmoH,YAAA,iBACTnoH,EAAA+kH,gBAAiBvqH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,WAGrB+C,EAAA2yG,IAAAoV,YAAa,KAkPb/nH,EAAG8nH,gBAAgBhyH,KAM3BkK,EAAGqoH,aAjPQ,SAAWvyH,EAAAguD,EAAA7sB,GACfA,EAkPC6tF,EAAgB,WACZ9kH,EAAGilH,SAAU,EAhPtBjlH,EAAYklH,aAAW,EACnBllH,EAAAmlH,cAAY,EACRnlH,EAAAolH,UAAW,EACfplH,EAAA/C,UAkPK+C,EAAG/C,OAAOnH,UAAYA,EAClBkK,EAAG/C,OAAO6mD,WAAaA,EACvB9jD,EAAG/C,OAAOg6B,QAAUA,EAhPzBj3B,EAAAsoH,YAAW9tH,EAAAyC,OAAA+C,EAAA+kH,gBAAA/kH,EAAA/C,QACV+C,EAAAuoH,kBAAI/tH,EAAA++C,OAAAv5C,EAAAsoH,YAAA,YAkPJtoH,EAAG+kH,gBAAkBvqH,EAAOyC,OAAO+C,EAAG+kH,gBAAiB/kH,EAAG/C,UA9OnE+C,EAAQkoH,iBAAWpyH,EAAAguD,IAsPtB9jD,EAAGwoH,MAjPC,WACAxoH,EAAA2yG,IAAA9wF,gBAAa,KACb7hB,EAAA2yG,IAAA5uD,iBAAW,KAkPX/jD,EAAG2yG,IAAIoV,YAAc,KACrB/nH,EAAGilH,SAAU,EAhPdjlH,EAAAklH,aAAc,EACbllH,EAAAmlH,cAAc,EACdnlH,EAAAolH,UAAa,EACbN,KAsPJjtE,IAgBA73C,EAAGw5C,cACGC,UAAW,EAAGC,WAAY,WAC1BD,UAAW,EAAGC,WAAY,WAC1BD,UAAW,EAAGC,WAAY,YAhP7BD,UAAQ,EAAAC,WAAW,cAClBD,UAAU,EAAAC,WAAS,aACnBD,UAAY,EAAIC,WAAA,WAkPdD,UAAW,EAAGC,WAAY,aA6GhC15C,EAAGuwH,QAlPS,WAoPR,GADAvwH,EAAGwqH,YAlPQ,EACwB70H,QAkP/BqK,EAAG6kH,SAlPI/qE,gBAmPP,IAlPI,GAAG5+C,KAAA8E,GAAA6kH,SAAY/qE,gBACZ7/C,EAAA,QAAU+F,EAAA6kH,SAAA/qE,gBAAA5+C,GAAAg9C,YAAA,eAAAj+C,EAAA,QAAA+F,EAAA6kH,SAAAoH,UAAA,eACV5xH,EAAA8C,OAAc,UAAA,0DACd9F,WAAe,EACf+F,KAAW,OAEd4C,EAAA6kH,SAAWoH,UAAY,MAEvBjsH,EAAAwqH,YAAA,MAsPJxqH,GAAGwqH,YAAc,CA/OzB,IAAS70H,QAATqK,EAASqyB,IACD,IAAA,GAAOn3B,KAAM8E,GAAAqyB,IACLp4B,EAAO,QAAI+F,EAAAqyB,IAAUn3B,GAAA,eAAAjB,EAAA,QAAA+F,EAAA6kH,SAAAoH,UAAA,eACzB5xH,EAAQ8C,OAAO,UAAA,mEACX9F,WAAW,EACX+F,KAAM,OAEN4C,EAAA6kH,SAAWoH,UAAA,MAoPXjsH,EAAGwqH,YAAc,MA9O9BxqH,GAAAwqH,YAAkB,CAsPjB,IAlP6B70H,QAkPzBqK,EAAG6kH,SAlPQ9qE,aAmPX,IAlPI,GAAG7+C,KAAA8E,GAAU6kH,SAAA9qE,aACV/5C,EAAA6kH,SAAc9qE,aAAA7+C,GAAA,WAAA8E,EAAA6kH,SAAA,UAAAvrG,UACdjf,EAAA8C,OAAe,UAAA,iEACf9F,WAAW,EACX+F,KAAA,OAEA4C,EAAA6kH,SAAAoH,UAAyB,MAoPxBjsH,EAAGwqH,YAAc,MA9OzBxqH,GAAAwqH,YAAA,CAoPJxqH,GAAGwqH,YAAc,GA/OrBxqH,EAAGqyB,OAoPHryB,EAAGgc,QAlPK,WAmPJhc,EAAGqyB,IAAIx6B,KAlPImI,EAAI6kH,SAAA2L,UAqPnBxwH,EAAGm5C,WAlPY,EAmPfn5C,EAAGs0D,MAAQ,WACHt0D,EAAG6kH,SAlPIvwD,MAmPPt0D,EAAGm5C,WAlPW,EAoPdn5C,EAAGm5C,WAlPQ,GAqPnBn5C,EAAGyoH,OAAS,SAAS3lH,GACjB,GAAIsS,GAlPGpV,EAAAqyB,IAAAjvB,QAAAN,EAmPP9C,GAAGqyB,IAlPIiD,OAAIlgB,EAAA,IAmWfpV,EAAG+pH,YAlPQ,WAmPP,GAlPgB,IAAZ/pH,EAAGwqH,YAAS,CACZ,GAAGn4F,KAmPH,KAAK,GAAIn3B,KAAK8E,GAAGqlH,SAAU,CACvB,GAAIvsE,IACAoxE,OAAQlqH,EAAGqlH,SAASnqH,GAAGgvH,OAjP9BpmE,WAAA9jD,EAAqBqlH,SAAAnqH,GAAW4oD,WACjC7sB,QAAWj3B,EAAAqlH,SAAAnqH,GAAA+7B,QACR+vF,SAAShnH,EAAAqlH,SAAWnqH,GAAA8rH,SACpB5vF,WAAiBp3B,EAAAqlH,SAAAnqH,GAAAk8B,WACjBywF,SAAWlyH,QAAAqK,EAAAqlH,SAAAnqH,GAAA2sH,SAAA7nH,EAAAqlH,SAAAnqH,GAAA2sH,SAAA,GACXnzF,OAAa10B,EAAAqlH,SAAAnqH,GAAAw5B,OAEbrC,GAAAx6B,KAASihD,GAIZ,GAAGsB,IACAR,YAEH,KAAI,GAAA1+C,KAAM8E,GAAA6kH,SAAA/qE,gBACNM,EAAWR,SAAA/hD,KAAAoC,EAAA,QAAA+F,EAAA6kH,SAAA/qE,gBAAA5+C,GAAAg9C,YAAA,cAEf,IAAAmC,IACIH,WAoPJ,KAAK,GAlPGh/C,KAAK8E,GAAG6kH,SAAA9qE,aAmPZM,EAlPQH,QAAQriD,KAAOmI,EAAA6kH,SAAW9qE,aAAA7+C,GAAAw+C,WAoPtC,IAAI+2E,IACAJ,kBAGJ,KAAK,GAAIn1H,KAlPG8E,GAAGqyB,IAmPXo+F,EAAcJ,eAAex4H,KAAKoC,EAAQ,QAAQ+F,EAAGqyB,IAAIn3B,GAAI,cAGjE,IAAID,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UAjPxCguD,WAAS9jD,EAAK6kH,SAAAxwF,SAAAyvB,WACblK,SAAQj9C,KAAMqkB,UAASo5B,GAmPvBs2E,mBAAoB/zH,KAAKqkB,UAAUyvG,GAjPpC52E,QAAAl9C,KAAAqkB,UAAAq5B,GACAgrE,SAAS1oH,KAAAqkB,UAAWqR,GACpBve,UAAA5T,EAAiBG,OACjB4rH,UAAWhyH,EAAA,QAAA+F,EAAA6kH,SAAAoH,UAAA,cAGdlvC,GAAwBgC,mBAAA9jF,GAAAwD,KAAA,SAAAC,GACrBA,EAAAhJ,KAAYke,aAAA,GACZ7b,EAAS2I,YAAkB,UAAAhC,EAAAhJ,KAAAme,QAAA,oBAC3BqpE,EAASjiF,EAAkBnF,UAAAmF,EAAA6oD,YAC3B9jD,EAAAumH,WAAS,EACTvmH,EAAAwqH,YAAS,GAsPJzyH,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,qBA9O3D,SAAAlT,GACI5I,EAAS2I,YAAA,qCAqPZrG,GAlPQ8C,OAAA,UAAe,6CAmPnB9F,WAlPQ,EAmPR+F,KAAM,QAUlB4C,EAAGqa,MAAQ,WAjPPra,EAAAsa,GAAO,GAAAb,OAoPXzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAlPYjB,EAmPZkB,QAAS,GAAIhB,MAAK,KAAM,EAAG,KAG/BzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,GAAI,IAjP5BgB,QAAO,GAAAhB,MAmPPqB,YAlPa,GAqPjB9a,EAAGkrH,UACCtwG,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAlPGpB,MAAG,KAAS,EAAA,IAmPxBgB,QAAS,GAAIhB,MACbqB,YAlPY,GAqPhB9a,EAAGmrH,cAlPQ,WAoPPnrH,EAAGkrH,SAASzwG,QAAUza,EAAG6kH,SAASoH,WAxOtCjsH,EAAGgb,MAAA,WACAhb,EAAAib,OAAQpM,QAAW,GAqPtB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAlPItM,QAAY,CAmPnB,IAAIwL,GAAQ,GAAIZ,MACZ06B,EAAS,EAhPbn0C,GAAAm5B,SACGte,QAAI,GAAOpB,MAAOY,EAAA65B,cAAAC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,aAKzBhc,EAAAob,MAAS,WACLpb,EAAAqb,OAAIxM,QAAY,GAqPpB7O,EAAGsb,MAlPQ,WAmPPtb,EAAGub,OAlPI1M,QAAS,GAqPpB7O,EAAGwb,QAlPQ,SAASC,EAAAC,EAAAC,GAmPhB3b,EAAGsa,GAlPI,GAAAb,MAASgC,EAAAC,EAAAC,IAqPpB3b,EAAG4b,SAlPS,eAAM,aAAA,aAAA,aAmPlB5b,EAAG6b,OAlPS7b,EAAA4b,QAAW,GAmPvB5b,EAAG8b,iBAlPS,cAoPZ9b,EAAGib,QACCpM,QAlPI,GAqPR7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAGZ,IAAIkN,GAAW,GAlPItC,KAmPnBsC,GAASP,QAlPOO,EAAOC,UAAA,EAmPvB,IAAIC,GAlPgB,GAAGxC,KAmPvBwC,GAAcT,QAlPMO,EAAGC,UAAS,GAmPhChc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,gOA5oBhBpC,QACKC,OAAO,0CACPe,WAAW,wBAAyB46H,MAoqB7C,WACI,YAOA,SAASW,GAA0B52H,EAAOU,EAASR,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASF,EAAuB6X,EAAgB+qE,EAA0Bz7B,GAqC9J,QAlPQpvC,KAoPJF,EAlPYI,mBAAoBD,GAAG1T,KAAA,SAAAC,GACvB,MAkPJA,EAlPIlI,SAmPJwJ,EAAGqS,YAlPa3T,EAAAhJ,KAmPhBsK,EAAGsS,WAlPW,IAoPnB,SAlPS3R,GAmPR5I,EAlPQ2I,YAAW,QAAY,mBAAA,oBAsPvC,QAAS+gB,GAAoBtP,GACrBA,GAjPAnS,EAAA6kH,SAAIhjG,gBAAa,KAmPjB7hB,EAAG2hB,eACH3hB,EAAG6kH,SAASwG,aAAe,KAjP3BrrH,EAAAurH,YAmPAvrH,EAAG6kH,SAlPC+H,YAAoB,KAmPxB5sH,EAAG6sH,gBAjPH7sH,EAAAqlH,YAmPAtoC,EAlPemB,yBAAA/rE,GAAA1T,KAAA,SAAAC,GAmPQ,MAAfA,EAAIlI,QAjPPwJ,EAAI2hB,YAAQjjB,EAAShJ,KACK,GAA3BsK,EAAW2hB,YAAQxmB,QAmPXd,EAAQ8C,OAAO,UAAW,2BAjPlC9F,WAAgB,EAChB+F,KAAkB,QAuPd4C,EAAGsS,WAAY,GAhPvB,SAAU3R,GACN5I,EAAW2I,YAAY,QAAA,mBAAgB,cACvCV,EAAAsS,WAAe,MAsPnBtS,EAAG6kH,SAlPChjG,gBAAyB,KAmP7B7hB,EAAG2hB,eACH3hB,EAAG6kH,SAlPCwG,aAAmB,KAmPvBrrH,EAAGurH,YACHvrH,EAAG6kH,SAAS+H,YAAc,KAjP1B5sH,EAAA6sH,gBAmPA7sH,EAAGqlH,aAKX,QAAS6G,GAAgBr2F,GACjBA,GACA71B,EAAG6kH,SAlPQwG,aAAA,KAmPXrrH,EAAGurH,YACHvrH,EAAG6kH,SAAS+H,YAAc,KAC1B5sH,EAAG6sH,gBACH7sH,EAAGqlH,YACHtoC,EAlPiBoB,gBAAAtoD,GAAAp3B,KAAA,SAAAC,GACF,MAAXA,EAAAlI,OAmPIwJ,EAAGurH,SAAW7sH,EAAIhJ,KA/OtBsK,EAAAsS,WAAW,GAoPZ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cACpDV,EAAGsS,WAAY,MAInBtS,EAAG6kH,SAASwG,aAAe,KAC3BrrH,EAAGurH,YACHvrH,EAAG6kH,SAAS+H,YAAc,KAjP/B5sH,EAAQ6sH,gBACJ7sH,EAAAqlH,aAuPP,QAlPOlmC,KAoPH,GAAIn/E,EAAG6kH,SAASwG,aAAc,CAjP/BrrH,EAAA6kH,SAAgB+H,YAAA,KACf5sH,EAAA6sH,gBACA7sH,EAAAqlH,WAmPI,IAAIpqH,IACAnF,UAAWkK,EAAG6kH,SAAShjG,gBAAgB/rB,UAjPhD8pF,OAAa5/E,EAAA6kH,SAAAwG,aAAAzrC,OAEZ7C,GAAYoC,iBAAAlkF,GAAAwD,KAAA,SAAAC,GACY,MAAfA,EAAIlI,OACJwJ,EAAI6sH,aAAAnuH,EAAAhJ,KAqPDsK,EAAGsS,WAAY,GAhP3B,SAAc3R,GACd5I,EAAY2I,YAAA,QAAA,mBAAA,cACZV,EAASsS,WAAS,QAsPdtS,GAAG6kH,SAAS+H,YAAc,KAjP/B5sH,EAAA6sH,gBACC7sH,EAAAqlH,YAwPJ,QAlPQ4H,GAAY3H,EAAAjnC,GAEhBr+E,EAAO6kH,SAAS+H,aAmPZ5sH,EAAGqlH,YACHrlH,EAAGsS,WAAY,EAjPZtS,EAAA6kH,SAAW+L,cACf5wH,EAAO6kH,SAAS+L,YAAA,KAIhB7zC,EAAgBqB,wBAAAknC,EAAAjnC,EAAAr+E,EAAA6kH,SAAA+L,aAAAnyH,KAAA,SAAAC,GACH,MAAJA,EAAIlI,OAoPJwJ,EAAGqlH,SAAW3mH,EAAIhJ,KAGlBsK,EAAGsS,WAAY,EAEnBtS,EAAGsS,WAAY,GAChB,SAAU3R,GAjPV5I,EAAW2I,YAAA,QAAA,mBAAA,cACfV,EAAOsS,WAAS,KAIhBtS,EAAAqlH,YAkBP,QAAGp+C,GAASq+C,GAoPRtlH,EAAGsS,WAAY,CACf,IAAIpS,GAAa/F,EAAsBgG,uBA5O3ClF,GACIqnB,YAAgBtiB,EAAI6kH,SAAAhjG,gBAAAS,YACxB88B,iBAAsBp/C,EAAA6kH,SAAS1xG,gBAAY84B,YACxCnY,SAAU5zB,EAAAi/C,UACT/+C,SAAMF,EAAAG,OACNwwH,UAAQ7wH,EAAA6kH,SAAA+H,YAAAtC,QACTpmE,QAAA,uEACCohE,OAAMtlH,EAAA6kH,SAAAwG,aAAAzrC,OACNtB,MAAQt+E,EAAA6kH,SAAA+L,YAGZz+F,SAASC,IAAAn3B,GAsPLqmD,EAlPqB2lB,WAAShsE,GAAMwD,KAAA,SAAeC,GAmP/C,GAAmB,MAAfA,EAAIlI,OAAgB,CAjPxBwJ,EAAK8Z,cAAkBpb,EAAAhJ,KACnBsK,EAAAsS,WAAI,CAmPJ,IAAI2D,GAAInf,SAASijB,cAAc,IAjP/BjjB,UAAIC,KAAAijB,YAAe/D,GAmPnBA,EAAEgE,MAlPE,eAmPJ,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACrBqI,KAAM,oBAhPXtJ,EAAAC,OAAAwlB,IAAAC,gBAAAvc,EAmPCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,iBAAkB,mBACpDwR,QA5OP7X,GAAAwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OACT4C,EAAAsS,WAAA,GAEA,SAAA3R,GACY5I,EAAA2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OACI4C,EAAAsS,WAAA,IA0PZ,QAnPI1J,KACDqkH,EAAAjtH,EAAA6kH,SAAAwG,aAAAzrC,OAAA5/E,EAAA6kH,SAAA+H,YAAAtC,QAAAtqH,EAAA6kH,SAAA+L,aAJH,GAAI5wH,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEXA,MAlPS,MAmPXrL,EAAGsU,SAlPStU,EAAAqU,gBAAW,GAoPvBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAlPQ,SAAAC,GAmPPzU,EAAGuU,YAlPIE,GAqPXzU,EAAGyhB,oBAlPiBA,EAmPpBzhB,EAAGitH,aAlPQA,EAmPXjtH,EAAGksH,gBAlPiBA,EAmPpBlsH,EAAGm/E,iBAlPiBA,EAmPpBn/E,EAAGsS,WAlPQ,EAmPXtS,EAAGinE,WAlPQA,EAmPXjnE,EAAGqlH,YACHrlH,EAAG4I,KAAOA,CAIV,IAjPGuJ,IAiPchY,EAAsBgG,uBAjPpChG,EAAyBgG,uBAAAwU,gBAAAxC,UAmP5BD,KA+IAlS,EAAG0iG,MAAQ,WACP1iG,EAAG6kH,SAAS1xG,gBAAkB,KAjP/BnT,EAAA6kH,SAAWhjG,gBAAgB,KAC3B7hB,EAAA2hB,eACA3hB,EAAA6kH,SAAAwG,aAAmB,KAmPlBrrH,EAAGurH,YAjPJvrH,EAAAqlH,YACCrlH,EAAA6kH,SAAQ+H,YAAA,KAmPR5sH,EAAG6sH,8LA/LXz4H,QACKC,OAAO,0CACPe,WAAW,4BAlPwBu7H,MAmf5C,WACI,YAOA,SAnPQG,GAAiBrmH,EAAAxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAAyX,GAoPrB,GAAI5R,GAAKC,IACTD,GAAGsU,SAAW,KAlPdtU,EAAGgT,YAAA,EACHhT,EAAG+S,WAAA,EACH/S,EAAGsS,WAAA,EACHtS,EAAGwkB,gBACHzsB,EAAG2c,SAAY,CACCva,GAAAgG,uBACFhG,EAAAgG,uBAAAwU,gBAAAxC,SAqPdnS,GAAG+kH,gBAAkBxiH,EAAM0xB,QAE3Bj0B,EAAG0R,OAAS,WAlPR4K,EAAaiB,QAAA,wKAgOrBnpB,QAlPIC,OAAG,0CAoPFe,WAAW,sBAAuB07H,MAsB3C,WACI,YAOA,SAASC,GAAyBh5H,EAAYsC,EAASJ,EAASQ,EAASN,EAAuBsQ,EAAQ4uE,EAA6BznE,EAAwBpX,GAmEzJ,QAAS0X,KACLmnE,EAA4BK,2BAA2BvnE,GAAW1T,KAAK,SAASC,GACzD,MAAfA,EAAIlI,QACJwJ,EAAGgxH,mBAAqBtyH,EAAIhJ,KAlP/B8E,EAAAqI,QAAA7C,EAAmBgxH,mBAAA,SAAAxjH,GACxBA,EAAAyjH,QAAA7hG,KAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAAre,EAAA0jH,MAAAplG,QAAA,MAEOla,EAAuB6pE,sBAAAtpE,GAAA1T,KAAA,SAAAC,GACR,MAAfA,EAAAlI,OACAwJ,EAAW2hB,YAAAjjB,EAAAhJ,KAEVqC,EAAc2I,YAAS,QAAgB,yBAAA,0BAqPpC,SAASC,GAlPhB5I,EAAA2I,YAAyB,QAAA,mBAA2B,4BAuPhD3I,EAnPK2I,YAAA,QAAA,yBAAA,0BAqPV,SAASC,GACR5I,EAnPG2I,YAAe,QAAA,mBAAA,2BAwP1B,QAnPSsT,KAoPLhU,EAAGgT,YAnPa,EAoPhBhT,EAAG+S,WAnPI,EAoPP/S,EAAGmxH,UAnPI,EAoPPnxH,EAAGmnH,YAAa,EAChBnnH,EAAGwnH,kBAAmB,EACtBxnH,EAAGoxH,YAAa,EAChBpxH,EAAGynH,kBAAmB,EAjP1BznH,EAAAqxH,OA4QA,QAnPQ73C,GAAc1jF,EAAAyI,GAoPlB86E,EAA4BG,iCAAiC1jF,EAAWoK,EAAWG,QAAQ5B,KAAK,SAASC,GAClF,MAAfA,EAAIlI,QACJwJ,EAAGsxH,gBAAkB5yH,EAAIhJ,KACrB6I,GAlPLA,KAEJxG,EAAS2I,YAAkB,QAAA,yBAAA,0BAE3B,SAASC,GACT5I,EAAW2I,YAAA,QAAA,mBAAA,2BAyPlB,QAAS6wH,GAAmBhzH,GAjP5B,GAAAyB,EAASqxH,IAAAxvG,gBAAmB,CACxB7hB,EAAAsS,WAAA,EACGtS,EAAA8zF,YACC9zF,EAAAqxH,IAAAnB,QAAa,KAoPblwH,EAAGqxH,IAAI/G,QAAU,KAlPjBtqH,EAAAqxH,IAAAG,YAAa,IAEjB,IAAAv2H,IAoPQnF,UAAWkK,EAAGqxH,IAAIxvG,gBAAgB/rB,UAlPtCsK,SAAMF,EAAAG,OAENg5E,GAAqBC,aAASr+E,GAAgBwD,KAAA,SAAAC,GAC9C,GAAqB,MAArBA,EAAUlI,OAAW,CAGrB,GADAwJ,EAAWyxH,cAAY/yH,EAAAhJ,KACdsK,EAAAyxH,cAAAt2H,OAAA,EAAA,CAEC,GAAAk3B,GAAS73B,EAAA83B,QAAAtyB,EAAAyxH,cAAA,WAoPPzxH,GAAGizB,YACHjzB,EAAG0xH,gBAlPPl3H,EAAA8xB,IAAA+F,EAAA,SAAAhnB,EAAA0b,GAoPQ/mB,EAAGizB,SAASp7B,MACRohD,SAAUlyB,EACV/G,OAAQ3U,EAAM,GAAG2U,OAlPnB8zE,SAAWzoF,MAGtBrL,EAAA2xH,aAAYv9H,QAAA8e,KAAAlT,EAAAizB,UACPjzB,EAAAmnH,YAAS,EACjBnnH,EAASwnH,kBAAiB,EACxBxnH,EAAQoxH,YAAA,EACNpxH,EAAOynH,kBAAc,EACrBznH,EAAM8zF,YAoPFta,EAAiCx5E,EAAGqxH,IAAIxvG,gBAAgB/rB,UAAW,SAASmF,GAlP1E,GAAA+E,EAAOsxH,gBAAIn2H,OAAgB,EAAA,CAE1BX,EAAYqI,QAAA7C,EAAWsxH,gBAAA,SAAkB9jH,GACpDA,EAAAokH,oBAoPoBpkH,EAAEgyC,eACF,IAAIntB,MACAw/F,IACJ7xH,GAAG2xH,aAAev9H,QAAQ8e,KAAKlT,EAAGizB,UAlPrDZ,EAAA73B,EAAAyC,OAAA+C,EAAAizB,SAAA,SAAAh4B,GACsB,GAAAA,EAAA+kB,QAAAxS,EAAAwS,OACR,MAAA/kB,KAqPKuS,EAAEokH,iBAAmBv/F,EAAI,GAlPlCryB,EAAA8xH,QAAAtkH,EAAA,SAAAtS,GACY22H,EAASr3H,EAAAyC,OAAA+C,EAAmB0xH,aAAW,SAAY7qE,GAC3D,GAAAA,EAAA5vB,UAAAzpB,EAAAypB,QAoPiB,MAAO4vB,OAGnBr5C,EAAEgyC,aAAeqyE,EAAQ,GAEzB7xH,EAAG8zF,SAASj8F,MAlP5BmoB,OAAAxS,EAAAokH,iBAAA5xG,OACa+xG,IAAAvkH,EAAaukH,IAoPNC,YAAaxkH,EAAEwkH,YACfd,KAAM1jH,EAAE0jH,KACRe,UAAW,GAAI7iG,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOgQ,WAAWre,EAAE0jH,MAAMplG,QAAQ,IACpHk7F,SAAUx5G,EAAEw5G,SACZa,SAAUr6G,EAAEq6G,SAlP3CqK,IAAA1kH,EAAA0kH,IACTC,IAAA3kH,EAAA2kH,IAoPwCC,IAAK5kH,EAAE4kH,IACPC,IAAK7kH,EAAE6kH,IAnP/CT,iBAAApkH,EAAAokH,iBACYpyE,aAAAhyC,EAAAgyC,aAC2BqS,OAAA,EAqPC0I,QAAQ,EACR9I,QAAQ,MAhP5BzxD,EAAAyqB,UAAA,EACDzqB,EAAAsyH,eAAA,KACAtyH,EAAAyqB,UAAAjwB,EAAAy2B,MAAAjxB,EAAA8zF,SAAA,SAAAtmF,GAEM,GAAA,MAAAA,EAAA0jH,KACJ,MAAsBrlG,YAAAre,EAAA0jH,QAGZlxH,EAAAyqB,YAqPKzqB,EAAGsyH,eAAiB,GAAIljG,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOgQ,WAAW7rB,EAAGyqB,WAAWqB,QAAQ,KAGvI9rB,EAAG2xH,aAAev9H,QAAQ8e,KAAKlT,EAAGizB,UAElCz4B,EAAOqI,QAAQ7C,EAAGizB,SAAU,SAASzlB,GACjC,GAAIA,EAAG,CAnPnC,GAAAqxG,GAAArkH,EAAAyC,OAAA+C,EAAA8zF,UAAA9zE,OAAAxS,EAAAwS,QACR6+F,GAAA1jH,SAAAqS,EAAAsmF,SAAA34F,QAqP4CX,EAAOy2E,OAAOjxE,EAAG2xH,cAAgB3xG,OAAUxS,EAAEwS,WAKzD,IAAIisG,GAAYzxH,EAAO+3H,MAAMvyH,EAAGsxH,gBAAiB,SAAS9jH,GACtD,MAAOA,GAAE0kH,KAnPhClyH,GAAA0xH,gBAuPmB1xH,EAAGqxH,IAAIpF,UAAY,GAAIxyG,MAAKwyG,EAAUiG,KACtClyH,EAAGsS,WAAY,EAnP1BtS,EAAA8zF,SAAgBj8F,MAsPLg6D,OAAO,EApPlBJ,QAAA,EACSy/D,KAAA,aAyPNlxH,GAAG8zF,WAnPpBv1F,IACeA,IAEfyB,EAAesS,WAAA,MAEPva,GAAe2I,YAAA,QAAA,yBAAA;EAuPf,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,+BAlP7DV,GAAA8zF,YAsPK9zF,EAAGqxH,IAAInB,QAAU,KApPtBlwH,EAAAqxH,IAAA/G,QAAe,KACftqH,EAAAqxH,IAAAG,YAAwB,KAoZ3B,QAASj4C,KAELv5E,EAAGwyH,cAAe,EAClBxyH,EAAGgqH,QAAS,CAEZ,KAAK,GAAI9uH,KAAK8E,GAAG8zF,SACkBn+F,QAA3BqK,EAAG8zF,SAAS54F,GAAG8rH,UArPiC,IAAdhnH,EAAA8zF,SAAc54F,GAAA8rH,WAsPhDhnH,EAAGgqH,QAAS,EAGpB,IAAIhqH,EAAGqxH,IAAIpF,YAAcjsH,EArPGgqH,OAqQxB,GAdAhqH,EAAGyyH,iBAAkB,EACrBj4H,EAAOqI,QAAQ7C,EAAG8zF,SArPU,SAAQh0D,GAsPhC,IAAKA,EAAE4yF,QAAS,CACZ,GAAIC,GAAU7yF,EAAE+nF,SArPI7sH,MAAA,eAsPhBiiC,IACJA,GAAIplC,KAAK86H,EAAQ,GACjB,IAAIC,GAAU31F,EAAIvJ,OArPEz3B,QAAY,UAAA,GAsP5B6jC,GAAEmwF,KAAOrpH,SArPOgsH,KAsPhB9yF,EAAE+nF,SAAW,KACb7nH,EAAGyyH,iBArPkB,MA0P5BzyH,EAAGyyH,gBAvJJp4H,EAAE8C,OAAA,UAAc,wDAChB9F,WAAc,EACV+F,KAAA,OAuPJ4C,EAAGwyH,cAAe,MAjGlB,IAAIxyH,EAAGqxH,IAAIpF,WArPa,GAAAxyG,MAAQ,CAsP5B,GAAI4rG,KAEJ7qH,GAAOqI,QAAQ7C,EAAG8zF,SAAU,SAAStmF,GACjC63G,EAASxtH,MACLqyH,OArPOlqH,EAAA8zF,SAAY1wF,QAAAoK,GAAA,EAsPnBwS,OArPOxS,EAAAokH,iBAAiB5xG,OAsPxBiX,QArPOzpB,EAAAgyC,aAAYvoB,QAsPnB86F,IAAKlmG,WAAWre,EAAEukH,KAClBC,YArPYnmG,WAAUre,EAAAwkH,aAsPtBd,KAAMrlG,WArPMre,EAAO0jH,MAsPnBlK,SAAUpgH,SAAS4G,EAAEw5G,UACrBa,SAAUr6G,EAAEq6G,YAIpB,IAAI5sH,IACAnF,UArPWkK,EAAAqxH,IAAAxvG,gBAAuB/rB,UAsPlCm2H,UAAWhyH,EAAQ,QAAQ+F,EAAGqxH,IAAIpF,UAAW,cAC7CtmE,KAAM,IACN0/D,SAAU1oH,KArPEqkB,UAAOqkG,GAsPnBjlH,SAAUF,EArPUG,OAwPxBg5E,GAA4BE,cAAct+E,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,SAEJwJ,EAAGqxH,IAAIpF,UAAY,GAAIxyG,MAAK/a,EAAIhJ,KAAKm9H,SAAS5G,WAC9CjsH,EAAGqxH,IArPCnB,QAAIj2H,EAAY,QAAayE,EAAGhJ,KAAAm9H,SAAA3C,QAAiB,cAsPrDlwH,EAAGqxH,IAAI/G,QArPU5rH,EAAAhJ,KAAAm9H,SAAAvI,QAsPjBtqH,EAAGqxH,IAAIG,YAAc9yH,EAAIhJ,KAAKm9H,SAASrB,YACvCxxH,EAAG8zF,YACHt5F,EAAOqI,QAAQnE,EAAIhJ,KAAKo9H,SAAU,SAAStlH,GApPvCA,EAAAokH,oBACApkH,EAAAgyC,eAsPA,IAAIntB,MApPLw/F,IACC7xH,GAAA2xH,aAAOv9H,QAAA8e,KAAAlT,EAAAizB,UACPZ,EAAA73B,EAAQyC,OAAA+C,EAAAizB,SAAA,SAAAh4B,GACR,GAAMA,EAAA+kB,QAAAxS,EAAAwS,OAsPE,MAAO/kB,KAnPpBuS,EAAAokH,iBAAAv/F,EAAA,GACAryB,EAAA8xH,QAAWtkH,EAAA,SAAAtS,GAsPF22H,EAAUr3H,EAAOyC,OAAO+C,EAAG0xH,aAAc,SAAS7qE,GApP9D,GAAAA,EAAA5vB,UAAAzpB,EAAAypB,QACA,MAAA4vB,OAGDr5C,EAAAgyC,aAAAqyE,EAAA,GAuPS7xH,EAAG8zF,SAASj8F,MApPfmoB,OAAAxS,EAAAokH,iBAAA5xG,OACF+xG,IAAYvkH,EAAAukH,IAsPHC,YAAaxkH,EAAEwkH,YApPpCd,KAAA1jH,EAAA0jH,KACWe,UAAA,GAAA7iG,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAAre,EAAA0jH,MAAAplG,QAAA,IACGk7F,SAAAx5G,EAAAw5G,SACAa,SAAAr6G,EAAAq6G,SACIqK,IAAA1kH,EAAA0kH,IAsPGC,IAAK3kH,EAAE2kH,IACPC,IAAK5kH,EAAE4kH,IACPC,IAAK7kH,EAAE6kH,IApPZT,iBAAApkH,EAAAokH,iBACRpyE,aAAAhyC,EAAAgyC,aACKqS,OAAA,EACJ0I,QAAiB,EACP9I,QAAU,MAIhBzxD,EAAA8zF,SAAA,GAAA4+B,SAAA,EAsPA1yH,EAAGynH,kBAAmB,EApP3BznH,EAAOwyH,cAAS,EAOxBz6H,EAAqB2I,YAAK,UAAa,2CAAiD,yBAuPhF,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAGxDrG,GAAQ8C,OAAO,UAAW,mDApP7B9F,WAAc,EACpB+F,KAAe,OAuPN4C,EAAGwyH,cAAe,MA3O1Bn4H,GAAA8C,OAAA,UAAA,6BACA9F,WAAA,EAsPI+F,KAAM,OAEV4C,EAAGwyH,cAAe,EA2U1B,QArPQp5G,GAAG1jB,GAsPP,GArPI2jB,GAAA3jB,EAAA2jB,KAsPA9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,GAAqC,KAAlB8iB,EAAKC,SA6DnC,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MArPGJ,GAAAK,SAAY,EAAA,EAAA,EAAc,GAuPzCxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EACf,MArPI5Z,GAAA2Z,OAAOze,GAAQ1E,OAyP/B,MAAO,GA58BX,GAAIwJ,GAAKC,IAITD,GAAGqU,kBAnPiBhJ,MAAA,IAAkBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoPtCrL,EAAGsU,SAnPQtU,EAAAqU,gBAAc,GAqPzBrU,EAAGuU,YAnPQ,EAoPXvU,EAAGwU,qBAnPiB,SAAcC,GAC1BzU,EAAGuU,YAAAE,GAwPXzU,EAAG+yH,mBAnPoB1nH,MAAA,IAAYA,MAAa,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoPhDrL,EAAGgzH,UAAYhzH,EAAG+yH,iBAnPiB,GAqPnC/yH,EAAGizH,aAAe,EAClBjzH,EAAGi1D,sBAAwB,SAASxgD,GAC5BzU,EAAGizH,aAAex+G,GAK1BzU,EAAGkzH,mBAnPkB7nH,MAAK,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoP1BrL,EAAGmzH,UAnPSnzH,EAAA+yH,iBAAuB,GAqPnC/yH,EAAGozH,aAAe,EAClBpzH,EAAGqzH,sBAAwB,SAAS5+G,GAC5BzU,EAnPCozH,aAAA3+G,GAsPTzU,EAAGgT,YAnPQ,EAoPXhT,EAAG+S,WAnPQ,EAoPX/S,EAAGsS,WAnPQ,EAoPXtS,EAAGwyH,cAnPQ,EAoPXxyH,EAAGszH,YAnPQ,EAqPXv7H,EAAW2c,SAAU,EAErB1U,EAAGqxH,OAlPHrxH,EAAA8zF,WAoPA,IAnPI5zF,GAAI/F,EAAWgG,uBAoPfgS,EAnPOhY,EAAwBgG,uBAAAwU,gBAAAxC,SAoPnCnS,GAAGgU,OAnPQA,EAoPXhU,EAAGuxH,mBAnPiBA,EAoPpBvxH,EAAGu5E,cAnPQA,EAsPXv5E,EAAGmxH,UAnPS,EAoPZnxH,EAAGmnH,YAnPa,EAoPhBnnH,EAAGwnH,kBAAmB,EACtBxnH,EAAGoxH,YAAa,EAChBpxH,EAAGynH,kBAnPgB,EAsPnBh9G,EAAO8oH,iBACHjpF,OAnPQ,WAoPJtqC,EAAGmxH,UAAW,IAKtBj/G,IA0CAlS,EAAG0iG,MAnPQ,WAoPP,GAnPI/vF,GAAQtY,EAASsY,QAAA,eAoPjB,uFACItb,WAAW,EACX+F,KAAM,MAGduV,GAnPQjT,OAAIjB,KAAI,WAoPZuB,EAAGqxH,OACHrxH,EAAGyqB,UAnPQ,EAoPXzqB,EAAGsyH,eAAiB,KACpBtyH,EAAG8zF,YACH9zF,EAAGmnH,YAnPQ,EAoPXnnH,EAAGwnH,kBAAmB,EACtBxnH,EAAGoxH,YAnPI,EAoPPpxH,EAnPGynH,kBAAe,KA2J1BznH,EAAGwzH,QAAA,SAAa1gH,GACb9S,EAAAyqB,UAAY,EACZzqB,EAAAsyH,eAAY,KACG38H,QAAfmd,EAAAi/G,KAAe,IAAAj/G,EAAAi/G,KAAAp8H,QAAAmd,EAAAk/G,aAAA,IAAAl/G,EAAAk/G,aACfl/G,EAAAo+G,KAAarlG,WAAA/Y,EAAAi/G,IAAAj/G,EAAAk/G,aAAAlmG,QAAA,GAsPRhZ,EAAIm/G,UAAY,GAAI7iG,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOgQ,WAAW/Y,EAAIi/G,IAAMj/G,EAAIk/G,aAAalmG,QAAQ,MAE5IhZ,EAAIo+G,KAAO,KApPhBp+G,EAAMm/G,UAAA,MAELjyH,EAAAyqB,UAAajwB,EAAAy2B,MAAAjxB,EAAA8zF,SAAsB,SAAAtmF,GAEpC,GAAS,MAAAA,EAAA0jH,KACT,MAAArlG,YAAqBre,EAAA0jH,QAwPhBlxH,EAAGyqB,YApPRzqB,EAAAsyH,eAAW,GAAAljG,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAA7rB,EAAAyqB,WAAAqB,QAAA,MAOd9rB,EAAA8xH,QAAO,SAAAh/G,EAAkBvU,GACrByB,EAAA0xH,aAAQl3H,EAAWyC,OAAA+C,EAAAyxH,cAAA,SAAAjkH,GACf,MAAGA,GAAAwS,QAAWlN,EAAA8+G,iBAAA5xG,SAwPlBxlB,EAAOqI,QAAQ7C,EAAG8zF,SAAU,SAAStmF,GAC7BA,EAAEgyC,cApPdhlD,EAAAy2E,OAAAjxE,EAAA0xH,aAAA,SAAAz2H,GAsPgB,MAAOA,GAAIg8B,SAAWzpB,EAAEgyC,aAAavoB,YAK7C14B,GACAA,KAIRyB,EAAGyzH,OAAS,SArPQr+G,EAAItC,GAsPpBA,EAAI++C,OAAQ,EACZ/+C,EAAI2+C,QAAS,EACb3+C,EAAIkN,OAASlN,EArPG8+G,iBAAW5xG,OAuP3BhgB,EAAG8zF,SArPQj8F,MAsPPg6D,OAAO,EACP0I,QAAQ,EACR9I,QAAQ,EACRhnC,UArPO,OAwPXzqB,EArPG2xH,aAAcv9H,QAAA8e,KAAAlT,EAAAizB,UAuPjBz4B,EAAOqI,QAAQ7C,EAAGizB,SAAU,SAASzlB,GACjC,GAAIA,EAAG,CACH,GAAIqxG,GAAWrkH,EAAOyC,OAAO+C,EAAG8zF,UAAY9zE,OAAUxS,EAAEwS,QACpD6+F,GAAS1jH,SAAWqS,EAAEsmF,SAAS34F,QApPtCX,EAASy2E,OAAAjxE,EAAA2xH,cAAA3xG,OAAAxS,EAAAwS,aA6PlBhgB,EAAG0zH,UAAY,SAASx4H,EAAG4X,GApPvB9S,EAAG8zF,SAAMx+D,OAAAp6B,EAAA,GAsPT8E,EAAGyqB,UAAY,EACfzqB,EAAGsyH,eAAiB,KACpBtyH,EAAGyqB,UAAYjwB,EAAOy2B,MAAMjxB,EAAG8zF,SAAU,SAAStmF,GAnP9C,GAAU,MAAVA,EAAA0jH,KACA,MAAArlG,YAAAre,EAAA0jH,QAwPAlxH,EAAGyqB,YACHzqB,EAAGsyH,eAAiB,GAAIljG,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOgQ,WAAW7rB,EAAGyqB,WAAWqB,QAAQ,KAEvI9rB,EAAG2xH,aArPUv9H,QAAA8e,KAAAlT,EAAAizB,UAuPbz4B,EArPOqI,QAAA7C,EAAAizB,SAAiB,SAAAzlB,GACpB,GAAGA,EAAA,CACA,GAAAqxG,GAAarkH,EAAAyC,OAAA+C,EAAA8zF,UAAA9zE,OAAAxS,EAAAwS,QACb6+F,GAAA1jH,SAAmBqS,EAAAsmF,SAAA34F,QACnBX,EAAAy2E,OAAajxE,EAAA2xH,cAAA3xG,OAAAxS,EAAAwS,aA2PxBhgB,EAAG2zH,kBAAoB,WApPvBn5H,EAASy2E,OAAAjxE,EAAA8zF,SAAA,SAAAtmF,GACL,MAA4B7X,SAA5B6X,EAAAgyC,cAA4B,MAAAhyC,EAAA0jH,MAuP5B,IAAIjB,GArPI,EAsPJ2D,EArPQ,CAsPZp5H,GAAOqI,QArPK7C,EAAA8zF,SAAA,SAAAtmF,GAsPRyiH,GArPO,EAsPP2D,GArPI,EAsPJpmH,EAAEyiH,IAAMrpH,SAASqpH,GApPlBziH,EAAAomH,MAAShtH,SAAKgtH,KAwPjB5zH,EAAG6zH,aAAez/H,QAAQ8e,KAAKlT,EAAG8zF,UAClC3hE,QAAQC,IAAIpyB,EAAG6zH,eAKnB7zH,EAAGqpH,UArPY,SAAAv2G,GAsPXA,EArPIm9G,IAAGrpH,SAAYkM,EAAAm9G,KAuPnBjwH,EAAG8zH,WArPQt5H,EAAUyC,OAAA+C,EAAA6zH,cAAAD,MAAA9gH,EAAA8gH,QAAA,GAAA3D,IAsPrBjwH,EAAG+zH,OArPQv5H,EAAAyC,OAAU+C,EAAA6zH,cAAA5D,IAAAn9G,EAAAm9G,MAAA,GAAAA,IAuPjBjwH,EAAG8zH,WAAa9zH,EAAG+zH,OApPnBv5H,EAAIqI,QAAM7C,EAAA8zF,SAAA,SAAAtmF,GACNA,EAAAomH,OAAc9gH,EAAI8gH,OAClBpmH,EAAUyiH,KAAAjwH,EAAA+zH,QAAWvmH,EAAAyiH,IAAAjwH,EAAA8zH,aAsPbtmH,EAAEyiH,IAAMziH,EAAEyiH,IAAM,KAKrBjwH,EArPC8zH,WAAO9zH,EAAA+zH,QAsPfv5H,EAAOqI,QAAQ7C,EAAG8zF,SAAU,SAAStmF,GAC7BA,EAAEomH,OArPM9gH,EAAM8gH,OACVpmH,EAAAyiH,KAAGjwH,EAAA+zH,QAAWvmH,EAAAyiH,IAAAjwH,EAAA8zH,aACdtmH,EAAAyiH,IAAGziH,EAAAyiH,IAAA,KA4PnBjwH,EAAG8zF,SAAWt5F,EAAO6xB,QAAQrsB,EAAG8zF,SAAU,OAE1C9zF,EAAG6zH,aArPaz/H,QAAG8e,KAAAlT,EAAa8zF,UA8PhChhF,EAAIynD,QAAS,EACbv6D,EAAGszH,YAAa,GA8IpBtzH,EAAGopH,eArPa,SAAKvzF,GAsPjB71B,EAAGoxH,YArPQ,EAsPX/3C,EArPYI,2BAAA5jD,EAAA31B,EAAAG,QAAA5B,KAAA,SAAAC,GACA,MAARA,EAAQlI,QACRuB,EAAW2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,wBAuPZ,SAASlT,GApPT5I,EAAA2I,YAAuB,QAAQ,mBAAA,0BA0PtCV,EAAGinE,WArPa,SAASn0D,GAsPrB9S,EAAGsS,WArPS,CAsPZ,IAAIrX,IACAnF,UAAWgd,EAAIhd,UACfwsB,YAAaxP,EAAIwP,YACjB2pB,YAAa9xC,EAAsBgG,uBAAuBwU,gBAAgBs3B,YAC1E+nF,WAAYlhH,EAAIkhH,WAChBlgG,SAAU5zB,EAAWi/C,UAlPzBk6B,GAAsBM,WAAA1+E,GAAAwD,KAAA,SAAAC,GACnB,GAAY,MAAZA,EAAAlI,OAAY,CACZwJ,EAAAi0H,WAAiBv1H,EAAAhJ,IAGZ,IAAEugB,GAAAnf,SAAcijB,cAAA,IAChBjjB,UAAOC,KAAAijB,YAAa/D,GAsPpBA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMmC,EAAGi0H,aApPzBl2H,KAAA,oBAuPKtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UApPnBsD,EAAW2I,YAAU,UAAY,eAAA,mBAChCV,EAAGsS,WAAA,MA+PftS,EAAGk0H,gBArPkB,SAAAphH,GAsPjB9S,EAAG+S,WArPW,EAsPd/S,EAAGgT,YAAa,EApPhBxY,EAAIqI,QAAM7C,EAAA2hB,YAAA,SAAAnU,GACNA,EAAA1X,WAAQgd,EAAAhd,YACLkK,EAAAqxH,IAAQxvG,gBAAarU,KAyP5B+jH,EArPc,cAGdvxH,EAAGqxH,IAAAnB,QAAA97H,QAAe8e,KAAQJ,EAAQo9G,SAClClwH,EAAAqxH,IAAApF,UAAe73H,QAAA8e,KAAAJ,EAAAm5G,WAsPfjsH,EAAGqxH,IAAI/G,QAAUl2H,QAAQ8e,KAAKJ,EAAIw3G,SAClCtqH,EAAGqxH,IAAIG,YAAcp9H,QAAQ8e,KAAKJ,EAAIk0G,WAlP1ChnH,EAAGkU,UAAY,WACXlU,EAAAm0H,gBAAmB//G,iBAwPvBpU,EAAGo0H,OArPI,WAsPH,GAAIzhH,GAAUtY,EAAQsY,QAAQ,eApP1B,yFACAtb,WAAe,EACX+F,KAAM,MAwPduV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAChBhT,EAAGkU,YACHlU,EAAGqxH,OACHrxH,EArPG8zF,YACH5hF,OA8PRlS,EAAGq0H,OAAS,OACZr0H,EAAGs0H,WArPI,MAsPPt0H,EAAGu0H,iBAAmB,YACtBv0H,EAAGw0H,YArPI,EAuPPx0H,EAAGy0H,YAAe17G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QACvJ37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,EAAG27G,MAAO,QAAW37G,GAAI,GAAI27G,MAAO,QAAW37G,GAAI,GAAI27G,MAAO,QACpH37G,GAAI,GAAI27G,MAAO,QAGrB10H,EAAG20H,8BAAgC,WAnP/B,GAoPA30H,EAAGw0H,YAAa,EApPZx0H,EAAAqxH,IAAAxvG,gBAAS,CAuPQ,QAAb7hB,EAAGq0H,OACHr0H,EAAG2lD,KAAO,IACQ,SAAb3lD,EAAGq0H,OACRr0H,EAAG2lD,KAAO,IAnPlB3lD,EAAA2lD,KAAA,GAwPI,IAAI1qD,IApPHnF,UAAYkK,EAAAqxH,IAAAxvG,gBAAU/rB,UACnBsK,SAAGF,EAAYG,OACfslD,KAAG3lD,EAAA2lD,KAuPP0zB,GAA4BO,iCAAiC3+E,GAAKwD,KAAK,SAASC,GApP7E,GAAkB,MAAdA,EAAAlI,OAAiB,CAGjB,GADJwJ,EAAA40H,eAAkBl2H,EAAAhJ,KACdsK,EAAQ40H,eAAaz5H,OAAS,EAAG,CAC7BX,EAAAqI,QAAS7C,EAAA40H,eAAA,SAAApnH,GACRA,EAAAqnH,aAAqBl4H,KAAAC,MAAM4Q,EAAAqnH,cAC3BrnH,EAAMsnH,UAAAt6H,EAAA+3H,MAAA/kH,EAAAqnH,aAAA,UAAAE,OACNvnH,EAAKwnH,UAAQx6H,EAAAgnG,MAAAh0F,EAAAqnH,aAAA,UAAAE,QAGb,IAAEhH,GAAWvzH,EAAA+3H,MAAAvyH,EAAA40H,eAAA,aAAAE,UACV9G,EAAAxzH,EAAkBgnG,MAAAxhG,EAAA40H,eAAA,aAAAI,SAsPrBh1H,GAAGi1H,cACH,KAAK,GAAI/5H,GAAI6yH,EAAS7yH,GAAK8yH,EAAS9yH,IACf,QAAb8E,EAAGq0H,OACHr0H,EAAGi1H,YAAYp9H,MApP3Bk9H,OAAiB75H,EACVknH,WAAiB,QAAQlnH,IAuPF,SAAb8E,EAAGq0H,OApPbr0H,EAAQi1H,YAAGp9H,MACLk9H,OAAK75H,EACVknH,WAAqB5nH,EAAAyC,OAAa+C,EAAAy0H,UAAA,SAAAjnH,GACxB,GAAAA,EAAAuL,IAAA7d,EACC,MAAAsS,GAAaknH,QACnB,GAAAA,QAGL10H,EAAAi1H,YAAmBp9H,MACnBk9H,OAAY75H,EAsPJknH,WAAY,aAAoBlnH,GA/O5CV,GAAMqI,QAAA7C,EAAA40H,eAAA,SAAApnH,GACN,GAAA0nH,GAAe9gI,QAAU8e,KAAAlT,EAAAi1H,YACzBz6H,GAAUqI,QAAA2K,EAAWqnH,aAAA,SAAA55H,GAsPbT,EAAOy2E,OAAOikD,GAAeH,OAAU95H,EAAI85H,WAnPvDv6H,EAAAqI,QAAAqyH,EAA4B,SAAcC,GAC9B3nH,EAAAqnH,aAAWh9H,MAsPPk9H,OAAQI,EAAGJ,OApPZK,QAAA,QA2PX56H,EAAOqI,QArPG7C,EAAA40H,eAAmB,SAAApnH,GAsPzBhT,EArPMqI,QAAA2K,EAAAqnH,aAAe,SAAA55H,GACP,OAAN+E,EAAAs0H,YACU,aAAVt0H,EAAAu0H,iBACDt5H,EAAAo6H,aAAuBxpG,WAAQ5wB,EAAAm6H,SAAAtpG,QAAA,GAEV,SAAZ9rB,EAAAu0H,iBACJt5H,EAAAo6H,aAAOxpG,WAAA5wB,EAAAm6H,QAAA,KAAAtpG,QAAA,GAGZ7wB,EAAQo6H,aAAexpG,WAAA5wB,EAAAm6H,QAAA,KAAAtpG,QAAA,GAwPtB7wB,EAAIq6H,kBArPW,GAAAlmG,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAA5wB,EAAAo6H,cAAAvpG,QAAA,MAKhB7wB,EAAAs6H,aAAct6H,EAAAm6H,QAAA,GACc,aAA3Bp1H,EAAAu0H,iBACAt5H,EAAOo6H,aAAAxpG,WAAA5wB,EAAAs6H,cAAAzpG,QAAA,GACQ,SAAf9rB,EAAAu0H,iBACAt5H,EAAQo6H,aAAAxpG,WAAA5wB,EAAAs6H,aAAA,KAAAzpG,QAAA,GAER7wB,EAAAo6H,aAAYxpG,WAAA5wB,EAAAs6H,aAAA,KAAAzpG,QAAA,GAIZ7wB,EAAAq6H,kBAAO,GAAAlmG,MAAAC,aAAA,SACPpV,MAAO,WACP2Q,SAAA,QACA/O,OAAAgQ,WAAgB5wB,EAAAo6H,cAAAvpG,QAAA,SA6P5BtxB,EArPOqI,QAAA7C,EAAAi1H,YAAmB,SAAAznH,GAuPtBxN,EAAGw1H,gBAAkB,EACrBx1H,EAAGy1H,qBAAuB,KAC1BjoH,EAAE4nH,QAAU,EACZ56H,EAAOqI,QAAQ7C,EAAG40H,eAAgB,SAAS15H,GACvC,GAAI49C,GAAOt+C,EAAO6P,KAAKnP,EAAE25H,cAAgBE,OAAQvnH,EAAEunH,QACnDvnH,GAAE4nH,QAAU5nH,EAAE4nH,QAAUvpG,WAAWitB,EAAKs8E,WAEvB,OAAjBp1H,EAAGs0H,YApPE,aAALt0H,EAAKu0H,iBACF/mH,EAAA6nH,aAAYxpG,WAASre,EAAA4nH,SAAAtpG,QAAoB,GAErD,SAAA9rB,EAAAu0H,iBACY/mH,EAAA6nH,aAAWxpG,WAAAre,EAAA4nH,QAAA,KAAAtpG,QAAA,GAwPVte,EAAE6nH,aAAexpG,WAAWre,EAAE4nH,QAAU,KAAUtpG,QAAQ,GAjP/Dte,EAAA8nH,kBAAW,GAAAlmG,MAAAC,aAAA,SAAApV,MAAA,WAAwD2Q,SAAA,QAAA/O,OAAAgQ,WAAAre,EAAA6nH,cAAAvpG,QAAA,IAExEqG,QAAAC,IAAA5kB,EAAA8nH,mBAEPt1H,EAAew1H,gBAAAh7H,EAAAy2B,MAAAjxB,EAAAi1H,YAAA,SAAAznH,GAEnB,GAAA,MAAAA,EAAA4nH,QACuB,MAAAvpG,YAAAre,EAAA4nH,WAwPFp1H,EAAGw1H,kBApPTx1H,EAAAy1H,qBAAA,GAAArmG,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAA7rB,EAAAw1H,iBAAA1pG,QAAA,OAyPEte,EAAE+nH,aAAe/nH,EAAE4nH,QAAU,GACF,aAAvBp1H,EAAGu0H,iBApPN/mH,EAAA6nH,aAAWxpG,WAAAre,EAAA+nH,cAAAzpG,QAAA,GACpB,SAAA9rB,EAAAu0H,iBACY/mH,EAAA6nH,aAAAxpG,WAA2Bre,EAAA+nH,aAAW,KAAWzpG,QAAQ,GAElEte,EAAA6nH,aAAuBxpG,WAASre,EAAA+nH,aAAS,KAAAzpG,QAAA,GAE3Cte,EAAA8nH,kBAAA,GAAAlmG,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAAre,EAAA6nH,cAAAvpG,QAAA,IAwPO9rB,EAAGw1H,gBAAkBh7H,EAAOy2B,MAAMjxB,EAAGi1H,YAAa,SAASznH,GAEvD,GAAsB,MAAlBA,EAAE+nH,aApPR,MAAA1pG,YAAAre,EAAA+nH,gBAGPv1H,EAAAw1H,kBACEx1H,EAAAy1H,qBAAA,GAAArmG,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAAgQ,WAAA7rB,EAAAw1H,iBAAA1pG,QAAA,QA+PT9rB,EAAGw0H,YAAa,MAjPhBz8H,GAAW2I,YAAS,QAAA,yBAAa,0BAuPtC,SAASC,GACR5I,EArPU2I,YAAW,QAAA,mBAAgB,6BAgQjDV,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAnPhBzZ,EAAGqa,QAuPHra,EAAG0X,MArPI,WACH1X,EAAAsa,GAAO,MAwPXta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MAAK,KAAM,EAAG,KAG/BzZ,EAAGirH,YApPCrwG,aAAOxB,EACP+C,WAAO,KACPtB,QAAO,GAAApB,MAAU,KAAA,GAAQ,IAuPzBqB,YAAa,GAGjB9a,EAAGkrH,UACCtwG,aAAcxB,EACd+C,WAAY,KApPbtB,QAAS,GAAApB,MAAA,KAAW,EAAA,IACnBgB,QAAI,GAAAhB,MAsPJqB,YArPI,GAwPR9a,EAAGmrH,cAAgB,WAnPfnrH,EAAAkrH,SAAQzwG,QAAYza,EAAAqxH,IAAApF,WA+PxBjsH,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GAlPvB7O,EAAGkb,MAAA,WACAlb,EAAAmb,OAAAtM,QAAa,CACb,IAAAwL,GAAA,GAAAZ,MACA06B,EAAa,EAEbn0C,GAAAm5B,SACGte,QAAO,GAAOpB,MAAAY,EAAW65B,cAAcC,EAAW95B,EAAI82B,WAAU92B,EAAS2B,aA0P/Ehc,EAAGob,MArPI,WACHpb,EAAAqb,OAAOxM,QAAI,GAwPf7O,EAAGsb,MAAQ,WACPtb,EAAGub,OArPM1M,QAAO,GAwPpB7O,EAAGwb,QArPS,SAAUC,EAAAC,EAAAC,GAsPlB3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SArPS,eAAkB,aAAA,aAAgB,aAsP9C5b,EAAG6b,OArPS7b,EAAA4b,QAAU,GAsPtB5b,EAAG8b,iBArPkB,cAuPrB9b,EAAGib,QACCpM,QArPQ,GAwPZ7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAGZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAASC,UArPK,EAsP/B,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAAQO,EAASC,UArPC,GAsPhChc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAER6iB,KAAM4C,EACNzlB,OAAQ,sKAj8BhBpC,QACKC,OAAO,2BACPe,WAAW,2BAA4B27H,MAs9BhD,WACI,YAOA,SAAS2E,GAAoB39H,EArPWyC,EAAIH,EAAAN,EAAegY,EAAeC,EAAiBJ,EAAA8oC,EAAAi7E,EAAAx7H,EAsPvF0/E,EAAwB+7C,EAAyBC,EAA4BC,EAAqBv/C,EAAmBv7B,EAAiB66B,EAAuBkgD,EAAkBp7E,EAC/KG,EAAwBk7E,EArPeC,EAAOC,EAA6BC,EAAAC,EAAAntC,EAAAotC,EAAA77E,EAAA4tB,GA6T3E,QAASl2D,KACLlS,EAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAAM,MAEVrW,EAAeI,mBArPY6oB,GAAkBx8B,KAAA,SAAaC,GAsPnC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EArPGhJ,KAsPpBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YArPS,QAAO,mBAAA,oBAgRnC,QAAS+gB,GAAoBwZ,GACrBA,GApPLj7B,EAAQsoD,IAAAzmC,gBAAW,KACf7hB,EAAA2hB,eAsPC3hB,EAAGsoD,IAAI9L,YAAc,KApP1Bx8C,EAAAk7C,WAEAl7C,EAAQsoD,IAAA3K,iBAAW,KACf39C,EAAA47C,gBAsPC57C,EAAGsoD,IAAIzK,oBAAsB,KAC7B79C,EAAGo8C,mBApPRp8C,EAAAsoD,IAAAzJ,iBAAgB,KACf7+C,EAAAw9C,gBACAx9C,EAAAi+C,iBAAwB,KAsPpBj+C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGm+C,YApPRn+C,EAAAs2H,yBAAaC,0BACZv2H,EAAAs2H,yBAAcE,4BACdx2H,EAAAs2H,yBAAYG,6BACZz2H,EAAAs2H,yBAA4BI,8BAsPxB12H,EAAG22H,kBAAkBC,mBApPzB52H,EAAA22H,kBAAaE,qBAsPT72H,EAAG22H,kBAAkBG,sBACrB92H,EAAG22H,kBAAkBI,uBApP1BnlH,EAAW8P,eAAAuZ,GAAAx8B,KAAA,SAAAC,GACI,MAAdA,EAAclI,QACFwJ,EAAA2hB,YAAAjjB,EAAAhJ,MACCsK,EAAK2hB,YAASxmB,OAAA,GACdd,EAAA8C,OAAA,UAAA,oDACA9F,WAAA,EAsPO+F,KAAM,OAjPd4C,EAAAsS,WAAa,GAuPbjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAnPxD,SAASlB,GACVtG,EAAYwH,MAAA,QAAA,mBAAA,sBAwPZ7B,EAAGsoD,IAAIzmC,gBAAkB,KACzB7hB,EAAG2hB,eApPR3hB,EAAQsoD,IAAA9L,YAAW,KACfx8C,EAAAk7C,WAGJl7C,EAAQsoD,IAAA3K,iBAAW,KACf39C,EAAA47C,gBACC57C,EAAAsoD,IAAAzK,oBAAY,KACZ79C,EAAAo8C,mBAsPAp8C,EAAGsoD,IAAIzJ,iBAAmB,KApP3B7+C,EAAAw9C,gBACCx9C,EAAAi+C,iBAAkB,KAsPlBj+C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGm+C,YACHn+C,EAAGs2H,yBAAyBC,0BAC5Bv2H,EAAGs2H,yBAAyBE,4BApPjCx2H,EAAQs2H,yBAAWG,6BACfz2H,EAAAs2H,yBAAgBI,8BAsPf12H,EAAG22H,kBAAkBC,mBACrB52H,EAAG22H,kBAAkBE,qBApP1B72H,EAAQ22H,kBAAWG,sBACf92H,EAAA22H,kBAAgBI,wBAyPvB,QArPO7kB,GAAchqD,GAsPjB,GAAavyD,QAATuyD,EAAoB,CACpBloD,EAAGsoD,IAAI9L,YAAc,KApP1Bx8C,EAAAk7C,WAwPKl7C,EAAGsoD,IAAI3K,iBAAmB,KApP/B39C,EAAA47C,gBACC57C,EAAAsoD,IAAQzK,oBAAA,KAsPJ79C,EAAGo8C,mBACHp8C,EAAGsoD,IAAIzJ,iBAAmB,KApP/B7+C,EAAAw9C,gBACCx9C,EAAAi+C,iBAAQ,KAsPJj+C,EAAGsoD,IAAIupD,aAAe,KApP3B7xG,EAAAm+C,YACCn+C,EAAAs2H,yBAAQC,0BAsPJv2H,EAAGs2H,yBAAyBE,4BAC5Bx2H,EAAGs2H,yBAAyBG,6BApPjCz2H,EAAAs2H,yBAASI,8BACR12H,EAAA22H,kBAAQC,mBAsPJ52H,EAAG22H,kBAAkBE,qBACrB72H,EAAG22H,kBAAkBG,sBApPzB92H,EAAA22H,kBAAeI,sBACnB,IAAS95E,IAAiB,CACtBvC,GAAoBmQ,iBAAA3C,EAAAjL,GAAAx+C,KAAA,SAAAC,GACO,MAAjBA,EAAAlI,QACDwJ,EAAAk7C,QAAAx8C,EAAAhJ,KACHsK,EAAAsS,WAAA,GAEPva,EAAA2I,YAAA,QAAA,yBAAA,0BAEC,SAAQC,GAsPA5I,EAAW2I,YAAY,QAAS,mBAAoB,+BAjPxDV,GAAAsoD,IAAO9L,YAAK,KACZx8C,EAAAk7C,WAGAl7C,EAAAsoD,IAAK3K,iBAAkB,KAsPvB39C,EAAG47C,gBACH57C,EAAGsoD,IAAIzK,oBAAsB,KAC7B79C,EAAGo8C,mBACHp8C,EAAGsoD,IAAIzJ,iBArPkB,KAsPzB7+C,EAAGw9C,gBACHx9C,EAAGi+C,iBAAmB,KACtBj+C,EAAGsoD,IAAIupD,aAAe,KApP1B7xG,EAAOm+C,YAsPHn+C,EAAGs2H,yBAAyBC,0BAC5Bv2H,EAAGs2H,yBAAyBE,4BAC5Bx2H,EAAGs2H,yBAAyBG,6BAC5Bz2H,EAAGs2H,yBAAyBI,8BAC5B12H,EAAG22H,kBAAkBC,mBApPxB52H,EAAA22H,kBAAAE,qBACT72H,EAAA22H,kBAAAG,sBAsPY92H,EAAG22H,kBAAkBI,uBApN7B,QAAGj6E,GAAahnD,EAAAugB,EAAA0mC,GACb,GAAA1mC,GAAYvgB,GAAAinD,EAAA,CACZ,GAAA9hD,IAuPSnF,UAAWA,EArPpBugB,UAAeA,EACN2mC,MAAAD,EACTE,aAAW,EAEXj9C,GAAMsoD,IAAA3K,iBAAA,KACN39C,EAAA47C,gBACA57C,EAAMsoD,IAAAzK,oBAAA,KACN79C,EAAAo8C,mBACAp8C,EAAAsoD,IAAAzJ,iBAAoB,KACnB7+C,EAAAw9C,gBACAx9C,EAAAi+C,iBAAmB,KACnBj+C,EAAAsoD,IAAAupD,aAAoB,KACpB7xG,EAAAm+C,YAuPIn+C,EAAGs2H,yBAAyBC,0BArPjCv2H,EAAAs2H,yBAA2BE,4BAC1Bx2H,EAAAs2H,yBAAwBG,6BACxBz2H,EAAAs2H,yBAA0BI,8BAC1B12H,EAAA22H,kBAAAC,mBACA52H,EAAA22H,kBAAAE,qBAuPI72H,EAAG22H,kBAAkBG,sBArP1B92H,EAAA22H,kBAAsBI,uBAuPjBr8E,EAAmBwC,sBAAsBjiD,GAAKwD,KAAK,SAAUC,GArPlD,MAAhBA,EAAgBlI,QAChBwJ,EAAA47C,aAAuBl9C,EAAAhJ,MACvBsK,EAAA47C,aAA2BzgD,OAAA,GAC3Bd,EAAA8C,OAA2B,UAAA,qDAC3B9F,WAAA,EACA+F,KAAA,OAGA4C,EAAAsS,WAAkB,GAETjY,EAAAwH,MAAA,QAAA,yBAAA,mBAET,SAAWlB,GACHtG,EAAAwH,MAAU,QAAA,mBAAA,wBAIrB7B,GAAAsoD,IAAA3K,iBAAA,KACA39C,EAAA47C,gBAuPQ57C,EAAGsoD,IAAIzK,oBAAsB,KAC7B79C,EAAGo8C,mBArPXp8C,EAASsoD,IAAAzJ,iBAAO,KACT7+C,EAAAw9C,gBACCx9C,EAAAi+C,iBAAc,KACdj+C,EAAAsoD,IAAMupD,aAAA,KACP7xG,EAAAm+C,YACCn+C,EAAAs2H,yBAAcC,0BACdv2H,EAAAs2H,yBAAME,4BAuPNx2H,EAAGs2H,yBAAyBG,6BArPhCz2H,EAAAs2H,yBAAeI,8BACX12H,EAAA22H,kBAAmBC,mBAuPnB52H,EAAG22H,kBAtPkBE,qBAuPrB72H,EAAG22H,kBAtPgBG,sBAuPnB92H,EAAG22H,kBAAkBI,uBAK7B,QAAS35E,GAAyBtnD,EAAWomD,GACzC,GAAIpmD,GAAaomD,EAAY,CACzB,GAAIjhD,IArPTnF,UAAcA,EAuPLomD,WAAYA,EACZe,aAAa,EApPjBj9C,GAAGsoD,IAAAzK,oBAAkB,KACvB79C,EAAAo8C,mBACEp8C,EAAAsoD,IAAAzJ,iBAAe,KAuPf7+C,EAAGw9C,gBACHx9C,EAAGi+C,iBAtPc,KAuPjBj+C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAtPCm+C,YAuPDn+C,EAAGs2H,yBAAyBC,0BAC5Bv2H,EAAGs2H,yBAAyBE,4BArP5Bx2H,EAAGs2H,yBAAUG,6BAuPbz2H,EAAGs2H,yBAAyBI,8BAC5B12H,EAAG22H,kBAAkBC,mBACrB52H,EAAG22H,kBAAkBE,qBACrB72H,EAAG22H,kBAAkBG,sBACrB92H,EAAG22H,kBAAkBI,uBACrBr8E,EAAmB2C,yBAAyBpiD,GAAKwD,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QArPXwJ,EAAAo8C,gBAAoB19C,EAAWhJ,MACrBsK,EAAAo8C,gBAAAjhD,OAAA,GACJd,EAAA8C,OAAkB,UAAA,0DACtB9F,WAAc,EACV+F,KAAc,OAIlB4C,EAAAsS,WAAe,GAEfjY,EAAAwH,MAAkB,QAAA,yBAAA,mBAElB,SAAAlB,GACAtG,EAAAwH,MAAA,QAAmB,mBAAA,wBAItB7B,GAAGsoD,IAAAzK,oBAAyB,KAC5B79C,EAAGo8C,mBACHp8C,EAAGsoD,IAAAzJ,iBAAA,KACH7+C,EAAGw9C,gBACHx9C,EAAGi+C,iBAAkB,KACrBj+C,EAAGsoD,IAAAupD,aAAkB,KACrB7xG,EAAGm+C,YACHn+C,EAAAs2H,yBAAuBC,0BAuPvBv2H,EAAGs2H,yBAtPyBE,4BAuP5Bx2H,EAAGs2H,yBAtPsBG,6BAuPzBz2H,EAAGs2H,yBAtPyBI,8BAuP5B12H,EAAG22H,kBAtPiBC,mBAuPpB52H,EAAG22H,kBAtPaE,qBAuPhB72H,EAAG22H,kBAtPaG,sBAuPhB92H,EAAG22H,kBAAkBI,uBAK7B,QAASz5E,GAtPqBxnD,EAASomD,EAAArqB,GAuPnC,GAAI/7B,GAAaomD,GAAcrqB,EAAe,CAC1C,GAtPG52B,IACCnF,UAAQA,EAuPRomD,WAAYA,EArPbrqB,cAAAA,EACAorB,aAAI,EAEPj9C,GAAGsoD,IAAIzJ,iBAAc,KACrB7+C,EAAGw9C,gBAuPHx9C,EAAGi+C,iBAAmB,KACtBj+C,EAAGsoD,IAAIupD,aAAe,KArPtB7xG,EAAGm+C,YACHn+C,EAAGs2H,yBAAeC,0BAClBv2H,EAAGs2H,yBAAIE,4BACPx2H,EAAGs2H,yBAAkBG,6BACrBz2H,EAAGs2H,yBAAuBI,8BAC1B12H,EAAG22H,kBAAeC,mBAClB52H,EAAG22H,kBAAAE,qBACH72H,EAAG22H,kBAAIG,sBACP92H,EAAG22H,kBAAWI,uBACdr8E,EAAG6C,0BAAyBtiD,GAAAwD,KAAyB,SAAAC,GAClD,MAAAA,EAAAlI,QACAwJ,EAAAw9C,aAAA9+C,EAAyBhJ,MACzBsK,EAAAo8C,gBAAyBjhD,OAAA,GACzBd,EAAA8C,OAAkB,UAAA,+DAClB9F,WAAkB,EAClB+F,KAAkB,OAyPb4C,EAAGsS,WAAY,GApPtBjY,EAAcwH,MAAO,QAAA,yBAAA,mBAEnB,SAAIlB,GACJtG,EAAAwH,MAAU,QAAA,mBAAA,wBAIb7B,GAAGsoD,IAAAzJ,iBAAe,KAClB7+C,EAAGw9C,gBACHx9C,EAAGi+C,iBAAkB,KACrBj+C,EAAGsoD,IAAIupD,aAAA,KACP7xG,EAAGm+C,YACHn+C,EAAGs2H,yBAAmBC,0BACtBv2H,EAAGs2H,yBAAmBE,4BACtBx2H,EAAGs2H,yBAAWG,6BACdz2H,EAAGs2H,yBAAyBI,8BAC5B12H,EAAG22H,kBAAAC,mBACH52H,EAAG22H,kBAAAE,qBACH72H,EAAG22H,kBAAAG,sBACH92H,EAAG22H,kBAAkBI,uBA0P7B,QAtPQp4E,KAuPJ,GAtPuBhpD,QAAnBqK,EAAAi+C,iBAAmB,CAuPnB,GAtPIhjD,IAuPAob,UAtPOrW,EAAAsoD,IAAUzmC,gBAAIxL,UAuPrBvgB,UAtPOkK,EAAAsoD,IAAAzmC,gBAAY/rB,UAuPnB4nD,cAtPO19C,EAAAsoD,IAAA3K,iBAAAzB,WAuPP0B,iBAtPe59C,EAAAsoD,IAAAzK,oBAAqBhsB,cAuPpCisB,WAAY99C,EAAGsoD,IAAIzJ,iBAAiB7+B,OArPrC++B,SAAU/+C,EAAAi+C,iBAAK51B,KACd40B,aAAW,EAwPfj9C,GAAGsoD,IAAIupD,aAAe,KACtB7xG,EAtPCm+C,YACDn+C,EAAGs2H,yBAAkBC,0BACrBv2H,EAAGs2H,yBAAUE,4BAuPbx2H,EAAGs2H,yBAAyBG,6BAC5Bz2H,EAAGs2H,yBAAyBI,8BArP5B12H,EAAG22H,kBAAIC,mBACP52H,EAAG22H,kBAAeE,qBAClB72H,EAAG22H,kBAAIG,sBACP92H,EAAG22H,kBAAkBI,uBACrBv8E,EAAO0D,kBAAmBjjD,GAAAwD,KAAA,SAAAC,GACR,MAAfA,EAAAlI,QACAwJ,EAAAm+C,SAAmBz/C,EAAAhJ,MACfsK,EAAAm+C,SAAehjD,OAAA,GACnBd,EAAW8C,OAAA,UAAA,iDACX9F,WAAA,EACA+F,KAAA,OAEA4C,EAAA6lD,cAAyB,GAEzB7lD,EAAA6lD,cAAkB,GAyPb9tD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,UAGbX,GAAGsoD,IAAIupD,gBACP7xG,EAAGm+C,YACHn+C,EAAGs2H,yBAAyBC,0BAC5Bv2H,EAAGs2H,yBAAyBE,4BAC5Bx2H,EAAGs2H,yBAAyBG,6BAC5Bz2H,EAAGs2H,yBAAyBI,8BAC5B12H,EAAG22H,kBAAkBC,mBACrB52H,EAAG22H,kBAAkBE,qBACrB72H,EAAG22H,kBAAkBG,sBACrB92H,EAAG22H,kBAAkBI,uBAI7B,QAASC,GAAuBz4H,GAC5B,GAAItD,IACAnF,UAAWkK,EAAGsoD,IAAIzmC,gBAAgB/rB,UAClCmhC,QAASj3B,EAAGsoD,IAAIupD,aAAa94F,GAEjC8gE,GAAuBS,0BAA0Br/E,GAAKwD,KAAK,SAAUC,GACjE,GAAmB,MAAfA,EAAIlI,OAAgB,CAGpB,GADAwJ,EAAGs2H,yBAA2B53H,EAAIhJ,KAC9BsK,EAAGs2H,yBAAyBn7H,OAAS,EACrC,IAAK,GAAID,KAAK8E,GAAG22H,kBACb32H,EAAGs2H,yBAAyBp7H,GAAG+7H,aAAet6H,KAAKC,MAAMoD,EAAG22H,kBAAkBz7H,GAAGg8H,QAGrF34H,IArPPA,QAEGxG,GAAM2I,YAAA,QAAA,mCAAA,WAwPX,SAtPKC,MA0PZ,QAtPQw2H,GAAOp+G,GAyPXi9G,EAtPOoB,2BAAkBr+G,GAAAta,KAAA,SAAAC,GACd,MAAJA,EAAIlI,OACJkI,EAAAhJ,KAAekhI,gBAAAz7H,OAAA,GAAAuD,EAAAhJ,KAAAmhI,kBAAA17H,OAAA,GACfuD,EAAAhJ,KAAAohI,mBAAmB37H,OAAA,GAAAuD,EAAAhJ,KAAAqhI,oBAAA57H,OAAA,EAEnB6E,EAAWs2H,yBAAAC,uBAAAp7H,OAAA,GAAA6E,EAAAs2H,yBAAAE,yBAAAr7H,OAAA,GACX6E,EAAAs2H,yBAAyBG,0BAAyBt7H,OAAA,GAAA6E,EAAAs2H,yBAAAI,2BAAAv7H,OAAA,EAElDd,EAAA8C,OAAA,UACA,sKACA9F,WAAkB,EAAA+F,KAAkB,OAGpC4C,EAAA22H,kBAAkBj4H,EAAAhJ,KAIb2E,EAAQ8C,OAAA,UAAa,mCAAY9F,WAAA,EAAA+F,KAAA,OA2PrCrF,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,MAGjB,QAAS02H,GAtPiBt+G,GAyPtB,GAAI9d,IACAg8B,QAtPGle,EACHjjB,UAAOkK,EAAAsoD,IAAAzmC,gBAAmB/rB,UAC1BsK,SAAGF,EAAeG,OAwPtB21H,GAtPOqB,iCAAkBp8H,GAAAwD,KAAA,SAAAC,GACd,MAAJA,EAAIlI,QAEJuB,EAAA2I,YAAmB,UAAA,uDAAA,SACnBy2H,EAAIp+G,IAGJhhB,EAAA2I,YAAA,QAAyB,mCAA2B,WAwPxD,SAtPIC,MAgdX,QAAS88C,KACL,GAtPsC9nD,QAsPlCqK,EAAGs3H,SAtPKC,qBAA0B,CAuPlCv3H,EAAGs3H,SAASzlB,aAAe,KAC3B7xG,EAAGk8G,WACHl8G,EAAGs3H,SAASE,sBAAwB,EACpC,IAAIv8H,IArPAugH,mBAAWx7G,EAAYs3H,SAASjc,yBAAAG,mBAuPhCM,sBAAuB97G,EAAGs3H,SAAS3b,4BAA4BG,sBArPpEO,eAAer8G,EAAAs3H,SAAAC,qBAAAlb,eAuPVt9D,SAAU/+C,EAAGi+C,iBAAiB51B,KApP1C4tG,GAASwB,UAAAx8H,GAAiCwD,KAAI,SAAAC,GAC1C,MAAAA,EAAAlI,OAuPYwJ,EAAGk8G,QAAUx9G,EAAIhJ,KApPzBqC,EAAS2I,YAAA,QAAA,mCAAA,WAET,SAAUC,MAEdX,EAAAs3H,SAAAzlB,aAAgB,KAuPhB7xG,EAAGk8G,WACHl8G,EAAGs3H,SAASE,sBAAwB,GAiBxC,QAtPQE,KAuPJxB,EAtPWyB,sBAA+B59H,EAAAhC,GAAA0G,KAAA,SAAAC,GACnB,MAAfA,EAAAlI,QAuPAwJ,EAAG43H,iBAtPYl5H,EAAAhJ,KAuPfsK,EAAGsS,WAtPO,GAwPVva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA6E5D,QAASm3H,GAAiDC,GACzBniI,QAAzBmiI,GACA93H,EAAG+3H,UAAUC,kBAAoB,KACjCh4H,EAAGi4H,4BACHj4H,EAAG+3H,UAAUl6E,oBAAsB,KACnC79C,EAAGk4H,qBACHl4H,EAAG+3H,UAAUI,sBAAwB,KArP1Cn4H,EAAAk+G,YAuPKl+G,EAAG+3H,UAAUK,qBAAuB,KArPpCp4H,EAAGq4H,WACHr4H,EAAG+3H,UAASO,uBAAA,GACZnC,EAA4B0B,iDAAAC,GAAAr5H,KAAA,SAAAC,GACzBsB,EAAA69C,oBAASloD,OACTqK,EAAA69C,oBAA0B,GAC1B79C,EAAAu4H,wBAAS5iI,OACTqK,EAAAu4H,wBAAmB,GACV,MAAT75H,EAASlI,SACTwJ,EAAAi4H,yBAAUv5H,EAAAhJ,KACDsK,EAAAi4H,yBAAwB98H,OAAA,GAChCd,EAAA8C,OAAiB,UAAA,0CAAA6C,EAAA+3H,UAAAC,mBACN3gI,WAAG,EACH+F,KAAO,OAEtB4C,EAAAw4H,mBAAwB,EACZx4H,EAAAizB,UAAW,EACZjzB,EAAAy9F,MAAA,EACHz9F,EAAAy4H,sBAA8B,IAE1Bz4H,EAAGw4H,mBAAiB,EAwPxBx4H,EAAGsS,WAtPI,OA4PftS,EAAG+3H,UAAUC,kBAtPS,KAuPtBh4H,EAAGi4H,4BACHj4H,EAAG+3H,UAAUl6E,oBAAsB,KACnC79C,EAAGk4H,qBACHl4H,EAAG+3H,UAAUI,sBAAwB,KACrCn4H,EAAGk+G,YACHl+G,EAAG+3H,UAtPKK,qBAAuB,KAuP/Bp4H,EAAGq4H,WACHr4H,EAAG+3H,UAAUO,uBAAyB,IAK9C,QAtPQI,GAA6B9a,EAAAr/G,GACjB5I,QAAZioH,GACA59G,EAAG+3H,UAAAl6E,oBAAmB,KACtB79C,EAAGk4H,qBACHl4H,EAAG+3H,UAAUI,sBAAA,KACbn4H,EAAGk+G,YAuPHl+G,EAAG+3H,UAAUK,qBAAuB,KACpCp4H,EAAGq4H,WACHr4H,EAAG+3H,UAAUO,uBAAyB,GACtCjC,EAAqBsC,yBAAyB/a,GAAmBn/G,KAAK,SAAUC,GArPrF,MAAAA,EAAAlI,SACKwJ,EAAAk4H,kBAAsBx5H,EAAWhJ,KACrBsK,EAAAk4H,kBAAA/8H,OAA8B,GACvCd,EAAA8C,OAAA,UAA0B,mCAAA6C,EAAA+3H,UAAAl6E,qBACjBxmD,WAAA,EACT+F,KAAmB,OAEnB4C,EAAUizB,UAAA,EACDjzB,EAAAy9F,MAAA,IAEAz9F,EAAAizB,UAAW,EACZjzB,EAAAy9F,MAAA,GAwPHz9F,EAAGsS,WAAY,EArPZ/T,GACHA,SA2PRyB,EAAG+3H,UAAUl6E,oBAAsB,KACnC79C,EAtPCk4H,qBACDl4H,EAAG+3H,UAASI,sBAAA,KACZn4H,EAAGk+G,YACHl+G,EAAG+3H,UAASK,qBAAuB,KACnCp4H,EAAGq4H,WACHr4H,EAAG+3H,UAASO,uBAAe,IAqSnC,QAASM,KACL54H,EAAGq4H,QAtPCr4H,EAAA+3H,UAAsBI,sBAAoBE,QAAUQ,QAuPxD74H,EAAG+3H,UAtPSK,qBAAoB,KAuPhCp4H,EAAG+3H,UAtPSO,uBAAiB,GAqXjC,QAASj8E,GAtP2BxqB,GACjBl8B,SAsPXk8B,GACAmpB,EAtPesB,2BAAyBzqB,GAAYpzB,KAAA,SAAAC,GAChC,MAsPZA,EAtPIlI,SAuPJwJ,EAAGu8C,aAtPK79C,EAAWhJ,KAuPnBsK,EAAGsS,WAtPW,KA0P1BtS,EAAG6+C,iBAtPgB,KAsXvB,QAASi6E,KACL,GAAI79H,IACAnF,UAAWkK,EAAGsoD,IAAIzmC,gBAAgB/rB,UArPvCmhC,QAAAj3B,EAAAsoD,IAAAupD,aAA8B94F,GAwP7B8gE,GAtPWU,yBAAsBt/E,GAAAwD,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,QACAwJ,EAAIs2H,yBAAAC,uBAA0B73H,EAAAhJ,KAC9BsK,EAAAsS,WAAO,GAENva,EAAQ2I,YAAW,QAAK,yBAAA,YAwP7B,SAtPSC,GAuPR5I,EAAW2I,YAtPS,QAAO,mBAAW,aA4P9C,QAASq4H,KACL,GAAI99H,IACAnF,UAAWkK,EAAGsoD,IAAIzmC,gBAAgB/rB,UAClCmhC,QAtPCj3B,EAAAsoD,IAAAupD,aAAA94F,GAwPL8gE,GAtPOW,2BAAyBv/E,GAAAwD,KAAA,SAAAC,GACrB,MAAJA,EAAIlI,QAuPHwJ,EAAGs2H,yBAAyBE,yBAA2B93H,EAAIhJ,KAC3DsK,EAAGsS,WAAY,GAGfva,EAAW2I,YAAY,QAAS,yBAA0B,YAnP/D,SAAOC,GACP5I,EAAA2I,YAAiB,QAAA,mBAAA,aA4PxB,QAASs4H,KACL,GAAI/9H,IArPLnF,UAAAkK,EAAiBsoD,IAAAzmC,gBAAY/rB,UACxBmhC,QAAAj3B,EAAAsoD,IAAAupD,aAAuB94F,GAE3B8gE,GAAYY,4BAA2Bx/E,GAAAwD,KAAA,SAAAC,GACpC,MAAAA,EAAAlI,OACAwJ,EAAAs2H,yBAASG,0BAA8B/3H,EAAAhJ,KAEvCqC,EAAS2I,YAAA,QAAuB,yBAAA,YAEhC,SAASC,GACT5I,EAAU2I,YAAA,QAAA,mBAAA,aA6PjB,QAASu4H,KArPN,GAAAh+H,IACInF,UAAIkK,EAAAsoD,IAAAzmC,gBAAuB/rB,UAuP1BmhC,QAASj3B,EAAGsoD,IAAIupD,aAAa94F,GApPjC8gE,GAAGa,6BAAwBz/E,GAAAwD,KAAA,SAAAC,GACd,MAAVA,EAAAlI,QACAwJ,EAAAs2H,yBAA2BI,2BAAAh4H,EAAAhJ,KAC3BsK,EAAAsS,WAAU,GAEVva,EAAU2I,YAAA,QAAwB,yBAAA,YAElC,SAAUC,GACV5I,EAAU2I,YAAA,QAAA,mBAAA,aAlnCjB,GAAIV,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAGk5H,SAAU,EACbl5H,EAAGm5H,OAAQ,EACXn5H,EAAGo5H,OAAQ,EACXp5H,EAAGq5H,YAAa,EAChBr5H,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EAEftS,EAAGu8C,gBACHv8C,EAAG/C,UACH+C,EAAGs3H,YACHt3H,EAAGk2E,UACHl2E,EAAGsoD,OACHtoD,EAAG+3H,aACH/3H,EAAG+/C,OACH//C,EAAGs5H,aAAc,EACjBt5H,EAAG22H,mBACCC,mBACAC,qBACAC,sBACAC,wBAEJ/2H,EAAGs2H,0BACCC,0BACAC,4BACAC,6BACAC,+BAEJ12H,EAAGyhB,oBAAsBA,EAEzBzhB,EAAGkyG,cAAgBA,EACnBlyG,EAAG88C,qBAAuBA,EAC1B98C,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGs9C,yBArP2BA,EAsP9Bt9C,EAAG63H,iDAAmDA,EACtD73H,EAAG04H,6CArPuCA,EAsP1C14H,EAAGy9C,aAAeA,EAClBz9C,EAAGg3H,uBArPyBA,EAsP5Bh3H,EAAGm3H,gBAAkBA,EACrBn3H,EAAGq3H,iCArPmCA,EAsPtCr3H,EAAG44H,OAASA,EACZ54H,EAAG2+C,QAAUA,EACb3+C,EAAGm+C,YACHpmD,EAAW2c,SAAU,CACrB,IAAIumB,GAAY9gC,EArPmBgG,uBAAuBwU,gBAASxC,UAsP/DjS,EAAa/F,EAAsBgG,sBAEvC+R,KACAwlH,IAuBA13H,EAAGu5H,YAAc,WAGRv5H,EAAG22H,kBAAkBC,gBAAgBz7H,OAAS,GAAK6E,EAAG22H,kBAAkBE,kBAAkB17H,OAAS,GACpG6E,EAAG22H,kBAAkBG,mBAAmB37H,OAAS,GAAK6E,EAAG22H,kBAAkBI,oBAAoB57H,OAAS,EAExGd,EAAQ8C,OAAO,UACX,kLACE9F,WArPK,EAAA+F,KAAA,OA0PX4C,EAAGk5H,SAAU,GA2drBrjD,EAAsBG,0BAA0Bv3E,KAAK,SAAUC,GArPtD,MAATA,EAASlI,SACDwJ,EAAAw5H,mBAAa96H,EAAYhJ,KACrBsK,EAAAw5H,mBAAMr+H,OAAA,GACNd,EAAA8C,OAAW,UAAA,kCAAA6C,EAAAjC,KAAA07H,uBAAAC,gBACXriI,WAAY,EACZ+F,KAAA,OAGJ4C,EAAGsS,WAAA,KA0PXtS,EAAGw2E,gCAtP2B,SAAAmjD,GACRhkI,QAAdgkI,GACA35H,EAAG45H,kBACH55H,EAAGk2E,OAAA2jD,mBAAyB,KAC5B75H,EAAGk2E,OAAA4jD,mBAAyB,GAC5BvjD,EAAGC,gCAAyBmjD,GAA6Bl7H,KAAA,SAAAC,GACpC,MAAlBA,EAAAlI,QACAwJ,EAAA45H,eAAkBl7H,EAAAhJ,KAClBsK,EAAA45H,eAAkBz+H,OAAA,GAClBd,EAAA8C,OAAkB,UAAA,kCAAsB6C,EAAAjC,KAAA87H,oBAC3CxiI,WAAmB,EACP+F,KAAA,OAyPJ4C,EAAGsS,WAtPS,GAwPZva,EAtPQ2I,YAAM,QAAA,iCAuPVrJ,WAAW,EACX+F,KAAM,QAGf,SAtPQuD,GACW,MAAdA,EAAAnK,OAuPA6D,EAAQ8C,OAAO,QAAS,iBArP7B9F,WAAe,EACN+F,KAAM,OAGfrF,EAAA2I,YAAA,QAAA,iCACIrJ,WAAA,EACJ+F,KAAA,WAMH4C,EAAG45H,kBACH55H,EAAGk2E,OAAA2jD,mBAAyB,KAC5B75H,EAAGk2E,OAAA4jD,mBAAyB,KA4PpC95H,EAAG+5H,sBACCC,oBAAqB,UACrB3xG,KAAM,MApPV2xG,oBAAS,WACL3xG,KAAI,MAyPRstG,EAtPYsE,uBAAYx7H,KAAA,SAAAC,GACZ,MAsPJA,EAtPIlI,SAuPJwJ,EAAGk6H,gBAtPcx7H,EAAAhJ,KAuPjBsK,EAAGsS,WAAY,EArPZtS,EAAIk6H,gBAAA/+H,OAAmB,GACvBd,EAAA8C,OAAe,UAAA,kCAAA6C,EAAAm6H,oBAAAC;AACf/iI,WAAA,EACI+F,KAAA,OAGP4C,EAAGsS,WAAA,KA0QXtS,EAAGq5G,sBAtPuB,WAwPtB,GAA8B1jH,QAA1BqK,EAAGm6H,oBAAkC,CACrCn6H,EAAGs3H,SAASjc,yBAA2B,KACvCr7G,EAtPGq6H,0BACHr6H,EAAGs3H,SAAI3b,4BAAmB,KAC1B37G,EAAGs6H,2BACHt6H,EAAGs3H,SAAAC,qBAAmB,KACtBv3H,EAAGu6H,oBACHv6H,EAAGs3H,SAAAzlB,aAAW,KACd7xG,EAAGk8G,WACHl8G,EAAGs3H,SAAAE,sBAAyB,EAC5B,IAAGgD,IACAC,UAAAz6H,EAAAm6H,oBAAyBC,YAAAK,UACzBpkH,UAAArW,EAAAsoD,IAAkBzmC,gBAAAxL,UAErBu/G,GAAqB8E,4BAAqBF,GAAA/7H,KAAA,SAAAC,GACrB,MAAlBA,EAAAlI,QAuPKwJ,EAAGq6H,uBAAyB37H,EAAIhJ,KAChCy8B,QAAQC,IAAIz1B,KAAKqkB,UAAUhhB,EAAGq6H,yBAC1B37H,EAAIhJ,KAAKyF,OAAS,EArPnB6E,EAAA26H,gBAAA,GAED36H,EAAA26H,gBAAA,EACN36H,EAAW46H,mBAAO,EAClB56H,EAAW66H,YAAO,EAElBxgI,EAAA8C,OAAqB,UAAI,uBACb9F,WAAO,EACT+F,KAAG,QAGV4C,EAAAsS,WAAe,GAGnBjY,EAAAwH,MAAA,QAAyB,yBAA2B,8BAIvD7B,GAAGs3H,SAAAjc,yBAAkB,KACrBr7G,EAAGq6H,0BACHr6H,EAAGs3H,SAAA3b,4BAAkB,KACrB37G,EAAAs6H,2BAuPAt6H,EAAGs3H,SAtPSC,qBAAgB,KAuP5Bv3H,EAAGu6H,oBACHv6H,EAAGs3H,SAtPSzlB,aAAa,KAuPzB7xG,EAAGk8G,WACHl8G,EAAGs3H,SAASE,sBAtPe,IA2PnCx3H,EAAG86H,8BAtPoB,SAAetf,GAuPR7lH,QAAtB6lH,GACAx7G,EAAGs3H,SAtPQ3b,4BAAA,KAuPX37G,EAAGs6H,2BACHt6H,EAAGs3H,SAASC,qBAAuB,KACnCv3H,EAtPGu6H,oBAuPHv6H,EAAGs3H,SAASzlB,aAAe,KAC3B7xG,EAtPCk8G,WACDl8G,EAAGs3H,SAAIE,sBAAe,GACtB3B,EAAckF,2CAAAvf,GAAA/8G,KAAA,SAAAC,GACX,MAAAA,EAAAlI,QACAwJ,EAAAs6H,wBAAyB57H,EAAAhJ,KACzBsK,EAAAsS,WAAA,GAGAjY,EAAAwH,MAAkB,QAAA,yBAAoB,wBAEtC,SAAAlB,GAuPCtG,EAAQwH,MAAM,QAAS,mBAAoB,2BAlP/C7B,EAAAs3H,SAAM3b,4BAAA,KACN37G,EAAAs6H,2BACAt6H,EAAAs3H,SAAYC,qBAAiB,KAuP7Bv3H,EAAGu6H,oBArPPv6H,EAAAs3H,SAAAzlB,aAAuB,KACnB7xG,EAAAk8G,WAuPAl8G,EAAGs3H,SAASE,sBAAwB,KAM5Cx3H,EAAGg7H,0BAA4B,SAAUlf,GArPzBnmH,QAsPRmmH,GACA97G,EAAGs3H,SAtPKC,qBAAA,KAuPRv3H,EAAGu6H,oBACHv6H,EAAGs3H,SAtPCzlB,aAAuB,KAuP3B7xG,EAAGk8G,WArPJl8G,EAAAs3H,SAAUE,sBAAK,GAuPd1B,EAAoBmF,uCAAuCnf,GAAuBr9G,KAAK,SAAUC,GAC1E,MAAfA,EAAIlI,QACJwJ,EAAGu6H,iBAAmB77H,EAAIhJ,KArPjCsK,EAAAsS,WAAoB,GAGzBjY,EAAgBwH,MAAA,QAAA,yBAAoC,iBAwP7C,SAtPUlB,GAuPTtG,EAtPQwH,MAAK,QAAA,mBAA4B,oBA0P7C7B,EAAGs3H,SAtPOC,qBAAA,KAuPVv3H,EAAGu6H,oBACHv6H,EAAGs3H,SAASzlB,aAtPI,KAuPhB7xG,EAAGk8G,WACHl8G,EAAGs3H,SAASE,sBAAwB,KAgC5Cx3H,EAAGk7H,IAAM,WACLl7H,EAtPGm7H,qBAAe1kH,gBAAA,GAuPlBzW,EAAGo7H,YAAYC,iCAAmC,GAClDr7H,EAAGo7H,YAAYE,8BAAgC,GAC/Ct7H,EAAGo7H,YAAY3C,sBAAwB,GACvCz4H,EAAGs5G,yBACHt5G,EAAGy9F,MAAO,GAmCdz9F,EAAGs5G,uBAAyB,WAExB,GAtPsB3jH,QAsPlBqK,EAtPG+/C,IAAAw7E,qBAAe,CAuPlBv7H,EAAG+3H,UAtPSyD,0BAAgB,KAuP5Bx7H,EAAGy7H,yBACHz7H,EAAG+3H,UAtPSC,kBAAW,KAuPvBh4H,EAAGi4H,4BACHj4H,EAAG+3H,UAAUl6E,oBAAsB,KACnC79C,EAAGk4H,qBACHl4H,EAAG+3H,UAtPKI,sBAAuB,KAuP/Bn4H,EAAGk+G,YACHl+G,EAAG+3H,UAtPSK,qBAAM,KAuPlBp4H,EAAGq4H,WACHr4H,EAAG+3H,UAAUO,uBAAyB,EACtC,IAAIkC,IACAkB,WAAY17H,EAAG+/C,IAAIw7E,qBAAqBG,WArP3CrlH,UAAArW,EAAAsoD,IAAAzmC,gBAAAxL,UAED8/G,GAAUwF,iBAAqBnB,GAAA/7H,KAAA,SAAAC,GACrB,MAAPA,EAAOlI,QAuPFwJ,EAAGy7H,sBAAwB/8H,EAAIhJ,KAC3BgJ,EAAIhJ,KAAKyF,OAAS,EAClB6E,EAAG26H,gBAAiB,GAEpB36H,EAAG26H,gBAAiB,EArPrC36H,EAAAw4H,mBAAuB,EACtBx4H,EAAAizB,UAAqB,EACfjzB,EAAAy9F,MAAA,EACPpjG,EAAA8C,OAAA,UAAA,uBACC9F,WAAqB,EACf+F,KAAA,QAGV4C,EAAmBsS,WAAA,GAERva,EAAA2I,YAAsB,QAAA,yBAAA,uBAEzB,SAAOC,GACH5I,EAAQ2I,YAAO,QAAW,mBAAA,4BA0P9BV,GAAG+3H,UAAUyD,0BAA4B,KArPzCx7H,EAAGy7H,yBAuPHz7H,EAAG+3H,UAAUC,kBAAoB,KACjCh4H,EAAGi4H,4BACHj4H,EAAG+3H,UAAUl6E,oBAAsB,KACnC79C,EAAGk4H,qBACHl4H,EAAG+3H,UAAUI,sBAAwB,KACrCn4H,EAAGk+G,YACHl+G,EAAG+3H,UAAUK,qBAAuB,KACpCp4H,EAAGq4H,WACHr4H,EAAG+3H,UAAUO,uBAAyB,IA8F9Ct4H,EAAG+5H,sBACCC,oBAAqB,UACrB3xG,KAAM,MApPN2xG,oBAAI,WAuPJ3xG,KAtPI,MAyPRroB,EAAG47H,iBAtPkB,WAuPjB,GAtPwCjmI,QAApCqK,EAAG+3H,UAASl6E,oBAAwB,CACpC79C,EAAA+3H,UAAAI,sBAAoB,KAuPpBn4H,EAAGk+G,YACHl+G,EAAG+3H,UAtPQK,qBAAuB,KAuPlCp4H,EAAGq4H,WACHr4H,EAAG+3H,UAAUO,uBAAyB,EACtC,IAAIr9H,IACAqiH,OAtPIt9G,EAAA+3H,UAAcyD,0BAAS1D,sBAuP3Bla,kBAAmB59G,EAAG+3H,UAAUC,kBAAkBpa,kBArPnDK,WAAUj+G,EAAK+3H,UAAAl6E,oBAAAogE,WACdl/D,SAAQ/+C,EAAAi+C,iBAAe51B,KAwP3B+tG,GAAmByF,kBAAkB5gI,GAAKwD,KAAK,SAAUC,GArPxD,GAAA,MAAAA,EAAAlI,OAAA,CACEwJ,EAAAk+G,SAASx/G,EAAAhJ,IACT,KAAA,GAAAwF,KAAmB8E,GAAAk+G,SACVl+G,EAAAk+G,SAAAhjH,GAAem9H,QAAA17H,KAAAC,MAAAoD,EAAAk+G,SAAAhjH,GAAAm9H,aAyPnBtgI,GAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,UAnPbX,GAAG+3H,UAASI,sBAAwB,KACpCn4H,EAAGk+G,YACHl+G,EAAG+3H,UAAUK,qBAAA,KACbp4H,EAAGq4H,WACHr4H,EAAA+3H,UAAUO,uBAAA,IAoQlBlwD,EAtPgBG,8BAAe9pE,KAAA,SAAAC,GACd,MAAVA,EAAAlI,SACAwJ,EAAA87H,uBAASp9H,EAAwBhJ,KAuP5BsK,EAAG87H,uBAAuB3gI,OAAS,GACnCd,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAGjC,KAAKygH,2BAA2Bud,oBAC7F1kI,WAAW,EACX+F,KAAM,OAnPf4C,EAAAsS,WAAA,KA4PPtS,EAAGypF,4BAA8B,SAAUg1B,GACX9oH,QAAxB8oH,GACAz+G,EAAGsoD,IAAI0zE,oBAAsB,KAC7Bh8H,EAAGi8H,0BArPXj8H,EAASsoD,IAAA4zE,wBAAU,GACfl8H,EAAAs2B,KAAA,KACI2yD,EAAwBO,wBAAAi1B,GAAAhgH,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,SACAwJ,EAAAi8H,uBAAYv9H,EAAAhJ,KACZsK,EAAAi8H,uBAAA9gI,OAAA,GACHd,EAAW8C,OAAY,UAAS,qCAA0B6C,EAAAsoD,IAAA0zE,oBAAAG,cAuP9C9kI,WAAW,EArPb+F,KAAA,OAyPN4C,EAAGsS,WAAY,OAKvBtS,EAAGsoD,IAAI0zE,oBAAsB,KAC7Bh8H,EAAGi8H,0BACHj8H,EAAGsoD,IAAI4zE,wBAA0B,KAMzCl8H,EAAGo8H,YAAc,WACbp8H,EAAGk2E,OAAOujD,uBAAyB,KACnCz5H,EAAGk2E,OAAO2jD,mBAAqB,KAC/B75H,EAAG45H,kBACH55H,EAAGk2E,OAAO4jD,mBAAqB,IAGnC95H,EAAGq8H,aAAe,WArPdr8H,EAAAk2E,OAAO4jD,mBAAI,IAyPf95H,EAAGs8H,eAtPQ,WACA3mI,QAsPNqK,EAtPGm6H,oBAA8Bn6H,EAAAm6H,oBAAAC,YAAA,KAAA,GAwPlCp6H,EAAGs3H,SAtPIjc,yBAAoB,KAuP3Br7G,EAAGq6H,0BACHr6H,EAAGs3H,SAtPI3b,4BAAW,KAuPlB37G,EAAGs6H,2BACHt6H,EAAGs3H,SAtPIC,qBAAU,KAuPjBv3H,EAAGu6H,oBACHv6H,EAAGs3H,SAtPKzlB,aAAiB,KAuPzB7xG,EAAGk8G,WACHl8G,EAAGs3H,SAtPKE,sBAAkB,IAyP9Bx3H,EAAGu8H,gBAtPiB,WAuPhBv8H,EAAGs3H,SAtPSE,sBAAG,IAyPnBx3H,EAAGw8H,gBAAkB,WACjBx8H,EAAG+/C,IAAIw7E,qBAtPY,KAwPnBv7H,EAAG+3H,UAAUyD,0BAtPiB,KAuP9Bx7H,EAAGy7H,yBACHz7H,EAAG+3H,UAAUC,kBAtPkB,KAuP/Bh4H,EAAGi4H,4BACHj4H,EAAG+3H,UAAUl6E,oBAtPa,KAuP1B79C,EAAGk4H,qBACHl4H,EAAG+3H,UAAUI,sBAAwB,KACrCn4H,EAAGk+G,YACHl+G,EAAG+3H,UAAUK,qBAtPE,KAuPfp4H,EAAGq4H,WACHr4H,EAAG+3H,UAAUO,uBAAyB,IAG1Ct4H,EAAGy8H,iBAAmB,WAClBz8H,EAAG+3H,UAAUO,uBAAyB,IAG1Ct4H,EAAG08H,iBAtPQ,WAuPP18H,EAAGsoD,IAtPIk2D,2BAAU,KAuPjBx+G,EAAGsoD,IAtPI0zE,oBAAA,KAuPPh8H,EAAGi8H,0BACHj8H,EAAGsoD,IAtPI4zE,wBAAoB,GAuP3Bl8H,EAAGs2B,KAtPI,MAyPXt2B,EAAG28H,kBAtPkB,WACA,MAAb38H,EAAGsoD,IAAA0zE,oBAAUvnG,KAuPbz0B,EAAGs2B,KAAOt2B,EAAGsoD,IAAI0zE,oBAAoBvnG,KAAKlC,SAE1CvyB,EAAGs2B,KAAOt2B,EAAGsoD,IAAI0zE,oBAAoBY,IAAIzrC,KApP7CnxF,EAAAsoD,IAAI4zE,wBAAyB,IA6PjCl8H,EAAG68H,SAtPQ,WAuPP78H,EAAGgT,YAtPI,GAyPXhT,EAAG88H,UAtPY,WAuPX98H,EAAGgT,YAtPQ,GA0VfhT,EAAGgU,OAAS,WACRhU,EAAGgT,YAtPS,GAwPhBhT,EAAG0R,OAAS,WACR1R,EAAGgT,YAtPY,EAuPfhT,EAAGkU,YACHlU,EAAG40B,SAEP50B,EAAGkU,UAAY,WACXlU,EAAG+8H,aAtPE3oH,iBA0PTpU,EAAGg9H,SAtPQ,SAAUpoG,GAuPjB50B,EAAG+S,WAtPI,EAuPP/S,EAAGgT,YAAa,EAChBhT,EAAG40B,KAAOxgC,QAAQ8e,KAAK0hB,GACvB6pB,+BAA+B7pB,EAAKsnB,WAAY,WAC5C,IAAK,GAAIrkC,KAAK7X,GAAG47C,aArPhB57C,EAAS47C,aAAA/jC,GAAAqkC,aAAAtnB,EAAAsnB,aACXl8C,EAAU40B,KAAG+oB,iBAAU39C,EAAA47C,aAAsB/jC,GAyP5CwkC,GAA+BznB,EAAK/C,cAAe,WAC/C,IAAK,GAAIha,KAAK7X,GAAGo8C,gBACTp8C,EAAGo8C,gBAAgBvkC,GAAGga,gBAAkB+C,EAAK/C,gBAC7C7xB,EAAG40B,KAAKipB,oBAAsB79C,EAAGo8C,gBAAgBvkC,GAnPzD,KAAA,GAAAA,KAAW7X,GAAKu8C,aACjBv8C,EAAAu8C,aAAyB1kC,GAAAimC,aAAIlpB,EAAAkpB,aACzB99C,EAAA40B,KAAAiqB,iBAAgC7+C,EAAGu8C,aAAA1kC,SAqFlD7X,EAAGi9H,SAAA,SAAmBroG,GAClB50B,EAAGk9H,2BAAU,SAAyBv/E,GAuPlCA,EAAiBzB,WAAal8C,EAAG29C,iBAAiBzB,YApPvDtnB,EAAAsnB,WAAmBl8C,EAAA40B,KAAA+oB,iBAAYzB,WAC9BtnB,EAAG/C,cAAI7xB,EAAA40B,KAAAipB,oBAA6BhsB,cACpC+C,EAAGuoG,WAAIn9H,EAAA40B,KAAAwoG,iBAAsBD,WAC7BvoG,EAAGmqB,SAAA/+C,EAAA40B,KAAA6K,SAEAz/B,EAAA+S,WAgQCijH,EAAgBqH,SAASt/H,MAAMU,KAAK,SAAUC,GAC1C3G,EAAW2I,YAAY,UAAW,wBAAyB,SAC3DwR,IACAlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,GAChB,SAAUpS,GArPlB5I,EAAW2I,YAAY,iCAwPlBV,EAAG0R,WAjBHskH,EAAgBsH,QAAQ1oG,GAAMn2B,KAAK,SAAUC,GACzC3G,EAAW2I,YAAY,UAAW,sBAAuB,SArPlEwR,IACQlS,EAAIgT,YAAA,GACJ,SAAUrS,GACV5I,EAAA2I,YAAA,iCAwPHV,EAAG0R,WAtOX1R,EAAAu9H,0BAAS,WACL,GAAItiI,IACAg8B,QAAAj3B,EAAAsoD,IAAgBupD,aAAA94F,GAuPhBjjB,UAtPQkK,EAAIsoD,IAAAzmC,gBAAgB/rB,UAuP5BmzB,MAAOjpB,EAtPCk2E,OAAG2jD,mBAAmB2D,WAuP9BC,cAtPWz9H,EAAAk2E,OAAY4jD,mBAuPvBhmH,UAAW/b,EAAWuK,OAE1Bu3E,GAAuBC,yBAAyB7+E,GAAKwD,KAAK,SAAUC,GArP9C,MAAnBA,EAAAlI,OAuPSkI,EAAIhJ,KAAKke,WACT7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBArP3DilH,IACK94H,EAAAo8H,eAENrkI,EAAkB2I,YAAG,UAAoBhC,EAAAhJ,KAAAme,QAAA,mBAwPrC9b,EAAW2I,YAAY,QAAS,+BAAgC,oBAErE,SAtPSC,GAuPR5I,EAtPQ2I,YAAU,QAAA,gCAuPdrJ,WAtPO,EAuPP+F,KAtPI,UA6PhB4C,EAAG09H,4BAA8B,WAC7B,GAAIziI,IACAg8B,QAtPIj3B,EAAAsoD,IAAWupD,aAAY94F,GAuP3BjjB,UAtPOkK,EAAAsoD,IAAAzmC,gBAAgB/rB,UAuPvBmzB,MAAOjpB,EAAGs3H,SAASzlB,aAAa94F,GArPjC0kH,cAAez9H,EAAAs3H,SAAAE,sBACd1jH,UAAW/b,EAAAuK,OAwPfu3E,GAAuBE,2BAA2B9+E,GAAKwD,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,OACAkI,EAAIhJ,KAAKke,WArPhB7b,EAAe2I,YAAW,UAAUhC,EAAAhJ,KAAAme,QAAA,qBAClCklH,IACH/4H,EAASs8H,kBAEJvkI,EAAa2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,qBAyPd9b,EAAW2I,YAAY,QAAS,iCAAkC,sBApP9E,SAASC,GAuPD5I,EAAW2I,YAAY,QAAS,kCArP7BrJ,WAAW,EACV+F,KAAA,UA6PZ4C,EAAG29H,6BAtP8B,WAuP7B,GAAI1iI,IACAg8B,QAtPQj3B,EAAAsoD,IAAAupD,aAAS94F,GAuPjBjjB,UAAWkK,EAAGsoD,IAAIzmC,gBAAgB/rB,UAClCmzB,MAAOjpB,EAtPC+3H,UAASI,sBAAap/G,GAuP9BkyE,OAAQjrF,EAAG+3H,UAAUK,qBAAqBntC,OAC1CwyC,cAAez9H,EAAG+3H,UAAUO,uBAC5BxkH,UAAW/b,EAAWuK,OApP9Bu3E,GAAuBG,4BAAA/+E,GAAAwD,KAAA,SAAAC,GACP,MAATA,EAASlI,OACTkI,EAAAhJ,KAAkBke,WACrB7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,sBAuPYmlH,IACAh5H,EAAGw8H,mBApPXzkI,EAAU2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,sBAGN9b,EAAA2I,YAAkB,QAAY,kCAAA,uBAwPnC,SAAUC,GArPT5I,EAAS2I,YAAQ,QAAc,mCAC3BrJ,WAAI,EAuPJ+F,KAtPI,UA6PhB4C,EAAG49H,8BAtP+B,WAuP9B,GAAI3iI,IACAg8B,QAASj3B,EAAGsoD,IAAIupD,aAAa94F,GArP7BjjB,UAAQkK,EAAKsoD,IAAAzmC,gBAAA/rB,UAuPbmzB,MAAOjpB,EAAGsoD,IAAI0zE,oBAAoB6B,cArPnCJ,cAAgBz9H,EAAAsoD,IAAA4zE,wBAuPfpoH,UAAW/b,EAAWuK,OApP1Bu3E,GAAgBI,6BAAAh/E,GAAAwD,KAAA,SAAAC,GAuPO,MAAfA,EAAIlI,OArPJkI,EAAAhJ,KAAYke,WACjB7b,EAAa2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBACbolH,IACOj5H,EAAA08H,oBAEC3kI,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBAyPf9b,EAAW2I,YAAY,QAAS,iCAAkC,wBApP3E,SAAWC,GACP5I,EAAY2I,YAAA,QAAA,oCACZrJ,WAAa,EACb+F,KAAO,UA2Pd4C,EAAG+xB,KAAO,WACN/xB,EAAGk5H,SAAU,EAUblC,IACAh3H,EAAGo8H,cACHp8H,EAAGs8H,iBACHt8H,EAAGw8H,kBACHx8H,EAAG08H,oBAlPP18H,EAAA89H,sBAAS,SAA2BhrH,GAChC,GAAI7X,IACA8iI,WAAWjrH,EAAGirH,WACdN,cAAY3qH,EAAI2qH,cAuPhB9pH,WAAY5b,EAAWuK,OAE3Bu3E,GAtPuBgB,sBAAK5/E,GAAAwD,KAAA,SAAAC,GAuPxB,GAtPO,MAAHA,EAAGlI,OACH,GAAGkI,EAAAhJ,KAAAke,UAEH,GADG7b,EAAA2I,YAAA,UAAAhC,EAAAmV,QAAA,oBACH7T,EAAWk5H,QAuPH,OAAQpmH,EAAIkrH,aArPV,IAAA,GACHlF,GAuPS,MAEJ,KAAK,GACDC,GACA,MApPd,KAAA,GACYC,GACF,MAEpB,KAAuB,GACAC,QAIZjC,SAIPj/H,GAAe2I,YAAA,QAAAhC,EAAAmV,QAAA,wBAyPX9b,GAAW2I,YAAY,QAAS,wBAAyB,qBAE9D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,yBArP/BrJ,WAAA,EACD+F,KAAM,UA2Pd4C,EAAGi+H,sBAtPwB,SAAKnrH,GAuP5B,GAAIH,GAtPOtY,EAAAsY,QAAA,UAuPP,oDACAtb,WAtPI,EAuPJ+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IACA8iI,WAAYjrH,EAAIirH,WAChB39H,SAAUrI,EAAWuK,OAEzBu3E,GAAuBiB,sBAAsB7/E,GAAKwD,KAAK,SAAUC,GArPhE,GAAA,MAAAA,EAAAlI,OACK,GAAAkI,EAAAhJ,KAAAke,UAEM,GADD7b,EAAO2I,YAAgB,UAAAhC,EAAAmV,QAAA,oBAClB7T,EAAAk5H,QAuPA,OAAQpmH,EAAIkrH,aArPT,IAAA,GACKlF,GACjB,MAEA,KAAA,GACQC,GAuPS,MApPb,KAAY,GAuPCC,GACA,MApPR,KAAM,GACvBC,QAIEjC,SAIGj/H,GAAW2I,YAAA,QAAAhC,EAAAmV,QAAA,wBAGX9b,GAAA2I,YAAA,QAAA,wBAAA,qBAED,SAAUC,GACT5I,EAAW2I,YAAY,QAAA,yBAuPnBrJ,WAAW,EArPhB+F,KAAA,UAyPJ,eAIP4C,EAAGk+H,eAtPQ,SAAeprH,GAuPtB,GAAI7X,IACA8iI,WAAYjrH,EAAIirH,WArPhBN,cAAG3qH,EAAA2qH,cAuPH9pH,WAAY5b,EAAWuK,OAE3B0zH,GAAgBmI,eAAeljI,GAAKwD,KAAK,SAAUC,GAC/C,GAAmB,MAAfA,EAAIlI,OACJ,GAAIkI,EAAIhJ,KAAKke,UApPX,GADX7b,EAAA2I,YAA4B,UAAYhC,EAAAmV,QAAA,oBAC7B7T,EAAAk5H,QACM,OAAIpmH,EAAAkrH,aACF,IAAI,GACDI,mBACC,MAwPF,KAAK,GArPFC,qBACA,MAEX,KAAW,GACXC,sBACG,MAEH,KAAW,GACZC,4BAIIpH,GAAYn3H,EAAAsoD,IAASupD,aAAA94F,QA0PxBhhB,GAAW2I,YAAY,QAAShC,EAAImV,QAAS,wBAGjD9b,GAAW2I,YAAY,QAAS,wBAAyB,qBApPlE,SAAAC,GACK5I,EAAM2I,YAAA,QAAA,yBACNrJ,WAAY,EACZ+F,KAAA,UA2PR4C,EAAGw+H,eAtPC,SAAuB1rH,GAuPvB,GAtPIH,GAAQtY,EAAAsY,QAAgB,UAuPxB,4CACAtb,WAtPQ,EAuPR+F,KAAM,MAGVuV,GAAQjT,OAtPIjB,KAAA,WAuPR,GAAIxD,IACA8iI,WAtPGjrH,EAAAirH,WACH39H,SAAArI,EAAWuK,OAEhB0zH,GAAeyI,eAAAxjI,GAAAwD,KAAA,SAAAC,GACd,GAAuB,MAAvBA,EAAWlI,OACP,GAAAkI,EAAWhJ,KAAAke,UAwPH,GAvPF7b,EAAA2I,YAAA,UAAAhC,EAAAmV,QAAA,oBAuPM7T,EAAGk5H,QACH,OAAQpmH,EAAIkrH,aACR,IAAK,GACDI,mBACA,MApP7B,KAAA,GACWC,qBACU,MAEI,KAAA,GACCC,sBACH,MAwPE,KAAK,GArPNC,4BAIXpH,GAAAn3H,EAAAsoD,IAAAupD,aAAA94F,QA0PIhhB,GAAW2I,YAAY,QAAShC,EAAImV,QAAS,wBAGjD9b,GAAW2I,YAAY,QAAS,wBAAyB,qBApPjE,SAAWC,GACP5I,EAAW2I,YAAA,QAAA,yBACXrJ,WAAM,EAuPF+F,KAAM,UAGf,qnBAluDXhJ,QACKC,OAAO,oCACPe,WAAW,sBArPmBsgI,MA29DvC,WACI,YAOA,SAASgJ,GAtPWj0H,EAAW1Q,EAAYhC,EAAW4mI,EAAS1kI,EAASQ,EAAAF,EAAAP,EAAAQ,EAAAH,EAAAuX,EAAAzX,EAAA6X,EAuPpED,EAtPgBD,EAAA4D,EAAA7D,EAAA4D,EAAAgrC,GAuThB,QAASvuC,KACLF,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAtPY3T,EAAAhJ,KAuPfsK,EAAGsS,WAAY,EACfssH,MAnPL,SAAAj+H,GACC5I,EAAW2I,YAAY,QAAS,mBAAA,oBAwPpCV,EAAGw5C,cACKC,UAAW,EACXC,WAAY,WAnPrBD,UAAA,EACKC,WAAU,WAGVD,UAAM,EAuPFC,WAAY,YAnPZD,UAAM,EACNC,WAAY,cAGhBD,UAAA,EACIC,WAAQ,aAyPRD,UAtPQ,EAuPRC,WAtPY,WAyPZD,UAAW,EACXC,WAAY,aAIpB7B,IACAgnF,IAIJ,QAAShnF,KACLhmC,EAAqBimC,sBAtPOr5C,KAAA,SAAAC,GAuPL,MAAfA,EAAIlI,QACJwJ,EAAG+3C,kBAAoBr5C,EAAIhJ,KAC3BsK,EAAG+3C,kBAtPYv9C,EAAA++C,OAAAv5C,EAAA+3C,kBAAA,eAuPf/3C,EAAGsS,WAtPS,GAwPZva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASm+H,KACLjtH,EAtPmB0pE,iBAAqB78E,KAAA,SAAAC,GACjB,MAsPfA,EAtPIlI,QAuPJwJ,EAAG8+H,aAtPOpgI,EAAAhJ,KAuPVsK,EAAGsS,WAAY,GApPpBva,EAAY2I,YAAA,QAAA,yBAAA,oBAwPZ,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAK5D,QAtPQq+H,KAuPJ,GAAI1jD,IArPJj7E,SAAArI,EAAgB21C,aAwPhB97B,GAtPqBwpE,sBAAWC,GAAA58E,KAAA,SAAAC,GACT,MAsPfA,EAtPIlI,SAuPJwJ,EAAGg/H,oBAtPiBtgI,EAAAhJ,KAuPpBsK,EAAGsS,WAtPK,EAuPR2sH,IACAC,MAEL,SAASv+H,GACR5I,EAAW2I,YAtPU,QAAA,mBAAA,6BA0P7B,QAASk+H,KACL,GAAIlhH,EACJ3L,GAAe6lC,cAtPS79C,EAAAhC,EAAA2lB,GAAAjf,KAAA,SAAAC,GAuPD,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAtPcpX,EAAAhJ,KAuPjBqpI,IACA/+H,EAAGsS,WAAY,GAEfva,EAtPW2I,YAAA,QAAA,yBAAA,YAwPhB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAASu+H,KACL,GAAIE,EACJ1+E,GAAgBC,eAAe3mD,EAAOhC,EAAYonI,GAAa1gI,KAAK,SAASC,GArP3D,MAAfA,EAAAlI,QACCwJ,EAAAo/H,aAAW1gI,EAAYhJ,KACnBsK,EAAAsS,WAAW,GAwPXjY,EAAQwH,MAAM,QAAS,yBAA0B,aAEtD,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAmK5D,QAvPQgR,KAyPJ,GAAIiB,GAvPItY,EAAYsY,QAAA,eAwPhB,yFApPItb,WAAA,EAwPA+F,KAAM,MApPduV,GAAAjT,OAAAjB,KAAA,WACAzE,EAAA8F,GAAA/H,EAAAyE,iBA6PJ,QAvPQ0iI,KAwPJl/H,EAAGq/H,WAtPKp0C,OAAG,EACHq0C,UAAG,QA0PHr0C,OAAU,EAtPfq0C,UAAc,QA0Pbt/H,EAAGu6D,QACHglE,IAySR,QAASC,KACL,GAvPe,KAuPXx/H,EAAG6jB,QAvPQvB,YAAA4lB,OAAA,CAwPX,GAAIu3F,IACAn9G,YAvPQtiB,EAAA6jB,QAAWvB,YAwPnBnQ,UAvPQnS,EAAM6jB,QAAA1Q,gBAAAhB,UAyPlBP,GAAuBsqE,iBAAiBujD,GAAYhhI,KAAK,SAASC,GAC5C,KAAdA,EAAIlI,OACJwJ,EAAGsiB,YAAc5jB,EAAIhJ,KAAKke,UAE1B5T,EAAGsiB,aAAc,GAGtB,SAvPQ3hB,GAwPP5I,EAvPO2I,YAAgB,QAAG,mBAAA,4BA2P9BV,GAAG6jB,QAAQvB,YAAc,GAnPjC,QAAGo9G,KAwPC,GAvPkB,KAAd1/H,EAAA6jB,QAAI87G,YAAUz3F,OAAA,CACd,GAAAu3F,IACIE,YAAY3/H,EAAA6jB,QAAA87G,YAwPZxtH,UAvPWnS,EAAA6jB,QAAA1Q,gBAAgBhB,UAyP/BP,GAvPgBuqE,iBAAWsjD,GAAAhhI,KAAA,SAAAC,GACL,KAuPdA,EAAIlI,OACJwJ,EAAG2/H,YAAcjhI,EAAIhJ,KAAKke,UAE1B5T,EAAG2/H,aAAc,GAGtB,SAASh/H,GAtPR5I,EAAU2I,YAAA,QAAA,mBAAA,4BA2PdV,GAAG6jB,QAvPQvB,YAAK,GA+PxB,QAASi9G,KACLv/H,EAAG6jB,QAAQooG,UAAY,GAAIxyG,MAAKzZ,EAAG6jB,QAAQooG,WAC3CjsH,EAAG6jB,QAAQqsG,QAAU,GAAIz2G,MAAKzZ,EAAG6jB,QAAQqsG,QACzC,KAAK,GAAIh1H,KAAK8E,GAAGqS,YACTrS,EAAGqS,YAAYnX,GAAGiX,YAAcnS,EAAG6jB,QAAQ1R,YAC3CnS,EAAG6jB,QAAQ1Q,gBAAkBnT,EAAGqS,YAAYnX,GApPrD,KAAA,GAAAA,KAAA8E,GAAiBg/H,oBACZh/H,EAAKg/H,oBAAY9jI,GAAA0kI,oBAAc5/H,EAAA6jB,QAAA+7G,oBAC3B5/H,EAAA6jB,QAAOg8G,4BAAiC7/H,EAAIg/H,oBAAc9jI,GA8PlE,IAHI8E,EAAG6jB,QAAQ88B,WACX3gD,EAAG8/H,aAAenjI,KAAKC,MAAMoD,EAAG6jB,QAAQ88B,WAExC3gD,EAAG6jB,QAAQk8G,iBAAkB,CAC7B,GAAIC,GAAmBrjI,KAAKC,MAAMoD,EAAG6jB,QAAQk8G,iBAC7C,KAAK,GAAIjrB,KAAYkrB,GAtPlBA,EAAejrB,eAAAD,IACtB90G,EAAAggI,iBAAAnoI,MACekvB,IAAA+tF,EACAV,aAAA4rB,EAA2BlrB,KA4P1C90G,EAAGigI,YAvPYtjI,KAAMC,MAAAoD,EAAA6jB,QAAAq8G,gBAyPrBlgI,EAAGmgI,SAvPSngI,EAAGigI,YAAQG,YAwPvBpgI,EAAGqgI,eAvPYrgI,EAAM6jB,QAAA+7G,kBAA2B,WAwP5C,IAAK,GAAI1kI,KAAK8E,GAAGsgI,gBACTtgI,EAAGsgI,gBAAgBplI,GAAGqlI,gBAAkBvgI,EAAG6jB,QAAQ08G,gBACnDvgI,EAAG6jB,QAAQ28G,wBAA0BxgI,EAAGsgI,gBAAgBplI,GACxD8E,EAAGygI,cAAczgI,EAAG6jB,QAAQ28G,wBAAyB,WACjD,IAAK,GAAItlI,KAAK8E,GAAG0gI,UAtPjC,IAAA,GAAA5rB,KAAA90G,GAAAigI,YAAAS,UAwP4B1gI,EAAGigI,YAAYS,UAAU3rB,eAAeD,IACpC90G,EAAG0gI,UAAUxlI,GAAGuB,OAASq4G,IACzB90G,EAAG0gI,UAAUxlI,GAAG8nB,WAAY,EAC5BhjB,EAAG0gI,UAAUxlI,GAAGw6G,eAAiB11G,EAAGigI,YAAYS,UAAU5rB,GAlPtF,KAAA,GAAA55G,KAAA8E,GAAA2gI,kBACG,IAAe,GAAM7rB,KAAa90G,GAAAigI,YAAAW,aAwPb5gI,EAAGigI,YAAYW,aAAa7rB,eAAeD,IACvC90G,EAAG2gI,kBAAkBzlI,GAAG2lI,QAAU/rB,IAtP3C90G,EAAA2gI,kBAAAzlI,GAAAw6G,eAAA11G,EAAAigI,YAAAW,aAAA9rB,GAKR,KAAA,GAAS55G,KAAA8E,GAAA8gI,YACL,IAAA,GAAAhsB,KAAoB90G,GAAAigI,YAAWc,eAC1B/gI,EAAOigI,YAAWc,eAAYhsB,eAAiBD,IACxC90G,EAAA8gI,YAAA5lI,GAAAuB,OAAAq4G,IACL90G,EAAA8gI,YAAA5lI,GAAAw6G,eAAA11G,EAAAigI,YAAAc,eAAAjsB,QAiQ1B,KAAK,GAAI55G,KAAK8E,GAvPEq/H,SAwPRr/H,EAAGq/H,SAASnkI,GAAGokI,YAAct/H,EAAG6jB,QAAQ8tE,WACxC3xF,EAAG6jB,QAvPIm9G,qBAAAhhI,EAAAq/H,SAAAnkI,GAwPP8E,EAAGihI,qBAvPgB,WAwPf,IAvPI,GAAA92H,KAAAnK,GAAWq4H,QACXr4H,EAAMq4H,QAAAluH,GAAAqoF,SAAAxyF,EAAA6jB,QAAA2uE,SAwPFxyF,EAAG6jB,QAAQq9G,iBAAmBlhI,EAAGq4H,QAAQluH,MAO7D,KAvPI,GAAKjP,KAAI8E,GAAA8V,YACL9V,EAAA8V,YAAO5a,GAASmb,YAAArW,EAAA6jB,QAAoBxN,YAwPpCrW,EAAG6jB,QAvPQpN,gBAAiBzW,EAAG8V,YAAW5a,GA2PlD8E,GAAGoW,wBAAwBpW,EAAG6jB,QAAQxN,UAAW,WAC7C,IAAK,GAAInb,KAvPG8E,GAAAuW,UAwPJvW,EAAGuW,UAAUrb,GAAG2b,UAAY7W,EAAG6jB,QAAQhN,UACvC7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUrb,MAIpD8E,EAAG4W,qBAvPa5W,EAAW6jB,QAAIhN,QAAA,WAwP3B,IAAK,GAvPG3b,KAAA8E,GAAS+W,SAwPT/W,EAAG+W,UAtPC/W,EAAA+W,SAAS7b,GAAAkc,SAAiBpX,EAAA6jB,QAASzM,SACnCpX,EAAA6jB,QAAS5M,aAAOjX,EAAA+W,SAAmB7b,MA4PnD8E,EAAGwf,oBAvPoBxf,EAAA6jB,QAAAzM,OAAmB,WAwPtC,IAAK,GAAIlc,KAAK8E,GAvPE4V,SAwPR5V,EAAG4V,SAvPS1a,GAAA+c,SAAIjY,EAAA6jB,QAAiB5L,SAwPjCjY,EAAG6jB,QAAQtE,aAvPQvf,EAAA4V,SAAiB1a,MA4PhD8E,EAAGmhI,cAAgBxkI,KAAKC,MAAMoD,EAAG6jB,QAAQc,gBAEzC3kB,EAAG6jB,QAAQu9G,OAvPSv1G,WAAW7rB,EAAA6jB,QAAAu9G,QAyP/BphI,EAAG6jB,QAAQq0B,YAvPav7C,KAAMC,MAAAoD,EAAA6jB,QAAA+1B,UAyP9B55C,EAAG6jB,QAAQi2B,kBACX,KAAK,GAAI5+C,KAAK8E,GAvPC+3C,kBAwPX,IAAK,GAAI5tC,KAvPGnK,GAAA6jB,QAAWq0B,YAAY0B,SAyP3B,GAAKngC,MAvPGzZ,EAAA+3C,kBAAM78C,GAAAg9C,aAAA+B,uBAAA,GAAAxgC,MAAAzZ,EAAA6jB,QAAAq0B,YAAA0B,SAAAzvC,IAAA8vC,sBAwPdj6C,EAAG6jB,QAAQi2B,gBAAgBjiD,KAAKmI,EAAG+3C,kBAAkB78C,GAMjE8E,GAAG6jB,QAAQq2B,QAAUv9C,KAAKC,MAAMoD,EAAG6jB,QAAQg2B,SAG3C75C,EAAG6jB,QAAQk2B,eACX,KAAK,GAAI7+C,KAAK8E,GAAGw5C,YACb,IAAK,GAAIrvC,KAAKnK,GAAG6jB,QAAQq2B,QAAQA,QAtP3Bl6C,EAAAw5C,YAAct+C,GAAAw+C,YAAA15C,EAAA6jB,QAAAq2B,QAAAA,QAAA/vC,IACbnK,EAAI6jB,QAAMk2B,aAAIliD,KAAemI,EAAEw5C,YAAUt+C,GAKrD,KAAA,GAAAA,KAAA8E,GAAiB8+H,aACZ9+H,EAAA8+H,aAAA5jI,GAAAmmI,YAAArhI,EAAA6jB,QAAAw9G,YACIrhI,EAAG6jB,QAAAy9G,iBAAAthI,EAAA8+H,aAAA5jI,IA4Pf,QAASy0G,KACL,GAvPI3vG,EAAA6jB,QAAOk8G,iBAAQ,CAwPf,GAvPIC,GAAarjI,KAAAC,MAAAoD,EAAA6jB,QAAAk8G,iBAwPjB//H,GAAGggI,mBACH,KAAK,GAvPGlrB,KAAWkrB,GACXA,EAAcjrB,eAAAD,IAwPd90G,EAAGggI,iBAAiBnoI,MAtPxBkvB,IAAA+tF,EACQV,aAAQ4rB,EAAgBlrB,KA4PpC90G,EAAG6jB,QAAQ88B,WACX3gD,EAAG8/H,aAAenjI,KAAKC,MAvPIoD,EAAA6jB,QAAA88B,WAyP/B3gD,EAAGmhI,cAAgBxkI,KAAKC,MAAMoD,EAvPE6jB,QAAAc,gBAwP5B3kB,EAAGmhI,cAAcx8G,eAAexpB,OAAS,CAI7C,IAAIomI,GAAU5kI,KAAKC,MAvPCoD,EAAA6jB,QAAWq8G,gBAwP3B/kI,EAASyH,OAAOD,KAvPI4+H,GAAApmI,MAwPxB,IAAIA,EAAQ,CACR6E,EAAGmgI,SAAWoB,EAAQnB,WACtB,KAAK,GAAItrB,KAAYysB,GAAQb,UACrBa,EAAQb,UAAU3rB,eAAeD,IAtPjC90G,EAAA0gI,UAAS7oI,MACL4E,KAAAq4G,EAwPAY,eAvPe6rB,EAAAb,UAAA5rB,IA4P3B,KAAK,GAAIA,KAAYysB,GAAQR,eACrBQ,EAAQR,eAAehsB,eAAeD,IACtC90G,EAAG8gI,YAAYjpI,MACX4E,KAAMq4G,EACNY,eAAgB6rB,EAAQT,YAAYhsB,IAKhD,KAAK,GAvPEA,KAAAysB,GAAAX,aACAW,EAAQX,aAAW7rB,eAAAD,IAwPlB90G,EAAG2gI,kBAAkB9oI,MACjBgpI,MAAO/rB,EACPY,eAAgB6rB,EAAQX,aAAa9rB,MA+azD,QAAS17F,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAvPC2jB,KAwPR9iB,EAAOb,EAvPCa,IAwPZ,OAAgB,QAATA,GAAqC,IAAlB8iB,EAAKC,SA6DnC,QAASC,GAvPO7jB,GAwPZ,GAAI2jB,GAAO3jB,EAvPK2jB,KAwPZ9iB,EAAOb,EAvPKa,IAwPhB,IAAa,QAATA,EAGA,IAvPI,GAqPAijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GArP9Cxe,EAAA,EAAWA,EAAA8E,EAAA2Z,OAAYxe,OAASD,IAAA,CAwPhC,GAvPI0e,GAAW,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAyPf,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GA34CX,GAAIwJ,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAtPa,EAuPhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAtPY,EAuPftS,EAAGwhI,eAtPS,EAuPZxhI,EAAGyhI,eAAgB,EACnBzhI,EAAGwkB,gBACHzsB,EAtPQ2c,SAAW,EAuPnB1U,EAAG6jB,WACH7jB,EAAGmgI,YACHngI,EAAG0hI,QACH1hI,EAAG8/H,gBACH9/H,EAAGq/H,YACHr/H,EAAG2gI,qBArPH3gI,EAAGmgI,YAuPHngI,EAAG+3C,qBACH/3C,EAAG0gI,aACH1gI,EAAG8gI,eACH9gI,EAAGggI,oBACHhgI,EAAGw/H,iBAAmBA,EACtBx/H,EAAG0/H,iBAAmBA,EACtB1/H,EAAG0R,OAASA,EAEc/b,QAAtBqE,EAAOvE,OAAOC,OACdsK,EAAG6xD,MAAQ73D,EAAOvE,OAAOC,KAAKm8D,MArP9B7xD,EAAAu6D,OAAAvgE,EAAAvE,OAAAC,KAAA6kE,OACAv6D,EAAGyxD,OAAAz3D,EAAAvE,OAAAC,KAAA+7D,OACAzxD,EAAAyxD,SACAzxD,EAAAyhI,eAAA,EACAzhI,EAAAwhI,eAAA,GAyPCxhI,EAAG6xD,OArPR7xD,EAAAwhI,eAAwB,EACnBxhI,EAAAyhI,eAAM,EACNzhI,EAAA6jB,WACA7jB,EAAAu6D,QAAA,EACAv6D,EAAAyxD,QAAY,IAEhBzxD,EAAA6jB,QAAA7pB,EAAuBvE,OAAAC,KAAAmuB,QACnB7jB,EAAA6jB,QAAQkwC,SAAWh8D,EAAK6I,iBAAA,GAAA6Y,MAAAzZ,EAAA6jB,QAAAooG,WAAA,GAAAxyG,MAAAzZ,EAAA6jB,QAAAqsG,UACpBlwH,EAAAyxD,QAuPAzxD,EAAGyhI,eAtPY,EAuPfzhI,EAAGwhI,eAtPQ,EAuPXxhI,EAAG6xD,OAtPK,EAuPR7xD,EAAGu6D,QAtPS,EAuPZo1C,MAEA3vG,EAAGyhI,eAAgB,EACnBzhI,EAAGwhI,eAtPc,EAuPjBxhI,EAAG6xD,OAAQ,EACX7xD,EAAGyxD,QAAS,IAQxB,IAAIt/C,GAAYhY,EAtPYgG,uBAAAwU,gBAAAxC,SAuP5BD,KA6HAlS,EAAGqgI,eAAiB,SAASnkF,EAAY/kC,GArPrCvF,EAAoB4pE,yBAAYt/B,GAAAz9C,KAAA,SAAAC,GAClB,MAANA,EAAAlI,SACAwJ,EAAAsgI,gBAAgB5hI,EAAAhJ,KAChBsK,EAAAsgI,gBAAqBnlI,OAAA,EAuPjBd,EAAQ8C,OAAO,UAAW,iCAAmC6C,EAAG6jB,QAAQg8G,4BAA4BhkF,cArP5GxkD,WAAgB,EACJ+F,KAAA,OAGA+Z,GAuPAA,IAIRnX,EAAGsS,WAAY,IAEpB,SAAS3R,GACR5I,EAAW2I,YAAY,QAtPC,mBAAA,0BA2PhCV,EAAGygI,cAAgB,SAASkB,EAAiBxqH,GACrC,GAAIoqH,GAAU5kI,KAAKC,MAtPM+kI,EAAAC,iBAuPrBC,EAAWllI,KAAKC,MAtPI+kI,EAAAG,cAuPxB9hI,GAAG2gI,kBAAoBY,EAtPCX,aAuPxB5gI,EAAG+hI,UAAYR,EAAQnB,WAEvB,IAAI4B,KACJ,KAAK,GAAI9mI,KAAKqmI,GAAQU,SAAU,CAC5B,GAAInpF,IACAr8C,KAAM8kI,EAAQU,SAAS/mI,GACvB8nB,WAtPI,EAwPRg/G,GAtPOnqI,KAAAihD,GAwPX94C,EAAG0gI,UAAYsB,CAEf,IAtPIE,KAuPJ,KAAK,GAtPGhnI,KAAAqmI,GAAWY,eAAA,CAuPf,GAtPIrpF,IAuPAr8C,KAAM8kI,EAAQY,eAAejnI,GAC7B8nB,WAAW,EAEfk/G,GAAgBrqI,KAAKihD,GAEzB94C,EAAG8gI,YAAcoB,EAEjBliI,EAAGoiI,YAAcP,EAASC,cArP9B3qH,GACRA,KA4PInX,EAAGoW,wBAA0B,SAASC,EAAWc,GACzCrF,EAAawE,oBAAoBD,GAAW5X,KAAK,SAASC,GAtPzC,MAApBA,EAAAlI,SACWwJ,EAAAuW,UAAc7X,EAAAhJ,KACrBsK,EAAAuW,UAAApb,OAAA,EACKd,EAAA8C,OAAA,UAAA,0BAAA6C,EAAA6jB,QAAApN,gBAAAC,aACErf,WAAA,EACD+F,KAAA,OAGI+Z,GACDA,IAGJnX,EAAAsS,WAAA,IAEX,SAAe3R,GACf5I,EAAW2I,YAAA,QAAA,mBAAA,0BAIdV,EAAG4W,qBAAY,SAAAC,EAAAM,GACZzB,EAAcoB,iBAAAD,GAAApY,KAAA,SAAAC,GACK,MAAnBA,EAAAlI,SACAwJ,EAAA+W,SAAmBrY,EAAAhJ,KACnBsK,EAAmB+W,SAAA5b,OAAA,EACVd,EAAA8C,OAAA,UAAA,yBAAA6C,EAAA6jB,QAAAlN,cAAAK,WAwPY3f,WAAW,EAtPjB+F,KAAQ,OAGH+Z,GACJA,IA0PHnX,EAAGsS,WAAY,IArPpB,SAAO3R,GACP5I,EAAA2I,YAAgB,QAAA,mBAAA,0BA2P3BV,EAAGwf,oBAvPiB,SAAApI,EAAAD,GAwPhB1B,EAvPOgK,gBAAArI,GAAA3Y,KAAA,SAAAC,GACU,MAAVA,EAAAlI,SACAwJ,EAAA4V,SAAQlX,EAAWhJ,KACfsK,EAAA4V,SAAQza,OAAA,EACRd,EAAA8C,OAAgB,UAAA,yBAAA6C,EAAA6jB,QAAA5M,aAAA8G,UAChB1mB,WAAgB,EAChB+F,KAAQ,OAGR+Z,GACAA,IAGHnX,EAAGsS,WAAS,IAyPjB,SAAS3R,GAtPT5I,EAAA2I,YAAA,QAAA,mBAAA,0BAMPV,EAAAqiI,oBAAA,SAAA/pH,GAyPI7C,EAAY4sH,oBAAoB/pH,EAAQ4vB,QAAQzpC,KAAK,SAASC,GAtPlD,MAAPA,EAAOlI,QACZwJ,EAAAsiI,kBAAe5jI,EAAmBhJ,KAC1BsK,EAAAsS,WAAe,EACZtS,EAAAsiI,kBAAkBnnI,OAAA,IAClBd,EAAA8C,OAAY,UAAA,8BAAAmb,GACfjhB,WAAA,EAwPQ+F,KAAM,OArPV4C,EAAA6jB,QAAKtE,aAAA,OAGdxnB,EAAe2I,YAAA,QAAA,yBAAA,SAyPf,SAvPKC,GAwPJ5I,EAAW2I,YAAY,QAAS,mBAAoB,WAS5DV,EAAGgU,OAvPK,WAwPJhU,EAAG+S,WAvPK,EAwPR/S,EAAGgT,YAvPK,GAyPZhT,EAAG0X,MAvPK,WAwPA1d,EAvPI8F,GAAA/H,EAAWyE,gBA4RvBwD,EAAGihI,qBAvPY,SAAA9pH,GAwPP,GAvPIorH,IAwPAt3C,OAAQjrF,EAAG6jB,QAAQm9G,qBAAqB/1C,OAtP7C0G,SAAc3xF,EAAA6jB,QAAAm9G,qBAAA1B,UAyPb1tH,GAAuB2pE,aAAagnD,GAAQ9jI,KAAK,SAASC,GACnC,MAAfA,EAAIlI,SACJwJ,EAAGq4H,QAAU35H,EAAIhJ,KACbsK,EAAGq4H,QAAQl9H,OAAS,GAtP/Bd,EAAA8C,OAAsB,UAAA,8BAAA6C,EAAA6jB,QAAAm9G,qBAAArvC,UACXt6F,WAAA,EACF+F,KAAW,OAGb+Z,GACDA,IACAnX,EAAAsS,WAAY,IAyPhB,SAvPC3R,GAwPA5I,EAAW2I,YAAY,QAAS,mBAAoB,0BAjPhEV,EAAAwiI,UAAS,WACD,GAAAC,IAAA,CACJ,KAAA,GAAAvnI,KAAe8E,GAAAmgI,SACHngI,EAAAmgI,SAAWjlI,GAAAy2F,WAAK3xF,EAAA6jB,QAAA6+G,eACjBroI,EAAA8C,OAAc,UAAI6C,EAAA6jB,QAAA6+G,aAAA,kBACrBrrI,WAAA,EACG+F,KAAA,OAEHqlI,GAAW,EAGf,KAAAA,EAwPI,GAAuB,MAAnBziI,EAAG6jB,QAAQyS,MAA2C,MAA3Bt2B,EAAG6jB,QAAQ6+G,cAA2C/sI,QAAnBqK,EAAG6jB,QAAQyS,MAAgD3gC,QAA3BqK,EAAG6jB,QAAQ6+G,aAA2B,CACpI,GAAIC,IACAhxC,SAAU3xF,EAAG6jB,QAAQ6+G,aAtPhCjuG,KAAez0B,EAAA6jB,QAAAyS,KAEpBt2B,GAAAmgI,SAAgBtoI,KAAA8qI,GACJ3iI,EAAA6jB,QAAW6+G,aAAK,KACjB1iI,EAAA6jB,QAAAyS,KAAmB,SAEnBj8B,GAAA8C,OAAA,UAAA,6BACK9F,WAAM,EAwPN+F,KAAM,QAO1B4C,EAAG4iI,YAAc,SAAS9vH,GAClB,IAAK,GAAI5X,KAAK8E,GAAGmgI,SAtPtBngI,EAAAmgI,SAAiBjlI,GAASy2F,WAAY7+E,EAAA6+E,UACrC3xF,EAAAmgI,SAAuB7qG,OAAAp6B,EAAA,IA+P3B8E,EAAG6iI,aAAe,WACV,GAAIJ,IAvPQ,CAwPZ,KAAK,GAAIvnI,KAvPG8E,GAAA8/H,aAwPwBnqI,QAA5BqK,EAAG0hI,KAAKoB,kBACJ9iI,EAAG8/H,aAAa5kI,GAAG6nI,eAAiB/iI,EAAG0hI,KAAKoB,iBAAiBC,eAC7D1oI,EAAQ8C,OAAO,UAAW6C,EAAG0hI,KAAKoB,iBAAiBC,aAAe,kBAtPvE1rI,WAAY,EAwPH+F,KAAM,OArPXqlI,GAAA,EAKhBA,KAC8B,MAArBziI,EAAA0hI,KAAUsB,YAA2BrtI,QAAhBqK,EAAgB0hI,KAAAsB,YACf,IAAtBhjI,EAAA0hI,KAAWsB,YAA2B,IAAhBhjI,EAAA0hI,KAAgBoB,kBAAA,MAAA9iI,EAAA0hI,KAAAoB,kBAAAntI,QAAAqK,EAAA0hI,KAAAoB,kBACvC9iI,EAAA0hI,KAAAqB,aAA4B/iI,EAAA0hI,KAAAoB,iBAAAC,aAC5B/iI,EAAA0hI,KAAY1gF,WAAQhhD,EAAA0hI,KAAAoB,iBAAA9hF,WAwPfhhD,EAAG8/H,aAAajoI,KAAKmI,EAAG0hI,MAtP5B1hI,EAAA0hI,KAAAoB,iBAAmB,KAClB9iI,EAAI0hI,KAAK,MAENrnI,EAAM8C,OAAQ,UAAS,4CACvB9F,WAAW,EAwPP+F,KAAM,SAS1B4C,EAAGijI,eAvPa,SAAWnwH,GAwPnB,IAAK,GAAI5X,KAAK8E,GAAG8/H,aAtPb9/H,EAAA8/H,aAAgB5kI,GAAK6nI,eAAAjwH,EAAAiwH,cAwPjB/iI,EAAG8/H,aAAaxqG,OAAOp6B,EAAG,IAS1C8E,EAAGs0D,MAAQ,SAASh+B,GArPjB,GAA8C,aAA9Ct2B,EAAA6jB,QAAA28G,wBAAmCvnF,UAAqB,SAAAj5C,EAAA6jB,QAAA28G,wBAAAvnF,SAAA,CACnD,GAAA/9C,GAAA8E,EAAA2gI,kBAAaxlI,OAAoB,CAyP7B6E,GAAG2gI,kBAvPgBzlI,GAAIw6G,iBACnB9uG,SAAO5G,EAAA2gI,kBAAsBzlI,GAAAw6G,iBAAAp/E,GAwP7Bt2B,EAAG6jB,QAvPCyS,KAAQA,EAwPZt2B,EAAGe,IAvPK,KAyPRf,EAAG6jB,QAAQyS,KAAO,KAClBt2B,EAAGe,IAvPI,yBAAAf,EAAA2gI,kBAAAzlI,GAAAw6G,mBAoQvBjrG,EAAOuqG,YAvPa,SAAA74G,GAyPZA,IACA6D,EAAGo0G,aAvPYj4G,EAASsN,OAAAiE,MAAY,KA0P5C1N,EAAGkjI,WAAa,WAEZ,GAAIljI,EAAG6xD,MAAO,CACV,GAAI4wE,IAvPQ,CAwPZ,KAAK,GAAIvnI,KAAK8E,GAvPEggI,iBAwPwBrqI,QAAhCqK,EAAGmjI,SAASC,kBACRpjI,EAAGggI,iBAAiB9kI,GAAG6rB,MAAQ/mB,EAAGmjI,SAASC,iBAAiB3uD,MAtP7Dp6E,EAAA8C,OAAY,UAAA6C,EAAAmjI,SAAAC,iBAAA3uD,IAAA,kBAwPPp9E,WAAW,EAtPf+F,KAAK,OAyPLqlI,GAAU,EAnP1BA,KAC4B9sI,QAAhBqK,EAAAo0G,aACDp0G,EAAAggI,iBAAenoI,MACXkvB,IAAA/mB,EAASmjI,SAASC,iBAAG3uD,IACxB2/B,aAAep0G,EAAAo0G,eA0Pf/5G,EAAQ8C,OAAO,UAAW,uBAtPvB9F,WAAA,EACC+F,KAAA,QA6PhB,GAvPG4C,EAAAu6D,OAAS,CACR,GAAAkoE,IAAW,CAwPX,KAAK,GAAIvnI,KAAK8E,GAAGggI,iBACuBrqI,QAAhCqK,EAAGmjI,SAASC,kBACRpjI,EAAGggI,iBAAiB9kI,GAAG6rB,MAAQ/mB,EAAGmjI,SAASC,iBAAiB3uD,MAC5Dp6E,EAAQ8C,OAAO,UAAW6C,EAAGmjI,SAASC,iBAAiB3uD,IAAM,kBACzDp9E,WAAW,EAtPhC+F,KAAsB,OAETqlI,GAAA,EA2PR,KAvPIA,EAwPA,GAvPmB9sI,QAAfqK,EAAAo0G,aAA0B,CAwP1B,GAvPIh2G,GAAW,GAAAH,SAwPfG,GAvPIF,OAAM,YAAA8B,EAAA6jB,QAAA/tB,WAwPNsI,EAASF,OAAO,YAAa8B,EAAG6jB,QAAQ1R,WAtPzC/T,EAAQF,OAAA,MAAe8B,EAAAmjI,SAAAC,iBAAA3uD,KAwPtBr2E,EAASF,OAAO,eAAgB8B,EAAGo0G,cAtPxCxiG,EAAAupE,cAAA/8E,GAAAK,KAAA,SAAAC,GACH,GAAuB,MAAZA,EAAAlI,OAAqB,CAwPpBuB,EAAW2I,YAAY,UAAW,6BAA8B,qBAtPnE,IAAAs/H,GAAAthI,EAAAhJ,IACFsK,GAAAggI,mBAwPK,KAAK,GAAIlrB,KAAYkrB,GACbA,EAAiBjrB,eAAeD,IAChC90G,EAAGggI,iBAAiBnoI,MAChBkvB,IAAK+tF,EACLV,aAAc4rB,EAAiBlrB,SAlPhD/8G,GAAA2I,YAAA,QAAA,wBACCrJ,WAAA,EAwPQ+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,wBAtPlCrJ,WAAA,EAwPM+F,KAAM,aAnPtB/C,GAAA8C,OAAA,UAAA,uBACI9F,WAAW,EACL+F,KAAA,SA8PlB4C,EAAGqjI,SAAW,SAASvwH,GACnB,GAAIlV,GAAO,GAAIC,OAAMiV,EAAIshG,eAAiBr2G,KAAM+U,EAAIshG,aAAar2G,OAC7DtJ,GAAOC,OAAOwlB,KAAOxlB,OAAO4uI,WAAWnpH,gBAAgBvc,EAtP/DnD,GAAS4E,KAAA5K,EAAY,WA0PrBuL,EAAGujI,eAvPS,SAAaC,GAEjB,GAAAxjI,EAAA6xD,MACI,IAAA,GAAA32D,KAAU8E,GAAAggI,iBACVhgI,EAAAggI,iBAAa9kI,GAAA6rB,MAAAy8G,EAAAz8G,KAwPL/mB,EAAGggI,iBAAiB1qG,OAAOp6B,EAAG,EApP1C,IAAA8E,EAAAu6D,OAAA,CAwPI,GAAIkpE,IACA3tI,UAAWkK,EAAG6jB,QAAQ/tB,UACtBqc,UAAWnS,EAAG6jB,QAAQ1R,UACtB4U,IAAKy8G,EAASz8G,IArP3BnV,GAAgCgqE,cAAU6nD,GAAAhlI,KAAA,SAAAC,GACjC,GAAS,MAAAA,EAAAlI,OAAA,CACEuB,EAAQ2I,YAAA,UAAqB,+BAAA,qBAC9B,IAAGs/H,GAAQthI,EAAAhJ,IAwPTsK,GAAGggI,mBAtPnB,KAAA,GAAuBlrB,KAAakrB,GACbA,EAAKjrB,eAAAD,IACP90G,EAAIggI,iBAAAnoI,MACFkvB,IAAS+tF,EACLV,aAAW4rB,EAAAlrB,SAK1B/8G,GAAA2I,YAAA,QAAA,wBACArJ,WAAA,EACD+F,KAAY,QA2Pf,SAASuD,GACL5I,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EACX+F,KAAM,WAS9B4C,EAAG0jI,UAAY,WAtPW/tI,QAuPdqK,EAAG6jB,QAvPCooG,WAAUt2H,QAAAqK,EAAA6jB,QAAAqsG,QAwPdlwH,EAAG6jB,QAAQkwC,SAAWh8D,EAAW6I,iBAAiBZ,EAAG6jB,QAAQooG,UAAWjsH,EAAG6jB,QAAQqsG,SApPnFlwH,EAAA6jB,QAAOkwC,SAAQ,GA0f3B/zD,EAAG2jI,mBAAqB,WACpB,GAvPIC,MAyPAC,IACJ,KAAK,GAAI3oI,KAAK8E,GAvPC2gI,kBACchrI,QAuPrBqK,EAAG2gI,kBAvPkBzlI,GAAAw6G,iBAwPrBmuB,EAAS7jI,EAAG2gI,kBAAkBzlI,GAAG2lI,OAAS7gI,EAAG2gI,kBAAkBzlI,GAAGw6G,eAG1EkuB,GAAOhD,aAvPYiD,CAyPnB,IAAIC,KACJ,KAAK,GAvPE5oI,KAAA8E,GAAAmgI,SAAA,CACH,GAAGrnF,IAwPC64C,SAAU3xF,EAAGmgI,SAASjlI,GAAGy2F,SACzBl9D,KAAMz0B,EAAGmgI,SAASjlI,GAAGu5B,KArPjCqvG,GAASjsI,KAAAihD,GAyPL8qF,EAvPIxD,YAAiB0D,CAyPrB,IAAIC,KACJ,KAAK,GAAI7oI,KAAK8E,GAAG0gI,UAtPb1gI,EAAA0gI,UAAAxlI,GAAA8nB,YACI+gH,EAAQ/jI,EAAA0gI,UAAexlI,GAAAuB,MAAAuD,EAAA0gI,UAAAxlI,GAAAw6G,eAyP/BkuB,GAAOlD,UAvPQqD,CAyPf,IAAIC,KACJ,KAAK,GAAI9oI,KAAK8E,GAAG8gI,YAtPV9gI,EAAA8gI,YAAc5lI,GAAA8nB,YACbghH,EAAWhkI,EAAA8gI,YAAY5lI,GAAAuB,MAASuD,EAAA8gI,YAAoB5lI,GAAAw6G,eAyP5DkuB,GAAO7C,eAAiBiD,CAExB,IAvPIC,KAwPJ,KAAK,GAAI/oI,KAAK8E,GAAG8/H,aAAc,CAC3B,GAAIhnF,IACAkI,WAAYhhD,EAAG8/H,aAAa5kI,GAAG8lD,WAC/B+hF,aAAc/iI,EAAG8/H,aAAa5kI,GAAG6nI,aACjCC,WAAYhjI,EAAG8/H,aAAa5kI,GAAG8nI,WAC/BkB,OAAQlkI,EAAG8/H,aAAa5kI,GAAGgpI,OArPvCD,GAASpsI,KAAgBihD,GAGrB,GAAiBnjD,QAAjBqK,EAAKmhI,cAAyB,CAC1B,GAAIgD,IACAx/G,kBAyPJ,KAAK,GAAIzpB,KAAK8E,GAAGmhI,cAAcx8G,eAtP9Bw/G,EAAYx/G,eAAqB9sB,MAC3B4qB,MAAAziB,EAAAmhI,cAAuBx8G,eAAAzpB,GAAAunB,MACvBmC,WAAQ5kB,EAAAmhI,cAAAx8G,eAAiCzpB,GAAA0pB,WAwPxCC,WAAY7kB,EAAGmhI,cAAcx8G,eAAezpB,GAAG2pB,aAK3D,GAAIu1B,IAtPAR,YAyPJ,KAvPI,GAAK1+C,KAAI8E,GAAA6jB,QAAYi2B,gBAwPrBM,EAvPQR,SAAA/hD,KAAiBoC,EAAA,QAAe+F,EAAA6jB,QAAWi2B,gBAAA5+C,GAAAg9C,YAAA,cAyPvD,IAAImC,IACAH,WAEJ,KAAK,GAAIh/C,KAAK8E,GAAG6jB,QAAQk2B,aACrBM,EAAWH,QAAQriD,KAAKmI,EAAG6jB,QAAQk2B,aAAa7+C,GAAGw+C,WAGvD,IAAI15C,EAAG6xD,MAAO,CAtPX,GAAAzzD,GAAc,GAAAH,SACd,KAAA,GAAA/C,KAAe8E,GAAGggI,iBACjB5hI,EAASF,OAAQ8B,EAAAggI,iBAAiB9kI,GAAA6rB,IAAA/mB,EAAAggI,iBAAA9kI,GAAAk5G,aAyPlC,IAAIqrB,IACAttH,UAvPOnS,EAAA6jB,QAAc1Q,gBAAWhB,UAwPhCmQ,YAvPatiB,EAAA6jB,QAASvB,YAwPtBq9G,YAvPY3/H,EAAA6jB,QAAS87G,YAwPrBC,kBAvPgB5/H,EAAI6jB,QAAGg8G,4BAAsBD,kBAwP7CW,cAAevgI,EAAG6jB,QAvPM28G,wBAAyBD,cAwPjD3mF,SAAUj9C,KAAKqkB,UAvPSo5B,GAwPxBP,QAASl9C,KAAKqkB,UAvPUq5B,GAwPxB+pF,WAAYpkI,EAAG6jB,QAAQy9G,iBAAiB8C,WACxCC,OAAQrkI,EAAG6jB,QAAQwgH,OACnBC,QAAStkI,EAAG6jB,QAAQygH,QACpBjuH,UAAWrW,EAAG6jB,QAAQtE,aAAalJ,UACnCQ,QAvPQ7W,EAAA6jB,QAAStE,aAAQ1I,QAwPzBO,OAAQpX,EAAG6jB,QAvPMtE,aAAInI;AAwPrBa,OAAQjY,EAAG6jB,QAvPKtE,aAAOtH,OAwPvBK,QAAStY,EAAG6jB,QAvPQvL,QAwPpBisH,SAAUvkI,EAAG6jB,QAAQ0gH,SACrBC,UAAWxkI,EAAG6jB,QAAQ2gH,UACtBC,cAAezkI,EAAG6jB,QAAQ4gH,cAC1BC,YAAa1kI,EAAG6jB,QAAQ6gH,YACxBlyC,OAAQxyF,EAAG6jB,QAAQq9G,iBAAiB1uC,OACpCy5B,UAvPQhyH,EAAS,QAAQ+F,EAAA6jB,QAAaooG,UAAA,cAwPtCiE,QAASj2H,EAvPQ,QAAI+F,EAAA6jB,QAAeqsG,QAAA,cAwPpCkR,OAAQphI,EAAG6jB,QAvPKu9G,OAwPhBuD,aAAc3kI,EAAG6jB,QAvPO8gH,aAwPxBliH,MAAOziB,EAAG6jB,QAAQpB,MAClB3O,UAAW/b,EAAWuK,OACtB49H,eAAgBvjI,KAAKqkB,UAAU4iH,GAC/BjjF,SAAUhkD,KAAKqkB,UAAUijH,GAE7B7lI,GAASF,OAAO,OAAQvB,KAAKqkB,UAAUy+G,IACvC7tH,EAAuBmpE,kBAAkB38E,GAAUK,KAAK,SAASC,GAC1C,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,6BAA8B,sBAChE1G,EAAO8F,GAAG/H,EAAWyE,eAtPxB0V,IACEwF,UAEA3f,EAAA2I,YAAqB,QAAW,wBAC/BrJ,WAAc,EACV+F,KAAI,OAyPR8U,IACAwF,UAEL,SAAS/W,GACR5I,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EAtPd+F,KAAQ,OAET8U,IAwPAwF,cAED,CAtPJ,GAAAktH,IACC9uI,UAAckK,EAAG6jB,QAAA/tB,UACbqc,UAAOnS,EAAA6jB,QAAa1Q,gBAAehB,UAwPnCmQ,YAvPOtiB,EAAQ6jB,QAAAvB,YAwPfq9G,YAAa3/H,EAAG6jB,QAAQ87G,YACxBC,kBAAmB5/H,EAAG6jB,QAAQg8G,4BAA4BD,kBAC1DW,cAAevgI,EAAG6jB,QAAQ28G,wBAAwBD,cAtPvD3mF,SAAAj9C,KAAAqkB,UAAwBo5B,GACvBP,QAASl9C,KAAQqkB,UAAUq5B,GACvB+pF,WAAOpkI,EAAA6jB,QAAUy9G,iBAAA8C,WAwPjBC,OAvPQrkI,EAAG6jB,QAAAwgH,OAwPXC,QAvPQtkI,EAAG6jB,QAAQygH,QAwPnBjuH,UAAWrW,EAAG6jB,QAAQtE,aAAalJ,UACnCQ,QAAS7W,EAAG6jB,QAAQtE,aAAa1I,QACjCO,OAAQpX,EAAG6jB,QAAQtE,aAAanI,OAChCa,OAAQjY,EAAG6jB,QAAQtE,aAAatH,OAtPrCK,QAAAtY,EAAA6jB,QAAuBvL,QACtBisH,SAAcvkI,EAAG6jB,QAAA0gH,SACbC,UAAOxkI,EAAA6jB,QAAY2gH,UAwPnBC,cAvPezkI,EAAA6jB,QAAA4gH,cAwPfC,YAAa1kI,EAAG6jB,QAAQ6gH,YACxBlyC,OAAQxyF,EAAG6jB,QAAQq9G,iBAAiB1uC,OACpCy5B,UAAWhyH,EAAQ,QAAQ+F,EAAG6jB,QAAQooG,UAAW,cACjDiE,QAASj2H,EAAQ,QAAQ+F,EAAG6jB,QAAQqsG,QAAS,cAtPlDkR,OAAAphI,EAAgB6jB,QAAKu9G,OAwPhBuD,aAAc3kI,EAAG6jB,QAAQ8gH,aAtP9BliH,MAAQziB,EAAA6jB,QAASpB,MAwPZ9O,WAAY5b,EAAWuK,OAtP5B1M,OAAQoK,EAAA6jB,QAAcjuB,OAwPjBwiB,SAAUpY,EAAG6jB,QAAQzL,SAtP1B8nH,eAAQvjI,KAAkBqkB,UAAA4iH,GACxBj/G,eAAYhoB,KAAAqkB,UAAmBhhB,EAAAmhI,eAChCxgF,SAAchkD,KAAGqkB,UAAQijH,GAyPzBryH,GAvPqBspE,qBAAqB0pD,GAAcnmI,KAAA,SAAAC,GACrC,MAAXA,EAAGlI,QAwPHuB,EAAW2I,YAAY,UAAW,+BAAgC,sBAClE1G,EAAO8F,GAAG/H,EAAWyE,eACrB0V,IACAwF,UArPD3f,EAAU2I,YAAc,QAAQ,wBAwP3BrJ,WAAW,EACX+F,KAAM,OArPb8U,IACAwF,UAyPF,SAvPQ/W,GAwPP5I,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EACX+F,KAAM,OArPb8U,IACGwF,YAMZ1X,EAAA6kI,SAAS,WACLtF,KA2PJv/H,EAAG5H,OAvPS,WAwPR,GAAIyrB,IACA/tB,UAAWkK,EAvPC6jB,QAAK/tB,UAwPjBF,OAAQoK,EAAG6jB,QAvPCjuB,OAwPZuc,UAAWnS,EAAG6jB,QAAQ1R,WAGtB/S,EAAgB7E,EAAU8E,MAtP1BhI,WAAW,EACXiI,eAAG,cAwPHC,gBAAiB,aAtPlBrK,YAAA,2EACCE,WAAG,uBAwPHC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SAtPVC,UAAU,EACVyQ,SACA3N,MAAQ,WACL,MAAWshB,MA2PlBzkB,GAAcM,OAvPEjB,KAAM,aAyPnB,eAKPuB,EAAG8kI,aAvPa,WAwPZ,GAAInyH,GAvPQtY,EAAGsY,QAAY,UAwPvB,mDACItb,WAvPQ,EAwPR+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAtPhBmT,EAAqB+R,aAAQ3jB,EAAA6jB,QAAc/tB,WAAA2I,KAAA,SAAAC,GAC3B,MAARA,EAAAlI,QACAuB,EAAG2I,YAAkB,UAAK,6BAAA,sBAwP1B1G,EAvPI8F,GAAA/H,EAAOyE,gBAyPXzE,EAAW2I,YAAY,QAAS,mCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,mCAC5BrJ,WAAW,EAtPxB+F,KAAA,UAGC,eA4PJ4C,EAAGuxE,SAAW,WAtPV,GAAA5+D,GAAOtY,EAAesY,QAAA,UAwPlB,6CAtPAtb,WAAU,EACT+F,KAAS,MA0PduV,GAvPQjT,OAAMjB,KAAG,WAwPbmT,EAAuBmqE,gBAAgB/7E,EAAG6jB,QAAQ/tB,WAAW2I,KAAK,SAASC,GAtP9D,MAALA,EAAAlI,QAwPAuB,EAAW2I,YAAY,UAAW,wBAAyB,sBAtPhE1G,EAAA8F,GAAc/H,EAAAyE,gBAEjBzE,EAAa2I,YAAA,QAAA,0BACHrJ,WAAG,EACN+F,KAAU,QAGd,SAAAuD,GAwPC5I,EAAW2I,YAAY,QAAS,0BAtPpCrJ,WAAa,EACR+F,KAAQ,UA0Pd,eAKP4C,EAAG+kI,YAvPS,WAwPR,GAAIpyH,GAvPItY,EAAYsY,QAAG,UAwPnB,4CAtPItb,WAAA,EACA+F,KAAA,MA0PRuV,GAAQjT,OAAOjB,KAAK,WAChBmT,EAAuBoqE,mBAAmBh8E,EAAG6jB,QAAQ/tB,WAAW2I,KAAK,SAASC,GAtP1D,MAAjBA,EAAAlI,QACCuB,EAAA2I,YAAiB,UAAA,wBAAA,sBACjB1G,EAAA8F,GAAA/H,EAAkByE,gBAEjBzE,EAAY2I,YAAc,QAAA,4BAC3BrJ,WAAe,EACX+F,KAAU,QA0Pf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,6BAC5BrJ,WAAW,EACX+F,KAAM,UAGf,eAKP4C,EAAG4mE,MAvPK,WAwPA,GAAIj0D,GAAUtY,EAAQsY,QAAQ,UAtP7B,0CACDtb,WAAmB,EAwPX+F,KAAM,MApPduV,GAAIjT,OAAWjB,KAAI,WACnBmT,EAAiBqqE,eAAkBj8E,EAAA6jB,QAAA/tB,WAAA2I,KAAA,SAAAC,GACZ,MAAnBA,EAASlI,QAwPDuB,EAAW2I,YAAY,UAAW,uBAAwB,sBAtPlE1G,EAAa8F,GAAA/H,EAAAyE,gBAEbzE,EAAgB2I,YAAQ,QAAA,yBACxBrJ,WAAgB,EAChB+F,KAAA,QAGA,SAASuD,GACT5I,EAAe2I,YAAQ,QAAA,yBACfrJ,WAAW,EACnB+F,KAAY,UA0Pb,eAOXqN,EAAOvO,IAAI,qCAvPqC,WAyP5C,GAAIvH,GAvPIqL,EAASglI,aAAQC,WAAWC,SAAQvwI,SAwPxC4vI,EAvPI5vI,EAAWwwI,MAwPfX,EAvPI7vI,EAAiBywI,KAwPzBplI,GAAG6jB,QAvPK0gH,SAAUA,EAwPlBvkI,EAAG6jB,QAvPK2gH,UAAWA,EAwPnB/5H,EAAOe,WAMXxL,EAAGqlI,WAvPa,SAAAnB,GAwPR,GAAIoB,GAvPIz5G,WAAUq4G,EAwPdoB,IAvPI,GAAAA,GAAA,IAwPJtlI,EAAGulI,QAvPC,IA0PJvlI,EAAGulI,QAvPK,6BAwPRvlI,EAAG6jB,QAvPKu9G,OAAM,OA4P1BphI,EAAGwlI,YAvPQ,SAAcxC,GAwPrB,GAAIsC,GAvPIz5G,WAAWm3G,EAwPfsC,IAvPQ,GAAAA,GAAW,IAwPnBtlI,EAAGylI,SAvPW,IA0PdzlI,EAAGylI,SAvPC,6BAwPJzlI,EAAG0hI,KAAKsB,WAAa,OAK7BhjI,EAAGqa,MAAQ,WACPra,EAAGsa,GAvPK,GAAAb,OAyPZzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAvPK,MA0PZta,EAAGua,eACCC,YAvPQjB,EAwPRkB,QAvPQ,GAAAhB,MAAQ,KAAG,EAAQ,KA0P/BzZ,EAAGirH,YACCrwG,aAvPQxB,EAwPR+C,WAvPQ,KAwPRtB,QAvPQ,GAAApB,MAAA,KAAgB,GAAA,IAwPxBgB,QAvPQ,GAAAhB,MAwPRqB,YAvPQ,GA0PZ9a,EAAGkrH,UACCtwG,aAvPQxB,EAwPR+C,WAvPQ,KAwPRtB,QAvPQ,GAAApB,MAAQzZ,EAAGsa,GAAA45B,cAAQ,GAAAl0C,EAAAsa,GAAA62B,WAAAnxC,EAAAsa,GAAA0B,WAwP3BvB,QAvPQ,GAAAhB,MAwPRqB,YAvPQ,GA+PZ9a,EAAGmrH,cAvPa,WAyPZnrH,EAAGkrH,SAASzwG,QAvPGza,EAAA6jB,QAAAooG,WAiQnBjsH,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAvPQ,GA0PtB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACP,IAAI4K,OA9OpBzZ,EAAGob,MAAA,WACCpb,EAAAqb,OAAIxM,QAAU,GA0PlB7O,EAAGsb,MAvPK,WAwPJtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAvPK,SAAWC,EAAAC,EAAAC,GAwPf3b,EAAGsa,GAvPC,GAAAb,MAAAgC,EAAgBC,EAAAC,IA0PxB3b,EAAG4b,SAvPK,eAAY,aAAA,aAAA,aAwPpB5b,EAAG6b,OAvPK7b,EAAA4b,QAAc,GAwPtB5b,EAAG8b,iBAvPW,cAyPd9b,EAAGib,QACCpM,QAvPI,GA0PR7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAGZ7O,EAAGub,QACC1M,QAAQ,EAGZ,IAvPIkN,GAAI,GAAUtC,KAwPlBsC,GAvPQP,QAAAO,EAAAC,UAAA,EAwPR,IAAIC,GAvPQ,GAAWxC,KAwPvBwC,GAvPYT,QAAMO,EAAAC,UAAA,GAwPlBhc,EAAG2Z,SACCN,KAAM0C,EAtPNvlB,OAAQ,SAyPR6iB,KAAM4C,EACNzlB,OAAQ,0SAj4ChBpC,QACKC,OAAO,2BACPe,WAtPG,sBAAuBspI,MA4oDnC,WACI,YAOA,SAASgH,GAvPcj7H,EAAAxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAAyX,GAwPnB,GAAI5R,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAAW2c,SAvPC,CAwPZ,IAAIxU,GAvPY/F,EAAWgG,sBACXhG,GAAMgG,uBAAAwU,gBAAAxC,SAyPtBnS,GAAGykB,cAAgB,WACf,GAvPGK,IAwPC3S,UAAW5P,EAAM4P,UACjBrc,UAAWyM,EAAMzM,UACjBF,OAAQ2M,EAAM3M,OACdyK,OAAOH,EAAWG,OAtPvBskB,gBACKlC,MAAUziB,EAAA5H,OAAQusB,eAClBC,WAAAzqB,EAAAgG,uBAA4CE,OACxCwkB,WAAW,IAInBjT,GAAoBmT,kBAAWD,GAAArmB,KAAA,SAAAC,GAC3B,MAAAA,EAAAlI,QACIuB,EAAQ2I,YAAW,UAAK,oCAAA,qBAwPxB4b,EAvPerN,QAwPfjV,EAvPI8F,GAAA/H,EAAUyE,gBAyPdzE,EAvPI2I,YAAW,QAAY,wBAwPvBrJ,WAvPI,EAwPJ+F,KAvPI,QA0Pb,SAvPIuD,GAwPH5I,EAvPI2I,YAAW,QAAY,wBAwPvBrJ,WAvPI,EAwPJ+F,KAvPI,UA4PhB4C,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,wKAjDlCnpB,QACKC,OAvPO,2BAwPPe,WAvPW,uBAAwBswI,MA2S5C,WACI,YAOA,SAASC,GAvPsBl7H,EAAG1Q,EAAWhC,EAAAyC,EAAAH,EAAAL,EAAA4X,EAAAzX,GA+QzC,QAvPQ+X,KACJN,EAAsBw0D,aAAAj0D,GAAA1T,KAAA,SAAAC,GACC,MAApBA,EAAQlI,SACJwJ,EAAA6sB,UAAAnuB,EAAAhJ,KAwPCsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAI5D,QAvPQsT,KAwPJ,GAAIte,IACAqd,UAvPO/S,EAAA+S,UAwPP8+C,OAAO,EAEX73D,GAAO8F,GAvPC,mBAwPJpK,KAAMA,IAxCd,GAAIsK,GAAKC,IAETD,GAAGqU,kBAAoBhJ,MAvPC,IAAWA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAwPnCrL,EAAGsU,SAAWtU,EAAGqU,gBAvPa,GAyP9BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAvPqB,SAAKC,GAwP3BzU,EAAGuU,YAvPWE,GA2PhBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAvPQ,EAwPX/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAAW2c,SAAU,EACrB1U,EAAGgU,OAASA,CACZ,IAAI7B,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KA7NAlS,EAAG+vG,YAAc,SAASj9F,GACtB,GAAIpd,IACA6kE,QAAQ,EACR12C,QAAG/Q,EAyPP9Y,GAAO8F,GAAG,mBAtPNpK,KAAGA,KA2PXsK,EAAG2vG,YAAc,SAAU78F,GArPxB,GAAApd,IACIqd,WAAS,EAwPR68F,SAAU,EAtPf/rF,QAAA/Q,EAwPK2+C,QAAQ,EAGZz3D,GAAO8F,GAAG,mBACNpK,KAAMA,KAIdsK,EAAG4lI,MAAQ,WACP,GAAIh9H,KAtPLuoF,KAAa,UACZp4E,GAAA,SAGAo4E,KAAa,WACbp4E,GAAA,SAGDo4E,KAAW,QACVp4E,GAAA,QAGA8sH,QAAA,4CAAaj9H,IA0PjB5I,EAAG8kI,aAAe,WACd,GAAInyH,GAAUtY,EAAQsY,QAAQ,UAC1B,mDACItb,WAAW,EACX+F,KAAM,MApPduV,GAAAjT,OAAAjB,KAAA,WACGmT,EAAsBkqE,cAAQj4D,QAAA/tB,WAAA2I,KAAA,SAAAC,GAwPN,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,8BAA+B,WACjEwR,KArPDna,EAAK2I,YAAA,QAAA,wBACArJ,WAAA,EACA+F,KAAA,QAGT,SAAAuD,GACJ5I,EAAgB2I,YAAA,QAAA,gEAwPPrJ,WAAW,EACX+F,KAAM,UApPlB,eA6PJ4C,EAAG8lI,cAAgB,SAAUjiH,GAEzB,GAAIlR,GAAUtY,EAAQsY,QAAQ,UAtP/B,4CACItb,WAAgB,EAwPX+F,KAAM,MApPduV,GAAGjT,OAAOjB,KAAS,WAwPfmT,EAAuBkqE,cAAcj4D,EAAQ/tB,WAAW2I,KAAK,SAAUC,GAChD,MAAfA,EAAIlI,QAtPPuB,EAAS2I,YAAa,UAAK,8BAAA,WACxBwR,KAyPAna,EAAW2I,YAAY,QAAS,wBAtPlCrJ,WAAgB,EACf+F,KAAQ,QAGpB,SAASuD,GACA5I,EAAA2I,YAAA,QAAA,gEAwPIrJ,WAAW,EACX+F,KAAM,UAGf,sIAlJXhJ,QACKC,OAvPO,2BAwPPe,WAvPW,wBAAuBuwI,MA+Y3C,WACI,YAOA,SAvPOI,GAAAhuI,EAAAyiD,EAAAE,EAAA9oC,EAAApX,EAAAH,EAAAN,EAAAgY,EAAAC,EAAA2jH,EAAAx7H,EAwPH0nF,GAqDA,QAAS3vE,KACLlS,EAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MAtPNmzB,aAAQ,WAyPRnzB,KAxPI,MA0PRrW,EAxPeI,mBAAc6oB,GAAAx8B,KAAA,SAAAC,GAClB,MAwPHA,EAxPGlI,SACHwJ,EAAAqS,YAAW3T,EAAAhJ,KAyPXsK,EAAGsS,WAxPY,IA0PpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAASslI,GAAY99E,GACjB25B,EAAmBW,YAAYt6B,GAAOzpD,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,QACJwJ,EAAGimI,aAAevnI,EAAIhJ,KAvPtBsK,EAAAimI,aAAY9qI,QAAA,GACpBd,EAAkB8C,OAAQ,UAyPV,+CACI9F,WAAW,EACX+F,KAAM,OArPlC4C,EAAAsS,WAAA,EAyPgB4/F,EAAclyG,EAAGkmI,KAAKrkH,gBAAgB/rB,YAvPtDiC,EAAA2I,YAAA,QAAA,yBAAA,SAEK,SAAWC,GA0PJ5I,EAAW2I,YAAY,QAAS,mBAAoB,UAI5D,QAAS+gB,GAAoBtP,GAxP1BnS,EAAAkmI,KAAArkH,gBAAoB,KACpB7hB,EAAA2hB,eA0PC/P,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GAxPnD,MAAdA,EAAAlI,QACAwJ,EAAA2hB,YAAuBjjB,EAAAhJ,MACrBsK,EAAc2hB,YAAAxmB,OAAA,GA0PHpD,EAAW2I,YAAY,OAAQ,iDAAkD,WAErFV,EAAGsS,WAAY,GAtPxBva,EAAY2I,YAAA,QAAA,yBAAA,mBAEf,SAAWC,GACRtG,EAASwH,MAAA,QAAA,mBAAA,oBAEZ7B,EAAA40B,KAAA4nB,YAAA,KA0PIx8C,EAAG40B,KAAK+oB,iBAAkB,KAC1B39C,EAAG40B,KAAKipB,oBAAqB,KAC7B79C,EAAG40B,KAAKiqB,iBAAkB,KAC1B7+C,EAAG40B,KAAKqpB,iBAAkB,KAxP9Bj+C,EAAA40B,KAASi9E,aAAO,KACZ7xG,EAAA2hB,eA0PA3hB,EAAGimI,gBAGP,QAAS/zB,GAAchqD,GAEnB,GAzPIA,EAAA,CA0PAloD,EAAG40B,KAAK4nB,YAAc,KACtBx8C,EAAG40B,KAAK+oB,iBAAmB,KAC3B39C,EAAG47C,gBAxPX57C,EAAS40B,KAAAipB,oBAAS,KACV79C,EAAAo8C,mBACAp8C,EAAA40B,KAAAiqB,iBAAc,KACd7+C,EAAAw9C,gBA0PAx9C,EAAG40B,KAAKqpB,iBAAmB,KAxP/Bj+C,EAAO40B,KAAGi9E,aAAA,KACN7xG,EAAA40B,KAAMuxG,SAAA,EA0PN,IAAIlpF,IAAc,CAClBvC,GAAmBmQ,iBAAiB3C,EAAOjL,GAAax+C,KAAK,SAAUC,GAChD,MAAfA,EAAIlI,QAxPjBwJ,EAAck7C,QAAUx8C,EAAKhJ,KACjBsK,EAAAsS,WAAA,GAEPva,EAAS2I,YAAA,QAAA,yBAAA,0BAEN,SAAGC,GACN5I,EAAM2I,YAAA,QAAA,mBAAA,+BAIXV,GAAA40B,KAAA4nB,YAAwB,KACvBx8C,EAAA40B,KAAA+oB,iBAAA,KACI39C,EAAA47C,gBACA57C,EAAA40B,KAAAipB,oBAAW,KACX79C,EAAAo8C,mBACAp8C,EAAA40B,KAAAiqB,iBAAS,KACT7+C,EAAAw9C,gBA0PAx9C,EAAG40B,KAAKqpB,iBAAmB,KAC3Bj+C,EAAG40B,KAAKi9E,aAAe,KAxP3B7xG,EAAO40B,KAAGuxG,SAAA,GA6Pd,QAASrpF,GAAqBhnD,EAAWugB,EAAW0mC,GAvPhD,GAAI1mC,GAAQvgB,GAAAinD,EAAA,CA0PR/8C,EAAG40B,KAzPC+oB,iBAAM,KA0PV39C,EAAG47C,gBACH57C,EAAG40B,KAAKipB,oBAAsB,KAxP9B79C,EAAAo8C,mBA0PAp8C,EAAG40B,KAzPCiqB,iBAAM,KA0PV7+C,EAAGw9C,gBACHx9C,EAAG40B,KAAKqpB,iBAAmB,KAxP3Bj+C,EAAA40B,KAAAi9E,aAAA,KA0PA7xG,EAAG40B,KAzPCuxG,SAAM,EA0PV,IAzPIlrI,IA0PAnF,UAAWA,EACXugB,UAAWA,EAxPZ2mC,MAAAD,EA0PCE,aAAa,EAvPtBvC,GAAewC,sBAAYjiD,GAAAwD,KAAA,SAAAC,GACJ,MAAlBA,EAAUlI,QACVwJ,EAAA47C,aAAAl9C,EAAAhJ,MACIsK,EAAW47C,aAAAzgD,OAAA,GACLd,EAAA8C,OAAA,UAAA,qDA0PM9F,WAAW,EACX+F,KAAM,OArPd4C,EAAAsS,WAAW,GA2PXjY,EAzPGwH,MAAA,QAAA,yBAAA,mBA2PR,SAzPSlB,GA0PRtG,EAzPQwH,MAAM,QAAA,mBAAA,wBA6PlB7B,GAAG40B,KAzPC+oB,iBAAuB,KA0P3B39C,EAAG47C,gBACH57C,EAAG40B,KAzPKipB,oBAAM,KA0Pd79C,EAAGo8C,mBACHp8C,EAAG40B,KAAKiqB,iBAAmB,KAxP5B7+C,EAAAw9C,gBA0PCx9C,EAAG40B,KAAKqpB,iBAAmB,KAC3Bj+C,EAAG40B,KAAKi9E,aAAe,KACvB7xG,EAAG40B,KAAKuxG,SAAW,GAI3B,QAAS/oF,GAAyBtnD,EAAWomD,GAEzC,GAzPIpmD,GAAAomD,EAAA,CA0PAl8C,EAAG40B,KAzPCipB,oBAAW,KA0Pf79C,EAAGo8C,mBACHp8C,EAAG40B,KAAKiqB,iBAAmB,KAC3B7+C,EAAGw9C,gBAxPPx9C,EAAA40B,KAAQqpB,iBAAY,KAChBj+C,EAAA40B,KAAAi9E,aAAuB,KA0PvB7xG,EAAG40B,KAzPKuxG,SAAI,EA0PZ,IAAIlrI,IACAnF,UAzPIA,EA0PJomD,WAzPOA,EA0PPe,aAzPI,EA2PRvC,GAzPkB2C,yBAAApiD,GAAAwD,KAAA,SAAAC,GA0PK,MAAfA,EAAIlI,QACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,MAxPpBsK,EAAAo8C,gBAAKjhD,OAAA,GACdd,EAAW8C,OAAY,UAAS,0DAC5B9F,WAAW,EACL+F,KAAA,OA6PN4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,wBAI/C7B,GAAG40B,KAAKipB,oBAAsB,KAC9B79C,EAAGo8C,mBAzPfp8C,EAAA40B,KAAAiqB,iBAAA,KACY7+C,EAAAw9C,gBACPx9C,EAAA40B,KAAWqpB,iBAAgB,KA2PpBj+C,EAAG40B,KAAKi9E,aAAe,KACvB7xG,EAAG40B,KAAKuxG,SAAW,GAK3B,QAAS7oF,GAAyBxnD,EAAWomD,EAAYrqB,GAxPrD,GAAA/7B,GAASomD,GAAArqB,EAAA,CACV7xB,EAAA40B,KAAAiqB,iBAAA,KACC7+C,EAAAw9C,gBACDx9C,EAAA40B,KAAAqpB,iBAAA,KACCj+C,EAAA40B,KAASi9E,aAAA,KACV7xG,EAAA40B,KAAAuxG,SAAA,EACC,IAAAlrI,IACDnF,UAAAA,EACComD,WAASA,EA2PDrqB,cAAeA,EAzPxBorB,aAAc,EAEdvC,GAAc6C,0BAAAtiD,GAAAwD,KAAA,SAAAC,GACS,MAAvBA,EAAAlI,QACIwJ,EAAAw9C,aAAc9+C,EAAAhJ,MA2PAsK,EAAGo8C,gBAAgBjhD,OAAS,GAC7Bd,EAAQ8C,OAAO,UAAW,+DACtB9F,WAAW,EAzPnB+F,KAAA,OAID4C,EAAAsS,WAAA,GAEZjY,EAAewH,MAAA,QAAA,yBAAA,mBAET,SAAAlB,GACCtG,EAAAwH,MAAA,QAAA,mBAAA,wBAKP7B,GAAA40B,KAAAiqB,iBAAuB,KACvB7+C,EAAAw9C,gBACAx9C,EAAA40B,KAAAqpB,iBAA2B,KAC3Bj+C,EAAA40B,KAASi9E,aAAA,KACT7xG,EAAA40B,KAASuxG,SAAA,GAqQZ,QAAS1oF,KAxPL,GAAGz9C,EAAA40B,KAAAqpB,iBAAgB,CACfj+C,EAAA40B,KAAAi9E,aAAc,KACd7xG,EAAA40B,KAAMuxG,SAAA,EACP,IAAAlrI,IACCob,UAAcrW,EAAAkmI,KAAArkH,gBAAAxL,UACdvgB,UAAMkK,EAAAkmI,KAAArkH,gBAAA/rB,UA2PF4nD,cAAe19C,EAAG40B,KAAK+oB,iBAAiBzB,WAzPhD0B,iBAAe59C,EAAA40B,KAAmBipB,oBAAgBhsB,cAC1CisB,WAAI99C,EAAW40B,KAAKiqB,iBAAA7+B,OACpB++B,SAAG/+C,EAAA40B,KAAcqpB,iBAAI51B,KACrB40B,aAAG,EAERzC,GAAU0D,kBAAKjjD,GAAAwD,KAAA,SAAAC,GACd,GAAuB,MAAvBA,EAAWlI,OAAY,CA2PfwJ,EAAGm+C,SAAWz/C,EAAIhJ,IAYlB,KAAK,GA1PGwF,GAAA,EAAMA,EAAA8E,EAAAimI,aAAA9qI,OAAAD,IA2PV,IAAK,GAAIiP,GAAI,EAAGA,EAAInK,EAAGm+C,SAAShjD,OAAQgP,IAC/BnK,EAAGm+C,SAASh0C,GAAGke,MAAQroB,EAAGimI,aAAa/qI,GAAGmtB,MAzP5C+9G,EAAApmI,EAAAm+C,SAAA,OAAAn+C,EAAAm+C,SAAAh0C,GAAAke,KAKL,KAALroB,EAAKm+C,SAAAhjD,QACHpD,EAAY2I,YAAS,UAAA,qBAAoB,cA6P5C3I,GAAW2I,YAAY,QAAS,mCAAoC,WAxP7E,SAAKC,UAGJX,GAAA40B,KAAQi9E,aAAW,KA2PnB7xG,EAAG40B,KA1PIuxG,SAAA,GAgQf,QAASC,GA1PM1oI,EAAAo3G,EAAAzpG,GA2PX3N,EAAMmF,QA1PE,SAAWnD,EAAY0V,GA2PvB1V,EAAOo1G,KAAczpG,GAxPzB3N,EAAQ43B,OAAMlgB,EAAS,KA+P/B,QA1POixH,KACH,GAAGprI,IACAnF,UAAKkK,EAAAkmI,KAAcrkH,gBAAA/rB,UACnBmzB,MAAAjpB,EAAA40B,KAAYi9E,aAAA94F,GACZutH,YAAatmI,EAAA40B,KAAAuxG,SA2PZryH,UAAW/b,EAAWuK,OAxP9Bu/E,GAAuBK,YAAOjnF,GAAAwD,KAAA,SAAAC,GA2PH,MAAfA,EAAIlI,OAzPDkI,EAAAhJ,KAAAke,WACC5T,EAAAgT,YAAc,EACd0E,IACL3f,EAAe2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBAEf9b,EAAA2I,YAAkB,QAAAhC,EAAAhJ,KAAAme,QAAA,sBAGlB9b,EAAK2I,YAAmB,QAAA,4BAAA,uBA4P5B,SA1PSC,GACR5I,EAAI2I,YAAc,QAAA,oCAClBrJ,WAAA,EACI+F,KAAI,SAgQhB,QAASmpI,GA1PEzzH,GA2PP,GAAI7X,IACAurI,OAAQ1zH,EAAI0zH,OACZF,YAAaxzH,EAAIwzH,YACjB3yH,WA1PC5b,EAAAuK,OA4PLu/E,GA1PYa,WAAAznF,GAAmBwD,KAAA,SAAAC,GACT,MAAfA,EAAAlI,OACKkI,EAAAhJ,KAAAke,WACL7b,EAAA2I,YAAkB,UAAAhC,EAAAmV,QAAA,wBACbmyH,EAAAhmI,EAAAkmI,KAAmBrkH,gBAAA/rB,YAEnBiC,EAAA2I,YAAmB,QAAAhC,EAAAmV,QAAA,wBA6PvB9b,EAAW2I,YAAY,QAAS,oBAAqB,yBAE1D,SAAUC,GAzPjB5I,EAAS2I,YAAqB,QAAA,8BA2PlBrJ,WAAW,EAzPf+F,KAAA,SA+PR,QA1PQqpI,GAAQ3zH,GA2PZ,GA1PIH,GAAGtY,EAAesY,QAAA,UAClB,iDACGtb,WAAK,EACL+F,KAAK,MA6PZuV,GA1PQjT,OAAAjB,KAAW,WA2Pf,GA1PIxD,IACAurI,OAAA1zH,EAAA0zH,OA2PApmI,SAAUrI,EAAWuK,OAEzBu/E,GA1PYc,WAAgB1nF,GAAAwD,KAAA,SAAAC,GACjB,MAAHA,EAAGlI,OACCkI,EAAIhJ,KAAAke,WACJ7b,EAAQ2I,YAAO,UAAWhC,EAAAmV,QAAA,yBA2P1BmyH,EA1PIhmI,EAAWkmI,KAAArkH,gBAAA/rB,YA4PfiC,EAAW2I,YAAY,QAAShC,EAAImV,QAAS,yBAvPjD9b,EAAG2I,YAAY,QAAA,8BAAA,0BA4PpB,SA1PKC,GA2PJ5I,EAAW2I,YAAY,QAAS,+BAzPjCrJ,WAAe,EACd+F,KAAQ,UA6Pb,cAKP,QA1PQ4W,KA2PJhU,EAAGgT,YA1PI,EA2PPhT,EAAGkmI,KA1PI/yH,gBAAK,KA2PZnT,EAAGqS,eACHrS,EAAGkmI,KA1PIrkH,gBAAgB,KA2PvB7hB,EAAG2hB,eACHzP,IAGJ,QAASkiH,KAzPL,GAAIzhH,GAAAtY,EAAasY,QAAY,UACzB,6CACGtb,WAAA,EACA+F,KAAK,MA6PZuV,GA1POjT,OAAKjB,KAAA,WACRuB,EAAGgT,YAAK,EACRhT,EAAAkmI,KAAIrkH,gBAAM,KA2PV7hB,EAAG2hB,eACH3hB,EAAGkmI,KA1PC/yH,gBAAY,KA2PhBnT,EAAGqS,eACHH,MAIR,QAASwF,KACL1X,EAAGkmI,KAAKrkH,gBA1PgB,KA2PxB7hB,EAAG2hB,eACH3hB,EAAGkmI,KAAK/yH,gBA1PkB,KA2P1BnT,EAAGqS,eACHrS,EAAG40B,KAAK+oB,iBAAmB,KAC3B39C,EAAG47C,gBACH57C,EAAG40B,KAAKipB,oBA1PmB,KA2P3B79C,EAAGo8C,mBACHp8C,EAAG40B,KAAKiqB,iBA1PkB,KA2P1B7+C,EAAGw9C,gBACHx9C,EAAG40B,KA1PIqpB,iBAAe,KA2PtBj+C,EAAG40B,KA1PKi9E,aAAc,KA2PtB7xG,EAAG40B,KAAKuxG,SAAW,GACnBj0H,IAGJ,QA1PQw0H,GAAG5zH,GA4PP,GADA9S,EAAG2mI,YA1PShqI,KAAAC,MAAAkW,EAAmB8zH,aAAAC,MACTlxI,QAAlBqK,EAAG2mI,aAAe3mI,EAAA2mI,YAAAxrI,QAAA,GAAA,MAAA6E,EAAA2mI,YAClB,CAAQtsI,EAAA8C,OAAmB,UAAA,wCAAA9F,WAAA,EAAA+F,KAAA,QApPnC,GAAI4C,GAAKC,IArPTD,GAAAqU,kBACIhJ,MAAI,IAEJA,MAAI,KAyPJA,MAAS,KAETA,MAvPQ,KAyPRA,MAvPQ,MAyPZrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAvPQ,SAAAC,GAwPPzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAtPvBhT,EAAAm5H,OAAY,EACTn5H,EAAAo5H,OAAA,EAwPIp5H,EAAGq5H,YAAa,EAChBr5H,EAAG+S,WAAY,EAvPnB/S,EAAAsS,WAAA,EAyPItS,EAxPCu8C,gBAyPDv8C,EAxPC/C,UAyPD+C,EAAGsoD,OACHtoD,EAAGkmI,QAvPPlmI,EAAA0mI,YAASA,EACL1mI,EAAAyhB,oBAASA,EACTzhB,EAAGy9C,aAAWA,EACdz9C,EAAGkyG,cAAaA,EAChBlyG,EAAG88C,qBAAYA,EACf98C,EAAGo9C,yBAAYA,EACfp9C,EAAGs9C,yBAAeA,EAClBt9C,EAAAgU,OAAWA,EACXhU,EAAAo0H,OAAIA,EACJp0H,EAAAgmI,YAAgBA,EAyPhBhmI,EAAGqmI,aAAeA,EAvPlBrmI,EAAGumI,WAAAA,EAyPHvmI,EAAGymI,WAxPKA,EAyPRzmI,EAAGm+C,YACHn+C,EAAG40B,QAEH78B,EAxPQ2c,SAAO,CAyPf,IAAIumB,GAxPI9gC,EAAgBgG,uBAAAwU,gBAAAxC,SAyPxBD,KALAlS,EAAG8mI,UAAW,WACX9mI,EAAA40B,KAAOqpB,iBAAA,KA2PNj+C,EAAG40B,KAAKi9E,aAAe,KAzP3B7xG,EAAA40B,KAAWuxG,SAAU,IAocrBnmI,EAAG+mI,YAAc,WACb/mI,EAAG2mI,oOA5fXvyI,QAtPIC,OAAA,oCACAe,WAAY,eAAC2wI,MAwvBrB,WACI,YAOA,SAASiB,GA1PGjvI,EAAmByiD,EAAAE,EAAoC9oC,EAAe3X,EAAAO,EAAAH,EAAAN,EAAAgY,EAAAC,EAAA2jH,EAAAx7H,EA2P9E0nF,EA1PoB+zC,EAAgBC,EAAAC,EAAAv/C,EAAAv7B,EAAA66B,EAAAkgD,EAAAp7E,EA2PpCG,EA1PmBk7E,EAAmBC,EAAAC,EAAAC,EAAAC,EAAAntC,EAAAotC,EAAAjuD,GAqUtC,QAASl2D,KACLlS,GAAGu7C,eACCC,aA1PC,UACDnzB,KAAG,MA4PHmzB,aAAc,WACdnzB,KAAM,MAEVrW,EAAeI,mBAAmB6oB,IAAWx8B,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SAzPPwJ,GAAAqS,YAAc3T,EAAOhJ,KACpBsK,GAAAsS,WAAQ,IA4PX,SAAU3R,GACT5I,EA1PU2I,YAAO,QAAO,mBAAA,oBAgQhC,QA1PQ+gB,GAAMtP,GA2PVnS,GAAGinI,WA1PY,EA2Pfr1H,EA1PmB8P,eAAavP,GAAA1T,KAAA,SAAAC,GACZ,MAAhBA,EAAAlI,QACAwJ,GAAA2hB,YAAWjjB,EAAWhJ,MA2PbsK,GAAG2hB,YAAYxmB,OAAS,GAzPrCpD,EAAmB2I,YAAY,OAAU,iDAAe,WAEhDV,GAAAsS,WAAa,EA2PbtS,GAAGinI,WA1PI,GA4PP5sI,EA1PIwH,MAAA,QAAW,yBAAgC,mBA4PpD,SA1PSlB,GA2PRtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAE/C7B,GAAGkmI,KA1PKrkH,gBAAW,KA2PnB7hB,GAAG2hB,eAIP,QAASulH,KACL,GAAIjsI,IACAnF,UAAWkK,GAAGkmI,KAAKrkH,gBAAgB/rB,UACnCqxI,UAAW,WACX/mI,SAAUrI,EAAWuK,OAvPzBu/E,GAAUe,kBAAA3nF,GAAAwD,KAAA,SAAAC,GACM,MAAZA,EAAQlI,SACRwJ,GAAAw5H,mBAAiB96H,EAAAhJ,KACjBsK,GAAAw5H,mBAAuBr+H,OAAA,GA2Pfd,EAAQ8C,OAAO,UAAW,kCAAoC6C,GAAGjC,KAAK07H,uBAAuBC,gBAzPzGriI,WAAmB,EACP+F,KAAA,OA6PJ4C,GAAGsS,WA1PC,KA+PhB,QAASkkE,GA1P0BmjD,GA4P/B,GA1PkBhkI,QAAfgkI,EAAe,CACd,GAAAtnG,IACIsnG,eAAW35H,GAAAk2E,OAAAujD,uBAAAE,gBA4PX1+H,GACAnF,UAAWkK,GAAGkmI,KAAKrkH,gBAAgB/rB,UACnCqxI,UAAW,OACXC,OAAQzqI,KAAKqkB,UAAUqR,GAzP1BjyB,SAAWrI,EAAKuK,OAEjBtC,IAAAk2E,OAAA2jD,mBAAA,KA2PA75H,GAAG45H,kBACH/3C,EA1PUgB,cAAA5nF,GAAAwD,KAAA,SAAAC,GA2PN,GAAmB,MAAfA,EAAIlI,OAAgB,CAxPxB,GAAO6wI,GAAK3oI,EAAAhJ,KACN4xI,EAAAtnI,GAAAunI,cAENnzI,SAAUyO,QAAAykI,EAAW,SAAA/yG,EAAAC,GA2PbpgC,QAAQyO,QAAQwkI,EAAM,SAAUl8E,EAAQC,GAzPjC72B,EAAAizG,SAAgBr8E,EAAKs8E,gBAC5BJ,EAAW/xG,OAAK81B,EAAA,OA8PpBprD,GAAG45H,eAAiByN,EAEa,IAA7BrnI,GAAG45H,eAAez+H,QAzPnBpD,EAAA2I,YAAA,UAAA,2BAAA,cAIP3I,GAAW2I,YAAY,QAAS,mCAA+B,WA4PhE,SA1PKC,UAGTX,IAAAk2E,OAAA2jD,mBAAY,KA2PX75H,GAAG45H,kBAQX,QA1PO8N,KACH,GAAGzsI,IACHnF,UAAAkK,GAAAkmI,KAAArkH,gBAAA/rB,UA2PIqxI,UAAW,MACX/mI,SAAUrI,EAAWuK,OAxPzBu/E,GAAciB,eAAgB7nF,GAAAwD,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,SACIwJ,GAAAk6H,gBAAWx7H,EAAAhJ,KACXsK,GAAAsS,WAAM,EA2PFtS,GAAGk6H,gBAAgB/+H,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,wBAA0B6C,GAAGkmI,KAAKrkH,gBAAgBS,aAzPzEjrB,WAAK,EACb+F,KAAa,OAIb4C,GAAAsS,WAAc,KAmRzB,QA1PQ+mG,KA2PJ,GAAuC1jH,QAAnCqK,GAAGs3H,SAAS6C,oBAAkC,CAC9C,GAAI9nG,IACAooG,UAAaz6H,GAAGs3H,SAAS6C,oBAAoBM,UAC7CpkH,UAAarW,GAAGkmI,KAAKrkH,gBAAgBxL,WAxP1Cpb,GA2PKnF,UAAWkK,GAAGkmI,KAAKrkH,gBAAgB/rB,UACnCqxI,UAAW,WACXC,OAAQzqI,KAAKqkB,UAAUqR,GACvBjyB,SAAUrI,EAAWuK,OAEzBtC,IAAGs3H,SAASjc,yBAA2B,KAzP1Cr7G,GAAAq6H,0BACTr6H,GAAAs3H,SAAA3b,4BAAA,KA2PY37G,GAAGs6H,2BACHt6H,GAAGs3H,SAASC,qBAAuB,KA1P/Cv3H,GAAAu6H,oBACYv6H,GAAAs3H,SAAAqQ,mBAAA,KACP3nI,GAAAs3H,SAAWzlB,aAAoB,KA4PxB7xG,GAAGk8G,WACHl8G,GAAGs3H,SAASsQ,aAAe,GA1P9B/lD,EAAiBmB,oBAAyB/nF,GAAAwD,KAAA,SAAoBC,GAC/C,MAApBA,EAAoBlI,QACpBwJ,GAAAq6H,uBAAyC37H,EAAAhJ,KA6PrBgJ,EAAIhJ,KAAKyF,OAAS,EA1PnC6E,GAAmB26H,gBAAA,GAEnB36H,GAAA26H,gBAAA,EACU36H,GAAA46H,mBAAA,EACV56H,GAAA66H,YAAA,EAEAxgI,EAAA8C,OAAA,UAAA,uBACU9F,WAAA,EACV+F,KAAA,QAGW4C,GAAGsS,WAAA,GAGdjY,EAAAwH,MAAuB,QAAU,yBAAK,8BAKtC7B,IAAAs3H,SAAYjc,yBAAA,KA4PPr7G,GAAGq6H,0BA1PRr6H,GAAAs3H,SAAa3b,4BAAA,KACb37G,GAAQs6H,2BACRt6H,GAAQs3H,SAAAC,qBAAA,KACRv3H,GAAAu6H,oBACAv6H,GAAAs3H,SAAYqQ,mBAAA,KACZ3nI,GAAAs3H,SAAYzlB,aAAA,KACZ7xG,GAAAk8G,WACAl8G,GAAAs3H,SAASsQ,aAAA,GAOZ,QAAG9M,KACA,GAAAnlI,QAAAqK,GAAAs3H,SAAAjc,yBAA+C,CAC/C,GAAAhpF,IACAmpF,mBAAgBx7G,GAAAs3H,SAAAjc,yBAAAG,oBAEhBvgH,GACAnF,UAAoBkK,GAAAkmI,KAAArkH,gBAAA/rB,UACpBqxI,UAAc,cACLC,OAAAzqI,KAAAqkB,UAAAqR,GACTjyB,SAAArI,EAAAuK,OAEAtC,IAAAs3H,SAAA3b,4BAAgC,KAChC37G,GAAAs6H,2BACAt6H,GAAAs3H,SAAAC,qBAAyB,KACzBv3H,GAAAu6H,oBACAv6H,GAAAs3H,SAAAqQ,mBAA8B,KAC9B3nI,GAAAs3H,SAAgBzlB,aAAA,KAChB7xG,GAAAk8G,WACAl8G,GAAAs3H,SAAAsQ,aAA2B,GAC3B/lD,EAAAoB,uBAA2BhoF,GAAAwD,KAAA,SAAAC,GACb,MAAdA,EAAclI,QACHwJ,GAAAs6H,wBAAA57H,EAAAhJ,KACXsK,GAAAsS,WAAiB,GAGjBjY,EAAqBwH,MAAA,QAAA,yBAAA,wBAErB,SAAalB,GACbtG,EAAcwH,MAAA,QAAA,mBAAA,6BA+PT7B,IAAGs3H,SAAS3b,4BAA8B,KA1PlD37G,GAAWs6H,2BACPt6H,GAAAs3H,SAAYC,qBAAsB,KACtCv3H,GAAAu6H,oBA4PQv6H,GAAGs3H,SAASqQ,mBAAqB,KA1PzC3nI,GAASs3H,SAAOzlB,aAAA,KACT7xG,GAAAk8G,WACCl8G,GAAAs3H,SAAAsQ,aAAc,GAiQtB,QA3PI5M,KA4PA,GA3P4BrlI,QAAxBqK,GAAAs3H,SAAQ3b,4BAAgB,CA4PxB,GA3PItpF,IACAypF,sBAAe97G,GAAAs3H,SAAA3b,4BAAAG,uBAEpB7gH,GACCnF,UAAWkK,GAAAkmI,KAAYrkH,gBAAS/rB,UA4P5BqxI,UAAW,OACXC,OAAQzqI,KAAKqkB,UAAUqR,GACvBjyB,SAAUrI,EAAWuK,OAEzBtC,IAAGs3H,SAASC,qBAAuB,KA1P3Cv3H,GAASu6H,oBACFv6H,GAAAs3H,SAAYqQ,mBAAA,KACf3nI,GAAAs3H,SAAAzlB,aAAuB,KACnB7xG,GAAAk8G,WA4PAl8G,GAAGs3H,SA3PIsQ,aAAkB,GA4PzB/lD,EA3PYqB,gBAAqBjoF,GAAGwD,KAAA,SAAAC,GACjB,MAAXA,EAAAlI,QA4PAwJ,GAAGu6H,iBAAmB77H,EAAIhJ,KA1P3BsK,GAAAsS,WAAY,GAGfjY,EAAQwH,MAAM,QAAS,yBAA0B,iBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,sBA+P3C7B,IAAGs3H,SAASC,qBAAuB,KACnCv3H,GAAGu6H,oBACHv6H,GAAGs3H,SAASqQ,mBAAqB,KA1PzC3nI,GAASs3H,SAAAzlB,aAAqB,KACtB7xG,GAAAk8G,WACAl8G,GAAAs3H,SAAWsQ,aAAQ,GA+P3B,QAASC,KA1PL,GAAqClyI,QAArCqK,GAAAs3H,SAAAC,qBAA+C,CAC3C,GAAIllG,IACAgqF,eAAGr8G,GAAAs3H,SAAyBC,qBAAAlb,gBA6P5BphH,GACAnF,UA3PQkK,GAAAkmI,KAAWrkH,gBAAA/rB,UA4PnBqxI,UA3PQ,MA4PRC,OAAQzqI,KAAKqkB,UAAUqR,GACvBjyB,SAAUrI,EAAWuK,OAEzBtC,IAAGs3H,SAASzlB,aAAe,KAC3B7xG,GAAGk8G,WACHl8G,GAAGs3H,SAASsQ,aAAe,GAC3B/lD,EAAmBsB,eAAeloF,GAAKwD,KAAK,SAAUC,GA1PrD,GAAA,MAAAA,EAAAlI,OAAA,CAED,GAAA6wI,GAAkB3oI,EAAAhJ,KACR4xI,EAAAtnI,GAAA8nI,gBA6PF1zI,SAAQyO,QAAQykI,EAAM,SAAU/yG,EAAQC,GA1PtCpgC,QAAAyO,QAAAwkI,EAAA,SAAAl8E,EAAAC,GACQ72B,EAAK3C,mBAAgBu5B,EAAAv5B,kBACxBy1G,EAAA/xG,OAAA81B,EAAA,OAIZprD,GAAOk8G,QAAAmrB,EACU,IAAjBrnI,GAAAk8G,QAAiB/gH,QACpBpD,EAAmB2I,YAAc,UAAU,iCAAe,cAIlD3I,GAAW2I,YAAG,QAAA,mCAAA,WA6PnB,SA3PKC,UA+PRX,IAAGs3H,SAASzlB,aAAe,KAC3B7xG,GAAGk8G,WACHl8G,GAAGs3H,SAASsQ,aAAe,GAOnC,QAASG,KACL,GAAI9sI,IACAnF,UAAWkK,GAAGkmI,KAAKrkH,gBAAgB/rB,UACnCqxI,UA3PG,MA4PH/mI,SAAUrI,EAAWuK,OAEzBu/E,GA3PcuB,gBAAqBnoF,GAAAwD,KAAA,SAAAC,GAC5B,MAAAA,EAAAlI,QA4PCwJ,GAAG43H,iBAAmBl5H,EAAIhJ,KAC1BsK,GAAGsS,WAAY,EACf01H,wBAEAjwI,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GA1PjB5I,EAAS2I,YAAkB,QAAA,mBAAA,oBAqR3B,QAAS44G,KAEL,GAAgC3jH,QAA5BqK,GAAG+3H,UAAUkQ,YAA0B,CACvC,GAAI51G,IACAqpG,WAAc17H,GAAG+3H,UAAUkQ,YAAYvM,WACvCrlH,UAAarW,GAAGkmI,KAAKrkH,gBAAgBxL,WAErCpb,GACAnF,UAAWkK,GAAGkmI,KAAKrkH,gBAAgB/rB,UACnCqxI,UAAW,WACXC,OAAQzqI,KAAKqkB,UAAUqR,GACvBjyB,SAAUrI,EAAWuK,OAEzBtC,IAAG+3H,UAAUyD,0BAA4B,KACzCx7H,GAAGy7H,yBACHz7H,GAAG+3H,UAAUmQ,6BAA+B,KA1PpDloI,GAASi4H,4BACDj4H,GAAG+3H,UAASU,sBAAuB,KACnCz4H,GAAAk4H,qBA4PAl4H,GAAG+3H,UA3PC4P,mBAAyB,KA4P7B3nI,GAAG+3H,UA3PCI,sBAAqB,KA4PzBn4H,GAAGmoI,qBA1PHnoI,GAAA+3H,UAAUK,qBAAAziI,OA4PVqK,GAAG+3H,UA3PCqQ,cAAmB,GA4PvBvmD,EA3PeyB,qBAAAroF,GAAAwD,KAAA,SAAAC,GACE,MAAbA,EAAQlI,QACRwJ,GAAAy7H,sBAAqB/8H,EAAAhJ,KA4PbgJ,EAAIhJ,KAAKyF,OAAS,EA1PlB6E,GAAA26H,gBAAA,EAEAtgI,EAAA8C,OAAA,UAAA,uBACT9F,WAAA,EACS+F,KAAA,OAGT4C,GAAAsS,WAAS,GAETva,EAAS2I,YAAe,QAAA,yBAAA,uBA6PxB,SA3PSC,GA4PR5I,EA3PO2I,YAAA,QAAyB,mBAAI,4BA+PxCV,IAAG+3H,UAAUyD,0BA3PE,KA4Pfx7H,GAAGy7H,yBACHz7H,GAAG+3H,UA3PSmQ,6BAAuB,KA4PnCloI,GAAGi4H,4BACHj4H,GAAG+3H,UAAUU,sBAAwB,KACrCz4H,GAAGk4H,qBACHl4H,GAAG+3H,UAAU4P,mBA3Pc,KA4P3B3nI,GAAG+3H,UAAUI,sBA3PS,KA4PtBn4H,GAAGmoI,qBACHnoI,GAAG+3H,UAAUK,qBAAuBziI,OACpCqK,GAAG+3H,UA3PQqQ,cAAY,GAgQ/B,QAASvQ,KACL,GAA8CliI,QAA1CqK,GAAG+3H,UAAUyD,0BAAwC,CACrD,GA3PCnpG,IACEirF,OAASt9G,GAAA+3H,UAAAyD,0BAA2Ble,QAEpCriH,GACAnF,UAAAkK,GAAAkmI,KAAArkH,gBAA0B/rB,UAC1BqxI,UAAS,cACTC,OAAAzqI,KAAAqkB,UAAmBqR,GACnBjyB,SAASrI,EAAAuK,OAEZtC,IAAG+3H,UAAUmQ,6BAAA,KACbloI,GAAGi4H,4BA4PHj4H,GAAG+3H,UAAUU,sBAAwB,KACrCz4H,GAAGk4H,qBACHl4H,GAAG+3H,UAAU4P,mBAAqB,KAClC3nI,GAAG+3H,UAAUI,sBAAwB,KACrCn4H,GAAGmoI,qBACHnoI,GAAG+3H,UAAUK,qBAAuBziI,OA1P5CqK,GAAS+3H,UAAAqQ,cAAA,GACDvmD,EAAY0B,wBAA4BtoF,GAAAwD,KAAW,SAAAC,GAC/CsB,GAAA69C,oBAAMloD,OACNqK,GAAA69C,oBAAyB,GA4PzB79C,GAAGu4H,wBAA0B5iI,OA1P7BqK,GAAAu4H,wBAAM,GACa,MAAnB75H,EAAAlI,SACAwJ,GAAAi4H,yBAAWv5H,EAAAhJ,KACHsK,GAAAi4H,yBAAe98H,OAAA,GACvBd,EAAU8C,OAAW,UAAA,0CAAA6C,GAAA+3H,UAAAC,mBA4PT3gI,WAAW,EA1Pf+F,KAAA,OAEA4C,GAAAw4H,mBAAuB,EAChCx4H,GAAAizB,UAAmB,EACVjzB,GAAAy9F,MAAA,EACAz9F,GAAAy4H,sBAAe,IAEfz4H,GAAAw4H,mBAAe,EAEnBx4H,GAAAsS,WAAe,SAiQvBtS,IAAG+3H,UAAUmQ,6BAA+B,KAC5CloI,GA3PGi4H,4BA4PHj4H,GAAG+3H,UA3PSU,sBAAe,KA4P3Bz4H,GAAGk4H,qBACHl4H,GAAG+3H,UAAU4P,mBAAqB,KAClC3nI,GA3PC+3H,UAAAI,sBAAA,KACDn4H,GAAGmoI,qBACHnoI,GAAG+3H,UAAAK,qBAA0BziI,OAC7BqK,GAAG+3H,UAASqQ,cAAA,GAgQpB,QA3PQ1P,KA4PJ,GAAiD/iI,QAA7CqK,GAAG+3H,UAAUmQ,6BAA2C,CACxD,GAAI71G,IACAurF,kBAAqB59G,GAAG+3H,UAAUmQ,6BAA6BtqB,mBAE/D3iH,GA1PHnF,UAAAkK,GAAAkmI,KAAArkH,gBAA4B/rB,UAC1BqxI,UAAS,OACRC,OAAMzqI,KAAAqkB,UAAAqR,GACNjyB,SAAArI,EAAAuK,OAEJtC,IAAA+3H,UAAUU,sBAAA,KA4PVz4H,GAAGk4H,qBACHl4H,GAAG+3H,UA3PC4P,mBAAW,KA4Pf3nI,GAAG+3H,UA3PSI,sBAAe,KA4P3Bn4H,GAAGmoI,qBACHnoI,GAAG+3H,UAAUK,qBAAuBziI,OA1PpCqK,GAAG+3H,UAASqQ,cAAA,GACZvmD,EAAG2B,iBAAmBvoF,GAAAwD,KAAA,SAAAC,GACnBsB,GAAAu4H,wBAA8B5iI,OAC9BqK,GAAAu4H,wBAAwB,GACd,MAAV75H,EAAAlI,SACAwJ,GAAAk4H,kBAAwBx5H,EAAAhJ,KAC3BsK,GAAAk4H,kBAAmB/8H,OAAqB,GAC5Bd,EAAA8C,OAAW,UAAK,mCAAA6C,GAAA69C,oBAAAlsB,iBACjBt6B,WAAA,EACA+F,KAAA,OAEA4C,GAAAizB,UAAA,EACHjzB,GAAAy9F,MAAc,IAEnBz9F,GAAUizB,UAAK,EACNjzB,GAAAy9F,MAAM,GA6PVz9F,GAAGsS,WAAY,SAtPvBtS,IAAG+3H,UAASU,sBAAe,KAC3Bz4H,GAAGk4H,qBACHl4H,GAAG+3H,UAAS4P,mBAAe,KA4P3B3nI,GAAG+3H,UAAUI,sBAAwB,KACrCn4H,GAAGmoI,qBACHnoI,GAAG+3H,UAAUK,qBAAuBziI,OA1P5CqK,GAAS+3H,UAAAqQ,cAAc,GAgQvB,QA3PQxM,KA4PJ,GA3P2BjmI,QA2PvBqK,GAAG+3H,UA3PCU,sBAAmC,CA6PvC,GA3PIpmG,IACA4rF,WAAUj+G,GAAA+3H,UAAWU,sBAAAxa,YAEtBhjH,GACAnF,UAAUkK,GAAAkmI,KAAArkH,gBAAA/rB,UACVqxI,UAAS,OACZC,OAAAzqI,KAAAqkB,UAAmBqR,GACfjyB,SAAQrI,EAAWuK,OA6PvBtC,IAAG+3H,UA3PSI,sBAAW,KA4PvBn4H,GAAGmoI,qBACHnoI,GAAG+3H,UAAUK,qBAAuBziI,OACpCqK,GAAG+3H,UA3PKqQ,cAAgB,GA4PxBvmD,EA3PY4B,gBAAsBxoF,GAAAwD,KAAU,SAAQC,GA4PhD,GA3PgB,MA2PZA,EAAIlI,OA3Pe,CA6PnB,GAAI6wI,GAAO3oI,EAAIhJ,KACX4xI,EAAOtnI,GAAGqoI,iBAzPdj0I,SAAGyO,QAAUykI,EAAA,SAAA/yG,EAAAC,GACTpgC,QAAGyO,QAAQwkI,EAAW,SAAGl8E,EAAAC,GACzB72B,EAAW3C,mBAAuBu5B,EAAAv5B,kBA4P1By1G,EAAK/xG,OAAO81B,EAAM,OAI9BprD,GAAGmoI,kBAAoBd,CA1P5B,KAAU,GAAAnsI,KAAK8E,IAAAmoI,kBA4PNnoI,GAAGmoI,kBAAkBjtI,GAAGm9H,QAAU17H,KAAKC,MAAMoD,GAAGmoI,kBAAkBjtI,GAAGm9H,QAErC,KAAhCr4H,GAAGmoI,kBAAkBhtI,QA1PrBpD,EAAA2I,YAAe,UAAA,kCAAA,cA+PnB3I,GAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,UAxPrBX,IAAS+3H,UAAAI,sBAAmB,KACpBn4H,GAAAmoI,qBACAnoI,GAAA+3H,UAAWK,qBAAwBziI,OACnCqK,GAAA+3H,UAAWqQ,cAAA,GA+PnB,QA3PQxP,KA4PJ54H,GAAGq4H,QA3PQr4H,GAAA+3H,UAAAI,sBAAuBE,QAAAQ,QAgQtC,QAASyP,KACL,GA3PGrtI,IACCnF,UAAWkK,GAAAkmI,KAAArkH,gBAAqB/rB,UA4PhCqxI,UAAW,WACX/mI,SAAUrI,EAAWuK,OAEzBu/E,GAAmB6B,sBAAsBzoF,GAAKwD,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,SACJwJ,GAAG87H,uBAAyBp9H,EAAIhJ,KAOhCsK,GAAGsS,WAAY,KAO3B,QAASm3E,KACL,GAAyC9zF,QAArCqK,GAAGsoD,IAAIk2D,2BAAyC,CAChD,GAAInsF,IACAosF,qBAAwBz+G,GAAGsoD,IAAIk2D,2BAA2BC,sBAE1DxjH,GA1PHnF,UAAAkK,GAAAkmI,KAAArkH,gBAAyB/rB,UA4PtBqxI,UAAW,OA1PZC,OAAAzqI,KAAUqkB,UAAAqR,GACTjyB,SAAMrI,EAAAuK,OA6PVtC,IAAGsoD,IA3PCzJ,iBAAqB,KA4PzB7+C,GAAGi8H,0BA1PHj8H,GAAAsoD,IAAIigF,eAAM,GA4PV1mD,EA3PkB8B,kBAAK1oF,GAAgBwD,KAAA,SAAAC,GACnC,GAAW,MAAXA,EAAAlI,OAAW,CAEX,GAAA6wI,GAAU3oI,EAAAhJ,KA4PF4xI,EAAOtnI,GAAGwoI,kBAzPnBp0I,SAAAyO,QAAAykI,EAAwB,SAAA/yG,EAAAC,GACxBpgC,QAAUyO,QAAAwkI,EAAA,SAA+Bl8E,EAAAC,GACzC72B,EAAAk0G,aAA2Bt9E,EAAAlS,UACjBouF,EAAA/xG,OAAA81B,EAAwB,OAIlCprD,GAAAi8H,uBAAoBoL,EACa,IAAjCrnI,GAAUi8H,uBAAuB9gI,QACjCpD,EAAU2I,YAAgB,UAAA,gCAAA,cAIrB3I,GAAQ2I,YAAc,QAAG,mCAAA,WA6P9B,SAAUC,OAUrB,QAASuxG,GA3PYhqD,GA6PjB,GAAIA,EAAO,CACPloD,GAAG40B,KAAK4nB,YAAc,KACtBx8C,GA3PC40B,KAAA+oB,iBAAA,KACD39C,GAAG47C,gBACH57C,GAAG40B,KAAAipB,oBAAwB,KAC3B79C,GAAGo8C,mBACHp8C,GAAG40B,KAAAiqB,iBAAA,KACH7+C,GAAGw9C,gBACHx9C,GAAG40B,KAAAqpB,iBAAoB,KACvBj+C,GAAG40B,KAAAi9E,aAAU,KACb7xG,GAAG40B,KAAAuxG,SAAU,EACb,IAAGlpF,IAAA,CACHvC,GAAamQ,iBAAuB3C,EAAAjL,GAAAx+C,KAAA,SAAAC,GACvB,MAAVA,EAAAlI,QA4PKwJ,GAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,GAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAzP/D,SAAUC,GACT5I,EAAM2I,YAAA,QAAA,mBAAA,+BA+PVV,IAAG40B,KA3PC4nB,YAAc,KA4PlBx8C,GAAG40B,KA3PC+oB,iBAAW,KA4Pf39C,GAAG47C,gBACH57C,GAAG40B,KA3PCipB,oBAAqB,KA4PzB79C,GAAGo8C,mBA1PHp8C,GAAG40B,KAAAiqB,iBAAU,KACb7+C,GAAGw9C;AACHx9C,GAAG40B,KAAAqpB,iBAAU,KACbj+C,GAAG40B,KAAAi9E,aAAoB,KACvB7xG,GAAG40B,KAAAuxG,SAAU,GA+PrB,QA3PQrpF,GAAahnD,EAAgBugB,EAAA0mC,GA6PjC,GAAI1mC,GA3POvgB,GAAAinD,EAAsB,CA4P7B/8C,GAAG40B,KA3PI+oB,iBAAA,KA4PP39C,GAAG47C,gBACH57C,GAAG40B,KA3PIipB,oBAAA,KA4PP79C,GAAGo8C,mBACHp8C,GAAG40B,KA3PKiqB,iBAAG,KA4PX7+C,GAAGw9C,gBACHx9C,GAAG40B,KAAKqpB,iBA3PmB,KA4P3Bj+C,GAAG40B,KAAKi9E,aA3PQ,KA4PhB7xG,GAAG40B,KAAKuxG,SA3PQ,EA4PhB,IAAIlrI,IACAnF,UA3PWA,EA4PXugB,UA3PWA,EA4PX2mC,MAAOD,EACPE,aA3PW,EA6PfvC,GA3PewC,sBAAoBjiD,GAAAwD,KAAA,SAAAC,GA4PZ,MAAfA,EAAIlI,QA1PJwJ,GAAG47C,aAAYl9C,EAAAhJ,MA4PVsK,GAAG47C,aAAazgD,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,qDACtB9F,WAAW,EACX+F,KAAM,OAvPnB4C,GAAAsS,WAAU,GAEVjY,EAAUwH,MAAA,QAAA,yBAAqB,mBAE/B,SAAAlB,GACAtG,EAAAwH,MAAU,QAAA,mBAAuB,wBA+PpC7B,IAAG40B,KAAK+oB,iBAAmB,KAC3B39C,GAAG47C,gBA1PX57C,GAAS40B,KAAAipB,oBAAA,KACD79C,GAAGo8C,mBACHp8C,GAAA40B,KAAIiqB,iBAAM,KA4PV7+C,GAAGw9C,gBACHx9C,GAAG40B,KAAKqpB,iBAAmB,KA1P3Bj+C,GAAA40B,KAAIi9E,aAAM,KA4PV7xG,GAAG40B,KA3PCuxG,SAAc,GA+P1B,QAAS/oF,GAAyBtnD,EAAWomD,GAEzC,GA3PIpmD,GAAGomD,EAAoB,CACvBl8C,GAAG40B,KAAAipB,oBAAU,KACb79C,GAAGo8C,mBACHp8C,GAAG40B,KAAAiqB,iBAAoB,KACvB7+C,GAAGw9C,gBACHx9C,GAAG40B,KAAAqpB,iBAAU,KACbj+C,GAAA40B,KAAAi9E,aAAmB,KA4PnB7xG,GAAG40B,KA3PIuxG,SAAA,EA4PP,IA3PIlrI,IACAnF,UAAQA,EA4PRomD,WA3POA,EA4PPe,aA3PW,EA6PfvC,GA3PgB2C,yBAAWpiD,GAAAwD,KAAA,SAAAC,GACL,MA2PdA,EAAIlI,QACJwJ,GAAGo8C,gBAAkB19C,EAAIhJ,MA1PrBsK,GAAGo8C,gBAAWjhD,OAAA,GACdd,EAAG8C,OAAO,UAAA,0DACP9F,WAAA,EACA+F,KAAA,OA+PP4C,GAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAzPtD,SAAUlB,GACVtG,EAAAwH,MAAA,QAAoB,mBAAA,wBAIvB7B,IAAG40B,KAAAipB,oBAAU,KACb79C,GAAGo8C,mBA4PHp8C,GAAG40B,KAAKiqB,iBAAmB,KAC3B7+C,GAAGw9C,gBACHx9C,GAAG40B,KAAKqpB,iBAAmB,KAC3Bj+C,GAAG40B,KAAKi9E,aAAe,KA1P/B7xG,GAAS40B,KAAAuxG,SAAA,GAgQT,QAAS7oF,GAAyBxnD,EAAWomD,EAAYrqB,GAErD,GAAI/7B,GA3PIomD,GAAmBrqB,EAAgB,CA4PvC7xB,GAAG40B,KA3PCiqB,iBAAW,KA4Pf7+C,GAAGw9C,gBACHx9C,GAAG40B,KA3PCqpB,iBAAqB,KA4PzBj+C,GAAG40B,KAAKi9E,aAAe,KA1PvB7xG,GAAG40B,KAAAuxG,SAAU,EACb,IAAGlrI,IACAnF,UAAUA,EACVomD,WAAUA,EACbrqB,cAAmBA,EACforB,aAAQ,EA6PZvC,GA3PmB6C,0BAAItiD,GAAAwD,KAAA,SAAAC,GACD,MAAdA,EAAIlI,QA4PJwJ,GAAGw9C,aAAe9+C,EAAIhJ,MA1PtBsK,GAAQo8C,gBAAcjhD,OAAU,GAC5Bd,EAAQ8C,OAAA,UAAc,+DAClB9F,WAAW,EA4PX+F,KA3PI,OAIZ4C,GAAGsS,WAAA,GA6PHjY,EA3POwH,MAAA,QAAA,yBAA0C,mBA6PtD,SA3PSlB,GA4PRtG,EA3PQwH,MAAA,QAAW,mBAAuB,wBAgQ9C7B,IAAG40B,KAAKiqB,iBAAmB,KAC3B7+C,GA3PGw9C,gBA4PHx9C,GAAG40B,KAAKqpB,iBAAmB,KAC3Bj+C,GA3PC40B,KAAAi9E,aAAA,KACD7xG,GAAG40B,KAAAuxG,SAAU,GAsQrB,QAAS1oF,KAzPT,GAAAz9C,GAAS40B,KAAAqpB,iBAAyB,CAC1Bj+C,GAAA40B,KAAMi9E,aAAA,KACN7xG,GAAA40B,KAAAuxG,SAAmB,EACnB,IAAAlrI,IACAob,UAAUrW,GAAAkmI,KAAWrkH,gBAAAxL,UA4PjBvgB,UAAWkK,GAAGkmI,KAAKrkH,gBAAgB/rB,UA1P3C4nD,cAAmB19C,GAAA40B,KAAA+oB,iBAA2BzB,WACtC0B,iBAAe59C,GAAK40B,KAAAipB,oBAAAhsB,cACpBisB,WAAG99C,GAAA40B,KAAAiqB,iBAA6B7+B,OA4PhC++B,SAAU/+C,GAAG40B,KAAKqpB,iBAAiB51B,KACnC40B,aAAa,EAEjBzC,GAAY0D,kBAAkBjjD,GAAKwD,KAAK,SAAUC,GAC9C,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAGm+C,SAAWz/C,EAAIhJ,IA1PnB,IAAA2xI,GAAY3oI,EAAAhJ,KA4PP4xI,EAAOtnI,GAAGimI,YAEd7xI,SAAQyO,QAAQykI,EAAM,SAAU/yG,EAAQC,GACpCpgC,QAAQyO,QAAQwkI,EAAM,SAAUl8E,EAAQC,GAChC72B,EAAO3C,mBAAqBu5B,EAAOv5B,kBACnCy1G,EAAK/xG,OAAO81B,EAAM,OAvPlCprD,GAAAm+C,SAAAkpF,EA4P+B,IAAvBrnI,GAAGm+C,SAAShjD,QA1PdpD,EAAA2I,YAAA,UAAA,qBAAA,cAGN3I,GAAa2I,YAAU,QAAA,mCAAA,WA6PxB,SAAUC,UAxPbX,IAAG40B,KAAIi9E,aAAA,KACP7xG,GAAA40B,KAAAuxG,SAAmB,GAmQ3B,QAASuC,GAAS5yI,GACC,IAAXkK,GAAG88F,MACH6rC,IACAzB,KAxPQ,IA2PRlnI,GAAG88F,MACH8rC,KACAlB,KAxPQ,IA2PR1nI,GAAG88F,MACH+rC,KACAd,KAGW,IAAX/nI,GAAG88F,MACHgsC,KACAR,KAEW,IAAXtoI,GAAG88F,MACHkpC,KACA9zB,EAAcp8G,IAElBo8G,EAAcp8G,GA1PdkK,GAAAo8H,cA4PAp8H,GAAGs8H,iBACHt8H,GAAG+oI,kBACH/oI,GAAG08H,mBA4EP,QA3PQiM,KA4PJ9mD,EA3PYO,cAAmBpiF,GAAAkmI,KAAArkH,gBAAA/rB,WAAA2I,KAAA,SAAAC,GACnB,MAALA,EAAKlI,QACLwJ,GAAAunI,eAAgB7oI,EAAAhJ,KA4PfsK,GAAG88F,IAAM,EACToqC,IACAlnI,GAAGtK,QAASsK,GAAGwuB,UAAUxuB,GAAG2mI,eA1P/B3mI,GAAAsS,WAAA,GAEDva,EAAa2I,YAAY,QAAA,yBAAA,SA6P1B,SA3PIC,GACH5I,EAAQ2I,YAAA,QAAmB,mBAAA,UAiQnC,QAASkoI,MAEL/mD,EA3PQQ,gBAAariF,GAAAkmI,KAAArkH,gBAAA/rB,WAAA2I,KAAA,SAAAC,GA4PE,MAAfA,EAAIlI,QA1PRwJ,GAAA8nI,iBAAmBppI,EAAAhJ,KACfsK,GAAA88F,IAAQ,EA4PR98F,GAAGsS,WA3PI,EA4PPo1H,IACA1nI,GAAGtK,QA3PKsK,GAAAwuB,UAAexuB,GAAA2mI,gBA6PvB5uI,EAAW2I,YA3PO,QAAA,yBAAA,SA8PtB,SAAUC,GACN5I,EA3PO2I,YAAY,QAAA,mBAAA,UAkQ/B,QAASmoI,MACLhnD,EA3PKS,iBAAAtiF,GAAAkmI,KAAArkH,gBAAA/rB,WAAA2I,KAAA,SAAAC,GACO,MAALA,EAAKlI,QACLwJ,GAAAqoI,kBAAkB3pI,EAAAhJ,KAClBsK,GAAA88F,IAAK,EACLirC,IACA/nI,GAAAtK,QAAKsK,GAAAwuB,UAAmBxuB,GAAA2mI,gBAExB5uI,EAAK2I,YAAW,QAAA,yBAAA,SA6PpB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,UAM5D,QA3PQooI,MA4PJjnD,EA3PYU,kBAAmBviF,GAAAkmI,KAAArkH,gBAAA/rB,WAAA2I,KAAA,SAAAC,GACnB,MAALA,EAAKlI,QACLwJ,GAAAwoI,mBAAgB9pI,EAAAhJ,KACfsK,GAAA88F,IAAM,EACN98F,GAAAsS,WAAW,EACXg2H,IACAtoI,GAAAtK,QAAAsK,GAAewuB,UAAAxuB,GAAA2mI,gBA6Pf5uI,EAAW2I,YAAY,QAAS,yBAA0B,SAE/D,SA3PSC,GA4PR5I,EA3PW2I,YAAA,QAAmB,mBAAA,UA+PtC,QAASslI,MACLnkD,EAAmBW,YAAYxiF,GAAGkmI,KAAKrkH,gBAAgB/rB,WAAW2I,KAAK,SAAUC,GAC1D,MAAfA,EAAIlI,QACJwJ,GAAGimI,aAAevnI,EAAIhJ,KACtBsK,GAAG88F,IA3PI,EA4PP98F,GAAGsS,WA3PI,EA4PP4/F,EA3PYlyG,GAAAkmI,KAAMrkH,gBAAS/rB,YAE5BiC,EAAU2I,YAAK,QAAA,yBAAA,SA6PnB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,UAI5D,QA3PQu8H,IAAGroG,GA4PP50B,GAAGk9H,2BA3P4B,SAAAv/E,GAC3BA,EAAQzB,WAAel8C,GAAA29C,iBAAAzB,YA6P3BtnB,EAAKsnB,WAAal8C,GAAG40B,KAAK+oB,iBAAiBzB,WAC3CtnB,EAAK/C,cAAgB7xB,GAAG40B,KAAKipB,oBAAoBhsB,cACjD+C,EAAKuoG,WAAan9H,GAAG40B,KAAKwoG,iBAAiBD,WAC3CvoG,EAAKmqB,SAAW/+C,GAAG40B,KAAK6K,SAzPrBz/B,GAAK+S,WAUJijH,EAAUqH,SAAAt/H,MAAAU,KAAA,SAAAC,GACN3G,EAAW2I,YAAQ,UAAA,wBAAgB,SACnCwR,IACAlS,GAAAgT,YAAe,EACfhT,GAAA+S,WAAA,GA4PD,SA3PCpS,GACA5I,EAAU2I,YAAQ,iCA6PtBV,GAAG0R,WA5QJskH,EAAKsH,QAAe1oG,GAAAn2B,KAAA,SAAAC,GACf3G,EAAW2I,YAAA,UAAA,sBAAA,SA4PXwR,IACAlS,GAAGgT,YAAa,GA1PnB,SAAArS,GA4PG5I,EAAW2I,YAAY,iCAzP3BV,GAAG0R,UA2QX,QAASs3H,MACL,GAAI/tI,IACAnF,UAAWkK,GA3PCkmI,KAAArkH,gBAAsB/rB,UA4PlCmzB,MAAOjpB,GAAGk2E,OA3PM2jD,mBAAW2D,WA4P3B8I,YAAatmI,GAAGk2E,OA3PI+yD,WA4PpBn1H,UAAW/b,EAAWuK,OAE1Bu/E,GAAmBC,cAAc7mF,GAAKwD,KAAK,SAAUC,GA1PtC,MA2PPA,EA3PIlI,OACAkI,EAAIhJ,KAAGke,WA4PP7b,EA3PI2I,YAAW,UAAYhC,EAAWmV,QAAA,wBA4PtC80H,IACA3oI,GA3PGo8H,eA6PHrkI,EAAW2I,YAAY,QAAShC,EAAImV,QAAS,wBAEjD9b,EAAW2I,YAAY,QAAS,2CAA4C,gCAEjF,SA3PSC,GACR5I,EAAQ2I,YAAW,QAAA,4CA4PfrJ,WAAW,EACX+F,KAAM,SAOlB,QA3PQ8rI,MA4PJ,GA3PIjuI,IACAnF,UAAAkK,GAAAkmI,KAAArkH,gBAAA/rB,UA4PAmzB,MAAOjpB,GAAGs3H,SAASzlB,aAAa94F,GAChCutH,YAAatmI,GAAGs3H,SAASsQ,aA1PzB9zH,UAAW/b,EAAGuK,OA6PlBu/E,GA3PIE,gBAAA9mF,GAAAwD,KAAA,SAAAC,GA4PmB,MAAfA,EAAIlI,OACAkI,EAAIhJ,KAAKke,WA1Pd7b,EAAW2I,YAAA,UAAAhC,EAAAmV,QAAA,0BACd+0H,KACA5oI,GAAAs8H,kBA6PQvkI,EAAW2I,YAAY,QAAShC,EAAImV,QAAS,0BAxPrD9b,EAAA2I,YAAA,QAAA,sCAAA,2BAEJ,SAAOC,GACH5I,EAAA2I,YAAA,QAAA,uCACArJ,WAAc,EA4PV+F,KAAM,SAOlB,QAAS+rI,MA1PN,GAAAluI,IACInF,UAAOkK,GAAAkmI,KAAArkH,gBAAyB/rB,UAChCmzB,MAAOjpB,GAAA+3H,UAAAI,sBAAqBp/G,GAC5BqwH,MAAAppI,GAAA+3H,UAAiBK,qBAAAntC,OACjBq7C,YAAOtmI,GAAA+3H,UAAaqQ,cA4PnBt0H,UAAW/b,EAAWuK,OAzP3Bu/E,GAAeG,iBAAY/mF,GAAAwD,KAAA,SAAAC,GACH,MAApBA,EAAOlI,OA4PEkI,EAAIhJ,KAAKke,WACT7b,EAAW2I,YAAY,UAAWhC,EAAImV,QAAS,2BA1P5Dg1H,KACa7oI,GAAA+oI,mBAEAhxI,EAAA2I,YAAA,QAA2BhC,EAAAmV,QAAA,2BAGpC9b,EAAA2I,YAA0B,QAAA,iCAAA,4BAE1B,SAAAC,GACA5I,EAAS2I,YAAA,QAAqB,wCAC9BrJ,WAAS,EACT+F,KAAU,SAkQjB,QAASisI,MA1PN,GAAApuI,IACInF,UAAUkK,GAAAkmI,KAAArkH,gBAAc/rB,UA4PvBmzB,MAAOjpB,GAAGsoD,IAAIzJ,iBAAiBg/E,cA1PhCyI,YAAUtmI,GAAAsoD,IAAAigF,eACVz0H,UAAA/b,EAAAuK,OAEHu/E,GAAGI,kBAA2BhnF,GAAAwD,KAAA,SAAAC,GACjB,MAAVA,EAAAlI,OACAkI,EAAAhJ,KAAAke,WACA7b,EAAU2I,YAAqB,UAAAhC,EAAAhJ,KAAAme,QAAA,4BAC/Bi1H,KACA9oI,GAAA08H,oBA6PS3kI,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,4BAxP3D9b,EAAU2I,YAAgB,QAAA,iCAAA,6BA6P1B,SAAUC,GA1Pd5I,EAAA2I,YAAmB,QAAY,yCACvBrJ,WAAA,EACA+F,KAAA,SAkQX,QA3POipI,MAEH,GAAGprI,IACAnF,UAAKkK,GAAAkmI,KAAArkH,gBAAmB/rB,UACxBmzB,MAAAjpB,GAAA40B,KAAei9E,aAAA94F,GACfutH,YAAKtmI,GAAA40B,KAAAuxG,SACLryH,UAAK/b,EAAeuK,OA6PvBu/E,GAAmBK,YAAYjnF,GAAKwD,KAAK,SAAUC,GAC5B,MAAfA,EAAIlI,OA1PbkI,EAAAhJ,KAAoBke,WACZ7b,EAAA2I,YAAiB,UAAAhC,EAAAhJ,KAAAme,QAAA,sBA4PZmyH,MAxPPjuI,EAAgB2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,sBAGb9b,EAAG2I,YAAiB,QAAI,4BAAA,uBA6P7B,SA3PKC,GA4PJ5I,EA3PO2I,YAAY,QAAa,oCAC5BrJ,WAAG,EA4PH+F,KA3PG,SAkQf,QAASmpI,IAAWzzH,GAChB,GAAI7X,IACAurI,OAAQ1zH,EAAI0zH,OA1PpBF,YAASxzH,EAAAwzH,YA4PD3yH,WAAY5b,EAAWuK,OAE3Bu/E,GA3PYa,WAAgBznF,GAAAwD,KAAA,SAAAC,GA4PxB,GA3PO,MAAHA,EAAGlI,OACH,GAAGkI,EAAAhJ,KAAMke,UAET,OADG7b,EAAY2I,YAAA,UAAAhC,EAAAmV,QAAA,wBACff,EAAAw2H,SACG,IAAS,GACTX,GACQ,MA6PH,KAAK,GA1PFC,IACA,MA6PH,KAAK,GACDC,IACA,MAEJ,KAAK,GA1PhBC,IACc,MACP,KAAA,GACD9C,SAIAjuI,GAAA2I,YAAA,QAAAhC,EAAAmV,QAAA,4BAGR9b,GAAe2I,YAAA,QAAA,oBAAA,yBA6Pf,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,8BAC5BrJ,WAAW,EACX+F,KAAM,SAKlB,QAASqpI,IA3PM3zH,GA4PX,GAAIH,GA3POtY,EAAMsY,QAAA,UA4Pb,iDA1PItb,WAAA,EACA+F,KAAG,MA8PXuV,GAAQjT,OAAOjB,KAAK,WA1PjB,GAAAxD,IACCurI,OAAW1zH,EAAA0zH,OA4PPpmI,SAAUrI,EAAWuK,OAEzBu/E,GAAmBc,WAAW1nF,GAAKwD,KAAK,SAAUC,GA1PjD,GAAc,MAAdA,EAAAlI,OACL,GAAAkI,EAAmBhJ,KAAAke,UAER,OADC7b,EAAW2I,YAAK,UAAAhC,EAAAmV,QAAA,yBACjBf,EAAew2H,SACT,IAAA,GACMX,GACD,MAEH,KAAA,GA4PKC,IA1PN,MA6PE,KAAK,GACDC,IACA,MAzPrB,KAAA,GACkBC,IA4PG,MA1PN,KAAG,GACG9C,SAIhBjuI,GAAW2I,YAAA,QAAAhC,EAAAmV,QAAA,6BAGX9b,GAAA2I,YAAA,QAAA,8BAAA,0BAED,SAAUC,GACT5I,EAAW2I,YAAY,QAAA,+BA4PnBrJ,WAAW,EA1PhB+F,KAAA,UA8PJ,cAKP,QAASspI,IA3PG5zH,GA8PR,GAFA9S,GAAG2mI,eACH3mI,GAAG2mI,YA3PIhqI,KAAAC,MAAAkW,EAAA8zH,aAAAC,MA4PelxI,QAAlBqK,GAAG2mI,aAA4B3mI,GAAG2mI,YAAYxrI,QAAU,GAAuB,MAAlB6E,GAAG2mI,YAChE,CAActsI,EAAQ8C,OAAO,UAAW,wCAA0C9F,WAAW,EAAM+F,KAAM,OAE7G,GAAIse,IAAS,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,WAzP/H1b,IAAAtK,QAASsK,GAAAwuB,SACL,KAAI,GAAAtzB,KAAM8E,IAAA2mI,YACN3mI,GAAAtK,KAAAmC,KAAWmI,GAAG2mI,YAAKzrI,GAAAorI,aACnBtmI,GAAAupI,QAAUtvI,EAAO,QAAA+F,GAAA2mI,YAAmBzrI,GAAAw0C,SAAA,MACpC1vC,GAAAwuB,OAAA32B,KAAa6jB,EAAG9U,SAAO5G,GAAAupI,SAAA,GA6P3BvpI,IAAGwpI,OAAS12H,EAAI00H,OA1PhBxnI,GAAAm/C,UAAArsC,EAAAqsC,UA6PAn/C,GAAGypI,QA3PS,SAAS/5G,EAAAC,GA4PjBwC,QA3PQC,IAAA1C,EAAWC,IA6PvB3vB,GAAG+tB,kBA3PY27G,QAAA,aA4Pf1pI,GAAGm5B,SACClK,QACIC,QAEQrG,GAAI,WA1PP9qB,KAAK,SACHuwB,SAAA,EACPC,SAAW,WAvsCvB,GAAIvuB,IAAKC,IAETD,IAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MA1PO,MA4PXrL,GAAGsU,SAAWtU,GAAGqU,gBAAgB,GAEjCrU,GAAGuU,YAAc,EACjBvU,GAAGwU,qBA1PM,SAAAC,GA2PLzU,GAAGuU,YA1PSE,GA6PhBzU,GAAG88F,IA1PK,EA2PR98F,GAAGinI,WA1PQ,EA4PXjnI,GAAGgT,YAAa,EAChBhT,GAAGm5H,OAAQ,EACXn5H,GAAGo5H,OAAQ,EAzPXp5H,GAAGq5H,YAAY,EA2Pfr5H,GAAG+S,WA1PS,EA2PZ/S,GAAGsS,WA1PS,EA2PZtS,GAAGu8C,gBACHv8C,GAAGk2E,UACHl2E,GAAG+3H,aAzPH/3H,GAAAs3H,YA2PAt3H,GAAG/C,UACH+C,GAAGsoD,OACHtoD,GAAG0oI,SA1PQA,EA2PX1oI,GAAGyhB,oBA1PaA,EA2PhBzhB,GAAG63H,iDA1PeA,EA2PlB73H,GAAG04H,6CA1P4CA,EA2P/C14H,GAAGy9C,aA1PSA,EA2PZz9C,GAAG2oI,cA1PSA,EA2PZ3oI,GAAG4oI,gBA1PSA,GA2PZ5oI,GAAG6oI,iBA1PSA,GA2PZ7oI,GAAG8oI,kBA1PmBA,GA2PtB9oI,GAAGgmI,YA1PSA,GA2PZhmI,GAAG44H,OAASA,EACZ54H,GAAGw2E,gCA1PiBA,EA2PpBx2E,GAAGq5G,sBA1PiBA,EA2PpBr5G,GAAG86H,8BA1P+BA,EA2PlC96H,GAAGg7H,0BAA4BA,EAC/Bh7H,GAAGs5G,uBAAyBA,EAC5Bt5G,GAAG47H,iBAAmBA,EACtB57H,GAAGypF,4BAA8BA,EACjCzpF,GAAGkyG,cAAgBA,EACnBlyG,GAAG88C,qBAAuBA,EAC1B98C,GAAGo9C,yBAA2BA,EAC9Bp9C,GAAGs9C,yBAA2BA,EAC9Bt9C,GAAG6nI,YAAcA,EACjB7nI,GAAGi9H,SAAWA,GACdj9H,GAAGgpI,eAAiBA,GACpBhpI,GAAGkpI,iBA1PkBA,GA2PrBlpI,GAAGmpI,kBA1PiBA,GA2PpBnpI,GAAGqpI,mBA1PqBA,GA2PxBrpI,GAAGqmI,aAAeA,GAClBrmI,GAAGumI,WAAaA,GAChBvmI,GAAG0mI,YAAcA,GACjB1mI,GAAGymI,WAAaA,GAChBzmI,GAAGm+C,YACHn+C,GAAG40B,QAEH78B,EAAW2c,SAAU,CACrB,IAAIumB,IAAY9gC,EA1PGgG,uBAAAwU,gBAAAxC,SA2PnBD,KAu1BAlS,GAAG8mI,UAAY,WACX9mI,GAAG40B,KAAKqpB,iBAAmB,KA1P/Bj+C,GAAA40B,KAASi9E,aAAS,KACd7xG,GAAG40B,KAAAuxG,SAAa,IA2UpBnmI,GAAGo8H,YA3Pa,WA4PZp8H,GAAGk2E,OA3PIujD,uBAAe,KA4PtBz5H,GAAGk2E,OA3PI2jD,mBAAwB,KA4P/B75H,GAAG45H,kBACH55H,GAAGk2E,OA3PI+yD,WAAgB,IA8P3BjpI,GAAG2pI,aA3Pa,WA4PZ3pI,GAAGk2E,OAAO+yD,WA3PK,IA8PnBjpI,GAAGs8H,eA3Pa,WA4PZt8H,GAAGs3H,SAAS6C,oBAAsB,KAElCn6H,GAAGs3H,SA3PKjc,yBAAuB,KA4P/Br7G,GAAGq6H,0BACHr6H,GAAGs3H,SAAS3b,4BAA8B,KAC1C37G,GAAGs6H,2BACHt6H,GAAGs3H,SA3PSC,qBAAc,KA4P1Bv3H,GAAGu6H,oBACHv6H,GAAGs3H,SA3PIqQ,mBAAe,KA4PtB3nI,GAAGs3H,SA3PSzlB,aAAA,KA4PZ7xG,GAAGk8G,WACHl8G,GAAGs3H,SA3PSsQ,aAAA,IA8PhB5nI,GAAG4pI,gBA3Pa,WA4PZ5pI,GAAGs3H,SA3PSsQ,aAAW,IA8P3B5nI,GAAG+oI,gBAAkB,WA1PrB/oI,GAAA+3H,UAASkQ,YAAqB,KAE1BjoI,GAAA+3H,UAAIyD,0BAAiC,KA4PrCx7H,GAAGy7H,yBACHz7H,GAAG+3H,UA3PImQ,6BAAe,KA4PtBloI,GAAGi4H,4BACHj4H,GAAG+3H,UA3PIU,sBAAkB,KA4PzBz4H,GAAGk4H,qBACHl4H,GAAG+3H,UA3PI4P,mBAAe,KA4PtB3nI,GAAG+3H,UA3PSI,sBAAmB,KA4P/Bn4H,GAAGmoI,qBACHnoI,GAAG+3H,UA3PSqQ,cAAW,IA8P3BpoI,GAAG6pI,iBA3PS,WA4PR7pI,GAAG+3H,UA3PKqQ,cAAO,IA8PnBpoI,GAAG08H,iBA3PK,WA4PJ18H,GAAGsoD,IAAIk2D,2BA3PyB,KA4PhCx+G,GAAGsoD,IAAIzJ,iBA3PQ,KA4Pf7+C,GAAGsoD,IAAIigF,eA3Pa,IA8PxBvoI,GAAG8pI,WAAa,WACZ9pI,GAAG40B,KAAK4nB,YAAc,KACtBx8C,GAAG40B,KAAK+oB,iBAAmB,KAC3B39C,GAAG47C,gBACH57C,GAAG40B,KAAKipB,oBA3PmB,KA4P3B79C,GAAGo8C,mBACHp8C,GAAG40B,KAAKiqB,iBA3PkB,KA4P1B7+C,GAAGw9C,gBACHx9C,GAAG40B,KA3PIqpB,iBAAe,KA4PtBj+C,GAAG40B,KA3PKi9E,aAAc,KA4PtB7xG,GAAG40B,KAAKuxG,SAAW,IAGvBnmI,GAAG+pI,kBA3Pa,WA4PZ/pI,GAAGsoD,IA3PIigF,eAAe,IAmZ1BvoI,GAAA+mI,YAAS,WACL/mI,GAAA2mI,4nBAxtCRvyI,QACKC,OAAO,oCACPe,WA1PW,mBAAe4xI,MAgtDnC,WACI,YAOA,SAASgD,GA3PWjyI,EAAW0S,EAAY1Q,EAAAgY,EAAsB4oC,EAAAG,EAAAtgD,EAAAH,EAAAwgD,EA4P7DG,EAAiBR,EAAaxoC,EAAgBi4H,EAAiBC,EAAwB/vI,EAAuByX,EAAwB8oC,GA4DtI,QAASiyE,KAEL3sH,EAAGu7C,eAAkBC,aAAc,UAAWnzB,KAAM,MAASmzB,aAAc,WAAYnzB,KAAM,MAC7FroB,EA3PGmqI,wBAAethH,GAAA,EAAAuhH,OAAA,YAAAvhH,GAAA,EAAAuhH,OAAA,YA8PlBr4H,EA3Pc8D,mBAAApX,KAAA,SAAAC,GA4PS,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsc,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,QACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBmlD,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAAUC,GA1PtE,MAAAA,EAAAlI,QA4PIwJ,EAAGk7C,QAAUx8C,EAAIhJ,KA1P/BsK,EAAAsS,WAAA,GAESva,EAAa2I,YAAA,QAAA,yBAAA,0BAEjB,SAAWC,GA4PN5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAxPxDV,EAAAsS,WAAK,GAETva,EAAA2I,YAAA,QAAA,yBAAA,mBA6PD,SAAUC,GA1PT5I,EAAW2I,YAAY,QAAS,mBAAkB,oBA6PtDV,EA3PGsS,WAAA,GA6PHva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SA3PCC,GA4PA5I,EA3PI2I,YAAW,QAAA,mBAAA,aA+PvB,QAAS+6C,GAAuBC,EAAuBrlC,GAQnD,GANArW,EAAG47C,gBACH57C,EAAG29C,iBAAmB,KA1P1B39C,EAAAo8C,mBACIp8C,EAAA69C,oBAAU,KA4PV79C,EAAGqqI,iBACHrqI,EAAG82C,aA3Pc,KACb4E,GAAuBrlC,EAAA,CA4PvB,GAAIpb,IA1PRygD,sBAA8BA,EACtBrlC,UAAIA,EA6PRskC,GA3PmBgB,uBAAuB1gD,GAAIwD,KAAA,SAASC,GACnC,MAAZA,EAAAlI,QA4PAwJ,EAAG47C,aA3PMl9C,EAAAhJ,KA4PLsK,EAAG47C,aA3PCzgD,OAAA,GA4PJd,EA3PI8C,OAAA,UAAA,6BAAA6C,EAAAyW,gBAAAC,aAAArf,WAAA,EAAA+F,KAAA,OA6PR4C,EAAGsS,WA3PM,GA6PTva,EA3PQ2I,YAAA,QAAA,yBAAA,aA6Pb,SA3PSC,GA4PR5I,EAAW2I,YA3PC,QAAA,yBAAA,kBA8PhBV,GAAG47C,gBACH57C,EAAG29C,iBA3Pa,KA4PhB39C,EAAGo8C,mBACHp8C,EAAG69C,oBA3Pc,KA4PjB79C,EAAGqqI,iBACHrqI,EAAG82C,aA3Pa,KA4PhB92C,EAAGyW,gBAAiB,KACpBzW,EAAGi+C,iBAAkB,KAI7B,QAAShC,GA3P0BC,GA4PZvmD,SAAfumD,EA1PDpB,EAAeqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,SACPwJ,EAAAo8C,gBAAW19C,EAAAhJ,KACXsK,EAAMsS,WAAA,MA+PVtS,EAAGo8C,mBA1PXp8C,EAAS69C,oBAAgB,KACjB79C,EAAAqqI,iBACArqI,EAAA82C,aAAA,MA+PR,QAASuF,GAA+BiuF,GA1PhB30I,SAApB20I,EACItvF,EAAUsB,2BAAAguF,GAAA7rI,KAAA,SAAAC,GACM,MAAZA,EAAQlI,SACRwJ,EAAAqqI,cAAqB3rI,EAAAhJ,KA4PjBsK,EAAGsS,WAAY,MAIvBtS,EAAGqqI,iBACHrqI,EAAG82C,aA3PS,MA+PpB,QAAS2G,KAEL,GAAIxiD,IACAyiD,cAAe19C,EAAG29C,iBA3PEzB,WA4PpB0B,iBAAkB59C,EAAG69C,oBAAoBhsB,cACzCisB,WAAY99C,EAAG82C,aA3PMgI,UA4PrBC,SAAU/+C,EAAGi+C,iBA3PO51B,KA6PxBmyB,GAAYwE,WAAW/jD,GAAKwD,KAAK,SAAUC,GA1PvB,MA2PZA,EAAIlI,QACJwJ,EAAGm+C,SAAWz/C,EA3PEhJ,KA4PhB8E,EAAOqI,QAAQ7C,EA3PCm+C,SAAA,SAAA3wC,GA4PZA,EAAE5X,QA3PM,KA6PPoK,EAAGm+C,SA3PQhjD,OAAA,EA4PZpD,EAAW2I,YAAY,OAAQ,8CAA+C,WAE9E6pI,KAEJxyI,EA3PO2I,YAAA,QAAA,mCAAA,WA6PZ,SAAUC,MAGjB,QAASsvG,GA3PkBh1E,EAAAuvG,GA4PnBvvG,EACArpB,EAAuB8P,eAAeuZ,GAAWx8B,KAAK,SAAUC,GAzPrD,MAAZA,EAAYlI,QA4PmB,IAAlBg0I,GACAxqI,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAG6hB,gBAAkB,OAzPhC7hB,EAAYyqI,eAAK/rI,EAAAhJ,KACPsK,EAAA0qI,mBAAA,KACZ1qI,EAAc2qI,gBAAe,KACzB3qI,EAAA4qI,oBAA+B,MAKvB5qI,EAAA2hB,YAAOxmB,OAAA,EACRd,EAAG8C,OAAa,UAAA,4BAAA6C,EAAAmT,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OACV4C,EAAAyqI,eAAe,GAC5BpwI,EAAU8C,OAAQ,UAAW,4BAAyB6C,EAAA6qI,mBAAA5+F,aAAA50C,WAAA,EAAA+F,KAAA,OA6PjD4C,EAAGsS,WAAY,GAzPxBva,EAAe2I,YAAA,QAAA,yBAAA,qBAEf,SAAUC,GACT5I,EAAY2I,YAAQ,QAAA,mBAAA,uBAGrBV,EAAA2hB,eACC3hB,EAAAyqI,kBA4PAzqI,EAAG6hB,gBA3PQ,KA4PX7hB,EAAGmqI,yBACHnqI,EAAG8qI,kBA3Pa,MA+PxB,QAASruD,GAAkC5mD,GACrBlgC,SAAdkgC,GACA71B,EAAG2qI,gBAAkB,KACrB3qI,EAAG+qI,oBACH/qI,EAAG4qI,oBAAsB,KACzBlwF,EAAmB+hC,kCAAkC5mD,EAAW9gB,EAAc1U,QAAQ5B,KAAK,SAAUC,GAC9E,MAAfA,EAAIlI,SA1PjBwJ,EAAc+qI,iBAAYrsI,EAAAhJ,KACtBsK,EAAAsS,WAAc,OA+PbtS,EAAG2qI,gBAAkB,KA1PxB3qI,EAAA+qI,oBACT/qI,EAAA4qI,oBAAA,MA+PI,QA5PQI,GAAAn1G,EAAAo1G,GA+PJ,GADAjrI,EAAGsS,WAAY,EACXujB,EAAW,CA3PC,IAAfo1G,IACLjrI,EAAAkrI,cAA8B,EACrBlrI,EAAA8qI,kBAAA,KAEN,IAAA7vI,IACA46B,UAAcA,EA6PL7V,OAA+BrqB,QAAtBqK,EAAG2qI,gBAAgC3qI,EAAG2qI,gBAAgB7rF,UAAY,EA3PpFC,SAAcppD,QAAAqK,EAAA4qI,oBAAA5qI,EAAA4qI,oBAAAviH,KAAA,KA+PTqyB,GAAmBwD,kBAAkBjjD,GAAKwD,KAAK,SAAUC,GACrDsB,EAAGsS,WAAY,EACI,MAAf5T,EAAIlI,OACe,IAAfy0I,GA1PJjrI,EAAAmrI,iBAAczsI,EAAgBhJ,KA6P1By8B,QAAQC,IAAIpyB,EAAGmrI,kBACfnrI,EAAGkrI,cAAe,IA1PvBlrI,EAAAm+C,SAAAz/C,EAAAhJ,KACG8E,EAAAqI,QAAA7C,EAAAm+C,SAAA,SAAA3wC,GACHA,EAAA5X,QAAA,KA8PUoK,EAAGm+C,SAAShjD,OAAS,EA3P3CpD,EAAyB2I,YAAA,OAAA,8CAAA,WAEzB6pI,MAGAxyI,EAAuB2I,YAAA,QAAA,mCAAA,UACvBV,EAAAsS,WAAqB,IAErB,SAAA3R,UAEAX,GAAA8qI,kBAA4B,KAC5B9qI,EAAAkrI,cAAuB,EACvBlrI,EAAAsS,WAAmB,EAOtB,QAAG84H,KACAprI,EAAAgT,YAAA,EACAhT,EAAAqrI,uBAAiB,EACjBrrI,EAAA/C,UA6PC+C,EAAGsrI,aAAetrI,EAAGurI,gBA3PtBvrI,EAAAwrI,OAAA,EA6PCC,IACAC,IACA1rI,EAAG2rI,gBAAkB,KACrBC,EAAY,GAEZ5rI,EAAG6rI,aACHpuF,IAIJ,QAASquF,KA1PT,GAAAtxI,EAASmI,KAAO3C,EAAA/C,QAAA9B,OAAA,EAAA,CA6PR,GAAIF,IA3PLyiD,cAAkB19C,EAAA29C,iBAAczB,WAChC0B,iBAAyB59C,EAAE69C,oBAAehsB,cA6PrCisB,WAAc99C,EAAG82C,aAAagI,UAC9BitF,WAAcC,IA3PtBjtF,SAAe/+C,EAAAi+C,iBAAwB51B,KA+PnCmyB,GA5PIsxF,sBAAe7wI,GAAmBwD,KAAA,SAAgBC,GACtC,KAARA,EAAIlI,OACAkI,EAAGhJ,KAiQHqC,EA5PW2I,YAAA,QAAA,8CAJXV,EAAAgT,YAAA,EA6PAhT,EAAGqrI,uBA5PoB,EA6PvBY,4BAKJjsI,EAAGgT,YA5PI,EA6PPhT,EAAGqrI,uBA5PgB,IA8PxB,SAAU1qI,UAIb5I,GAAW2I,YAAY,UAAW,sCAI1C,QAASwrI,GA5PMC,EAAYC,GAiQvBpsI,EAAGqrI,uBA5PwB,EA6P3B7wI,EAAOqI,QAAQspI,EAAUE,aAAc,SAAUD,GAC7CA,EAASE,YAAa,IA1P9BF,EAASE,YAAA,EAGLH,EAAGI,iBAAmBH,EAAAI,aAuQtBC,IAKJ,QAASA,KAELjyI,EAAOqI,QA5PK7C,EAAA0sI,cAAW,SAAYP,GA6P3BA,EAAUI,mBA3PXvsI,EAAA/C,OAAUkvI,EAAKQ,eAAAR,EAAAI,kBA6PlBp6G,QA5PIC,IAAAz1B,KAAWqkB,UAAYhhB,EAAA/C,WA+P/B2vI,IACA5sI,EAAGsrI,aA5PI9wI,EAAAyC,OAAmB+C,EAAAsrI,aAAAtrI,EAAA/C,QA6P1ByuI,IACAlxI,EA5POqI,QAAA7C,EAAA0sI,cAAsB,SAAAP,GACzB3xI,EAAGqI,QAAAspI,EAAgBE,aAAA,SAAAD,GAChBA,EAAAI,eAAexsI,EAAA/C,OAAAkvI,EAAAQ,eACfP,EAAAE,YAAiB,EA8PZF,EAASE,YAAa,MAKtC,QA5PQM,KA8PJz6G,QAAQC,IA5PIpyB,EAAG/C,OA8Pf,IAAI4vI,KACJ,KAAK,GAAI9lH,KAAO/mB,GAAG/C,OA3PZ+C,EAAA/C,OAAA83G,eAAAhuF,IACA8lH,EAAAh1I,MACAkvB,IAAAA,EACArxB,KAAAsK,EAAA/C,OAAgB8pB,IAK3BoL,SAASC,IAAAy6G,GA8PLryI,EA5PIqI,QAAA7C,EAAAm+C,SAAgB,SAAA3wC,GA6PhBA,EAAEs/H,oBAGN36G,QAAQC,IAAIpyB,EAAGm+C,SAAS,IAExB3jD,EA5POqI,QAAA7C,EAAAm+C,SAAA,SAAA3wC,GACH,IAAG,GAAAuZ,KAAAvZ,GAAAu+H,WACAv+H,EAAAu+H,WAAeh3B,eAAAhuF,IA6PVvZ,EAAEs/H,eAAej1I,MACbkvB,IAAKA,EACLrxB,KAAM8X,EAAEu+H,WAAWhlH,OAMnCoL,QA5PIC,IAAApyB,EAAAm+C,SAAe,IA8PnB3jD,EAAOqI,QAAQ7C,EAAGm+C,SAAU,SAAU3wC,GA3PtC,GAAA9N,KACIlF,GAAIqI,QAAI2K,EAAAs/H,eAAgB,SAAA9pI,GACpBxI,EAAGqI,QAAWgqI,EAAI,SAAA/zF,GACX91C,EAAA+jB,MAAW+xB,EAAA/xB,KAAU/jB,EAAUtN,OAAGojD,EAAApjD,MACnCgK,EAAS7H,KAAAmL,OAgQftD,EAAOvE,SAAW0xI,EAAW1xI,OAC7BqS,EAAE5X,QA5PE,EA+PJ4X,EAAE5X,QAAS,IAMnBoK,EAAG6rI,aAGP,QAASH,KACL,GAAIqB,KACJ,KAAK,GAAI92H,KAAKjW,GA5PEgtI,YAAG,CA6Pf,GAAIl0F,IACA6zF,cA5PW3sI,EAAAgtI,YAAiB/2H,GA6P5Bg3H,cA5PW,OAAArmI,SAAqBqP,GAAA,GAAA,KA6PhCo2H,gBAEJ,KAAK,GAAIx0H,KAAK7X,GAAGsrI,aAAc,CAC3B,GAAI1iI,GAAQpO,EAAOihG,KAAK3iD,EAAKuzF,cACzBG,aAAgBxsI,EAAGsrI,aAAazzH,GAAGihC,EAAK6zF,gBAE5C,KA5PI/jI,EAAO,CA6PP,GA5PIskI,IA6PAV,aA5PUxsI,EAAAsrI,aAAoBzzH,GAAAihC,EAAA6zF,eAC9BL,YAAQ,EAEZxzF,GAAGuzF,aAAYx0I,KAAAq1I,IA+PvBH,EAAQl1I,KAAKihD,GAEjB94C,EAAG0sI,cA5PgBK,EAiQvB,QA5PQf,KA6PJ,GA5PImB,KA8PJ,KAAK,GAAIhB,KAAansI,GAAG0sI,cACjB1sI,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGC,WAC5Ca,EAAYntI,EAAG0sI,cAAcP,GAAWQ,eAAiB3sI,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGG,aA1PzGW,EAAcntI,EAAA0sI,cAAWP,GAAAQ,eAAA,EA8P7B,OA5POQ,GAiQX,QAASC,KAELxB,EAAY,MACZ,IAAI3wI,IAKAyiD,cAAe19C,EAAG29C,iBAAiBzB,WACnC0B,iBAAkB59C,EAAG69C,oBAAoBhsB,cA3PjDisB,WAAS99C,EAAA82C,aAAqBgI,UAC1Bz2B,KAAAroB,EAAAi+C,iBAAA51B,KAEA8J,SAAIC,IAAAn3B,GA6PJgvI,EA5PQmD,mBAAkBnyI,GAAAwD,KAAA,SAAAC,GAEf,MAAHA,EAAGlI,QA6PHwJ,EAAGmiH,UAAW,EA3PdzjH,EAAMhJ,MACNsK,EAAAurI,gBAAWn3I,QAAA8e,KAAAxU,EAAAhJ,KAAA23I,cACXrtI,EAAAsrI,aAAY5sI,EAAAhJ,KAAmB23I,aAC/BrtI,EAAAgtI,YAActuI,EAAAhJ,KAAAg3I,cA6PV1sI,EAAG/C,UACHyuI,IA1PW,IAAZ1rI,EAAA0sI,cAAYvxI,SACP6E,EAAAmiH,UAAW,EACXpqH,EAAA2I,YAAkB,UAAA,wBAAA,aA8PtB+qI,MAGAzrI,EAAG0sI,iBACH1sI,EAAGmiH,UA5PI,KA+PXpqH,EAAW2I,YAAY,QAAS,mCAAoC,UACpEV,EAAG0sI,iBACH1sI,EAAGmiH,UA5PS,IA8PjB,SAAUxhH,GACT5I,EAAW2I,YAAY,QAAS,iCAAkC,UAClEV,EAAG0sI,iBACH1sI,EAAGmiH,UA5PK,IA+PhB,QAASspB,KACL,GAAIxwI,IA3PAyiD,cAAG19C,EAAA29C,iBAAoBzB,WACvB0B,iBAAkB59C,EAAA69C,oBAAAhsB,cAClBisB,WAAG99C,EAAY82C,aAAAgI,UA6PfC,SAAU/+C,EAAGi+C,iBAAiB51B,KAElC6hH,GAAuBuB,eAAexwI,GAAKwD,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,SACJwJ,EAAGstI,gBAAkB5uI,EAAIhJ,KACrBsK,EAAGstI,iBA3PVttI,EAAAusG,UAAc5vG,KAAAC,MAAAoD,EAAAstI,gBAAA9gC,OAChBxsG,EAAAutI,gBAAan5I,QAAA8e,KAAAlT,EAAAusG,WACbvsG,EAAAwtI,QAAAxtI,EAAwButI,gBAAAE,aAGhBztI,EAAAwtI,QAAA,GACXxtI,EAAA0tI,KACAC,EAAA,GACGC,GAAkB,GACTC,GAAA,GACZC,GAAA,GACeC,GAAA,KA+PP/tI,EAAGsS,WAAY,KAO3B,QAAS07H,GA5PGp5G,GA6PRA,EAAK+K,YA5PG/K,EAAc+K,WA+P1B,QAASsuG,KAEL,GA5PI7qF,GAAY5oD,EAAAyC,OAAA+C,EAAAm+C,SAA2B,SAAKvpB,GAAe,MAAAA,GAAA+K,YA8P/DnlC,GAAO0zI,QA5PKluI,EAAKm+C,SAAUiF,GA8P3B5oD,EAAOqI,QAAQugD,EA5PI,SAAAxuB,GA6PfA,EAAK+K,YA5PO,EA6PZ3/B,EAAG6rI,UAAUh0I,KA5PE+8B,KAgQvB,QAASu5G,KACLnuI,EAAG6rI,aAEHrxI,EA5POqI,QAAA7C,EAAUm+C,SAAK,SAAAvpB,GA6PdA,EAAKh/B,SACLg/B,EAAK+K,YAAa,EA3PnB3/B,EAAA6rI,UAAAh0I,KAAAzD,QAAA8e,KAAA0hB,OAgQPp6B,EAAOqI,QAAQ7C,EAAGm+C,SAAU,SAAU3wC,GA3P1CA,EAAS5X,QAAA,IAiQT,QA5POw4I,KA8PH,GA5PIhrF,GAAS5oD,EAAayC,OAAA+C,EAAA6rI,UAAA,SAAAj3G,GAAA,MAAAA,GAAA+K,YAE1BnlC,GAAA0zI,QAASluI,EAAA6rI,UAAazoF,GA8PtB5oD,EAAOqI,QAAQugD,EAAc,SAAUxuB,GA3PvCA,EAAA+K,YAAU,EA6PN3/B,EAAGm+C,SAAStmD,KAAK+8B,KAIzB,QAASy5G,KACLruI,EAAGm+C,YAEH3jD,EAAOqI,QAAQ7C,EAAG6rI,UAAW,SAAUj3G,GAC/BA,EAAKh/B,SACLg/B,EAAK+K,YAAa,EA3P1B3/B,EAAAm+C,SAAAtmD,KAAAzD,QAAA8e,KAAA0hB,OAgQA50B,EAAG6rI,aAGP,QA5PIyC,KA8PA,GAAIC,KACJ/zI,GA5PIqI,QAAQ7C,EAAI6rI,UAAK,SAAaj3G,GA6P9B,GAAgC,IAA5B50B,EAAG8qI,kBAAkBjiH,GACrB,GAAI2lH,IA3PZn4H,UAAArW,EAAAyW,gBAAAJ,UACG6lC,WAAel8C,EAAO29C,iBAAUzB,WACnCrqB,cAAA7xB,EAAA69C,oBAAAhsB,cACO7R,OAAWhgB,EAAA82C,aAAegI,UACtBC,SAAQ/+C,EAAAi+C,iBAAU51B,KACjBmqE,OAAA59D,EAAS49D,OACTjgE,SAASqC,EAAArC,SA6PTlK,KAAMuM,EAAKvM,KA3PX0iE,iBAASn2D,EAAam2D,sBA8PvB,IAAgC,IAA5B/qF,EAAG8qI,kBAAkBjiH,GAC5B,GAAI2lH,IACAn4H,UAAWue,EAAKve,UA3PvB6lC,WAAatnB,EAAA8oB,cA6PN7rB,cAAe+C,EAAKgpB,iBA3PpB59B,OAAG4U,EAAAkqB,UA6PHC,SAAUnqB,EAAKmqB,SAzPvBwvF,GAAO12I,MACH/B,UAAWkK,EAAA6hB,gBAAK/rB,UA6PhBmhC,QA5PSrC,EAAA7b,GA+PT01H,gBAAiB9xI,KAAKqkB,UAAUwtH,GAChCE,QAAS35H,EAAc1U,UAG/B,IAAIpF,IA3PJkjD,SAAOowF,EA8PP7zF,GAAmBm1B,sBAAsB50E,GAAKwD,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,WA3P/B7b,EAAO2I,YAAS,UAAA,mCAAA,WA6PhBsqI,EAAqBhrI,EAAG6hB,gBAAgB/rB,UAAW,GA3PpD64I,IACH3uI,EAAKkrI,cAAa,EACdlrI,EAAA4uI,cAAiB,EA6PjB5uI,EAAG8qI,kBA5PkB,KA6PrB9qI,EAAG6rI,aACH7rI,EAAGm+C,aAEHpmD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mCAAoC,YAI5E,QA5PQ+rD,GAAIujB,GA6PR,GA5PIr9D,GAAOtY,EAAUsY,QAAA,UA6PjB,4CA5PyCtb,WAAM,EAAA+F,KAAA,MA6PnDuV,GAAQjT,OA5PIjB,KAAI,WA6PZi8C,EA5PmBq1B,sBAAK/vE,EAAA6hB,gBAAA/rB,UAAAk6E,GAAAvxE,KAAA,SAAAC,GA6PD,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,WAC/B7b,EAAW2I,YAAY,UAAW,4BAA6B,WAC/DsqI,EAAqBhrI,EAAG6hB,gBAAgB/rB,UAAW,IA1PrDiC,EAAS2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WA8PZ,SA5PElT,GACD5I,EAAW2I,YAAA,QAAA,mCAAA,cAiQvB,QAASiuI,KA3PL3uI,EAAGyW,gBAAY,KA6PfzW,EAAG29C,iBAAmB,KACtB39C,EAAG47C,gBA3PP57C,EAAA69C,oBAA2B,KACvB79C,EAAAo8C,mBACAp8C,EAAA82C,aAAiB,KA6PjB92C,EAAGqqI,iBACHrqI,EAAGi+C,iBA5PK,KA6PRj+C,EAAG6qI,mBA5PoB,KA6PvB7qI,EAAGyqI,kBACHzqI,EAAG0qI,mBAAqB,KACxB1qI,EAAG2qI,gBA5PkB,KA6PrB3qI,EAAG4qI,oBA5PiB,KA6PpB5qI,EAAG+qI,oBAGP,QAASr5H,KACL1R,EAAGkrI,cA5Pa,EA6PhBlrI,EAAG8qI,kBA5Pa,KA+PpB,QAASP,KAGL,IAAK,GAAIrvI,GAAI8E,EAAGm+C,SAAShjD,OAAS,EAAGD,GAAK,EAAGA,IA3P1C,IAAA,GAAAiP,GAAA,EAAgBA,EAAAnK,EAAAmrI,iBAAAhwI,OAAAgP,IA6PPnK,EAAGm+C,SAASjjD,IAAO8E,EAAGm+C,SAASjjD,GAAG6d,KAAO/Y,EAAGmrI,iBAAiBhhI,GAAG4O,IAChE/Y,EAAGm+C,SAAS7oB,OAAOp6B,EAAG,EAtPlCV,GAAKqI,QAAI7C,EAAAm+C,SAAgB,SAAA3wC,GACrBA,EAAAmyB,YAAO,IAyQf,QA5PQkvG,GAAMj6G,GA6PV50B,EAAGsS,WAAY,CAEf,IAAIrX,IACAkX,UAAWnS,EAAGmT,gBAAgBhB,UA3P9Brc,UAAAkK,EAAA6hB,gBAAkB/rB,UAClBkiC,QAAApD,EAAA7b,GACA+1H,cAAel6G,EAAA0uB,cACf1xB,iBAASgD,EAAAhD,iBA6PTxxB,SAAU2U,EAAc1U,OA1P5B8xB,SAAAC,IAAAn3B,GA6PAu/C,EAAYu0F,yBAAyB9zI,GAAKwD,KAAK,SAAUC,GA3PrDsB,EAAAsS,WAAQ,EACJ5T,EAAGhJ,KAAAke,aAAW,GACd7b,EAAQ2I,YAAM,UAAAhC,EAAAhJ,KAAAme,QAAA,QA6Pd7T,EAAGmrI,iBA5PI,GA6PPH,EA5POhrI,EAAe6hB,gBAAS/rB,UAAA,KA+P/BiC,EA5PI2I,YAAA,OAAAhC,EAAAhJ,KAAAme,QAAA,QA6PJ7T,EAAGmrI,iBAAmB,GACtBH,EA5PWhrI,EAAA6hB,gBAA4B/rB,UAAA,KA+P5C,SAAU6K,GACT5I,EA5PQ2I,YAAA,+BA6PRV,EAAGsS,WAAY,IAlwBvB,GAAItS,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SA3PItU,EAAUqU,gBAAK,GA6PtBrU,EAAGuU,YA3PS,EA4PZvU,EAAGwU,qBA3Pe,SAAAC,GA4PdzU,EAAGuU,YAAcE,EAKrB,IAAIM,GAAgB5a,EAAsBgG,uBA1P1CgS,EAAS4C,EAAoBJ,gBAAAxC,SA8P7BnS,GAAGmqI,yBACHnqI,EAAGsS,WA3PY,EA4PftS,EAAGkrI,cA3PK,EA4PRlrI,EAAG6rI,aACH7rI,EAAG24C,YAAc,IAEjB34C,EAAGy7C,uBA3PwBA,EA4P3Bz7C,EAAGi8C,iCA3PiCA,EA4PpCj8C,EAAGq8C,+BA3PwBA,EA4P3Br8C,EAAGy9C,aA3PaA,EA4PhBz9C,EAAGiwG,sBA3PgBA,EA4PnBjwG,EAAGgrI,qBAAuBA,EAC1BhrI,EAAGotI,mBA3PaA,EA4PhBptI,EAAGguI,aAAeA,EAClBhuI,EAAGiuI,4BA3PYA,EA4PfjuI,EAAGmuI,uBA3PoBA,EA4PvBnuI,EAAGouI,0BAA4BA,EAC/BpuI,EAAGquI,qBA3PmBA,EA4PtBruI,EAAGsuI,iBA3PgBA,EA4PnBtuI,EAAGysI,gBA3PSA,EA4PZzsI,EAAGgsI,uBA3PeA,EA6PlBhsI,EAAGysD,WAAaA,EAChBzsD,EAAG0rI,gBAAkBA,EACrB1rI,EAAG2uI,yBAA2BA,EAC9B3uI,EAAG0R,OAASA,EACZ1R,EAAG8rI,sBAAwBA,EA1P3B9rI,EAAAksI,eAASA,EA4PTlsI,EAAG6uI,gBA3PWA,EA6Pd7uI,EAAGy8E,kCA3PoCA,EAmQvCz8E,EAAGorI,YA3PaA,CA4PhB,IAAIQ,GA3PY,EA4PhBjf,iUA/DJv4H,QACKC,OAAO,2BACPe,WAAW,iBA3PI40I,MAugCxB,WACI,YAOA,SAASgF,GA5PMvkI,EAAW1S,EAAAyC,EAAAH,EAAAN,EAAA6gD,EAAA2G,EA6PtBvvC,EAAgBJ,EAAwBzX,GAgCxC,QAAS+X,KACLF,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GA3P1C,MAAbA,EAAAlI,QACAwJ,EAAAqS,YAAmB3T,EAAAhJ,KA6PhBsK,EAAGsS,WAAY,GA1PlBva,EAAA2I,YAAA,QAA8B,yBAAA,YAEnC,SAAIC,GA6PA5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QA5PQuvG,GAAkB99F,EAAA5T,GAClB4T,GA6PAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KA3P5BsK,EAAA2hB,YAAyBxmB,OAAA,GACfd,EAAA8C,OAAA,UAAA,4BAAA6C,EAAAknD,KAAA/zC,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OAER4C,EAAQsS,WAAG,EACL/T,GACAA,KA8PDxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GA3PV5I,EAAW2I,YAAU,QAAU,mBAAG,cAgQzCV,EAAGknD,KAAKrlC,gBAAkB,KAC1B7hB,EAAG2hB,eA3PP3hB,EAAAgmD,gBA6PIhmD,EAAGknD,KAAKnD,iBAAmB,KAG/B,QA5PIkrF,GAAkBn5I,EAAWyI,GA6P7B,GAAIzI,EAAW,CA3Pf,GAAOwtG,IACHxtG,UAAKkK,EAAaknD,KAAArlC,gBAAA/rB,UA8PlB8kD,GAAqBgC,qBAAqB0mD,GAAK7kG,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,QACJwJ,EAAGgmD,aAAetnD,EAAIhJ,KA3P7BsK,EAAAgmD,aAAuB7qD,OAAA,GACdd,EAAA8C,OAAA,UAAA,4BAAA6C,EAAAknD,KAAArlC,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAEP4C,EAAQsS,WAAG,EACL/T,GACAA,KA8PDxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GA3Pd5I,EAAY2I,YAAA,QAAA,mBAAA,cAGnBV,EAAAgmD,gBACIhmD,EAAAknD,KAAAnD,iBAAA,KA+PJ,QA5PQqC,GAAOc,GA6PX,GAAIgoF,GA5PyB,OAAjBhoF,EAAA47C,mBAAiBntG,SAAAuxD,EAAA47C,kBA6PzBkjB,EA5PQ,QAAWv/D,EAAGS,EAAAQ,UAAgB,EA6P1C1nD,GAAG4uG,YA5PS5uG,EAAA2uG,QAAeqX,GA6PtBkpB,IACDlvI,EAAGo1G,cA5PgB56G,EAAAyC,OAAa+C,EAAA4mD,aAAAa,SAAAznD,EAAA4uG,YAAAyG,aAAAnuD,EAAA47C,kBAAA/7C,UA6PpCvsD,EAAOqI,QA5PK7C,EAAAonD,SAAa,SAAAP,GA6PjBA,EAAEa,WA5PUs+D,IACRkpB,IACAroF,EAAAC,OAAW9mD,EAAAo1G,eA6PfvuD,EAAEi8C,kBA5PoB,KA8P1B,IAAIqsC,GA5PmC1oF,EAAzB,EAA4BS,EAAAQ,SAAAs+D,EACtCv/D,GAAII,EAAAa,UAAiBynF,IA6PrBtoF,EAAEC,UA3PED,EAAAi8C,kBAAiB,QAgQzBosC,GACiC,IAA7BzoF,EAAUS,EAAKQ,YA3PnB1nD,EAAAo1G,cAAgB56G,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA2uG,QAAA,MAAA0G,aAAA,KAgQxB,QAAS5uD,GAAUc,GACf,MAAO3gD,UA5PC2gD,EAAiBjkC,UAAK,IA+PlC,QAASmvF,GAAqB3uD,EAAYhuD,EAAWyI,GA3PjDyB,EAAA2uG,QAAUhyG,KAAAC,MAAAoD,EAAAknD,KAAAnD,iBAAAC,OA6PVhkD,EAAG4uG,YA5PW5uG,EAAA2uG,QAAAE,MAEdttD,EAAAqnC,gBAAmB9kC,GAAsBrlD,KAAK,SAAKC,GAC/C,GAAmB,MAAfA,EAAIlI,OAAW,CACfwJ,EAAA4mD,YAAWloD,EAAAhJ,KACXsK,EAAAonD,WACA,KAAA,GAAA+tD,KAAAn1G,GAAA2uG,QAAA,CACG,GAAA71D,IACA2O,SAAeznD,EAAA2uG,QAAAwG,GACf59F,UAAA,EACAmwC,SAAYytD,EAEZ,WAAAA,IACHr8D,EAAWgO,OAAAtsD,EAAYyC,OAAS+C,EAAA4mD,aAAAa,SAAAznD,EAAoC2uG,QAAAwG,MAEzEn1G,EAAUonD,SAAKvvD,KAAAihD,GA8PNv6C,GACAA,IACJyB,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG4uG,cA3PrE5uG,EAAAsS,WAAW,MAEZva,GAAA2I,YAAA,QAAA,yBAAyD,eA8P1D,SA5PCC,GA6PA5I,EA5PQ2I,YAAe,QAAO,mBAAoB,gBAgQ1D,QAAS0uI,GA5POloF,GA6PZ,GAAImoF,KAGJ,IAFAnoF,EAAK3vC,UA5PY2vC,EAAK,UAAAvxD,SAAAuxD,EAAA3vC,SA6PtBvX,EAAGsvI,cA5PK,EA6PHpoF,EAAK3vC,SAnMN,CACA,GAAA43H,GAAc1oF,EAAAS,EAAAQ,UAGdknD,GADA,QAAuBnoD,EAAAS,EAAAQ,UAAA,GACbltD,EAAc6P,KAAArK,EAAAonD,UAAAM,SAAAR,EAAAQ,WA6PxB1nD,GAAGo1G,cAAgBxG,EAAY9nD,OA3PnCtsD,EAAQqI,QAAI7C,EAAAonD,SAAA,SAAAP,GACAJ,EAAAI,EAAAa,UAAAynF,IACLtoF,EAAA0oF,YAAY,SA2LC,CAChB,GAAIt0I,IACAnF,UAAWkK,EAAGknD,KAAKrlC,gBAAgB/rB,UACnCguD,WAAY9jD,EAAGknD,KAAKnD,iBAAiBD,WA3PxCuxD,aAAA,EACFpoD,UAAA/F,EAAkB+F,UAClBxF,SAAAP,EAAmBO,SACnB3zC,UAAe5T,EAAAG,OAEf,IAAkB,IAAlBomD,EAAAS,EAAkBQ,UAClBzsD,EAAAo6G,aAAe,MACf,CACA,GAAAm6B,GAAmBh1I,EAAA6P,KAAArK,EAAAonD,SAAA,SAAAP,GACnB,MAAAA,GAAAa,WAAqB,QAAAjB,EAAAS,EAAAQ,UAAA,KACrBo7C,iBAEA,IAAkB,OAAlB0sC,GAAkB75I,SAAA65I,EAKhB,MAJFz3I,GAAA2I,YAAsB,QAAA,mCAAA,UACtBV,EAAAgT,YAAmB,EA6PVhT,EAAGsvI,cAAe,OAClBpoF,EAAK+F,UAAYt3D,OAzP1BsF,GAAAo6G,aAAoBm6B,EAAAzoF,OA8PfsoF,EAAmBrvI,EAAGonD,SAG1B7F,EAAiBunC,aAAa7tF,GAAKwD,KAAK,SAAUC,GA3P7CA,EAAOhJ,KAAAke,aAAkB,GACzB6+F,EAAkBzyG,EAAAknD,KAAAnD,iBAA8BD,WAAA9jD,EAAAknD,KAAAnD,iBAAAjuD,UAAA,WAC1C0E,EAAAqI,QAAgBwsI,EAAe,SAAUI,GACzCj1I,EAASqI,QAAU7C,EAAAonD,SAAA,SAAAF,GA6PNuoF,EAAQ/nF,WAAaR,EAAKQ,UAAY+nF,EAAQ3sC,oBAC9C57C,EAAK47C,kBAAoB2sC,EAAQ3sC,kBAC7B57C,GACAd,EAAYc,QAI5Bd,MAEJruD,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,cACpD7T,EAAGgT,YAAa,EAChBhT,EAAGsvI,cAAe,EAClBpoF,EAAK+F,UAAYt3D,SAEjBoC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,cAClDqzC,EAAK3vC,UAAY2vC,EAAK3vC,WAG3B,SAAU5W,GA3PZ5I,EAAA2I,YAAsB,kCA+Q/B,QAASgvI,GA5PMC,GA8PX,GAAI10I,IACA8rD,OA5PI4oF,EAAA5oF,OA6PJjxD,UAAa65I,EAAa75I,UAC1BguD,WAAc6rF,EAAa7rF,WA3P5BmJ,UAAU0iF,EAAK1iF,UACdxF,SAAWkoF,EAAYloF,SACvBrvC,SAAGu3H,EAAYv3H,SA6Pfi9F,aAAes6B,EAAat6B,aAC5B1hG,WAAczT,EAAWG,OAE7BkhD,GAAiBwnC,gBAAgB9tF,GAAKwD,KAAK,SAAUC,GA3PpD,MAAAA,EAAAlI,OAAAkI,EAAAhJ,KAAAke,WA8PO7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD87H,EAAap1E,QAAS,GA3P1BxiE,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WA+PD,SAAUlT,GACT5I,EAAW2I,YAAY,QAAS,2BAA4B,YAIpE,QAASsoF,GAAgB4mD,GA3PvB,GAAGj9H,GAAWtY,EAAGsY,QAAA,UAAgB,4CAAAtb,WAAA,EAAA+F,KAAA,OA8P3BiyI,EAAmBrvI,EAAGonD,QA5P5Bz0C,GAAGjT,OAAcjB,KAAA,WACd8iD,EAAAynC,gBAAgC4mD,EAAK7oF,QAAAtoD,KAAA,SAAAC,GACrB,MAAdA,EAAAlI,QAAckI,EAAAhJ,KAAAke,WA8PL7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD4+F,EAAqBzyG,EAAGknD,KAAKnD,iBAAiBD,WAAY9jD,EAAGknD,KAAKnD,iBAAiBjuD,UAAW,WAC1F0E,EAAOqI,QAAQwsI,EAAkB,SAAUI,GA5P/Cj1I,EAAAqI,QAAA7C,EAAAonD,SAAA,SAAAF,GACDuoF,EAAA/nF,WAAAR,EAAAQ,UAAA+nF,EAAA3sC,oBACA57C,EAAA47C,kBAAA2sC,EAAA3sC,kBACI57C,GACEd,EAAAc,QAIlBd,OAEmB1nD,EAAAhJ,KAAAke,UAGnB7b,EAAkB2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,UAFlB9b,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WAId,SAAalT;AACb5I,EAAY2I,YAAW,QAAgB,2BAAA,cAkQ3C,QA7PImvI,GAAe3oF,GA8PfA,EA7PI+F,UAAQt3D,OA8PZuxD,EAAK3vC,UA7PM,EA8PXvX,EAAGsvI,cA7PQ,EA8PX90I,EAAOqI,QA7PI7C,EAAAonD,SAAA,SAAAP,GA8PPA,EAAE0oF,YA7Pa,IArCvB,GAAIvvI,GAAKC,IAEPD,GA5PEqU,kBAAUhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA6PZrL,EAAGsU,SA5PGtU,EAAAqU,gBAAkB,GA8PxBrU,EAAGuU,YA5PG,EA6PNvU,EAAGwU,qBA5PgB,SAAAC,GA6PjBzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YA5Pa,EA6PhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGo1G,iBACHr9G,EAAW2c,SAAU,EAErB1U,EAAGiwG,sBA5PgBA,EA6PnBjwG,EAAGivI,uBA5PsBA,EA6PzBjvI,EAAGyyG,qBA5PsBA,EA6PzBzyG,EAAGomD,YAAcA,EACjBpmD,EAAGovI,iBA5PiBA,EA6PpBpvI,EAAG6vI,aAAeA,EAClB7vI,EAAG0vI,gBA5PiBA,EA6PpB1vI,EAAGgpF,gBAAkBA,CAErB,IAAI9oF,GA5PW/F,EAAYgG,uBA6PvBgS,EAAYjS,EAAWyU,gBAAgBxC,SAC3CD,8KAnCJ9d,QACKC,OAAO,2BACPe,WA5PM,gBAAe45I,MAwiB9B,WACI,YAOA,SAASc,GA7Pe/3I,EAAQyC,EAAOH,EAAWN,EAAA4gD,EAA8BxgD,EAAwB0gD,EAA0B9oC,EAAYtH,GA6S1I,QA7PSyH,KA8PLH,EA7PO8D,iBAAuB9b,EAAOhC,GAAG0G,KAAe,SAAAC,GACrC,MAAXA,EAAAlI,QACCwJ,EAAE8V,YAAapX,EAAAhJ,KACfsK,EAAAsS,WAAK,GAELva,EAAE2I,YAAoB,QAAA,yBAAA,YA+P3B,SA7PKC,GACJ5I,EAAI2I,YAAY,QAAY,mBAAe,aAgQ/Cm6C,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KA5PrBsK,EAAAsS,WAAgB,GAEZva,EAAG2I,YAAgB,QAAO,yBAAyB,0BA+PxD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAGxDi6C,EAAoBo1F,0BAA0BtxI,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,SA5PPwJ,EAAAgwI,oBAAqBtxI,EAAAhJ,KACvBsK,EAAAsS,WAAe,KAiQlBqoC,EA7PYs1F,sBAAgBxxI,KAAA,SAAAC,GACjB,MAAHA,EAAGlI,SACHwJ,EAAGkwI,gBAAWxxI,EAAAhJ,KACdsK,EAAAsS,WAAS,KAmQrB,QAASqpC,GA7PWD,EAAwBrlC,GA+PxC,GADArW,EAAG47C,gBACCF,GAAyBrlC,EAAW,CACpC,GAAIpb,IACAygD,sBAAuBA,EA5PvBrlC,UAAIA,EA+PRskC,GA7POgB,uBAAiC1gD,GAAAwD,KAAa,SAAEC,GACpC,MAAZA,EAAAlI,SACAwJ,EAAA47C,aAAAl9C,EAAAhJ,KACHsK,EAAAsS,WAAW,MAOvB,QAAS0B,KACLhU,EAAAgT,YAAI,EACJhT,EAAA66B,MAAK,EACL76B,EAAGkwI,mBACHlwI,EAAAmwI,kBAAoB,KA8PpBnwI,EAAGgwI,uBACHhwI,EAAGowI,sBA7PmB,KAiQ1B,QAAS14H,KACL1X,EAAGgT,YA7PK,EA8PRhT,EAAG+S,WAAY,EACfb,IACAgC,IACAlU,EAAGiwE,YAIP,QAASv+D,KACL,GAAIiB,GA7PQtY,EAAAsY,QAAe,eA8PvB,yFACItb,WA7PO,EA8PP+F,KA7PI,MAgQZuV,GAAQjT,OA7POjB,KAAA,WA8PXuB,EAAGgT,YA7PS,EA8PZhT,EAAG+S,WAAY,EACfb,IACAgC,IACAlU,EAAGiwE,YA5PHjwE,EAAA47C,kBAmQR,QAAS1nC,KACLlU,EAAGqwI,iBAAiBj8H,gBAGxB,QAASk8H,GAAiBrgE,GACtBjwE,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EACbzX,EAAG66B,MAAO,EACV76B,EAAG+S,WA7PS,EA8PZ/S,EAAGgT,YA7PY,EA8PfhT,EAAGiwE,SA7PS77E,QAAG8e,KAAA+8D,EA+Pf,KAAK,GAAIp4D,KAAK7X,GA7PCk7C,QA8PPl7C,EAAGk7C,QA7PCrjC,GAAA6jC,wBAAoCu0B,EAAKv0B,wBA8P7C17C,EAAGiwE,SA7PMzzB,YAAiBx8C,EAAAk7C,QAAArjC,GAiQlC,KAAK,GA7PG3c,KAAA8E,GAAA8V,YA8PA9V,EAAG8V,YAAY5a,GAAGmb,YAAc45D,EAAS55D,YACzCrW,EAAGiwE,SAASxzB,oBAAsBz8C,EAAG8V,YAAY5a,IAM7D,QA7PQq1I,GAAetgE,GA+PnB,GA7PIt9D,GAAGtY,EAAAsY,QAAgB,UACnB,4CAAyCtb,WAAA,EAAA+F,KAAA,MA8P7CuV,GA7PQjT,OAAIjB,KAAA,WA8PRk8C,EA7PU41F,mBAAatgE,EAAA/zB,YAAAz9C,KAAA,SAAAC,GA8PA,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,+BAAgC,YAClEi7C,EAAuB37C,EAAGmwI,kBAAkBz0F,sBAAsB17C,EAAGowI,sBAAsB/5H,YAE3Fte,EAAW2I,YAAY,QAAS,yBAA2BrJ,WAAW,EAAM+F,KAAM,QAEvF,SAAUuD,GA5Pb5I,EAAM2I,YAAA,QAAA,kEAAArJ,WAAA,EAAA+F,KAAA,UA+PP,cAOP,QAASozI,GAAyBvgE,GA5P9B,GAAAlvE,GAAA,yBAAsCkvE,EAAK,SAAe,WAAA,UAAA,gBACtDt3D,GAAQs3D,EAAA,SAAoB,WAAK,UAAW,0BA8P5Ct9D,EAAUtY,EAAQsY,QAAQ,UAC1B5R,GA7PI1J,WAAW,EAAA+F,KAAY,MA+P/BuV,GAAQjT,OA7PGjB,KAAA,WA8PPk8C,EA7Pe61F,yBAA8BvgE,EAAS/zB,YAAAz9C,KAAA,SAAAC,GA8P/B,MAAfA,EAAIlI,QA5PbuB,EAAe2I,YAAA,UAAAiY,EAAA,gBACdzG,KA+PQna,EAAW2I,YAAY,QAAS,6BAA+BrJ,WAAW,EAAM+F,KAAM,QA3P7F,SAAAuD,GACL5I,EAAA2I,YAAA,QAAA,qEAAArJ,WAAA,EAAA+F,KAAA,UAEA,cAkQJ,QAASqzI,GA7POxgE,GA8PZ,GAAI/vE,GA7PY/F,EAAegG,sBA8P/B8vE,GAAS55D,UA7PWrW,EAAAiwE,SAAOxzB,oBAAqBpmC,UA8PhD45D,EAASv0B,sBA7PmB17C,EAAQiwE,SAAAzzB,YAAkBd,sBA8PjD17C,EAAG+S,WA1OZk9D,EAASt8D,WAAmBzT,EAAAG,OACxBs6C,EAAiB+1F,iBAAAzgE,GAAAxxE,KAAA,SAAAC,GACZA,EAAWhJ,KAAAke,aAAA,GACb7b,EAAe2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,aACX8nC,EAAqB37C,EAAUmwI,kBAAGz0F,sBAAA17C,EAAAowI,sBAAA/5H,WACnCrW,EAAAgT,YAAa,EA8PPhT,EAAG+S,WAAY,EACf2E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,aA5P7D7T,EAAAgT,YAAA,EACThT,EAAA+S,WAAA,IAEA,SAAApS,GACYtG,EAAAwH,MAAA,QAAA,+BAAAxK,WAAA,EAAA+F,KAAA,WA6NA6yE,EAASn8D,UAAY5T,EA7POG,OA8P5Bs6C,EAAoBg2F,gBA7PQ1gE,GAAYxxE,KAAA,SAAAC,GA8PhCA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,aACpD7T,EAAGgT,YAAa,EAChBd,IACAwF,MA3PA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,aA8PlD7T,EA7PGgT,YAAA,IAGR,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,kCAwB5C,GAAIV,GAAKC,IAKTD,GAAGqU,kBA7PahJ,MAAW,IAAYA,MAAS,KAAAA,MAAA,KAA0BA,MAAA,KAAAA,MAAA,MA8P1ErL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA7PS,EA8PZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YA7PI,EA8PPhT,EAAG+S,WA7PI,EA8PP/S,EAAGsS,WA7PS,EA8PZtS,EAAG4wI,oBACH74I,EAAW2c,SAAU,EAErB1U,EAAGgU,OA7PKA,EA8PRhU,EAAG0R,OA7PSA,EA8PZ1R,EAAGkU,UA7PSA,EA8PZlU,EAAGswI,iBAAmBA,EACtBtwI,EAAGuwI,mBA7PKA,EA8PRvwI,EAAGwwI,yBA7PiBA,EA8PpBxwI,EAAGywI,aA7PaA,EA8PhBzwI,EAAG27C,uBA7PoBA,EA8PvB37C,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAEbvF,IACAzH,EAAOkc,SAAW,SA7PExqB,EAAAyqB,GA+PhB,GAAIC,GA7PQ,GAAAC,QAAW,gBA8PnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EA7PEje,KAAAme,GAgQH,MAFA5qB,GA7PIkB,iBA8PJtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,GAxPf+J,EAAAomI,YAAqB,SAAM10I,8JA4M/B/H,QACKC,OA7PO,oCA8PPe,WA7PW,kBAAmB06I,MAmgBvC,WACI,YAOA,SAASgB,GAAc/4I,EAAY0S,EAAQjQ,EAAQH,EAASN,EAAOg8H,EAAkBp7E,EAAqBE,EA7PtG1gD,EAAgB2gD,EAAAE,EAAAjpC,GA2ThB,QAASG,KACLH,EAAe8D,iBAAiB9b,EAAOhC,GAAY0G,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QA7PZwJ,EAAA8V,YAAoBpX,EAAAhJ,KACZsK,EAAAsS,WAAe,GAEfva,EAAG2I,YAAY,QAAA,yBAAA,YAgQpB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aA3P5Dm6C,EAASI,aAAuBlhD,EAAAhC,GAAuB0G,KAAW,SAAAC,GAC9C,MAAbA,EAAAlI,QACCwJ,EAAAk7C,QAAAx8C,EAAAhJ,KACIsK,EAAAsS,WAAM,GAENva,EAAW2I,YAAA,QAAA,yBAAA,0BAgQhB,SA9PCC,GA+PA5I,EA9PQ2I,YAAe,QAAK,mBAAA,2BAkQpC,QAASi7C,GAAuBD,EAAuBrlC,EAAW9X,GAtP9D,GAuPAyB,EAAGmsI,UAAUxuF,iBAAmB,KAChC39C,EAAG47C,gBACH57C,EAAGmsI,UAAUtuF,oBAAsB,KACnC79C,EAAGo8C,mBA7PPp8C,EAAAmsI,UAASttF,iBAAS,KACd7+C,EAAGu8C,gBACHv8C,EAAGmsI,UAAO4E,wBAAA,KACPr1F,GAAkBrlC,EAAA,CAClB,GAAApb,IACAygD,sBAAsBA,EACtBrlC,UAAAA,EAgQCskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,SA7PXwJ,EAAQ47C,aAAAl9C,EAAAhJ,KACGsK,EAAA47C,aAAAzgD,OAAA,GACDd,EAAA8C,OAAA,UAAA,iCAAA6C,EAAAmsI,UAAA1vF,oBAAA/lC,aAAArf,WAAA,EAAA+F,KAAA,OAEf4C,EAAAsS,WAAA,EACc/T,GA+PEA,WA1PZyB,GAAAmsI,UAAUxuF,iBAAgB,KAC1B39C,EAAA47C,gBA+PA57C,EAAGmsI,UA9PCtuF,oBAAW,KA+Pf79C,EAAGo8C,mBACHp8C,EAAGmsI,UAAUttF,iBAAmB,KAChC7+C,EAAGu8C,gBA7PPv8C,EAAAmsI,UAAe4E,wBAAiB,KAkQpC,QA9PQtyF,GAAAvC,EAAA39C,GA+PJyB,EAAGmsI,UA9PItuF,oBAAW,KA+PlB79C,EAAGo8C,mBACHp8C,EAAGmsI,UAAUttF,iBAAmB,KAChC7+C,EAAGu8C,gBACHv8C,EAAGmsI,UAAU4E,wBAA0B,KACnC70F,EACApB,EAAuBqB,yBAAyBD,GAAYz9C,KAAK,SAAUC,GA7P1EsB,EAAAmsI,UAAYtuF,oBAAAloD,OACdqK,EAAAmsI,UAAiBttF,iBAAAlpD,OA+PO,MAAf+I,EAAIlI,SACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KA7PhCsK,EAAAo8C,gBAA2BjhD,OAAA,GACjBd,EAAA8C,OAAA,UAAA,sCAAA6C,EAAAmsI,UAAAxuF,iBAAA9B,cAAAxkD,WAAA,EAAA+F,KAAA,OAEL4C,EAAAsS,WAAA,EACK/T,GACCA,QAIZyB,EAAAmsI,UAAOtuF,oBAAW,KA+PlB79C,EAAGo8C,mBACHp8C,EAAGmsI,UAAUttF,iBAAmB,KAChC7+C,EAAGu8C,gBACHv8C,EAAGmsI,UAAU4E,wBAA0B,MAK/C,QAAS10F,GAA+BxqB,EAAetzB,GACnDyB,EAAGmsI,UAAUttF,iBAAmB,KAChC7+C,EAAGu8C,gBACHv8C,EAAGmsI,UAAU4E,wBAA0B,KA7P3Cl/G,EA+PQmpB,EAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAAUC,GA7PzEsB,EAAAmsI,UAAUttF,iBAAgBlpD,OAC1B,MAAA+I,EAAAlI,SACIwJ,EAAOu8C,aAAK79C,EAAYhJ,KAC5BsK,EAAAu8C,aAAoBphD,OAAA,GACRd,EAAA8C,OAAW,UAAK,+BAAA6C,EAAAmsI,UAAAtuF,oBAAAlsB,iBAAAt6B,WAAA,EAAA+F,KAAA,OAEpB4C,EAAAsS,WAAA,EACG/T,GACHA,QAkQRyB,EAAGmsI,UAAUttF,iBAAmB,KA7PjC7+C,EAAAu8C,gBA+PCv8C,EAAGmsI,UAAU4E,wBAA0B,MAK/C,QAASC,KA5PL,GAAI/1I,IACAyiD,cAAS19C,EAASmsI,UAAAxuF,iBAAyBzB,WAC3C0B,iBAAkB59C,EAAAmsI,UAAQtuF,oBAAAhsB,cAC1BisB,WAAO99C,EAAAmsI,UAAiBttF,iBAAMC,UA+P9Bz2B,KAAMroB,EAAGmsI,UAAU4E,wBAAwB1oH,KAE/C0tG,GA9PIkb,gBAAoBh2I,GAAAwD,KAAA,SAAyBC,GACjC,MAARA,EAAIlI,SA+PJwJ,EAAG0sI,cA9PYhuI,EAAAhJ,KAAYw7I,UA+P3BlxI,EAAGsS,WA9PC,KAmQhB,QAAS0B,KACLhU,EAAGmiH,UAAW,EAGlB,QAASzwG,KACL1R,EAAGmiH,UAAW,EACdniH,EAAG+S,WAAW,EA7PlB/S,EAAAmsI,UAASQ,iBAELz4H,IAiQJ,QA9PQA,KA+PJlU,EAAGmxI,cA9PC/8H,gBAiQR,QAASsD,KACL1X,EAAGmiH,UA9PS,EA+PZniH,EAAG+S,WA9PS,EA+PZ/S,EAAGmsI,aACHnsI,EAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGu8C,gBACHv8C,EAAGmsI,UAAUQ,cAAgB,KAGjC,QAASyE,GAAcjF,GACnBnsI,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGmsI,UA9PIQ,cAAA3sI,EAAAqxI,iBAAAlF,EAAAh7C,IA+PP,KA9PI,GAAAt5E,KAAS7X,GAAA8V,YACT9V,EAAA8V,YAAA+B,GAAoBxB,YAAA81H,EAAiB91H,YACjCrW,EAAAmsI,UAAa1vF,oBAAoBz8C,EAAA8V,YAAA+B,IAoQ7C,QAASy5H,GA9PUnF,GA+PfA,EAAUzuF,cA9Pa19C,EAAAmsI,UAAYxuF,iBAAkBzB,WA+PrDiwF,EAAUvuF,iBA9PkB59C,EAAAmsI,UAAAtuF,oBAAAhsB,cA+P5Bs6G,EAAUruF,WA9PK99C,EAAAmsI,UAAYttF,iBAAAC,UA+P3BqtF,EAAUQ,cAAgBR,EAAUh7C,IAEpC,IAAIx+E,GA9PGtY,EAAesY,QAAA,UA+PlB,4CA9P2Btb,WAAA,EAAiC+F,KAAA,MA+PhEuV,GAAQjT,OAAOjB,KAAK,WAChBs3H,EAAiBub,gBAAgBnF,GAAW1tI,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,gCAAiC,aACnEswI,IACA9+H,KAEAna,EAAW2I,YAAY,QAAS,0BA7P3CrJ,WAAA,EACT+F,KAAA,QAEA,SAAAuD,GACY5I,EAAA2I,YAAA,QAAA,kEACIrJ,WAAA,EAgQI+F,KAAM,UA5PtB,cAoQA,QAASm0I,GAAcpF,GACnBnsI,EAAGsS,WAAY,EACftS,EAAGy+C,+BAAiC,SAAUd,GA9P/CA,EAAczB,WAAAl8C,EAAA29C,iBAAAzB,YAEbl8C,EAAGq8C,+BAAc,SAAAwB,GAgQbA,EAAoBhsB,cAAgB7xB,EAAG69C,oBAAoBhsB,cAE/D,IAAI3xB,GAAa/F,EAAsBgG,sBA7PvCgsI,GAAIzuF,cAAmB19C,EAAAmsI,UAAAxuF,iBAAAzB,WACvBiwF,EAAUvuF,iBAAO59C,EAAcmsI,UAAMtuF,oBAAyBhsB,cAC9Ds6G,EAAKruF,WAAiB99C,EAAAmsI,UAAAttF,iBAAAC,UAgQtBqtF,EA/PUkF,iBAAArxI,EAAAqxI,iBAgQVlF,EA/PIqF,iBAAuBxxI,EAAAmsI,UAAQQ,cAiQnCR,EAAU9jH,KAAOroB,EAAGmsI,UAAU4E,wBAAwB1oH,KAGjDroB,EAAG+S,WArOTo5H,EAASx4H,WAAAzT,EAAAG,OACT01H,EAAS0b,cAAAtF,GAAA1tI,KAAA,SAAAC,GACGA,EAAAhJ,KAAAke,aAAA,GACZ7b,EAAgB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,mBAChB7T,EAAAmsI,UAAkBQ,cAAAh3I,OAClBq7I,KAEHj5I,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,mBAEG7T,EAAAmiH,UAAuB,EAgQdniH,EAAG+S,WAAY,GA5PnB,SAAQpS,GACJ5I,EAAG2I,YAAkB,QAAA,wBAAA,iBAvC1ByrI,EAAAr4H,UAAe5T,EAAgBG,OAClC01H,EAAA2b,aAAAvF,GAAA1tI,KAAA,SAAAC,GAC2B,MAAvBA,EAAAlI,SACQwJ,EAAAsS,WAAW,EACnB5T,EAAahJ,KAAOke,aAAM,GAChB7b,EAAM2I,YAAiB,UAAAhC,EAAAhJ,KAAAme,QAAA,aAC3B7T,EAAAmsI,UAAAQ,cAAAh3I,OACKq7I,MAiQCj5I,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,aAClD7T,EAAGsS,WAAY,GAEnBtS,EAAGmiH,UAAW,IAOnB,SAAUxhH,GA9PlB5I,EAAA2I,YAAA,QAAoC,wBAAA,aAC5BV,EAAAsS,WAAA,KA3SX,GAAGtS,GAAAC,IAEHD,GAAGqU,kBAAmBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACtBrL,EAAAsU,SAAWtU,EAAAqU,gBAAU,GAIrBrU,EAAGuU,YAAY,EACfvU,EAAGwU,qBAAmB,SAAAC,GACnBzU,EAAAuU,YAAAE,GAIHhK,EAAGknI,QAAY,SAAAx1I,EAAAyqB,GACZ,GAAAC,GAAU,GAAAC,QAAA,mBA+PLC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MA7P1D,KAAAN,EAAAje,KAAAme,GAGQ,MAFD5qB,GAAAkB,iBA+PCtF,EAAW2I,YAAY,OAAQ,kCAAmC,cA7PlE,GAmQR+J,EAAOmnI,aA9PQ,SAAAz1I,GAgQX,GACI0qB,IADgBnyB,OAAOyH,MAAM01I,cAAcz1G,QAAQ,QAC3C,GAAItV,QAAO,oBACnBgrH,EAAap9I,OAAOyH,MAAM01I,cAAcz1G,QAAQ,aA7PxD,IAA+B,OAAxB01G,EAAArxH,MAAcoG,GAiQb,MAhQJ1qB,GAAAkB,iBA+PItF,EAAW2I,YAAY,OAAQ,kCAAmC,cAC3D,GAKfV,EAAG+S,WA9PY,EA+Pf/S,EAAGsS,WA9PY,EA+PftS,EAAGmiH,UA9PS,EAgQZpqH,EA9PO2c,SAAU,EA+PjB1U,EAAG0sI,iBAEH1sI,EAAGgxI,kCAAoCA,EACvChxI,EAAG0X,MA9PCA,EA+PJ1X,EAAGy+C,+BA9P6BA,EA+PhCz+C,EAAGq8C,+BA9P0BA,EA+P7Br8C,EAAG27C,uBA9PwBA,EA+P3B37C,EAAGgU,OAASA,EACZhU,EAAG0R,OA9PSA,EA+PZ1R,EAAGkU,UAAYA,EACflU,EAAGoxI,cA9PcA,EA+PjBpxI,EAAGsxI,gBA9PgBA,EA+PnBtxI,EAAGuxI,cAAgBA,EAEnBr/H,IAEAlS,EAAG+5H,sBA9PYC,oBAA0B,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,6NA6L7Cj0B,QA7PIC,OAAG,oCACHe,WAAG,gBAAuB07I,MAykBlC,WACI,YAOA,SAASiB,GA/PYh6I,EAAKyC,EAAAH,EAAAN,EAAAgY,EAAA4jH,EAAAx7H,EAAA0gD,EAgQtB+6E,EA/PmBC,EAAqBC,EAAoBv/C,EAAAv7B,EAAA66B,EAAAkgD,EAAAp7E,EAgQ5DG,EAAwBk7E,EAAiBC,EAAuBC,EAAqBC,EAA6BC,EAAoBntC,EAA0BotC,EAAsB77E,EAAa4tB,GA2FnM,QAASmxD,KACLv5H,GAAGk5H,SAAU,EAMjB,QA/PQhnH,KAiQJH,EAAe8D,mBAAmBpX,KAAK,SAASC,GA9P/B,MAAjBA,EAAAlI,QACQwJ,GAAA8V,YAAepX,EAAKhJ,KACpBsK,GAAGsS,WAAA,GAiQHva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAGxDm6C,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAASC,GAClD,MAAfA,EAAIlI,QA9PPwJ,GAAAk7C,QAASx8C,EAAAhJ,KACXsK,GAAAsS,WAAW,GAEXva,EAAU2I,YAAgB,QAAA,yBAAA,0BAE7B,SAAAC,GAgQI5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAK5D,QAASmiB,KA9PT,GAAAC,KAoSI,IAAI9iB,GAAG22H,kBA/PgBC,gBAAYz7H,QAAS,GAAA6E,GAAA22H,kBAA0BE,kBAAA17H,QAAA,GAgQlE6E,GAAG22H,kBA/PSG,mBAAW37H,QAAA,GAgQvB6E,GAAG22H,kBA/PeI,oBAAA57H,QAAA,EAAA,CAiQlB,IAAK,GAAID,KAAK8E,IAAG22H,kBAAkBC,gBA9PhC9zG,EAAUjrB,KAAKmI,GAAA22H,kBAAAC,gBAAA17H,GAAA6iI,WAiQlB,KAAK,GA/PG5zH,KAAAnK,IAAA22H,kBAAWE,kBAgQf/zG,EA/PIjrB,KAAMmI,GAAA22H,kBAAAE,kBAAA1sH,GAAA4zH,WAiQd,KAAK,GAAI/nG,KAAKh2B,IAAG22H,kBAAkBG,mBA9PpCh0G,EAAYjrB,KAAAmI,GAAA22H,kBAAAG,mBAAA9gG,GAAA+nG,WAiQX,KAAK,GAAIiU,KAAKhyI,IAAG22H,kBAAkBI,oBAC/Bj0G,EAASjrB,KAAKmI,GAAG22H,kBAAkBI,oBAAoBib,GAAGjU,YAxPlE,GAAG56G,GAAAxmB,KAAAqkB,UAAA8B,EAGH,OA8PA9iB,IAAGqjB,SAAWF,EAAWG,UAAU,EAAGH,EAAWhoB,OAAS,GA9PtD6E,GAAA,SAmQR,QA/PIujB,KACA,IAAA,GAAAroB,GAAU,EAAAA,EAAA8E,GAAA22H,kBAAsBC,gBAAAz7H,OAAAD,IAChC,IAAA8E,GAAU22H,kBAAmBC,gBAAa17H,GAAA8nB,UAE1C,YA8PQhjB,GAAGiyI,iBAAkB,EA3P7BjyI,IAAAiyI,iBAAmB,CAiQnB,KA/PI,GAAA/2I,GAAA,EAAAA,EAAA8E,GAAiB22H,kBAAaE,kBAAgB17H,OAAeD,IAgQ7D,IA/PI8E,GAAI22H,kBAAeE,kBAAK37H,GAAA8nB,UAiQxB,YADAhjB,GAAGkyI,iBA/PgB,EAmQ3BlyI,IAAGkyI,iBA/Pa,CAiQhB,KAAK,GAAIh3I,GAAI,EA/PGA,EAAA8E,GAAA22H,kBAAuBG,mBAAkB37H,OAASD,IAgQ9D,IAAK8E,GAAG22H,kBA/POG,mBAAY57H,GAAA8nB,UAiQvB,YADAhjB,GAAGmyI,iBAAkB,EAI7BnyI,IAAGmyI,iBAAkB,CAErB,KAAK,GAAIj3I,GAAI,EAAGA,EAAI8E,GAAG22H,kBAAkBI,oBAAoB57H,OAAQD,IACjE,IAAK8E,GAAG22H,kBAAkBI,oBAAoB77H,GAAG8nB,UA7P7C,YADDhjB,GAAAoyI,iBAAe,EAmQtBpyI,IAAGoyI,iBAAkB,EAIzB,QAAS3uH,KACL,IAAK,GAAIvoB,GA/PG,EAAAA,EAAA8E,GAAW22H,kBAAYC,gBAAoBz7H,OAASD,IAgQ5D8E,GAAG22H,kBA/PkBC,gBAAgB17H,GAAA8nB,UAAAhjB,GAAAiyI,eAkQzC,KAAK,GAAI/2I,GA/PG,EAAAA,EAAA8E,GAAW22H,kBAAYE,kBAAkB17H,OAASD,IAgQ1D8E,GAAG22H,kBAAkBE,kBAAkB37H,GAAG8nB,UAAYhjB,GAAGkyI,eAG7D,KAAK,GAAIh3I,GAAI,EAAGA,EAAI8E,GAAG22H,kBAAkBG,mBAAmB37H,OAAQD,IAChE8E,GAAG22H,kBAAkBG,mBAAmB57H,GAAG8nB,UAAYhjB,GAAGmyI,eAG9D,KAAK,GAAIj3I,GAAI,EAAGA,EAAI8E,GAAG22H,kBAAkBI,oBAAoB57H,OAAQD,IACjE8E,GAAG22H,kBAAkBI,oBAAoB77H,GAAG8nB,UAAYhjB,GAAGoyI,gBAInE,QAASz2F,GAAuBtlC,EAAWqlC,EAAuBn9C,GA7P9D,GAAA8X,GAAAqlC,EAAA,CACR17C,GAAAqyI,IAAA10F,iBAAA,KAgQY39C,GAAG47C,gBACH57C,GAAGqyI,IAAIx0F,oBAAsB,KA/PzC79C,GAAAsyI,uBACYtyI,GAAAjC,KAAA8gD,iBAAA,KACP7+C,GAAAu8C,gBAiQOv8C,GAAGsoD,IAAIupD,aAAe,KACtB7xG,GAAGsoD,IAAIupD,aAAel8G,OA/PzBqK,GAAAuyI,oBACLvyI,GAAA22H,oBACA,IAAA17H,IACSygD,sBAAAA,EAiQGrlC,UAAWA,EA9PnBskC,GAASgB,uBAAA1gD,GAAAwD,KAAA,SAAAC,GACV,MAAAA,EAAAlI,SACUwJ,GAAA47C,aAAAl9C,EAAAhJ,KACVsK,GAAA47C,aAAAzgD,OAAA,GACUd,EAAA8C,OAAA,UAAA,kCAAA6C,GAAAsoD,IAAA7xC,gBAAAC,aAAA1W,GAAAsoD,IAAA9L,YAAAqd,yBACVxiE,WAAA,EACU+F,KAAA,OAmQG4C,GAAGsS,WAAY,EA/Pd/T,GAiQGA,WAIZyB,IAAGqyI,IAAI10F,iBAAmB,KAC1B39C,GAAG47C,gBA/PR57C,GAAAqyI,IAAAx0F,oBAAa,KACb79C,GAAAsyI,uBACAtyI,GAAQjC,KAAA8gD,iBAAA,KACR7+C,GAAQu8C,gBACRv8C,GAAAsoD,IAAAupD,aAAa,KACb7xG,GAAAsoD,IAAYupD,aAAAl8G,OACZqK,GAAAuyI,oBACAvyI,GAAA22H,qBAIH,QAAG6b,GAAOt2F,GACDvmD,QAANumD,GACAl8C,GAAAqyI,IAAWx0F,oBAAA,KACX79C,GAAAsyI,uBACAtyI,GAAAjC,KAAA8gD,iBAAA,KACA7+C,GAAAu8C,gBACAv8C,GAAAsoD,IAAAupD,aAAe,KACf7xG,GAAAsoD,IAAAupD,aAAkBl8G,OAClBqK,GAAAuyI,oBACAvyI,GAAA22H,qBACA77E,EAAAqB,yBAA6BD,GAAAz9C,KAAA,SAAAC,GAC7B,MAAAA,EAAAlI,SACAwJ,GAAAsyI,oBAAiB5zI,EAAAhJ,KACjBsK,GAAAsyI,oBAAwBn3I,OAAA,GACxBd,EAAA8C,OAAgC,UAAA,qCAAA6C,GAAAqyI,IAAA10F,iBAAA9B,cAChCxkD,WAA4B,EACd+F,KAAA,OAGF4C,GAAAsS,WAAA,OAIZtS,GAAAqyI,IAAAx0F,oBAAkB,KAClB79C,GAAAsyI,uBACAtyI,GAAAjC,KAAA8gD,iBAAmB,KACnB7+C,GAAMu8C,gBACNv8C,GAAAsoD,IAAAupD,aAAc,KACd7xG,GAAAsoD,IAAWupD,aAAAl8G,OACXqK,GAAAuyI,oBACAvyI,GAAA22H,sBAKH,QAAGr6E,GAAqBzqB,GACrBl8B,QAAAk8B,GACA7xB,GAAAjC,KAAA8gD,iBAAwB,KACxB7+C,GAAAu8C,gBACAv8C,GAAAsoD,IAAAupD,aAAe,KACf7xG,GAAOsoD,IAAAupD,aAAAl8G,OACPqK,GAAAuyI,oBACAvyI,GAAA22H,qBACA37E,EAAAsB,2BAA8BzqB,GAAApzB,KAAA,SAAAC,GACL,MAAzBA,EAAAlI,SACAwJ,GAAcu8C,aAAA79C,EAAAhJ,KACNsK,GAAUu8C,aAAAphD,OAAA,GACrBd,EAAA8C,OAAA,UAAA,kCAAA6C,GAAAqyI,IAAAx0F,oBAAAlsB,iBACAt6B,WAAA,EAiQwB+F,KAAM,OA7P1B4C,GAAcsS,WAAA,OAIdtS,GAAMjC,KAAA8gD,iBAAA,KAiQF7+C,GAAGu8C,gBACHv8C,GAAGsoD,IAAIupD,aAAe,KA/P9B7xG,GAASsoD,IAAAupD,aAAcl8G,OAChBqK,GAAAuyI,oBAiQCvyI,GAAG22H,sBAIX,QAASx4E,KAEL,GAAwCxoD,QAApCqK,GAAGu7C,aAAa0C,iBAA+B,CA/PnDj+C,GAAAsoD,IAAAupD,aAAe,KACX7xG,GAAAsoD,IAAIupD,aAAel8G,OAiQnBqK,GAAGuyI,oBACHvyI,GAAG22H,oBACH,IAAI17H,IA/PAyiD,cAAW19C,GAAAqyI,IAAA10F,iBAAqBzB,WAiQhC0B,iBAAkB59C,GAAGqyI,IAAIx0F,oBAAoBhsB,cA/PlDisB,WAAc99C,GAAAjC,KAAA8gD,iBAAAC,UACbC,SAAW/+C,GAAAu7C,aAAY0C,iBAAS51B,KAkQhCmyB,GAAYwE,WAAW/jD,GAAKwD,KAAK,SAASC,GA/PnB,MAA3BA,EAAAlI,OACYwJ,GAAAuyI,iBAAgB7zI,EAAAhJ,KAEjBqC,EAAY2I,YAAA,QAAA,mCAAA,WAkQhB,SAhQCC,UAELX,IAAAsoD,IAAAupD,aAAc,KACb7xG,GAAAsoD,IAAAupD,aAAWl8G,OAiQXqK,GAAGuyI,oBACHvyI,GAAG22H,qBAOX,QAASQ,GAAgBp+G,GACrBi9G,EAAgByc,wBAAwB15H,GAAIta,KAAK,SAASC,GACtD,GAAmB,MAAfA,EAAIlI,QAEJ,GADAwJ,GAAG22H,kBAAoBj4H,EAAIhJ,KACvBsK,GAAG22H,kBAAkBx7H,OAAS,EAC9B,IAAK,GAAID,KAAK8E,IAAG22H,kBACb32H,GAAG22H,kBAAkBz7H,GAAG+7H,aAAet6H,KAAKC,MAAMoD,GAAG22H,kBAAkBz7H,GAAGg8H,aAIlFn/H,GAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAASC,MAmBhB,QAAS61E,GAAgCmjD,GACfhkI,QAAlBgkI,GACA35H,GAAGk2E,OAAO2jD,mBAAqB,KA/P/B75H,GAAG45H,kBACH55H,GAAGk2E,OAAA4jD,mBAAkB,GACrBvjD,EAAGC,gCAAsCmjD,GAAal7H,KAAA,SAAAC,GAiQlD,GAAmB,MAAfA,EAAIlI,OAAgB,CA/PvBwJ,GAAI45H,eAAQl7H,EAAAhJ,IACb,KAAS,GAAAwF,KAAQ8E,IAAA45H,eAiQL55H,GAAG45H,eAAez+H,OAAS,GA/P7Bd,EAAG8C,OAAA,UAAkB,qCAAmB6C,GAAAjC,KAAA87H,oBACpCxiI,WAAG,EAiQD+F,KAAM,MAGlB4C,IAAGsS,WAAY,OAKvBtS,GAAGk2E,OAAO2jD,mBAAqB,KAC/B75H,GAAG45H,kBAEH55H,GAAGk2E,OAAO4jD,mBAAqB,IAIvC,QAhQI4Y,KAiQA1yI,GAAGk2E,OAAO4jD,mBAAqB,GA4CnC,QAhQQzgB,KAiQJ,GAA0C1jH,QAAtCqK,GAAGm6H,oBAAoBC,YAA0B,CACjDp6H,GAAGs3H,SAASjc,yBAA2B,KA/P3Cr7G,GAAKq6H,0BACDr6H,GAAGs3H,SAAA3b,4BAAqC,KAiQxC37G,GAAGs6H,2BACHt6H,GAAGs3H,SAASC,qBAAuB,KA/PvCv3H,GAAKu6H,oBACDv6H,GAAGs3H,SAAAzlB,aAAkB,KAiQrB7xG,GAAGk8G,WA/PVl8G,GAAAs3H,SAAAE,sBAAA,EAED,IAASgD,IAiQGC,UAAWz6H,GAAGm6H,oBAAoBC,YAAYK,UA/PlDpkH,UAAarW,GAAAyW,gBAAAC,YAAuBL,UAEpCu/G,GAAkB8E,4BAAAF,GAAA/7H,KAAA,SAAAC,GACX,MAAAA,EAAAlI,QACJwJ,GAAAq6H,uBAAsB37H,EAAAhJ,KAEtBgJ,EAAAhJ,KAAeyF,OAAA,EACX6E,GAAA26H,gBAAe,GAEnB36H,GAAA26H,gBAAmB,EACnB36H,GAAA46H,mBAAoB,EACb56H,GAAA66H,YAAA,EAENxgI,EAAW8C,OAAA,UAAA,uBAiQC9F,WAAW,EA/P3B+F,KAAoB,QAGZ4C,GAAAsS,WAAO,GAmQPjY,EAhQQwH,MAAM,QAAA,yBAAA,8BAqQtB7B,IAAGs3H,SAhQSjc,yBAAA,KAiQZr7G,GAAGq6H,0BACHr6H,GAAGs3H,SAAS3b,4BAA8B,KAC1C37G,GAhQGs6H,2BACHt6H,GAAGs3H,SAAIC,qBAAmB,KAC1Bv3H,GAAGu6H,oBACHv6H,GAAGs3H,SAAIzlB,aAAA,KACP7xG,GAAGk8G,WACHl8G,GAAGs3H,SAAKE,sBAAmB,GAuQnC,QAASsD,GAA8Btf,GACT7lH,QAAtB6lH,GA/PRx7G,GAASs3H,SAAA3b,4BAAuC,KACxC37G,GAAAs6H,2BACAt6H,GAAGs3H,SAAIC,qBAAsB,KAC7Bv3H,GAAGu6H,oBACHv6H,GAAGs3H,SAAKzlB,aAAmB,KAC3B7xG,GAAGk8G,WACHl8G,GAAGs3H,SAAIE,sBAAe,GACtB3B,EAAsBkF,2CAAAvf,GAAA/8G,KAAA,SAAAC,GACA,MAAnBA,EAAAlI,QACAwJ,GAAAs6H,wBAAoB57H,EAAAhJ,KACvBsK,GAAAsS,WAAuB,GAGfjY,EAAOwH,MAAA,QAAA,yBAAgC,wBAkQ5C,SAASlB,GACRtG,EAAQwH,MAhQI,QAAM,mBAAA,2BAmQtB7B,GAAGs3H,SAhQQ3b,4BAAY,KAiQvB37G,GAAGs6H,2BACHt6H,GAAGs3H,SAASC,qBAAuB,KACnCv3H,GAhQGu6H,oBACHv6H,GAAGs3H,SAAIzlB,aAAA,KACP7xG,GAAGk8G,WACHl8G,GAAGs3H,SAAKE,sBAAmB,IAsQnC,QAASwD,GAA0Blf,GACFnmH,QAAzBmmH,GACA97G,GAAGs3H,SAASC,qBAAuB,KACnCv3H,GAAGu6H,oBA/PXv6H,GAASs3H,SAAAzlB,aAAA,KACD7xG,GAAAk8G,WACAl8G,GAAGs3H,SAAKE,sBAAmB,GAC3B1B,EAAkBmF,uCAAAnf,GAAAr9G,KAAA,SAAAC,GACI,MAAfA,EAAAlI,QACAwJ,GAAAu6H,iBAAe77H,EAAAhJ,KACnBsK,GAAAsS,WAAmB,GAGdjY,EAAIwH,MAAA,QAAgB,yBAAA,iBAkQzB,SAhQSlB,GAiQRtG,EAhQQwH,MAAA,QAAe,mBAAW,oBAmQtC7B,GAAGs3H,SAASC,qBAAuB,KACnCv3H,GAAGu6H,oBACHv6H,GAAGs3H,SAhQQzlB,aAAY,KAiQvB7xG,GAAGk8G,WACHl8G,GAAGs3H,SAASE,sBAAwB,IAK5C,QAhQQ/5E,KAiQJ,GAhQ0B9nD,QAAtBqK,GAAGs3H,SAAAC,qBAAmB,CACtBv3H,GAAGs3H,SAAAzlB,aAAoB,KAiQvB7xG,GAAGk8G,WACHl8G,GAAGs3H,SAASE,sBAAwB,EACpC,IAAIv8H,IA/PHugH,mBAAWx7G,GAAAs3H,SAAAjc,yBAAAG,mBAiQRM,sBAAuB97G,GAAGs3H,SAAS3b,4BAA4BG,sBA/PhEO,eAAar8G,GAAAs3H,SAAAC,qBAA+Blb,eAC5Ct9D,SAAI/+C,GAAAu7C,aAAe0C,iBAAA51B,KAEtB4tG,GAAsBwB,UAAAx8H,GAAAwD,KAAA,SAAAC,GACnB,GAAoB,MAApBA,EAAAlI,OAAoB,CACnBwJ,GAAMk8G,QAAAx9G,EAAAhJ,IACN,KAAA,GAAAwF,KAAkB8E,IAAAk8G,QACO,MAAzBl8G,GAAAk8G,QAAqBhhH,GAAI+vF,SACbjrF,GAAGk8G,QAAKhhH,GAAAy3I,mBAAiB3yI,GAAAk8G,QAAAhhH,GAAAq3B,UAkQD,MAAxBvyB,GAAGk8G,QAAQhhH,GAAGs3F,SA/PlBxyF,GAAAk8G,QAAWhhH,GAAKy3I,mBAAmB3yI,GAAAk8G,QAAAhhH,GAAAq3B,cAqQvCx6B,GAAW2I,YAAY,QAAS,mCAAoC,WA9PzE,SAAAC,UAEHX,IAAGs3H,SAAIzlB,aAAe,KACtB7xG,GAAGk8G,WACHl8G,GAAGs3H,SAAAE,sBAAoB,GAqQ/B,QAASob,KACL5yI,GAAGs3H,SAASE,sBAAwB,GA4BxC,QAhQQqb,KAiQal9I,QAAbqK,GAAGk2E,SACHl2E,GAAGk2E,OAAOujD,uBAAyB,KACnCz5H,GAAGk2E,OAAO2jD,mBAAqB,KA/PvC75H,GAAS45H,kBACD55H,GAAAk2E,OAAA4jD,mBAA6B,IAoQrC,QAhQQwC,KAEW3mI,QAgQdqK,GAAGm6H,oBAhQgCn6H,GAAAm6H,oBAAAC,YAAA,KAAA,GACfzkI,QAgQpBqK,GAAGyW,gBAhQyBzW,GAAAyW,gBAAAC,YAAA,KAAA,GACb/gB,QAgQZqK,GAAGs3H,WACHt3H,GAAGs3H,SAASjc,yBAhQmB,KAiQ/Br7G,GAAGq6H,0BACHr6H,GAAGs3H,SAAS3b,4BAhQc,KAiQ1B37G,GAAGs6H,2BACHt6H,GAAGs3H,SAASC,qBAAuB,KACnCv3H,GAAGu6H,oBACHv6H,GAAGs3H,SAASzlB,aAAe,KAC3B7xG,GAAGk8G,WACHl8G,GAAGs3H,SAASE,sBAAwB,IAK5C,QAhQQuR,KAkQOpzI,QAAVqK,GAAG+/C,IAAoB//C,GAAG+/C,IAAIw7E,qBAAuB,KAAM,GACjD5lI,QAAVqK,GAAG+/C,IAAoB//C,GAAG+/C,IAAItpC,gBAAkB,KAAM,GA9P7C9gB,QAAPqK,GAAA+3H,YAiQC/3H,GAAG+3H,UAAUyD,0BAA4B,KACzCx7H,GAAGy7H,yBACHz7H,GAAG+3H,UAAUC,kBAAoB,KA/PtCh4H,GAAAi4H,4BACCj4H,GAAA+3H,UAAAl6E,oBAAqB,KACrB79C,GAAMk4H,qBACPl4H,GAAA+3H,UAAAI,sBAAA,KACCn4H,GAAAk+G,YACAl+G,GAAM+3H,UAAAK,qBAAA,KAiQFp4H,GAAGq4H,WACHr4H,GAAG+3H,UAAUO,uBAAyB,IAM9C,QAASoE,KA9PO/mI,QAgQRqK,GAAGsoD,MACHtoD,GAAGsoD,IAAIk2D,2BAA6B,KACpCx+G,GAAGsoD,IAAIzJ,iBAAmB,KA/P1B7+C,GAAGi8H,0BAiQHj8H,GAAGsoD,IAAIzJ,iBAAiBpqB,KAAO,KACpB9+B,QAAVqK,GAAG8yI,IAAoB9yI,GAAG8yI,IAAI5W,wBAA0B,GAAI,IAiBrE,QAASN,KACL,GAAwCjmI,QAApCqK,GAAG+3H,UAAUl6E,oBAAkC,CAC/C79C,GAAG+3H,UAAUI,sBAAwB,KA/P7Cn4H,GAASk+G,YACDl+G,GAAG+3H,UAAAK,qBAAoB,KACvBp4H,GAAGq4H,WACHr4H,GAAG+3H,UAAAO,uBAAyB,EAC5B,IAAGr9H,IACAqiH,OAAAt9G,GAAA+3H,UAAAyD,0BAA0B1D,sBAC1Bla,kBAAS59G,GAAA+3H,UAAuBC,kBAAApa,kBAChCK,WAAAj+G,GAAA+3H,UAAmBl6E,oBAAAogE,WACnBl/D,SAAS/+C,GAAAu7C,aAAe0C,iBAAA51B,KAmQ3B+tG,GAAmByF,kBAAkB5gI,GAAKwD,KAAK,SAASC,GA/PpD,GAAiB,MAAjBA,EAAAlI,OAAiB,CACjBwJ,GAAAk+G,SAAcx/G,EAAAhJ,IACd,KAAA,GAAWwF,KAAG8E,IAAAk+G,SAiQNl+G,GAAGk+G,SAAShjH,GAAGm9H,QAAU17H,KAAKC,MAAMoD,GAAGk+G,SAAShjH,GAAGm9H,aAIvDtgI,GAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAhQSC,UAkQZX,IAAG+3H,UAhQSI,sBAAoB,KAiQhCn4H,GAAGk+G,YACHl+G,GAAG+3H,UAhQSK,qBAAgB,KAiQ5Bp4H,GAAGq4H,WACHr4H,GAAG+3H,UAhQSO,uBAA0B,GAuQ9C,QAASM,KACL54H,GAAG+3H,UAhQSK,qBAAuB,KAiQnCp4H,GAAGq4H,WACHr4H,GAAG+3H,UAAUO,uBAAyB,GACtCt4H,GAAGq4H,QAAUr4H,GAAG+3H,UAAUI,sBAAsBE,QAAQQ,QAQ5D,QAhQQqC,KAiQJl7H,GAAGm7H,qBAhQc1kH,gBAAA,GAiQjBzW,GAAGo7H,YAhQIC,iCAAiC,GAiQxCr7H,GAAGo7H,YAAYE,8BAAgC,GAC/Ct7H,GAAGo7H,YAAY3C,sBAAwB,GACvCz4H,GAAGs5G,yBACHt5G,GAAGy9F,MAAO,EAKd,QAhQQi6B,KAiQJxB,EAhQOyB,sBAA0B59H,EAAAhC,GAAA0G,KAAA,SAAAC,GACjB,MAATA,EAAAlI,QACAwJ,GAAA43H,iBAAmBl5H,EAAAhJ,KACnBsK,GAAAsS,WAAS,GAETva,EAAS2I,YAAA,QAAwB,yBAAA,mBAkQrC,SAhQSC,GAiQR5I,EAhQW2I,YAAA,QAAA,mBAA8B,oBAqRjD,QAAS44G,GAAuBjjG,GA9P5B,GAAI1gB,QAAA0gB,EAAA,CACArW,GAAG+3H,UAASyD,0BAAuB,KACnCx7H,GAAGy7H,yBACHz7H,GAAG+3H,UAASC,kBAAe,KAC3Bh4H,GAAGi4H,4BACHj4H,GAAG+3H,UAASl6E,oBAAA,KACZ79C,GAAAk4H,qBAiQAl4H,GAAG+3H,UAhQSI,sBAAgB,KAiQ5Bn4H,GAAGk+G,YACHl+G,GAAG+3H,UAhQQK,qBAAY,KAiQvBp4H,GAAGq4H,WACHr4H,GAAG+3H,UAhQQO,uBAAA,EAiQX,IAAIkC,IACAkB,WAAY17H,GAAG+/C,IAAIw7E,qBAAqBG,WA/PzCrlH,UAASrW,GAAK+/C,IAAAtpC,gBAAAJ,UAkQjB8/G,GAA4BwF,iBAAiBnB,GAAgB/7H,KAAK,SAASC,GA/PxE,MAAAA,EAAAlI,QACAwJ,GAAAy7H,sBAAgC/8H,EAAAhJ,KAChCgJ,EAAAhJ,KAAAyF,OAAmB,EACV6E,GAAA26H,gBAAe,GAEf36H,GAAA26H,gBAAA,EAiQA36H,GAAGw4H,mBAAoB,EACvBx4H,GAAGizB,UAAW,EACdjzB,GAAGy9F,MAAO,EA9PrBz9F,GAAAs7H,8BAAe,GAEJjhI,EAAA8C,OAAe,UAAA,uBACd9F,WAAA,EACD+F,KAAA,QAGR4C,GAAAsS,WAAA,GAEAva,EAAa2I,YAAa,QAAA,yBAAiB,uBAE/C,SAAAC,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,4BAmQ5BV,IAAG+3H,UAhQSyD,0BAA4B,KAiQxCx7H,GAAGy7H,yBACHz7H,GAAG+3H,UAAUC,kBAAoB,KACjCh4H,GAAGi4H,4BACHj4H,GAAG+3H,UAAUl6E,oBAhQiB,KAiQ9B79C,GAAGk4H,qBACHl4H,GAAG+3H,UAAUI,sBAAwB,KACrCn4H,GAAGk+G,YACHl+G,GAAG+3H,UAhQQK,qBAAA,KAiQXp4H,GAAGq4H,WACHr4H,GAAG+3H,UAAUO,uBAAyB,GAM9C,QAAST,GAAiDC,GACzBniI,QAAzBmiI,GACA93H,GAAG+3H,UAAUC,kBAAoB,KACjCh4H,GAAGi4H,4BA/PXj4H,GAAS+3H,UAAAl6E,oBAAc,KAChB79C,GAAAk4H,qBAiQCl4H,GAAG+3H,UAAUI,sBAAwB,KACrCn4H,GAAGk+G,YA/PXl+G,GAAS+3H,UAAAK,qBAAA,KAiQDp4H,GAAGq4H,WA/PPr4H,GAAA+3H,UAAAO,uBAAoB,GAiQhBnC,EAA4B0B,iDAAiDC,GAAuBr5H,KAAK,SAASC,GA/P5F,MAAnBA,EAAAlI,SACAwJ,GAAAi4H,yBAAkBv5H,EAAAhJ,KAiQTsK,GAAGi4H,yBAAyB98H,OAAS,GA/PzCd,EAAW8C,OAAK,UAAA,0CAAA6C,GAAA+3H,UAAAyD,0BAAAuX,yBACjB17I,WAAmB,EACf+F,KAAA,OAEC4C,GAAAw4H,mBAAW,EACXx4H,GAAAizB,UAAM,EAiQNjzB,GAAGy9F,MAAO,EA/PXz9F,GAAAy4H,sBAAa,IAEbz4H,GAAAw4H,mBAAa,EAkQhBx4H,GAAGsS,WAAY,OAKvBtS,GAAG+3H,UAAUC,kBAAoB,KACjCh4H,GAAGi4H,4BA/PXj4H,GAAS+3H,UAAAl6E,oBAAe,KAChB79C,GAAGk4H,qBACHl4H,GAAG+3H,UAAOI,sBAAyB,KACnCn4H,GAAGk+G,YACHl+G,GAAG+3H,UAAAK,qBAAiB,KACpBp4H,GAAGq4H,WAiQHr4H,GAAG+3H,UAAUO,uBAAyB,IAM9C,QAhQQI,GAAmC9a,EAA8Br/G,GAClD5I,QAAfioH,GACA59G,GAAG+3H,UAASl6E,oBAAA,KACZ79C,GAAGk4H,qBACHl4H,GAAG+3H,UAASI,sBAAA,KACZn4H,GAAGk+G,YACHl+G,GAAG+3H,UAASK,qBAAuB,KACnCp4H,GAAGq4H,WACHr4H,GAAG+3H,UAASO,uBAAe,GAC3BjC,EAAasC,yBAAA/a,GAAAn/G,KAAA,SAAAC,GACVsB,GAAAu4H,2BAiQCv4H,GAAGu4H,2BACgB,MAAf75H,EAAIlI,SACJwJ,GAAGk4H,kBAAoBx5H,EAAIhJ,KACvBsK,GAAGk4H,kBAAkB/8H,OAAS,GA/PzCd,EAAkB8C,OAAA,UAAA,mCAAA6C,GAAA+3H,UAAAl6E,qBAiQHxmD,WAAW,EA/PpB+F,KAAa,OAkQR4C,GAAGizB,UAAW,EA/PvBjzB,GAAAy9F,MAAa,IAEbz9F,GAAAizB,UAAA,EACAjzB,GAAUy9F,MAAA,GAEVz9F,GAAAsS,WAAU,EACV/T,GACAA,SAIHyB,GAAG+3H,UAAUl6E,oBAAA,KAiQb79C,GAAGk4H,qBACHl4H,GAAG+3H,UAAUI,sBAAwB,KACrCn4H,GAAGk+G,YACHl+G,GAAG+3H,UAAUK,qBAAuB,KACpCp4H,GAAGq4H,WA/PXr4H,GAAS+3H,UAAAO,uBAAmB,IAsR5B,QAAS7uC,IAA4Bg1B,GACL9oH,QAAxB8oH,GA/PRz+G,GAASsoD,IAAAzJ,iBAAmB,KACpB7+C,GAAGi8H,0BACAtmI,QAAHqK,GAAG8yI,IAAU9yI,GAAA8yI,IAAA5W,wBAAwB,GAAA,GACrCjzC,EAAcO,wBAAAi1B,GAAAhgH,KAAA,SAAAC,GACX,GAAU,MAAVA,EAAAlI,OAAU,CACVwJ,GAAAi8H,uBAAUv9H,EAAAhJ,IACV,KAAU,GAAAwF,KAAA8E,IAAAi8H,uBACH,MAAAj8H,GAAAi8H,uBAAA/gI,GAAA0hI,MACK58H,GAAAi8H,uBAAU/gI,GAAAy3I,mBAA0B3yI,GAAAi8H,uBAAA/gI,GAAA0hI,IAAAzrC,MAEF,MAAjCnxF,GAAGi8H,uBAAU/gI,GAAAu5B,OACfz0B,GAAGi8H,uBAAa/gI,GAAAy3I,mBAAiB3yI,GAAAi8H,uBAAA/gI,GAAAu5B,KAAAlC,SAInCvyB,IAAAi8H,uBAAgB9gI,OAAA,GACjBd,EAAA8C,OAAe,UAAA,qCAAA6C,GAAAsoD,IAAAzJ,iBAAAs9E,cACb9kI,WAAY,EACV+F,KAAA,OAmQP4C,GAhQGsS,WAAA,OAoQXtS,GAhQGsoD,IAAAzJ,iBAAA,KACH7+C,GAAGi8H,0BACAtmI,QAAHqK,GAAG8yI,IAAW9yI,GAAA8yI,IAAA5W,wBAAA,GAAA,IAsQtB,QAAS8W,MACMr9I,QAAVqK,GAAG8yI,IAAoB9yI,GAAG8yI,IAAI5W,wBAA0B,GAAI,GA7PjE,QAASW,MACL78H,GAAGgT,YAAU,EAoQjB,QAAS8pH,MACL98H,GAAGgT,YAAa,EAGpB,QAASqpC,IAA+BxqB,GACdl8B,SAAlBk8B,GACAmpB,EAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAASC,GA/PjE,MAAAA,EAAAlI,SACRwJ,GAAAu8C,aAAqB79C,EAAAhJ,KACrBsK,GAAYsS,WAAA,KAIftS,GAAG6+C,iBAAO,KAyVd,QAhQQ7qC,MAiQJhU,GAAGgT,YAAa,EAGpB,QAAStB,MACL1R,GAAGgT,YAAa,EA/PpBkB,KACIlU,GAAA40B,QAmQJ,QAhQQ1gB,MAiQJlU,GAAG+8H,aAhQI3oH,gBAoQX,QAhQQ4oH,IAAGpoG,GAiQP50B,GAAG+S,WAhQI,EAiQP/S,GAAGgT,YAhQC,EAiQJhT,GAAG40B,KAhQKxgC,QAAQ8e,KAAA0hB,GAiQhB6pB,+BAhQe7pB,EAAAsnB,WAA+B,WAiQ1C,IAAK,GAhQGrkC,KAAI7X,IAAG47C,aAiQP57C,GAAG47C,aAhQS/jC,GAAOqkC,aAAWtnB,EAAAsnB,aAiQ9Bl8C,GAAG40B,KAhQK+oB,iBAAW39C,GAAA47C,aAAA/jC,GAmQ3BwkC,IAhQeznB,EAAoB/C,cAAA,WAiQ/B,IAAK,GAhQGha,KAAG7X,IAAAo8C,gBACHp8C,GAAGo8C,gBAAOvkC,GAAAga,gBAAA+C,EAAA/C,gBACV7xB,GAAG40B,KAAAipB,oBAAwB79C,GAAAo8C,gBAAAvkC,GAmQnC,KAAK,GAAIA,KAAK7X,IAAGu8C,aA/PVv8C,GAAAu8C,aAAY1kC,GAAAimC,aAAAlpB,EAAAkpB,aAiQX99C,GAAG40B,KAAKiqB,iBAAmB7+C,GAAGu8C,aAAa1kC,QAS/D,QAhQQumH,MAkQJpI,EAhQOid,kBAAUjzI,GAAAsoD,IAAAupD,aAAA94F,IAAAta,KAAA,SAAAC,GACA,MAAVA,EAAAlI,QAiQCwJ,GAAG22H,kBAAkBC,gBAAkBl4H,EAAIhJ,KAE3CsK,GAAGsS,WAAY,EACfugI,KA9PH96I,EAAA2I,YAAA,QAAA,yBAA6C,WAkQ/C,SAhQIC,GACH5I,EAAG2I,YAAoB,QAAA,mBAAA,YAsQ/B,QAhQQ29H,MAiQJrI,EAhQWkd,oBAAAlzI,GAA0BsoD,IAAAupD,aAAA94F,IAAAta,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,QACCwJ,GAAA22H,kBAAoBE,kBAAAn4H,EAAAhJ,KACpBsK,GAAGsS,WAAA,EACHgqH,KAmQAvkI,EAhQQ2I,YAAM,QAAA,yBAAA,aAmQtB,SAASC,GACL5I,EAhQW2I,YAAA,QAAA,mBAAA,cAsQvB,QAAS49H,MACLtI,EAAgBmd,qBAAqBnzI,GAAGsoD,IAAIupD,aAAa94F,IAAIta,KAAK,SAASC,GACpD,MAAfA,EAAIlI,QA9PLwJ,GAAA22H,kBAAUG,mBAAsBp4H,EAAAhJ,KAChCsK,GAAAsS,WAAA,EACAtS,GAAA+oI,mBAEAhxI,EAAU2I,YAAA,QAAuB,yBAAA,cAkQrC,SAhQIC,GAiQH5I,EAAW2I,YAAY,QAAS,mBAAoB,eAO5D,QAhQQ69H,MAiQJvI,EAhQOod,sBAA6BpzI,GAAAsoD,IAAAupD,aAAA94F,IAAAta,KAAA,SAAAC,GACzB,MAAHA,EAAGlI,QACHwJ,GAAA22H,kBAAeI,oBAAWr4H,EAAAhJ,KAiQ1BsK,GAAGsS,WAhQY,EAiQftS,GAAG08H,oBAEH3kI,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBA5P5D,QAASu8H,IAAAroG,GACL50B,GAAAk9H,2BAA4B,SAAWv/E,GACnCA,EAAOzB,WAAmBl8C,GAAA29C,iBAAAzB,YAkQ9BtnB,EAhQKsnB,WAAUl8C,GAAA40B,KAAA+oB,iBAAoBzB,WAiQnCtnB,EAhQI/C,cAAA7xB,GAAA40B,KAAyBipB,oBAAAhsB,cAiQ7B+C,EAAKuoG,WAhQWn9H,GAAA40B,KAAAwoG,iBAAgBD,WAiQhCvoG,EAAKmqB,SAhQU/+C,GAAA40B,KAAA6K,SAkQVz/B,GAAG+S,WAUJijH,EAhQgBqH,SAAAt/H,MAAWU,KAAA,SAAAC,GAiQvB3G,EAAW2I,YAhQO,UAAA,wBAAA,SAiQlBwR,IACAlS,GAAGgT,YAAa,EAChBhT,GAAG+S,WAhQI,GAiQR,SAASpS,GACR5I,EAAW2I,YAAY,iCA9P3BV,GAAG0R,WA+OHskH,EAhQgBsH,QAAG1oG,GAAAn2B,KAAA,SAAuBC,GAiQtC3G,EAAW2I,YAAY,UAAW,sBAAuB,SACzDwR,IACAlS,GAAGgT,YAhQY,GAiQhB,SAASrS,GACR5I,EAAW2I,YAAY,iCAE3BV,GAAG0R,UAgBX,QAAS2hI,MACL,GAAIp4I,IA/PRg8B,QAASj3B,GAAAsoD,IAAcupD,aAAA94F,GACfkQ,MAAOjpB,GAAAk2E,OAAA2jD,mBAAoB2D,WAiQ3BC,cAAez9H,GAAGk2E,OAAO4jD,mBACzBhmH,UAAW/b,EAAWuK,OA9PV,OAAbtC,GAAAk2E,OAAA2jD,mBAAa5uC,QAAAt1F,QAAAqK,GAAAk2E,OAAA2jD,mBAAA5uC,SAiQZhwF,EAAImuI,MAAQppI,GAAGk2E,OAAO2jD,mBAAmB5uC,OACzChwF,EAAIu3F,OAAS,IA9PrBwjC,EAASsd,kBAAYr4I,GAAAwD,KAAA,SAAAC,GACD,MAAbA,EAAAlI,OAiQSkI,EAAIhJ,KAAKke,WACT7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBA/P3DuqH,MAEDrmI,EAAgB2I,YAAA,UAAAhC,EAA2BhJ,KAAAme,QAAe,mBAkQtD9b,EAhQO2I,YAAe,QAAI,+BAAA;EAkQ/B,SAASC,GACR5I,EAAW2I,YAAY,QAAS,gCAC5BrJ,WAAW,EA/PhB+F,KAAA,SAuQP,QAhQQm2I,MAiQJ,GAAIt4I,IA/PJg8B,QAAAj3B,GAAgBsoD,IAAAupD,aAAA94F,GACZkQ,MAAIjpB,GAAIs3H,SAAWzlB,aAAK94F,GAiQxB0kH,cAhQYz9H,GAAMs3H,SAAAE,sBAiQlB1jH,UAhQW/b,EAAAuK,OAEuB,OAgQlCtC,GAAGs3H,SAhQQzlB,aAAc5mB,QAASt1F,QAAAqK,GAAAs3H,SAAAzlB,aAAA5mB,SAiQlChwF,EAAImuI,MAhQOppI,GAAAs3H,SAASzlB,aAAA5mB,OAiQpBhwF,EAAIu3F,OAAS,IA9PF,MAgQXxyF,GAAGs3H,SAhQQzlB,aAAArf,QAAA78F,QAAAqK,GAAAs3H,SAAAzlB,aAAArf,SAiQXv3F,EAAImuI,MAhQO,GAiQXnuI,EAAIu3F,OAASxyF,GAAGs3H,SAASzlB,aAAarf,QAE1CwjC,EAhQQwd,oBAAuBv4I,GAASwD,KAAA,SAAAC,GAC7B,MAAHA,EAAGlI,OAiQCkI,EAAIhJ,KAAKke,WA/PT7b,EAAK2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,qBACbwqH,MAkQQtmI,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,qBA7P3D9b,EAAA2I,YAA0B,QAAA,iCAAU,sBAkQtC,SAhQCC,GAiQA5I,EAAW2I,YAAY,QAAS,kCA/PpCrJ,WAAS,EACT+F,KAAU,SAuQd,QAhQQq2I,MAiQJ,GAAIx4I,IACAg8B,QAASj3B,GAAGsoD,IAAIupD,aAAa94F,GAC7BkQ,MAAOjpB,GAAG+3H,UAAUI,sBAAsBp/G,GA/P3CqwH,MAAAppI,GAAA+3H,UAAeK,qBAAiBntC,OACnCwyC,cAAAz9H,GAAA+3H,UAAAO,uBACAxkH,UAAe/b,EAAGuK,OACdkwF,OAAO,GAkQXwjC,GAhQY0d,qBAAsBz4I,GAAAwD,KAAA,SAAAC,GAiQX,MAAfA,EAAIlI,OA/PAkI,EAAAhJ,KAASke,WAiQT7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,sBACpDyqH,MAEAvmI,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,sBA7P7D9b,EAAe2I,YAAG,QAAA,iCAAA,uBAkQlB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mCA/P/BrJ,WAAA,EACD+F,KAAU,SAuQlB,QAASu2I,MACL,GAAI14I,IACAg8B,QAASj3B,GAAGsoD,IAAIupD,aAAa94F,GAC7BkQ,MAhQIjpB,GAAKsoD,IAAAzJ,iBAAMg/E,cAiQfJ,cAhQYz9H,GAAA8yI,IAAU5W,wBAiQtBpoH,UAAW/b,EAhQCuK,OAkQsB,OAAlCtC,GAAGsoD,IAAIzJ,iBAAiBosC,QAAoDt1F,QAAlCqK,GAAGsoD,IAAIzJ,iBAAiBosC,SAClEhwF,EAAImuI,MAhQIppI,GAAKsoD,IAAAzJ,iBAAkBosC,OAiQ/BhwF,EAAIu3F,OAAS,IA9PA,MAAbxyF,GAAAsoD,IAAAzJ,iBAAa2zC,QAAA78F,QAAAqK,GAAAsoD,IAAAzJ,iBAAA2zC,SAiQbv3F,EAAImuI,MAAQ,GA/PbnuI,EAAAu3F,OAAAxyF,GAAgBsoD,IAAAzJ,iBAAA2zC,QAkQnBwjC,EAAgB4d,sBAAsB34I,GAAKwD,KAAK,SAASC,GA/P3C,MAATA,EAAAlI,OACFkI,EAAahJ,KAAAke,WAiQJ7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,uBACpD0qH,MA9PTxmI,EAAa2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBAmQR9b,EAAW2I,YAAY,QAAS,iCAAkC,wBA9P9E,SAASC,GACF5I,EAAA2I,YAAa,QAAA,oCAiQRrJ,WAAW,EACX+F,KAAM,SAOlB,QAhQQumB,MAiQJ,GAAIhR,GAhQQtY,EAAGsY,QAAa,UAiQxB,oDACItb,WAAW,EACX+F,KAAM,MAEduV,GAhQQjT,OAAKjB,KAAI,WAiQT,GAhQIxD,IAiQA8iI,WAhQYl7G,EAAA7iB,GAAAqjB,UAiQZ1P,WAAY5b,EAAWuK,OA9P3B0zH,GAAcryG,aAAG1oB,GAAcwD,KAAA,SAAAC,GACpB,MAAHA,EAAGlI,QACHuB,EAAQ2I,YAAA,UAAsB,6BAAa,aAiQ3Cy2H,EAAgBn3H,GAAGsoD,IAAIupD,aAAa94F,KAGpChhB,EAAW2I,YAAY,QAAS,qCAC5BrJ,WAAW,EACX+F,KAAM,QA7PrB,SAAAuD,GACL5I,EAAA2I,YAAA,QAAA,qCACgBrJ,WAAA,EACJ+F,KAAA,UAoQR,cAMR,QAAS20B,MACL/xB,GAAGk5H,SAAU,EACb/B,EAAgBn3H,GAAGsoD,IAAIupD,aAAa94F,IACpC85H,IACAvW,IA/PJyM,IACIrM,IAmQJ,QAASwB,IAhQUprH,GAiQf,GAAI7X,IACA8iI,WAAYjrH,EAAIirH,WAChBN,cAhQW3qH,EAAA2qH,cAiQX9pH,WAhQQ5b,EAAWuK,OAkQvB0zH,GAAgBmI,eAAeljI,GAAKwD,KAAK,SAASC,GA/P9C,GAAc,MAAdA,EAAAlI,OACI,GAAAkI,EAAAhJ,KAAWke,UAkQP,GADA7b,EAAW2I,YAAY,UAAWhC,EAAImV,QAAS,oBAC3C7T,GAAGk5H,QACH,OAAQpmH,EAAIkrH,aACR,IAAK,GACDI,IA/PnB,MAEO,KAAW,GAiQCC,IA/Pb,MAEA,KAAA,GACAC,IACQ,MAEF,KAAA,GACFC,SAoQCpH,GAAgBn3H,GAAGsoD,IAAIupD,aAAa94F,QA5PpDhhB,GAAgB2I,YAAA,QAAyBhC,EAAImV,QAAA,wBAGrC9b,GAAG2I,YAAY,QAAA,wBAAA,qBAkQpB,SAhQQC,GAiQP5I,EAhQI2I,YAAW,QAAY,yBAiQvBrJ,WAAW,EA/PhB+F,KAAS,SAKhB,QAASohI,IAAe1rH,GACpB,GAAGH,GAAAtY,EAAAsY,QAAA,UACC,4CAiQItb,WAAW,EA/Pd+F,KAAA,MAGLuV,GAAKjT,OAAAjB,KAAc,WAiQf,GAAIxD,IA/PA8iI,WAAWjrH,EAAAirH,WACf39H,SAAArI,EAAwBuK,OAkQxB0zH,GAhQIyI,eAAAxjI,GAAAwD,KAAA,SAAAC,GACA,GAAgB,MAAbA,EAAAlI,OACJ,GAASkI,EAAAhJ,KAAKke,UAkQL,GAjQR7b,EAAW2I,YAAY,UAAAhC,EAAAmV,QAAA,oBAiQX7T,GAAGk5H,QA/PhB,OAAApmH,EAAAkrH,aACA,IAAA,GACaI,IACD,MAEK,KAAA,GACDC,IACF,MAkQG,KAAK,GA/PtBC,IAiQqB,MAEJ,KAAK,GACDC,SA5PRpH,GAAan3H,GAAAsoD,IAAAupD,aAAA94F,QAoQjBhhB,GAAW2I,YAAY,QAAShC,EAAImV,QAAS,wBA7PrD9b,GAAS2I,YAAA,QAAA,wBAAA,qBAEjB,SAAgBC,GACR5I,EAAI2I,YAAgB,QAAA,yBAChBrJ,WAAS,EACT+F,KAAA,UAmQT,cAnhDP,GAAI4C,IAAKC,IA7PTD,IAAAqU,kBACIhJ,MAAG,IAEHA,MAAG,KAEHA,MAAG,KAEHA,MAAG,KAiQHA,MA/PQ,MAiQZrL,GAAGsU,SA/PStU,GAAAqU,gBAAW,GAiQvBrU,GAAGuU,YA/PK,EAgQRvU,GAAGwU,qBA/PiB,SAAWC,GAgQvBzU,GAAGuU,YA/PQE,GAkQnBzU,GAAGgT,YAAa,EAChBhT,GAAGk5H,SAAU,EACbl5H,GAAGm5H,OAAQ,EACXn5H,GAAGo5H,OAAQ,EACXp5H,GAAGq5H,YAAa,EAChBr5H,GAAG+S,WAAY,EACf/S,GAAGsS,WA/PQ,EAgQXtS,GAAG8V,eACH9V,GAAGu8C,gBACHv8C,GAAG/C,UACH+C,GAAGqyI,OACHryI,GAAGjC,QACHiC,GAAGsoD,OACHtoD,GAAGs3H,YACHt3H,GAAG+3H,aACH/3H,GAAG63H,iDAAmDA,EACtD73H,GAAG04H,6CAA+CA,EA9PlD14H,GAAAy9C,aAASA,EAgQTz9C,GAAGm3H,gBA/PcA,EAgQjBn3H,GAAG27C,uBA/PsBA,EAgQzB37C,GAAGwyI,2BA/PcA,EAgQjBxyI,GAAGs8C,2BA/PmBA,EAgQtBt8C,GAAGw2E,gCA/PcA,EAgQjBx2E,GAAG0yI,eA/PiBA,EAgQpB1yI,GAAGq5G,sBA/PKA,EAgQRr5G,GAAG86H,8BA/PsBA,EAgQzB96H,GAAGg7H,0BA/PsBA,EAgQzBh7H,GAAG4yI,YA/PaA,EAgQhB5yI,GAAGm+C,SAAWA,EACdn+C,GAAG44H,OAASA,EACZ54H,GAAGyjB,UAAYA,EACfzjB,GAAGujB,WAAaA,EAChBvjB,GAAG6yI,aA/PaA,EAgQhB7yI,GAAGs8H,eA/PiBA,EAgQpBt8H,GAAG+oI,gBA/PiBA,EAgQpB/oI,GAAG08H,iBAAmBA,EACtB18H,GAAG47H,iBAAmBA,EACtB57H,GAAGk7H,IAAMA,EACTl7H,GAAGgzI,YA/PQA,GAgQXhzI,GAAG68H,SA/PQA,GAgQX78H,GAAG88H,UA/PQA,GAgQX98H,GAAGgU,OA/PQA,GAgQXhU,GAAG0R,OA/PQA,GAgQX1R,GAAGkU,UAAYA,GACflU,GAAGg9H,SAAWA,GACdh9H,GAAGi9H,SAAWA,GACdj9H,GAAGqzI,mBAAqBA,GA9PxBrzI,GAAAuzI,qBAASA,GAgQTvzI,GAAGyzI,sBA/PcA,GAgQjBzzI,GAAG2zI,uBA/PmBA,GAgQtB3zI,GAAG2jB,aA/PcA,GAgQjB3jB,GAAG+xB,KA/PKA,GAgQR/xB,GAAGk+H,eA/PKA,GAgQRl+H,GAAGw+H,eA/PYA,GAgQfx+H,GAAGypF,4BA/P4BA,GAgQ/BzpF,GAAGs5G,uBA/PgBA,EAgQnBt5G,GAAGu5H,YA/PaA,EAgQhBxhI,EAAW2c,SA/PS,EAgQpBxC,IACAwlH,IAGA13H,GAAG++C,WACCvD,aAAc,UACdnzB,KAAM,MAENmzB,aA/PO,WAgQPnzB,KA/PI,KAQAluB,GAA4BgG,uBAAiBwU,gBAAAxC,SAijBrD0jE,GAAsBG,0BAA0Bv3E,KAAK,SAASC,GACvC,MAAfA,EAAIlI,SACJwJ,GAAGw5H,mBAAqB96H,EAAIhJ,KACxBsK,GAAGw5H,mBAAmBr+H,OAAS,GAC/Bd,EAAQ8C,OAAO,UAAW,kCAAoC6C,GAAGjC,KAAK07H,uBAAuBC,gBACzFriI,WAAW,EACX+F,KAAM,OAGd4C,GAAGsS,WAAY,KAoCvBtS,GAAG+5H,sBACCC,oBAhQY,UAiQZ3xG,KAAM,MAEN2xG,oBAAqB,WACrB3xG,KAAM,MAGVstG,EAhQiBsE,uBAAUx7H,KAAkB,SAAAC,GAC7B,MAARA,EAAIlI,SAiQJwJ,GAAGk6H,gBAhQIx7H,EAAkBhJ,KAiQzBsK,GAAGsS,WAhQC,EAiQAtS,GAAGk6H,gBAAgB/+H,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,kCAAoC6C,GAAGm6H,oBAAoBC,aA/P1F/iI,WAAkB,EAiQT+F,KAAM,OAGd4C,GAAGsS,WAhQI,KA2gBftS,GAAG+5H,sBACCC,oBAhQW,UAiQX3xG,KAAM,MAEN2xG,oBAhQiB,WAiQjB3xG,KAhQI,MAkfR+/C,EAhQmBG,8BAAoB9pE,KAAA,SAA8BC,GAiQ9C,MAAfA,EAAIlI,SACJwJ,GAAG87H,uBAAyBp9H,EAAIhJ,KAC5BsK,GAAG87H,uBAAuB3gI,OAAS,GACnCd,EAAQ8C,OAAO,UAAW,kCAAoC6C,GAAGjC,KAAKygH,2BAA2Bud,oBAC7F1kI,WAAW,EACX+F,KAAM,OA7PnB4C,GAAAsS,WAAA,gjBAnuBPle,QACKC,OAAO,oCACPe,WAAW,eA/PG28I,MA+xDvB,WACI,YAOA,SAhQQ8B,GAAUppI,EAAAxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAA67H,GAiQd,GAAIh2H,GAhQIC,IAiQRD,GAAGsU,SAhQK,KAiQRtU,EAAGgT,YAhQK,EAiQRhT,EAAG+S,WAhQK,EAiQR/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAhQQ2c,SAAY,CACRva,GAASgG,uBAAAwU,gBAAAxC,SAkQrBnS,GAAGykB,cAhQQ,WAiQP,GAhQIK,IACAi5G,WAAIx7H,EAAYw7H,WAiQhBp5G,gBA/PJlC,MAAgBziB,EAAA5H,OAAAusB,eACRC,WAAIzqB,EAAgBgG,uBAAAE,OACpBwkB,WAAa5qB,EAAA,QAAW,GAAAwf,MAAA,eAmQhCu8G,GAAgBjxG,kBAAkBD,GAAWrmB,KAAK,SAAUC,GA/PrC,MAgQfA,EAhQIlI,QAiQJuB,EAAW2I,YAAY,UAAW,oCAAqC,sBA9PvE4b,EAAWrN,SAEhBlX,EAAc2I,YAAA,QAAA,0BACbrJ,WAAW,EACP+F,KAAA,QAmQL,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,0BAC5BrJ,WAAW,EACX+F,KAAM,UAKlB4C,EAAG0R,OAhQK,WAiQJ4K,EAhQciB,QAAU,iKAoNhCnpB,QACKC,OAAO,2BACPe,WAAW,qBAAsBy+I,MA+C1C,WACI,YAOA,SAASC,GAhQU/7I,EAAA4mI,EAAA3kI,EAAAO,EAAAC,EAAAH,EAAAN,EAAAgY,EAAA4jH,EAAAx7H,EAAA0gD,EAiQf+6E,EAhQuBC,EAAqBC,EAAAv/C,EAAkCv7B,EAAA66B,EAAAkgD,EAAAp7E,EAiQ9EG,EAAwBk7E,EAAiBC,EAAuBC,EAAqBC,EAA6BC,EAAoBntC,EAA0BotC,EAAsB77E,EAAa4tB,GA+FnM,QAhQQl2D,KAEJH,EAAA8D,mBAA+BpX,KAAK,SAAKC,GAClB,MAAfA,EAAIlI,QACJwJ,EAAA8V,YAAapX,EAAAhJ,KAiQbsK,EAAGsS,WAhQY,GAkQfva,EAhQQ2I,YAAY,QAAA,yBAAA,YAkQzB,SAAUC,GACT5I,EAAW2I,YAhQS,QAAA,mBAAA,aAmQxBm6C,EAhQwBI,aAAAlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GAiQD,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAhQS,GAkQZva,EAAW2I,YAhQK,QAAA,yBAAA,0BAkQrB,SAAUC,GACT5I,EAAW2I,YAhQS,QAAA,mBAAA,2BAuX5B,QAASy9C,KACL,GAjQcxoD,QAiQVqK,EAAGu7C,aAjQO0C,iBAAA,CAkQVj+C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBACHvyI,EAAG22H,oBAhQR,IAAS17H,IACRyiD,cAAkB19C,EAAQqyI,IAAA10F,iBAAAzB,WAkQlB0B,iBAAkB59C,EAAGqyI,IAAIx0F,oBAAoBhsB,cAC7CisB,WAAY99C,EAAGjC,KAAK8gD,iBAAiBC,UACrCC,SAAU/+C,EAAGu7C,aAAa0C,iBAAiB51B,KA9P3DmyB,GAAAu5F,gBAAA94I,GAAAwD,KAAA,SAAAC,GAkQmC,MAAfA,EAAIlI,QACJwJ,EAAGuyI,iBAAmB7zI,EAAIhJ,KAjQ9CsK,EAAAuyI,iBAAAp3I,OAAA,GACYd,EAAA8C,OAAA,UAAA,yBAAA6C,EAAAu7C,aAAA0C,iBAAAzC,cACInkD,WAAA,EAmQY+F,KAAM,QA9P9BrF,EAAwB2I,YAAA,QAAiB,mCAAuB,WAoQrD,SAAUC,UA/PlBX,GAAAsoD,IAAAupD,aAAA,KACC7xG,EAAAsoD,IAASupD,aAAA,KACV7xG,EAAAuyI,oBACCvyI,EAAA22H,qBAMJ,QAAGQ,GAAcp+G,GAmQbi9G,EAAgBoB,2BAA2Br+G,GAAIta,KAAK,SAAUC,GAjQ/D,GAAc,MAAdA,EAAAlI,QAEI,GADJwJ,EAAA22H,kBAAuBj4H,EAAUhJ,KAC7BsK,EAAA22H,kBAAcx7H,OAAA,EAmQL,IAAK,GAAID,KAAK8E,GAAG22H,kBACb32H,EAAG22H,kBAAkBz7H,GAAG+7H,aAAet6H,KAAKC,MAAMoD,EAAG22H,kBAAkBz7H,GAAGg8H,aA9PnFn/H,GAAA2I,YAAA,QAAA,mCAAA,WAER,SAAaC,MAzBhB,GAAIX,GAhQGC,IAkQPD,GAAGqU,kBACChJ,MAhQQ,IAkQRA,MAAS,KAETA,MAAS,KAETA,MAAS,KA9PTA,MAAI,MAkQRrL,EAAGsU,SAhQKtU,EAAOqU,gBAAO,GAkQtBrU,EAAGuU,YAhQK,EAiQRvU,EAAGwU,qBAAuB,SAAUC,GA/PhCzU,EAAAuU,YAAWE,GAmQfzU,EAAGgT,YAAa,EAChBhT,EAAGk5H,SAhQQ,EAiQXl5H,EAAGm5H,OAhQK,EAiQRn5H,EAAGo5H,OAhQK,EAiQRp5H,EAAGg0I,QAAS,EACZh0I,EAAGq5H,YAhQC,EAiQJr5H,EAAG+S,WAhQS,EAiQZ/S,EAAGsS,WAhQS,EAiQZtS,EAAGi0I,eAhQa,EAiQhBj0I,EAAG8V,eACH9V,EAAGu8C,gBACHv8C,EAAGu7C,gBACHv7C,EAAG/C,UACH+C,EAAGqyI,OACHryI,EAAGjC,QAIHiC,EAAGm3H,gBAhQSA,EAiQZn3H,EAAGm+C,SAhQSA,EAiQZpmD,EAAW2c,SAAU,EAGrBxC,IAEAlS,EAAG++C,WA/PHvD,aAAS,UACLnzB,KAAI,MAkQJmzB,aAhQQ,WAiQRnzB,KAAM,MAGVroB,EAAGu5H,YAhQa,WAiQZv5H,EAAGk5H,SAhQS,EAiQZl5H,EAAGgT,YAhQS,EAiQZhT,EAAGg0I,QAAS,GAEhBh0I,EAAG2iB,UAAY,WACX3iB,EAAGgT,YAhQa,EAiQhBhT,EAAGg0I,QAAS,EACZh0I,EAAGk0I,cAAgBl0I,EAAG6sB,UACtB7sB,EAAGi0I,eAhQgB,EAiQnBj0I,EAAGm0I,UAAW,EACdn0I,EAAGyxG,SAAU,EACbzxG,EAAGo0I,WAAY,GAInBp0I,EAAGsxG,oBAhQa,WAiQZtxG,EAAGq0I,wBAhQwBr0I,EAAA2wB,YAiQ3B3wB,EAAGgT,YAhQa,EAiQhBhT,EAAGi0I,eAAgB,EACnBj0I,EAAGm0I,UAAW,EACdn0I,EAAGyxG,SAAU,EACbzxG,EAAGo0I,WAhQY,GAoQnBp0I,EAAG+xB,KAAO,WACN/xB,EAAGi0I,eAAgB,EA/PvBj0I,EAAAgT,YAAgB,EACZhT,EAAGm0I,UAAU,GAmQjBn0I,EAAGs0I,YAhQC,WACAt0I,EAAAi0I,eAAA,EACAj0I,EAAAgT,YAAA,EAiQAhT,EAAGm0I,UAAW,EA5PVh6I,GAAgBgG,uBAAAwU,gBAAAxC,SA2RxBnS,GAAG27C,uBAhQiB,SAAgBtlC,EAAOqlC,EAAan9C,GAiQpD,GAAI8X,GAAaqlC,EAAuB,CACpC17C,EAAGqyI,IAAI10F,iBAAmB,KAC1B39C,EAAG47C,gBACH57C,EAAGqyI,IAAIx0F,oBAhQY,KAiQnB79C,EAAGsyI,uBACHtyI,EAAGjC,KAhQI8gD,iBAAA,KAiQP7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAAa0C,iBAAmB,KA/PpCj+C,EAAAsoD,IAAAupD,aAAc,KACb7xG,EAAAsoD,IAAAupD,aAAWl8G,OAiQXqK,EAAGuyI,mBACH,IAhQIt3I,IAiQAygD,sBAAuBA,EACvBrlC,UAAWA,EAEfskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAAUC,GA/P1C,MAApBA,EAAAlI,SACDwJ,EAAU47C,aAAgBl9C,EAAAhJ,KAC1BsK,EAAA47C,aAAAzgD,OAAA,GACId,EAAW8C,OAAA,UAAA,kCAAA6C,EAAAsoD,IAAA7xC,gBAAAC,aAAA1W,EAAAsoD,IAAA9L,YAAAqd,yBACLxiE,WAAA,EAiQM+F,KAAM,OA7PlB4C,EAAMsS,WAAA,EACN/T,GACAA,WAoQJyB,GAAGqyI,IAAI10F,iBAhQc,KAiQrB39C,EAAG47C,gBACH57C,EAAGqyI,IAAIx0F,oBAhQqB,KAiQ5B79C,EAAGsyI,uBACHtyI,EAAGjC,KAAK8gD,iBAhQiB,KAiQzB7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAAa0C,iBAhQQ,KAiQxBj+C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGsoD,IAAIupD,aAhQal8G,OAiQpBqK,EAAGuyI,qBAIXvyI,EAAGwyI,2BAhQ6B,SAAAt2F,GAiQVvmD,QAAdumD,GACAl8C,EAAGqyI,IAAIx0F,oBAAsB,KAC7B79C,EAAGsyI,uBACHtyI,EAAGjC,KAAK8gD,iBAhQgB,KAiQxB7+C,EAAGu8C,gBACHv8C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGu7C,aAAa0C,iBAhQG,KAiQnBj+C,EAAGsoD,IAAIupD,aAhQSl8G,OAiQhBqK,EAAGuyI,oBACHvyI,EAAG22H,qBACH77E,EAAuBqB,yBAAyBD,GAAYz9C,KAAK,SAAUC,GA/PpD,MAgQfA,EAhQIlI,SAiQJwJ,EAAGsyI,oBAAsB5zI,EAAIhJ,KA/P1BsK,EAAAsyI,oBAAAn3I,OAAA,GACHd,EAAW8C,OAAA,UAAY,qCAAkC6C,EAAAqyI,IAAA10F,iBAAA9B,cAiQjDxkD,WAAW,EA/Pf+F,KAAK,OAGT4C,EAAAsS,WAAM,OAqQdtS,EAAGqyI,IAAIx0F,oBAAsB,KAC7B79C,EAAGsyI,uBACHtyI,EAAGjC,KAAK8gD,iBAAmB,KAC3B7+C,EAAGu8C,gBACHv8C,EAAGsoD,IAAIupD,aAAe,KA/PzB7xG,EAAAu7C,aAAA0C,iBAAA,KACTj+C,EAAAsoD,IAAAupD,aAAAl8G,OAiQYqK,EAAGuyI,oBACHvyI,EAAG22H,uBAKX32H,EAAGs8C,2BAA6B,SAAUzqB,GAhQlBl8B,QAAnBk8B,GACD7xB,EAAKjC,KAAA8gD,iBAAA,KACN7+C,EAAAu8C,gBACAv8C,EAAAu7C,aAAa0C,iBAAA,KACbj+C,EAAAsoD,IAAYupD,aAAA,KACZ7xG,EAAAsoD,IAAYupD,aAAAl8G,OACZqK,EAAAuyI,oBACHvyI,EAAW22H,qBACP37E,EAAYsB,2BAAsBzqB,GAAuBpzB,KAAA,SAAgBC,GAkQ9C,MAAfA,EAAIlI,SAhQjBwJ,EAAgBu8C,aAAY79C,EAAAhJ,KACXsK,EAAAu8C,aAAAphD,OAAA,GACAd,EAAM8C,OAAA,UAAA,kCAAA6C,EAAAqyI,IAAAx0F,oBAAAlsB,iBACFt6B,WAAA,EACA+F,KAAA,OAoQR4C,EAAGsS,WAAY,OAKvBtS,EAAGjC,KAjQC8gD,iBAAA,KAkQJ7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAjQI0C,iBAAA,KAkQPj+C,EAAGsoD,IAjQCupD,aAAW,KAkQf7xG,EAAGsoD,IAAIupD,aAjQYl8G,OAkQnBqK,EAAGuyI,oBACHvyI,EAAG22H,smBA9OfviI,QACKC,OAAO,oCACPe,WAAW,uBAAwB0+I,MAuS5C,WACI,YAOA,SAlQOS,GAAWx8I,EAAA4mI,EAAA3kI,EAAAO,EAAAC,EAAAH,EAAAN,EAAAgY,EAAA4jH,EAAAx7H,EAAA0gD,EACd+6E,EAAqBC,EAAAC,EAAAv/C,EAAAv7B,EAAA66B,EAAAkgD,EAAAp7E,EAmQrBG,EAAwBk7E,EAAiBC,EAAuBC,EAAqBC,EAA6BC,EAAoBntC,EAA0BotC,EAAsB77E,EAAa4tB,GA6InM,QAASvlD,KACL,GAAIC,KAqCJ,IAAI9iB,EAAG22H,kBAAkBC,gBAAgBz7H,QAAU,GAAK6E,EAAG22H,kBAAkBE,kBAAkB17H,QAAU,GACrG6E,EAAG22H,kBAAkBG,mBAAmB37H,QAAU,GAClD6E,EAAG22H,kBAAkBI,oBAAoB57H,QAAU,EAAG,CAhQtD,IAAG,GAAKD,KAAA8E,GAAA22H,kBAAmBC,gBACxB9zG,EAAAjrB,KAAemI,EAAA22H,kBAAAC,gBAAA17H,GAAA6iI,WAElB,KAAG,GAAI5zH,KAAAnK,GAAA22H,kBAAeE,kBACnB/zG,EAAIjrB,KAAAmI,EAAA22H,kBAAeE,kBAAA1sH,GAAA4zH,WAEtB,KAAG,GAAA/nG,KAAAh2B,GAAA22H,kBAAoBG,mBAmQnBh0G,EAASjrB,KAAKmI,EAAG22H,kBAAkBG,mBAAmB9gG,GAAG+nG,WAE7D,KAAK,GAAIiU,KAAKhyI,GAAG22H,kBAAkBI,oBAjQlCj0G,EAAWjrB,KAAAmI,EAAA22H,kBAAAI,oBAAAib,GAAAjU,YAuQhB,GAlQI56G,GAAGxmB,KAAAqkB,UAAoB8B,EAqQ3B,OADA9iB,GAAGqjB,SAlQKF,EAAeG,UAAO,EAAAH,EAAiBhoB,OAAA,GACvC6E,EAAA,SAqQZ,QAASujB,KACL,IAAK,GAAIroB,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBC,gBAAgBz7H,OAAQD,IAjQ7D,IAAA8E,EAAA22H,kBAAYC,gBAA0B17H,GAAA8nB,UAoQlC,YAnQAhjB,EAAAiyI,iBAAmB,EAsQ3BjyI,GAAGiyI,iBAlQiB,CAoQpB,KAAK,GAAI/2I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBE,kBAAkB17H,OAAQD,IAC/D,IAAK8E,EAAG22H,kBAAkBE,kBAAkB37H,GAAG8nB,UAE3C,YADAhjB,EAAGkyI,iBAlQI,EAsQflyI,GAAGkyI,iBAAkB,CAErB,KAlQI,GAAGh3I,GAAI,EAAAA,EAAA8E,EAAA22H,kBAAeG,mBAAA37H,OAAAD,IACtB,IAAG8E,EAAI22H,kBAAeG,mBAAA57H,GAAA8nB,UAEnB,YADAhjB,EAAAmyI,iBAAmB,EAsQ1BnyI,GAAGmyI,iBAAkB,CAErB,KAAK,GAAIj3I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBI,oBAAoB57H,OAAQD,IAjQzE,IAAS8E,EAAA22H,kBAAoBI,oBAAA77H,GAAA8nB,UAEjB,YADRhjB,EAAAoyI,iBAAgB,EAsQhBpyI,GAAGoyI,iBAlQkB,EAqQzB,QAAS3uH,KACL,IAAK,GAAIvoB,GAlQE,EAAAA,EAAA8E,EAAA22H,kBAAAC,gBAAAz7H,OAAAD,IAmQP8E,EAAG22H,kBAlQYC,gBAAqB17H,GAAA8nB,UAAAhjB,EAAAiyI,eAqQxC,KAAK,GAAI/2I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBE,kBAAkB17H,OAAQD,IAC/D8E,EAAG22H,kBAAkBE,kBAAkB37H,GAAG8nB,UAAYhjB,EAAGkyI,eAG7D,KAAK,GAAIh3I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBG,mBAAmB37H,OAAQD,IAjQnE8E,EAAA22H,kBAAAG,mBAAA57H,GAAA8nB,UAAAhjB,EAAAmyI,eAqQD,KAAK,GAAIj3I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBI,oBAAoB57H,OAAQD,IAlQ7E8E,EAAA22H,kBAAAI,oBAAA77H,GAAA8nB,UAAAhjB,EAAAoyI,gBAMI,QAAAlgI,KAEIH,EAAK8D,mBAAApX,KAAA,SAAAC,GAoQkB,MAAfA,EAAIlI,QAlQbwJ,EAAA8V,YAAmBpX,EAAAhJ,KAClBsK,EAASsS,WAAA,GAETva,EAAS2I,YAAA,QAAA,yBAAA,YAET,SAASC,GACV5I,EAAA2I,YAAA,QAAA,mBAAA,aAGCm6C,EAASI,aAAAlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GAoQc,MAAfA,EAAIlI,QAlQbwJ,EAAWk7C,QAAGx8C,EAAAhJ,KAoQLsK,EAAGsS,WAAY,GAjQxBva,EAAA2I,YAAuB,QAAe,yBAAA,0BAqQlC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BA1I5D,QAASy9C,KACL,GAAexoD,QAAXqK,EAAAu7C,aAAW0C,iBAAA,CAoQXj+C,EAAGsoD,IAAIupD,gBACP7xG,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBACHvyI,EAAG22H,oBACH,IAAI17H,IACAyiD,cAAe19C,EAAGqyI,IAAI10F,iBAAiBzB,WACvC0B,iBAAkB59C,EAAGqyI,IAAIx0F,oBAAoBhsB,cAC7CisB,WAAY99C,EAAGjC,KAAK8gD,iBAAiBC,UACrCC,SAAU/+C,EAAGu7C,aAAa0C,iBAAiB51B,KAE/CmyB,GAAYwE,WAAW/jD,GAAKwD,KAAK,SAAUC,GACpB,MAAfA,EAAIlI,QACJwJ,EAAGuyI,iBAAmB7zI,EAAIhJ,KAC1BsK,EAAGkiB,KAAM,GAETnqB,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,UAGbX,GAAGsoD,IAAIupD,gBACP7xG,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBACHvyI,EAAG22H,qBAMX,QAASQ,GAAgBp+G,GACrBi9G,EAAgBwe,0BAA0Bz7H,GAAIta,KAAK,SAAUC,GACzD,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpB,GADAwJ,EAAG22H,kBAAoBj4H,EAAIhJ,KACvBsK,EAAG22H,kBAAkBx7H,OAAS,EAC9B,IAAK,GAAID,KAAK8E,GAAG22H,kBACb32H,EAAG22H,kBAAkBz7H,GAAG+7H,aAAet6H,KAAKC,MAAMoD,EAAG22H,kBAAkBz7H,GAAGg8H,QAhQnFud,SAEH18I,GAAc2I,YAAG,QAAkB,mCAAiB,WAqQrD,SAAUC,MAIjB,QAnQQ8zI,KAoQJz0I,EAAG00I,gBACH10I,EAAG20I,gBAEH,KAAK,GAnQGz5I,KAAA8E,GAAS22H,kBAAQI,oBAoQsC,IAAvD/2H,EAAG22H,kBAAkBI,oBAAoB77H,GAAGtF,QAC5CoK,EAAG00I,aAAa78I,KAAKmI,EAAG22H,kBAAkBI,oBAAoB77H,IAEP,IAAvD8E,EAAG22H,kBAAkBI,oBAAoB77H,GAAGtF,QAlQhDoK,EAAA20I,cAAkB98I,KAAAmI,EAAU22H,kBAAAI,oBAAA77H,GAuQhC,KAAK,GAAIA,KAAK8E,GAAG22H,kBAAkBG,mBAC2B,IAAtD92H,EAAG22H,kBAAkBG,mBAAmB57H,GAAGtF,QAlQ9CoK,EAAA00I,aAAa78I,KAAAmI,EAAA22H,kBAAAG,mBAAA57H,IAE0C,IAApD8E,EAAC22H,kBAAGG,mBAAkC57H,GAAGtF,QACzCoK,EAAG20I,cAAA98I,KAAkBmI,EAAA22H,kBAAAG,mBAAA57H,GAsQ7B,KAAK,GAAIA,KAAK8E,GAAG22H,kBAAkBE,kBAlQd,IAAlB72H,EAAA22H,kBAAkBE,kBAAA37H,GAAAtF,QAoQboK,EAAG00I,aAAa78I,KAAKmI,EAAG22H,kBAAkBE,kBAAkB37H,IAjQjB,IAA3C8E,EAAC22H,kBAAGE,kBAAkB37H,GAAkBtF,QACxCoK,EAAG20I,cAAA98I,KAAkBmI,EAAA22H,kBAAAE,kBAAA37H,GAsQ7B,KAAK,GAAIA,KAAK8E,GAAG22H,kBAAkBC,gBAlQd,IAAlB52H,EAAA22H,kBAAkBC,gBAAA17H,GAAAtF,QAoQboK,EAAG00I,aAAa78I,KAAKmI,EAAG22H,kBAAkBC,gBAAgB17H,IAjQd,IAA5C8E,EAAC22H,kBAAGC,gBAAkB17H,GAAAtF,QACtBoK,EAAG20I,cAAA98I,KAAkBmI,EAAA22H,kBAAAC,gBAAA17H,GAsQ7B8E,GAAG40I,eAAgB,EApevB,GAAI50I,GAAKC,IAETD,GAAGqU,kBAjQAhJ,MAAA,IAECA,MAAM,KAENA,MAAA,KAoQAA,MAAS,KAhQVA,MAAA,MAoQHrL,EAAGsU,SAlQItU,EAAAqU,gBAAa,GAoQpBrU,EAAGuU,YAAc,EAjQjBvU,EAAGwU,qBAAY,SAAYC,GACvBzU,EAAGuU,YAAaE,GAqQpBzU,EAAG40I,eAlQI,EAmQP50I,EAAGgT,YAlQI,EAmQPhT,EAAGk5H,SAlQI,EAmQPl5H,EAAGm5H,OAlQI,EAmQPn5H,EAAGo5H,OAAQ,EACXp5H,EAAGg0I,QAAS,EACZh0I,EAAGq5H,YAAa,EAjQhBr5H,EAAG+S,WAAA,EAmQH/S,EAAGsS,WAlQI,EAmQPtS,EAAGi0I,eAlQI,EAmQPj0I,EAAG8V,eACH9V,EAAGu8C,gBACHv8C,EAAGu7C,gBACHv7C,EAAG/C,UACH+C,EAAGqyI,OACHryI,EAAGjC,QACHiC,EAAGujB,WAAaA,EAjQhBvjB,EAAG6iB,UAAOA,EAmQV7iB,EAAGyjB,UAlQIA,EAsQPzjB,EAAGm3H,gBAAkBA,EAjQrBn3H,EAAGm+C,SAAAA,EAmQHpmD,EAlQO2c,SAAA,EAEW/e,QAAdqE,EAAGvE,OAAWC,MAmQdyhI,EAAgBn9H,EAAOvE,OAAOC,KAAKuhC,SAIvC/kB,IAEAlS,EAAG++C,WAjQCvD,aAAA,UAmQAnzB,KAlQI,MAoQJmzB,aAlQW,WAmQXnzB,KAAM,MAIVroB,EAAG2iB,UAlQK,WAoQJ3iB,EAAG22H,mBAjQHC,mBACIC,qBAmQAC,sBACAC,wBAIJ/2H,EAlQGkiB,KAAA,CAmQH,KAlQI,GAAAhnB,KAAA8E,GAAW00I,aAmQ4B,IAAnC10I,EAAG00I,aAAax5I,GAAG8iI,aACnBh+H,EAAG60I,KAAM,EACT70I,EAAG22H,kBAAkBC,gBAAgB/+H,KAAKmI,EAAG00I,aAAax5I,KAhQ1B,IAApC8E,EAAA00I,aAAax5I,GAAA8iI,aACVh+H,EAAI80I,KAAA,EACJ90I,EAAA22H,kBAAeE,kBAAAh/H,KAAAmI,EAAA00I,aAAAx5I,KAGS,IAAnB8E,EAAA00I,aAAAx5I,GAAmB8iI,aACxBh+H,EAAA+0I,MAAA,EACA/0I,EAAA22H,kBAAaG,mBAAmBj/H,KAAAmI,EAAA00I,aAAAx5I,MAGhC8E,EAAAyoE,YAAA,EACCzoE,EAAA22H,kBAAMI,oBAAAl/H,KAAAmI,EAAA00I,aAAAx5I,MAwQlB8E,EAAGsxG,oBAlQgB,WAoQftxG,EAAG22H,mBACCC,mBACAC,qBACAC,sBACAC,wBAIJ/2H,EAAGkiB,KAAM,CACT,KAAK,GAAIhnB,KAAK8E,GAAG20I,cAjQV,IAAA30I,EAAA20I,cAAAz5I,GAAA8iI,aACAh+H,EAAI60I,KAAA,EACJ70I,EAAA22H,kBAAeC,gBAAA/+H,KAAAmI,EAAA20I,cAAAz5I,KAEO,IAAtB8E,EAAA20I,cAAsBz5I,GAAA8iI,aACtBh+H,EAAA80I,KAAK,EACL90I,EAAA22H,kBAAeE,kBAAAh/H,KAAAmI,EAAA20I,cAAAz5I,KAGI,IAAf8E,EAAA20I,cAAez5I,GAAA8iI,aACnBh+H,EAAA+0I,MAAA,EAmQC/0I,EAAG22H,kBAAkBG,mBAAmBj/H,KAAKmI,EAAG20I,cAAcz5I,MA/PvE8E,EAAAyoE,YAAA,EACKzoE,EAAA22H,kBAAyBI,oBAAAl/H,KAAAmI,EAAA20I,cAAAz5I,MAwQjC8E,EAAG+xB,KAlQK,WAmQJ/xB,EAAGi0I,eAlQQ,EAmQXj0I,EAAGgT,YAlQI,EAmQPhT,EAAGm0I,UAlQI,GAqQXn0I,EAAGs0I,YAlQa,WAmQZt0I,EAAGi0I,eAlQgB,EAmQnBj0I,EAAGgT,YAlQa,EAmQhBhT,EAAGm0I,UAAW,EAsHFh6I,GAAsBgG,uBAAuBwU,gBAAgBxC,SAxO7EnS,GAAG27C,uBAAQ,SAAAtlC,EAAAqlC,EAAAn9C,GACR,GAAA8X,GAAQqlC,EAAA,CACR17C,EAAAqyI,IAAS10F,iBAAA,KACT39C,EAAA47C,gBACA57C,EAAAqyI,IAAYx0F,oBAAA,KACZ79C,EAAAsyI,uBACAtyI,EAAAjC,KAAA8gD,iBAAgB,KAChB7+C,EAAAu8C,gBACAv8C,EAAAu7C,aAAe0C,iBAAA,KACfj+C,EAAAsoD,IAAAupD,aAAe,KACf7xG,EAAAsoD,IAASupD,aAAAl8G,OACTqK,EAAMuyI,oBACNvyI,EAAO22H,oBACP,IAAA17H,IACAygD,sBAAYA,EACZrlC,UAAYA,EAqQPskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,SAlQjBwJ,EAAA47C,aAAkBl9C,EAAAhJ,KACPsK,EAAA47C,aAAAzgD,OAAA,GACHd,EAAU8C,OAAA,UAAA,kCAAA6C,EAAAsoD,IAAA7xC,gBAAAC,aAAA1W,EAAAsoD,IAAA9L,YAAAqd,yBAoQGxiE,WAAW,EAlQjB+F,KAAQ,OAsQV4C,EAAGsS,WAAY,EACX/T,GAlQpBA,WAIIyB,GAAMqyI,IAAA10F,iBAAA,KACP39C,EAAA47C,gBACC57C,EAAAqyI,IAAAx0F,oBAAc,KACd79C,EAAMsyI,uBAoQFtyI,EAAGjC,KAAK8gD,iBAAmB,KAC3B7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAAa0C,iBAAmB,KAlQxCj+C,EAAAsoD,IAAYupD,aAAY,KAoQnB7xG,EAAGsoD,IAAIupD,aAAel8G,OAlQvBqK,EAAAuyI,oBACCvyI,EAAA22H,sBAuQR32H,EAAGwyI,2BAA6B,SAAUt2F,GACpBvmD,QAAdumD,GACAl8C,EAAGqyI,IAAIx0F,oBAAsB,KAlQ9B79C,EAAAsyI,uBACHtyI,EAAKjC,KAAI8gD,iBAAsB,KAC3B7+C,EAAAu8C,gBAoQAv8C,EAAGsoD,IAnQIupD,aAAM,KAoQb7xG,EAAGu7C,aAnQI0C,iBAAkB,KAoQzBj+C,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBACHvyI,EAAG22H,qBACH77E,EAnQOqB,yBAAyCD,GAAGz9C,KAAa,SAAAC,GAoQzC,MAAfA,EAAIlI,SACJwJ,EAAGsyI,oBAAsB5zI,EAAIhJ,KAlQzBsK,EAAAsyI,oBAAgBn3I,OAAgB,GACrCd,EAAO8C,OAAA,UAAA,qCAAA6C,EAAAqyI,IAAA10F,iBAAA9B,cACPxkD,WAAkB,EAoQT+F,KAAM,OAhQf4C,EAAAsS,WAAA,OAwQPtS,EAAGqyI,IAAIx0F,oBAAsB,KAlQlC79C,EAAAsyI,uBAoQKtyI,EAAGjC,KAAK8gD,iBAAmB,KAlQ5B7+C,EAAAu8C,gBACCv8C,EAAAsoD,IAAAupD,aAAkB,KAClB7xG,EAAAu7C,aAAA0C,iBAAqB,KACrBj+C,EAAAsoD,IAAAupD,aAAsBl8G,OACtBqK,EAAAuyI,oBAoQAvyI,EAAG22H,uBAKX32H,EAAGs8C,2BAnQ6B,SAAAzqB,GACXl8B,QAmQbk8B,GACA7xB,EAAGjC,KAnQI8gD,iBAAkB,KAoQzB7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAnQS0C,iBAAiB,KAoQ7Bj+C,EAAGsoD,IAnQIupD,aAAM,KAoQb7xG,EAAGsoD,IAnQIupD,aAAAl8G,OAoQPqK,EAAGuyI,oBACHvyI,EAAG22H,qBACH37E,EAnQYsB,2BAAiBzqB,GAAmBpzB,KAAA,SAAAC,GAClC,MAAPA,EAAAlI,SACAwJ,EAAAu8C,aAAkB79C,EAAAhJ,KAoQbsK,EAAGu8C,aAAaphD,OAAS,GAlQhCd,EAAA8C,OAAA,UAAA,kCAAA6C,EAAAqyI,IAAAx0F,oBAAAlsB,iBACEt6B,WAAa,EACb+F,KAAA,OAsQC4C,EAAGsS,WAAY,OA9PxBtS,EAAAjC,KAAA8gD,iBAAa,KACb7+C,EAAAu8C,gBAoQCv8C,EAAGu7C,aAAa0C,iBAAmB,KACnCj+C,EAAGsoD,IAAIupD,aAAe,KAlQ3B7xG,EAAAsoD,IAAAupD,aAA0Bl8G,OACtBqK,EAAAuyI,oBACAvyI,EAAA22H,uBAgWP32H,EAAG68H,SAnQU,WAoQT78H,EAAGgT,YAnQQ,GAsQfhT,EAAG88H,UAAY,WAlQX98H,EAAGgT,YAAA,GAGPhT,EAAA+xB,KAAS,WACL/xB,EAAAk5H,SAAa,EAoQbl5H,EAAGgT,YAnQI,EAoQPmkH,EAAgBn3H,EAAGsoD,IAAIupD,aAAa94F,KAGxC/Y,EAAGk+H,eAnQQ,SAAkBprH,GAoQzB,GAAI7X,IACA8iI,WAAYjrH,EAAIirH,WAlQpBN,cAAgB3qH,EAAO2qH,cACnB9pH,WAAG5b,EAAkBuK,OAqQzB0zH,GAAgBmI,eAAeljI,GAAKwD,KAAK,SAAUC,GAlQnD,GAAuB,MAAlBA,EAAIlI,OACF,GAAAkI,EAAAhJ,KAAAke,UAEV,GAkQe7b,EAAW2I,YAAY,UAAWhC,EAAImV,QAAS,oBAlQ9D7T,EAAAk5H,QAoQmB,OAAQpmH,EAAIkrH,aAlQhB,IAAA,GAoQYI,mBAlQZ,MAEG,KAAA,GACQC,qBACZ,MAEA,KAAA,GACQC,sBAoQK,MAjQT,KAAA,GAoQSC,4BA/PbpH,GAAcn3H,EAAAsoD,IAAAupD,aAAA94F,QAuQbhhB,GAAW2I,YAAY,QAAShC,EAAImV,QAAS,wBAGjD9b,GAAW2I,YAAY,QAAS,wBAAyB,qBAE9D,SAAUC,GAlQd5I,EAAA2I,YAAyB,QAAU,yBAC9BrJ,WAAa,EACV+F,KAAI,UAwQf4C,EAAGw+H,eAnQQ,WAoQP,GAnQI7rH,GAAGtY,EAAasY,QAAA,UAChB,4CACGtb,WAAI,EACJ+F,KAAA,MAsQPuV,GAnQQjT,OAAAjB,KAAA,WAoQJ,GAnQIxD,IAoQA8iI,WAAYl7G,EAAU7iB,EAAGqjB,UAlQ7BjjB,SAAArI,EAAoBuK,OAqQpB0zH,GAnQWyI,eAAmBxjI,GAAAwD,KAAA,SAAAC,GAoQ1B,GAnQW,MAAPA,EAAIlI,OAoQJ,GAnQIkI,EAAAhJ,KAAQke,UAqQR,GADA7b,EAnQI2I,YAAW,UAAAhC,EAAAmV,QAAA,oBACX7T,EAAAk5H,QAoQA,OAAQpmH,IAAIkrH,aACR,IAAK,GAlQFI,mBACX,MAqQQ,KAAK,GACDC,qBAlQrB,MAEe,KAAA,GACXC,sBACJ,MAEe,KAAA,GACFC,4BAIbpH,GAAoBn3H,EAAAsoD,IAAAupD,aAAA94F,QAI5BhhB,GAAA2I,YAAuC,QAAAhC,EAAYmV,QAAA,wBAG3C9b,GAAA2I,YAAsB,QAAA,wBAAA,qBAEtB,SAAAC,GACA5I,EAAI2I,YAAoB,QAAA,yBACxBrJ,WAAa,EACT+F,KAAA,UAsQR,eAKP4C,EAAGuxE,SAAW,WACV,GAAI5+D,GAAUtY,EAnQMsY,QAAM,UAoQtB,8CACItb,WAAW,EACX+F,KAnQI,OAqQRnC,GACA8iI,WAAYl7G,EAAU7iB,EAAGqjB,UAG7B1Q,GAnQOjT,OAAAjB,KAAA,WACHu3H,EAAQzkD,SAAAt2E,GAAmBwD,KAAK,SAAAC,GACd,MAAfA,EAAAlI,QACIuB,EAAA2I,YAAoB,UAAA,wBAAA,aACxBy2H,EAAan3H,EAAAsoD,IAAAupD,aAAwB94F,KAErChhB,EAAA2I,YAAmB,QAAA,2BACnBrJ,WAAoB,EAoQX+F,KAAM,QAGf,SAAUuD,GAlQlB5I,EAAA2I,YAA6B,QAAU,4BAClCrJ,WAAiB,EACT+F,KAAA,UAsQT,eAKP4C,EAAG0R,OAnQS,WAoQR4K,kBAnQeiB,QAAA,WAuQnBvd,EAAG4jB,OAAS,WACR,GAAIoxH,IACAjX,WAAYl7G,EAAU7iB,EAAGqjB,UACzB4T,QAnQQj3B,EAAGsoD,IAAAupD,aAAY94F,IAsQvB3Z,EAAgB7E,EAAU8E,MAC1BhI,WAnQC,EACDiI,eAAQ,cACRC,gBAAG,aACHrK,YAAG,8DACHE,WAAO,qBACPC,aAAO,KACP+H,KAAG,KACHoC,SAAG,SAoQHC,UAAU,EACVyQ,SACI3N,MAAO,WAlQV,MAAWyyI,MAuQhB51I,GAnQOM,OAAAjB,KAAmB,WACtB04H,EAAGn3H,EAAAsoD,IAAoBupD,aAAA94F,KAoQxB,8lBAhqBX3kB,QACKC,OAAO,oCACPe,WAAW,iCAAkCm/I,MAqqBtD,WACI,YAOA,SAASU,GAnQIl9I,EAAA4mI,EAAA3kI,EAAAO,EAAAC,EAAAH,EAAAN,EAAAgY,EAAA4jH,EAAAx7H,EAAA0gD,EAoQT+6E,EAnQeC,EAAeC,EAAAv/C,EAAAv7B,EAAA66B,EAAAkgD,EAAAp7E,EAoQ9BG,EAnQek7E,EAAeC,EAAAC,EAAAC,EAAAC,EAAAntC,EAAAotC,EAAA77E,EAAA4tB,GAkE9B,QAAGvlD,KACC,GAAGC,KAwSH,IAAI9iB,EAAG22H,kBAnQkBC,gBAAAz7H,QAAA,GAAA6E,EAAA22H,kBAAAE,kBAAA17H,QAAA,GAoQrB6E,EAAG22H,kBAnQiBG,mBAAA37H,QAAA,GAoQpB6E,EAAG22H,kBAnQiBI,oBAAA57H,QAAA,EAAA,CAqQpB,IAAK,GAAID,KAAK8E,GAnQC22H,kBAAAC,gBAoQX9zG,EAnQQjrB,KAAAmI,EAAA22H,kBAAuBC,gBAAa17H,GAAA6iI,WAqQhD,KAAK,GAAI5zH,KAAKnK,GAAG22H,kBAAkBE,kBAC/B/zG,EAASjrB,KAAKmI,EAAG22H,kBAAkBE,kBAAkB1sH,GAAG4zH,WAE5D,KAAK,GAAI/nG,KAAKh2B,GAAG22H,kBAAkBG,mBAC/Bh0G,EAnQGjrB,KAAAmI,EAAA22H,kBAAAG,mBAAA9gG,GAAA+nG,WAqQP,KAAK,GAAIiU,KAAKhyI,GAAG22H,kBAAkBI,oBAlQpCj0G,EAAUjrB,KAAKmI,EAAA22H,kBAAAI,oBAAAib,GAAAjU,YAyQlB,GAAI56G,GAAaxmB,KAAKqkB,UAAU8B,EAhQhC,OADD9iB,GAAAqjB,SAAAF,EAAiBG,UAAY,EAAAH,EAAAhoB,OAAA,GACxB6E,EAAA,SAsQR,QAASujB,KACL,IAAK,GAAIroB,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBC,gBAAgBz7H,OAAQD,IAC7D,IAAK8E,EAAG22H,kBAAkBC,gBAAgB17H,GAAG8nB,UAjQzC,YADAhjB,EAAAiyI,iBAAY,EAuQpBjyI,GAAGiyI,iBAAkB,CAErB,KAAK,GAnQG/2I,GAAI,EAAIA,EAAA8E,EAAA22H,kBAAgBE,kBAAA17H,OAAAD,IAoQ5B,IAAK8E,EAnQG22H,kBAAaE,kBAAW37H,GAAA8nB,UAqQ5B,YADAhjB,EAAGkyI,iBAnQgB,EAuQ3BlyI,GAAGkyI,iBAAkB,CAErB,KAAK,GAAIh3I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBG,mBAAmB37H,OAAQD,IAChE,IAAK8E,EAAG22H,kBAnQiBG,mBAAA57H,GAAA8nB,UAqQrB,YADAhjB,EAAGmyI,iBAnQiB,EAuQ5BnyI,GAAGmyI,iBAAkB,CAErB,KAAK,GAAIj3I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBI,oBAAoB57H,OAAQD,IACjE,IAAK8E,EAAG22H,kBAnQiBI,oBAAA77H,GAAA8nB,UAqQrB,YADAhjB,EAAGoyI,iBAnQiB,EAuQ5BpyI,GAAGoyI,iBAnQiB,EAsQxB,QAAS3uH,KACL,IAAK,GAAIvoB,GAAI,EAnQGA,EAAA8E,EAAA22H,kBAAuBC,gBAAaz7H,OAASD,IAoQzD8E,EAAG22H,kBAAkBC,gBAAgB17H,GAAG8nB,UAAYhjB,EAAGiyI,eAG3D,KAAK,GAAI/2I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBE,kBAAkB17H,OAAQD,IAC/D8E,EAnQG22H,kBAAeE,kBAAA37H,GAAA8nB,UAAAhjB,EAAAkyI,eAsQtB,KAAK,GAAIh3I,GAnQG,EAAAA,EAAM8E,EAAA22H,kBAAAG,mBAAA37H,OAAAD,IAoQd8E,EAAG22H,kBAAkBG,mBAAmB57H,GAAG8nB,UAAYhjB,EAAGmyI,eAG9D,KAAK,GAAIj3I,GAAI,EAAGA,EAAI8E,EAAG22H,kBAAkBI,oBAAoB57H,OAAQD,IACjE8E,EAAG22H,kBAAkBI,oBAAoB77H,GAAG8nB,UAAYhjB,EAAGoyI,gBAYnE,QAAS7Y,KAlQLv5H,EAAAk5H,SAAQ,EAoQRl5H,EAAGgT,YAnQC,EAoQJhT,EAAGg0I,QAnQS,EAqQhB,QAASrxH,KACL3iB,EAAGgT,YAnQY,EAoQfhT,EAAGg0I,QAnQS,EAoQZh0I,EAAGk0I,cAnQal0I,EAAA6sB,UAoQhB7sB,EAAGi0I,eAnQa,EAoQhBj0I,EAAGm0I,UAAW,EACdn0I,EAAGyxG,SAAU,EACbzxG,EAAGo0I,WAnQI,EAuQX,QAAS9iC,KACLtxG,EAAGq0I,wBAA0Br0I,EAAG2wB,YAChC3wB,EAnQGgT,YAAY,EAoQfhT,EAAGi0I,eAAgB,EACnBj0I,EAAGm0I,UAAW,EACdn0I,EAAGyxG,SAAU,EACbzxG,EAAGo0I,WAAY,EAInB,QAASriH,KACL/xB,EAAGi0I,eAAgB,EAlQpBj0I,EAAAgT,YAAS,EACRhT,EAAAm0I,UAAI,EAsQR,QAASG,KACLt0I,EAAGi0I,eAAgB,EAlQnBj0I,EAAAgT,YAAI,EAoQJhT,EAAGm0I,UAnQC,EAyQR,QAnQQjiI,KAqQJH,EAnQc8D,mBAAApX,KAAA,SAAAC,GACD,MAATA,EAAAlI,QACIwJ,EAAA8V,YAAOpX,EAAYhJ,KAoQnBsK,EAAGsS,WAnQQ,GAqQXva,EAAW2I,YAAY,QAAS,yBAA0B,YAjQlE,SAAAC,GACI5I,EAAA2I,YAAuB,QAAA,mBAAa,aAsQxCm6C,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAjQtBva,EAAA2I,YAAA,QAAA,yBAAA,0BAqQE,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAI5D,QAASi7C,GAAuBtlC,EAAWqlC,EAAuBn9C,GAC9D,GAAI8X,GAAaqlC,EAAuB,CAnQvC17C,EAAAqyI,IAAA10F,iBAAA,KACL39C,EAAA47C,gBACA57C,EAAAqyI,IAAAx0F,oBAAwB,KACpB79C,EAAKsyI,uBAqQDtyI,EAAGjC,KAAK8gD,iBAAmB,KAnQhC7+C,EAAAu8C,gBACCv8C,EAAAu7C,aAAS0C,iBAAA,KACVj+C,EAAAsoD,IAAAupD,aAAA,KACC7xG,EAAAsoD,IAASupD,aAAAl8G,OACVqK,EAAAuyI,oBACCvyI,EAAA22H,oBACD,IAAA17H,IACCygD,sBAASA,EACVrlC,UAAAA,EAsQKskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAAUC,GAnQtD,MAAHA,EAAGlI,SAqQDwJ,EAAG47C,aAAel9C,EAAIhJ,KAnQrBsK,EAAA47C,aAAAzgD,OAAA,GACdd,EAAuB8C,OAAA,UAAe,kCAAA6C,EAAAsoD,IAAA7xC,gBAAAC,aAAA1W,EAAAsoD,IAAA9L,YAAAqd,yBACpBxiE,WAAA,EAqQG+F,KAAM,OAjQjB4C,EAAAsS,WAAA,EACF/T,GACAA,WAIRyB,GAAAqyI,IAAY10F,iBAAA,KACZ39C,EAAA47C,gBACA57C,EAAAqyI,IAAAx0F,oBAAc,KACd79C,EAAAsyI,uBACAtyI,EAAAjC,KAAA8gD,iBAAe,KACf7+C,EAAAu7C,aAAS0C,iBAAA,KACTj+C,EAAMu8C,gBACNv8C,EAAOsoD,IAAAupD,aAAA,KACP7xG,EAAAsoD,IAAAupD,aAAkB,KAClB7xG,EAAAuyI,oBACAvyI,EAAA22H,qBAIH,QAAG6b,GAAYt2F,GACZvmD,QAAAumD,GACAl8C,EAAOqyI,IAAAx0F,oBAAA,KACP79C,EAAAsyI,uBACAtyI,EAAAjC,KAAA8gD,iBAAyB,KACzB7+C,EAAAu8C,gBACAv8C,EAAAsoD,IAAAupD,aAAA,KACA7xG,EAAAu7C,aAAW0C,iBAAA,KACXj+C,EAAAsoD,IAAYupD,aAAAl8G,OACZqK,EAAAuyI,oBACAvyI,EAAA22H,qBACA77E,EAAWqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACH,MAAAA,EAAAlI,SACCwJ,EAAAsyI,oBAAA5zI,EAAAhJ,KACAsK,EAAAsyI,oBAAAn3I,OAAA,GACDd,EAAU8C,OAAA,UAAA,qCAAA6C,EAAAqyI,IAAA10F,iBAAA9B,cAqQGxkD,WAAW,EAnQjB+F,KAAQ,OAuQV4C,EAAGsS,WAAY,OA/PvBtS,EAAAqyI,IAAAx0F,oBAAW,KAqQX79C,EAAGsyI,uBACHtyI,EAAGjC,KAAK8gD,iBAAmB,KAC3B7+C,EAAGu8C,gBACHv8C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGu7C,aAAa0C,iBAAmB,KACnCj+C,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBACHvyI,EAAG22H,sBAKX,QAASr6E,GAA2BzqB,GACXl8B,QAAjBk8B,GACA7xB,EAAGjC,KAAK8gD,iBAAmB,KAC3B7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAAa0C,iBAAmB,KACnCj+C,EAAGsoD,IAAIupD,aAAe,KACtB7xG,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBACHvyI,EAAG22H,qBACH37E,EAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,SACJwJ,EAAGu8C,aAAe79C,EAAIhJ,KAClBsK,EAAGu8C,aAAaphD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAGqyI,IAAIx0F,oBAAoBlsB,iBACrFt6B,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,OAKvBtS,EAAGjC,KAAK8gD,iBAAmB,KAnQ3B7+C,EAAGu8C,gBACHv8C,EAAGu7C,aAAA0C,iBAAkB,KACrBj+C,EAAGsoD,IAAAupD,aAAkB,KAqQrB7xG,EAAGsoD,IAAIupD,aAAel8G,OAnQtBqK,EAAAuyI,oBAqQAvyI,EAAG22H,sBAIX,QAASx4E,KACL,GApQuCxoD,QAAnCqK,EAAAu7C,aAAc0C,iBAAqB,CAqQnCj+C,EAAGsoD,IApQCupD,aAAiB,KAqQrB7xG,EAAGsoD,IAAIupD,aAAel8G,OAnQtBqK,EAAAuyI,oBAqQAvyI,EAAG22H,oBACH,IAAI17H,IACAyiD,cAAe19C,EAAGqyI,IAAI10F,iBAAiBzB;AACvC0B,iBAAkB59C,EAAGqyI,IAAIx0F,oBAAoBhsB,cAC7CisB,WAAY99C,EAAGjC,KAAK8gD,iBAAiBC,UACrCC,SAAU/+C,EAAGu7C,aAAa0C,iBAAiB51B,KAE/CmyB,GAAYwE,WAAW/jD,GAAKwD,KAAK,SAAUC,GAnQtB,MAAtBA,EAAWlI,OACHwJ,EAAAuyI,iBAAA7zI,EAAAhJ,KAsQCqC,EAAW2I,YAAY,QAAS,mCAAoC,WAlQ3E,SAAWC,UAuQZX,GAAGsoD,IApQCupD,aAAA,KAqQJ7xG,EAAGsoD,IAAIupD,aAAel8G,OACtBqK,EAAGuyI,oBAnQJvyI,EAAA22H,qBA4QP,QApQOQ,GAAkBp+G,GAqQrBi9G,EAAgBkf,+BAA+Bn8H,GAAIta,KAAK,SAAUC,GAnQlE,GAAuB,MAAlBA,EAAIlI,QAED,GADAwJ,EAAC22H,kBAAqBj4H,EAAAhJ,KACnBsK,EAAA22H,kBAAkBx7H,OAAA,EACrB,IAAA,GAAAD,KAAA8E,GAAA22H,kBAqQQ32H,EAAG22H,kBAAkBz7H,GAAG+7H,aAAet6H,KAAKC,MAAMoD,EAAG22H,kBAAkBz7H,GAAGg8H,aAhQrFn/H,GAAW2I,YAAO,QAAA,mCAAmD,WAsQvE,SApQQC,MAwQf,QApQOk8H,KAqQH78H,EAAGgT,YAAa,EAGpB,QApQS8pH,KAqQL98H,EAAGgT,YApQI,EAuQX,QApQS+e,KAqQL/xB,EAAGk5H,SApQI,EAqQPl5H,EAAGgT,YAAa,EAChBmkH,EAAgBn3H,EAAGsoD,IAAIupD,aAAa94F,IAGxC,QAASmlH,GAAeprH,GACpB,GAAI7X,IAnQJ8iI,WAAgBjrH,EAAIirH,WAChBN,cAAG3qH,EAAA2qH,cAqQH9pH,WAAY5b,EAAWuK,OAE3B0zH,GAAgBmI,eAAeljI,GAAKwD,KAAK,SAAUC,GAnQpD,GAAY,MAAZA,EAAYlI,OACX,GAAAkI,EAAchJ,KAAAke,UAEf,GADO7b,EAAA2I,YAAA,UAAAhC,EAAAmV,QAAA,oBACP7T,EAAAk5H,QACe,OAAApmH,EAAAkrH,aACR,IAAA,GAqQkBI,mBACA,MAlQX,KAAA,GACGC,qBACJ,MAEK,KAAA,GACDC,sBACJ,MAEO,KAAA,GACLC,4BAwQEpH,GAAgBn3H,EAAGsoD,IAAIupD,aAAa94F,QAhQjDhhB,GAAa2I,YAAA,QAAAhC,EAAAmV,QAAA,wBAGb9b,GAAU2I,YAAA,QAAA,wBAAA,qBAsQV,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,yBAC5BrJ,WAAW,EAnQd+F,KAAO,SAyQhB,QAASohI,GAAe1rH,GAnQxB,GAAAH,GAAStY,EAAcsY,QAAA,UAChB,4CACAtb,WAAa,EACb+F,KAAW,MAuQduV,GAAQjT,OAAOjB,KAAK,WAnQpB,GAAAxD,IAqQQ8iI,WAAYjrH,EAAIirH,WAnQnB39H,SAAOrI,EAAAuK,OAEZ0zH,GAAeyI,eAAmBxjI,GAAKwD,KAAA,SAAeC,GAC9C,GAAe,MAAXA,EAAAlI,OACD,GAAAkI,EAAAhJ,KAAcke,UAEd,GADA7b,EAAY2I,YAAA,UAAAhC,EAAAmV,QAAA,oBACZ7T,EAAAk5H,QACQ,OAAApmH,EAAYkrH,aAqQP,IAAK,GAnQXI,mBACS,MAsQH,KAAK,GAnQFC,qBACC,MAEL,KAAA,GACZC,sBACQ,MAED,KAAA,GACSC,4BAItBpH,GAAuBn3H,EAAWsoD,IAAAupD,aAAA94F,QAI5BhhB,GAAA2I,YAAsB,QAAAhC,EAAAmV,QAAA,wBAG1B9b,GAAe2I,YAAA,QAAA,wBAAA,qBAEf,SAAIC,GACJ5I,EAAI2I,YAAe,QAAA,yBACnBrJ,WAAA,EACA+F,KAAA,UAuQJ,cAKP,QAAS4mB,KACL,GAAIrR,GAAUtY,EApQEsY,QAAQ,UAqQpB,8CACItb,WAAW,EACX+F,KAAM,OAEVnC,GACA8iI,WApQYl7G,EAAA7iB,EAAAqjB,UAqQZ1P,WApQY5b,EAAAuK,OAsQhBqQ,GAAQjT,OAAOjB,KAAK,WAChBu3H,EApQGhyG,SAAA/oB,GAAAwD,KAAA,SAAAC,GACI,MAAAA,EAAAlI,QACJuB,EAAe2I,YAAA,UAAA,wBAAA,aACXy2H,EAAAn3H,EAAAsoD,IAAsBupD,aAAA94F,KAErBhhB,EAAA2I,YAAmB,QAAA,2BACxBrJ,WAAa,EACb+F,KAAe,QAGf,SAAAuD,GACA5I,EAAA2I,YAAoB,QAAA,4BAqQfrJ,WAAW,EACX+F,KAAM,UAjQlB,cAyQJ,QApQQwpE,KAqQJ,GApQIj0D,GAAGtY,EAAasY,QAAA,UAChB,2CACGtb,WAAA,EACA+F,KAAA,OAsQHnC,GACA8iI,WApQWl7G,EAAA7iB,EAAAqjB,UAqQX1P,WApQY5b,EAAGuK,OAuQnBqQ,GAAQjT,OAAOjB,KApQK,WAqQhBu3H,EAAgBpvD,MAAM3rE,GAAKwD,KAAK,SAAUC,GACnB,MAAfA,EAAIlI,QAnQJuB,EAAG2I,YAAY,UAAA,uBAAA,aAqQfy2H,EAAgBn3H,EAAGsoD,IAAIupD,aAAa94F,KAEpChhB,EAAW2I,YAAY,QAAS,wBAnQvCrJ,WAAA,EACM+F,KAAA,QAGJ,SAAAuD,GACA5I,EAAI2I,YAAe,QAAA,yBACnBrJ,WAAa,EACT+F,KAAA,UAuQR,cAOP,QApQQsU,KAqQJ4K,kBApQOiB,QAAa,UAwQxB,QApQQqG,GAAG9Q,GAqQP,GApQIkiI,IAqQAjX,WApQYjrH,EAAAirH,WAqQZ9mG,QApQQnkB,EAAGmkB,SAuQX73B,EApQgB7E,EAAA8E,MAqQhBhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YApQW,8DAqQXE,WAAY,qBACZC,aAAc,KACd+H,KAAM,KACNoC,SApQC,SACDC,UAAQ,EACRyQ,SACG3N,MAAA,WACI,MAAAyyI,MAwQX51I,GAAcM,OAAOjB,KAAK,WACtB04H,EAAgBrkH,EAAImkB,UACrB,cAvnBP,GAAIj3B,GAnQIC,IAqQRD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAjQbA,MAAS,KAqQLA,MAnQQ,KAqQRA,MAnQQ,MAqQZrL,EAAGsU,SAAWtU,EAAGqU,gBAnQM,GAqQvBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAnQS,SAAAC,GAoQRzU,EAAGuU,YAnQQE,GAsQfzU,EAAGgT,YAnQI,EAoQPhT,EAAGk5H,SAAU,EACbl5H,EAAGm5H,OAAQ,EACXn5H,EAAGo5H,OAAQ,EAlQXp5H,EAAAg0I,QAAS,EAoQTh0I,EAAGq5H,YAnQI,EAoQPr5H,EAAG+S,WAnQI,EAoQP/S,EAAGsS,WAAY,EACftS,EAAGi0I,eAnQe,EAoQlBj0I,EAAG8V,eACH9V,EAAGu8C,gBACHv8C,EAAGu7C,gBACHv7C,EAAG/C,UACH+C,EAAGqyI,OACHryI,EAAGjC,QACHiC,EAAGm3H,gBAAkBA,EACrBn3H,EAAGm+C,SAAWA,EACdn+C,EAAG6iB,UAnQUA,EAoQb7iB,EAAGujB,WAnQYA,EAoQfvjB,EAAGyjB,UAnQYA,EAoQfzjB,EAAGu5H,YAAcA,EACjBv5H,EAAG2iB,UAnQYA,EAoQf3iB,EAAGsxG,oBAnQYA,EAoQftxG,EAAG+xB,KAAOA,EACV/xB,EAAGs0I,YAAcA,EACjBt0I,EAAG27C,uBAnQkBA,EAoQrB37C,EAAGwyI,2BAnQYA,EAoQfxyI,EAAGs8C,2BAnQyBA,EAoQ5Bt8C,EAAG68H,SAAWA,EACd78H,EAAG88H,UAnQYA,EAoQf98H,EAAGk+H,eAnQYA,EAoQfl+H,EAAGw+H,eAAiBA,EACpBx+H,EAAGgkB,SAAWA,EACdhkB,EAAG4mE,MAnQMA,EAoQT5mE,EAAG0R,OAnQSA,EAoQZ1R,EAAG4jB,OAnQSA,EAoQZ7rB,EAAW2c,SAAU,EAjQN/e,QAmQXqE,EAAOvE,OAnQIC,MAoQXyhI,EAAgBn9H,EAAOvE,OAAOC,KAAKuhC,SAIvC/kB,IAsHAlS,EAAG++C,WACCvD,aAnQI,UAoQJnzB,KAAM,MAENmzB,aAAc,WAlQdnzB,KAAI,KA0CAluB,GAAYgG,uBAAAwU,gBAAAxC,ylBAuBxB/d,QACKC,OAAO,oCACPe,WAAW,gCAAiC6/I,MAooBrD,WACI,YAOA,SAASE,GApQWp9I,EAAG0S,EAAmBjQ,EAAIH,EAAAF,EAAAJ,EAAAihD,EAAAL,EAAAE,EAqQ1CC,EApQmBmvF,EAAAzvF,EAAAqvC,EAAAW,EAAAz4E,GA4UnB,QAASG,KACLH,EAAe8D,iBApQS9b,EAAAhC,GAAA0G,KAAA,SAAAC,GAqQD,MAAfA,EAAIlI,QACJwJ,EAAG8V,YApQQpX,EAAAhJ,KAqQXsK,EAAGsS,WApQK,GAsQRva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SApQSC,GAqQR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAGxDm6C,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAASC,GAnQvD,MAAfA,EAAAlI,QACCwJ,EAAAk7C,QAAWx8C,EAAAhJ,KACPsK,EAAAsS,WAAW,GAsQXva,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAIxDmpF,EApQmBI,eAAAxrF,KAAA,SAAAC,GACL,MAANA,EAAMlI,OAqQFwJ,EAAGyxF,eAAiB/yF,EAAIhJ,KAlQ5BqC,EAAY2I,YAAY,QAAA,4CAAA,WAuQ5B,SApQIC,GAqQA5I,EAAW2I,YAAY,QAAS,4CAA6C,UAIzF,QAASi7C,GApQsBD,EAAuBrlC,EAAI9X,GA4QtD,GAPAyB,EAAG29C,iBApQiB,KAqQpB39C,EAAG47C,gBACH57C,EAAG69C,oBApQqB,KAqQxB79C,EAAGo8C,mBACHp8C,EAAG6+C,iBAAmB,KACtB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBApQ0B,KAqQzBr1F,GApQwBrlC,EAAA,CAqQxB,GAAIpb,IAEAygD,sBApQqBA,EAqQrBrlC,UAAWA,EAEfskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAASC,GAnQ1C,MAoQZA,EAAIlI,SACJwJ,EAAG47C,aApQal9C,EAAAhJ,KAqQZsK,EAAG47C,aApQSzgD,OAAA,GAqQZd,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAGy8C,oBAAoB/lC,aACjFrf,WApQG,EACH+F,KAAA,OAuQR4C,EAAGsS,WAAY,EAnQX/T,GAqQAA,WAIZyB,GApQG29C,iBAAe,KAqQlB39C,EAAG47C,gBACH57C,EAAG69C,oBApQgB,KAqQnB79C,EAAGo8C,mBACHp8C,EAAG6+C,iBAAmB,KACtB7+C,EAAGu8C,gBAnQJv8C,EAAA+wI,wBAAY,KAwQnB,QAASqE,KAnQT,GAAAn6I,IACQyiD,cAAU19C,EAAQ29C,iBAAQzB,WAC1B0B,iBAAA59C,EAAA69C,oBAAAhsB,cAqQAisB,WApQI99C,EAAW6+C,iBAAAC,UAqQfC,SApQU/+C,EAAA+wI,wBAAA1oH,KAEdroB,GAAAm+C,YAqQA3D,EApQI66F,eAAsBp6I,GAAGwD,KAAA,SAAAC,GACb,MAAZA,EAAAlI,OAqQIwJ,EAAGm+C,SAAWz/C,EAAIhJ,KAlQtBqC,EAAA2I,YAAyB,QAAU,mCAAe,WAsQnD,SApQSC,MAuQhB,QAASs7C,GApQ8BC,GAqQnCl8C,EAAG69C,oBApQa,KAqQhB79C,EAAGo8C,mBACHp8C,EAAG6+C,iBAAmB,KACtB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBApQmB,KACHp7I,SAoQfumD,GACApB,EApQmBqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACL,MAANA,EAAAlI,SAqQAwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KACzBsK,EAAGsS,WAAY,KAK3BtS,EAAG69C,oBAAsB,KAnQ7B79C,EAAAo8C,mBACIp8C,EAAA6+C,iBAAsB,KAqQtB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBApQgB,KAuQvB,QApQQ10F,GAAMxqB,GAqQV7xB,EAAG6+C,iBApQa,KAqQhB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBAA0B,KACPp7I,SAAlBk8B,GAnQJmpB,EAAoBsB,2BAAYzqB,GAAApzB,KAAA,SAAAC,GACN,MAAtBA,EAAAlI,SACQwJ,EAAAu8C,aAAe79C,EAAKhJ,KACpBsK,EAAAsS,WAAW,KAwQvBtS,EAAG6+C,iBApQa,KAqQhB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBAA0B,KAGjC,QAAS3D,KAEL,GAAInyI,IACAyiD,cAAe19C,EAAG29C,iBAAiBzB,WACnC0B,iBAAkB59C,EAAG69C,oBAAoBhsB,cAnQ1CisB,WAAY99C,EAAA6+C,iBAAAC,UAqQXz2B,KAAMroB,EAAG+wI,wBAAwB1oH,KAErC4hH,GAAgBmD,mBAAmBnyI,GAAKwD,KAAK,SAASC,GAE/B,MAAfA,EAAIlI,QACJwJ,EAAGmiH,UAAW,EAnQjBzjH,EAAShJ,MAsQFsK,EAAGurI,gBAAkBn3I,QAAQ8e,KAAKxU,EAAIhJ,KAAK23I,cAC3CrtI,EAAGsrI,aAAe5sI,EAAIhJ,KAAK23I,aAC3BrtI,EAAGgtI,YAActuI,EAAIhJ,KAAKg3I,cAnQ1B1sI,EAAA/C,UACRyuI,IACgB,IAAJ1rI,EAAA0sI,cAAIvxI,SACP6E,EAAImiH,UAAA,EAqQDpqH,EAAW2I,YAAY,UAAW,wBAAyB,eAjQvEV,EAAW0sI,iBACX1sI,EAAAmiH,UAAgB,KAGhBpqH,EAAY2I,YAAA,QAAA,mCAAA,UACZV,EAAA0sI,iBACA1sI,EAAMmiH,UAAA,IAsQP,SApQCxhH,GACA5I,EAAS2I,YAAA,QAAA,iCAAA,UAqQTV,EAAG0sI,iBACH1sI,EAAGmiH,UApQK,IAwQhB,QApQI+pB,GAAcC,EAAYC,GAqQ1BpsI,EAAGqrI,uBApQqB,EAqQxB7wI,EApQGqI,QAAYspI,EAAAE,aAAA,SAAAD,GAqQXA,EAASE,YAAa,IAE1BF,EAASE,YAAa,EACtBH,EAAUI,iBAAmBH,EAASI,aACtCC,IAjQR,QAAAA,KAsQQjyI,EAAOqI,QAAQ7C,EAAG0sI,cAAe,SAASP,GApQlDA,EAAAI,mBACYvsI,EAAA/C,OAAAkvI,EAAAQ,eAAAR,EAAAI,oBAIZvsI,EAASsrI,aAAa9wI,EAAAyC,OAAY+C,EAAQsrI,aAAQtrI,EAAS/C,QACvDyuI,IACIlxI,EAAKqI,QAAA7C,EAAA0sI,cAAA,SAAAP,GAsQD3xI,EAAOqI,QAAQspI,EAAUE,aAAc,SAASD,GApQrDA,EAAmBI,eAAAxsI,EAAA/C,OAAAkvI,EAAAQ,eACTP,EAAAE,YAAA,EAEAF,EAAAE,YAAA,MA0Qb,QArQGlB,KACCprI,EAAAgT,YAAS,EAsQThT,EAAGqrI,uBAAwB,EApQ5BrrI,EAAA/C,UAsQC+C,EAAGsrI,aAAetrI,EAAGurI,gBApQtBvrI,EAAAwrI,OAAA,EACAE,IAwQH,QAASA,KApQN,GAAAqB,KACH,KAAA,GAAW92H,KAAAjW,GAAUgtI,YAAA,CAsQb,GAAIl0F,IACA6zF,cAAe3sI,EAAGgtI,YAAY/2H,GApQvCo2H,gBAEA,KAAA,GAAAx0H,KAAe7X,GAAAsrI,aAAA,CACN,GAAA1iI,GAAApO,EAAAihG,KAAA3iD,EAAAuzF,cACFG,aAAAxsI,EAAAsrI,aAAAzzH,GAAAihC,EAAA6zF,gBAEP,KAAA/jI,EAAkB,CAClB,GAAAskI,IACWV,aAAAxsI,EAAAsrI,aAAAzzH,GAAAihC,EAAA6zF,eACDL,YAAA,EAuQGxzF,GAAKuzF,aAAax0I,KAAKq1I,IAlQpCH,EAAAl1I,KAAAihD,GAEA94C,EAAA0sI,cAAiBK,EAGpB,QAAGf,KACA,GAAAmB,KAEA,KAAA,GAAAhB,KAAWnsI,GAAA0sI,cACX1sI,EAAA0sI,cAAaP,GAAAE,aAAA,GAAAC,WACba,EAAiBntI,EAAA0sI,cAAAP,GAAAQ,eAAA3sI,EAAA0sI,cAAAP,GAAAE,aAAA,GAAAG,aAEVW,EAAAntI,EAAA0sI,cAAAP,GAAAQ,eAAA,EAEP,OAAAQ,GAGH,QAAGrB,KAEC,GAAAtxI,EAAAmI,KAAgB3C,EAAA/C,QAAA9B,OAAA,EAAsB,CACvC,GAAAF,IACAyiD,cAAY19C,EAAA29C,iBAAAzB,WAsQH0B,iBAAoB59C,EAAG69C,oBAAoBhsB,cApQvDisB,WAAA99C,EAAA6+C,iBAAAC,UAsQYitF,WAAcC,IApQvBjtF,SAAA/+C,EAAuB+wI,wBAAA1oH,KAGvBmyB,GAAAsxF,sBAAA7wI,GAAAwD,KAAA,SAAAC,GACsB,KAArBA,EAAAlI,OACMkI,EAAAhJ,KAKMqC,EAAW2I,YAAK,QAAA,8CAiQZV,EAAGgT,YAAa,EAChBhT,EAAGqrI,uBAAwB,EApQ/BY,MAKDjsI,EAAAgT,YAAA,EACHhT,EAAAqrI,uBAAuB,IAE5B,SAAS1qI,UAIZ5I,GAAA2I,YAA2B,UAAA,sCAyQ/B,QAAS40I,GArQM/2I,GAsQX,GArQmB5I,SAqQfqK,EAAGqyF,YArQYpH,OAAqB,CAsQpC,GAAIsqD,IApQL5jD,SAAc3xF,EAAA2xF,SACb1G,OAAWjrF,EAAAqyF,YAAYpH,OAuQvBpB,GAAyBC,YAAYyrD,GAAK92I,KAAK,SAASC,GACjC,MAAfA,EAAIlI,QApQhBwJ,EAAA0iI,aAAyB,KACb1iI,EAAA6xF,SAAInzF,EAAWhJ,KACf80F,EAAoBQ,uBAAIhrF,EAAAqyF,YAAApH,QAAAxsF,KAAA,SAAAC,GACrBsB,EAAAw1I,mBAAA92I,EAAAhJ,KACH6I,GAsQQA,KACL,SAASoC,GApQX5I,EAAK2I,YAAA,QAAA,mBAAA,WAuQNV,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,UAnQ1D,SAAAlB,GACA5I,EAAe2I,YAAA,QAAA,mBAAA,eAGf3I,GAAA2I,YAAmB,QAAA,gCAAA,SAyQ1B,QArQQ+0I,GAAU3iI,GAqRd,GAdA9S,EAAGwX,aArQK,EAsQRxX,EAAGyX,WArQK,EAsQRzX,EAAG01I,aAAethJ,QAAQ8e,KAAKJ,GAC/B9S,EAAG+S,WArQC,EAsQJ/S,EAAGmiH,UArQS,EAsQZniH,EAAG40B,KAAK+gH,iBArQOvhJ,QAAmB8e,KAAAJ,EAAA8e,kBAsQlC5xB,EAAGwtI,QArQS16H,EAAI64H,gBAwQhB3rI,EAAGutI,gBArQiBn5I,QAAM8e,KAAAJ,EAAA8iI,iBAsQ1B51I,EAAG2xF,SAAWv9F,QAAQ8e,KAAKJ,EAAI+iI,cAC/B71I,EAAGi3B,QAAU7iC,QAAQ8e,KAAKJ,EAAIiG,IAG1BjG,EAAI0/E,QArQQ1/E,EAAAi4E,iBAAA,CAsQZ/qF,EAAG81I,QAAU,GACb,KAAK,GAAI56I,KAAK8E,GAAGyxF,eApQdzxF,EAAAyxF,eAAAv2F,GAAA+vF,SAAAn4E,EAAAm4E,SACAjrF,EAAAqyF,YAAmBryF,EAAAyxF,eAAAv2F,GAItBo6I,GAAG,WAEA,IAAA,GAAAz9H,KAAA7X,GAAA6xF,SAsQS7xF,EAAG6xF,SAASh6E,GAAG26E,SAAW1/E,EAAI0/E,SAC9BxyF,EAAG0iI,aAAe1iI,EAAG6xF,SAASh6E,GAjQ1C,KAAA,GAAA3c,KAAkB8E,GAAAw1I,mBAClBx1I,EAAAw1I,mBAAqBt6I,GAAA6vF,mBAAoBj4E,EAAAi4E,mBAC7B/qF,EAAG+1I,yBAAiB/1I,EAAAw1I,mBAAAt6I,UAKhC8E,GAAA81I,QAAQ,KAsQRE,EArQO,WAsQH,IArQG,GAAA96I,KAAA8E,GAAAi2I,gBACHj2I,EAAWi2I,gBAAY/6I,GAAA+vF,SAASn4E,EAAAm4E,SAsQxBjrF,EAAGqyF,YAAcryF,EAAGi2I,gBAAgB/6I,KAhQpDg7I,GAAGpjI,EAAAiG,IAwQP,QArQOo9H,GAAAvhH,GACH,GAAGjiB,GAAAtY,EAAAsY,QAA0B,UACzB,4CACAtb,WAAA,EACI+F,KAAI,MAwQZuV,GAAQjT,OAAOjB,KAAK,WAChB+7C,EAAY47F,eAAexhH,EAAK7b,IAAIta,KAAK,SAASC,GAC3B,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,WAC/B7b,EAAW2I,YAAY,UAAW,4BAA6B,WApQxE00I,KAEA/6I,EAAAwH,MAAmB,QAAAnD,EAAAhJ,KAAAme,SACnBxc,WAAe,EACf+F,KAAA,UAIA,cA0QP,QAAS84I,GArQWj/G,GAsQhBujB,EArQY07F,eAAGj/G,GAAmBx4B,KAAA,SAAAC,GACnB,MAqQPA,EArQIlI,QAsQJwJ,EAAGo2B,QAAU13B,EAAIhJ,KACjBsK,EAAGwrI,OAAQ,GAnQhBzzI,EAAA2I,YAAmB,QAAA,mCAAA,WAEnB,SAAAC,MA0QP,QArQQ01I,KAsQJ,GArQIr2I,EAAA+S,UAsCJ/S,EAAO01I,aAAQ9jH,iBAAwB5xB,EAAA40B,KAAA+gH,iBACnC31I,EAAA01I,aAAS/J,gBAAa70I,SAAA2lC,eAAA,YAAAU,UAsQtBn9B,EAAG01I,aAAaljD,OAAUxyF,EAAG,aAAgBA,EAAG0iI,aAAalwC,OAAS,GApQ1ExyF,EAAA01I,aAAS3qD,iBAAa/qF,EAAA,yBAAAA,EAAA+1I,yBAAAhrD,iBAAA,GACtB/qF,EAAA01I,aAAUE,gBAA4B51I,EAAAutI,gBACtCvtI,EAAA01I,aAAAY,SAAAt2I,EAAAs2I,SAuQI97F,EAAY+7F,eAAev2I,EAAG01I,cAAcj3I,KAAK,SAASC,GApQvC,MAAlBA,EAAAlI,QAsQOuB,EAAW2I,YAAY,UAAW,4BAA6B,IApQpEV,EAAQmiH,SAAGniH,EAAA+S,WAAe,EACzB/S,EAAAw2I,gBAyQIz+I,EAAW2I,YAAY,QAAS,gCAAiC,SApQ1EV,EAAAmiH,SAAsBniH,EAAA+S,WAAU,IAE5B,SAAQpS,GACX5I,EAAe2I,YAAU,QAAA,gCAAiC,SACtDV,EAAAmiH,SAAaniH,EAAA+S,WAAA,QA1DF,CACf,GAAA6hB,IACA8oB,cAAe19C,EAAA29C,iBAAiBzB,WAChC0B,iBAAS59C,EAAA69C,oBAAwBhsB,cAsQ7BisB,WAAc99C,EAAG6+C,iBAAiBC,UApQ1CltB,iBAAgB5xB,EAAA40B,KAAmB+gH,iBAsQ3BhK,gBAAmB70I,SAAS2lC,eAAe,YAAYU,UApQvD9mB,UAAIrW,EAAWy8C,oBAAKpmC,UACpBu/H,gBAAc51I,EAAAutI,gBACdxB,WAAcC,IAsQdjtF,SAAY/+C,EAAG+wI,wBAAwB1oH,KACvCiuH,SArQOt2I,EAAAs2I,SAEA,OAqQPt2I,EAAG81I,SACHlhH,EArQI49D,OAAGxyF,EAAS,aAAAA,EAAA0iI,aAAAlwC,OAAA,GAsQhB59D,EArQIm2D,iBAAA/qF,EAAA,yBAAAA,EAAA+1I,yBAAAhrD,iBAAA,IACO,OAAP/qF,EAAI81I,UAsQRlhH,EAAKq2D,OArQMjrF,EAAA,YAAWA,EAAAqyF,YAAApH,OAAA,IAsQ1BjrF,EAAGmiH,SArQSniH,EAAA+S,WAAW,EAuQvBynC,EArQWi8F,aAAA7hH,GAAAn2B,KAAA,SAAAC,GACA,MAAHA,EAAGlI,QAuQHwJ,EAAGi3B,QAAUv4B,EAAIhJ,KAAK6tD,KAAKtsB,QApQ5Bj3B,EAAAmiH,SAAAniH,EAAA+S,WAAA,EACH/S,EAAAqrI,uBAAuB,EAEpB+J,IAsQC19H,KAnQR3f,EAAW2I,YAAY,QAAS,6BAAkC,UAE/D,SAAAC,GAsQC5I,EAAW2I,YAAY,QAAS,6BAA8B,YA8B1E,QAASurI,KAELjsI,EAAG/C,UApQPzC,EAASqI,QAAA7C,EAAA0sI,cAAc,SAAAP,GAChBnsI,EAAA/C,OAAAkvI,EAAaQ,eAAAR,EAAAE,aAAA,GAAAG,cAGhB,IAAG7pI,GAAAnI,EAAemI,KAAG3C,EAAA/C,QAClB67C,EAAQ,EACX,KAAA,GAAA59C,KAAAyH,GAsQIm2C,GAAQ94C,EAAG/C,OAAO0F,EAAKzH,IAAM,OAASyH,EAAKzH,GACvCA,GAAKyH,EAAKxH,OAAS,IApQtB29C,GAAA,OAEL94C,GAAAwtI,QAAS10F,EAwQb,QAASk9F,GArQG7+H,GAsQRnX,EAAGqyF,YAAc,KACjBxI,EArQqBE,oBAActrF,KAAA,SAAAC,GACf,MAAZA,EAAIlI,SAsQJwJ,EAAGi2I,gBArQiBv3I,EAAGhJ,KAsQnByhB,GApQAA,MAuQT,SAASxW,MAehB,QArQQ+1I,GAAOz5G,GAsQXj9B,EAAGsS,WArQK,EAsQRtS,EAAG22I,aAAe,CAClB,KAAK,GArQGz7I,KAAA8E,GAAAo2B,QAsQAp2B,EAAGo2B,QAAQl7B,GAAG07I,UAAY35G,GApQ3B5iC,EAAA8C,OAAA,UAAA,0CAAA8/B,GAsQK5lC,WAAW,EACX+F,KAAM,OAnQlB4C,EAAAyiI,SAAA,EACIziI,EAAO22I,aAAQ,EACX32I,EAAAsS,WAAM,GAENtS,EAAAyiI,SAAA,CAoRR,IAjRQ,kBAqQJxlG,IACAj9B,EAAG62I,QAAU72I,EAAG82I,YAnQhB,qBAAA75G,IAsQAj9B,EAAG62I,QArQS72I,EAAA+2I,eAuQJ,sBAAR95G,IACAj9B,EAAG62I,QArQS72I,EAAGg3I,WAuQP,2BAAR/5G,IACAj9B,EAAG62I,QArQS72I,EAAAi3I,iBAuQXj3I,EAAGyiI,SArQO,GAAAziI,EAAA22I,aAAA,CAsQX,GAAI17I,IACAg8B,QArQOj3B,EAAAi3B,QAsQP2/G,QAAS35G,EApQV45G,QAAS72I,EAAA62I,QAuQR72I,GAAG+S,UApQJ9X,EAAA42D,MAAA,EAuQC52D,EAAI42D,MAAQ,CAChB,IAAIzzD,GAAW,GAAIH,SACnBG,GAASF,OAAO,aAAc8B,EAAGo0G,cApQzCh2G,EAASF,OAAA,UAAmBjD,EAAUg8B,SAC9B74B,EAAGF,OAAY,UAAWjD,EAAA27I,SAC1Bx4I,EAAIF,OAAM,QAAAjD,EAAA42D,OAsQVzzD,EArQIF,OAAU,UAAGjD,EAAA47I,SAsQjBr8F,EArQY08F,UAAG94I,GAAYK,KAAA,SAAAC,GAsQvB,GAAmB,MAAfA,EAAIlI,OAAgB,CApQ5BuB,EAAA2I,YAAyB,UAAiB,qBAAmB,gBACrD,IAAIs/H,GAAgBthI,EAAAhJ,IACpBsK,GAAGsS,WAAA,EACHrX,EAAGk8I,OAAAnX,EAAetgI,OAClBM,EAAAo2B,QAAAv+B,KAAAoD,GAsQA+E,EAAG22I,aArQI,EAsQP32I,EAAGyiI,SArQK,MAuQR1qI,GArQG2I,YAAc,QAAA,uBACbrJ,WAAW,EAsQX+F,KAAM,UAiC1B,QAASg6I,GArQUtkI,GAsQf,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CACItb,WAAW,EApQf+F,KAAA,OAuQAnC,GACAg8B,QArQQnkB,EAAImkB,QAsQZ2/G,QAAS9jI,EArQG8jI,QAsQZO,OAAQrkI,EAAIqkI,OACZ/2I,SAAU2U,EAAc1U,OAE5BsS,GArQQjT,OAAKjB,KAAI,WAsQb+7C,EArQY68F,cAAGp8I,GAAAwD,KAAmB,SAAGC,GAsQjC,GArQW,MAqQPA,EArQIlI,QAAGkI,EAAAhJ,KAAAke,UAA8B,CAsQrC,GAAIwB,GAAQpV,EAAGo2B,QAAQhzB,QAAQ0P,EAC/B9S,GAAGo2B,QAAQd,OAAOlgB,EAAO,GACzBpV,EAAG22I,aAAe,EApQvB32I,EAAAyiI,SAAA,EACA1qI,EAAU2I,YAAA,UAAA,sCAAA,eAETrG,GAASwH,MAAQ,QAAAnD,EAAAhJ,KAAiBme,SAC1Bxc,WAAG,EACH+F,KAAG,UAyQhB,cAGP,QAAS4W,KApQThU,EAAAgT,YAAoB,EAChBhT,EAAAwX,aAAc,EAsQdxX,EAAGyX,WArQC,EAwQR,QAAS/F,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eApQ9B,yFACItb,WAAY,EACR+F,KAAI,MAwQZuV,GAAQjT,OArQOjB,KAAA,WAsQXuB,EAAGgT,YArQa,EAsQhBkB,IACAlU,EAAG47C,aArQe,KAsQlB57C,EAAGo8C,gBAAkB,KACrBp8C,EAAGu8C,aAAe,OAQ1B,QArQI7kC,KAsQA1X,EAAGgT,YArQS,EAsQZkB,IACAlU,EAAG47C,aArQQ,KAsQX57C,EAAGo8C,gBArQQ,KAsQXp8C,EAAGu8C,aArQK,KAsQRv8C,EAAGw8C,YAAc,KASrB,QAAStoC,KACLk3H,IACAprI,EAAGmiH,UArQK,EAsQRniH,EAAG+S,WArQK,EAsQR/S,EAAG0iI,aArQK,KAuQR1iI,EAAGqyF,YArQK,KAuQRryF,EAAGs3I,kBArQoB,KAsQvBt3I,EAAG+1I,yBArQoB,KAsQvB/1I,EAAGutI,mBACHvtI,EAAG40B,QAGP,QAAS2iH,KACLnC,IACA19H,IACA1X,EAAGwrI,OAAQ,EA1uBf,GAAIxrI,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MApQO,KAsQPA,MApQO,KAsQPA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EAnQjBvU,EAAAwU,qBAAyB,SAAIC,GACzBzU,EAAAuU,YAAgBE,GAuQpBzU,EAAGsS,WApQS,EAqQZva,EAAW2c,SApQU,EAuQrB1U,EAAG+S,WAAY,EACf/S,EAAGmiH,UAAW,EACdniH,EAAGu8C,gBACHv8C,EAAG/C,UACH+C,EAAG40B,QAEH50B,EAAGutI,mBACHvtI,EAAGqrI,uBAAwB,EAnQ3BrrI,EAAA2xF,SAAS,MAqQT3xF,EAAGo2B,WACHp2B,EAAGyiI,SAAU,EAlQbziI,EAAAi8C,iCAAqBA,EAqQrBj8C,EAAGq8C,+BApQiBA,EAqQpBr8C,EAAGotI,mBAAqBA,EACxBptI,EAAGs1I,mBAAqBA,EAnQxBt1I,EAAAksI,eAAgBA,EAqQhBlsI,EAAGorI,YApQcA,EAqQjBprI,EAAG27C,uBApQiBA,EAqQpB37C,EAAG8rI,sBApQwBA,EAqQ3B9rI,EAAGq2I,SAAWA,EACdr2I,EAAGo1I,SAAWA,EAnQdp1I,EAAAy1I,SAASA,EAqQTz1I,EAAGm2I,WApQWA,EAqQdn2I,EAAGg2I,eApQiBA,EAqQpBh2I,EAAGwrI,OApQK,EAqQRxrI,EAAGu3I,KApQKA,EAqQRv3I,EAAGkU,UAAYA,EACflU,EAAGgU,OApQCA,EAqQJhU,EAAG0R,OApQSA,EAqQZ1R,EAAG0X,MAAQA,EACX1X,EAAG02I,iBApQaA,EAqQhB12I,EAAGo3I,cApQaA,CAqQhB,IAAIriI,GApQgB5a,EAAYgG,sBAqQhCH,GAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAEfvF,IAEAlS,EAAG+5H,sBACCC,oBAAqB,UACrB3xG,KAAM,MAEN2xG,oBAAqB,WACrB3xG,KAAM,MAyeV5d,EAAOuqG,YArQc,SAAA74G,GAsQbA,IACIA,EAAMsN,OAAOiE,MAAM,GAAGtQ,KAAO,IApQjC4C,EAAAo0G,aAAaj4G,EAAAsN,OAAAiE,MAAA,GAEdrT,EAAA8C,OAAgB,UAAA,kCAsQP9F,WAAW,EACX+F,KAAM,SAuEtB4C,EAAGw2I,YAAc,WACb,GAAIv7I,IACAi8B,aAAcv6B,KAAKqkB,UAAUhhB,EAAGo2B,SApQxCh2B,SAAkB2U,EAAK1U,OAEnBm6C,GAAGg9F,WAAcv8I,GAAAwD,KAAA,SAAAC,GACF,MAAZA,EAAAlI,QAAYkI,EAAAhJ,KAAAke,WACZ7b,EAAe2I,YAAa,UAAA,sCAAA,WAC5BV,EAAAwrI,OAAY,EACZ4J,IACK19H,IACL1X,EAAAo2B,YAuQK/7B,EAAQwH,MAAM,QAASnD,EAAIhJ,KAAKme,SApQrCxc,WAAkB,EAClB+F,KAAW,gSA5YtBhJ,QACKC,OAAO,oCACPe,WAAW,eAAgB+/I,MAmvBpC,WACI,YAOA,SAASsC,GAAwB19I,EAAOhC,EAAYyC,EAAQH,EAASwgD,EAA4B1gD,EAAsBsQ,GA2CnH,QArQQyH,KAsQJ2oC,EArQgB68F,0BAAA39I,EAAAhC,GAAA0G,KAAA,SAAAC,GAsQO,MAAfA,EAAIlI,QApQTwJ,EAAAk7C,QAAUx8C,EAAAhJ,KAsQLsK,EAAGsS,WAAY,GAnQlBva,EAAA2I,YAAyB,QAAA,yBAAA,0BAE9B,SAAAC,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,2BAyQhC,QAASsT,KACLhU,EArQGgT,YAAS,EAsQZhT,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAGjB,QArQQC,KAsQJ1X,EAAGgT,YArQQ,EAsQXhT,EAAG+S,WArQQ,EAsQXmB,IACAlU,EAAG23I,OAIP,QAASjmI,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eApQlC,yFACOtb,WAAY,EACZ+F,KAAA,MAwQHuV,GArQQjT,OAAAjB,KAAQ,WAsQZuB,EAAGgT,YArQK,EAsQRhT,EAAG+S,WArQW,EAsQdmB,IACAlU,EAAG23I,SAOX,QArQQzjI,KAsQJlU,EAAG43I,QArQIxjI,gBAwQX,QArQQyjI,GAAGF,GAsQP33I,EAAGwX,aAAY,EApQfxX,EAAAyX,WAAY,EAsQZzX,EAAG+S,WArQI,EAsQP/S,EAAGgT,YAAa,EApQhBhT,EAAA23I,IAAIvjJ,QAAQ8e,KAAAykI,GAwQhB,QArQSG,GAAcH,GAsQnB,GArQI52I,GAAI,yBAAM42I,EAAA,SAAA,WAAA,UAAA,gBAsQVh/H,GArQIg/H,EAAS,SAAG,WAAA,UAAA,sCAsQhBhlI,EArQItY,EAASsY,QAAA,UAAA5R,GAAA1J,WAAA,EAAA+F,KAAA,MAuQjBuV,GAAQjT,OAAOjB,KAAK,WApQhBo8C,EAAOk9F,6BAAAJ,EAAAj8F,uBAAAj9C,KAAA,SAAAC,GACS,MAARA,EAAAlI,QAsQAuB,EAAW2I,YAAY,UAAWiY,EAAM,yBApQxCzG,KAERna,EAAgB2I,YAAc,QAAG,sCAAArJ,WAAA,EAAA+F,KAAA,QAEjC,SAASuD,GACT5I,EAAS2I,YAAgB,QAAI,6EAAArJ,WAAA,EAAA+F,KAAA,UAuQ9B,cAKP,QAAS46I,GArQOL,GAsQZ,GAAIhlI,GArQQtY,EAAGsY,QAAa,UAAA,4CAsQxBtb,WArQW,EAsQX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KArQC,WAsQZo8C,EArQkBo9F,UAAAN,EAAAj8F,uBAAAj9C,KAAA,SAAAC,GAsQK,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,yBAC1DwR,KAEAna,EAAW2I,YAAY,QAAS,sCAC5BrJ,WAAW,EACX+F,KAAM,QAlQvB,SAAcuD,GACT5I,EAAM2I,YAAA,QAAA,8EACNrJ,WAAmB,EACnB+F,KAAU,UAwQX,cAKP,QAAS86I,GArQMP,GAsQX,GAAIz3I,GArQO/F,EAAAgG,sBAsQNH,GArQG+S,WAmBJ4kI,EAAAhkI,WAAYzT,EAAAG,OACZw6C,EAAwBs9F,QAAAR,GAAAl5I,KAAA,SAAAC,GAsQhBA,EAAIhJ,KAAKke,aAAc,GApQ3B7b,EAAY2I,YAAW,UAAAhC,EAAAhJ,KAAAme,QAAA,yBAC3B7T,EAAAgT,YAAY,EACJhT,EAAA+S,WAAe,EACfb,IACAwF,MAEA3f,EAAG2I,YAAU,QAAAhC,EAAAhJ,KAAAme,QAAA,yBACb7T,EAAAgT,YAAW,EAsQXhT,EArQG+S,WAAA,IAuQR,SArQSpS,GAsQR5I,EArQQ2I,YAAM,mCAqOlBi3I,EAAI7jI,UArQI5T,EAAWG,OAsQnBw6C,EArQcu9F,uBAAAT,GAAAl5I,KAAA,SAAAC,GAsQNA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBACpD7T,EAAGgT,YAAa,EAChBd,IACAwF,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBApQzD7T,EAAAgT,YAAmB,IAwQjB,SArQCrS,GACA5I,EAAM2I,YAAA,kCAiGlB,GAAIV,GAAKC,IAKTD,GAAGqU,kBArQQhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAsQXrL,EAAGsU,SArQQtU,EAAAqU,gBAAa,GAuQxBrU,EAAGuU,YArQQ,EAsQXvU,EAAGwU,qBArQqB,SAAAC,GAsQpBzU,EAAGuU,YArQIE,GAwQXzU,EAAGgT,YArQK,EAsQRhT,EAAG+S,WArQS,EAsQZ/S,EAAGsS,WAAY,EACfva,EAAW2c,SArQQ,EAsQnB1U,EAAGk7C,WAEHl7C,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAG63I,QAAUA,EACb73I,EAAG83I,gBAAkBA,EACrB93I,EAAGg4I,UArQQA,EAsQXh4I,EAAGk4I,QArQSA,EAsQZl4I,EAAGwX,aArQY,EAsQfxX,EAAGyX,WAAU,EAEbvF,IAnQAzH,EAAAkc,SAAS,SAAAxqB,EAA0ByqB,GAE/B,GAAGC,GAAS,GAAAC,QAAA,gBACZC,EAAOC,OAAQC,aAAG9qB,EAAe+qB,SAAoB/qB,EAAA+qB,SAAX/qB,EAAWgrB,MAsQrD,KArQIN,EAAGje,KAAOme,GAGV,MAmQA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAO,iCAAkC,mBApQzD,qHAyNnBtM,QACKC,OAAO,oCACPe,WAAW,0BArQIqiJ,MAucxB,WACI,YAOA,SAASY,GArQGtgJ,EAAA0S,EAAAjQ,EAAAH,EAAAF,EAAAJ,EAAAihD,EAAyFL,EAAAE,EAsQjGC,EArQuBmvF,EAAAzvF,EAAAqvC,EAAAW,EAAAz4E,EAAAm4H,GA8UvB,QAtQOh4H,KAuQHH,EAAe8D,iBAAiB9b,EAAOhC,GAAY0G,KAAK,SAASC,GAC1C,MAAfA,EAAIlI,QArQbwJ,EAAA8V,YAAapX,EAAAhJ,KACbsK,EAAYsS,WAAA,GAEJva,EAAU2I,YAAA,QAAA,yBAAA,YAwQd,SAASC,GArQb5I,EAAS2I,YAAA,QAAA,mBAAA,aAGTm6C,EAAUI,aAAAlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GACQ,MAAlBA,EAAAlI,QACAwJ,EAAYk7C,QAAAx8C,EAAAhJ,KACZsK,EAAUsS,WAAA,GAEVva,EAAU2I,YAAA,QAAA,yBAAA,0BAEb,SAAAC,GAuQQ5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAlQxDmpF,EAAiBI,eAAoBxrF,KAAA,SAAiBC,GAChC,MAAXA,EAAKlI,OACNwJ,EAAAyxF,eAAA/yF,EAAAhJ,KAECqC,EAAA2I,YAAA,QAAA,4CAAA,WAyQP,SAASC,GArQR5I,EAAO2I,YAAA,QAAA,4CAAA,UA0QhB,QAASi7C,GAtQkBD,EAAArlC,EAAA9X,GA8QvB,GAPAyB,EAAG29C,iBAtQQ,KAuQX39C,EAAG47C,gBACH57C,EAAG69C,oBAAsB,KACzB79C,EAtQGo8C,mBAuQHp8C,EAAG6+C,iBAtQY,KAuQf7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBAA0B,KACzBr1F,GAAyBrlC,EAAW,CArQ5C,GAASpb,IAEFygD,sBAAYA,EACZrlC,UAAUA,EAwQTskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAASC,GArQrD,MAARA,EAAQlI,SACVwJ,EAAA47C,aAAal9C,EAAAhJ,KACDsK,EAAA47C,aAAAzgD,OAAA,GACfd,EAAA8C,OAAA,UAAA,kCAAA6C,EAAAy8C,oBAAA/lC,aACSrf,WAAA,EAuQW+F,KAAM,OAnQrB4C,EAASsS,WAAA,EACA/T,GACVA,WA0QAyB,GAAG29C,iBAAmB,KArQ1B39C,EAAA47C,gBACI57C,EAAG69C,oBAAa,KAChB79C,EAAGo8C,mBACHp8C,EAAA6+C,iBAAA,KACA7+C,EAAGu8C,gBAuQHv8C,EAAG+wI,wBAA0B,KAIrC,QAASqE,KACLp1I,EAAGsS,WAAY,CArQnB,IAAArX,IACOyiD,cAAQ19C,EAAA29C,iBAAAzB,WAuQP0B,iBAAkB59C,EAAG69C,oBAAoBhsB,cACzCisB,WAAY99C,EAAG6+C,iBAAiBC,UArQxCC,SAAiB/+C,EAAA+wI,wBAAK1oH,KAElBroB,GAAGm+C,YACH3D,EAAGwE,WAAY/jD,GAAAwD,KAAA,SAAAC,GACC,MAAbA,EAAAlI,OACAwJ,EAAMm+C,SAAaz/C,EAAAhJ,KAwQdqC,EAAW2I,YAAY,QAAS,mCAAoC,WApQ5E,SAAUC,MAyQd,QAASs7C,GAAiCC,GArQtCl8C,EAAA69C,oBAAoB,KAuQpB79C,EAAGo8C,mBACHp8C,EAAG6+C,iBAtQa,KAuQhB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBAtQS,KACGp7I,SAsQXumD,GACApB,EAtQmBqB,yBAAqBD,GAAAz9C,KAAA,SAAAC,GAuQjB,MAAfA,EAAIlI,SArQTwJ,EAAAo8C,gBAAe19C,EAAAhJ,KACdsK,EAAAsS,WAAW,KA2QnBtS,EAAG69C,oBAAsB,KACzB79C,EAAGo8C,mBArQPp8C,EAAA6+C,iBAAwB,KACpB7+C,EAAAu8C,gBAuQAv8C,EAAG+wI,wBAtQY,KAyQnB,QAAS10F,GAA+BxqB,GArQpC7xB,EAAA6+C,iBAAoB,KAuQpB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBAtQwB,KACfp7I,SAsQRk8B,GACAmpB,EAtQQsB,2BAAAzqB,GAAApzB,KAAA,SAAAC,GACG,MAsQHA,EAtQGlI,SACHwJ,EAAAu8C,aAAW79C,EAAAhJ,KAuQXsK,EAAGsS,WAtQY,KA0Q3BtS,EAAG6+C,iBAtQmB,KAuQtB7+C,EAAGu8C,gBACHv8C,EAAG+wI,wBAtQoB,KAyQ3B,QAAS3D,KAELxB,EAAY,EACZ,IAAI3wI,IACAyiD,cAAe19C,EAAG29C,iBAAiBzB,WACnC0B,iBAAkB59C,EAAG69C,oBAAoBhsB,cArQjDisB,WAAiB99C,EAAK6+C,iBAAAC,UACdz2B,KAAAroB,EAAA+wI,wBAAa1oH,KAwQjB4hH,GAtQQmD,mBAAuBnyI,GAAAwD,KAAA,SAAAC,GAEV,MAAbA,EAAIlI,QAuQJwJ,EAAGmiH,UAtQC,EACAzjH,EAAGhJ,MACHsK,EAAAurI,gBAAAn3I,QAAA8e,KAAAxU,EAAAhJ,KAAA23I,cACArtI,EAAAsrI,aAAA5sI,EAAAhJ,KAAA23I,aAuQArtI,EAtQGgtI,YAAAtuI,EAAAhJ,KAAAg3I,cACH1sI,EAAA/C,UACAyuI,IAwQgC,IAA5B1rI,EAAG0sI,cAAcvxI,SArQ1B6E,EAAUmiH,UAAK,EACdpqH,EAAW2I,YAAY,UAAA,wBAAA,aAwQnB+qI,MAnQJzrI,EAAA0sI,iBACJ1sI,EAAAmiH,UAAA,KAyQIpqH,EAtQO2I,YAAa,QAAA,mCAAA,UAuQpBV,EAAG0sI,iBACH1sI,EAAGmiH,UAtQC,IAwQT,SAASxhH,GACR5I,EAtQQ2I,YAAW,QAAY,iCAA2B,UAuQ1DV,EAAG0sI,iBACH1sI,EAAGmiH,UAtQQ,IA0QnB,QAASspB,KACL,GAAIxwI,IACAyiD,cAAe19C,EAAG29C,iBAAiBzB,WACnC0B,iBAAkB59C,EAAG69C,oBAAoBhsB,cACzCisB,WAAY99C,EAAG6+C,iBAAiBC,UAChCC,SAAU/+C,EAAG+wI,wBAAwB1oH,KApQjD6hH,GAAAuB,eAAAxwI,GAAAwD,KAAA,SAAAC,GAuQ+B,MAAfA,EAAIlI,SACJwJ,EAAGstI,gBAAkB5uI,EAAIhJ,KAtQzCsK,EAAAstI,iBACYttI,EAAAusG,UAAA5vG,KAAAC,MAAAoD,EAAAstI,gBAAA9gC,OACIxsG,EAAAutI,gBAAYn5I,QAAA8e,KAAAlT,EAAAusG,WAwQRvsG,EAAGwtI,QAAUxtI,EAAGutI,gBAAgBE,aArQlCztI,EAAAwtI,QAAY,GAC1BxtI,EAAA0tI,KACSC,EAAA,GAwQWC,GAAM,GAtQvBC,GAAmB,GACTC,GAAA,GACVC,GAAA,KAGC/tI,EAASsS,WAAA,KAQb,QAAG45H,GAAcC,EAAAC,GAKdpsI,EAAAqrI,uBAAY,EACf7wI,EAAWqI,QAAAspI,EAAUE,aAAA,SAAAD,GAwQbA,EAASE,YAAa,IArQ3BF,EAAAE,YAAY,EAGZH,EAASI,iBAAAH,EAAAI,aAyQRZ,EAAYA,EAAY,IAAMO,EAAUI,iBArQzCH,EAAAE,WACAtsI,EAAA2rI,gBAAWv3I,QAAA8e,KAAA04H,GAEX5rI,EAAAs4I,KAAUlkJ,QAAA8e,KAAAlT,EAAAs4I,MAGV7L,IAGH,QAAGA,KAEAjyI,EAAAqI,QAAA7C,EAAA0sI,cAAyB,SAAAP,GACzBA,EAAAI,mBACAvsI,EAAW/C,OAAAkvI,EAAAQ,eAAAR,EAAAI,oBAIXvsI,EAAAsrI,aAAiB9wI,EAAAyC,OAAA+C,EAAAsrI,aAAAtrI,EAAA/C,QACjByuI,IACAlxI,EAAOqI,QAAA7C,EAAA0sI,cAAA,SAAAP,GACP3xI,EAAYqI,QAAAspI,EAAAE,aAAA,SAAAD,GACHA,EAAAI,eAAAxsI,EAAA/C,OAAAkvI,EAAAQ,eACAP,EAAAE,YAAA,EAETF,EAAmBE,YAAA,MAKtB,QAAIlB,KAwQAprI,EAAGgT,YAAa,EAtQpBhT,EAAAqrI,uBAAA,EAwQIrrI,EAAG/C,UAtQJ+C,EAAAsrI,aAAAtrI,EAAsBurI,gBACrBvrI,EAAAwrI,OAAA,EACAC,IACDC,IACC1rI,EAAA2rI,gBAAqB,KACrBC,EAAM,GAGV,QAASF,KACL,GAAAqB,KAwQA,KAvQI,GAAI92H,KAAIjW,GAAAgtI,YAAgB,CAwQxB,GAvQIl0F,IACA6zF,cAAe3sI,EAAAgtI,YAAA/2H,GAwQfg3H,cAvQG,OAAArmI,SAAAqP,GAAA,GAAA,KACHo2H,gBAEL,KAAA,GAASx0H,KAAK7X,GAAAsrI,aAAA,CACb,GAAA1iI,GAAWpO,EAAYihG,KAAA3iD,EAASuzF,cAwQxBG,aAAgBxsI,EAAGsrI,aAAazzH,GAAGihC,EAAK6zF,gBArQpD,KAAA/jI,EAAA,CACY,GAAAskI,IACDV,aAAcxsI,EAAAsrI,aAAAzzH,GAAAihC,EAAA6zF,eACdL,YAAY,EAEfxzF,GAAAuzF,aAAWx0I,KAAYq1I,IAG3BH,EAAAl1I,KAAWihD,GAyQf94C,EAAG0sI,cAAgBK,EAGvB,QAASf,KACL,GAAImB,KAEJ,KAAK,GAAIhB,KAvQGnsI,GAAW0sI,cAwQf1sI,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGC,WAC5Ca,EAAYntI,EAAG0sI,cAAcP,GAAWQ,eAAiB3sI,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGG,aArQrGW,EAAWntI,EAAA0sI,cAAYP,GAASQ,eAAA,EAyQxC,OAAOQ,GAGX,QAvQOrB,KAEH,GAAGtxI,EAAAmI,KAAA3C,EAAA/C,QAAsB9B,OAAA,EAAA,CACtB,GAAAF,IACAyiD,cAAmB19C,EAAA29C,iBAAAzB,WACnB0B,iBAAe59C,EAAA69C,oBAAAhsB,cACfisB,WAAA99C,EAAA6+C,iBAA0BC,UACzBitF,WAAAC,IACIjtF,SAAM/+C,EAAA+wI,wBAAA1oH,KA0QVmyB,GAvQIsxF,sBAAW7wI,GAAAwD,KAAA,SAAAC,GAwQO,KAAdA,EAAIlI,OAtQZkI,EAAAhJ,KA4QYqC,EAvQI2I,YAAW,QAAA,8CAJfV,EAAAgT,YAAgB,EACjBhT,EAAAqrI,uBAAmB,EAClBY,MA4QJjsI,EAAGgT,YAAa,EAtQhBhT,EAAGqrI,uBAAY,IAyQpB,SAvQS1qI,UAIZ5I,GAAG2I,YAAmB,UAAA,sCA2Q9B,QAvQQ40I,GAAG/2I,GAwQP,GAvQsB5I,SAAlBqK,EAAGqyF,YAAApH,OAAe,CAClB,GAAGsqD,IAwQC5jD,SAAU3xF,EAAG2xF,SACb1G,OAAQjrF,EAAGqyF,YAAYpH,OArQnCpB,GAAoBC,YAAAyrD,GAAA92I,KAAA,SAAAC,GACD,MAAZA,EAAYlI,QACLwJ,EAAA0iI,aAAA,KACN1iI,EAAA6xF,SAAkBnzF,EAAAhJ,KAClB80F,EAAqBQ,uBAAoBhrF,EAAAqyF,YAAApH,QAAAxsF,KAAA,SAAAC,GAC7BsB,EAAGw1I,mBAAiB92I,EAAAhJ,KACnB6I,GAwQGA,KAtQN,SAAAoC,GACF5I,EAAW2I,YAAU,QAAc,mBAAA,WAEpCV,EAAAsS,WAAe,GAElBjY,EAAWwH,MAAA,QAAY,yBAAS,UAErC,SAASlB,GAwQJ5I,EAAW2I,YAAY,QAAS,mBAAoB,eApQzD3I,GAAA2I,YAAsB,QAAA,gCAAA,SA2Q7B,QAvQO+0I,GAAA3iI,GAuRH,GAdA9S,EAAGwX,aAvQC,EAwQJxX,EAAGyX,WAvQS,EAwQZzX,EAAG01I,aAvQYthJ,QAAA8e,KAAAJ,GAwQf9S,EAAG+S,WAvQY,EAwQf/S,EAAGmiH,UAAW,EACdniH,EAAG40B,KAAK+gH,iBAAmBvhJ,QAAQ8e,KAAKJ,EAAI8e,kBAC5C5xB,EAAGwtI,QAAU16H,EAAI64H,gBApQjB3rI,EAAGutI,gBAAkBn5I,QAAA8e,KAAAJ,EAAA8iI,iBACrB51I,EAAG2xF,SAAAv9F,QAAmB8e,KAAAJ,EAAA+iI,cACtB71I,EAAGi3B,QAAA7iC,QAAe8e,KAAAJ,EAAAiG,IA0QdjG,EAAI0/E,QAAU1/E,EAAIi4E,iBAAkB,CAtQ5C/qF,EAAS81I,QAAA,GACF,KAAA,GAAA56I,KAAA8E,GAAAyxF,eACAzxF,EAAAyxF,eAAev2F,GAAA+vF,SAAAn4E,EAAAm4E,SACfjrF,EAAAqyF,YAA0BryF,EAAAyxF,eAAAv2F,GA2QzBo6I,GAvQW,WAyQP,IAAK,GAAIz9H,KAAK7X,GAAG6xF,SACT7xF,EAAG6xF,SAASh6E,GAAG26E,SAAW1/E,EAAI0/E,SAC9BxyF,EAAG0iI,aAAe1iI,EAAG6xF,SAASh6E,GAItC,KAAK,GAAI3c,KAAK8E,GAAGw1I,mBACTx1I,EAAGw1I,mBAAmBt6I,GAAG6vF,mBAAqBj4E,EAAIi4E,mBAtQ7D/qF,EAAA+1I,yBAAqB/1I,EAAAw1I,mBAAAt6I,UAKtB8E,GAAA81I,QAAA,KACAE,EAAe,WACf,IAAS,GAAA96I,KAAA8E,GAAAi2I,gBAwQGj2I,EAAGi2I,gBAAgB/6I,GAAG+vF,SAAWn4E,EAAIm4E,SAtQrCjrF,EAAAqyF,YAAAryF,EAAmBi2I,gBAAU/6I,KA4Q7Cg7I,GAvQepjI,EAAAiG,IA0QnB,QAASo9H,GAvQUvhH,GAwQf,GAAIjiB,GAvQQtY,EAAAsY,QAAA,UAwQR,4CACItb,WAvQW,EAwQX+F,KAAM,MAGduV,GAAQjT,OAvQIjB,KAAA,WAwQR+7C,EAAYiS,WAAW73B,EAAK7b,IAAIta,KAAK,SAASC,GAtQnC,MAuQHA,EAvQGlI,QAAAkI,EAAAhJ,KAAAke,WACH7b,EAAG2I,YAAgB,UAAA,4BAAA,WACnB00I,KAED/6I,EAAAwH,MAAA,QAAAnD,EAAAhJ,KAAAme,SACHxc,WAAW,EACR+F,KAAA,UA2QR,cAKP,QAAS84I,GAAej/G,GAtQxBujB,EAAS07F,eAAiBj/G,GAAAx4B,KAAA,SAAAC,GACZ,MAANA,EAAMlI,QACNwJ,EAAAo2B,QAAe13B,EAAGhJ,KAClBsK,EAAAwrI,OAAA,GAEAzzI,EAAa2I,YAAA,QAAA,mCAAwB,WAEzC,SAAAC,MA4QJ,QAAS01I,KACLzK,EAvQY,EAwQZ,IAAIgK,IACAhI,GAAI92I,SAvQO2lC,eAAU,MAAAU,UAwQrB0wG,GAAI/2I,SAvQO2lC,eAAM,MAAAU,UAwQjB2wG,GAAIh3I,SAvQQ2lC,eAAK,MAAAU,UAwQjB4wG,GAAIj3I,SAvQQ2lC,eAAM,MAAAU,UAwQlBwwG,EAAG72I,SAvQS2lC,eAAM,KAAAU,UA0QtB,IAAKn9B,EAAG+S,UAoCJ/S,EAAG01I,aAAa9jH,iBAAmB5xB,EAAG40B,KAAK+gH,iBAtQ/C31I,EAAO01I,aAAW/J,gBAAe70I,SAAS2lC,eAAW,YAAAU,UACjDn9B,EAAA01I,aAAcljD,OAAAxyF,EAAA,aAAAA,EAAA0iI,aAAAlwC,OAAA,GAwQdxyF,EAAG01I,aAvQW3qD,iBAAU/qF,EAAA,yBAA2BA,EAAA+1I,yBAAAhrD,iBAAA,GAwQnD/qF,EAAG01I,aAAaE,gBAAkBA,EACf,MAAf51I,EAAG81I,SACH91I,EAAG01I,aAAaljD,OAAUxyF,EAAG,aAAgBA,EAAG0iI,aAAalwC,OAAS,GAtQ3ExyF,EAAA01I,aAAe3qD,iBAAiB/qF,EAAA,yBAAiBA,EAAA+1I,yBAAAhrD,iBAAA,IACpD,OAAA/qF,EAAA81I,UACO91I,EAAA01I,aAAWzqD,OAAejrF,EAAA,YAASA,EAAWqyF,YAAApH,OAAA,IAyQjDzwC,EAvQQ+9F,WAASv4I,EAAA01I,cAAoBj3I,KAAO,SAAUC,GACrC,MAATA,EAAAlI,QAwQAuB,EAAW2I,YAAY,UAAW,4BAA6B,IAtQ/DV,EAAAmiH,SAASniH,EAAA+S,WAAa,EAwQtB/S,EAAGw2I,gBAnQVz+I,EAAc2I,YAAA,QAAA,gCAAA,SAChBV,EAAAmiH,SAAaniH,EAAA+S,WAAA,IAEb,SAASpS,GACT5I,EAAe2I,YAAG,QAAA,gCAAA,SAClBV,EAAQmiH,SAAAniH,EAAA+S,WAAA,QA2MQ,CACf,GAAI6hB,IAtQA8oB,cAAe19C,EAAA29C,iBAAAzB,WAwQf0B,iBAAoB59C,EAAG69C,oBAAoBhsB,cAC3CisB,WAAc99C,EAAG6+C,iBAAiBC,UAClCltB,iBAAoB5xB,EAAG40B,KAAK+gH,iBAC5BhK,gBAAmB70I,SAAS2lC,eAAe,YAAYU,UACvD9mB,UAAarW,EAAGy8C,oBAAoBpmC,UACpCu/H,gBAAmBA,EACnB7J,WAAcC,IAtQjBjtF,SAAe/+C,EAAA+wI,wBAAqB1oH,KAyQlB,OAAfroB,EAAG81I,SACHlhH,EAAK49D,OAAUxyF,EAAG,aAAgBA,EAAG0iI,aAAalwC,OAAS,GAC3D59D,EAAKm2D,iBAAoB/qF,EAAG,yBAA4BA,EAAG+1I,yBAAyBhrD,iBAAmB,IAtQpF,OAAxB/qF,EAAA81I,UACIlhH,EAAAq2D,OAAQjrF,EAAU,YAAcA,EAAAqyF,YAASpH,OAAU,IACtDjrF,EAAAmiH,SAASniH,EAAA+S,WAAa,EAwQtBynC,EAAY67F,SAASzhH,GAAMn2B,KAAK,SAASC,GAtQvB,MAAbA,EAAAlI,QAyQGwJ,EAAGi3B,QAAUv4B,EAAIhJ,KAAK6tD,KAAKtsB,QAtQ7Bj3B,EAAAmiH,SAAAniH,EAAmB+S,WAAS,EAwQ1B/S,EAAGqrI,uBAAwB,EAE3B+J,IAtQR19H,KAEG3f,EAAA2I,YAAA,QAAA,6BAAA,UAyQA,SAASC,GACR5I,EAAW2I,YAAY,QAAS,6BAA8B,YAkC1E,QAASurI,KAnQL,GAAAuM,KAwQA,KAvQI,GAAIt9I,KAAA8E,GAAO0sI,cAwQX,IAvQI,GAAAviI,KAAAnK,GAAA0sI,cAAkBxxI,GAAYmxI,aAC9BrsI,EAAA0sI,cAAexxI,GAASmxI,aAASliI,GAAKmiI,aACtCkM,EAAAx4I,EAAA0sI,cAAcxxI,GAAA+xI,eAAA,MAAAjtI,EAAA0sI,cAAAxxI,GAAAmxI,aAAAliI,GAAAqiI,aAAA,OA0QtB,IAAIiM,GAvQI,GAAI3xH,QAAQlkB,OAAOD,KAAK61I,GAAA9kH,KAAK,KAAA,KAwQrC1zB,GAAGwtI,QAvQSxtI,EAAAwtI,QAAAvxI,QAAmBw8I,EAAA,SAAaC,GAwQxC,MAAOF,GAAGE,IAGd,IAAID,GAAK,GAAI3xH,QAvQGlkB,OAAAD,KAAc61I,GAAG9kH,KAAA,KAAa,KAwQ9C1zB,GAAGutI,gBAvQaI,EAAA3tI,EAAAutI,gBAAYI,EAAA1xI,QAAAw8I,EAAA,SAAAC,GAwQxB,MAAOF,GAAGE,IAEd,IAAID,GAAK,GAAI3xH,QAAOlkB,OAAOD,KAAK61I,GAAI9kH,KAAK,KAAM,KAC/C1zB,GAAGutI,gBAAgBK,GAAK5tI,EAAGutI,gBAAgBK,GAAG3xI,QAAQw8I,EAAI,SAASC;AAtQ/D,MAAAF,GAAQE,IA0QZ,IAAID,GAAK,GAAI3xH,QAAOlkB,OAAOD,KAAK61I,GAAI9kH,KAAK,KAAM,KAC/C1zB,GAAGutI,gBAAgBM,GAAK7tI,EAAGutI,gBAAgBM,GAAG5xI,QAAQw8I,EAAI,SAASC,GAtQvE,MAASF,GAAAE,IAGL,IAAAD,GAAS,GAAA3xH,QAAAlkB,OAAgBD,KAAA61I,GAAA9kH,KAAe,KAAA,KAwQxC1zB,GAAGutI,gBAvQQO,GAAA9tI,EAAcutI,gBAAWO,GAAA7xI,QAAgBw8I,EAAA,SAAAC,GAwQhD,MAvQIF,GAAAE,IAyQR,IAAID,GAvQI,GAAA3xH,QAAYlkB,OAAGD,KAAA61I,GAAA9kH,KAAc,KAAA,KAwQrC1zB,GAAGutI,gBAAgBQ,GAAK/tI,EAAGutI,gBAAgBQ,GAAG9xI,QAAQw8I,EAAI,SAASC,GAtQnE,MAAOF,GAAAE,KAIP14I,EAAA/C,UACAzC,EAAIqI,QAAO7C,EAAK0sI,cAAW,SAAYP,GACnCnsI,EAAA/C,OAAUkvI,EAAAQ,eAAAR,EAAAE,aAAA,GAAAG,eAqRlB,QAASwJ,GAvQc7+H,GAwQnBnX,EAAGqyF,YAvQa,KAwQhBxI,EAAyBE,oBAAoBtrF,KAAK,SAASC,GAtQ5C,MAuQPA,EAAIlI,SACJwJ,EAAGi2I,gBAvQiBv3I,EAAAhJ,KAChByhB,GAwQAA,MAET,SAASxW,MAehB,QAAS+1I,GAvQUz5G,GAwQfj9B,EAAGsS,WAvQY,EAwQftS,EAAG22I,aAvQS,CAwQZ,KAAK,GAAIz7I,KAAK8E,GAvQEo2B,QAwQRp2B,EAAGo2B,QAvQKl7B,GAAI07I,UAAA35G,GAwQZ5iC,EAAQ8C,OAvQI,UAAA,0CAAA8/B,GAwQR5lC,WAvQG,EAwQH+F,KAvQI,OAyQR4C,EAAGyiI,SAvQI,EAwQPziI,EAAG22I,aAvQI,EAwQP32I,EAAGsS,WAvQS,GAEbtS,EAAAyiI,SAAc,CAerB,IAZO,kBAuQHxlG,IAtQAj9B,EAAA62I,QAAW72I,EAAA82I,YAyQH,qBAAR75G,IACAj9B,EAAG62I,QAAU72I,EAAG+2I,eArQpB,sBAAA95G,IACGj9B,EAAA62I,QAAc72I,EAAAg3I,WAEd,2BAAA/5G,IACAj9B,EAAA62I,QAAY72I,EAAAi3I,iBAEZj3I,EAAKyiI,SAA2B,GAA3BziI,EAAA22I,aAAgC,CACrC,GAAA17I,IAwQKg8B,QAASj3B,EAAGi3B,QACZ2/G,QAAS35G,EAtQd45G,QAAA72I,EAAA62I,QAEA72I,GAAA+S,UAwQK9X,EAAI42D,MAAQ,EArQZ52D,EAAA42D,MAAU,CACd,IAAGzzD,GAAU,GAAAH,SACbG,GAASF,OAAK,aAAG8B,EAAgBo0G,cAwQjCh2G,EAvQQF,OAAG,UAAejD,EAAGg8B,SAwQ7B74B,EAvQQF,OAAG,UAAcjD,EAAG27I,SAwQ5Bx4I,EAASF,OAAO,QAASjD,EAAI42D,OAC7BzzD,EAASF,OAAO,UAAWjD,EAAI47I,SAC/Br8F,EAAY08F,UAAU94I,GAAUK,KAAK,SAASC,GAtQ9C,GAAmB,MAAnBA,EAAAlI,OAAmB,CAwQXuB,EAAW2I,YAAY,UAAW,qBAAsB,gBAtQ5D,IAAKs/H,GAAsBthI,EAAAhJ,IACvBsK,GAAAsS,WAAO,EAwQPrX,EAvQIk8I,OAAGnX,EAAkBtgI,OAwQzBM,EAAGo2B,QAAQv+B,KAAKoD,GAChB+E,EAAG22I,aAAe,EAClB32I,EAAGyiI,SAAU,MArQb1qI,GAAO2I,YAAA,QAAsB,uBACzBrJ,WAAG,EAwQH+F,KAAM,UAiC1B,QAASg6I,GAActkI,GACnB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAtQ3B,4CAwQKtb,WAAW,EACX+F,KAAM,OAEVnC,GAtQRg8B,QAASnkB,EAAAmkB,QACL2/G,QAAY9jI,EAAA8jI,QACRO,OAAQrkI,EAAAqkI,OAwQR/2I,SAvQO2U,EAAc1U,OAyQzBsS,GAAQjT,OAvQGjB,KAAA,WAwQP+7C,EAvQI68F,cAAWp8I,GAAYwD,KAAS,SAAAC,GAwQhC,GAAmB,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,UAAW,CAtQ1C,GAAAwB,GAAKpV,EAAAo2B,QAAAhzB,QAAA0P,EAwQL9S,GAAGo2B,QAAQd,OAAOlgB,EAAO,GACzBpV,EAAG22I,aAAe,EAClB32I,EAAGyiI,SAAU,EACb1qI,EAAW2I,YAAY,UAAW,sCAAuC,eArQzErG,GAAAwH,MAAA,QAAAnD,EAAAhJ,KAAAme,SACRxc,WAAkB,EACd+F,KAAS,UA2Qd,cAGP,QAvQS4W,KAwQLhU,EAAGgT,YAvQY,EAwQfhT,EAAGwX,aAvQK,EAwQRxX,EAAGyX,WAvQK,EA0QZ,QAAS/F,KACL,GAAIiB,GAvQItY,EAAasY,QAAG,eAwQpB,yFAtQItb,WAAA,EACA+F,KAAA,MA0QRuV,GAvQQjT,OAAKjB,KAAA,WAwQTuB,EAAGgT,YAvQM,EAwQTkB,IACAlU,EAAG47C,aAvQe,KAClB57C,EAAGo8C,gBAAc,KACjBp8C,EAAAu8C,aAAY,OA+QpB,QAAS7kC,KACL1X,EAAGgT,YAvQY,EAwQfkB,IACAlU,EAAG47C,aAAe,KAClB57C,EAAGo8C,gBAvQkB,KAwQrBp8C,EAAGu8C,aAvQK,KAwQRv8C,EAAGw8C,YAAc,KASrB,QAvQQtoC,KAwQJk3H,IACAprI,EAAGmiH,UAvQQ,EAwQXniH,EAAG+S,WAvQY,EAwQf/S,EAAG0iI,aAvQQ,KAyQX1iI,EAAGqyF,YAvQa,KAyQhBryF,EAAGs3I,kBAvQoB,KAwQvBt3I,EAAG+1I,yBAvQ0B,KAwQ7B/1I,EAAGutI,mBACHvtI,EAAG40B,QAGP,QAAS2iH,KACLnC,IACA19H,IACA1X,EAAGwrI,OAvQI,EA7kBX,GAAIxrI,GAAKC,IAETD,GAAGqU,kBApQChJ,MAAQ,IAuQRA,MArQI,KAuQJA,MArQO,KAuQPA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EApQjBvU,EAAAwU,qBAAiB,SAAAC,GACVzU,EAAAuU,YAAaE,GAwQpBzU,EAAGsS,WArQI,EAsQPva,EArQO2c,SAAA,EAwQP1U,EAAG+S,WAAY,EACf/S,EAAGmiH,UAAW,EACdniH,EAAGu8C,gBACHv8C,EAAG/C,UACH+C,EAAG40B,QAEH50B,EAAGutI,mBApQHvtI,EAAAqrI,uBAAqB,EAsQrBrrI,EAAG2xF,SArQC,MAsQJ3xF,EAAGo2B,WACHp2B,EAAGyiI,SArQI,EAuQPziI,EAAGi8C,iCAAmCA,EACtCj8C,EAAGq8C,+BArQkBA,EAsQrBr8C,EAAGotI,mBAAqBA,EACxBptI,EAAGs1I,mBArQIA,EAsQPt1I,EAAGksI,eArQIA,EAsQPlsI,EAAGorI,YArQIA,EAsQPprI,EAAG27C,uBArQWA,EAsQd37C,EAAG8rI,sBAAwBA,EAC3B9rI,EAAGq2I,SAAWA,EApQdr2I,EAAAo1I,SAASA,EAsQTp1I,EAAGy1I,SArQCA,EAsQJz1I,EAAGm2I,WArQCA,EAsQJn2I,EAAGg2I,eArQYA,EAsQfh2I,EAAGwrI,OAAQ,EACXxrI,EAAGu3I,KAAOA,EACVv3I,EAAGkU,UAAYA,EApQtBlU,EAAAgU,OAAYA,EACThU,EAAA0R,OAAAA,EAsQI1R,EAAG0X,MAAQA,EACX1X,EAAG02I,iBAAmBA,EArQ1B12I,EAAAo3I,cAAAA,CAuQI,IAtQCriI,GAAO5a,EAAAgG,sBAuQRH,GAtQCwX,aAAW,EAuQZxX,EAAGyX,WAAY,CACf,IAAIm0H,GAAY,EApQhB15H,KAwQAlS,EAAG+5H,sBACCC,oBAAqB,UACrB3xG,KAAM,MApQP2xG,oBAAc,WAuQb3xG,KAAM,MAklBV5d,EAAOuqG,YAvQY,SAAA74G,GAwQXA,IACIA,EAAMsN,OAAOiE,MAAM,GAAGtQ,KAAO,IAC7B4C,EAAGo0G,aAAej4G,EAAMsN,OAAOiE,MAAM,GArQtCrT,EAAA8C,OAAY,UAAW,kCACtB9F,WAAM,EACN+F,KAAU,SA8UtB4C,EAAGw2I,YAAc,WACb,GAAIv7I,IACAi8B,aAAcv6B,KAAKqkB,UAAUhhB,EAAGo2B,SAtQpCh2B,SAAA2U,EAAmB1U,OAyQnBm6C,GAAYg9F,WAAWv8I,GAAKwD,KAAK,SAASC,GAtQpB,MAAjBA,EAAAlI,QAAiBkI,EAAAhJ,KAAAke,WAClB7b,EAAU2I,YAAgB,UAAA,sCAAA,WAC1BV,EAAAwrI,OAAA,EACI4J,IACA19H,IAwQA1X,EAAGo2B,YArQH/7B,EAAOwH,MAAK,QAAWnD,EAAAhJ,KAAAme,SAC3Bxc,WAAY,EACJ+F,KAAI,yTApfxBhJ,QACKC,OAAO,oCACPe,WAAW,WAAYijJ,MA61BhC,WACI,YAOA,SAvQQM,GAAiB5gJ,EAAeiC,EAAAyQ,EAAAjQ,EAAAH,EAAAN,EAAAkwI,EAAAtvF,EAAAE,EAwQpC1gD,EAvQsB2gD,EAAoBE,EAAcjpC,EAAAgkH,EAwQxDmU,EAvQmBrgD,EAA8BW,GAuUjD,QAASt4E,KACLH,EAvQQ8D,iBAAe9b,EAAWhC,GAAA0G,KAAA,SAAAC,GACX,MAuQfA,EAvQIlI,QAwQJwJ,EAAG8V,YAvQOpX,EAAAhJ,KAwQVsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YArQtE,SAASC,GACF5I,EAAY2I,YAAA,QAAA,mBAAA,aA0Qfm6C,EAvQsBI,aAAiBlhD,EAAAhC,GAAA0G,KAAA,SAAAC,GAChB,MAAfA,EAAAlI,QAwQAwJ,EAAGk7C,QAvQCx8C,EAAWhJ,KAwQfsK,EAAGsS,WAvQO,GAEVva,EAAG2I,YAAU,QAAA,yBAAA,0BAyQlB,SAvQQC,GAwQP5I,EAvQO2I,YAAA,QAAA,mBAAA,2BAIXmpF,EAAYI,eAAiBxrF,KAAA,SAAAC,GACT,MAAbA,EAAAlI,OAwQKwJ,EAAGyxF,eAAiB/yF,EAAIhJ,KAGxBqC,EAAW2I,YAAY,QAAS,4CAA6C,WAGrF,SAASC,GAtQT5I,EAAQ2I,YAAA,QAA0B,4CAAA,UA2Q1C,QAvQQi7C,GAAUD,EAAArlC,EAAA9X,GA+Qd,GAPAyB,EAAG44I,KAvQKj7F,iBAAY,KAwQpB39C,EAAG47C,gBACH57C,EAAG44I,KAvQK/6F,oBAAY,KAwQpB79C,EAAGo8C,mBACHp8C,EAAG44I,KAvQK/5F,iBAAG,KAwQX7+C,EAAGu8C,gBACHv8C,EAAG44I,KAAK7H,wBAA0B,KAC9Br1F,GAvQgBrlC,EAAA,CAChB,GAAIpb,IACJygD,sBAAgBA,EAChBrlC,UAASA,EAETskC,GAAgBgB,uBAAa1gD,GAAAwD,KAAA,SAAAC,GACb,MAAhBA,EAASlI,SACTwJ,EAAA47C,aAAsBl9C,EAAAhJ,KACVsK,EAAA47C,aAAgBzgD,OAAA,GACpBd,EAAW8C,OAAA,UAAY,iCAAiC6C,EAAA44I,KAAAn8F,oBAAA/lC,aAAArf,WAAA,EAAA+F,KAAA,OAExD4C,EAAGsS,WAAY,EACX/T,GACDA,WA4QXyB,GAAG44I,KAAKj7F,iBAvQe,KAwQvB39C,EAAG47C,gBACH57C,EAAG44I,KAAK/6F,oBAAsB,KAC9B79C,EAAGo8C,mBACHp8C,EAAG44I,KAAK/5F,iBAAmB,KAC3B7+C,EAAGu8C,gBACHv8C,EAAG44I,KAAK7H,wBAA0B,KAI1C,QAAStyF,GAA+BvC,EAAY39C,GAtQjDyB,EAAA44I,KAAA/6F,oBAAyB,KACxB79C,EAAAo8C,mBAwQAp8C,EAAG44I,KAvQC/5F,iBAAmB,KAwQvB7+C,EAAGu8C,gBACHv8C,EAAG44I,KAAK7H,wBAA0B,KAtQlC70F,EACIpB,EAAmBqB,yBAA2BD,GAAAz9C,KAAA,SAAAC,GAC1CsB,EAAA44I,KAAA/6F,oBAAuBloD,OACvBqK,EAAG44I,KAAA/5F,iBAAQlpD,OACX,MAAA+I,EAAAlI,SACAwJ,EAAAo8C,gBAAA19C,EAAAhJ,KACGsK,EAAAo8C,gBAAUjhD,OAAA,GACVd,EAAA8C,OAAA,UAAA,sCAAA6C,EAAA44I,KAAAj7F,iBAAA9B,cAAAxkD,WAAA,EAAA+F,KAAA,OAEC4C,EAAAsS,WAAW,EACX/T,GAwQIA,QAIZyB,EAAG44I,KAAK/6F,oBAAsB,KAC9B79C,EAAGo8C,mBACHp8C,EAAG44I,KAAK/5F,iBAAmB,KAtQnC7+C,EAASu8C,gBACDv8C,EAAA44I,KAAA7H,wBAA0B,MA4QlC,QAvQQ10F,GAAMxqB,EAAAtzB,GAwQVyB,EAAG44I,KAvQC/5F,iBAAa,KAwQjB7+C,EAAGu8C,gBACHv8C,EAAG44I,KAvQC7H,wBAAY,KACZl/G,EAwQAmpB,EAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAASC,GAtQpEsB,EAAA44I,KAAO/5F,iBAAgBlpD,OACf,MAAZ+I,EAAYlI,SACJwJ,EAAAu8C,aAAe79C,EAAOhJ,KAClBsK,EAAAu8C,aAAWphD,OAAQ,GACpBd,EAAQ8C,OAAO,UAAO,+BAAA6C,EAAA44I,KAAA/6F,oBAAAlsB,iBAAAt6B,WAAA,EAAA+F,KAAA,OAEzB4C,EAAGsS,WAAU,EACb/T,GACGA,QA2QXyB,EAAG44I,KAAK/5F,iBAAmB,KAC3B7+C,EAAGu8C,gBACHv8C,EAAG44I,KAAK7H,wBAA0B,MAK1C,QAvQOC,KAEH,GAAG/1I,IAwQCyiD,cAAe19C,EAAG44I,KAAKj7F,iBAAiBzB,WACxC0B,iBAAkB59C,EAAG44I,KAAK/6F,oBAAoBhsB,cAtQtDisB,WAAkB99C,EAAA44I,KAAA/5F,iBAAAC,UACVz2B,KAAAroB,EAAA44I,KAAU7H,wBAAgB1oH,KAyQ9B4hH,GAvQQmD,mBAAWnyI,GAAAwD,KAAA,SAAAC,GAyQI,MAAfA,EAAIlI,OACAkI,EAAIhJ,MArQTsK,EAAAurI,gBAAan3I,QAAA8e,KAAAxU,EAAAhJ,KAAA23I,cAChBrtI,EAAAsrI,aAAA5sI,EAAAhJ,KAAA23I,aACGrtI,EAAAgtI,YAAetuI,EAAAhJ,KAAAg3I,cACf1sI,EAAA/C,UACAyuI,IAwQqC,IAA5B1rI,EAAG0sI,cAAcvxI,QAEjB46H,EAAiBkb,gBAAgBh2I,GAAKwD,KAAK,SAASC,GAC7B,MAAfA,EAAIlI,SACJwJ,EAAGgtI,YAActuI,EAAIhJ,KAAKw7I,UAC1B2H,IACI74I,EAAGgtI,YAAY7xI,OAAS,GAtQvCd,EAAA8C,OAAA,UAAA,8BAAA6C,EAAA44I,KAAA/5F,iBAAAH,aAAArnD,WAAA,EAAA+F,KAAA,OAEb4C,EAAAsS,WAAA,EAGkBrX,EAAA8jD,SAAA9jD,EAAAotB,KACD6hH,EAAAuB,eAAAxwI,GAAAwD,KAAA,SAAAC,GAwQW,GAAmB,MAAfA,EAAIlI,SACJwJ,EAAGstI,gBAAkB5uI,EAAIhJ,KACrBsK,EAAGstI,iBACHttI,EAAGusG,UAAY5vG,KAAKC,MAAMoD,EAAGstI,gBAAgB9gC,OAC7CxsG,EAAG0tI,IAAMt5I,QAAQ8e,KAAKlT,EAAGusG,YAEzBvsG,EAAG0tI,KACCD,WAAc,GAtQrCE,EAAA,GACjBC,GAAA,GACcC,GAAA,GACCC,GAAA,GACGC,GAAA,IA0Qc/tI,EAAGsS,WAAY,EAtQxB,MAAAtS,EAAAstI,iBAEF,GAAAttI,EAAAstI,gBAAA96C,QAAAxyF,EAAAstI,gBAAAviD,iBAAA,CACX/qF,EAAA81I,QAAA,GAwQ8B,KAAK,GAAI56I,KAAK8E,GAAGyxF,eACTzxF,EAAGyxF,eAAev2F,GAAG+vF,SAAWjrF,EAAGstI,gBAAgBriD,SAtQvFjrF,EAAAqyF,YAAAryF,EAAAyxF,eAAAv2F,GA2Q4Bo6I,GAAmB,WAEf,IAAK,GAAIz9H,KAAK7X,GAAG6xF,SAtQ7D7xF,EAAA6xF,SAAAh6E,GAAA26E,SAAAxyF,EAAAstI,gBAAA96C,SACRxyF,EAAA0iI,aAAA1iI,EAAA6xF,SAAAh6E,GAGY,KAAA,GAAA3c,KAAA8E,GAAAw1I,mBACkCx1I,EAAAw1I,mBAAAt6I,GAAA6vF,mBAAA/qF,EAAAstI,gBAAAviD,mBAyQc/qF,EAAG+1I,yBAA2B/1I,EAAGw1I,mBAAmBt6I,UAnQnG8E,GAAA81I,QAAA,KAyQmCE,EAAe,WAvQnB,IAAS,GAAQ96I,KAAA8E,GAAAi2I,gBACxBj2I,EAAAi2I,gBAAA/6I,GAAA+vF,SAAAjrF,EAAAstI,gBAAAriD,SAyQuBjrF,EAAGqyF,YAAcryF,EAAGi2I,gBAAgB/6I,WAzPhFD,EAAA8jD,SAAW9jD,EAAYotB,KACvB6hH,EAAOuB,eAAAxwI,GAAAwD,KAAA,SAAAC,GAyQC,GAAmB,MAAfA,EAAIlI,SACJwJ,EAAGstI,gBAAkB5uI,EAAIhJ,KACrBsK,EAAGstI,iBACHttI,EAAGusG,UAAY5vG,KAAKC,MAAMoD,EAAGstI,gBAAgB9gC,OAC7CxsG,EAAG0tI,IAAMt5I,QAAQ8e,KAAKlT,EAAGusG,YAtQtCvsG,EAAA0tI,KACDD,WAAA,GAyQkBE,EAAK,GAvQhBC,GAAA,GACFC,GAAA,GACLC,GAAA,GAyQkBC,GAAM,IArQnC/tI,EAAAsS,WAAiC,EACA,MAAjCtS,EAAAstI,iBAES,GAAAttI,EAAAstI,gBAAA96C,QAAAxyF,EAAAstI,gBAAAviD,iBAAA,CACA/qF,EAAA81I,QAAA,GACG,KAAA,GAAA56I,KAAA8E,GAAAyxF,eACDzxF,EAAAyxF,eAAAv2F,GAAA+vF,SAAAjrF,EAAAstI,gBAAAriD,SACEjrF,EAAAqyF,YAAAryF,EAAAyxF,eAAAv2F,GAINo6I,GAAA,WAEA,IAAA,GAAAz9H,KAAA7X,GAAA6xF,SACA7xF,EAAA6xF,SAAAh6E,GAAA26E,SAAAxyF,EAAAstI,gBAAA96C,SAyQkCxyF,EAAG0iI,aAAe1iI,EAAG6xF,SAASh6E,GApQtD,KAAA,GAAA3c,KAAA8E,GAAAw1I,mBACIx1I,EAAAw1I,mBAAAt6I,GAAA6vF,mBAAA/qF,EAAAstI,gBAAAviD,mBACG/qF,EAAA+1I,yBAAA/1I,EAAAw1I,mBAAAt6I,UA6QK8E,GAAG81I,QAAU,KAvQ7BE,EAAA,WACoB,IAAA,GAAO96I,KAAA8E,GAAAi2I,gBACXj2I,EAAAi2I,gBAAA/6I,GAAA+vF,SAAAjrF,EAAAstI,gBAAAriD,SACCjrF,EAAAqyF,YAAAryF,EAAAi2I,gBAAA/6I,SAYlB8E,EAAA0sI,kBA2QH30I,EAAW2I,YAAY,QAAS,mCAAoC,UAvQzEV,EAAA0sI,mBA0QA,SAAS/rI,GACR5I,EAAW2I,YAAY,QAAS,iCAAkC,UAClEV,EAAG0sI,mBAIX,QAAShB,KACL,GAAIqB,KACJ,KAAK,GAAI92H,KAxQGjW,GAAAgtI,YAAW,CAyQnB,GAAIl0F,IACA6zF,cAAe3sI,EAAGgtI,YAAY/2H,GAvQlCg3H,cAAc,OAAArmI,SAAAqP,GAAA,GAAA,KACVo2H,gBA0QJ,KAAK,GAAIx0H,KAAK7X,GAAGsrI,aAAc,CAC3B,GAAI1iI,GAAQpO,EAAOihG,KAAK3iD,EAAKuzF,cAvQhCG,aAAuBxsI,EAAAsrI,aAAAzzH,GAAAihC,EAAuB6zF,gBAEhD,KAAA/jI,EAAe,CACV,GAAAskI,IACLV,aAAkBxsI,EAAAsrI,aAAAzzH,GAAAihC,EAAA6zF,eACbL,YAAmB,EAEnBxzF,GAAAuzF,aAAAx0I,KAA0Bq1I,IA2Q9BH,EAxQIl1I,KAAAihD,GA0QR94C,EAAG0sI,cAAgBK,EAGvB,QAAS8L,KAEL,GAAI9L,KACJ,KAAK,GAAI92H,KAAKjW,GAAGgtI,YAAa,CAC1B,GAAIl0F,IACA6zF,cAxQQ3sI,EAAAgtI,YAAA/2H,GAAAk7E,KAyQR87C,cAxQQ,OAAArmI,SAAAqP,GAAA,GAAA,KAyQRo2H,gBAEJ,KAAK,GAAIx0H,KAAK7X,GAAGgtI,YAAa,CAvQ3B,GAAApkI,GAAApO,EAAAihG,KAAA3iD,EAAAuzF,cACKG,aAAAxsI,EAAmBgtI,YAAAn1H,GAAAihC,EAAA6zF,gBAExB,KAAK/jI,EAAA,CACL,GAAAskI,IACKV,aAAAxsI,EAAmBgtI,YAAAn1H,GAAAihC,EAAA6zF,eACxBL,YAAe,EA0QVxzF,GAAKuzF,aAAax0I,KAAKq1I,IArQvCH,EAASl1I,KAAAihD,GAEL94C,EAAG0sI,cAAAK,EA2QP,QAxQO/4H,KACHhU,EAAAmiH,UAAI,EA2QR,QAASzwG,KACL1R,EAAGmiH,UAxQS,EAyQZniH,EAAG+S,WAxQY,EAyQf/S,EAAG44I,KAAKjM,iBAERz4H,IAGJ,QAASA,KACLlU,EAAGmxI,cAAc/8H,gBAGrB,QAxQQsD,KAyQJ1X,EAAGmiH,UAxQI,EAyQPniH,EAAG+S,WAxQS,EAyQZ/S,EAAG44I,QACH54I,EAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGu8C,gBACHv8C,EAAG44I,KAAKjM,cAAgB,KAG5B,QAxQOmM,KAEH,GAAGlvI,IA+QK6jI,WAxQQztI,EAAQ0tI,IAAAD,WAyQhBE,EAAK3tI,EAAG0tI,IAAIC,EACZC,GAxQI5tI,EAAG0tI,IAAAE,GAyQPC,GAxQI7tI,EAAI0tI,IAAAG,GAyQRC,GAAM9tI,EAxQE0tI,IAAAI,GAyQRC,GAAM/tI,EAAG0tI,IAAIK,GAmCrB,KAAK/tI,EAAG+S,UAAW,CACf,GAAI9X,IACAyiD,cAxQgB19C,EAAG44I,KAAAj7F,iBAAYzB,WAyQ/B0B,iBAAoB59C,EAAG44I,KAAK/6F,oBAAoBhsB,cAChDisB,WAAc99C,EAAG44I,KAAK/5F,iBAAiBC,UACvCC,SAAY/+C,EAAG44I,KAxQK7H,wBAAe1oH,KAyQnCmkF,MAAS7vG,KAAKqkB,UAxQEpX,GAyQhBkK,UAAa5T,EAxQWG,OA0QT,OAAfL,EAAG81I,SACH76I,EAAIu3F,OAAUxyF,EAAG,aAxQcA,EAAA0iI,aAAiBlwC,OAAS,GAyQzDv3F,EAAI8vF,iBAAoB/qF,EAAG,yBAxQ0BA,EAAA+1I,yBAAAhrD,iBAAA,IAyQ/B,OAAf/qF,EAAG81I,UACV76I,EAAIgwF,OAAUjrF,EAAG,YAxQcA,EAAAqyF,YAAMpH,OAAA,IA0QzCi/C,EAAuB6O,gBAxQa99I,GAAKwD,KAAA,SAAAC,GAyQlB,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAxQWhC,EAAAhJ,KAAAme,QAAA,4BAyQlC7Z,EAAOg/I,UAEPjhJ,EAAW2I,YAAY,QAAS,yCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAxQS,yCAyQ5BrJ,WAAW,EACX+F,KAAM,UAOtB,QAAS67I,KACL,GAAItmI,GAAUtY,EAAQsY,QAAQ,UAC1B,gCAAkCtb,WAAW,EAxQM+F,KAAA,MA0QvDuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IACAyiD,cAAe19C,EAAG44I,KAAKj7F,iBAxQazB,WAyQpC0B,iBAAkB59C,EAAG44I,KAAK/6F,oBAxQkBhsB,cAyQ5CisB,WAAY99C,EAAG44I,KAAK/5F,iBAAiBC,UACrCC,SAAU/+C,EAAG44I,KAAK7H,wBAAwB1oH,KAE9C6hH,GAAuBgP,kBAAkBj+I,GAAKwD,KAAK,SAASC,GACrC,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAxQQhC,EAAAhJ,KAAUme,QAAA,4BAyQzCm9H,KAEAj5I,EAAW2I,YAAY,QAAS,yCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,yCAC5BrJ,WAAW,EACX+F,KAAM,WAOtB,QAAS44I,GAAe7+H,GACpBnX,EAAGqyF,YAxQa,KAyQhBryF,EAAG+1I,yBAxQS,KAyQZ/1I,EAAG0iI,aAxQa,KAyQhB74C,EAxQuBE,oBAAsBtrF,KAAA,SAAAC,GACzB,MAwQZA,EAAIlI,SACJwJ,EAAGi2I,gBAxQgBv3I,EAAAhJ,KA0QfyhB,GACAA,MAET,SAASxW,MAGhB,QAAS20I,GAAmB/2I,GACxB,GAxQ4B5I,SAwQxBqK,EAAGqyF,YAAYpH,OAxQe,CAyQ9B,GAAIsqD,IACA5jD,SAAU3xF,EAAG2xF,SACb1G,OAAQjrF,EAAGqyF,YAxQIpH,OA0QnBpB,GAAyBC,YAAYyrD,GAAK92I,KAAK,SAASC,GAvQpC,MAwQZA,EAAIlI,QACJwJ,EAAG0iI,aAxQa,KAyQhB1iI,EAAG6xF,SAAWnzF,EAxQEhJ,KA0QhB80F,EAAqBQ,uBAxQuBhrF,EAAAqyF,YAAepH,QAAAxsF,KAAA,SAAAC,GAyQvDsB,EAAGw1I,mBAAqB92I,EAAIhJ,KAExB6I,GACAA,KACL,SAASoC,GACR5I,EAAW2I,YAxQU,QAAS,mBAAa,WA0Q/CV,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,UAEtD,SAASlB,GACR5I,EAAW2I,YAAY,QAxQS,mBAAG,eA2QvC3I,GAAW2I,YAAY,QAAS,gCAAiC,SA3kBzE,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAvQUtU,EAAIqU,gBAAc,GA2Q/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAvQqB,SAAOC,GAC3BzU,EAAGuU,YAAAE,GA2QPhK,EAvQOknI,QAAA,SAAgBx1I,EAAQyqB,GAyQvB,GAAIC,GAAQ,GAAIC,QAAO,mBACnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MAtQtD,KAAKN,EAAIje,KAAOme,GA0QZ,MAzQL5qB,GAAAkB,iBACCtF,EAAU2I,YAAA,QAAA,kCAAA,cAwQC,GAMnBV,EAAG+S,WAvQU,EAwQb/S,EAAGsS,WAvQI,EAwQPtS,EAAGmiH,UAvQK,EAyQRpqH,EAAW2c,SAAU,EACrB1U,EAAG0sI,iBACH1sI,EAAG2xF,SAvQI,MAyQP3xF,EAAGgxI,kCAvQyBA,EAwQ5BhxI,EAAG0X,MAAQA,EACX1X,EAAGy+C,+BAAiCA,EACpCz+C,EAAGq8C,+BAAiCA,EACpCr8C,EAAG27C,uBAAyBA,EAC5B37C,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAG84I,SAAWA,EACd94I,EAAGi5I,WAAaA,EAChBj5I,EAAG0tI,KACCD,WAAc,GACdE,EAAK,GACLC,GAAM,GAtQVC,GAAS,GACLC,GAAG,GACHC,GAAA,GAyQJ,IAAI7tI,GAvQW/F,EAAsBgG,sBA0QrCH,GAAGg2I,eAvQYA,EAwQfh2I,EAAGs1I,mBAvQkBA,EAwQrBt1I,EAAG64I,sBAAwBA,EArQ3B3mI,IAyQAlS,EAAG+5H,sBAvQsBC,oBAAgB,UAAU3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,mUAkMvDj0B,QACKC,OAvQG,oCAwQHe,WAAW,6BAA8BujJ,MAwlBlD,WACI,YAMA,SAASQ,GAAkBphJ,EAAYyC,EAAQH,EAASN,EAAO+gD,EAAwBD,EACnF1gD,EAAuBwgD,EAAqB5oC,EAAetH,GAqD3D,QAASyH,KACL4oC,EAxQmBs+F,sBAAAr/I,EAAAhC,GAAA0G,KAAA,SAAAC,GACH,MAwQRA,EAxQIlI,QAyQJwJ,EAAGq5I,gBAxQK36I,EAAiBhJ,KAyQzBsK,EAAGsS,WAxQK,EAyQRuoC,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAAUC,GAvQpD,MAAlBA,EAAKlI,QAyQDwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAGxDqR,EAAe8D,iBAAiB9b,EAAOhC,GAAY0G,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QAvQNwJ,EAAA8V,YAAApX,EAAAhJ,KACAsK,EAAAsS,WAAA,GAENva,EAAgB2I,YAAA,QAAA,yBAAA,YAExB,SAAAC,GAyQY5I,EAAW2I,YAAY,QAAS,mBAAoB,cAIxDrG,EAAQwH,MAAM,QAAS,yBAA0B,gBAtQ7D,SAAiBlB,GACV5I,EAAW2I,YAAA,QAAA,mBAAA,iBAGdi6C,EAAkBs1F,sBAAAxxI,KAAA,SAAAC,GACG,MAAlBA,EAAAlI,SACAwJ,EAAAkwI,gBAAexxI,EAAAhJ,KACVsK,EAAAsS,WAAA,KAIRqoC,EAAAo1F,0BAAAtxI,KAAA,SAAAC,GACY,MAARA,EAAQlI,SAyQJwJ,EAAGgwI,oBAAsBtxI,EAAIhJ,KAC7BsK,EAAGsS,WAAY,KAM3B,QAASgnI,KACL,GAAIr+I,IACAob,UAxQUrW,EAAGowI,sBAAI/5H,UAyQjB2mC,MAxQIh9C,EAAMmwI,kBAAOz0F,uBA0QjBq0C,GACAq3C,OAAQzqI,KAAKqkB,UAAU/lB,GAE3B6/C,GAAuBy+F,kBAAkBxpD,GAAMtxF,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,SACJwJ,EAAGw5I,qBAAuB96I,EAAIhJ,KAC9BsK,EAAGsS,WAAY,KAM3B,QAASmsC,GAA+BvC,GACpCl8C,EAAGy5I,2BACH3+F,EAAuBqB,yBAAyBD,GAAYz9C,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAGy5I,wBAA0B/6I,EAAIhJ,KACjCsK,EAAGsS,WAAY,KAO3B,QAASqpC,GAAuBtlC,EAAWqlC,EAAuBn9C,GAG9D,GAFAyB,EAAG05I,YAAYj8E,qBAAuB,KACtCz9D,EAAG47C,gBACCvlC,GAAaqlC,EAAuB,CACpC,GAAIzgD,IACAygD,sBAAuBA,EACvBrlC,UAAWA,EAEfskC,GAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,SAvQRwJ,EAAA47C,aAAWl9C,EAAAhJ,KACLsK,EAAA47C,aAAAzgD,OAAA,GACNd,EAAA8C,OAAoB,UAAK,kCAAiB6C,EAAA05I,YAAAj9F,oBAAA/lC,aAAA1W,EAAA05I,YAAAl9F,YAAAqd,yBAAAxiE,WAAA,EAAA+F,KAAA,OAE1C4C,EAAAsS,WAAiB,EACjB/T,GACAA,WA6QJyB,GAAG05I,YAxQKj8E,qBAAuB,KAyQ/Bz9D,EAAG47C,gBAKX,QAAS5nC,KACLhU,EAAGgT,YAxQS,EAyQZhT,EAAG66B,MAAO,EACV76B,EAAG47C,aAxQS,KAyQZ57C,EAAGmwI,kBAxQa,KAyQhBnwI,EAAGowI,sBAxQmB,KAyQtBpwI,EAAGgwI,uBACHhwI,EAAGkwI,mBACHlwI,EAAG25I,uBAxQkB,KAyQrB35I,EAAGw5I,wBACHx5I,EAAGwX,aAxQS,EAyQZxX,EAAGyX,WAxQS,EA4QhB,QAASC,KACL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAvQnBmB,IA0QIhC,IAEJ,QAxQIR,KAyQA,GAxQIiB,GAAUtY,EAAAsY,QAAA,eAyQV,yFAvQItb,WAAA,EACA+F,KAAA,MA2QRuV,GAxQIjT,OAAAjB,KAAA,WAyQAuB,EAAGgT,YAxQS,EAyQZhT,EAAG+S,WAxQK,EAyQRmB,IAEAhC,MAMR,QAASgC,KACLlU,EAAG05I,eACH15I,EAAG45I,oBAxQexlI,gBA2QtB,QAASylI,GAAoBH,GACzB15I,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EACbzX,EAAG66B,MAAO,EAvQd76B,EAAA+S,WAAS,EACL/S,EAAGgT,YAAA,EACHhT,EAAG05I,YAAAtlJ,QAAA8e,KAA2BwmI,EA2Q9B,KAxQI,GAAI7hI,KAAI7X,GAAA8V,YACJ9V,EAAG8V,YAAA+B,GAAAxB,YAAsBqjI,EAAAj2F,SAAAptC,YAyQzBrW,EAAG05I,YAAYj9F,oBAAsBz8C,EAAG8V,YAAY+B,GAI5D,KAxQG,GAAAA,KAAS7X,GAAKk7C,QAyQTl7C,EAAGk7C,QAAQrjC,GAAG6jC,wBAA0Bg+F,EAAYj2F,SAAS/H,wBAC7D17C,EAAG05I,YAAYl9F,YAAcx8C,EAAGk7C,QAAQrjC,GAGhD8jC,GAxQc+9F,EAAAj2F,SAAAptC,UAAAqjI,EAAAj2F,SAAA/H,sBAAA,WAyQV,IAxQI,GAAA7jC,KAAU7X,GAAG47C,aACb57C,EAAA47C,aAAW/jC,GAAYqkC,aAAAw9F,EAAAx9F,aAyQnBl8C,EAAG05I,YAAYj8E,qBAAuBz9D,EAAG47C,aAAa/jC,MAStE,QAASiiI,GAxQeJ,GAyQpB,GAAI/mI,GAAUtY,EAxQMsY,QAAA,UAyQhB,4CAxQyBtb,WAAA,EAAA+F,KAAA,MA0Q7BuV,GAAQjT,OAAOjB,KAAK,WAChBq8C,EAxQuBg/F,sBAAAJ,EAAA7nH,eAAApzB,KAAA,SAAAC,GACZ,MAwQHA,EAxQGlI,QACHuB,EAAQ2I,YAAe,UAAA,wCAA0B,qBAyQjD+9C,EAA+Bz+C,EAAG25I,uBAAuBz9F,aAtQ7DnkD,EAAW2I,YAAY,QAAS,kCAAoBrJ,WAAA,EAAA+F,KAAA,QAErD,SAAAuD,GACH5I,EAAW2I,YAAY,QAAS,0EAAiCrJ,WAAA,EAAA+F,KAAA,UA0QlE,cAnQd,QAAY28I,GAAAL,GACT,GAAA34I,GAAA,yBAAA24I,EAAA,SAAA,WAAA,UAAA,gBAyQY/gI,GAAS+gI,EAAY,SAAY,WAAa,UAAY,4BAC1D/mI,EAAUtY,EAAQsY,QAAQ,UAAW5R,GAAO1J,WAAW,EAAM+F,KAAM,MAxQvEuV,GAAOjT,OAAAjB,KAAA,WACVq8C,EAAWi/F,4BAAqBL,EAAA7nH,eAAApzB,KAAA,SAAAC,GA0QF,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWiY,EAAM,gBAxQnDzG,KAEIna,EAAA2I,YAAA,QAAA,mCAAArJ,WAAA,EAAA+F,KAAA,QA2QE,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,2EAA6ErJ,WAAW,EAAM+F,KAAM,UAvQ7I,cA+QH,QAAS48I,GAAgBN,GACrB,GAAIx5I,GAAa/F,EAAsBgG,sBAxQxCu5I,GAAax9F,WAAAl8C,EAAA05I,YAAAj8E,qBAAAvhB,WAGhBl8C,EAAW+S,WAiBR2mI,EAAU/lI,WAAAzT,EAAAG,OACby6C,EAAAm/F,oBAAAP,GAAAj7I,KAAA,SAAAC,GA0QgBA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eACpD4qC,EAA+Bz+C,EAAG25I,uBAAuBz9F,YAxQlEl8C,EAAWgT,YAAU,EA0QZhT,EAAG+S,WAAY,EAxQf2E,MAED3f,EAAW2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eACZ7T,EAAAgT,YAAA,IA4QH,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,+BAAiCrJ,WAAW,EAAM+F,KAAM,WAvSjGs8I,EAAA5lI,UAAsB5T,EAAAG,OA0QjBy6C,EAAuBo/F,mBAAmBR,GAAaj7I,KAAK,SAAUC,GAC9DA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eAxQjE3B,IACSlS,EAAAgT,YAAA,EACA0E,MAET3f,EAAsB2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eACtB7T,EAAAgT,YAAwB,IAExB,SAAkBrS,GAClB5I,EAAiB2I,YAAA,QAAA,kCA7BpB,GAAIV,GAAKC,IAKTD,GAAGqU,kBAxQYhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAyQfrL,EAAGsU,SAxQStU,EAAAqU,gBAAW,GA0QvBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAxQkB,SAAAC,GAyQjBzU,EAAGuU,YAxQYE,GA2QnBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAvQf/S,EAAAsS,WAAS,EAyQTva,EAxQQ2c,SAAU,EAyQlB1U,EAAGm6I,uBAIHn6I,EAAG27C,uBAxQuBA,EAyQ1B37C,EAAGgU,OAASA,EACZhU,EAAG0R,OAxQKA,EAyQR1R,EAAGkU,UAxQSA,EAyQZlU,EAAG65I,oBAxQaA,EAyQhB75I,EAAG85I,sBAAwBA,EAC3B95I,EAAG+5I,4BAxQoBA,EAyQvB/5I,EAAGg6I,gBAxQiBA,EAyQpBh6I,EAAGs5I,eAxQiBA,EA0QpBt5I,EAAGy+C,+BAAiCA,EACpCz+C,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EACbvF,IAIAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAtQnC,GAAAC,GAAS,GAAAC,QAAA,gBACLC,EAAAC,OAAAC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MACA,KAAIN,EAAAje,KAAUme,GA2QV,MA1QJ5qB,GAASkB,iBACLtF,EAAW2I,YAAA,OAAA,iCAAA,mBACP,qLAqNhBtM,QAAQC,OAAO,oCACVe,WAAW,oBAAqB+jJ,MAqUzC,WACI,YAOA,SAASiB,GAAariJ,EAAYiC,EAAQQ,EAAQH,EAASoQ,EAAQ1Q,EAAOg8H,EAAkBhkH,EAAgB8oC,EACxGF,EAzQeG,EAAeE,EAAAivF,EAAA9vI,GA0T9B,QAAS+X,KAGL+3H,EAAgBoQ,oBAAoBr6I,EAAGE,WAAWG,QAAQ5B,KAAK,SAASC,GACjD,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KAxQxBsK,EAAAsS,WAAA,GAELva,EAAA2I,YAAuB,QAAA,yBAA0C,YA2Q9D,SAzQQC,GA0QP5I,EAzQO2I,YAAY,QAAA,mBAAA,aA4QvBm6C,EAA2BI,aAAalhD,EAAOhC,GAAY0G,KAAK,SAASC,GAClD,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAvQpBva,EAAY2I,YAAA,QAAuB,yBAAA,0BAEtC,SAAIC,GACA5I,EAAU2I,YAAA,QAAA,mBAAA,2BA8QlB,QAASk3C,KACL53C,EAAG8V,eACH/D,EAzQY8D,iBAAoB9b,EAAAhC,GAAY0G,KAAA,SAAAC,GAC5B,MAyQRA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGsS,WAzQI,GA2QPva,EAzQQ2I,YAAA,QAAA,yBAAA,YA2Qb,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAASi7C,GAAuBD,EAAuBrlC,EAAW9X,GAC9D,GAAIyB,EAAGgjB,UAjQJ,GAkQChjB,EAAG47C,gBACH57C,EAAGosI,SAASzuF,iBAAmB,KAxQvC39C,EAASo8C,mBACFp8C,EAAAosI,SAAavuF,oBAAA,KACb79C,EAAAosI,SAAOvtF,iBAAA,KACP7+C,EAAAu8C,gBACAv8C,EAAAosI,SAAA2E,wBAAoB,KACpBr1F,GAAwBrlC,EAAA,CACxB,GAAApb,IACAygD,sBAAkBA,EAClBrlC,UAAAA,EAEAskC,GAAYgB,uBAAA1gD,GAAAwD,KAAA,SAAAC,GACF,MAAAA,EAAAlI,SA0QGwJ,EAAG47C,aAAel9C,EAAIhJ,KAClBsK,EAAG47C,aAAazgD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,iCAAmC6C,EAAGosI,SAAS3vF,oBAAoB/lC,aAAerf,WAAW,EAAM+F,KAAM,OAvQvI4C,EAAAsS,WAAA,EACD/T,GACfA,WAKIyB,GAAA47C,gBACA57C,EAAAosI,SAAAzuF,iBAAA,KACI39C,EAAAo8C,mBACAp8C,EAAAosI,SAAMvuF,oBAAA,KA0QN79C,EAAGosI,SAASvtF,iBAAmB,KAC/B7+C,EAAGu8C,gBAxQHv8C,EAAAosI,SAAY2E,wBAAY,SAG5B/wI,GAAAu8C,gBA0QA0tF,EAAgBqQ,WAAWt6I,EAAGosI,SAAS3vF,oBAAoBpmC,UAAWrW,EAAGE,WAAWG,QAAQ5B,KAAK,SAASC,GAxQ1G,MAAAA,EAAAlI,SA0QQwJ,EAAGu8C,aAAe79C,EAAIhJ,QAOtC,QAzQO+oD,GAAoBvC,EAAA39C,GA0QvByB,EAAGosI,SAASvuF,oBAAsB,KAClC79C,EAAGo8C,mBAxQPp8C,EAAAosI,SAASvtF,iBAAoB,KACzB7+C,EAAGu8C,gBACHv8C,EAAGosI,SAAA2E,wBAAU,KACV70F,EACApB,EAAYqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACC,MAAbA,EAAalI,SACbwJ,EAAAo8C,gBAA2B19C,EAAAhJ,KA0QdsK,EAAGo8C,gBAAgBjhD,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,sCAAwC6C,EAAGosI,SAASzuF,iBAAiB9B,cAAgBxkD,WAAW,EAAM+F,KAAM,OAvQ3I4C,EAAAsS,WAAe,EACf/T,GA0QKA,QArQZyB,EAAAosI,SAAOvuF,oBAAW,KA0QlB79C,EAAGo8C,mBACHp8C,EAAGosI,SAASvtF,iBAAmB,KAC/B7+C,EAAGu8C,gBAxQPv8C,EAAAosI,SAAA2E,wBAAmC,MA6QvC,QAAS10F,GAA+BxqB,EAAetzB,GACnDyB,EAAGosI,SAASvtF,iBAAmB,KAC/B7+C,EAAGu8C,gBACHv8C,EAAGosI,SAAS2E,wBAA0B,KAClCl/G,EACAmpB,EAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAASC,GACjD,MAAfA,EAAIlI,SACJwJ,EAAGu8C,aAAe79C,EAAIhJ,KAxQ7BsK,EAAAu8C,aAAsBphD,OAAa,GAC1Bd,EAAQ8C,OAAQ,UAAA,+BAAA6C,EAAAosI,SAAAvuF,oBAAAlsB,iBAAAt6B,WAAA,EAAA+F,KAAA,OA2QlB4C,EAAGsS,WAAY,EAxQZ/T,GACXA,QA6QAyB,EAAGosI,SAzQQvtF,iBAAA,KA0QX7+C,EAAGu8C,gBACHv8C,EAAGosI,SAAS2E,wBAA0B,MAI9C,QAzQOwJ,GAAYpO,GA2Qf,GAAIx5H,GAAUtY,EAAQsY,QAAQ,UAAW,+BAAiCw5H,EAAUI,kBAChFl1I,WAAW,EACX+F,KAAM,MAtQVuV,GAAIjT,OAASjB,KAAA,WACTuB,EAAAsS,WAAU,CACd,IAAQrX,IACJyiD,cAAA19C,EAAAosI,SAAuBzuF,iBAAAzB,WACnB0B,iBAAQ59C,EAAWosI,SAAKvuF,oBAAAhsB,cA0QxBisB,WAzQI99C,EAAWosI,SAAAvtF,iBAAuBC,UA0QtCz2B,KAzQIroB,EAAAosI,SAAA2E,wBAAA1oH,KA0QJskH,cAzQOR,EAAAh7C,KA0QPq7C,aAzQIL,EAAWI,iBA2QnBtC,GAzQasQ,eAAKt/I,GAAAwD,KAAA,SAAAC,GA2QK,MAAfA,EAAIlI,QAA8B,GAAZkI,EAAIhJ,OAxQnCy2I,EAAYI,iBAAA,KA0QHx0I,EAAW2I,YAAY,UAAW,uBAAwB,YAC1DswI,KAEJhxI,EAAGsS,WAAY,GAChB,WAxQFtS,EAAAsS,WAAgB,KAErB,WA0QItS,EAAGsS,WAAY,IAMvB,QAAS0+H,KAEL,GAAIhxI,EAAGgjB,UAzQQ,CA0QX,GAAI/nB,IACAyiD,cAzQO19C,EAAAosI,SAAAzuF,iBAAAzB,WA0QP0B,iBAzQe59C,EAAAosI,SAAYvuF,oBAAkBhsB,cA0Q7CisB,WAzQO99C,EAAAosI,SAAavtF,iBAAAC,UA0QpBz2B,KAAMroB,EAAGosI,SAAS2E,wBAAwB1oH,KAE9C0tG,GAzQekb,gBAAYh2I,GAASwD,KAAA,SAAAC,GA2Qb,MAAfA,EAAIlI,SAxQTwJ,EAAA0sI,cAAAhuI,EAAAhJ,KAAAw7I,UACSlxI,EAAA0sI,cAAavxI,OAAW,GACpCd,EAAA8C,OAAuB,UAAA,8BAAsC6C,EAAUosI,SAAK2E,wBAAA/W,qBAAA3iI,WAAA,EAAA+F,KAAA,OAEpE4C,EAAAsS,WAAW,KA6QnB23H,EAzQQmD,mBAAAnyI,GAAAwD,KAAA,SAAAC,GAEW,MAAXA,EAAAlI,SACGwJ,EAAAw6I,8BAAa97I,EAAAhJ,KAAA23I,aA2QZrtI,EAAGsS,WAAY,IAGvB,SAAS3R,GACL5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAEzD,CAEH,GAAIzF,IACA6iD,WAAY99C,EAAGosI,SAASvtF,iBAAiBC,UAxQjDz2B,KAAAroB,EAAAosI,SAAA2E,wBAAA1oH,KA2QI4hH,GAAgBwQ,yBAAyBx/I,GAAKwD,KAAK,SAASC,GACrC,MAAfA,EAAIlI,SAzQxBwJ,EAAA0sI,cAAAhuI,EAAAhJ,KAAAw7I,UACYlxI,EAAA0sI,cAAAvxI,OAAA,GACId,EAAgB8C,OAAA,UAAA,8BAAA6C,EAAAosI,SAAA2E,wBAAA/W,qBAAA3iI,WAAA,EAAA+F,KAAA,OA4QZ4C,EAAGsS,WAAY,KAIvB23H,EAAgBmD,mBAAmBnyI,GAAKwD,KAAK,SAASC,GAzQ7B,MAA9BA,EAAqBlI,SACPwJ,EAAAw6I,8BAAgB97I,EAAAhJ,KAAA23I,aA2QbrtI,EAAGsS,WAAY,IAvQxB,SAAA3R,GA2QK5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAjQpE,QAAAg6I,GAAWvO,GAGR,GAwQCA,EAAU50H,UAAe40H,EAAU,UAAoCx2I,SAAvBw2I,EAAU50H,SAzQ3DvX,EAAA26I,kBAAA,GACAxO,EAAA50H,SAAA,CACA,GAAAtc,IA2QSyiD,cAAe19C,EAAGosI,SAASzuF,iBAAiBzB,WAzQrD0B,iBAAA59C,EAAAosI,SAAoCvuF,oBAAAhsB,cACpCisB,WAAW99C,EAAAosI,SAAAvtF,iBAAAC,UACXz2B,KAAAroB,EAAiBosI,SAAA2E,wBAAA1oH,KACRmkH,aAAAL,EAAAK,aACAG,cAAAR,EAAAh7C,KA4RJ,OA1RL84C,GAAY2Q,YAAA3/I,GAAAwD,KAAA,SAAAC,GACZA,EAAAhJ,KAAoBke,aAAA,EACpB7b,EAAmB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,YAGlB9b,EAAa2I,YAAsB,QAAAhC,EAAAhJ,KAAAme,QAAA,YAEhC7T,EAAOgT,YAAA,EACXhT,EAAW26I,kBAAA,EA2QF3J,IACA7E,EAAUK,aAAe72I,OAzQlCuc,KAEA,SAAavR,GA2QJ5I,EAAW2I,YAAY,iCAEpByrI,GAIf,QAAS0O,GAAe1O,GACpBA,EAAUK,aAAe72I,OAzQzBw2I,EAAA50H,UAAgB,EA2QhBvX,EAAG26I,kBA1QS,EA6QhB,QAAS3mI,KACLhU,EAAGgT,YA1QK,EA2QRhT,EAAG86I,eAAgB,EAGvB,QAASppI,KACL1R,EAAGgT,YAAa,EAzQhBhT,EAAAkU,YA2QAlU,EAAGosI,SA1QSvtF,kBAAgB,EA2Q5B7+C,EAAGosI,SA1QQz2I,OA6Qf,QAASue,KACLlU,EAAG+6I,aAAa3mI,gBAIpB,QAAS4mI,GAAkBC,GAEvB,GAAI7O,KAzQRA,GAAS1uF,cAAgB19C,EAAAosI,SAAAzuF,iBAAAzB,WACrBkwF,EAAGxuF,iBAAc59C,EAAAosI,SAAAvuF,oBAAAhsB,cACjBu6G,EAAAtuF,WAAe99C,EAAAosI,SAAiBvtF,iBAAmBC,UA2QnDstF,EA1QQ/jH,KAAIroB,EAAAosI,SAAgB2E,wBAAA1oH,IACjBroB,GAAA0sI,aA2QXN,GA1QQ6O,YAAeA,CA4QvB,IAAItoI,GA1QItY,EAAWsY,QAAA,UA2Qf,4CAzQDtb,WAAc,EACb+F,KAAA,MA4QJuV,GAAQjT,OAAOjB,KAAK,WAChBwrI,EAAgB+Q,kBAAkB5O,GAAU3tI,KAAK,SAASC,GAzQzD,MAAAA,EAAAlI,QACEuB,EAAW2I,YAAA,UAAA,uBAAA,eACXswI,IACA9+H,KAEAna,EAAS2I,YAAA,QAAsB,4BACtBrJ,WAAA,EACT+F,KAAe,QA6Qf,SA1QKuD,GA2QJ5I,EA1QI2I,YAAA,QAAuB,oEACvBrJ,WAAW,EA2QX+F,KAAM,UAGf,cAKP,QAAS89I,GA1Qe9O,GA2QpBpsI,EAAGsS,WAAY,CAWf,IAAIrI,GA1QOjK,EAAA0sI,cA2QPp4E,GAAQ,CACZ,KAAK,GA1QEp5D,KAAA+O,GACetU,QAAfsU,EAAA/O,GAAAqxI,kBAAe,MAAAtiI,EAAA/O,GAAAqxI,mBAClBj4E,GAAA,EA8QJ,IAAIA,EAAO,CACP83E,EAAS1uF,cAAgB19C,EAAGosI,SAASzuF,iBAAiBzB,WACtDkwF,EAASxuF,iBAAmB59C,EAAGosI,SAASvuF,oBAAoBhsB,cAC5Du6G,EAAStuF,WAAa99C,EAAGosI,SAASvtF,iBAAiBC,UACnDstF,EAAS/jH,KAAOroB,EAAGosI,SAAS2E,wBAAwB1oH,IAvQrD,IAAAi/G,GAAAtnI,EAAA0sI,aAEAN,GAAA6O,cACA,KAAA,GAAS//I,GAAA,EAAAA,EAAAosI,EAAAnsI,OAAAD,IACIvF,QAAZ2xI,EAAYpsI,GAAAqxI,iBACZH,EAAA6O,YAAuB3T,EAAApsI,GAAAi2F,MAAAm2C,EAAyBpsI,GAAAqxI,iBAExCH,EAAG6O,YAAkB3T,EAAIpsI,GAAAi2F,MAAA,EA6QjC84C,GAAgBkR,eAAe/O,GAAU3tI,KAAK,SAASC,GAzQ/CA,EAAGhJ,KAAAke,aAAY,GACf5T,EAAAsS,WAAI,EA2QJva,EA1QI2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,yBA2QJm9H,MAxQLj5I,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,yBACA7T,EAAAsS,WAAS,GAETtS,EAAAgT,YAAS,EACTd,MA6QHoiD,GAAQ,MAvQTj6D,GAAS8C,OAAA,UAAA,4BAAmB9F,WAAA,EAAA+F,KAAA,OAC5Bk3D,GAAA,EACAt0D,EAAAsS,WAAS,EA+QhB,QAASoF,KAELw5H,UAAU3E,iBAAmB,KAKjC,QAAS6O,KACLp7I,EAAGosI,SA1QI3vF,oBAAA,KA2QPz8C,EAAG8V,eACH9V,EAAGosI,SA1QIvtF,iBAAe,KA2QtB7+C,EAAGu8C,gBACHv8C,EAAGosI,SAAS2E,wBAA0B,KACtC/wI,EAAGosI,SAAS5vF,YAAc,KAC1Bx8C,EAAGosI,SAAS3vF,oBAAsB,KAzQtCz8C,EAAA8V,eACI9V,EAAAosI,SAAAzuF,iBAAA,KACA39C,EAAA47C,gBA2QA57C,EAAGosI,SA1QCvuF,oBAAW,KA2Qf79C,EAAGo8C,mBACHp8C,EAAG0sI,iBAxcP,GAAI1sI,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAzQStU,EAAAqU,gBAAe,GA2Q3BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAzQoB,SAAYC,GA0Q3BzU,EAAGuU,YAzQYE,GA4QvBzU,EAAGgT,YAzQY,EA0QfhT,EAAGq7I,MAAO,EACVr7I,EAAGgjB,WAAY,EACfhjB,EAAGsS,WAAY,EACftS,EAAGs7I,YAzQY,EA0Qft7I,EAAGqsI,gBACHrsI,EAAG26I,kBAAmB,EACtB5iJ,EAzQO2c,SAAU,EA2QjB1U,EAAGy+C,+BAAiCA,EACpCz+C,EAAGq8C,+BAAiCA,EACpCr8C,EAAG27C,uBAzQqBA,EA2QxB37C,EAAGgxI,kCAzQkCA,EA0QrChxI,EAAG06I,SAzQSA,EA0QZ16I,EAAG66I,eAAiBA,EACpB76I,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAG0X,MAzQCA,EA0QJ1X,EAAGkU,UAzQSA,EA0QZlU,EAAGg7I,kBAzQYA,EA0Qfh7I,EAAGk7I,iBAzQYA,EA0Qfl7I,EAAGu6I,eAAiBA,EACpB9vI,EAAO8wI,SAAW,GAAIt9I,SACtB,IAAIiC,GAAa/F,EAAsBgG,sBACvCsK,GAAO+wI,WAAa,GACpB/wI,EAAO/U,QAxQPsK,EAAAy7I,UAAS,EA4QTz7I,EAAG43C,cAzQeA,EA2QlB53C,EAAGE,WAzQY/F,EAAAgG,uBA2Qf+R,IAEAlS,EAAG+5H,sBAzQwBC,oBAAK,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,MAuqBhCroB,EAAGs0D,MA1QK,WA2QJ8mF,IACIp7I,EAAGgjB,UACH40B,IAEA1lC,KAKRlS,EAAG07I,cA1Qa,WA2QR17I,EAAGy7I,UA1QK,EA2QR1jJ,EA1QQua,WAAW,CA2QnB,IAAIqpI,IAvQD78F,UAAW9+C,EAAAosI,SAAAvtF,iBAAAC,UACVz2B,KAAGroB,EAAAosI,SAAY2E,wBAAA1oH,KA2QfjoB,SAAUF,EAAWG,OAxQzB4pI,GAAe2R,YAAAD,GAAAl9I,KAAA,SAAAC,GA2QX,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBuB,EAAWua,WAAY,EACvBtS,EAAGwzG,gBAAkB90G,EAAIhJ,IACzB,IAAIugB,GAAInf,SAASijB,cAAc,IAC/BjjB,UAASC,KAAKijB,YAAY/D,GAzQjCA,EAAAgE,MAAA,eA2QO,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OAzQnBqI,KAAA,yBAEVtJ,EAAAC,OAAkBwlB,IAAAC,gBAASvc,EAC3BqY,GAAAu5F,KAAA/6G,EACAwhB,EAAAw9F,SAAe,sBACfx9F,EAAMwqB,QA2QF/rC,OAAOwlB,IAAIw5F,gBAAgBj/G,OAxQ/B4F,GAAA8C,OAAA,UAAA,aACQ9F,WAAW,EACZ+F,KAAA,QA6QR,SAASuD,GAzQW,MAAfA,EAAGnK,OA2QH6D,EAAQ8C,OAAO,UAAW,sCACtB9F,WAAW,EACX+F,KAAM,OAxQV,MAAAuD,EAAAnK,OACA6D,EAAQ8C,OAAA,UAAgB,4BACpB9F,WAAG,EA2QH+F,KAAM,OAGVrF,EAAW2I,YAAY,QAAS,mBAAoB,2BAMpEV,EAAG67I,YA1QS,WA2QR77I,EAAGy7I,UA1QK,GA8QZhxI,EAAOqxI,aA1Qa,SAAWj9I,GA4Q3B,GAAIk9I,KACJ3nJ,SAAQyO,QA1QQhE,EAAA,SAAewM,EAAA0b,GA2Q3B,GAAIi1H,IACAnnH,SA1QOxpB,EAAA5O,KA2QPw/I,WAAY5wI,EAAMjO,MAElB8+I,GAAU,MAAO,QAzQrBC,EAAgB9wI,EAAA,KAAArQ,MAAmB,KAAK,GA4QpC0E,KA1QWw8I,EAAA94I,QAAA+4I,GAAA,EA2QXz8I,KACA+K,EAAO8wI,SAASr9I,OAAO6oB,EAAK1b,GAC5BZ,EAAO/U,KAAKmC,KAAKmkJ,MAGzBD,GACIj9F,UAAW9+C,EAAGosI,SAASvtF,iBAAiBC,UACxCz2B,KAAMroB,EAAGosI,SAAS2E,wBAAwB1oH,KAC1CvU,UAAW5T,EAAWG,QAE1BoK,EAAO8wI,SAASr9I,OAAO,gBAAiBvB,KAAKqkB,UAAU+6H,IACvDtxI,EAAO8wI,SAASr9I,OAAO,QAASvB,KAAKqkB,UAAUvW,EAAO/U,OAxQ1D+U,EAAS+wI,WAAoB,GAAX/wI,EAAW/U,KAAAyF,OAAA,GAAAsP,EAAA/U,KAAAyF,OAAA,kBACzBsP,EAAAe,SACAxL,EAAGtK,QACHsK,EAAAtK,KAAK+U,EAAU/U,MA6QnB+U,EAAO2xI,qBA1QuB,WA2QtB3xI,EA1QI4xI,WAAe,EA2QnBtkJ,EA1QUua,WAAY,CA2QtB,IA1QI5c,GAAA+U,EAAc8wI,QA2QlBtR,GA1QIqS,YAAe5mJ,GAAU+I,KAAA,SAAA0jE,GAUzB,GAiQA13D,EAAO4xI,WAAY,EAzQvBtkJ,EAAAua,WAAgB,EACZ7H,EAAI8wI,YA2QJ9wI,EA1QI/U,QA2QJsK,EAAGtK,QACH+U,EA1QO+wI,WAAA,KA2QP/wI,EA1QI5L,KAAA,KA2QJ4L,EAAOe,OAxQe,KAAnB22D,EAAAzsE,KAAAgJ,IACH3G,EAAA2I,YAAA,UAAAyhE,EAAAzsE,KAAAc,OAAA,mBACAwD,EAAUg/I,aACV,IAAA,KAAA72E,EAAAzsE,KAAAgJ,IAAA,CA2QIsB,EAAGu8I,oBAAsB5/I,KAAKC,MAAMulE,EAASzsE,KAAK8mJ,oBAzQvDzkJ,EAAc2I,YAAA,OAAAyhE,EAAAzsE,KAAAc,OAAA,kBA4QT,KAAK,GAAI0E,GAAI,EAAGA,EAAI8E,EAAGu8I,oBAAoBphJ,OAAQD,IAAK,CAxQnE,GAAAuhJ,GAAAz8I,EAAAu8I,oBAAArhJ,GA2QmB+hC,EAAM,EAxQrB,KAAe,GAAAlW,KAAW01H,GACrBA,EAAe1nC,eAAAhuF,KACJkW,IAAAlW,EAAA,MAAA01H,EAAA11H,GAAA,OAAA5jB,YA4QD85B,EAAMA,EAAIn+B,MAAM,GAAG,GACnBkB,EAAGu8I,oBAAoBrhJ,GAAG,eAAoB+hC,OAKtDllC,GAAW2I,YAAY,QAASyhE,EAASzsE,KAAKc,OAAQ,mBAzQ7DwD,EAASg/I,UAEX,SAAAn3I,GACA9J,EAASua,WAAmB,EAC5B7H,EAAW4xI,WAAA,EA2QN5+G,MAAM,kCAAoC9gC,KAAKqkB,UAAUnf,IACzD7H,EAAOg/I,8PA7lBvB5kJ,QACKC,OAAO,oCACPe,WAAW,eAzQWglJ,MA02B/B,WACI,YAOA,SA1QQsC,GAAS3kJ,EAAcyC,EAAAH,EAAAN,EAAAihD,EAAAL,EAAAxgD,EAAA0gD,EA2Q3BC,EAAwB/oC,GAwCxB,QAASG,KAzQLH,EAAc8D,iBAAA9b,EAAAhC,GAAA0G,KAAA,SAAAC,GACF,MAARA,EAAQlI,QACPwJ,EAAI8V,YAAWpX,EAAAhJ;AACZsK,EAAAsS,WAAQ,GA4QRva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GAzQT5I,EAAO2I,YAAA,QAAA,mBAAA,aA6QXm6C,EA1Q0BI,aAAYlhD,EAAAhC,GAAiB0G,KAAA,SAAAC,GAChC,MAAnBA,EAAAlI,QA2QIwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SA1QUC,GA2QT5I,EA1QQ2I,YAAQ,QAAA,mBAA+B,2BA6QnDs6C,EA1QY2hG,iBAAqBl+I,KAAK,SAAGC,GA2QlB,MAAfA,EAAIlI,SACJwJ,EAAGu8C,aAAe79C,EAAIhJ,KAzQ1BsK,EAAAsS,WAAgB,IA6QhB,SA1QQ3R,GA2QJ5I,EA1QI2I,YAAA,QAAA,mBAAA,oBA6QZi6C,EA1Qes1F,sBAAYxxI,KAAA,SAAAC,GA2QJ,MAAfA,EAAIlI,SAzQJwJ,EAAGkwI,gBAAaxxI,EAAAhJ,KAChBsK,EAAAsS,WAAA,KA8QRqoC,EAAoBo1F,0BAA0BtxI,KAAK,SAAUC,GAzQtD,MAAAA,EAAAlI,SACHwJ,EAAAgwI,oBAA0BtxI,EAAAhJ,KAC1BsK,EAAAsS,WAAQ,KAMhB,QAASgnI,KA2QL,GAAIr+I,IAzQJob,UAAUrW,EAAAowI,sBAAmB/5H,UA2QzB2mC,MAAOh9C,EAAGmwI,kBAAkBz0F,uBAE5Bq0C,GACAq3C,OAAQzqI,KAAKqkB,UAAU/lB,GAxQ3B6/C,GAAYy+F,kBAAsBxpD,GAAAtxF,KAAA,SAAAC,GACjB,MAAdA,EAAAlI,SACAwJ,EAAAw5I,qBAA4B96I,EAAAhJ,KAC5BsK,EAAAsS,WAAe,KA+QtB,QA1QOsqI,KACH,GAAG3hJ,IACAob,UAASrW,EAAAowI,sBAAsB/5H,UAC/B2mC,MAAAh9C,EAAAmwI,kBAAkBz0F,sBAClBQ,WAAAl8C,EAAgB25I,uBAAAz9F,YA4Qf6zC,GACAq3C,OAAQzqI,KAAKqkB,UAAU/lB,GAxQ3B+/C,GAAA6hG,qBAAA9sD,GAAAtxF,KAAA,SAAAC,GACO,MAAAA,EAAAlI,SACHwJ,EAAA88I,wBAAAp+I,EAAAhJ,KA2QIsK,EAAGsS,WAAY,KAgB3B,QA1QQ+pC,GAA4BxqB,GA2QhC7xB,EAAG+8I,oBACClrH,GACAmpB,EA1QWsB,2BAAsBzqB,GAAApzB,KAAA,SAAAC,GACjB,MAARA,EAAIlI,SACJwJ,EAAA+8I,iBAAcr+I,EAAYhJ,KAC1BsK,EAAEsS,WAAQ,KAiR1B,QAASqpC,GA1QSD,EAAArlC,EAAA9X,GA+Qd,GAJAyB,EAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGjC,KAAK4/C,iBA1QmB,KA2Q3B39C,EAAGjC,KAAK8/C,oBA1QmB,KA2QvBnC,GA1QkBrlC,EAAA,CA2QlB,GAAIpb,IACAygD,sBAAuBA,EAzQxBrlC,UAASA,EA4QZskC,GA1QgBgB,uBAAkB1gD,GAAAwD,KAAA,SAAAC,GACX,MA0QfA,EA1QIlI,SA2QJwJ,EAAG47C,aA1QOl9C,EAAAhJ,KA2QNsK,EAAG47C,aAAazgD,OAAS,GAzQ1Bd,EAAQ8C,OAAA,UAAgB,kCAAA6C,EAAAjC,KAAA0+C,oBAAA/lC,aAAArf,WAAA,EAAA+F,KAAA,OA4Q3B4C,EAAGsS,WA1QY,EACX/T,GA2QAA,WAKZyB,GAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGjC,KAAK4/C,iBAAmB,KAzQhC39C,EAAAjC,KAAA8/C,oBAAyB,KA8Q5B,QAASY,GAA+BvC,EAAY39C,GAzQ7C29C,GACHl8C,EAAAjC,KAAA8/C,oBAAA,KACI/C,EAAgBqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACE,MAAdA,EAAQlI,SACRwJ,EAAAo8C,gBAAc19C,EAAAhJ,KACdsK,EAAUo8C,gBAAMjhD,OAAA,GAChBd,EAAY8C,OAAM,UAAA,gCAAA6C,EAAAjC,KAAA4/C,iBAAA9B,cAAAxkD,WAAA,EAAA+F,KAAA,OAElB4C,EAAAsS,WAAiB,EACjB/T,GA2QQA,SAIZyB,EAAGo8C,mBACHp8C,EAAGjC,KAAK8/C,oBAAsB,MAKtC,QA1QQ7pC,KA2QJhU,EAAGgT,YAAa,EAzQhBhT,EAAA66B,MAAO,EACP76B,EAAA47C,aAAgB,KA2QhB57C,EAAGo8C,gBAAkB,KAzQrBp8C,EAAAmwI,kBAAoB,KACpBnwI,EAAAkwI,mBACAlwI,EAAGowI,sBAAO,KACVpwI,EAAGgwI,uBA2QHhwI,EAAG25I,uBAAyB,KAC5B35I,EAAGw5I,wBAzQPx5I,EAAOg9I,0BAAuB,KA2Q1Bh9I,EAAG88I,2BACH98I,EAAGwX,aA1QY,EA2QfxX,EAAGyX,WA1QK,EA8QZ,QAASC,KACL1X,EAAGgT,YA1QY,EA2QfhT,EAAG+S,WA1QQ,EA2QXmB,IACAlU,EAAGjC,QAEHmU,IAEJ,QAASR,KACL,GAAIiB,GA1QQtY,EAAOsY,QAAA,eA2Qf,yFACItb,WA1QO,EA2QP+F,KA1QI,MA6QZuV,GAAQjT,OAAOjB,KA1QC,WA2QZuB,EAAGgT,YA1Qa,EA2QhBhT,EAAG+S,WA1QS,EA2QZmB,IACAlU,EAAGjC,QAEHmU,MAMR,QAASgC,KACLlU,EAAG+8H,aA1QY3oH,gBA+QnB,QAAS6oI,GA1QGl/I,GA2QRiC,EAAGwX,aA1QY,EA2QfxX,EAAGyX,WA1QK,EA2QRzX,EAAG66B,MA1QK,EA2QR76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGjC,KAAO3J,QAAQ8e,KAAKnV,EAEvB,KAAK,GAAI8Z,KAAK7X,GAAGk7C,QAzQhBl7C,EAAAk7C,QAAArjC,GAAA6jC,wBAAA39C,EAAA0lD,SAAA/H,wBACT17C,EAAAjC,KAAAy+C,YAAAx8C,EAAAk7C,QAAArjC,GAGK,KAAO,GAAAA,KAAA7X,GAAA8V,YACI9V,EAAA8V,YAAA+B,GAAgBxB,YAAAtY,EAAA0lD,SAAAptC,YA4QhBrW,EAAGjC,KAAK0+C,oBAAsBz8C,EAAG8V,YAAY+B,GAvQrD8jC,GAAK59C,EAAA0lD,SAAA/H,sBAAA39C,EAAA0lD,SAAAptC,UAAA,WA6QD,IAAK,GAAIwB,KAAK7X,GAAG47C,aACT57C,EAAG47C,aAAa/jC,GAAGqkC,aAAen+C,EAAKm+C,aACvCl8C,EAAGjC,KAAK4/C,iBAAmB39C,EAAG47C,aAAa/jC,GAvQxD4mC,GAAc1gD,EAAAm+C,WAAA,WACd,IAAA,GAAArkC,KAAuB7X,GAAAo8C,gBACnBp8C,EAAco8C,gBAAAvkC,GAAAga,gBAAA9zB,EAAA8zB,gBA4QD7xB,EAAGjC,KAAK8/C,oBAAsB79C,EAAGo8C,gBAAgBvkC,QAnQrE,QAAGqlI,GAAAn/I,GACA,GAAA4U,GAAAtY,EAAAsY,QAAyB,UACzB,4CAAStb,WAAA,EAAA+F,KAAA,MAETuV,GAAAjT,OAAYjB,KAAA,WACZu8C,EAAekiG,eAAAn/I,EAAA+gD,WAAArgD,KAAA,SAAAC,GACE,MAAjBA,EAAiBlI,QACjBuB,EAAuB2I,YAAA,UAAA,+BAAA,YACvB27C,EAAer8C,EAAAg9I,0BAAAnrH,gBA6QF95B,EAAW2I,YAAY,QAAS,yBAA2BrJ,WAAW,EAAM+F,KAAM,QAzQ/F,SAAAuD,GA4QS5I,EAAW2I,YAAY,QAAS,kEAAoErJ,WAAW,EAAM+F,KAAM,UAzQpI,cAiRH,QA3QI+/I,GAAep/I,GA4Qf,GA3QIgD,GAAI,yBAAoBhD,EAAA,SAAA,WAAA,UAAA,gBA4QxB4a,GA3QO5a,EAAA,SAAkB,WAAA,UAAA,qBA4QzB4U,EA3QOtY,EAAAsY,QAAY,UA4QnB5R,GA3QO1J,WAAA,EAAA+F,KAAA,MA6QXuV,GAAQjT,OAAOjB,KAAK,WA1QjBu8C,EAAemiG,qBAAAp/I,EAAA+gD,WAAArgD,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,QA4QHuB,EAAW2I,YAAY,UAAWiY,EAAM,QACxCzG,KAzQAna,EAAW2I,YAAK,QAAA,4BAAArJ,WAAA,EAAA+F,KAAA,QA6QrB,SA3QIuD,GA4QH5I,EA3QG2I,YAAA,QAAA,oEAAArJ,WAAA,EAAA+F,KAAA,UA6QR,cAGP,QAASggJ,GAAar/I,GAClB,GAAImC,GAAa/F,EAAsBgG,sBA1QvCpC,GAAAm+C,WAAgBl8C,EAAAjC,KAAA4/C,iBAAsBzB,WA4QtCn+C,EA3QI8zB,cAAQ7xB,EAAWjC,KAAK8/C,oBAAAhsB,cA6QvB7xB,EA3QG+S,WA6RJhV,EAAK4V,WAAazT,EAAWG,OAC7B26C,EAAgBqiG,aAAat/I,GAAMU,KAAK,SAAUC,GAC1CA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eACpDwoC,EAA+Br8C,EAAGg9I,0BAA0BnrH,eA1QnE7xB,EAAAgT,YAAiB,EACZhT,EAAA+S,WAAA,EACN2E,MA6QQ3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eA1QnD7T,EAAAgT,YAAA,IA6QJ,SAAUrS,GA1QjBtG,EAAAwH,MAAA,QAAuB,+BAAuCxK,WAAK,EAAA+F,KAAA,SA6Q/D4C,EAAGuL,QA3QI,IA2OPxN,EAAK+V,UAAY5T,EAAWG,OAC5B26C,EAAgBsiG,YAAYv/I,GAAMU,KAAK,SAAUC,GA1QjDA,EAAUhJ,KAAKke,aAAA,GACX7b,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAoB,eA4QhD3B,IACAlS,EAAGgT,YAAa,EA1Q5B0E,MAEW3f,EAAA2I,YAAsB,QAAAhC,EAAAhJ,KAAAme,QAAA,eACtB7T,EAAAgT,YAAY,IA6QhB,SAAUrS,GACTtG,EAAQwH,MAAM,QAAS,kCAzVnC,GA1QI7B,GAAIC,IA+QRD,GAAGqU,kBA1QqBhJ,MAAA,IAAWA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2QnCrL,EAAGsU,SA1QKtU,EAAAqU,gBAAgB,GA4QxBrU,EAAGuU,YA1Qa,EA2QhBvU,EAAGwU,qBA1Qa,SAAAC,GA2QZzU,EAAGuU,YA1QSE,GA6QhBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGu8C,gBACHxkD,EA1QW2c,SAAS,EA4QpB1U,EAAGy+C,+BA1QwBA,EA2Q3Bz+C,EAAG27C,uBA1QmBA,EA2QtB37C,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UA1QIA,EA2QPlU,EAAGi9I,aAAeA,EAClBj9I,EAAGk9I,eAAiBA,EACpBl9I,EAAGm9I,qBAAuBA,EAC1Bn9I,EAAGo9I,aAAeA,EAzQlBp9I,EAAAs5I,eAASA,EA4QTt5I,EAAG48I,kBA1QCA,EA2QJ58I,EAAGq8C,+BAAiCA,EAEpCr8C,EAAGwX,aAAY,EACfxX,EAAGyX,WAAU,EAEbvF,+LA3CJ9d,QACKC,OA1QG,oCA2QHe,WA1QG,eAAsBsnJ,MAioBlC,WACI,YAOA,SAASa,GA3QgBxjJ,EAAUQ,EAAAP,EAAAjC,EAAAyC,EAAAH,EAAAgnB,EAAA6rB,EAAA9S,EAAAsR,EAAA15B,EAAA7X,EAAAyX,GAoU/B,QA3QQM,GAAG3T,GA4QPyT,EA3QO4M,gBAAkBngB,KAAA,SAAAC,GACb,MAALA,EAAKlI,SACLwJ,EAAAqS,YAAK3T,EAAAhJ,KA4QJsK,EAAGsS,WAAY,EACX/T,GACAA,MAzQZ,SAAIoC,GACA5I,EAAQ2I,YAAA,QAAsB,mBAAA,oBA+QtC,QAAS88I,KACLx9I,EAAG4hB,SAAS67H,uBA3QmB,KA4Q/BC,IACA1rI,EA3Qe4M,gBAAYngB,KAAA,SAAAC,GACX,MA2QRA,EA3QIlI,SA4QJwJ,EAAG29I,kBA3QKj/I,EAAAhJ,KA4QRsK,EAAGsS,WAAY,EACX/T,UA1QLA,aA6QJ,SA3QSoC,GA4QR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAvQ5D,QAASg9I,KACL19I,EAAG4hB,SAAAg8H,sBAAa,KAChB59I,EAAG29I,qBACH39I,EAAG4hB,SAAAmqB,mBAAe,KAClB/rC,EAAGs6B,kBACHt6B,EAAG4hB,SAAAosB,oBAAoB,KACvBhuC,EAAG4rC,mBACH5rC,EAAG4hB,SAAA8zB,iBAAwB,KAC3B11C,EAAG4tC,gBA8QP,QA3QOiwG,KACH79I,EAAG4hB,SAAAk8H,uBAA0B,KAC7Bh1F,GACA,IAAG32C,GAAUnS,EAAA4hB,SAAA,sBAAA5hB,EAAA4hB,SAAAg8H,sBAAAzrI,UAAAnS,EAAA4hB,SAAA,uBAAA5hB,EAAA4hB,SAAA67H,uBAAA/iH,QAAAvoB,UAAA,EA4QbH,GAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SACJwJ,EAAG+9I,kBAAoBr/I,EAAIhJ,KA1Q9BsK,EAAAsS,WAAQ,EACV/T,UACAA,aAEA,SAAOoC,GA4QN5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QA3QQooD,KA4QJ9oD,EAAG4hB,SA3QCo8H,sBAAA,KA4QJh+I,EAAG+9I,qBACH/9I,EAAGi+I,YA3QWlyG,mBAAA,KA4Qd/rC,EAAGk+I,qBACHl+I,EAAGi+I,YAAYjwG,oBAAoB,KA1QnChuC,EAAAm+I,sBA4QAn+I,EAAGi+I,YA3QIvoG,iBAAa,KA4QpB11C,EAAGo+I,mBAGP,QAAS38H,GAAoBtP,EAAW5T,GACpC,GA3QI4T,EAAA,CA4QAnS,EAAG4hB,SAASC,gBAAkB,KAC9B7hB,EAAG2hB,eACH3hB,EAAG4hB,SAASmqB,mBAAqB,KACjC/rC,EAAGs6B,kBACHt6B,EAAG4hB,SAASosB,oBAAsB,KA1Q1ChuC,EAAS4rC,mBACF5rC,EAAA4hB,SAAa8zB,iBAAA,KA4QZ11C,EAAG4tC,eACH,IAAI3yC,IACAkX,UAAWA,EACX9R,OAAQH,EAAWG,OA1QtBk6D,QAAA,EAEFv6D,GAAA+S,YACA9X,EAAOs/D,QAAA,GAEP3oD,EAAaopE,kBAAA//E,GAAAwD,KAAA,SAAAC,GACO,MAAbA,EAAAlI,QA4QEwJ,EAAG2hB,YAAcjjB,EAAIhJ,MA1QhBsK,EAAA2hB,YAASxmB,OAAA,GACfd,EAAW8C,OAAA,UAAA,oDACN9F,WAAc,EA4QV+F,KAAM,OAxQZmB,GACHA,IACAyB,EAAAsS,WAAK,GA6QJjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAzQ7D,SAAAlB,GA4QQtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAQvD,QAASw8I,KACLnxG,EA3QgBqiC,uBAAsBvvE,EAAA4hB,SAAAzO,gBAAuBhB,WAAe1T,KAAA,SAAAC,GACzD,MA2QXA,EAAIlI,SACJpC,QAAQyO,QAAQ7C,EAAGs+I,YAAa,SAAU/pH,EAAQC,GAC9CpgC,QAAQyO,QAAQnE,EAAIhJ,KAAM,SAAUy1D,EAAQC,GACpC72B,EAAOgqH,UAAYpzF,EAAOhM,WAC1BzgD,EAAIhJ,KAAK4/B,OAAO81B,EAAM,OAvQrCprD,EAAAw+I,gBAAqB9/I,EAAAhJ,QA8Q1BulF,IAGJ,QAASwjE,KACL,GAAItsI,GA3QQnS,EAAA4hB,SAAW,sBAAuB5hB,EAAA4hB,SAAAg8H,sBAAgCzrI,UAAAnS,EAAA4hB,SAAA,uBAAA5hB,EAAA4hB,SAAA67H,uBAAAtrI,UAAA,EA4Q9E+6B,GA3QYoiC,2BAA+Bn9D,GAAG1T,KAAA,SAAAC,GA4Q1C,GA3QW,MA2QPA,EAAIlI,OA3QG,CA4QP,GA3QIwJ,EAAA4hB,SAAW67H,uBA4QX,IAAK,GAAItzI,KAAKzL,GAAIhJ,KA1QbsK,EAAK4hB,SAAA67H,uBAAAjmH,YAAA94B,EAAAhJ,KAAAyU,GAAAqtB,YACH94B,EAAAhJ,KAAA4/B,OAAYnrB,EAAA,OAEhB,IAAAnK,EAAAs+I,YAAAnjJ,OAAA,EA4QH/G,QAAQyO,QAAQ7C,EAAGs+I,YAAa,SAAU/pH,EAAQC,GAC9CpgC,QAAQyO,QAAQnE,EAAIhJ,KAAM,SAAUy1D,EAAQC,GACpC72B,EAAOgqH,UAAYpzF,EAAOhM,WAC1BzgD,EAAIhJ,KAAK4/B,OAAO81B,EAAM,WArQnC,KAAA,GAAAjhD,KAAWzL,GAAMhJ,KA4QRsK,EAAG4hB,SAAS8zB,iBAAiBle,YAAc94B,EAAIhJ,KAAKyU,GAAGqtB,YA1QvD94B,EAAAhJ,KAAA4/B,OAAYnrB,EAAA,EAgRxBnK,GAAG0+I,sBA3QIhgJ,EAAAhJ,QAgRnB,QAASm2C,GAA6B15B,EAAW5T,GAC7CyB,EA3QG4hB,SAAAmqB,mBAAY,KA4Qf/rC,EAAGs6B,kBACHt6B,EAAG4hB,SAASosB,oBAAsB,KA1QtChuC,EAAA4rC,mBACI5rC,EAAA4hB,SAAI8zB,iBAAa,KACjB11C,EAAA4tC,gBACA5tC,EAAA4hB,SAAK+8H,aAAmB,KA4QxB3+I,EAAGy/D,YA1QHrlC,EAAmB4R,yBAAA75B,GAAA1T,KAAA,SAAAC,GACE,MAAjBA,EAAKlI,SACLwJ,EAAAs6B,eAAgB57B,EAAYhJ,KACpBsK,EAAAs6B,eAASn/B,OAAc,EACvBd,EAAA8C,OAAW,UAAY,2BACvB9F,WAAA,EACG+F,KAAA,OAGHmB,GACGA,IA+QPyB,EAAGsS,WAAY,IAGpB,SA3QI3R,GACH5I,EAAK2I,YAAa,QAAW,mBAAA,oBAiRrC,QAASk+I,GA3QsBzsI,EAAA5T,GA4Q3ByB,EAAGi+I,YA3QSlyG,mBAAA,KA4QZ/rC,EAAGk+I,qBACHl+I,EAAGi+I,YA3QSjwG,oBAAuB,KA4QnChuC,EAAGm+I,sBACHn+I,EAAGi+I,YAAYvoG,iBAAmB,KAClC11C,EAAGo+I,mBACHhkH,EA3QgB4R,yBAAe75B,GAAA1T,KAAA,SAAiCC,GA4QzC,MAAfA,EAAIlI,SA1QLwJ,EAAAk+I,kBAASx/I,EAAAhJ,KA4QJsK,EAAGs6B,eAAen/B,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,+BAAiC6C,EAAG4hB,SAASo8H,sBAAsB/xG,aACzF50C,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,EA1Q/B/T,GACYA,OAKR,QAAS6vC,GAAAlT,EAAA38B,GA6QLyB,EAAG4hB,SAASosB,oBAAsB,KA3QnChuC,EAAA4rC,mBACC5rC,EAAA4hB,SAAS8zB,iBAAA,KACV11C,EAAA4tC,gBACC5tC,EAAA4hB,SAAS+8H,aAAA,KACV3+I,EAAAy/D,YACC/zB,EAAS2C,gBAAAnT,GAAAz8B,KAAA,SAAAC,GACV,MAAAA,EAAAlI,SACCwJ,EAAS4rC,gBAAAltC,EAAAhJ,KACVsK,EAAAsS,WAAA,EACU/T,GA6QGA,OAKhB,QAASksD,GAAiB/d,EAAenuC,GA3QtCmuC,IA6QK1sC,EAAG4hB,SAAS8zB,iBAAmB,KA3QpC11C,EAAA4tC,gBACA5tC,EAAA4hB,SAAa+8H,aAAA,KACb3+I,EAAAy/D,YACCvyB,EAAYwd,iBAAsBhe,GAAAjuC,KAAuB,SAAAC,GAC5C,MAAbA,EAAalI,QACdpC,QAAAyO,QAAsB7C,EAAAs+I,YAAA,SAAA/pH,EAAAC,GACtBpgC,QAAAyO,QAA+BnE,EAAAhJ,KAAA,SAAAy1D,EAAAC,GAC/B72B,EAA+BgqH,UAAApzF,EAAAhM,WACZzgD,EAAAhJ,KAAA4/B,OAAA81B,EAAA,OAInBprD,EAAA4tC,aAAmBlvC,EAAAhJ,KACnBsK,EAAAsS,WAAmB,EACnB/T,GACUA,KAEVxG,EAAc2I,YAAA,QAAA,yBAAA,aAEd,SAAiBC,GACjB5I,EAAA2I,YAAuB,QAAA,mBAAA,eAmR1B,QA5QQm+I,GAAiB3jH,EAAA38B,GA6QrByB,EAAGi+I,YA5QCjwG,oBAAA,KA6QJhuC,EAAGm+I,sBACHn+I,EAAGi+I,YA5QEvoG,iBAAA,KA6QL11C,EAAGo+I,mBACH1yG,EAAmB2C,gBAAgBnT,GAAcz8B,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,SA3QhBwJ,EAAAm+I,mBAAAz/I,EAAAhJ,KA6QYsK,EAAGsS,WAAY,EA3Qb/T,GACVA,OAiRJ,QAASugJ,GA5QOpyG,EAAAnuC,GA6QRmuC,IA3QD1sC,EAAAi+I,YAAevoG,iBAAA,KACd11C,EAAAo+I,mBA6QAlxG,EAAgBwd,iBAAiBhe,GAAejuC,KAAK,SAAUC,GAC3D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpB,GAAIwJ,EAAG4hB,SAAS8zB,iBA3QvBthD,QAAmByO,QAAA7C,EAAA4tC,aAAA,SAAArZ,EAAAC,GACZpgC,QAAAyO,QAAAnE,EAAyBhJ,KAAA,SAAAy1D,EAAAC,GACrC72B,EAAA4qB,YAAAgM,EAAAhM,WACezgD,EAAgBhJ,KAAK4/B,OAAA81B,EAAU,WAKlC,KAAA,GAAAjhD,KAAAzL,GAAAhJ,KA6QYsK,EAAG4hB,SAAS67H,uBAAuBjmH,YAAc94B,EAAIhJ,KAAKyU,GAAGqtB,YA3QnE94B,EAAAhJ,KAAA4/B,OAAAnrB,EAAA,EAgRNnK,GAAGo+I,gBAAkB1/I,EAAIhJ,KA3QhCsK,EAAAsS,WAAa,EACN/T,GACTA,QAEAxG,GAAe2I,YAAA,QAAA,yBAAA,aAEf,SAAAC,GACA5I,EAAS2I,YAAiB,QAAA,mBAAA,eAkRjC,QA5QIu6E,GAAA18E,GACAyB,EAAI4hB,SAAA67H,yBACJz9I,EAAA++I,YAAe,GA8QfntI,EA5QWqpE,UAAoBx8E,KAAI,SAAAC,GACZ,MAAfA,EAAGlI,SACHwJ,EAAAy/D,SAAI/gE,EAAAhJ,KA6QJsK,EAAGsS,WA5QC,EA6QA/T,GA3QTA,OAKP,QAASygJ,KACL,GAAG/jJ,IACAgkJ,MAAkBtpJ,QAAlBqK,EAAA4hB,SAAkB67H,uBAAAz9I,EAAA4hB,SAAA67H,uBAAAjmH,WACc7hC,QAAhCqK,EAAY4hB,SAAA8zB,iBAAoB11C,EAAA4hB,SAAA8zB,iBAAAle,WAAA,GAChC+mH,QAAkB5oJ,QAAlBqK,EAAA4hB,SAAkB67H,uBAAAz9I,EAAA4hB,SAAA67H,uBAAAt+F,UACcxpD,QAAhCqK,EAAY4hB,SAAA8zB,iBAAoB11C,EAAA4hB,SAAA8zB,iBAAAyJ,UAAA,GAChC+/F,cAAmBvpJ,QAAnBqK,EAAmB4hB,SAAA67H,uBAAAz9I,EAAA4hB,SAAA67H,uBAAA0B,eACUxpJ,QAA7BqK,EAAY4hB,SAAAmqB,mBAAiB/rC,EAAA4hB,SAAAmqB,mBAAAozG,eAAA,GAC7BC,SAAgBzpJ,QAAhBqK,EAAA4hB,SAAgB+8H,aAAA3+I,EAAA4hB,SAAA+8H,aAAAS,SAAA,GA6Qfr2H,OAAqCpzB,QAA5BqK,EAAG4hB,SAAS+8H,aAA6B3+I,EAAG4hB,SAAS+8H,aAAa51H,OAAS,GACpFs2H,eAAuD1pJ,QAAtCqK,EAAG4hB,SAAS67H,uBAAuCz9I,EAAG4hB,SAAS67H,uBAAuB76F,gBA3Q7DjtD,QAAzCqK,EAAA4hB,SAAAosB,oBAAyChuC,EAAA4hB,SAAAosB,oBAAA4U,gBAAA,GAC1C08F,cAAW3pJ,QAAAqK,EAAA4hB,SAAAk8H,uBAAA99I,EAAA4hB,SAAAk8H,uBAAAqB,eACmBxpJ,QAA3BqK,EAAAi+I,YAASlyG,mBAAkB/rC,EAAAi+I,YAAAlyG,mBAAAozG,eAAA,GAC9BI,eAAiB5pJ,QAAAqK,EAAA4hB,SAAAk8H,uBAAA99I,EAAA4hB,SAAAk8H,uBAAAl7F,gBACgBjtD,QAA9BqK,EAAAi+I,YAASjwG,oBAAqBhuC,EAAAi+I,YAAAjwG,oBAAA4U,gBAAA,GACjCjP,YAAoBh+C,QAAjBqK,EAAA4hB,SAAiBk8H,uBAAA99I,EAAA4hB,SAAAk8H,uBAAAtmH,WACc7hC,QAA/BqK,EAAAi+I,YAASvoG,iBAAsB11C,EAAAi+I,YAAAvoG,iBAAAle,WAAA,GAClCgoH,QAAqB7pJ,QAAlBqK,EAAA4hB,SAAkBk8H,uBAAA99I,EAAA4hB,SAAAk8H,uBAAA3+F,UACUxpD,QAA5BqK,EAAAi+I,YAASvoG,iBAAmB11C,EAAAi+I,YAAAvoG,iBAAAyJ,UAAA,GAC/BsgG,OAAG,EA8QPz/I,GAAGs+I,YA5QKzmJ,KAAWoD,GA+QGtF,QAAlBqK,EAAGs+I,cA3QHrjJ,KA6QA+E,EAAG++I,YA5QK,EA6QR/+I,EAAG0/I,aAAc,EA3QjB1/I,EAAA2/I,aAAA,EA6QA3/I,EAAG4/I,OA5QS,KA6QZ5/I,EAAGi+I,YA5QQlyG,mBAAkB,KA6Q7B/rC,EAAGk+I,qBACHl+I,EAAGi+I,YA5QSjwG,oBAAe,KA6Q3BhuC,EAAGm+I,sBACHn+I,EAAGy/D,YACHz/D,EAAG4hB,SAAS+8H,aAAe,KAC3B3+I,EAAGi+I,YAAYvoG,iBAAmB,KAClC11C,EAAGo+I,mBACHp+I,EAAG4hB,SA5QS67H,uBAAA,KA6QZz9I,EAAGw+I,mBACHx+I,EAAG4hB,SA5QQk8H,uBAAA,KA6QX99I,EAAG0+I,yBACHL,KAQR,QAASwB,KACL,GAAK7/I,EAAG+S,UAzPR,CACI,GAAI+sI,IACAhqJ,UAAOkK,EAAA4hB,SAASC,gBAAA/rB,UA6QhBge,UA5QS5T,EAAaG,OA6QtBslD,KAAM,UAGNtzB,IACJA,GAAIx6B,MACAorB,MAAOjjB,EA5QC4hB,SAAQqB,MA6QhBg8H,MAAOj/I,EAAG4hB,SA5QM8zB,iBAAmBle,WA6QnCzO,OAAQ/oB,EAAG4hB,SA5QS+8H,aAAY51H,OA6QhC4qB,YAAiDh+C,QAAnCqK,EAAGi+I,YAAYvoG,iBAAiC11C,EAAGi+I,YAAYvoG,iBAAiBle,WAAa,GAC3GioH,OAAQ,IAEZK,EAAQC,YAAcpjJ,KAAKqkB,UAAUqR,OAlCtB,CA3QvB,GAASytH,IACLhqJ,UAAgBkK,EAAA4hB,SAAAC,gBAA0B/rB,UAClCge,UAAI5T,EAAgBG,OACpBslD,KAAA,UA+QAtzB,IAEJ,KAAK,GAAIn3B,KAAK8E,GAAGs+I,YACbjsH,EAAIx6B,MA3QDonJ,MAAAj/I,EAAAs+I,YAAsBpjJ,GAAA+jJ,MA6QrBtrG,YAAa3zC,EAAGs+I,YAAYpjJ,GAAGy4C,YAC/B5qB,OAAQ/oB,EAAGs+I,YAAYpjJ,GAAG6tB,OA3QtC02H,OAAA,GAGJK,GAASC,YAAApjJ,KAAuBqkB,UAAAqR,GAgS5BhR,EA5QgBk/D,iBAAgBu/D,GAAArhJ,KAAiB,SAAAC,GA6QzCA,EAAIhJ,KAAKke,aA5QY,GA6QrB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBACpD7Z,EAAO8F,GAAG/H,EAAWyE,gBAErBzE,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAGvD,SAAUlT,GACT5I,EAAW2I,YAAY,iCAoB/B,QAASqjH,KACD/jH,EAAG+S,YACH/S,EAAG4hB,SAAW5hB,EAAGtK,KAAK0uB,SACtBpkB,EAAG4hB,SAASc,WAAa/lB,KAAKC,MAAMoD,EAAG4hB,SAASc,YAChDxQ,EAAK,WA3QD,IAAG,GAAAhX,KAAA8E,GAAYqS,YA6QPrS,EAAGqS,YAAYnX,GAAGiX,YAAcnS,EAAG4hB,SAASzP,YAC5CnS,EAAG4hB,SAASzO,gBAAkBnT,EAAGqS,YAAYnX,GAGrDumB,GAAoBzhB,EAAG4hB,SAASzP,UAAW,WACvC,IAAK,GAAIjX,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,YAAckK,EAAG4hB,SAAS9rB,YAC5CkK,EAAG4hB,SAASC,gBAAkB7hB,EAAG2hB,YAAYzmB,GAzQ9D2wC,GAAiC7rC,EAAA4hB,SAAAzP,UAAA,WACjC,IAAA,GAAoBjX,KAAA8E,GAAAs6B,eACRt6B,EAAAs6B,eAAsBp/B,GAAAggC,eAAAl7B,EAAA4hB,SAAAsZ,eACbl7B,EAAA4hB,SAAAmqB,mBAAA/rC,EAAAs6B,eAAAp/B,GAGxBkzC,GAA4CpuC,EAAA4hB,SAAWsZ,aAAe,WAC1D,IAAW,GAAKhgC,KAAA8E,GAAA4rC,gBACjB5rC,EAAoB4rC,gBAAI1wC,GAAAwxC,gBAAA1sC,EAAA4hB,SAAA8qB,gBACpB1sC,EAAe4hB,SAASosB,oBAAGhuC,EAAA4rC,gBAAA1wC,GAG1BuvD,GAAMzqD,EAAA4hB,SAAA8qB,cAAA,WA6QE,IAAK,GAAIxxC,KAAK8E,GAAG4tC,aACT5tC,EAAG4tC,aAAa1yC,GAAGs8B,aAAex3B,EAAG4hB,SAASq9H,QA3QvDj/I,EAAA4hB,SAAA8zB,iBAAA11C,EAAA4tC,aAAA1yC,GAGX+/E,GAAA,WA6QgB,IAAK,GAAI//E,KAAK8E,GAAGy/D,SACTz/D,EAAGy/D,SAASvkE,GAAG6tB,SAAW/oB,EAAG4hB,SAASmH,SACtC/oB,EAAG4hB,SAAS+8H,aAAe3+I,EAAGy/D,SAASvkE,GAzQzCvF,SAAtBqK,EAAsB4hB,SAAAo+H,qBACbhgJ,EAAA4/I,OAAA,IACUhB,EAAA5+I,EAAA4hB,SAAAzP,UAAA,WACb,IAAA,GAAAjX,KAAA8E,GAAAk+I,kBACSl+I,EAAAk+I,kBAAAhjJ,GAAAggC,eAAAl7B,EAAA4hB,SAAAo+H,qBACbhgJ,EAAAi+I,YAAAlyG,mBAAA/rC,EAAAk+I,kBAAAhjJ,GAIS2jJ,GAAA7+I,EAAA4hB,SAAAo+H,mBAAA,WACX,IAAA,GAAA9kJ,KAAA8E,GAAAm+I,mBACAn+I,EAAAm+I,mBAAAjjJ,GAAAwxC,gBAAA1sC,EAAA4hB,SAAAq+H,sBA6QoCjgJ,EAAGi+I,YAAYjwG,oBAAsBhuC,EAAGm+I,mBAAmBjjJ,GAGnE4jJ,GAAoB9+I,EAAG4hB,SAASq+H,oBAAqB,WA3QxD,IAAU,GAAA/kJ,KAAA8E,GAAAo+I,gBAC5Bp+I,EAAAo+I,gBAAAljJ,GAAAs8B,aAAAx3B,EAAA4hB,SAAA+xB,cACgB3zC,EAAAi+I,YAAAvoG,iBAAA11C,EAAAo+I,gBAAAljJ,wBA/RvC,GAAI8E,GAAKC,IAETD,GAAGqU,kBACChJ,MA3QQ,IA6QRA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAErBzU,EAAGgT,YAAa,EAzQhBhT,EAAA2/I,aAAS,EA4QT3/I,EAAG++I,YA3QI,EA4QP/+I,EAAG0/I,aA3QK,CA4QR,IACIx/I,IA5QI/F,EAAgBgG,uBAA2BwU,gBAAoBxC,UACvDhY,EAAoBgG,uBA4QpCH,GAAGyhB,oBA3QgBA,EA4QnBzhB,EAAG6rC,6BA3Q4BA,EA4Q/B7rC,EAAGouC,6BAA+BA,EAClCpuC,EAAGyqD,iBAAmBA,EACtBzqD,EAAG6+I,gCAAkCA,EACrC7+I,EAAG8+I,oBAAsBA,EACzB9+I,EAAGi7E,QAAUA,EACbj7E,EAAGw9I,iBAAmBA,EA1QtBx9I,EAAA69I,iBAASA,EA4QT79I,EAAG4+I,kCA3QmBA,EA4QtB5+I,EAAGg/I,QA3QIA,EA4QPh/I,EAAG4hB,YACH5hB,EAAGi+I,eACHj+I,EAAGs+I,eACHt+I,EAAGq+I,eA3QeA,EA4QlBr+I,EAAGy+I,qBA3QSA,EA4QZz+I,EAAG6/I,SA3QSA,EA4QZ7/I,EAAGtK,QACHsK,EAAGtK,KA3QKsE,EAAAvE,OAAAC,KA4QJsK,EAAGtK,OACCsK,EAAGtK,KA3QKqd,aAAG,GA4QX/S,EAAG+S,WA3QY,EA4Qf/S,EAAG2/I,aA3QS,EA4QZ57B,KAGA/jH,EAAG+S,WA3QS,GA8QpBb,IA2aAlS,EAAG+xB,KA5QI,WACH,GAAGpf,GAAStY,EAAAsY,QAAA,eACT,yFACAtb,WAAS,EACT+F,KAAA,MAGHuV,GAAAjT,OAAAjB,KAAmB,WACfzE,EAAI8F,GAAI,sBAmWhBE,EAAGqkB,WA5QS,SAAWvR,GA6QnB+yG,EAAE50C,OAAOjxE,EAAGs+I,aACRW,MAAOnsI,EAAImsI,qOAxkBvB7qJ,QACKC,OA3QO,2BA4QPe,WA3QO,0BAAemoJ,MA01B/B,WACI,YAOA,SAAS2C,GAAmBnmJ,EAAOC,EAAQjC,EAAYyC,EAAQH,EAASqyF,EAAuBlyC,EAAa+G,EAAkB5G,EAAqBD,EAAoBr5B,EAAoBu5B,EAAsB5oC,EAAgB7X,EAAuByX,GAmFpP,QA5QQM,KA6QJlS,EAAGsS,WA5QI,EA6QPN,EA5QOI,mBAAYD,GAAsB1T,KAAA,SAAAC,GAClC,MAAAA,EAAAlI,SACAwJ,EAAAqS,YAAW3T,EAAAhJ,KACXsK,EAAAsS,WAAS,IA8Qb,SA5QI3R,GACH5I,EAAG2I,YAAS,QAAA,mBAAyB,oBAgR7C,QA5QQmiB,KA6QJ7iB,EAAG8iB,WACH,KAAK,GAAI5nB,KAAK8E,GAAGmgJ,mBAAmBn6F,aAC5BhmD,EAAGmgJ,mBAAmBn6F,aAAa9qD,GAAG8nB,WACcrtB,QAAhDqK,EAAGmgJ,mBAAmBn6F,aAAa9qD,GAAG6rD,QACtC/mD,EAAG8iB,SAASjrB,KAAKmI,EAAGmgJ,mBAAmBn6F,aAAa9qD,GAAG6rD,OAKnE,KA5QI,GAAI7rD,KAAA8E,GAAAmgJ,mBAAUhiG,SACVn+C,EAAAmgJ,mBAAchiG,SAASjjD,GAAA8nB,WACDrtB,QAAtBqK,EAAAmgJ,mBAAsBhiG,SAAAjjD,GAAA+7B,SACtBj3B,EAAM8iB,SAAAjrB,KAAAmI,EAAAmgJ,mBAAAhiG,SAAAjjD,GAAA+7B,QAkRd,OADAj3B,GAAGqjB,SA5QUrjB,EAAA8iB,SAAQ4Q,KAAA,KACb1zB,EAAA,SA+QZ,QAASogJ,KACL,IAAK,GAAIllJ,GA5QG,EAAAA,EAAQ8E,EAAAmgJ,mBAAAn6F,aAAA9qD,IA6QhB,IAAK8E,EAAGmgJ,mBAAmBn6F,aAAa9qD,GAAG8nB,UA1Q3C,YA2QIhjB,EAAGqgJ,mBAAoB,GASnC,QAAS1gC,KACL,IA5QI,GAAI3pF,GAAA,EAAMA,EAAAh2B,EAAAmgJ,mBAAAhiG,SAAAnoB,IACV,IAAIh2B,EAAAmgJ,mBAAKhiG,SAAAnoB,GAAAhT,UAEL,YADAhjB,EAAAqgH,oBAAmB,GAmR/B,QAAS58F,KACL,IAAK,GAAIvoB,GAAI,EAAGA,EAAI8E,EAAGmgJ,mBAAmBhiG,SAAShjD,OAAQD,IA3Q3D8E,EAAAmgJ,mBAAmBhiG,SAAAjjD,GAAiB8nB,UAAchjB,EAAAqgH,kBA+QlD,KAAK,GA5QGl2G,GAAA,EAAOA,EAAGnK,EAAAmgJ,mBAAWn6F,aAAA7qD,OAAAgP,IA6QzBnK,EAAGmgJ,mBA5QIn6F,aAAA77C,GAAA6Y,UAAAhjB,EAAAqgJ,kBAiRf,QA5QQ5+H,GAAWtP,GA6QXA,GACAnS,EAAG4hB,SAASC,gBAAkB,KAC9B7hB,EAAG2hB,eA3QR3hB,EAAO4hB,SAAA8zB,iBAAY,KACd11C,EAAA4tC,gBACA5tC,EAAA4hB,SAAAmiC,iBAAA,KA6QA/jD,EAAG68C,kBACH78C,EAAG4hB,SA5QO+7B,iBAAA,KA6QV39C,EAAG47C,gBACH57C,EAAG4hB,SAAS0+H,oBAAsB,KA3QtCtgJ,EAAAo8C,mBACIp8C,EAAA4hB,SAAUk1B,aAAA,KA6QV92C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGmgJ,sBACHngJ,EAAGsS,WAAY,EACfV,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,GA3QftS,EAAA2hB,YAAAxmB,OAAA,GACLd,EAAW8C,OAAA,UAAA,oDACA9F,WAAQ,EACV+F,KAAA,QAiRJ/C,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SA5QClB,GA6QAtG,EA5QIwH,MAAS,QAAQ,mBAAa,sBAgRtC7B,EAAG4hB,SAASC,gBAAkB,KAC9B7hB,EAAG2hB,eACH3hB,EAAG4hB,SA5QS8zB,iBAAiB,KA6Q7B11C,EAAG4tC,gBACH5tC,EAAG4hB,SAASmiC,iBA5QW,KA6QvB/jD,EAAG68C,kBACH78C,EAAG4hB,SAAS+7B,iBAAmB,KAC/B39C,EAAG47C,gBACH57C,EAAG4hB,SAAS0+H,oBA5QqB,KA6QjCtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aA5Qe,KA6Q3B92C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGmgJ,uBAIX,QAASI,GAAqBzqJ,GACtBA,GACAkK,EAAG4hB,SAAS8zB,iBAAmB,KAC/B11C,EAAG4tC,gBACH5tC,EAAG4hB,SAASmiC,iBA5QiB,KA6Q7B/jD,EAAG68C,kBACH78C,EAAG4hB,SAAS+7B,iBAAmB,KAC/B39C,EAAG47C,gBACH57C,EAAG4hB,SAAS0+H,oBAAsB,KAClCtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGmgJ,sBACHngJ,EAAGsS,WAAY,EACf+O,EAAmBo/D,gBAAgB3qF,GA5QQ2I,KAAA,SAAYC,GA6QhC,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KACtBsK,EAAGsS,WAAY,GAGfva,EAAW2I,YAAY,QA5QS,yBAA0B,aA8Q/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAIxDV,EAAG4hB,SAAS8zB,iBAAmB,KAC/B11C,EAAG4tC,gBACH5tC,EAAG4hB,SAASmiC,iBAAmB,KAC/B/jD,EAAG68C,kBACH78C,EAAG4hB,SAAS+7B,iBAAmB,KAC/B39C,EAAG47C,gBACH57C,EAAG4hB,SAAS0+H,oBAAsB,KAClCtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGmgJ,uBAKX,QAASr6F,GAAqBhwD,GAC1B,GAAIA,EAAW,CACXkK,EAAG4hB,SAASmiC,iBAAmB,KAC/B/jD,EAAG68C,kBACH78C,EAAG4hB,SAAS+7B,iBAAmB,KAC/B39C,EAAG47C,gBA3QR57C,EAAA4hB,SAAa0+H,oBAAe,KACzBtgJ,EAAAo8C,mBACEp8C,EAAA4hB,SAAWk1B,aAAA,KA6QX92C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGsS,WAAY,CACf,IAAIrX,IACAnF,UAAWA,EAEf8kD,GAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,QACJwJ,EAAG68C,eAAiBn+C,EAAIhJ,KA3QnCsK,EAAAsS,WAAA,GACTtS,EAAA68C,eAAA1hD,OAAA,EA6QwBd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EA5QvC+F,KAAA,OAgRwB4C,EAAGmmD,eAAgB,GAzQpC9rD,EAAmBwH,MAAA,QAAA,yBAAA,mBAEnB,SAAAlB,GACCtG,EAASwH,MAAA,QAAA,mBAAA,wBAIT7B,GAAA4hB,SAASmiC,iBAAA,KACV/jD,EAAA68C,kBACC78C,EAAA4hB,SAAS+7B,iBAAA,KA8QL39C,EAAG47C,gBA5QR57C,EAAA4hB,SAAc0+H,oBAAgB,KAC9BtgJ,EAAAo8C,mBACAp8C,EAAA4hB,SAAAk1B,aAAuB,KACnB92C,EAAA4hB,SAAAk1B,aAAc,KAiRrB,QA7QIy7D,GAASC,GACV,GAAAjR,GAAAiR,EAAA,EAKC,OAJAh4G,GAAAqI,QAAS2vG,EAAA,SAAA3rD,GACVJ,EAAAI,GAAAJ,EAAA86C,KACCA,EAAS16C,KAET06C,EAgRJ,QAAS96C,GAAUc,GA5QhB,MAAA3gD,UAAe2gD,EAAAjkC,UAAiB,IA+QnC,QA7QOmvF,GAAe3uD,GA8QlB,GAAIA,EAAY,CA5QjB9jD,EAAA4hB,SAAa+7B,iBAAA,KACb39C,EAAA4hB,SAAA0+H,oBAAoB,KACpBtgJ,EAAAo8C,mBACAp8C,EAAA4hB,SAAYk1B,aAAA,KACZ92C,EAAA4hB,SAAek1B,aAAA,KACfkQ,IACAhnD,EAAA2uG,QAAYhyG,KAAAC,MAAAoD,EAAA4hB,SAAAmiC,iBAAAC,MACZ,IAAAwuD,GAAeh4G,EAAAmI,KAAA3C,EAAA2uG,QACf3uG,GAAAuhG,QAAAgR,EAAyBC,GACzBxyG,EAAA4uG,YAAA5uG,EAAA2uG,QAA6BE,MAC7B7uG,EAAAsS,WAAe,EACfivC,EAAkBqnC,gBAAA9kC,GAAArlD,KAAA,SAAAC,GAClB,GAAW,MAAAA,EAAAlI,OAAA,CAIV,GAHUwJ,EAAA4mD,YAAAloD,EAAAhJ,KACLsK,EAAAsS,WAAA,EAEQtS,EAAAwgJ,2BAAsBrlJ,QAAA,EACpC,IAAsB,GAAAD,GAAA,EAAAA,EAAA8E,EAAAwgJ,2BAAArlJ,OAAAD,IACtB,IAAuB,GAAAiP,GAAA,EAAAA,EAAAnK,EAAA4mD,YAAAzrD,OAAAgP,IACAnK,EAAA4mD,YAAAz8C,GAAA48C,QAAA/mD,EAAAwgJ,2BAAAtlJ,GAAA6rD,QACAq/E,EAAApmI,EAAA4mD,YAAA,SAAA5mD,EAAA4mD,YAAAz8C,GAAA48C,OAMvB/mD,GAAAonD,WACA,KAAA,GAAA+tD,KAAyBn1G,GAAA2uG,QAAA,CACzB,GAAA71D,IACY2O,SAAAznD,EAAA2uG,QAAAwG,GACC59F,UAAA,EACOmwC,SAAAytD,EAEW,WAA/BA,IACAr8D,EAAAgO,OAA+BtsD,EAAAyC,OAAA+C,EAAA4mD,aAC/Ba,SAA2BznD,EAAA2uG,QAAAwG,MAGhBn1G,EAAAonD,SAAAvvD,KAAAihD,GAckB,IAAhB94C,EAAAonD,SAAWjsD,OAEZ6E,EAAAonD,SAAYpnD,EAAAonD,SAAAjsD,QAAA2rD,UAGR9mD,EAAAonD,SAAYpnD,EAAAonD,SAASjsD,OAAA,GAAA2rD,UAI/B9mD,EAAAo1G,cAAY56G,EAAAyC,OAAA+C,EAAA4mD,aACHa,SAAAznD,EAAA4uG,kBAIF72G,GAAG2I,YAAiB,QAAA,yBAAmC,eA+Q5D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA1QxDV,GAAA4hB,SAAO+7B,iBAAmB,KA8Q1B39C,EAAG4hB,SA7QQ0+H,oBAAmB,KA8Q9BtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aAAe,KAKnC,QA7QIsvF,GAAW1oI,EAAAo3G,EAAAzpG,GA8QX3N,EAAMmF,QAAQ,SAAUnD,EAAQ0V,GACxB1V,EAAOo1G,KAAczpG,GA3QxB3N,EAAQ43B,OAAOlgB,EAAG,KAmR3B,QAASgxC,GAAYc,GACjB,GAAIA,EAAK47C,kBAAmB,CACxB,GAAIt8C,GAAW,QAAU5/C,SAASsgD,EAAKQ,SAASpkC,UAAU,IAAM,EA5QvEtjB,GAAA4uG,YAAA5uG,EAAA2uG,QAAAnoD,GA8QOxmD,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aA5QnCa,SAAAznD,EAAiB4uG,YACjByG,aAAkBnuD,EAAA47C,kBAAmB/7C,SA+QtCvsD,EA7QOqI,QAAA7C,EAAAonD,SAAqB,SAAAP,GACxBA,EAAAa,WAAAlB,IA8QIK,EAAEC,OAAS9mD,EAAGo1G,iBAGlBluD,EAAKQ,WAAa1nD,EAAGuhG,SACrBwQ,oBA3QR/xG,EAAK8uG,SACD9uG,EAAGygJ,aAAA5oJ,KAAAqvD,EAAmB47C,oBA4R9B,QA7QQ49C,GAAY5qJ,GA8QhB,GA7QIA,EAAG,CACHkK,EAAG4hB,SAAS+7B,iBAAmB,KAC/B39C,EAAG47C,gBACH57C,EAAG4hB,SAAS0+H,oBAAsB,KAClCtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aAAe,IAE3B,IAAG77C,IACAnF,UAAYA,EACf0hC,WAAAx3B,EAAA4hB,SAAuB8zB,iBAAeupG,MAClCn7F,WAAQ9jD,EAAA4hB,SAAgBmiC,iBAAAD,WA8QxB81D,WA7QO,WA+QXltB,GA7QgBM,4BAAwB/xF,GAAAwD,KAAA,SAAAC,GACpB,MA6QZA,EA7QIlI,QA8QJwJ,EAAG47C,aA7QKl9C,EAAWhJ,KA8QnBsK,EAAGsS,WA7QW,GA+Qdva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SA7QQC,GA8QP5I,EA7QI2I,YAAc,QAAS,mBAAA,kBAiR/BV,GAAG4hB,SAAS+7B,iBAAmB,KAC/B39C,EAAG47C,gBACH57C,EA7QG4hB,SAAA0+H,oBAAA,KACHtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAAAk1B,aAAc,KA6TzB,QA7QQovE,GAAYpwH,GA8QhB,GA7QIA,EAAG,CACHkK,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGizB,WA8QH,IAAI0wB,KACJ,KAAK,GAAIzoD,KAAK8E,GAAG4hB,SAAS0+H,oBACtB38F,EAAe9rD,KAAKmI,EAAG4hB,SAAS0+H,oBAAoBplJ,GAAG22B,cA3QnE,IAAS52B,IACDnF,UAAWA,EACR0hC,WAASx3B,EAAA4hB,SAAA8zB,iBAAmBupG,MAC5Bn7F,WAAA9jD,EAAA4hB,SAAiBmiC,iBAAAD,WACjB81D,WAAS,OACT+mC,MAAAh9F,EAAejwB,KAAA,KAElBg5D,GAAqBM,4BAAA/xF,GAAAwD,KAAA,SAAAC,GACT,MAATA,EAASlI,QACTwJ,EAAAizB,SAASv0B,EAAAhJ,KACTsK,EAAAsS,WAAY,GAgRPva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SA7QSC,GA8QR5I,EA7QO2I,YAAA,QAAqB,mBAAA,kBAiRhCV,GAAG4hB,SAASk1B,aA7Qe,KA8Q3B92C,EAAGizB,YAMX,QAASkzF,GA7QUrwH,GA8QfkK,EAAG4jD,UACH,KAAK,GAAI1oD,KAAK8E,GAAG4hB,SAASk1B,aACtB92C,EA7QG4jD,QAAA/rD,KAAUmI,EAAK4hB,SAAAk1B,aAAA57C,GAAA8kB,OA+QtB,IAAI/kB,IACAnF,UAAWA,EACX0hC,WA7QCx3B,EAAA4hB,SAAA8zB,iBAAAupG,MACDn7F,WAAY9jD,EAAA4hB,SAAAmiC,iBAAmBD,WAC/B81D,WAAG,OACH76D,SAAG/+C,EAAS4hB,SAAAmvH,wBAAmB1oH,KAC/Bs4H,MAAG3gJ,EAAA4jD,QAAelwB,KAAA,KA+QtBg5D,GA7QOM,4BAAkB/xF,GAAAwD,KAAA,SAAAC,GACT,MAATA,EAAAlI,QACApC,QAASyO,QAAA7C,EAAA4gJ,uBAAe,SAAArsH,EAAAC,GA8QnBpgC,QAAQyO,QAAQnE,EAAIhJ,KAAM,SAAUy1D,EAAQC,GACpC72B,EAAOg8E,wBAA0BplD,EAAOolD,uBACxC7xG,EAAIhJ,KAAK4/B,OAAO81B,EAAM,OAzQlCprD,EAAAm+C,SAAUz/C,EAAKhJ,MACfsK,EAAAm+C,SAAUhjD,OAAA,GA8QNd,EAAQ8C,OAAO,UAAW,iDA5Q/B9F,WAAA,EA8QS+F,KAAM,QAvQlBrF,EAAY2I,YAAA,QAAA,mCAAA,WA+Qb,SA7QIC,MAsSX,QAASkgJ,GA7QU/qJ,EAAW0hC,EAAArgB,GA+Q1B,GAAIqgB,EA7QY,CA8QZ,GAAIv8B,IACAnF,UAAWA,EACXs0B,MAAOoN,EACPssB,WAAY9jD,EAAG4hB,SAASmiC,iBAAiBD,WAE7C4oC,GA7QqBQ,uBAAuBjyF,GAAGwD,KAAA,SAAaC,GA8QxD,GA7QgB,MA6QZA,EAAIlI,OA7QQ,CA8QZwJ,EAAG8gJ,cAAe,CAClB,KAAK,GAAI5lJ,KAAKwD,GAAIhJ,KAAKswD,aA5QF,GAAdtnD,EAAAhJ,KAASswD,aAAK9qD,GAAAtF,SA8QboK,EAAG8gJ,cAAe,EAE1B,IAAIC,GAAkBl7B,EAAEv5F,IACpBu5F,EAAE9E,KACE8E,EAAEv5F,IAAI5tB,EAAIhJ,KAAKswD,aAAc,SAAU/qD,GACnC,MAAO0B,MAAKqkB,UAAU/lB,MAE3B,SAAUA,GACT,MAAO0B,MAAKC,MAAM3B,IAG1ByD,GAAIhJ,KAAKswD,aAAe+6F,EA5QxB/gJ,EAAAmgJ,mBAAAzhJ,EAAAhJ,KAgRAyhB,QAGApf,GA7QO2I,YAAY,QAAS,yBAAqB,aA+QtD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eA+DhE,QA7QQmsF,GAAW5xF,GA8Qf+E,EAAGghJ,cA7Qa,CA+QhB,IA7QIC,MAEAvjJ,IA8QJ,KAAK,GAAIxC,KAAK8E,GAAG4hB,SAASs/H,wBA5QtBD,EAAIppJ,KAAMmI,EAAA4hB,SAAAs/H,wBAAAhmJ,GAAA6rD,OAoRd/mD,GAAGmhJ,SA7QSnhJ,EAAI4hB,SAAAw/H,oBAAgBlmC,QA8QhCl7G,EAAGoiG,QA7QS6+C,EAAGvtH,KAAA,KA8Qf1zB,EAAGjC,KAAOL,EA7QKg2B,KAAA,IA8Qf,IAAIz4B,IACAnF,UA7QQkK,EAAA4hB,SAAWC,gBAAY/rB,UA8Q/BguD,WAAa9jD,EAAG4hB,SAAS,iBAAoB5hB,EAAG4hB,SAASmiC,iBAAiBD,WAAa,GACvF15B,MA7QGpqB,EAAA4hB,SAAe8zB,iBAAAupG,MA8QlB78C,QA7QIpiG,EAAA,QAAWA,EAAYoiG,QAAS,GA8QpCx+C,QAAU5jD,EAAG,KAAQA,EAAGjC,KAAO,GAC/BojJ,SAAWnhJ,EAAG,SAAYA,EAAGmhJ,SAAW,GACxCrtI,UA7QC5T,EAAAG,OA+QLqsF,GA7QsBG,mBAAA5xF,GAAAwD,KAAA,SAAAC,GAElB,GAAGA,EAAAhJ,KAAAke,aAAkB,EAClB7b,EAAS2I,YAAe,UAAAhC,EAAAhJ,KAAAme,QAAA,mBAiRvB7T,EAAGghJ,cAAe,EAClBhhJ,EAAGsS,WAAY,EACftS,EAAG4hB,SAASw/H,oBAAsB,KAClCphJ,EAAG4hB,SAASs/H,wBAA0B,KACtClhJ,EAAG4hB,SAASs/H,2BA5QrBlhJ,EAAAmgJ,sBACKngJ,EAAAqhJ,uBAEGR,EAAkB7gJ,EAAA4hB,SAAAC,gBAAA/rB,UAAAkK,EAAA4hB,SAAA8zB,iBAAAupG,MAAA,WAClBqC,UAKC,CA8QAvpJ,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBA5QpD,IAAAlf,GAAM,GACNigC,EAAW,EACX,KAAA,GAAA15B,KAAYwD,GAAGhJ,KAAAswD,aAC0B,IAAzCtnD,EAAYhJ,KAAGswD,aAAS9qD,GAAA23B,YACxBl+B,EAAYA,EAAA+J,EAAAhJ,KAAAswD,aAAA9qD,GAAA23B,UAAA,iDAAAn0B,EAAAhJ,KAAAswD,aAAA9qD,GAAAgoD,aAAA,kBAGhB,KAAA,GAAAhoD,KAAAwD,GAAsBhJ,KAAAyoD,SACM,IAAhBz/C,EAAAhJ,KAAAyoD,SAAgBjjD,GAAA02B,mBACjBgD,EAAAA,EAAAl2B,EAAkBhJ,KAAIyoD,SAAAjjD,GAAA02B,iBAAA,iDAAAlzB,EAAAhJ,KAAAyoD,SAAAjjD,GAAAgoD,aAAA,kBAGdvtD,SAAXhB,GAAgC,MAATA,GAAS,IAAAA,GA8QhC0F,EAAQ8C,OAAO,0FAA2FxI,GAAY0C,WAAW,EAAM+F,KAAM,OA5QnIzH,QAAfi/B,GAAe,MAAAA,GAAA,IAAAA,GACdv6B,EAAW8C,OAAA,mFAAyCy3B,GAAAv9B,WAAA,EAAA+F,KAAA,OA+QpD4C,EAAGsS,WAAY,IAIpB,SA7QI3R,GACH5I,EAAG2I,YAAS,iCAwVpB,QAASosF,KACL,GA7QGy0D,MAAepgD,IA8QlB,KAAK,GAAIjmG,KAAK8E,GAAG4hB,SAASwhC,aACtBm+F,EAAQtqH,QAAWj3B,EAAG4hB,SAASwhC,aAAaloD,GAAG,QA5QpDqmJ,EAAAvhI,OAAuBhgB,EAAA4hB,SAAUwhC,aAAOloD,GAAA,OA8QnCimG,EAAWtpG,KAAK0pJ,GA5QhBA,IA+QJ,IA7QItmJ,IA8QAnF,UAAWkK,EAAG4hB,SAASC,gBAAgB/rB,UACvCguD,WA7QK9jD,EAAS4hB,SAAGmiC,iBAAAD,WACjBtsB,WAASx3B,EAAA4hB,SAAA8zB,iBAAAupG,MA+QThoH,QAASt6B,KAAKqkB,UAAUmgF,GACxBrtF,UA7QC5T,EAAAG,OA+QLqsF,GA7QmBI,uBAAA7xF,GAAAwD,KAAA,SAAAC,GACfA,EAAAhJ,KAAAke,aAAqB,IACjB7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,mBACAytI,OAmRZ,QAASA,GAAyBnqI,GAE9B,GAAIlc,IA5QAnF,UAAAkK,EAAY4hB,SAAAC,gBAAA/rB,UACZguD,WAAU9jD,EAAA4hB,SAAAmiC,iBAAAD,WA8QV15B,MA7QIpqB,EAAA4hB,SAAW8zB,iBAAAupG,MA+QnBvyD,GA7QoBS,sBAAYlyF,GAAiBwD,KAAA,SAAAC,GA8Q3B,KAAdA,EAAIlI,QA5QRwJ,EAAA4gJ,uBAAsBliJ,EAAAhJ,KAClBsK,EAAAsS,WAAQ,EACJtS,EAAGssB,IA0RPnV,KAEApf,EA7QO2I,YAAA,QAAyB,YAAA,qBAgRxCV,EAAG4hB,SA7QS+7B,iBAAA,KA8QZ39C,EAAG47C,gBACH57C,EAAG4hB,SAAS0+H,oBA7QG,KA8QftgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAGizB,YACHjzB,EAAG4hB,SA7QKmvH,wBAAuB,KA8Q/B/wI,EAAG4hB,SAASwhC,aAAe,KAC3BpjD,EAAGm+C,YACHuiG,EAA6B1gJ,EAAG4hB,SAASC,gBAAgB/rB,WAG7D,QAASi3F,KAGL,GAAIy0D,KACJ,KAAK,GAAItmJ,KAAK8E,GAAGgkD,MACbw9F,EAAW3pJ,KAAKmI,EAAGgkD,MAAM9oD,GAAG6rD,OAEhC,IAAI9rD,IACAnF,UAAWkK,EAAG4hB,SAASC,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG4hB,SAASmiC,iBAAiBD,WACzCtsB,WAAYx3B,EAAG4hB,SAAS8zB,iBAAiBupG,MACzCl4F,OAAQy6F,EAAW9tH,KAAK,KACxB5f,UAAW5T,EAAWG,OAE1BqsF,GAAsBK,2BAA2B9xF,GAAKwD,KAAK,SAAUC,GAC7DA,EAAIhJ,KAAKke,aAAc,IACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBACpD4tI,OAMZ,QAASn0D,GAAsBn2E,GAG3B,GAAIlc,IACAnF,UAAWkK,EAAG4hB,SAASC,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG4hB,SAASmiC,iBAAiBD,WACzC15B,MAAOpqB,EAAG4hB,SAAS8zB,iBAAiBupG,MACpChoH,QAASj3B,EAAG4hB,SAASw/H,oBAAoBlmC,QACzC96G,SAAUF,EAAWG,OAEzBqsF,GAAsBY,sBAAsBryF,GAAKwD,KAAK,SAAUC,GAC1C,KAAdA,EAAIlI,QACJwJ,EAAGqhJ,oBAAsB3iJ,EAAIhJ,KACQ,GAAjCsK,EAAGqhJ,oBAAoBlmJ,QACvBd,EAAQ8C,OAAO,UAAW,qDACtB9F,WAAW,EACX+F,KAAM,OAId+Z,KAEApf,EAAW2I,YAAY,QAAS,YAAa,qBAKzD,QAAS+gJ,GAA6BtqI,GAGlC,GAAIlc,IACAnF,UAAWkK,EAAG4hB,SAASC,gBAAgB/rB,UACvCguD,WAAY9jD,EAAG4hB,SAASmiC,iBAAiBD,WACzC15B,MAAOpqB,EAAG4hB,SAAS8zB,iBAAiBupG,MA3QxCvyD,GAAkBU,0BAAAnyF,GAAAwD,KAAA,SAAAC,GA8Qd,GAAkB,KAAdA,EAAIlI,OAAe,CAEnB,GA9QJwJ,EAAAwgJ,2BAAU9hJ,EAAAhJ,KA8QFsK,EAAGssB,KA5QHtsB,EAAAwgJ,2BAAArlJ,QAAA,EACE,IAAG,GAAAD,GAAS,EAAAA,EAAA8E,EAAAwgJ,2BAAyBrlJ,OAAAD,IAC/B,IAAA,GAASiP,GAAA,EAAAA,EAAAnK,EAAAmgJ,mBAA2Bn6F,aAAA7qD,OAAAgP,IA8Q3BnK,EAAGwgJ,2BAA2BtlJ,GAAG6rD,QAAU/mD,EAAGmgJ,mBAAmBn6F,aAAa77C,GAAG48C,QAClFq/E,EAAcpmI,EAAGwgJ,2BAA4B,SAAUxgJ,EAAGwgJ,2BAA2BtlJ,GAAG6rD,OAtQjH5vC,SAECpf,GAAc2I,YAAS,QAAA,YAAgB,qBAgR3CsmD,IACAyrD,EA7QiBzyG,EAAA4hB,SAAWmiC,iBAAOD,YAiSvC,QAASkD,KACLxsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUF,GAClCA,EAAK47C,kBAAoB,OAqBjC,QAAS4+C,KACL,GAAIptF,IA7QO,CA8QX,KAAK,GAAIp5D,KAAK8E,GAAGmgJ,mBAAmBn6F,aAAc,CAC9C,GAAIhmD,EAAGmgJ,mBAAmBn6F,aAAa9qD,GAAG8nB,aAAc,EA3QzD,MA4QKsxC,IAAQ,CAIRA,IAAQ,GAMpB,QAASqtF,KACL,GAAIrtF,IAAQ,CACZ,KAAK,GAAIp5D,KAAK8E,GAAGmgJ,mBAAmBhiG,SAAU,CAC1C,GAAIn+C,EAAGmgJ,mBAAmBhiG,SAASjjD,GAAG8nB,aAAc,EAEhD,MADAsxC,IAAQ,CAIRA,IAAQ,GAMpB,QAASq4B,GAAyB75E,GAC9B,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,kDACAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WAChBiuF,EAAsBC,yBAAyB75E,EAAIiG,IAAIta,KAAK,SAAUC,GAChD,KAAdA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS;AACpDgtI,EAAkB7gJ,EAAG4hB,SAASC,gBAAgB/rB,UAAWkK,EAAG4hB,SAAS8zB,iBAAiBupG,QAGtFlnJ,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,oBAGvD,SAAUlT,GACT5I,EAAW2I,YAAY,mCAKnC,QAASksF,GAA6B95E,GAClC,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,sDACAtb,WAAW,EACX+F,KAAM,MAEVuV,GAAQjT,OAAOjB,KAAK,WAChBiuF,EAAsBE,6BAA6B95E,EAAIiG,IAAIta,KAAK,SAAUC,GACpD,KAAdA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBACpDgtI,EAAkB7gJ,EAAG4hB,SAASC,gBAAgB/rB,UAAWkK,EAAG4hB,SAAS8zB,iBAAiBupG,QAGtFlnJ,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,oBAEvD,SAAUlT,GACT5I,EAAW2I,YAAY,mCAKnC,QAAS2sD,KACL,GAAIq0F,OAAkB,EAAM,CACxB,GAAI/uI,GAAUtY,EAAQsY,QAAQ,UAC1B,sDACAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WA5QnB,GAAAuB,EAAA8gJ,aAAA,CACD,GAAU7lJ,IACAnF,UAAYkK,EAAA4hB,SAAAC,gBAAc/rB,UAC5Bs0B,MAAWpqB,EAAG4hB,SAAS8zB,iBAAgBupG,MACvC7nH,WAAavU,EAAS7iB,EAAAqjB,UAE9BqpE,GAAUO,qBAAAhyF,GAAAwD,KAAA,SAAAC,GA8QMA,EAAIhJ,KAAKke,aAAc,GA5QjC7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,mBACQgtI,EAAS7gJ,EAAA4hB,SAAgBC,gBAAA/rB,UAAAkK,EAAA4hB,SAAA8zB,iBAAAupG,QAgRvBlnJ,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,oBAGvD,SAAUlT,GA5QzB5I,EAAsB2I,YAAA,qCAIXmlH,GAAA50C,OAAAjxE,EAAAmgJ,mBAAAn6F,aAAA,SAAAz4C,GA+QK,MAAOA,GAAGyV,aAAc,OAc5C,QAASypC,KACL,GAAIk1F,OAAmB,EAAM,CACzB,GAAIhvI,GAAUtY,EAAQsY,QAAQ,UAC1B,mEACAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIuB,EAAG8gJ,aAAc,CACjB,GAAI7lJ,IACAnF,UAAWkK,EAAG4hB,SAASC,gBAAgB/rB,UA5Q3Cs0B,MAASpqB,EAAA4hB,SAAA8zB,iBAAAupG,MACbhoH,QAAApU,EAAA7iB,EAAAqjB,UAEAqpE,GAAuBO,qBAAsBhyF,GAAAwD,KAAA,SAAAC,GA8QjCA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBA5Q5DgtI,EAAmB7gJ,EAAA4hB,SAAAC,gBAAA/rB,UAAAkK,EAAA4hB,SAAA8zB,iBAAAupG,OACb2C,iBAEf7pJ,EAAkB2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,oBAGT,SAAAlT,GACA5I,EAAe2I,YAAA,qCAiRfmlH,GAAE50C,OAAOjxE,EAAGmgJ,mBAAmBhiG,SAAU,SAAU5wC,GAE/C,MAAOA,GAAGyV,aAAc,OAxpC5C,GAAIhjB,GAAKC,IACTD,GAAGqU,kBA3QHhJ,MAAS,IA8QLA,MA5QO,KA8QPA,MA5QI,KA8QJA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBA5Qe,GA6QhCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAErBzU,EAAGozH,aAAe,EAClBpzH,EAAGkzH,mBACC7nH,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGmzH,UAAYnzH,EAAGkzH,iBAAiB,GACnClzH,EAAGqzH,sBA5QuB,SAAA5+G,GA6QtBzU,EAAGozH,aA5QK3+G,GA8QZzU,EAAGgT,YAAa,EAChBhT,EAAGqgJ,mBA5QM,EA6QTrgJ,EAAGqgH,oBAAqB,EACxBrgH,EAAG+S,WAAY,EA3Qf/S,EAAA8gJ,cAAiB,EA6QjB9gJ,EAAGghJ,cA5QO,EA6QVhhJ,EAAGsS,WA5QQ,EA6QXtS,EAAGygJ,gBACHzgJ,EAAG4gJ,0BACH5gJ,EAAGwgJ,8BACHxgJ,EAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGizB,YACHjzB,EAAGm+C,YACHn+C,EAAGssB,KAAM,CACT,IAAIna,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEjS,EAAa/F,EAAsBgG,sBACvCH,GAAGyhB,oBAAsBA,EA3QzBzhB,EAAA8lD,qBAAmBA,EA6QnB9lD,EAAGugJ,qBA5QWA,EA6QdvgJ,EAAGyyG,qBA5QgBA,EA6QnBzyG,EAAGomD,YA5QaA,EA6QhBpmD,EAAG0gJ,6BA5Q2BA,EA8Q9B1gJ,EAAGmmH,cA5QKA,EA6QRnmH,EAAGkmH,qBA5QgBA,EA6QnBlmH,EAAG6sF,mBA5QmBA,EA6QtB7sF,EAAG8sF,uBA5QiBA,EA6QpB9sF,EAAG+sF,2BA5QyBA,EA6Q5B/sF,EAAGqtD,UAAYA,EACfrtD,EAAGysD,WA5QKA,EA6QRzsD,EAAG6gJ,kBA5QgBA,EA6QnB7gJ,EAAGshJ,yBA5QyBA,EA6Q5BthJ,EAAGyhJ,6BA5Q4BA,EA6Q/BzhJ,EAAG4sF,6BA5Q+BA,EA6QlC5sF,EAAG2sF,yBA5QgBA,EA6QnB3sF,EAAGstF,sBA5QkBA,EA6QrBttF,EAAGqhJ,uBACHrhJ,EAAG4hB,YACH5hB,EAAG4hB,SAASs/H,2BAGZlhJ,EAAG6iB,UAAYA,EACf7iB,EAAGogJ,cA5QQA,EA6QXpgJ,EAAG2/G,eA5QWA,EA6Qd3/G,EAAGyjB,UA5QQA,EA6QXvR,IAEAlS,EAAG+5H,sBA5QiBC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,MA2lBpBroB,EA7QC8xE,QAAA,SAAA5qB,GA8QGlnD,EAAGgkD,MAAQkD,EAAK47C,mBAGpB9iG,EAAGgU,OA7QQ,WA8QPhU,EAAGgT,YA7QI,GAuTXhT,EAAGo9C,yBA7QiB,SAAetnD,GA8Q/B,GA7QIA,EAAG,CACHkK,EAAG4hB,SAAA0+H,oBAAqB,KA8QxBtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SAASk1B,aAAe,KAC3B92C,EAAG4hB,SAASk1B,aAAe,KA5QnC92C,EAASizB,WACD,IAAAywB,KACA,KAAG,GAAAxoD,KAAS8E,GAAA4hB,SAAA+7B,iBACT+F,EAAA7rD,KAAemI,EAAA4hB,SAAA+7B,iBAAAziD,GAAAghD,WAElB,IAAGjhD,IACAnF,UAASA,EACT0hC,WAAAx3B,EAAe4hB,SAAA8zB,iBAAAupG,MACfn7F,WAAS9jD,EAAA4hB,SAAAmiC,iBAAsBD,WAC/B81D,WAAA,cACA+mC,MAAAj9F,EAAShwB,KAAe,KAE3Bg5D,GAAGM,4BAAqB/xF,GAAAwD,KAAA,SAAAC,GACT,MAAZA,EAAAlI,QACHwJ,EAAAo8C,gBAAmB19C,EAAAhJ,KACXsK,EAAAsS,WAAe,GAEfva,EAAG2I,YAAY,QAAA,yBAAA,aA+QpB,SA7QQC,GA8QP5I,EA7QI2I,YAAW,QAAY,mBAAS,kBAiRxCV,GAAG4hB,SAAS0+H,oBAAsB,KAClCtgJ,EAAGo8C,mBACHp8C,EA7QC4hB,SAAAk1B,aAAA,KACD92C,EAAG4hB,SAASk1B,aAAA,KACZ92C,EAAGizB,aA2VXjzB,EAAG6hJ,qBA7QiB,SAAezsI,GAExB,GAAHA,GACApV,EAAAssB,KAAI,EACJg1H,KAEG,GAAAlsI,GACHpV,EAAAssB,KAAA,EA8QAm1H,MAGAzhJ,EAAGssB,KAAM,EACTtsB,EAAGsS,WA7QY,EA8QfuuI,EA7QiB7gJ,EAAI4hB,SAAOC,gBAAO/rB,UAAAkK,EAAA4hB,SAA2B8zB,iBAAaupG,MAAA,WA8QvEqC,IACAthJ,EAAGsS,WAAY,MA8Y3BtS,EAAG0R,OAAS,WA5QR1R,EAAA4hB,SAAAzO,gBAAsB,KA8QtBnT,EAAG4hB,SA7QCC,gBAAA,KA8QJ7hB,EAAG2hB,eACH3hB,EAAG4hB,SA7QK8zB,iBAAuB,KA8Q/B11C,EAAG4tC,gBACH5tC,EAAG4hB,SAASmiC,iBAAmB,KAC/B/jD,EAAG68C,kBACH78C,EAAG4hB,SA7QQ+7B,iBAAe,KA8Q1B39C,EAAG47C,gBACH57C,EAAG4hB,SA7QQ0+H,oBAAS,KA8QpBtgJ,EAAGo8C,mBACHp8C,EAAG4hB,SA7QQk1B,aAAS,KA8QpB92C,EAAGizB,YACHjzB,EAAGmgJ,sSAh/BX/rJ,QACKC,OAAO,2BACPe,WA5QW,qBAAI8qJ,MAq7CxB,WACI,YAOA,SAAS4B,GAAuB/nJ,EAAOhC,EAAW0C,EAASD,EAAQH,EAAS+tE,EAA2BjuE,EAAsBsQ,GAqCzH,QA7QQyH,KA+QJk2D,EA7QoBC,2BAAA5pE,KAAA,SAAAC,GACD,MA6QXA,EA7QIlI,QA8QJwJ,EAAG87H,uBA7QyBp9H,EAAGhJ,KA8Q/BsK,EAAGsS,WA7QS,GA+QZva,EAAW2I,YA7QS,QAAA,yBAAiB,wBA+Q1C,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAI5D,QAASsT,KACLhU,EAAG66B,MAAO,EACV76B,EAAG+S,WA7QK,EA8QR/S,EAAGgT,YAAa,EAGpB,QA7QI0E,KA8QA1X,EAAGgT,YAAa,EAChBkB,IA5QDlU,EAAAyoE,cA+QH,QA7QO/2D,KACH,GAAGiB,GAAAtY,EAAcsY,QAAA,eACd,yFACAtb,WAAe,EACf+F,KAAS,MAGZuV,GAAGjT,OAAAjB,KAAe,WACfuB,EAAAgT,YAAS,EACTkB,IACAlU,EAAAyoE,gBAmRP,QA7QIv0D,KA8QAlU,EAAG+hJ,eA7QM3tI,gBAgRb,QAAS4tI,GAAuBv5E,GAC5BzoE,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGyoE,WAAar0E,QAAQ8e,KAAKu1D,GAGjC,QAASI,GAA+BJ,GACpC,GAAI1nE,GAAM,yBAA4B0nE,EAAW,SAAY,WAAa,UAAY,gBAElF91D,IADS81D,EAAW,SAAY,WAAa,UAAY,qBAC/CpuE,EAAQsY,QAAQ,UAC1B5R,GAAO1J,WAAW,EAAM+F,KAAM,OAClCuV,GAAQjT,OAAOjB,KAAK,WAChB2pE,EAA0BS,+BAA+BJ,EAAWg2C,sBAAsBhgH,KAAK,SAAUC,GAClF,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,4CAA6C,sBAC/EwR,KA3QPna,EAAc2I,YAAA,QAAA,qCAAArJ,WAAA,EAAA+F,KAAA,QAEd,SAAYuD,GACT5I,EAAG2I,YAAmB,QAAA,uEAAoCrJ,WAAA,EAAA+F,KAAA,UA+Q/D,cAKP,QAASurE,GAAyBF,GAC9B,GAAI91D,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MA3Q7EuV,GAASjT,OAAAjB,KAAe,WAChB2pE,EAAQO,yBAAAF,EAAAg2C,sBAAAhgH,KAAA,SAAAC,GACK,MAARA,EAAKlI,QACHuB,EAAA2I,YAAmB,UAAY,2CAAoB,wBACtDwR,KA+QIna,EAAW2I,YAAY,QAAS,sCAAwCrJ,WAAW,EAAM+F,KAAM,QAEpG,SA7QSuD,GA8QR5I,EAAW2I,YAAY,QAAS,qEAAuErJ,WAAW,EAAM+F,KAAM,UAEnI,cAQP,QAAS6kJ,GAAuBx5E,GAC5B,GAAI/0D,GAAcvZ,EAAsBgG,sBA5QxCH,GAAQ+S,WAkBJ01D,EAAA90D,WAAAD,EAAArT,OACA+nE,EAAWM,uBAAAD,GAAAhqE,KAAA,SAAAC,GACLA,EAAAhJ,KAAAke,aAAA,GA8QE7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,uBA5QxD3B,IACJlS,EAAAgT,YAAsB,EACdhT,EAAA+S,WAAc,EACd2E,MA+QA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,uBAClD7T,EA7QGgT,YAAA,IAGR,SAAUrS,GACT5I,EAAW2I,YAAY,+BAAArJ,WAAA,EAAA+F,KAAA,WA/B3BqrE,EAAA30D,UAAsBJ,EAAArT,OA8QtB+nE,EA7QsBI,sBAAKC,GAAAhqE,KAAA,SAAAC,GACnBA,EAAAhJ,KAAAke,aAAuB,GACvB7b,EAAA2I,YAAqB,UAAShC,EAAAhJ,KAAAme,QAAgB,uBA8Q9C3B,IACAlS,EA7QGgT,YAAA,EACH0E,MA+QA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,uBA5QvD7T,EAAAgT,YAAe,IAgRf,SAAUrS,GACT5I,EAAW2I,YAAY,kCAyB/B,QA7QQooE,KA8QR9oE,EAAGsS,WA7QK,CA8QR,IAEY0T,IA/QJ7rB,EAAWgG,wBAgRP8rC,YAAY,iBAIpBm8B,GA7Q0BU,6BAAyB9iD,GAAAvnB,KAAA,SAAAC,GA8Q/C,GA7QkB,MA6QdA,EA7QIlI,OAAU,CA8QdwJ,EAAG8Z,cA7Qapb,EAAAhJ,KA8QhBsK,EAAGsS,WAAY,CA5Qf,IAAA2D,GAAAnf,SAAAijB,cAAsB,IA8QtBjjB,UA7QQC,KAAIijB,YAAK/D,GA8QjBA,EAAEgE,MA7QM,eA8QR,IAAIrc,GA7QI,GAAAC,OAAAa,EAAAhJ,OA8QJqI,KAAM,oBAENtJ,EA7QIC,OAAAwlB,IAAWC,gBAAYvc,EA+Q/BnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EA7QG2I,YAAe,UAAA,eAAA,mBA8QlBwR,QAEAna,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OAC3E4C,EA7QCsS,WAAA,GAgRN,SA7QS3R,GA8QR5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,EAAGsS,WAAY,IAzd3B,GAAAtS,GAASC,IA+QTD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SA7QWtU,EAAAqU,gBAAA,GA+QdrU,EAAGuU,YA7QK,EA8QRvU,EAAGwU,qBA7Qe,SAASC,GA8QvBzU,EAAGuU,YA7QaE,GAgRpBzU,EAAGgT,YA7QC,EA8QJhT,EAAG+S,WA7QS,EA8QZ/S,EAAGsS,WA7QY,EA8QftS,EAAG87H,0BACH/jI,EAAW2c,SA7QK,EA+QhB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGgiJ,uBA7QsBA,EA8QzBhiJ,EAAG6oE,+BA7QSA,EA8QZ7oE,EAAG2oE,yBA7QYA,EA8Qf3oE,EAAGiiJ,uBA7QoBA,EA8QvBjiJ,EAAG8oE,6BAA+BA,EAClC52D,IACAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GA3QnC,GAAAC,GAAS,GAAAC,QAAA,gBACLC,EAAAC,OAAAC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MA8QA,KAAKN,EAAMje,KAAKme,GA1QZ,MAFA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAA,iCAAgB,mBACvC,8HAuOZtM,QACKC,OAAO,gCACPe,WAAW,yBAA0B0sJ,MAyN9C,WACI,YAOA,SAASI,GA7Qaz3I,EAAA1S,EAAA0C,EAAAD,EAAAH,EAAAN,EAAAquE,EA8QlB6gB,EAA0BY,EAA0B1vF,EAAuBqwF,GA4C3E,QA9QCt4E,KA+QG+2E,EAAyBC,yBAAyBzqF,KAAK,SAAUC,GAC1C,MAAfA,EAAIlI,QA7QXkI,EAAAhJ,KACIsK,EAAAmiJ,6BAAA3nJ,EAAA++C,OAAA76C,EAAAhJ,KAAA,qCA+QGsK,EAAGsS,WAAY,GA5QxBva,EAAc2I,YAAgB,QAAA,yBAAA,uBAE9B,SAAcC,GACd5I,EAAA2I,YAAuB,QAAU,mBAAK,wBAgRrCgjF,IA3QJ,QAAGA,KACAtb,EAAYG,8BAAA9pE,KAAA,SAAAC,GACZ,MAAAA,EAAAlI,QACQwJ,EAAA87H,uBAAUp9H,EAAAhJ,KA+QTsK,EAAGsS,WAAY,GA5Qfva,EAAA2I,YAAA,QAAA,yBAAA,0BAET,SAAAC,GACA5I,EAAA2I,YAAA,QAAiC,mBAAA,2BAIpC,QAAA0hJ,GAAA3jC,GACAz+G,EAAOqiJ,8BA+QHp5D,EAAyBO,wBAAwBi1B,GAAsBhgH,KAAK,SAAUC,GA7Q/D,MAAnBA,EAAQlI,QACRwJ,EAAMqiJ,2BAA2B3jJ,EAAAhJ,KAChCsK,EAAMsS,WAAW,GAGlBva,EAAO2I,YAAA,QAAA,yBAAA,qBAqRf,QA9QQ8wF,GAAQr6E,GA+QZ0yE,EA9QWI,eAA6BxrF,KAAA,SAAAC,GACjB,MAAfA,EAAGlI,QA+QHwJ,EA9QGyxF,eAAA/yF,EAAAhJ,KAgRHyhB,KA5QJpf,EAAW2I,YAAY,QAAS,4CAAoB,UAiRpD,SAAUC,GA7QT5I,EAAS2I,YAAA,QAAA,4CAAA,WAuSlB,QAAS40I,GAAmB3jD,EAAU1G,EAAQ1sF,GAC1C,GAAe5I,SAAXs1F,EAAsB,CA7Q9B,GAASsqD,IACF5jD,SAAe3xF,EAAA2xF,SA+QV1G,OAAQA,EA5QpBpB,GAAgCC,YAAYyrD,GAAA92I,KAAA,SAAAC,GAC9B,MAAAA,EAAAlI,QACPwJ,EAAY0iI,aAAA,KACZ1iI,EAAA6xF,SAAanzF,EAAAhJ,KACA6I,GA+QJA,IACAyB,EAAGsS,WAAY,GA5QjBjY,EAAAwH,MAAA,QAAA,yBAAmD,UAEzD,SAAUlB,GACV5I,EAAO2I,YAAiB,QAAM,mBAAA,eAiR9B3I,GA9QQ2I,YAAe,QAAK,gCAAA,SAoRpC,QAASs1I,GA9QY7+H,GA+QjBnX,EAAG0iI,aA9QK,KA+QR1iI,EAAGsiJ,mBAAqB,KACxBtiJ,EA9QG2xF,SAAA,KA+QH3xF,EAAGqyF,YAAc,KACjBryF,EAAGixF,kBACHpH,EAAyBE,oBAAoBtrF,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SA7QPwJ,EAAAixF,eAAAvyF,EAAyBhJ,KAC1ByhB,GACAA,MAEJ,SAAQxW,MAmRZ,QAASqT,KACLhU,EAAG66B,MAAO,EACV76B,EAAGqpF,oBACHrpF,EAAG+S,WA9QI,EA+QP/S,EAAGuiJ,yBA9QgB,KA+QnBviJ,EAAGmiJ,gCACHniJ,EA9QGgT,YAAY,EA+QfhT,EAAGqiJ,2BAA6B,KAChCriJ,EAAGwiJ,SAAW,KAElB,QAAS9qI,KACL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfmB,IA7QJlU,EAAAqpF,oBACIrpF,EAAA0iI,aAAkB,KAClB1iI,EAAA6xF,YA+QA7xF,EAAGsiJ,mBA9QY,KA+QftiJ,EAAGixF,kBACHjxF,EAAG2xF,SA9QS,KA+QZ3xF,EAAGwiJ,SA9QS,KA+QZxiJ,EAAGyxF,kBACHzxF,EAAGqyF,YA9QY,KA+QfngF,IAGJ,QAASR,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFA7QGtb,WAAU,EACT+F,KAAA,MAiRRuV,GA9QOjT,OAAAjB,KAAA,WACHuB,EAAAgT,YAAW,EACXhT,EAAA+S,WAAA,EA+QAmB,IACAlU,EAAGqpF,oBACHrpF,EAAG0iI,aA9QK,KA+QR1iI,EAAG6xF,YACH7xF,EAAGsiJ,mBA9QoB,KA+QvBtiJ,EAAGixF,kBACHjxF,EAAG2xF,SA9QQ,KA+QX3xF,EAAGwiJ,SA9QK,KA+QRxiJ,EAAGyxF,kBACHzxF,EAAGqyF,YAAc,KACjBngF,MAIR,QAASgC,KACLlU,EAAGyiJ,sBAAsBruI,gBAI7B,QA9QIsuI,GAASr5D,GAETrpF,EAAA66B,MAAI,EA+QJ76B,EAAG+S,WAAY,EACf/S,EAAGgT,YA9QS,EA+QZhT,EAAGqpF,iBA9QSj1F,QAAY8e,KAAAm2E,EAiRxB,KAAK,GAAIxxE,KAAK7X,GAAG87H,uBA7Qb97H,EAAA87H,uBAA0BjkH,GAAA4mG,uBAA6Bp1B,EAAgBo1B,uBACnEz+G,EAAAqpF,iBAAmBm1B,2BAAKx+G,EAAA87H,uBAAAjkH,GAkRhC25E,GA9QY,WA+QR,IAAK,GA9QG35E,KAAE7X,GAAAyxF,eACFzxF,EAAAyxF,eAAe55E,GAAMozE,SAAW5B,EAAA4B,SA+QhCjrF,EAAGqyF,YA9QOryF,EAAAyxF,eAAA55E,GAIQ,MA8QtBwxE,EA9QiBuzC,IAAAj3E,MA+QjB3lD,EAAGwiJ,SA9QC,IA+QJxiJ,EAAG2xF,SA9QCtI,EAAA50D,KAAAk9D,SA+QJ2jD,EA9QOt1I,EAAA2xF,SAAA3xF,EAAAqyF,YAAApH,OAAA,WACH,IAAA,GAAApzE,KAAW7X,GAAA6xF,SACR7xF,EAAA6xF,SAAYh6E,GAAA26E,SAAAnJ,EAAAmJ,SA+QPxyF,EAAG0iI,aAAe1iI,EAAG6xF,SAASh6E,QAK1C7X,EAAGwiJ,SAAW,KACdxM,EAAe,WACX,IAAK,GAAIn+H,KAAK7X,GAAGixF,eACTjxF,EAAGixF,eAAep5E,GAAGozE,SAAW5B,EAAiB4B,SACjDjrF,EAAGsiJ,mBAAqBtiJ,EAAGixF,eAAep5E,SAlQtE,QAAS0xE,GAAqBF,GAC1B,GAAA12E,GAAAtY,EAA0BsY,QAAA,UAAA,4CAAiDtb,WAAsB,EAAA+F,KAAA,MAC7FuV,GAAKjT,OAAAjB,KAAA,WAENwqF,EAA8BM,qBAAgBF,EAAiBw0C,eAAiBp/H,KAAQ,SAASC,GACnF,MAAHA,EAAGlI,QAgRDuB,EAAW2I,YAAY,UAAW,uBAAwB,sBA9QvE0hJ,EAAcpiJ,EAAAuiJ,yBAAA9jC,sBACdvsG,KAiRana,EAAW2I,YAAY,QAAS,0CAA4CrJ,WAAW,EAAM+F,KAAM,QA5QhH,SAAYuD,GACZ5I,EAAY2I,YAAA,QAAA,yEAAArJ,WAAA,EAAA+F,KAAA,UAEf,cAKA,QAAGulJ,GAAYt5D,GACZ,GAAAnpF,GAAiB/F,EAAAgG,sBACjBkpF,GAAAo1B,qBAAqBz+G,EAAAqpF,iBAAAm1B,2BAAAC,qBACrBp1B,EAAAmJ,OAAuB78F,QAAAqK,EAAA0iI,aAAA1iI,EAAA0iI,aAAAlwC,OAAA,GACvBnJ,EAAA4B,QAAqBt1F,QAAAqK,EAAAqyF,YAAAryF,EAAAqyF,YAAApH,OAAA,MAAAt1F,QAAAqK,EAAAsiJ,mBAAAtiJ,EAAAsiJ,mBAAAr3D,OAAA,IAErBjrF,EAAA+S,WAkBHs2E,EAAgB11E,WAAAzT,EAAAG,OAER4oF,EAAwBK,qBAAAD,GAAA5qF,KAAA,SAAAC,GAChBA,EAAAhJ,KAAAke,aAAA,GACD7b,EAAA2I,YAAA,UAA+BhC,EAAOhJ,KAAAme,QAAW,sBACjDuuI,EAAYpiJ,EAAAqpF,iBAAAm1B,2BAAAC,sBACZz+G,EAAAgT,YAAA,EACHhT,EAAA+S,WAAW,EAgRP2E,MA7QR3f,EAAW2I,YAAY,QAAShC,EAAAhJ,KAAAme,QAAoB,sBAgR5C7T,EAAGgT,YAAa,IAGrB,SAAUrS,GA9QZ5I,EAAA2I,YAAwB,mCAhC9B2oF,EAAAv1E,UAAyB5T,EAAAG,OACzB4oF,EAA2BG,oBAAAC,GAAA5qF,KAAA,SAAAC,GAC3BA,EAAAhJ,KAAqBke,aAAA,GAgRR7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,sBA9QpE3B,IACOlS,EAAWgT,YAAU,EAgRZ0E,MA7QF3f,EAAO2I,YAAc,QAAMhC,EAAWhJ,KAAAme,QAAc,sBACnD7T,EAAAgT,YAAW,IAGlB,SAAOrS,GAgRH5I,EAAW2I,YAAY,kCAyBnC,QAASgpF,GA/Q0BL,GAgR/B,GAAItoF,GAAM,yBAA4BsoF,EAAiB,SAAY,WAAa,UAAY,gBA9QzF1wE,GAAU0wE,EAAK,SAAA,WAAA,UAAA,mCACd12E,EAAAtY,EAAWsY,QAAY,UAgRvB5R,GAAO1J,WAAW,EAAM+F,KAAM,MAElCuV,GAAQjT,OAAOjB,KAAK,WA9QxBwqF,EAAgCS,2BAAsBL,EAAAw0C,eAAAp/H,KAAA,SAAAC,GAC/C,MAAAA,EAAAlI,QACHuB,EAAA2I,YAAyB,UAAAiY,EAAwB,IACrCzG,KAEDna,EAAY2I,YAAA,QAAA,mCAAArJ,WAAA,EAAA+F,KAAA,QAiRhB,SA/QEuD,GACD5I,EAAW2I,YAAY,QAAS,4EAA0BrJ,WAAA,EAAA+F,KAAA,UAiR/D,cAMP,QA/QIusF,KAgRA3pF,EAAGsS,WA/QS,CAgRZ,IAEI0T,IAjRO7rB,EAAqBgG,wBAkR5B8rC,YA/QO,iBAmRXg9C,GA/QmBU,yBAAA3jE,GAAAvnB,KAAA,SAAAC,GAgRf,GA/Qe,MAAXA,EAAAlI,OAAW,CAgRXwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CACf,IAAI2D,GAAInf,SAASijB,cAAc,IAC/BjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACrBqI,KAAM,oBAENtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,eAAgB,mBAClDwR,QAEAna,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OAC3E4C,EAAGsS,WAAY,GAGpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,EAAGsS,WAAY,IArYvB,GAAItS,GAAKC,IAETD,GAAGqU,kBA7QgBhJ,MAAc,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA8QjCrL,EAAGsU,SAAWtU,EA7QEqU,gBAAU,GA+Q1BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBA7QiB,SAASC,GA8QzBzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAG4iJ,wBACH7qJ,EAAW2c,SAAU,EAGrB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGg2I,eAAiBA,EACpBh2I,EAAG0iJ,mBA7QcA,EA8QjB1iJ,EAAGupF,qBA7QsBA,EA8QzBvpF,EAAG2iJ,mBAAqBA,EACxB3iJ,EAAGwxF,aAAeA,EAClBxxF,EAAG0pF,2BAA6BA,EAChC1pF,EAAGoiJ,uBAAyBA,EAC5BpiJ,EAAG2pF,yBAA2BA,EAC9B3pF,EAAGs1I,mBAAqBA,EAExBpjI,IACAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GAAQ,GAAIC,QAAO,gBACnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EAAMje,KAAKme,GA1QxB,MA2QY5qB,GAAMkB,iBA5QTtF,EAAA2I,YAAA,OAAA,iCAAA,mBACT,2MAgOAtM,QACKC,OA7QO,gCA8QPe,WA7QW,uBAAkB8sJ,MA+pBtC,WACI,YAOA,SAASW,GA/Q0B9oJ,EAAAhC,EAAAiC,EAAAQ,EAAAH,EAAA0uE,GAsT/B,QA/QO72D,KAgRH62D,EAAqBO,sBAAsBvvE,EAAOhC,GAAY0G,KAAK,SAAUC,GA9QjF,GAAiB,MAARA,EAAAlI,OAAQ,CACVwJ,EAAA8iJ,0BAAapkJ,EAAAhJ,IACb,KAAA,GAAYwF,KAAA8E,GAAA8iJ,0BACf9iJ,EAAA8iJ,0BAAA5nJ,GAAA6nJ,+BAAApmJ,KAAAC,MAAAoD,EAAA8iJ,0BAAA5nJ,GAAA6nJ,+BAEG,KAAA,GAAA7nJ,KAAe8E,GAAA8iJ,0BACf9iJ,EAAW8iJ,0BAAA5nJ,GAAA8nJ,iBAAArmJ,KAAAC,MAAAoD,EAAA8iJ,0BAAA5nJ,GAAA8nJ,iBAGXhjJ,GAAAsS,WAAW,MAEXva,GAAA2I,YAAiB,QAAA,yBAAA,eAEpB,SAAAC,GAgRI5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QA/QQsT,KAgRJhU,EAAG+S,WA/QK,EAgRR/Y,EAAO8F,GA/QC,qBA8RZ,QA/QQmjJ,GAAGC,GAgRPljJ,EAAGkjJ,WA/QC9uJ,QAAA8e,KAAAgwI,EAgRJ,IAAIxtJ,IACAqd,WAAW,EACXmwI,WAAYljJ,EAAGkjJ,WA7QnBlpJ,GAAG8F,GAAA,qBAgRCpK,KAAMA,IAId,QAASg1E,GAAiBw4E,GA9QtB,GAAGvwI,GAAOtY,EAAAsY,QAAA,UACP,4CACAtb,WAAa,EACb+F,KAAA,MAiRHuV,GAAQjT,OAAOjB,KAAK,WA9QpBsqE,EAAiB2B,iBAAwBw4E,EAAA5rH,cAAA74B,KAAA,SAAAC,GAC9B,MAAAA,EAAAlI,QACAuB,EAAA2I,YAAiB,UAAA,uBAAgC,cAgRhDwR,KAEAna,EAAW2I,YAAY,QAAS,2BA9Q/BrJ,WAAY,EACZ+F,KAAQ,WA2KzB,GAAI4C,GAAKC,IAETD,GAAGqU,kBACChJ,MA/QO,IAiRPA,MAAS,KAETA,MA/QI,KAiRJA,MAAS,KAETA,MAAS,MA7QbrL,EAAAsU,SAAStU,EAAAqU,gBAAe,GAiRxBrU,EAAGuU,YA/QI,EAgRPvU,EAAGwU,qBA/Qe,SAAAC,GACdzU,EAAGuU,YAAcE,GAkRrBzU,EAAGgT,YA/Qa,EAiRhBhT,EAAG+S,WA/QS,EAgRZ/S,EAAGsS,WAAY,EACftS,EAAGqoD,kBACHtwD,EA/QO2c,SAAU,EAiRjB1U,EAAGgU,OAASA,EACZhU,EAAGijJ,eAAiBA,EACpBjjJ,EAAG0qE,iBAAmBA,EAEtB1qE,EAAG2iB,UA/QW,WACV3iB,EAAGgT,YAAA,GAmRPd,IA4BAlS,EAAGmjJ,eA/QQ,SAAaD,GAgRpBljJ,EAAGkjJ,WA/QI9uJ,QAAY8e,KAAAgwI,EAgRnB,IA/QIxtJ,IACAqd,WAAG,EACHmwI,WAAGljJ,EAAAkjJ,WAiRPlpJ,GA/QO8F,GAAA,kBACHpK,KAAGA,yFAkMftB,QACKC,OAAO,0BACPe,WAAW,gCA/QsBytJ,MAmY1C,WACI,YAOA,SAASO,GAAarpJ,EA/QMhC,EAAGiC,EAAkBQ,EAAAH,EAAW0uE,GAsTxD,QA/QI72D,KAgRA62D,EAAqBQ,yBAAyBxvE,EAAOhC,GAAY0G,KAAK,SAAUC,GA9Q5E,GAAe,MAAXA,EAAAlI,OAAW,CACfwJ,EAAAupE,yBAA6B7qE,EAAAhJ,IAC7B,KAAA,GAAAwF,KAAA8E,GAAAupE,yBACQvpE,EAAAupE,yBAAuBruE,GAAM6nJ,+BAAApmJ,KAAAC,MAAAoD,EAAAupE,yBAAAruE,GAAA6nJ,+BAiRjC,KA/QI,GAAA7nJ,KAAA8E,GAAAupE,yBACAvpE,EAAGupE,yBAAaruE,GAAA8nJ,iBAAArmJ,KAAAC,MAAAoD,EAAAupE,yBAAAruE,GAAA8nJ,iBAkRpBhjJ,GAAGsS,WA/QY,MAiRfva,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SA/QIC,GAgRH5I,EA/QI2I,YAAW,QAAY,mBAAA,gBAmRnC,QA/QQsT,KAgRJhU,EAAG+S,WAAY,EACf/Y,EA/QI8F,GAAA,qBA8RR,QAASmjJ,GAAeC,GACpBljJ,EAAGkjJ,WAAa9uJ,QAAQ8e,KAAKgwI,EAC7B,IAAIxtJ,IACAqd,WAAW,EA9QnBmwI,WAASljJ,EAAAkjJ,WAELlpJ,GAAI8F,GAAA,qBACApK,KAAAA,IAmRR,QA/QQg1E,GAAAw4E,GAgRJ,GAAIvwI,GA/QQtY,EAAIsY,QAAW,UAgRvB,4CACItb,WA/QI,EAgRJ+F,KAAM,MAEduV,GAAQjT,OAAOjB,KAAK,WAChBsqE,EA/QkB2B,iBAAAw4E,EAAA5rH,cAAA74B,KAAA,SAAAC,GACH,MAAXA,EAAAlI,QAgRIuB,EAAW2I,YAAY,UAAW,uBAAwB,cA9QnEwR,KAiRSna,EAAW2I,YAAY,QAAS,2BAC5BrJ,WAAW,EACX+F,KAAM,WApG1B,GAAI4C,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MA7QbrL,EAAAsU,SAAStU,EAAAqU,gBAAqB,GAiR9BrU,EAAGuU,YA/QS,EAgRZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YA/QCE,GAkRRzU,EAAGgT,YA/Qa,EAiRhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGqoD,kBACHtwD,EAAW2c,SAAU,EAErB1U,EAAGgU,OA/QSA,EAgRZhU,EAAGijJ,eAAiBA,EACpBjjJ,EAAG0qE,iBA/QgBA,EAiRnB1qE,EAAG2iB,UAAY,WACX3iB,EAAGgT,YAAa,GAIpBd,IA4BAlS,EAAGmjJ,eA/QgB,SAAAD,GAgRfljJ,EAAGkjJ,WA/QY9uJ,QAAA8e,KAAYgwI,EAgR3B,IAAIxtJ,IACAqd,WA/QW,EAgRXmwI,WA/QQljJ,EAAAkjJ,WAiRZlpJ,GAAO8F,GAAG,kBACNpK,KAAMA,yFA7ElBtB,QACKC,OAAO,0BACPe,WA/QW,eAAcguJ,MAmYlC,WACI,YAOA,SAASC,GAAiCtpJ,EAAOhC,EAAYiC,EAAQQ,EAAQH,EAAS0uE,GAuClF,QAhRG72D,KACC62D,EAASM,mCAAAtvE,EAAAhC,GAAA0G,KAAA,SAAAC,GACV,GAAA,MAAAA,EAAAlI,OAAA,CACCwJ,EAASqpE,mCAAA3qE,EAAAhJ,IAiRD,KAAK,GAAIwF,KAAK8E,GAAGqpE,mCA/QfrpE,EAAGqpE,mCAAgBnuE,GAAA6nJ,+BAAApmJ,KAAAC,MAAAoD,EAAAqpE,mCAAAnuE,GAAA6nJ,+BAE9B,KAAc,GAAA7nJ,KAAA8E,GAAAqpE,mCACdrpE,EAAAqpE,mCAAsCnuE,GAAA8nJ,iBAAArmJ,KAAAC,MAAAoD,EAAAqpE,mCAAAnuE,GAAA8nJ,iBAkR7BvO,KACAz0I,EAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,eA9QnE,SAAYC,GACZ5I,EAAA2I,YAAiB,QAAA,mBAAA,gBAIpB,QAAG+zI,KACAz0I,EAAA00I,gBAiRC10I,EAAG20I,gBA9QH,KAAG,GAAAz5I,KAAA8E,GAAaqpE,mCAiR4C,IAApDrpE,EAAGqpE,mCAAmCnuE,GAAGtF,QACzCoK,EAAG00I,aAAa78I,KAAKmI,EAAGqpE,mCAAmCnuE,IAGP,IAApD8E,EAAGqpE,mCAAmCnuE,GAAGtF,QA/Q5CoK,EAAA20I,cAAO98I,KAAAmI,EAAAqpE,mCAAAnuE,MAsRP8E,EAAG00I,aAAav5I,OAAS,IAAM6E,EAAG20I,cAAcx5I,OAAS,IAC1Dd,EAhRI8C,OAAS,UAAQ,4DAiRjB9F,WAhRO,EAiRP+F,KAAM,OAOlB,QAhRQ4W,KAiRJhU,EAAG+S,WAAY,EACf/Y,EAAO8F,GAAG,qBAgBd,QAASmjJ,GAAeC,GACpBljJ,EAAGkjJ,WAAa9uJ,QAAQ8e,KAAKgwI,EAC7B,IAAIxtJ,IA/QRqd,WAAS,EACFmwI,WAAaljJ,EAAAkjJ,WAkRhBlpJ,GAhRI8F,GAAA,qBACApK,KAAAA,IAoRR,QAASg1E,GAAiBw4E,GACtB,GAAIvwI,GAAUtY,EAAQsY,QAAQ,UAC1B,4CA/QCtb,WAAA,EACD+F,KAAU,MAkRduV,GAhRQjT,OAAAjB,KAAW,WAiRfsqE,EAhRU2B,iBAAAw4E,EAAA5rH,cAAA74B,KAAA,SAAAC,GAiRa,MAAfA,EAAIlI,QA/QRuB,EAAY2I,YAAY,UAAA,uBAAA,cAC5BwR,KAEQna,EAAW2I,YAAY,QAAA,2BACvBrJ,WAAA,EACG+F,KAAA,WAiJnB,GAAI4C,GAAKC,IAETD,GAAGqU,kBACChJ,MA/QQ,IAiRRA,MAAS,KAETA,MA/QQ,KAiRRA,MAAS,KAETA,MA/QI,MAiRRrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GAC/BzU,EAAGuU,YAAcE,GA5Q5BzU,EAAAgT,YAAY,EAiRLhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EA/QnBtS,EAAAqoD,kBAiRItwD,EAhRQ2c,SAAA,EAkRR1U,EAAGgU,OAASA,EACZhU,EAAGijJ,eAAiBA,EA/QxBjjJ,EAAA0qE,iBAASA,EAkRL1qE,EAAG2iB,UAAY,WA/QZ3iB,EAAAgT,YAAA,GAoRHd,IAsDAlS,EAAGmjJ,eAhRW,SAAAD,GAiRVljJ,EAAGkjJ,WAAa9uJ,QAAQ8e,KAAKgwI,EAC7B,IAAIxtJ,IACAqd,WAAW,EA/QhBmwI,WAAiBljJ,EAAAkjJ,WAEhBlpJ,GAAI8F,GAAA,kBACApK,KAAAA,yFAyKZtB,QACKC,OAAO,0BACPe,WA/QW,mCAAUiuJ,MA8Z9B,WACI,YAOA,SAjRKC,GAAOvpJ,EAAAhC,EAAAiC,EAAAQ,EAAAH,EAAA0uE,GAgCR,QAAG72D,KACA62D,EAAiBK,sBAAArvE,EAAAhC,GAAA0G,KAAA,SAAAC,GACjB,GAAmB,MAAnBA,EAAAlI,OAAmB,CAkRVwJ,EAAGqoD,eAAiB3pD,EAAIhJ,IAhRjC,KAAY,GAAAwF,KAAA8E,GAAYqoD,eACpBroD,EAAAqoD,eAAantD,GAAA6nJ,+BAAApmJ,KAAAC,MAAAoD,EAAAqoD,eAAAntD,GAAA6nJ,+BAmRR,KAAK,GAAI7nJ,KAAK8E,GAAGqoD,eACbroD,EAAGqoD,eAAentD,GAAG8nJ,iBAAmBrmJ,KAAKC,MAAMoD,EAAGqoD,eAAentD,GAAG8nJ,iBA9Q/EhjJ,GAAAsS,WAAO,MAEJva,GAAI2I,YAAgB,QAAA,yBAAA,eAmRzB,SAjRUC,GAkRT5I,EAjRW2I,YAAA,QAAA,mBAA4B,gBAqR/C,QAASsT,KACLhU,EAAG+S,WAAY,EACf/Y,EAAO8F,GAjRC,qBAeZ,QAAGmjJ,GAAiBC,GAChBljJ,EAAGkjJ,WAAa9uJ,QAAQ8e,KAAKgwI,EAC7B,IAAIxtJ,IACAqd,WAAW,EACXmwI,WAAYljJ,EAAGkjJ,WAEnBlpJ,GAAO8F,GAAG,qBACNpK,KAAMA,IAId,QAASg1E,GAAe53D,GACpB,GAAGH,GAAAtY,EAAasY,QAAa,UACzB,4CACAtb,WAAW,EACX+F,KAAA,MAEJuV,GAAOjT,OAAGjB,KAAA,WACNsqE,EAAM2B,iBAAA53D,EAAAwkB,cAAA74B,KAAA,SAAAC,GAkRiB,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,cAC1DwR,KA/QRna,EAAkB2I,YAAQ,QAAA,2BAC1BrJ,WAAA,EACI+F,KAAW,WAoLvB,GAjRC4C,GAAAC,IAmRDD,GAAGqU,kBAhRPhJ,MAAS,IAmRDA,MAAS,KA/QTA,MAAS,KAETA,MAAS,KAETA,MAAS,MAmRbrL,EAAGsU,SAjRUtU,EAAAqU,gBAAA,GAmRbrU,EAAGuU,YAjRU,EAkRbvU,EAAGwU,qBAAuB,SAAUC,GAhRjCzU,EAAAuU,YAAcE,GAGjBzU,EAAG+S,WAAA,EAkRH/S,EAAGsS,WAjRI,EAkRPtS,EAAGqoD,kBACHtwD,EAAW2c,SAAU,EAErB1U,EAAGgU,OAASA,EAhRZhU,EAAGijJ,eAAYA,EACfjjJ,EAAG0qE,iBAAYA,EAEfx4D,IA4SAlS,EAAGmjJ,eAAiB,SAAUD,GAE1BljJ,EAAGkjJ,WAjRY9uJ,QAAA8e,KAAYgwI,EAkR3B,IAAIxtJ,IACAqd,WAAW,EACXmwI,WAAYljJ,EAAGkjJ,WA/QnBlpJ,GAAG8F,GAAA,kBACHpK,KAAUA,yFArErBtB,QACGC,OAAA,0BAiRKe,WAAW,wBAAyBkuJ,MAyG7C,WACI,YAOA,SAjRKC,GAAAxrJ,EAAAyC,EAAAH,EAAAN,EAAAgY,EAAA5X,EAAA4uE,EAkRDj3D,EAAc4D,EAAaD,EAAazD,EAAgB2oC,EAAqBK,EAAiBwoG,EAC9FntB,EAAsBD,EAAoB/3G,EAAQrkB,EAAQyQ,GA6E1D,QAlRSyZ,KAmRLlqB,EAlRI8F,GAAI/H,EAAGyE,eAoTf,QAlRQ0V,KAgBRH,EAAS8D,mBAA6BpX,KAAA,SAAAC,GACZ,MAAlBA,EAAAlI,SACAwJ,EAAA8V,YAAApX,EAAAhJ,KACIsK,EAAAsS,WAAW,KAGnBN,EAAe8M,kBAAgBrgB,KAAA,SAAAC,GAC3B,MAAAA,EAAAlI,SACIwJ,EAAAyjJ,SAAQ/kJ,EAAAhJ,KAmRRsK,EAAGsS,WAlRY,KAuRvBy2D,EAlRgBW,uBAAMjrE,KAAA,SAAAC,GAmRC,MAAfA,EAAIlI,SACJwJ,EAAG0jJ,mBAAqBhlJ,EAAIhJ,KAC5BsK,EAAGsS,WAAY,KAzQlC,QAAY8D,GAAAC,EAAA9X,GACT8X,EAmRYvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAASC,GACnC,MAAfA,EAAIlI,SAlRxBwJ,EAAAuW,UAAA7X,EAAAhJ,KACYsK,EAAAuW,UAAApb,OAAA,GACId,EAAA8C,OAAA,UAAyB,0BAAA6C,EAAAkjJ,WAAAS,WAAAjtI,aAoRbrf,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,EAlR5B/T,GACUA,QAITyB,EAAAuW,aACDvW,EAAAkjJ,WAAAU,SAAA,KACC5jJ,EAAA+W,YACD/W,EAAAkjJ,WAAAW,QAAA,MAMH,QAAGjtI,GAAuBC,EAAUtY,GAC7BsY,EAoRCnB,EAAYoB,iBAAiBD,GAASpY,KAAK,SAASC,GAC7B,MAAfA,EAAIlI,SAlRLwJ,EAAA+W,SAAArY,EAAAhJ,KACAsK,EAAA+W,SAAA5b,OAAA,GACKd,EAAA8C,OAAA,UAAA,yBAAA6C,EAAAkjJ,WAAAU,SAAA5sI,WACC3f,WAAA,EAoRG+F,KAAM,OAhR3B4C,EAAAsS,WAAmB,EAoRF/T,GAlRpBA,QAIQyB,EAAA+W,YAoRA/W,EAAGkjJ,WAnRIW,QAAiB,KAoRxB7jJ,EAAG4V,YACH5V,EAAGkjJ,WAnRQY,QAAA,MAwRnB,QAAStkI,GAAoBpI,EAAQ7Y,GACjCkX,EAnRWgK,gBAAYrI,GAAA3Y,KAAA,SAAAC,GACZ,MAmRHA,EAnRGlI,SACHwJ,EAAA4V,SAAWlX,EAAAhJ,KAoRPsK,EAAG4V,SAASza,OAAS,GAlR9Bd,EAAe8C,OAAA,UAAA,yBAAA6C,EAAAkjJ,WAAAW,QAAA9lI,UACH1mB,WAAY,EAoRX+F,KAAM,OAhRjB4C,EAAAsS,WAAS,EACX/T,GACOA,OA0Rd,QAnRQwlJ,GAAW1tI,EAAA9X,GACX8X,EAoRAvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAASC,GAlRpD,MAAAA,EAAAlI,SACAwJ,EAAAgkJ,cAAAtlJ,EAAAhJ,KAoRMsK,EAAGgkJ,cAAc7oJ,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,0BAA4B6C,EAAGkjJ,WAAWe,YAAYvtI,aAC5Erf,WAAW,EAlRX+F,KAAA,OAGhB4C,EAAWsS,WAAA,EACC/T,GAoRAA,QAIZyB,EAAGgkJ,iBACHhkJ,EAAGkjJ,WAAWgB,UAAY,KAlRlClkJ,EAASmkJ,gBACDnkJ,EAAAkjJ,WAAUkB,SAAQ,MAuR1B,QAASC,GAAyBxtI,EAAStY,GAlRvCsY,EACInB,EAAAoB,iBAAqBD,GAAiBpY,KAAI,SAAAC,GACnB,MAAfA,EAAIlI,SACJwJ,EAAAmkJ,aAAWzlJ,EAAAhJ,KACXsK,EAAAmkJ,aAAAhpJ,OAAA,GACGd,EAAA8C,OAAA,UAAA,yBAAA6C,EAAAkjJ,WAAAgB,UAAAltI,WACH3f,WAAW,EACP+F,KAAA,OAsRJ4C,EAAGsS,WAAY,EACX/T,GACAA,QA/QhByB,EAAAmkJ,gBACRnkJ,EAAAkjJ,WAAAkB,SAAA,KAoRYpkJ,EAAGskJ,gBACHtkJ,EAAGkjJ,WAAWqB,SAAW,MAIjC,QAASC,GAAwBptI,EAAQ7Y,GACjC6Y,EAnRH3B,EAAAgK,gBAA8BrI,GAAQ3Y,KAAA,SAASC,GACzB,MAAbA,EAAAlI,SACdwJ,EAAAskJ,aAAsB5lJ,EAAAhJ,KACbsK,EAAAskJ,aAAAnpJ,OAAA,GAqRWd,EAAQ8C,OAAO,UAAW,yBAA2B6C,EAAGkjJ,WAAWkB,SAASrmI,UAnR1E1mB,WAAA,EACT+F,KAAA,OAGV4C,EAAAsS,WAAA,EACU/T,GACVA,QAwRKyB,EAAGkjJ,WAAWqB,SAAW,KAnR9BvkJ,EAAAskJ,iBAMH,QAAGG,GAAgCpuI,EAAK9X,GAChC8X,EAqRAvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAASC,GACnC,MAAfA,EAAIlI,SAnRLwJ,EAAA0kJ,aAAAhmJ,EAAAhJ,KACEsK,EAAA0kJ,aAAAvpJ,OAAA,GACFd,EAAA8C,OAAA,UAAA,0BAAA6C,EAAAkjJ,WAAAS,WAAAjtI,aACIrf,WAAA,EACT+F,KAAA,OAGP4C,EAAAsS,WAA0B,EAC1B/T,GACAA,QAIAyB,EAAA0kJ,gBAqRK1kJ,EAAGkjJ,WAAWyB,SAAW,KAnR9B3kJ,EAAA4kJ,eACA5kJ,EAAAkjJ,WAAA2B,QAA2B,MAwR9B,QAASC,GAAwBjuI,EAAStY,GAnRvCsY,EAqRKnB,EAAYoB,iBAAiBD,GAASpY,KAAK,SAASC,GAnRhD,MAAAA,EAAAlI,SACGwJ,EAAA4kJ,YAAAlmJ,EAAAhJ,KACKsK,EAAA4kJ,YAAAzpJ,OAAA,GACjBd,EAAmB8C,OAAA,UAAA,yBAAA6C,EAAAkjJ,WAAAyB,SAAA3tI,WACF3f,WAAA,EACjB+F,KAAyB,OAuRZ4C,EAAGsS,WAAY,EACX/T,GAnRpBA,QAIIyB,EAAM4kJ,eACP5kJ,EAAAkjJ,WAAA2B,QAAA,KACC7kJ,EAAA+kJ,eACA/kJ,EAAMkjJ,WAAA8B,QAAA,MAwRV,QAASC,GAAuB7tI,EAAQ7Y,GAnRrCkX,EAAAgK,gBAAuBrI,GAAA3Y,KAAA,SAAAC,GACC,MAAvBA,EAAAlI,SACQwJ,EAAA+kJ,YAAArmJ,EAAAhJ,KACTsK,EAAA+kJ,YAAA5pJ,OAAA,GACCd,EAAA8C,OAAuB,UAAA,yBAAA6C,EAAAkjJ,WAAA2B,QAAA9mI,UACf1mB,WAAA,EAqRQ+F,KAAM,OAjRf4C,EAAGsS,WAAW,EAqRT/T,GACAA,OAiChB,QAAS2mJ,KAEL,GAAIpsG,KACJ94C,GAAGkjJ,WAAWrkG,mBACd,IAAIsmG,GAAMnlJ,EAAGkjJ,WAAWvlG,iBAEpB76B,IACJ,KAAK,GAAI5nB,KAAKiqJ,GACexvJ,QAArBwvJ,EAAIjqJ,GAAGghD,YACPp5B,EAASjrB,KAAKstJ,EAAIjqJ,GAAGghD,WAG7BpD,GAAOh2B,CACP,IAAIK,GAAaxmB,KAAKqkB,UAAU83B,GAC5B4K,EAAcvgC,EAAWG,UAAU,EAAGH,EAAWhoB,OAAS,GAlR1DF,GAqRAihD,WApROwH,EAsRX1I,GAAgBwuC,wBAAwBvuF,GAAKwD,KAAK,SAASC,GACvD,GAAmB,MAAfA,EAAIlI,OAAgB,CAnR5BwJ,EAAAu8C,aAAe79C,EAAAhJ,IACP,KAAI,GAAAmiB,KAAA7X,GAAWu8C,aACZv8C,EAAAu8C,aAAe1kC,GAAA6mC,YAAA1+C,EAAAu8C,aAAA1kC,GAAA6mC,YAAA,gBAAA1+C,EAAAu8C,aAAA1kC,GAAA2rC,YAAA7xB,eAsRd3xB,GAAGu8C,aAAaphD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,+BAAiC6C,EAAGkjJ,WAAWvlG,iBAAiB9B,cACtFxkD,WAAW,EACX+F,KAAM,OAjRd4C,EAAGsS,WAAA,KAsSf,QAAS8yI,GApRqBttB,EAAAv5H,GAqR1B83H,EAAqBgvB,6BAA6BvtB,GAAuBr5H,KAAK,SAASC,GAChE,MAAfA,EAAIlI,QACJwJ,EAAGslJ,aApRI5mJ,EAAYhJ,KAqRnBsK,EAAGsS,WApRK,EAqRJ/T,GACAA,KAlRLxG,EAAA2I,YAAA,QAAA,yBAAA,sBAsRJ,SApRIC,GACH5I,EAAG2I,YAAW,QAAA,mBAAA,uBAwRtB,QAAS6kJ,KACL,GAAItqJ,IACAqiH,OAAQt9G,EAAGkjJ,WAAWsC,yBAAyB1tB,sBAnRvDla,kBAAS59G,EAAqBkjJ,WAASuC,qBAAU7nC,kBACzCK,WAASj+G,EAAAkjJ,WAAAuC,qBAAAxnC,WACTl/D,SAAA/+C,EAAYkjJ,WAAAnS,wBAA+B1oH,KAsR/C+tG,GApReyF,kBAAe5gI,GAAAwD,KAAA,SAAAC,GACX,MAoRXA,EApRIlI,OAqRJwJ,EAAGk+G,SApRKx/G,EAAQhJ,KAsRhBqC,EAAW2I,YApRO,QAAA,mCAAA,WAsRvB,SAASC,MAahB,QAAS+Q,KACL1R,EAAGkjJ,cAQP,QAAShvI,KACLlU,EAAG0lJ,2BAA2BtxI,gBAGlC,QAASuxI,GApROzC,GAqRZljJ,EAAGX,MAAO,EACVW,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAGhBhT,EAAGkjJ,WAAa9uJ,QAAQ8e,KAAKgwI,EAjR7B,KAAI,GAAArrI,KAAA7X,GAAW+e,kBACX/e,EAAA+e,kBAAalH,GAAAmI,SAAoBkjI,EAAgBljI,SAC7ChgB,EAAAkjJ,WAAQjjI,sBAAgBjgB,EAAA+e,kBAAAlH,GAyRhCzB,GApRoB8sI,EAAM7sI,UAAA,WAsRtB,IAAK,GAAIwB,KAAK7X,GAAG8V,YAnRT9V,EAAG8V,YAAY+B,GAAAxB,YAAA6sI,EAAA7sI,YACfrW,EAAAkjJ,WAAIzsI,gBAAAzW,EAAA8V,YAAA+B,GAuRZ,KAAK,GAAIA,KAAK7X,GAAGuW,UAnRdvW,EAAAuW,UAAAsB,GAAAhB,UAAAqsI,EAAArsI,UACA7W,EAAAkjJ,WAAgBvsI,cAAA3W,EAAAuW,UAAAsB,GAGnBjB,GAAcssI,EAAWrsI,QAAA,WAqRrB,IAAK,GAAIgB,KAAK7X,GAAG+W,SACT/W,EAAG+W,SAASc,GAAGT,SAAW8rI,EAAW9rI,SACrCpX,EAAGkjJ,WAAWjsI,aAAejX,EAAG+W,SAASc,MAIrD2H,EApRY0jI,EAAgB9rI,OAAA,WAqRxB,IApRI,GAAGS,KAAA7X,GAAA4V,SACC5V,EAAG4V,SAAAiC,GAAAI,SAAsBirI,EAAGjrI,SAC5BjY,EAAAkjJ,WAAQ3jI,aAAkBvf,EAAA4V,SAAAiC,QA4R9C,QAAS+tI,GAAiB1C,GAEtB,GAAIvwI,GApRGtY,EAAAsY,QAAA,UACH,4CACGtb,WAAW,EACX+F,KAAA,MAuRPuV,GAAQjT,OAAOjB,KAAK,WAChBsqE,EAAqB2B,iBAAiBw4E,EAAWl6H,cAAcvqB,KAAK,SAASC,GAnR5E,MAAAA,EAAAlI,QACOuB,EAAA2I,YAAA,UAAA,iCAAA,cACRwR,KAEQna,EAAG2I,YAAmB,QAAA,2BAClBrJ,WAAG,EACH+F,KAAA,QAuRT,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,mEAnR5BrJ,WAAG,EACH+F,KAAI,UAuRb,cAoEP,QAASyoJ,GApRO3C,GAsRZ,GAAIxvI,GAAcvZ,EAAsBgG,uBAEpC24C,KACA/6C,EAAOiC,EAAGkjJ,WAAWrkG,gBAjRzB,KAAI,GAAI3jD,KAAA6C,GACkBpI,QAAnBoI,EAAA7C,GAAA4jD,WACHhG,EAASjhD,KAAKkG,EAAG7C,GAAA4jD,UAuRrB,IAAIgnG,GAAqBhtG,EAAKplB,KAAK,KAM/BqyH,GACA50D,KAA6Bx7F,QAAtBqK,EAAGkjJ,WAAW/xD,KAAqBnxF,EAAGkjJ,WAAW/xD,KAAO,GAC/D60D,aAA6CrwJ,QAA9BqK,EAAGkjJ,WAAW8C,aAA6BhmJ,EAAGkjJ,WAAW8C,aAAe,GACvFC,aAA6CtwJ,QAA9BqK,EAAGkjJ,WAAW+C,aAA6BjmJ,EAAGkjJ,WAAW+C,aAAe,GACvF5vI,UAAwC1gB,QAA5BqK,EAAGkjJ,WAAWS,WAA2B3jJ,EAAGkjJ,WAAWS,WAAWttI,UAAY,EAC1FQ,QAAoClhB,QAA1BqK,EAAGkjJ,WAAWU,SAAyB5jJ,EAAGkjJ,WAAWU,SAAS/sI,QAAU,EAClFO,OAAkCzhB,QAAzBqK,EAAGkjJ,WAAWW,QAAwB7jJ,EAAGkjJ,WAAWW,QAAQzsI,OAAS,EAC9Ea,OAAkCtiB,QAAzBqK,EAAGkjJ,WAAWY,QAAwB9jJ,EAAGkjJ,WAAWY,QAAQ7rI,OAAS,EAC9EK,QAAmC3iB,QAAzBqK,EAAGkjJ,WAAWY,QAAwB9jJ,EAAGkjJ,WAAWY,QAAQxrI,QAAU,IAGhF4tI,GACAF,aAAchmJ,EAAGkjJ,WAAWiD,gBAC5BF,aAAcjmJ,EAAGkjJ,WAAWkD,gBAC5B/vI,UAAWrW,EAAGkjJ,WAAWmD,WAAWhwI,UAnR5CQ,QAAS7W,EAAAkjJ,WAAAyB,SAA8B9tI,QACnCO,OAAApX,EAAAkjJ,WAAA2B,QAAAztI,OACIa,OAAOjY,EAAAkjJ,WAAA8B,QAAA/sI,OACRK,QAAAtY,EAAWkjJ,WAAA8B,QAAmB1sI,SAG7BguI,GACJC,SAAcvmJ,EAAAkjJ,WAAKqD,SACfC,MAAyB7wJ,QAAjBqK,EAAGkjJ,WAAAsD,MAAyBxmJ,EAAAkjJ,WAAAsD,MAAA,GAqRpCC,SApRIzmJ,EAASkjJ,WAAS/vG,SAqRtBuzG,WAAY1mJ,EAAGkjJ,WAAWviI,QAC1BgmI,cAA6ChxJ,QAA7BqK,EAAGkjJ,WAAW0D,YAA4B5mJ,EAAGkjJ,WAAW0D,YAAc,GAnR1FC,QAAOlxJ,QAAAqK,EAAAkjJ,WAAA4D,QAAA9mJ,EAAAkjJ,WAAA4D,QAAA,GACH9zG,QAAAhzC,EAAAkjJ,WAAkBlwG,SAGlB+zG,GACAC,eAAYhnJ,EAAAkjJ,WAAA+D,eAqRZC,aAAclnJ,EAAGkjJ,WAAWiE,sBAnRhCC,SAAApnJ,EAAgBkjJ,WAAAmE,gBACZC,UAAQtnJ,EAAAkjJ,WAAgBqE,iBAqRxBC,eApROxnJ,EAAAkjJ,WAAmB,gBAAAljJ,EAAAkjJ,WAAAuE,gBAAA,GAqR1BC,aApRa1nJ,EAAKkjJ,WAAG,uBAAcljJ,EAAAkjJ,WAAAyE,uBAAA,GAqRnCC,SApRW5nJ,EAAAkjJ,WAAa,iBAAqBljJ,EAAAkjJ,WAAa2E,iBAAiB;AAqR3EC,UAAY9nJ,EAAGkjJ,WAAW,kBAAqBljJ,EAAGkjJ,WAAW6E,kBAAoB,IAGjFC,GACAC,cApRYjoJ,EAAMkjJ,WAAAgF,WAqRlBC,IAAKnoJ,EAAGkjJ,WAAWiF,IACnBC,iBAAkBpoJ,EAAGkjJ,WAAWmF,aAChCC,UApROtoJ,EAAAkjJ,WAAYqF,QAqRnBC,QAASxoJ,EAAGkjJ,WAAWuF,IACvBC,IAAK1oJ,EAAGkjJ,WAAWwF,IACnBC,8BAA+B3oJ,EAAGkjJ,WAAWyF,8BAC7CC,aAAc5oJ,EAAGkjJ,WAAW2F,aAC5BC,IAAK9oJ,EAAGkjJ,WAAW4F,IACnBC,gBAAiB/oJ,EAAGkjJ,WAAW8F,gBAnRvCC,IAA2BtzJ,QAA3BqK,EAAAkjJ,WAA2BgG,QAAAlpJ,EAAAkjJ,WAAoCgG,QAAS,GAChEC,aAAInpJ,EAAWkjJ,WAAKkG,cAEpBC,GAqRAzhD,SApRG5nG,EAAAkjJ,WAAAt7C,SACHE,UAAW9nG,EAAAkjJ,WAAYoG,KAqRvBC,KAAMvpJ,EAAGkjJ,WAAWqG,KAnRzBC,OAASxpJ,EAAKkjJ,WAAAsG,OACbnzI,UAAWrW,EAAAkjJ,WAAYuG,YAASpzI,UAqR5BQ,QAAS7W,EAAGkjJ,WAAWwG,UAAU7yI,QACjCO,OAAQpX,EAAGkjJ,WAAWyG,SAASvyI,OAnRvCa,OAASjY,EAAAkjJ,WAAA0G,SAAA3xI,OACLK,QAAAtY,EAAAkjJ,WAAqB0G,SAAAtxI,SAuRjBuxI,GACAC,UApRQn0J,QAAAqK,EAAAkjJ,WAAA4G,UAAA9pJ,EAAAkjJ,WAAA4G,UAAA,GAqRRC,WApRQp0J,QAAAqK,EAAAkjJ,WAAA8G,gBAAAhqJ,EAAAkjJ,WAAA8G,gBAAA,GAqRRv6G,YApRO95C,QAAAqK,EAAAkjJ,WAAA+G,iBAAAjqJ,EAAAkjJ,WAAA+G,iBAAA,GAqRPC,cApRoCv0J,QAArBqK,EAAAkjJ,WAAYiH,mBAAmCnqJ,EAAAkjJ,WAAAiH,mBAAA,GAqR9DC,IAAgCz0J,QAA1BqK,EAAGkjJ,WAAWmH,SAAyBrqJ,EAAGkjJ,WAAWmH,SAAW,IAItEC,GACAC,WAAYvqJ,EAAGkjJ,WAAWqH,WAnRlCC,WAASxqJ,EAAAkjJ,WAAoBsH,WACrBC,UAAMzqJ,EAAAkjJ,WAAAwH,YACNC,UAAW3qJ,EAAAkjJ,WAAWyH,UACtBC,mBAAmB5qJ,EAAGkjJ,WAAW0H,mBACjCC,iBAAe7qJ,EAAAkjJ,WAAW2H,kBAG9BC,GACIC,cAAwBp1J,QAAhBqK,EAAWkjJ,WAAK8H,SAAAhrJ,EAAAkjJ,WAAA8H,SAAAjyI,GAAA,GAqRxBkyI,IApRsBt1J,QAAlBqK,EAAGkjJ,WAAWgI,eAAIlrJ,EAAAkjJ,WAAAgI,eAAA,GAqRtBC,cApROx1J,QAAAqK,EAAAkjJ,WAAAiI,cAAAnrJ,EAAAkjJ,WAAAiI,cAAA,GAqRPC,IApRoCz1J,QAAhCqK,EAAAkjJ,WAAWmI,mBAAqBrrJ,EAAAkjJ,WAAAmI,mBAAoC,GAqRxEC,SAAqC31J,QAA1BqK,EAAGkjJ,WAAWoI,SAAyBtrJ,EAAGkjJ,WAAWoI,SAAW,GAnR5EC,UAAc51J,QAALqK,EAAKkjJ,WAAAqI,UAAAvrJ,EAAAkjJ,WAAAqI,UAAA,IAwRbC,GACAxF,aAAiDrwJ,QAAlCqK,EAAGkjJ,WAAWuI,iBAAiCzrJ,EAAGkjJ,WAAWuI,iBAAmB,GAC/FxF,aAAiDtwJ,QAAlCqK,EAAGkjJ,WAAWwI,iBAAiC1rJ,EAAGkjJ,WAAWwI,iBAAmB,GAC/Fr1I,UAAyC1gB,QAA7BqK,EAAGkjJ,WAAWe,YAA4BjkJ,EAAGkjJ,WAAWe,YAAY5tI,UAAY,GAnRpGQ,QAAkBlhB,QAAAqK,EAAAkjJ,WAAAyI,UAAA3rJ,EAAAkjJ,WAAAyI,UAAA90I,QAAA,GACXO,OAAazhB,QAAbqK,EAAakjJ,WAAAkB,SAAApkJ,EAAAkjJ,WAAAkB,SAAAhtI,OAAA,GAqRZa,OAAmCtiB,QAA1BqK,EAAGkjJ,WAAWqB,SAAyBvkJ,EAAGkjJ,WAAWqB,SAAStsI,OAAS,GAChFK,QAAoC3iB,QAA1BqK,EAAGkjJ,WAAWqB,SAAyBvkJ,EAAGkjJ,WAAWqB,SAASjsI,QAAU,GAOtF,IAAKtY,EAAG+S,UA0EJ9X,EApRI0Y,WAAWD,EAAYrT,OAqR3B0oE,EApRmB6iF,eAAA1I,GAAAzkJ,KAAA,SAAAC,GAqRf3G,EApRU2I,YAAA,UAAA,kCAAA,qBAsRVV,EAAGgT,YAAa,EAnRrBhT,EAAA+S,WAAW,GAqRP,SAASpS,GACR5I,EAAW2I,YAAY,+BACvBV,EAAG+S,WAAY,QAlFJ,CA5QvB,GAAS9X,IACF4wJ,iBAAO7rJ,EAAAkjJ,WAAA4I,uBAAAD,iBACPE,WAAY/rJ,EAAAkjJ,WAAA8I,aAAAhsI,OACZisI,QAAajsJ,EAAAkjJ,WAAAgJ,cAAA71I,UAqRR81I,YAAarB,EACbjoG,eAAgB7iD,EAAGkjJ,WAAW/xD,KAnRnCi7D,mBAAqBtG,EAqRhBuG,qBAAsBnG,EACtBoG,yBAA0Bd,EAnR7BzI,+BAA+BgD,EAC5BwG,eAAGjG,EACHkG,qBAAczF,EAqRd0F,mBAAoBzE,EACpB0E,YAAarD,EACbsD,aAAc9C,EACd+C,qBAAsBtC,EAnR9Bx2I,UAAAJ,EAAwBrT,OAEU,KAA9BL,EAAKkjJ,WAAY8I,aAAahsI,SAC1B/kB,EAAI4xJ,YAAG7sJ,EAAYkjJ,WAAG2J,aAsR1B5xJ,EAAIqxJ,yBAA2Bd,CAC/B,IAAIptJ,GAAW,GAAIH,SAEnBG,GApRQF,OAAG,MAAU8B,EAAG8sJ,eAqRxB1uJ,EApRQF,OAAG,eAAW8B,EAAA+sJ,eAqRtB3uJ,EAASF,OAAO,UAAW8B,EAAGgtJ,cAC9B5uJ,EAASF,OAAO,MAAO8B,EAAGitJ,eAnR1B7uJ,EAAAF,OAAA,YAAqB8B,EAAWktJ,gBAqRhC9uJ,EApRSF,OAAI,eAAkB8B,EAAAmtJ,iBAqR/B/uJ,EApRQF,OAAO,cAAY8B,EAAAotJ,uBAqR3BhvJ,EAASF,OApRM,aAAW8B,EAAAqtJ,eAqR1BjvJ,EAASF,OAAO,UAAW8B,EAAGstJ,mBAC9BlvJ,EAASF,OAAO,cAAe8B,EAAGutJ,eAClCnvJ,EAASF,OAAO,UAAW8B,EAAGutJ,eAnR9BnvJ,EAAAF,OAAA,YAAoB8B,EAAWwtJ,eAqR/BpvJ,EApRSF,OAAI,gBAAkB8B,EAAAytJ,iBAqR/BrvJ,EApRQF,OAAO,MAAA8B,EAAS0tJ,eAqRxBtvJ,EAASF,OApRM,iBAAW8B,EAAAkjJ,WAAkByK,gBAqR5CvvJ,EAASF,OAAO,iBAAkB8B,EAAGkjJ,WAAW/xD,MAChD/yF,EAASF,OAAO,mBAAoBjD,EAAI4wJ,kBACxCztJ,EAASF,OAAO,UAAWjD,EAAIgxJ,SAC/B7tJ,EAASF,OAAO,aAAcjD,EAAI8wJ,YAClC3tJ,EAASF,OAAO,cAAejD,EAAI4xJ,aACnCzuJ,EAASF,OAAO,uBAA+DvI,QAAtCsF,EAAI8nJ,+BAA+CpmJ,KAAKqkB,UAAU/lB,EAAI8nJ,gCAAkC,IACjJ3kJ,EAASF,OAAO,uBAAwBvB,KAAKqkB,UAAU/lB,EAAIoxJ,uBAnRnEjuJ,EAASF,OAAA,2BAA6BvI,QAAAsF,EAAAqxJ,yBAAA3vJ,KAAAqkB,UAAA/lB,EAAAqxJ,0BAAA,IAqR9BluJ,EAASF,OAAO,iBAAkBvB,KAAKqkB,UAAU/lB,EAAIsxJ,iBAnRrDnuJ,EAAAF,OAAU,sBAAgBvB,KAAAqkB,UAAA/lB,EAAAuxJ,uBAC1BpuJ,EAAAF,OAAA,mBAAAvB,KAAAqkB,UAA4C/lB,EAAAwxJ,qBAqR5CruJ,EApRIF,OAAW,cAAAvB,KAAAqkB,UAAA/lB,EAAAyxJ,cAqRftuJ,EApRIF,OAAM,eAAAvI,QAAAsF,EAAA0xJ,aAAAhwJ,KAAAqkB,UAAA/lB,EAAA0xJ,cAAA,IAqRVvuJ,EAASF,OAAO,uBAAwBvB,KAAKqkB,UAAU/lB,EAAI2xJ,uBAC3DxuJ,EAASF,OAAO,mBAAwCvI,QAAnBsF,EAAIkxJ,YAA4BxvJ,KAAKqkB,UAAU/lB,EAAIkxJ,aAAe,IAnR3G/tJ,EAAQF,OAAY,qBAAWjD,EAAAmxJ,oBAC3BhuJ,EAAAF,OAAA,YAAqBjD,EAAA6Y,WAsRrBi1D,EApRmBY,cAAYvrE,GAAWK,KAAA,SAAAC,GAqRtC3G,EApRI2I,YAAA,UAAA,gCAAA,qBAqRJ1G,EApRO8F,GAAA/H,EAAAyE,eAqRPwD,EAAGgT,YApRY,GAqRhB,SApRSrS,GAqRR5I,EApRQ2I,YAAM,kCAsS1B,QApRQktJ,GAAwB1K,GAqR5B,GAAIniJ,GApRI,yBAA4BmiJ,EAAA,SAAA,WAAA,UAAA,gBAqRhCvqI,GAASuqI,EAAW,SAAY,WAAa,UAAY,2BACzDvwI,EApROtY,EAAAsY,QAAA,UAqRP5R,GACI1J,WAAW,EAnRhB+F,KAAS,MAuRZuV,GAAQjT,OAAOjB,KAAK,WAChBsqE,EAAqB4B,uBAAuBu4E,EAAWl6H,cAAcvqB,KAAK,SAASC,GAC5D,MAAfA,EAAIlI,QAnRbuB,EAAgB2I,YAAgB,UAAAiY,EAAA,cAChCzG,KAsRSna,EAAW2I,YAAY,QAAS,2BAnRzCrJ,WAAgB,EAChB+F,KAAgB,QAGhB,SAAAuD,GACA5I,EAAe2I,YAAa,QAAM,oEAqRzBrJ,WAAW,EAnRpB+F,KAAA,UAGA,cAkTP,QAASgc,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAnRpB,OAAS,QAAAA,IAA2B,IAAZ8iB,EAAAC,UAAY,IAAAD,EAAAC,UAqVpC,QApRQC,GAAW7jB,GAqRf,GApRI2jB,GAAA3jB,EAAY2jB,KACZ9iB,EAAKb,EAAGa,IAqRZ,IApRI,QAAAA,EAGA,IAAA,GAFAijB,GAAiB,GAAAC,MAAAJ,GAAWK,SAAA,EAAA,EAAA,EAAA,GAE5Bxe,EAAA,EAAAA,EAAoB8E,EAAA2Z,OAAAxe,OAAWD,IAAA,CAC/B,GAAM0e,GAAc,GAAAH,MAAAzZ,EAAW2Z,OAAAze,GAAAme,MAAgBK,SAAW,EAAA,EAAA,EAAA,EAsRtD,IAAIF,IAAeI,EAnRvB,MAAc5Z,GAAA2Z,OAAAze,GAAA1E,OAwRlB,MApRI,GArsBR,GAAIwJ,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IA/QjBA,MAAA,KAmRQA,MAAS,KAhRZA,MAAO,KAoRJA,MAAS,MAhRjBrL,EAAAkjJ,cACIljJ,EAAA47C,gBAmRA57C,EAAGu8C,gBAEHv8C,EAAGsU,SAlRUtU,EAAAqU,gBAAA,GAmRbrU,EAlRGuU,YAAA,EAmRHvU,EAAGwU,qBAlRU,SAAAC,GACVzU,EAAAuU,YAAAE,GAqRHzU,EAAG+S,WAlRU,EAmRb/S,EAlRGiU,aAAA,EAmRHjU,EAAGsS,WAlRU,EAmRbtS,EAAGue,eAAgB,EAjRnBve,EAAGX,MAAA,EAmRHtH,EAAW2c,SAAU,EAhRrB1U,EAAGoW,wBAAuBA,EAmR1BpW,EAAG4W,qBAlRkBA,EAmRrB5W,EAAGwf,oBAAsBA,EAhRzBxf,EAAGykJ,2BAAaA,EAmRhBzkJ,EAAG8kJ,wBAA0BA,EAjR7B9kJ,EAAGilJ,uBAAYA,EAEfjlJ,EAAG+jJ,4BAAiBA,EACpB/jJ,EAAAqkJ,yBAAqBA,EAmRrBrkJ,EAAGwkJ,wBAA0BA,EAjR7BxkJ,EAAGolJ,kCAASA,EACZplJ,EAAGulJ,kBAAiBA,EAoRpBvlJ,EAAGklJ,4BAA8BA,EAEjCllJ,EAAG0R,OAlRIA,EAmRP1R,EAAGkU,UAAYA,EACflU,EAAG2lJ,eAAiBA,EACpB3lJ,EAAG4lJ,iBAAmBA,EAjRtB5lJ,EAAA6lJ,eAAAA,EAmRA7lJ,EAAG4tJ,uBAAyBA,EAjR5B5tJ,EAAAkkB,KAASA,EAsRThS,IAEAlS,EAAG6tJ,cACCC,SAlRQ,YAmRR/0I,GAAM,IAEN+0I,SAlRQ,qBAmRR/0I,GAAM,IAEN+0I,SAlRQ,YAmRR/0I,GAAM,IAEV/Y,EAAG+5H,sBACCC,oBAAuB,UACvB3xG,KAAQ,MAhRZ2xG,oBAAgB,WACZ3xG,KAAG,MAkjBPsyB,EAAoBozG,wBAAwBtvJ,KAAK,SAASC,GACtD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG47C,aAAel9C,EAAIhJ,IACtB,KAAK,GAAImiB,KAAK7X,GAAG47C,aACb57C,EAAG47C,aAAa/jC,GAAGgkC,aAAgB77C,EAAG47C,aAAa/jC,GAAGgkC,aAAe,YAAmB77C,EAAG47C,aAAa/jC,GAAG86B,QAAQj8B,YAAc,QAAe1W,EAAG47C,aAAa/jC,GAAGm2I,IAAIn0F,uBAG3K75D,GAAGsS,WAAY,KA0DvBkxI,EAA2ByK,+BAA+BxvJ,KAAK,SAASC,GACjD,MAAfA,EAAIlI,QACJwJ,EAAGkuJ,iBAAmBxvJ,EAAIhJ,KAnRlCsK,EAASsS,WAAA,GAEDva,EAAA2I,YAAa,QAAA,yBAA6C,0BAsR/D,SAASC,GACR5I,EAAW2I,YApRQ,QAAU,mBAAY,2BA2Z7CV,EAAGipE,oBAAsB,SAASC,GAC9BH,EAAqBE,oBAAoBC,GAAgBzqE,KAAK,SAASC,GAnRlE,MAAAA,EAAAlI,OACDwJ,EAAAmuJ,mBAAWzvJ,EAAAhJ,KAuRPqC,EApRO2I,YAAe,QAAI,mCAAA,WAsR/B,SAASC,OAMhB8J,EAAO2jJ,cApRa,SAAAjyJ,GAqRhB6D,EAAG8sJ,cApRa3wJ,EAAAsN,OAAAiE,MAAA,IAuRpBjD,EAAO4jJ,cApRI,SAAAlyJ,GAqRP6D,EAAG+sJ,cApRI5wJ,EAAesN,OAAAiE,MAAA,IAuR1BjD,EAAO6jJ,aApRe,SAAAnyJ,GAqRlB6D,EAAGgtJ,aAAe7wJ,EAAMsN,OAAOiE,MAAM,IAEzCjD,EAAO8jJ,cAAgB,SAASpyJ,GAnRhC6D,EAAAitJ,cAAS9wJ,EAAAsN,OAAwBiE,MAAS,IAsR1CjD,EAAO+jJ,eApRa,SAAAryJ,GAqRhB6D,EAAGktJ,eApRa/wJ,EAAAsN,OAAgBiE,MAAA,IAsRpCjD,EAAOgkJ,gBApRgB,SAAAtyJ,GAqRnB6D,EAAGmtJ,gBApRahxJ,EAAQsN,OAAOiE,MAAA,IAsRnCjD,EAAOikJ,sBApRuB,SAAAvyJ,GAqR1B6D,EAAGotJ,sBAAwBjxJ,EAAMsN,OAAOiE,MAAM,IAElDjD,EAAOkkJ,cApRY,SAAYxyJ,GAqR3B6D,EAAGqtJ,cApRalxJ,EAAAsN,OAAAiE,MAAA,IAuRpBjD,EAAOmkJ,cAAgB,SAASzyJ,GAC5B6D,EAAGstJ,kBApRInxJ,EAAAsN,OAAAiE,MAAA,IAsRXjD,EAAOokJ,cApRe,SAAU1yJ,GAqR5B6D,EAAGutJ,cApRIpxJ,EAAcsN,OAAAiE,MAAA,IAsRzBjD,EAAOqkJ,cAAgB,SAAS3yJ,GAC5B6D,EAAGwtJ,cAAgBrxJ,EAAMsN,OAAOiE,MAAM,IAlR1CjD,EAAAskJ,kBAAS,SAAuB5yJ,GAC5B6D,EAAAgvJ,kBAAY7yJ,EAAgBsN,OAAQiE,MAAK,IAsR7CjD,EAAOwkJ,sBApRsB,SAAI9yJ,GAqR7B6D,EAAGytJ,gBApRYtxJ,EAAYsN,OAAAiE,MAAY,IAsR3CjD,EAAOykJ,cApRa,SAAW/yJ,GAqR3B6D,EAAG0tJ,cApRavxJ,EAAMsN,OAAAiE,MAAA,IA6P1B1N,EAAAqa,MAAO,WACHra,EAAGsa,GAAA,GAAAb,OAEPzZ,EAAAqa,QAsRAra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eAnRHC,YAAOjB,EACHkB,QAAG,GAAAhB,MAqRHiB,WAAW,GAGf1a,EAAG2a,aAnRHC,aAAOxB,EACHyB,QAAG,GAAApB,MAAA,KAAoB,EAAA,IAqRvBgB,QAAS,GAAIhB,MAnRjBqB,YAAO,GA+RP9a,EAAG+a,UAAY,WAnRX/a,EAAAua,cAAWE,QAAAza,EAAAua,cAAAE,QAAA,KAAA,GAAAhB,MACXzZ,EAAA2a,YAAcF,QAAWza,EAAAua,cAAAE,SAuR7Bza,EAAG+a,YAEH/a,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACP,IAAI4K,OAIpBzZ,EAAGob,MApRK,WAqRJpb,EAAGqb,OApRCxM,QAAe,GAuRvB7O,EAAGsb,MApRK,WAqRJtb,EAAGub,OApRC1M,QAAY,GAuRpB7O,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SApRK,eAAiB,aAAW,aAAA,YAAA,QAqRpC5b,EAAG6b,OApRK7b,EAAA4b,QAAc,GAsRtB5b,EAAG8b,iBApRgB,cAsRnB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QApRI,GAsRR7O,EAAGqb,QACCxM,QApRI,GAuRR7O,EAAGub,QACC1M,QAAQ,EAIZ,IAAIkN,GApRI,GAAUtC,KAqRlBsC,GApRQP,QAAAO,EAAcC,UAAW,EAqRjC,IAAIC,GApRI,GAAgBxC,KAqRxBwC,GApRQT,QAAcO,EAAIC,UAAW,GAqRrChc,EAAG2Z,SACCN,KApRI0C,EAqRJvlB,OAAQ,SAlRR6iB,KAAI4C,EAqRJzlB,OApRI,cA2SRiU,EAAO4P,MAAQ,WACX5P,EAAO6P,GAAK,GAAIb,OAEpBhP,EAAO4P,QAEP5P,EAAOiN,MApRC,WAqRJjN,EApRI6P,GAAA,MAuRR7P,EAAOpL,KAAO,SAASuL,GACnBH,EAAOjU,OAAOqY,QAAS,GAG3BpE,EAAOuQ,MApRC,WAqRJvQ,EApRIyR,QAAWrN,QAAG,GAuRtBpE,EAAO+Q,QApRC,SAAkBC,EAAGC,EAAAC,GAqRzBlR,EAAO6P,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGtClR,EAAOkQ,aACHwB,WApRU,OAqRVrB,YApRI,EAqRJsB,QApRS,QAuRb3R,EAAOmR,SAAW,QAClBnR,EAAOoR,OAASpR,EAAOmR,QAAQ,GAE/BnR,EApRIjU,QAqRAqY,QApRI,GAsRRpE,EAAOyR,SACHrN,QApRI,+TArvBZza,QACKC,OAAO,0BACPe,WAAW,oBAAqBmuJ,MA8gCzC,WACI,YAOA,SAAS4L,GAAsB1kJ,EAAQlQ,EAAWN,EAASF,EAAOhC,EAAYyC,EAAQH,EAAS0X,EAAgBC,EAAgBF,EAAc4D,EACzID,EAAaszD,EAAsB5uE,EAAuBqpJ,EAA4BxoG,EAAiBq7E,EAAsBD,EAAoBz7E,EAAqB3gD,GAmDtK,QApRQo1J,GAAS93H,GAqRbyxC,EApRoBC,4BAAoB1xC,GAAc74B,KAAA,SAAAC,GAClC,MAAhBA,EAAAlI,SAEAwJ,EAAAqoD,eAAgB3pD,EAAAhJ,KAChBsK,EAAAqvJ,UAAgB1yJ,KAAAC,MAAAoD,EAAAqoD,eAA0B26F,kBAC1ChjJ,EAAAsvJ,KAAS3yJ,KAAOC,MAAAoD,EAAAqoD,eAAiBqkG,aAqR7B1sJ,EAAGsS,WAAY,GAlRf6E,UACAA,aAqSZ,QAASf,GAAwBC,EAAW9X,GACpC8X,GACAvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,SAnRXwJ,EAAAuW,UAAA7X,EAAuBhJ,KAClBsK,EAAAuW,UAAApb,OAA4B,GACzBd,EAAW8C,OAAA,UAAY,0BAAyB6C,EAAAkjJ,WAAAS,WAAAjtI,aAC/Crf,WAAgB,EACrB+F,KAAA,OAuRG4C,EAAGsS,WAAY,EACX/T,GAnRDA,OA0RnB,QAASqY,GApRkBC,EAAYtY,GAqR/BsY,GACAnB,EApRYoB,iBAAMD,GAAApY,KAAA,SAAAC,GAqRK,MAAfA,EAAIlI,SACJwJ,EAAG+W,SAAWrY,EAAIhJ,KAnRdsK,EAAA+W,SAAK5b,OAAA,GACbd,EAAW8C,OAAY,UAAS,yBAAA6C,EAAAkjJ,WAAAU,SAAA5sI,WAC5B3f,WAAW,EACL+F,KAAA,OAGf4C,EAAWsS,WAAA,EAqRE/T,GACAA,OAMpB,QAASihB,GAAoBpI,EAAQ7Y,GAnRlCkX,EAAAgK,gBAAArI,GAAA3Y,KAAA,SAAAC,GAqRwB,MAAfA,EAAIlI,SAnRLwJ,EAAA4V,SAAWlX,EAAAhJ,KACVsK,EAAA4V,SAAAza,OAAA,GAqRId,EAAQ8C,OAAO,UAAW,yBAA2B6C,EAAGkjJ,WAAWW,QAAQ9lI,UACvE1mB,WAAW,EAnRZ+F,KAAA,OAGf4C,EAAWsS,WAAA,EAqRC/T,GACAA,OAmUhB,QAASgxJ,GAASt0J,EAAKsD,GACnB63H,EAAmByF,kBArRgB5gI,GAAAwD,KAAA,SAAiBC,GAsR7B,MAAfA,EAAIlI,QACJwJ,EAAGk+G,SAAWx/G,EAAIhJ,KACd6I,GACAA,KAEJxG,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,MAMjB,QAAS2hH,GAAa/jH,GApRlByB,EAAAkjJ,WAASrkG,iBAAoB,KAsR7B7+C,EAAGu8C,gBACH5B,EArRkBozG,wBAAmBtvJ,KAAA,SAAAC,GACjC,GAAI,MAAAA,EAAAlI,OAAA,CACJwJ,EAAK47C,aAAYl9C,EAAAhJ,IACb,KAAK,GAAImiB,KAAK7X,GAAA47C,aACV57C,EAAA47C,aAAO/jC,GAAAgkC,aAAgB77C,EAAc47C,aAAS/jC,GAAAgkC,aAAA,YAA8B77C,EAAA47C,aAAA/jC,GAAA86B,QAAAj8B,YAAA,QAAA1W,EAAA47C,aAAA/jC,GAAAm2I,IAAAn0F,uBAuRhF75D,GAAGsS,WAAY,EAEf/T,GACAA,MAQZ,QAASixJ,GAASv0J,EAAKsD,GACnBy8C,EAAgBwuC,wBAAwBvuF,GAAKwD,KAAK,SAAUC,GACxD,GAAmB,MAAfA,EAAIlI,OAAgB,CApRxBwJ,EAAOu8C,aAAY79C,EAAAhJ,IAChB,KAAM,GAAAwF,KAAO8E,GAAAu8C,aACbv8C,EAAAu8C,aAAYrhD,GAAYwjD,YAAA1+C,EAAAu8C,aAAArhD,GAAAwjD,YAAA,gBAAA1+C,EAAAu8C,aAAArhD,GAAAsoD,YAAA7xB,eAwRnB3xB,GAAGu8C,aArRIphD,OAAW,GAsRlBd,EAAQ8C,OAAO,UAAW,+BAAiC6C,EAAGkjJ,WAAWvlG,iBAAiB9B,cACtFxkD,WAAW,EACX+F,KAAM,OAlRd4C,EAAAsS,WAAc,EACV/T,GAsRAA,OAMhB,QAAS2mJ,KAEL,GAAIpsG,MACAqsG,EAAMnlJ,EAAGkjJ,WAAWvlG,iBAEpB76B,IACJ,KArRI,GAAA5nB,KAAAiqJ,GACqBxvJ,QAAjBwvJ,EAAAjqJ,GAAKghD,YAsRLp5B,EArRQjrB,KAAGstJ,EAAAjqJ,GAASghD,WAwR5BpD,GAAOh2B,CACP,IAAIK,GAAaxmB,KAAKqkB,UAAU83B,GAC5B4K,EAAcvgC,EAAWG,UAAU,EAAGH,EAAWhoB,OAAS,GAlR1DF,GACAihD,WAAGwH,EAuRP1I,GArRgBwuC,wBAAkBvuF,GAAAwD,KAAc,SAAQC,GAsRpD,GArRe,MAqRXA,EAAIlI,OArRO,CAsRXwJ,EAAGu8C,aAAe79C,EAAIhJ,IACtB,KAAK,GAAImiB,KAAK7X,GAAGu8C,aACbv8C,EAAGu8C,aAAa1kC,GAAG6mC,YAAe1+C,EAAGu8C,aAAa1kC,GAAG6mC,YAAc,gBAAuB1+C,EAAGu8C,aAAa1kC,GAAG2rC,YAAY7xB,eAnRjIv9B,SAAAyO,QAAA7C,EAAAkjJ,WAA+BrkG,iBAAW,SAAYtqB,EAAAC,GAClDpgC,QAASyO,QAAQ7C,EAAAu8C,aAAW,SAAA4O,EAAAC,GACjB72B,EAAAmqB,cAAayM,EAAezM,aAC5B1+C,EAAAu8C,aAAWjnB,OAAY81B,EAAG,OAyRjCprD,EAAGu8C,aAAaphD,OAAS,GApRjCd,EAAA8C,OAAqB,UAAO,+BAAqB6C,EAAAkjJ,WAAAvlG,iBAAA9B,cACxCxkD,WAAY,EACT+F,KAAG,OAwRX4C,EAAGsS,WAAY,KAQ3B,QAASm9I,GAAsBlxJ,GAC3BilJ,EAA2ByK,+BAA+BxvJ,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,QACJwJ,EAAGkuJ,iBAAmBxvJ,EAAIhJ,KApR9BsK,EAAOsS,WAAY,EAChB/T,GACIA,KAEJxG,EAAY2I,YAAY,QAAA,yBAAA,0BAuR5B,SArRSC,GAsRR5I,EAAW2I,YArRI,QAAW,mBAAgB,2BA2RlD,QAAS0kJ,GArR+BttB,EAAAv5H,GAsRpC83H,EArRmBgvB,6BAA4BvtB,GAAar5H,KAAA,SAAAC,GACzC,MAqRXA,EAAIlI,QACJwJ,EAAGslJ,aAAe5mJ,EAAIhJ,KACtBsK,EAAGsS,WAAY,EACX/T,GACAA,KAnRJxG,EAAS2I,YAAQ,QAAU,yBAAA,sBAuRhC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,uBAI5D,QAAS6kJ,GArRiBhnJ,GAsRtB,GAAItD,IACAqiH,OAAQt9G,EAAGkjJ,WArRIsC,yBAAwB1tB,sBAsRvCla,kBAAmB59G,EAAGkjJ,WAAWuC,qBAAqB7nC,kBACtDK,WAAYj+G,EAAGkjJ,WAAWuC,qBAAqBxnC,WAC/Cl/D,SAAU/+C,EAAGkjJ,WAAWnS,wBAAwB1oH,KAEpD+tG,GAAmByF,kBAAkB5gI,GAAKwD,KAAK,SAAUC,GAClC,MAAfA,EAAIlI,QApRRwJ,EAAOk+G,SAAOx/G,EAAKhJ,KAChB6I,GAsRKA,KAnRRxG,EAAc2I,YAAK,QAAW,mCAAuC,WAuRtE,SAAUC,MA4ejB,QAASyY,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KApRZ9iB,EAAAb,EAAAa,IAsRJ,OArRI,QAAAA,IAAuB,IAAL8iB,EAAKC,UAAoC,IAAhBD,EAAAC,UAsVnD,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KApRZ9iB,EAAAb,EAAAa,IAsRJ,IArRI,QAAAA,EAGA,IAAA,GAFAijB,GAAc,GAAKC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEXxe,EAAG,EAAKA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CAChB,GAAA0e,GAAc,GAAWH,MAAAzZ,EAAA2Z,OAAYze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAErC,IAAQF,IAAcI,EACd,MAAG5Z,GAAA2Z,OAAWze,GAAA1E,OAyR1B,MAAO,GA2CX,QArRQkb,KAsRJ1X,EArRI8F,GAAA/H,EAAAyE,eA76BR,GAAIwD,GAAKC,IACTD,GAAG+S,WApRS,EAqRZ/S,EAAGsS,WApRS,EAqRZva,EAAW2c,SApRC,EAqRZ1U,EAAG0R,OApRSA,EAqRZ1R,EAAG47C,gBACH57C,EAAGu8C,gBAEHv8C,EAAGkjJ,WApRSlpJ,EAAAvE,OAAAC,KAqRZsK,EAAGs0F,uBApRSt0F,EAAAkjJ,WAA0BA,WAAA76F,eAqRtCroD,EAAG0vJ,0BApRS1vJ,EAAAkjJ,WAAgCA,WAAAkJ,mBAqR5CpsJ,EAAGoW,wBApRyBA,EAqR5BpW,EAAG4W,qBApRSA,EAqRZ5W,EAAGolJ,kCApR6BA,EAqRhCplJ,EAAGulJ,kBApRSA,CAqRZ,IAAI7xI,GApRQvZ,EAAcgG,sBA0Y1B,IAnHAH,EAAGklJ,4BAA8BA,EAEjCllJ,EAAG6tJ,cACCC,SAAY,YACZ/0I,GApRI,IAsRJ+0I,SAAY,qBACZ/0I,GApRI,IAsRJ+0I,SApRI,YAqRJ/0I,GApRI,IAsRR/Y,EAAGyjJ,WApRckM,cAAO,qBAAmB3vI,OAAA,IAAA2vI,cAAA,sBAAA3vI,OAAA,IACnC2vI,cAAS,cAAO3vI,OAAkB,IAAA2vI,cAAA,cAAA3vI,OAAA,IAAA2vI,cAAA,aAAA3vI,OAAA,IAAA2vI,cAAA,MAAA3vI,OAAA,IAyR1ChgB,EAAG4+H,YApRc,SAAOznH,GAqRpBpF,EApRa8D,mBAAOpX,KAAiB,SAAGC,GACpB,MAAhBA,EAAAlI,SACAwJ,EAAA8V,YAAgBpX,EAAAhJ,KAChBsK,EAAAsS,WAAgB,GAEhB6E,GACAA,OA0SRnX,EAAG4vJ,mBAAqB,SAAUz4I,GAC9B4xD,EApROW,uBAAAjrE,KAAA,SAAAC,GACc,MAAbA,EAAAlI,SACJwJ,EAAA0jJ,mBAAqBhlJ,EAAAhJ,KACjBsK,EAAAsS,WAAW,GAEX6E,GACAA,OAiVRnd,EAAOvE,OAAOC,KAAM,CACpBsK,EAAGkjJ,WAAWyK,eAAiB3tJ,EAAGkjJ,WAAWA,WAAWyK,eACxD3tJ,EAAGkjJ,WAAW2J,YAAuDl3J,QAAxCqK,EAAGkjJ,WAAWA,WAAW2J,YAA4B7sJ,EAAGkjJ,WAAWA,WAAW2J,YAAc,GACzH7sJ,EAAG4+H,YAAY,WAnRnB,IAAS,GAAA1jI,KAAS8E,GAAM8V,YACT9V,EAAA8V,YAAK5a,GAAAmb,YAAArW,EAAAkjJ,WAAAA,WAAA+I,UACLjsJ,EAAAkjJ,WAAKgJ,cAAAlsJ,EAAA8V,YAAA5a,KAMhB,KAAG,GAAAA,KAAA8E,GAAYyjJ,SAqRPzjJ,EAAGyjJ,SAASvoJ,GAAG8kB,SAAWhgB,EAAGkjJ,WAAWA,WAAW6I,aACnD/rJ,EAAGkjJ,WAAW8I,aAAehsJ,EAAGyjJ,SAASvoJ,GAhRjD8E,GAAG4vJ,mBAAgB,WAqRf,IAAK,GAAI10J,KAAK8E,GAAG0jJ,mBACT1jJ,EAAG0jJ,mBAAmBxoJ,GAAG2wJ,mBAAqB7rJ,EAAGkjJ,WAAWA,WAAW2I,mBAnR5E7rJ,EAAAkjJ,WAAW4I,uBAAA9rJ,EAAA0jJ,mBAAAxoJ,KA4RlBonH,GAAa,WAlRdtiH,EAAQkjJ,WAAWvlG,mBACf,IAAAkyG,GAAgB7vJ,EAAAs0F,uBAAAt5F,MAAA,IAqRf,KAAK,GAAIE,KAAK8E,GAAG47C,aACb,IAAK,GAAIzxC,KAAK0lJ,GAnRb7vJ,EAAS47C,aAAa1gD,GAAAghD,aAAKt1C,SAAAipJ,EAAA1lJ,MACxBnK,EAAKkjJ,WAAavlG,iBAAA9lD,KAAAmI,EAAA47C,aAAA1gD,IAGpB9G,QAAAyO,QAAgB7C,EAAAkjJ,WAAcvlG,iBAAc,SAAappB,EAAAC,GAChDpgC,QAAAyO,QAAA7C,EAAA47C,aAAA,SAAAuP,EAAAC,GAqRS72B,EAAOsnB,eAAiBsP,EAAOtP,cAnRzC77C,EAAA47C,aAAAtmB,OAAA81B,EAAA,SAUlB,IAAA0kG,IAqRI5zG,WAAYl8C,EAAGs0F,uBAjRnBk7D,GAAQM,EAAA,WAsRJ9vJ,EAAGkjJ,WAAWrkG,mBACd,IAAIkxG,GAA2B/vJ,EAAG0vJ,0BAA0B10J,MAAM,IAnRtE,KAAA,GAAWE,KAAI8E,GAAAu8C,aACV,IAAQ,GAAApyC,KAAS4lJ,GACN/vJ,EAAAu8C,aAAIrhD,GAAA4jD,YAAAl4C,SAAAmpJ,EAAA5lJ,MACVnK,EAAQkjJ,WAASrkG,iBAAYhnD,KAAAmI,EAAAu8C,aAAArhD,IAEjC9G,QAAAyO,QAAA7C,EAAAkjJ,WAAArkG,iBAAA,SAAAtqB,EAAAC,GACEpgC,QAAAyO,QAAA7C,EAAAu8C,aAAA,SAAA4O,EAAAC,GACT72B,EAAAmqB,cAAAyM,EAAAzM,aACO1+C,EAAAu8C,aAAAjnB,OAAA81B,EAAA,UAUyC,MAA3CpxD,EAAKvE,OAAQC,KAAGwtJ,WAAcH,gCAAa,IAAA/oJ,EAAAvE,OAAAC,KAAAwtJ,WAAAH,iCAqR3C/iJ,EAAGunC,IApRKvtC,EAAAvE,OAAaC,KAAIwtJ,WAAQH,+BAqRjC/iJ,EAAG4+H,YAAY,WAnRX,IAAI,GAAA1jI,KAAA8E,GAAA8V,YACA9V,EAAO8V,YAAU5a,GAAGmb,YAAArW,EAAAunC,IAAAlxB,YAqRhBrW,EAAGkjJ,WAAWS,WAAa3jJ,EAAG8V,YAAY5a,MAKtDkb,EAAwBpW,EAAGunC,IAAIlxB,UAAW,WACtC,IAAK,GAAInb,KAAK8E,GAAGuW,UACTvW,EAAGuW,UAAUrb,GAAG2b,UAAY7W,EAAGunC,IAAI1wB,UACnC7W,EAAGkjJ,WAAWU,SAAW5jJ,EAAGuW,UAAUrb,MAKlD0b,EAAqB5W,EAAGunC,IAAI1wB,QAAS,WAnRtC,IAAQ,GAAA3b,KAAW8E,GAAA+W,SACV/W,EAAA+W,SAAA7b,GAAAkc,SAAApX,EAAAunC,IAAAnwB,SAqRIpX,EAAGkjJ,WAAWW,QAAU7jJ,EAAG+W,SAAS7b,MAIhDskB,EAAoBxf,EAAGunC,IAAInwB,OAAQ,WAC/B,IAAK,GAAIlc,KAAK8E,GAAG4V,SAnRd5V,EAAA4V,SAAW1a,GAAA+c,SAAAjY,EAAAunC,IAAAtvB,SACPjY,EAAAkjJ,WAASY,QAAA9jJ,EAAA4V,SAAA1a,OA0RsC,MAA1DlB,EAAOvE,OAAOC,KAAKwtJ,WAAWoJ,0BAA8F,IAA1DtyJ,EAAOvE,OAAOC,KAAKwtJ,WAAWoJ,2BAnRjGtsJ,EAAAhD,KAAAL,KAAcC,MAAA5C,EAAAvE,OAAAC,KAAAwtJ,WAAAoJ,0BACjBtsJ,EAAA4+H,YAAY,WACZ,IAAa,GAAA1jI,KAAA8E,GAAA8V,YACJ9V,EAAA8V,YAAA5a,GAAAmb,YAAArW,EAAAhD,KAAAqZ,YAqROrW,EAAGkjJ,WAAWe,YAAcjkJ,EAAG8V,YAAY5a,MA/QxDkb,EAASpW,EAAAunC,IAAAlxB,UAAA,WACJ,IAAA,GAAAnb,KAAA8E,GAAAuW,UAqRQvW,EAAGuW,UAAUrb,GAAG2b,UAAY7W,EAAGhD,KAAK6Z,UAnRvC7W,EAAAkjJ,WAAAgB,UAAAlkJ,EAAAuW,UAAArb,MAyRT0b,EAAqB5W,EAAGunC,IAAI1wB,QAAS,WACjC,IAAK,GAAI3b,KAAK8E,GAAG+W,SACT/W,EAAG+W,SAAS7b,GAAGkc,SAAWpX,EAAGhD,KAAKoa,SAnRjDpX,EAAAkjJ,WAAAkB,SAAApkJ,EAAA+W,SAAA7b,MAGTskB,EAAAxf,EAAAunC,IAAAnwB,OAAA,WACY,IAAA,GAAAlc,KAAA8E,GAAA4V,SACI5V,EAAA4V,SAAA1a,GAAA+c,SAAyBjY,EAAAhD,KAAAib,SAsRjBjY,EAAGkjJ,WAAWqB,SAAWvkJ,EAAG4V,SAAS1a,OA9QpC,MAArBlB,EAAWvE,OAAUC,KAAAwtJ,WAAA8M,6BAAA,IAAAh2J,EAAAvE,OAAAC,KAAAwtJ,WAAA8M,8BAClBhwJ,EAAAiwJ,IAAStzJ,KAAAC,MAAA5C,EAAAvE,OAAAC,KAAAwtJ,WAAA8M,6BACThwJ,EAAAiwJ,IAAA9J,gBAAenmJ,EAAAiwJ,IAAAjK,aACfhmJ,EAAAiwJ,IAAA7J,gBAAepmJ,EAAAiwJ,IAAAhK,aAsRVjmJ,EAAG4+H,YAAY,WApRpB,IAAa,GAAA1jI,KAAO8E,GAAA8V,YACpB9V,EAAA8V,YAA4B5a,GAAAmb,YAAWrW,EAAWiwJ,IAAA55I,YAClDrW,EAAAkjJ,WAA+BmD,WAAWrmJ,EAAA8V,YAAW5a,MAKpDkb,EAAcpW,EAAAiwJ,IAAA55I,UAAsB,WAsR5B,IAAK,GAAInb,KAAK8E,GAAGuW,UACTvW,EAAGuW,UAAUrb,GAAG2b,UAAY7W,EAAGiwJ,IAAIp5I,UApRpD7W,EAAAkjJ,WAA8ByB,SAAA3kJ,EAAAuW,UAAArb,MAK9B0b,EAAA5W,EAAAiwJ,IAAAp5I,QAAA,WACC,IAAY,GAAA3b,KAAA8E,GAAA+W,SACN/W,EAAA+W,SAAA7b,GAAAkc,SAAApX,EAAAiwJ,IAAA74I,SACPpX,EAAAkjJ,WAAA2B,QAAA7kJ,EAAA+W,SAAA7b,MAIAskB,EAAcxf,EAAAiwJ,IAAe74I,OAAA,WACxB,IAAA,GAAAlc,KAAe8E,GAAA4V,SAsRH5V,EAAG4V,SAAS1a,GAAG+c,SAAWjY,EAAGiwJ,IAAIh4I,SACjCjY,EAAGkjJ,WAAW8B,QAAUhlJ,EAAG4V,SAAS1a,OA9Q7B,MAqRnBlB,EArROvE,OAAAC,KAAYwtJ,WAAAqJ,gBAAA,IAAAvyJ,EAAAvE,OAAAC,KAAAwtJ,WAAAqJ,iBAsRnBvsJ,EAAGkwJ,QAAUvzJ,KAAKC,MAAM5C,EAAOvE,OAAOC,KAAKwtJ,WAAWqJ,iBAGA,MAAtDvyJ,EAAOvE,OAAOC,KAAKwtJ,WAAWiN,sBAAsF,IAAtDn2J,EAAOvE,OAAOC,KAAKwtJ,WAAWiN,uBAC5FnwJ,EAAGowJ,GAAKzzJ,KAAKC,MAAM5C,EAAOvE,OAAOC,KAAKwtJ,WAAWiN,uBAEC,MAAlDn2J,EAAOvE,OAAOC,KAAKwtJ,WAAWF,kBAA8E,IAAlDhpJ,EAAOvE,OAAOC,KAAKwtJ,WAAWF,mBACxFhjJ,EAAGqvJ,UAAYr1J,EAAOvE,OAAOC,KAAKwtJ,WAAWF,iBAC7ChjJ,EAAGqvJ,UAAUpH,cAAgBrhJ,SAAS5G,EAAGqvJ,UAAUpH,eApRpC,MAAdjoJ,EAAAqvJ,UAAcpG,IACnBjpJ,EAAAqvJ,UAAqBpG,IAAA,GAGbjpJ,EAAGqvJ,UAAApG,IAAA,GAAiBxvI,MAAIzZ,EAAAqvJ,UAAApG,MAKd,MAAdjvJ,EAAIvE,OAAUC,KAAAwtJ,WAAAwJ,aAAA,IAAA1yJ,EAAAvE,OAAAC,KAAAwtJ,WAAAwJ,cAsRd1sJ,EAAGsvJ,KArRC3yJ,KAAAC,MAAA5C,EAAAvE,OAAAC,KAAAwtJ,WAAAwJ,aAsRJ1sJ,EAAGsvJ,KAAKxnD,UAAYlhG,SAAS5G,EAAGsvJ,KAAKxnD,WACrC9nG,EAAG4+H,YAAY,WACX,IAAK,GAAI1jI,KAAK8E,GAAG8V,YACT9V,EAAG8V,YAAY5a,GAAGmb,YAAcrW,EAAGsvJ,KAAKj5I,YApRzDrW,EAAAkjJ,WAA+BuG,YAAUzpJ,EAAA8V,YAAA5a,MA0RpCkb,EAAwBpW,EAAGsvJ,KAAKj5I,UAAW,WApRvC,IAAA,GAAAnb,KAAU8E,GAAAuW,UACVvW,EAAAuW,UAAArb,GAAA2b,UAAA7W,EAAAsvJ,KAAAz4I,UAsRQ7W,EAAGkjJ,WAAWwG,UAAY1pJ,EAAGuW,UAAUrb,MAhRnD0b,EAAW5W,EAAAsvJ,KAAAz4I,QAAA,WACX,IAAA,GAAa3b,KAAA8E,GAAA+W,SACD/W,EAAA+W,SAAW7b,GAAAkc,SAAKpX,EAAAsvJ,KAAAl4I,SACjBpX,EAAAkjJ,WAAYyG,SAAI3pJ,EAAA+W,SAAA7b,MAyR3BskB,EArRgBxf,EAAMsvJ,KAAAl4I,OAAA,WAsRlB,IAAK,GAAIlc,KAAK8E,GAAG4V,SACT5V,EAAG4V,SAAS1a,GAAG+c,SAAWjY,EAAGsvJ,KAAKr3I,SApRnCjY,EAAAkjJ,WAAY0G,SAAA5pJ,EAAA4V,SAAA1a,OA4RuB,MAA9ClB,EAAOvE,OAAOC,KAAKwtJ,WAAWyJ,cAAsE,IAA9C3yJ,EAAOvE,OAAOC,KAAKwtJ,WAAWyJ,eApR5F3sJ,EAASqwJ,MAAA1zJ,KAAAC,MAAqB5C,EAAAvE,OAASC,KAAUwtJ,WAAAyJ,cAChC,MAAT3sJ,EAAAqwJ,MAASjG,IACTpqJ,EAAAqwJ,MAAYjG,IAAA,GAwRRpqJ,EAAGqwJ,MArRKjG,IAAG,GAAA3wI,MAASzZ,EAAAqwJ,MAAYjG,MAyRkB,MAAtDpwJ,EAAOvE,OAAOC,KAAKwtJ,WAAW0J,sBAAsF,IAAtD5yJ,EAAOvE,OAAOC,KAAKwtJ,WAAW0J,uBAC5F5sJ,EAAGswJ,YAAc3zJ,KAAKC,MAAM5C,EAAOvE,OAAOC,KAAKwtJ,WAAW0J,sBAC1D5sJ,EAAGswJ,YArRQ3F,UAAY,GAAAlxI,MAAAzZ,EAAAswJ,YAAA3F,WAAA,GAAAlxI,MAAAzZ,EAAAswJ,YAAA3F,WAAA,IAwR2B,MAAlD3wJ,EAAOvE,OAAOC,KAAKwtJ,WAAWqN,kBAA8E,IAAlDv2J,EAAOvE,OAAOC,KAAKwtJ,WAAWqN,mBACxFvwJ,EAAGwwJ,IAAM7zJ,KAAKC,MAAM5C,EAAOvE,OAAOC,KAAKwtJ,WAAWqN,kBAChC,MAAdvwJ,EAAGwwJ,IAAIpF,IACPprJ,EAAGwwJ,IAAIpF,IAAM,GAlRrBprJ,EAAAwwJ,IAAYpF,IAAA,GAAA3xI,MAAgBzZ,EAAAwwJ,IAAQpF,KAEd,MAAdprJ,EAAGwwJ,IAAAvF,IACHjrJ,EAAAwwJ,IAAOvF,IAAA,GAwRPjrJ,EAAGwwJ,IAAIvF,IArRC,GAAMxxI,MAAAzZ,EAAAwwJ,IAAAvF,KAGC,IAAfjrJ,EAAGwwJ,IAAAzF,eAAY,GAAA/qJ,EAAAwwJ,IAAAzF,eACfhiF,EAAII,YAAAnpE,EAAAwwJ,IAAAzF,eAAAtsJ,KAAA,SAAAC,GACA,MAAAA,EAAAlI,SAsRIwJ,EAAGywJ,WAAa/xJ,EAAIhJ,KACpBsK,EAAGsS,WAAY,GAEnBm9I,EAAsB,WAClB,IAAK,GAAIv0J,KAAK8E,GAAGkuJ,iBApRbluJ,EAAAkuJ,iBAAAhzJ,GAAA48H,wBAAA93H,EAAAywJ,WAAAnzC,SACNt9G,EAAAkjJ,WAAoBsC,yBAAsBxlJ,EAAAkuJ,iBAAAhzJ,MAI5CkqJ,EAAgCplJ,EAAGywJ,WAAWnzC,OAAA,WAC3C,IAAA,GAAApiH,KAAW8E,GAAAslJ,aAsRFtlJ,EAAGslJ,aAAapqJ,GAAG+iH,aAAej+G,EAAGywJ,WAAWxyC,aAChDj+G,EAAGkjJ,WAAWuC,qBAAuBzlJ,EAAGslJ,aAAapqJ,KAhRlE,KAAA,GAASA,KAAG8E,GAAA+5H,oBACZ/5H,EAAW+5H,oBAAkB7+H,GAAAmtB,OAASroB,EAAAywJ,WAAA1xG,WAsR7B/+C,EAAGkjJ,WAAWnS,wBAA0B/wI,EAAG+5H,oBAAoB7+H,GAjR1E,IAAID,IACEqiH,OAAAt9G,EAAAywJ,WAAsBnzC,OACtBM,kBAAW59G,EAAAywJ,WAAA7yC,kBAsRVK,WAAYj+G,EAAGywJ,WAAWxyC,WAC1Bl/D,SAAU/+C,EAAGywJ,WAAW1xG,SAlR9BwwG,GAAAt0J,EAAA,WAsRM,IAAK,GAAIC,KAAK8E,GAAGk+G,SACTl+G,EAAGk+G,SAAShjH,GAAG6d,KAAO/Y,EAAGywJ,WAAW13I,KApR/C/Y,EAAYkjJ,WAAA8H,SAAAhrJ,EAAAk+G,SAAAhjH,SA4RzB8E,EAAGkjJ,WAAWttJ,OArRKoK,EAAAkjJ,WAAWA,WAAiBttJ,OAsR/Cu8B,QAAQC,IAAIpyB,EAAGkjJ,WAAWttJ,QAgB9B0sH,IAwFAmtC;;;;;;AAyDAhlJ,EAAO2jJ,cArRQ,SAAgBjyJ,GAsR3B6D,EAAG8sJ,cAAgB3wJ,EAAMsN,OAAOiE,MAAM,EACtC,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,MAAO8B,EAAG8sJ,eAC1B1uJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cApR9CyxC,EAAkBa,cAAgBxrE,GAAAK,KAAe,SAAQC,GACrD3G,EAAU2I,YAAW,UAAO,+BAAuB,uBACnD0uJ,EAAQpvJ,EAAAkjJ,WAAY5rH,cACpBt3B,EAAGgT,YAAY,GAsRhB,SArRUrS,GAsRT5I,EArRQ2I,YAAO,kCAwRvB+J,EAAO4jJ,cAAgB,SAAUlyJ,GAC7B6D,EAAG+sJ,cAAgB5wJ,EAAMsN,OAAOiE,MAAM,EACtC,IAAItP,GAAW,GAAIH,SACnBG,GArRIF,OAAA,eAA2B8B,EAAA+sJ,eAsR/B3uJ,EArRQF,OAAK,eAAY8B,EAAAkjJ,WAAW5rH,cAsRpCyxC,EArRmBc,uBAAyBzrE,GAAQK,KAAA,SAASC,GAsRzD3G,EAAW2I,YArRI,UAAW,wCAAyB,gCAsRnD0uJ,EAAcpvJ,EAAGkjJ,WAAW5rH,cAC5Bt3B,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAI/B+J,EAAO6jJ,aArRa,SAAGnyJ,GAsRnB6D,EAAGgtJ,aAAe7wJ,EAAMsN,OAAOiE,MAAM,EACrC,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,UAAW8B,EAAGgtJ,cAC9B5uJ,EArRIF,OAAA,eAA4B8B,EAAAkjJ,WAAQ5rH,cAsRxCyxC,EArRiBe,kBAAkB1rE,GAAAK,KAAA,SAAAC,GAsR/B3G,EArRQ2I,YAAO,UAAY,mCAA2B,2BAsRtD0uJ,EArRYpvJ,EAAGkjJ,WAAW5rH,cAsR1Bt3B,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAG/B+J,EAAO8jJ,cAAgB,SAAUpyJ,GApR7B6D,EAAAitJ,cAAkB9wJ,EAAKsN,OAAAiE,MAAW,EAsRlC,IArRItP,GAAW,GAAAH,SAsRfG,GArRQF,OAAG,MAAM8B,EAAOitJ,eAsRxB7uJ,EArRQF,OAAG,eAAY8B,EAAAkjJ,WAAA5rH,cAsRvByxC,EAAqBgB,cAAc3rE,GAAUK,KAAK,SAAUC,GACxD3G,EArRK2I,YAAA,UAAA,+BAAA,uBAsRL0uJ,EArRapvJ,EAAAkjJ,WAAe5rH,cAsR5Bt3B,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAG/B+J,EAAO+jJ,eArRgB,SAAAryJ,GAsRnB6D,EAAGktJ,eAAiB/wJ,EAAMsN,OAAOiE,MAAM,EACvC,IAAItP,GAAW,GAAIH,SApRnBG,GAAIF,OAAO,YAAY8B,EAAAktJ,gBAsRvB9uJ,EArROF,OAAM,eAAkB8B,EAAAkjJ,WAAY5rH,cAsR3CyxC,EArReiB,oBAAa5rE,GAAAK,KAAA,SAAAC,GAsRxB3G,EArRW2I,YAAM,UAAA,qCAAA,6BAsRjB0uJ,EAAcpvJ,EAAGkjJ,WAAW5rH,cAC5Bt3B,EAAGgT,YArRE,GAsRN,SArRQrS,GAsRP5I,EAAW2I,YAAY,kCAG/B+J,EAAOgkJ,gBAAkB,SAAUtyJ,GAC/B6D,EAAGmtJ,gBArRMhxJ,EAAAsN,OAAAiE,MAAA,EAsRT,IAAItP,GArRW,GAAAH,SAsRfG,GAASF,OAAO,eAAgB8B,EAAGmtJ,iBACnC/uJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cAC9CyxC,EArRekB,uBAA0B7rE,GAAIK,KAAA,SAAoBC,GAsR7D3G,EArRI2I,YAAA,UAAqB,wCAAiD,gCAsR1E0uJ,EArRYpvJ,EAAIkjJ,WAAW5rH,cAsR3Bt3B,EAAGgT,YArRY,GAsRhB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAG/B+J,EAAOikJ,sBArRwB,SAAAvyJ,GAsR3B6D,EAAGotJ,sBArRwBjxJ,EAAAsN,OAAWiE,MAAA,EAsRtC,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,cAAe8B,EAAGotJ,uBAClChvJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cAC9CyxC,EArRYmB,sBAAA9rE,GAAqCK,KAAA,SAAmBC,GAsRhE3G,EAAW2I,YArRU,UAAQ,uCAAc,+BAsR3C0uJ,EAAcpvJ,EArREkjJ,WAAO5rH,cAsRvBt3B,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAG/B+J,EAAOkkJ,cArRc,SAAYxyJ,GAsR7B6D,EAAGqtJ,cArRalxJ,EAAOsN,OAAAiE,MAAA,EAsRvB,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,aAAc8B,EAAGqtJ,eACjCjvJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cAC9CyxC,EAAqBoB,qBAAqB/rE,GAAUK,KAAK,SAAUC,GAC/D3G,EArRQ2I,YAAU,UAAA,sCAAA,8BAsRlB0uJ,EArRYpvJ,EAAAkjJ,WAAW5rH,cAsRvBt3B,EAAGgT,YArRS,GAsRb,SAAUrS,GACT5I,EAAW2I,YArRW,kCAyR9B+J,EAAOmkJ,cArRa,SAASzyJ,GAsRzB6D,EAAGstJ,kBArRiBnxJ,EAAOsN,OAASiE,MAAG,EAsRvC,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,UAAW8B,EAAGstJ,mBAC9BlvJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cAC9CyxC,EAAqBqB,kBAAkBhsE,GAAUK,KAAK,SAAUC,GAC5D3G,EAAW2I,YAAY,UAAW,mCAAoC,2BACtE0uJ,EAAcpvJ,EAAGkjJ,WAAW5rH,cAC5Bt3B,EAAGgT,YAAa,GApRjB,SAAArS,GACH5I,EAAe2I,YAAW,kCAG9B+J,EAAAokJ,cAAuB,SAAU1yJ,GAC7B6D,EAAAutJ,cAAmBpxJ,EAAAsN,OAAAiE,MAAkB,EAsRrC,IArRItP,GAAQ,GAAAH,SAsRZG,GArRQF,OAAG,cAAe8B,EAAAutJ,eAsR1BnvJ,EArRQF,OAAI,eAAA8B,EAAAkjJ,WAAA5rH,cAsRZyxC,EArRYsB,sBAAAjsE,GAAAK,KAAA,SAAAC,GAsRR3G,EArRO2I,YAAA,UAAA,uCAAA,+BAsRP0uJ,EArRIpvJ,EAAWkjJ,WAAY5rH,cAsR3Bt3B,EAAGgT,YAAa,GApRjB,SAAUrS,GAsRT5I,EAAW2I,YAAY,kCAlR/B+J,EAAAqkJ,cAAA,SAAA3yJ,GAsRI6D,EAAGwtJ,cAAgBrxJ,EAAMsN,OAAOiE,MAAM,EApR1C,IAAAtP,GAAS,GAAaH,SAClBG,GAAGF,OAAW,YAAA8B,EAAAwtJ,eACdpvJ,EAAGF,OAAA,eAAe8B,EAAAkjJ,WAAA5rH,cAClByxC,EAAoBuB,oBAAAlsE,GAA6BK,KAAA,SAAeC,GAC5D3G,EAAQ2I,YAAW,UAAK,qCAAA,6BAsRxB0uJ,EArROpvJ,EAAAkjJ,WAAmB5rH,cAsR1Bt3B,EAAGgT,YArRU,GAsRd,SArRSrS,GAsRR5I,EAAW2I,YAAY,kCAG/B+J,EAAOskJ,kBArRK,SAAA5yJ,GAsRR6D,EAAGgvJ,kBArRK7yJ,EAAAsN,OAAAiE,MAAA,EAsRR,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,UAAW8B,EAAGgvJ,mBAC9B5wJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cAC9CyxC,EAAqBwB,kBAAkBnsE,GAAUK,KAAK,SAAUC,GAC5D3G,EAAW2I,YAAY,UAAW,wCAAyC,gCAC3E0uJ,EAAcpvJ,EAAGkjJ,WAAW5rH,cAC5Bt3B,EAAGgT,YAAa,GApRxB,SAASrS,GACL5I,EAAA2I,YAAgB,kCAwRpB+J,EAAOwkJ,sBArRsB,SAAA9yJ,GAsRzB6D,EAAGytJ,gBArRYtxJ,EAAAsN,OAAgBiE,MAAA,EAsR/B,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,gBAAiB8B,EAAGytJ,iBACpCrvJ,EArRQF,OAAO,eAAa8B,EAAAkjJ,WAAY5rH,cAsRxCyxC,EArRoByB,wBAAkBpsE,GAAAK,KAAA,SAAAC,GAsRlC3G,EAAW2I,YArRY,UAAA,yCAAA,iCAsRvB0uJ,EArRYpvJ,EAAAkjJ,WAAM5rH,cAsRlBt3B,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EArRO2I,YAAY,kCAwR3B+J,EAAOykJ,cAAgB,SAAU/yJ,GAC7B6D,EAAG0tJ,cAAgBvxJ,EAAMsN,OAAOiE,MAAM,EACtC,IAAItP,GAAW,GAAIH,SACnBG,GAASF,OAAO,eAAgB8B,EAAG8sJ,eACnC1uJ,EAASF,OAAO,eAAgB8B,EAAGkjJ,WAAW5rH,cApRlDyxC,EAASa,cAA8BxrE,GAAAK,KAAA,SAAAC,GAsR/B3G,EAAW2I,YAAY,UAAW,wCAAyC,gCApR3E0uJ,EAAOpvJ,EAAAkjJ,WAAA5rH,cACPt3B,EAAAgT,YAAS,GAsRV,SAAUrS,GApRT5I,EAAW2I,YAAA,kCAyRnBV,EAAGyqE,iBAAmB,WAClB,GAAI3xB,MApRJ/6C,EAAOiC,EAAAkjJ,WAAArkG,gBAyRP,KAAK,GAAI3jD,KAAK6C,GApRJpI,QAANoI,EAAM7C,GAAA4jD,WACNhG,EAAAjhD,KAAYkG,EAAA7C,GAAA4jD,UAwRhB,IArRIgnG,GAAmBhtG,EAAKplB,KAAA,KAuRxBqyH,GACA50D,KArRWx7F,QAqRJqK,EArRCunC,IAAG4pD,KAAgBnxF,EAAAunC,IAAe4pD,KAAG,GAsR7C60D,aAAsCrwJ,QAAvBqK,EAAGunC,IAAIy+G,aAA6BhmJ,EAAGunC,IAAIy+G,aAAe,GACzEC,aArRkCtwJ,QAAtBqK,EAAAunC,IAAQ0+G,aAAcjmJ,EAAkBunC,IAAA0+G,aAAkB,GAsRtE5vI,UArR2B1gB,QAAnBqK,EAAAkjJ,WAAgBS,WAA2B3jJ,EAAAkjJ,WAAcS,WAAAttI,UAAA,GAsRjEQ,QArRuBlhB,QAqRbqK,EArREkjJ,WAAWU,SAAuB5jJ,EAAAkjJ,WAAaU,SAAA/sI,QAAA,GAsR3DO,OArRgCzhB,QAqRvBqK,EAAGkjJ,WArROW,QAA0B7jJ,EAAAkjJ,WAAAW,QAAAzsI,OAAA,GAsR7Ca,OAAkCtiB,QAAzBqK,EAAGkjJ,WAAWY,QAAwB9jJ,EAAGkjJ,WAAWY,QAAQ7rI,OAAS,GAC9EK,QAAmC3iB,QAAzBqK,EAAGkjJ,WAAWY,QAAwB9jJ,EAAGkjJ,WAAWY,QAAQxrI,QAAU,IAGhFkzI,GACAxF,aArRuBrwJ,QAAXqK,EAAAhD,KAAWyuJ,iBAAAzrJ,EAAAhD,KAAAyuJ,iBAAA,GAsRvBxF,aArRkBtwJ,QAANqK,EAAMhD,KAAA0uJ,iBAAA1rJ,EAAAhD,KAAA0uJ,iBAAA,GAsRlBr1I,UAAyC1gB,QAA7BqK,EAAGkjJ,WAAWe,YAA4BjkJ,EAAGkjJ,WAAWe,YAAY5tI,UAAY,GAC5FQ,QAAqClhB,QAA3BqK,EAAGkjJ,WAAWyI,UAA0B3rJ,EAAGkjJ,WAAWyI,UAAU90I,QAAU,GACpFO,OArRmBzhB,QAAZqK,EAAAkjJ,WAAYkB,SAAApkJ,EAAAkjJ,WAAAkB,SAAAhtI,OAAA,GAsRnBa,OAAmCtiB,QAA1BqK,EAAGkjJ,WAAWqB,SAAyBvkJ,EAAGkjJ,WAAWqB,SAAStsI,OAAS,GAChFK,QAAoC3iB,QAA1BqK,EAAGkjJ,WAAWqB,SAAyBvkJ,EAAGkjJ,WAAWqB,SAASjsI,QAAU,IAGlF4tI,GApRRF,aAAAhmJ,EAAAiwJ,IAAA9J,gBAsRQF,aAAcjmJ,EAAGiwJ,IAAI7J,gBApR7B/vI,UAASrW,EAAAkjJ,WAAsBmD,WAAUhwI,UACrCQ,QAAA7W,EAAAkjJ,WAA2ByB,SAAA9tI,QACvBO,OAAQpX,EAAAkjJ,WAAW2B,QAAKztI,OAsRxBa,OArROjY,EAAAkjJ,WAAA8B,QAAuB/sI,OAsR9BK,QArROtY,EAAAkjJ,WAAY8B,QAAA1sI,SAwRnBguI,GACAC,SArRIvmJ,EAAAkwJ,QAAW3J,SAsRfC,MAA4B7wJ,QAApBqK,EAAGkwJ,QAAQ1J,MAAsBxmJ,EAAGkwJ,QAAQ1J,MAAQ,GApR7DC,SAAUzmJ,EAAAkwJ,QAAKzJ,SACdC,WAAW1mJ,EAAAkwJ,QAAYxJ,WAsRvBC,cAA4ChxJ,QAA5BqK,EAAGkwJ,QAAQvJ,cAA8B3mJ,EAAGkwJ,QAAQvJ,cAAgB,GACpFE,QAAgClxJ,QAAtBqK,EAAGkwJ,QAAQrJ,QAAwB7mJ,EAAGkwJ,QAAQrJ,QAAU,GAClE7zG,QAAShzC,EAAGkwJ,QAAQl9G,SAlR5B+zG,GACIC,eAAAhnJ,EAAqBowJ,GAAApJ,eACjBE,aAAQlnJ,EAAAowJ,GAAWlJ,aAsRnBE,SArROpnJ,EAAAowJ,GAAAhJ,SAsRPE,UArROtnJ,EAAAowJ,GAAA9I,UAsRPE,eArRQxnJ,EAAAowJ,GAAA,eAAApwJ,EAAAowJ,GAAA5I,eAAA,GAsRRE,aArRQ1nJ,EAAAowJ,GAAA,aAAApwJ,EAAAowJ,GAAA1I,aAAA,GAsRRE,SArRO5nJ,EAAAowJ,GAAA,SAAApwJ,EAAAowJ,GAAAxI,SAAA,GAsRPE,UArRI9nJ,EAAWowJ,GAAA,UAAYpwJ,EAAAowJ,GAAStI,UAAA,IAGpCE,GAsRAC,cAAejoJ,EAAGqvJ,UAAUpH,cAC5BE,IAAKnoJ,EAAGqvJ,UAAUlH,IAClBC,iBAAkBpoJ,EAAGqvJ,UAAUjH,iBApRvCE,UAAStoJ,EAAAqvJ,UAAkB/G,UACnBE,QAAMxoJ,EAAAqvJ,UAAA7G,QACNE,IAAA1oJ,EAAQqvJ,UAAG3G,IACXC,8BAAsB3oJ,EAAWqvJ,UAAA1G,8BACjCC,aAAY5oJ,EAAGqvJ,UAAWzG,aAC1BE,IAAA9oJ,EAAAqvJ,UAAavG,IAsRbC,gBAAiB/oJ,EAAGqvJ,UAAUtG,gBApRlCE,IAAAhvJ,EAAA,QAAmB+F,EAAAqvJ,UAAkBpG,IAAK,cAAejpJ,EAAKqvJ,UAAApG,IAAA,GAC1DyH,cAAQ1wJ,EAAAqvJ,UAAgBqB,cAsRxBC,YArRO3wJ,EAAAqvJ,UAAesB,YAsRtBC,YArRQ5wJ,EAAAqvJ,UAAAuB,YAsRRC,cArRQ7wJ,EAAAqvJ,UAAAwB,cAsRRC,gBArRO9wJ,EAAAqvJ,UAAAyB,gBAsRPC,QArRI/wJ,EAAAqvJ,UAAW0B,QAsRfC,QAAShxJ,EAAGqvJ,UAAU2B,QApRvBC,iBAAejxJ,EAAAqvJ,UAAA4B,iBAsRdC,QAASlxJ,EAAGqvJ,UAAU6B,QACtBC,YAAanxJ,EAAGqvJ,UAAU8B,YAC1BC,gBAAiBpxJ,EAAGqvJ,UAAU+B,gBAC9BC,iBAAkBrxJ,EAAGqvJ,UAAUgC,iBAC/BC,eAAgBtxJ,EAAGqvJ,UAAUiC,gBAlR9BjI,GACAzhD,SAAA5nG,EAAAsvJ,KAAgB1nD,SACfE,UAAW9nG,EAAAsvJ,KAAIxnD,UACnByhD,KAASvpJ,EAAAsvJ,KAAO/F,KAChBC,OAASxpJ,EAAAsvJ,KAAO9F,OAChBnzI,UAAArW,EAAAkjJ,WAAqBuG,YAAcpzI,UAC/BQ,QAAA7W,EAAWkjJ,WAAYwG,UAAA7yI,QACvBO,OAAApX,EAAAkjJ,WAAiByG,SAAWvyI,OAC5Ba,OAAGjY,EAAAkjJ,WAAa0G,SAAA3xI,OACjBK,QAAUtY,EAAAkjJ,WAAK0G,SAAAtxI,QACdi5I,kBAAWvxJ,EAAAsvJ,KAAYiC,mBAGxB1H,GACAC,UAAmCn0J,QAAnCqK,EAAgBqwJ,MAAMvG,UAAa9pJ,EAAAqwJ,MAAAvG,UAAA,GAClCC,WAAep0J,QAAJqK,EAAIqwJ,MAAAtG,WAAA/pJ,EAAAqwJ,MAAAtG,WAAA,GACnBt6G,YAAmC95C,QAAnBqK,EAAAqwJ,MAAA5gH,YAAmBzvC,EAAAqwJ,MAAA5gH,YAAA,GACnCy6G,cAA8Cv0J,QAA9BqK,EAAAqwJ,MAAAnG,cAA8BlqJ,EAAAqwJ,MAAAnG,cAAA,GAC9CE,IAAAnwJ,EAAA,QAAqB+F,EAAAqwJ,MAAAjG,IAAA,cAAiCpqJ,EAAAqwJ,MAAKjG,IAAU,IAGjEE,GACDC,WAAUvqJ,EAAKswJ,YAAA/F,WACdC,WAAWxqJ,EAAAswJ,YAAY9F,WAsRvBC,UAAWzqJ,EAAGswJ,YAAY7F,UAC1BE,UAAW1wJ,EAAQ,QAAQ+F,EAAGswJ,YAAY3F,UAAW,cAAgB3qJ,EAAGswJ,YAAY3F,UAAY,GAChGC,mBAAoB5qJ,EAAGswJ,YAAY1F,mBApRpCC,iBAAe7qJ,EAAAswJ,YAAiBzF,kBAGnCC,GACAC,cAA8Cp1J,QAA9BqK,EAAAkjJ,WAAgB8H,SAAchrJ,EAAAkjJ,WAAA8H,SAAAjyI,GAAA,GAC9CkyI,IAAqBt1J,QAArBqK,EAAAwwJ,IAAAvF,IAAqBjrJ,EAAkBwwJ,IAAAvF,IAAU,GAC7CE,cAAkCx1J,QAAvBqK,EAAAwwJ,IAAYrF,cAAWnrJ,EAAAwwJ,IAAArF,cAAoC,GACtEC,IAAiBz1J,QAAjBqK,EAAAwwJ,IAAApF,IAA4BprJ,EAAAwwJ,IAAApF,IAAA,GAC5BE,SAAgB31J,QAAbqK,EAAAwwJ,IAAalF,SAAAtrJ,EAAAwwJ,IAAAlF,SAAA,GACjBC,UAAe51J,QAALqK,EAAKwwJ,IAAAjF,UAAAvrJ,EAAAwwJ,IAAAjF,UAAA,IAwRdtwJ,GApRDq8B,aAAAt3B,EAAgBkjJ,WAAUA,WAAO5rH,aACjCu0H,iBAAgB7rJ,EAAMkjJ,WAAO4I,uBAAMD,iBAClChpG,eAAe7iD,EAAAunC,IAAA4pD,KACnBqgE,OAASxxJ,EAAAkjJ,WAAiB8I,aAAAhsI,OAC1BisI,QAASjsJ,EAAOkjJ,WAAAgJ,cAAmB71I,UACnCw2I,YAA6Cl3J,QAA7CqK,EAAqBkjJ,WAAA2J,YAAuC7sJ,EAAAkjJ,WAAK2J,YAAA,GAC7DT,mBAAWtG,EACXlwJ,OAAAoK,EAAAkjJ,WAAiBttJ,OACjBmwJ,qBAAgBppJ,KAAAqkB,UAAA+kI,GACjBuG,yBAAe3vJ,KAAAqkB,UAAAwqI,GACdwE,4BAAuBrzJ,KAAAqkB,UAAAklI,GAsRvBqG,eAAgB5vJ,KAAKqkB,UAAUslI,GAC/BmL,oBAAqB90J,KAAKqkB,UAAU+lI,GApRrC/D,iBAAiBrmJ,KAAAqkB,UAAiBgnI,GAClC0E,YAAA/vJ,KAAiBqkB,UAAMqoI,GACtBsD,aAAWhwJ,KAAIqkB,UAAA6oI,GACnB0G,iBAAgB5zJ,KAAAqkB,UAAgB8pI,GAChC4G,YAAgB/0J,KAAAqkB,UAAgBspI,GAChCx2I,UAAAJ,EAAqBrT,OAuRrB0oE,GArRqB0B,iBAAWxvE,GAAAwD,KAAA,SAAAC,GAC5B3G,EAAG2I,YAAa,UAAA,kCAAA,qBACjB1G,EAAA8F,GAAU/H,EAAKyE,eACdwD,EAAAgT,YAAW,GAsRZ,SAAUrS,GACT5I,EAAW2I,YAAY,kCAI/BV,EAAG+0D,gBArRiB,WAChB,GAAApiD,GAAStY,EAAOsY,QAAA,UAChB,yDACItb,WAAW,EACX+F,KAAA,MAwRJuV,GArRIjT,OAAWjB,KAAA,WAsRXsqE,EAAqBS,gBAAgBxpE,EAAGkjJ,WAAWA,WAAW5rH,cAAc74B,KAAK,SAAUC,GACvF3G,EAAW2I,YAAY,UAAW,iCAAkC,qBApRzE1G,EAAA8F,GAAA/H,EAAwByE,eACxBwD,EAAAgT,YAAA,GACC,SAAWrS,GACf5I,EAAgB2I,YAAe,kCAE/B,eA0RJV,EAAG4mE,MArRK,WAsRJ,GAAIj0D,GAAUtY,EAAQsY,QAAQ,UAC1B,6CApRDtb,WAAgB,EAChB+F,KAAA,MAGHuV,GAAAjT,OAASjB,KAAO,WAChBsqE,EAAqBnC,MAAA5mE,EAAAkjJ,WAAqBA,WAAU5rH,cAAe74B,KAAK,SAAAC,GACpE3G,EAAW2I,YAAY,UAAW,gCAAA,qBAClC1G,EAAA8F,GAAc/H,EAAGyE,eACdwD,EAAAgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAuRxB,eAKPV,EAAG8jB,QArRU,WACT,GAAAnR,GAAStY,EAAOsY,QAAA,UAChB,+CACItb,WAAW,EACX+F,KAAA,MAwRJuV,GArRIjT,OAAWjB,KAAA,WAsRXsqE,EAAqBjlD,QAAQ9jB,EAAGkjJ,WAAWA,WAAW5rH,cAAc74B,KAAK,SAAUC,GAC/E3G,EAAW2I,YAAY,UAAW,mCAAoC,qBApR3E1G,EAAA8F,GAAA/H,EAA0ByE,eAC1BwD,EAAAgT,YAAgB,GACf,SAAWrS,GACf5I,EAAgB2I,YAAe,kCAE/B,eA0RJV,EAAGypE,SArRK,WAsRJ,GAAI92D,GAAUtY,EAAQsY,QAAQ,UAC1B,gDApRDtb,WAAgB,EAChB+F,KAAA,MAGHuV,GAAAjT,OAASjB,KAAO,WAChBsqE,EAAqBU,SAAAzpE,EAAAkjJ,WAAoBA,WAAe5rH,cAAe74B,KAAA,SAAAC,GACnE3G,EAAW2I,YAAY,UAAW,sCAAsC,qBACxE1G,EAAA8F,GAAc/H,EAAGyE,eACdwD,EAAAgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAuRxB,eAKPV,EAAG5H,OArRC,WAuRA,GArRI8qJ,IACA5rH,aAAct3B,EAAGkjJ,WAAWA,WAAA5rH,cAG5Bl4B,EAAW7E,EAAY8E,MAsRvBhI,WAAW,EACXiI,eAAgB,cApRjBC,gBAAA,aACArK,YAAA,qDACCE,WAAW,kBACfC,aAAgB,KAChB+H,KAAS,KACToC,SAAA,SACIC,UAAA,EACAyQ,SACG3N,MAAA,WACJ,MAAe2gJ,MAItB9jJ,GAAOM,OAAgBjB,KAAA,aAEnB,eA0RJuB,EAAGykB,cArRK,WAsRJgZ,MArRI,OAyRRz9B,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YArRajB,EAsRbkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aArRcxB,EAsRdyB,QArRI,GAAApB,MAAc,KAAI,EAAI,IAsR1BgB,QArRI,GAAAhB,MAsRJqB,YArRI,GAgSR9a,EAAG+a,UArRK,WAsRJ/a,EAAGua,cArRaE,QAAWza,EAAAua,cAAYE,QAAa,KAAG,GAAAhB,MAsRvDzZ,EAAG2a,YArRUF,QAAGza,EAAWua,cAAYE,SAwR3Cza,EAAG+a,YAEH/a,EAAGgb,MArRK,WAsRJhb,EAAGib,OArRCpM,QAAc,GAwRtB7O,EAAGkb,MArRK,WAsRJlb,EAAGmb,OArRCtM,QAAW,CACX,IAAY4K,OAyRpBzZ,EAAGob,MArRK,WAsRJpb,EAAGqb,OArRCxM,QAAW,GAwRnB7O,EAAGsb,MArRK,WAsRJtb,EAAGub,OArRC1M,QAAa,GAwRrB7O,EAAGwb,QAAU,SAAUC,EAAMC,EAAOC,GApRhC3b,EAAAsa,GAAI,GAAAb,MAAAgC,EAAAC,EAAuBC,IAwR/B3b,EAAG4b,SArRK,eAAgB,aAAA,aAAA,YAAA,QAsRxB5b,EAAG6b,OArRK7b,EAAA4b,QAAc,GAuRtB5b,EAAG8b,iBArRmB,cAuRtB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QArRI,GAuRR7O,EAAGqb,QACCxM,QArRI,GAwRR7O,EAAGub,QACC1M,QArRI,EAyRR,IAAIkN,GArRI,GAAAtC,KAsRRsC,GArRQP,QAAAO,EAAgBC,UAAU,EAsRlC,IAAIC,GArRI,GAAexC,KAsRvBwC,GArRQT,QAAAO,EAAoBC,UAAU,GAsRtChc,EAAG2Z,SACCN,KArRI0C,EAsRJvlB,OArRI,SAuRJ6iB,KArRI4C,EAsRJzlB,OArRI,cA4SRiU,EAAO4P,MArRM,WAsRT5P,EAAO6P,GAAK,GAAIb,OAEpBhP,EArRI4P,QAuRJ5P,EAAOiN,MArRC,WAsRJjN,EArRI6P,GAAA,MAwRR7P,EAAOpL,KArRC,SAAAuL,GAsRJH,EAAOjU,OAAOqY,QAAS,GAG3BpE,EAAOuQ,MArRC,WAsRJvQ,EArRIyR,QAASrN,QAAW,GAwR5BpE,EAAO+Q,QArRC,SAAkBC,EAAAC,EAAYC,GAsRlClR,EArRI6P,GAAA,GAAYb,MAAGgC,EAAIC,EAAAC,IAwR3BlR,EArRIkQ,aAsRAwB,WArRI,OAsRJrB,YArRI,EAsRJsB,QArRI,QAwRR3R,EAAOmR,SArRC,QAsRRnR,EAAOoR,OArRCpR,EAAAmR,QAAoB,GAuR5BnR,EAAOjU,QACHqY,QArRI,GAuRRpE,EAAOyR,SACHrN,QArRI,4UAh7BZza,QACKC,OAAO,0BACPe,WAAW,wBAAyB+5J,MA2sC7C,WACI,YAOA,SAASwC,GAAgBlnJ,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,EAAuB4uE,GApRnI,GAAG/oE,GAAAC,IAsRHD,GAAGsU,SArRK,KAsRRtU,EAAGgT,YArRK,EAsRRhT,EAAG+S,WArRS,EAsRZ/S,EAAGsS,WArRS,EAsRZva,EAAW2c,SAAU,CACHva,GAAsBgG,sBAExCH,GAAGykB,cArRK,WAsRJ,GAAIK,IACAwS,aArRc/0B,EAAA+0B,aAsRd3S,gBApRGlC,MAAUziB,EAAA5H,OAAKssB,YACdE,WAAWzqB,EAAYgG,uBAAAE,OAsRvBwkB,WAAc5qB,EAAQ,QAAQ,GAAIwf,MAAQ,eAIlDsvD,GAAqBhkD,kBAAkBD,GAAWrmB,KAAK,SAAUC,GAC1C,MAAfA,EAAIlI,QApRLuB,EAAY2I,YAAA,UAAA,oCAAA,wBACf4b,EAAkBrN,QAClBjV,EAAA8F,GAAA/H,EAAAyE,gBAEIzE,EAAM2I,YAAA,QAAA,wBAsRFrJ,WAAW,EACX+F,KAAM,QAGf,SArRKuD,GAsRJ5I,EArRW2I,YAAG,QAAW,wBACrBrJ,WAAG,EACJ+F,KAAA,UA0RX4C,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,sKA5ClCnpB,QACKC,OArRM,2BAsRNe,WArRO,kBAAuBu8J,MAoUvC,WACI,YAOA,SAASC,GArRUnnJ,EAAa1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAkzC,EAAAn7B,EAsR5B2D,EArRWD,EAAem1D,EAAAh5D,EAAAE,EAAA3X,GAmU1B,QAAS+X,KAEL,GAAI8T,IACA7T,UAAWA,EApRfvc,OAAA,IAwRAg1E,GAA6BG,eAAe/kD,GAAWvnB,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,SACJwJ,EAAG2wB,YAAcjyB,EAAIhJ,KACrBk1E,EAA6BE,sBAAsBrsE,KAAK,SAAUC,GApR/C,MAAZA,EAAAlI,QACTwJ,EAAA2hB,YAAAjjB,EAAAhJ,KAsRUsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,aAnRlE,SAAIC,GAsRA5I,EAAW2I,YAAY,QAAS,mBAAoB,cAExDV,EAAGsS,WAAY,IAnRpB,SAAK3R,GAsRJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QArRImxJ,GAAatzJ,GAuRbyB,EAAG8xJ,oBACH9xJ,EAAGsgI,kBAMH,IAAIjlD,IACAj7E,SAAUrI,EAAW21C,aAazB97B,GAAuBwpE,sBAAsBC,GAAW58E,KAAK,SAAUC,GApRxE,MAAAA,EAAAlI,SAsRSwJ,EAAG8xJ,iBAAmBpzJ,EAAIhJ,KApR3BsK,EAAAsS,WAAY,GAwRX/T,GApRDA,KACJ,SAAOoC,GACN5I,EAAQ2I,YAAI,QAAA,mBAAA,6BAuSpB,QAAS2/H,GAAenkF,EAAY/kC,GAMhCnX,EAAGsgI,mBApRJtgI,EAAA6jB,QAAS28G,wBAAA,KA2SR5uH,EAAuB4pE,yBAAyBt/B,GAAYz9C,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SApRPwJ,EAAAsgI,gBAAkB5hI,EAAAhJ,KACZsK,EAAAsgI,gBAAKnlI,OAAA,EACLd,EAAK8C,OAAA,UAAA,iCAAA6C,EAAA6jB,QAAA28G,wBAAA3kF,cACHxkD,WAAO,EACZ+F,KAAa,OAGT+Z,GAsRIA,IAIRnX,EAAGsS,WAAY,IAnRvB,SAAO3R,GAsRH5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAO5D,QAASk+H,GAAYrgI,GApRrB,GAAOmf,EAsRH3L,GAAe6lC,cAAc79C,EAAOhC,EAAY2lB,GAAYjf,KAAK,SAAUC,GApRpD,MAApBA,EAAQlI,SACJwJ,EAAA8V,YAAKpX,EAAAhJ,KAuRJm8J,IApRL7xJ,EAAOsS,WAAU,GAuRZ/T,GACAA,KAhRL,SAAUoC,GACb5I,EAAY2I,YAAe,QAAO,mBAAA,aA0RtC,QArRI0V,GAAaC,EAAAc,GACbrF,EAASwE,oBAAAD,GAAA5X,KAAA,SAAAC,GAsRc,MAAfA,EAAIlI,SACJwJ,EAAGuW,UAAY7X,EAAIhJ,KApRxBsK,EAAWuW,UAAApb,OAAA,EACFd,EAAO8C,OAAQ,UAAA,0BAAA6C,EAAA6jB,QAAApN,gBAAAC,aAsRXrf,WAAW,EApRf+F,KAAA,OAGC+Z,GACLA,IAGHnX,EAAAsS,WAAS,IAuRX,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAQ5D,QAtRCkW,GAAWC,EAAmBM,GAuR3BzB,EAAYoB,iBAAiBD,GAASpY,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,SArRXwJ,EAAA+W,SAAgBrY,EAAQhJ,KACpBsK,EAAA+W,SAAA5b,OAAA,EACKd,EAAA8C,OAAA,UAAA,yBAAA6C,EAAA6jB,QAAAlN,cAAAK,WACE3f,WAAA,EACD+F,KAAA,OAGG+Z,GAuREA,IAnRZnX,EAAAsS,WAAc,IAwRf,SAtRK3R,GAuRJ5I,EAtRI2I,YAAc,QAAA,mBAAsB,yBA0RhD,QAtRI8e,GAAApI,EAAAD,GACA1B,EAAAgK,gBAAqBrI,GAAA3Y,KAAkB,SAAWC,GAC3B,MAAfA,EAAIlI,SACJwJ,EAAA4V,SAAWlX,EAAAhJ,KACXsK,EAAA4V,SAAAza,OAAkB,EAClBd,EAAU8C,OAAA,UAAW,yBAAA6C,EAAA6jB,QAAA5M,aAAA8G,UAClB1mB,WAAA,EACH+F,KAAW,OAyRH+Z,GACAA,IAnRRnX,EAAAsS,WAAW,IAwRhB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAK5D,QAASsT,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG6jB,QAAQmuI,aAAe,eApRlChyJ,EAAAivC,cAAA,KAEA,QAAAgjH,KACYjyJ,EAAA6jB,QAAAquI,cACPlyJ,EAAA6jB,QAAWmuI,aAAmB,UAwRvBhyJ,EAAG+xJ,gBAAiB,IApR5B/xJ,EAAA6jB,QAAamuI,aAAa,eACtBhyJ,EAAK+xJ,gBAAA,GAIT,QAAII,GAAQr/I,GAQT,GAPA9S,EAAA+S,WAAc,EAEb/S,EAAGgT,YAAA,EAwRHhT,EAAG6jB,QAAUzvB,QAAQ8e,KAAKJ,GAC1B9S,EAAGqtC,cAAgBrtC,EAAGivC,cAAgBl3C,EAAW8D,SAAW,sBAAwBiX,EAAIs/I,aApR7E,GAAZpyJ,EAAA6jB,QAAYwuI,eAGfryJ,EAAW6jB,QAAAquI,cAAU,EAClBD,QAEA,CAGAjyJ,EAAA6jB,QAAAquI,cAAiB,EACjBD,GACA,KAAA,GAAAp6I,KAAA7X,GAAA2hB,YACA3hB,EAAA2hB,YAAsB9J,GAAAw6I,iBAAAryJ,EAAA6jB,QAAAwuI,iBACdryJ,EAAA6jB,QAAehC,gBAAA7hB,EAAA2hB,YAAA9J,IAoStB,IAAK,GAAI3c,KAAK8E,GAAG8xJ,iBACT9xJ,EAAG8xJ,iBAAiB52J,GAAG0kI,oBAAsB5/H,EAAG6jB,QAAQ+7G,oBACxD5/H,EAAG6jB,QAAQyuI,qBAAuBtyJ,EAAG8xJ,iBAAiB52J,GA3Q9DmlI,GAAArgI,EAAA6jB,QAAAyuI,qBAA4C1yB,kBAAgB,WACxD,IAAI,GAAI1kI,KAAA8E,GAAAsgI,gBACDtgI,EAAAsgI,gBAAkBplI,GAAAqlI,gBAAAvgI,EAAA6jB,QAAA08G,gBACrBvgI,EAAA6jB,QAAA28G,wBAA6BxgI,EAAAsgI,gBAA2BplI,KA8RhE,IAAIq3J,GAvRO51J,KAAUC,MAAKoD,EAAA6jB,QAAA2uI,gBAyR1BxyJ,GAAG6jB,QAAQwgH,OAASkuB,EAAYluB,OAChCrkI,EAAG6jB,QAvRQ0gH,SAAAguB,EAAYhuB,SAwRvBvkI,EAAG6jB,QAAQ2gH,UAAY+tB,EAAY/tB,UAGnCpuH,EAAwBm8I,EAAYl8I,UAAW,WAE3C,IAAK,GAAIwB,KAAK7X,GAAG8V,YAtRhB9V,EAAA8V,YAAiB+B,GAAAxB,YAAUk8I,EAAAl8I,YAwRpBrW,EAAG6jB,QAAQ44B,oBAAsBz8C,EAAG8V,YAAY+B,GAGxD,KAAK,GAAIA,KAAK7X,GAAGuW,UACTvW,EAAGuW,UAAUsB,GAAGhB,UAAY07I,EAAY17I,UACxC7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUsB,GApRhDjB,GAAY27I,EAAA17I,QAAA,WACZ,IAAA,GAAUgB,KAAA7X,GAAW+W,SAwRT/W,EAAG+W,SAASc,GAAGT,SAAWm7I,EAAYn7I,SACtCpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAASc,MAIlD2H,EAAoB+yI,EAAYn7I,OAAQ,WACpC,IAAK,GAAIS,KAAK7X,GAAG4V,SACT5V,EAAG4V,SAASiC,GAAGI,SAAWs6I,EAAYt6I,SACtCjY,EAAG6jB,QAAQtE,aAAevf,EAAG4V,SAASiC,GACtC7X,EAAGglI,aAAehlI,EAAG6jB,QAAQtE,aAAapH,cA2P9D,QAvROzG,KACH1R,EAAGgT,YAAQ,EACXhT,EAAG6jB,WAwRH7jB,EAAGivC,cAAgB,KAGvB,QAASwjH,KAEDz4J,EAvRI8F,GAAI,8BA/VhB,GAAIE,GAAKC,IAETD,GAAGqU,kBArRgBhJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAsRnBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GApRjCzU,EAAAuU,YAAWE,GAwRdzU,EAAGyyJ,SArRSA,EAsRZzyJ,EAAGgT,YArRS,EAsRZhT,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WArRS,EAsRZva,EArRQ2c,SAAA,EAsRR1U,EAAGkvC,sBArRoB,EAsRvBlvC,EAAG6jB,WACH7jB,EAAG8uC,QArRSC,eAsRZ/uC,EAAGgvC,QArRQD,eAuRX/uC,EAAGqgI,eAAiBA,EACpBrgI,EAAGoW,wBArRgBA,EAsRnBpW,EAAG4W,qBAAuBA,EAC1B5W,EAAGwf,oBAAsBA,EACzBxf,EAAG6jB,QAAQmuI,aAAe,KAnR1BhyJ,EAAGiyJ,cAASA,EAsRZjyJ,EAAGgU,OArRCA,EAsRJhU,EAAG0R,OArRKA,EAsRR1R,EAAGmyJ,YArRKA,CA2RR,IAAIhgJ,GArRIhY,EAAiBgG,uBAAAwU,gBAAAxC,SA4RzBysH,KACA1sH,IA4WAlS,EAAGqN,OAvRI,WAyRCrN,EAAGkvC,sBACHlvC,EAAG0yJ,QAAUt+J,QAAQ8e,KAAKlT,EAAGgvC,OAAO2jH,aACpC3yJ,EAAG0yJ,QAAQC,YAAc3yJ,EAAGgvC,OAAO2jH,aAEnC3yJ,EAAG0yJ,YAKXjoJ,EAAOvO,IAAI,qCAAsC,WAG7C,GAAIvH,GAAWqL,EAAGglI,aAAaC,WAAWC,SAASvwI,SAC/C4vI,EAAW5vI,EAASwwI,MACpBX,EAAY7vI,EAASywI,KACzBplI,GAAG6jB,QAAQ0gH,SAAWA,EACtBvkI,EAAG6jB,QAAQ2gH,UAAYA,EACvB/5H,EAAOe,WAKXxL,EAAG4yJ,mBAvRY,WAwRX5yJ,EAAGq0B,SAvRS13B,KAAGC,MAAAoD,EAAA6jB,QAAgBhC,gBAAY2wI,iBAqB/CxyJ,EAAAq0B,SAAS13B,KAAYC,MAAAoD,EAAU6jB,QAAAhC,gBAAA2wI,gBAEZ,KAAA,GAAAt3J,KAAc8E,GAAA8xJ,iBACN9xJ,EAAA8xJ,iBAAK52J,GAAA0kI,oBAAA5/H,EAAA6jB,QAAAhC,gBAAA+9G,oBACjB5/H,EAAc6jB,QAAIyuI,qBAAAtyJ,EAAA8xJ,iBAAA52J,GA2R7B8E,GAAGqgI,eAAergI,EAAG6jB,QAAQhC,gBAAgB+9G,kBAAmB,WArRxD,IAAA,GAAA1kI,KAAA8E,GAAAsgI,gBACGtgI,EAAAsgI,gBAAAplI,GAAAqlI,gBAAAvgI,EAAA6jB,QAAAhC,gBAAA0+G,gBAwRqBvgI,EAAG6jB,QAAQ28G,wBAA0BxgI,EAAGsgI,gBAAgBplI,MAMxF8E,EAAG6jB,QAAQwgH,OAASrkI,EAAGq0B,SAASgwG,OAChCrkI,EAAG6jB,QAAQ0gH,SAAWvkI,EAAGq0B,SAASkwG,SAClCvkI,EAAG6jB,QAAQ2gH,UAAYxkI,EAAGq0B,SAASmwG,UArRnC5F,EAAA,WACI,IAAI,GAAI1jI,KAAA8E,GAAA8V,YACD9V,EAAA8V,YAAgB5a,GAAAmb,YAAArW,EAAAq0B,SAAAhe,YACfrW,EAAG6jB,QAAA44B,oBAAsBz8C,EAAA8V,YAAA5a,MA4RrCkb,EAvRepW,EAAAq0B,SAAAhe,UAAA,WAwRX,IAAK,GAvRGnb,KAAI8E,GAAAuW,UAwRJvW,EAAGuW,UAvRCrb,GAAA2b,UAAA7W,EAAAq0B,SAAAxd,UAwRJ7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUrb,MAMpD0b,EAAqB5W,EAAGq0B,SAASxd,QAAS,WAEtC,IAAK,GAAI3b,KAAK8E,GAAG+W,SACT/W,EAAG+W,SAAS7b,GAAGkc,SAAWpX,EAAGq0B,SAASjd,SACtCpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAAS7b,MAKlDskB,EAvRYxf,EAAWq0B,SAAKjd,OAAA,WAwRxB,IAvRI,GAAGlc,KAAA8E,GAAA4V,SACC5V,EAAG4V,SAAS1a,GAAA+c,SAAYjY,EAAAq0B,SAAApc,SACxBjY,EAAA6jB,QAAQtE,aAAkBvf,EAAA4V,SAAA1a,GA0RlC8E,GAAGglI,aAAehlI,EAAG6jB,QAAQtE,aAAapH,YAOlDnY,EAAG6yJ,aAAe,SAAUC,GACxB9yJ,EAvRGsS,WAAU,CAyRb,IAgCIygJ,GAtRR7qG,EAsPQ8qG,GACA3uB,OAAQrkI,EAAG6jB,QAAQwgH,OACnBhuH,UAAWrW,EAAG6jB,QAAQ44B,oBAAoBpmC,UAtRlDQ,QAAS7W,EAAA6jB,QAAAlN,cAA4BE,QACjCO,OAAYpX,EAAA6jB,QAAA5M,aAAwBG,OAChCa,OAAQjY,EAAA6jB,QAAWtE,aAAKtH,OAwRxBK,QAvROtY,EAAA6jB,QAAWtE,aAAIjH,QAwRtBisH,SAvRQvkI,EAAG6jB,QAAS0gH,SAwRpBC,UAvRQxkI,EAAA6jB,QAAQ2gH,UA2BU,kBAA1BxkI,EAAG6jB,QAAQmuI,cACX9pG,EAAGloD,EAAA6jB,QAAAhC,gBAAiBwwI,eAwRpBU,EAAU/yJ,EAAG6jB,QAAQhC,gBAAgBS,cApRrC4lC,EAAG,EAwRH6qG,EAAU/yJ,EAAG6jB,QAAQvB,YApR7B,IAAA2wI,EAIOA,GAHAjzJ,EAAA+S,UAGU/S,EAAA6jB,QAAQ/tB,UAqRR,CAIb,IAAIo9J,EArRAA,GAsRY,WAAZJ,EAtRW,EAyRC,CAEhB,IAvRIlvB,IAwRA4uB,gBAAiB71J,KAAKqkB,UAAUgyI,GAEhCG,sBAAsB,GACtBr9J,UAAWm9J,EAtRXZ,eAAWnqG,EACX5lC,YAAAywI,EACAK,eAAcpzJ,EAAG6jB,QAAAyuI,qBAAa1yB,kBAwR9BW,cAvRWvgI,EAAA6jB,QAAe28G,wBAAsBD,cAwRhDgE,SAvRQvkI,EAAG6jB,QAAQ0gH,SAwRnBC,UAAWxkI,EAAG6jB,QAAQ2gH,UACtB6uB,cAAerzJ,EAAG6jB,QAAQwvI,cAC1BC,SAAUtzJ,EAAG6jB,QAAQyvI,SACrBC,eAAgBvzJ,EAAG6jB,QAAQ0vI,eAC3B39J,OAAQs9J,EACR/gJ,UAAWA,EACXigJ,aAAa,GAIjB,IAAKpyJ,EAAG+S,UAaJ63D,EAA6BK,YAAY24D,GAAQnlI,KAAK,SAAUC,GAC5D3G,EAAW2I,YAAY,UAAW,+BAAgC,WAClEwR,IAtRRR,KACI,SAAS/Q,GACL5I,EAAO2I,YAAgB,QAAG,8BAA6B,WAyR3DV,EAAGsS,WAAY,MApBA,CACf,GAAIkhJ,GAAar5J,EAAsBgG,sBAtR3CyjI,GAAS9vH,UAAQ0/I,EAAAnzJ,OACbuqE,EAA2BK,YAAA24D,GAAsBnlI,KAAG,SAAQC,GACxD3G,EAAW2I,YAAA,UAAuB,6BAAoB,WAwRtDwR,IACAR,KACD,SAAU/Q,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,WAEnEV,EAAGsS,WAAY,IAavB7H,EAAOiU,cAAgB,SAAUlR,GAC7B/C,EAAOe,OAAO,WACVxL,EAAGivC,cAAgBzhC,EAAE/D,OAAO/J,8OAlnBxCtL,QACKC,OArRG,qCAsRHe,WArRO,kBAAqBw8J,MAw5BrC,WACI,YAOA,SAAS6B,GAvRuBhpJ,EAAY1Q,EAAQhC,EAAYyC,EAAAH,EAAAL,EAAAkzC,EAAAn7B,EAwR5D2D,EAvRYD,EAAcm1D,EAAa8oF,EAAA9hJ,EAAAE,EAAA3X,GAyTvC,QAAS+X,KAELlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IACA7T,UAAWA,EACXvc,OAAQ,IAtRbg+J,YAAS,OAERF,GAA6BG,oBAAA7tI,GAAAvnB,KAAA,SAAAC,GACZ,MAAVA,EAAAlI,SACAwJ,EAAA8zJ,iBAAsBp1J,EAAGhJ,KACzBsK,EAAAsS,WAAA,IAyRJ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAASqzJ,GAAUC,EAAYz1J,GArRvB,GAAWynB,IACC7T,UAASA,EACdvc,OAAW,IACXg+J,YAAY,OAChB99J,UAAAk+J,EAyRKN,GAA8BO,qCAAqCjuI,GAAWvnB,KAAK,SAAUC,GACtE,MAAfA,EAAIlI,SACJwJ,EAAGkiG,YAAcxjG,EAAIhJ,KAtRrBsK,EAAAsS,WAAY,IAyRjB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAIxE,QAASqvG,GAAYj9F,GACjB9S,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAEf/S,EAAGk0J,oBAAsB9/J,QAAQ8e,KAAKJ,GAEtC9S,EAAGm0J,QAAQ7xI,YAActiB,EAAGk0J,oBAAoB5xI,WAEhD,KAAK,GAAIpnB,KAAK8E,GAAG8zJ,iBACT9zJ,EAAG8zJ,iBAAiB54J,GAAGpF,WAAakK,EAAGk0J,oBAAoBp+J,YAC3DkK,EAAGm0J,QAAQtyI,gBAAkB7hB,EAAG8zJ,iBAAiB54J,GAIzD64J,GAAU/zJ,EAAGm0J,QAAQtyI,gBAAgB/rB,UAAW,WAtR7C,IAAA,GAAAoF,KAAW8E,GAAKkiG,YAwRPliG,EAAGkiG,YAAYhnG,GAAG6rD,SAAW/mD,EAAGk0J,oBAAoBntG,SACpD/mD,EAAGm0J,QAvRM1T,aAAYzgJ,EAAAkiG,YAAkBhnG,KA+RnD,KAAK,GAzRFk5J,GAAAz3J,KAAkBC,MAAAoD,EAAQk0J,oBAAgBG,WAyRpCn5J,EAAI,EAAGA,EAAI0H,OAvRID,KAAKyxJ,GAAYj5J,OAAAD,IACN,sBAuR3B0H,OAAOD,KAAKyxJ,GAvRQl5J,KAwRpB8E,EAAGm0J,QAAQG,YAvRa1xJ,OAAGmK,OAAQqnJ,GAAAl5J,GA2R3C8E,GAAGm0J,QAAQ1sG,SAAWznD,EAAGk0J,oBAAoBjnG,UArR7CjtD,EAAGm0J,QAAQI,gBAAYv0J,EAASk0J,oBAAAliC,YAChChyH,EAAGm0J,QAAQK,aAAcx0J,EAAAk0J,oBAASO,kBAClCz0J,EAAGm0J,QAAQ1pI,UAAYzqB,EAAGk0J,oBAASzpI,UAwRnCzqB,EAAGm0J,QAAQO,cAAgB10J,EAAGk0J,oBAAoBQ,cAtRlD10J,EAAAm0J,QAAAQ,eAAwB30J,EAAAm0J,QAAAI,gBAAAv0J,EAAAm0J,QAAAG,WA0RxB,IAAIM,GAvRWj4J,KAAQC,MAAAoD,EAAAk0J,oBAAyBlR,iBAyRhDhjJ,GAAGm0J,QAAQU,IAAMD,EAAYC,IAC7B70J,EAAGm0J,QAAQW,WAAaF,EAAYE,WACpC90J,EAAGm0J,QAAQY,WAAaH,EAAYG,WAtRpC/0J,EAAAm0J,QAAAa,mBAA2BJ,EAASI,mBAwRpCh1J,EAAGm0J,QAvRMc,iBAAYL,EAAWK,iBAwRhCj1J,EAAGm0J,QAvRKe,eAAoBN,EAAYM,eAwRxCl1J,EAAGm0J,QAAQgB,kBAvRYP,EAAmBO,kBAwR1Cn1J,EAAGm0J,QAAQiB,WAAaR,EAAYQ,WACpCp1J,EAAGm0J,QAAQkB,oBAAsBT,EAAYS,oBAC7Cr1J,EAAGm0J,QAAQmB,qBAAuBV,EAAYU,qBAC9Ct1J,EAAGm0J,QAAQoB,qBAAuBX,EAAYW,qBAC9Cv1J,EAAGm0J,QAAQqB,mBAAqBZ,EAAYY,mBAtR5Cx1J,EAAAm0J,QAAAsB,aAAwBb,EAASa,aAwRjCz1J,EAAGm0J,QAAQuB,mBAAqBd,EAAYc,mBAC5C11J,EAAGm0J,QAvRMwB,iBAAYf,EAAUe,iBAwR/B31J,EAAGm0J,QAvRKyB,kBAAmBhB,EAAcgB,kBA2R7C,QAASxhC,KArRLp0H,EAAAgT,YAAA,EAwRAhT,EAAG+S,WAvRU,EAwRbb,IAoCJ,QAASugJ,KAEDz4J,EAAO8F,GAAG,gCAAiChK,UAAW+/J,EAAc5/J,OAAO,oBAAoBC,UAAU,KA7KjH,GAAI8J,GAAKC,IAETD,GAAGqU,kBAvRoBhJ,MAAA,KAAkBA,MAAQ,KAAAA,MAAa,KAAAA,MAAA,MAwR9DrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAUrBzU,EAAGm0J,WACHn0J,EAAG+vG,YAAcA,EACjB/vG,EAAGsS,WAAY,EACftS,EAAGo0H,OAASA,EACZp0H,EAAG+zJ,UAAYA,EACf/zJ,EAAGyyJ,SAASA,CACZ,IAAIoD,GAAe77J,EAAOvE,OAAOK,UAC7B69J,EAAc35J,EAAOvE,OAAOM,OAE5Boc,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAM7ED,KA0GClS,EAAG81J,qBAAuB,SAAUhD,GAEjC,GAAItxI,EAEAA,GADY,WAAZsxI,EACW,EAEA,CArRhB,IAAAU,GAAer5J,EAAoBgG,uBAyR9B41J,GAtRAC,QAAAh2J,EAAAk0J,oBAAc8B,QACdpgK,OAAQ4rB,EACRoyI,YAAW,OACX9/I,UAAS0/I,EAAWnzJ,OA0RxBqzJ,GAvRwBuC,uBAAaF,GAAAt3J,KAAA,SAAAC,GACpB,MAAbA,EAAAlI,SACAwJ,EAAAsS,WAAc,EAwRVtS,EAAGgT,YAAa,EACA,WAAZ8/I,EACA/6J,EAAW2I,YAAY,UAAW,wBAAyB,WAE3D3I,EAAW2I,YAAY,UAAW,wBAAyB,WAC/DwR,MAEL,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yRA7KhEtM,QACKC,OAAO,wCACPe,WAAW,8BAA+Bq+J,MAwLnD,WACI,YAOA,SAASyC,GAAgCzrJ,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAczxF,EAAiBn7B,EACxH2D,EAvRSD,EAAAm1D,EAAA8oF,EAAAyC,EAAAC,EAAAxkJ,EAAAE,EAAA3X,EAAAk8J,EAAAC,GA0VT,QAvROpkJ,KACHlS,EAAGjK,OAAA49J,EAyRH3zJ,EAAGu2J,oBAAuBC,MAAS,kBAAqBA,MAAS,aAAgBA,MAAS,cAE1F,IAAIxwI,IAtRA7T,UAAUA,EAwRVrc,UAAW+/J,EACXjC,YAAa,WAGjBwC,GAA2BK,oCAAoCzwI,GAAWvnB,KAAK,SAAUC,GACrF,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGgmD,aAAetnD,EAAIhJ,IArRtC,IAAAghK,IAwRoBvkJ,UAAWA,EACXwkJ,OAAQ,aAtRhBR,GAAAS,uBAAAF,GAAAj4J,KAAA,SAAAo4J,GACI,MAAAA,EAAArgK,QAyRQwJ,EAAG82J,gBAAkBD,EAAKnhK,KAC1BsK,EAAGsS,WAAY,GAtRtBva,EAAa2I,YAAA,QAAA,yBAA8B,4BA0RzC,SAAUC,GAvRtB5I,EAAqB2I,YAAe,QAAE,mBAA0B,4BAGhE,IAAAq2J,IACA5kJ,UAAuBA,EACnBrc,UAAc+/J,EAyRLjC,YAAa,OACbh+J,OAAQ,IAEZwgK,GAA2BY,8BAA8BD,GAAoBt4J,KAAK,SAAUC,GACxF,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8zJ,iBAAmBp1J,EAAIhJ,IAE1B,IAAIuhK,IACA9kJ,UAAWA,EAvRtBvc,OAAA,IACIg+J,YAAA,WACF99J,UAAA+/J,EAGHnC,GAAAO,qCAAAgD,GAAAx4J,KAAA,SAAAC,GACO,GAAc,MAAPA,EAAAlI,OAAO,CACRwJ,EAAAkiG,YAAOxjG,EAAAhJ,IAEhB,IAAAwhK,IAyRgB/kJ,UAAWA,EACXrc,UAAW+/J,EAGfQ,GAAuCc,+BAA+BD,GAAcz4J,KAAK,SAAU24J,GAvR/H,MAAAA,EAAA5gK,SACgBwJ,EAAAq3J,gBAAAD,EAAA1hK,KAEA4gK,EAAAgB,6BAAAJ,GAAAz4J,KAAA,SAAA84J,GACI,GAAA,MAAAA,EAAA/gK,OAAA,CAGC,GAFFwJ,EAAAw3J,sBAAAD,EAAA7hK,KAEEsK,EAAAw3J,sBAAAr8J,OAAA,EAyR2B,IAAK,GAAID,KAAK8E,GAAGw3J,sBAvR/Bx3J,EAAoBw3J,sBAAgBt8J,GAAUu8J,cAAK,EACrDz3J,EAAAw3J,sBAAAt8J,GAAAw8J,QAAA,EACM13J,EAAAw3J,sBAAAt8J,GAAAy8J,gBAAA,EACX33J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA92C,EAAAu2J,kBAAA,EAGav2J,GAAAsS,WAAA,IA0RD,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAG7D,SAAUC,GAvRT5I,EAAA2I,YAAA,QAAA,mBAAA,oBAEJV,EAAAsS,WAAA,IAER,SAAW3R,GAyRP5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAtRxDV,EAAAsS,WAAQ,IA0Rb,SAxRS3R,GAyRR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,EAAGsS,WAAY,KApRvB8jJ,EAAgBwB,eAAA,QAAAn5J,KAAA,SAAAC,GACD,MAAZA,EAAAlI,SAyRKwJ,EAAG6xF,SAAWnzF,EAAIhJ,KAvRvBsK,EAAAsS,WAAA,IAEA,SAAQ3R,GAyRP5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAU5D,QAASqzJ,GAxRU8D,EAAQt5J,GA4RvB,GAHKyB,EAAG+S,WACJ+kJ,IAEAD,EAAkB,CAtRlB,GAAA7xI,IAyRI7T,UAAWA,EAvRd2xC,WAAe+zG,EACZ/hK,UAAO+/J,EACPxgD,aAAW,EA2Rf+gD,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GAvRzE,GAAsB,MAAdA,EAAAlI,OAAc,CAyRbwJ,EAAGg4J,kBAAoBt5J,EAAIhJ,KAtR5BsK,EAAAg4J,kBAAkB78J,OAAA,EAClB6E,EAAAi4J,aAAe,EAEfj4J,EAAAi4J,aAAoB,CA0RnB,KAAK,GAAI/8J,KAAK8E,GAAGg4J,kBAvRuB,IAAlCh4J,EAAKg4J,kBAAS98J,GAAA03B,gBAyRZ5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eArRlF,IAAAqkI,IACA9kJ,UAAAA,EACAvc,OAAA,IACAg+J,YAAiB,WACjB99J,UAAA+/J,EAGAnC,GAAuBO,qCAAYgD,GAAAx4J,KAAA,SAAAC,GACZ,MAAvBA,EAAAlI,SACAwJ,EAAAkiG,YAAqBxjG,EAAAhJ,MACrBsK,EAAe+S,UAyCR/S,EAAAsS,WAAA,IA0RH,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBArR/DV,EAAUsS,WAAA,EAED/T,GAyREA,MAET,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBAxRfh4J,EAAAm0J,QAAA9rI,KAAA,GACYroB,EAAAm4J,iBACPn4J,EAAAo4J,qBAAW,EA0RJp4J,EAAGq4J,oBAAqB,EArRhC,QAASC,GAAAC,EAAAh6J,GAEN,GAwRCu5J,IAxRDS,EAAA,CAEC,GAAQvyI,IACT7T,UAAcA,EACd2xC,WAAA9jD,EAAuBm0J,QAAApwG,iBAAeD,WAClChuD,UAAc+/J,EA0RTxgD,aAAckjD,EAGlBnC,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGw4J,qBAAuB95J,EAAIhJ,IAC9B,IAAI+iK,GAAQ,EACZ,KAAK,GAAIv9J,KAAK8E,GAAGw4J,qBACTx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBACjG5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGw4J,qBAAqBt9J,GAAG03B,gBAtRpEj9B,QAA7BqK,EAAAg4J,kBAA6B98J,GAAAulJ,eAC7BgY,GAAuB9iK,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAAA,GAAAroB,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KA2RVroB,GAAGm0J,QAAQ9rI,KAAOowI,EAGlBC,EAAgBH,GAEhBv4J,EAAGsS,WAAY,EAvRhB/T,GACZA,MA4RQ,SAAUoC,GAxRlB5I,EAAA2I,YAA0B,QAAA,mBAAA,wBAI1BV,GAAAm0J,QAAUpwG,iBAAA,KA0RL/jD,EAAGg4J,qBAxRRh4J,EAAQm0J,QAAA9rI,KAAc,GAIzB,QAAGqwI,GAAqBH,GAErB,GAAAvyI,IACA7T,UAAQA,EACRrc,UAAQ+/J,EACRjC,YAAQ,WACRh+J,OAAQ,IA0RHmxD,OAAQwxG,EAtRbv4J,GAAAm0J,QAAYwE,YAAA,EACZ34J,EAAAm0J,QAAAyE,QAAmB,EACnB54J,EAAAm0J,QAAA0E,WAAkB,EA0RjB74J,EAAGm0J,QAAQ2E,iBAAmB,EAxR9B94J,EAAAm0J,QAAA4E,WAAY,EAEZ/4J,EAAAm0J,QAAAniC,YAAqB,EACrBhyH,EAAAm0J,QAAAW,WAAa,EA2Rb90J,EAAGm0J,QAAQQ,eAAiB,EAxRhC30J,EAAAm0J,QAAAY,WAAA,EACA/0J,EAAAm0J,QAASa,mBAAO,EA6RZqB,EAAuC2C,kCAAkChzI,GAAWvnB,KAAK,SAAUC,GAxR/F,GAAY,MAAZA,EAAAlI,OAAY,CAGZ,GAFAwJ,EAAAi5J,mBAAWv6J,EAAAhJ,KAEXsK,EAAAi5J,mBAAa99J,OAAA,GA0RD6E,EAAGi5J,mBAAmB,GAAGN,YAAc,EAAG,CAC1C34J,EAAGm0J,QAAQwE,YAAc34J,EAAGi5J,mBAAmB,GAAGN,YAxRlE34J,EAAAm0J,QAA2ByE,QAAA54J,EAAAi5J,mBAAA,GAAAL,QACf54J,EAAAm0J,QAAW0E,WAAK74J,EAAAi5J,mBAAA,GAAAJ,WACjB74J,EAAAm0J,QAAe2E,iBAAI94J,EAAAi5J,mBAAA,GAAAH;AA0Rd94J,EAAGm0J,QAAQ4E,WAAa/4J,EAAGi5J,mBAAmB,GAAGF,UAvRrD,KAAA,GAAW79J,KAAA8E,GAAA6xF,SACH7xF,EAAA6xF,SAAA32F,GAAAs3F,QAAAxyF,EAAAi5J,mBAAA,GAAAzmE,SA0RIxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAAS32F,GArRpDi+J,GAAen5J,EAAAi5J,mBAAA,GAAA7F,gBA6RvBpzJ,EAzRGsS,WAAU,IA4RlB,SAAU3R,GACT5I,EAzRQ2I,YAAA,QAAqB,mBAAA,oBA+RrC,QAAS04J,GAzRGvB,EAA2Bt5J,GA0R/Bs5J,GACK73J,EAAG+S,WACJghJ,EAAU8D,EAAkB,SAAUt5J,GAxR9BA,GA0RAA,MAEZyB,EAAGsS,WAAY,IAGftS,EAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAzRK,GA0RhBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGq4J,oBAzRqB,GA4RhC,QAASc,GAAqBE,EAAiB96J,GAC3C,GAAI86J,EAAiB,CAEjB,GAAIC,IACAnnJ,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAzRCD,WA0RxBsvG,eAAgBiG,EAGpBr5J,GAAGw3J,yBAEHlB,EAA2BgB,6BAzRoBgC,GAAyB76J,KAAA,SAAA84J,GA0RpE,GAA4B,MAAxBA,EAAa/gK,OAAgB,CAE7B,GADAwJ,EAAGw3J,sBAAwBD,EAzRY7hK,KA0RnCsK,EAAGw3J,sBAAsBr8J,OAzRO,EAAG,CA0RnC6E,EAAGq4J,oBAAqB,CACxB,KAAK,GAAIn9J,KAAK8E,GAAGw3J,sBAAuB,CAEpCx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EACvCv5J,EAAGw3J,sBAzRsBt8J,GAAAs+J,UAAK,EA0R9Bx5J,EAAGw3J,sBAzRat8J,GAAWu+J,QAAA,EA0R3Bz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EACzCzwC,EAAGw3J,sBAAsBt8J,GAAGw+J,gBAAkB,EAC9C15J,EAAGw3J,sBAzRmBt8J,GAAA47C,aAAA92C,EAAAu2J,kBAAA,GA0RtBv2J,EAAGw3J,sBAzRgBt8J,GAAAy+J,YAAqB,EA0RxC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAzRgBt8J,GAAA2+J,cAAA,CA0RnB,IAAIC,KAxRU,IAAf95J,EAAAw3J,sBAAet8J,GAAA6+J,UACsC,IAApD/5J,EAAWw3J,sBAAqBt8J,GAAA8+J,mBA0RxBF,IAAgBtD,MAAS,aAxRlCx2J,EAAYw3J,sBAAAt8J,GAAAy+J,YAAA,EA0RH35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EAxR1C55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,IA4REC,IAAgBtD,MAAS,kBAAqBA,MAAS,eAxR5Dx2J,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EA0RK35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAtRhD75J,EAAAw3J,sBAAKt8J,GAAA+3B,SAAA6mI,EACN95J,EAAIw3J,sBAAAt8J,GAAA47C,aAAAgjH,EAAA,IAGR95J,EAAAw3J,sBAAAt8J,GAAA+3B,aAmBVjzB,EAAAsS,WAAY,IA2Rb,SAzRC3R,GA0RA5I,EAAW2I,YAAY,QAAS,mBAAoB,wBASxDV,GAAGm0J,QAAQpwG,iBAzRkB,KA0R7B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAzRK9rI,KAAS,GA0RjBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAzRgB,EA0RnBp4J,EAAGq4J,oBAAqB,EAGhC,QAASP,KACL93J,EAAGm0J,QAAQwE,YAzRa,EA0RxB34J,EAAGm0J,QAAQniC,YAzRK,EA0RhBhyH,EAAGm0J,QAAQQ,eAzRgB,EA0R3B30J,EAAGm0J,QAAQyE,QAAU,EACrB54J,EAAGm0J,QAAQW,WAAa,EACxB90J,EAAGm0J,QAAQY,WAzRC,EA0RZ/0J,EAAGm0J,QAAQa,mBAzRa,EA0RxBh1J,EAAGm0J,QAAQM,kBAzRY,EA0RvBz0J,EAAGm0J,QAAQ8F,cAzRc,EA0RzBj6J,EAAGm0J,QAAQ+F,mBAAqB,EAChCl6J,EAAGm0J,QAAQgG,eAAiB,CAE5B,KAAK,GAAIj/J,KAAK8E,GAAGw3J,sBAObx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EACvCv5J,EAAGw3J,sBAAsBt8J,GAAGs+J,UAAY,EACxCx5J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU,EACtCz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EACzCzwC,EAAGw3J,sBAAsBt8J,GAAGw+J,gBAAkB,EAC9C15J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkB,GAChEv2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,CAE/C75J,GAAGm0J,QAAQO,cAAgB,EAC3B10J,EAAGm0J,QAAQiG,SAAW,EACtBp6J,EAAGm0J,QAAQ1pI,UAAY,EAG3B,QAAS4vI,KAELr6J,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGm0J,QAAQniC,cAAclmG,QAAQ,GAC9G9rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGm0J,QAAQyE,SAAW/sI,WAAW7rB,EAAGm0J,QAAQW,aAAahpI,QAAQ,GACrG9rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQY,aAAajpI,QAAQ,GACpH9rB,EAAGm0J,QAAQ8F,eAAkBpuI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQM,mBAAsB,KAAK3oI,QAAQ,GAC9H9rB,EAAGm0J,QAAQgG,gBAAmBtuI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQ+F,oBAAuB,KAAKpuI,QAAQ,EAEhI,IAAIwuI,GAAqB,EACrBF,EAAW,CAEf,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAC+B,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAC0B,iBAAlD/5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAvRlB,gBAyRnBx2J,EAAGw3J,sBAzRgBt8J,GAAA8+J,kBA0RnBh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAvRpF,gBAApD9rB,EAAAw3J,sBAAuBt8J,GAAS8+J,kBA0RhCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAvR5H,wBAAZ9rB,EAAAw3J,sBAAYt8J,GAAA8+J,oBA0RXh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,IAGnJwuI,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAvRjE,GAAhCx5J,EAAWw3J,sBAAqBt8J,GAAAq/J,QA0RxBv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GACpKsuI,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAtRlD,YAApBx6J,EAAAw3J,sBAAoBt8J,GAAA47C,aAAA0/G,OAEpB8D,EAAgBzuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu+J,SAEK,GAArBz5J,EAAAw3J,sBAAqBt8J,GAAAq/J,QA0RZv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAAW5tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GAClKsuI,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAtR7E,cAAAx6J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,QA2RiE,gBAAjDx2J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAxRpCh6J,EAAAw3J,sBAAYt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAE4B,gBAA5B9rB,EAAGw3J,sBAAQt8J,GAAiB8+J,kBACxCh6J,EAAWw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAY,YAAAlpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GA2RmD,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,IAtRnKwuI,EAAGzuI,WAA2ByuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,iBAES,GAAvC15J,EAAKw3J,sBAAYt8J,GAAAq/J,QACbv6J,EAAAw3J,sBAAOt8J,GAAqBs/J,WAAa3uI,WAAG7rB,EAAAw3J,sBAAiCt8J,GAAAw+J,iBAAqB7tI,WAAG7rB,EAAAw3J,sBAAqBt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GA0R1HsuI,GAzROvuI,WAAqB7rB,EAAAw3J,sBAA4Bt8J,GAAAs/J,aAiSxE,IAAIE,GAAgB,CAChB16J,GAAG82J,gBAzRK37J,OAAgB,IA0RxBu/J,GAAiB16J,EAAGm0J,QAAQQ,eAAiB9oI,WAAW7rB,EAAG82J,gBAAgB,GAAGrmH,YAAc,KAAK3kB,QAAQ,GACzGsuI,GAzRWvuI,WAAY6uI,IA6R3B16J,EAAGm0J,QAAQiG,SAAWA,EAAStuI,QAAQ,GACvC9rB,EAAGm0J,QAAQO,cAAgB4F,EAAmBxuI,QAAQ,GACtD9rB,EAAGm0J,QAzRI1pI,WAAeoB,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAO,eAAA7oI,WAAA7rB,EAAAm0J,QAAAiG,WAAAtuI,QAAA,GA6R1B,QAzRS6uI,GAAAC,EAAAj1G,GA2RL,IAzRI,GAAGzqD,KAAA8E,GAAAw3J,sBA2RCx3J,EAAGw3J,sBAAsBt8J,GAAG2/J,aAAeD,GACC,GAAxC56J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAChBpkK,QAARgwD,GAxRX3lD,EAAAw3J,sBAAyBt8J,GAAAy+J,YAAA,EA0Rd35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EAxRxC55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,GAED,iBAAA75J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,OACXx2J,EAAaw3J,sBAAAt8J,GAAAy+J,YAAA,EACL35J,EAAAw3J,sBAAAt8J,GAAA0+J,WAAA,EACA55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,GA2R2D,YAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAxRnDx2J,EAAAw3J,sBAAct8J,GAAAy+J,YAAA,EACd35J,EAAAw3J,sBAAUt8J,GAAA0+J,WAAA,EACV55J,EAAAw3J,sBAAat8J,GAAA2+J,cAAA,GAEA,cAAb75J,EAAaw3J,sBAAAt8J,GAAA47C,aAAA0/G,QA0RRx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EAxR9C35J,EAAAw3J,sBAAct8J,GAAA0+J,WAAA,EACd55J,EAAAw3J,sBAAat8J,GAAA2+J,cAAA,IAgS5B,QAASiB,GAAwBF,EAAcj1G,GAxR3C,GAAA20G,GAAA,EACIF,EAAQ,CA2RZ,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAxR6B,GAAtCx3J,EAAAw3J,sBAAOt8J,GAAmB6+J,WAEU,iBAyRhC/5J,EAAGw3J,sBAzRYt8J,GAAA47C,aAAiB0/G,OA0RhCx2J,EAAGw3J,sBAzRsBt8J,GAAGy8J,gBAAA,EA2R5B33J,EAAGw3J,sBAzRYt8J,GAAAu8J,cAAsB5rI,WAAmB7rB,EAAGm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAA6/J,YA2R3D/6J,EAAGw3J,sBAAsBt8J,GAAGs/J,UAAa3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eAAiB5rI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,IAK1JH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eAC7F2C,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aApR9Dx6J,EAAAw3J,sBAAYt8J,GAAAy8J,gBAAA,EA2RX33J,EAAGw3J,sBAAsBt8J,GAAGs/J,UAAa3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw8J,SAAW7rI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,IAvR5JH,EAAuBzuI,WAASyuI,GAAoBzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw8J,SA2R5C0C,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAMzEx6J,GAAGm0J,QAzRMiG,SAAGA,EA0RZp6J,EAAGm0J,QAzRKO,cAAU4F,EA0RlBt6J,EAAGm0J,QAAQ1pI,UAzRKzqB,EAAAm0J,QAAAQ,eAAA30J,EAAAm0J,QAAAO,cAAA10J,EAAAm0J,QAAAiG,SA8RpB,QAzRShmC,KA0RLp0H,EAAGgT,YAzRY,EA0RfhT,EAAG+S,WAzRI,EA0RP/S,EAAGm0J,WAIP,QAASngJ,KACLhU,EAAGgT,YAAa,EAxRpBhT,EAAAm0J,WA4RA,QAzRQ1B,KA0RJz4J,EAAO8F,GAzRC,gCAAWhK,UAAA+/J,EAAA5/J,OAAA,oBAAAC,UAAA,KA4RvB,QAAS8kK,GAzRGloJ,GA8RR,GAJA9S,EAAG+S,WAAY,EAEf/S,EAAGm0J,QAzRI//J,QAAA8e,KAAAJ,GAEH9S,EAAAgmD,aA0RA,IAzRI,GAAI9qD,KAAA8E,GAAAgmD,aA0RJ,GAzRIhmD,EAAGgmD,aAAA9qD,GAAA4oD,aAAwB9jD,EAAAm0J,QAAarwG,WAAA,CACxC9jD,EAAAm0J,QAAOpwG,iBAAsB/jD,EAAAgmD,aAAY9qD,EA2RzC,KAzRI,GAAK0U,KAAI5P,GAAA6xF,SAEL7xF,EAAG6xF,SAAAjiF,GAAA4iF,QAAsBxyF,EAAGm0J,QAAA3hE,SAE5BxyF,EAAGm0J,QAAA+E,mBAAyBl5J,EAAA6xF,SAAUjiF,GAiS9C,IAAIsnJ,IACA/kJ,UAzRQA,EA0RRrc,UAAW+/J,EACX/xG,WAzRY9jD,EAAGm0J,QAAApwG,iBAAyBD,WA0RxCsvG,eAzRepzJ,EAAAm0J,QAAAf,eA4RnBkD,GAzRiBgB,6BAAAJ,GAAAz4J,KAAA,SAAA84J,GA0Rb,GAzR4B,MAyRxBA,EAzRQ/gK,OAAgB,CA4RxB,GAFAwJ,EAAGw3J,sBAzRQD,EAAyB7hK,KA2RhCsK,EAAGw3J,sBAzRIr8J,OAAyB,EAAA,CA2RhC6E,EAAGq4J,oBAAqB,CAvRxB,KAAG,GAAAn9J,KAAA8E,GAAAw3J,sBAEFx3J,EAAAw3J,sBAAAt8J,GAAAq+J,SAAA,EACEv5J,EAAAw3J,sBAAyBt8J,GAAAs+J,UAAW,EA0RnCx5J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU,EACtCz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EACzCzwC,EAAGw3J,sBAAsBt8J,GAAGw+J,gBAAkB,EAC9C15J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkB,GAChEv2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,CAG/C9F,GAAU/zJ,EAAGm0J,QAAQpwG,iBAAiBD,WAAY,SAAUvlD,GACxD,GAAIyB,EAAGg4J,kBAAmB,CAEtB,GAAIhyI,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQrwG,WACvB8vG,YAAa,WACb7sG,OAAQj0C,EAAIi0C,OAtR1BqvG,GAAA6E,iCAAAj1I,GAAAvnB,KAAA,SAAAC,GACS,GAAS,MAAAA,EAAAlI,OAAoB,CA0RpBwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IAC7B,IAAIylK,GAAqBx+J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,iBAxRlF3C,EAAA,EA6RmC,KAAK,GAAIv9J,KAAK8E,GAAGg4J,kBAAmB,CAChCh4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGk7J,oBAAoBhgK,GAAG+xD,UAxRrF,KAAA,GAAA9iD,KAAAnK,GAAAg4J,kBAAA98J,GAAAg9J,YACPl4J,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAAA48C,QAAAo0G,EAAA,QAAAv0J,SAAA1L,GAAA,MACL8E,EAAAg4J,kBAAA98J,GAAAulJ,aAAAzgJ,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAGMxU,SAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eA0RoBgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,MAvR9IroB,EAAAm0J,QAAA9rI,KAAAowI,CAEG,IAAA4C,GAAA1+J,KAAAC,MAAAoD,EAAAm0J,QAAAnR,iBAEJ,IAAAhjJ,EAAAw3J,sBAAAr8J,OAAA,EAAA,CAKM,GAAAm/J,GAAA,EACKF,EAAA,CA2RY,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAEb,GAA4C,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,SAAe,CAE3C,GAAIuB,GAAQ9gK,EAAOyC,OAAOo+J,GAAeR,YAAe76J,EAAGw3J,sBAAsBt8J,GAAG2/J,aAEpF,IAAIS,EAAMngK,OAAS,EAAG,CAvR/B,IAAA,GAAAgP,KAAAnK,GAAAu2J,kBACCv2J,EAAAu2J,kBAAApsJ,GAAAqsJ,OAAA8E,EAAA,GAAA31G,OACF3lD,EAAAw3J,sBAAAt8J,GAAA47C,aAAA92C,EAAAu2J,kBAAApsJ,GAIG,kBAAAnK,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,OAEEx2J,EAAAw3J,sBAAAt8J,GAAAq+J,SAAA+B,EAAA,GAAAP,WAEpB,gBAAA/6J,EAAAw3J,sBAAAt8J,GAAA8+J,kBACLh6J,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAq+J,WAAAztI,QAAA,GA2RgG,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBAxR9Ch6J,EAAew3J,sBAAsBt8J,GAAAs+J,WAAc3tI,WAAQ7rB,EAAAm0J,QAAAa,oBAAAnpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAq+J,WAAAztI,QAAA,IAG3DwuI,EAA6BzuI,WAAWyuI,GAAsBzuI,WAAK7rB,EAAQw3J,sBAAAt8J,GAAAs+J,WA2RzB,GAArCx5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QAxRnEv6J,EAAAw3J,sBAAAt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GACVsuI,GAAAvuI,WAAAuuI,GAAAvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAAA1uI,QAAA,IAGoC9rB,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EACE35J,EAASw3J,sBAAiBt8J,GAAA0+J,WAAA,EA0RnB55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAvRK,YAAnD75J,EAAWw3J,sBAAWt8J,GAAA47C,aAA0B0/G,OAExDx2J,EAAAw3J,sBAAqBt8J,GAAgBu+J,QAAA6B,EAAA,GAAAtmE,OA2R1BslE,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,UAAU3tI,QAAQ,GAvRvE,GAA5C9rB,EAAAw3J,sBAAsBt8J,GAAAq/J,QA0Rfv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAAW5tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GAClKsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAAY1uI,QAAQ,IAtRtG9rB,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EACE35J,EAAAw3J,sBAAct8J,GAAA0+J,WAAyB,EAC7C55J,EAAAw3J,sBAAyBt8J,GAAA2+J,cAAA,GA2RsC,cAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QAE9Cx2J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa6qH,EAAM,GAAGP,WAEG,gBAAjD/6J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAxRpCh6J,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAEqB,gBAAzB9rB,EAAAw3J,sBAAyBt8J,GAAA8+J,kBA0Rbh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GAvRtI,wBAAd9rB,EAAAw3J,sBAAct8J,GAAA8+J,oBA0RjBh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,IAGnKwuI,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,kBAAkB5tI,QAAQ,GAvRhF,GAApC9rB,EAAAw3J,sBAAsBt8J,GAAAq/J,QA0RtBv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAmB7tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GAxRzLsuI,GAAqBvuI,WAAAuuI,GAAwBvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAAA1uI,QAAA,IA4RlC9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EAxRzD35J,EAAAw3J,sBAAoCt8J,GAAA0+J,WAAA,EA0RpB55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,IA1O3D,GAAAa,GAAY,CACZ16J,GAAA82J,gBAAe37J,OAAA,IA0RXu/J,GAAiB7uI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAG82J,gBAAgB,GAAGrmH,YAAc,KAAK3kB,QAAQ,GACrHsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW6uI,IAAgB5uI,QAAQ,IAG1E9rB,EAAGm0J,QAAQiG,SAAWA,EACtBp6J,EAAGm0J,QAAQO,cAAgB4F,EAxR5Bt6J,EAAAm0J,QAAM1pI,WAAAoB,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAO,eAAA7oI,WAAA7rB,EAAAm0J,QAAAiG,WAAAtuI,QAAA,UAwS7B9rB,EAAGsS,WAAY,IAvRvB,SAAA3R,GACA5I,EAAW2I,YAAW,QAAc,mBAAA,oBAsXhDV,EAAGgT,YAAa,EAGpB,QAASuoJ,GAAmBzoJ,GAExB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WAEhBuB,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,EAE1B,IAAIkT,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAYhxC,EAAIgxC,WAChBiD,OAAQj0C,EAAIi0C,OACZirE,YAAa,EACb8iC,WAAY,EACZL,kBAAmB,EACnBwF,cAAe,EACfC,mBAAoB,EACpBC,eAAgB,EAChBnX,iBAAkB,GAClB0R,cAAe,EACfjqI,UAAW,EACXpE,QAAS,SACTzwB,OAAQ,IACRke,UAAW,EAGfuiJ,GAAuCmF,2BAA2Bx1I,GAAWvnB,KAAK,SAAUC,GACpFA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBACpD7T,EAAGgT,YAAa,EAChBd,MAGAna,EAAW2I,YAAY,QAzRShC,EAAAhJ,KAASme,QAAQ,yBA0RjD7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,mCAziC5C,GAAIV,GAvRIC,IAyRRD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAvRS,EAwRZvU,EAAGwU,qBAvRc,SAAAC,GAwRbzU,EAAGuU,YAAcE,GAWrBzU,EAAGg7J,iBAAmBA,EACtBh7J,EAAGu7J,mBAvRKA,EAwRRv7J,EAAG26J,2BAvRgBA,EAwRnB36J,EAAGm5J,qBAvRqBA,EAwRxBn5J,EAAGo5J,aAvRKA,EAyRRp5J,EAAGyyJ,SAvRKA,EA0RRzyJ,EAAGo0H,OAvRKA,EAyRRp0H,EAAGgU,OAvRKA,EAwRRhU,EAAG+zJ,UAvRKA,EAwRR/zJ,EAAGs4J,mBAvRgBA,EAwRnBt4J,EAAG04J,gBAvRkBA,EAwRrB14J,EAAGq6J,gBAAkBA,EAErBr6J,EAAG86J,wBAA0BA,EAI7B96J,EAAGm0J,WAEHn0J,EAAGm0J,QAAQwE,YAvRC,EAwRZ34J,EAAGm0J,QAAQniC,YAvRC,EAwRZhyH,EAAGm0J,QAvRQQ,eAAe,EAwR1B30J,EAAGm0J,QAAQyE,QAvRC,EAwRZ54J,EAAGm0J,QAAQW,WAAa,EACxB90J,EAAGm0J,QAvRQY,WAAY,EAwRvB/0J,EAAGm0J,QAvRQa,mBAAA,EAwRXh1J,EAAGm0J,QAAQM,kBAAoB,EAC/Bz0J,EAAGm0J,QAvRK8F,cAAA,EAwRRj6J,EAAGm0J,QAAQ+F,mBAvRY,EAwRvBl6J,EAAGm0J,QAAQgG,eAvRC,EAyRZn6J,EAAGgT,YAvRQ,EAwRXhT,EAAGsS,WAvRS,EAwRZtS,EAAG+S,WAAY,EACf/S,EAAG8zJ,oBACH9zJ,EAAG82J,kBArRH,IAAA3kJ,GAAOhY,EAA6BgG,uBAAAwU,gBAAAxC,UAChC0jJ,EAAc77J,EAAAvE,OAAYK,UAwR1B69J,EAvRO35J,EAAAvE,OAAkBM,MAwRZoE,GAAsBgG,sBAGvC+R,mZAxEJ9d,QACKC,OAAO,2CACPe,WAvRU,kCAAyB8gK,MA40C5C,WACI,YAOA,SAASuF,GAAyBhxJ,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAzRML,EAAAkzC,EAAyBn7B,EA0RhG2D,EAAaD,EAAam1D,EAA8Bh5D,EAAwBE,EAAc3X,GAkD9F,QAAS+X,KAEL,GAAI8T,IACA7T,UAAWA,EACXvc,OAAQ,IAGZg1E,GAA6BG,eAAe/kD,GAAWvnB,KAzRK,SAAGC,GA0RxC,MAAfA,EAAIlI,SACJwJ,EAAG2wB,YAAcjyB,EAAIhJ,KAErBk1E,EAA6BE,sBAAsBrsE,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAExDV,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASmxJ,GAAiBtzJ,GAEtByB,EAAG8xJ,oBACH9xJ,EAAGsgI,kBAMH,IAAIjlD,IACAj7E,SAAUrI,EAAW21C,aAazB97B,GAAuBwpE,sBAAsBC,GAAW58E,KAAK,SAAUC,GAChD,MAAfA,EAAIlI,SACJwJ,EAAG8xJ,iBAAmBpzJ,EAAIhJ,KAC1BsK,EAAGsS,WAAY,GAGf/T,GACAA,KACL,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAzRmB,6BA2S3D,QAAS2/H,GAAenkF,EAAY/kC,GAMhCnX,EAAGsgI,mBACHtgI,EAAG6jB,QAAQ28G,wBAA0B,KAqBrC5uH,EAAuB4pE,yBAAyBt/B,GAAYz9C,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAGsgI,gBAAkB5hI,EAAIhJ,KACrBsK,EAAGsgI,gBAAgBnlI,OAAS,EAC5Bd,EAAQ8C,OAAO,UAAW,iCAAmC6C,EAAG6jB,QAAQ28G,wBAAwB3kF,cAC5FxkD,WAAW,EACX+F,KAAM,OAGN+Z,GACAA,IAIRnX,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAM5D,QAASk+H,GAAYrgI,GACjB,GAAImf,EACJ3L,GAAe6lC,cAAc79C,EAAOhC,EAAY2lB,GAAYjf,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAG8V,YAAcpX,EAAIhJ,KAErBm8J,IACA7xJ,EAAGsS,WAAY,GAEf/T,GACAA,KAKL,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAK5D,QAAS0V,GAAwBC,EAAWc,GACxCrF,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGuW,UAAY7X,EAAIhJ,KACfsK,EAAGuW,UAAUpb,OAAS,EACtBd,EAAQ8C,OAAO,UAAW,0BAA4B6C,EAAG6jB,QAAQpN,gBAAgBC,aAC7Erf,WAAW,EACX+F,KAAM,OAGN+Z,GACAA,IAGRnX,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAiB5D,QAASkW,GAAqBC,EAASM,GACnCzB,EAzRQoB,iBAAYD,GAAApY,KAAA,SAAAC,GACD,MAAXA,EAAAlI,SACAwJ,EAAA+W,SAAWrY,EAAAhJ,KACXsK,EAAA+W,SAAgB5b,OAAA,EAChBd,EAAY8C,OAAA,UAAA,yBAAA6C,EAAA6jB,QAAAlN,cAAAK,WACZ3f,WAAa,EACb+F,KAAY,OAGZ+Z,GACAA,IAGAnX,EAAAsS,WAAW,IA2RhB,SAzRK3R,GA0RJ5I,EAzRI2I,YAAW,QAAA,mBAAA,yBA6RvB,QAAS8e,GAzRgBpI,EAAAD,GA0RrB1B,EAzRYgK,gBAAWrI,GAAY3Y,KAAA,SAAeC,GACnC,MAyRPA,EAzRIlI,SA0RJwJ,EAAG4V,SAzRClX,EAAAhJ,KA0RAsK,EAAG4V,SAASza,OAAS,EACrBd,EAzRC8C,OAAA,UAAA,yBAAA6C,EAAA6jB,QAAA5M,aAAA8G,UACD1mB,WAAW,EACR+F,KAAA,OAGP+Z,GA0RQA,IAGRnX,EAAGsS,WAAY,IAEpB,SAAU3R,GAxRZ5I,EAAA2I,YAAA,QAAA,mBAAA,yBA8RL,QA1RQsT,KACPhU,EAAAgT,YAAW,EA2RRhT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG6jB,QAAQmuI,aAAe,eAzRlChyJ,EAASivC,cAAA,KACLgjH,IA4RA,QAASA,KAzRNjyJ,EAAA6jB,QAAAquI,cACAlyJ,EAAA6jB,QAAcmuI,aAAgB,UAC7BhyJ,EAAA+xJ,gBAAQ,IAGL/xJ,EAAA6jB,QAAAmuI,aAAc,eA2RbhyJ,EAAG+xJ,gBAAiB,GAtR5B,QAAGI,GAAYr/I,GASZ,GARA9S,EAAA+S,WAAA,EAEH/S,EAAAgT,YAAW,EACRhT,EAAA6jB,QAAAzvB,QAAA8e,KAAuBJ,GACvB9S,EAAAqtC,cAAUrtC,EAAAivC,cAAAl3C,EAAA8D,SAAA,sBAAAiX,EAAAs/I,aACVpyJ,EAAA07J,gBAAW5oJ,EAAYs/I,aAGN,GAAjBpyJ,EAAA6jB,QAAAwuI,eAGAryJ,EAAA6jB,QAAAquI,cAAsB,EACtBD,QAEA,CAGAjyJ,EAAA6jB,QAASquI,cAAA,EACTD,GACA,KAAA,GAAAp6I,KAAkB7X,GAAA2hB,YACd3hB,EAAA2hB,YAAe9J,GAAAw6I,iBAAAryJ,EAAA6jB,QAAAwuI,iBACNryJ,EAAA6jB,QAAAhC,gBAAA7hB,EAAA2hB,YAAA9J,IAahB,IAAA,GAAA3c,KAAA8E,GAAA8xJ,iBACA9xJ,EAAA8xJ,iBAAA52J,GAAA0kI,oBAAA5/H,EAAA6jB,QAAA+7G,oBACS5/H,EAAA6jB,QAAOyuI,qBAAAtyJ,EAAA8xJ,iBAAA52J,GAsSZmlI,GA1RYrgI,EAAI6jB,QAAIyuI,qBAAgB1yB,kBAAA,WA2RhC,IAAK,GAAI1kI,KA1RG8E,GAAGsgI,gBA2RPtgI,EAAGsgI,gBA1RgBplI,GAAAqlI,gBAAAvgI,EAAA6jB,QAAA08G,gBA2RnBvgI,EAAG6jB,QA1RI28G,wBAAAxgI,EAAAsgI,gBAAAplI,KAiSnB,IAAIq3J,GAAc51J,KAAKC,MAAMoD,EAAG6jB,QAAQ2uI,gBAExCxyJ,GAAG6jB,QA1RCwgH,OAAWkuB,EAAYluB,OA2R3BrkI,EAAG6jB,QAAQ0gH,SAAWguB,EAAYhuB,SAClCvkI,EAAG6jB,QAAQ2gH,UAAY+tB,EAAY/tB,UACnCxkI,EAAG6jB,QAAQ83I,iBAAmB37J,EAAG6jB,QAAQuuI,aAvRzCh8I,EAAsBm8I,EAAAl8I,UAAA,WA4RlB,IAAK,GAAIwB,KAAK7X,GAAG8V,YACT9V,EAAG8V,YAAY+B,GAAGxB,YAAck8I,EAAYl8I,YAC5CrW,EAAG6jB,QAAQ44B,oBAAsBz8C,EAAG8V,YAAY+B,GAvRxD,KAAA,GAAAA,KAAY7X,GAAAuW,UACZvW,EAAUuW,UAAWsB,GAAAhB,UAAA07I,EAAA17I,UA2Rb7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUsB,GAGhDjB,GAAqB27I,EAAY17I,QAAS,WACtC,IAAK,GAAIgB,KAAK7X,GAAG+W,SACT/W,EAAG+W,SAASc,GAAGT,SAAWm7I,EAAYn7I,SACtCpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAASc,MAIlD2H,EAAoB+yI,EAAYn7I,OAAQ,WACpC,IAAK,GAAIS,KAAK7X,GAAG4V,SAzRzB5V,EAAA4V,SAAuBiC,GAAAI,SAAAs6I,EAAsBt6I,SACjCjY,EAAA6jB,QAAWtE,aAAKvf,EAAA4V,SAAAiC,GACjB7X,EAAAglI,aAAuBhlI,EAAA6jB,QAAAtE,aAAApH,cAwjBtC,QAASg1B,KACLntC,EAAGotC,iBAAkB,EAEzB,QAAS5uB,GAAariB,GAElB,GAAI6T,GAAS,GAAIS,WACjB,IAAKzQ,EAAGotC,gBAID,CACHptC,EAAGoyJ,aAAej2J,EAAMsN,OAAOiE,MAAM,GACrCsC,EAAOU,OAASjG,EAAOiU,cACvB1O,EAAOa,cAAc7Q,EAAGoyJ,aACxB,IAAIh0J,GAAW,GAAIH,SACnBG,GAASF,OAAO,eAAgB8B,EAAGoyJ,cACnCh0J,EAASF,OAAO,YAAa8B,EAAG6jB,QAAQ/tB,WAExCsI,EAASF,OAAO,kBAAmB8B,EAAG07J,iBAEtC9wF,EAA6BC,mBAAmBzsE,GAAUK,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,qCAAsC,WACxEwR,KAEAna,EAAW2I,YAAY,QAAS,yBAA0B,UAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,yBAA0B,eArB9DV,GAAGoyJ,aAAej2J,EAAMsN,OAAOiE,MAAM,GACrCsC,EAAOU,OAASjG,EAAOiU,cACvB1O,EAAOa,cAAc7Q,EAAGoyJ,cAiChC,QAAS1gJ,KACL1R,EAAGgT,YAAa,EAzRpBhT,EAAO6jB,WA2RH7jB,EAAGivC,cAAgB,KAIvB,QA1RQwjH,KAEJz4J,EAAG8F,GAAA,8BAvbP,GAAIE,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGkvC,sBAAuB,EAC1BlvC,EAAG6jB,WACH7jB,EAAG8uC,QAAWC,eACd/uC,EAAGgvC,QAAWD,eAEd/uC,EAAGqgI,eAAiBA,EACpBrgI,EAAGoW,wBAA0BA,EAC7BpW,EAAG4W,qBAAuBA,EAC1B5W,EAAGwf,oBAAsBA,EACzBxf,EAAG6jB,QAAQmuI,aAAe,KAE1BhyJ,EAAGiyJ,cAAgBA,EACnBjyJ,EAAGyyJ,SAAWA,EACdzyJ,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGmyJ,YAAcA,EACjBnyJ,EAAGotC,iBAAkB,EACrB3iC,EAAO+T,aAAeA,EACtBxe,EAAGmtC,WAAaA,EAChBntC,EAAGoyJ,aAAe,KAClBpyJ,EAAG07J,gBAAkB,IAGrB,IAAIvpJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEqhJ,EAAar5J,EAAsBgG,sBAOvCy+H,KACA1sH,IAqXAlS,EAAGqN,OAAS,WAEJrN,EAAGkvC,sBACHlvC,EAAG0yJ,QAAUt+J,QAAQ8e,KAAKlT,EAAGgvC,OAAO2jH,aACpC3yJ,EAAG0yJ,QAAQC,YAAc3yJ,EAAGgvC,OAAO2jH,aAEnC3yJ,EAAG0yJ,YAKXjoJ,EAAOvO,IAAI,qCAAsC,WAG7C,GAAIvH,GAAWqL,EAAGglI,aAAaC,WAAWC,SAASvwI,SAC/C4vI,EAAW5vI,EAASwwI,MAzRxBX,EAAA7vI,EAAuBywI,KA2RvBplI,GAAG6jB,QA1RK0gH,SAAIA,EA2RZvkI,EAAG6jB,QA1RQ2gH,UAAAA,EA2RX/5H,EAAOe,WAKXxL,EAAG4yJ,mBA1RgB,WA2Rf5yJ,EAAGq0B,SA1RS13B,KAAIC,MAAAoD,EAAU6jB,QAAAhC,gBAAA2wI,iBA8S1BxyJ,EAAGq0B,SA1RK13B,KAAAC,MAAAoD,EAAA6jB,QAAAhC,gBAAA2wI,gBA4RR,KAAK,GAAIt3J,KAAK8E,GAAG8xJ,iBAzRT9xJ,EAAA8xJ,iBAAU52J,GAAA0kI,oBAAA5/H,EAAA6jB,QAAAhC,gBAAA+9G,oBACV5/H,EAAA6jB,QAAAyuI,qBAAAtyJ,EAAA8xJ,iBAAA52J,GA8RR8E,GAAGqgI,eAAergI,EAAG6jB,QAAQhC,gBAAgB+9G,kBAAmB,WAxR5D,IAAA,GAAA1kI,KAAW8E,GAAAsgI,gBA2RHtgI,EAAGsgI,gBAAgBplI,GAAGqlI,gBAAkBvgI,EAAG6jB,QAAQhC,gBAAgB0+G,gBACnEvgI,EAAG6jB,QAAQ28G,wBAA0BxgI,EAAGsgI,gBAAgBplI,MAMpE8E,EAAG6jB,QA1RQwgH,OAAArkI,EAAYq0B,SAAIgwG,OA2R3BrkI,EAAG6jB,QA1RK0gH,SAAOvkI,EAAUq0B,SAASkwG,SA2RlCvkI,EAAG6jB,QAAQ2gH,UA1RSxkI,EAAAq0B,SAAOmwG,UA4R3B5F,EAAY,WACR,IAAK,GAAI1jI,KAAK8E,GAAG8V,YACT9V,EA1RG8V,YAAA5a,GAAAmb,YAAArW,EAAAq0B,SAAAhe,YACHrW,EAAA6jB,QAAI44B,oBAAUz8C,EAAA8V,YAAA5a,MA+R1Bkb,EAAwBpW,EAAGq0B,SAAShe,UAAW,WAzR5C,IAAA,GAAUnb,KAAK8E,GAAAuW,UACdvW,EAAWuW,UAAArb,GAAY2b,UAAS7W,EAAAq0B,SAAAxd,UA2RxB7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUrb,MAMpD0b,EAAqB5W,EAAGq0B,SAASxd,QAAS,WAEtC,IAAK,GAAI3b,KAAK8E,GAAG+W,SACT/W,EAAG+W,SAAS7b,GAAGkc,SAAWpX,EAAGq0B,SAASjd,SACtCpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAAS7b,MAKlDskB,EAAoBxf,EAAGq0B,SAASjd,OAAQ,WAzR5C,IAAS,GAAAlc,KAAA8E,GAAA4V,SACO5V,EAAA4V,SAAA1a,GAAA+c,SAA0BjY,EAAAq0B,SAAKpc,SAC/BjY,EAAA6jB,QAAWtE,aAAKvf,EAAA4V,SAAA1a,GA6RxB8E,GAAGglI,aA1RahlI,EAAA6jB,QAAOtE,aAAWpH,YAiS1CnY,EAAG6yJ,aAAe,SAAUC,GACxB9yJ,EAAGsS,WAAY,CAEf,IAjPIygJ,GACA7qG,EAgPA8qG,GAzRD3uB,OAAArkI,EAAU6jB,QAAKwgH,OACdhuH,UAAWrW,EAAA6jB,QAAA44B,oBAAqBpmC,UA2RhCQ,QAAS7W,EAAG6jB,QAAQlN,cAAcE,QAClCO,OAAQpX,EAAG6jB,QAAQ5M,aAAaG,OAChCa,OAAQjY,EAAG6jB,QAAQtE,aAAatH,OAzRxCK,QAAStY,EAAA6jB,QAAAtE,aAA4BjH,QACjCisH,SAAYvkI,EAAA6jB,QAAA0gH,SACRC,UAAQxkI,EAAA6jB,QAAW2gH,UA8TS,kBAA5BxkI,EAAG6jB,QAAQmuI,cACX9pG,EAAQloD,EAAG6jB,QAAQhC,gBAAgBwwI,eAzR3CU,EAAS/yJ,EAAY6jB,QAAKhC,gBAAAS,cAGnB4lC,EAAA,EACA6qG,EAAU/yJ,EAAA6jB,QAAQvB,YA6RrB,IAAI2wI,EArRAA,GAsRCjzJ,EAAG+S,UAtRD/S,EAAQ6jB,QAAA/tB,UAHR,CAuSP,IAAI8tI,IACA4uB,gBAAiB71J,KAAKqkB,UAAUgyI,GAEhCG,sBAAuB,GACvBr9J,UAAWm9J,EACXZ,eAAgBnqG,EAChB5lC,YAAaywI,EACbK,eAAgBpzJ,EAAG6jB,QAAQyuI,qBAAqB1yB,kBAChDW,cAAevgI,EAAG6jB,QAAQ28G,wBAAwBD,cAClDgE,SAAUvkI,EAAG6jB,QAAQ0gH,SACrBC,UAAWxkI,EAAG6jB,QAAQ2gH,UACtB6uB,cAAerzJ,EAAG6jB,QAAQwvI,cAC1BC,SAAUtzJ,EAAG6jB,QAAQyvI,SAzRzBC,eAAiBvzJ,EAAA6jB,QAAA0vI,eACb39J,OAAO,EA2RPuc,UA1ROA,EA2RP2B,UAAW0/I,EAAWnzJ,QAGtBjC,EAAW,GAAIH,SAKnBG,GAASF,OAAO,YAAavB,KAAKqkB,UAAU4iH,IAC5CxlI,EAASF,OAAO,eAAgB8B,EAAGoyJ,cAInCxnF,EA1ReK,YAAmB7sE,GAAAK,KAAqB,SAAQC,GACxC,MA0RfA,EA1RIlI,QAAWkI,EAAAhJ,KAAAke,UA2Rf7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WAEpD9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,SAEtD3B,IACAR,KAzRJ,SAAI/Q,GA2RA5I,EAAW2I,YAAY,QAAS,8BAA+B,WAxRnEV,EAAGsS,WAAQ,GA+Vf7H,EAAOiU,cA1RY,SAAclR,GA2R7B/C,EA1ROe,OAAA,WACHxL,EAAGivC,cAAUzhC,EAAA/D,OAAA/J,8OAlbzBtL,QACKC,OAAO,qCACPe,WAAW,2BAA4BqmK,MA6tBhD,WACI,YAOA,SAASG,GAA6BnxJ,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASJ,EAASD,EAAQ6hK,EAA8BC,EAAiC3hK,GAwC9J,QAAS+X,KAxRLlS,EAAA+7J,aAAAhjJ,GAAwB,IAAGnjB,OAAS,cAAWmjB,GAAY,EAAAnjB,OAAA,YA4R3DoK,EAAGgT,YA1RY,EA2RfhT,EAAGg8J,SA1RSC,aAAW,GAAAxiJ,MA2RtByiJ,EAAY,GAAIziJ,OAEjBqiJ,EAAgCK,iBAAiBhqJ,GAAW1T,KAAK,SAAUC,GACvE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGo8J,aAAe19J,EAAIhJ,IAEtB,IAAIswB,IAzRH7T,UAAYA,EACTkU,QAAG,UACHg2I,UAAW,EA6RfR,GAA6BS,oBAAoBt2I,GAAWvnB,KAAK,SAAU89J,GACnD,MAAhBA,EAAK/lK,SAzRrBwJ,EAAAw8J,YAAgCD,EAAA7mK,KACnBsK,EAAKy8J,gBACHz8J,EAAAsS,WAAY,IA4RhB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,8BAG7D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,4BAO5D,QA1RQg8J,GAAA5pJ,GA4RJ9S,EAAG28J,aA1Re1iK,EAAQ,QAAA6Y,EAAA8pJ,UAAoB,SA2R9C58J,EAAG68J,cA1Ra/pJ,EAAA8pJ,UA4RhB58J,EAAG88J,WA1RY7iK,EAAQ,QAAA6Y,EAAaiqJ,QAAA,SA2RpC/8J,EAAGg9J,YA1RalqJ,EAAAiqJ,QA4RhB/8J,EAAGi9J,gBA1RenqJ,EAAAoqJ,cA4RlBl9J,EAAGgT,YAAa,EAChBhT,EAAGm9J,gBAAiB,EACpBn9J,EAAGg8J,SAASoB,iBAAmB,KAC/Bp9J,EAAGg8J,SAASqB,gBAAkB,KAC9Br9J,EAAGg8J,SAASsB,iBAAmB,KAInC,QAASC,GAAazqJ,GAElB9S,EAAGgT,YAAa,EAChBhT,EAAGm9J,gBAAiB,EACpBn9J,EAAGg8J,SAASwB,eAAiB,KAE7Bx9J,EAAG28J,aAAe1iK,EAAQ,QAAQ6Y,EAAI8pJ,UAAW,SACjD58J,EAAG68J,cAAgB/pJ,EAAI8pJ,UAEvB58J,EAAG88J,WAAa7iK,EAAQ,QAAQ6Y,EAAIiqJ,QAAS,SAC7C/8J,EAAGg9J,YAAclqJ,EAAIiqJ,QAErB/8J,EAAGi9J,gBAAkBnqJ,EAAIoqJ,cAI7B,QAAS9oC,KAELp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfb,IAGJ,QA1RQurJ,GAAApB,EAAA99J,GA4RJ,GAAiB5I,QAAb0mK,GAAuC,MAAbA,EAzR1Br8J,EAAGy8J,gBACHz8J,EAAAg8J,SAAWsB,iBAAQ,SA4RlB,CACD,GA1RCt3I,IACD7T,UAAQA,EACRkU,QAAa,WA2RTg2I,UAAWA,EAvRfR,GAAeS,oBAAAt2I,GAAAvnB,KAAA,SAAAC,GACN,MAATA,EAASlI,SA2RDwJ,EAAGy8J,aAAe/9J,EAAIhJ,KAzR7BsK,EAAAsS,WAAA,EA4RW/T,GACAA,MAET,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAKhE,QA1RQw7J,GAASD,GA6Rb,GADAj8J,EAAG09J,mBAzRC/nK,QAAAsmK,GAAuB,MAAAA,EAAA,CACvB,GAAAzkI,GAAW,GAEXxR,GACA7T,UAAAA,EACAqlB,WAAeA,EACfykI,aAAahiK,EAAQ,QAAAgiK,GAIrBH,GAA2B6B,qBAAA33I,GAAAvnB,KAAA,SAAAC,GACnB,MAAAA,EAAAlI,SACRwJ,EAAW09J,gBAAAh/J,EAAAhJ,KACXsK,EAAWsS,WAAW,IA4RnB,SAAU3R,GAzRb5I,EAAe2I,YAAA,QAAA,mBAAA,6BA+RvB,QA1RIk9J,GAAgBC,GA4RhB,GAAIA,EAAQC,UAAY99J,EAAG68J,cACvB9kK,EAAW2I,YAAY,QAAS,qBAAsB,8BAxR1D,IAAAm9J,EAAAE,QAAA/9J,EAA6Bg9J,YACzBjlK,EAAQ2I,YAAW,QAAW,mBAAgB,8BA4R7C,CAED,GAAIs9J,GAAoBC,CAxRxBj+J,GAAAm9J,gBAEAc,EAAW,EA8RPD,EAAW,QAIXC,EAASj+J,EAAGg8J,SAASwB,eAAezkJ,GAIpCilJ,EAAW,eAGf,IAAIjI,IACAmH,cAAel9J,EAAGi9J,gBAClB9qJ,UAAWA,EACXqlB,WAAY,GACZ0mI,WAAYD,EAAS,EAAI,EAAIj+J,EAAGg8J,SAASoB,iBAAiBc,WAC1DjC,aAAchiK,EAAQ,QAAQ+F,EAAGg8J,SAASC,cAC1CW,UAAW3iK,EAAQ,QAAQ+F,EAAGg8J,SAASmC,SAAU,SACjDpB,QAAS9iK,EAAQ,QAAQ+F,EAAGg8J,SAASoC,OAAQ,SAC7C/B,UAAW4B,EAAS,EAAI,EAAIj+J,EAAGg8J,SAASqB,gBAAgBhB,UACxDgC,WAAYJ,EAAS,EAAI,EAAIj+J,EAAGg8J,SAASsB,iBAAiBe,WAC1Dh4I,QAAS23I,EACTM,WAAYL,EACZpuH,QAAS,GACT0uH,eAA0B,GAAVN,EAAchkK,EAAQ,QAAQ+F,EAAGg8J,SAASwC,iBAAmBvkK,EAAQ,QAAQ+F,EAAGg8J,SAASC,cACzGwC,aAAwB,GAAVR,EAAchkK,EAAQ,QAAQ+F,EAAGg8J,SAASyC,aAAc,SAAWxkK,EAAQ,QAAQ+F,EAAG68J,cAAe,SACnH6B,WAAsB,GAAVT,EAAchkK,EAAQ,QAAQ+F,EAAGg8J,SAAS0C,WAAY,SAAWzkK,EAAQ,QAAQ+F,EAAGg9J,YAAa,SAC7GlpJ,UAAWJ,EAAYrT,OAvRnCy7J,GAAsB6C,gCAAA5I,GAAAt3J,KAAA,SAAAC,GACfA,EAAAhJ,KAAkBke,aAAA,IA2RT5T,EAAGsS,WAAY,EAzRtBtS,EAAAgT,YAAoB,EA2Rbjb,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,0BAzR5D3B,MAIA,SAAOvR,GACJ5I,EAAA2I,YAAA,QAAA,mBAAA,6BAyTX,QAAS0Y,GAAS1jB,GAzRlB,GAAA2jB,GAAS3jB,EAAS2jB,KACX9iB,EAAAb,EAAaa,IAEhB,OAAG,QAAAA,GAAgB,IAAA8iB,EAAAC,SAgDvB,QAAGC,GAAA7jB,GA4RC,GAAI2jB,GAAO3jB,EAAK2jB,KA1RjB9iB,EAASb,EAAAa,IACT,IAAY,QAAZA,EAGC,IAAA,GAFDijB,GAAW,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEExe,EAAA,EAAAA,EAAAuP,EAAAkP,OAAsBxe,OAAAD,IAAA,CAClC,GAAA0e,GAAc,GAAAH,MAAAhP,EAAsBkP,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA6R5B,IAAIF,IAAeI,EACf,MAAOnP,GAAOkP,OAAOze,GAAG1E,OAtRpC,MAAG,GAgSP,QAASi8J,KAELz4J,EA3RI8F,GAAI,YAhDZ,GAAIE,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAWrBzU,EAAGu9J,aAAeA,EAElBv9J,EAAG08J,YAAcA,EAEjB18J,EAAGk8J,YA1RaA,EA4RhBl8J,EAAGy9J,eAAiBA,EAEpBz9J,EAAG49J,iBAAmBA,EAEtB59J,EAAGo0H,OAASA,EACZp0H,EAAGsS,WA1RY,EA2RftS,EAAGg8J,YACHh8J,EAAGyyJ,SA1RIA,CA2RP,IAAItgJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UAzRzEuB,EAAYvZ,EAAYgG,sBA+R5B+R,KAkMAzH,EAAO4P,MAAQ,WACX5P,EA1RI6P,GAAA,GAASb,OA4RjBhP,EAAO4P,QAEP5P,EAAOiN,MAAQ,WACXjN,EAAO6P,GA1RK,MA6RhB7P,EAAO8P,eACHC,YA1ROjB,EA2RPkB,QA1RQ,GAAAhB,MA2RRiB,WAAW,GAGfjQ,EAAOkQ,aACHC,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MAzRjBqB,YAAO,GAqSPrQ,EAAOsQ,UAAY,WAzRnBtQ,EAAS8P,cAAWE,QAAAhQ,EAAA8P,cAAAE,QAAA,KAAA,GAAAhB,MA2RhBhP,EAAOkQ,YAAYF,QAAUhQ,EAAO8P,cAAcE,SAGtDhQ,EAAOsQ,YAEPtQ,EAAOuQ,MAAQ,WACXvQ,EAAOwQ,OAAOpM,QAAS,GAvR/BpE,EAAAyQ,MAAA,WA2RQzQ,EAAO0Q,OAAOtM,QAAS,GAG3BpE,EA3RC+Q,QAAO,SAAAC,EAAAC,EAAAC,GACPlR,EAAA6P,GAAW,GAAAb,MAAAgC,EAAAC,EAAAC,IAGhBlR,EAASmR,SAAA,eAA6B,aAAQ,aAAmB,aAC7DnR,EAAIoR,OAAKpR,EAAAmR,QAAA,GA4RTnR,EAAOqR,iBAAmB,cAzR1BrR,EAAGwQ,QACCpM,QAAQ,GA8RZpE,EA3RO0Q,QA4RHtM,QAAQ,EAGZ,IAAIkN,GAAW,GAAItC,KACnBsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAAQO,EAASC,UAAY,GAC3CvR,EAAOkP,SAECN,KAAM0C,EA1RXvlB,OAAA,SA8RK6iB,KAAM4C,EA1RXzlB,OAAA,uLA5BPpC,QACKC,OAAO,wCACPe,WAAW,+BAAgCwmK,MAqVpD,WACI,YAOA,SAASgD,GAAwBn0J,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ6kK,EAA4B1kK,GAwB7G,QA3RO+X,KACH2sJ,EAAYz4F,aAAmBj0D,GAAA1T,KAAA,SAAAC,GACnB,MAATA,EAASlI,SACTwJ,EAAA6sB,UAASnuB,EAAAhJ,KA4RJsK,EAAGsS,WAAY,IAEpB,SAAU3R,GA1RjB5I,EAAS2I,YAAkB,QAAA,mBAAA,6BA+R3B,QA3ROsT,KA4RH,GAAIte,IA1RDqd,UAAA/S,EAAe+S,UACf8+C,OAAA,EAEH73D,GAAG8F,GAAA,yBACApK,KAAAA,IAmPP,GAAIsK,GAAKC,IAETD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MAC3FrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA3RK,EA4RRvU,EAAGwU,qBAAuB,SAASC,GACjCzU,EAAGuU,YAAcE,GAInBzU,EAAGgT,YAAa,EA1RhBhT,EAAA+S,WAAS,EA4RT/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EA3RO2c,SAAA,EA4RP1U,EAAGgU,OAASA,CACZ,IA3RI7B,GAAGhY,EAA6BgG,uBAAawU,gBAAAxC,SA4RjDD,KA0BAlS,EAAG+vG,YAAc,SAAUj9F,GACvB,GAAIpd,IA1RR6kE,QAAS,EA4RD12C,QAAS/Q,EAzRb9Y,GAAG8F,GAAA,yBACHpK,KAAAA,KA+RJsK,EAAG2vG,YAAc,SAAU78F,GA1RvB,GAAIpd,IACAqd,WAAG,EACH68F,SAAG,EA4RH/rF,QAAS/Q,EACT2+C,QA3RC,EA8RLz3D,GAAO8F,GA3RC,yBA4RJpK,KA3RIA,KA+RZsK,EAAG4lI,MAAQ,WACP,GAAIh9H,KACIuoF,KA3RI,UA4RJp4E,GAAI,SAGJo4E,KAAM,WA1RPp4E,GAAA,SA8RCo4E,KAAM,QACNp4E,GAAI,QAGZ8sH,QAAO,4CAA6Cj9H,IAGxD5I,EAAG8kI,aA3RS,WA4RR,GAAInyH,GAAUtY,EAAQsY,QAAQ,UA1R1B,mDACItb,WAAW,EACX+F,KAAA,MA8RRuV,GAAQjT,OAAOjB,KAAK,WAChBmT,uBAAuBkqE,cAAcj4D,QAAQ/tB,WAAW2I,KAAK,SAAUC,GA1RvE,MAAAA,EAAAlI,QACQuB,EAAI2I,YAAgB,UAAA,8BAAA,WACpBwR,KA6RAna,EAAW2I,YAAY,QAAS,wBA1RrCrJ,WAAe,EACd+F,KAAW,QA8RZ,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,gEA1RnCrJ,WAAiB,EA4RV+F,KAAM,UAGf,eAMP4C,EAAG8lI,cA3RS,SAAUjiH,GA6RlB,GA3RIlR,GAAOtY,EAAAsY,QAAgB,UA4RvB,4CA1RItb,WAAS,EA4RT+F,KAAM,MAGduV,GA3RQjT,OAAAjB,KAAW,WA4RfmT,uBAAuBkqE,cAAcj4D,EAAQ/tB,WAAW2I,KAAK,SAAUC,GA1RlE,MAAAA,EAAAlI,QA4RGuB,EAAW2I,YAAY,UAAW,8BAA+B,WA1RrEwR,KA6RIna,EAAW2I,YAAY,QAAS;AAC5BrJ,WAAW,EA1RnB+F,KAAW,QAGf,SAAIuD,GACA5I,EAAA2I,YAAkB,QAAA,gEAClBrJ,WAAW,EACX+F,KAAA,UA8RL,0IAjJXhJ,QACKC,OAAO,qCACPe,WAAW,0BA3RyBwpK,MAkb7C,WACI,YAOA,SAASE,GA3R2Br0J,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAAzxF,EAAAn7B,EA4RhC2D,EAAaD,EA3RGm1D,EAAsC8oF,EAAc9hJ,EAAAE,EAAA3X,GA4TpE,QA3RI+X,KA6RAlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IA1RR7T,UAAkBA,EACVvc,OAAO,IACPg+J,YAAY,WA8RhBF,GAA8BqL,6BAA6B/4I,GAAWvnB,KAAK,SAAUC,GACjF,GAAmB,MAAfA,EAAIlI,OAAgB,CA1RzBwJ,EAAAg/J,mBAAwBtgK,EAAAhJ,IACpB,KAAA,GAAAwF,KAAc8E,GAAAg/J,mBACdh/J,EAAAg/J,mBAAsB9jK,GAAO8xD,QAAArwD,KAAcC,MAAAoD,EAAAg/J,mBAAA9jK,GAAAkgK,iBA4RtCp7J,EAAGg/J,mBAAmB9jK,GAAG+jK,SAAWtiK,KAAKC,MAAMoD,EAAGg/J,mBAAmB9jK,GAAGm5J,UAzRjFr0J,GAAAsS,WAAA,IAEA,SAAQ3R,GACX5I,EAAc2I,YAAS,QAAA,mBAAA,oBAgS3B,QAASqvG,GAAYj9F,GAzRrB9S,EAAOgT,YAAU,EACbhT,EAAA+S,WAAY,EA6RZ/S,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAzR9B9S,EAAOg4J,kBAAgBr7J,KAAQC,MAAAoD,EAAAm0J,QAAAiH,iBAC/Bp7J,EAAOk/J,mBAAmBviK,KAAAC,MAAAoD,EAAAm0J,QAAAE,WA+R1B,QAASjgC,KAzRTp0H,EAAOgT,YAAS,EACZhT,EAAA+S,WAAQ,EA4RRb,IAoCJ,QAASugJ,KAxRLz4J,EAAU8F,GAAA,gCAAAhK,UAAA+/J,EAAA5/J,OAAA,sBAAAC,UAAA,KA4Kd,GAAI8J,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YA3RS,EA4RZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAjRrBzU,EAAAyyJ,SAAOA,EA6RPzyJ,EAAG+vG,YAAcA,EACjB/vG,EAAGo0H,OAASA,EA1RZp0H,EAAAsS,WAAO,CA8RP,IA3RIH,GAAWhY,EAAAgG,uBAAAwU,gBAAAxC,UAGf0jJ,EAAO77J,EAAcvE,OAAAK,UACjB69J,EAAc35J,EAAAvE,OAAAM,MA8RlBmc,KA7OAlS,EAAAm/J,gBAAc,SAAiBrM,GAE3B,GAAAtxI,EAEIA,GADM,WAANsxI,EACQ,EAEZ,CA6RA,IA3RIU,GAAQr5J,EAAAgG,uBA6RR41J,GACAC,QAASh2J,EAAGm0J,QAAQ6B,QA1R5BpgK,OAAS4rB,EACDoyI,YAAY,WACZ9/I,UAAO0/I,EAAKnzJ,OA8RhBqzJ,GAA8BuC,uBAAuBF,GAAWt3J,KAAK,SAAUC,GA1R3D,MAAhBA,EAAKlI,SACDwJ,EAAAsS,WAAI,EA4RJtS,EAAGgT,YAAa,EA1RZ,WAAA8/I,EACA/6J,EAAO2I,YAAc,UAAG,wBAAA,WA6RxB3I,EAAW2I,YAAY,UAAW,wBAAyB,WAC/DwR,MAzRR,SAAOvR,GA4RH5I,EAAW2I,YAAY,QAAS,mBAAoB,wSAhHhEtM,QACKC,OAAO,0CACPe,WA3RO,iCAAgC0pK,MAoZhD,WAGI,YAMA,SAASM,GAAkC30J,EAAQ1Q,EAAOhC,EAAYwC,EAAWC,EAAQH,EAASL,EAAQS,EAAS4kK,EAA4Bz0F,EAA8BwrF,EAA4Bj8J,EAAuBu5J,EAA+B4L,GAiD3P,QA5RQptJ,KA+RJlS,EAAGjK,OA5RO49J,CA6RV,IAAI3tI,IACA7T,UAAWA,EACXrc,UAAW+/J,EA3RhBjgK,OAAA,MACKg+J,YAAO,WA+RXwC,GA5RaY,8BAAAhxI,GAAAvnB,KAAA,SAAAC,GACT,GAAQ,MAARA,EAAQlI,OAAA,CA6RJwJ,EAAGg/J,mBAAqBtgK,EAAIhJ,KAC5B6pK,EAAc1J,EA1RlB,IAAM7vI,IA6RE7T,UAAWA,EACXvc,OAAQ,IACRE,UAAW+/J,EAzRfjrF,GAAMI,iBAAAhlD,GAAAvnB,KAAA,SAAAC,GACF,MAAAA,EAAAlI,SA6RIwJ,EAAGw/J,uBAAyB9gK,EAAIhJ,KA1RlCsK,EAAAy/J,eAAA9iK,KAAAC,MAAAoD,EAAAw/J,uBAAA,GAAAE,kBA8RE1/J,EAAGsS,WAAY,IA1RvB,SAAM3R,GACF5I,EAAA2I,YAAA,QAAA,mBAAA,oBA8RJV,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA1RxD01J,EAAsBwB,eAAQ,QAAAn5J,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,SACIwJ,EAAA6xF,SAAWnzF,EAAAhJ,KACXsK,EAAAsS,WAAM,IA8RX,SAAU3R,GA3Rb5I,EAAe2I,YAAK,QAAY,mBAAA,oBAiSpC,QAAS6+J,GA5RUvL,EAAAz1J,GA8Rf,GAAIy1J,EA5RY,CA6RZ,GAAIhuI,IACA7T,UAAWA,EACX2xC,WAAY,EA3RbhuD,UAAUk+J,EAuSboC,GAA2BuJ,gBAAgB35I,GAAWvnB,KAAK,SAAUC,GA3RhD,MAA1BA,EAAgBlI,SA6RHwJ,EAAGgmD,aAAetnD,EAAIhJ,KAxR1BsK,EAAMsS,WAAA,IAGd,SAAe3R,GACX5I,EAAA2I,YAAuB,QAAA,mBAAiC,wBAgSxDV,GAAGm0J,QA5RQpwG,iBAAA,KA6RX/jD,EAAGgmD,gBAGX,QAASsyG,GAAmBC,EAASqH,EAAOrhK,GAExC,GAAIg6J,EA5RG,CA6RH,GA5RIvyI,IA6RA7T,UA5RIA,EA6RJ2xC,WA5RU9jD,EAAAm0J,QAAApwG,iBAAAD,WA6RVhuD,UAAW+/J,EACXxgD,aAAckjD,EAGlBnC,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGw4J,qBAAuB95J,EAAIhJ,IAC9B,IAAI+iK,GAAQ,EACZ,KAAK,GAAIv9J,KAAK8E,GAAGw4J,qBACTx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBA3RpH5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,gBA+R2Dj9B,QAAxCqK,EAAGg4J,kBAAkB98J,GAAGulJ,eA5RpDgY,GAAA9iK,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAAA,GAAAroB,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAiSoBroB,GAAGm0J,QAAQ9rI,KAAOowI,EA3RrBz4J,EAAAsS,WAAa,EA+RN/T,GA5RjBA,MAGA,SAAcoC,GACd5I,EAAA2I,YAAuB,QAAe,mBAAA,wBAkSjCV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm0J,QAAQ0L,YAAc,GAhRjC,QAAIC,GAAsBC,EAAOxhK,GA+R7B,GAAkB,OAAdwhK,EAAqB,CACrB//J,EAAGggK,oBAAqB,CA3RhC,IAASh6I,IA8RG7T,UAAWA,EA5RhB2xC,WAAS,EACRhuD,UAAY+/J,EAGZyJ,GAAaK,gBAAA35I,GAAAvnB,KAAA,SAAA89J,GA8RW,MAAhBA,EAAK/lK,SACLwJ,EAAGigK,oBAAsB1D,EAAK7mK,OA3RtC,SAAQiL,GACJ5I,EAAG2I,YAAA,QAAyB,mBAAA,wBAiShCV,GAAGggK,oBAAqB,EACxBhgK,EAAGigK,uBAIX,QAASlM,GAAU8D,EAAkBt5J,GACjC,GAAIs5J,EAAkB,CAElB,GAAI7xI,IA5RH7T,UAAYA,EA8RT2xC,WAAY+zG,EA5RjB/hK,UAAa+/J,EACbxgD,aAAY,EAgSX+gD,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GA5RzE,GAAoB,MAApBA,EAAAlI,OAAyB,CACzBwJ,EAAAg4J,kBAAgCt5J,EAAGhJ,KA+RtBsK,EAAGg4J,kBAAkB78J,OAAS,EAC9B6E,EAAGi4J,aAAc,EAEjBj4J,EAAGi4J,aAAc,CA3R9B,KAAY,GAAA/8J,KAAA8E,GAAAg4J,kBACf,IAAAh4J,EAAAg4J,kBAAA98J,GAAA03B,gBA8RoB5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eAzR9F,IAAAstI,IA8RiB/tJ,UAAWA,EA5RvBrc,UAAA+/J,EACYsK,QAAA,gBACDr8G,WAAA+zG,EAgSHzB,GAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU4hK,GA5R9E,MAAAA,EAAA7pK,SA8RGwJ,EAAGm4J,cAAgBkI,EAAK3qK,KA3RpBsK,EAAAm4J,cAAAh9J,OAAA,EACZ6E,EAAAo4J,qBAAA,EAEGp4J,EAAWo4J,qBAAA,EAOd8H,EAAYC,QAAA,aA+RJ/J,EAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAUo4J,GA5RpE,MAAZA,EAAArgK,SACfwJ,EAAAsgK,eAAAzJ,EAAAnhK,KAEUwqK,EAAAC,QAAA,kBA+RU/J,EAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU8hK,GAC3D,MAAhBA,EAAK/pK,SA5R1BwJ,EAAAwgK,oBAAAD,EAAA7qK,KAyBc6I,GACrBA,MAEc,SAAekiK,GACpB1oK,EAAA2I,YAAA,QAAA,mBAAA,oBAiSenC,GA7RtBA,MAEM,SAAAkiK,GA+RQ1oK,EAAW2I,YAAY,QAAS,mBAAoB,oBA3RjEnC,GACCA,MAED,SAAAkiK,GA+RK1oK,EAAW2I,YAAY,QAAS,mBAAoB,oBA9Q5DV,EAAAsS,WAAA,EAET/T,GA+RiBA,MA3RpB,SAAAoC,GACS5I,EAAO2I,YAAA,QAAA,mBAAA,wBAIRV,GAAAm0J,QAAApwG,iBAAY,KACZ/jD,EAAAg4J,qBACAh4J,EAAAm4J,iBACAn4J,EAAAo4J,qBAAQ,EAkZhB,QA9RQsI,GAAG5tJ,GAwSP,GARA9S,EAAG+S,WA9RY,EA+Rf/S,EAAGm0J,WACHn0J,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAE1B9S,EAAGgT,YAAa,EAEhBhT,EAAG2gK,YAAa,EAEZ3gK,EAAGgmD,aAAc,CACjB,IAAK,GAAI9qD,KAAK8E,GAAGgmD,aACThmD,EAAGgmD,aAAa9qD,GAAG4oD,aAAe9jD,EAAGm0J,QAAQrwG,aAC7C9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,GA1RtD,IAAA8qB,IACG7T,UAAAA,EA+RCrc,UAAW+/J,EA7RX/xG,WAAY9jD,EAAAm0J,QAAApwG,iBAAAD,WACZ8vG,YAAW,WACX7sG,OAAAj0C,EAAYi0C,OAiShBqvG,GAA2B6E,iCAAiCj1I,GAAWvnB,KAAK,SAAUC,GA7RtF,GAAA,MAAAA,EAAAlI,OAAA,CACQwJ,EAAAk7J,oBAAqBx8J,EAAAhJ,IACrB,IAAGylK,GAAsBx+J,KAAKC,MAAAoD,EAAAm0J,QAAAiH,gBA+R9BrH,GAAU/zJ,EAAGm0J,QAAQpwG,iBAAiBD,WAAY,WA7RvD,GAAU9jD,EAAKg4J,kBAAA,CACH,GAAAS,GAAY,EA+RX,KAAK,GAAIv9J,KAAK8E,GAAGg4J,kBAAmB,CAChCh4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGk7J,oBAAoBhgK,GAAG+xD,UA7R9F,KAAA,GAAA9iD,KAAAnK,GAAAg4J,kBAAA98J,GAAAg9J,YACuBl4J,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAAA48C,QAAAo0G,EAAA,QAAAv0J,SAAA1L,GAAA,MAgSI8E,EAAGg4J,kBAAkB98J,GAAGulJ,aAAezgJ,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GA3RhExU,SAA5BqK,EAAAg4J,kBAA4B98J,GAAAulJ,eACrBgY,GAAAz4J,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,MAEFroB,EAAAm0J,QAAA9rI,KAAAowI,CACD,KAAA,GAAAv9J,KAAA8E,GAAAm4J,cACC,GAAAn4J,EAAAm4J,cAAAj9J,GAAA6d,IAAA/Y,EAAAm0J,QAAAf,iBACDpzJ,EAAAm0J,QAAAyM,kBAAA5gK,EAAAm4J,cAAAj9J,GAgSuD,OAA1C8E,EAAGm0J,QAAQyM,kBAAkBC,WAAoB,CACjDf,EAAqB9/J,EAAGm4J,cAAcj9J,GAAG2lK,UA5RzC,KAAA,GAAA5qJ,KAAAjW,GAAAigK,oBACG,GAAIjgK,EAAAigK,oBAAAhqJ,GAAA6tC,YAAA9jD,EAAAm0J,QAAA2M,kBAAA,CA+RC9gK,EAAGm0J,QAAQ4M,wBAA0B/gK,EAAGigK,oBAAoBhqJ,EA5RnE,IAAA+qJ,IA+RW7uJ,UAAWA,EA7RtBrc,UAAA+/J,EA+RW/xG,WAAY9jD,EAAGm0J,QAAQ4M,wBAAwBj9G,WA7R9D8vG,YAAmB,UACJ7sG,OAAAj0C,EAAAi0C,OAiSJqvG,GAA2B6E,iCAAiC+F,GAAYviK,KAAK,SAAUC,GACnF,GAAmB,MAAfA,EAAIlI,OAAgB,CA7RrCwJ,EAAAihK,qBAAAviK,EAAAhJ,IACJ,IAAAwrK,GAAAvkK,KAAAC,MAAAoD,EAAAm0J,QAAAgN,uBACAC,GAAAphK,EAAAm0J,QAAA4M,wBAAAj9G,WAAA,WACF,GAAA9jD,EAAAqhK,yBAAA,CACG,GAAA5I,GAAA,EA+R4B,KAAK,GAAI7oJ,KAAK5P,GAAGqhK,yBAA0B,CACvCrhK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAcv7J,KAAKC,MAAMoD,EAAGihK,qBAAqBrxJ,GAAGq9C,UA7RxG,KAAA,GAA2B9iD,KAAAnK,GAAAqhK,yBAAmCzxJ,GAAAsoJ,YAC5Dl4J,EAAAqhK,yBAAAzxJ,GAAAsoJ,YAAA/tJ,GAAA48C,QAAAm6G,EAAA,QAAAt6J,SAAAgJ,GAAA,MAgS2B5P,EAAGqhK,yBAAyBzxJ,GAAG0xJ,oBAAsBthK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAY/tJ,GAG9CxU,SAAtDqK,EAAGqhK,yBAAyBzxJ,GAAG0xJ,sBA7R9C7I,GAAAz4J,EAAAqhK,yBAAAzxJ,GAAA0xJ,oBAAAj5I,OAkSGroB,EAAGm0J,QAAQ0L,YAAcpH,OAlR7Cz4J,EAAAuhK,uBA+RA,IA9RIC,GAAG7kK,KAAsBC,MAAKD,KAAAC,MAAAoD,EAAAm0J,QAAAsN,aAAAC,cA+RlC,KAAK,GAAIzrJ,KAAKurJ,GACNA,EAAoBzsD,eAAe9+F,IACnCjW,EAAGuhK,qBAAqB1pK,MACpBkvB,IAAK9Q,EACLm+F,aAAcotD,EAAoBvrJ,KAQ1D,IAAK,GAAI/a,KAAK8E,GAAG6xF,SACT7xF,EAAG6xF,SAAS32F,GAAGs3F,QAAUxyF,EAAGm0J,QAAQ3hE,SACpCxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAAS32F,GAIpD,KAAK,GAAIA,KAAK8E,GAAGsgK,eACTtgK,EAAGsgK,eAAeplK,GAAG6d,IAAM/Y,EAAGm0J,QAAQwN,eACtC3hK,EAAGm0J,QAAQyN,mBAAqB5hK,EAAGsgK,eAAeplK,GAI1D,KAAK,GAAIA,KAAK8E,GAAGwgK,oBACTxgK,EAAGwgK,oBA9RStlK,GAAA6d,IAAA/Y,EAAAm0J,QAAA0N,gBA+RZ7hK,EAAGm0J,QAAQ2N,wBA9RC9hK,EAAAwgK,oBAAAtlK,IAmSxB8E,EAAG+hK,0BACH,IAAIC,GA9RYrlK,KAAAC,MAAAD,KAAAC,MAAAoD,EAAAm0J,QAAAsN,aAAAQ,cA+RhB,KAAK,GAAIhsJ,KAAK+rJ,GACNA,EAAuBjtD,eAAe9+F,IA7RvCjW,EAAA+hK,wBAAgBlqK,MACfkvB,IAAA9Q,EA+RIm+F,aAAc4tD,EAAuB/rJ,OAMrDjW,EAAGsS,WA9RY,IAkSpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAOhE,QAASwhK,GAA0B3J,EAASh6J,GACxC,GAAIg6J,EAAS,CAET,GAAItB,IACA9kJ,UA9ROA,EA+RP2xC,WAAY9jD,EAAGm0J,QAAQ4M,wBAAwBj9G,WAC/ChuD,UA9RQ+/J,EA+RRxgD,aA9RQkjD,EAiSZnC,GA9RkB+L,0BAAAlL,GAAAx4J,KAAA,SAAAC,GACd,GAAW,MAAXA,EAAAlI,OAAuB,CA+RnBwJ,EAAGoiK,4BAA8B1jK,EAAIhJ,IACrC,IAAI+iK,GAAQ,EA7RnB,KAAA,GAAAv9J,KAAA8E,GAAAoiK,4BACUpiK,EAAAoiK,4BAAmBlnK,GAAA8oD,QAAAhkD,EAAAqhK,yBAAAnmK,GAAA8oD,OAAA,IAAAhkD,EAAAoiK,4BAAAlnK,GAAA03B,gBAC3B5yB,EAAAqhK,yBAAoBnmK,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAoiK,4BAAAlnK,GAAA03B,gBAiS+Cj9B,QAAtDqK,EAAGqhK,yBAAyBnmK,GAAGomK,sBAC/B7I,GAAgBz4J,EAAGqhK,yBAAyBnmK,GAAGomK,oBAAoBj5I,KAG3EroB,GAAGm0J,QAAQ0L,YAAcpH,EA5RjCz4J,EAAAsS,WAAY,EAgSA/T,GA7RDA,MAiSR,SAAUoC,GA7RZ5I,EAAY2I,YAAA,QAAmB,mBAAA,wBAkShCV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBA7RHh4J,EAAAm0J,QAAA9rI,KAAA,GACAroB,EAAAm0J,QAAA0L,YAAiB,GAiSzB,QA9RQuB,GAAWvJ,EAAkBt5J,GA+RjC,GA9RIs5J,EAAA,CACA,GAAA7xI,IA+RI7T,UAAWA,EA7Rf2xC,WAAc+zG,EACV/hK,UAAO+/J,EA+RPxgD,aA9RI,EAiSR+gD,GAA2B+L,0BAA0Bn8I,GAAWvnB,KAAK,SAAUC,GAC3E,GAAmB,MAAfA,EAAIlI,OAAgB,CA7R5BwJ,EAAAqhK,yBAAe3iK,EAAAhJ,KA+RH6I,GA7RZA,GAEA,KAAA,GAAerD,KAAK8E,GAAAqhK,yBA+R4C,IAAhDrhK,EAAGqhK,yBAAyBnmK,GAAG03B,gBAC/B5yB,EAAGqhK,yBAAyBnmK,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGqhK,yBAAyBnmK,GAAG03B,kBA1RvG,SAAWjyB,GACX5I,EAAe2I,YAAQ,QAAA,mBAAiB,wBAIxCV,GAAAm0J,QAAW4M,wBAAQ,KACnB/gK,EAAAqhK,4BAmZR,QAASjtC,KACLp0H,EAAGm0J,WACHn0J,EAAGgT,YAAa,EAChBhT,EAAG+hK,2BACH/hK,EAAGuhK,wBAEHrvJ,IASJ,QAAS0R,KAIL,GAAIpC,GAAW,IAGXqC,GACAjuB,OAAQ4rB,EACRrP,UAAWA,EACXrc,UAAW+/J,GAKXz2J,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,2EACbE,WAAY,iCACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SACI3N,MAAO,WACH,MAAOshB,MAInBzkB,GAAcM,OAAOjB,KAAK,aAEvB,cAIP,QAASg0J,KAGLz4J,EAAO8F,GAAG,gCAAkChK,UAAW+/J,EAAc5/J,OAAQ,sBAAuBC,UAAW,KA1mCnH,GAAG8J,GAAAC,IAEHD,GAAGqU,kBAAchJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACjBrL,EAAGsU,SAAAtU,EAAAqU,gBAAuB,EA8R1BrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAxRrBzU,EAAGyyJ,SAAAA,EAEHzyJ,EAAG0gK,eAASA,EAEZ1gK,EAAAo0H,OAAAA,EA6RAp0H,EAAGsS,WAAY,EACftS,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EA1RhBhT,EAAA+zJ,UAASA,EA8RT/zJ,EAAGu/J,cA5RaA,EA6RhBv/J,EAAGohK,iBA5RYA,EA6RfphK,EAAGkiK,0BA5RwBA,EA6R3BliK,EAAG+hK,2BACH/hK,EAAGuhK,uBAvRH,IAAApvJ,GAAShY,EAASgG,uBAAAwU,gBAAAxC,UACdqhJ,EAAWr5J,EAAAgG,uBA+RX01J,EAAe77J,EAAOvE,OAAOK,UA3R7B69J,EAAU35J,EAAAvE,OAAAM,MA6RdiK,GAAG4jB,OA5RKA,EA8RR5jB,EAAGs4J,mBAAqBA,EAIxBpmJ,IA0SAlS,EAAGm/J,gBA9RC,SAA2BrM,GAgS3B,GAAItxI,EAEAA,GA/RI,WA8RJsxI,EACW,IA5RH,GAgSZ,IAAIuP,KAEJ,KAAK,GAAInnK,KAAK8E,GAAGg4J,kBA7RTh4J,EAAAg4J,kBAAA98J,GAAAulJ,eA+RA4hB,EA9RY,QAAWz7J,SAAK1L,GAAA,IAAA8E,EAAAg4J,kBAAA98J,GAAAulJ,aAAA15F,OAkSpC,IAAIu7G,GAAqB,KACrBC,EA9Re,KA+RfC,IAEJ,IA9R4C,OA8RxCxiK,EAAGm0J,QA9RKyM,kBAAWC,UAAqB,CA+RxCyB,EAAqBtiK,EAAGm0J,QAAQ4M,wBAAwBj9G,WACxDy+G,EA9ROviK,EAAYqhK,yBAAArhK,EAAAqhK,yBAAAlmK,OAAA,GAAAmmK,oBAAAv6G,MAEpB,KAAA,GAAU7rD,KAAK8E,GAAAqhK,yBACdrhK,EAAWqhK,yBAAqBnmK,GAAAomK,sBA+RxBkB,EAAwB,QAAU57J,SAAS1L,GAAK,IAAM8E,EAAGqhK,yBAAyBnmK,GAAGomK,oBAAoBv6G,QAKrH,GAvRJgvG,KA0RQkM,cAAetlK,KAAKqkB,UAAUhhB,EAAG+hK,yBACjCL,cAAe/kK,KAAKqkB,UAAUhhB,EAAGuhK,wBAIjCvL,QAASh2J,EAAGm0J,QAAQ6B,QA7RpB7jJ,UAAAA,EACArc,UAAI+/J,EA+RJ/xG,WA9RI9jD,EAAWm0J,QAAApwG,iBAAAD,WA+RfiD,OA9RI/mD,EAAAg4J,kBAAYh4J,EAAAg4J,kBAAA78J,OAAA,GAAAslJ,aAAA15F,OA+RhBq0G,gBA9Rez+J,KAAAqkB,UAAAqhJ,GA+RfjP,eAAgBpzJ,EAAGm0J,QAAQyM,kBAAkB7nJ,GAC7Cy5E,OAAQxyF,EAAGm0J,QAAQ+E,mBAAmB1mE,OACtCivE,YAAa,GACbX,kBAAmBwB,EACnBG,cAAeF,EACfpB,uBAAwBxkK,KAAKqkB,UAAUwhJ,GACvCzJ,WAAY/4J,EAAGm0J,QAAQ4E,WACvBF,WAAY74J,EAAGm0J,QAAQ0E,WACvBF,YAAa34J,EAAGm0J,QAAQwE,YACxBG,iBAAkB94J,EAAGm0J,QAAQ2E,iBA7R7BF,QAAA54J,EAAAm0J,QAAAyE,QA+RA8J,QA9RQ1iK,EAAIm0J,QAAAuO,QA+RZC,SA9RQ3iK,EAAGm0J,QAAAwO,SA+RXC,QAAU5iK,EAAGm0J,QAAQyO,QACrBC,SAAS7iK,EAAGm0J,QAAQ0O,SACpBC,YAAY9iK,EAAGm0J,QAAQ2O,YACvBnxE,SA9RQ3xF,EAAGm0J,QAAAxiE,SA+RXoxE,aAAa/iK,EAAGm0J,QAAQ4O,aACxBpB,aAAc3hK,EAAGm0J,QAAQyN,mBAAmB7oJ,GAC5C8oJ,cA9Ra7hK,EAAKm0J,QAAA2N,wBAAA/oJ,GA+RlBnjB,OA9RI4rB,EA+RJ6E,QAAS,OACTvS,UAAW0/I,EAAWnzJ,SA3RtBjC,EAAG,GAAAH,SA0SPG,GAASF,OAAO,YAAavB,KAAKqkB,UAAU+0I,IAI5CK,EA9RwB4M,4BAAA5kK,GAAAK,KAAA,SAAAC,GA+RhBA,EA9RIhJ,KAAKke,aAAY,GA+RrB5T,EAAGgT,YA9RY,EA+RfhT,EAAG5J,eA9RY,EA+Rf4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGmjK,YA9RY,EAgSE,YAAbrQ,EACA/6J,EAAW2I,YAAY,UAAW,wBAAyB,yBAG3D3I,EAAW2I,YAAY,UAAW,WAAY,yBAElDwR,MAGAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAClD7T,EAAGgT,YAAa,IAErB,SA9RKrS,GA+RJ5I,EAAW2I,YAAY,QAAS,kCAsQxCV,EAAGojK,sBAAwB,SAAU5/B,EAAU6/B,GAK3C,GAAIrjK,EAAG+S,UA9RI,CA+RP,GA9RI0wH,IACAuyB,QAAGh2J,EAAAm0J,QAAc6B,QACjByL,YAAGzhK,EAAAm0J,QAAmBsN,YACtBhtF,IAAG+uD,EAAAz8G,IA+RHu8I,UAAWD,EAEfjN,GA9RmBmN,iCAAuB9/B,GAAyBhlI,KAAA,SAAAC,GA+R/D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBuB,EA9RC2I,YAAA,UAAA,wBAAA,yBAgSDV,EAAGm0J,QAAQsN,YAAc/iK,EAAIhJ,KAAK,GAAG+rK,WAErC,IAAI+B,GAAmB7mK,KAAKC,MAAMD,KAAKC,MAAM8B,EAAIhJ,KAAK,GAAG+rK,aAAa,cA7RzEzhK,GAAA+hK,0BAEE,KAAA,GAAA7mK,KAAasoK,GA+RJA,EAAiBzuD,eAAe75G,IA7RlC8E,EAAA+hK,wBAAAlqK,MACHkvB,IAAY7rB,EA+RHk5G,aAAcovD,EAAiBtoK,IAxRpD,IAAYuoK,GAAA9mK,KAAAC,MAAAD,KAAAC,MAAA8B,EAAAhJ,KAAA,GAAA+rK,aAAA,cACZzhK,GAAUuhK,uBAGV,KAAa,GAAArmK,KAAAuoK,GA+RIA,EAAkB1uD,eAAe75G,IA7RrC8E,EAAAuhK,qBAAA1pK,MA+RQkvB,IAAK7rB,EA7RRk5G,aAAAqvD,EAAAvoK,SAObnD,GAAY2I,YAAA,QAAA,iBACZrJ,WAAW,EACX+F,KAAW,QAkSX,SAAUuD,GACN5I,EAAW2I,YAAY,QAAS,wBA7RxCrJ,WAAA,EACY+F,KAAA,aAqSZ,IAAiB,iBAAbimK,EACA,IAAK,GAAInoK,KAAK8E,GA9RE+hK,wBA+RR/hK,EAAG+hK,wBA9RgB7mK,GAAA6rB,MAAkBy8G,EAAGz8G,KA+RxC/mB,EAAG+hK,wBAAwBzsI,OAAOp6B,EAAG,OAM7C,KAAK,GAAIA,KAAK8E,GAAGuhK,qBACTvhK,EAAGuhK,qBA9RmBrmK,GAAA6rB,MAAAy8G,EAAAz8G,KA+RtB/mB,EAAGuhK,qBA9RkBjsI,OAAAp6B,EAAA,mRAtxB7C9G,QACKC,OAAO,6CACPe,WAAW,oCAA2BgqK,MAwnC/C,WACI,YAOA,SAASsE,GA9R8Bj5J,EAAA1Q,EAAAhC,EAA6ByC,EAAGH,EAAQL,EAAA2kI,EAAezxF,EAAAn7B,EA+R1F2D,EAAaD,EAAam1D,EA9RiB8oF,EAA6B0C,EAAoBxkJ,EAAAE,EAAA3X,GAgV5F,QAAS+X,KACLlS,EAAGjK,OAAS49J,CAmBZ,IAAI3tI,IA7RR7T,UAASA,EACDvc,OAAA,IACAg+J,YAAI,WA+RJ99J,UA9RI+/J,EAgSRnC,GA9RmBO,qCAAAjuI,GAAAvnB,KAAA,SAAAC,GACG,MAAdA,EAAAlI,SA+RAwJ,EAAGkiG,YAAcxjG,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SA9RS3R,GA+RR5I,EA9RW2I,YAAA,QAAA,mBAA+B,mBAmS9C,IAAIq2J,IACA5kJ,UAAWA,EACXvc,OAAQ,IACRg+J,YAAa,OAEjBwC,GA9RsBuN,8BAAA5M,GAAAt4J,KAAA,SAAAC,GACH,MAAXA,EAAAlI,SA+RAwJ,EAAG8zJ,iBAAmBp1J,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SA9RI3R,GACH5I,EAAG2I,YAAA,QAA2B,mBAAA,oBAqTtC,QAASkjK,GAAcrL,EAASh6J,GAE5B,GAAI61J,GAAYz3J,KAAKC,MAAMoD,EAAGm0J,QAAQ1T,aAAa4T,UACnDr0J,GAAGm0J,QAAQI,gBAAkBv0J,EAAGm0J,QAAQ1T,aAAazuB,YACrDhyH,EAAGm0J,QAAQQ,eAAiB,IAC5B30J,EAAGm0J,QAAQK,aAAex0J,EAAGm0J,QAAQ1T,aAAagU,iBAElD,KAAK,GAAIv5J,GAAI,EAAGA,EAAI0H,OAAOD,KAAKyxJ,GAAWj5J,OAAQD,IACd,sBAA7B0H,OAAOD,KAAKyxJ,GAAWl5J,KACvB8E,EAAGm0J,QAAQG,YAAe1xJ,OAAOmK,OAAOqnJ,GAAWl5J,IAK/D,QAAS2oK,KACL7jK,EAAGm0J,QAAQQ,eAAiB30J,EAAGm0J,QAAQI,gBAAkBv0J,EAAGm0J,QAAQG,YACpEt0J,EAAGm0J,QAAQK,aAA4C,GAA5Bx0J,EAAGm0J,QAAQQ,eAAuB,IAC7D30J,EAAGm0J,QAAQ1pI,WAA0C90B,QAA7BqK,EAAGm0J,QAAQQ,eAA8B,EAAI9oI,WAAW7rB,EAAGm0J,QAAQQ,kBAAgDh/J,QAA5BqK,EAAGm0J,QAAQO,cAA6B,EAAI7oI,WAAW7rB,EAAGm0J,QAAQO,gBAGrL,QAASoP,KAEL,GAAIpP,IA9RkB/+J,QAATqK,EAASm0J,QAAAU,IAAA,EAAAhpI,WAAA7rB,EAAAm0J,QAAAU,OAAAl/J,QAAAqK,EAAAm0J,QAAAW,WAAA,EAAAjpI,WAAA7rB,EAAAm0J,QAAAW,cACHn/J,QA8RZqK,EA9RCm0J,QAAAY,WAAW,EAAAlpI,WAAA7rB,EAAAm0J,QAAAY,cAAAp/J,QAAAqK,EAAAm0J,QAAAa,mBAAA,EAAAnpI,WAAA7rB,EAAAm0J,QAAAa,sBA+Rar/J,QAAzBqK,EAAGm0J,QAAQiB,WAA0B,EAAIvpI,WAAW7rB,EAAGm0J,QAAQiB,cAA+Cz/J,QAA/BqK,EAAGm0J,QAAQc,iBAAgC,EAAIppI,WAAW7rB,EAAGm0J,QAAQc,oBA7R5Ht/J,QAA3BqK,EAAAm0J,QAAAe,eAA2B,EAAArpI,WAAA7rB,EAAiCm0J,QAAQe,kBAAoBv/J,QAAAqK,EAAAm0J,QAAAgB,kBAAA,EAAAtpI,WAAA7rB,EAAAm0J,QAAAgB,qBAC5Dx/J,QA8RzBqK,EA9RCm0J,QAAQkB,oBAAgB,EAAAxpI,WAAA7rB,EAAAm0J,QAAAkB,uBAAA1/J,QAAAqK,EAAAm0J,QAAAmB,qBAAA,EAAAzpI,WAAA7rB,EAAAm0J,QAAAmB,wBACG3/J,QA8R5BqK,EAAGm0J,QA9REoB,qBAAkC,EAAA1pI,WAAA7rB,EAAyBm0J,QAAAoB,wBAAA5/J,QAAAqK,EAAAm0J,QAAAqB,mBAAA,EAAA3pI,WAAA7rB,EAAAm0J,QAAAqB,sBA+RrC7/J,QAA3BqK,EAAGm0J,QAAQsB,aAA4B,EAAI5pI,WAAW7rB,EAAGm0J,QAAQsB,gBAAmD9/J,QAAjCqK,EAAGm0J,QAAQuB,mBAAkC,EAAI7pI,WAAW7rB,EAAGm0J,QAAQuB,sBA7R5H//J,QA8R9BqK,EAAGm0J,QA9RKwB,iBAAkC,EAAA9pI,WAAA7rB,EAAAm0J,QAAAwB,oBAAAhgK,QAAAqK,EAAAm0J,QAAAyB,kBAAA,EAAA/pI,WAAA7rB,EAAAm0J,QAAAyB,mBAgSjD51J,GAAGm0J,QAAQO,cA9RKA,EA+RhB10J,EAAGm0J,QAAQ1pI,WA9R8B90B,QAA1BqK,EAAAm0J,QAAAQ,eAA0B,EAAA9oI,WAAA7rB,EAAAm0J,QAAAQ,kBAAAh/J,QAAAqK,EAAAm0J,QAAAO,cAAA,EAAA7oI,WAAA7rB,EAAAm0J,QAAAO,gBAiS7C,QAASqP,GA9RelgJ,GAgSpB,GAAImgJ,IACAnP,IA9RoBl/J,QA8RZqK,EAAGm0J,QAAQU,IA9Re,EAAAhpI,WAAiB7rB,EAAAm0J,QAAAU,KA+RnDC,WAAwCn/J,QAAzBqK,EAAGm0J,QAAQW,WAA0B,EAAIjpI,WAAW7rB,EAAGm0J,QAAQW,YAC9EC,WAAwCp/J,QAAzBqK,EAAGm0J,QAAQY,WAA0B,EAAIlpI,WAAW7rB,EAAGm0J,QAAQY,YAC9EC,mBAAwDr/J,QAAjCqK,EAAGm0J,QAAQa,mBAAkC,EAAInpI,WAAW7rB,EAAGm0J,QAAQa,oBAC9FI,WAAwCz/J,QAAzBqK,EAAGm0J,QAAQiB,WAA0B,EAAIvpI,WAAW7rB,EAAGm0J,QAAQiB,YAC9EH,iBAAoDt/J,QAA/BqK,EAAGm0J,QAAQc,iBAAgC,EAAIppI,WAAW7rB,EAAGm0J,QAAQc,kBAC1FC,eA9RgDv/J,QAApCqK,EAAAm0J,QAAAe,eAA8C,EAAKrpI,WAAG7rB,EAAAm0J,QAAae,gBA+R/EC,kBA9RkCx/J,QAAvBqK,EAAAm0J,QAAAgB,kBAAuB,EAAAtpI,WAAA7rB,EAAAm0J,QAAAgB,mBA+RlCE,oBAA0D1/J,QAAlCqK,EAAGm0J,QAAQkB,oBAAmC,EAAIxpI,WAAW7rB,EAAGm0J,QAAQkB,qBAChGC,qBAA4D3/J,QAAnCqK,EAAGm0J,QAAQmB,qBAAoC,EAAIzpI,WAAW7rB,EAAGm0J,QAAQmB,sBAClGC,qBA9RyC5/J,QAAnBqK,EAAAm0J,QAAAoB,qBAAmB,EAAA1pI,WAAA7rB,EAAAm0J,QAAAoB,sBA+RzCC,mBA9RqD7/J,QAArCqK,EAAAm0J,QAAkBqB,mBAAmB,EAAA3pI,WAAA7rB,EAAAm0J,QAAAqB,oBA+RrDC,aA9RwC9/J,QAAxBqK,EAAGm0J,QAAAsB,aAA0B,EAAA5pI,WAAA7rB,EAAAm0J,QAAAsB,cA+R7CC,mBA9RyB//J,QAALqK,EAAKm0J,QAAAuB,mBAAA,EAAA7pI,WAAA7rB,EAAAm0J,QAAAuB,oBA+RzBC,iBA9RoDhgK,QAAhCqK,EAAAm0J,QAAAwB,iBAAgC,EAAA9pI,WAAA7rB,EAAAm0J,QAAAwB,kBA+RpDC,kBAAsDjgK,QAAhCqK,EAAGm0J,QAAQyB,kBAAiC,EAAI/pI,WAAW7rB,EAAGm0J,QAAQyB,oBAG5FqO,EAAQ,CAGRA,GADAjkK,EAAG+S,UA7RK/S,EAAAk0J,oBAAuB8B,QAgSvBh2J,EAAGm0J,QA9RO1T,aAAAuV,OAgStB,IAAIhwI,IACAgwI,QAASiO,EACT9xJ,UA9RIA,EA+RJ6/G,YA9RQhyH,EAAAm0J,QAAWI,gBA+RnBE,kBA9RYz0J,EAAAm0J,QAAWK,aA+RvBxR,iBA9RkBrmJ,KAAAqkB,UAAAgjJ,GA+RlBtP,cAAe10J,EAAGm0J,QAAQO,cAC1BjqI,UAAWzqB,EAAGm0J,QAAQ1pI,UACtBpE,QAAS,OAGb+vI,GAA2B8N,4BAA4Bl+I,GAAWvnB,KAAK,SAAUC,GA7R7E3G,EAAI2I,YAAa,UAAiB,sBAAA,wBA+RlCV,EAAGgT,YA9RU,EA+Rbd,KAED,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,iCAKxC,QAASqvG,GA9RWj9F,GAgShB9S,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAEf/S,EAAGk0J,oBAAsB9/J,QAAQ8e,KAAKJ,GAStCihJ,UAAU8B,EAAc,WA7RxB,IAAA,GAAA36J,KAAA8E,GAAAkiG,YA+RYliG,EAAGkiG,YAAYhnG,GAAG6rD,SAAW/mD,EAAGk0J,oBAAoBntG,SACpD/mD,EAAGm0J,QAAQ1T,aAAezgJ,EAAGkiG,YAAYhnG,KAQrD,KAAK,GAFDk5J,GAAYz3J,KAAKC,MAAMoD,EAAGk0J,oBAAoBG,WAEzCn5J,EAAI,EAAGA,EAAI0H,OAAOD,KAAKyxJ,GAAWj5J,OAAQD,IACd,sBAA7B0H,OAAOD,KAAKyxJ,GAAWl5J,KACvB8E,EAAGm0J,QAAQG,YAAe1xJ,OAAOmK,OAAOqnJ,GAAWl5J,GA1R3D8E,GAAAm0J,QAAII,gBAAUv0J,EAAAk0J,oBAAAliC,YA+RdhyH,EAAGm0J,QA9RCK,aAAQx0J,EAAAk0J,oBAAAO,kBA+RZz0J,EAAGm0J,QA9RC1pI,UAAWzqB,EAAAk0J,oBAAAzpI,UA+RfzqB,EAAGm0J,QA9RCO,cAAW10J,EAAAk0J,oBAAAQ,cA+Rf10J,EAAGm0J,QAAQQ,eAAiB30J,EAAGm0J,QAAQI,gBAAkBv0J,EAAGm0J,QAAQG,WAGpE,IAAIM,GAAcj4J,KAAKC,MAAMoD,EAAGk0J,oBAAoBlR,iBAEpDhjJ,GAAGm0J,QA9RCU,IAAWD,EAAAC,IA+Rf70J,EAAGm0J,QA9RCW,WAAgBF,EAAAE,WA+RpB90J,EAAGm0J,QA9RCY,WAAiBH,EAAAG,WA+RrB/0J,EAAGm0J,QA9RCa,mBAAaJ,EAAAI,mBA+RjBh1J,EAAGm0J,QA9RCc,iBAAYL,EAAAK,iBA+RhBj1J,EAAGm0J,QA9RCe,eAAcN,EAAAM,eA+RlBl1J,EAAGm0J,QA9ROgB,kBAAAP,EAAAO,kBA+RVn1J,EAAGm0J,QA9RCiB,WAAUR,EAAAQ,WA+Rdp1J,EAAGm0J,QA9RCkB,oBAAUT,EAAAS,oBA+Rdr1J,EAAGm0J,QA9RCmB,qBAASV,EAAAU,qBA+Rbt1J,EAAGm0J,QA9RKoB,qBAAmBX,EAAAW,qBA+R3Bv1J,EAAGm0J,QAAQqB,mBA9RQZ,EAAAY,mBA+RnBx1J,EAAGm0J,QAAQsB,aAAeb,EAAYa,aACtCz1J,EAAGm0J,QAAQuB,mBAAqBd,EAAYc,mBAC5C11J,EAAGm0J,QAAQwB,iBAAmBf,EAAYe,iBA7R1C31J,EAAAm0J,QAAAyB,kBAA0BhB,EAAYgB,kBAkS1C,QAASuO,GAAcrxJ,GA5RvB9S,EAAAk0J,oBAAoB9/J,QAAA8e,KAAAJ,EAgShB,IAAIkT,IA7RJgwI,QAAUh2J,EAAAk0J,oBAAA8B,QA+RN7jJ,UAAWA,EACX6/G,YAAa,EACbyiC,kBAAmB,EACnBzR,iBAAkB,GAClB0R,cAAe,EACfjqI,UAAW,EA7RdpE,QAAA,SAiSD+vI,GAA2B8N,4BAA4Bl+I,GAAWvnB,KAAK,SAAUC,GA9RzF3G,EAAA2I,YAAA,UAAA,wBAAA,wBACYV,EAAAgT,YAAA,EACPd,KAiSM,SAAUvR,GA9RZ5I,EAAA2I,YAAA,QAAgC,iCAKrC,QAAG0zH,KAEAp0H,EAAAgT,YAAc,EACdhT,EAAA+S,WAAA,EACCb,IAkSJ,QAAS8B,KACLhU,EAAGgT,YAAa,EAGpB,QAASy/I,KAELz4J,EAAO8F,GAAG,gCAAiChK,UAAW+/J,EAAc5/J,OAAO,oBAAoBC,UAAU,KA/S7G,GAAI8J,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBA9RsB,SAASC,GA+R9BzU,EAAGuU,YAAcE,GAWrBzU,EAAG+vG,YAAcA,EACjB/vG,EAAGmkK,cAAgBA,CAEnB,IAAItO,GA9RQ77J,EAAWvE,OAAAK,UA+RnB69J,EAAc35J,EAAOvE,OAAOM,MAChCiK,GAAGo0H,OAASA,EAEZp0H,EAAGgU,OAASA,EACZhU,EAAGyyJ,SAAWA,EAGdzyJ,EAAG4jK,cA9RcA,EA+RjB5jK,EAAG6jK,cAAgBA,EACnB7jK,EAAG8jK,uBA9RsBA,EA+RzB9jK,EAAG+jK,wBA9RoBA,EAiSvB/jK,EAAGm0J,WACHn0J,EAAGm0J,QAAQG,YAAc,IACzBt0J,EAAGm0J,QAAQI,gBAAkB,IAC7Bv0J,EAAGm0J,QA9RKQ,eAAA,IA+RR30J,EAAGm0J,QAAQK,aA9RS,IA+RpBx0J,EAAGm0J,QAAQ1pI,UA9RQ,IAgSnBzqB,EAAGgT,YA9Ra,EA+RhBhT,EAAGsS,WAAY,CACf,IAAIujJ,GAAe77J,EA9RKvE,OAAGK,UA+RvB69J,EAAc35J,EAAOvE,OAAOM,OAC5Boc,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAG8zJ,oBACH5hJ,oTAvDJ9d,QACKC,OAAO,4CACPe,WAAW,kCAAmCsuK,MA2TvD,WACI,YAOA,SA/ROU,GAAyB35J,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAAzxF,EAAAn7B,EAC5B2D,EAAGD,EAAAm1D,EAA0B8oF,EAAA0C,EAAAD,EAAAvkJ,EAAAE,EAAA3X,EAAAk8J,EAAAC,GA+V7B,QA/ROpkJ,KAgSHlS,EAAGjK,OA/RC49J,EAiSJ3zJ,EAAGu2J,oBAAuBC,MAAS,kBAAqBA,MAAS,aAAgBA,MAAS,eAE1FJ,EAA2BwB,eAAe,QAAQn5J,KAAK,SAAUC,GAC7D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG6xF,SAAWnzF,EAAIhJ,IAElB,IAAIqhK,IACA5kJ,UAAWA,EACXrc,UAAW+/J,EACXjC,YAAa,OACbh+J,OAAQ,IAEZwgK,GAA2BY,8BAA8BD,GAAoBt4J,KAAK,SAAU89J,GACxF,GAAoB,MAAhBA,EAAK/lK,OAAgB,CACrBwJ,EAAG8zJ,iBAAmByI,EAAK7mK,IAE3B,IAAIwhK,IACA/kJ,UAAWA,EACXrc,UAAW+/J,EA5R1BQ,GAAiCc,+BAAAD,GAAAz4J,KAAA,SAAA24J,GAgSlB,GAA2B,MAAvBA,EAAY5gK,OAAgB,CA9R/BwJ,EAAMq3J,gBAAWD,EAAa1hK,IAExC,IAAiBswB,IACF7T,UAAWA,EAgSTrc,UAAW+/J,EA9RZjC,YAAK,WAkSRwC,GAA2BK,oCAAoCzwI,GAAWvnB,KAAK,SAAU4hK,GACrF,GAAoB,MAAhBA,EAAK7pK,OAAgB,CACrBwJ,EAAGgmD,aAAeq6G,EAAK3qK,IA7RlC,IAAAghK,IACUvkJ,UAAQA,EACTwkJ,OAAQ,aAiSNR,GAAsBS,uBAAuBF,GAAUj4J,KAAK,SAAUo4J,GAC9C,MAAhBA,EAAKrgK,QA9RfwJ,EAAA82J,gBAAAD,EAAAnhK,KAgSUsK,EAAGsS,WAAY,GA7RvBva,EAAgB2I,YAAc,QAAQ,yBAA2B,4BAE/E,SAAkBC,GAClB5I,EAAuB2I,YAAgB,QAAW,mBAAW,6BAE7DV,EAAgBsS,WAAY,IAiSnB,SAAU3R,GA9RV5I,EAAA2I,YAAA,QAAA,mBAAA,8BAkSR,SAAUC,GA9RxB5I,EAAwB2I,YAAS,QAAA,mBAAA,4BAElCV,EAAAsS,WAAgB,IAEhB,SAAe3R,GACf5I,EAAkB2I,YAAQ,QAAc,mBAAgB,4BAExDV,EAAAsS,WAAkB,IAiSnB,SA/RC3R,GACA5I,EAAA2I,YAAsB,QAAG,mBAAQ,4BAmSzC,QA/RQ04J,GAAAvB,EAA0Bt5J,GAC1Bs5J,GACA73J,EAAA+S,WACAghJ,EAAA8D,EAAgC,SAAAt5J,GAChCA,GAgSYA,MA7RZyB,EAAAsS,WAAQ,IAGRtS,EAAAm0J,QAAWpwG,iBAAA,KAgSX/jD,EAAGg4J,qBA9RHh4J,EAAAm0J,QAAW9rI,KAAA,GAgSXroB,EAAGm4J,iBA9RHn4J,EAAAo4J,qBAAY,EACZp4J,EAAAq4J,oBAAS,GA+UjB,QAASc,GA/RcE,EAAsB96J,GAgSzC,GAAI86J,EAAiB,CAEjB,GAAIC,IA9RLnnJ,UAAQA,EACRrc,UAAQ+/J,EACR/xG,WAAQ9jD,EAAYm0J,QAAGpwG,iBAAoBD,WAC3CsvG,eAAQiG,EAkSPr5J,GAAGw3J,yBAEHlB,EAA2BgB,6BAA6BgC,GAAgB76J,KAAK,SAAU84J,GA9RxF,GAA0B,MAAlBA,EAAM/gK,OAAY,CAElB,GADAwJ,EAAAw3J,sBAAyBD,EAAA7hK,KACzBsK,EAAAw3J,sBAAyBr8J,OAAA,EAAA,CACzB6E,EAAAq4J,oBAAqB,CACrB,KAAA,GAAAn9J,KAAmB8E,GAAAw3J,sBAAY,CAE/Bx3J,EAAAw3J,sBAAgCt8J,GAAAq+J,SAAA,EAChCv5J,EAAAw3J,sBAAyBt8J,GAAAs+J,UAAA,EACzBx5J,EAAAw3J,sBAAkCt8J,GAAAu+J,QAAA,EAClCz5J,EAAAw3J,sBAAuBt8J,GAAYu1C,WAAA,EACnCzwC,EAAAw3J,sBAAuBt8J,GAAYw+J,gBAAA,EAEnC15J,EAAAw3J,sBAA2Bt8J,GAAAy+J,YAAA,EAC3B35J,EAAAw3J,sBAAiCt8J,GAAA0+J,WAAA,EACjC55J,EAAAw3J,sBAA+Bt8J,GAAA2+J,cAAA,CAmStB,IAAIC,KA9RA,IAAA95J,EAAAw3J,sBAAAt8J,GAAA6+J,UAgSqD,IAAjD/5J,EAAGw3J,sBAAsBt8J,GAAG8+J,mBA9R/BF,IAAatD,MAAA,aAgSVx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EA9RrD35J,EAAAw3J,sBAAAt8J,GAAA0+J,WAAA,EACA55J,EAAAw3J,sBAAoBt8J,GAAA2+J,cAAA,IAGbC,IAAAtD,MAAA,kBAAAA,MAAA,eACDx2J,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EACH35J,EAAAw3J,sBAAAt8J,GAAA0+J,WAAA,EACJ55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,GAkSS75J,EAAGw3J,sBAAsBt8J,GAAG+3B,SAAW6mI,EA9R/D95J,EAA2Bw3J,sBAAAt8J,GAAA47C,aAAuCgjH,EAAK,IAGnE95J,EAAAw3J,sBAAAt8J,GAAA+3B,aAmBCjzB,EAAAsS,WAAW,IAET,SAAG3R,GAgSF5I,EAAW2I,YAAY,QAAS,mBAAoB,wBASxDV,GAAGm0J,QAAQpwG,iBAAmB,KA/R1C/jD,EAAAg4J,qBACYh4J,EAAAm0J,QAAA9rI,KAAA,GACProB,EAAAm4J,iBAiSOn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGq4J,oBAAqB,EAIhC,QAAStE,GAAU8D,EAAkBt5J,GA5RlC,GAHAyB,EAAA+S,WACA+kJ,IAEAD,EAAc,CAEV,GAAA7xI,IAiSK7T,UAAWA,EACX2xC,WAAY+zG,EACZ/hK,UAAW+/J,EACXxgD,aAAc,EAGlB+gD,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGg4J,kBAAoBt5J,EAAIhJ,KA9RxCsK,EAAmBg4J,kBAAA78J,OAAA,EACnB6E,EAAAi4J,aAAqB,EAEVj4J,EAAAi4J,aAAA,CAEF,KAAA,GAAA/8J,KAAA8E,GAAAg4J,kBACG,IAAAh4J,EAAAg4J,kBAAA98J,GAAA03B,gBACS5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAg4J,kBAAA98J,GAAA03B,eAmSR,IAAIqkI,IA/RjB9kJ,UAA0BA,EAC1Bvc,OAAA,IAiSiBg+J,YAAa,WA/R9B99J,UAA0B+/J,EAmSbnC,GAA8BO,qCAAqCgD,GAAYx4J,KAAK,SAAUC,GA/RrF,MAAdA,EAAclI,SACdwJ,EAAckiG,YAAAxjG,EAAAhJ,MACGsK,EAAA+S,UAyCR/S,EAAKsS,WAAW,IAkSjB,SAAU3R,GA/RT5I,EAAI2I,YAAe,QAAA,mBAAA,oBAmSvBV,EAAGsS,WAAY,EA9RX/T,GAiSAA,MAET,SAAUoC,GACT5I,EAAW2I,YAhSS,QAAY,mBAAA,wBAoSpCV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGq4J,oBAAqB,EAIhC,QAASC,GAAmBC,EAASh6J,GAEjC,GADAu5J,IACIS,EAAS,CAET,GAAIvyI,IACA7T,UAAWA,EACX2xC,WAAY9jD,EAAGm0J,QAAQpwG,iBAhSSD,WAiShChuD,UAAW+/J,EACXxgD,aAAckjD,EAGlBnC,GAA2B2B,mBAhSgB/xI,GAAAvnB,KAAA,SAAAC,GAiSvC,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGw4J,qBAhSsB95J,EAAKhJ,IAiS9B,IAAI+iK,GAAQ,EACZ,KAAK,GAAIv9J,KAAK8E,GAAGw4J,qBACTx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBA/RlG5yB,EAAAg4J,kBAAe98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,gBAGHj9B,QAAZqK,EAAAg4J,kBAAY98J,GAAAulJ,eAiSXgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KA9R5HroB,GAAAm0J,QAAW9rI,KAAAowI,EAmSXC,EAAgBH,GA9RxBv4J,EAAWsS,WAAY,EAkSX/T,GACAA,MA7RZ,SAAQoC,GACJ5I,EAAU2I,YAAA,QAAkB,mBAAoB,wBAIpDV,GAAGm0J,QAAApwG,iBAAY,KAiSf/jD,EAAGg4J,qBACHh4J,EAhSCm0J,QAAA9rI,KAAA,GAoST,QAhSQqwI,GAAGH,GAkSP,GAhSIvyI,IAiSA7T,UAAWA,EACXrc,UAAW+/J,EACXjC,YAAa,WACbh+J,OAAQ,IACRmxD,OAAQwxG,EAGZv4J,GAAGm0J,QAAQwE,YAAc,EACzB34J,EAAGm0J,QAAQyE,QAAU,EACrB54J,EAAGm0J,QAAQ0E,WAAa,EACxB74J,EAAGm0J,QAAQ2E,iBAAmB,EAC9B94J,EAAGm0J,QAAQ4E,WAAa,EAExB/4J,EAAGm0J,QAAQniC,YAAc,EACzBhyH,EAAGm0J,QAAQW,WAAa,EAExB90J,EAAGm0J,QAAQQ,eAAiB,EAC5B30J,EAAGm0J,QAAQY,WAAa,EACxB/0J,EAAGm0J,QAAQa,mBAAqB,EAIhCqB,EAAuC2C,kCAAkChzI,GAAWvnB,KAAK,SAAUC,GAC/F,GAAmB,MAAfA,EAAIlI,OAAgB,CAGpB,GAFAwJ,EAAGi5J,mBAAqBv6J,EAAIhJ,KAExBsK,EAAGi5J,mBAAmB99J,OAAS,GAC3B6E,EAAGi5J,mBAAmB,GAAGN,YAAc,EAAG,CAC1C34J,EAAGm0J,QAAQwE,YAAc34J,EAAGi5J,mBAAmB,GAAGN,YAClD34J,EAAGm0J,QAAQyE,QAAU54J,EAAGi5J,mBAAmB,GAAGL,QAC9C54J,EAAGm0J,QAAQ0E,WAAa74J,EAAGi5J,mBAAmB,GAAGJ,WACjD74J,EAAGm0J,QAAQ2E,iBAAmB94J,EAAGi5J,mBAAmB,GAAGH,iBACvD94J,EAAGm0J,QAAQ4E,WAAa/4J,EAAGi5J,mBAAmB,GAAGF,UAEjD,KAAK,GAAI79J,KAAK8E,GAAG6xF,SACT7xF,EAAG6xF,SAAS32F,GAAGs3F,QAAUxyF,EAAGi5J,mBAAmB,GAAGzmE,SAClDxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAAS32F,GAIpDi+J,GAAqBn5J,EAAGi5J,mBAAmB,GAAG7F,gBAItDpzJ,EAAGsS,WAAY,IA7R3B,SAAS3R,GACD5I,EAAA2I,YAAiB,QAAA,mBAAA,oBAuSzB,QAASo3J,KACL93J,EAAGm0J,QAAQwE,YAAc,EACzB34J,EAAGm0J,QAhSIniC,YAAA,EAiSPhyH,EAAGm0J,QAAQQ,eAAiB,EAC5B30J,EAAGm0J,QAhSCyE,QAAA,EAiSJ54J,EAAGm0J,QAhSKW,WAAI,EAiSZ90J,EAAGm0J,QAAQY,WAhSI,EAiSf/0J,EAAGm0J,QAAQa,mBAhSQ,EAiSnBh1J,EAAGm0J,QAAQM,kBAhSQ,EAiSnBz0J,EAAGm0J,QAAQ8F,cAhSc,EAiSzBj6J,EAAGm0J,QAAQ+F,mBAAqB,EAChCl6J,EAAGm0J,QAAQgG,eAhSY,CAkSvB,KAAK,GAAIj/J,KAAK8E,GAAGw3J,sBAObx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EACvCv5J,EAAGw3J,sBAAsBt8J,GAAGs+J,UAAY,EACxCx5J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU,EACtCz5J,EAAGw3J,sBAhSiBt8J,GAAAu1C,WAAa,EAiSjCzwC,EAAGw3J,sBAhSoBt8J,GAAAw+J,gBAAsB,EAiS7C15J,EAAGw3J,sBAhSqBt8J,GAAG47C,aAAA92C,EAAAu2J,kBAAyB,GAiSpDv2J,EAAGw3J,sBAhSqBt8J,GAAAy+J,YAAgB,EAiSxC35J,EAAGw3J,sBAhSqBt8J,GAAG0+J,WAAA,EAiS3B55J,EAAGw3J,sBAhSqBt8J,GAAG2+J,cAAA,CAkS/B75J,GAAGm0J,QAAQO,cAAgB,EAC3B10J,EAAGm0J,QAAQiG,SAAW,EACtBp6J,EAAGm0J,QAAQ1pI,UAAY,EAG3B,QAAS4vI,KAELr6J,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGm0J,QAAQniC,cAAclmG,QAAQ,GAC9G9rB,EAAGm0J,QAAQY,YAhSalpI,WAAG7rB,EAAAm0J,QAAAyE,SAAyB/sI,WAAW7rB,EAAAm0J,QAAAW,aAAAhpI,QAAA,GAiS/D9rB,EAAGm0J,QAAQa,oBAhSgBnpI,WAAA7rB,EAAAm0J,QAAyBQ,gBAAe9oI,WAAW7rB,EAAAm0J,QAAAY,aAAAjpI,QAAA,GAiS9E9rB,EAAGm0J,QAAQ8F,eAAkBpuI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQM,mBAAsB,KAAK3oI,QAAQ,GAC9H9rB,EAAGm0J,QAAQgG,gBAhSctuI,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAA+F,oBAAA,KAAApuI,QAAA,EAkSzB,IAAIwuI,GAAqB,EACrBF,EAAW,CAEf,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAC+B,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAC0B,iBAAlD/5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAEY,gBAAjDx2J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAElF,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,IAGnJwuI,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAEpD,GAArCx5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QA/RrCv6J,EAAUw3J,sBAAKt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GACdsuI,GAAuBvuI,WAAS7rB,EAAAw3J,sBAAoBt8J,GAAAs/J,aAGvD,YAAAx6J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,OAkSO8D,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAEpD,GAArCz5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAAW5tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GA/RnKsuI,GAAmBvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,aAGX,cAAhBx6J,EAAAw3J,sBAAgBt8J,GAAA47C,aAAA0/G,QAEK,gBAArBx2J,EAAAw3J,sBAAqBt8J,GAAA8+J,kBAiSZh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GAElG,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBA/RlCh6J,EAAAw3J,sBAAkBt8J,GAAUw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAY,YAAAlpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAEvC,wBAAA9rB,EAAAw3J,sBAAAt8J,GAAA8+J,oBAiSYh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ;AA7RvKwuI,EAAYzuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,iBAEA,GAAZ15J,EAAAw3J,sBAAYt8J,GAAAq/J,QACZv6J,EAAWw3J,sBAAAt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GACXsuI,GAAcvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,aAwStB,IAAIE,GAhSe,CAiSf16J,GAAG82J,gBAAgB37J,OAAS,IAC5Bu/J,GAhSe16J,EAAAm0J,QAAAQ,eAAc9oI,WAAA7rB,EAAA82J,gBAAA,GAAArmH,YAAA,KAAA3kB,QAAA,GAiS7BsuI,GAAsBvuI,WAAW6uI,IAIrC16J,EAAGm0J,QAAQiG,SAAWA,EAAStuI,QAAQ,GACvC9rB,EAAGm0J,QAAQO,cAAgB4F,EAAmBxuI,QAAQ,GACtD9rB,EAAGm0J,QAAQ1pI,WAhSKoB,WAAa7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAO,eAAA7oI,WAAA7rB,EAAAm0J,QAAAiG,WAAAtuI,QAAA,GAsTjC,QAASgvI,GAAwBF,EAAcj1G,GAC3C,GAAI20G,GAAqB,EACrBF,EAAW,CAEf,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAC+B,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAE0B,iBAAlD/5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OACzCx2J,EAAGw3J,sBAAsBt8J,GAAGy8J,gBAAiB,EAE7C33J,EAAGw3J,sBAAsBt8J,GAAGu8J,cAAiB5rI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAG6/J,YAEzH/6J,EAAGw3J,sBAAsBt8J,GAAGs/J,UAAa3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eAAiB5rI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,IAK1JH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eAC7F2C,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAK7Dx6J,EAAGw3J,sBAAsBt8J,GAAGy8J,gBAAiB,EAE7C33J,EAAGw3J,sBAAsBt8J,GAAGs/J,UAAa3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw8J,SAAW7rI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,IAEpJH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw8J,SAE7F0C,GAhSWvuI,WAAY7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAsSnCx6J,GAAGm0J,QAAQiG,SAhSIA,EAAYtuI,QAAA,GAiS3B9rB,EAAGm0J,QAAQO,cAAgB4F,EAAmBxuI,QAAQ,GACtD9rB,EAAGm0J,QAAQ1pI,WAhSKzqB,EAAAm0J,QAAAQ,eAAA30J,EAAAm0J,QAAAO,cAAA10J,EAAAm0J,QAAAiG,UAAAtuI,QAAA,GAmSpB,QAAS6uI,GAhSiBC,EAAAj1G,GAkStB,IAAK,GAAIzqD,KAAK8E,GAAGw3J,sBA9RZx3J,EAAAw3J,sBAAAt8J,GAAA2/J,aAAAD,GAC6B,GAA3B56J,EAAQw3J,sBAAmBt8J,GAAA6+J,WAC3BpkK,QAAAgwD,GACQ3lD,EAAAw3J,sBAAOt8J,GAAAy+J,YAAA,EACf35J,EAAAw3J,sBAAgBt8J,GAAA0+J,WAAA,EAChB55J,EAAAw3J,sBAAsBt8J,GAAA2+J,cAAA,GAkS0C,iBAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAC9Cx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA/RnD55J,EAAAw3J,sBAA4Bt8J,GAAU2+J,cAAA,GAE9B,YAAA75J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,OAiSGx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EA/RjD35J,EAAAw3J,sBAAYt8J,GAAA0+J,WAAA,EACZ55J,EAAWw3J,sBAAAt8J,GAAA2+J,cAAA,GAEA,cAAA75J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,QACXx2J,EAAAw3J,sBAAct8J,GAAAy+J,YAAA,EAiSN35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,IAO/D,QAASkK,KAEL,GAAI1I,GAEArY,IAEJ,KAAK,GAAI9nJ,KAhSG8E,GAAGw3J,sBAiSX,GAA4C,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,SAAe,CAE3C,GAhSIsK,GAAA,EAiSAC,EAAO,CAE2C,kBAAlDtkK,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OA/RzC6N,EAAIrkK,EAAAw3J,sBAAAt8J,GAAAq+J,SAiSJ+K,EAhSItkK,EAAAw3J,sBAAAt8J,GAAAs+J,WAkSmD,YAAlDx5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,MA/RnD8N,EAAUtkK,EAAKw3J,sBAAAt8J,GAAAu+J,QAkS6C,cAAlDz5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QAC9C6N,EAAOrkK,EAAGw3J,sBAAsBt8J,GAAGu1C,WA/R1C6zH,EAAAtkK,EAAAw3J,sBAAAt8J,GAAAw+J,iBAqSG2B,GACIR,YAAe76J,EAAGw3J,sBAAsBt8J,GAAG2/J,YA/RlDl1G,KAAA3lD,EAAgBw3J,sBAASt8J,GAAA47C,aAAA0/G,MAiSlBuE,WAAcsJ,EA/RtB5zH,WAAYzwC,EAAAw3J,sBAAAt8J,GAAAu/J,cACZzlE,OAAWsvE,EACX9J,UAAWx6J,EAAAw3J,sBAAAt8J,GAAAs/J,WAGXxX,EAAQnrJ,KAAAwjK,GAIZ,GAAG2F,IACA7uJ,UAAQA,EACRrc,UAAQ+/J,EACR/xG,WAAQ9jD,EAAAm0J,QAAapwG,iBAAAD,WAiSpBiD,OAAQ/mD,EAAGg4J,kBAAkBh4J,EAAGg4J,kBAAkB78J,OAAS,GAAGslJ,aAAa15F,OA/R5EirE,YAAQhyH,EAAAm0J,QAAcniC,YACtB8iC,WAAQ90J,EAAAm0J,QAAaW,WAiSpBL,kBAAmBz0J,EAAGm0J,QAAQM,kBA/R/BwF,cAAQj6J,EAAAm0J,QAAiB8F,cACzBC,mBAAqBl6J,EAAAm0J,QAAA+F,mBACrBC,eAAQn6J,EAAAm0J,QAAAgG,eAiSPnX,iBAAkBrmJ,KAAKqkB,UAAUgiI,GACjC0R,cAAe10J,EAAGm0J,QAAQO,cAC1BjqI,UAAWzqB,EAAGm0J,QAAQ1pI,UA/R1BpE,QAAA,OACIzwB,OAAQ,IAiSRke,UAhSO0/I,EAAAnzJ,OAmSXg2J,GAhSsCmF,2BAAoBwF,GAAAviK,KAAA,SAAAC,GAiSlDA,EAAIhJ,KAhSIke,aAAW,GAiSnB7b,EAhSW2I,YAAQ,UAAahC,EAAAhJ,KAAAme,QAAmB,yBAiSnD7T,EAAGgT,YAhSQ,EAiSXd,MAGAna,EAhSQ2I,YAAc,QAAGhC,EAAUhJ,KAAAme,QAAA,yBAiSnC7T,EAAGgT,YAhSa,IAkSrB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,iCAIxC,QAAS0zH,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAhSQ,EAiSX/S,EAAGm0J,WAIP,QAASngJ,KACLhU,EAAGgT,YAAa,EAChBhT,EAAGm0J,WAGP,QAAS1B,KA/RTz4J,EAAS8F,GAAA,gCAAiBhK,UAAA+/J,EAAA5/J,OAAA,4BAAAC,UAAA,KAmS1B,QAhSO8kK,GAAQloJ,GAKX,GAJA9S,EAAG+S,WAAQ,EAEX/S,EAAGm0J,QAAQ//J,QAAA8e,KAAaJ,GAErB9S,EAAAgmD,aACA,IAAA,GAAQ9qD,KAAA8E,GAAAgmD,aACR,GAAQhmD,EAAAgmD,aAAA9qD,GAAA4oD,aAAqB9jD,EAAAm0J,QAAArwG,WAAA,CACrB9jD,EAAAm0J,QAAApwG,iBAAiB/jD,EAAAgmD,aAAA9qD,EAEnB,KAAQ,GAAA0U,KAAA5P,GAAA6xF,SAkSG7xF,EAAG6xF,SAASjiF,GAAG4iF,QAAUxyF,EAAGm0J,QAAQ3hE,SAEpCxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAASjiF,GAxRzD,IAAAsnJ,IACA/kJ,UAAAA,EACArc,UAAA+/J,EACA/xG,WAAA9jD,EAAsBm0J,QAAGpwG,iBAAeD,WAiS/BsvG,eAAgBpzJ,EAAGm0J,QAAQf,eA7RhCkD,GAAYgB,6BAAAJ,GAAAz4J,KAAA,SAAA84J,GAiSP,GAA4B,MAAxBA,EAAa/gK,OAAgB,CAG7B,GAFAwJ,EAAGw3J,sBAAwBD,EAAa7hK,KAEpCsK,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CA9RrC6E,EAACq4J,oBAAsB,CAEpC,KAAkB,GAAAn9J,KAAA8E,GAAWw3J,sBAkSZx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EA/R1Cv5J,EAAAw3J,sBAAAt8J,GAAAs+J,UAAA,EACVx5J,EAAAw3J,sBAAAt8J,GAAAu+J,QAAA,EAiSaz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EA/RpDzwC,EAAAw3J,sBAAuBt8J,GAAAw+J,gBAAA,EAC7B15J,EAAAw3J,sBAAwCt8J,GAAA47C,aAAA92C,EAAAu2J,kBAAA,GACpCv2J,EAAAw3J,sBAAsCt8J,GAAAy+J,YAAS,EAiSlC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA/RjD55J,EAAAw3J,sBAAyBt8J,GAAA2+J,cAAqB,CAGzC9F,GAAA/zJ,EAAAm0J,QAAApwG,iBAAyBD,WAAqB,SAAAvlD,GACnD,GAAAyB,EAAAg4J,kBAAyB,CAEpB,GAAAhyI,IACL7T,UAAyBA,EAiSRrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQrwG,WA/R1B8vG,YAAW,WAiSR7sG,OAAQj0C,EAAIi0C,OA7RrBqvG,GAAyB6E,iCAAyBj1I,GAAAvnB,KAAA,SAAAC,GAiSzC,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IA/RjD,IAAsBylK,GAAgBx+J,KAASC,MAAAoD,EAAYm0J,QAAAiH,iBAiSnC3C,EAAQ,EA5RjC,KAAyB,GAAAv9J,KAAA8E,GAAag4J,kBAAe,CAClCh4J,EAAAg4J,kBAAc98J,GAAAg9J,YAAyBv7J,KAAAC,MAAAoD,EAAAk7J,oBAAAhgK,GAAA+xD,UAiSjC,KAAK,GAAI9iD,KAAKnK,GAAGg4J,kBAAkB98J,GAAGg9J,YAC9Bl4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GAAG48C,QAAUo0G,EAAmB,QAAUv0J,SAAS1L,GAAK,GAAGiI,cA/RtGnD,EAAAg4J,kBAAsB98J,GAAAulJ,aAAczgJ,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAGKxU,SAA1CqK,EAAAg4J,kBAAoB98J,GAAAulJ,eAiShBgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,MA9RjJroB,EAAsBm0J,QAAG9rI,KAAAowI,CAEpB,IAAA4C,GAAyB1+J,KAAAC,MAAAoD,EAAqBm0J,QAAAnR,iBAkS9B,IAAIhjJ,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CA3RrC,GAAAm/J,GAAyB,EAC/BF,EAAc,CAkSR,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAEb,GAA4C,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,SAAe,CAE3C,GAAIuB,GAAQ9gK,EAAOyC,OAAOo+J,GAAeR,YAAe76J,EAAGw3J,sBAAsBt8J,GAAG2/J,aA9RpH,IAAAS,EAAAngK,OAAA,EAAA,CAE6B,IAAW,GAAGgP,KAAAnK,GAAAu2J,kBAC1Bv2J,EAAAu2J,kBAAApsJ,GAAAqsJ,OAAA8E,EAAA,GAAA31G,OAiS2B3lD,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkBpsJ,GA5R1E,kBAAAnK,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,OAkSMx2J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW+B,EAAM,GAAGP,WAEK,gBAAjD/6J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAElF,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,IAGnJwuI,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAEpD,GAArCx5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GACpKsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAAY1uI,QAAQ,IAGlG9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA/RnD55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,GAElC,YAAA75J,EAAAw3J,sBAAAt8J,GAAA47C,aAAA0/G,OAEyBx2J,EAAAw3J,sBAAAt8J,GAAAu+J,QAAA6B,EAAA,GAAAtmE,OAkSoBslE,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,UAAU3tI,QAAQ,GA9RnH,GAAA9rB,EAAAw3J,sBAAAt8J,GAAAq/J,QAiSOv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAAW5tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GA/RzKsuI,GAAcvuI,WAAQuuI,GAAevuI,WAAc7rB,EAAAw3J,sBAAyBt8J,GAAAs/J,YAAA1uI,QAAA,IAmSzE9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GA9RE,cAA7D75J,EAAsBw3J,sBAAct8J,GAAA47C,aAAyB0/G,QAkS7Cx2J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa6qH,EAAM,GAAGP,WAEG,gBAAjD/6J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBA/R/Eh6J,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAkSyG,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBA/RjCh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAW7tI,WAAc7rB,EAAAm0J,QAAAY,YAAyBlpI,WAAA7rB,EAAkBw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAEvD,wBAAvC9rB,EAAAw3J,sBAAct8J,GAAA8+J,oBAiShBh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,IAGnKwuI,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,kBAAkB5tI,QAAQ,GAE/E,GAArC9rB,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAmB7tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GA/RnMsuI,GAAAvuI,WAAAuuI,GAAAvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAAA1uI,QAAA,IAmSqB9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA/RhD55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,IA+CV,GAAGa,GAAa,CACX16J,GAAA82J,gBAAA37J,OAAA,IAiSCu/J,GAAiB7uI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAG82J,gBAAgB,GAAGrmH,YAAc,KAAK3kB,QAAQ,GA/RxHsuI,GAAavuI,WAASuuI,GAAcvuI,WAAA6uI,IAAA5uI,QAAA,IAmSrC9rB,EAAGm0J,QAAQiG,SAAWA,EACtBp6J,EAAGm0J,QAAQO,cAAgB4F,EAC3Bt6J,EAAGm0J,QAAQ1pI,WAAaoB,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQO,eAAiB7oI,WAAW7rB,EAAGm0J,QAAQiG,WAAWtuI,QAAQ,UAjR3K9rB,EAAAsS,WAAA,IAEF,SAAA3R,GACC5I,EAAW2I,YAAA,QAAiB,mBAAA,oBA6X5CV,EAAGgT,YAAa,EAGpB,QAASuoJ,GAAmBzoJ,GAExB,GAAIH,GAAUtY,EAAQsY,QAhSM,UAiSxB,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WAEhBuB,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,EAE1B,IAAIkT,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAYhxC,EAAIgxC,WAChBiD,OAAQj0C,EAAIi0C,OACZirE,YAAa,EACb8iC,WAAY,EACZL,kBAAmB,EACnBwF,cAAe,EACfC,mBAAoB,EACpBC,eAAgB,EAChBnX,iBAAkB,GAClB0R,cAAe,EACfjqI,UAAW,EACXpE,QAAS,SACTzwB,OAAQ,IACRke,UAAW,EAGfuiJ,GAAuCmF,2BAhSyBx1I,GAAAvnB,KAAkB,SAAGC,GAiS7EA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAhSQhC,EAAAhJ,KAAQme,QAAO,yBAiS9C7T,EAAGgT,YAAa,EAChBd,MAGAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,mCA1oC5C,GAAIV,GAAKC,IA7RTD,GAAGqU,kBAAUhJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACbrL,EAAGsU,SAAQtU,EAAAqU,gBAAc,EAEzBrU,GAAGuU,YAAQ,EACXvU,EAAGwU,qBAAuB,SAAAC,GACvBzU,EAAAuU,YAAQE,GA0SXzU,EAAGg7J,iBAAmBA,EACtBh7J,EAAGu7J,mBAAqBA,EAExBv7J,EAAGyyJ,SAAWA,EACdzyJ,EAAGo0H,OAASA,EACZp0H,EAAGgU,OAASA,EACZhU,EAAG+zJ,UAAYA,EACf/zJ,EAAGs4J,mBAAqBA,EACxBt4J,EAAG04J,gBAAkBA,EACrB14J,EAAGq6J,gBAAkBA,EAErBr6J,EAAG86J,wBAA0BA,EAC7B96J,EAAG26J,2BAA6BA,EAEhC36J,EAAG+jK,wBAA0BA,EAE7B/jK,EAAGm0J,WAEHn0J,EAAGm0J,QA/RKwE,YAAY,EAgSpB34J,EAAGm0J,QA/RKniC,YAAW,EAgSnBhyH,EAAGm0J,QA/RKQ,eAAQ,EAgShB30J,EAAGm0J,QA/RKyE,QAAa,EAgSrB54J,EAAGm0J,QA/RKW,WAAW,EAgSnB90J,EAAGm0J,QAAQY,WAAa,EACxB/0J,EAAGm0J,QA/RCa,mBAAA,EAgSJh1J,EAAGm0J,QA/RKM,kBAAmB,EAgS3Bz0J,EAAGm0J,QAAQ8F,cA/RI,EAgSfj6J,EAAGm0J,QAAQ+F,mBA/RgB,EAgS3Bl6J,EAAGm0J,QAAQgG,eAAiB,EAE5Bn6J,EAAGgT,YA/RK,EAgSRhT,EAAGsS,WAAY,EACftS,EAAG+S,WAAY,EACf/S,EAAG8zJ,oBACH9zJ,EAAGq4J,oBAAqB,CAExB,IAAIlmJ,GA/RIhY,EAAWgG,uBAAAwU,gBAAAxC,UAgSf0jJ,EA/RY77J,EAAAvE,OAAAK,UAgSZ69J,EA/RI35J,EAAavE,OAAAM,OAgSjBy9J,EAAar5J,EAAsBgG,sBACvCH,GAAGm5J,qBA/RCA,EAgSJn5J,EAAGo5J,aA/RaA,EAgShBp5J,EAAG82J,mBAEH5kJ,kZArEJ9d,QACKC,OAAO,gDACPe,WAAW,sCAAuCgvK,MAspC3D,WACI,YAOA,SAASG,GAA+B95J,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,EAAuByX,EAAwB0tJ,EAAiC5L,EAA+B0C,EAA4BxrF,GAmDtQ,QAASnmD,GAAcquI,GAGnB,GAAItxI,GAAW,IAEX6gJ,IAEJ,KAAK,GAAInnK,KAAK8E,GAAGg4J,kBACTh4J,EAAGg4J,kBAAkB98J,GAAGulJ,eACxB4hB,EAAiB,QAAUz7J,SAAS1L,GAAK,IAAM8E,EAAGg4J,kBAhSkB98J,GAAAulJ,aAAW15F,OAoSvF,IAAIu7G,GAAqB,KACrBC,EAAiB,KACjBC,IAEJ,IAA8C,OAA1CxiK,EAAGm0J,QAAQyM,kBAAkBC,UAAoB,CACjDyB,EAAqBtiK,EAAGm0J,QAAQ4M,wBAAwBj9G,WACxDy+G,EAAiBviK,EAAGqhK,yBAAyBrhK,EAAGqhK,yBAAyBlmK,OAAS,GAAGmmK,oBAAoBv6G,MAEzG,KAAK,GAAI7rD,KAAK8E,GAAGqhK,yBACTrhK,EAAGqhK,yBAAyBnmK,GAAGomK,sBAC/BkB,EAAwB,QAAU57J,SAAS1L,GAAK,IAAM8E,EAAGqhK,yBAAyBnmK,GAAGomK,oBAAoBv6G,QAKrH,GAOIgvG,KAJAkM,cAAetlK,KAAKqkB,UAAUhhB,EAAG+hK,yBACjCL,cAAe/kK,KAAKqkB,UAAUhhB,EAAGuhK,wBAIjCvL,QAASh2J,EAAGm0J,QAAQ6B,QACpB7jJ,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxCiD,OAAQ/mD,EAAGg4J,kBAAkBh4J,EAAGg4J,kBAAkB78J,OAAS,GAAGslJ,aAAa15F,OAC3Eq0G,gBAAiBz+J,KAAKqkB,UAAUqhJ,GAChCjP,eAAgBpzJ,EAAGm0J,QAAQyM,kBAAkB7nJ,GAC7Cy5E,OAAQxyF,EAAGm0J,QAAQ+E,mBAAmB1mE,OACtCivE,YAAa,GACbX,kBAAmBwB,EACnBG,cAAeF,EACfpB,uBAAwBxkK,KAAKqkB,UAAUwhJ,GACvCzJ,WAAY/4J,EAAGm0J,QAAQ4E,WACvBF,WAAY74J,EAAGm0J,QAAQ0E,WACvBF,YAAa34J,EAAGm0J,QAAQwE,YACxBG,iBAAkB94J,EAAGm0J,QAAQ2E,iBAC7BF,QAAS54J,EAAGm0J,QAAQyE,QACpB+I,aAAc3hK,EAAGm0J,QAAQyN,mBAAmB7oJ,GAC5C8oJ,cAAe7hK,EAAGm0J,QAAQ2N,wBAAwB/oJ,GAClDnjB,OAAQ4rB,EACR6E,QAAS,OACTvS,UAAW0/I,EAAWnzJ,OACtBmkK,iBAAkBxkK,EAAGm0J,QAAQqQ,mBAG7BpmK,EAAW,GAAIH,SAGnBG,GAASF,OAAO,YAAavB,KAAKqkB,UAAU+0I,IAQ5CK,EAA2B4M,4BAA4BjN,GAAWt3J,KAAK,SAAUC,GAC1D,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,oCAAqC,qBACvE4b,EAAkBrN,SAGlBlX,EAAW2I,YAAY,QAhSS,wBAiS5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAhSQ,QAAY,wBAiS3BrJ,WAAW,EACX+F,KAAM,SAxIlB,GAAI4C,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBAIHxkB,EAAGykB,cAAgBA,CAEnB,IAAItS,GAAYhY,EAAsBgG,uBAAuBwU,gBAhSexC,UAiSxEqhJ,EAAar5J,EAAsBgG,uBAGnC01J,EAAe77J,EAAOvE,OAAOK,SACfkE,GAAOvE,OAAOM,MA6HhCiK,GAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,sSApJlCnpB,QACKC,OAAO,0CACPe,WAAW,iCAAkCmvK,MAuJtD,WACI,YAOA,SAASE,GAA2Bh6J,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASJ,EAASD,EAAQkzC,EAAiB2uH,EAA8B6I,EAA+BvqK,GAwC3K,QAAS+X,KAEL,GAAI6jJ,IACA5jJ,UAAWA,EACXqlB,WAAY,GAGhBx3B,GAAG2kK,aAAgB5rJ,GAAM,IAAK6rJ,IAAO,WAAc7rJ,GAAM,EAAG6rJ,IAAO,YAAe7rJ,GAAM,EAAG6rJ,IAAO,cAAiB7rJ,GAAM,EAAG6rJ,IAAO,aACjI7rJ,GAAM,EAAG6rJ,IAAO,WAAc7rJ,GAAM,EAAG6rJ,IAAO,aAAgB7rJ,GAAM,EAAG6rJ,IAAO,WAEhFF,EAA8BG,uBAAuB9O,GAAWt3J,KAAK,SAAUC,GAC3E,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8kK,qBAAuBpmK,EAAIhJ,IAE9B,IAAIswB,IACA7T,UAAWA,EACXkU,QAAS,UACTg2I,UAAW,EAGfR,GAA6BS,oBAAoBt2I,GAAWvnB,KAAK,SAAU89J,GACnD,MAAhBA,EAAK/lK,SACLwJ,EAAGw8J,YAAcD,EAAK7mK,KACtBsK,EAAGy8J,gBACHz8J,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDgkK,EAA8BK,aAAa5yJ,GAAW1T,KAAK,SAAU4hK,GAC7C,MAAhBA,EAAK7pK,SACLwJ,EAAGglK,UAAY3E,EAAK3qK,KACpBsK,EAAGsS,WAAY,IA9R5B,SAAa3R,GAiSJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDgkK,EAA8BO,oBAAoB9yJ,GAAW1T,KAAK,SAAUo4J,GA/RtD,MAAhBA,EAAArgK,SACVwJ,EAAAklK,aAAArO,EAAAnhK,KAiSYsK,EAAGsS,WAAY,IAEpB,SAAU3R,GA/Rd5I,EAAU2I,YAAa,QAAA,mBAAA,oBAEtBV,EAAAsS,WAAY,IAkSjB,SAhSK3R,GAiSJ5I,EAhSI2I,YAAgB,QAAA,mBAAA,oBAoS5B,QAAS+8J,GAhSGpB,EAAmB99J,GAkS3B,GAAIynB,IACA7T,UAhSIA,EAiSJkU,QAhSI,WAiSJg2I,UAhSIA,EAmSRr8J,GAAGmlK,KAhSK7H,iBAAQ,KAiShBt9J,EAAGy8J,gBAEHZ,EAA6BS,oBAAoBt2I,GAAWvnB,KAAK,SAAUC,GA/RvE,MAAAA,EAAAlI,SACIwJ,EAAAy8J,aAAa/9J,EAAAhJ,KAiSbsK,EAAGsS,WAhSY,EAEX/T,GAiSAA,MAET,SAhSSoC,GAiSR5I,EAhSW2I,YAAA,QAAa,mBAAA,oBAoShC,QAAS0kK,GAAgBC,EAAY9mK,GAEf,MAAd8mK,GAAoC1vK,QAAd0vK,GACtBrlK,EAAGslK,SAAU,EACbtlK,EAAGulK,SAAU,EACbvlK,EAAGwlK,QAAS,EA/RfxlK,EAAAylK,OAAA,GAmSqB,GAAdJ,GAhShBrlK,EAAAslK,SAAA,EACYtlK,EAAAulK,SAAA,EACIvlK,EAAAwlK,QAAA,EAkSAxlK,EAAGylK,OAAQ,GA/RlB,GAAAJ,GACIrlK,EAAAylK,OAAA,EACNzlK,EAAWslK,SAAA,EACXtlK,EAAAulK,SAAa,EACbvlK,EAAYwlK,QAAA,GAoSgB,GAAdH,GACLrlK,EAAGwlK,QAAS,EACZxlK,EAAGslK,SAAU,EAhStBtlK,EAAAulK,SAAgB,EAkSPvlK,EAAGylK,OAAQ,GA/RN,GAAAJ,GAuSc,GAAdA,IACLrlK,EAAGslK,SAAU,EACbtlK,EAAGulK,SAAU,EACbvlK,EAAGwlK,QAAS,EACZxlK,EAAGylK,OAAQ,GAmBvB,QAASrxC,KACLp0H,EAAGmlK,QACHnlK,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfb,IAGJ,QAAS8B,KACLhU,EAAGgT,YAAa,EAGpB,QAAS0yJ,GAASP,GAEd,GAAIQ,EA9RgC,IAApC3lK,EAAKmlK,KAAIS,iBAAQP,WACbM,GAmSQ5sJ,GAAM/Y,EAAGmlK,KAAKS,iBAAiBP,WAC/Bv+G,QA/RRg3G,UAAqB7jK,EAAA,QAAA+F,EAAAmlK,KAAArH,UAAA,SACrBC,QAAiB9jK,EAAA,QAAA+F,EAAAmlK,KAAApH,QAAA,WAIe,GAAhC/9J,EAAAmlK,KAAAS,iBAAwBP,YAGmB,GAAtCrlK,EAAAmlK,KAAIS,iBAAQP,YAoS2B,GAAvCrlK,EAAGmlK,KAAKS,iBAAiBP,YAGc,GAAvCrlK,EAAGmlK,KAAKS,iBAAiBP,UAIlC,IAjSItP,IACA8P,cAAe,EAkSf1zJ,UAAWA,EACXqlB,WAAY,GAhSZ6kI,UAAAr8J,EAAYmlK,KAAA9H,gBAAAhB,UACZgC,WAAYr+J,EAAAmlK,KAAQ7H,iBAAAe,WACpBgH,WAAWrlK,EAAAmlK,KAAAS,iBAAAP,WACXS,UAAWnpK,KAAAqkB,UAAA2kJ,GACXt/I,QAAA,OACAvS,UAAWJ,EAAArT,OAqSfqkK,GAjSiBqB,2BAAAhQ,GAAAt3J,KAAA,SAAAC,GACbA,EAAAhJ,KAAAke,aAAmB,IACnB5T,EAAAsS,WAAe,EACftS,EAAAgT,YAAA,EACAjb,EAAe2I,YAAQ,UAAAhC,EAAAhJ,KAAAme,QAAA,wBACvB3B,MAmSD,SAjSCvR,GACA5I,EAAS2I,YAAW,QAAA,mBAAA,0BAqU5B,QAjSO+xJ,KAmSHz4J,EAAO8F,GAAG,YAjRd,GAAIE,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAMf/S,EAAGgU,OAASA,EACZhU,EAAGy9J,eAAiBA,EACpBz9J,EAAGolK,gBAAkBA,EAErBplK,EAAG0lK,SAAWA,EACd1lK,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAAY,EACftS,EAAGyyJ,SAAWA,CACd,IAAItgJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEuB,EAAcvZ,EAAsBgG,sBAKxCH,GAAGy8J,gBACHz8J,EAAGmlK,QAEHjzJ,6LAzCJ9d,QACKC,OAAO,sCACPe,WAAW,6BAA8BqvK,MA2RlD,WAGI,YAMA,SAASuB,GAAwBv7J,EAAQxQ,EAASF,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAcsnC,EAA4Bl0J,EAAgBD,EAAc4D,EAjStKD,EAAStb,EAA2B+rK,EAAmC9P,EAA0BiJ,EAAiBhJ,GAgX9G,QAASnkJ,KAEL,GAAIi0J,IACAh0J,UAAWA,EACXi0J,gBAlSe,GAqSnBH,GAlSuBI,sBAAqBF,GAAA1nK,KAAoB,SAAA6nK,GAmS5D,GAAuB,MAAnBA,EAAQ9vK,OAAgB,CAjSxBwJ,EAAGumK,UAAYD,EAAA5wK,IAEpB,IAAAswB,IACCwgJ,UAAW,aAoSPP,GAA2BQ,gCAAgCzgJ,GAAWvnB,KAAK,SAAUioK,GAC5D,MAAjBA,EAAMlwK,SAjSjBwJ,EAAA2mK,eAA0BD,EAAUhxK,KAEzBswB,EAAAwgJ,UAAA,WACDP,EAAAQ,gCAAAzgJ,GAAAvnB,KAAA,SAAAmoK,GACF,MAAAA,EAAApwK,QACEwJ,EAAA6mK,aAAAD,EAAAlxK,KAoSSswB,EAAUwgJ,UAAY,gBAjStCP,EAAmBQ,gCAAAzgJ,GAAAvnB,KAAA,SAAAqoK,GACT,MAAAA,EAAAtwK,QAmScwJ,EAAG+mK,kBAAoBD,EAAOpxK,KAhSlCswB,EAAAwgJ,UAAA,mBACEP,EAAAQ,gCAAAzgJ,GAAAvnB,KAAA,SAAAuoK,GACP,MAAAA,EAAAxwK,QAmSiBwJ,EAAGinK,qBAAuBD,EAAWtxK,KAhSjEswB,EAAAwgJ,UAAA,YAmS4BP,EAA2BQ,gCAAgCzgJ,GAAWvnB,KAAK,SAAUyoK,GAjS3G,MAAAA,EAAA1wK,QACkBwJ,EAAAmnK,cAAoBD,EAAAxxK,KAoSRswB,EAAUwgJ,UAAY,WACtBP,EAA2BQ,gCAAgCzgJ,GAAWvnB,KAAK,SAAU2oK,GAjS1F,GAAA,MAAAA,EAAA5wK,OAAA,CAmSawJ,EAAGqnK,aAAeD,EAAY1xK,IAhSrE,IAAA4xK,IACAn1J,UAAAA,EACDo1J,UAAA,OACD3xK,OAAA,IAGUswK,GAAAsB,qCAAAF,GAAA7oK,KAAA,SAAAgpK,GACJ,MAAAA,EAAAjxK,SACAwJ,EAAA0nK,aAAAD,EAAA/xK,KACDkpI,IACD5+H,EAAAsS,WAAA,IAEW,SAAA3R,GACX5I,EAAA2I,YAAA,QAAA,mBAAA,wBAsSqC3I,GAAW2I,YAAY,QAAS,yBAA0B,aAhSpF,SAAAC,GACV5I,EAAA2I,YAAA,QAAA,mBAAA,eAGD3I,EAAA2I,YAAA,QAAA,yBAAA,aAEW,SAAAC,GAmSc5I,EAAW2I,YAAY,QAAS,mBAAoB,eAIxD3I,EAAW2I,YAAY,QAAS,yBAA0B,aAhS7E,SAAAC,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,eAsSW3I,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eAIxD3I,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAG7D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA/R3DV,EAAAsS,WAAS,IAGX,SAAA3R,GACH5I,EAAA2I,YAAA,QAAA,mBAAA,oBAsTJ,QAASinK,GAAOC,EAAMrpK,GAClB,GAAI8kG,GAAM,GAAI5pF,MAEVouJ,EAlSQxkE,EAAK9qD,cAAiB,EAmS9BuvH,EAASzkE,EAAI0kE,aACbC,EAAU3kE,EAAI4kE,iBAGdC,EAAgBN,EAAKrvH,cACrB4vH,EAlSaP,EAAAG,aAmSbK,EAAeR,EAAKK,iBAEpBI,EAlSQL,EAAKI,EAAiB,CAoS9BP,IAAYK,GACRJ,GAAUK,IAjSdE,GAAY,GAEZA,EAAW,IACXroK,EAAAsoK,QAAAC,IAAY,GACZvoK,EAAAsoK,QAAWE,WAAQ,GACnBzwK,EAAA2I,YAAoB,QAAA,iCAAiB,uBAGrCV,EAAAsoK,QAASC,IAAAF,EAoST9pK,GACAA,IAGR,QAlSQqgI,GAAargI,GAmSjB,GAAImf,EAEJ1d,GAAG8V,eACH9V,EAAGsoK,QAlSK7rH,oBAAA,KAoSRz8C,EAlSGuW,aAmSHvW,EAAGsoK,QAlSC3xJ,cAAuB,KAoS3B3W,EAAG+W,YACH/W,EAAGsoK,QAAQrxJ,aAAe,KAE1BjX,EAAG4V,YACH5V,EAAGsoK,QAAQ/oJ,aAAe,KAE1Bvf,EAAGyoK,sBACHzoK,EAAGsoK,QAAQI,2BAA6B,KAExC1oK,EAAG2oK,oBACH3oK,EAAGsoK,QAAQM,qBAAuB,KAElC5oK,EAAG6oK,mBACH7oK,EAAGsoK,QAAQQ,oBAAsB,KAEjC9oK,EAAG+oK,mBACH/oK,EAAGsoK,QAAQU,oBAAsB,KAEjCj3J,EAAe6lC,cAAc79C,EAAOhC,EAAY2lB,GAAYjf,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGyoK,mBAAqB/pK,EAAIhJ,KAG5BsK,EAAGsS,WAAY,GAEf/T,GACAA,KAKL,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAASuoK,GAAUC,EAAc3qK,GAG7B,GAFAyB,EAAGmpK,aACHnpK,EAAGsoK,QAAQc,cAAgB,KACvBF,EAAc,CAhSjB,GAAAljJ,IAmSOjN,GAAImwJ,EACJ1C,UAAW,QAGfP,GAA2BQ,gCAAgCzgJ,GAAWvnB,KAAK,SAAUiB,GAlSjG,MAAAA,EAAAlJ,QACYwJ,EAAAmpK,UAAAzpK,EAAAhK,KAqSY6I,GAlSfA,KAqSWxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eA9RhE,QAAG2oK,GAAuBC,EAAUvwJ,EAAKxa,GACrC,GAAGynB,KAqSH,IAAkB,iBAAdsjJ,EAA+B,CAG/BtpK,EAAGi4J,aAAc,EACjBj4J,EAAGggK,oBAAqB,EAlSzBhgK,EAAAupK,iBAAM,EAENvjJ,GACI7T,UAAMA,EAoSLrc,UAAWijB,EACXwuJ,UAAW+B,GAGfpD,EAA+BsD,wCAAwCxjJ,GAAWvnB,KAAK,SAAUC,GAC1E,MAAfA,EAAIlI,SACJwJ,EAAGypK,mBAAqB/qK,EAAIhJ,KAlS/BsK,EAAAsS,WAAA,EAqSO/T,GAlSRA,MAET,SAAYoC,GACZ5I,EAAa2I,YAAA,QAAA,mBAAA,wBAGb,cAAA4oK,IACAvV,EAAA,QAAuBh7I,EAAAxa,EAAA,WACvBA,GACAA,MAEAyB,EAAAi4J,aAAA,GAuSH,QAASlE,GAAUwT,EAAWmC,EAAanrK,GAlSvC,GAAa,SAAbgpK,EAAa,CACb,GAAAvG,IACD7uJ,UAAaA,EACb2xC,WAAgB4lH,EAChB5zK,UAAkBkK,EAAAsoK,QAAAzmJ,gBAAA/rB,UACdu/G,aAAe,EAGnB+gD,GAAY2B,mBAAAiJ,GAAAviK,KAAA,SAAAC,GACZ,GAAY,MAAAA,EAAAlI,OAAA,CACZwJ,EAAcg4J,kBAAAt5J,EAAAhJ,IAEd,IAAAi0K,IACYx3J,UAAAA,EACZrc,UAAqBkK,EAAAsoK,QAAAzmJ,gBAAA/rB,UACrBguD,WAAkB4lH,EACTnC,UAAA,OACI5hH,KAAA,IAGA05G,GAAAuK,6BAAAD,GAAAlrK,KAAA,SAAAiB,GACF,GAAA,MAAAA,EAAAlJ,OAAA,CACAwJ,EAAA6pK,gBAAAnqK,EAAAhK,IACD,IAAAo0K,GAAAtvK,EAAAyC,OAAA+C,EAAA6pK,iBAAAx0D,aAAA,GAEC,KAAA,GAAAn6G,KAAA8E,GAAAg4J,kBACA,GAAA98J,EAoSkB8E,EAAGg4J,kBAAkB98J,GAAGg9J,YAAc4R,EAEtC9pK,EAAGg4J,kBAAkB98J,GAAGg9J,cAG5B35J,IAlSRA,MAEZ,SAAiBoC,GAoSL5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAhSpDnC,GACLA,MAqSJ,SAnSKoC,GAoSJ5I,EAnSI2I,YAAW,QAAA,mBAAA,qBAwS3B,QAAS43J,GAAmByR,EAAcnK,GAEtC,GAnSgB,MAmSZmK,EAEA,GAAInK,EAAQ5/J,EAAGg4J,kBAnSQ78J,OAAe,CAoSlC,GAAIsmG,MAEAuoE,EAnSYxvK,EAAAyC,OAAA+C,EAAA6pK,iBAA2Bx0D,aAAA00D,GAoS3CtoE,GAAYA,EAnSQr0C,OAAI48G,GAsSxBhqK,EAAGg4J,kBAAkB4H,GAnSG1H,YAAUz2D,EAoSlCzhG,EAAGg4J,kBAAkB4H,GAnSGnf,aAAA,KAoSxBzgJ,EAAGupK,iBAAkB,MAGjBvpK,GAAGg4J,kBAAkB78J,QAnSOykK,GAoS5BqK,EAAgBF,OAKxB,KAAK,GAAI7uK,KAAK8E,GAAGg4J,kBACT98J,GAAM0kK,EAAQ,EACd5/J,EAAGg4J,kBAAkB98J,GAAGulJ,aAAe,KAEjCmf,EAAQ,EAAK1kK,IACnB8E,EAAGg4J,kBAAkB98J,GAAGulJ,aAAe,KACvCzgJ,EAAGg4J,kBAAkB98J,GAAGg9J,gBAQxC,QAAS+R,GAAgB1R,EAASh6J,GAE9B,GAAIynB,IACA7T,UAAWA,EACXrc,UAAWkK,EAAGsoK,QAAQzmJ,gBAAgB/rB,UACtCixD,OAAQwxG,EAGZv4J,GAAGsoK,QAAQ3P,YAAc,GACzB34J,EAAGsoK,QAAQ4B,gBAAkB,GAC7BlqK,EAAGsoK,QAAQ6B,gBAAkB,GAC7BnqK,EAAGsoK,QAAQ8B,qBAAuB,GAGlChU,EAA2BiU,gCAAgCrkJ,GAAWvnB,KAAK,SAAUC,GAC9D,MAAfA,EAAIlI,SACJwJ,EAAGi5J,mBAAqBv6J,EAAIhJ,KAExBsK,EAAGi5J,mBAAmB99J,OAAS,IAE/B6E,EAAGsoK,QAAQ3P,YAAc34J,EAnSGi5J,mBAAW,GAAAN,YAoSvC34J,EAAGsoK,QAAQ4B,gBAAkBlqK,EAAGi5J,mBAAmB,GAAGiR,gBACtDlqK,EAAGsoK,QAAQ6B,gBAnSYnqK,EAAAi5J,mBAAe,GAAAkR,gBAoStCnqK,EAAGsoK,QAAQ8B,qBAnSapqK,EAAWi5J,mBAAqB,GAAAmR,sBAqS5DpqK,EAAGsS,WAAY,EAEX/T,GACAA,MAGT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAAS0V,GAAwBC,EAAWc,GACxCnX,EAAGuW,aACHvW,EAAGsoK,QAnSQ3xJ,cAAe,KAqS1B3W,EAAG+W,YACH/W,EAAGsoK,QAAQrxJ,aAAe,KAE1BjX,EAAG4V,YACH5V,EAAGsoK,QAAQ/oJ,aAAe,KAjStBlJ,GAoSAvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGuW,UAAY7X,EAAIhJ,KAlSpBsK,EAAAuW,UAAYpb,OAAA,EACTd,EAAS8C,OAAA,UAAA,0BAAA6C,EAAAsoK,QAAA7rH,oBAAA/lC,aAoSHrf,WAAW,EACX+F,KAAM,OAGN+Z,GACAA,IAGRnX,EAAGsS,WAAY,IAjSxB,SAAS3R,GACJ5I,EAAA2I,YAAA,QAAA,mBAAA,yBAwSZ,QAAS4pK,GAA+Bj0J,EAAWc,GAlS/CnX,EAAA2oK,oBACA3oK,EAAAsoK,QAAIM,qBAAa,KAqSjB5oK,EAAG6oK,mBACH7oK,EAAGsoK,QAAQQ,oBAAsB,KAjSjC9oK,EAAA+oK,mBACA/oK,EAAAsoK,QAAIU,oBAAoB,KAEpB3yJ,GAoSAvE,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GAlS/C,MAAZA,EAAYlI,SACRwJ,EAAA2oK,iBAAUjqK,EAAAhJ,KACVsK,EAAA2oK,iBAAYxtK,OAAA,EAoSJd,EAAQ8C,OAAO,UAAW,0BAA4B6C,EAAGsoK,QAAQI,2BAA2BhyJ,aAlSzFrf,WAAA,EACJ+F,KAAM,OAsSD+Z,GACAA,IAhShBnX,EAAAsS,WAAA,IAqSG,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAKhE,QAnSOkW,GAAQC,EAAsBM,GAoSjCnX,EAAG+W,YAlSH/W,EAAGsoK,QAAArxJ,aAAY,KAqSfjX,EAAG4V,YAlSH5V,EAAGsoK,QAAA/oJ,aAAW,KAqSV1I,GAlSDnB,EAAWoB,iBAAAD,GAAApY,KAAA,SAAAC,GACY,MAAfA,EAAAlI,SAoSCwJ,EAAG+W,SAAWrY,EAAIhJ,KAlS3BsK,EAAA+W,SAAqB5b,OAAA,EACbd,EAAA8C,OAAA,UAA6B,yBAAA6C,EAAAsoK,QAAA3xJ,cAAAK,WAoSpB3f,WAAW,EAlS5B+F,KAAmB,OAGnB+Z,GACQA,IAGAnX,EAAAsS,WAAA,IAEX,SAAe3R,GACP5I,EAAI2I,YAAgB,QAAA,mBAAA,yBAwShC,QAAS6pK,GAnSkB1zJ,EAAAM,GAoSvBnX,EAAG6oK,mBACH7oK,EAAGsoK,QAnSKQ,oBAAU,KAqSlB9oK,EAAG+oK,mBACH/oK,EAAGsoK,QAAQU,oBAAsB,KAE7BnyJ,GAlSDnB,EAAUoB,iBAAKD,GAAApY,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,SAoSHwJ,EAAG6oK,gBAAkBnqK,EAAIhJ,KACrBsK,EAAG6oK,gBAAgB1tK,OAAS,EAC5Bd,EAAQ8C,OAAO,UAAW,yBAA2B6C,EAAGsoK,QAAQM,qBAAqB5xJ,WAlStF3f,WAAc,EACd+F,KAAA,OAsSK+Z,GAlSAA,IAsSRnX,EAAGsS,WAAY,IAjSvB,SAAA3R,GACI5I,EAAW2I,YAAW,QAAK,mBAAA,yBAwSvC,QAAS8e,GAnSUpI,EAAAD,GAoSfnX,EAAG4V,YACH5V,EAAGsoK,QAAQ/oJ,aAAe,KAEtBnI,GACA3B,EAAYgK,gBAAgBrI,GAAQ3Y,KAAK,SAAUC,GAC5B,MAAfA,EAAIlI,SACJwJ,EAAG4V,SAAWlX,EAAIhJ,KACdsK,EAAG4V,SAASza,OAAS,EAlShCd,EAAiB8C,OAAA,UAAgB,yBAAU6C,EAAAsoK,QAAArxJ,aAAA8G,UAChC1mB,WAAA,EAoSI+F,KAAM,OAGN+Z,GAlSbA,IAsSKnX,EAAGsS,WAAY,IAEpB,SAnSC3R,GACA5I,EAAW2I,YAAA,QAAA,mBAAA,yBAwSvB,QAAS8pK,GAnS2BpzJ,EAAAD,GAoShCnX,EAAG+oK,mBACH/oK,EAAGsoK,QAAQU,oBAnSgB,KAqSvB5xJ,GACA3B,EAnSYgK,gBAAArI,GAAA3Y,KAAA,SAAAC,GAoSW,MAAfA,EAAIlI,SAlSTwJ,EAAA+oK,gBAAerqK,EAAAhJ,KACdsK,EAAW+oK,gBAAY5tK,OAAS,EAoSxBd,EAAQ8C,OAAO,UAAW,yBAA2B6C,EAAGsoK,QAAQQ,oBAAoB/qJ,UAChF1mB,WAAW,EAlStB+F,KAAc,OAGX+Z,GAoSQA,IAGRnX,EAAGsS,WAAY,IAjStB,SAAU3R,GACX5I,EAAa2I,YAAS,QAAA,mBAAA,yBAwS9B,QAAS+pK,GAnSGC,EAAcnsK,GAuStB,GAHAyB,EAAG4rC,mBACH5rC,EAAGsoK,QAAQt6H,oBAAsB,KAE7B08H,EAnSY,CAoSZ,GAAI1kJ,IACAjN,GAAI2xJ,EACJlE,UAnSQ,aAsSZP,GAnSwBQ,gCAAAzgJ,GAAAvnB,KAAA,SAAAiB,GACD,MAmSfA,EAnSIlJ,QAoSJwJ,EAAG4rC,gBAnSOlsC,EAAAhK,KAqSN6I,GAlSJA,KAqSAxG,EAnSW2I,YAAA,QAAkB,yBAAO,aAqSzC,SAAUC,GACT5I,EAAW2I,YAnSU,QAAQ,mBAAmB,eAwS5D,QAASsT,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsoK,WACHtoK,EAAGypK,sBACHzpK,EAAGg4J,qBACHh4J,EAAGsoK,QAAQqC,WAnSK,EAoShB3qK,EAAGivC,cAAgB,KACnBjvC,EAAG4qK,cAAa,EAQpB,QAASx2C,KACLp0H,EAAGgT,YAAa,EAlSpBhT,EAAA+S,WAAS,EAoSL/S,EAAGsoK,WAlSHtoK,EAAAivC,cAAI,KAoSJjvC,EAAG4qK,cAAa,EAGpB,QAASnY,KAELz4J,EAAO8F,GAnSC,yBAuSZ,QAAS+qK,GAnSMC,GAqSX,GAAIC,GAAc5wK,EAAsBgG,uBAEpC6qK,GACAC,aAnSQjrK,EAAAsoK,QAAgB2C,aAoSxBC,UAAWlrK,EAAGsoK,QAAQ4C,UACtBC,WAAYnrK,EAAGsoK,QAAQ6C,YAhSvBC,GAoSAx5H,SAnSQ5xC,EAAAsoK,QAAM12H,SAoSdG,SAnSQ/xC,EAAGsoK,QAAAv2H,SAoSX17B,UAA6C1gB,QAAlCqK,EAAGsoK,QAAQ7rH,oBAAmCz8C,EAAGsoK,QAAQ7rH,oBAAoBpmC,UAAY,KACpGQ,QAnS8BlhB,QAArBqK,EAAAsoK,QAAK3xJ,cAAgB3W,EAAAsoK,QAAA3xJ,cAAAE,QAAA,KAoS9BO,OAnSgCzhB,QAAxBqK,EAAGsoK,QAAArxJ,aAAoCjX,EAAAsoK,QAAArxJ,aAAAG,OAAA,KAoS/Ca,OAnSgCtiB,QAAxBqK,EAAGsoK,QAAA/oJ,aAAmCvf,EAAAsoK,QAAA/oJ,aAAAtH,OAAA,KAoS9Ck7B,SAAUnzC,EAAGsoK,QAAQn1H,SACrBk4H,OAAQrrK,EAAGsoK,QAAQ+C,OACnBC,QAAStrK,EAAGsoK,QAAQgD,SAGpBC,GACAt/H,YAAajsC,EAAGsoK,QAAQr8H,YAlShCu/H,mBAA4C71K,QAAnBqK,EAAAsoK,QAASmD,yBAAUzrK,EAAAsoK,QAAAmD,yBAAA1yJ,GAAA,KAoSpC2yJ,WAA2C/1K,QAA/BqK,EAAGsoK,QAAQqD,iBAAgC3rK,EAAGsoK,QAAQqD,iBAAiB5yJ,GAAK,KAlSxF2zB,cAAY/2C,QAAAqK,EAAAsoK,QAAAt6H,oBAAAhuC,EAAAsoK,QAAAt6H,oBAAAj1B,GAAA,KACZ6yJ,OAAA5rK,EAAWsoK,QAAAsD,OACXh6H,SAAA5xC,EAAWsoK,QAAGuD,gBACd95H,SAAQ/xC,EAAAsoK,QAAAwD,gBAoSRz1J,UAAoD1gB,QAAzCqK,EAAGsoK,QAAQI,2BAA0C1oK,EAAGsoK,QAAQI,2BAA2BryJ,UAAY,KAClHQ,QAA4ClhB,QAAnCqK,EAAGsoK,QAAQM,qBAAoC5oK,EAAGsoK,QAAQM,qBAAqB/xJ,QAAU,KAlSnGO,OAAsBzhB,QAAdqK,EAAAsoK,QAAAQ,oBAAc9oK,EAAAsoK,QAAAQ,oBAAA1xJ,OAAA,KACtBa,OAA0BtiB,QAAlBqK,EAAAsoK,QAAAU,oBAAkBhpK,EAAAsoK,QAAAU,oBAAA/wJ,OAAA,MAsSzB8zJ,GACAC,SAAUvhK,EAAOwhK,OAAOD,SAlS5BE,SAAAzhK,EAAAwhK,OAA2BC,UAsSvB7J,IAEJ,KAAK,GAAInnK,KAAK8E,GAAGg4J,kBACTh4J,EAAGg4J,kBAnSY98J,GAAAulJ,eAoSf4hB,EAnSe,QAAAz7J,SAAqB1L,GAAA,IAAA8E,EAAAg4J,kBAAsB98J,GAAAulJ,aAAA15F,OAwSlE,IAAIolH,IACAC,gBAnSQpsK,EAAAsoK,QAAA+D,sBAAAC,SAoSRx2K,UAnSQkK,EAAAsoK,QAAAzmJ,gBAAA/rB,UAoSRy2K,OAAQ5vK,KAAKqkB,UAAU+qJ,GACvBjoH,WAAY9jD,EAAGsoK,QAAQkE,uBAAuB1oH,WAlS/CiD,OAAA/mD,EAAUg4J,kBAAKh4J,EAAAg4J,kBAAA78J,OAAA,GAAAslJ,aAAA15F,OACdq0G,gBAAWz+J,KAAAqkB,UAAqBqhJ,GAoShCxyH,QAAS7vC,EAAGsoK,QAAQz4H,SAGpB+zF,GACA6oC,UAAWzsK,EAAG+S,UAAY/S,EAAGsoK,QAAQmE,UAAY,EAlSzDt6J,UAASA,EACFu6J,IAAA5B,EAAY6B,YACZC,UAAQ9B,EAAgB8B,UAoSvBl7H,IAAKo5H,EAAatC,WAlSnBD,IAAAuC,EAAWvC,IACXx0H,OAAuBp+C,QAAfm1K,EAAA/2H,OAAe+2H,EAAA/2H,OAAA,KAoStBC,cAA6Cr+C,QAA9Bm1K,EAAa92H,cAA6B82H,EAAa92H,cAAgB,KAlSvF64H,WAAW/B,EAAA+B,WACXC,aAAuBn3K,QAAfm1K,EAAeiC,mBAAAjC,EAAAiC,mBAAAh0J,GAAA,KAoStBi0J,aAAcrwK,KAAKqkB,UAAUgqJ,GAlS7BiC,WAAWt3K,QAAAm1K,EAAAoC,iBAAApC,EAAAoC,iBAAAn0J,GAAA,KACXo0J,YAA4Cx3K,QAA/Bm1K,EAAAsC,kBAA8CtC,EAAKsC,kBAAAr0J,GAAA,KAoShEs0J,QAnS4B13K,QAApBm1K,EAAI1B,cAAgB0B,EAAA1B,cAAArwJ,GAAA,KAoS5Bu0J,aAnSWxC,EAAgBH,UAAA,EAAA,EAoS3Bte,qBAnSe1vJ,KAAUqkB,UAAYoqJ,GAoSrCmC,kBAnSY5wK,KAAQqkB,UAAOuqJ,GAoS3Be,SAnS2B32K,QAmSjBm1K,EAnSMuB,sBAAWvB,EAAAuB,sBAAAtzJ,GAAA,KAoS3BozJ,gBAnSgBxvK,KAAMqkB,UAAAmrJ,GAoStBt8H,QAASi7H,EAAaj7H,QACtB29H,QAASzC,EAnSM1qK,OAoSfgmB,QAAS,OACTvS,UAAWi3J,EAnSK1qK,QAuShBjC,EAAW,GAAIH,SACnBG,GAnSOF,OAAA,YAAevB,KAAAqkB,UAAA4iH,IAoStBxlI,EAnSQF,OAAA,aAAW8B,EAAYytK,YAqS/BxH,EAA2ByH,aAAatvK,GAAUK,KAAK,SAAUC,GAE1C,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,WAlSlC7b,EAAA2I,YAAA,UAA+BhC,EAAAhJ,KAAWme,QAAU,WACtD7T,EAAAsS,WAAmB,EACnBJ,IAoSKkiH,KAjSLr8H,EAAQ2I,YAAA,QAAsBhC,EAAAhJ,KAAAme,QAAA,UAoS9B,SAAUlT,GAlSV5I,EAAA2I,YAAkB,QAAA,8BAAA,WAySzB,QAASysC,KACLntC,EAAGotC,iBAnSgB,EAqSvB,QAAS5uB,GAAariB,GAElB,GAAI6T,GAAS,GAAIS,WACjB,IAAKzQ,EAAGotC,gBAID,CAEHptC,EAAGytK,WAAatxK,EAAMsN,OAAOiE,MAAM,GACnCsC,EAnSGU,OAAUjG,EAAKiU,cAoSlB1O,EAnSIa,cAAW7Q,EAAAytK,WAUhB,IAAArvK,GAAQ,GAAAH,SAEPG,GAASF,OAAA,aAAA8B,EAAAytK,YACTrvK,EAAAF,OAAY,YAAiB8B,EAAAsoK,QAASmE,WAqStCruK,EAnSQF,OAAG,gBAAe8B,EAAA2tK,eAqS1B1H,EAnS2B2H,iBAAWxvK,GAAAK,KAAA,SAA8BC,GACpD,MAmSRA,EAAIlI,QACJuB,EAnSQ2I,YAAM,UAAAhC,EAAAhJ,KAAAme,QAAA,WAoSd3B,KAEAna,EAnSQ2I,YAAU,QAAA,yBAAA,UAqSvB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,yBAA0B,eAhC9DV,GAAGytK,WAnSatxK,EAAAsN,OAAUiE,MAAA,GAoS1BsC,EAAOU,OAnSSjG,EAAAiU,cAoShB1O,EAAOa,cAAc7Q,EAAGytK,YA0ChC,QAASI,GAAU/6J,GAef,GAjTA9S,EAAG+S,WAAA,EACH/S,EAAGgT,YAAQ,EAoSXhT,EAAGsoK,QAAUl0K,QAAQ8e,KAAKJ,GAO1B9S,EAAGsoK,QAAQqE,YAnSS,GAAAlzJ,MAAWzZ,EAAAsoK,QAAAoE,KAoS/B1sK,EAAGsoK,QAAQE,WAnSS,GAAM/uJ,MAAAzZ,EAAAsoK,QAAA52H,KAIN,MAmShB1xC,EAAGsoK,QAAQwE,cAnSKn3K,QAAAqK,EAAAsoK,QAAAwE,aAoShB,IAAK,GAAI5xK,KAAK8E,GAAG2mK,eACT3mK,EAAG2mK,eAAezrK,GAAG6d,IAAM/Y,EAAGsoK,QAAQwE,eAlStC9sK,EAAGsoK,QAAAyE,mBAAY/sK,EAAA2mK,eAAAzrK,GAuS3B,IAA6B,MAAzB8E,EAAGsoK,QAAQ2E,YAA+Ct3K,QAAzBqK,EAAGsoK,QAAQ2E,WAC5C,IAAK,GAAI/xK,KAAK8E,GAAG6mK,aACT7mK,EAAG6mK,aAAa3rK,GAAG6d,IAAM/Y,EAAGsoK,QAAQ2E,aACpCjtK,EAAGsoK,QAAQ4E,iBAAmBltK,EAAG6mK,aAAa3rK,GAI1D,IAA8B,MAA1B8E,EAAGsoK,QAAQ6E,aAAiDx3K,QAA1BqK,EAAGsoK,QAAQ6E,YAlS7C,IAAA,GAAQjyK,KAAA8E,GAAAmnK,cAEAnnK,EAAAmnK,cAAejsK,GAAK6d,IAAA/Y,EAAAsoK,QAAA6E,cACpBntK,EAAGsoK,QAAA8E,kBAAeptK,EAAAmnK,cAAAjsK,GAqSlB+tK,EAnSIjpK,EAAQsoK,QAAO6E,YAAW,WAoS1B,GAnSe,MAAXntK,EAAAsoK,QAAW+E,SAAA13K,QAAAqK,EAAAsoK,QAAA+E,QACX,IAAA,GAAMx1J,KAAA7X,GAAAmpK,UAoSEnpK,EAAGmpK,UAAUtxJ,GAAGkB,KAAO/Y,EAAGsoK,QAAQ+E,UAlS3CrtK,EAAAsoK,QAAAc,cAAAppK,EAAAmpK,UAAAtxJ,MA0Sf/E,GAnSG26J,aAoSHztK,EAAGqtC,cAnSYrtC,EAAAivC,cAAqBl3C,EAAA8D,SAAoB,oBAAAiX,EAAA26J,WAoSxDztK,EAAG2tK,cAAgB76J,EAAI26J,WA/R/B,IAAAzC,GAASruK,KAAAC,MAAAoD,EAAAsoK,QAA2B0E,aAChChtK,GAAGsoK,QAAA2C,aAAkBD,EAAAC,aACrBjrK,EAAGsoK,QAAQ4C,UAAAF,EAAsBE,UAoSjClrK,EAAGsoK,QAAQ6C,WAAaH,EAAWG,UAEnC,IAnSI2C,GAAYnxK,KAAAC,MAAAoD,EAAgBsoK,QAAQjc,qBAqSxCrsJ,GAAGsoK,QAAQ12H,SAnSIk8H,EAAkBl8H,SAoSjC5xC,EAAGsoK,QAAQv2H,SAnSQ+7H,EAAA/7H;AAqSnB,IAAK,GAAI72C,KAAK8E,GAAG8V,YACT9V,EAAG8V,YAnSS5a,GAAMmb,WAAAy3J,EAAAz3J,YAoSlBrW,EAAGsoK,QAAQ7rH,oBAAsBz8C,EAAG8V,YAAY5a,GAChDkb,EAnSW03J,EAAAz3J,UAAA,WAoSP,IAnSI,GAAIwB,KAAA7X,GAAAuW,UACAvW,EAAAuW,UAAAsB,GAAAhB,UAAAi3J,EAAAj3J,UAoSA7W,EAAGsoK,QAAQ3xJ,cAAgB3W,EAAGuW,UAAUsB,GAjS7CjB,EAAYk3J,EAAAj3J,QAAA,WAoSH,IAAK,GAAIgB,KAAK7X,GAAG+W,SAlSnB/W,EAAA+W,SAAAc,GAAAT,SAAA02J,EAAA12J,SACSpX,EAAAsoK,QAASrxJ,aAAAjX,EAAoB+W,SAAAc,GAqS5B2H,EAAoBsuJ,EAAY12J,OAAQ,WACpC,IAAK,GAAIS,KAAK7X,GAAG4V,SACT5V,EAAG4V,SAASiC,GAAGI,SAAW61J,EAAY71J,SAlSvCjY,EAAAsoK,QAAA/oJ,aAAAvf,EAAA4V,SAAAiC,YAqT3C7X,GAAGsoK,QAAQn1H,SAAW26H,EAAY36H,SAClCnzC,EAAGsoK,QAnSI+C,OAAUyC,EAAKzC,OAoStBrrK,EAAGsoK,QAnSKgD,QAAWwC,EAAYxC,OAqS/B,IAAIyC,GAAgBpxK,KAAKC,MAAMoD,EAAGsoK,QAAQiF,kBAE1CvtK,GAAGsoK,QAAQr8H,YAAc8hI,EAAc9hI,WAjSvC,KAAG,GAAA/wC,KAAA8E,GAAainK,qBACbjnK,EAAAinK,qBAAY/rK,GAAA6d,IAAAg1J,EAAAvC,qBACZxrK,EAAAsoK,QAAUmD,yBAAAzrK,EAAAinK,qBAAA/rK,GAKb,KAAG,GAAAA,KAAA8E,GAAaqnK,aAoSRrnK,EAAGqnK,aAAansK,GAAG6d,IAAMg1J,EAAcrC,aACvC1rK,EAAGsoK,QAAQqD,iBAAmB3rK,EAAGqnK,aAAansK,GAE9CuvK,EAAesD,EAAcrC,WAAY,WACrC,IAAK,GAAI7zJ,KAAK7X,GAAG4rC,gBACT5rC,EAAG4rC,gBAAgB/zB,GAAGkB,KAAOg1J,EAAcrhI,gBAC3C1sC,EAAGsoK,QAAQt6H,oBAAsBhuC,EAAG4rC,gBAAgB/zB,MAQxE7X,GAAGsoK,QAAQuD,gBAAkBkC,EAAcn8H,SAlS/C5xC,EAAAsoK,QAASwD,gBAAUiC,EAAAh8H,QAEf,KAAA,GAAO72C,KAAG8E,GAAAyoK,mBAoSyB9yK,QAA3Bo4K,EAAc13J,WAAqD,MAA3B03J,EAAc13J,WAClDrW,EAAGyoK,mBAAmBvtK,GAAGmb,WAAa03J,EAAc13J,YACpDrW,EAAGsoK,QAAQI,2BAA6B1oK,EAAGyoK,mBAAmBvtK,GAE9DovK,EAA+ByD,EAAc13J,UAAW,WAlShE,GAAoC1gB,QAAtBo4K,EAAAl3J,SAAsB,MAAAk3J,EAAAl3J,QAoSpB,IAAK,GAAIgB,KAAK7X,GAAG2oK,iBAlSpB3oK,EAAA2oK,iBAAA9wJ,GAAAhB,UAAAk3J,EAAAl3J,UACI7W,EAAQsoK,QAAAM,qBAAA5oK,EAAA2oK,iBAAA9wJ,GAsSD0yJ,EAA4BwD,EAAcl3J,QAAS,WAC/C,GAA4BlhB,QAAxBo4K,EAAc32J,QAA+C,MAAxB22J,EAAc32J,OAlSlE,IAAA,GAAAS,KAAA7X,GAAA6oK,gBACI7oK,EAAA6oK,gBAAAhxJ,GAAAT,SAAA22J,EAAA32J,SACApX,EAAAsoK,QAAAQ,oBAAA9oK,EAAA6oK,gBAAAhxJ,GAEgB2yJ,EAAuBuD,EAAc32J,OAAU,WACjD,GAAoCzhB,QAAxBo4K,EAAW91J,QAAsB,MAAA81J,EAAA91J,OACjC,IAAG,GAAAJ,KAAQ7X,GAAA+oK,gBACrC/oK,EAAA+oK,gBAAAlxJ,GAAAI,SAAA81J,EAAA91J,SACFjY,EAAAsoK,QAAAU,oBAAAhpK,EAAA+oK,gBAAAlxJ,YAkTvB7X,GAAGsoK,QAnSCsD,OAAWmC,EAAQnC,OAoSvB5rK,EAAGsoK,QAAQ0F,eAAiBD,EAAcC,cAG1C,IAnSIC,GAAUtxK,KAAOC,MAAOoD,EAAAsoK,QAAA6D,gBAqS5B,KAAK,GAAIjxK,KAAK8E,GAAG+mK,kBACT/mK,EAAG+mK,kBAAkB7rK,GAAG6d,IAAM/Y,EAAGsoK,QAAQgE,WAlS7CtsK,EAAAsoK,QAAA+D,sBAAmBrsK,EAAA+mK,kBAAA7rK,GAuSvB,KAAK,GAnSGA,KAAA8E,GAAA0nK,aAoSA1nK,EAAG0nK,aAAaxsK,GAAGpF,WAAam4K,EAAcn4K,YAC9CkK,EAAGsoK,QAAQzmJ,gBAAkB7hB,EAAG0nK,aAAaxsK,GAE7CmuK,EAAiB,gBAAiB4E,EAAcn4K,UAAW,WAlS/D,IAAA,GAAA+hB,KAAkB7X,GAAAypK,mBAClBzpK,EAAiBypK,mBAAW5xJ,GAAAisC,aAAsBmqH,EAAAnqH,aACpC9jD,EAAAsoK,QAAQkE,uBAAgBxsK,EAAAypK,mBAAA5xJ,GACzBwxJ,EAAU,aAAA4E,EAAAnqH,WAAA,WAEZ,GAAAoqH,KACMA,GAAKvxK,KAAUC,MAAAqxK,EAAA7S,gBAqSZ,KAAK,GAAIplI,KAAKh2B,GAAGg4J,kBAAmB,CAChC,GAAImW,GAAM,QAAUvnK,SAASovB,GAAK,GAAG7yB,WAlSpDirK,EAAAF,EAAAC,EAEE,KAAA,GAAAE,KAAAruK,GAAAg4J,kBAAAhiI,GAAAkiI,YACOl4J,EAAAg4J,kBAAAhiI,GAAAkiI,YAAAmW,GAAAtnH,QAAAqnH,IACMpuK,EAAAg4J,kBAAAhiI,GAAAyqH,aAAAzgJ,EAAAg4J,kBAAAhiI,GAAAkiI,YAAAmW,IACN/V,EAAA8V,EAAAxnK,SAAAovB,GAAA,EAAA,qBAwT1B,QAASs4I,GAAYx7J,GAjSjB,GAAAH,GAAStY,EAAOsY,QAAa,UAC7B,4CAAiCtb,WAAA,EAAA+F,KAAA,MAEjCuV,GAAAjT,OAAAjB,KAAA,WAEI,GAAIs3J,IACA0W,UAAW35J,EAAA25J,UACXpmJ,QAAG,SAuSP4/I,GAnS2BsI,gBAAaxY,GAAct3J,KAAA,SAAAC,GACxC,MAAfA,EAAUlI,QACTuB,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAA,WAoSxB3B,IACAkiH,KAGAr8H,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gCA/RzD,SAAalT,GAoSN5I,EAAW2I,YAAY,QAAS,2BAA4B,cAjkC5E,GAAIV,GAAKC,IA/RTD,GAAAqU,kBAAYhJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACZrL,EAAGsU,SAAAtU,EAAcqU,gBAAA,EAoSjBrU,GAAGuU,YAlSI,EAmSPvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAOrBhK,EAAOqyF,IAAM,EAhSbryF,EAAG+jK,OAAS,SAAAC,GACThkK,EAAAqyF,IAAA2xE,GAGHhkK,EAAGikK,MAAW,SAAA/xE,GACX,MAAAlyF,GAASqyF,MAAAH,GAIZ38F,EAAAsoK,WAqSAtoK,EAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EAjSZp0H,EAAG+S,WAAA,EACH/S,EAAGgT,YAAO,EAmSVhT,EAAGipK,UAAYA,EAjSfjpK,EAAA4+H,YAAAA,EAmSA5+H,EAAGoW,wBAA0BA,EAC7BpW,EAAG4W,qBAAuBA,EAC1B5W,EAAGwf,oBAAsBA,EAjSzBxf,EAAAsqK,+BAAgBA,EAmShBtqK,EAAGuqK,4BAA8BA,EACjCvqK,EAAGwqK,2BAlSiBA,EAmSpBxqK,EAAGyqK,eAlSgBA,EAmSnBzqK,EAAG2nK,OAlSKA,EAmSR3nK,EAAG6qK,iBAAmBA,CAEtB,IAjSI14J,IADGhY,EAA2BgG,uBACnBhG,EAAqBgG,uBAAgBwU,gBAAyBxC,UAmS7EnS,GAAGytK,WAAa,KAChBztK,EAAG2tK,cAlSC,KAmSJ3tK,EAAGotC,iBAlSa,EAmShB3iC,EAAO+T,aAlSQA,EAmSfxe,EAAGmtC,WAAaA,EAChBntC,EAAGumK,aACHvmK,EAAGmpK,aACHnpK,EAAG6tK,UAAYA,EACf7tK,EAAGsuK,YAlSaA,EAoShBtuK,EAAGqpK,iBAAmBA,EACtBrpK,EAAG+zJ,UAlSSA,EAmSZ/zJ,EAAGs4J,mBAlSiBA,EAmSpBt4J,EAAGiqK,gBAlSiBA,EAmSpBjqK,EAAGyyJ,SAASA,EACZzyJ,EAAG4qK,cAAa,EAGhBngK,EAAOwhK,QACHD,SAAU,EACVE,SAAU,IACV/yI,SACIjyB,MAAO,EACPynK,KAAM,IACNpiK,KAAM,MAId2F,IA0GAzH,EAlSOuQ,MAAA,WAmSHvQ,EAAOwQ,OAAOpM,QAAS,GAG3BpE,EAAOwQ,QAjSHpM,QAAI,GAqSRpE,EAlSIyQ,MAAO,WAmSPzQ,EAlSI0Q,OAAAtM,QAAA,GAqSRpE,EAAO0Q,QACHtM,QAAQ,GAqoBZpE,EAAOiU,cAAgB,SAAUlR,GAC7B/C,EAAOe,OAAO,WACVxL,EAAGivC,cAAgBzhC,EAAE/D,OAAO/J,8VAlnCxCtL,QACKC,OAAO,mCACPe,WAAW,0BAAA4wK,MAk3CpB,WACI,YAOA,SAAS4I,GAA+BnkK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAczxF,EAAiBn7B,EACvH2D,EAAaD,EAAam1D,EAA8B8oF,EAA+B9hJ,EAAwBE,EAAc3X,GAiC7H,QAAS+X,KACLlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IACA7T,UAAWA,EACXvc,OAAQ,IAlSTg+J,YAAQ,WACR99J,UAAQ,EAqSX49J,GAA8BqL,6BAA6B/4I,GAAWvnB,KAAK,SAAUC,GACjF,GAAmB,MAAfA,EAAIlI,OAAgB,CAlSrBwJ,EAAAg/J,mBAAwBtgK,EAAAhJ,IAC3B,KAAS,GAAAwF,KAAQ8E,GAAAg/J,mBACTh/J,EAAGg/J,mBAAkB9jK,GAAA8xD,QAASrwD,KAAQC,MAAAoD,EAAAg/J,mBAAc9jK,GAAAkgK,iBACpDp7J,EAAGg/J,mBAAQ9jK,GAAA+jK,SAAwBtiK,KAAAC,MAAAoD,EAAeg/J,mBAAA9jK,GAAAm5J,UAIvDr0J,GAAAsS,WAAQ,IAqSZ,SAnSS3R,GAoSR5I,EAnSW2I,YAAQ,QAAA,mBAAsB,oBAwSjD,QAnSQqvG,GAASj9F,GAqSb9S,EAAGgT,YAnSY,EAoSfhT,EAAG+S,WAnSY,EAqSf/S,EAAGm0J,QAnSS//J,QAAA8e,KAAaJ,GAqSzB9S,EAAGg4J,kBAnSiBr7J,KAAKC,MAASoD,EAAGm0J,QAAAiH,iBAoSrCp7J,EAAGk/J,mBAnSqBviK,KAAIC,MAAGoD,EAAAm0J,QAAaE,WAuShD,QAASjgC,KAELp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAlSfb,IAwUJ,QAASugJ,KAEDz4J,EAAO8F,GAAG,gCAAiChK,UAAW+/J,EAAc5/J,OAAO,sBAAsBC,UAAU,KAhHnH,GAAI8J,GAnSIC,IAqSRD,GAAGqU,kBAnSqBhJ,MAAA,KAAiBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoSzCrL,EAAGsU,SAnSKtU,EAASqU,gBAAO,EAqSxBrU,GAAGuU,YAnSc,EAoSjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAnSCE,GA8SRzU,EAAG+vG,YAAcA,EACjB/vG,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAAY,EAEftS,EAAGyyJ,SAnSQA,CAoSX,IAAIoD,GAnSO77J,EAAAvE,OAAkBK,UAoSzB69J,EAAc35J,EAAOvE,OAAOM,OAC5Boc,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAM7ED,KA+CAlS,EAAGm/J,gBAAkB,SAAUrM,GAjS3B,GAAGtxI,EAEAA,GADQ,WAARsxI,EACQ,EAEP,CAEJ,IAAGU,GAAQr5J,EAAuBgG,uBAqS9B41J,GAlSJC,QAASh2J,EAAKm0J,QAAG6B,QACbpgK,OAAO4rB,EAoSPoyI,YAnSO,WAoSP9/I,UAnSI0/I,EAAAnzJ,OAsSRqzJ,GAnSuBuC,uBAA2BF,GAAUt3J,KAAA,SAAAC,GAoSrC,MAAfA,EAAIlI,SACJwJ,EAAGsS,WAnSS,EAoSZtS,EAAGgT,YAnSa,EAoSA,WAAZ8/I,EACA/6J,EAAW2I,YAnSY,UAAQ,wBAA2B,WAqS1D3I,EAAW2I,YAnSS,UAAA,wBAAgC,WAoSxDwR,MAEL,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wSAjHhEtM,QACKC,OAAO,0CACPe,WAAW,iCAAkCw5K,MA0HtD,WAEI,YAMA,SAnSQC,GAAqBpkK,EAAY1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA2gC,EAAAxtJ,EAAA3X,GA4SrC,QAAS20K,KAEL90K,EAAO8F,GAAG,uBAEd,QAnSSivK,KAqSL/0K,EAAO8F,GAnSC,wBAqRZ,GAAIE,GAAKC,IACTD,GAAG8uK,gBAnSKA,EAoSR9uK,EAAG+uK,iBAAmBA,gKAP1B36K,QACKC,OAAO,qCACPe,WAnSM,4BAA+By5K,MAwU9C,WAEI,YAQA,SAASG,GAA6Bj1K,EAnSMhC,EAASyC,EAAQH,EAAAL,EAAiBkzC,EAAAn7B,EAoS1E2D,EAAaD,EAAam1D,EAnSyBh5D,EAAmBE,EAAW3X,EAAsBklK,EAAAjJ,EAAA1C,GA2UvG,QAASxhJ,KACLlS,EAAGjK,OAAS49J,EAEZsb,EAAc,WAgBlB,QAASA,GAAcC,GAEnB,GAAIlpJ,GACAmpJ,GAAU,CAEI,YAAdD,GAEAlvK,EAAG2hB,eACH3hB,EAAGgmD,gBACHhmD,EAAGovK,mBACHpvK,EAAGqvK,gBAEHrpJ,GACI7T,UAAWA,EACXkjD,SAAUr/D,EACVuxK,UAAW2H,GAhSfC,GAAU,GAqSS,YAAdD,EAE6Bv5K,QAA9BqK,EAAGm0J,QAAQtyI,iBAlSX7hB,EAAAgmD,gBACAhmD,EAAAovK,mBACApvK,EAAAqvK,gBAqSArpJ,GACI7T,UAAWA,EAlSnBrc,UAAAkK,EAAAm0J,QAA2BtyI,gBAAgB9I,GACnCs8C,SAAIr/D,EACJuxK,UAAW2H,GAqSfC,GAnSI,GAsSJA,GAnSI,EAqSW,oBAAdD,EAjScv5K,QAAfqK,EAAAm0J,QAAUmb,kBAoSVtvK,EAAGovK,mBACHpvK,EAAGqvK,gBAEHrpJ,GACI7T,UAAWA,EACXrc,UAAWkK,EAAGm0J,QAAQtyI,gBAAgB9I,GACtC+qC,WAAY9jD,EAAGm0J,QAAQmb,iBAAiBv2J,GACxCs8C,SAAUr/D,EACVuxK,UAAW2H,GAjStBC,GAAA,EACTnvK,EAAAuvK,mBAAA,IAEAJ,GAAA,EACYnvK,EAAAuvK,mBAAA,GAuSmB,cAAdL,IAnSsCv5K,QAA9CqK,EAAAm0J,QAAAqb,0BACLxvK,EAAaqvK,gBAsSDrpJ,GAnST7T,UAAqBA,EACVrc,UAAGkK,EAAAm0J,QAAgBtyI,gBAAA9I,GACrB+qC,WAAA9jD,EAAAm0J,QAAAmb,iBAAAv2J,GACTq6I,eAAcpzJ,EAAAm0J,QAAAqb,yBAAAz2J,GACds8C,SAAuBr/D,EACnBuxK,UAAc2H,GAsSTC,GAAU,GAGVA,GAAU,GAIdA,GACA9P,EAA2BoQ,uCAAuCzpJ,GAAWvnB,KAAK,SAAUC,GAnSnF,MAAdA,EAAclI,SAEF,WAAA04K,EAqSKlvK,EAAG2hB,YAAcjjB,EAAIhJ,KAnS7B,YAAAw5K,EACOlvK,EAAAgmD,aAActnD,EAAAhJ,KACD,oBAAPw5K,EACTlvK,EAAAovK,gBAAsB1wK,EAAAhJ,KAqSC,cAAdw5K,IACLlvK,EAAGqvK,aAAe3wK,EAAIhJ,MAE1BsK,EAAGsS,WAAY,IAlS/B,SAAA3R,GACS5I,EAAO2I,YAAA,QAAA,mBAAA,oBAyShB,QApSQgvK,GAAa1b,GAwSjB,GAHAh0J,EAAG2vK,gBACH3vK,EAAGm0J,QAAQmb,iBAAmB,KAlSlB35K,QAARq+J,EAAwB,CAsSxB,GApSIiD,IAqSA9kJ,UApSOA,EAqSPrc,UApSOk+J,EAqSPuT,UAAWvxK,EAGfqpK,GApSmBoQ,uCAAAxY,GAAAx4J,KAAA,SAAAC,GAqSI,MAAfA,EAAIlI,SAnSbwJ,EAAU2vK,aAAKjxK,EAAAhJ,KACdsK,EAAWsS,WAAY,IAsSpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAMhE,QAASqzJ,GAAU6b,EAAWrxK,GAnS1B,GAAGqxK,EAAU,CAEV5vK,EAAAuvK,mBAAoB,EACpBvvK,EAAAi4J,aAAA,CAsSC,IAAI+I,IACA7uJ,UAAWA,EAnSd2xC,WAAS9jD,EAAAm0J,QAAAmb,iBAAAv2J,GAqSNjjB,UAAWkK,EAAGm0J,QAAQtyI,gBAAgB9I,GAnS3Cs8F,aAAa,EAuSZ+gD,GAA2B2B,mBAAmBiJ,GAAYviK,KAAK,SAAUC,GACrE,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpBwJ,EAAGg4J,kBAAoBt5J,EAAIhJ,KAEvBsK,EAAGg4J,kBAAkB78J,OAAS,EAnS1C6E,EAAAi4J,aAAA,EAEWj4J,EAAAi4J,aAAA,CAEX,KAAW,GAAA/8J,KAAA8E,GAAAg4J,kBAEX,GAAa,GAAA98J,EAAA,CAqSG,GAAIyuK,IAnSRx3J,UAAAA,EACQrc,UAAAkK,EAAAm0J,QAAAtyI,gBAAA9I,GACZ+qC,WAAA9jD,EAAAm0J,QAAAmb,iBAAAv2J,GACKq6I,eAAApzJ,EAAAm0J,QAAAqb,yBAAAz2J,GACF44E,SAAWi+E,EAqSFrI,UAAWvxK,EACX2vD,KAAM,IAjSnB05G,GAAYuK,6BAAAD,GAAAlrK,KAAA,SAAAiB,GACC,GAAA,MAAAA,EAAAlJ,OAAA,CACAwJ,EAAA6pK,gBAAAnqK,EAAAhK,IACD,IAAAo0K,GAAYtvK,EAAWyC,OAAA+C,EAAA6pK,iBAAyBx0D,aAAA,GAEhD,KAAA,GAAYn6G,KAAA8E,GAAAg4J,kBAC3B,GAAA98J,IAqS4B8E,EAAGg4J,kBAAkB98J,GAAGg9J,YAAc4R,EAI9C,IAAI+F,IACA19J,UAAWA,EAnS5Brc,UAAAkK,EAAAm0J,QAAAtyI,gBAAA9I,GAqSiB+qC,WAAY9jD,EAAGm0J,QAAQmb,iBAAiBv2J,GAnS1Dq6I,eAAiCpzJ,EAAAm0J,QAAWqb,yBAAqBz2J,GAqS/C44E,SAAUi+E,EACVrI,UAAWvxK,EACX2vD,KAAM,KAGV05G,GAA2BuK,6BAA6BiG,GAAYpxK,KAAK,SAAUqxK,GAnSvH,GAAA,MAAAA,EAAAt5K,OAAA,CAqS4CwJ,EAAG+vK,kBAAoBD,EAAQp6K,IAC/B,IAAIs6K,GAAmBx1K,EAAOyC,OAAO+C,EAAG+vK,mBAAqB16D,aAAgB,GApSzH,KAAA,GAAAn6G,KAAA8E,GAAAg4J,kBACY,GAAA98J,EACiC8E,EAAAg4J,kBAAA98J,GAAA+0K,eAAAD,EAGhChwK,EAAAg4J,kBAAA98J,GAAA+0K,iBAEajwK,GAAAupK,iBAAA,IAuSa,SAAU5oK,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAI7D,SAAUC,GApSvB5I,EAAA2I,YAAA,QAAA,mBAAA,uBA2SH,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm4J,iBACHn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGi4J,aAAc,EAIzB,QAASK,GAAmBC,EAASqH,EAAOrhK,GACxC,GAAIg6J,EAAS,CACT,GAAI2X,GAAa11K,EAAOyC,OAAO+C,EAAG6pK,iBAAmBx0D,aAAgBkjD,EAAS4X,UAAavQ,EAAQ,GAEnG,KAAK,GAAI1kK,KAAK8E,GAAGg4J,kBApSpB98J,GAAA0kK,IAsSW5/J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcgY,OAjS9C,KAAA,GAAAh1K,KAAA8E,GAAAg4J,kBACI98J,GAAA0kK,EAAA,EAuSI5/J,EAAGg4J,kBAAkB98J,GAAGulJ,aAAe,KAEjCmf,EAAQ,EAAK1kK,IArS9B8E,EAAAg4J,kBAA6B98J,GAAAulJ,aAAmB,KACxCzgJ,EAAAg4J,kBAAa98J,GAAAg9J,gBAM1B,QAAGkY,GAAcrG,EAAAnK,EAAArhK,GAEb,GAAGwrK,GAuSC,GAAInK,EAAQ5/J,EAAGg4J,kBAAkB78J,OAAQ,CACrC,GAAIsmG,KACJ,KAAK,GAAIvmG,KAAK6uK,GAAc,CArS3B,GAAAsG,GAAA71K,EAAAyC,OAAA+C,EAAA+vK,mBAAA16D,aAAA00D,EAAA7uK,GAAA6rD,QACV06C,GAAsBA,EAAAr0C,OAAAijH,GAGtBrwK,EAAAg4J,kBAAqB4H,GAAAqQ,eAAAxuE,EAuSZzhG,EAAGg4J,kBAAkB4H,GAAO0Q,oBAAsB,KArS3DtwK,EAAAupK,iBAA2B,OAI1B,KAAA,GAAAruK,KAAc8E,GAAOg4J,kBAuST98J,GAAM0kK,EAAQ,EArShB5/J,EAAAg4J,kBAAc98J,GAAAo1K,oBAAA,KAwSN1Q,EAAQ,EAAK1kK,IArShC8E,EAAAg4J,kBAAoB98J,GAAAo1K,oBAAA,KAuSPtwK,EAAGg4J,kBAAkB98J,GAAG+0K,mBAhSxC,QAAGM,GAAcrwC,GAEd,GAAAswC,GAAkBxwK,EAAAg4J,kBAAA78J,OAAA,CAwSjB,IAAwDxF,QAApDqK,EAAGg4J,kBAAkBwY,GAAe/vB,cAAwF9qJ,QAA3DqK,EAAGg4J,kBAAkBwY,GAAeF,oBAAkC,CArS/I,GAAAG,MACSntE,IAwSD,KAAK,GAAIpoG,KAAK8E,GAAGg4J,kBAAkBwY,GAAeF,oBArStDhtE,KAuSQA,GACIv8C,OAAQ/mD,EAAGg4J,kBAAkBwY,GAAeF,oBAAoBp1K,GAAG6rD,OACnEU,SAAUznD,EAAGg4J,kBAAkBwY,GAAeF,oBAAoBp1K,GAAGusD,SACrEwF,UAAWjtD,EAAGg4J,kBAAkBwY,GAAeF,oBAAoBp1K,GAAG+xD,UACtEooD,aAAcr1G,EAAGg4J,kBAAkBwY,GAAeF,oBAAoBp1K,GAAGm6G,aACzE86D,UAAWnwK,EAAGg4J,kBAAkBwY,GAAeF,oBAAoBp1K,GAAGi1K,WAE1EM,EAAQ54K,KAAKyrG,EAGjB,IAAIt9E,IACA7T,UAAWA,EACXrc,UAAWoqI,EAAer+G,gBAAgB9I,GAC1C+qC,WAAYo8E,EAAeovC,iBAAiBv2J,GAC5CwuJ,UAAWvxK,EArSd06K,WAAc1wK,EAAAg4J,kBAAYh4J,EAAAg4J,kBAAA78J,OAAA,GAAAslJ,aAAA15F,OAuSvB4pH,gBAAiBh0K,KAAKqkB,UAAUyvJ,GArSpC38J,UAAA0/I,EAAAnzJ,OAGAg/J,GAAyBuR,yCAAA5qJ,GAAAvnB,KAAA,SAAAC,GAuSjBA,EAAIhJ,KAAKke,aAAc,GArS5B7b,EAAc2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,eAAA7d,EAAA,UACdgK,EAAAgT,YAAe,EACfd,IACAlS,EAAAm0J,WAuSKn0J,EAAGg4J,uBAnSPjgK,EAAU2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eAAA7d,EAAA,UACVgK,EAAAgT,YAAW,IAwSZ,SAAUrS,GArSb5I,EAAU2I,YAAA,QAAA,kCA4SlB,QAAS0zH,KACLp0H,EAAGm0J,WAGP,QAAS1B,KArSO,YAsSRz8J,EACAgE,EAAO8F,GAtSC,gCAAUhK,UAAA+/J,EAAA5/J,OAAA,uBAAAC,UAAA,KA0SlB8D,EAAO8F,GAAG,gCAAkChK,UAAW+/J,EAAc5/J,OAAQ,4BAA6BC,UAAW,KAlY7H,GAAI8J,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAnSO,KAAAA,MAAA,KAA2BA,MAAA,MAoS3ErL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGm0J,WACHn0J,EAAG0vK,oBAAsBA,EACzB1vK,EAAG+zJ,UAAYA,EACf/zJ,EAAGivK,cAAgBA,EACnBjvK,EAAGs4J,mBAAqBA,EAExBt4J,EAAGowK,yBAA2BA,EAC9BpwK,EAAGuwK,qBAAuBA,EAC1BvwK,EAAGyyJ,SAAWA,CACd,IAAIoD,GAAe77J,EAAOvE,OAAOK,UAlS7B69J,EAAW35J,EAASvE,OAAAM,OAqSpBC,EAAUgE,EAAOvE,OAAOO,OAC5BgK,GAAGo0H,OAASA,EAEZp0H,EAAGuvK,mBAAoB,CAEvB,IAAIp9J,GAnSWhY,EAAqBgG,uBAAiBwU,gBAAUxC,UAoS3DqhJ,EAnSWr5J,EAAQgG,uBAoSnB01J,EAAe77J,EAAOvE,OAAOK,UAC7B69J,EAAc35J,EAAOvE,OAAOM,MAEhCiK,GAAG2hB,eACH3hB,EAAG2vK,gBACH3vK,EAAGovK,mBACHpvK,EAAGqvK,gBAEHn9J,IA8IAlS,EAAGupK,iBApSgB,uTAwGvBn1K,QACKC,OAAO,mCACPe,WAAW,+BAAgC45K,MA8YpD,WAGI,YAMA,SAAS6B,GAtSsBpmK,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAS,EAAA4kK,EAAAz0F,EAAAwrF,EAAAj8J,EAAAu5J,EAAA4L,GAmV3B,QAASptJ,KAGLlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IArSR7T,UAASA,EACFrc,UAAA+/J,EACAjgK,OAAQ,IAuSPg+J,YAAa,WAGjBwC,GAtSqBY,8BAAAhxI,GAAAvnB,KAAA,SAAAC,GAuSjB,GAtSe,MAAXA,EAAAlI,OAAW,CACXwJ,EAAAg/J,mBAAWtgK,EAAAhJ,KACX6pK,EAAW1J,EAwSX,IAAI7vI,IArSR7T,UAAAA,EACQvc,OAAI,IACJE,UAAG+/J,EAGRjrF,GAAeI,iBAAAhlD,GAAAvnB,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,SAuSHwJ,EAAGw/J,uBAAyB9gK,EAAIhJ,KAEhCsK,EAAGy/J,eAAiB9iK,KAAKC,MAAMoD,EAAGw/J,uBAAuB,GAAGE,kBApS7E1/J,EAAkBsS,WAAA,IAEb,SAAW3R,GAuSH5I,EAAW2I,YAAY,QAAS,mBAAoB,oBApSzDV,EAAAsS,WAAc,IAwSlB,SAtSK3R,GAuSJ5I,EAtSI2I,YAAW,QAAA,mBAAA,oBAwSnB01J,EAtSsBwB,eAAQ,QAAgBn5J,KAAA,SAAAC,GACxB,MAAdA,EAAAlI,SAuSAwJ,EAAG6xF,SAAWnzF,EAAIhJ,KAClBsK,EAAGsS,WAAY,IAEpB,SAtSS3R,GAuSR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS6+J,GAAcvL,EAAYz1J,GAE/B,GAAIy1J,EAAY,CACZ,GAAIhuI,IACA7T,UAAWA,EACX2xC,WAtSY,EAuSZhuD,UAAWk+J,EAWfoC,GAtSwBuJ,gBAAkB35I,GAAKvnB,KAAA,SAAAC,GAuSxB,MAAfA,EAAIlI,SACJwJ,EAAGgmD,aAtSatnD,EAAIhJ,KA0SpBsK,EAAGsS,WAAY,IAGpB,SAAU3R,GACT5I,EAAW2I,YAtSS,QAAI,mBAAa,wBA0SzCV,GAAGm0J,QAAQpwG,iBAtSiB,KAuS5B/jD,EAAGgmD,gBAIX,QAAS85G,GAAqBC,EAAYxhK,GAEtC,GAAkB,OAAdwhK,EAAqB,CACrB//J,EAAGggK,oBAAqB,CAExB,IAAIh6I,IACA7T,UAAWA,EACX2xC,WAAY,EACZhuD,UAAW+/J,EAGfyJ,GAAgCK,gBAAgB35I,GAAWvnB,KAAK,SAAU89J,GAClD,MAAhBA,EAAK/lK,SACLwJ,EAAGigK,oBAAsB1D,EAAK7mK,OAEnC,SAAUiL,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGggK,oBAtSiB,EAuSpBhgK,EAAGigK,uBAIX,QAASlM,GAAU8D,EAAkBt5J,GACjC,GAAIs5J,EAtSkB,CAwSlB,GAAI7xI,IACA7T,UAAWA,EArSd2xC,WAAA+zG,EACE/hK,UAAQ+/J,EACRxgD,aAAA,EAGH+gD,GAAiB2B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GAuSb,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGg4J,kBAAoBt5J,EAAIhJ,KApSlCsK,EAAAg4J,kBAA4B78J,OAAO,EAC3B6E,EAAAi4J,aAAA,EAwSGj4J,EAAGi4J,aAAc,CApSrB,KAAK,GAAA/8J,KAAO8E,GAAAg4J,kBAC0B,IAAnCh4J,EAAAg4J,kBAAqB98J,GAAA03B,gBAuShB5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eAlSpF,IAAIstI,IACD/tJ,UAAcA,EACXrc,UAAA+/J,EAuSCsK,QAAS,gBArSZr8G,WAAa+zG,EAySdzB,GAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU4hK,GAC3D,MAAhBA,EAAK7pK,SACLwJ,EAAGm4J,cAAgBkI,EAAK3qK,KAEpBsK,EAAGm4J,cAAch9J,OAAS,EArS7C6E,EAAAo4J,qBAAuC,EAE1Bp4J,EAAAo4J,qBAAA,EA6SE8H,EAAaC,QAAU,aApShC/J,EAAyBgK,2BAAsBF,GAAAzhK,KAAA,SAAAo4J,GAC7B,MAAlBA,EAAkBrgK,SAuSDwJ,EAAGsgK,eAAiBzJ,EAAKnhK,KApShDwqK,EAAAC,QAAA,kBAEqB/J,EAAIgK,2BAAAF,GAAAzhK,KAAA,SAAA8hK,GACM,MAAAA,EAAA/pK,SAuSAwJ,EAAGwgK,oBAAsBD,EAAK7qK,KA5Q7C6I,GAuSmBA,MApSpB,SAAAkiK,GACD1oK,EAAA2I,YAAA,QAAA,mBAAA,oBAGAnC,GACIA,MAEJ,SAAWkiK,GAuSN1oK,EAAW2I,YAAY,QAAS,mBAAoB,oBAnSvDnC,GACEA,MAEX,SAAAkiK,GACG1oK,EAAU2I,YAAA,QAAA,mBAAA,oBAsTbV,EAAGsS,WAAY,EApSX/T,GACDA,MAySR,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm4J,iBArSNn4J,EAAAo4J,qBAAA,EAGT,QAAAE,GAAAC,EAAAqH,EAAArhK,GAwSoB,GAAIg6J,EAAS,CAtSjC,GAAAvyI,IACY7T,UAAAA,EACI2xC,WAAA9jD,EAAAm0J,QAAApwG,iBAAsCD,WAwS1BhuD,UAAW+/J,EAtS9BxgD,aAAAkjD,EA0SenC,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CAtSvCwJ,EAAAw4J,qBAAA95J,EAAAhJ,IAwSmB,IAAI+iK,GAAQ,EAtShB,KAAS,GAAAv9J,KAAQ8E,GAAAw4J,qBACRx4J,EAAAw4J,qBAAAt9J,GAAA8oD,QAAAhkD,EAAAg4J,kBAAA98J,GAAA8oD,OAAA,IAAAhkD,EAAAw4J,qBAAAt9J,GAAA03B,gBACrB5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,gBAGSj9B,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eAwSegY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAI5HroB,GAAGm0J,QAAQ9rI,KAAOowI,EArS1Bz4J,EAAAsS,WAAA,EAER/T,GACGA,MA0SQ,SAAUoC,GAtSlB5I,EAAA2I,YAAA,QAAA,mBAAA,wBAKZV,GAAAm0J,QAA0BpwG,iBAAA,KAwST/jD,EAAGg4J,qBAtSPh4J,EAAAm0J,QAAA9rI,KAAsB,GACrBroB,EAAAm0J,QAAA0L,YAAsB,GAmbvC,QAASqC,GAvSwB3J,EAAAh6J,GAwS7B,GAAIg6J,EAAS,CAET,GAAItB,IACA9kJ,UAAWA,EACX2xC,WAAY9jD,EAAGm0J,QAAQ4M,wBAAwBj9G,WAC/ChuD,UAvSQ+/J,EAwSRxgD,aAvSQkjD,EA0SZnC,GAvSwB+L,0BAAAlL,GAAAx4J,KAAA,SAAAC,GAwSpB,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGoiK,4BAA8B1jK,EAAIhJ,IAtSrC,IAAA+iK,GAAA,EAwSA,KAvSI,GAAIv9J,KAAK8E,GAAAoiK,4BACLpiK,EAAGoiK,4BAAqBlnK,GAAA8oD,QAAAhkD,EAAAqhK,yBAAAnmK,GAAA8oD,OAAA,IAAAhkD,EAAAoiK,4BAAAlnK,GAAA03B,gBAwSxB5yB,EAAGqhK,yBAAyBnmK,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGoiK,4BAA4BlnK,GAAG03B,gBAGpCj9B,QAAtDqK,EAAGqhK,yBAAyBnmK,GAAGomK,sBAC/B7I,GAvSOz4J,EAAAqhK,yBAAsBnmK,GAAAomK,oBAAAj5I,KA0SrCroB,GAAGm0J,QAAQ0L,YAAcpH,EAEzBz4J,EAAGsS,WAAY,EAEX/T,GACAA,MAGT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAvSiB,KAwS5B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm0J,QAAQ0L,YAAc,GAIjC,QAASiR,GAAevY,EAASh6J,GAC7B,GAAIg6J,EAAS,CACT,GAAIwY,GAAWv2K,EAAOyC,OAAO+C,EAAGgxK,cAAgBjqH,OAAUwxG,IAEtD0Y,EAAUrqK,SAASmqK,EAAS,GAAGZ,WAE/B1X,EAAQ,EAEZ,KAAK,GAAIv9J,KAAK8E,GAAGg4J,kBAAmB,CAChC,GAAI98J,GAAK+1K,EAAS,CACd,GAAInH,GAAatvK,EAAOyC,OAAO+C,EAAGgxK,cAAgB37D,aAAgBkjD,GAClEv4J,GAAGg4J,kBAAkB98J,GAAGg9J,YAAc4R,EAGEn0K,QAAxCqK,EAAGg4J,kBAAkB98J,GAAGulJ,eACxBgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,MAE5HroB,EAAGm0J,QAAQ9rI,KAAOowI,GAG1B,QAASiI,GAAe5tJ,GAUpB,GARA9S,EAAG+S,WAAY,EACf/S,EAAGm0J,WACHn0J,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAE1B9S,EAAGgT,YAAa,EAEhBhT,EAAG2gK,YAAa,EAEZ3gK,EAAGgmD,aAAc,CACjB,IAAK,GAAI9qD,KAAK8E,GAAGgmD,aACThmD,EAAGgmD,aAAa9qD,GAAG4oD,aAAe9jD,EAAGm0J,QAAQrwG,aAC7C9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,GAItD,IAAI8qB,IACA7T,UAvSQA,EAwSRrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQrwG,WACvB8vG,YAAa,WACb7sG,OAAQj0C,EAAIi0C,OAGhBqvG,GAA2B6E,iCAAiCj1I,GAAWvnB,KAAK,SAAUC,GAClF,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IAC7B,IAAIylK,GAAqBx+J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,gBAC/CrH,GAAU/zJ,EAAGm0J,QAAQpwG,iBAAiBD,WAAY,WAC9C,GAAI9jD,EAAGg4J,kBAAmB,CACtB,GAAIS,GAAQ,EACZ,KAAK,GAAIv9J,KAAK8E,GAAGg4J,kBAAmB,CAChCh4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGk7J,oBAAoBhgK,GAAG+xD,UAtSpF,KAAY,GAAA9iD,KAAAnK,GAAAg4J,kBAAA98J,GAAAg9J,YAwSKl4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GAAG48C,QAAUo0G,EAAmB,QAAUv0J,SAAS1L,GAAK,MArS5G8E,EAAAg4J,kBAAA98J,GAAAulJ,aAAAzgJ,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAGMxU,SAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eACHgY,GAAqBz4J,EAAAg4J,kBAAoB98J,GAAAulJ,aAAAp4H,MAySxCroB,EAAGm0J,QAAQ9rI,KAAOowI,CArSvB,KAAA,GAAAv9J,KAAmB8E,GAAAm4J,cAC3B,GAAoBn4J,EAAAm4J,cAAAj9J,GAAA6d,IAAA/Y,EAAAm0J,QAAAf,iBACJpzJ,EAAAm0J,QAAAyM,kBAAA5gK,EAAAm4J,cAAAj9J,GAySmD,OAA1C8E,EAAGm0J,QAAQyM,kBAAkBC,WAAoB,CACjDf,EAAqB9/J,EAAGm4J,cAAcj9J,GAAG2lK,UAEzC,KAAK,GAAI5qJ,KAAKjW,GAAGigK,oBAtSxB,GAAAjgK,EAAAigK,oBAAAhqJ,GAAA6tC,YAAA9jD,EAAAm0J,QAAA2M,kBAAA,CACO9gK,EAAAm0J,QAAA4M,wBAAA/gK,EAAAigK,oBAAAhqJ,EAEG,IAAQ+P,IACZ7T,UAAAA,EACGrc,UAAA+/J,EAwSU/xG,WAAY9jD,EAAGm0J,QAAQ2M,kBACvBlN,YAAa,UAtSd7sG,OAAAj0C,EAAAi0C,OAGPqvG,GAAA6E,iCAAAj1I,GAAAvnB,KAAA,SAAAC,GACK,GAAsB,MAAtBA,EAAAlI,OAAsB,CAC5BwJ,EAAAihK,qBAAqCviK,EAAAhJ,IACrC,IAAAwrK,GAAwCvkK,KAAMC,MAAGoD,EAAAm0J,QAAAgN,uBAwSpCC,GAAiBphK,EAAGm0J,QAAQ2M,kBAAmB,WAC3C,GAAI9gK,EAAGqhK,yBAA0B,CAtS7B,GAAA5I,GAAA,EACJ,KAAA,GAAA7oJ,KAAkB5P,GAAGqhK,yBAAqB,CAwSlCrhK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAcv7J,KAAKC,MAAMoD,EAAGihK,qBAAqBrxJ,GAAGq9C,UACnF,KAAK,GAAI9iD,KAAKnK,GAAGqhK,yBAAyBzxJ,GAAGsoJ,YACrCl4J,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAY/tJ,GAAG48C,QAAUm6G,EAAuB,QAAUt6J,SAASgJ,GAAK,MAEvG5P,EAAGqhK,yBAAyBzxJ,GAAG0xJ,oBAAsBthK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAY/tJ,GApSxIxU,SAAAqK,EAAAqhK,yBAAAzxJ,GAAA0xJ,sBACA7I,GAAAz4J,EAAAqhK,yBAAAzxJ,GAAA0xJ,oBAAAj5I,OAGMroB,EAAAm0J,QAAA0L,YAAApH,OAkTFz4J,EAAGuhK,uBACH,IAAIC,GAAsB7kK,KAAKC,MAAMD,KAAKC,MAAMoD,EAAGm0J,QAAQsN,aAAaC,cACxE,KAAK,GAAIzrJ,KAAKurJ,GACNA,EAAoBzsD,eAAe9+F,IACnCjW,EAAGuhK,qBAAqB1pK,MACpBkvB,IAAK9Q,EACLm+F,aAAcotD,EAAoBvrJ,KAQ1D,IAAK,GAAI/a,KAAK8E,GAAG6xF,SACT7xF,EAAG6xF,SAAS32F,GAAGs3F,QAAUxyF,EAAGm0J,QAAQ3hE,SACpCxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAAS32F,GAIpD,KAAK,GAAIA,KAAK8E,GAAGsgK,eACTtgK,EAAGsgK,eAAeplK,GAAG6d,IAAM/Y,EAAGm0J,QAAQwN,eACtC3hK,EAAGm0J,QAAQyN,mBAAqB5hK,EAAGsgK,eAAeplK,GAI1D,KAAK,GAAIA,KAAK8E,GAAGwgK,oBACTxgK,EAAGwgK,oBAAoBtlK,GAAG6d,IAAM/Y,EAAGm0J,QAAQ0N,gBAC3C7hK,EAAGm0J,QAAQ2N,wBAA0B9hK,EAAGwgK,oBAAoBtlK,IAKxE8E,EAAG+hK,0BACH,IAAIC,GAAyBrlK,KAAKC,MAAMD,KAAKC,MAAMoD,EAAGm0J,QAAQsN,aAAaQ,cAC3E,KAAK,GAAIhsJ,KAAK+rJ,GACNA,EAAuBjtD,eAAe9+F,IACtCjW,EAAG+hK,wBAAwBlqK,MACvBkvB,IAAK9Q,EACLm+F,aAAc4tD,EAAuB/rJ,OAMrDjW,EAAGsS,WAAY,IAIpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAOhE,QAAS0gK,GAAiBvJ,EAAkBt5J,GACxC,GAAIs5J,EAAkB,CAClB,GAAI7xI,IACA7T,UAAWA,EACX2xC,WAAY+zG,EACZ/hK,UAAW+/J,EACXxgD,aAAc,EAGlB+gD,GAA2B+L,0BAA0Bn8I,GAAWvnB,KAAK,SAAUC,GAC3E,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGqhK,yBAA2B3iK,EAAIhJ,KAC9B6I,GACAA,GAEJ,KAAK,GAAIrD,KAAK8E,GAAGqhK,yBACuC,IAAhDrhK,EAAGqhK,yBAAyBnmK,GAAG03B,gBAC/B5yB,EAAGqhK,yBAAyBnmK,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGqhK,yBAAyBnmK,GAAG03B,kBAIpG,SAAUjyB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQ4M,wBAA0B,KACrC/gK,EAAGqhK,4BAmHX,QAASjtC,KACLp0H,EAAGm0J,WAtSPn0J,EAAAgT,YAAS,EAwSLhT,EAAG+hK,2BAtSH/hK,EAAGuhK,wBAEHrvJ,IA8SJ,QAvSQugJ,KA0SJz4J,EAAO8F,GAAG,gCAAkChK,UAAW+/J,EAAc5/J,OAAQ,sBAAuBC,UAAW,KAp0BnH,GAAI8J,GAAKC,IAETD,GAAGqU,kBAtSYhJ,MAAA,KAAoBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAuSnCrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAtSU,EAuSbvU,EAAGwU,qBAtSoB,SAAAC,GAuSnBzU,EAAGuU,YAtSQE,GA0SfzU,EAAGyyJ,SAAWA,EAEdzyJ,EAAG0gK,eAtSaA,EAuShB1gK,EAAG8wK,eAtSaA,EAwShB9wK,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAtSS,EAuSZtS,EAAG+S,WAAY,EACf/S,EAAGgT,YAtSU,EAwSbhT,EAAG+zJ,UAAYA,EAEf/zJ,EAAGu/J,cAAgBA,EAEnBv/J,EAAGohK,iBAtSKA,EAuSRphK,EAAGkiK,0BAtSiBA,CAwSpB,IAAI/vJ,GAtSYhY,EAAkBgG,uBAAAwU,gBAAAxC,UA0S9B0jJ,GAHa17J,EAtSoBgG,uBAySlBnG,EAtSMvE,OAAAK,WAuSrB69J,EAAc35J,EAtSKvE,OAAAM,MAyS7BiK,GAAGs4J,mBAAqBA,EAGlBpmJ,IA8rBAlS,EAAGojK,sBAAwB,SAAU5/B,EAAU6/B,GAK/B,GAAIrjK,EAAG+S,UAAW,CACd,GAAI0wH,IACAuyB,QAASh2J,EAAGm0J,QAAQ6B,QACpByL,YAAazhK,EAAGm0J,QAAQsN,YACxBhtF,IAAK+uD,EAASz8G,IACdu8I,UAAWD,EAEfjN,GAA2BmN,iCAAiC9/B,GAAQhlI,KAAK,SAAUC,GAC/E,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBuB,EAAW2I,YAAY,UAAW,wBAAyB,yBAE3DV,EAAGm0J,QAAQsN,YAAc/iK,EAAIhJ,KAAK,GAAG+rK,WArSxD,IAAA+B,GAAmC7mK,KAAUC,MAAAD,KAAAC,MAAA8B,EAAAhJ,KAAA,GAAA+rK,aAAA,cACrCzhK,GAAA+hK,0BAEQ,KAAA,GAAA7mK,KAAAsoK,GACFA,EAAAzuD,eAAA75G,IACY8E,EAAA+hK,wBAAwBlqK,MACpCkvB,IAAA7rB,EACGk5G,aAAAovD,EAAAtoK,IAME,IAAAuoK,GAAA9mK,KAAAC,MAAAD,KAAAC,MAAA8B,EAAAhJ,KAAA,GAAA+rK,aAAA,cACHzhK,GAAKuhK,uBA0SF,KAAK,GAAIrmK,KAAKuoK,GACNA,EAAkB1uD,eAAe75G,IAtS1C8E,EAAAuhK,qBAA4B1pK,MACfkvB,IAAG7rB,EAwSHk5G,aAAcqvD,EAAkBvoK,SAhSpDnD,GAAA2I,YAAA,QAAA,iBAwSYrJ,WAAW,EACX+F,KAAM,QAId,SAAUuD,GAtSzB5I,EAAA2I,YAAA,QAAA,wBACUrJ,WAAmB,EACP+F,KAAA,aAOd,IAAA,iBAAAimK,EACM,IAAA,GAAOnoK,KAAO8E,GAAG+hK,wBAwSR/hK,EAAG+hK,wBAAwB7mK,GAAG6rB,MAAQy8G,EAASz8G,KAtShD/mB,EAAA+hK,wBAAYzsI,OAAAp6B,EAAA,OAMvB,KAAA,GAAaA,KAAA8E,GAAOuhK,qBACrBvhK,EAAAuhK,qBAAmCrmK,GAAA6rB,MAAAy8G,EAAAz8G,KAwStB/mB,EAAGuhK,qBAAqBjsI,OAAOp6B,EAAG,uQAvzBtE9G,QACKC,OAAO,8CACPe,WAAW,qCAtS2By7K,MAwnC/C,WACI,YAOA,SAASK,GAvSWn5K,EAAa0S,EAAQjQ,EAAAH,EAAiBqO,EAAYuE,EAAYnF,GA6U9E,QAASqpK,KACLnxK,EAAGoxK,QAAW9kC,YAAc,EAAMjqI,OAAU,EAAGkf,SAvSC,OAAiBk5E,SAAW,aAAAC,UAAmB,EAAYx9F,QAAA,YAAAtB,gBAAA0/B,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,QAAAk5E,SAAA,gBAAAC,UAAA,EAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,cAAAk5E,SAAA,KAAAC,UAAA,EAAAx9F,QAAA,KAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,gBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,OAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,sBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,kBAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,sBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,kBAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,EAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,EAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,EAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,WAAAk5E,SAAA,KAAAC,UAAA,EAAAx9F,QAAA,KAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,UAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,UAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,QAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,QAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,OAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,OAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,OAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,OAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,EAAAkf,SAAA,eAAAk5E,SAAA,KAAAC,UAAA,EAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,qBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,UAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,qBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,eAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,2BAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,yBAAAtB,gBAAA0/B,SAAA,EAAAr8B,gBAAAq8B,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,wBAAAk5E,SAAA,GAAAC,UAAA,EAAAx9F,QAAA,aAAAtB,gBAAA0/B,SAAA,EAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,iBAAAk5E,SAAA,cAAAC,UAAA,EAAAx9F,QAAA,KAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,aAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,aAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,cAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,cAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,WAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,WAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,iBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,gBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,mBAAAk5E,SAAA,aAAAC,UAAA,GAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,wBAAAk5E,SAAA,mBAAAC,UAAA,EAAAx9F,QAAA,KAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,WAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,aAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,cAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,gBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,aAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,WAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,YAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,cAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,WAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,aAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA;AAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,OAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,kBAAAk5E,SAAA,6BAAAC,UAAA,EAAAx9F,QAAA,KAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,oBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,mBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,uBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,sBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,gBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,eAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,YAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,eAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,oBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,mBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,mBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,iBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,mBAAAk5E,SAAA,aAAAC,UAAA,EAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,WAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,sBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,cAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,yBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,qBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,kBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,YAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,sBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,qBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,oBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,oBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,kBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,oBAAAk5E,SAAA,kBAAAC,UAAA,EAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,sBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,qBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,qBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,mBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,gBAAAk5E,SAAA,kBAAAC,UAAA,EAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,kBAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,iBAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,cAAAk5E,SAAA,KAAAC,UAAA,IAAAx9F,QAAA,aAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,YAAAk5E,SAAA,GAAAC,UAAA,GAAAx9F,QAAA,WAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,IAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,IAAAnyK,WAAA,WAAAotI,YAAA,MAAAA,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,OAAAk5E,SAAA,GAAAC,UAAA,GAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,iBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,eAAAtB,gBAAA0/B,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,gBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,cAAAtB,gBAAA0/B,SAAA,GAAAr8B,aAAAoyK,SAAA,GAAAnyK,WAAA,MAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,OAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,SAAAotI,YAAA,IAAA+kC,SAAA,GAAAnyK,WAAA,WAAAotI,YAAA,MAAAhxG,SAAA,GAAAr8B,gBAAAq8B,SAAA,EAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,gBAAAk5E,SAAA,6BAAAC,UAAA,GAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,qBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,oBAAAtB,gBAAA0/B,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,wBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,8BAAAtB,gBAAA0/B,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,0BAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,GAAAtB,eAAA0wI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,kBAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,gBAAAtB,gBAAA0/B,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,cAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,YAAAtB,gBAAA0/B,SAAA,GAAAr8B,gBAAAq8B,SAAA,GAAAr8B,gBAAAqtI,YAAA,EAAAjqI,OAAA,GAAAkf,SAAA,eAAAk5E,SAAA,GAAAC,UAAA,IAAAx9F,QAAA,aAAAtB,gBAAA0/B,SAAA,GAAAr8B,gBAAAq8B,SAAA,EAAAr8B,gBA0S/G,QAASqyK,KACLj3K,EAAQsY,QAAQ,QAAS,gFAvSgFtb,WAAW,EAAG+F,KAAA,OA6P3H,GAAI4C,GAAKC,IACTlI,GAAW2c,SAAU,EAGrB1U,EAAG4I,KAAO,eAGV5I,EAAGsxK,WAAaA,EAChBtxK,EAAGuxK,UACHvxK,EAAGwxK,SAEK/0K,KAAQ,cACR4vF,MAAS,4BACTolF,IAAO,KAEPh1K,KAAQ,QACR4vF,MAAS,kBACTolF,IAAO,KAEPh1K,KAAQ,OACR4vF,MAAS,oBACTolF,IAAO,KAIfN,IAIAnxK,EAAG2vH,YAAc,WACbllH,EAAO4F,WAAW,iCAGtBrQ,EAAGg3D,UAAY,WACXvsD,EAAO4F,WAAW,wHAxC1Bjc,QACKC,OAvSO,6BAwSPe,WAvSW,oBAAmB87K,MAyVvC,WAEI,YAMA,SAASQ,GAA4BjnK,EAAQ1Q,EAAOhC,EAAYsC,EAASJ,EAASD,EAAQ2kI,EAAcvkG,EAAoBu3I,EAAkCC,EAAgCC,EAC1L13K,GA6BA,QAAS+X,KAELkoB,EAAmB4R,yBAvSoB75B,GAAA1T,KAAqB,SAAGC,GAwSxC,MAAfA,EAAIlI,SACJwJ,EAAGs6B,eAAiB57B,EAAIhJ,KACxBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAvSI,mBAAQ,kCA8S3C,QAASoxK,GAvSoBC,GA6SzB,GAJA/xK,EAAGgyK,sBACHhyK,EAAGiyK,aAAaC,gBAvSiB,KAwSjClyK,EAAGiyK,aAAaE,QAAU,KAC1BnyK,EAAGgT,YAAa,EACDrd,QAAXo8K,EAAsB,CACtB,GAAI/rJ,IACA7T,UAAWA,EACX+oB,aAAc62I,EACdpsH,KAvSI3lD,EAAGoyK,YA0SXT,GAAiCU,0BAA0BrsJ,GAAWvnB,KAAK,SAAUC,GAtSnE,MAAfA,EAAAlI,SACCwJ,EAAAgyK,mBAAuBtzK,EAAShJ,KAwS5BsK,EAAGgT,YAAa,EAChBhT,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mCAKhE,QAAS4xK,GAvScC,EAAAR,EAAAxzK,GA6SnB,GALAyB,EAAGiyK,aAvSKO,SAAY,KAwSpBxyK,EAAGiyK,aAvSKE,QAAW,KAwSnBnyK,EAAGmxH,UAvSK,EAwSRnxH,EAAGyyK,oBACHzyK,EAAGgT,YAAa,EAtSZrd,QAAA48K,EAAA,CAySA,GAAItb,IACA9kJ,UAvSQA,EAwSR+oB,aAvSQ62I,EAwSR71H,WAAYq2H,EACZ5sH,KAvSI3lD,EAAKoyK,YA0SbR,GAA+Bc,sBAAsBzb,GAAYx4J,KAAK,SAAUC,GACzD,MAAfA,EAAIlI,SACJwJ,EAAGyyK,iBAAmB/zK,EAAIhJ,KAtS/BsK,EAAAgT,YAAe,EACdhT,EAAAsS,WAAW,EAySH/T,GAtSXA,MAEE,SAAAoC,GAwSC5I,EAAW2I,YAAY,QAAS,mBAAoB,mCAWhE,QAASiyK,GAAmBp0K,GAExB,GAAIynB,GAAY,IAEhB,KAAK,GAAI9qB,KAAK8E,GAAGyyK,iBAEbzsJ,GACIwsJ,SAAUxyK,EAAGyyK,iBAAiBv3K,GAAGs3K,SACjCxrD,SAAUhnH,EAAGyyK,iBAAiBv3K,GAAG8rH,SACjC4rD,OAAQ5yK,EAAGyyK,iBAAiBv3K,GAAG03K,OAC/BT,QAASvrK,SAAS1L,GAAK,EACvBmrB,QAAS,OACTvS,UAAWJ,EAAYrT,QAG3BuxK,EAA+BiB,kCAAkC7sJ,GAAWvnB,KAAK,SAAUC,GACnFA,EAAIhJ,KAAKke,aAAc,EACvB5T,EAAGgT,YAAa,EAEhBjb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iCAEvD,SAAUlT,GACT5I,EAAW2I,YAAY,gCAI/B3I,GAAW2I,YAAY,UAAW,qCAAsC,gCACxEV,EAAGmxH,UAAW,EAEV5yH,GACAA,IAGR,QAASu0K,KAEL,GAAIC,GAAU,CAKVA,GAHC/yK,EAAG+S,UAGM/S,EAAGiyK,aAvSUW,OAqSb,CAQd,IAAII,GAAMhzK,EAAGiyK,aAAagB,MAvSM,IAAAjzK,EAAAiyK,aAAiBiB,QAyS7CltJ,GAEA7T,UAAWA,EACX+oB,aAAcl7B,EAAGiyK,aAAalmI,mBAAmB7Q,aACjDghB,WAAYl8C,EAAGiyK,aAAat0H,iBAAiBzB,WAC7Cs2H,SAAUxyK,EAAGiyK,aAAaO,SAC1BxrD,SAAUgsD,EACVJ,OAAQG,EACR1sJ,QAAS,OACTvS,UAAWJ,EAAYrT,OACvBslD,KAAO3lD,EAAGoyK,YAGdR,GAA+BiB,kCAvS8B7sJ,GAAAvnB,KAAA,SAAAC,GAwSrDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAvSKhC,EAAAhJ,KAAcme,QAAA,gCAwS1C7T,EAAGgT,YAAa,EAGhBs/J,EAAiBtyK,EAAGiyK,aAAat0H,iBAAiBzB,WAAYl8C,EAAGiyK,aAAalmI,mBAAmB7Q,aAAc,WACvGl7B,EAAG+S,WACH4/J,OAGR56K,EAAW2I,YAvSS,QAAMhC,EAAAhJ,KAAAme,QAAA,iCAyS/B,SAAUlT,GACT5I,EAAW2I,YAAY,iCAI/B,QAASyyK,GAAmBrgK,GAExB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAvSE,WAySb,GAAIs3J,IACA6c,OAAQ9/J,EAvSI8/J,OAwSZvsJ,QAAS,SAGburJ,GAA+BiB,kCAAkC9c,GAAWt3J,KAAK,SAAUC,GACpE,MAAfA,EAAIlI,QACJuB,EAvSS2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,gCAwST7T,EAAGgT,YAAa,EAChBhT,EAAGiyK,aAvSUO,SAAY,KAwSzBxyK,EAAGiyK,aAvSaE,QAAG,KAwSnBnyK,EAAG+S,WAAY,EAEfu/J,EAAiBtyK,EAAGiyK,aAAat0H,iBAAiBzB,WAAYl8C,EAAGiyK,aAAalmI,mBAAmB7Q,aAAc,WAC3Gy3I,OAlSb56K,EAAa2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WAEb,SAAAlT,GAwSK5I,EAAW2I,YAAY,QAAS,sCAAuC,cAKnF,QAAS0yK,GAAiBtgK,GACtB9S,EAAG+S,WAAY,EArSnB/S,EAAAgT,YAAoB,EAwShBhT,EAAGiyK,aAAe79K,QAAQ8e,KAAKJ,EArS/B,KAAA,GAAO5X,KAAG8E,GAAAs6B,eAwSFt6B,EAAGs6B,eAAep/B,GAAGggC,eAAiBl7B,EAAGiyK,aAAa/2I,eACtDl7B,EAAGiyK,aAAalmI,mBAAqB/rC,EAAGs6B,eAAep/B,GAG/D,KAAK,GAAI2c,KAAK7X,GAAGgyK,mBACThyK,EAAGgyK,mBAAmBn6J,GAAGqkC,aAAel8C,EAAGiyK,aAAa/1H,aAtS/Dl8C,EAAAiyK,aAAAt0H,iBAAA39C,EAAAgyK,mBAAAn6J,GAGT,IAAAw7J,GAAArzK,EAAAiyK,aAAAjrD,SAEKgsD,EAAWK,EAAA/vJ,UAAqB,EAAA,GAySzBgwJ,EAAOD,EAAS/vJ,UAAU,EAAG,EAQjCtjB,GAAGiyK,aAAagB,MAAQD,EACxBhzK,EAAGiyK,aAAaiB,QAAUI,EAI9B,QAxSIl/C,KAySAp0H,EAAGgT,YAxSS,EAySZhT,EAAGiyK,gBACHjyK,EAAGmxH,UAxSQ,EA2Cf,GAAInxH,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAG8xK,uBAAyBA,EAC5B9xK,EAAGsyK,iBAAmBA,EACtBtyK,EAAG8yK,iBAAmBA,EACtB9yK,EAAGmzK,mBAAqBA,EACxBnzK,EAAGozK,iBAAmBA,EACtBpzK,EAAGo0H,OAASA,EACZp0H,EAAGiyK,gBACHjyK,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,CACf,IAAIZ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEuB,EAAcvZ,EAAsBgG,sBACxCsK,GAAO8oK,MAAQ,EACf9oK,EAAO+oK,MAAQ,GACfxzK,EAAGmxH,UAAW,EACdnxH,EAAG2yK,mBAAqBA,EACxB3yK,EAAGoyK,YAAc,IAEjBlgK,IAuEAzH,EAAO8oH,iBACHjpF,OAAQ,WACJtqC,EAAGmxH,UAAW,iOA1G1B/8H,QACKC,OAAO,uCACPe,WAAW,8BAA+Bs8K,MAwQnD,WAQI,QAAS+B,GAAmBhpK,EAAQ1Q,EAAOhC,EAAYkC,EAASO,EAAQH,EAASL,EAAQ2kI,EAAcxkI,EAAuBm8J,EAA4Bod,EAA8Bvd,GAwBpL,QAzSQjkJ,KACPlS,EAAA2zK,UAEIl/F,IAAA,aACL+hF,MAAA,eAGG,IAAAxwI,IAEC7T,UAAQA,EACTwkJ,OAAA,aA6SCR,GAAsBS,uBAAuB5wI,GAAWvnB,KAAK,SAAUC,GAxSxE,MAAAA,EAAAlI,QACAwJ,EAAA82J,gBAAmBp4J,EAAAhJ,KACnBsK,EAAAsS,WAAmB,GAEnBva,EAAmB2I,YAAA,QAAA,yBAAA,4BAEnB,SAAAC,GACA5I,EAAa2I,YAAA,QAAA,mBAAA,6BAqThB,QAASkzK,GAAgB9gK,GAxSrB9S,EAAA+S,WAAA,EA0SA/S,EAAGgT,YAzSS,EA2SZhT,EAAGmoJ,IAzSK/zJ,QAAG8e,KAAAJ,EA2SX,KAzSG,GAAA5X,KAAU8E,GAAA2zK,QACT3zK,EAAA2zK,QAAWz4K,GAAAu5E,MAAYz0E,EAAAmoJ,IAASwO,SA0S5B32J,EAAGmoJ,IAAI0rB,YAAc7zK,EAAG2zK,QAAQz4K,GAKxC8E,GAAGmoJ,IAAIr+F,cAAgB,GAAIrwC,MAAK3G,EAAIg3C,eAGxC,QAzSOgqH,KAGH,GAAG7c,IAEC9kJ,UAAIA,EA0SJwkJ,OAzSI32J,EAAAmoJ,IAAW0rB,YAAAp/F,IA0SfhkC,WAzSIzwC,EAAAmoJ,IAAc13G,WA2SlBsjI,iBAAkB95K,EAAQ,QAAQ+F,EAAGmoJ,IAAIr+F,cAAe,eACxDh2C,UAAWJ,EAAYrT,OAI3B81J,GAzSe6d,sBAAa/c,GAAAx4J,KAAA,SAAAC,GA0SpBA,EAzSIhJ,KAAGke,aAAY,GA0SnB5T,EAAGsS,WAAY,EAxShBtS,EAAAgT,YAAe,EACdjb,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAoB,gBA0SpDugH,IACAliH,KAtSHna,EAAA2I,YAA0B,QAAShC,EAAAhJ,KAAAme,QAAU,iBAC/C,SAAAlT,GACA5I,EAAA2I,YAAuB,QAAA,mBAAA,kBA+S9B,QAzSQsT,KA2SJhU,EAAGgT,YAzSK,EA0SRhT,EAAG+S,WAzSK,EA0SR/S,EAAGmoJ,OAGP,QAzSQ/zB,KA0SJp0H,EAAGgT,YAzSa,EA0ShBhT,EAAG+S,WAzSY,EA0Sf/S,EAAGmoJ,OA1ZP,GAAGnoJ,GAAAC,IA0SHD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAxSQ,EAySXvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,CAvShB,IAAAb,GAAShY,EAAagG,uBAAAwU,gBAAAxC,UAClBuB,EAAQvZ,EAAiBgG,sBAyS7BH,GAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAAY,EAvStBtS,EAAAmoJ,OAySOnoJ,EAAG8zK,gBAAkBA,EAvSzB9zK,EAAA4zK,gBAAAA,EAEA1hK,IA2BIzH,EAAOuQ,MAAQ,WACfvQ,EAAOwQ,OAAQpM,QAAA,GAGfpE,EAAGwQ,QA0SCpM,QAAQ,8MA3DhBza,QAvSIC,OAAA,8BAySCe,WAAW,qBAAsBq+K,MA4H1C,WACI,YAOA,SAASQ,GAA6BxpK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAazxF,EAAiBn7B,EACpH2D,EAAaD,EAAam1D,EAA8B8oF,EAA+B9hJ,EAAwBE,EAAc3X,GAgC7H,QAzSQ+X,KA0SJlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IAxSR7T,UAASA,EA0SDvc,OAAQ,IAxSRg+J,YAAU,WA0SV99J,UAAY,EAEhB49J,GAzScqL,6BAAA/4I,GAAAvnB,KAAA,SAAAC,GA0SV,GAAmB,MAAfA,EAAIlI,OAAgB,CAxSxBwJ,EAAAg/J,mBAA0BtgK,EAAAhJ,IA0StB,KAAK,GAAIwF,KAAK8E,GAAGg/J,mBACbh/J,EAAGg/J,mBAAmB9jK,GAAG8xD,QAAUrwD,KAAKC,MAAMoD,EAAGg/J,mBAAmB9jK,GAAGkgK,iBACvEp7J,EAAGg/J,mBAAmB9jK,GAAG+jK,SAAWtiK,KAAKC,MAAMoD,EAAGg/J,mBAAmB9jK,GAAGm5J,UAE5Er0J,GAAGsS,WAAY,IAEpB,SAAU3R,GAxST5I,EAAA2I,YAAY,QAAA,mBAAA,oBA8SpB,QAzSQqvG,GAAaj9F,GA2SjB9S,EAAGgT,YAzSS,EA0SZhT,EAAG+S,WAzSU,EA2Sb/S,EAAGm0J,QAzSQ//J,QAAG8e,KAAAJ,GA2Sd9S,EAAGg4J,kBAAoBr7J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,iBAxS7Cp7J,EAAAk/J,mBAAAviK,KAAAC,MAA+BoD,EAAAm0J,QAAAE,WA6SnC,QAASjgC,KAELp0H,EAAGgT,YAzSK,EA0SRhT,EAAG+S,WAzSS,EA0SZb,IAoCJ,QAASugJ,KAEDz4J,EAzSG8F,GAAA,gCAAehK,UAAA+/J,EAAA5/J,OAAA,sBAAAC,UAAA,KA6L1B,GAAI8J,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAzSKtU,EAAAqU,gBAAY,EA2SpBrU,GAAGuU,YAzSU,EA0SbvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAzSaE,GAmTpBzU,EAAGyyJ,SAzSSA,EA0SZzyJ,EAAG+vG,YAzSaA,EA0ShB/vG,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAAY,CAEf,IAAIujJ,GAzSO77J,EAAevE,OAAAK,UA0StB69J,EAzSQ35J,EAAWvE,OAAAM,OA0SnBoc,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAM7ED,KA6CAlS,EAAGm/J,gBAzSc,SAAKrM,GA2SlB,GAAItxI,EAEAA,GADY,WAAZsxI,EACW,EAEA,CAEf,IAzSIU,GAAAr5J,EAAAgG,uBAEJ41J,GA0SIC,QAASh2J,EAAGm0J,QAAQ6B,QAxSpBpgK,OAAI4rB,EA0SJoyI,YAzSY,WA0SZ9/I,UAzSI0/I,EAASnzJ,OA4SjBqzJ,GAzSIuC,uBAA+BF,GAAAt3J,KAAkC,SAAAC,GACrD,MAARA,EAAIlI,SA0SJwJ,EAAGsS,WAzSY,EA0SftS,EAAGgT,YAzSI,EACA,WAAH8/I,EACA/6J,EAAG2I,YAAa,UAAU,wBAAA,WA2S1B3I,EAAW2I,YAAY,UAAW,wBAAyB,WAC/DwR,MAEL,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wSA9GhEtM,QACKC,OAAO,wCAxSRe,WAAO,+BAAkB6+K,MA+ZjC,WAGI,YAMA,SAASC,GAzSuBzpK,EAAA1Q,EAAwBhC,EAAAyC,EAAeH,EAAAL,EAAAS,EAAAmwE,EAAAy0F,EAAAjJ,EAAAj8J,EAAAu5J,EAAA4L,GA+UnE,QAASptJ,KACLlS,EAAGjK,OAAS49J,CAzSpB,IAAA3tI,IACY7T,UAAAA,EACPrc,UAAW+/J,EA2SJjgK,OAAQ,IAzSXg+J,YAAA,WAGFwC,GAAqBY,8BAAkChxI,GAASvnB,KAAQ,SAASC,GACjF,GAAc,MAAdA,EAAWlI,OAAG,CACLwJ,EAAAg/J,mBAAAtgK,EAAAhJ,KACT6pK,EAAc1J,EAEV,IAAA7vI,IA2SS7T,UAAWA,EACXvc,OAAQ,IACRE,UAAW+/J,EAvSvBjrF,GAAoCI,iBAAAhlD,GAAAvnB,KAAA,SAAAC,GAC5B,MAAAA,EAAAlI,SACAwJ,EAAAw/J,uBAAA9gK,EAAAhJ,KAEHsK,EAAAy/J,eAAA9iK,KAAAC,MAAAoD,EAAAw/J,uBAAA,GAAAE,kBAEN1/J,EAAkBsS,WAAA,IA4SN,SAAU3R,GAzSzB5I,EAAA2I,YAAA,QAAA,mBAAA,oBAEOV,EAAAsS,WAAU,IA4SV,SA1SK3R,GA2SJ5I,EA1SI2I,YAAS,QAAA,mBAAA,oBA4SjB01J,EAA2BwB,eAAe,QAAQn5J,KAAK,SAAUC,GAzSjD,MAAZA,EAAAlI,SA2SIwJ,EAAG6xF,SAAWnzF,EAAIhJ,KAzStBsK,EAAAsS,WAAW,IA4SZ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS6+J,GA1SMvL,EAAYz1J,GA4SvB,GAAIy1J,EA1SI,CA2SJ,GAAIhuI,IAzSL7T,UAAeA,EACd2xC,WAAW,EA2SPhuD,UAAWk+J,EA/RvBoC,GAA8BuJ,gBAAA35I,GAAAvnB,KAAA,SAAAC,GACX,MAAZA,EAAYlI,SACZwJ,EAAAgmD,aAAatnD,EAAAhJ,KAIPsK,EAAKsS,WAAY,IA6SnB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGgmD,gBAIX,QA1SQ85G,GAAaC,EAAAxhK,GA4SjB,GA1Se,OAAXwhK,EAAW,CACX//J,EAAAggK,oBAAe,CA4Sf,IAAIh6I,IAzSJ7T,UAAAA,EACA2xC,WAAW,EA2SPhuD,UAAW+/J,EAvSnByJ,GAAsBK,gBAAsB35I,GAAiBvnB,KAAA,SAAe89J,GAC3D,MAALA,EAAK/lK,SACNwJ,EAAAigK,oBAAY1D,EAAA7mK,OA4ShB,SA1SCiL,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,wBA8SJV,GAAGggK,oBA1SY,EAChBhgK,EAAAigK,uBA8SP,QAASlM,GAAU8D,EAAkBt5J,GACjC,GAAIs5J,EAAkB,CAxS1B,GAAS7xI,IA2SG7T,UAAWA,EAzShB2xC,WAAa+zG,EACb/hK,UAAY+/J,EACZxgD,aAAM,EAGb+gD,GAAkB2B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GACX,GAAa,MAAbA,EAAalI,OAAA,CACbwJ,EAAYg4J,kBAAAt5J,EAAAhJ,KA4SCsK,EAAGg4J,kBAAkB78J,OAAS,EAC9B6E,EAAGi4J,aAAc,EAEjBj4J,EAAGi4J,aAAc,CAErB,KAAK,GAAI/8J,KAAK8E,GAAGg4J,kBAzS5B,IAAAh4J,EAAAg4J,kBAAA98J,GAAA03B,gBACT5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAg4J,kBAAA98J,GAAA03B,eAGY,IAAAstI,IACI/tJ,UAAAA,EA4SQrc,UAAW+/J,EACXsK,QAAS,gBA1SxBr8G,WAAA+zG,EA8SWzB,GAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU4hK,GA1S5D,MAAfA,EAAA7pK,SACPwJ,EAAAm4J,cAAgBkI,EAAA3qK,KAEhBsK,EAAAm4J,cAAAh9J,OAAA,EACS6E,EAAAo4J,qBAAe,EA6Sbp4J,EAAGo4J,qBAAsB,EAO7B8H,EAAaC,QAAU,aAzSnC/J,EAAAgK,2BAAAF,GAAAzhK,KAAA,SAAAo4J,GACK,MAAAA,EAAArgK,SACLwJ,EAAAsgK,eAAAzJ,EAAAnhK,KA6SoBwqK,EAAaC,QAAU,kBAzSvB/J,EAAAgK,2BAAAF,GAAAzhK,KAAA,SAAA8hK,GACM,MAAAA,EAAA/pK,SA4SEwJ,EAAGwgK,oBAAsBD,EAAK7qK,KA0B1B6I,GACAA,MAzSlB,SAAAkiK,GA4SU1oK,EAAW2I,YAAY,QAAS,mBAAoB,oBAGpDnC,GA1SNA,MAEH,SAAKkiK,GACJ1oK,EAAW2I,YAAW,QAAA,mBAAA,oBA8StBnC,GA1SVA,MAEX,SAAakiK,GACD1oK,EAAA2I,YAAA,QAAA,mBAAA,oBAgBXV,EAAAsS,WAAY,EAEJ/T,GACRA,MA8SG,SAAUoC,GA1SjB5I,EAAA2I,YAA8B,QAAA,mBAAuB,wBA+SjDV,GAAGm0J,QA3SKpwG,iBAAY,KA4SpB/jD,EAAGg4J,qBACHh4J,EAAGm4J,iBACHn4J,EAAGo4J,qBA3SgB,EA8Z3B,QAAS8J,GA5Sc3J,EAAAh6J,GA6SnB,GAAIg6J,EAAS,CAET,GAAItB,IACA9kJ,UAAWA,EACX2xC,WAAY9jD,EAAGm0J,QAAQ4M,wBAAwBj9G,WAC/ChuD,UAAW+/J,EACXxgD,aAAckjD,EAGlBnC,GAA2B+L,0BAA0BlL,GAAYx4J,KAAK,SAAUC,GA3ShF,GAAA,MAAAA,EAAAlI,OAA2B,CACnBwJ,EAAAoiK,4BAAoB1jK,EAAAhJ,IACpB,IAAG+iK,GAAA,EA6SH,KAAK,GAAIv9J,KAAK8E,GAAGoiK,4BACTpiK,EAAGoiK,4BAA4BlnK,GAAG8oD,QAAUhkD,EAAGqhK,yBAAyBnmK,GAAG8oD,OAA4D,IAAnDhkD,EAAGoiK,4BAA4BlnK,GAAG03B,gBACtH5yB,EAAGqhK,yBAAyBnmK,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGoiK,4BAA4BlnK,GAAG03B,gBAGpCj9B,QAAtDqK,EAAGqhK,yBAAyBnmK,GAAGomK,sBA3SlC7I,GAAKz4J,EAAAqhK,yBAAAnmK,GAAAomK,oBAAAj5I,KA+SVroB,GAAGm0J,QAAQ0L,YAAcpH,EA1S9Bz4J,EAAQsS,WAAA,EA8SC/T,GACAA,MAGT,SAAUoC,GA3Sb5I,EAAc2I,YAAO,QAAA,mBAAA,wBAgTrBV,GAAGm0J,QA5SCpwG,iBAAW,KA6Sf/jD,EAAGg4J,qBACHh4J,EAAGm0J,QA5SC9rI,KAAW,GA6SfroB,EAAGm0J,QAAQ0L,YAAc,GAGjC,QAASvH,GA5SYC,EAAgBqH,EAAArhK,GA8SjC,GAAIg6J,EAAS,CACT,GA5SGvyI,IACC7T,UAAWA,EA6SX2xC,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxChuD,UAAW+/J,EA3SdxgD,aAAAkjD,EA+SDnC,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGw4J,qBAAuB95J,EAAIhJ,IA3SrC,IAAU+iK,GAAA,EACX,KAAA,GAAAv9J,KAAkB8E,GAAAw4J,qBA6SFx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBA3SjG5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,gBAGDj9B,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eACXgY,GAAc9iK,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAAA,GAAAroB,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAIVroB,GAAAm0J,QAAI9rI,KAAWowI,EA8Sfz4J,EAAGsS,WAAY,EA1SX/T,GA6SAA,MAGT,SA5SUoC,GA6ST5I,EA5SQ2I,YAAO,QAAA,mBAAqB,wBAiTxCV,GAAGm0J,QA5SKpwG,iBAAmB,KA6S3B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KA5SC,GA6SZroB,EAAGm0J,QAAQ0L,YA5SU,GA6U7B,QAASa,GAAe5tJ,GAUpB,GARA9S,EAAG+S,WAAY,EACf/S,EAAGm0J,WACHn0J,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAE1B9S,EAAGgT,YAAa,EAEhBhT,EAAG2gK,YAAa,EAEZ3gK,EAAGgmD,aAAc,CACjB,IAAK,GAAI9qD,KAAK8E,GAAGgmD,aACThmD,EAAGgmD,aAAa9qD,GAAG4oD,aAAe9jD,EAAGm0J,QAAQrwG,aAC7C9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,GAItD,IAAI8qB,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQrwG,WACvB8vG,YAAa,WACb7sG,OAAQj0C,EAAIi0C,OAGhBqvG,GAA2B6E,iCA5SiCj1I,GAAAvnB,KAAA,SAAoBC,GA6S5E,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IAC7B,IAAIylK,GA5SgBx+J,KAAAC,MAAAoD,EAAAm0J,QAAAiH,gBA6SpBrH,GAAU/zJ,EAAGm0J,QA5SOpwG,iBAAAD,WAAA,WA6ShB,GAAI9jD,EAAGg4J,kBAAmB,CACtB,GA5SGS,GAAA,EA6SH,KA5SI,GAAAv9J,KAAA8E,GAAWg4J,kBAAqB,CA6ShCh4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGk7J,oBAAoBhgK,GAAG+xD,UAC3E,KAAK,GAAI9iD,KAAKnK,GAAGg4J,kBAAkB98J,GAAGg9J,YA3StCl4J,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAAA48C,QAAAo0G,EAAA,QAAAv0J,SAAA1L,GAAA,MA8SQ8E,EAAGg4J,kBAAkB98J,GAAGulJ,aAAezgJ,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GAIvCxU,SAAxCqK,EAAGg4J,kBAAkB98J,GAAGulJ,eACxBgY,GAAgBz4J,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,MAE7DroB,EAAGm0J,QAAQ9rI,KAAOowI,CAClB,KAAK,GAAIv9J,KAAK8E,GAAGm4J,cACb,GAAIn4J,EAAGm4J,cAAcj9J,GAAG6d,IAAM/Y,EAAGm0J,QAAQf,iBACrCpzJ,EAAGm0J,QAAQyM,kBAAoB5gK,EAAGm4J,cAAcj9J,GAEF,OAA1C8E,EAAGm0J,QAAQyM,kBAAkBC,WAAoB,CACjDf,EAAqB9/J,EAAGm4J,cAAcj9J,GAAG2lK,UAEzC,KAAK,GAAI5qJ,KAAKjW,GAAGigK,oBACb,GAAIjgK,EAAGigK,oBAAoBhqJ,GAAG6tC,YAAc9jD,EAAGm0J,QAAQ2M,kBAAmB,CACtE9gK,EAAGm0J,QAAQ4M,wBAA0B/gK,EAAGigK,oBAAoBhqJ,EA3SzE,IAAA+qJ,IA6SiB7uJ,UAAWA,EA3SvCrc,UAAA+/J,EACA/xG,WAAA9jD,EAAAm0J,QAAA2M,kBA6S4BlN,YAAa,UACb7sG,OAAQj0C,EAAIi0C,OAGhBqvG,GAA2B6E,iCAAiC+F,GAAYviK,KAAK,SAAUC,GACnF,GAAmB,MAAfA,EAAIlI,OAAgB,CA3S/DwJ,EAAAihK,qBAAAviK,EAAAhJ,IAC6B,IAAAwrK,GAAAvkK,KAAAC,MAAAoD,EAAAm0J,QAAAgN,uBACPC,GAAAphK,EAAAm0J,QAAA2M,kBAAA,WACJ,GAAA9gK,EAAAqhK,yBAAA,CACM,GAAA5I,GAAA,EA6S2B,KAAK,GAAI7oJ,KAAK5P,GAAGqhK,yBAA0B,CACvCrhK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAcv7J,KAAKC,MAAMoD,EAAGihK,qBAAqBrxJ,GAAGq9C,UACnF,KAAK,GAAI9iD,KAAKnK,GAAGqhK,yBAAyBzxJ,GAAGsoJ,YA3SpEl4J,EAAAqhK,yBAAAzxJ,GAAAsoJ,YAAA/tJ,GAAA48C,QAAAm6G,EAAA,QAAAt6J,SAAAgJ,GAAA,MA8S+B5P,EAAGqhK,yBAAyBzxJ,GAAG0xJ,oBAAsBthK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAY/tJ,GAG9CxU,SAAtDqK,EAAGqhK,yBAAyBzxJ,GAAG0xJ,sBAC/B7I,GAAgBz4J,EAAGqhK,yBAAyBzxJ,GAAG0xJ,oBAAoBj5I,OAG/EroB,EAAGm0J,QAAQ0L,YAAcpH,OAhSjDz4J,EAAAuhK,uBACJ,IAAAC,GAA4B7kK,KAAAC,MAAAD,KAAAC,MAAyBoD,EAAAm0J,QAAYsN,aAAAC,cA6SzD,KAAK,GAAIzrJ,KAAKurJ,GA3SzBA,EAA0BzsD,eAAA9+F,IACPjW,EAAGuhK,qBAAqB1pK,MAC5BkvB,IAAU9Q,EA6SFm+F,aAAcotD,EAAoBvrJ,KApS3D,IAAK,GAAA/a,KAAU8E,GAAG6xF,SA6ST7xF,EAAG6xF,SAAS32F,GAAGs3F,QAAUxyF,EAAGm0J,QAAQ3hE,SACpCxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAAS32F,GAxSzD,KAAA,GAAAA,KAAA8E,GAAAsgK,eACYtgK,EAAAsgK,eAAiBplK,GAAA6d,IAAA/Y,EAAAm0J,QAAAwN,eAC7B3hK,EAAAm0J,QAAqByN,mBAAkB5hK,EAASsgK,eAAGplK,GAIjD,KAAA,GAAAA,KAAA8E,GAAAwgK,oBACMxgK,EAAAwgK,oBAAAtlK,GAAA6d,IAAA/Y,EAAAm0J,QAAA0N,gBACJ7hK,EAAAm0J,QAAA2N,wBAAA9hK,EAAAwgK,oBAAAtlK,IAQL8E,EAAG+hK,0BACH,IAAGC,GAAQrlK,KAAAC,MAAAD,KAAAC,MAAAoD,EAAAm0J,QAAAsN,aAAAQ,cACT,KAAA,GAAQhsJ,KAAA+rJ,GACLA,EAAQjtD,eAAA9+F,IACHjW,EAAA+hK,wBAAAlqK,MACIkvB,IAAA9Q,EACPm+F,aAAQ4tD,EAAmB/rJ,OAkTpCjW,EAAGsS,WAAY,IAIpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAOhE,QAAS0gK,GAAiBvJ,EAAkBt5J,GA3SxC,GAAAs5J,EAAgB,CA6SZ,GAAI7xI,IACA7T,UAAWA,EACX2xC,WAAY+zG,EA3SpB/hK,UAAA+/J,EACQxgD,aAAS,EA+Sb+gD,GA5SqB+L,0BAAAn8I,GAAAvnB,KAAA,SAAAC,GACjB,GAAG,MAAAA,EAAAlI,OAAmB,CACnBwJ,EAAAqhK,yBAAa3iK,EAAAhJ,KA6SR6I,GA3SJA,GA8SA,KAAK,GAAIrD,KAAK8E,GAAGqhK,yBA3ShB,IAAArhK,EAAAqhK,yBAAAnmK,GAAA03B,gBACD5yB,EAAWqhK,yBAAqBnmK,GAAAg9J,YAAYv7J,KAAAC,MAAAoD,EAAAqhK,yBAAAnmK,GAAA03B,kBAgTjD,SA5SEjyB,GACD5I,EAAW2I,YAAY,QAAS,mBAAkB,wBAItDV,GAAAm0J,QAAW4M,wBAAqB,KA6ShC/gK,EAAGqhK,4BAmHX,QAASjtC,KACLp0H,EAAGm0J,WACHn0J,EAAGgT,YAAa,EAChBhT,EAAG+hK,2BA3SP/hK,EAAAuhK,wBAEIrvJ,IAoTJ,QA5SQugJ,KA+SJz4J,EAAO8F,GAAG,gCA5SgChK,UAAG+/J,EAAa5/J,OAAA,sBAAAC,UAAA,KAtgB9D,GAAI8J,GAAKC,IAETD,GAAGqU,kBAzSYhJ,MAAA,KAAsBA,MAAA,KAAkBA,MAAA,KAAaA,MAAY,MA0ShFrL,EAAGsU,SAzSStU,EAAGqU,gBAAa,EA2S5BrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAxShCzU,EAAAuU,YAAeE,GA4SnBzU,EAAGyyJ,SAzSKA,EA0SRzyJ,EAAG0gK,eAAiBA,EAEpB1gK,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAAY,EACftS,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGkiK,0BAA4BA,EAC/BliK,EAAG+zJ,UAzSIA,EA2SP/zJ,EAAGu/J,cAAgBA,EAEnBv/J,EAAGohK,iBAAmBA,EAxStBphK,EAAA+hK,2BA0SA/hK,EAAGuhK,uBAEH,IAzSIpvJ,GAAGhY,EAAWgG,uBAAAwU,gBAAAxC,UA0SdqhJ,EAAar5J,EAAsBgG,uBAEnC01J,EAAe77J,EAAOvE,OAAOK,UAC7B69J,EAAc35J,EAAOvE,OAAOM,MAEhCiK,GAAGs4J,mBAAqBA,EAGxBpmJ,IAmPAlS,EAAGm/J,gBA3SgB,SAAYrM,GAmT3B,GAAIuP,KAzSf,KAAY,GAAAnnK,KAAA8E,GAAAg4J,kBA4SOh4J,EAAGg4J,kBAAkB98J,GAAGulJ,eACxB4hB,EAAiB,QAAUz7J,SAAS1L,GAAK,IAAM8E,EAAGg4J,kBAAkB98J,GAAGulJ,aAAa15F,OAxSpG,IAAAu7G,GAAA,KACYC,EAAA,KACPC,IAEL,IAAkD,OAAzCxiK,EAAAm0J,QAAAyM,kBAAAC,UAAgD,CA6S7CyB,EAAqBtiK,EAAGm0J,QAAQ4M,wBAAwBj9G,WA3S5Dy+G,EAAKviK,EAAAqhK,yBAAArhK,EAAAqhK,yBAAAlmK,OAAA,GAAAmmK,oBAAAv6G,MAEN,KAAA,GAAA7rD,KAAmB8E,GAAEqhK,yBACVrhK,EAAGqhK,yBAAgBnmK,GAAAomK,sBACrBkB,EAAA,QAAA57J,SAAA1L,GAAA,IAAA8E,EAAAqhK,yBAAAnmK,GAAAomK,oBAAAv6G,QAiTR,GArSDgvG,KAwSKkM,cAAetlK,KAAKqkB,UAAUhhB,EAAG+hK,yBA3StCL,cAAS/kK,KAAAqkB,UAAAhhB,EAAAuhK,wBAITvL,QAAAh2J,EAAAm0J,QAAA6B,QACA7jJ,UAAYA,EA6SPrc,UAAW+/J,EA3ShB/xG,WAAgB9jD,EAAAm0J,QAAApwG,iBAAAD,WA6SXiD,OAAQ/mD,EAAGg4J,kBAAkBh4J,EAAGg4J,kBAAkB78J,OAAS,GAAGslJ,aAAa15F,OA3ShFq0G,gBAAmBz+J,KAAAqkB,UAAAqhJ,GACnBjP,eAAApzJ,EAAAm0J,QAA0ByM,kBAAA7nJ,GAC1By5E,OAAAxyF,EAAAm0J,QAAuB+E,mBAAA1mE,OA6SlBivE,YAAa,GA3SjBX,kBAAYwB,EACZG,cAAaF,EA6STpB,uBAAwBxkK,KAAKqkB,UAAUwhJ,GA3S3CzJ,WAAe/4J,EAAAm0J,QAAO4E,WACtBF,WAAc74J,EAAAm0J,QAAO0E,WA6SjBF,YAAa34J,EAAGm0J,QAAQwE,YA3S7BG,iBAAqB94J,EAAAm0J,QAAA2E,iBA6ShBF,QAAS54J,EAAGm0J,QAAQyE,QACpB8J,QAAS1iK,EAAGm0J,QAAQuO,QA3S5BC,SAAA3iK,EAAAm0J,QAAAwO,SACAC,QAAgB5iK,EAAAm0J,QAAAyO,QACTC,SAAS7iK,EAAAm0J,QAAA0O,SACRC,YAAY9iK,EAAAm0J,QAAA2O,YACZnxE,SAAA3xF,EAAWm0J,QAAAxiE,SACXoxE,aAAW/iK,EAAAm0J,QAAA4O,aACXpB,aAAQ3hK,EAAAm0J,QAAAyN,mBAAA7oJ,GACR8oJ,cAAa7hK,EAAAm0J,QAAA2N,wBAAA/oJ,GA6SbnjB,OAAQ,EACRywB,QAAS,OA3SbvS,UAAA0/I,EAAAnzJ,SA+SIjC,EA5SI,GAAAH,SAwTRG,GAASF,OA5SO,YAAGvB,KAAAqkB,UAAsB+0I,IAgTzCK,EA5S0B4M,4BAAA5kK,GAAAK,KAAA,SAAAC,GA6SlBA,EA5SIhJ,KAAAke,aAAW,GA6Sf5T,EAAGgT,YAAa,EA3ShBhT,EAAG5J,eAAY,EA6Sf4J,EAAGijK,aAAc,EA3StBjjK,EAAAkjK,kBAAe,EACdljK,EAAAmjK,YAAW,EAEf,YAAArQ,EACY/6J,EAAW2I,YAAK,UAAA,wBAAA,yBA+ShB3I,EAAW2I,YAAY,QAAS,WAAY,yBA1SpDwR,MA+SIna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GA3ST5I,EAAA2I,YAAY,QAAA,kCA6nBpBV,EAAGojK,sBAAwB,SAAU5/B,EAAU6/B,GAK3C,GA5SIrjK,EAAG+S,UAAQ,CACX,GAAG0wH,IA6SCuyB,QAASh2J,EAAGm0J,QAAQ6B,QACpByL,YAAazhK,EAAGm0J,QAAQsN,YA3S3BhtF,IAAA+uD,EAAAz8G,IA6SGu8I,UAAWD,EA1SfjN,GAAgBmN,iCAAA9/B,GAAAhlI,KAAA,SAAAC,GACZ,GAAW,MAAXA,EAAAlI,OAAW,CACXuB,EAAe2I,YAAQ,UAAA,wBAAiB,yBAExCV,EAAAm0J,QAAcsN,YAAA/iK,EAAAhJ,KAAA,GAAA+rK,WA8SV,IAAI+B,GAAmB7mK,KAAKC,MAAMD,KAAKC,MAAM8B,EAAIhJ,KAAK,GAAG+rK,aAAa,cA3S9EzhK,GAAA+hK,0BAEQ,KAAG,GAAA7mK,KAAAsoK,GACCA,EAAQzuD,eAAA75G,IACP8E,EAAI+hK,wBAAQlqK,MACNkvB,IAAA7rB,EACAk5G,aAAAovD,EAAqBtoK,IAkThC,IAAIuoK,GAAoB9mK,KAAKC,MAAMD,KAAKC,MAAM8B,EAAIhJ,KAAK,GAAG+rK,aAAa,cACvEzhK,GAAGuhK,uBAzSH,KAAG,GAAArmK,KAAAuoK,GA6SKA,EAAkB1uD,eAAe75G,IA3SrC8E,EAAAuhK,qBAAA1pK,MACAkvB,IAAA7rB,EA6SQk5G,aAAcqvD,EAAkBvoK,SArSnDnD,GAAA2I,YAAA,QAAA,iBACUrJ,WAAA,EACR+F,KAAA,QAgTC,SAAUuD,GACN5I,EAAW2I,YAAY,QAAS,wBAC5BrJ,WAAW,EACX+F,KAAM,aAOlB,IAAiB,iBAAbimK,EACA,IAAK,GAAInoK,KAAK8E,GAAG+hK,wBACT/hK,EAAG+hK,wBAAwB7mK,GAAG6rB,MAAQy8G,EAASz8G,KAC/C/mB,EAAG+hK,wBAAwBzsI,OAAOp6B,EAAG,OAM7C,KAAK,GAAIA,KAAK8E,GAAGuhK,qBACTvhK,EAAGuhK,qBAAqBrmK,GAAG6rB,MAAQy8G,EAASz8G,KAC5C/mB,EAAGuhK,qBAAqBjsI,OAAOp6B,EAAG,uQAjyB1D9G,QACKC,OAAO,4CACPe,WAzSQ,mCAA4B8+K,MAsmC7C,WACI,YAOA,SAASC,GA5Se1pK,EAA0B1Q,EAAMhC,EAAWyC,EAAAH,EAAAL,EAAAkzC,EAAAn7B,EA6S/D2D,EAAaD,EA5Sam1D,EAA4Bh5D,EAAwBE,EAAA3X,EAAAi8J,EAAAge,GA0U9E,QAASliK,KAEL,GAAI8T,IACA7T,UAAWA,EACXrc,UAAW,KACXguD,WAAY,KAEhBswH,GAAqCC,8BA5SeruJ,GAAyBvnB,KAAK,SAASC,GA6SpE,MAAfA,EAAIlI,SACJwJ,EAAG8xJ,iBAAmBpzJ,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAGpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAIxD,IAAIu2J,IACA9kJ,UAAWA,EACXvc,OAAQ,IAGZg1E,GAA6BI,iBAAiBisF,GA5SSx4J,KAAQ,SAAAC,GA6SxC,MAAfA,EAAIlI,SACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,4BAO5D,QAAS4zK,GAAkBtgB,EA5SSz1J,GA+ShC,GAAIynB,IACA7T,UAAWA,EACX2xC,WAAY,EACZhuD,UAAWk+J,EAGfoC,GAA2BuJ,gBAAgB35I,GAAWvnB,KAAK,SAAUC,GACjE,GAAmB,MAAfA,EAAIlI,OAAgB,CAGpB,GAFAwJ,EAAGgmD,aAAetnD,EAAIhJ,KAElBsK,EAAG+S,UACH,IAAK,GAAI8E,KA5SG7X,GAAIgmD,aA6SRhmD,EAAGgmD,aA5SQnuC,GAAQisC,aAAA9jD,EAAAm0J,QAAwBrwG,aA6S3C9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAanuC,GAK1D7X,GAAGsS,WAAY,IAGpB,SAAU3R,GACT5I,EAAW2I,YA5SU,QAAS,mBAAG,4BA+SzC,QAASsT,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGm0J,WAGP,QAAS//B,KACLp0H,EAAGgT,YA5Sa,EA6ShBhT,EAAG+S,WAAY,EACf/S,EAAGm0J,WAGP,QAASogB,GAAoBpgB,GACzBn0J,EAAGsS,WAAY,EACftS,EAAGm0J,QAAQ0M,SAEX,IAAI2T,GAAY,GACZx0K,GAAGm0J,QAAQ0M,YACX2T,EAAY,IAEhB,IAAInb,GAAkB,CAElBr5J,GAAG+S,YACHsmJ,EA5SkBr5J,EAAAm0J,QAAAf,eA8StB,IAAI2C,IACA3C,eAAgBiG,EAChBlnJ,UAAWA,EACXrc,UAAWkK,EAAGm0J,QAAQtyI,gBAAgB/rB,UACtCguD,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxC2wH,aAAcz0K,EAAGm0J,QAAQugB,iBA3SjC7T,UAAS2T,EACDnuJ,QAAA,OACAvS,UAAIJ,EAAYrT,OAiTpB+zK,GAAqCO,+BAA+B5e,GAAWt3J,KAAK,SAAUC,GACtFA,EAAIhJ,KAAKke,aAAc,IA3S3B5T,EAAAsS,WAAA,EACItS,EAAAgT,YAAQ,EA6SRjb,EA5SO2I,YAAA,UAA2BhC,EAAIhJ,KAAAme,QAAA,0BA6StCugH,IACAliH,MAEL,SA5SSvR,GA6SR5I,EAAW2I,YA5SQ,QAAA,mBAA4B,4BAiTvD,QAASk0K,GA5SiB9hK,GA8StB9S,EAAG+S,WAAY,EACf/S,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAC1B9S,EAAGgT,YA5SE,CA8SL,KA5SI,GAAG6E,KAAA7X,GAAA2hB,YA6SC3hB,EAAG2hB,YAAY9J,GAAG/hB,YAAckK,EAAGm0J,QAAQr+J,YAC3CkK,EAAGm0J,QAAQtyI,gBAAkB7hB,EAAG2hB,YAAY9J,GAC5Cy8J,EAAkBt0K,EAAGm0J,QAAQr+J,WAWrCkK,GAAGm0J,QAAQugB,iBAAmB10K,EAAGm0J,QAAQsgB,aAEb,OAAxBz0K,EAAGm0J,QAAQ0M,UACX7gK,EAAGm0J,QAAQ0M,WAAY,EAEvB7gK,EAAGm0J,QAAQ0M,WAAY,EAM/B,QAASgU,GAAsB/hK,GAC3B,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIq2K,IACA1hB,eAAgBtgJ,EAAIsgJ,eACpBjhJ,UAAWA,EACXrc,UAAW,EACXguD,WAAY;AACZ2wH,aAAc,GA3SvB5T,UAAA,GA6SS/sJ,UAAW,EACXuS,QAAS,SAzSb+tJ,GAAcO,+BAAAG,GAAAr2K,KAAA,SAAAC,GACD,MAATA,EAAAlI,QACAuB,EAAY2I,YAAQ,UAAAhC,EAAAhJ,KAAAme,QAAA,QACpBugH,IACAliH,KA8SI7X,EAAQwH,MAAM,QAAS,qBAAuBxK,WAAW,EAAM+F,KAAM,QAGzE,SA5SIuD,GA6SAtG,EAAQwH,MAAM,QAAS,kEAAoExK,WAAW,EAAM+F,KAAM,WA1MlI,GAAI4C,GAAKC,IAETD,GAAGqU,kBA5SqBhJ,MAAS,KAAQA,MAAA,KAAAA,MAAmB,KAAAA,MAAA,MA6S5DrL,EAAGsU,SAAWtU,EAAGqU,gBA5Sc,EA8S/BrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,EAErB,IAAIf,GAAcvZ,EAAsBgG,uBACpCgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAG7EnS,GAAGgU,OAASA,EAEZhU,EAAGo0H,OAASA,EACZp0H,EAAGs0K,kBAAoBA,EACvBt0K,EAAGu0K,oBAAsBA,EACzBv0K,EAAG60K,sBAAwBA,EAC3B70K,EAAG40K,oBAAsBA,EACzB50K,EAAG+0K,mBAAoB,EAGvB/0K,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAEf/S,EAAGm0J,WAEHjiJ,4SAnCJ9d,QACKC,OAAO,4CACPe,WA5SO,mCAA2B++K,MAkgB3C,WACI,YAOA,SAASa,GAA2BvqK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQkzC,EAAiBn7B,EACrG2D,EAAaD,EA5SOm1D,EAAoC8oF,EAA+B9hJ,EAAAE,EAAA3X,GA8UvF,QAAS+X,KAELlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IACA7T,UA5SKA,EA6SLvc,OAAQ,IACRg+J,YA5Sa,OA8SjBF,GA5SmBG,oBAA+B7tI,GAAAvnB,KAAA,SAAAC,GA6S3B,MAAfA,EAAIlI,SACJwJ,EAAG8zJ,iBAAmBp1J,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GA3SjB5I,EAAkB2I,YAAA,QAAA,mBAAA,oBAiTlB,QAASqzJ,GAAUC,EAAYz1J,GAEf,GAAIynB,IACA7T,UAAWA,EACXvc,OAAQ,IACRg+J,YAAa,OACb99J,UAAWk+J,EAEfN,GAA8BO,qCAAqCjuI,GAAWvnB,KAAK,SAAUC,GA3SzF,MAAAA,EAAAlI,SA6SIwJ,EAAGkiG,YAAcxjG,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAIxE,QAASqvG,GAAYj9F,GA3S5B9S,EAAYgT,YAAA,EACThT,EAAA+S,WAAA,EA8SQ/S,EAAGk0J,oBAAsB9/J,QAAQ8e,KAAKJ,GA3SzC9S,EAAAm0J,QAAO7xI,YAAAtiB,EAAAk0J,oBAAA5xI,WA+SJ,KAAK,GAAIpnB,KAAK8E,GAAG8zJ,iBACT9zJ,EAAG8zJ,iBAAiB54J,GAAGpF,WAAakK,EAAGk0J,oBAAoBp+J,YA5SlEkK,EAAAm0J,QAAAtyI,gBAAiC7hB,EAAA8zJ,iBAAe54J,GAIlD64J,GAAA/zJ,EAAAm0J,QAAqBtyI,gBAAiB/rB,UAAS,WAC/C,IAAA,GAAcoF,KAAA8E,GAAAkiG,YACLliG,EAAAkiG,YAAAhnG,GAAA6rD,SAAA/mD,EAAAk0J,oBAAAntG,SACT/mD,EAAcm0J,QAAA1T,aAAAzgJ,EAAAkiG,YAAAhnG,KAQd,KAAA,GA2SKk5J,GAAYz3J,KAAKC,MAAMoD,EAAGk0J,oBAAoBG,WA3S1Cn5J,EAAA,EAAAA,EAAA0H,OAAAD,KAAAyxJ,GAAAj5J,OAAAD,IA8S6B,sBAA7B0H,OAAOD,KAAKyxJ,GAAWl5J,KA5SvB8E,EAAAm0J,QAAAG,YAAA1xJ,OAAAmK,OAAAqnJ,GAAAl5J,GAIT8E,GAAAm0J,QAAA1sG,SAAsBznD,EAAAk0J,oBAAAjnG,UA+SrBjtD,EAAGm0J,QAAQI,gBAAkBv0J,EAAGk0J,oBAAoBliC,YACpDhyH,EAAGm0J,QAAQK,aAAex0J,EAAGk0J,oBAAoBO,kBA5SlDz0J,EAAAm0J,QAAA1pI,UAAazqB,EAAAk0J,oBAAAzpI,UACbzqB,EAAAm0J,QAAYO,cAAA10J,EAAAk0J,oBAAAQ,cA8SX10J,EAAGm0J,QAAQQ,eAAiB30J,EAAGm0J,QAAQI,gBAAkBv0J,EAAGm0J,QAAQG,WA1SxE,IAAAM,GAAAj4J,KAAAC,MAAAoD,EAAAk0J,oBAAAlR,iBA+SIhjJ,GAAGm0J,QAAQU,IAAMD,EAAYC,IA5S7B70J,EAAAm0J,QAAIW,WAAYF,EAAAE,WA8ShB90J,EAAGm0J,QA7SCY,WAAWH,EAAAG,WA8Sf/0J,EAAGm0J,QA7SCa,mBAAWJ,EAAAI,mBA8Sfh1J,EAAGm0J,QA7SCc,iBAAYL,EAAAK,iBA8ShBj1J,EAAGm0J,QAAQe,eAAiBN,EAAYM,eA5SxCl1J,EAAAm0J,QAAAgB,kBAAAP,EAAqCO,kBA8SrCn1J,EAAGm0J,QA7SKiB,WAAeR,EAAKQ,WA8S5Bp1J,EAAGm0J,QA7SQkB,oBAAmBT,EAAIS,oBA8SlCr1J,EAAGm0J,QA7SQmB,qBAAYV,EAAAU,qBA8SvBt1J,EAAGm0J,QAAQoB,qBAAuBX,EAAYW,qBAC9Cv1J,EAAGm0J,QAAQqB,mBAAqBZ,EAAYY,mBAC5Cx1J,EA7SGm0J,QAAAsB,aAAeb,EAAAa,aA8SlBz1J,EAAGm0J,QA7SCuB,mBAAuBd,EAASc,mBA8SpC11J,EAAGm0J,QAAQwB,iBAAmBf,EAAYe,iBAC1C31J,EAAGm0J,QAAQyB,kBAAoBhB,EAAYgB,kBAI/C,QA7SQxhC,KA+SJp0H,EAAGgT,YAAa,EA5ShBhT,EAAA+S,WAAA,EA8SAb,IAmCJ,QAASugJ,KA3SDz4J,EAAA8F,GAAA,gCAAgChK,UAAoB+/J,EAAA5/J,OAAA,oBAAAC,UAAA,KAiI5D,GAAI8J,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EA5SEqU,gBAAc,EA8S9BrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SA5SOC,GA6S7BzU,EAAGuU,YAAcE,GAUrBzU,EAAGm0J,WACHn0J,EAAG+vG,YAAcA,EACjB/vG,EAAGsS,WAAY,EACftS,EAAGo0H,OA5SSA,EA6SZp0H,EAAG+zJ,UAAYA,EACf/zJ,EAAGyyJ,SAASA,CAElB,IAAIoD,GAAe77J,EAAOvE,OAAOK,UAC7B69J,EAAc35J,EAAOvE,OAAOM,OACtBoc,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAM7ED,KA0GClS,EAAG81J,qBAAuB,SAAUhD,GAEjC,GA7SItxI,EA+SAA,GADY,WAAZsxI,EACW,EAEA,CAEf,IAAIU,GAAar5J,EAAsBgG,uBAEnC41J,GACAC,QAASh2J,EAAGk0J,oBAAoB8B,QA5ShCpgK,OAAA4rB,EACAoyI,YAAW,OACX9/I,UAAA0/I,EAAYnzJ,OAgThBqzJ,GAA8BuC,uBAAuBF,GAAWt3J,KAAK,SAAUC,GA5S/E,MAAAA,EAAAlI,SACQwJ,EAAAsS,WAAe,EACftS,EAAGgT,YAAA,EA8Sa,WAAZ8/I,EA5SA/6J,EAAG2I,YAAW,UAAA,wBAAA,WA+Sd3I,EA7SW2I,YAAA,UAAgB,wBAA0B,WA8SzDwR,MAEL,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yRA7KhEtM,QACKC,OAAO,sCACPe,WAAW,6BAA8B4/K,MAwLlD,WACI,YAOA,SA7SIC,GAA6BxqK,EAAS1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA+0C,EAAA9oG,EAAAsqG,EAAA/6K,EAAAi8J,GA0UtC,QAASlkJ,KAEL,GAAI8T,IACA7T,UA7SIA,EA8SJvc,OAAQ,IA5STE,UAAU,EAgTb80E,GAA6BG,eAAe/kD,GAAWvnB,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,SACJwJ,EAAGm1K,gBAAkBz2K,EAAIhJ,KA5S5BsK,EAAAsS,WAAA,IAEF,SAAA3R,GACA5I,EAAU2I,YAAa,QAAA,mBAAA,oBAmT9B,QAAS6+J,GA7SGvL,GA8SR,GAAIA,EAAa,GAAmBr+J,QAAdq+J,EAAyB,CAC3C,GAAIhuI,IACA7T,UAAWA,EACX2xC,WAAY,EACZhuD,UAAWk+J,EAGfkhB,GAAgCvV,gBAAgB35I,GAAWvnB,KAAK,SAAUiB,GACjD,KAAjBA,EAAOlJ,SACPwJ,EAAGo1K,iBAAmB11K,EAAOhK,KA5S9BsK,EAAAsS,WAAA,SAKPtS,GAAGo1K,oBA8SHp1K,EAAGsmH,SAASn0D,iBAAmB,KAC/BnyD,EAAGw3J,yBACHx3J,EAAGq1K,YAAa,EA1SxB,QAASC,GAAA5L,EAA2BnrK,GA+ShC,GA7SImrK,EAAA,GAAA/zK,QAAA+zK,EAA4C,CAEhD,GAAQxJ,IACA/tJ,UAAAA,EACArc,UAAAkK,EAAAsmH,SAAoBivD,gBAAAz/K,UACpBqqK,QAAA,gBACAr8G,WAAW4lH,EAgTftT,GA7SegK,2BAAAF,GAAAzhK,KAAA,SAAA4hK,GACA,MAAXA,EAAA7pK,SACAwJ,EAAAm4J,cAASkI,EAAA3qK,KA8SD6I,GACAA,MAET,SA7SSkiK,GA8SR1oK,EA7SI2I,YAAW,QAAY,mBAAoB,wBAkTnDV,GAAGm4J,iBACHn4J,EAAGsmH,SAASs6C,kBAAoB,KAChC5gK,EAAGw3J,yBACHx3J,EAAGq1K,YA7Sa,EAiTxB,QAASG,GAAcnc,GACnB,GAAIA,EAAkB,GAAwB1jK,QAAnB0jK,EAA8B,CACrD,GAAItD,IA5SP5jJ,UAAAA,EACTrc,UAAAkK,EAAAsmH,SAAAivD,gBAAAz/K,UA8SgBguD,WAAY9jD,EAAGsmH,SAASn0D,iBAAiBrO,WACzCsvG,eAAgBiG,EA3S3Br5J,GAAAw3J,yBAgTOkc,EAA6B+B,6BAA6B1f,GAAWt3J,KAAK,SAAUC,GA7SvF,GAAA,MAAAA,EAAAlI,OAA2B,CACnBwJ,EAAAw3J,sBAAa94J,EAAAhJ,KACjBsK,EAAAsS,WAAA,EA+SOtS,EAAGq1K,YAAa,EA5SlBr1K,EAAGy/B,WAEd,KAAc,GAAA5nB,KAAA7X,GAAAw3J,sBACwB,GAAtCx3J,EAAuBw3J,sBAAe3/I,GAAAkiJ,SACpB/5J,EAAAw3J,sBAAA3/I,GAAA8nB,YAAA,EAuTG3/B,EAAGw3J,sBAAsB3/I,GAAG8nB,YAAa,MA1SrD3/B,GAAAw3J,yBACGx3J,EAAAq1K,YAAA,GAgTJ,SAAU10K,GA7SvB5I,EAAsB2I,YAAO,QAAA,mBAAA,wBAkTnBV,GAAGw3J,yBACHx3J,EAAGq1K,YAAa,EAOxB,QA9SQK,GAAYpvD,GAEJ,GACRqvD,IADQ31K,EAAAw3J,yBAGZ,KAAA,GAAAt8J,KAAA8E,GAAAw3J,sBAC4B,GAAhBx3J,EAAWw3J,sBAAKt8J,GAAAykC,YACjBg2I,EAAmB99K,KAAImI,EAAAw3J,sBAAAt8J,GAAA06K,WAG/B,IAAU5vJ,IACE7T,UAAYA,EA+SCrc,UAAWkK,EAAGsmH,SAASivD,gBAAgBz/K,UACvCguD,WAAY9jD,EAAGsmH,SAASn0D,iBAAiBrO,WACzCsvG,eAAgB9sC,EAASs6C,kBAAkB7nJ,GAC3C88J,YAAal5K,KAAKqkB,WAAYjI,GAAI48J,IA7SnC7hK,UAAUJ,EAAArT,OAiTzBqzK,GA9SeoC,iCAAA9vJ,GAAAvnB,KAAA,SAAAC,GACH,MAARA,EAAQlI,SACRuB,EAAa2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,6BACbugH,MAEJ,SAAAzzH,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,+BAyW5C,QA9SO6K,GAAQsd,GAEA,GAAAktJ,GAAA/1K,EAAAy/B,SAAuBr8B,QAAAylB,EAEvBktJ,KAAA,EAAe/1K,EAAAy/B,SAAY5nC,KAAAgxB,GAE3B7oB,EAAAy/B,SAAAnK,OAAmBygJ,EAAY,GAiTlC,QAAStyJ,GAAUuyJ,GA1SX,IAAAh2K,EAAAy/B,SAAAtkC,OAEhB/G,QAAAyO,QAAAmzK,EAAA,SAAAlsK,GAgToB9J,EAAGy/B,SAAS5nC,KAAKiS,EAAI+e,MAMlB7oB,EAAGy/B,SAAStkC,OAAS,GAAK6E,EAAGy/B,SAAStkC,QAAU6E,EAAGw3J,sBAAsBr8J,OAEhF/G,QAAQyO,QAAQmzK,EAAY,SAAUlsK,GAElC,GAAIisK,GAAQ/1K,EAAGy/B,SAASr8B,QAAQ0G,EAAI+e,GA5SxCktJ,KAAA,GAAoB/1K,EAAAy/B,SAAA5nC,KAAAiS,EAAA+e,MAOxB7oB,EAAAy/B,YAkThB,QAAS20F,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAGq1K,YA9SS,EA+SZr1K,EAAGsS,WA9SK,EA+SRtS,EAAGsmH,YACHtmH,EA9SGy/B,YAuBP,GA7SIz/B,GAAGC,IA+SPD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SA7SKtU,EAAAqU,gBAAY,EA+SpBrU,GAAGuU,YA7SK,EA8SRvU,EAAGwU,qBAAuB,SAAUC,GA5ShCzU,EAAAuU,YAAIE,GAgTRzU,EAAGgT,YA7SK,EA8SRhT,EAAGq1K,YAAa,EAChBr1K,EAAGyjB,UA7SKA,EA8SRzjB,EAAGuL,OA7SKA,EA+SRvL,EAAGsS,WA7SK,EA8SRtS,EAAGo0H,OA7SKA,EA8SRp0H,EAAGsmH,WACH,IAAIn0G,GA7SIhY,EAAWgG,uBAAAwU,gBAAAxC,UA8SfuB,EA7SavZ,EAAAgG,sBA8SjBH,GAAGu/J,cA7SgBA,EA8SnBv/J,EAAGs1K,mBAAqBA,EACxBt1K,EAAGw1K,cAAgBA,EACnBx1K,EAAG01K,YAAcA,EACjB11K,EAAGy/B,YAGHvtB,8OAjCJ9d,QACKC,OA7SM,0CA8SNe,WA7SM,iCAAU6/K,MAilBzB,WACI,YAOA,SAASgB,GAA+BxrK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAczxF,EAAiBn7B,EA9S3H2D,EAAAD,EAAAm1D,EAAA8oF,EAAA0C,EAAAD,EAAAvkJ,EAAAE,EAAA3X,EAAAk8J,EAAAC,GAkXI,QAASpkJ,KACLlS,EAAGjK,OAAS49J,EAEZ3zJ,EAAGu2J,oBA/SuBC,MAAA,kBAAAA,MAAA,aAAAA,MAAA,eAiT1BJ,EA/SOwB,eAAwB,QAAAn5J,KAAA,SAAAC,GAC3B,GAAgB,MAAbA,EAAAlI,OAAa,CAgTZwJ,EAAG6xF,SAAWnzF,EAAIhJ,IA7SrB,IAAAqhK,IAgTO5kJ,UAAWA,EA9SnBrc,UAAmB+/J,EAgTXjC,YAAa,OA9SjBh+J,OAAA,IAEAwgK,GAAuBY,8BAAgBD,GAAAt4J,KAAA,SAAA89J,GACvC,GAAS,MAATA,EAAS/lK,OAAA,CACTwJ,EAAA8zJ,iBAAYyI,EAAA7mK,IAiTJ,IAAIwhK,IA9ShB/kJ,UAA2BA,EACdrc,UAAW+/J,EAGZQ,GAAAc,+BAAAD,GAAAz4J,KAAA,SAAA24J,GAgTI,GAA2B,MAAvBA,EAAY5gK,OAAgB,CA9S7BwJ,EAAAq3J,gBAAAD,EAAA1hK,IAiTC,IAAIswB,IACA7T,UAAWA,EACXrc,UAAW+/J,EA9SlCjC,YAAA,WAGEwC,GAAwBK,oCAAAzwI,GAAAvnB,KAAA,SAAA4hK,GACX,GAAA,MAAAA,EAAA7pK,OAAA,CAgTYwJ,EAAGgmD,aAAeq6G,EAAK3qK,IAEvB,IAAIghK,IA9SAvkJ,UAAAA,EACTwkJ,OAAA,aAERR,GAAAS,uBAAAF,GAAAj4J,KAAA,SAAAo4J,GAC4B,MAAhBA,EAAArgK,QACCwJ,EAAA82J,gBAAiBD,EAAAnhK,KACzBsK,EAAAsS,WAAA,GAiTgBva,EAAW2I,YAAY,QAAS,yBAA0B,4BAE/D,SAAUC,GA9SZ5I,EAAA2I,YAAA,QAA6B,mBAA0B,6BAEzEV,EAAAsS,WAA4B,IAE5B,SAAa3R,GAgTA5I,EAAW2I,YAAY,QAAS,mBAAoB,8BA5S/D,SAAYC,GACT5I,EAAG2I,YAAA,QAAyB,mBAAe,4BAiT/CV,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,4BAExDV,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YA/SQ,QAAA,mBAAyB,4BA6YpD,QAASy4J,GAAqBE,EAAiB96J,GAC3C,GAAI86J,EAAiB,CAEjB,GAAIC,IACAnnJ,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxCsvG,eAAgBiG,EA5S5Br5J,GAASw3J,yBAiTDlB,EA/SuBgB,6BAAiBgC,GAAA76J,KAAA,SAAA84J,GAgTpC,GAA4B,MAAxBA,EAAa/gK,OAAgB,CAE7B,GAhTAwJ,EAAAw3J,sBAAoBD,EAAc7hK,KAgT9BsK,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CACrC6E,EA/SCq4J,oBAAmB,CAgTpB,KAAK,GAAIn9J,KAAK8E,GAAGw3J,sBAAuB,CA7SvCx3J,EAAAw3J,sBAAsBt8J,GAAAq+J,SAAA,EAgTnBv5J,EAAGw3J,sBAAsBt8J,GAAGs+J,UAAY,EACxCx5J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU,EACtCz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EA9S1CzwC,EAAAw3J,sBAAuBt8J,GAAAw+J,gBAAA,EAgTtB15J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkB,GA9SpEv2J,EAAAw3J,sBAA4Bt8J,GAAAy+J,YAAe,EAgTvC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA9SxC55J,EAAGw3J,sBAAkBt8J,GAAA2+J,cAAA,CAiTrB,IAAIC,KACwC,IAAxC95J,EAAGw3J,sBAAsBt8J,GAAG6+J,UACyB,IAAjD/5J,EAAGw3J,sBAAsBt8J,GAAG8+J,mBAC5BF,IAAgBtD,MAAS,aA9S3Bx2J,EAAAw3J,sBAA0Bt8J,GAAAy+J,YAAS,EAgTjC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA9S5C55J,EAAAw3J,sBAAoBt8J,GAAU2+J,cAAK,IAkT/BC,IAAgBtD,MAAS,kBAAqBA,MAAS,eA9S3Dx2J,EAAAw3J,sBAAyBt8J,GAAKy+J,YAAI,EAgT9B35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAG/C75J,EAAGw3J,sBAAsBt8J,GAAG+3B,SAAW6mI,EA9S9C95J,EAAAw3J,sBAAAt8J,GAAA47C,aAAAgjH,EAAA,IAkTO95J,EAAGw3J,sBAAsBt8J,GAAG+3B,aAmBxCjzB,EAAGsS,WAAY,IA9SvB,SAAA3R,GACI5I,EAAA2I,YAAA,QAAA,mBAAkC,wBAS1CV,GAAAm0J,QAAQpwG,iBAAA,KACT/jD,EAAAg4J,qBACAh4J,EAAAm0J,QAAA9rI,KAAuB,GACnBroB,EAAAm4J,iBAiTCn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGq4J,oBAAqB,EAGhC,QAAStE,GAAU8D,EAAkBt5J,GAIjC,GAHKyB,EAAG+S,WACJ+kJ,IAEAD,EAAkB,CA9SvB,GAAA7xI,IACA7T,UAAAA,EACA2xC,WAAA+zG,EACA/hK,UAAA+/J,EACAxgD,aAAe,EAmTV+gD,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CA/SxBwJ,EAAAg4J,kBAAAt5J,EAAAhJ,KAEAsK,EAAAg4J,kBAAA78J,OAAA,EACG6E,EAAAi4J,aAAA,EAEZj4J,EAAkBi4J,aAAA,CAkTL,KAAK,GAAI/8J,KAAK8E,GAAGg4J,kBA/SJ,IAA1Bh4J,EAAAg4J,kBAA0B98J,GAAA03B,gBAiTL5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eA7SpF,IAAAqkI,IAiTO9kJ,UAAWA,EA/SpBvc,OAAc,IACdg+J,YAAc,WACd99J,UAAiB+/J,EAGjBnC,GAAaO,qCAAAgD,GAAAx4J,KAAA,SAAAC,GACQ,MAArBA,EAAAlI,SACAwJ,EAAAkiG,YAAoBxjG,EAAAhJ,MACJsK,EAAA+S,UAyCP/S,EAAAsS,WAAA,IAkTD,SAhTS3R,GAiTR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,EAAGsS,WAAY,EAEX/T,GACAA,MAET,SAAUoC,GACT5I,EAAW2I,YAAY,QAhTI,mBAAoB,wBAoTnDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGq4J,oBAAqB,EAIhC,QAASC,GAAmBC,EAASh6J,GAEjC,GADAu5J,IACIS,EAAS,CAET,GAAIvyI,IACA7T,UAAWA,EACX2xC,WAAY9jD,EAAGm0J,QAhTKpwG,iBAAWD,WAiT/BhuD,UAAW+/J,EACXxgD,aAAckjD,EAGlBnC,GAA2B2B,mBAAmB/xI,GAAWvnB,KAAK,SAAUC,GACpE,GAhTW,MAgTPA,EAhTIlI,OAAe,CAiTnBwJ,EAAGw4J,qBAAuB95J,EAAIhJ,IA/S/B,IAAA+iK,GAAU,EACT,KAAA,GAAAv9J,KAAW8E,GAAAw4J,qBAiTHx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBA/S1G5yB,EAAYg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,gBAGiCj9B,QAAzCqK,EAAAg4J,kBAAqB98J,GAAAulJ,eAiThBgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAE5HroB,GAAGm0J,QAAQ9rI,KAAOowI,EAGlBC,EAAgBH,GAEhBv4J,EAAGsS,WAAY,EAEX/T,GACAA,MAGT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAK1B,QAASqwI,GAAgBH,GAErB,GAAIvyI,IACA7T,UAAWA,EACXrc,UAAW+/J,EACXjC,YAAa,WACbh+J,OAAQ,IACRmxD,OAAQwxG,EAGZv4J,GAAGm0J,QAAQwE,YAAc,EACzB34J,EAAGm0J,QAAQyE,QAAU,EACrB54J,EAAGm0J,QAAQ0E,WAAa,EACxB74J,EAAGm0J,QAAQ2E,iBAAmB,EAC9B94J,EAAGm0J,QAAQ4E,WAAa,EAExB/4J,EAAGm0J,QAAQniC,YAAc,EACzBhyH,EAAGm0J,QAAQW,WAAa,EAExB90J,EAAGm0J,QAAQQ,eAAiB,EAC5B30J,EAAGm0J,QAAQY,WAAa,EACxB/0J,EAAGm0J,QAAQa,mBAAqB,EAIhCqB,EAAuC2C,kCAAkChzI,GAAWvnB,KAAK,SAAUC,GAC/F,GAAmB,MAAfA,EAAIlI,OAAgB,CAGpB,GAFAwJ,EAAGi5J,mBAAqBv6J,EAAIhJ,KAExBsK,EAAGi5J,mBAAmB99J,OAAS,GAC3B6E,EAAGi5J,mBAAmB,GAAGN,YAAc,EAAG,CAC1C34J,EAAGm0J,QAAQwE,YAAc34J,EAAGi5J,mBAAmB,GAAGN,YAClD34J,EAAGm0J,QAAQyE,QAAU54J,EAAGi5J,mBAAmB,GAAGL,QAC9C54J,EAAGm0J,QAAQ0E,WAAa74J,EAAGi5J,mBAAmB,GAAGJ,WACjD74J,EAAGm0J,QAAQ2E,iBAAmB94J,EAAGi5J,mBAAmB,GAAGH,iBACvD94J,EAAGm0J,QAAQ4E,WAAa/4J,EAAGi5J,mBAAmB,GAAGF,UAEjD,KAAK,GAAI79J,KAAK8E,GAAG6xF,SACT7xF,EAAG6xF,SAAS32F,GAAGs3F,QAAUxyF,EAAGi5J,mBAAmB,GAAGzmE,SAClDxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAAS32F,GAIpDi+J,GAAqBn5J,EAAGi5J,mBAAmB,GAAG7F,gBAItDpzJ,EAAGsS,WAAY,IAGpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAAS04J,GAAavB,EAAkBt5J,GAChCs5J,GACK73J,EAAG+S,WACJghJ,EAAU8D,EAAkB,SAAUt5J,GAC9BA,GACAA,MAEZyB,EAAGsS,WAAY,IAGftS,EAAGm0J,QAAQpwG,iBAAmB,KA/StC/jD,EAASg4J,qBACDh4J,EAAAm0J,QAAA9rI,KAAiB,GAiTjBroB,EAAGm4J,iBA/SHn4J,EAAAo4J,qBAAqB,EAiTrBp4J,EAAGq4J,oBAhTY,GAmTvB,QAASP,KACL93J,EAAGm0J,QAAQwE,YAAc,EACzB34J,EAAGm0J,QAAQniC,YAAc,EACzBhyH,EAAGm0J,QAhTIQ,eAAA,EAiTP30J,EAAGm0J,QAAQyE,QAAU,EACrB54J,EAAGm0J,QAhTCW,WAAA,EAiTJ90J,EAAGm0J,QAhTKY,WAAI,EAiTZ/0J,EAAGm0J,QAAQa,mBAhTI,EAiTfh1J,EAAGm0J,QAAQM,kBAhTQ,EAiTnBz0J,EAAGm0J,QAAQ8F,cAhTQ,EAiTnBj6J,EAAGm0J,QAAQ+F,mBAhTmB,EAiT9Bl6J,EAAGm0J,QAAQgG,eAAiB,CAE5B,KAAK,GAAIj/J,KAAK8E,GAAGw3J,sBAObx3J,EAAGw3J,sBAhTgBt8J,GAAAq+J,SAAA,EAiTnBv5J,EAAGw3J,sBAAsBt8J,GAAGs+J,UAAY,EACxCx5J,EAAGw3J,sBAhTiBt8J,GAAAu+J,QAAa,EAiTjCz5J,EAAGw3J,sBAhToBt8J,GAAAu1C,WAAA,EAiTvBzwC,EAAGw3J,sBAhTqBt8J,GAAGw+J,gBAAA,EAiT3B15J,EAAGw3J,sBAhTqBt8J,GAAA47C,aAAgB92C,EAAAu2J,kBAAS,GAiTjDv2J,EAAGw3J,sBAhTqBt8J,GAAGy+J,YAAA,EAiT3B35J,EAAGw3J,sBAhTqBt8J,GAAG0+J,WAAA,EAiT3B55J,EAAGw3J,sBAhTqBt8J,GAAG2+J,cAAA,CAkT/B75J,GAAGm0J,QAAQO,cAAgB,EAC3B10J,EAAGm0J,QAAQiG,SAAW,EACtBp6J,EAAGm0J,QAAQ1pI,UAAY,EAG3B,QAAS4vI,KAELr6J,EAAGm0J,QAAQQ,gBAhTgB9oI,WAAA7rB,EAAAm0J,QAAsBwE,aAAc9sI,WAAA7rB,EAAAm0J,QAAAniC,cAAAlmG,QAAA,GAiT/D9rB,EAAGm0J,QAAQY,YAhTalpI,WAAG7rB,EAAAm0J,QAAAyE,SAAyB/sI,WAAe7rB,EAAAm0J,QAAWW,aAAAhpI,QAAA,GAiT9E9rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQY,aAAajpI,QAAQ,GACpH9rB,EAAGm0J,QAAQ8F,eAhTcpuI,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAM,mBAAA,KAAA3oI,QAAA,GAiTzB9rB,EAAGm0J,QAAQgG,gBAhTgBtuI,WAAA7rB,EAAAm0J,QAAyBQ,gBAAW9oI,WAAA7rB,EAAAm0J,QAAA+F,oBAAA,KAAApuI,QAAA,EAkT/D,IAAIwuI,GAAqB,EACrBF,EAAW,CAEf,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAC+B,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAC0B,iBAAlD/5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAEY,gBAAjDx2J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAElF,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,IA7SnJwuI,EAAezuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAEL,GAAfx5J,EAAUw3J,sBAAKt8J,GAAAq/J,QACdv6J,EAAWw3J,sBAAqBt8J,GAAAs/J,WAAA3uI,WAAoB7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GAiT5CsuI,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAGV,YAAlDx6J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAE9C8D,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAEpD,GAArCz5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QA/S7Bv6J,EAAAw3J,sBAAmBt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu+J,SAAA5tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GAC3BsuI,GAAoBvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,aAGE,cAAtBx6J,EAAAw3J,sBAAsBt8J,GAAA47C,aAAA0/G,QAkToC,gBAAjDx2J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GA9ShK,gBAAA9rB,EAAAw3J,sBAAAt8J,GAAA8+J,kBACJh6J,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAY,YAAAlpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAEkB,wBAAlB9rB,EAAkBw3J,sBAAAt8J,GAAA8+J,oBAiTNh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,IA7SvKwuI,EAAYzuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,iBAEE,GAAd15J,EAAAw3J,sBAAct8J,GAAAq/J,QAiTNv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAmB7tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GAC1KsuI,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAQ7E,IAAIE,GAhTe,CAiTf16J,GAAG82J,gBAAgB37J,OAAS,IAC5Bu/J,GAhTiB16J,EAAAm0J,QAAQQ,eAAmB9oI,WAAA7rB,EAAA82J,gBAAA,GAAArmH,YAAA,KAAA3kB,QAAA,GAiT5CsuI,GAhTmBvuI,WAAA6uI,IAoTvB16J,EAAGm0J,QAAQiG,SAhTKA,EAAatuI,QAAA,GAiT7B9rB,EAAGm0J,QAAQO,cAhTgB4F,EAAAxuI,QAAA,GAiT3B9rB,EAAGm0J,QAAQ1pI,WAhTaoB,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAO,eAAA7oI,WAAA7rB,EAAAm0J,QAAAiG,WAAAtuI,QAAA,GAqT5B,QAASgvI,GAhTOF,EAA8Bj1G,GAiT1C,GAAI20G,GAhToB,EAiTpBF,EAAW,CAEf,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAC+B,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAE0B,iBAAlD/5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OACzCx2J,EAAGw3J,sBAAsBt8J,GAAGy8J,gBAAiB,EAE7C33J,EAAGw3J,sBAAsBt8J,GAAGu8J,cAAiB5rI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAG6/J,YAEzH/6J,EAAGw3J,sBAAsBt8J,GAAGs/J,UAAa3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eAAiB5rI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,IAK1JH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eAC7F2C,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAK7Dx6J,EAAGw3J,sBAAsBt8J,GAAGy8J,gBAAiB,EAE7C33J,EAAGw3J,sBAAsBt8J,GAAGs/J,UAAa3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw8J,SAAW7rI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,IAEpJH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw8J,SAE7F0C,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAMzEx6J,GAAGm0J,QAAQiG,SAAWA,EACtBp6J,EAAGm0J,QAAQO,cAAgB4F,EAC3Bt6J,EAAGm0J,QAAQ1pI,UAAYzqB,EAAGm0J,QAAQQ,eAAiB30J,EAAGm0J,QAAQO,cAAgB10J,EAAGm0J,QAAQiG,SAE7F,QAAS2J,KAEL,GAAI1I,GAEArY,IAEJ,KAAK,GAAI9nJ,KAAK8E,GAAGw3J,sBACb,GAhT0B,GAgTtBx3J,EAAGw3J,sBAhTmBt8J,GAAA6+J,SAAA,CAkTtB,GAAIsK,GAAO,EACPC,EAAO,CAE2C,kBAAlDtkK,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OA/SzC6N,EAAIrkK,EAAAw3J,sBAAAt8J,GAAAq+J,SAiTJ+K,EAhTItkK,EAAAw3J,sBAAAt8J,GAAAs+J,WAEM,YAALx5J,EAAAw3J,sBAAKt8J,GAAA47C,aAAA0/G,MACd8N,EAAWtkK,EAAAw3J,sBAAqBt8J,GAAAu+J,QAkT2B,cAAlDz5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QA/SrD6N,EAAArkK,EAAAw3J,sBAAAt8J,GAAAu1C,WACE6zH,EAAQtkK,EAAAw3J,sBAAmBt8J,GAAAw+J,iBAK3B2B,GAiTKR,YAAe76J,EAAGw3J,sBAAsBt8J,GAAG2/J,YAC3Cl1G,KAAQ3lD,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,MACjDuE,WAAcsJ,EA/SrB5zH,WAAmBzwC,EAAAw3J,sBAAmBt8J,GAAAu/J,cAC3CzlE,OAAAsvE,EACI9J,UAASx6J,EAAAw3J,sBAAAt8J,GAAAs/J,WAGLxX,EAAWnrJ,KAAAwjK,GAoTnB,GAAI2F,IACA7uJ,UAAWA,EA/SXrc,UAAA+/J,EAiTA/xG,WAhTY9jD,EAAAm0J,QAAWpwG,iBAAKD,WAiT5BiD,OAhTQ/mD,EAAGg4J,kBAAAh4J,EAAAg4J,kBAA2B78J,OAAA,GAAAslJ,aAAA15F,OAiTtCirE,YAhTYhyH,EAAAm0J,QAAQniC,YAiTpB8iC,WAhTQ90J,EAAKm0J,QAASW,WAiTtBL,kBAhTmBz0J,EAAAm0J,QAAAM,kBAiTnBwF,cAAej6J,EAhTCm0J,QAAG8F,cAiTnBC,mBAAoBl6J,EAAGm0J,QAAQ+F,mBAC/BC,eAAgBn6J,EAAGm0J,QAAQgG,eAC3BnX,iBAhTgBrmJ,KAAGqkB,UAAAgiI,GAiTnB0R,cAAe10J,EAhTCm0J,QAAQO,cAiTxBjqI,UAAWzqB,EAAGm0J,QAAQ1pI,UACtBpE,QAhTQ,OAiTRzwB,OAAQ,IACRke,UAAW0/I,EAAWnzJ,OAG1Bg2J,GAhT2BmF,2BAAAwF,GAAAviK,KAAA,SAAAC,GAiTnBA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAhTQ2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,yBAiTR7T,EAAGgT,YAhTK,EAiTRd,MA7SAna,EAAW2I,YAAY,QAAShC,EAAAhJ,KAAAme,QAAA,yBAiThC7T,EAAGgT,YAAa,IAErB,SAhTErS,GACD5I,EAAW2I,YAAA,QAAmB,iCA6XtC,QAhTQ0zH,KAiTJp0H,EAAGgT,YAhTI,EAiTPhT,EAAG+S,WAhTI,EAiTP/S,EAAGm0J,WAIP,QAhTOngJ,KACHhU,EAAGgT,YAAQ,EACXhT,EAAGm0J,WAmTP,QAhTO1B,KACHz4J,EAAG8F,GAAA,gCAA4BhK,UAAA+/J,EAAA5/J,OAAA,oBAAAC,UAAA,KAkTnC,QAhTOykK,GAA6BC,EAAAj1G,GAkThC,IAAK,GAAIzqD,KAAK8E,GAAGw3J,sBAETx3J,EAAGw3J,sBAAsBt8J,GAAG2/J,aAAeD,GACC,GAAxC56J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAChBpkK,QAARgwD,GACA3lD,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GA9Sf,iBAArC75J,EAAAw3J,sBAAqCt8J,GAAA47C,aAAA0/G,OACrCx2J,EAAAw3J,sBAAyBt8J,GAAUy+J,YAAA,EACnC35J,EAAAw3J,sBAAyBt8J,GAAA0+J,WAAa,EACtC55J,EAAAw3J,sBAAyBt8J,GAAA2+J,cAAkB,GAEL,YAAtC75J,EAAAw3J,sBAAsCt8J,GAAA47C,aAAA0/G,OACtCx2J,EAAAw3J,sBAAyBt8J,GAAYy+J,YAAA,EACrC35J,EAAAw3J,sBAAyBt8J,GAAA0+J,WAAe,EAiT/B55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GA9SrC,cAAX75J,EAAWw3J,sBAAAt8J,GAAA47C,aAAA0/G,QACXx2J,EAAAw3J,sBAAYt8J,GAAAy+J,YAAA,EAiTP35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,IAO/D,QAhTOmB,GAAQloJ,GAKX,GA4SA9S,EAAG+S,WAAY,EA9Sf/S,EAAAm0J,QAAI//J,QAAW8e,KAAAJ,GAEf9S,EAAKgmD,aACD,IAAI,GAAG9qD,KAAA8E,GAAAgmD,aACH,GAAIhmD,EAAGgmD,aAAA9qD,GAAA4oD,aAAyB9jD,EAAAm0J,QAAarwG,WAAS,CAiTlD9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,EAE9C,KAhTI,GAAG0U,KAAA5P,GAAA6xF,SAEF7xF,EAAI6xF,SAAGjiF,GAAA4iF,QAAAxyF,EAAsBm0J,QAAG3hE,SAkT7BxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAASjiF,GAQpD,IAhTIsnJ,IACA/kJ,UAAWA,EAiTXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WA/S3CsvG,eAAOpzJ,EAAAm0J,QAAsBf,eAmT9BkD,GAA2BgB,6BAA6BJ,GAAcz4J,KAAK,SAAU84J,GA/SjF,GAA4B,MAAzBA,EAAA/gK,OAAyB,CAmTxB,GAlTDwJ,EAAAw3J,sBAAyBD,EAAc7hK,KAkTlCsK,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CA9SzC6E,EAAAq4J,oBAAyB,CAE1B,KAAA,GAAAn9J,KAAA8E,GAAsBw3J,sBAkTbx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EA/S3Cv5J,EAAAw3J,sBAAyBt8J,GAAAs+J,UAAA,EAC9Bx5J,EAAAw3J,sBAAyBt8J,GAAAu+J,QAAoB,EAiTpCz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EA/S7CzwC,EAAAw3J,sBAAyBt8J,GAAAw+J,gBAAqB,EACnD15J,EAAAw3J,sBAAyBt8J,GAAA47C,aAAoB92C,EAAAu2J,kBAAsB,GAiT1Dv2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA/SxD55J,EAAAw3J,sBAAgCt8J,GAAA2+J,cAAsB,CAG/C9F,GAAA/zJ,EAAAm0J,QAAyBpwG,iBAAcD,WAAc,SAAAvlD,GAC7C,GAAAyB,EAAAg4J,kBAAyB,CAkTpB,GAAIhyI,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQrwG,WACvB8vG,YAAa,WACb7sG,OAAQj0C,EAAIi0C,OA7ShBqvG,GAAiB6E,iCAAiCj1I,GAAmBvnB,KAAA,SAAQC,GACnF,GAAW,MAAAA,EAAAlI,OAAA,CAiTGwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IAC7B,IAAIylK,GAAqBx+J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,iBAC3C3C,EAAQ,EAIZ,KAAK,GAAIv9J,KAAK8E,GAAGg4J,kBAAmB,CAChCh4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGk7J,oBAAoBhgK,GAAG+xD,UAC3E,KAAK,GAAI9iD,KAAKnK,GAAGg4J,kBAAkB98J,GAAGg9J,YAC9Bl4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GAAG48C,QAAUo0G,EAAmB,QAAUv0J,SAAS1L,GAAK,MA/S/F8E,EAAAg4J,kBAAA98J,GAAAulJ,aAAAzgJ,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAmTuCxU,SAAxCqK,EAAGg4J,kBAAkB98J,GAAGulJ,eA/ShCgY,GAAA9iK,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAAA,GAAAroB,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,MAkTAroB,EAAGm0J,QAAQ9rI,KAAOowI,CA9SlB,IAAA4C,GAAiB1+J,KAAAC,MAAAoD,EAAAm0J,QAAAnR,iBAEjB,IAAAhjJ,EAAAw3J,sBAA4Br8J,OAAG,EAAQ,CAqTnC,GAAIm/J,GAAqB,EACrBF,EAAW,CA9SzB,KAAc,GAAAl/J,KAAA8E,GAAAw3J,sBAkTA,GAA4C,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,SAAe,CA9SlF,GAAAuB,GAAA9gK,EAAAyC,OAAAo+J,GAAAR,YAAA76J,EAAAw3J,sBAAAt8J,GAAA2/J,aAkTuC,IAAIS,EAAMngK,OAAS,EAAG,CAElB,IAAK,GAAIgP,KAAKnK,GAAGu2J,kBA/S7Bv2J,EAAsBu2J,kBAAcpsJ,GAAAqsJ,OAAA8E,EAAsB,GAAG31G,OAiTzC3lD,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkBpsJ,GAIlB,kBAAlDnK,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAEzCx2J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW+B,EAAM,GAAGP,WA9SjF,gBAAA/6J,EAAAw3J,sBAAAt8J,GAAA8+J,kBACmCh6J,EAAAw3J,sBAA2Bt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAq+J,WAAAztI,QAAA,GAE1D,gBAAA9rB,EAAAw3J,sBAAAt8J,GAAA8+J,kBAiTiCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBA/S1Eh6J,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAm0J,QAAAa,oBAAAnpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAq+J,WAAAztI,QAAA,IAG4BwuI,EAAAzuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAEhC,GAAAx5J,EAAAw3J,sBAAAt8J,GAAAq/J,QACAv6J,EAAAw3J,sBAAAt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GAiT6CsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAAY1uI,QAAQ,IA7S/G9rB,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EAiTa35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA/S1C55J,EAAAw3J,sBAAqBt8J,GAAA2+J,cAAA,GAkToC,YAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OA9S3Dx2J,EAAAw3J,sBAAAt8J,GAAAu+J,QAAA6B,EAAA,GAAAtmE,OAkTaslE,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,UAAU3tI,QAAQ,GAEvE,GAArC9rB,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAAW5tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GA/S5MsuI,GAAAvuI,WAAAuuI,GAAAvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAAA1uI,QAAA,IAGI9rB,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EAC4B35J,EAAAw3J,sBAAAt8J,GAAA0+J,WAAA,EAChC55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,GAkT6F,cAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QA9S5Ex2J,EAAAw3J,sBAAAt8J,GAAAu1C,WAAA6qH,EAAA,GAAAP,WAkTmF,gBAAjD/6J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GA9SzM,gBAAA9rB,EAAAw3J,sBAAAt8J,GAAA8+J,kBACAh6J,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAY,YAAAlpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAEgE,wBAAb9rB,EAAAw3J,sBAAat8J,GAAA8+J,oBACnDh6J,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAa,oBAAAnpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,IAGEwuI,GAAAzuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,kBAAA5tI,QAAA,GAEC,GAAA9rB,EAAAw3J,sBAAAt8J,GAAAq/J,QACMv6J,EAAAw3J,sBAAAt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GACPsuI,GAAAvuI,WAAAuuI,GAAAvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAAA1uI,QAAA,IAGlB9rB,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EACc35J,EAAAw3J,sBAAAt8J,GAAA0+J,WAAA,EAiTkC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,IA+C3D,GAAIa,GAAgB,CAChB16J,GAAG82J,gBAAgB37J,OAAS,IAC5Bu/J,GAAiB7uI,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAG82J,gBAAgB,GAAGrmH,YAAc,KAAK3kB,QAAQ,GACrHsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW6uI,IAAgB5uI,QAAQ,IAG1E9rB,EAAGm0J,QAAQiG,SAAWA,EACtBp6J,EAAGm0J,QAAQO,cAAgB4F,EAC3Bt6J,EAAGm0J,QAAQ1pI,WAAaoB,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQO,eAAiB7oI,WAAW7rB,EAAGm0J,QAAQiG,WAAWtuI,QAAQ,UAexK9rB,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA6FpEV,EAAGgT,YAhTa,EAkTpB,QAASuoJ,GAAmBzoJ,GAExB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAhT4Ctb,WAAA,EAAA+F,KAAA,MAkThDuV,GAAQjT,OAAOjB,KAAK,WAEhBuB,EAAGm0J,QAAU//J,QAAQ8e,KAhTGJ,EAkTxB,IAAIkT,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAYhxC,EAAIgxC,WAChBiD,OAAQj0C,EAAIi0C,OACZirE,YAAa,EACb8iC,WAAY,EACZL,kBAAmB,EACnBwF,cAAe,EACfC,mBAhTgB,EAiThBC,eAAgB,EAChBnX,iBAAkB,GAClB0R,cAAe,EACfjqI,UAAW,EACXpE,QAAS,SACTzwB,OAAQ,IACRke,UAAW,EAGfuiJ,GAAuCmF,2BAA2Bx1I,GAAWvnB,KAAK,SAAUC,GACpFA,EAAIhJ,KAAKke,aAhTW,GAiTpB7b,EAAW2I,YAAY,UAhTShC,EAAAhJ,KAAWme,QAAK,yBAiThD7T,EAAGgT,YAAa,EAChBd,MAGAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,mCA5uC5C,GA/SCV,GAAOC,IAiTRD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EA7SjCrU,GAAAuU,YAAS,EAgTTvU,EAAGwU,qBAAuB,SAAUC,GA9SjCzU,EAAAuU,YAAkBE,GAWrBzU,EAAGg7J,iBAAOA,EAgTVh7J,EAAGu7J,mBAAqBA,EA9SxBv7J,EAAG26J,2BAAYA,EACf36J,EAAGm5J,qBAASA,EACZn5J,EAAGo5J,aAAWA,EAEdp5J,EAAAyyJ,SAAIA,EAGJzyJ,EAAGo0H,OAAAA,EAEHp0H,EAAGgU,OAAAA,EAgTHhU,EAAG+zJ,UAAYA,EACf/zJ,EAAGs4J,mBAAqBA,EA9SxBt4J,EAAA04J,gBAAAA,EACA14J,EAAAq6J,gBAAgBA,EAiThBr6J,EAAG86J,wBA/SiBA,EAiTpB96J,EAAG+jK,wBA/SaA,EAiThB/jK,EAAGm0J,WAEHn0J,EAAGm0J,QA/SCwE,YAAA,EAgTJ34J,EAAGm0J,QA/SKniC,YAAQ,EAgThBhyH,EAAGm0J,QAAQQ,eA/SI,EAgTf30J,EAAGm0J,QAAQyE,QA/SI,EAgTf54J,EAAGm0J,QAAQW,WAAa,EACxB90J,EAAGm0J,QA/SIY,WAAe,EAgTtB/0J,EAAGm0J,QA/SKa,mBAAuB,EAgT/Bh1J,EAAGm0J,QAAQM,kBAAoB,EAC/Bz0J,EAAGm0J,QAAQ8F,cAAgB,EAC3Bj6J,EAAGm0J,QAAQ+F,mBAAqB,EAChCl6J,EAAGm0J,QAAQgG,eAAiB,EA7S5Bn6J,EAAAgT,YAAS,EAgTThT,EAAGsS,WA/SK,EAgTRtS,EAAG+S,WA/SS,EAgTZ/S,EAAG8zJ,oBACH9zJ,EAAG82J,kBAEH,IAAI3kJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzE0jJ,EAAe77J,EAAOvE,OAAOK,UAC7B69J,EA/SI35J,EAAAvE,OAAAM,OAgTJy9J,EA/SYr5J,EAAsBgG,sBAkTtC+R,mZAxEJ9d,QACKC,OAAO,0CA7Sfe,WAAY,iCAAA6gL,MAsiDb,WACI,YAOA,SAASC,GAA2BzrK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQkzC,EAAiBn7B,EACrG2D,EAAaD,EAAam1D,EAA8Bh5D,EAAwBE,EAAc3X,GAkD9F,QAAS+X,KAEL,GAAI8T,IACA7T,UAAWA,EACXvc,OAAQ,MACRE,UAAW,EAGf80E,GAA6BG,eAAe/kD,GAAWvnB,KAAK,SAhTQC,GAiT7C,MAAfA,EAAIlI,SACJwJ,EAAG2wB,YAAcjyB,EAAIhJ,KAErBk1E,EAA6BE,sBAAsBrsE,KAhTK,SAAGC,GAiTpC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAGxDV,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASmxJ,GAAiBtzJ,GAEtByB,EAAG8xJ,oBACH9xJ,EAAGsgI,kBAMH,IAAIjlD,IACAj7E,SAAUrI,EAAW21C,aAczB97B,GAAuBwpE,sBAAsBC,GAAW58E,KAAK,SAAUC,GAChD,MAAfA,EAAIlI,SACJwJ,EAAG8xJ,iBAAmBpzJ,EAAIhJ,KAC1BsK,EAAGsS,WAAY,GAGf/T,GACAA,KACL,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAkB5D,QAAS2/H,GAAenkF,EAAY/kC,GAMhCnX,EAAGsgI,mBACHtgI,EAAG6jB,QAAQ28G,wBAA0B,KAqBrC5uH,EAAuB4pE,yBAAyBt/B,GAAYz9C,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAGsgI,gBAAkB5hI,EAAIhJ,KACrBsK,EAAGsgI,gBAAgBnlI,OAAS,EAC5Bd,EAAQ8C,OAAO,UAAW,iCAAmC6C,EAAG6jB,QAAQ28G,wBAAwB3kF,cAC5FxkD,WAAW,EACX+F,KAAM,OAGN+Z,GACAA,IAIRnX,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAO5D,QAASk+H,GAAYrgI,GACjB,GAAImf,EACJ3L,GAAe6lC,cAAc79C,EAAOhC,EAAY2lB,GAAYjf,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAG8V,YAAcpX,EAAIhJ,KAErBm8J,IACA7xJ,EAAGsS,WAAY,GAEf/T,GACAA,KAKL,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAK5D,QAAS0V,GAAwBC,EAAWc,GACxCrF,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGuW,UAAY7X,EAAIhJ,KACfsK,EAAGuW,UAAUpb,OAAS,EACtBd,EAAQ8C,OAAO,UAAW,0BAA4B6C,EAAG6jB,QAAQpN,gBAAgBC,aAC7Erf,WAAW,EACX+F,KAAM,OAGN+Z,GACAA,IAGRnX,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAS5D,QAASkW,GAAqBC,EAASM,GACnCzB,EAAYoB,iBAAiBD,GAASpY,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,SACJwJ,EAAG+W,SAAWrY,EAAIhJ,KACdsK,EAAG+W,SAAS5b,OAAS,EACrBd,EAAQ8C,OAAO,UAAW,yBAA2B6C,EAAG6jB,QAAQlN,cAAcK,WAC1E3f,WAAW,EACX+F,KAAM,OAGN+Z,GACAA,IAGRnX,EAAGsS,WAAY,IAEpB,SAAU3R,GA/SV5I,EAAA2I,YAAa,QAAA,mBAAA;GAoTpB,QAhTQ8e,GAAkBpI,EAAQD,GAiT9B1B,EAhTIgK,gBAAArI,GAAA3Y,KAAA,SAA8CC,GAiT3B,MAAfA,EAAIlI,SA/SJwJ,EAAA4V,SAAYlX,EAAAhJ,KAiTRsK,EAAG4V,SAASza,OAAS,EA/S1Bd,EAAU8C,OAAQ,UAAK,yBAAA6C,EAAA6jB,QAAA5M,aAAA8G,UAiTd1mB,WAAW,EA/SnB+F,KAAY,OAGZ+Z,GACQA,IAGRnX,EAAAsS,WAAA,IAkTL,SAhTK3R,GAiTJ5I,EAhTI2I,YAAgB,QAAA,mBAAA,yBAqT5B,QAASsT,KACLhU,EAAGgT,YAhTK,EAiTRhT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG6jB,QAAQmuI,aAAe,eAC1BhyJ,EAAGivC,cAhTC,KAiTJgjH,IAGJ,QAASA,KACDjyJ,EAAG6jB,QAAQquI,cACXlyJ,EAAG6jB,QAhTMmuI,aAAA,UAiTThyJ,EAAG+xJ,gBAhTgB,IAmTnB/xJ,EAhTG6jB,QAAAmuI,aAAe,eAiTlBhyJ,EAAG+xJ,gBAhTY,GAmTvB,QAASI,GAAYr/I,GAzSzB,GA0SQ9S,EAAG+S,WAAY,EAEf/S,EAAGgT,YAAa,EA/S3BhT,EAAY6jB,QAAAzvB,QAAA8e,KAAAJ,GAkTD9S,EAAGqtC,cAAgBrtC,EAAGivC,cAAgBl3C,EAAW8D,SAAW,sBAAwBiX,EAAIs/I,aACxFpyJ,EAAG07J,gBAAgB5oJ,EAAIs/I,aAhT/B,GAAApyJ,EAAA6jB,QAAAwuI,eAoTYryJ,EAAG6jB,QAAQquI,cAAe,EAC1BD,QA/SR,CACIjyJ,EAAK6jB,QAAAquI,cAAA,EAkTDD,GA9SJ,KAAQ,GAAAp6I,KAAA7X,GAAA2hB,YACT3hB,EAAc2hB,YAAA9J,GAAAw6I,iBAAAryJ,EAAA6jB,QAAAwuI,iBACdryJ,EAAA6jB,QAAuBhC,gBAAe7hB,EAAA2hB,YAAA9J,IAQtC,IAAA,GAAA3c,KAAY8E,GAAA8xJ,iBACJ9xJ,EAAA8xJ,iBAAU52J,GAAA0kI,oBAAA5/H,EAAA6jB,QAAA+7G,oBAClB5/H,EAAA6jB,QAAAyuI,qBAAuBtyJ,EAAA8xJ,iBAAA52J,GAMvBmlI,GAAArgI,EAAA6jB,QAA0ByuI,qBAAA1yB,kBAAA,WAC1B,IAAA,GAAA1kI,KAAA8E,GAAAsgI,gBACAtgI,EAAAsgI,gBAAsBplI,GAAAqlI,gBAAAvgI,EAAA6jB,QAAA08G,gBACdvgI,EAAA6jB,QAAe28G,wBAAAxgI,EAAAsgI,gBAAAplI,KAO1B,IAAOq3J,GAAe51J,KAAAC,MAAAoD,EAAA6jB,QAAA2uI,gBAmTlBxyJ,GAAG6jB,QAAQwgH,OAASkuB,EAAYluB,OAChCrkI,EAAG6jB,QAAQ0gH,SAAWguB,EAAYhuB,SAhTnCvkI,EAAA6jB,QAAA2gH,UAAe+tB,EAAA/tB,UACfxkI,EAAA6jB,QAAA83I,iBAAkB37J,EAAA6jB,QAAAuuI,aAGjBh8I,EAAYm8I,EAAsBl8I,UAAA,WAmT9B,IAAK,GAAIwB,KAAK7X,GAAG8V,YACT9V,EAAG8V,YAAY+B,GAAGxB,YAAck8I,EAAYl8I,YAC5CrW,EAAG6jB,QAAQ44B,oBAAsBz8C,EAAG8V,YAAY+B,GA9ShE,KAAA,GAAAA,KAAA7X,GAAAuW,UACAvW,EAAAuW,UAAAsB,GAAAhB,UAAA07I,EAAA17I,UACgB7W,EAAA6jB,QAAAlN,cAAA3W,EAAAuW,UAAAsB,GAGRjB,GAAW27I,EAAA17I,QAAA,WACX,IAAQ,GAAAgB,KAAA7X,GAAA+W,SACG/W,EAAA+W,SAAAc,GAAAT,SAAAm7I,EAAAn7I,SAkTCpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAASc,MAIlD2H,EAjTO+yI,EAAkBn7I,OAAA,WAkTrB,IAAK,GAAIS,KAAK7X,GAAG4V,SAhTjB5V,EAAA4V,SAAAiC,GAAAI,SAA6Bs6I,EAAAt6I,SACrBjY,EAAA6jB,QAAItE,aAAgBvf,EAAA4V,SAAAiC,GACpB7X,EAAGglI,aAAchlI,EAAI6jB,QAAAtE,aAAApH,cA+kBzC,QAASg1B,KACLntC,EAAGotC,iBAAkB,EAGzB,QAAS5uB,GAjTUriB,GAmTf,GAAI6T,GAAS,GAAIS,WACjB,IAAKzQ,EAAGotC,gBAID,CACHptC,EAAGoyJ,aAAej2J,EAAMsN,OAAOiE,MAAM,GACrCsC,EAAOU,OAASjG,EAAOiU,cACvB1O,EAAOa,cAAc7Q,EAAGoyJ,aAhTxB,IAAAh0J,GAAA,GAAAH,SAkTAG,GAjTSF,OAAI,eAAkB8B,EAAAoyJ,cAkT/Bh0J,EAjTQF,OAAO,YAAY8B,EAAA6jB,QAAW/tB,WAmTtCsI,EAASF,OAjTM,kBAAkB8B,EAAA07J,iBAmTjC9wF,EAA6BC,mBAAmBzsE,GAAUK,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,qCAAsC,WACxEwR,KAEAna,EAAW2I,YAAY,QAAS,yBAA0B,UAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,yBAA0B,eAtU9DV,GAAAoyJ,aAAAj2J,EAAqBsN,OAAAiE,MAAY,GAkTjCsC,EAjTIU,OAASjG,EAAQiU,cAkTrB1O,EAAOa,cAjTQ7Q,EAASoyJ,cA+UhC,QAAS1gJ,KACL1R,EAAGgT,YAAa,EAChBhT,EAAG6jB,WACH7jB,EAAGivC,cAAgB,KAGvB,QAASwjH,KAELz4J,EAAO8F,GAAG,8BA9rBd,GAAIE,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGyyJ,SAAWA,EACdzyJ,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGkvC,sBAAuB,EAC1BlvC,EAAG6jB,WACH7jB,EAAG8uC,QAAWC,eACd/uC,EAAGgvC,QAAWD,eAEd/uC,EAAGqgI,eAAiBA,EACpBrgI,EAAGoW,wBAA0BA,EAC7BpW,EAAG4W,qBAAuBA,EAC1B5W,EAAGwf,oBAAsBA,EACzBxf,EAAG6jB,QAAQmuI,aAAe,KAE1BhyJ,EAAGiyJ,cAAgBA,EACnBjyJ,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGmyJ,YAAcA,EACjBnyJ,EAAGotC,iBAAkB,EACrB3iC,EAAO+T,aAAeA,EACtBxe,EAAGmtC,WAAaA,EAGhBntC,EAAGoyJ,aAAe,KAClBpyJ,EAAG07J,gBAAkB,IAGrB,IAAIvpJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAhTMxC,UAiT/DqhJ,EAAar5J,EAAsBgG,sBAMvCy+H,KACA1sH,IAqWAlS,EAAGqN,OAAS,WAEJrN,EAAGkvC,sBAhTPlvC,EAAA0yJ,QAAAt+J,QAAuB8e,KAAAlT,EAAAgvC,OAAA2jH,aACnB3yJ,EAAA0yJ,QAAQC,YAAgB3yJ,EAAAgvC,OAAA2jH,aAmTxB3yJ,EAAG0yJ,YAKXjoJ,EAjTOvO,IAAA,qCAAe,WAoTlB,GAAIvH,GAAWqL,EAAGglI,aAAaC,WAAWC,SAASvwI,SAC/C4vI,EAAW5vI,EAASwwI,MACpBX,EAAY7vI,EAASywI,KACzBplI,GAAG6jB,QAAQ0gH,SAAWA,EACtBvkI,EAAG6jB,QAAQ2gH,UAAYA,EACvB/5H,EAAOe,WAKXxL,EAAG4yJ,mBAAqB,SAAU98J,GAE9BkK,EAAGq0B,SAAW13B,KAAKC,MAAMoD,EAAG6jB,QAAQhC,gBAAgB2wI,gBAEpD,KAAK,GAAIt3J,KAAK8E,GAAG8xJ,iBACT9xJ,EAAG8xJ,iBAAiB52J,GAAG0kI,oBAAsB5/H,EAAG6jB,QAAQhC,gBAAgB+9G,oBAhT3E5/H,EAAA6jB,QAAAyuI,qBAAqCtyJ,EAAA8xJ,iBAAA52J,GA2U1C8E,GAAGqgI,eAAergI,EAAG6jB,QAAQhC,gBAAgB+9G,kBAAmB,WA/ShE,IAAA,GAAA1kI,KAAA8E,GAAAsgI,gBACYtgI,EAAAsgI,gBAAgBplI,GAAAqlI,gBAAAvgI,EAAA6jB,QAAAhC,gBAAA0+G,gBACjBvgI,EAAA6jB,QAAA28G,wBAAsBxgI,EAAAsgI,gBAAAplI,MAwTjC8E,EAAG6jB,QAAQwgH,OAjTKrkI,EAAAq0B,SAAUgwG,OAkT1BrkI,EAAG6jB,QAAQ0gH,SAjTKvkI,EAAAq0B,SAAAkwG,SAkThBvkI,EAAG6jB,QAAQ2gH,UAAYxkI,EAAGq0B,SAASmwG,UAEnC5F,EAAY,WACR,IAjTI,GAAG1jI,KAAA8E,GAAA8V,YAkTC9V,EAAG8V,YAAY5a,GAAGmb,YAAcrW,EAAGq0B,SAAShe,YAhTrDrW,EAAU6jB,QAAK44B,oBAAAz8C,EAAA8V,YAAA5a,MAsTlBkb,EAAwBpW,EAAGq0B,SAAShe,UAAW,WAC3C,IAAK,GAAInb,KAAK8E,GAAGuW,UACTvW,EAAGuW,UAAUrb,GAAG2b,UAAY7W,EAAGq0B,SAASxd,UAhT/C7W,EAAA6jB,QAAYlN,cAAU3W,EAAAuW,UAAArb,MAuT3B0b,EAjTQ5W,EAAAq0B,SAAAxd,QAAA,WAmTJ,IAAK,GAAI3b,KAAK8E,GAAG+W,SAhTb/W,EAAA+W,SAAU7b,GAAAkc,SAAApX,EAAAq0B,SAAAjd,SACVpX,EAAA6jB,QAAA5M,aAAAjX,EAAA+W,SAAA7b,MAsTRskB,EAjTkBxf,EAAAq0B,SAAAjd,OAAA,WACd,IAAA,GAAAlc,KAAW8E,GAAA4V,SAkTH5V,EAAG4V,SAAS1a,GAAG+c,SAAWjY,EAAGq0B,SAASpc,SACtCjY,EAAG6jB,QAAQtE,aAAevf,EAAG4V,SAAS1a,GA9StD8E,GAASglI,aAAAhlI,EAAA6jB,QAAwBtE,aAAWpH,YAwT5CnY,EAAG6yJ,aAAe,SAjTQC,GAkTtB9yJ,EAAGsS,WAAY,CAEf,IA0CIygJ,GACA7qG,EA3CA8qG,GACA3uB,OAAQrkI,EAAG6jB,QAjTCwgH,OAkTZhuH,UAAWrW,EAAG6jB,QAAQ44B,oBAAoBpmC,UAC1CQ,QAAS7W,EAAG6jB,QAAQlN,cAAcE,QAClCO,OAjTOpX,EAAA6jB,QAAY5M,aAAAG,OAkTnBa,OAAQjY,EAAG6jB,QAAQtE,aAAatH,OAhTjCK,QAAUtY,EAAA6jB,QAAKtE,aAAAjH,QACdisH,SAAAvkI,EAAW6jB,QAAA0gH,SAkTXC,UAAWxkI,EAAG6jB,QAAQ2gH,UAqCM,kBAA5BxkI,EAAG6jB,QAAQmuI,cACX9pG,EAAQloD,EAjTG6jB,QAAAhC,gBAAAwwI,eAkTXU,EAjTQ/yJ,EAAI6jB,QAAAhC,gBAAUS,cAoTtB4lC,EAAQ,EACR6qG,EAjTO/yJ,EAAA6jB,QAAYvB,YAQ3B,IAAA2wI,EAKIA,GAJGjzJ,EAAA+S,UAIH/S,EAAA6jB,QAAA/tB,UAHG,CA6TH,IAjTIo9J,EAmTAA,GAlTG,WAAHJ,EAkTY,EA/SX,CAmTL,IAAIlvB,IAhTD4uB,gBAAa71J,KAAAqkB,UAAAgyI,GAmTZG,sBAAuB,GAhTxBr9J,UAAAm9J,EACAZ,eAAgBnqG,EACf5lC,YAAWywI,EAGXK,eAAWpzJ,EAAA6jB,QAAeyuI,qBAAA1yB,kBAC1BW,cAAAvgI,EAAA6jB,QAAA28G,wBAAAD,cAkTAgE,SAAUvkI,EAAG6jB,QAAQ0gH,SACrBC,UAjTCxkI,EAAA6jB,QAAA2gH,UACD6uB,cAAWrzJ,EAAA6jB,QAAewvI,cAC1BC,SAAAtzJ,EAAA6jB,QAAAyvI,SAkTAC,eAAgBvzJ,EAAG6jB,QAAQ0vI,eAC3B39J,OAAQs9J,EAhTR/gJ,UAASA,EAkTT2B,UAjTW0/I,EAAAnzJ,QAoTXjC,EAAW,GAAIH,SAKnBG,GAASF,OAAO,YAAavB,KAAKqkB,UAAU4iH,IAhT5CxlI,EAASF,OAAK,eAAG8B,EAAkBoyJ,cAuTnCxnF,EAA6BK,YAAY7sE,GAAUK,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,UAhTvC7b,EAAkB2I,YAAQ,UAAAhC,EAAAhJ,KAAqBme,QAAA,WAEvC9b,EAAO2I,YAAgB,QAAGhC,EAAAhJ,KAAAme,QAAqB,SAmTnD3B,IACAR,KACD,SAAU/Q,GACT5I,EAAW2I,YAAY,QAAS,8BAA+B,WAEnEV,EAAGsS,WAAY,GAgDnB7H,EAAOiU,cAAgB,SAAUlR,GAC7B/C,EAAOe,OAAO,WACVxL,EAAGivC,cAAgBzhC,EAAE/D,OAAO/J,8OA1rBxCtL,QACKC,OAAO,qCACPe,WAAW,6BAA8B8gL,MAwsBlD,WACI,YAOA,SAASC,GAjTM1rK,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAkzC,EAAAn7B,EAkTX2D,EAjTWD,EAAUm1D,EAAAh5D,EAAAE,EAAA3X,GAkWrB,QAAS+X,KAhTLlS,EAAG6jB,QAAAuyJ,iBAA0B,yBAmT7B,IAjTIpwJ,IAkTA7T,UAjTWA,EAkTXvc,OAjTQ,IAkTRE,UAAW,EAGf80E,GAA6BG,eAAe/kD,GAAWvnB,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,SACJwJ,EAAG2wB,YAAcjyB,EAAIhJ,KA/S1Bk1E,EAA+BE,sBAAArsE,KAAA,SAAAC,GACR,MAAfA,EAAAlI,QAkTKwJ,EAAG2hB,YAAcjjB,EAAIhJ,KAhTzBsK,EAAAsS,WAAY,GAETva,EAAY2I,YAAG,QAAiB,yBAAoB,aAmTxD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cA9ShEV,EAAAsS,WAAA,IAmTG,SAjTS3R,GAkTR5I,EAjTW2I,YAAQ,QAAA,mBAA6B,oBAqTxD,QAASmxJ,GAAiBtzJ,GA/StByB,EAAA8xJ,oBAkTA9xJ,EAAGsgI,kBAMH,IAAIjlD,IACAj7E,SAAUrI,EAAW21C,aAazB97B,GAAuBwpE,sBAAsBC,GAAW58E,KAAK,SAAUC,GAhTzD,MAAfA,EAAAlI,SACIwJ,EAAA8xJ,iBAAYpzJ,EAAAhJ,KAkTPsK,EAAGsS,WAAY,GA9SnB/T,GACAA,KAkTD,SAjTSoC,GACR5I,EAAW2I,YAAQ,QAAa,mBAAA,6BAmUxC,QAAS2/H,GAAenkF,EAAY/kC,GAMhCnX,EAAGsgI,mBACe3qI,QAAdumD,GACAl8C,EAAG6jB,QAAQ28G,wBAA0B,KACrCxgI,EAAG6jB,QAAQuyJ,iBAAmB,4BAG9Bp2K,EAAG6jB,QAAQuyJ,iBAAmBp2K,EAAG6jB,QAAQyuI,qBAAqBz2G,aAE9DjqC,EAAuB4pE,yBAAyBt/B,GAAYz9C,KAAK,SAAUC,GAEpD,MAAfA,EAAIlI,SACJwJ,EAAGsgI,gBAAkB5hI,EAAIhJ,KA/SjCsK,EAAAsgI,gBAAAnlI,OAAA,EACAd,EAAA8C,OAAA,UAAA,iCAAA6C,EAAA6jB,QAAAyuI,qBAAAz2G,cAkTgBxkD,WAAW,EAhThB+F,KAAA,OAoTK+Z,GAhTfA,IAqTOnX,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,0BA6BhE,QAjTQk+H,GAAargI,GAkTjB,GAAImf,EACJ3L,GAAe6lC,cAAc79C,EAAOhC,EAAY2lB,GAAYjf,KAAK,SAAUC,GAhTpD,MAAnBA,EAAAlI,SACAwJ,EAAA8V,YAAkBpX,EAAAhJ,KAElBm8J,IACA7xJ,EAAAsS,WAAkB,GAElB/T,GACAA,KAKJ,SAAIoC,GAkTA5I,EAAW2I,YAAY,QAAS,mBAAoB,aAK5D,QAjTI0V,GAAgBC,EAAmBc,GAkTnCrF,EAAawE,oBAAoBD,GAAW5X,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGuW,UAAY7X,EAAIhJ,KACfsK,EAAGuW,UAAUpb,OAAS,EACtBd,EAAQ8C,OAAO,UAAW,0BAA4B6C,EAAG6jB,QAAQ44B,oBAAoB/lC,aAhTjGrf,WAAA,EACY+F,KAAA,OAGJ+Z,GAkTQA,IA9SbnX,EAAAsS,WAAe,IAmTf,SAAU3R,GAhTV5I,EAAY2I,YAAA,QAAA,mBAAA,yBA0TnB,QAASkW,GAAqBC,EAASM,GACnCzB,EAAYoB,iBAAiBD,GAASpY,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,SACJwJ,EAAG+W,SAAWrY,EAAIhJ,KAhTrBsK,EAAA+W,SAAa5b,OAAA,EACfd,EAAA8C,OAAkB,UAAA,yBAAA6C,EAAA6jB,QAAAlN,cAAAK,WAkTL3f,WAAW,EACX+F,KAAM,OA9ST+Z,GACLA,IAGJnX,EAAOsS,WAAA,IAmTR,SAjTI3R,GACH5I,EAAO2I,YAAgB,QAAA,mBAAA,yBAqT/B,QAjTQ8e,GAAgBpI,EAAaD,GAkTjC1B,EAAYgK,gBAAgBrI,GAAQ3Y,KAAK,SAAUC,GAhT/B,MAAhBA,EAAAlI,SAkTIwJ,EAAG4V,SAAWlX,EAAIhJ,KAhTtBsK,EAAA4V,SAAAza,OAA6B,EACrBd,EAAI8C,OAAW,UAAK,yBAAA6C,EAAA6jB,QAAA5M,aAAA8G,UACpB1mB,WAAW,EACX+F,KAAA,OAoTI+Z,GAhTTA,IAoTCnX,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAG5D,QAjTQ2qE,GAAGgrG,GAmTP,GAAI1jK,GAAUtY,EAAQsY,QAAQ,UAAW,4CAA8Ctb,WAAW,EAAM+F,KAAM,MA/S9GuV,GAAGjT,OAAAjB,KAAa,WACbmsE,EAAUS,gBAAAgrG,EAAAvgL,WAAA2I,KAAA,SAAAC,GACM,MAAhBA,EAAAlI,QAAgBkI,EAAAhJ,KAAAke,WAkTP7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD3B,KApSJna,EAAA2I,YAAA,QAA6BhC,EAAAhJ,KAAAme,QAAA,WAoT9B,SAAUlT,GAjThB5I,EAAA2I,YAA0B,QAAQ,2BAA2B,cAKlE,QAAGsT,KACChU,EAAAgT,YAAQ,EACThT,EAAA6jB,QAAAquI,cAAc,EACdD,IACCjyJ,EAAGivC,cAAc,KAqTrB,QAASgjH,KAhTNjyJ,EAAA6jB,QAAYhC,gBAAA,KACZ7hB,EAAA6jB,QAAAyuI,qBAAiB,KACjBtyJ,EAAA6jB,QAAY28G,wBAAA,KACfxgI,EAAA6jB,QAAWwgH,OAAU,KAClBrkI,EAAA6jB,QAAA44B,oBAAuB,KACvBz8C,EAAA6jB,QAAU5M,aAAA,KACVjX,EAAA6jB,QAAWlN,cAAY,KACvB3W,EAAA6jB,QAAWtE,aAAY,KAEvBvf,EAAAglI,aAAiB,KACjBhlI,EAAA6jB,QAAA0gH,SAAA,KACAvkI,EAAA6jB,QAAA2gH,UAAuB,KAEvBxkI,EAAQ6jB,QAAAquI,cACRlyJ,EAAA6jB,QAAAmuI,aAAkB,UAClBhyJ,EAAA+xJ,gBAAW,IAGX/xJ,EAAA6jB,QAASmuI,aAAA,eACThyJ,EAAA+xJ,gBAAc,GAOjB,QAAGI,GAAkBr/I,GAQrB,GA2SI9S,EAAG+S,WAAY,EAEf/S,EAAGgT,YAAa,EAChBhT,EAAG6jB,QAAUzvB,QAAQ8e,KAAKJ,GAE1B9S,EAAGqtC,cAAgBrtC,EAAGivC,cAAgBl3C,EAAW8D,SAAW,sBAAwBiX,EAAIs/I,aAjTzFpyJ,EAAA07J,gBAAQ5oJ,EAAAs/I,aACX,GAAApyJ,EAAA6jB,QAAAwuI,eAEAryJ,EAAS6jB,QAAOquI,cAAA,EACTD,QAKC,CAmTAjyJ,EAAG6jB,QAAQquI,cAAe,EAC1BD,GAIA,KAAK,GAAIp6I,KAAK7X,GAAG2hB,YAjTb3hB,EAAA2hB,YAAA9J,GAAAw6I,iBAA6BryJ,EAAA6jB,QAAsBwuI,iBAC/CryJ,EAAA6jB,QAAQhC,gBAAgB7hB,EAAA2hB,YAAA9J,IA2TpC,IAAK,GAAI3c,KAAK8E,GAAG8xJ,iBAjTT9xJ,EAAG8xJ,iBAAY52J,GAAA0kI,oBAAA5/H,EAAA6jB,QAAA+7G,oBAmTf5/H,EAAG6jB,QAAQyuI,qBAAuBtyJ,EAAG8xJ,iBAAiB52J,GAK9DmlI,GAAergI,EAAG6jB,QAAQyuI,qBAAqB1yB,kBAAmB,WAjTtE,IAAS,GAAA1kI,KAAA8E,GAAAsgI,gBAmTOtgI,EAAGsgI,gBAAgBplI,GAAGqlI,gBAAkBvgI,EAAG6jB,QAAQ08G,gBAjT5DvgI,EAAA6jB,QAAmB28G,wBAAAxgI,EAAAsgI,gBAAAplI,KA2TtB,IAAIq3J,GAAc51J,KAAKC,MAAMoD,EAAG6jB,QAAQ2uI,gBAExCxyJ,GAAG6jB,QAAQwgH,OAASkuB,EAAYluB,OAChCrkI,EAAG6jB,QAAQ0gH,SAAWguB,EAAYhuB,SAClCvkI,EAAG6jB,QAAQ2gH,UAAY+tB,EAAY/tB,UACnCxkI,EAAG6jB,QAAQ83I,iBAAmB37J,EAAG6jB,QAAQuuI,aAEzCh8I,EAAwBm8I,EAAYl8I,UAAW,WAE3C,IAAK,GAAIwB,KAAK7X,GAAG8V,YACT9V,EAAG8V,YAAY+B,GAAGxB,YAAck8I,EAAYl8I,YAC5CrW,EAAG6jB,QAAQ44B,oBAAsBz8C,EAAG8V,YAAY+B,GAGxD,KAlTI,GAAGA,KAAA7X,GAAAuW,UACAvW,EAAAuW,UAAYsB,GAAAhB,UAAA07I,EAAA17I,UAmTX7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUsB,GAGhDjB,GAlTI27I,EAAA17I,QAAA,WACL,IAAU,GAAAgB,KAAK7X,GAAA+W,SACH/W,EAAA+W,SAAYc,GAAAT,SAASm7I,EAAAn7I,SAmTpBpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAASc,MAIlD2H,EAAoB+yI,EAAYn7I,OAAQ,WACpC,IAAK,GAAIS,KAAK7X,GAAG4V,SACT5V,EAAG4V,SAASiC,GAAGI,SAAWs6I,EAAYt6I,SACtCjY,EAAG6jB,QAAQtE,aAAevf,EAAG4V,SAASiC,GACtC7X,EAAGglI,aAAehlI,EAAG6jB,QAAQtE,aAAapH,cAiT9D,QAASg1B,KACLntC,EAAGotC,iBAlTgB,EAoTvB,QAAS5uB,GAAariB,GAElB,GAAI6T,GAAS,GAAIS,WACjB,IAAKzQ,EAAGotC,gBAID,CAEHptC,EAAGoyJ,aAAej2J,EAAMsN,OAAOiE,MAAM,GACrCsC,EAAOU,OAASjG,EAAOiU,cACvB1O,EAAOa,cAAc7Q,EAAGoyJ,aAExB,IAAIh0J,GAAW,GAAIH,SACnBG,GAASF,OAAO,eAAgB8B,EAAGoyJ,cACnCh0J,EAASF,OAAO,YAAa8B,EAAG6jB,QAAQ/tB,WAExCsI,EAASF,OAAO,kBAAmB8B,EAAG07J,iBAEtC9wF,EAA6BC,mBAAmBzsE,GAAUK,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,qCAAsC,WACxEwR,KAEAna,EAAW2I,YAAY,QAAS,yBAA0B,UAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,yBAA0B,eAvB9DV,GAAGoyJ,aAAej2J,EAAMsN,OAAOiE,MAAM,GACrCsC,EAAOU,OAASjG,EAAOiU,cACvB1O,EAAOa,cAAc7Q,EAAGoyJ,cAgChC,QAAS1gJ,KACL1R,EAAGgT,YAAa,EAChBhT,EAAG6jB,WACH7jB,EAAGivC,cAAgB,KAGvB,QAASwjH,KAhTLz4J,EAAI8F,GAAA,8BA1dR,GAAIE,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAhThCzU,EAAAuU,YAAeE,GAqTnBzU,EAAGgT,YAjTY,EAkTfhT,EAAG+S,WAjTQ,EAkTX/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGkvC,sBAAuB,EAhT1BlvC,EAAG6jB,WAkTH7jB,EAAG8uC,QAAWC,eACd/uC,EAAGgvC,QAjTID,eAmTP/uC,EAAGqgI,eAjTeA,EAkTlBrgI,EAAGoW,wBAjTYA,EAkTfpW,EAAG4W,qBAjToBA,EAkTvB5W,EAAGwf,oBAAsBA,EACzBxf,EAAG6jB,QAAQmuI,aAAe,KAC1BhyJ,EAAGqrE,gBAAkBA,EACrBrrE,EAAGyyJ,SAAWA,EACdzyJ,EAAGiyJ,cAAgBA,EACnBjyJ,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGmyJ,YAAcA,EACjBnyJ,EAAGotC,iBAAkB,EAErB3iC,EAAO+T,aAAeA,CACtB,IAAIrM,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGmtC,WAAaA,EAChBntC,EAAGoyJ,aAAe,KAClBpyJ,EAAG07J,gBAAkB,KAOrB17J,EAAG6jB,QAAQuyJ,iBAAmB,0BAC9Bx3C,IACA1sH,IA6ZAlS,EAAGqN,OAAS,aAWZ5C,EAAOvO,IAAI,qCAAsC,WAG7C,GAAIvH,GAAWqL,EAAGglI,aAAaC,WAAWC,SAASvwI,SAC/C4vI,EAAW5vI,EAASwwI,MACpBX,EAAY7vI,EAASywI,KACzBplI,GAAG6jB,QAAQ0gH,SAAWA,EACtBvkI,EAAG6jB,QAAQ2gH,UAAYA,EACvB/5H,EAAOe,WAKXxL,EAAG4yJ,mBAAqB,SAAU98J,GApS9B,GAsSAkK,EAAG6jB,QAAQyuI,qBAAuB,KAClCtyJ,EAAG6jB,QAAQ28G,wBAA0B,KACrCxgI,EAAG6jB,QAAQwgH,OAAS,KACpBrkI,EAAG6jB,QAAQ44B,oBAAsB,KACjCz8C,EAAG6jB,QAAQ5M,aAAe,KAC1BjX,EAAG6jB,QAAQlN,cAAgB,KAC3B3W,EAAG6jB,QAAQtE,aAAe,KAE1Bvf,EAAGglI,aAAe,KAClBhlI,EAAG6jB,QAAQ0gH,SAAW,KACtBvkI,EAAG6jB,QAAQ2gH,UAAY,KAhTnB,MAAA1uI,GAAAH,QAAAG,EAAA,CAsTAkK,EAAGq0B,SAAW13B,KAAKC,MAAMoD,EAAG6jB,QAAQhC,gBAAgB2wI,gBAEpD,KAlTI,GAAGt3J,KAAA8E,GAAA8xJ,iBAmTC9xJ,EAAG8xJ,iBAAiB52J,GAAG0kI,oBAAsB5/H,EAAG6jB,QAAQhC,gBAAgB+9G,oBAjT5E5/H,EAAA6jB,QAAUyuI,qBAAAtyJ,EAAA8xJ,iBAAA52J,GAuUd8E,GAAGqgI,eAlTQrgI,EAAA6jB,QAAAhC,gBAAA+9G,kBAAA,WAoTP,IAAK,GAlTG1kI,KAAA8E,GAAAsgI,gBAmTAtgI,EAAGsgI,gBAAgBplI,GAAGqlI,gBAAkBvgI,EAAG6jB,QAAQhC,gBAAgB0+G,gBACnEvgI,EAAG6jB,QAAQ28G,wBAA0BxgI,EAAGsgI,gBAAgBplI,MAMpE8E,EAAG6jB,QAAQwgH,OAASrkI,EAAGq0B,SAASgwG,OAChCrkI,EAAG6jB,QAAQ0gH,SAAWvkI,EAAGq0B,SAASkwG,SAClCvkI,EAAG6jB,QAAQ2gH,UAAYxkI,EAAGq0B,SAASmwG,UAEnC5F,EAAY,WACR,IAAK,GAAI1jI,KAAK8E,GAAG8V,YACT9V,EAAG8V,YAAY5a,GAAGmb,YAAcrW,EAAGq0B,SAAShe,YAjTvDrW,EAAA6jB,QAAqB44B,oBAAmBz8C,EAAA8V,YAAA5a,MAuTzCkb,EAlTuBpW,EAAAq0B,SAAWhe,UAAA,WAmT9B,IAAK,GAlTGnb,KAAA8E,GAAAuW,UACAvW,EAAAuW,UAAMrb,GAAA2b,UAAA7W,EAAAq0B,SAAAxd,UAmTN7W,EAAG6jB,QAAQlN,cAAgB3W,EAAGuW,UAAUrb,MAMpD0b,EAlTmB5W,EAAAq0B,SAAAxd,QAAA,WAEpB,IAAU,GAAA3b,KAAK8E,GAAA+W,SACH/W,EAAA+W,SAAY7b,GAAAkc,SAASpX,EAAAq0B,SAAAjd,SAmTpBpX,EAAG6jB,QAAQ5M,aAAejX,EAAG+W,SAAS7b,MA7SlDskB,EAAmBxf,EAAAq0B,SAAKjd,OAAA,WACpB,IAAG,GAAAlc,KAAW8E,GAAA4V,SACP5V,EAAA4V,SAAS1a,GAAA+c,SAAYjY,EAAAq0B,SAAApc,SACxBjY,EAAA6jB,QAAetE,aAAWvf,EAAA4V,SAAA1a,GAqT9B8E,GAAGglI,aAAehlI,EAAG6jB,QAAQtE,aAAapH,aAUtDnY,EAAG6yJ,aAAe,SAAUhvI,GAhT5B,GAAAyyJ,IAAS,CA8TL,IA5T8B,WAA1Bt2K,EAAA6jB,QAAUmuI,aAmToBr8J,QAA1BqK,EAAG6jB,QAAQvB,aAAsD,IAA1BtiB,EAAG6jB,QAAQvB,cAjTlDg0J,GAAO,GAqTPt2K,EAAG6jB,QAlTChC,kBAmTJy0J,GAlTI,GAsTRA,EAAQ,CACRt2K,EAAGsS,WAAY,CAGf,IAuCIygJ,GAjTH7qG,EA0QG8qG,GACA3uB,OAAQrkI,EAAG6jB,QAAQwgH,OACnBhuH,UAAWrW,EAAG6jB,QAAQ44B,oBAAoBpmC,UAE1CQ,QAAS7W,EAAG6jB,QAAQlN,cAAcE,QAClCO,OAlTOpX,EAAA6jB,QAAA5M,aAAAG,OAmTPa,OAlTIjY,EAAA6jB,QAAWtE,aAAYtH,OAmT3BK,QAAStY,EAAG6jB,QAAQtE,aAAajH,QAjTlCisH,SAAUvkI,EAAA6jB,QAAK0gH,SACdC,UAAWxkI,EAAA6jB,QAAA2gH,UAiCK,kBAAjBxkI,EAAA6jB,QAAAmuI,cAmTC9pG,EAAQloD,EAAG6jB,QAAQhC,gBAAgBwwI,eACnCU,EAAU/yJ,EAAG6jB,QAAQhC,gBAAgBS,cAGrC4lC,EAAQ,EACR6qG,EAAU/yJ,EAAG6jB,QAAQvB,YAGzB,IAAI2wI,EA7SLA,GAJAjzJ,EAAA+S,UAIA/S,EAAA6jB,QAAsB/tB,UAHZ,CA6TT,IAAI09J,GAAar5J,EAAsBgG,uBAjTtCyjI,GACE4uB,gBAAQ71J,KAAeqkB,UAAAgyI,GAoTtBG,sBAAuB,GACvBr9J,UAAWm9J,EACXZ,eAAgBnqG,EAjTpB5lC,YAAiBywI,EACbK,eAAOpzJ,EAAY6jB,QAAGyuI,qBAAsB1yB,kBAmT5CW,cAlTevgI,EAAA6jB,QAAA28G,wBAAiCD,cAmThDgE,SAAUvkI,EAAG6jB,QAAQ0gH,SACrBC,UAAWxkI,EAAG6jB,QAAQ2gH,UACtB6uB,cAAerzJ,EAAG6jB,QAAQwvI,cAC1BC,SAAUtzJ,EAAG6jB,QAAQyvI,SACrBC,eAAgBvzJ,EAAG6jB,QAAQ0vI,eAC3B39J,OAAQ,EACRuc,UAAWA,EACX2B,UAAW0/I,EAAWnzJ,QAKtBjC,EAAW,GAAIH,SA9SnBG,GAASF,OAAK,YAAGvB,KAAiBqkB,UAAA4iH,IAmTlCxlI,EAlTQF,OAAG,eAAmB8B,EAAAoyJ,cAwT1BxnF,EAA6BK,YAAY7sE,GAAUK,KAAK,SAAUC,GAE3C,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,UAC/B7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WAEpD9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,SAhTvD3B,IACAR,KACA,SAAA/Q,GAmTC5I,EAAW2I,YAAY,QAAS,8BAA+B,WAEnEV,EAAGsS,WAAY,MAInBva,GAAW2I,YAAY,QAAS,mCAAoC,UAqD5E+J,EAAOiU,cAAgB,SAAUlR,GAC7B/C,EAAOe,OAAO,WACVxL,EAAGivC,cAAgBzhC,EAAE/D,OAAO/J,8OAxwBxCtL,QACKC,OAAO,qCACPe,WAjTU,4BAAsB+gL,MAukCzC,WAMI,QAASI,GAA8B9rK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAcxkI,EAAuBm8J,EAA4Bod,GAuBxJ,QAASxhK,KAEL,GAAI4iK,IACA3iK,UAAWA,EAKfuhK,GAA6B8C,mBAAmB1B,GAAYr2K,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,QACJwJ,EAAGy2K,aAAe/3K,EAAIhJ,KACtBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,4BAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAK5D,QAASg2K,KAEL,GAAIC,GAlTY,CAuTZA,GAHC32K,EAAG+S,UAGU/S,EAAGsmH,SAASsvD,WAFZ,CAKlB,IAlTI7f,IAmTA5jJ,UAAWA,EAjTXykK,aAAY52K,EAAAsmH,SAAYswD,aAmTxBhB,WAlTSe,EAmTTtwJ,QAlTQ,OAmTRvS,UAAWJ,EAlTYrT,OAuT3BqzK,GAlT4BmD,yBAAuB9gB,GAAYt3J,KAAA,SAAAC,GACvDA,EAAAhJ,KAASke,aAAQ,GAmTjB5T,EAAGsS,WAlTQ,EAmTXtS,EAAGgT,YAlTQ,EAmTXjb,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BACpDugH,IACAliH,KA/SJna,EAAA2I,YAAwB,QAAShC,EAAAhJ,KAASme,QAAY,4BAmTvD,SAAUlT,GACT5I,EAlTS2I,YAAY,QAAU,mBAAA,6BAuTvC,QAASo2K,GAAahkK,GAElB9S,EAAG+S,WAlTC,EAmTJ/S,EAAGgT,YAlTU,EAoTbhT,EAAGsmH,SAAWlyH,QAlTK8e,KAAQJ,GA4U/B,QAASikK,GAAejkK,GAjTpB,GAAIH,GAAQtY,EAAAsY,QAAA,UACR,4CAAetb,WAAA,EAAA+F,KAAA,MAoTnBuV,GAAQjT,OAAOjB,KAAK,WAEhB,GAlTIu4K,IACAJ,aAAc,GAmTdhB,WAAY9iK,EAAI8iK,WAjThBzjK,UAASA,EACTkU,QAAQ,SACRvS,UAAWJ,EAAQrT,OAsTvBqzK,GAA6BmD,yBAAyBG,GAAgBv4K,KAAK,SAAUC,GAC7EA,EAAIhJ,KAAKke,aAAc,GAEvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,oBACpD3B,KAEAna,EAAW2I,YAAY,QAAS,qBAAuBrJ,WAAW,EAAM+F,KAAM,QAEnF,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,kEAAoErJ,WAAW,EAAM+F,KAAM,UAEhI,cAKP,QAAS4W,KAELhU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsmH,YAGP,QAAS8N,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsmH,YAvJP,GAlTItmH,GAAGC,IAoTPD,GAAGqU,kBAlTqBhJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAmTxBrL,EAAGsU,SAlTItU,EAAQqU,gBAAA,EAoTfrU,GAAGuU,YAlTY,EAmTfvU,EAAGwU,qBAlTY,SAAeC,GAmT1BzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,CAChB,IAlTIb,GAAIhY,EAAqBgG,uBAAwBwU,gBAAAxC,UAmTjDuB,EAAcvZ,EAAsBgG,sBACxCH,GAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAlTQ,EAmTXtS,EAAG02K,mBAAqBA,EACxB12K,EAAGsmH,YACHtmH,EAAG82K,aAlTaA,EAmThB92K,EAAG+2K,eAlTgBA,EAmTnB7kK,6KA1BJ9d,QACKC,OAAO,yCACPe,WAAW,gCAAiCmhL,MAmKrD,WAEI,YAMA,SAASU,GAlTgBxsK,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA2gC,EAAAxtJ,EAAA3X,GA0TrB,QAAS+8K,KAELl9K,EAAO8F,GAAG,yBAEd,QAlTQq/J,KAoTJnlK,EAAO8F,GAAG,0BAEd,QAASq3K,KAELn9K,EAAO8F,GAlTC,wBAqTZ,QAASi8E,KAEL/hF,EAAO8F,GAlTC,eA4RZ,GAAIE,GAAKC,IACTD,GAAGk3K,mBAlTUA,EAmTbl3K,EAAGm/J,gBAlTkBA,EAmTrBn/J,EAAGm3K,kBAAoBA,EACvBn3K,EAAG+7E,gBAAkBA,gKATzB3nF,QACKC,OAAO,0CACPe,WAlTW,iCAAA6hL,MAgVpB,WAGI,YAOA,SAASG,GAlTmB3sK,EAAgB1Q,EAAGhC,EAAAyC,EAAAH,EAAAL,EAAAq9K,EAAA3jB,EAAAv5J,EAmT3Ci8J,GA4CA,QAlTSlkJ,KAoTL,GAlTI8T,IACA7T,UAAOA,EAmTPyhJ,YAlTG,OAmTHh+J,OAAQ,IAGZ89J,GAlT4BqL,6BAAA/4I,GAAAvnB,KAAA,SAAAC,GAmTL,MAAfA,EAAIlI,SAjTJwJ,EAAAs3K,oBAAe54K,EAAAhJ,KACnBsK,EAAAsS,WAAgB,IAoTjB,SAAU3R,GAjTT5I,EAAS2I,YAAO,QAAA,mBAAsB,oBAuT9C,QAAS6+J,GAlTOvL,EAAAz1J,GAWhB,GAySIyB,EAAG5J,eAlTS,EAmTZ4J,EAAGijK,aAAc,EACjBjjK,EAAG2gK,YAlTI,EAmTP3gK,EAAGu3K,cAlTK,EAmTRv3K,EAAGw3K,oBAAsB,KACzBx3K,EAAGy3K,kBAAoBzjB,EACvBh0J,EAAG03K,mBAAqB,KA/SrB1jB,EAAA,CACH,GAAOhuI,IACA7T,UAAAA,EAmTC2xC,WAAY,EACZhuD,UAAWk+J,GA/ShB2jB,EAAU,EAoTT,KAAK,GAAIz8K,KAAK8E,GAAGs3K,oBACTt3K,EAAGs3K,oBAAoBp8K,GAAGpF,WAAak+J,IAjT9Ch0J,EAAAw3K,oBAAWx3K,EAAAs3K,oBAAAp8K,GAAAonB,YAmTJtiB,EAAG03K,mBAAqB13K,EAAGs3K,oBAAoBp8K,GAAG4oD,WAjTpD6zH,EAAA33K,EAAAs3K,oBAAAp8K,GAAA0mI,gBAsTF+1C,GAAWx8K,OAAS,GAjT3B6E,EAAA43K,mBAAA,EAmTO53K,EAAGk/J,mBAAqBviK,KAAKC,MAAM+6K,IAhTvC33K,EAAA43K,mBAAA,EAqTA7jB,EAAU/zJ,EAAG03K,oBAlThBG,EAA8B7jB,GAmBhCoC,EAAWuJ,gBAAA35I,GAAAvnB,KAAA,SAAAC,GACI,MAAfA,EAAelI,SACfwJ,EAAAgmD,aAAiBtnD,EAAAhJ,KACpBsK,EAAAsS,WAAA,EACgBtS,EAAA83K,gBAAA,EAERv5K,GACWA,MAqTR,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAnTIpwG,iBAAmB,KAoT1B/jD,EAAGgmD,gBA8BX,QAnTIysG,KAoTAzyJ,EAAG5J,eAnTc,EAoTjB4J,EAAGu3K,cAnTQ,EAoTXv3K,EAAGijK,aAnTQ,EAoTXjjK,EAAG2gK,YAnTK,EAsTZ,QAASoX,KAKL/3K,EAAGu3K,cAAe,EAClBv3K,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,CAUjB,IAAIj9I,IACA7T,UAAWA,EACXrc,UAAWkK,EAAGy3K,kBACdzzH,MAAOhkD,EAAGg4K,iBACVC,WAAYj4K,EAAGi4K,WACfC,WAAYl4K,EAAGk4K,WACfC,WAAYn4K,EAAGm4K,WACfC,WAAYp4K,EAAGo4K,WACfC,WAAYr4K,EAAGq4K,WAInB3kB,GAA8B4kB,yBAAyBtyJ,GAAWvnB,KAAK,SAAUC,GAC1D,MAAfA,EAAIlI,SACJwJ,EAAGm7C,WAAaz8C,EAAIhJ,KACpBsK,EAAGsS,WAAY,IAKpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAnTQ63K,GAAAC,EAAAj6K,GAoTJ,GAAuB5I,QAAnB6iL,EAA8B,CAlTlC,GAAQ9iL,GAAO8iL,CAoTX,IAAIA,EAAgBr9K,OAAS,EAAG,CAlT5B,GAAAzF,GAAA8iL,EACA94K,EAAAhK,EAAc42B,IAAA,SAAAxiB,GACd,MAAAA,GAAY2uK,SACZ/kJ,KAAA,MAEAh0B,GAAA,IAAWA,EAAY,IAqTvBM,EAAGo4K,WAAa14K,IAK5B,QAASg5K,GAnTOC,EAAWp6K,GAoTvB,GAnTY5I,QAmTRgjL,EAnTQ,CAoTR,GAAIjjL,GAnTOijL,CAoTX,IAAIA,EAnTIx9K,OAAW,EAAA,CAoTf,GAAIzF,GAAOijL,EAlTZj5K,EAAUhK,EAAK42B,IAAA,SAAAxiB,GACd,MAAWA,GAAAi9C,SAoTRrzB,KAAK,IAIR1zB,GAAGq4K,WAAa34K,IAU5B,QAnTOk5K,KAEH54K,EAAGu3K,cAAW,EAoTdv3K,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAG2gK,YAAa,EAIpB,QAASkY,KAjThB74K,EAAYu3K,cAAA,EAoTDv3K,EAAG5J,eAAgB,EAlT3B4J,EAAAijK,aAAA,EAyTI,QAASlP,GAAU8D,EAAkBt5J,GAnTzC,GAASs5J,EAAA,CAEF,GAAA7xI,IACA7T,UAAkBA,EAClB2xC,WAAoB+zG,EACpB/hK,UAAkBkK,EAAAy3K,kBAqTTqB,mBAAoB,IAGxBplB,GAA8BqlB,kCAAkC/yJ,GAAWvnB,KAAK,SAAUC,GAnTvF,GAAG,MAAAA,EAAAlI,OAAA,CAqTEwJ,EAAGg4J,kBAAoBt5J,EAAIhJ,KAEvBsK,EAAGg4J,kBAAkB78J,OAAS,EAnTpC6E,EAAAi4J,aAAA,EAELj4J,EAAAi4J,aAAoB,CAEf,KAAA,GAAA/8J,KAAA8E,GAAAg4J,kBAqTMh4J,EAAGg4J,kBAAkB98J,GAAGg9J,eACqB,IAAzCl4J,EAAGg4J,kBAAkB98J,GAAG03B,gBAnTvC5yB,EAAkBg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAg4J,kBAAA98J,GAAA03B,eAwTXwjI,GAA2B4iB,wBAAwBhzJ,GAAWvnB,KAAK,SAAU89J,GACrD,MAAhBA,EAAK/lK,SACLwJ,EAAGi5K,aAAe1c,EAAK7mK,KAnT1C6I,GAqTuBA,MAlThC,SAAAkiK,GAqTwB1oK,EAAW2I,YAAY,QAAS,mBAAoB,oBAlThEV,EAAAsS,WAAA,EAuTY/T,GACAA,MAlTX,SAAAoC,GAsTG5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAjT7DV,GAAAm0J,QAAcpwG,iBAAA,KACd/jD,EAAAg4J,qBAyTH,QAASM,GAAmByR,EAAcxrK,GApTvC,GAAW5I,QAAXo0K,GACA,GAAAA,EAAa5uK,OAAA,EAAA,CACb,GAAazF,GAAAq0K,EACbrqK,EAAiBhK,EAAA42B,IAAA,SAAAxiB,GACjB,MAAAA,GAAqBi9C,SACTrzB,KAAA,KAEZ1N,GACa7T,UAAAA,EACb2xC,WAAe9jD,EAAA03K,mBAClB5hL,UAAiBkK,EAAAy3K,kBACLqB,mBAAAp5K,EAGTM,GAAAg4K,iBAAuBt4K,EAEvBg0J,EAAeqlB,kCAAA/yJ,GAAAvnB,KAAA,SAAAC,GACf,GAAqB,MAArBA,EAAqBlI,OAAA,CACJwJ,EAAAw4J,qBAAA95J,EAAAhJ,IAEF,KAAA,GAAAwF,KAAA8E,GAAAw4J,qBACCx4J,EAAAg4J,kBAAA98J,GAAAg9J,eACDl4J,EAAAw4J,qBAAAt9J,GAAA8oD,QAAAhkD,EAAAg4J,kBAAA98J,GAAA8oD,OAAA,IAAAhkD,EAAAw4J,qBAAAt9J,GAAA03B,gBACI5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,eA0TF,IAAIsmJ,IApTrB/mK,UAAgCA,EACnBrc,UAAAkK,EAAsBy3K,kBACtCqB,mBAAAp5K,EACgB6nK,UAAA,MAsTQ0Q,WAAY,GApThBC,WAAA,GACDC,WAAA,GAwTCn4K,GAAGm5K,iBAnTnBzlB,EAA8B0lB,2BAAwCF,GAAKz6K,KAAU,SAAK89J,GAC9D,MAALA,EAAK/lK,SACjBwJ,EAAAm5K,cAA0B5c,EAAA7mK,KACdsK,EAAAsS,WAAA,EAEL/T,GACSA,OAyTXyB,EAAGsS,WAAY,EAEX/T,GApTDA,MAGhB,SAAeoC,GACf5I,EAAA2I,YAAsB,QAAA,mBAAA,yBAKrBV,GAAAm0J,QAAApwG,iBAAY,KACZ/jD,EAAAg4J,qBAyTR,QAASqhB,GAAiBC,EAAa/6K,GACnC,GAAmB5I,QAAf2jL,EAA0B,CApT1B,GAAI5jL,GAAA4jL,CAsTJ,IAAIA,EAAYn+K,OAAS,EAAG,CApT5B,GAAKzF,GAAS4jL,EACN55K,EAAGhK,EAAA42B,IAAA,SAAuBxiB,GAC1B,MAAGA,GAAA2uK,SAsTJ/kJ,KArTI,MAuTPh0B,GAAS,IAAMA,EAAS,IAlT5BM,EAAAi4K,WAAev4K,CAuTf,IArTIw5K,IAsTA/mK,UAAWA,EACXrc,UAAWkK,EAAGy3K,kBApTdqB,mBAAG94K,EAAoBg4K,iBAsTvBzQ,UAAW,SApTf0Q,WAAav4K,EACbw4K,WAAA,GAsTIC,WAAY,GAEhBn4K,GAAGu5K,gBACH7lB,EAA8B0lB,2BAA2BF,GAASz6K,KAAK,SAAUC,GAC1D,MAAfA,EAAIlI,SACJwJ,EAAGu5K,aAAe76K,EAAIhJ,KACtBsK,EAAGsS,WAAY,EACX/T,GACAA,QAMpB,QAASi7K,GAAeC,EAAiBl7K,GACrC,GAAuB5I,QAAnB8jL,EAA8B,CAC9B,GAAIA,EAAgBt+K,OAAS,EAAG,CAC5B,GAAIzF,GAAO+jL,EApTf/5K,EAAAhK,EAAA42B,IAAA,SAA2BxiB,GACnB,MAAIA,GAAA2uK,SAsTL/kJ,KArTI,MAsTPh0B,GArTO,IAAAA,EAAY,IAuTnBM,EAAGk4K,WAAax4K,EAGpBM,EAAG05K,gBACH,IArTGR,IACC/mK,UAAWA,EAsTXrc,UAAWkK,EAAGy3K,kBACdqB,mBAAoB94K,EAAGg4K,iBApT1BzQ,UAAA,QACE0Q,WAAQj4K,EAAAi4K,WACRC,WAAAx4K,EAsTCy4K,WAAY,GAEhBzkB,GAA8B0lB,2BAA2BF,GAASz6K,KAAK,SAAUC,GAC1D,MAAfA,EAAIlI,SACJwJ,EAAG05K,cAAgBh7K,EAAIhJ,KACvBsK,EAAGsS,WAAY,EACX/T,GACAA,QAMpB,QAASo7K,GAAcC,EAAcr7K,GACjC,GAAoB5I,QAAhBikL,EAA2B,CAC3B,GAAIA,EAAaz+K,OAAS,EAAG,CACzB,GAAIzF,GAAOkkL,EACPl6K,EAAShK,EAAK42B,IAAI,SAAUxiB,GAC5B,MAAOA,GAAI2uK,SACZ/kJ,KAAK,MACRh0B,GAAS,IAAMA,EAAS,IAGxBM,EAAGm4K,WAAaz4K,EAGpBM,EAAG65K,eACH,IAAIX,IACA/mK,UAAWA,EApTdrc,UAAWkK,EAAAy3K,kBACbqB,mBAAgB94K,EAAAg4K,iBAChBzQ,UAAe,QACf0Q,WAAcj4K,EAAAi4K,WACdC,WAAal4K,EAAAk4K,WAsTRC,WAAYz4K,EAnTxBg0J,GAAsB0lB,2BAAAF,GAAAz6K,KAAA,SAAAC,GAsTS,MAAfA,EAAIlI,SACJwJ,EAAG65K,aAAen7K,EAAIhJ,KACtBsK,EAAGsS,WAAY,EACX/T,GApTbA,QAkWP,QAASs5K,GAA8B/hL,EAAWyI,GAC9C,GAAIzI,EArTI,CAsTJ,GAAIgkL,IApTA3nK,UAAGA,EAsTH2xC,WAAY,EACZhuD,UAAWA,EAEfuhL,GAA4B1X,gBAAgBma,GAAar7K,KAAK,SAAUC,GApTzD,MAAdA,EAAAlI,QACDwJ,EAAA+5K,oBAA0Br7K,EAAAhJ,KACfsK,EAAA+5K,oBAAA5+K,OAAA,GACPd,EAAY8C,OAAS,UAAG,yBAAA9F,WAAA,EAAA+F,KAAA,OAEpB4C,EAAAsS,WAAc,EACd/T,GACIA,KAuTJxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SArTIC,GAsTH5I,EAAW2I,YAAY,QAAS,mBAAoB,eAOhE,QAAS0zH,KAhTLp0H,EAAG6jB,WA3PP,GAAI7jB,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAlTqB,SAAWC,GAmT/BzU,EAAGuU,YAlTaE,GAoTpBzU,EAAGu/J,cAAgBA,EAEnBv/J,EAAGyyJ,SAAWA,EACdzyJ,EAAG+3K,WAlTaA,EAmThB/3K,EAAG44K,WAlTYA,EAmTf54K,EAAG64K,eAlTaA,EAmThB74K,EAAGs4J,mBAAqBA,EACxBt4J,EAAG+zJ,UAlTYA,EAmTf/zJ,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAG2gK,YAlTM,EAmTT3gK,EAAGu3K,cAlTK,EAmTRsB,GAAiB,EACjB74K,EAAGo0H,OAASA,EACZp0H,EAAGm0J,WACHn0J,EAAGg4J,qBACHh4J,EAAGw4J,wBACHx4J,EAAG+5K,uBACH/5K,EAAGi5K,gBACHj5K,EAAGk/J,sBACHl/J,EAAGg6K,kBACHh6K,EAAGm5K,iBACHn5K,EAAGu5K,gBACHv5K,EAAG05K,iBACH15K,EAAG65K,gBACH75K,EAAGq5K,iBAAmBA,EACtBr5K,EAAGw5K,eAAiBA,EACpBx5K,EAAG25K,cAAgBA,EAjTnB35K,EAAAu4K,cAASA,EAmTTv4K,EAAG04K,cAlTIA,EAEP14K,EAAA63K,8BAA6BA,CAmT7B,IAAI1lK,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,8LAjDJ9d,QACKC,OAAO,uCACPe,WAAW,8BAA+BgiL,MA0jBnD,WACI,YAOA,SAAS6C,GAAiCxvK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ4wE,EAA8BwrF,EAA4Bj8J,EAAuBu5J,GAmE3K,QAASxhJ,KACLlS,EAAGylC,OAAS,uBACZ,IAAIzf,IACA7T,UArTOA,EAsTPvc,OAAQ,IAIZg1E,GAA6BI,iBAAiBhlD,GAAWvnB,KAAK,SAAUC,GApTnD,MAqTbA,EAAIlI,SACJwJ,EAAG2hB,YArTYjjB,EAAAhJ,KAsTfsK,EAAGsS,WArTS,EAwTR4nK,EADa,MAAbl6K,EAAG/J,OACc,cAEA+J,EAAG/J,UAE7B,SAAU0K,GACT5I,EAAW2I,YArTK,QAAc,mBAAA,oBAwTlC01J,EArToBwB,eAAY,QAAAn5J,KAAA,SAAAC,GACZ,MAqTZA,EAAIlI,SACJwJ,EAAG6xF,SArTSnzF,EAAAhJ,KAsTZsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAASw5K,GAAiBjkL,GACtB,GAAc,eAAVA,EACA+J,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EACrBn6K,EAAGo6K,uBArTwB,EAsT3Bp6K,EAAGq6K,oBAAqB,EACxBr6K,EAAG2gK,YArTa,EAsThB3gK,EAAGs6K,iBArTa,EAsThBt6K,EAAGu6K,sBAAuB,EAC1Bv6K,EAAG/J,OAAS,kBAEX,IArTO,iBAqTHA,EACL+J,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EACrBn6K,EArTCo6K,uBAAA,EACDp6K,EAAGq6K,oBAAQ,EACXr6K,EAAG2gK,YAAA,EAsTH3gK,EAAGs6K,iBAAkB,EACrBt6K,EAAGu6K,sBAAuB,EAC1Bv6K,EAAG/J,OAAS,oBAnTZ,IAAe,wBAAfA,GAA0B,iBAAAA,GAAA,aAAAA,GAW1B,GAVA+J,EAAA5J,eAAW,EACX4J,EAAAijK,aAAgB,EAsThBjjK,EAAGm6K,iBArTY,EAsTfn6K,EAAGo6K,uBArTuB,EAsT1Bp6K,EAAGq6K,oBArTgB,EAsTnBr6K,EAAG2gK,YArTS,EAsTZ3gK,EAAGs6K,iBAAkB,EACrBt6K,EAAGu6K,sBArTgB,EAsTnBv6K,EAAG/J,OAAS,uBAnTT,wBAAAA,EAsTC,IAAK,GAAIiF,KAAK8E,GAAG2hB,YApTjB3hB,EAAU2hB,YAAAzmB,GAAApF,WAAA+/J,IAIV71J,EAAWylC,OAAAzlC,EAAA2hB,YAAAzmB,GAAAonB,YAAA,MAAAtiB,EAAA2hB,YAAAzmB,GAAAid,cAMf,IAAA,uBAAAliB,EAA8B,CAsT9B+J,EAAG5J,eArTS,EAsTZ4J,EAAGijK,aArTQ,EAsTXjjK,EAAGm6K,iBArTQ,EAsTXn6K,EAAGo6K,uBArTS,EAsTZp6K,EAAGq6K,oBArTS,EAsTZr6K,EAAG2gK,YAAa,EAChB3gK,EAAGs6K,iBAAkB,EACrBt6K,EAAGu6K,sBAAuB,EAC1Bv6K,EAAG/J,OAAS,qBACZ,KAAK,GAAIiF,KAAK8E,GAAG2hB,YApThB3hB,EAAA2hB,YAAezmB,GAAApF,WAAiB+/J,IAIzB71J,EAAAylC,OAASzlC,EAAK2hB,YAAIzmB,GAAUonB,YAAK,MAAAtiB,EAAA2hB,YAAAzmB,GAAAid,cAyTxC,IAAc,qBAAVliB,EAA+B,CACpC+J,EAAG5J,eArTI,EAsTP4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EApTrBn6K,EAAGo6K,uBAAgB,EACnBp6K,EAAAq6K,oBAAc,EAsTdr6K,EAAG2gK,YArTY,EAsTf3gK,EAAGs6K,iBArTe,EAsTlBt6K,EAAGu6K,sBArTqB,EAsTxBv6K,EAAG/J,OArTC,mBAsTJ,KArTI,GAAAiF,KAAA8E,GAAY2hB,YACZ3hB,EAAA2hB,YAAYzmB,GAAApF,WAAA+/J,IAIR71J,EAAAylC,OAAIzlC,EAAW2hB,YAAKzmB,GAAAonB,YAAA,MAAAtiB,EAAA2hB,YAAAzmB,GAAAid,cAyT3B,IArTW,wBAqTPliB,EArTO,CAsTZ+J,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EACrBn6K,EAAGo6K,uBAAwB,EAC3Bp6K,EAAGq6K,oBAAqB,EApThCr6K,EAAS2gK,YAAc,EACf3gK,EAAAs6K,iBAAgB,EAChBt6K,EAAAu6K,sBAA0B,EAuT1Bv6K,EAAG/J,OArTK,sBAsTR,KAAK,GArTGiF,KAAA8E,GAAO2hB,YACR3hB,EAAA2hB,YAAKzmB,GAAApF,WAAA+/J,IAIL71J,EAAAylC,OAAazlC,EAAA2hB,YAAAzmB,GAAAonB,YAAA,MAAAtiB,EAAA2hB,YAAAzmB,GAAAid,cAIpB,IAAc,6BAAVliB,EAAU,CAsTd+J,EAAG5J,eArTY,EAsTf4J,EAAGijK,aArTY,EAsTfjjK,EAAGm6K,iBArTC,EAsTJn6K,EAAGo6K,uBArTY,EAsTfp6K,EAAGq6K,oBArTgB,EAsTnBr6K,EAAG2gK,YArTa,EAsThB3gK,EAAGs6K,iBArTa,EAsThBt6K,EAAGu6K,sBAAuB,EAE1Bv6K,EAAG/J,OArTS,2BAsTZ,KAAK,GArTGiF,KAAG8E,GAAA2hB,YACH3hB,EAAG2hB,YAAYzmB,GAAApF,WAAA+/J,IAyTf71J,EAAGylC,OAASzlC,EAAG2hB,YAAYzmB,GAAGonB,YAAc,MAAQtiB,EAAG2hB,YAAYzmB,GAAGid,WAgBtF,QAASqiK,GAAgBzhK,GAErB/Y,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EACrBn6K,EAAGo6K,uBAAwB,EAC3Bp6K,EAAG7J,aAAe,GAElB0/J,EAAe98I,EACf/Y,EAAG2gK,YAAa,CAEhB,KAAK,GAAIzlK,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,WAAa+/J,IAK/B71J,EAAGylC,OAASzlC,EAAG2hB,YAAYzmB,GAAGonB,YAAc,MAAQtiB,EAAG2hB,YAAYzmB,GAAGid,SAI9E+hK,GAAiB,iBAGrB,QAASO,GAAS9+B,GAEC,gBAAXA,GApTR37I,EAASm0J,QAAAj+J,UAAA,gBAED8J,EAAAylC,OAAIzlC,EAAAylC,OAuTJy0I,EArTgB,yBAuTA,gBAAXv+B,GAEL37I,EAAGm0J,QArTKj+J,UAAe,gBAuTvB8J,EAAGylC,OArTSzlC,EAAGylC,OAsTfy0I,EArTY,yBAED,uBAqTNv+B,GAEL37I,EAAGylC,OArTSzlC,EAAAylC,OAwTZy0I,EAAiB,wBAGD,cAAXv+B,GAEL37I,EAAGylC,OAASzlC,EAAGylC,OAGfy0I,EAAiB,sBA1SpB,iBAAAv+B,EAwT+B,iBAAxB37I,EAAGm0J,QAAQj+J,UArT3B8D,EAAA8F,GAAA,wBAAAhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAEgB,iBAAAzlC,EAAAm0J,QAAAj+J,WAuTA8D,EAAO8F,GAAG,wBAA0BhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,SAnT3E,aAAAk2G,EA+T2B,iBAAxB37I,EAAGm0J,QAAQj+J,UArTpB8D,EAAc8F,GAAA,oBAAAhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAwTwB,iBAAxBzlC,EAAGm0J,QAAQj+J,WArTzB8D,EAAa8F,GAAA,oBAAAhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAIb,oBAAAk2G,GAEA37I,EAAAylC,OAAezlC,EAAAylC,OAGfy0I,EAAA,yBAIY,yBAAZv+B,IAEA37I,EAAAylC,OAAAzlC,EAAAylC,OAyTKy0I,EAAiB,8BAKzB,QAASznB,KApTY,iBAAlBzyJ,EAAA/J,QACAikL,EAAW,eACXl6K,EAAAylC,OAAW,wBACXzlC,EAAA2gK,YAAkB,GAEJ,wBAAd3gK,EAAA/J,OACAikL,EAAU,iBAGK,uBAAfl6K,EAAA/J,OACAikL,EAAA,iBAEA,uBAAAl6K,EAAA/J,OAuTKikL,EAAiB,iBApTD,qBAArBl6K,EAAA/J,OAuTKikL,EAAiB,iBAEC,wBAAbl6K,EAAG/J,OArTZikL,EAAe,uBAEO,yBAAdl6K,EAAA/J,OACTikL,EAAoB,uBAwTG,6BAAbl6K,EAAG/J,QACRikL,EAAiB,qBA4BzB,QAASnmB,GAtTM8D,EAAYt5J,GAuTvB,GAAIs5J,EAAkB,CApTlB,GAAA7xI,IAuTI7T,UAAWA,EACX2xC,WAAY+zG,EACZ/hK,UAAW+/J,EACXxgD,aAAc,EAnTlB+gD,GAAyB2B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GACtB,GAAgB,MAAhBA,EAAAlI,OAAgB,CAChBwJ,EAAAg4J,kBAAct5J,EAAAhJ,KAEdsK,EAAAg4J,kBAAwB78J,OAAA,EACxB6E,EAAAi4J,aAAqB,EAErBj4J,EAAAi4J,aAAkB,CAElB,KAAS,GAAA/8J,KAAA8E,GAAAg4J,kBAuT6C,IAAzCh4J,EAAGg4J,kBAAkB98J,GAAG03B,gBArTzB5yB,EAAAg4J,kBAAiB98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAg4J,kBAAA98J,GAAA03B,eAI7BwjI,GAAwB4iB,wBAAAhzJ,GAAAvnB,KAAA,SAAA89J,GACH,MAArBA,EAAA/lK,SACawJ,EAAAi5K,aAAA1c,EAAA7mK,KACb6I,GACAA,MAwTQ,SAAUkiK,GArThB1oK,EAAU2I,YAAA,QAA0B,mBAAU,oBAGhDV,EAAAsS,WAAkB,EAElB/T,GACAA,MAGA,SAASoC,GAuTR5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBAmBX,QAAS0iB,KACL16K,EAAGi4J,aAAc,EACjBj4J,EAAG43K,mBAAoB;AAEvB53K,EAAGgT,YAtTY,EAuTfhT,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EACrBn6K,EAAGkjK,kBAtTgB,EAuTnBljK,EAAGmjK,YAtTI,EAuTPnjK,EAAG26K,cAtTI,EAyTP36K,EAAG+S,WAtTI,EAuTP/S,EAAG+xJ,gBAtTiB,EAuTpB/xJ,EAAGsS,WAtTI,EAuTPtS,EAAG83K,gBAtTI,EAuTP5lK,IAIJ,QAAS0oK,KACL5gL,EAAO8F,GAAG,2BAA6BhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,SAO/E,QAtTQo1I,KAuTJ7gL,EAtTO8F,GAAA,iCAAkBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SA6T7B,QAtTQq1I,KAuTJ9gL,EAtTI8F,GAAK,gCAAyBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SA6TtC,QAASs1I,KACL/gL,EAAO8F,GAAG,kCAAoChK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,SAItF,QAtTQu1I,KAyTJhhL,EAtTO8F,GAAA,oCAAahK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAwTxB,QAtTQw1I,KAyTJjhL,EAtTI8F,GAAK,+BAAyBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAwTtC,QAASy1I,KAGLlhL,EAAO8F,GAAG,8BAtTgChK,UAAA+/J,EAAyB9/J,OAAAiK,EAAAylC,SAyTvE,QAAS01I,KAGLnhL,EAAO8F,GAAG,+BAAiChK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,SAInF,QAAS21I,KAEY,wBAAbp7K,EAAG/J,OACH+D,EAAO8F,GAAG,mBAAqBhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,OAAQzvC,QAAS,aAEpFgE,EAAO8F,GAAG,mBAAqBhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,OAAQzvC,QAAS,SAjiB5F,GAAIgK,GAAKC,IAnTTD,GAAAqU,kBAAmBhJ,MAAA,KAAkBA,MAAU,KAAAA,MAAA,KAAAA,MAAA,MAsT/CrL,EAAGsU,SArTKtU,EAAAqU,gBAAkB,EAuT1BrU,GAAGuU,YArTS,EAsTZvU,EAAGwU,qBArToB,SAAAC,GAsTnBzU,EAAGuU,YArTKE,GAwTZzU,EAAGi4J,aAAc,EACjBj4J,EAAG43K,mBAAoB,EAEvB53K,EAAGgT,YArTa,EAsThBhT,EAAG5J,eArTgB,EAsTnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBArTiB,EAsTpBn6K,EAAGo6K,uBArToB,EAsTvBp6K,EAAGq6K,oBAAqB,EACxBr6K,EAAG26K,cAAe,EAClB36K,EAAGg7K,mBAAqBA,EACxBh7K,EAAGi7K,cArTaA,EAsThBj7K,EAAGk7K,uBArToBA,EAsTvBl7K,EAAGm7K,cAAgBA,EACnBn7K,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAAY,EACftS,EAAG83K,gBAAiB,EACpB93K,EAAGu6K,sBArTa,EAsThBxiL,EAAW2c,SArTS,EAsTpB1U,EAAGs6K,iBAAkB,EAGrBt6K,EAAG+zJ,UAAYA,EAKf/zJ,EAAGw6K,gBArTgBA,EAsTnBx6K,EAAGy6K,SAAWA,EACdz6K,EAAGyyJ,SAAWA,EACdzyJ,EAAG06K,gBArTiBA,EAsTpB16K,EAAG2gK,YAAa,EAChB3gK,EAAGq7K,aAAc,EACjBr7K,EAAGm0J,WAEHn0J,EAAG46K,2BAA6BA,EAChC56K,EAAGo7K,aAAeA,EAClBp7K,EAAG66K,wBArTMA,EAsTT76K,EAAG86K,iCArTmCA,EAsTtC96K,EAAG+6K,wBArTQA,EAwTX/6K,EAAGk/J,qBAEH,IArTI/sJ,GAAIhY,EAA2BgG,uBAAAwU,gBAAAxC,UAuT/B0jJ,EArTY77J,EAAOvE,OAAAK,SACPkE,GAASvE,OAAKM,MAsT9BiK,GAAG/J,OAAS+D,EArTIvE,OAAOQ,OAsTvB+J,EAAGm0J,QAAQj+J,UArTS8D,EAAAvE,OAAAS,UAsTpB8J,EAAG2hB,eAGHzP,8LAtEJ9d,QACKC,OArTM,4CAsTNe,WArTM,mCAAc6kL,MA81B7B,WAEI,YAMA,SAtTQqB,GAA8B7wK,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA2gC,EAAAxtJ,EAAA3X,GAkUlC,QAAS+X,KArTTlS,EAAAjK,OAAS49J,EAuTL3zJ,EAAG7J,aAAeA,EAGtB,QAAS6kL,KAGLhhL,EAtTI8F,GAAA,gCAAiBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAjK,SAwTzB,QAtTSklL,KAwTLjhL,EAtTO8F,GAAA,2BAAoBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAjK,SAwT/B,QAtTQmlL,KAwTJlhL,EAAO8F,GAAG,0BAA4BhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGjK,SAG9E,QAtTQolL,KAwTJnhL,EAAO8F,GAAG,4BAA8BhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGjK,SAGhF,QAAS08J,KAELz4J,EAAO8F,GAAG,gCArCd,GAAIE,GAtTIC,IAuTRD,GAAGg7K,mBAAqBA,EACxBh7K,EAAGi7K,cAAgBA,EACnBj7K,EAAGk7K,uBAAyBA,EAC5Bl7K,EAAGm7K,cAAgBA,EACnBn7K,EAAGyyJ,SAtTSA,CAuTZ,IAAIoD,GAAe77J,EAAOvE,OAAOK,UAC7B69J,EAAc35J,EAAOvE,OAAOM,OAC5BI,EAAe6D,EAAOvE,OAAOU,YArT7BgE,GAAiBgG,uBAAAwU,gBAAAxC,SAuTrBD,mKAfJ9d,QACKC,OAtTG,6CAuTHe,WAtTM,oCAAakmL,MAoW5B,WAGI,YAOA,SAASC,GAAqC9wK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQS,EAASyrK,EAAgC9P,EAA4BiJ,EAA4BllK,GAuC/L,QAAS+X,KAELlS,EAAGw7K,cACC71H,KAAQ,aAERA,KAAQ,iBAERA,KAAQ,YAGZ,IAtTI3/B,IACA7T,UAAGA,EAuTHo1J,UAAW,OACX3xK,OAtTQ,IAyTZswK,GAA+BsB,qCAAqCxhJ,GAAWvnB,KAAK,SAAUC,GArTxE,MAAjBA,EAAOlI,SACRwJ,EAAAs3K,oBAAiB54K,EAAAhJ,KAuTbsK,EAAGsS,WAAY,IAEpB,SAtTC3R,GAuTA5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAtTS+6K,GAAOznB,EAAU0nB,EAAAC,EAAwBC,GAuT9C57K,EAAG5J,eAtTC,EAuTJ4J,EAAG67K,aAAc,EACjB77K,EAAG87K,aAtTS,EAuTZ97K,EAAG61J,aAtTC7B,EAuTJh0J,EAAG+7K,eAAiBL,EACpB17K,EAAGg8K,eAtTSL,EAuTZ37K,EAAGi8K,gBAtTkBL,EAyTzB,QAASM,GAAeC,GAEL,SAAXA,EACAn8K,EAAGwmK,UAAY2V,EAEC,QAAXA,EACLn8K,EAAGwmK,UAAY2V,EAEC,UAAXA,IACLn8K,EAAGwmK,UAAY2V,GAGnB9S,EAAiB,kBACjBrpK,EAAG87K,aAAc,EAEjB97K,EAAG67K,aAAc,EACjB77K,EAAG5J,eAAgB,EAGvB,QAASq8J,KAELzyJ,EAAG87K,aAAc,EAEjB97K,EAAG5J,eAAgB,EACnB4J,EAAG2gK,YAAa,EAGpB,QAAS0I,GAAiB+S,GAEtB,GAAIjN,IAtTI,EAuTJkN,EAtTI,EAwTR,IAtTQ,kBAsTJD,EAEAp8K,EAAGgmD,gBArTHhmD,EAAAs8K,qBAuTAt8K,EAAGu8K,mBACHv8K,EAAGw8K,iBACHx8K,EAAGy8K,uBACHz8K,EAAGwgK,uBACHxgK,EAAGomK,gBAtTY,GAwTfpmK,EAAG08K,eAtTY,EAuTf18K,EAAG28K,iBAAkB,EAErBxN,GAAU,MAET,IAAgB,oBAAZiN,EAUL,GARAp8K,EAAGs8K,qBACHt8K,EAAGu8K,mBACHv8K,EAAGw8K,iBACHx8K,EAAGy8K,uBACHz8K,EAAGwgK,uBACH6b,EAAe,GACfr8K,EAAGomK,gBAAkB,GApTc,MAsT/BpmK,EAAGm0J,QAtTKpwG,kBAAuB/jD,EAASm0J,QAAApwG,iBAAoB5oD,OAAA,EAAA,CAuT5D,GAA0C,GAAtC6E,EAAGm0J,QAAQpwG,iBAAiB5oD,OAAa,CACzC6E,EAAG08K,eAAgB,EArTnB18K,EAAG28K,iBAAY,CAEf,KAAI,GAAAzhL,KAAA8E,GAAAm0J,QAAApwG,iBACAs4H,EAAAA,EAAAr8K,EAAAm0J,QAAApwG,iBAAA7oD,GAAA6d,GAAA,GAGTsjK,GAAelhL,OAAA,IACdkhL,EAAuBA,EAAS/4J,UAAA,EAAA+4J,EAAoBlhL,OAAA,IAGvD6E,EAAAomK,gBAAApmK,EAAAomK,gBAAA,qBAAAiW,EAAA,QAyTOr8K,GAAG08K,eAAgB,EACnB18K,EAAG28K,iBAAkB,EAErBtT,EAAiB,cAGrB8F,IAAU,MAGVnvK,GAAG08K,eAAgB,EACnB18K,EAAG28K,iBAAkB,MAGxB,IAAgB,eAAZP,GA5SN,GA8SCC,EAAe,GACfr8K,EAAGomK,gBAAkB,GApT7BpmK,EAASu8K,mBACFv8K,EAAAw8K,iBACAx8K,EAAAy8K,uBAuTCz8K,EAAGwgK,uBApTY,MAAhBxgK,EAAAm0J,QAAgByoB,uBAAA58K,EAAAm0J,QAAAyoB,sBAAAzhL,OAAA,EAAA,CAEhB,IAAA,GAAAD,KAAkB8E,GAAAm0J,QAAApwG,iBAClBs4H,EAAmBA,EAAAr8K,EAAAm0J,QAAApwG,iBAAA7oD,GAAA6d,GAAA,GAStB,IAgTYsjK,EAAalhL,OAAS,IACtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IAnTxE6E,EAAAomK,gBAAYpmK,EAAAomK,gBAAA,qBAAAiW,EAAA,IAEf,GAAAr8K,EAAAm0J,QAAApwG,iBAAA5oD,OAAA,CAuTY6E,EAAG28K,iBAAkB,EACrBN,EAAe,EApTtB,KAAA,GAAAnhL,KAAA8E,GAAAm0J,QAA6ByoB,sBACxBP,EAAAA,EAA6Br8K,EAAAm0J,QAAWyoB,sBAAyB1hL,GAAA6d,GAAA,GAyT3DsjK,GAAalhL,OAAS,IACtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IAnT1E6E,EAAAomK,gBAA0BpmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,6BAAAkhL,EAAA,IAAA,QAwTnBr8K,GAAG28K,iBAAkB,CAGzBxN,IAAU,OAnTb,IAAA,aAAAiN,GASL,GA+SIp8K,EAAGw8K,iBACHx8K,EAAGy8K,uBACHz8K,EAAGwgK,uBAEH6b,EAAe,GACfr8K,EAAGomK,gBAAkB,GApTf,MAAHpmK,EAAGm0J,QAAA0oB,qBAAoC78K,EAAAm0J,QAAW0oB,oBAAsB1hL,OAAG,EAAA,CAwT1E,IAAK,GAAID,KAAK8E,GAAGm0J,QAAQpwG,iBACrBs4H,EAAeA,EAAer8K,EAAGm0J,QAAQpwG,iBAAiB7oD,GAAG6d,GAAK,GA7SvE,IAgTKsjK,EAAalhL,OAAS,IArTxBkhL,EAAAA,EAAA/4J,UAAsC,EAAA+4J,EAAWlhL,OAAc,IAyTjE6E,EAAGomK,gBAAkBpmK,EAAGomK,gBAAkB,qBAAuBiW,EAAe,IApT7C,GAAjCr8K,EAAAm0J,QAAApwG,iBAAA5oD,OAAiC,CAuT/B6E,EAAG28K,iBAAkB,EArT5BN,EAAA,EAwTO,KAAK,GAAInhL,KAAK8E,GAAGm0J,QAAQyoB,sBArT3BP,EAAAA,EAAgCr8K,EAAAm0J,QAAWyoB,sBAAyB1hL,GAAA6d,GAAA,GAGzEsjK,GAAgBlhL,OAAA,IAuTLkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IAGnE6E,EAAGomK,gBAAkBpmK,EAAGomK,iBAAmBiW,EAAalhL,OAAS,EAAI,6BAA+BkhL,EAAe,IAAM,IAEzHA,EAAe,EAEf,KAAK,GAAInhL,KAAK8E,GAAGm0J,QAAQ0oB,oBArT9BR,EAAUA,EAAAr8K,EAAAm0J,QAAA0oB,oBAAA3hL,GAAAs7J,MAAA,GAGH6lB,GAAAlhL,OAAqB,IAuTnBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IAnT9E6E,EAAAomK,gBAAApmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,0BAAAkhL,EAAA,IAAA,QAyTWr8K,GAAG28K,iBAAkB,CApT7BxN,IAAA,OAGH,IAAA,mBAAAiN,GAQD,GANDp8K,EAAAy8K,uBACAz8K,EAAAwgK,uBAEA6b,EAAgB,GAChBr8K,EAAAomK,gBAAW,GAEkB,GAA5BpmK,EAAAm0J,QAAcpwG,iBAAc5oD,QAE5B,GAAkC,MAAtB6E,EAAAm0J,QAAA2oB,mBAAsB98K,EAAAm0J,QAAuB2oB,kBAAgB3hL,OAAA,EAAA,CAE7D,IAAA,GAAAD,KAAA8E,GAAAm0J,QAAApwG,iBACAs4H,EAAAA,EAAAr8K,EAAAm0J,QAAApwG,iBAAA7oD,GAAA6d,GAAA,GA0TIsjK,GAAalhL,OAAS,IAtTjCkhL,EAAqBA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IAGhB6E,EAAAomK,gBAAApmK,EAAAomK,gBAAkC,qBAAiCiW,EAAG,IAE3EA,EAAgB,EAEX,KAAA,GAAAnhL,KAAA8E,GAAAm0J,QAA2ByoB,sBAwTrBP,EAAeA,EAAer8K,EAAGm0J,QAAQyoB,sBAAsB1hL,GAAG6d,GAAK,GApT7EsjK,GAAAlhL,OAA4B,IAwTtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IAGnE6E,EAAGomK,gBAAkBpmK,EAAGomK,iBAAmBiW,EAAalhL,OAAS,EAAI,6BAA+BkhL,EAAe,IAAM,IAEzHA,EAAe,EArTtB,KAAW,GAAAnhL,KAAA8E,GAAAm0J,QAAA0oB,oBAwTAR,EAAeA,EAAer8K,EAAGm0J,QAAQ0oB,oBAAoB3hL,GAAGs7J,MAAQ,GAGxE6lB,GAAalhL,OAAS,IACtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IApT9E6E,EAAAomK,gBAAApmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,0BAAAkhL,EAAA,IAAA,IAyTWA,EAAe,EAEf,KAAK,GAAInhL,KAAK8E,GAAGm0J,QAAQ2oB,kBACrBT,EAAeA,EAAer8K,EAAGm0J,QAAQ2oB,kBAAkB5hL,GAAG6d,GAAK,GArT3EsjK,GAAAlhL,OAAA,IAyTQkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IArT1E6E,EAAAomK,gBAAApmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,qBAAAkhL,EAAA,IAAA,IAENlN,GAAqB,OAIrB,IAAsC,MAAtCnvK,EAAAm0J,QAAuB0oB,qBAAe78K,EAAAm0J,QAAA0oB,oBAAA1hL,OAAA,EAAA,CA0TzB,IAAK,GAAID,KAAK8E,GAAGm0J,QAAQpwG,iBACrBs4H,EAAeA,EAAer8K,EAAGm0J,QAAQpwG,iBAAiB7oD,GAAG6d,GAAK,GArTrEsjK,GAAAlhL,OAAA,IACAkhL,EAAAA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IAGL6E,EAAAomK,gBAAApmK,EAAAomK,gBAAA,qBAAAiW,EAAA,IAEIA,EAAA,EAEH,KAAA,GAAAnhL,KAAA8E,GAAAm0J,QAAA0oB,oBACER,EAAAA,EAAAr8K,EAAAm0J,QAAA0oB,oBAAA3hL,GAAAs7J,MAAA,GAGG6lB,GAAAlhL,OAAA,IACfkhL,EAAoBA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IAGpB6E,EAAAomK,gBAAsBpmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,0BAAAkhL,EAAA,IAAA,IAETlN,GAAA,OA4TP,IAAgB,mBAAZiN,EAlTN,GAJHp8K,EAAAwgK,uBACJ6b,EAAA,GACAr8K,EAASomK,gBAAO,GAEM,GAAfpmK,EAAAm0J,QAAepwG,iBAAA5oD,QAEf,GAAA,MAAA6E,EAAAm0J,QAAA4oB,yBAAA/8K,EAAAm0J,QAAA4oB,wBAAA5hL,OAAA,EAAA,CAEA,IAAA,GAAAD,KAAA8E,GAAAm0J,QAAApwG,iBACSs4H,EAAAA,EAAAr8K,EAAAm0J,QAAApwG,iBAAA7oD,GAAA6d,GAAA,GAGIsjK,GAAAlhL,OAAA,IACDkhL,EAAAA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IA2TH6E,EAAGomK,gBAAkBpmK,EAAGomK,gBAAkB,qBAAuBiW,EAAe,IAtT5FA,EAAA,EAEW,KAAA,GAAAnhL,KAAA8E,GAAAm0J,QAA0ByoB,sBAC1BP,EAAYA,EAAAr8K,EAAAm0J,QAAAyoB,sBAAA1hL,GAAA6d,GAAA,GAGRsjK,GAAYlhL,OAAS,IAyTpBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IArT1E6E,EAAUomK,gBAAYpmK,EAAAomK,iBAAyBiW,EAAelhL,OAAA,EAAA,6BAAAkhL,EAAA,IAAA,IAEhEA,EAAc,EAEd,KAAA,GAAenhL,KAAA8E,GAAAm0J,QAAA0oB,oBACfR,EAAiBA,EAAAr8K,EAAAm0J,QAAA0oB,oBAAA3hL,GAAAs7J,MAAA,GA2TJ6lB,GAAalhL,OAAS,IACtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IArT3E6E,EAAWomK,gBAASpmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,0BAAAkhL,EAAA,IAAA,IA0TZA,EAAe,EAtTpB,KAAA,GAAYnhL,KAAA8E,GAAAm0J,QAAA2oB,kBAyTHT,EAAeA,EAAer8K,EAAGm0J,QAAQ2oB,kBAAkB5hL,GAAG6d,GAAK,GAGnEsjK,GAAalhL,OAAS,IACtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,IAGnE6E,EAAGomK,gBAAkBpmK,EAAGomK,iBAAmBiW,EAAalhL,OAAS,EAAI,qBAAuBkhL,EAAe,IAAM,IAtT1HA,EAAgB,EA0TP,KAAK,GAAInhL,KAAK8E,GAAGm0J,QAAQ4oB,wBAvTrBV,EAAAA,EAAAr8K,EAAAm0J,QAAA4oB,wBAAA7hL,GAAA6d,GAAA,GA2TAsjK,GAAalhL,OAAS,IAvTnCkhL,EAAgBA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IA2TP6E,EAAGomK,gBAAkBpmK,EAAGomK,iBAAmBiW,EAAalhL,OAAS,EAAI,yBAA2BkhL,EAAe,IAAM,IAErHlN,GAAU,OApTlB,IAA8B,MAA9BnvK,EAAAm0J,QAAY0oB,qBAAkB78K,EAAAm0J,QAAA0oB,oBAAA1hL,OAAA,EAAA,CAE3B,IAAA,GAAAD,KAAe8E,GAAAm0J,QAAApwG,iBACfs4H,EAAoBA,EAAAr8K,EAAAm0J,QAAApwG,iBAAA7oD,GAAA6d,GAAA,GAGpBsjK,GAAsBlhL,OAAA,IACtBkhL,EAAsBA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IAGtB6E,EAAAomK,gBAAgBpmK,EAAAomK,gBAAA,qBAAAiW,EAAA,IA0TXA,EAAe,EAEf,KAAK,GAAInhL,KAAK8E,GAAGm0J,QAAQ0oB,oBAvT5BR,EAAYA,EAAoBr8K,EAAAm0J,QAAA0oB,oBAAA3hL,GAAAs7J,MAAA,GAGlC6lB,GAAkBlhL,OAAA,IAClBkhL,EAAgBA,EAAA/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,IAGnB6E,EAAAomK,gBAAepmK,EAAAomK,iBAAAiW,EAAAlhL,OAAA,EAAA,0BAAAkhL,EAAA,IAAA,IA0TPA,EAAe,EAtTf,KAAG,GAAAnhL,KAAQ8E,GAAAm0J,QAAA4oB,wBACRV,EAAgBA,EAAAr8K,EAAAm0J,QAAA4oB,wBAAA7hL,GAAA6d,GAAA,GAGnBsjK,GAAiBlhL,OAAQ,IACrBkhL,EAAeA,EAAA/4J,UAAkB,EAAQ+4J,EAAAlhL,OAAoB,IAGjE6E,EAAAomK,gBAAiBpmK,EAAAomK,iBAAYiW,EAAAlhL,OAAA,EAAA,yBAAAkhL,EAAA,IAAA,IA0T7BlN,GAAU,EAKtB,GAAIA,EAxTQ,CA0TR,GAAInpJ,IACA7T,UAxTIA,EAyTJrc,UAAWkK,EAAG61J,aACd2Q,UAAWxmK,EAAGwmK,UAvTde,UAAU6U,EAyTVY,UAAWh9K,EAAGomK,gBAGlBF,GAxTyB+W,2CAAAj3J,GAAAvnB,KAAA,SAAAC,GAyTF,MAAfA,EAAIlI,SAtTK,kBAAZ4lL,EAyTOp8K,EAAGgmD,aAAetnD,EAAIhJ,KAvTnB,oBAAA0mL,EACZp8K,EAAAs8K,kBAAkB59K,EAAAhJ,KAyTQ,aAAZ0mL,EAvTdp8K,EAAAw8K,cAAkB99K,EAAAhJ,KACF,eAAhB0mL,EACAp8K,EAAAu8K,gBAAsB79K,EAAAhJ,KACA,mBAAtB0mL,EAyTSp8K,EAAGy8K,oBAAsB/9K,EAAIhJ,KAvT1B,mBAAA0mL,IAyTHp8K,EAAGwgK,oBAAsB9hK,EAAIhJ,MAtTjCsK,EAAAgT,YAAe,EAyTfhT,EAAGsS,WAAY,IAEpB,SAxTK3R,GAyTJ5I,EAxTI2I,YAAe,QAAa,mBAAa,mCA6TzD,QAAS0zH,KAELp0H,EAAG87K,aAxTS,EAyTZ97K,EAAG5J,eAAgB,EAEnB4J,EAAGgmD,gBACHhmD,EAAGm0J,QAAQpwG,iBAAmB,KAE9B/jD,EAAGs8K,qBACHt8K,EAAGm0J,QAAQyoB,sBAxToB,KA0T/B58K,EAAGu8K,mBACHv8K,EAAGm0J,QAAQ0oB,oBAxTsB,KA0TjC78K,EAAGw8K,iBACHx8K,EAAGm0J,QAAQ2oB,kBAAoB,KAE/B98K,EAAGy8K,uBACHz8K,EAAGm0J,QAAQ4oB,wBAA0B,KAErC/8K,EAAGwgK,uBACHxgK,EAAGm0J,QAAQ2N,wBAA0B,KAErC9hK,EAAGomK,gBAxTI,GAyTPpmK,EAAGm0J,QAxTI1xG,mBAAsB,KA2TjC,QAxTQs1H,KA0TJ,GAxTIiF,GAAO,GAyTPX,EAAe,GAEftmL,EAxTQiK,EAAAm0J,QAAA1xG,mBAA8BkD,KAAG,cAAQ3lD,EAAAwmK,UAAyB,QAAAxmK,EAAA+7K,eA0T1EmB,EAAY,GACZC,EAxTQ,GAyTRC,EAxTQ,GAyTRC,EAAU,GACVC,EAAU,GACVC,EAxTO,GAyTPC,EAAU,EAGd,IAxT2B7nL,QAwTvBqK,EAAGm0J,QAxTK1xG,mBAAe,CA0TvB,GAxTiC,MAwT7BziD,EAAGm0J,QAxTMpwG,mBA0TTs4H,EAAe,GACfa,EAAY,GAvTRl9K,EAAAm0J,QAAIpwG,iBAAsB5oD,OAAG,GAAA,CA0T7B,IAAK,GAAID,KAAK8E,GAAGm0J,QAAQpwG,iBACrBs4H,EAAeA,EAAer8K,EAAGm0J,QAAQpwG,iBAAiB7oD,GAAG6d,GAAK,IAvTnEmkK,EAAAA,EAAqBl9K,EAAAm0J,QAAApwG,iBAAgC7oD,GAAAs7J,MAAS,GA2T7D6lB,GAAalhL,OAAS,IAvT1BkhL,EAAiBA,EAAQ/4J,UAAA,EAAA+4J,EAAqBlhL,OAAA,GAC1C+hL,EAAAA,EAAe55J,UAAe,EAAG45J,EAAQ/hL,OAAA,IAG7C6hL,EAAIA,EAAa,qBAAYX,EAAA,IAyT7Bc,EAxTI,sBAA4BD,EA4TxC,GAAwC,MAApCl9K,EAAGm0J,QAAQyoB,wBAEXP,EAxTO,GAyTPa,EAAY,GACRl9K,EAAGm0J,QAAQyoB,sBAAsBzhL,OAAS,GAAG,CAE7C,IAAK,GAAID,KAAK8E,GAAGm0J,QAAQyoB,sBACrBP,EAAeA,EAAer8K,EAAGm0J,QAAQyoB,sBAAsB1hL,GAAG6d,GAAK,IAvT9EmkK,EAAYA,EAAmBl9K,EAAAm0J,QAAAyoB,sBAAA1hL,GAAAs7J,MAAA,GAGjC6lB,GAAsBlhL,OAAA,IAyTbkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,GAvT3E+hL,EAAeA,EAAA55J,UAAA,EAAA45J,EAAA/hL,OAAA,IAGR6hL,GAAQA,EAAiB7hL,OAAA,EAAa6hL,EAAA,QAAA,IAAA,yBAAAX,EAAA,IAyTrCe,EAAU,oBAAsBF,EAKxC,GAAsC,MAAlCl9K,EAAGm0J,QAAQ0oB,sBAEXR,EAxTQ,GAyTRa,EAxTQ,GAyTJl9K,EAAGm0J,QAAQ0oB,oBAAoB1hL,OAAS,GAAG,CAtT3C,IAAG,GAAAD,KAAA8E,GAAAm0J,QAAqB0oB,oBAyTpBR,EAAeA,EAAer8K,EAAGm0J,QAAQ0oB,oBAAoB3hL,GAAGs7J,MAAQ,IAvT5E0mB,EAAeA,EAAAl9K,EAAAm0J,QAAA0oB,oBAAA3hL,GAAAs7J,MAAA,GAGX6lB,GAAAlhL,OAAe,IAyTfkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,GAC/D+hL,EAAYA,EAAU55J,UAAU,EAAG45J,EAAU/hL,OAAS,IAG1D6hL,GAAcA,EAAU7hL,OAAS,EAAK6hL,EAAY,QAAU,IAAM,sBAAwBX,EAAe,IACzGgB,EAAU,kBAAoBH,EAItC,GAAoC,MAAhCl9K,EAAGm0J,QAAQ2oB,oBAEXT,EAxTQ,GAyTRa,EAAY,GACRl9K,EAAGm0J,QAAQ2oB,kBAAkB3hL,OAAS,GAAG,CAEzC,IAxTI,GAAAD,KAAA8E,GAAAm0J,QAAe2oB,kBAyTfT,EAAeA,EAAer8K,EAAGm0J,QAAQ2oB,kBAAkB5hL,GAAG6d,GAAK,IACnEmkK,EAAYA,EAAYl9K,EAAGm0J,QAAQ0oB,oBAAoB3hL,GAAGs7J,MAAQ,GArTtE6lB,GAAelhL,OAAA,IAyTXkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,GAvTnE+hL,EAAcA,EAAW55J,UAAA,EAAA45J,EAAmB/hL,OAAA,IA2T5C6hL,GAAcA,EAAU7hL,OAAS,EAAK6hL,EAAY,QAAU,IAAM,iBAAmBX,EAAe,IAvTpGiB,EAAI,WAAaJ,EA4TzB,GAxTgC,MAwT5Bl9K,EAAGm0J,QAxTI4oB,0BA0TPV,EAxTc,GAyTda,EAAY,GACRl9K,EAAGm0J,QAAQ4oB,wBAAwB5hL,OAAS,GAAG,CAtT/C,IAAG,GAAAD,KAAQ8E,GAAAm0J,QAAA4oB,wBAyTPV,EAAeA,EAAer8K,EAAGm0J,QAAQ4oB,wBAAwB7hL,GAAG6d,GAAK,IAvT7EmkK,EAAcA,EAAWl9K,EAAAm0J,QAAA4oB,wBAAkB7hL,GAAAs7J,MAAA,GA2TvC6lB,GAAalhL,OAAS,IAvTtBkhL,EAAaA,EAAY/4J,UAAA,EAAA+4J,EAAAlhL,OAAA,GACzB+hL,EAAAA,EAAe55J,UAAa,EAAA45J,EAAa/hL,OAAa,IAG1D6hL,GAAGA,EAAqB7hL,OAAA,EAAA6hL,EAAkB,QAAA,IAAuB,qBAAeX,EAAA,IAyThFkB,EAAU,sBAAwBL,EAI1C,GAxT0C,MAwTtCl9K,EAAGm0J,QAxTK2N,0BA0TRua,EAAe,GACfa,EAxTQ,GAyTJl9K,EAAGm0J,QAxTC2N,wBAA4B3mK,OAAU,GAAG,CA0T7C,IAAK,GAAID,KAAK8E,GAAGm0J,QAAQ2N,wBAvTtBua,EAAAA,EAAqBr8K,EAAAm0J,QAAmB2N,wBAA0B5mK,GAAA6d,GAAA,IAyTjEmkK,EAAYA,EAAYl9K,EAAGm0J,QAAQ2N,wBAAwB5mK,GAAGs7J,MAAQ,GAGtE6lB,GAAalhL,OAAS,IACtBkhL,EAAeA,EAAa/4J,UAAU,EAAG+4J,EAAalhL,OAAS,GAvTtE+hL,EAAYA,EAAA55J,UAAmB,EAAA45J,EAAA/hL,OAAA,IAGpC6hL,GAAeA,EAAA7hL,OAAA,EAAA6hL,EAAA,QAAA,IAAA,oBAAAX,EAAA,IACZmB,EAAA,sBAAkBN,EA4TrB,GAxTmB,YAAfl9K,EAAAm0J,QAAO1xG,mBAAQkD,MAAsE,gBAAnC3lD,EAAGm0J,QAAQ1xG,mBAAAkD,KAAoC,CA0TjG,GAxTI3/B,IAyTA7T,UAxTIA,EAyTJrc,UAAWkK,EAAG61J,aACd2Q,UAAWxmK,EAAGm0J,QAAQ1xG,mBAAmBkD,KAvTzC83H,aAAI1nL,EAyTJk2C,YAxTIA,EAyTJ3pB,YAAatiB,EAAG+7K,eAChB5jK,SAAUnY,EAAGg8K,eAvTbloJ,SAAGpgB,EAAkByrC,UAyTrBu+H,aAAc19K,EAAGi8K,gBAvTjBe,UAAAA,EAyTAG,QAASA,EAvTTC,QAASA,EAyTTC,QAxTIA,EAyTJC,QAASA,EACTC,QAASA,EAvTTC,QAAIA,EA2TRtX,GAA+ByX,gCAAgC33J,GAAWvnB,KAAK,SAAUC,GAvTrF,GAAG,MAAAA,EAAAlI,OAAqB,CAExBwJ,EAAA8Z,cAAepb,EAAAhJ,IAEf,IAAKugB,GAAInf,SAAQijB,cAAQ,IACrBjjB,UAAAC,KAAAijB,YAAe/D,GAyTfA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OAvTzBqI,KAAA,oBA0TItJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAtTtCnD,GAAA4E,KAAA5K,EAAkB,UAyTjBsD,EAAW2I,YAAY,UAAW,+BAAgC,yBAvTtEV,EAAAsS,WAAe,IA2ThB,SAxTK3R,GAyTJ5I,EAAW2I,YAAY,QAAS,mBAAoB,+BAIvD,IAA0C,YAAtCV,EAAGm0J,QAAQ1xG,mBAAmBkD,KAAoB,CAEvD,GAxTI3/B,IAyTA7T,UAAWA,EAvTX85B,YAAAA,EAyTA3pB,YAAatiB,EAAG+7K,eAvThB5jK,SAASnY,EAAAg8K,eAyTTloJ,SAxTIpgB,EAAeyrC,UAyTnBu+H,aAAc19K,EAAGi8K,gBAGrB/V,GAxTuB0X,gCAAuC53J,GAASvnB,KAAA,SAAAC,GAyTnE,GAAmB,MAAfA,EAAIlI,OAAgB,CAtTrBwJ,EAAA8Z,cAAkBpb,EAAGhJ,IAExB,IAAAugB,GAAUnf,SAAAijB,cAAA,IAyTNjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eAvTjB,IAAArc,GAAA,GAAAC,OAAAa,EAAAhJ,OACMqI,KAAQ,oBAENtJ,EAASC,OAAGwlB,IAAQC,gBAAAvc,EA0TrBnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,+BAAgC,yBAvTlEV,EAAAsS,WAAa,IA2TlB,SAAU3R,GAvTT5I,EAAG2I,YAAkB,QAAG,mBAAkB,6BA5a1D,GAAIV,GAAKC,IAETD,GAAGqU,kBAtTmBhJ,MAAA,KAAAA,MAA0B,KAAAA,MAAW,KAAcA,MAAW,MAuTpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAtTS,EAuTZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAG5J,eAAgB,EAEnB4J,EAAG67K,aAAc,EACjB77K,EAAG87K,aAAc,EACjB97K,EAAG08K,eAAgB,EACnB18K,EAAG28K,iBAAkB,EACrB38K,EAAGo0H,OAASA,EACZp0H,EAAGyyJ,SAtTSA,EAuTZzyJ,EAAG2gK,YAtTS,EAuTZ3gK,EAAGw7K,eACHx7K,EAAGm0J,WACHn0J,EAAGy7K,UAtTSA,EAuTZz7K,EAAGk8K,eAAiBA,EACpBl8K,EAAGqpK,iBAAmBA,EACtBrpK,EAAGgmD,gBACHhmD,EAAGs8K,qBACHt8K,EAAGu8K,mBACHv8K,EAAGy8K,uBACHz8K,EAAGwgK,uBACHxgK,EAAGomK,gBAAkB,GACrBpmK,EAAG+3K,WAtTKA,CAyTR,IAAI5lK,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UAEzE85B,EAAc9xC,EAAsBgG,uBAAuBwU,gBAAgBs3B,YAC3Ev4B,EAtTOvZ,EAAYgG,sBAuTvB+R,wMA3CJ9d,QACKC,OAAO,gDACPe,WAAW,uCAAwCmmL,MAivB5D,WAGI,YAOA,SAASsC,GAAgCpzK,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQS,EAASyrK,EAAgC9P,EAA4BiJ,EAA4BllK,GAuE1L,QAxTO+X,KA0THlS,EAAGw7K,cAvTP71H,KAAS,aAEDA,KAAA,iBAGJ3lD,EAAAskD,YACIkyG,MAAA,aAEAA,MAAA,UAEJ,IAAIxwI,IACA7T,UAAUA,EACVo1J,UAAU,OACV3xK,OAAA,IAGJswK,GAAesB,qCAAiCxhJ,GAAAvnB,KAAA,SAAAC,GAyTzB,MAAfA,EAAIlI,SAvTJwJ,EAAGs3K,oBAAQ54K,EAAAhJ,KAyTXsK,EAAGsS,WAAY,IAEpB,SAxTK3R,GAyTJ5I,EAxTW2I,YAAQ,QAAA,mBAA6B,oBA4TxD,QAAS2oK,GAxTWC,EAAYvwJ,GAyT5B/Y,EAAG87K,aAAc,EACjB97K,EAAG5J,eAAgB,CACnB,IAAI4vB,KAEJ,IAxTgB,iBAwTZsjJ,EAxTwB,CA2TxBtpK,EAAGi4J,aAxTK,EAyTRj4J,EAAGggK,oBAxTe,EAyTlBhgK,EAAGupK,iBAAkB,CAErB,IAAIuU,GAAatjL,EAAOyC,OAAO+C,EAAGs3K,qBAAuBxhL,UAAaijB,GAEtE/Y,GAAG61J,aAAe98I,EAClB/Y,EAAG+7K,eAxTgB+B,EAAA,GAAAx7J,YAyTnBtiB,EAAGg8K,eAxTa8B,EAAA,GAAA3lK,SAyThBnY,EAAGi8K,gBAxTgB6B,EAAA,GAAA1rB,aAyTnBpsI,GACI7T,UAxTSA,EAyTTrc,UAxTQijB,EAyTRwuJ,UAxTQ+B,OA2TX,IAxTW,sBAwTPA,EAaL,GAZAtpK,EAAG+9K,OAxTS,GAyTZ/9K,EAAGg+K,QAxTS,GAyTZh+K,EAAGi+K,cAAgB,GACnBj+K,EAAGk+K,WAAa,GAChBl+K,EAAGm+K,aAxTK,GAyTRn+K,EAAGo+K,QAxTK,GA2TRp+K,EAAGi4J,aAAc,EACjBj4J,EAAGggK,oBAAqB,EAvTxBhgK,EAAAupK,iBAAe,EAEXvpK,EAAAm0J,QAAApwG,iBAAe5oD,OAAA,EAAA,CACH,GAAZ6E,EAAAm0J,QAAYpwG,iBAAA5oD,QA0TR6E,EAAGi4J,aAAc,EAvTjBj4J,EAAAupK,iBAAiB,EAyTjBvpK,EAAGo+K,QAxTCp+K,EAAAm0J,QAAepwG,iBAAkB,GAAA,cACjC,cAAAhrC,IAyTAg7I,EAAU,QAAS/zJ,EAAGm0J,QAAQpwG,iBAAiB,GAAGD,YAClD9jD,EAAGi4J,aAAc,EAvTjBj4J,EAAAupK,iBAAa,KA4TjBvpK,EAAGi4J,aAAc,EAvTjBj4J,EAAAupK,iBAAc,EA0TdF,EAAiB,wBArTrB,KAAG,GAAAnuK,KAAQ8E,GAAAm0J,QAAApwG,iBAyTP/jD,EAAG+9K,OAAS/9K,EAAG+9K,OAAS/9K,EAAGm0J,QAAQpwG,iBAAiB7oD,GAAG4oD,WAAa,GArTpE9jD,GAAG+9K,OAAA5iL,OAAQ,IAyTX6E,EAAG+9K,OAAS/9K,EAAG+9K,OAAOz6J,UAAU,EAAGtjB,EAAG+9K,OAAO5iL,OAAS,GAE1D,IAAIkjL,GAxTI,IA0TJr+K,GAAGoiG,QAAQjnG,OAAS,IACpBkjL,EAAOr+K,EAAGoiG,SAEdp8E,GACI7T,UAxTIA,EAyTJrc,UAAWkK,EAAG61J,aACd/xG,WAAY9jD,EAAG+9K,OAvTfh3H,OAAAs3H,EACA9W,UAAU+B,OAIdtpK,GAAGs8K,qBAyTHt8K,EAAGy8K,uBAvTHz8K,EAAAwgK,uBACAxgK,EAAAu8K,mBACAv8K,EAAAigK,2BA2TH,IAxTW,wBAwTPqJ,EAxTqC,CA+T1C,GALAtpK,EAAGg+K,QAAU,KACbh+K,EAAGi+K,cAAgB,GACnBj+K,EAAGk+K,WAxTS,GAyTZl+K,EAAGm+K,aAxTS,GA0T4BxoL,QAApCqK,EAAGm0J,QAAQyoB,uBACP58K,EAAGm0J,QAAQyoB,sBAAsBzhL,OAAS,EAAG,CAtT7C,IAAA,GAAAD,KAAU8E,GAAAm0J,QAAAyoB,sBAyTN58K,EAAGg+K,QAAUh+K,EAAGg+K,QAAUh+K,EAAGm0J,QAAQyoB,sBAAsB1hL,GAAGk4J,eAAiB,GArTpFpzJ,GAAQg+K,QAAA7iL,OAAA,IAyTH6E,EAAGg+K,QAAUh+K,EAAGg+K,QAAQ16J,UAAU,EAAGtjB,EAAGg+K,QAAQ7iL,OAAS,IAGrE6qB,GACI7T,UAAWA,EACXrc,UAxTSkK,EAAI61J,aAyTb/xG,WAxTQ9jD,EAAA+9K,OAyTRh3H,OAxTQ/mD,EAAAoiG,QAyTRgxD,eAAgBpzJ,EAAGg+K,QACnBzW,UAAW+B,OAId,IAAkB,wBAAdA,EAAsC,CAK3C,GAJAtpK,EAAGi+K,cAAgB,GACnBj+K,EAAGk+K,WAxTK,GAyTRl+K,EAAGm+K,aAxTe,GA0TwBxoL,QAAtCqK,EAAGm0J,QAAQ4oB,yBACP/8K,EAAGm0J,QAAQ4oB,wBAAwB5hL,OAAS,EAAG,CAE/C,IAAK,GAAID,KAAK8E,GAAGm0J,QAAQ4oB,wBAvTzB/8K,EAAAi+K,cAAYj+K,EAAAi+K,cAAAj+K,EAAAm0J,QAAA4oB,wBAAA7hL,GAAAymK,aAAA,GAGZ3hK,GAAAi+K,cAAc9iL,OAAQ,IACtB6E,EAAAi+K,cAAcj+K,EAAAi+K,cAAA36J,UAAA,EAAAtjB,EAAAi+K,cAAA9iL,OAAA,IA2TtB6qB,GACI7T,UAxTIA,EAyTJrc,UAxTIkK,EAAA61J,aAyTJ/xG,WAxTI9jD,EAAW+9K,OAyTfh3H,OAxTI/mD,EAAAoiG,QAyTJgxD,eAxTapzJ,EAAAg+K,QAyTbM,kBAxTat+K,EAAAi+K,cAyTb1W,UAxTI+B,OA2TP,IAAkB,oBAAdA,EAAkC,CAIvC,GAHAtpK,EAAGk+K,WAAa,GAChBl+K,EAAGm+K,aAxTC,GA0TsCxoL,QAAtCqK,EAAGm0J,QAAQ2N,yBACP9hK,EAAGm0J,QAxTI2N,wBAAoB3mK,OAAA,EAAA,CA0T3B,IAxTI,GAAID,KAAI8E,GAAAm0J,QAAS2N,wBACjB9hK,EAAAk+K,WAAcl+K,EAAAk+K,WAAYl+K,EAAAm0J,QAAA2N,wBAAA5mK,GAAAqjL,UAAA,GA2T1Bv+K,GAAGk+K,WAxTO/iL,OAAA,IAyTV6E,EAAGk+K,WAAal+K,EAAGk+K,WAAW56J,UAAU,EAAGtjB,EAAGk+K,WAAW/iL,OAAS,IAG9E6qB,GACI7T,UAxTQA,EAyTRrc,UAxTWkK,EAAA61J,aAyTX/xG,WAAY9jD,EAAG+9K,OACfh3H,OAAQ/mD,EAAGoiG,QACXgxD,eAxTapzJ,EAAKg+K,QAyTlBM,kBAxTet+K,EAAAi+K,cAyTfM,UAAWv+K,EAAGk+K,WACd3W,UAAW+B,OAGd,IAAkB,wBAAdA,EAAsC,CAI3C,GAHAtpK,EAAGm+K,aAxTK,GAyTRn+K,EAAGw+K,wBAxTgB,EAyTnBx+K,EAAGggK,oBAxTkB,EACGrqK,QAwTpBqK,EAAGm0J,QAxTC0oB,qBACA78K,EAAAm0J,QAAU0oB,oBAAG1hL,OAAA,EAAA,CAEb,IAAA,GAAAD,KAAc8E,GAAGm0J,QAAA0oB,oBAyTb78K,EAAGm+K,aAAen+K,EAAGm+K,aAAen+K,EAAGm0J,QAAQ0oB,oBAAoB3hL,GAAGy9J,YAAc,GArTpF34J,GAAAm+K,aAAehjL,OAAK,IAyTpB6E,EAAGm+K,aAAen+K,EAAGm+K,aAAa76J,UAAU,EAAGtjB,EAAGm+K,aAAahjL,OAAS,IAGpF6qB,GACI7T,UAxTQA,EAyTRrc,UAxTUkK,EAAA61J,aAyTV/xG,WAxTY9jD,EAAA+9K,OAyTZh3H,OAAQ/mD,EAAGoiG,QACXgxD,eAAgBpzJ,EAAGg+K,QACnBM,kBAxTkBt+K,EAAAi+K,cAyTlBM,UAAWv+K,EAAGk+K,WACdvlB,YAxTQ34J,EAAQm+K,aAyThB5W,UAxTQ+B,OA2TO,qBAAdA,IACLtpK,EAAGggK,oBAxTmB,EAyTtBhgK,EAAGqhK,4BACHrhK,EAAGw+K,wBAAyB,EACc7oL,QAAtCqK,EAAGm0J,QAAQ4M,0BACP/gK,EAAGm0J,QAAQ4M,wBAAwB5lK,OAAS,EACK,GAA7C6E,EAAGm0J,QAAQ4M,wBAAwB5lK,SACnC6E,EAAGggK,oBAAqB,EACxBhgK,EAAGw+K,wBAAyB,EAC5BzqB,EAAU,eAAgB/zJ,EAAGm0J,QAAQ4M,wBAAwB,GAAGj9G,cAIpE9jD,EAAGggK,oBAAqB,EAvT5ChgK,EAAAw+K,wBAAA,IAIKpqL,SAAW61C,UAAAjkB,KA0Tc,iBAAdsjJ,GACAtpK,EAAGgmD,gBAxTVhmD,EAAAs8K,qBACIt8K,EAAAy8K,uBA0TGz8K,EAAGwgK,uBAxTZxgK,EAAAu8K,mBACAv8K,EAAWigK,wBAEG,sBAAAqJ,GACdtpK,EAAAs8K,qBACIt8K,EAAAy8K,uBA0TKz8K,EAAGwgK,uBACHxgK,EAAGu8K,mBAxTZv8K,EAAAigK,wBAEiB,wBAAjBqJ,GACAtpK,EAAAy8K,uBACAz8K,EAAAwgK,uBACAxgK,EAAYu8K,mBACZv8K,EAAAigK,wBAEa,wBAAAqJ,GACJtpK,EAAAwgK,uBACTxgK,EAAUu8K,mBACVv8K,EAAAigK,wBAEkB,oBAAlBqJ,GACAtpK,EAAAu8K,mBACAv8K,EAAAigK,wBAEsB,wBAAtBqJ,IACAtpK,EAAAigK,wBAGAiG,EAAesD,wCAAAxjJ,GAAAvnB,KAAA,SAAAC,GACE,MAAjBA,EAAiBlI,SACA,iBAAA8yK,EACPtpK,EAAAgmD,aAAAtnD,EAAAhJ,KAEA,sBAAA4zK,EACOtpK,EAAAs8K,kBAAA59K,EAAAhJ,KAED,wBAAA4zK,EACHtpK,EAAAy8K,oBAAA/9K,EAAAhJ,KAEK,wBAAA4zK,EA0TDtpK,EAAGwgK,oBAAsB9hK,EAAIhJ,KAvTlC,oBAAA4zK,EACZtpK,EAAoBu8K,gBAAA79K,EAAAhJ,KAEN,wBAAA4zK,IACHtpK,EAAAigK,oBAAAvhK,EAAAhJ,MAEXsK,EAAgBsS,WAAA,IAEhB,SAAY3R,GA0TH5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAKhE,QAzTQqzJ,GAAOwT,EAAAmC,GA0TX,GAzTU,SAANnC,EAAM,CACN,GAAAvG,IA0TI7uJ,UAAWA,EACX2xC,WAAY4lH,EACZ5zK,UAAWkK,EAAG61J,aAxTtBxgD,aAAY,EAGZ+gD,GAAc2B,mBAAsBiJ,GAAAviK,KAAA,SAAAC,GACxC,GAAA,MAAAA,EAAAlI,OAAA,CACgBwJ,EAAAg4J,kBAAAt5J,EAAAhJ,IAET,IAAAi0K,IACSx3J,UAAAA,EACTrc,UAAAkK,EAAA61J,aACS/xG,WAAA4lH,EA0TInC,UAAW,OACX5hH,KAAM,IAtTnB05G,GAAAuK,6BAAAD,GAAAlrK,KAAA,SAAAiB,GACU,GAAA,MAAAA,EAAAlJ,OAAA,CA0TOwJ,EAAG6pK,gBAAkBnqK,EAAOhK,IAxThC,IAAAo0K,GAAAtvK,EAAAyC,OAAA+C,EAAA6pK,iBAAAx0D,aAAA,GAED,KAAA,GAAAn6G,KAAA8E,GAAAg4J,kBACH,GAAA98J,EA0TgB8E,EAAGg4J,kBAAkB98J,GAAGg9J,YAAc4R,EAvTlE9pK,EAA+Bg4J,kBAAA98J,GAAAg9J,cAEpBl4J,GAAAupK,iBAA0B,IA2TtB,SAAU5oK,GAxTZ5I,EAAK2I,YAAA,QAAA,mBAAA,sBA4TX,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAtTzD,IAAgB,gBAAhB6mK,EAAgB,CACf,GAAAvG,IA0TI7uJ,UAAWA,EAxTf2xC,WAAc4lH,EACV5zK,UAASkK,EAAA61J,aA0TTxgD,aAAc,EAtTlB+gD,GAAqB+L,0BAAAnB,GAAAviK,KAAA,SAAAC,GA0TjB,GAAmB,MAAfA,EAAIlI,OAAgB,CAxTxBwJ,EAAAqhK,yBAA8B3iK,EAAAhJ,IAE/B,IAAAi0K,IACAx3J,UAAiBA,EACjBrc,UAAiBkK,EAAA61J,aACjB/xG,WAAkB4lH,EACTnC,UAAA,kBACR5hH,KAAW,IA4TP05G,GAA2BuK,6BAA6BD,GAAWlrK,KAAK,SAAUiB,GAC9E,GAAsB,MAAlBA,EAAOlJ,OAAgB,CAxTlCwJ,EAAcy+K,uBAAsB/+K,EAAAhK,IAC7B,IAAAo0K,GAAAtvK,EAAAyC,OAAA+C,EAAAy+K,wBAAAppE,aAAA,GAET,KAAgB,GAAAn6G,KAAA8E,GAAAqhK,yBACH,GAAAnmK,EACE8E,EAAAqhK,yBAAAnmK,GAAAg9J,YAAA4R,EA2TM9pK,EAAGqhK,yBAAyBnmK,GAAGg9J,cAvTpDl4J,GAAcw+K,wBAAA,IAEd,SAAkB79K,GA0TT5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAG7D,SAAUC,GACT5I,EAzTO2I,YAAc,QAAA,mBAAA,qBA8TjC,QAAS43J,GAzTcyR,EAAcnK,EAAArhK,GA2TjC,GAAoB,MAAhBwrK,EACA,GAAIA,EAAa5uK,OAAS,EACtB,GAAIykK,EAzTC5/J,EAAAg4J,kBAAA78J,OAAA,CACD,GAAGsmG,KACH,KAAG,GAAAvmG,KAAA6uK,GAAkB,CA0TjB,GAAIC,GAAiBxvK,EAAOyC,OAAO+C,EAAG6pK,iBAAmBx0D,aAAgB00D,EAAa7uK,GAAG6rD,QAxT7F06C,GAAAA,EAAiBr0C,OAAA48G,GAGrBhqK,EAAKg4J,kBAAoB4H,GAAA1H,YAAkBz2D,EACvCzhG,EAAGg4J,kBAAY4H,GAAYnf,aAAQ,KA0TnCzgJ,EAAGupK,iBAAkB,MAvTrB,CACA,GAAG8U,GAAA,EAEH,KAAA,GAAOnjL,KAAA6uK,GA0THsU,EAAOA,EAAOtU,EAAa7uK,GAAG6rD,OAAS,GAGvCs3H,GAAKljL,OAAS,GAAK6E,EAAGg4J,kBAAkB78J,QAAUykK,GAvTtDye,EAAWA,EAAA/6J,UAAA,EAAA+6J,EAAAljL,OAAA,GACX6E,EAAAoiG,QAAci8E,EACdhV,EAAe,uBA4TXrpK,EAAGoiG,QAAU,OApTrB,KAAG,GAAAlnG,KAAA8E,GAAAg4J,kBACA98J,GAAA0kK,EAAkB,EAClB5/J,EAAAg4J,kBAAsB98J,GAAAulJ,aAAA,KA2TXmf,EAAQ,EAAK1kK,IAxT1B8E,EAAAg4J,kBAAc98J,GAAAulJ,aAAwB,KA0T/BzgJ,EAAGg4J,kBAAkB98J,GAAGg9J,gBAO5C,QAASgK,GAzTkB6H,EAAsBnK,EAAArhK,GA2T7C,GAzTiB,MAyTbwrK,EACA,GAAIA,EAzTW5uK,OAAU,EA0TrB,GAAIykK,EAAQ5/J,EAAGqhK,yBAAyBlmK,OAAQ,CAC5C,GAAIsmG,KAxTJ,KAAI,GAAGvmG,KAAA6uK,GAAiB,CACpB,GAAGC,GAAaxvK,EAAQyC,OAAU+C,EAAGy+K,wBAAoBppE,aAAA00D,EAAA7uK,GAAA6rD,QA0TzD06C,GAAYA,EAAUr0C,OAAO48G,GAtTrChqK,EAAAqhK,yBAAWzB,GAAA1H,YAAAz2D,EACXzhG,EAAAqhK,yBAAczB,GAAAnf,aAAA,KACdzgJ,EAAAw+K,wBAAe,MAEf,CACA,GAAAH,GAAW,EA2TP,KAAK,GAAInjL,KAAK6uK,GACVsU,EAAOA,EAAOtU,EAAa7uK,GAAG6rD,OAAS,GAtThDs3H,GAAaljL,OAAA,GAAA6E,EAAAqhK,yBAAAlmK,QAAAykK,GA2TJye,EAAOA,EAAK/6J,UAAU,EAAG+6J,EAAKljL,OAAS,GAxT5C6E,EAAQ0+K,eAAAL,GAGPr+K,EAAK0+K,eAAY,OA8TrB,KAAK,GAzTGxjL,KAAG8E,GAAAqhK,yBA0THnmK,GAAM0kK,EAAQ,EACd5/J,EAAGqhK,yBAAyBnmK,GAAGulJ,aAAe,KAvT3Cmf,EAAA,EAAA1kK,IACX8E,EAAWqhK,yBAAGnmK,GAAAulJ,aAAA,KACdzgJ,EAAAqhK,yBAAenmK,GAAAg9J,gBAgU3B,QAzTS6f,GAAI4G,GA2TT,GAzTIC,GAAG,GA0THxY,EAAkB,EAGtB,IAFApmK,EAAG6+K,cAzTgB,GA2TgBlpL,QAA/BqK,EAAGm0J,QAAQpwG,kBACP/jD,EAAGm0J,QAzTMpwG,iBAAY5oD,OAAQ,EAAA,CA2T7BirK,EAAkB,EAClB,KAAK,GAAIlrK,KAAK8E,GAAGm0J,QAAQpwG,iBAxTrBqiH,EAAkBA,EAASpmK,EAAAm0J,QAAApwG,iBAAA7oD,GAAA4oD,WAAA,GAO/B,IAoTIsiH,EAAgBjrK,OAAS,IACzBirK,EAAkBA,EAAgB9iJ,UAAU,EAAG8iJ,EAAgBjrK,OAAS,IAvT5EyjL,EAAWA,EAAA,0BAAAxY,EAAA,IAEI,GAAfpmK,EAAAm0J,QAAepwG,iBAAA5oD,OAAA,CACf,GAAQ2jL,GAAG,CAGX,IAFAA,EAAgB9+K,EAAGg4J,kBAAA78J,OAELxF,QAAdqK,EAAWg4J,kBAAG8mB,EAAA,GAAAr+B,cAAA,MAAAzgJ,EAAAg4J,kBAAA8mB,EAAA,GAAAr+B,aAAA,CA2TN2lB,EAAkB,EAClB,KAAK,GAAIj8J,KAAKnK,GAAGg4J,kBAAkB8mB,EAAY,GAAGr+B,aAxTzD2lB,EAAcA,EAAwBpmK,EAAAg4J,kBAAA8mB,EAAA,GAAAr+B,aAAAt2I,GAAA48C,OAAA,GAExCq/G,GAAyBjrK,OAAA,IACzBirK,EAAqBA,EAAA9iJ,UAAA,EAAA8iJ,EAAAjrK,OAAA,IAEbyjL,EAAQA,EAAoB,sBAAYxY,EAAA,MAuWvD,GAzTiCzwK,QAyT7BqK,EAAGm0J,QAzTI4oB,yBACH/8K,EAAGm0J,QAAA4oB,wBAAkB5hL,OAAA,EAAA,CA2TrBirK,EAAkB,EAClB,KAzTK,GAAAlrK,KAAA8E,GAAAm0J,QAAc4oB,wBAChB3W,EAAAA,EAAoBpmK,EAAAm0J,QAAA4oB,wBAAA7hL,GAAAymK,aAAA,GAEpByE,GAAAjrK,OAAsB,IACtBirK,EAAkBA,EAAA9iJ,UAAA,EAAA8iJ,EAAAjrK,OAAA,IA2TrByjL,EAAeA,EAAe,4BAA8BxY,EAAkB,IAItF,GAzT6BzwK,QAyTzBqK,EAAGm0J,QAzTI2N,yBACH9hK,EAAGm0J,QAAA2N,wBAAsB3mK,OAAA,EAAA,CA2TzBirK,EAzTK,EACL,KAAG,GAAAlrK,KAAA8E,GAAAm0J,QAAsB2N,wBACtBsE,EAAkBA,EAAApmK,EAAAm0J,QAAA2N,wBAAA5mK,GAAAqjL,UAAA,GA2TjBnY,GAAgBjrK,OAAS,IAxT5BirK,EAAkBA,EAAA9iJ,UAAoB,EAAA8iJ,EAAAjrK,OAAA,IAEvCyjL,EAAGA,EAAsB,yBAAAxY,EAAA,IA6TjC,GAAsCzwK,QAAlCqK,EAAGm0J,QAAQ0oB,qBACP78K,EAAGm0J,QAAQ0oB,oBAAoB1hL,OAAS,EAAG,CAvT3CirK,EAAQ,EA0TR,KAzTI,GAAIlrK,KAAA8E,GAAAm0J,QAAc0oB,oBA0TlBzW,EAzTOA,EAAmBpmK,EAAAm0J,QAAA0oB,oBAAA3hL,GAAAy9J,YAAA,GA2T1ByN,GAzTSjrK,OAAc,IA0TvBirK,EAzTOA,EAAwB9iJ,UAAA,EAAA8iJ,EAAAjrK,OAAA,IA2TnCyjL,EAzTaA,EAAc,2BAAwBxY,EAAA,IA6T3D,GAzTyCzwK,QAyTrCqK,EAAGm0J,QAAQ4M,yBACP/gK,EAAGm0J,QAAQ4M,wBAAwB5lK,OAAS,EAAG,CAE/CirK,EAzTW,EA0TX,KAAK,GAAIlrK,KAAK8E,GAAGm0J,QAAQ4M,wBACrBqF,EAzTSA,EAAcpmK,EAAAm0J,QAAwB4M,wBAAA7lK,GAAA4oD,WAAA,GAgUnD,IALIsiH,EAAgBjrK,OAAS,IAxTzBirK,EAAeA,EAAA9iJ,UAAA,EAAA8iJ,EAAAjrK,OAAA,IAEpByjL,EAAeA,EAAA,iCAAAxY,EAAA,IA2TmC,GAA7CpmK,EAAGm0J,QAAQ4M,wBAAwB5lK,OAAa,CAChD,GAAI2jL,GAAY,CAtTvB,IAuTOA,EAAY9+K,EAAGqhK,yBAAyBlmK,OAvTbxF,QAAxBqK,EAAAqhK,yBAAwByd,EAAA,GAAAr+B,cAAA,MAAAzgJ,EAAAqhK,yBAAAyd,EAAA,GAAAr+B,aAAA,CAE/B2lB,EAAa,EACb,KAAW,GAAAj8J,KAAAnK,GAAAqhK,yBAAAyd,EAAA,GAAAr+B,aACC2lB,EAAAA,EAAApmK,EAAAqhK,yBAAAyd,EAAA,GAAAr+B,aAAAt2I,GAAA48C,OAAA,GAEZq/G,GAAcjrK,OAAA,IA0TFirK,EAAkBA,EAAgB9iJ,UAAU,EAAG8iJ,EAAgBjrK,OAAS,IAvTxFyjL,EAA2BA,EAAA,uBAAoCxY,EAAe,MAwUlF,GAJAwY,EAAeA,EAAe,8BAAgCn0K,EAAOwhK,OAAOD,SAAW,QAAUvhK,EAAOwhK,OAAOC,SAAW,IAE1HlsK,EAAG6+K,cAzTaD,EA2TZA,EAAazjL,OAzTO,EA2TpB,GAzTiC,YAyT7B6E,EAAGm0J,QAAQryG,kBAzTkB00G,MAAmB,CA2ThD,GAAIxwI,IACA7T,UAAWA,EACX85B,YAAaA,EACb3pB,YAAatiB,EAAG+7K,eAChB5jK,SAzTQnY,EAAGg8K,eA0TXloJ,SAAUpgB,EAAYyrC,UACtBu+H,aAzTa19K,EAAAi8K,gBA4TjB/V,GAA+B0X,gCAAgC53J,GAAWvnB,KAAK,SAAUC,GAxT1F,GAAe,MAAfA,EAAUlI,OAAK,CA2TNwJ,EAAG8Z,cAAgBpb,EAAIhJ,IAvT9B,IAAAugB,GAAanf,SAAAijB,cAAgB,IAC9BjjB,UAAaC,KAAAijB,YAAA/D,GACbA,EAAAgE,MAAW,eACX,IAAYrc,GAAA,GAAAC,OAAAa,EAAAhJ,OACDqI,KAAG,oBA2TFtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAvTjDnD,GAAA4E,KAAA5K,EAA2B,UACfsD,EAAW2I,YAAK,UAAA,+BAAA,yBACjBV,EAAAsS,WAAA,IA4TJ,SAzTK3R,GA0TJ5I,EAzTI2I,YAAc,QAAA,mBAAA,+BA4TrB,CAED,GAAIslB,IAxTA7T,UAAAA,EA0TArc,UAzTQkK,EAAA61J,aA0TRmnB,UAzTW4B,EA0TXr6H,WAzTYvkD,EAAAm0J,QAAA1xG,mBAA8BkD,KA2T9CugH,GAzT6BoS,yBAA0BtyJ,GAAAvnB,KAAA,SAAAC,GA0TnD,GAzTgB,MAyTZA,EAAIlI,OAzTa,CA0TjB,GAAIkI,EAAIhJ,KAzTIqpL,SAAG5jL,OAAA,EAOf,GAmTI6E,EAAGm7C,WAAaz8C,EAAIhJ,KACpBsK,EAAGg/K,eAvTHh/K,EAAG87K,aAAA,EA0TH97K,EAAG5J,eAAgB,EAvTS,YAAhC4J,EAAWm0J,QAAA1xG,mBAAqBkD,KAAoB,CA0T5C3lD,EAAGi/K,gBAAiB,EACpBj/K,EAAGk/K,oBAAqB,CAvT7B,KAAA,GAAYhkL,KAAA8E,GAASm7C,WAAA4jI,SAAoB,CA2ThC,GAAIzjB,GAAQ9gK,EAAOyC,OAAO+C,EAAGm7C,WAAWgkI,WACpCC,eAAkBp/K,EAAGm7C,WAAW4jI,SAAS7jL,GAAGkkL,eAC5C3K,aAAgBz0K,EAAGm7C,WAAW4jI,SAAS7jL,GAAGu5K,eArT5C4K,EAAG7kL,EAAA83B,QAAAgpI,EAAA,eAEL5lK,GACF0pL,eAAcp/K,EAAAm7C,WAAA4jI,SAAA7jL,GAAAkkL,eACpB3K,aAAwBz0K,EAAOm7C,WAAG4jI,SAAiB7jL,GAAEu5K,aA2TzC3tH,OAAUu4H,EAtT3Br/K,GAAAg/K,YAAyBnnL,KACzBnC,QA6TU,CAxTJsK,EAAKi/K,gBAAc,EACjBj/K,EAAAk/K,oBAAuB,CA2TtB,KAAK,GAAIhkL,KAAK8E,GAAGm7C,WAAW4jI,SAAU,CAxTzC,GAASrpL,IA0TE0pL,eAAkBp/K,EAAGm7C,WAAW4jI,SAAS7jL,GAAGkkL,eAxThDt4H,OAAanqD,KAAKC,MAAAoD,EAASm7C,WAAA4jI,SAAA7jL,GAAAokL,aA4T3Bt/K,GAAGg/K,YAAYnnL,KAxT1BnC,QAODqC,GAAc2I,YAAI,QAAA,gBAAA,iBA2TlBV,GAAGsS,WAAY,IAEpB,SAzTQ3R,GA0TP5I,EAzTO2I,YAAA,QAAqB,mBAAc,wBA8TlD3I,GAAW2I,YAAY,QAAS,0BAA2B,yBAkBnE,QAAS6+K,KAvTqB5pL,QAyTtBqK,EAAGm0J,QAzTKryG,oBACkC,YAyTtC9hD,EAAGm0J,QAzTKryG,kBAAc00G,OA0TtBx2J,EAAGw/K,WAAY,EACfx/K,EAAGm0J,QAAQ1xG,mBAAqBziD,EAAGw7K,YAAY,KAG/Cx7K,EAAGw/K,WAzTY,EA0Tfx/K,EAAGm0J,QAzTQ1xG,mBAAiB,OA8TxC,QAASgwG,KACLzyJ,EAAG87K,aAAc,EACjB97K,EAAGi/K,gBAzTM,EA0TTj/K,EAAGk/K,oBAzTmB,EA0TtBl/K,EAAG5J,eAzTa,EA4TpB,QAASg+H,GAAOthH,GACZ9S,EAAG87K,aAzTa,EA0ThB97K,EAAG5J,eAzTgB,EA4TvB,QAASqpL,GAAaC,GAElB,GAAI15J,IACA7T,UAAWA,EAxTnB85B,YAAoBA,EA0TZn2C,UAAWkK,EAAG61J,aAxTdmnB,UAAAh9K,EAAA6+K,cACAt6H,WAAAm7H,EACDp9J,YAAAtiB,EAAgB+7K,eA0Tf5jK,SAAUnY,EAAGg8K,eAxTbloJ,SAAGpgB,EAAQyrC,UACXu+H,aAAO19K,EAAQi8K,gBAGc,aAyT7Bj8K,EAAGm0J,QAzTMryG,kBAAoB00G,MA0T7B0P,EAzT0B0X,gCAA6B53J,GAAiBvnB,KAAG,SAAaC,GA0TpF,GAAmB,MAAfA,EAAIlI,OAAgB,CAvTpBwJ,EAAA8Z,cAAkBpb,EAAAhJ,IAEtB,IAAAugB,GAAAnf,SAAeijB,cAAe,IA0T1BjjB,UAASC,KAAKijB,YAAY/D,GAxT1BA,EAAAgE,MAAG,eACH,IAAIrc,GAAA,GAAAC,OAAYa,EAAAhJ,OAChBqI,KAAA,oBAEItJ,EAAGC,OAAAwlB,IAAAC,gBAA8Bvc,EA2TrCnD,GAzTI4E,KAAA5K,EAAA,UA0TJsD,EAzTS2I,YAAY,UAAA,+BAAiC,yBA0TtDV,EAAGsS,WAzTK,IA4Tb,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAIxDwlK,EAA+ByZ,4BAA4B35J,GAAWvnB,KAAK,SAAUC,GACjF,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,IAEvB,IAAIugB,GAAInf,SAASijB,cAAc,IAC/BjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACrBqI,KAAM,oBAENtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,+BAAgC,yBAClEV,EAAGsS,WAAY,IAGpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAp5BhE,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAxTuB,SAAAC,GAyTtBzU,EAAGuU,YAAcE,GAGrBzU,EAAG5J,eAAgB,EACnB4J,EAAG87K,aAxTc,EAyTjB97K,EAAGi/K,gBAAiB,EACpBj/K,EAAGk/K,oBAxTqB,EAyTxBl/K,EAAGqpK,iBAxTSA,EAyTZrpK,EAAG+zJ,UAxTSA,EAyTZ/zJ,EAAGs4J,mBAxToBA,EAyTvBt4J,EAAGkiK,0BAxToBA,EAyTvBliK,EAAG+3K,WAxTSA,EAyTZ/3K,EAAGo0H,OAASA,EACZp0H,EAAGm0J,WACHn0J,EAAGi4J,aAxTK,EAyTRj4J,EAAGggK,oBAxTiB,EAyTpBhgK,EAAGupK,iBAAkB,EACrBvpK,EAAGw+K,wBAxTiB,EAyTpBx+K,EAAGgmD,gBACHhmD,EAAGs8K,qBACHt8K,EAAGy8K,uBACHz8K,EAAGwgK,uBACHxgK,EAAGu8K,mBACHv8K,EAAGigK,uBACHjgK,EAAG61J,aAAe,EAClB71J,EAAG+7K,eAAiB,GACpB/7K,EAAGg8K,eAxTiB,GAyTpBh8K,EAAGo+K,QAAU,GACbp+K,EAAG+9K,OAAS,GACZ/9K,EAAGoiG,QAAU,GACbpiG,EAAG0+K,eAxTgB,GAyTnB1+K,EAAGg+K,QAAU,GACbh+K,EAAGi+K,cAAgB,GACnBj+K,EAAGk+K,WAxTQ,GAyTXl+K,EAAGm+K,aAxTS,GAyTZn+K,EAAGi8K,gBAAkB,GAErBj8K,EAAGw7K,eACHx7K,EAAGskD,aAvTHtkD,EAAAg4J,qBAyTAh4J,EAAGqhK,4BACHrhK,EAAGg/K,eACHh/K,EAAGyyJ,SAxTIA,EAyTPzyJ,EAAGy/K,aAAeA,EAClBz/K,EAAG6+K,cAxTI,GAyTP7+K,EAAGu/K,eAxTYA,EAyTfv/K,EAAGw/K,WAAY,EAEf/0K,EAxTOwhK,QAyTHD,SAAU,EAvTVE,SAAG,IACH/yI,SAyTIjyB,MAAO,EAvTRynK,KAAA,IACApiK,KAAA,KA4TP,IAAI4F,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UAtTzE85B,EAAW9xC,EAAAgG,uBAA0BwU,gBAAAs3B,YAyTrCv4B,EAAcvZ,EAAsBgG,sBACxC+R,wMA3EJ9d,QACKC,OAAO,2CACPe,WAAW,kCAxT6ByoL,OAwtCjD,WACI,YAOA,SAAS+B,GAA4Bn1K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAczxF,EAAiBn7B,EACpH2D,EAAaD,EAAam1D,EAA8B8oF,EAA+B9hJ,EAAwBE,EAAc3X,GAgC7H,QAAS+X,KACLlS,EAAGjK,OAAS49J,CACZ,IAAI3tI,IAxTA7T,UAAWA,EACXvc,OAAO,IA0TPg+J,YAAa,OAEjBF,GAzTyBG,oBAAQ7tI,GAAAvnB,KAAA,SAAAC,GACrB,MAyTJA,EAzTIlI,SA0TJwJ,EAAG8zJ,iBAAmBp1J,EAAIhJ,KAxT1BsK,EAAAsS,WAAI,IA2TT,SAAU3R,GACT5I,EAzTI2I,YAAe,QAAA,mBAAe,oBA8T1C,QAzTQqzJ,GAAOC,EAAQz1J,GA2TnB,GAAIynB,IACA7T,UAzTSA,EA0TTvc,OAzTQ,IA0TRg+J,YAAa,OACb99J,UAzTQk+J;CA2TZN,GAA8BO,qCAAqCjuI,GAAWvnB,KAAK,SAAUC,GAxTtE,MAAfA,EAAAlI,SA0TAwJ,EAAGkiG,YAAcxjG,EAAIhJ,KAxTrBsK,EAAAsS,WAAe,IA2TpB,SAzTS3R,GA0TR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASqvG,GAzTWj9F,GA0ThB9S,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAEf/S,EAAGk0J,oBAzTiB9/J,QAAA8e,KAAkBJ,GA2TtC9S,EAAGm0J,QAAQ7xI,YAzTKtiB,EAAAk0J,oBAA8B5xI,WA2T9C,KAAK,GAAIpnB,KAAK8E,GAzTG8zJ,iBA0TT9zJ,EAAG8zJ,iBAAiB54J,GAAGpF,WAAakK,EAAGk0J,oBAAoBp+J,YAC3DkK,EAAGm0J,QAAQtyI,gBAAkB7hB,EAAG8zJ,iBAAiB54J,GAIzD64J,GAAU/zJ,EAAGm0J,QAAQtyI,gBAAgB/rB,UAAW,WAC5C,IAAK,GAAIoF,KAAK8E,GAAGkiG,YACTliG,EAAGkiG,YAAYhnG,GAAG6rD,SAAW/mD,EAAGk0J,oBAAoBntG,SAxThE/mD,EAAem0J,QAAA1T,aAAezgJ,EAAAkiG,YAAAhnG,KAiU9B,KAAK,GA3TDk5J,GAAOz3J,KAAQC,MAAAoD,EAAAk0J,oBAA2BG,WAEtCn5J,EAAI,EAAAA,EAAA0H,OAAYD,KAAAyxJ,GAAAj5J,OAAAD,IACD,sBAyTf0H,OAzTID,KAAAyxJ,GAAWl5J,KA0Tf8E,EAAGm0J,QAzTCG,YAAa1xJ,OAAAmK,OAAAqnJ,GAAAl5J,GA6TzB8E,GAAGm0J,QAAQ1sG,SAzTCznD,EAAAk0J,oBAAiBjnG,UA2T7BjtD,EAAGm0J,QAAQI,gBAAkBv0J,EAAGk0J,oBAAoBliC,YACpDhyH,EAAGm0J,QAzTKK,aAAAx0J,EAAAk0J,oBAA+BO,kBA0TvCz0J,EAAGm0J,QAAQ1pI,UAzTSzqB,EAAAk0J,oBAAgBzpI,UA0TpCzqB,EAAGm0J,QAAQO,cAAgB10J,EAAGk0J,oBAAoBQ,cAClD10J,EAAGm0J,QAAQQ,eAzTQ30J,EAAAm0J,QAAoBI,gBAAAv0J,EAAAm0J,QAAAG,WA4TvC,IAAIM,GAzTYj4J,KAAAC,MAASoD,EAAKk0J,oBAAYlR,iBA2T1ChjJ,GAAGm0J,QAAQU,IAzTKD,EAAWC,IA0T3B70J,EAAGm0J,QAAQW,WAzTSF,EAAME,WA0T1B90J,EAAGm0J,QAAQY,WAAaH,EAAYG,WACpC/0J,EAAGm0J,QAAQa,mBAzTeJ,EAAWI,mBA0TrCh1J,EAAGm0J,QAAQc,iBAAmBL,EAAYK,iBAC1Cj1J,EAAGm0J,QAAQe,eAzTaN,EAAUM,eA0TlCl1J,EAAGm0J,QAAQgB,kBAzTgBP,EAAYO,kBA0TvCn1J,EAAGm0J,QAAQiB,WAzTQR,EAAYQ,WA0T/Bp1J,EAAGm0J,QAAQkB,oBAAsBT,EAAYS,oBAC7Cr1J,EAAGm0J,QAAQmB,qBAAuBV,EAAYU,qBAC9Ct1J,EAAGm0J,QAzTQoB,qBAAeX,EAAAW,qBA0T1Bv1J,EAAGm0J,QAAQqB,mBAzTYZ,EAAqBY,mBA0T5Cx1J,EAAGm0J,QAAQsB,aAAeb,EAAYa,aACtCz1J,EAAGm0J,QAAQuB,mBAAqBd,EAAYc,mBAC5C11J,EAAGm0J,QAzTMwB,iBAAAf,EAAAe,iBA0TT31J,EAAGm0J,QAAQyB,kBAAoBhB,EAAYgB,kBAI/C,QAASxhC,KAELp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAzTK,EA0TRb,IAkCJ,QAASugJ,KAELz4J,EAAO8F,GAAG,gCAzTiBhK,UAAqB+/J,EAAA5/J,OAAA,oBAAAC,UAAA,KAiJpD,GAAI8J,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAzTgB,SAAAC,GA0TfzU,EAAGuU,YAzTQE,GAmUfzU,EAAGm0J,WACHn0J,EAAG+vG,YAAcA,EACjB/vG,EAAGsS,WAAY,EACftS,EAAGo0H,OAzTQA,EA0TXp0H,EAAG+zJ,UAzTYA,EA0Tf/zJ,EAAGyyJ,SAAWA,CACd,IAAItgJ,GAzTQhY,EAAkBgG,uBAAAwU,gBAAAxC,UA0T1B0jJ,EAzTa77J,EAASvE,OAAGK,UA0TzB69J,EAzTY35J,EAAAvE,OAAAM,MA8ThBmc,KAyGAlS,EAAG81J,qBAzTqB,SAAGhD,GA2TvB,GAAItxI,EAEAA,GADY,WAAZsxI,EACW,EAEA,CAEf,IAAIU,GAAar5J,EAAsBgG,uBAEnC41J,GACAC,QAASh2J,EAAGk0J,oBAzTgB8B,QA0T5BpgK,OAAQ4rB,EACRoyI,YAAa,OACb9/I,UAAW0/I,EAAWnzJ,OAG1BqzJ,GAzT4BuC,uBAAmBF,GAAet3J,KAAO,SAAAC,GA0T9C,MAAfA,EAAIlI,SACJwJ,EAAGsS,WAAY,EACftS,EAAGgT,YAAa,EACA,WAAZ8/I,EACA/6J,EAAW2I,YAAY,UAAW,wBAAyB,WAE3D3I,EAAW2I,YAAY,UAAW,wBAAyB,WAC/DwR,MAEL,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wSA1KhEtM,QACKC,OAAO,uCACPe,WAAW,8BAA+BwqL,OAiLnD,WACI,YAOA,SAASC,GAAgCp1K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAczxF,EAAiBn7B,EACxH2D,EAAaD,EAAam1D,EAA8B8oF,EAA+ByC,EAAuBC,EAA4BxkJ,EAAwBE,EAAc3X,EAAuBk8J,EAAwCC,GAmE/O,QAzTQpkJ,KA0TJlS,EAAGjK,OAzTC49J,EA2TJ3zJ,EAAGu2J,oBAAuBC,MAAS,kBAAqBA,MAAS,aAAgBA,MAAS,eAE1FJ,EAzTIwB,eAA+B,QAAAn5J,KAAA,SAAAC,GA0T/B,GAzTY,MAARA,EAAIlI,OAAe,CA0TnBwJ,EAAG6xF,SAAWnzF,EAAIhJ,IAElB,IAAIqhK,IAxTA5kJ,UAAQA,EACRrc,UAAS+/J,EACTjC,YAAU,OACVh+J,OAAI,MA2TRwgK,GAA2BY,8BAA8BD,GAAoBt4J,KAAK,SAAU89J,GACxF,GAzTiB,MAAbA,EAAA/lK,OAAiB,CA0TjBwJ,EAAG8zJ,iBAAmByI,EAAK7mK,IAvT/B,IAAAwhK,IACG/kJ,UAAYA,EA0TPrc,UAAW+/J,EAtTvBQ,GAAgCc,+BAAoBD,GAAAz4J,KAAA,SAAA24J,GA0TxC,GAA2B,MAAvBA,EAAY5gK,OAAgB,CAC5BwJ,EAAGq3J,gBAAkBD,EAAY1hK,IAvTrD,IAAAswB,IACuB7T,UAAKA,EA0TJrc,UAAW+/J,EAxTxBjC,YAAoB,WAGdwC,GAAiBK,oCAAAzwI,GAAAvnB,KAAA,SAAA4hK,GAChB,GAAA,MAAAA,EAAA7pK,OAAA,CACUwJ,EAACgmD,aAAWq6G,EAAA3qK,IA2TZ,IAAIghK,IAxTHvkJ,UAAAA,EA0TGwkJ,OAAQ,aAvTrBR,GAAuBS,uBAAAF,GAAgCj4J,KAAA,SAAAo4J,GACnD,MAAAA,EAAArgK,QA0TawJ,EAAG82J,gBAAkBD,EAAKnhK,KAC1BsK,EAAGsS,WAAY,GAvTfva,EAAA2I,YAAoB,QAAA,yBAAA,4BA2TzB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAExDV,EAAGsS,WAAY,IAEpB,SAAU3R,GAxTpC5I,EAAA2I,YAAA,QAAA,mBAAA,8BA4TkB,SAAUC,GAzTrC5I,EAAA2I,YAAA,QAAA,mBAAA,4BAEgBV,EAAAsS,WAAA,IA4TG,SAAU3R,GAzTpB5I,EAAA2I,YAA4B,QAAe,mBAAoB,4BAE3DV,EAAAsS,WAAA,IAEN,SAAA3R,GACA5I,EAAc2I,YAAA,QAAgB,mBAAA,4BAyZjC,QA1TO04J,GAAQvB,EAAct5J,GA2TrBs5J,GAzTD73J,EAAQ+S,WACRghJ,EAAQ8D,EAAkB,SAAAt5J,GAClBA,GACAA,MA4TPyB,EAAGsS,WAAY,IAGftS,EAAGm0J,QAAQpwG,iBAAmB,KAzT/B/jD,EAAAg4J,qBACAh4J,EAAAm0J,QAAQ9rI,KAAA,GACRroB,EAAAm4J,iBACAn4J,EAAAo4J,qBAAQ,EACRp4J,EAAAq4J,oBAAQ,GA8Tf,QA1TOtE,GAAQ8D,EAAsBt5J,GAIjC,GAHGyB,EAAA+S,WACA+kJ,IAEAD,EAAQ,CAER,GAAA7xI,IACA7T,UAAQA,EA2TH2xC,WAAY+zG,EACZ/hK,UAAW+/J,EACXxgD,aAAc,EAvTnB+gD,GAAa2B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GACb,GAAY,MAAZA,EAAYlI,OAAA,CACfwJ,EAAAg4J,kBAAAt5J,EAAAhJ,KA4TgBsK,EAAGg4J,kBAAkB78J,OAAS,EAzT/C6E,EAAAi4J,aAAiC,EAE5Bj4J,EAAAi4J,aAAA,CAEA,KAAW,GAAA/8J,KAAA8E,GAAAg4J,kBA2T8C,IAAzCh4J,EAAGg4J,kBAAkB98J,GAAG03B,gBAzT7B5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAg4J,kBAAA98J,GAAA03B,eA6TH,IAAIqkI,IAzTA9kJ,UAAAA,EACAvc,OAAA,IACJg+J,YAAA,WACR99J,UAAa+/J,EA6TLnC,GAA8BO,qCAAqCgD,GAAYx4J,KAAK,SAAUC,GAzT5E,MAA9BA,EAAAlI,SACYwJ,EAAWkiG,YAAKxjG,EAAAhJ,MACLsK,EAAA+S,UAmWH/S,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAxTrEV,EAAAsS,WAAmB,EAEJ/T,GA4TEA,MAET,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAvT7DV,GAAAm0J,QAAYpwG,iBAAA,KACZ/jD,EAAAg4J,qBACAh4J,EAAAm0J,QAAA9rI,KAAkB,GAClBroB,EAAAm4J,iBA4TKn4J,EAAGo4J,qBAAsB,EA1T9Bp4J,EAAAq4J,oBAA0B,EA+T7B,QAASC,GAAmBC,EAASh6J,GAEjC,GA5TDu5J,IA4TKS,EAAS,CAzTd,GAAQvyI,IACA7T,UAAAA,EACA2xC,WAAU9jD,EAAAm0J,QAAApwG,iBAAAD,WACVhuD,UAAA+/J,EACAxgD,aAAakjD,EAGrBnC,GAAwB2B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GAChB,GAAA,MAAAA,EAAAlI,OAAqB,CACrBwJ,EAAAw4J,qBAAiB95J,EAAAhJ,IA4TZ,IAAI+iK,GAAQ,EA1TZ,KAAA,GAAAv9J,KAAA8E,GAAAw4J,qBACDx4J,EAAAw4J,qBAAAt9J,GAAA8oD,QAAAhkD,EAAAg4J,kBAAA98J,GAAA8oD,OAAA,IAAAhkD,EAAAw4J,qBAAAt9J,GAAA03B,gBACA5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAw4J,qBAAAt9J,GAAA03B,gBA8TiDj9B,QAAxCqK,EAAGg4J,kBAAkB98J,GAAGulJ,eACxBgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAzTxIroB,GAAem0J,QAAO9rI,KAAOowI,EA8TjBC,EAAgBH,GAzThCv4J,EAAAsS,WAAA,EAEgB/T,GA4TIA,MAxThB,SAAAoC,GACQ5I,EAAI2I,YAAgB,QAAA,mBAAA,wBA+TxBV,GAAGm0J,QA3TKpwG,iBAAW,KA4TnB/jD,EAAGg4J,qBACHh4J,EAAGm0J,QA3TK9rI,KAAA,GA+ThB,QAASqwI,GA3TgBH,GA6TrB,GAAIvyI,IACA7T,UAAWA,EACXrc,UAAW+/J,EACXjC,YAAa,WACbh+J,OAAQ,IACRmxD,OAAQwxG,EAGZv4J,GAAGm0J,QAAQwE,YA3Ta,EA4TxB34J,EAAGm0J,QAAQyE,QAAU,EACrB54J,EAAGm0J,QAAQ0E,WA3Ta,EA4TxB74J,EAAGm0J,QAAQ2E,iBA3TiB,EA4T5B94J,EAAGm0J,QAAQ4E,WAAa,EAExB/4J,EAAGm0J,QAAQniC,YAAc,EACzBhyH,EAAGm0J,QAAQW,WAAa,EAExB90J,EAAGm0J,QAAQQ,eA3TiB,EA4T5B30J,EAAGm0J,QAAQY,WAAa,EACxB/0J,EAAGm0J,QAAQa,mBAAqB,EAIhCqB,EAAuC2C,kCAAkChzI,GAAWvnB,KAAK,SAAUC,GAC/F,GAAmB,MAAfA,EAAIlI,OAAgB,CAGpB,GAFAwJ,EAAGi5J,mBAAqBv6J,EA3TIhJ,KA6TxBsK,EAAGi5J,mBAAmB99J,OA3TS,GA4T3B6E,EAAGi5J,mBAAmB,GAAGN,YA3TE,EAAA,CA4T3B34J,EAAGm0J,QAAQwE,YA3Ta34J,EAAAi5J,mBAAuB,GAAAN,YA4T/C34J,EAAGm0J,QAAQyE,QAAU54J,EAAGi5J,mBAAmB,GAAGL,QAC9C54J,EAAGm0J,QAAQ0E,WA3TQ74J,EAAAi5J,mBAAe,GAAAJ,WA4TlC74J,EAAGm0J,QAAQ2E,iBA3TS94J,EAAWi5J,mBAAqB,GAAAH,iBA4TpD94J,EAAGm0J,QAAQ4E,WAAa/4J,EAAGi5J,mBAAmB,GAAGF,UAEjD,KAAK,GAAI79J,KAAK8E,GAAG6xF,SACT7xF,EA3TG6xF,SAAA32F,GAAUs3F,QAAKxyF,EAAAi5J,mBAAA,GAAAzmE,SA4TlBxyF,EAAGm0J,QA3TC+E,mBAAuBl5J,EAAA6xF,SAAS32F,GA+T5Ci+J,GA3Ten5J,EAAAi5J,mBAAqB,GAAA7F,gBA+T5CpzJ,EA3TGsS,WAAU,IA8TlB,SA3TQ3R,GA4TP5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAO5D,QAASy4J,GAAqBE,EAAiB96J,GAC3C,GAAI86J,EAAiB,CAEjB,GAAIC,IACAnnJ,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxCsvG,eAAgBiG,EAGpBr5J,GAAGw3J,yBAEHlB,EAA2BgB,6BAA6BgC,GAAgB76J,KAAK,SAAU84J,GACnF,GAA4B,MAAxBA,EAAa/gK,OAAgB,CAE7B,GADAwJ,EAAGw3J,sBAAwBD,EAAa7hK,KACpCsK,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CACrC6E,EAAGq4J,oBAAqB,CACxB,KAAK,GAAIn9J,KAAK8E,GAAGw3J,sBAAuB,CAEpCx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EACvCv5J,EAAGw3J,sBAAsBt8J,GAAGs+J,UAAY,EACxCx5J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU,EACtCz5J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa,EACzCzwC,EAAGw3J,sBAAsBt8J,GAAGw+J,gBAAkB,EAE9C15J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,CAC3C,IAAIC,KACwC,IAAxC95J,EAAGw3J,sBAAsBt8J,GAAG6+J,UACyB,IAAjD/5J,EAAGw3J,sBAAsBt8J,GAAG8+J,mBAC5BF,IAAgBtD,MAAS,aACzBx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,IAG3CC,IAAgBtD,MAAS,kBAAqBA,MAAS,eACvDx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAG/C75J,EAAGw3J,sBAAsBt8J,GAAG+3B,SAAW6mI,EACvC95J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAegjH,EAAW,IAGtD95J,EAAGw3J,sBAAsBt8J,GAAG+3B,aAmBxCjzB,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBASxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGq4J,oBAAqB,EAIhC,QAASgC,KAELr6J,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGm0J,QAAQniC,cAAclmG,QAAQ,GA1TlH9rB,EAAAm0J,QAASY,YAAalpI,WAAkB7rB,EAAAm0J,QAAUyE,SAAA/sI,WAAA7rB,EAAAm0J,QAAAW,aAAAhpI,QAAA,GAC9C9rB,EAAAm0J,QAAIa,oBAAkBnpI,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAY,aAAAjpI,QAAA,GA4TtB9rB,EAAGm0J,QA3TM8F,eAAGpuI,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAM,mBAAA,KAAA3oI,QAAA,GA4TZ9rB,EAAGm0J,QA3TKgG,gBAAUtuI,WAAkB7rB,EAAAm0J,QAAUQ,gBAAU9oI,WAAA7rB,EAAAm0J,QAAA+F,oBAAA,KAAApuI,QAAA,EA6TxD,IAAIwuI,GA3TY,EA4TZF,EAAW,CAEf,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBA1TZ,GAAAx3J,EAAAw3J,sBAAAt8J,GAAA6+J,WAC6B,iBAA3B/5J,EAAQw3J,sBAAmBt8J,GAAA47C,aAAA0/G,OAEZ,gBAAPx2J,EAAAw3J,sBAAOt8J,GAAA8+J,kBACfh6J,EAAAw3J,sBAAgBt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAq+J,WAAAztI,QAAA,GAEK,gBAArB9rB,EAAAw3J,sBAAqBt8J,GAAA8+J,kBA4TZh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBA1TlCh6J,EAAAw3J,sBAAkBt8J,GAAUs+J,WAAA3tI,WAAA7rB,EAAAm0J,QAAAa,oBAAAnpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAq+J,WAAAztI,QAAA,IA8T/BwuI,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAEpD,GAArCx5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QA1TpCv6J,EAAAw3J,sBAAYt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs+J,WAAA3tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GACZsuI,GAAWvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,aAGG,YAAdx6J,EAAAw3J,sBAAct8J,GAAA47C,aAAA0/G,OA6TV8D,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAzTzE,GAAhBz5J,EAAAw3J,sBAAgBt8J,GAAAq/J,QACjBv6J,EAAAw3J,sBAAwBt8J,GAAAs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu+J,SAAA5tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GA4TvBsuI,GAAsBvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,aAGV,cAAlDx6J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QAEO,gBAAjDx2J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBA1ThCh6J,EAAKw3J,sBAAYt8J,GAAAw+J,iBAAmB7tI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,GAEqB,gBAAjD9rB,EAAGw3J,sBAAqBt8J,GAAA8+J,kBA4T5Bh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GAzT1I,wBAAb9rB,EAAAw3J,sBAAat8J,GAAA8+J,oBACbh6J,EAAAw3J,sBAAWt8J,GAAAw+J,iBAAA7tI,WAAA7rB,EAAAm0J,QAAAa,oBAAAnpI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu1C,YAAA,KAAA3kB,QAAA,IA8TfwuI,EA3TezuI,WAAAyuI,GAAAzuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw+J,iBA6T0B,GAArC15J,EAAGw3J,sBAAsBt8J,GAAGq/J,QA1ThCv6J,EAAAw3J,sBAAAt8J,GAA8Bs/J,WAAA3uI,WAAA7rB,EAAAw3J,sBAAiDt8J,GAAKw+J,iBAAe7tI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,KAAA3uI,QAAA,GAC/FsuI,GAAmBvuI,WAAK7rB,EAAAw3J,sBAAAt8J,GAAAs/J,aAmUxC,IAAIE,GAAgB,CAChB16J,GAAG82J,gBAAgB37J,OAAS,IAC5Bu/J,GAAiB16J,EAAGm0J,QAAQQ,eAAiB9oI,WAAW7rB,EAAG82J,gBAAgB,GAAGrmH,YAAc,KAAK3kB,QAAQ,GACzGsuI,GAAsBvuI,WAAW6uI,IAIrC16J,EAAGm0J,QAAQiG,SAAWA,EAAStuI,QAAQ,GACvC9rB,EAAGm0J,QAAQO,cAAgB4F,EAAmBxuI,QAAQ,GACtD9rB,EAAGm0J,QAAQ1pI,WAAaoB,WAAW7rB,EAAGm0J,QAAQQ,gBAAkB9oI,WAAW7rB,EAAGm0J,QAAQO,eAAiB7oI,WAAW7rB,EAAGm0J,QAAQiG,WAAWtuI,QAAQ,GAGpJ,QAASgsI,KACL93J,EAAGm0J,QAAQwE,YAAc,EACzB34J,EAAGm0J,QAAQniC,YAAc,EACzBhyH,EAAGm0J,QAAQQ,eAAiB,EAC5B30J,EAAGm0J,QAAQyE,QAAU,EACrB54J,EAAGm0J,QAAQW,WAAa,EACxB90J,EAAGm0J,QAAQY,WAAa,EACxB/0J,EAAGm0J,QAAQa,mBAAqB,EAChCh1J,EAAGm0J,QAAQM,kBAAoB,EAC/Bz0J,EAAGm0J,QAAQ8F,cAAgB,EAC3Bj6J,EAAGm0J,QAAQ+F,mBAAqB,EAChCl6J,EAAGm0J,QAAQgG,eAAiB,CAE5B,KAAK,GAAIj/J,KAAK8E,GAAGw3J,sBAObx3J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW,EACvCv5J,EAAGw3J,sBAAsBt8J,GAAGs+J,UAAY,EACxCx5J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU,EACtCz5J,EAAGw3J,sBA3TgBt8J,GAAAu1C,WAAY,EA4T/BzwC,EAAGw3J,sBAAsBt8J,GAAGw+J,gBAAkB,EAC9C15J,EAAGw3J,sBA3TkBt8J,GAAK47C,aAAA92C,EAAAu2J,kBAAA,GA4T1Bv2J,EAAGw3J,sBA3ToBt8J,GAAAy+J,YAAY,EA4TnC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,CAE/C75J,GAAGm0J,QAAQO,cAAgB,EAC3B10J,EAAGm0J,QAAQiG,SA3TK,EA4ThBp6J,EAAGm0J,QAAQ1pI,UA3TK,EAgVpB,QAASqwI,GA3TcF,EAAAj1G,GA4TnB,GAAI20G,GA3TmB,EA4TnBF,EA3TI,CA6TR,KAAK,GAAIl/J,KAAK8E,GAAGw3J,sBAC+B,GAAxCx3J,EAAGw3J,sBAAsBt8J,GAAG6+J,WAzTJ,iBAApB/5J,EAAAw3J,sBAAoBt8J,GAAA47C,aAAA0/G,OACpBx2J,EAAGw3J,sBAAAt8J,GAAuBy8J,gBAAI,EAE9B33J,EAAAw3J,sBAAiBt8J,GAAAu8J,cAAsB5rI,WAAA7rB,EAAAm0J,QAAAwE,aAAA9sI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAA6/J,YA6TvC/6J,EAAGw3J,sBA3TQt8J,GAAAs/J,UAAqB3uI,WAAmB7rB,EAAAw3J,sBAASt8J,GAAAu8J,eAAwB5rI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,IAgUpFH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu8J,eA1T7F2C,GAAkBvuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,aAKlBx6J,EAAGw3J,sBAAYt8J,GAAAy8J,gBAAA,EAEf33J,EAAAw3J,sBAAIt8J,GAAAs/J,UAAA3uI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAw8J,SAAA7rI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAu/J,eAAA,IA6TJH,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw8J,SAzTlG0C,GAAevuI,WAAA7rB,EAAAw3J,sBAAAt8J,GAAAs/J,YAiUtBx6J,GAAGm0J,QA3TIiG,SAAAA,EA4TPp6J,EAAGm0J,QA3TIO,cAAe4F,EA4TtBt6J,EAAGm0J,QAAQ1pI,UAAYzqB,EAAGm0J,QAAQQ,eAAiB30J,EAAGm0J,QAAQO,cAAgB10J,EAAGm0J,QAAQiG,SAmF7F,QAAS2J,GA3TkBjR,GA4TvB,GAAItxI,EAIAA,GAFY,WAAZsxI,EAEW,IAGA,GAGf,IAAIuI,GAEArY,IAEJ,KAAK,GAAI9nJ,KAAK8E,GAAGw3J,sBACb,GA3T2B,GA2TvBx3J,EAAGw3J,sBA3ToBt8J,GAAA6+J,SAAA,CA6TvB,GAAIsK,GAAO,EACPC,EAAO,CAzTiC,kBA2TxCtkK,EAAGw3J,sBA3TYt8J,GAAA47C,aAAyB0/G,OA4TxC6N,EAAOrkK,EAAGw3J,sBA3TKt8J,GAAAq+J,SA4Tf+K,EAAOtkK,EAAGw3J,sBAAsBt8J,GAAGs+J,WAzTgB,YA2T9Cx5J,EAAGw3J,sBA3TOt8J,GAAA47C,aAAyB0/G,MA4TxC8N,EAAOtkK,EAAGw3J,sBAAsBt8J,GAAGu+J,QAEoB,cAAlDz5J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QAC9C6N,EAAOrkK,EAAGw3J,sBAAsBt8J,GAAGu1C,WACnC6zH,EAAOtkK,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAKvC2B,GACIR,YAAe76J,EAAGw3J,sBAAsBt8J,GAAG2/J,YAC3Cl1G,KAAQ3lD,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,MACjDuE,WAAcsJ,EACd5zH,WAAczwC,EAAGw3J,sBAAsBt8J,GAAGu/J,cAC1CzlE,OAAUsvE,EACV9J,UAAax6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAG7CxX,EA3TOnrJ,KAAYwjK,GA+T3B,GAAI2F,IACA7uJ,UAAWA,EACXrc,UA3TC+/J,EA4TD/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxCiD,OAAQ/mD,EAAGg4J,kBAAkBh4J,EAAGg4J,kBAAkB78J,OAAS,GAAGslJ,aAAa15F,OAC3EirE,YAAahyH,EAAGm0J,QAAQniC,YACxB8iC,WAAY90J,EAAGm0J,QAAQW,WACvBL,kBAAmBz0J,EAAGm0J,QAAQM,kBA1T9BwF,cAAWj6J,EAAAm0J,QAAA8F,cACXC,mBAAGl6J,EAAoBm0J,QAAA+F,mBACvBC,eAAWn6J,EAAOm0J,QAAAgG,eAClBnX,iBAAGrmJ,KAAgBqkB,UAAAgiI,GACnB0R,cAAG10J,EAAAm0J,QAAsBO,cACzBjqI,UAAGzqB,EAAAm0J,QAAA1pI,UA4THpE,QAAS,OACTzwB,OAAQ4rB,EACR1N,UAAW0/I,EAAWnzJ,OAxT1Bg2J,GAA6BmF,2BAAqCwF,GAAWviK,KAAG,SAAQC,GACrFA,EAAQhJ,KAAAke,aAAc,GACtB7b,EAAQ2I,YAAA,UAAsBhC,EAAWhJ,KAAGme,QAAQ,yBACpD7T,EAAQgT,YAAA,EACRd,MAGCna,EAAW2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,yBA4TP7T,EAAGgT,YAAa,IAErB,SA3TQrS,GA4TP5I,EA3TW2I,YAAA,QAAA,iCA+TnB,QAAS0zH,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGm0J,WAIP,QAASngJ,KACLhU,EAAGgT,YA3TS,EA4TZhT,EAAGm0J,WAGP,QAAS1B,KACLz4J,EAAO8F,GAAG,gCAAkChK,UAAW+/J,EAAc5/J,OAAQ,oBAAqBC,UAAW,KAEjH,QAASykK,GA3TeC,EAAyBj1G,GA6T7C,IAAK,GAAIzqD,KA3TG8E,GAAAw3J,sBA6TJx3J,EAAGw3J,sBA3TQt8J,GAAA2/J,aAAyBD,GACA,GA2ThC56J,EAAGw3J,sBA3TIt8J,GAAA6+J,WACHpkK,QAAAgwD,GA4TA3lD,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EA1T3C55J,EAAIw3J,sBAAGt8J,GAAsB2+J,cAAgB,GAEO,iBAA9C75J,EAAAw3J,sBAAyBt8J,GAAA47C,aAAA0/G,OAC5Bx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAA,EA4T5B35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EA3TCw3J,sBAAOt8J,GAAA2+J,cAAyB,GA6TsB,YAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAC9Cx2J,EA3TCw3J,sBAAOt8J,GAAAy+J,YAAyB,EACjC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAA,EA4T5B55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAzTO,cAAtD75J,EAAAw3J,sBAAgCt8J,GAAA47C,aAAA0/G,QA4T5Bx2J,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EA1TzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAc,IAiU9D,QAASmB,GAAiBloJ,GAKtB,GAJA9S,EAAG+S,WAAY,EAzTf/S,EAAAm0J,QAAI//J,QAAgB8e,KAAAJ,GAEhB9S,EAAAgmD,aACA,IAAA,GAAA9qD,KAAW8E,GAAAgmD,aA4TP,GAAIhmD,EAAGgmD,aAAa9qD,GAAG4oD,aAAe9jD,EAAGm0J,QAAQrwG,WAAY,CACzD9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,EAzT/C,KAAA,GAAA0U,KAAW5P,GAAA6xF,SAEX7xF,EAAY6xF,SAACjiF,GAAW4iF,QAAGxyF,EAAQm0J,QAAA3hE,SA6T1BxyF,EAAGm0J,QAAQ+E,mBAAqBl5J,EAAG6xF,SAASjiF,GAnTrD,IAAAsnJ,IACA/kJ,UAAAA,EACArc,UAAgB+/J,EAChB/xG,WAAA9jD,EAAAm0J,QAAqBpwG,iBAAAD,WACrBsvG,eAAiBpzJ,EAAAm0J,QAAAf,eA8ThBkD,GAA2BgB,6BAA6BJ,GAAcz4J,KAAK,SAAU84J,GACjF,GAA4B,MAAxBA,EAAa/gK,OAAgB,CAG7B,GAFAwJ,EAAGw3J,sBAAwBD,EAAa7hK,KAEpCsK,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CAzTtD6E,EAAAq4J,oBAAoC,CAEpC,KAAsB,GAAGn9J,KAAA8E,GAAAw3J,sBAEzBx3J,EAAsBw3J,sBAAqBt8J,GAAAq+J,SAAA,EAC3Cv5J,EAAsBw3J,sBAAqBt8J,GAAAs+J,UAAkB,EAC7Dx5J,EAAsBw3J,sBAAgBt8J,GAAAu+J,QAAA,EACtCz5J,EAAsBw3J,sBAAet8J,GAAAu1C,WAAA,EACrCzwC,EAAsBw3J,sBAAkBt8J,GAAAw+J,gBAAA,EA4TnB15J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkB,GA1TjEv2J,EAAAw3J,sBAAAt8J,GAAAy+J,YAAA,EACL35J,EAAAw3J,sBAAAt8J,GAAA0+J,WAAA,EACC55J,EAAAw3J,sBAAAt8J,GAAA2+J,cAAA,CA8TC9F,GAAU/zJ,EAAGm0J,QAAQpwG,iBAAiBD,WAAY,SAAUvlD,GACxD,GAAIyB,EAAGg4J,kBAAmB,CAEtB,GAAIhyI,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQrwG,WACvB8vG,YAAa,WACb7sG,OAAQj0C,EAAIi0C,OAGhBqvG,GAA2B6E,iCAAiCj1I,GAAWvnB,KAAK,SAAUC,GAClF,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IAC7B,IAAIylK,GAAqBx+J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,iBAC3C3C,EAAQ,EAvT3B,KAAA,GAAAv9J,KAAA8E,GAAAg4J,kBAAA,CACVh4J,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAk7J,oBAAAhgK,GAAA+xD,UA4T6B,KAAK,GAAI9iD,KAAKnK,GAAGg4J,kBAAkB98J,GAAGg9J,YA1T1Cl4J,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAAA48C,QAAAo0G,EAAA,QAAAv0J,SAAA1L,GAAA,MACW8E,EAAAg4J,kBAAA98J,GAAAulJ,aAAAzgJ,EAAAg4J,kBAAA98J,GAAAg9J,YAAA/tJ,GAGMxU,SAAjBqK,EAAAg4J,kBAAiB98J,GAAAulJ,eA4TTgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,MAE5HroB,EAAGm0J,QAAQ9rI,KAAOowI,CAElB,IAAI4C,GAAc1+J,KAAKC,MAAMoD,EAAGm0J,QAAQnR,iBAExC,IAAIhjJ,EAAGw3J,sBAAsBr8J,OAAS,EAAG,CAKrC,GAAIm/J,GAAqB,EACrBF,EAAW,CAzTnB,KAAA,GAAAl/J,KAAiB8E,GAAAw3J,sBAEjB,GAAoD,GAAxCx3J,EAACw3J,sBAAct8J,GAAA6+J,SAAyB,CAEhD,GAAAuB,GAAA9gK,EAAsByC,OAAWo+J,GAAGR,YAAyB76J,EAAAw3J,sBAAAt8J,GAAA2/J,aAEzD,IAAAS,EAAAngK,OAAsB,EAAG,CA6TjB,IAAK,GAAIgP,KAAKnK,GAAGu2J,kBACTv2J,EAAGu2J,kBAAkBpsJ,GAAGqsJ,OAAS8E,EAAM,GAAG31G,OAC1C3lD,EAAGw3J,sBAAsBt8J,GAAG47C,aAAe92C,EAAGu2J,kBAAkBpsJ,GAvTvC,kBAAnCnK,EAAQw3J,sBAAmBt8J,GAAA47C,aAAQ0/G,OA6T7Bx2J,EAAGw3J,sBAAsBt8J,GAAGq+J,SAAW+B,EAAM,GAAGP,WAEK,gBAAjD/6J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAElF,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,GAEjF,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGq+J,WAAWztI,QAAQ,IAGnJwuI,EAAqBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAEpD,GAArCx5J,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs+J,WAAa3tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GACpKsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAAY1uI,QAAQ,IAGlG9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAEY,YAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,OAE9Cx2J,EAAGw3J,sBAAsBt8J,GAAGu+J,QAAU6B,EAAM,GAAGtmE,OAE/CslE,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,UAAU3tI,QAAQ,GAEvE,GAArC9rB,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu+J,SAAW5tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GAClKsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAAY1uI,QAAQ,IAGlG9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,GAEY,cAAlD75J,EAAGw3J,sBAAsBt8J,GAAG47C,aAAa0/G,QAE9Cx2J,EAAGw3J,sBAAsBt8J,GAAGu1C,WAAa6qH,EAAM,GAAGP,WAEG,gBAAjD/6J,EAAGw3J,sBAAsBt8J,GAAG8+J,kBAC5Bh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQwE,aAAe9sI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GAElG,gBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,kBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQY,YAAclpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,GAEjG,wBAAjD9rB,EAAGw3J,sBAAsBt8J,GAAG8+J,oBACjCh6J,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAoB7tI,WAAW7rB,EAAGm0J,QAAQa,oBAAsBnpI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu1C,YAAe,KAAK3kB,QAAQ,IAGnKwuI,GAAsBzuI,WAAWyuI,GAAsBzuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,kBAAkB5tI,QAAQ,GAE/E,GAArC9rB,EAAGw3J,sBAAsBt8J,GAAGq/J,QAC5Bv6J,EAAGw3J,sBAAsBt8J,GAAGs/J,WAAc3uI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGw+J,iBAAmB7tI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGu/J,eAAkB,KAAK3uI,QAAQ,GAC1KsuI,GAAYvuI,WAAWuuI,GAAYvuI,WAAW7rB,EAAGw3J,sBAAsBt8J,GAAGs/J,YAAY1uI,QAAQ,IAGlG9rB,EAAGw3J,sBAAsBt8J,GAAGy+J,YAAa,EACzC35J,EAAGw3J,sBAAsBt8J,GAAG0+J,WAAY,EACxC55J,EAAGw3J,sBAAsBt8J,GAAG2+J,cAAe,IA+C3D,GAAIa,GAAgB,CA1TnB16J,GAAA82J,gBAAsB37J,OAAA,IACpBu/J,GAAA7uI,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAA82J,gBAAA,GAAArmH,YAAA,KAAA3kB,QAAA,GACAsuI,GAAAvuI,WAAAuuI,GAAAvuI,WAAA6uI,IAAA5uI,QAAA,IA8TH9rB,EAAGm0J,QAAQiG,SAAWA,EACtBp6J,EAAGm0J,QAAQO,cAAgB4F,EA1TjDt6J,EAAAm0J,QAAA1pI,WAAAoB,WAAA7rB,EAAAm0J,QAAAQ,gBAAA9oI,WAAA7rB,EAAAm0J,QAAAO,eAAA7oI,WAAA7rB,EAAAm0J,QAAAiG,WAAAtuI,QAAA,UAeP9rB,EAAAsS,WAAA,IAEA,SAAA3R,GACX5I,EAAgB2I,YAAQ,QAAA,mBAAA,oBAwZ5BV,EAAGgT,YAAa,EAGpB,QAASuoJ,GA3TWzoJ,GA6ThB,GAAIH,GAAUtY,EA3TEsY,QAAW,UA4TvB,4CA3TmCtb,WAAiB,EAAA+F,KAAA,MA6TxDuV,GAAQjT,OAAOjB,KAAK,WAEhBuB,EAAGm0J,QA3TK//J,QAAA8e,KAAAJ,EA6TR,IAAIkT,IACA7T,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAYhxC,EAAIgxC,WAChBiD,OAAQj0C,EAAIi0C,OACZirE,YAAa,EACb8iC,WAAY,EACZL,kBAAmB,EACnBwF,cAAe,EACfC,mBA3ToB,EA4TpBC,eAAgB,EAChBnX,iBAAkB,GAClB0R,cAAe,EACfjqI,UAAW,EACXpE,QAAS,SACTzwB,OAAQ,IACRke,UAAW,EAGfuiJ,GA3TiCmF,2BAAyBx1I,GAAYvnB,KAAU,SAAUC,GA4TlFA,EAAIhJ,KAAKke,aA3Tc,GA4TvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBACpD7T,EAAGgT,YAAa,EAChBd,MAGAna,EAAW2I,YAAY,QA3TChC,EAAAhJ,KAAame,QAAA,yBA4TrC7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,QA3TC,mCAp9BpC,GAAIV,GAAKC,IAETD,GAAGqU,kBAzTqBhJ,MAAA,KAAWA,MAAY,KAASA,MAAA,KAAiBA,MAAA,MA0TzErL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAzTsB,SAAKC,GA0T1BzU,EAAGuU,YAzTSE,GAoUhBzU,EAAGg7J,iBAzTKA,EA0TRh7J,EAAGu7J,mBAAqBA,EACxBv7J,EAAGo5J,aAzTeA,EA2TlBp5J,EAAGyyJ,SAAWA,EAGdzyJ,EAAGo0H,OAASA,EAEZp0H,EAAGgU,OAASA,EACZhU,EAAG+zJ,UAAYA,EACf/zJ,EAAGs4J,mBAAqBA,EAxTxBt4J,EAAA04J,gBAASA,EA0TT14J,EAAGq6J,gBAAkBA,EAErBr6J,EAAG86J,wBAzToBA,EA0TvB96J,EAAG26J,2BAzTwBA,EA0T3B36J,EAAGm5J,qBAzToBA,EA0TvBn5J,EAAG+jK,wBAA0BA,EAE7B/jK,EAAGm0J,WAEHn0J,EAAGm0J,QAAQwE,YAAc,EACzB34J,EAAGm0J,QAAQniC,YAAc,EACzBhyH,EAAGm0J,QAAQQ,eAAiB,EAC5B30J,EAAGm0J,QAAQyE,QAAU,EAxTrB54J,EAAAm0J,QAASW,WAAW,EA0TpB90J,EAAGm0J,QAzTIY,WAAc,EA0TrB/0J,EAAGm0J,QAzTIa,mBAAiB,EA0TxBh1J,EAAGm0J,QAzTIM,kBAAqB,EA0T5Bz0J,EAAGm0J,QAzTI8F,cAAgB,EA0TvBj6J,EAAGm0J,QAAQ+F,mBAAqB,EAChCl6J,EAAGm0J,QAAQgG,eAAiB,EAE5Bn6J,EAAGgT,YAzTI,EA0TPhT,EAAGsS,WAzTI,EA0TPtS,EAAG+S,WAAY,EACf/S,EAAG8zJ,oBAxTH9zJ,EAAA82J,kBA4TA,IAAI3kJ,GAzTIhY,EAAWgG,uBAAAwU,gBAAAxC,UA0Tf0jJ,EAzTI77J,EAAavE,OAAAK,UA0TjB69J,EAzTI35J,EAAcvE,OAAAM,OA0TlBy9J,EAzTIr5J,EAAcgG,sBA4TtB+R,mZAxEJ9d,QACKC,OAAO,2CACPe,WAAW,kCAzTwByqL,MAqlD5C,WACI,YAOA,SAASC,GAAgCr1K,EAAQ1Q,EA3TOhC,EAAQyC,EAAYH,EAAAL,EAAA2kI,EAAqBy3B,EAAsCE,EAAwB4e,EAAatqG,EAAAzwE,GAiWxK,QAAS+X,KACLlS,EAAG+/K,wBAEKvpB,MAAS,iBAITA,MAAS,iBAGTA,MAAS,wBAGjB,IAAIxwI,IACA7T,UAAWA,EACXvc,OAAQ,IACRE,UAAW,EAGf80E,GAA6BG,eAAe/kD,GAAWvnB,KA3TK,SAAAC,GA4TrC,MAAfA,EAAIlI,SACJwJ,EAAGm1K,gBAAkBz2K,EAAIhJ,KACzBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS6+J,GAAcvL,GACnB,GAAIA,EAAa,GAAmBr+J,QAAdq+J,EAAyB,CAC3C,GAAIhuI,IACA7T,UAAWA,EACX2xC,WAAY,EACZhuD,UAAWk+J,EAGfkhB,GAAgCvV,gBAAgB35I,GAAWvnB,KA3TI,SAAAiB,GA4TtC,KAAjBA,EAAOlJ,SACPwJ,EAAGo1K,iBAAmB11K,EAAOhK,KAC7BsK,EAAGsS,WAAY,SAKvBtS,GAAGo1K,oBACHp1K,EAAGggL,QAAQ7tH,iBAAmB,KAC9BnyD,EAAGw3J,yBACHx3J,EAAGq1K,YAAa,EAIxB,QAASC,GAAmB5L,EAAanrK,GAErC,GAAImrK,EAAc,GAAoB/zK,QAAf+zK,EAA0B,CAE7C,GAAIxJ,IACA/tJ,UAAWA,EACXrc,UAAWkK,EAAGggL,QAAQzK,gBAAgBz/K,UACtCqqK,QAAS,gBACTr8G,WAAY4lH,EAGhBtT,GAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU4hK,GAC3D,MAAhBA,EAAK7pK,SACLwJ,EAAGm4J,cAAgBkI,EAAK3qK,KACpB6I,GACAA,MAET,SAAUkiK,GACT1oK,EAAW2I,YAAY,QAAS,mBAAoB,wBAKxDV,GAAGm4J,iBACHn4J,EAAGggL,QAAQpf,kBAAoB,KAC/B5gK,EAAGw3J,yBACHx3J,EAAGq1K,YAAa,EAIxB,QAASG,GAAcnc,GACnB,GAAIA,EAAkB,GAAwB1jK,QAAnB0jK,EAA8B,CACrD,GAAItD,IACA5jJ,UAAWA,EACXrc,UAAWkK,EAAGggL,QAAQzK,gBAAgBz/K,UACtCguD,WAAY9jD,EAAGggL,QAAQ7tH,iBAAiBrO,WACxCsvG,eAAgBiG,EAGpBr5J,GAAGw3J,yBAEHlB,EAA2BgB,6BAA6BvB,GAAWt3J,KAAK,SAAUC,GAC9E,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGw3J,sBAAwB94J,EAAIhJ,KAC/BsK,EAAGsS,WAAY,EACftS,EAAGq1K,YAAa,EAEhBr1K,EAAGy/B,WAEH,KAAK,GAAI5nB,KAAK7X,GAAGw3J,sBACb,GA3T4C,GA2TxCx3J,EAAGw3J,sBAAsB3/I,GA3TGkiJ,SAAY,CA4TxC/5J,EAAGw3J,sBAAsB3/I,GAAG8nB,YAAa,CAEzC,IAAIsgJ,IACAzpB,MAAOx2J,EAAGw3J,sBA3TqB3/I,GAAAmiJ,kBA8TnCh6J,GAAGw3J,sBAAsB3/I,GAAGqoK,eAAiBD,MAG7CjgL,GAAGw3J,sBAAsB3/I,GAAG8nB,YAAa,MAIjD3/B,GAAGw3J,yBACHx3J,EAAGq1K,YAAa,GAErB,SAAU10K,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGw3J,yBACHx3J,EAAGq1K,YA3TS,EA+TpB,QAAS9pK,GAAOsd,GAEZ,GAAIktJ,GAAQ/1K,EAAGy/B,SAASr8B,QAAQylB,EAE5BktJ,KAAS,EAAI/1K,EAAGy/B,SAAS5nC,KAAKgxB,GAE7B7oB,EAAGy/B,SAASnK,OAAOygJ,EAAO,GAGnC,QAAStyJ,GAAUuyJ,GAIY,IAAvBh2K,EAAGy/B,SAAStkC,OAEZ/G,QAAQyO,QAAQmzK,EAAY,SAAUlsK,GAElC9J,EAAGy/B,SAAS5nC,KAAKiS,EAAI+e,MAMlB7oB,EAAGy/B,SAAStkC,OAAS,GAAK6E,EAAGy/B,SAAStkC,QAAU6E,EAAGw3J,sBAAsBr8J,OAEhF/G,QAAQyO,QAAQmzK,EAAY,SAAUlsK,GAElC,GAAIisK,GAAQ/1K,EAAGy/B,SAASr8B,QAAQ0G,EAAI+e,GAEhCktJ,KAAS,GAAI/1K,EAAGy/B,SAAS5nC,KAAKiS,EAAI+e,MAO1C7oB,EAAGy/B,YAIX,QAAS20F,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAGq1K,YAAa,EAChBr1K,EAAGsS,WAAY,EACftS,EAAGy/B,YACHz/B,EAAGggL,WACH9tK,IAGJ,QAASwjK,GAAYyK,GAEjB,GACIxK,IADI31K,EAAGw3J,yBAOX,KAAK,GAAIt8J,KAAK8E,GAAGw3J,sBACb,GAA8C,GAA1Cx3J,EAAGw3J,sBAAsBt8J,GAAGykC,WAAoB,CAGhD,GAAIygJ,EAEAA,GAD8CzqL,QAA9CqK,EAAGw3J,sBAAsBt8J,GAAGglL,gBAExBnnK,GAAI/Y,EAAGw3J,sBAAsBt8J,GAAG2/J,YAChCb,kBAAmBh6J,EAAGw3J,sBAAsBt8J,GAAGglL,eAAe1pB,QAM9Dz9I,GAAI/Y,EAAGw3J,sBAAsBt8J,GAAG2/J,YAChCb,kBAAmB,MAK3B2b,EAAa99K,KAAK8E,KAAKqkB,UAAUo/J,IAKzC,GAAIp6J,IACA7T,UAAWA,EACXrc,UAAWkK,EAAGggL,QAAQzK,gBAAgBz/K,UACtCguD,WAAY9jD,EAAGggL,QAAQ7tH,iBAAiBrO,WACxCsvG,eAAgB+sB,EAASvf,kBAAkB7nJ,GAC3CsnK,aAAc1jL,KAAKqkB,UAAU20J,GA1T9B7hK,UAAAJ,EAAarT,OAGpBi2J,GAA4BgqB,4BAAKt6J,GAAAvnB,KAAA,SAAAC,GA4TN,MAAfA,EAAIlI,SA1TRuB,EAAU2I,YAAgB,UAAAhC,EAAAhJ,KAAAme,QAAA,6BAC1BugH,MAEJ,SAAQzzH,GA4TJ5I,EAAW2I,YAAY,QAAS,mBAAoB,+BAzQ5D,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAGq1K,YAAa,EAOhBr1K,EAAGsS,WAAY,EACftS,EAAGo0H,OAASA,EACZp0H,EAAGw1K,cAAgBA,EACnBx1K,EAAGu/J,cAAgBA,EACnBv/J,EAAGs1K,mBAAqBA,EACxBt1K,EAAGuL,OAASA,EACZvL,EAAGyjB,UAAYA,EACfzjB,EAAG01K,YAAcA,CACjB,IAAIvjK,GAAYhY,EAAsBgG,uBA3TsBwU,gBAAOxC,UA4T/DuB,EAAcvZ,EAAsBgG,sBACxCH,GAAGy/B,YACHz/B,EAAGo1K,oBACHp1K,EAAGm4J,iBACHn4J,EAAGggL,WAIH9tK,4OA1CJ9d,QACKC,OAAO,2CACPe,WAAW,kCAAmC0qL,MA2RvD,WAEI,YAMA,SAASS,GA3TG91K,EAAA1Q,EAAuChC,EAAAsC,EAAAL,EAA2B2kI,EAAgBvkG,EAAeu3I,EAAAE,EA4TzG13K,GAwBA,QA5TC+X,KA8TGkoB,EAAmB4R,yBAAyB75B,GAAW1T,KAAK,SAAUC,GA3TrE,MAAAA,EAAAlI,SACIwJ,EAAAs6B,eAAA57B,EAAAhJ,KA6TGsK,EAAGsS,WAAY,IA1TxB,SAAc3R,GACb5I,EAAQ2I,YAAA,QAAA,mBAAA,gCAiUZ,QAAS8/K,GAAkBzO,GAIvB,GAHA/xK,EAAGgyK,sBA3TJhyK,EAAAgT,YAAa,EA8TGrd,QAAXo8K,EAAsB,CAEtB,GAAI/rJ,IACA7T,UAAWA,EACX+oB,aAAc62I,EACdpsH,KAAM3lD,EAAGoyK,YAzTlBT,GAAgBU,0BAAArsJ,GAAAvnB,KAAA,SAAAC,GACA,MAAhBA,EAAgBlI,SAChBwJ,EAAAgyK,mBAAqBtzK,EAAAhJ,KACZsK,EAAAgT,YAAA,EACGhT,EAAAsS,WAAA,IAEX,SAAY3R,GACZ5I,EAAc2I,YAAA,QAAsB,mBAAA,iCAiUxC,QAAS0zH,KACLp0H,EAAGygL,iBACHzgL,EAAGgT,YAAa,EAGpB,QA5TO0tK,KA8TH,GAAIC,GA5Ta,CA8TZ3gL,GAAG+S,YA3TJ4tK,EAAA3gL,EAAAygL,cAAAvkI,WA8TJ,IAAI+6G,IA3TA9kJ,UAAAA,EA6TA+oB,aA5Tal7B,EAAAygL,cAAA10I,mBAAA7Q,aA6TbghB,WAAYykI,EACZ9kI,aAAc77C,EAAGygL,cAAc5kI,aA3T/Bx1B,QAAA,OACAvS,UAAWJ,EAAArT,OACXslD,KAAA3lD,EAAQoyK,YA+TZT,GAAiCiP,sCAAsC3pB,GAAYx4J,KAAK,SAAUC,GA3TlGA,EAAAhJ,KAAAke,aAA6B,GACrB7b,EAAI2I,YAAgB,UAAAhC,EAAAhJ,KAAAme,QAAA,8BACpB7T,EAAGgT,YAAA,EACHhT,EAAGygL,cAAY5kI,aAAA,KA6Tf77C,EAAG+S,WAAY,EA3TpBytK,EAAexgL,EAAAygL,cAAA10I,mBAAA7Q,eA8TVnjC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,+BAEvD,SAAUlT,GACT5I,EAAW2I,YAAY,iCAK/B,QAASmgL,GA5Te/tK,GA6TpB,GAAIH,GA5TItY,EAAWsY,QAAA,UA6Tf,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GA5TIjT,OAAAjB,KAAA,WA8TA,GAAIs3J,IACA5jJ,UA5TOA,EA6TP+oB,aAAc,EACdghB,WAAYppC,EAAIopC,WAChBL,aAAc,GA3TjBx1B,QAAA,SACEvS,UAAAJ,EAAmBrT,OAGtBsxK,GAAgBiP,sCAAA7qB,GAAAt3J,KAAA,SAAAC,GA6TO,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,8BACpD7T,EAAGgT,YAAa,EA3TvBhT,EAAAygL,cAAmB5kI,aAAa,KA6TzB77C,EAAG+S,WAAY,EA3TvBytK,EAAmBxgL,EAAAygL,cAAe10I,mBAAW7Q,eAEzCnjC,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WA8ThB,SA5TClT,GACA5I,EAAS2I,YAAA,QAAA,oCAAA,cAmUrB,QAASogL,GA5TWhuK,GA8ThB9S,EAAG+S,WAAY,EACf/S,EAAGgT,YA5TI,EA8TPhT,EAAGygL,cAAgBrsL,QAAQ8e,KAAKJ,EAEhC,KAAK,GAAI5X,KAAK8E,GAAGs6B,eA3TZt6B,EAAAs6B,eAAAp/B,GAAAggC,eAAAl7B,EAAAygL,cAAAvlJ,eACEl7B,EAAAygL,cAAgB10I,mBAAA/rC,EAAAs6B,eAAAp/B,IAgL3B,GAAI8E,GAAKC,IAETD,GAAGqU,kBA3TahJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA4ThBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YA3Ta,EA4ThBvU,EAAGwU,qBA3TgB,SAAaC,GA4T5BzU,EAAGuU,YAAcE,GAGrBzU,EAAGo0H,OAASA,EACZp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGygL,iBACHzgL,EAAG6gL,oBAAsBA,EACzB7gL,EAAG0gL,kBAAoBA,EACvB1gL,EAAG8gL,kBAAoBA,EA1T9B9gL,EAAAwgL,kBAAYA,CACT,IAAAruK,GAAAhY,EAAAgG,uBAAAwU,gBAAAxC,UA4TQuB,EAAcvZ,EAAsBgG,sBACxCH,GAAGoyK,YAAc,IAEjBlgK,sLA5BJ9d,QACKC,OAAO,yCACPe,WAAW,gCAAiCmrL,MAwJrD,WACI,YAOA,SAASQ,GA5TMt2K,EAAwB1Q,EAAAhC,EAAAkC,EAAAO,EAAAH,EAAAL,EAAA2kI,EAAAxkI,EAAAm8J,GAuWnC,QAASpkJ,KACLokJ,EA5TwB0qB,mBAAOviL,KAAA,SAAAC,GA6TR,MAAfA,EAAIlI,QACJwJ,EAAGihL,cAAgBviL,EAAIhJ,KA3T1BsK,EAAAsS,WAAU,GA8TPva,EAAW2I,YAAY,QAAS,yBAA0B,uBA1TlE,SAAOC,GA6TH5I,EAAW2I,YAAY,QAAS,mBAAoB;GAY5D,QAASsT,KACLhU,EAAG+S,WA5TS,EA6TZ/S,EAAGgT,YAAa,EAChBhT,EAAGiU,aA5TS,EA6TZjU,EAAGkhL,aACHlhL,EAAGkhL,UAAU3mB,OAAQ,EACrBv6J,EAAGmhL,mBAAoB,EACvBnhL,EAAGkhL,UAAUzmB,cAAgB,KAIjC,QAASrmC,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA1Tf/S,EAAGkhL,aACHlhL,EAAGmhL,mBAAa,EAChBnhL,EAAGkhL,UAAAzmB,cAAY,KACfz6J,EAAGkhL,UAAA3mB,OAAW,EA8TlB,QA5TI6mB,KAgUA,GAAI7mB,GAAQ,GA3TRv6J,GAAAkhL,UAAO3mB,QACPA,EAAA,IA8TJ,IAEI8mB,EAMAA,GAhUCrhL,EAAA+S,UAIO/S,EAAAkhL,UAAArmB,YAHD,CAkUX,IAAIymB,IAAU,CAed,IAbIthL,EAAGkhL,UAAU3mB,QACqB5kK,QAA9BqK,EAAGkhL,UAAUzmB,eAA4D,MAA9Bz6J,EAAGkhL,UAAUzmB,eAAqD,IAA5Bz6J,EAAGkhL,UAAUzmB,eAC9F6mB,GAAU,EACVvpL,EA5TK2I,YAAA,QAAA,+BAAA,oBA6TLV,EAAGgT,YA5TO,GA8TLhT,EA5TGkhL,UAAAzmB,cAAmB,MA6T3B6mB,GAAU,EACVvpL,EAAW2I,YAAY,QAAS,sCAAuC,oBACvEV,EAAGgT,YAAa,IAIpBsuK,EAAS,CACT,GAAIC,IACA1mB,YAAawmB,EA3TjBG,cAAYxhL,EAAAkhL,UAAAM,cACZ/mB,cAAWz6J,EAAAkhL,UAAAzmB,cACXF,MAAWA,EACXl0I,QAAY,OACZ0tJ,iBAAgB95K,EAAS,QAAA+F,EAAAkhL,UAAkBp3H,cAAA,eAC3Ch2C,UAAcJ,EAAKrT,OA+TnBi2J,GAA2BmrB,oBAAoBF,GAAW9iL,KAAK,SAAUC,GA3T7EA,EAAAhJ,KAAAke,aAA2B,GACf7b,EAAW2I,YAAK,UAAAhC,EAAAhJ,KAAAme,QAAA,oBACpB3B,IACAlS,EAAAgT,YAAA,EA6TIohH,MA1TRr8H,EAAW2I,YAAY,QAAShC,EAAAhJ,KAAAme,QAAoB,oBA6T5C7T,EAAGgT,YAAa,IAGrB,SAAUrS,GACT5I,EAAW2I,YAAY,kCAkEnC,QAASi3J,KAEL33J,EAAGmhL,kBA7TCnhL,EAAAkhL,UAAA3mB,MA8TCv6J,EA7TGkhL,UAAQ3mB,QA8TZv6J,EAAGkhL,UA7TQzmB,cAAA,MAgUnB,QAASinB,GAAkB5uK,GACvB9S,EAAG+S,WA7TI,EA8TP/S,EAAGgT,YA7TK,CA8TR,IAAI2uK,GAAavtL,QAAQ8e,KAAKJ,EAC9B9S,GAAGkhL,UAAUrmB,YAAc8mB,EAAW9mB,YACtC76J,EAAGkhL,UAAUM,cAAgBG,EAAWH,cACxCxhL,EAAGkhL,UAAUzmB,cAAgBknB,EAAWlnB,cA5T5Cz6J,EAAAkhL,UAASp3H,cAAS,GAAArwC,MAAA3G,EAAAg3C,eAEE,GAAb63H,EAAApnB,MA8TCv6J,EAAGkhL,UAAU3mB,OAAQ,EA3T7Bv6J,EAASkhL,UAAA3mB,OAAoB,EAEzB5C,IAgUJ,QA7TQiqB,GAAiB9uK,GA8TrB,GAAIH,GAAUtY,EAAQsY,QAAQ,UA5T1B,4CAAatb,WAAA,EAAA+F,KAAA,MA+TjBuV,GA7TIjT,OAAAjB,KAAc,WAEd,GAAAojL,IACAL,cAAS,GACT3mB,YAAW/nJ,EAAA+nJ,YACXx0I,QAAS,SA8TLvS,UAAWJ,EAAYrT,OAI3Bi2J,GA7T2BmrB,oBAAoBI,GAASpjL,KAAA,SAAAC,GACjDA,EAAAhJ,KAAAke,aAAa,GAEb7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,oBACf3B,KAEAna,EAAW2I,YAAY,QAAa,qBAAcrJ,WAAA,EAAA+F,KAAA,QAEvD,SAAUuD,GACT5I,EAAW2I,YAAY,QAAA,kEAAArJ,WAAA,EAAA+F,KAAA,UA+TxB,cA/PP,GAAI4C,GAAKC,IAETD,GAAGqU,kBA5TiBhJ,MAAW,KAAKA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA6TpCrL,EAAGsU,SAAWtU,EA5TEqU,gBAAG,EA8TnBrU,GAAGuU,YA5Ta,EA6ThBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YA5TYE,GAiUnBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGgU,OAASA,EACZhU,EAAG4hL,gBAAkBA,EACrB5hL,EAAGohL,oBAAsBA,EACzBphL,EAAG0hL,kBAAoBA,EACvB1hL,EAAGmhL,mBAAoB,EAIvBnhL,EAAG23J,eAAiBA,EAKpB33J,EAAGkhL,aAEHlhL,EAAGsS,WAAY,EAEftS,EAAGo0H,OA5TMA,CA+TT,IACI1gH,IADYvZ,EAAsBgG,uBAAuBwU,gBAAgBxC,UAC3DhY,EAAsBgG,uBAMxC+R,KAeAzH,EAAOuQ,MAAQ,WACXvQ,EAAOwQ,OAAOpM,QAAS,GAG3BpE,EAAOwQ,QACHpM,QAAQ,uJAnEhBza,QACKC,OAAO,mCACPe,WA5TW,0BAAgB2rL,MAskBpC,WAGI,YAOA,SAASe,GAA2Br3K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ6hK,EAA8Bt8F,EAAaplE,GAsB/H,QA7TO+X,KAEH,GAAG8T,IA8TC7T,UAAWA,EA5TfkU,QAAS,WACLg2I,UAAO,EAgUXR,GAA6BS,oBAAoBt2I,GAAWvnB,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAGy8J,aAAe/9J,EAAIhJ,KACtBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GA5TZ5I,EAAA2I,YAAA,QAAA,mBAAA,mBAgUD,IAAIu2J,IA7TZ9kJ,UAAAA,EACYkU,QAAA,UACPg2I,UAAW,EAGhBR,GAAiCS,oBAAerF,GAAqBx4J,KAAA,SAAQC,GAChE,MAAAA,EAAAlI,SA+TGwJ,EAAGw8J,YAAc99J,EAAIhJ,KA7T9BsK,EAAAsS,WAAqB,IAEpB,SAAQ3R,GACT5I,EAAc2I,YAAA,QAAA,mBAAA,oBAoUjB,QAASsT,KA7TNhU,EAAAg8J,YACAh8J,EAAAgT,YAAY,EAEZhT,EAAA+xJ,gBAAkB,EAkUrB,QAASrgJ,KACL1R,EAAGgT,YAAa,EAChBhT,EAAG+hL,WAKP,QAASC,GAAYlvK,GA7TlB9S,EAAA+S,WAAY,EAEZ/S,EAAAgT,YAAY,EA+TXhT,EAAGg8J,SAAW5nK,QAAQ8e,KAAKJ,EA7T5B,KAAA,GAAS+E,KAAA7X,GAAAw8J,YA+TAx8J,EAAGw8J,YAAY3kJ,GAAGwkJ,YAAcvpJ,EAAIupJ,YACpCr8J,EAAGg8J,SAASkW,gBAAkBlyK,EAAGw8J,YAAY3kJ,IAKzD,QAASoqK,GAAenvK,GAEpB,GAAIH,GAAUtY,EAAQsY,QAAQ,UA7TlC,4CAAAtb,WAAA,EAAA+F,KAAA,MAEIuV,GAAAjT,OAAAjB,KAAA,WAgUI,GA9TIs3J,IACAjiJ,UAAG,EA+TH3B,UA9TG,EACHksJ,WAAWvrJ,EAAAurJ,WA+TX6jB,aAAc,GA7TnB7lB,UAAe,EACdh2I,QAAW,SAkUXw1I,GAA6BsmB,yBAAyBpsB,GAAWt3J,KAAK,SAAUC,GA7T7D,MAAZA,EAAAlI,QACJuB,EAAgB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,QA+TX3B,KA5TA7X,EAAAwH,MAAA,QAAA,qBAAAxK,WAAA,EAAA+F,KAAA,QAgUL,SAAUuD,GA7TZtG,EAASwH,MAAA,QAAA,kEAAAxK,WAAA,EAAA+F,KAAA,UAEX,cAgNP,GAAI4C,GA7TIC,IA+TRD,GAAGqU,kBA7TahJ,MAAW,KAAYA,MAAW,KAAIA,MAAK,KAASA,MAAA,MA8TpErL,EAAGsU,SAAWtU,EA7TEqU,gBAAgB,EA+ThCrU,GAAGuU,YA7Ta,EA8ThBvU,EAAGwU,qBA7Ta,SAAkBC,GA8T9BzU,EAAGuU,YA7TYE,GA+TnBzU,EAAGgU,OAASA,EACZhU,EAAG0R,OA7TQA,EA8TX1R,EAAGgT,YA7TS,EA8TZhT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG+S,WAAY,EACf/S,EAAGgiL,YAAcA,EACjBhiL,EAAGiiL,eAAiBA,EAEpBjiL,EAAGg8J,WA5TH,IAAA7pJ,GAAShY,EAAuBgG,uBAAAwU,gBAAAxC,SA+ThCD,KA+FAlS,EAAGoiL,YA9Tc,SAAAL,GAgUb,GAAIruK,GAAcvZ,EAAsBgG,sBACxC4hL,GAAQjuK,UAAYJ,EAAYrT,OA7TpC0hL,EAAS5vK,UAASA,EACd4vK,EAAG17J,QAAa,OAChB07J,EAAG1lB,UAAYr8J,EAAAg8J,SAAAkW,gBAAA7V,UAEZr8J,EAAA+S,UAGAgvK,EAAA1jB,WAAkBr+J,EAAAg8J,SAAAqC,WAFlB0jB,EAAA1jB,WAAoB,EAmUvBxC,EAA6BsmB,yBAAyBJ,GAAStjL,KAAK,SAAUC,GACtEA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBA7TxDnC,IACGQ,IACHlS,EAAAgT,YAAQ,IAERjb,EAAA2I,YAAkB,QAAAhC,EAAAhJ,KAAAme,QAAA,kBA+Td7T,EAAGgT,YAAa,IAErB,SAAUrS,GA7TT5I,EAAI2I,YAAW,6KA4K3BtM,QACKC,OAAO,sCACPe,WA7TW,6BAAS0sL,MAkd7B,WAEI,YAMA,SAASO,GA9TU53K,EAAA1Q,EAAahC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA2gC,EAAAxtJ,EAAA3X,GAqU5B,QAASmoL,KA5TLtoL,EAAI8F,GAAA,0BAgUR,QAASyiL,KAELvoL,EAAO8F,GA9TC,4BAgUZ,QAAS0iL,KAELxoL,EAAO8F,GA9TC,wBA8SZ,GAAIE,GAAKC,IACjBD,GAAIsiL,iBA9TiBA,EA+TrBtiL,EAAGuiL,iBA9TiBA,EA+TpBviL,EAAGwiL,cAAcA,gKARbpuL,QACKC,OA9TO,wBA+TPe,WA9TW,eAAUitL,MAsV9B,WAGI,YAKA,SAASI,GAAyBh4K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASJ,EAASD,EAAQ2kI,EAAcm9B,EAAiCpI,EAA+Bn0F,EAAaplE,GAkBtL,QAAS+X,KACLlS,EAAGg8J,SAASC,aAAe,GAAIxiJ,MAC/ByiJ,EAAY,GAAIziJ,OAkBpB,QAASg5I,KAELz4J,EAAO8F,GAAG,YAId,QAASo8J,GAAYD,GAIjB,GAFAj8J,EAAG0iL,oBAEiB/sL,QAAhBsmK,GAA6C,MAAhBA,EAAsB,CAGnD,GAAIj2I,IACA7T,UAAWA,EACXqlB,WAAY,KACZy0F,UAAWhyH,EAAQ,QAAQgiK,GAG/BH,GAAgC6mB,qBAAqB38J,GAAWvnB,KAAK,SAAUC,GACxD,MAAfA,EAAIlI,SACJwJ,EAAG0iL,iBAAmBhkL,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBA+BhE,QA9TQ0Y,GAAA1jB,GA+TJ,GAAI2jB,GAAO3jB,EAAK2jB,KA7ThB9iB,EAAQb,EAAOa,IAgUf,OA9TQ,QAAJA,GAAsB,IAAA8iB,EAAAC,SAgD9B,QAAGC,GAAa7jB,GACb,GAAA2jB,GAAA3jB,EAAiB2jB,KACjB9iB,EAAYb,EAAAa,IACZ,IAAc,QAAdA,EAGA,IAAA,GAFAijB,GAAiB,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAENxe,EAAA,EAAAA,EAAAuP,EAAAkP,OAAAxe,OAAAD,IAAA,CACV,GAAY0e,GAAA,GAAAH,MAAsBhP,EAAAkP,OAAAze,GAAAme,MAAuBK,SAAA,EAAA,EAAA,EAAgB,EAE7E,IAAAF,IAAAI,EACgB,MAAAnP,GAAAkP,OAAAze,GAAA1E,OAoUZ,MA/TI,GA8JR,GAAIwJ,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGyyJ,SAAWA,EACdzyJ,EAAGk8J,YAAcA,EACjBl8J,EAAGg8J,WACH,IAAI7pJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAG7ED,KAqDAzH,EA9TO4P,MAAA,WACH5P,EAAK6P,GAAG,GAAAb,OAgUZhP,EAAO4P,QA5TP5P,EAAAiN,MAAS,WACLjN,EAAG6P,GAAA,MAiUP7P,EA9TO8P,eACHC,YAAajB,EACbkB,QAAG,GAAUhB,MACbiB,WAAG,GAiUPjQ,EAAOkQ,aACHC,aAAcxB,EACd+C,WA9TO,KA+TPtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IA7T3BgB,QAAA,GAAAhB,MA+TAqB,YAAa,GAWjBrQ,EAAOsQ,UA9TK,WA+TRtQ,EAAO8P,cA9TYE,QAAYhQ,EAAA8P,cAAAE,QAAA,KAAA,GAAAhB,MA+T/BhP,EAAOkQ,YAAYF,QAAUhQ,EAAO8P,cAAcE,SAGtDhQ,EAAOsQ,YAEPtQ,EAAOuQ,MAAQ,WACXvQ,EAAOwQ,OA9TKpM,QAAW,GAiU3BpE,EAAOyQ,MAAQ,WACXzQ,EAAO0Q,OAAOtM,QAAS,GAG3BpE,EAAO+Q,QAAU,SAAUC,EAAMC,EAAOC,GACpClR,EA9TG6P,GAAA,GAAYb,MAAAgC,EAAAC,EAAAC,IAiUnBlR,EAAOmR,SAAW,eAAgB,aAAc,aAAc,aAC9DnR,EAAOoR,OAASpR,EAAOmR,QAAQ,GAC/BnR,EAAOqR,iBAAmB,cA5TjCrR,EAAYwQ,QA+TDpM,QAAQ,GAGZpE,EAAO0Q,QACHtM,QAAQ,EAGZ,IA/TCkN,GAAW,GAAAtC,KAgUZsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAAgB,GAAIxC,KA9T5BwC,GAAST,QAAAO,EAAAC,UAAmC,GACxCvR,EAAIkP,SAEDN,KAAA0C,EACAvlB,OAAW,SAGX6iB,KAAA4C,EACIzlB,OAAA,qNA6KXpC,QACKC,OAAO,oCACPe,WAAW,2BAA4BqtL,MAyKhD,WAEI,YAMA,SAASG,GA/TYn4K,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA7sH,EAAAskJ,EAAA8P,EAAA/rK,GA8UjB,QAAS+X,KA5TL,GAAGo1J,IAgUCn1J,UAAWA,EA9TZo1J,UAAA,OAgUC3xK,OAAQ,IA5ThBswK,GAAkBsB,qCAAAF,GAAA7oK,KAAA,SAAAgpK,GACE,MAAbA,EAAajxK,QACbwJ,EAAA0nK,aAAUD,EAAA/xK,KAgULsK,EAAGsS,WAAY,GAGfva,EAAW2I,YAAY,QAAS,yBAA0B,mBA7T/D,SAAAC,GAgUC5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QA/TQ2oK,GAAOrV,GAiUP,GAAIhuI,IACA7T,UAAWA,EACX2xC,WAAY,EACZhuD,UAAWk+J,EAEhBoC,GAA2BuJ,gBAAgB35I,GAAWvnB,KAAK,SAAUC,GA9TlD,MAAlBA,EAAUlI,SACVwJ,EAAAgmD,aAAAtnD,EAAAhJ,KAgUQsK,EAAGsS,WAAY,IAEpB,SAAU3R,GA9TT5I,EAAA2I,YAAY,QAAA,mBAAA,oBA8QxB,GAAIV,GA/TIC,IAiURD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SA/TCtU,EAAAqU,gBAA6B,EAiUjCrU,GAAGuU,YA/TY,EAgUfvU,EAAGwU,qBA/TY,SAAYC,GAgUvBzU,EAAGuU,YAAcE,EAGrB,IACItC,IADahY,EAAsBgG,uBACvBhG,EAAsBgG,uBAAuBwU,gBAAgBxC,UAC7EnS,GAAGqpK,iBAAmBA,EACtBn3J,8LAlBJ9d,QACKC,OAAO,gCACPe,WA/TO,uBAAawtL,MA4X7B,WAGI,YAOA,SAASC,GAA0Bp4K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ6hK,EAA8Bt8F,EAAaplE,GAsB9H,QAAS+X,KAEL,GAAI8T,IAEA7T,UA/TOA,EAiUPkU,QA/TO,UAgUPg2I,UAAW,EAIfR,GAA6BS,oBAAoBt2I,GAAWvnB,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,SACJwJ,EAAGw8J,YAAc99J,EAAIhJ,KA9T5BsK,EAAAsS,WAAA,IAET,SAAA3R,GAgUY5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAG5D,QAhUQsT,KACPhU,EAAAgT,YAAW,EAiURhT,EAAG+S,WAAY,EA/TvB/S,EAAS+xJ,gBAAa,EAIvB,QAAcrgJ,KAiUL1R,EAAGgT,YAAa,EAChBhT,EAAG+hL,WAGP,QAhUIC,GAAUlvK,GAiUV9S,EAAG+S,WAAY,EAEf/S,EAAGgT,YAAa,EA/ThBhT,EAAA+hL,QAAU3tL,QAAA8e,KAAAJ,GAmUd,QAASgwK,GAAchwK,GAEnB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC9B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WAEhB,GAAIs3J,IACAsG,UAAUvpJ,EAAIupJ,UA/T1BlqJ,UAAA,EAiUY4wK,gBAAkB,GAClBjvK,UAAY,EAhUxBuS,QAAA,SAGAw1I,GAAkCmnB,wBAA2BjtB,GAAQt3J,KAAA,SAAkBC,GAC1E,MAAAA,EAAAlI,QAkUGuB,EAAW2I,YAAY,UAAWhC,EAAIlI,OAAOqd,QAAS,QAhU/D3B,KAES7X,EAAAwH,MAAA,QAAA,qBAAAxK,WAAA,EAAA+F,KAAA,QAET,SAAAuD,GACItG,EAAAwH,MAAc,QAAA,kEAAAxK,WAAA,EAAA+F,KAAA,UAmUlB,cArFH,GAAI4C,GA/TGC,IAiUPD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EA7TjCrU,GAAGuU,YAAc,EAgUjBvU,EAAGwU,qBAAuB,SAAUC,GA9ThCzU,EAAAuU,YAAIE,GAiURzU,EAAGgU,OA/TSA,EAgUZhU,EAAG0R,OA/TSA,EAgUZ1R,EAAGgT,YA/TS,EAgUZhT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG+S,WA/TS,EAgUZ/S,EAAGgiL,YA/TaA,EAgUhBhiL,EAAG8iL,cAAcA,EAEjB9iL,EAAG+hL,UACH,IAAI5vK,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAE7ED,KA0EAlS,EAAGoiL,YAjUa,SAAAL,GAmUZ,GAAIruK,GAAcvZ,EAAsBgG,sBACxC4hL,GAAQjuK,UAAYJ,EAAYrT,OAChC0hL,EAAQ5vK,UAAYA,EACpB4vK,EAAQ17J,QAAU,OAEbrmB,EAAG+S,UAGJgvK,EAAQ1lB,UAAYr8J,EAAG+hL,QAAQ1lB,UAF/B0lB,EAAQ1lB,UAAY,EAKxBR,EAA6BmnB,wBAAwBjB,GAAStjL,KAAK,SAAUC,GACrEA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBACpDnC,IACAQ,IACAlS,EAAGgT,YAAa,IAEhBjb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAhUnD7T,EAAGgT,YAAA,IAmUP,SAAUrS,GACT5I,EAAW2I,YAAY,6KA5HnCtM,QACKC,OAAO,qCACPe,WAAW,4BAA6BytL,MAmIjD,WAGI,YAMA,SAASI,GAAyBx4K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQS,EAASkkI,EAAc2gC,EAAiCxtJ,EAC1IskJ,EAjU0BiJ,EAAAllK,EAAA8rK,GAkY1B,QAAS/zJ,KA/TLlS,EAAA4/I,UAkUA5/I,EAAGg9K,UAAY,KACfh9K,EAAG4/I,OAAOlwG,SAAW,GAAIj2B,MAhUzBzZ,EAAA4/I,OAAAjwG,OAAe,GAAAl2B,MAEfzZ,EAAAw7K,cACJ71H,KAAc,aAEVA,KAAA,iBAoUA0jH,EAAiB,gBAWrB,QAjUQj1C,KAkUJp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAjUU,EAmUb/S,EAAG4/I,UACH5/I,EAAG4/I,OAjUKlwG,SAAI,GAAAj2B,MAkUZzZ,EAAG4/I,OAAOjwG,OAjUS,GAAAl2B,MAoUvB,QAASg5I,KA/TLz4J,EAAO8F,GAAA,yBAqUX,QAASi4K,KA/ThB/3K,EAAY5J,eAAA,EAkUD4J,EAAGkjL,WAAY,EAhUvBljL,EAAAmjL,WAAA,EAkUQnjL,EAAGojL,YAAa,EAChBpjL,EAAGqjL,aAAc,CAhUpB,IAAOr9J,IACP7T,UAAWA,EAmUJ6qK,UAAWh9K,EAAGsjL,eAjUjB/+H,WAAAvkD,EAAAm0J,QAAqB1xG,mBAAekD,KAGtCsgH,GAAqBsd,sBAA0Bv9J,GAAQvnB,KAAS,SAAQC,GACxE,GAAc,MAAdA,EAAWlI,OAAG,CACL,GAAAkI,EAAAhJ,KAAAqpL,SAAA5jL,OAAA,GAsUI,GArUb6E,EAAcm7C,WAAAz8C,EAAAhJ,KACdsK,EAAAg/K,eAoUuD,YAAtCh/K,EAAGm0J,QAAQ1xG,mBAAmBkD,KAAoB,CAClD3lD,EAAGi/K,gBAAiB,EAjUvBj/K,EAAAk/K,oBAAsB,CAEpC,IAAmBsE,MAsUEA,EAAkBhpL,EAAO++C,OAAO/+C,EAAO8xB,IAAItsB,EAAGm7C,WAAW4jI,SAAU,gBAhUxEtG,KACAgL,KACHC,IAoUI,KAAK,GAAIxoL,KAAKsoL,GAAiB,CAhU3BC,IAET,IAAYE,GAAAnpL,EAAA++C,OAAA/+C,EAAA8xB,IAAA9xB,EAAAyC,OAAA+C,EAAAm7C,WAAA4jI,UAAAz8J,YAAAkhK,EAAAtoL,KAAA,gBAEd,KAAA,GAAAiP,KAAAw5K,GAAA,CACU,GAAAC,GAAqBppL,EAAA++C,OAAA/+C,EAAA8xB,IAA0B9xB,EAAAyC,OAAA+C,EAAAm7C,WAAA4jI,UAAAz8J,YAAAkhK,EAAAtoL,GAAAu5K,aAAAkP,EAAAx5K,KAAA,eAEhDu5K,KACH,KAAY,GAAA1tJ,KAAS4tJ,GAAA,CAmUR,GAAIC,GAAYrpL,EAAOyC,OAAO+C,EAAGm7C,WAAWgkI,WAAa78J,YAAekhK,EAAgBtoL,GAAIu5K,aAAgBkP,EAAYx5K,GAAIwuJ,YAAeirB,EAAY5tJ,KAEnJ8tJ,GAjUVnrB,YAAYirB,EAAA5tJ,GAmUF2lH,QAASkoC,EAhUtBH,GAAA7rL,KAAAisL,GAqUK,GAAIC,IAjUzBtP,aAA2BkP,EAAgBx5K,GACnB65K,OAAKN,EAEjBD,GAAY5rL,KAAAksL,GAGR,GAAAE,IAmUK3hK,YAAakhK,EAAgBtoL,GAC7BgpL,OAAQT,EAGZhL,GAAO5gL,KAAKosL,GAGhBjkL,EAAGg/K,YAAcvG,MAEhB,IAA0C,gBAAtCz4K,EAAGm0J,QAAQ1xG,mBAAmBkD,KAAwB,CAC3D3lD,EAAGi/K,gBAAiB,EAjU5Cj/K,EAAAk/K,oBAAA,CAoUwB,IAAIsE,MAIAA,EAAkBhpL,EAAO++C,OAAO/+C,EAAO8xB,IAAItsB,EAAGm7C,WAAW4jI,SAAU,gBAjUtFtG,IAqUe,KAAK,GAAIv9K,KAAKsoL,GAAiB,CAlU3B,GAAAG,GAAiBnpL,EAAAyC,OAAe+C,EAAEm7C,WAAS4jI,UAAQz8J,YAASkhK,EAAAtoL,KAExE+oL,GACK3hK,YAAAkhK,EAAAtoL,GACSygJ,QAAUgoC,EAGxB3jL,GAAAg/K,YAAAnnL,KAAAosL,SAKTlsL,GAAc2I,YAAA,QAAA,gBAAA,iBAqULV,GAAGsS,WAAY,IAjUvB,SAAY3R,GAoUR5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAI5D,QAnUQyjL,GAAYC,GAqUhB,GAnUIP,GAAWrpL,EAAAyC,OAAA+C,EAAAm7C,WAAAgkI,WAAA1S,UAAA2X,GAqUfpkL,GAAGm0J,QAnUCyY,UAASiX,EAAA,GAAAjX,UAqUkB,MAA3BiX,EAAU,GAAGQ,aACbrkL,EAAGm0J,QAAQkwB,WAAatsL,EAAW8D,SAAW,oBAAsBgoL,EAAU,GAAGQ,YAGrFrkL,EAAGm0J,QAnUK7xI,YAAeuhK,EAAK,GAAAvhK,YAoU5BtiB,EAAGm0J,QAnUQsgB,aAAcoP,EAAI,GAAApP,aAoU7Bz0K,EAAGm0J,QAnUQuY,IAAAmX,EAAY,GAAAnX,IAoUvB1sK,EAAGm0J,QAAQmwB,WAAaT,EAAU,GAAGS,WACrCtkL,EAnUGm0J,QAAAh8I,SAAe0rK,EAAA,GAAA1rK,SAoUlBnY,EAAGm0J,QAnUC2E,iBAAuB+qB,EAAS,GAAA/qB,iBAoUpC94J,EAAGm0J,QAAQowB,cAAgBV,EAAU,GAAGU,cACxCvkL,EAAGm0J,QAAQqwB,cAAgBX,EAAU,GAAGW,cAlU5CxkL,EAAAm0J,QAASswB,UAASZ,EAAA,GAAAY,UACdzkL,EAAGm0J,QAAAuwB,UAAab,EAAA,GAAAa,UAChB1kL,EAAGm0J,QAAAwwB,WAAYd,EAAA,GAAAc,WACf3kL,EAAGm0J,QAAAywB,aAAiBf,EAAA,GAAAe,aAoUpB5kL,EAAGm0J,QAAQ0wB,aAAehB,EAAU,GAAGgB,aACvC7kL,EAAGm0J,QAAQ2wB,cAAgBjB,EAAU,GAAGiB,cACxC9kL,EAAGm0J,QAAQ4wB,YAAclB,EAAU,GAAGkB,YAlU1C/kL,EAAAm0J,QAAS6wB,aAASnB,EAAA,GAAAmB,aACdhlL,EAAGm0J,QAAApgH,OAAa8vI,EAAA,GAAA9vI,OAChB/zC,EAAGm0J,QAAAziH,IAAUmyI,EAAA,GAAAnyI,IAoUb1xC,EAAGm0J,QAAQoU,IAAMsb,EAAU,GAAGtb,IAC9BvoK,EAAGm0J,QAAQngH,cAAgB6vI,EAAU,GAAG7vI,cAlU5Ch0C,EAAAm0J,QAAS0Y,WAAiBgX,EAAA,GAAAhX,WACtB7sK,EAAGm0J,QAAA8wB,eAAYpB,EAAA,GAAAoB,eAoUfjlL,EAAGm0J,QAAQ+wB,aAAerB,EAAU,GAAGqB,aAlUvCllL,EAAGm0J,QAAAgxB,cAAatB,EAAA,GAAAsB,cAChBnlL,EAAGm0J,QAAAixB,UAAkBvB,EAAK,GAAAuB,UAoU1BplL,EAAGm0J,QAAQkxB,qBAAuBxB,EAAU,GAAGwB,qBAC/CrlL,EAAGm0J,QAAQmxB,kBAAoBzB,EAAU,GAAGyB,kBAlUhDtlL,EAAAm0J,QAASoxB,mBAAmB1B,EAAA,GAAA0B,mBAoUxBvlL,EAAGm0J,QAAQmZ,aAAeuW,EAAU,GAAGvW,aA/T3CttK,EAAAm0J,QAAeqxB,uBAAiB3B,EAAA,GAAA2B,uBAoU5BxlL,EAAGm0J,QAAQsxB,sBAAwB5B,EAAU,GAAG4B,sBAlUhDzlL,EAAAm0J,QAAIuxB,mBAAW7B,EAAA,GAAA6B,mBAoUf1lL,EAAGm0J,QAnUCwxB,sBAAc9B,EAAA,GAAA8B,sBAoUlB3lL,EAAGm0J,QAnUCyxB,uBAAY/B,EAAA,GAAA+B,uBAoUhB5lL,EAAGm0J,QAnUC0xB,8BAAkBhC,EAAA,GAAAgC,8BAoUtB7lL,EAAGm0J,QAnUC2xB,8BAAYjC,EAAA,GAAAiC,8BAoUhB9lL,EAAGm0J,QAnUC4xB,kBAAUlC,EAAA,GAAAkC,kBAoUd/lL,EAAGm0J,QAAQ6xB,gBAAkBnC,EAAU,GAAGmC,gBAC1ChmL,EAAGm0J,QAAQ8xB,eAAiBpC,EAAU,GAAGoC,eAlUzCjmL,EAAAm0J,QAAA+xB,eAAArC,EAA6B,GAAAqC,eAoU7BlmL,EAAGm0J,QAnUKgyB,kBAAoBtC,EAAA,GAAAsC,kBAuU5BnmL,EAAGm0J,QAnUKiyB,8BAAuBvC,EAAqB,GAAEuC,8BAoUtDpmL,EAAGm0J,QAAQkyB,kCAAoCxC,EAAU,GAAGwC,kCAC5DrmL,EAnUGm0J,QAAAmwB,WAAeT,EAAA,GAAAS,WAoUlBtkL,EAAGm0J,QAnUCmyB,0BAAuBzC,EAAA,GAAAyC,0BAwU3BtmL,EAAG5J,eAAgB,EACnB4J,EAAGkjL,WAAY,EACfljL,EAAGmjL,WAAY,EACfnjL,EAAGojL,YAAa,EAChBpjL,EAAGi/K,gBAAiB,EACpBj/K,EAAGqjL,aAAc,EAIrB,QAnUIkD,KACAvmL,EAAAmjL,WAAQ,EACRnjL,EAAAi/K,gBAAkB,EAoUlBj/K,EAAGqjL,aAAc,EAIrB,QAnUQmD,KAoUJxmL,EAAG5J,eAAgB,EACnB4J,EAAGqjL,aAAc,EAlUjBrjL,EAAAi/K,gBAAA,EAuUJ,QAASwH,KACLzmL,EAAG5J,eAnUQ,EAoUX4J,EAAGqjL,aAnUQ,EAoUXrjL,EAAGk/K,oBAnUgB,EAuUvB,QAnUQwH,KAqUJ1mL,EAAG5J,eAAgB,EACnB4J,EAAGkjL,WAAY,EACfljL,EAAGmjL,WAAY,EACfnjL,EAAGojL,YAAa,EAGpB,QAAS3D,KAEL,GAAIz5J,IACA7T,UAAWA,EAlUvB6qK,UAAA,GAoUYz4H,WAAYvkD,EAAGm0J,QAAQ1xG,mBAAmBkD,KAC1C1Z,YAAaA,EAnUzBnY,SAAApgB,EAAAyrC,UACYu+H,aAAA,GAGZzX,GAAkC0gB,uBAAe3gK,GAAoBvnB,KAAA,SAASC,GAC1E,GAAA,MAAAA,EAAAlI,OAA4B,CAEnBwJ,EAAA8Z,cAAApb,EAAAhJ,IAsUG,IAAIugB,GAAInf,SAASijB,cAAc,IAnUxCjjB,UAAkBC,KAAGijB,YAAS/D,GAC9BA,EAAWgE,MAAG,eACL,IAAArc,GAAA,GAAAC,OAAAa,EAAAhJ,OACTqI,KAAc,oBAEVtJ,EAAcC,OAAAwlB,IAAAC,gBAAAvc,EAEjBnD,GAAc4E,KAAA5K,EAAA,UACdsD,EAAY2I,YAAA,UAAsB,+BAAuC,sBACzEV,EAAAsS,WAAc,IAuUX,SAAU3R,GAnUd5I,EAAc2I,YAAA,QAAA,mBAAA,2BAKjB,QAAG2oK,GAAoB6F,GAsUnB,GAAIlpJ,KAEJ,IAAkB,gBAAdkpJ,EAnULlpJ,GACS7T,UAAAA,EACTo1J,UAAa,UACbyV,UAAe,IAGfh9K,EAAA2hB,eACA3hB,EAAAgmD,gBAqUKhmD,EAAG4mL,aAnUR5mL,EAAAs8K,qBACAt8K,EAAAu8K,mBACAv8K,EAAA6mL,qBAEA7mL,EAAAsjL,eAAU,GAEVtjL,EAAA8mL,WAAY,EACZ9mL,EAAA+mL,aAAqB,MAErB,IAAY,kBAAZ7X,EAAY,CACZlvK,EAAA8mL,WAAc,EACd9mL,EAAA+mL,aAAc,CACd,IAAAC,GAAA,EACA,MAAyBrxL,QAAzBqK,EAAA4/I,OAAA/9H,iBAAyB7hB,EAAA4/I,OAAA/9H,gBAAA1mB,OAAA,GA4BxB,MA3BD,IAAY8rL,GAAA,CACZ,IAAiBtxL,QAAjBqK,EAAA4/I,OAAiB/9H,gBAqUJ,IAAK,GAAI3mB,KAAK8E,GAAG4/I,OAAO/9H,gBAnUxBmlK,EAAAA,EAAAhnL,EAAA4/I,OAAA/9H,gBAAA3mB,GAAA6d,GAAA,IACFkuK,GAAA,CAGC,IAAAA,GAEDD,EAAA7rL,OAAA,EAqUM6E,EAAGsjL,eAAiB,oBAAsB0D,EAAI1jK,UAAU,EAAG0jK,EAAI7rL,OAAS,GAAK,IAE7E6E,EAAGsjL,eAAiBtjL,EAAGsjL,eAlU3Bt9J,GAqUI7T,UAAWA,EAnUfo1J,UAAA,WACGyV,UAAAh9K,EAAAsjL,gBAuUHtjL,EAAG8mL,WAAY,GAjUxBzd,EAAA,0BA2UE,IAAkB,cAAd6F,EAA4B,CAlUlC,GADPlvK,EAAS4mL,eACWjxL,QAAbqK,EAAA4/I,OAAa77F,kBAAA/jD,EAAA4/I,OAAA77F,iBAAA5oD,OAAA,GAoVR,MAlVL,IAAS8rL,GAAA,CAqUJ,KAAK,GAAI/rL,KAAK8E,GAAG4/I,OAAO77F,iBACpBijI,EAAMA,EAAMhnL,EAAG4/I,OAAO77F,iBAAiB7oD,GAAG6d,GAAK,IAC/CkuK,GAAY,CAjUT,IAAZA,GAqUSlzB,IAnUA/zJ,EAAA+mL,aAAA,GAuUA/mL,EAAG+mL,aAAc,MAMxB,IAAkB,sBAAd7X,EAAoC,CAlUjDlvK,EAASs8K,qBAqUDt8K,EAAGu8K,mBAnUJv8K,EAAA6mL,oBAEA,IAAAG,GAAA,EAEA,IAAcrxL,QAAdqK,EAAA4/I,OAAc/9H,iBAAA7hB,EAAA4/I,OAAA/9H,gBAAA1mB,OAAA,EAqUT,IAAK,GAAID,KAAK8E,GAAG4/I,OAAO/9H,gBAnU5BmlK,EAAYA,EAAAhnL,EAAA4/I,OAAA/9H,gBAAA3mB,GAAA6d,GAAA,GAwURiuK,GAAI7rL,OAAS,EACb6E,EAAGsjL,eAAiB,oBAAsB0D,EAAI1jK,UAAU,EAAG0jK,EAAI7rL,OAAS,GAAK,IAlU7E6E,EAAAsjL,eAAoBtjL,EAAAsjL,eA2UxBt9J,GACI7T,UAAWA,EACXo1J,UApUQ,gBAqURyV,UAAWh9K,EAAGsjL,oBAIjB,IAAkB,oBAAdpU,EAAkC,CAEvClvK,EAAG4V,YACH5V,EAAG6mL,oBAEH,IAAIG,GAAM,EACV,IAAuCrxL,QAAnCqK,EAAG4/I,OAAOg9B,sBACV,IAAK,GAAI1hL,KApUG8E,GAAA4/I,OAAAg9B,sBAqURoK,EAAMA,EAAMhnL,EAAG4/I,OAAOg9B,sBAAsB1hL,GAAG6d,GAAK,GAGxDiuK,GAAI7rL,OApUQ,EAqUZ6E,EAAGsjL,eApUiBtjL,EAAAsjL,eAAc,8BAAgC0D,EAAU1jK,UAAA,EAAW0jK,EAAA7rL,OAAY,GAAA,IAsUnG6E,EAAGsjL,eApUatjL,EAAAsjL,eAsUpBt9J,GACI7T,UAAWA,EACXo1J,UAAW,cACXyV,UAAWh9K,EAAGsjL,oBAGjB,IAAkB,uBAAdpU,EApUmC,CAsUxClvK,EAAG6mL,oBAEH,IAAIG,GAAM,EACV,IApUwBrxL,QAoUpBqK,EAAG4/I,OAAOrgI,aACV,IAAK,GAAIrkB,KAAK8E,GAAG4/I,OAAOrgI,aACpBynK,EAAMA,EApUMhnL,EAAA4/I,OAAArgI,aAAgBrkB,GAAAs7J,MAAA,GAuUhCwwB,GAAI7rL,OApUQ,EAqUZ6E,EAAGsjL,eApUatjL,EAAAsjL,eAAa,2BAAgB0D,EAAA1jK,UAAA,EAAA0jK,EAAA7rL,OAAA,GAAA,IAsU7C6E,EAAGsjL,eAAiBtjL,EAAGsjL,eAE3Bt9J,GACI7T,UAAWA,EACXo1J,UAAW,iBACXyV,UApUWh9K,EAAAsjL,gBAwUnBrd,EApUmBihB,4BAAqBlhK,GAAAvnB,KAAA,SAAAC,GAqUjB,MAAfA,EAAIlI,SAEc,gBAAd04K,EACAlvK,EAAG2hB,YAAcjjB,EAAIhJ,KAlUb,kBAAJw5K,EAqUJlvK,EAAGgmD,aAAetnD,EAAIhJ,KAEH,sBAAdw5K,EACLlvK,EAAGs8K,kBApUe59K,EAAAhJ,KAsUC,oBAAdw5K,EACLlvK,EAAGu8K,gBApUgB79K,EAAAhJ,KAEP,uBAoUPw5K,IACLlvK,EAAG6mL,kBAAoBnoL,EAAIhJ,MAG/BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EApUS2I,YAAA,QAAA,mBAAA,wBAwUjB,QAASqzJ,GAAUwT,EAAWmC,GAE1B,GApUI1V,GAAWh0J,EAAA4/I,OAAY/9H,gBAAS,GAAA9I,GAqUhC2wJ,EAAc1pK,EAAG4/I,OAAO77F,iBAAiB,GAAGhrC,GAE5CioJ,GAnUR7uJ,UAASA,EAqUD2xC,WAAY4lH,EAnUZ5zK,UAAAk+J,EAqUA3+C,aAAc,EAjUlB+gD,GAAiB2B,mBAAoBiJ,GAAAviK,KAAA,SAAAC,GACjC,GAAW,MAARA,EAAAlI,OAAqB,CAqUpBwJ,EAAG4mL,UAAYloL,EAAIhJ,IAlUxB,IAAQi0K,IACAx3J,UAAAA,EACArc,UAAMk+J,EACNlwG,WAAa4lH,EACbnC,UAAW,OACX5hH,KAAA,IAGR05G,GAA8BuK,6BAAGD,GAAAlrK,KAAA,SAAAiB,GACzB,GAAsB,MAAtBA,EAAYlJ,OAAa,CACzBwJ,EAAA6pK,gBAA0BnqK,EAAAhK,IAC1B,IAAAo0K,GAAetvK,EAAayC,OAAA+C,EAAA6pK,iBAAAx0D,aAAA,GAE5B,KAAA,GAAAn6G,KAAgB8E,GAAA4mL,UACF,GAAd1rL,EACA8E,EAAe4mL,UAAU1rL,GAAGg9J,YAAA4R,EAEtB9pK,EAAU4mL,UAAG1rL,GAAAg9J,cAEnBl4J,GAAAupK,iBAA0B,IAE1B,SAAA5oK,GACA5I,EAAA2I,YAAe,QAAa,mBAAA,sBAGpC,SAAQC,GACR5I,EAAQ2I,YAAA,QAAoB,mBAAa,oBAwUhD,QAAS43J,GAAmByR,EAAcnK,EAAOrhK,GAlU7C,GAAW,MAARwrK,EACA,GAAAA,EAAQ5uK,OAAA,EACR,GAAQykK,EAAA5/J,EAAA4mL,UAAqBzrL,OAAA,CACrB,GAAAsmG,KACA,KAAA,GAAAvmG,KAAA6uK,GAAyB,CACzB,GAAAC,GAAAxvK,EAAgCyC,OAAA+C,EAAU6pK,iBAAGx0D,aAAA00D,EAAA7uK,GAAA6rD,QAC7C06C,GAAAA,EAAAr0C,OAAgC48G,GAGhChqK,EAAA4mL,UAAAhnB,GAAiB1H,YAAaz2D,EAC9BzhG,EAAA4mL,UAAAhnB,GAAiBnf,aAAa,KAC9BzgJ,EAAAupK,iBAAoB,MAsUlB,CACD,GAAI8U,GAAO,EAlUZ,KAAA,GAAAnjL,KAAA6uK,GACAsU,EAAAA,EAAatU,EAAa7uK,GAAA6rD,OAAA,GAuUrBs3H,GAAKljL,OAAS,GAAK6E,EAAG4mL,UAAUzrL,QAAUykK,GAE1Cye,EAAOA,EAAK/6J,UAAU,EAAG+6J,EAAKljL,OAAS,GAnUpD6E,EAAgBoiG,QAAAi8E,EACJhV,EAAA,uBAGZrpK,EAAAoiG,QAAiB,OAKf,KAAA,GAAAlnG,KAAiB8E,GAAA4mL,UACP1rL,GAAA0kK,EAAA,EACZ5/J,EAAA4mL,UAAiB1rL,GAAAulJ,aAAA,KAsUEmf,EAAQ,EAAK1kK,IACnB8E,EAAG4mL,UAAU1rL,GAAGulJ,aAAe,KAC/BzgJ,EAAG4mL,UAAU1rL,GAAGg9J,gBAnmBpC,GAAIl4J,GAAKC,IAGTD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EA/TjCrU,GAAAuU,YAAe,EAkUfvU,EAAGwU,qBAjUiB,SAAAC,GAkUhBzU,EAAGuU,YAAcE,EAErB,IAAIf,GAAcvZ,EAAsBgG,uBAhUxCgS,EAAehY,EAAYgG,uBAAAwU,gBAAAxC,UACvB85B,EAAY9xC,EAAAgG,uBAAAwU,gBAAAs3B,WAqUhBjsC,GAAG2hB,eACH3hB,EAAGgmD,gBACHhmD,EAAG4mL,aACH5mL,EAAGs8K,qBACHt8K,EAAGu8K,mBAhUHv8K,EAAA6mL,qBAkUA7mL,EAAGmnL,qBAEHnnL,EAAGw7K,eAEHx7K,EAAGyyJ,SAjUCA,EAkUJzyJ,EAAGo0H,OAASA,EACZp0H,EAAG+3K,WAAaA,EAChB/3K,EAAGy/K,aAAeA,EAhUlBz/K,EAAA0mL,UAASA,EAkUT1mL,EAAG5J,eAjUY,EAkUf4J,EAAGkjL,WAjUY,EAkUfljL,EAAGumL,eAAiBA,EAEpBvmL,EAAGgT,YAAa,EAChBhT,EAAGmjL,WAAY,EAhUfnjL,EAAAojL,YAAO,EAkUPpjL,EAAGmkL,WAjUQA,EAkUXnkL,EAAGm0J,WACHn0J,EAAGqpK,iBAAmBA,EACtBrpK,EAAG+zJ,UAAYA,EAhUf/zJ,EAAAs4J,mBAAOA,EAEPt4J,EAAA8mL,WAAe,EAkUf9mL,EAAG+mL,aAjUQ,EAkUX/mL,EAAGqjL,aAAc,EACjBrjL,EAAGwmL,mBAAqBA,EAhUxBxmL,EAAAymL,uBAA2BA,EAkU3BzmL,EAAGg9K,UAjUQ,KAkUXh9K,EAAGsjL,eAAiB,KA/TpB74K,EAAOwhK,QACHD,SAAO,EAkUPE,SAAU,IACV/yI,SAhUGjyB,MAAA,EACAynK,KAAA,IACApiK,KAAA,MAqUP2F,IA4iBAzH,EAAOuQ,MAAQ,WAnUfvQ,EAASwQ,OAAApM,QAAA,GAuUTpE,EApUOwQ,QAqUHpM,QAAQ,GAjUZpE,EAAAyQ,MAAS,WAqULzQ,EAAO0Q,OAAOtM,QAAS,GAG3BpE,EApUO0Q,QACHtM,QAAG,kQA1TXza,QACKC,OAAO,oCACPe,WAAW,2BAjU0B6tL,MAq8B9C,WACI,YAOA,SAASmE,GAAyB38K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAc2gC,EAAiCxtJ,EAAc3X,GAiC/I,QApUQ+X,KAqUJlS,EAAGjK,OApUI49J,CAqUP,IApUImmB,IACA3nK,UAAGA,EACH2xC,WAAG,EACHhuD,UAAG+/J,EAsUPyJ,GApUwBK,gBAAAma,GAAAr7K,KAAA,SAAAC,GAqUD,MAAfA,EAAIlI,QAnULwJ,EAAAqjH,kBAAY3kH,EAAAhJ,KAsUXsK,EAAGsjH,gBAnUN9oH,EAAIqI,QAAc7C,EAAAqjH,kBAAkB,SAAA/f,GAClCA,EAAAt/C,MAAYrnD,KAAAC,MAAA0mG,EAAAt/C,OACZxpD,EAAAqI,QAAcrI,EAAAmI,KAAA2gG,EAAAt/C,OAAA,SAAAj9B,GACPvsB,EAAA3F,SAAAmL,EAAAsjH,aAAAv8F,IACI/mB,EAAAsjH,aAAAzrH,KAAmBkvB,OAwUzB/mB,EAAGqjH,kBApUgBloH,OAAO,GAqU1Bd,EApUI8C,OAAM,UAAM,0BAAA9F,WAAA,EAAA+F,KAAA,OA0BvB4C,EAAIsS,WAAc,GAKfva,EAAS2I,YAAQ,QAAO,yBAAkB,aAsU/C,SApUSC,GAqUR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAI5D,QAASsT,KACLhU,EAAGgT,YAAa,EAGpB,QAAStB,KACL1R,EAAGgT,YApUM,EAqUThT,EAAGrL,YACHqL,EAAG8uG,SAGP,QAASyU,KAEL,GApUIC,GAAGxjH,EAAA,MAAkB7E,OAAA,CAqUzB6E,GAAG8uG,MApUIj3G,MAqUHgxB,GAAI26F,EAnUJC,SAAUzjH,EAAArL,SAAA0yD,OAsUdrnD,EAAGrL,SApUQ0yD,KAAO,GAuUtB,QAASq8D,GAAW5gH,GAChB9C,EAAG8uG,MAAMx5E,OAAOxyB,EAAM,GAG1B,QAAS+gH,GApUMlvH,GAsUXA,EApUQmB,UAAG+/J,EAsUXlhK,EAASwd,UAAYA,CACrB,IAAIi1C,KACJ,KAAK,GAAIlsD,KAAK8E,GAAG8uG,MACb1nD,EAAS,QAAUxgD,SAAS1L,GAAK,IAAM8E,EAAG8uG,MAAM5zG,GAAGuoH,QAGvD9uH,GApUQqvD,MAAArnD,KAAWqkB,UAAAomC,GAsUdpnD,EApUG+S,WA+UJpe,EApUS0xB,QAAS,IAqUlBi5I,EApU8B+nB,YAAA1yL,GAAsB8J,KAAG,SAAKC,GAqUxD3G,EAAW2I,YAAY,UAAW,wBAAyB,yBAC3DwR,IAnUAlS,EAAAgT,YAAa,EACbhT,EAAG+S,WAAA,GAqUJ,SAAUpS,GAnUT5I,EAAG2I,YAAoB,QAAA,iCAE3BgR,MAiTA/c,EAAS0xB,QAAU,IACnBi5I,EAAgC+nB,YAAY1yL,GAAU8J,KAAK,SAAUC,GACjE3G,EAAW2I,YAAY,UAAW,sBAAuB,yBAnU5DwR,IAqUGlS,EAAGgT,YAAa,GAnUjB,SAAArS,GACA5I,EAAA2I,YAAoB,QAAA,iCAEvBgR,KAmVR,QAAS+lE,GAAkB9iF,GACvBqL,EAAG+S,WAAY,EACf/S,EAAGgT,YApUM,EAqUThT,EAAGrL,SAAWP,QAAQ8e,KAAKve,GAU3BqL,EAAG8uG,SACHt0G,EAAO+7B,MAAM5hC,EAASqvD,MAAO,SAAU4/D,EAAW18D,GAC9C,GApUIs8D,GAAGxjH,EAAA,MAAoB7E,OAAA,CAqU3B6E,GAAG8uG,MAAMj3G,MAnUTgxB,GAAA26F,EACIC,SAAAG,MAyUZ,QAAS0jE,GAAoB3yL,GAnUzB,GAAAge,GAAAtY,EAAAsY,QAA2B,UACvB,4CAqUItb,WAAW,EAnUX+F,KAAI,MAuUZuV,GAAQjT,OApUKjB,KAAI,WAqUb6gK,EApU8BgoB,oBAAA3yL,EAAAmvD,YAAArlD,KAAA,SAAAC,GAqUP,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,UAC/B7b,EApUK2I,YAAc,UAAAhC,EAAAhJ,KAAsBme,QAAA,WAsUzC9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,YAQ3D,SApUQlT,GAqUP5I,EAAW2I,YAAY,QAAS,iCAGxC,QAAS+xJ,KAELz4J,EAAO8F,GAAG,gCAAkChK,UAAW+/J,EAAa5/J,OAAO,gBAAgBC,UAAU,kBAxMzG,GAAI8J,GAAKC,IACTD,GAAGgT,YAAa,EAChBhT,EAAG+S,WApUS,EAqUZ/S,EAAGsS,WApUS,EAqUZtS,EAAGwkB,gBACHzsB,EAAW2c,SApUK,EAqUhB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGujH,WApUaA,EAqUhBvjH,EAAG0jH,WAAaA,EAChB1jH,EAAG6jH,kBApUiBA,EAqUpB7jH,EAAGy3E,kBApUoBA,EAqUvBz3E,EAAGsnL,oBApUYA,EAqUftnL,EAAGyyJ,SAAWA,EAGdzyJ,EAAG8uG,SACH9uG,EAAGrL,YAEHqL,EAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAnUjCrU,EAAAuU,YAAS,EAqUTvU,EAAGwU,qBAAuB,SAAUC,GAnUhCzU,EAAAuU,YAAgBE,EAsUpB,IApUItC,GAAIhY,EAA8BgG,uBAAAwU,gBAAAxC,UAsUlC0jJ,EApUQ77J,EAAWvE,OAAAK,UAqUnB69J,EApUQ35J,EAAWvE,OAAAM,MAsUvBmc,mKApCJ9d,QACKC,OAAO,wCACPe,WAAW,2BAA4BgyL,MAkNhD,WACI,YAOA,SAASG,GApUW98K,EAAgB1S,EAAAyC,EAAAH,EAAAN,EAAAC,EAAA2kI,EAAA04C,EAAAz8H,EAAA2G,EAqUhCvvC,EApUeJ,EAAgBzX,GAgC/B,QAAS+X,KAqULlS,EAAGjK,OAAS49J,EA7QZ1kB,EAAuB4mB,GAG3B,QAAO5mB,GAASn5I,EAAAyI,GACZ,GAAAzI,EAAQ,CAqUJ,GAAIgkL,IACA3nK,UAAWA,EACX2xC,WAAY,EACZhuD,UAAWA,EAEfuhL,GAA4B1X,gBAAgBma,GAAar7K,KAAK,SAAUC,GACjD,MAAfA,EAAIlI,QAnUfwJ,EAAAgmD,aAAAtnD,EAAAhJ,KACTsK,EAAAgmD,aAAA7qD,OAAA,GAqUwBd,EAAQ8C,OAAO,UAAW,yBAA2B9F,WAAW,EAAM+F,KAAM,OAnUpG4C,EAAAsS,WAAA,EACY/T,GACIA,KAuUIxG,EAAW2I,YAAY,QAAS,yBAA0B,aAnUjE,SAAAC,GACN5I,EAAa2I,YAAA,QAAA,mBAAA,eAOhB,QAAG0lD,GAAac,GAEb,GAAAgoF,GAAoB,OAAAhoF,EAAA47C,mBAAAntG,SAAAuxD,EAAA47C,kBACpBkjB,EAAA,QAAoBv/D,EAAAS,EAAAQ,UAAA,EACpB1nD,GAAA4uG,YAAA5uG,EAAA2uG,QAAsBqX,GACtBkpB,IAsUKlvI,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG4uG,YAAayG,aAAgBnuD,EAAK47C,kBAAkB/7C,UAC1HvsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GApU/BA,EAAAa,WAAAs+D,IACGkpB,IAsUEroF,EAAEC,OAAS9mD,EAAGo1G,eApU3BvuD,EAAAi8C,kBAA8B,KAE9B,IAAAqsC,GAAc1oF,EAAA,EAAAS,EAAAQ,SAAAs+D,EACdv/D,GAAAI,EAAAa,UAAiCynF,IAC7BtoF,EAAAC,UAsUSD,EAAEi8C,kBAAoB,QAjUlCosC,GAsUqC,IAA7BzoF,EAAUS,EAAKQ,YApU3B1nD,EAAAo1G,cAAA56G,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA2uG,QAAA,MAAA0G,aAAA,KAwUA,QArUO5uD,GAASc,GACZ,MAAI3gD,UAAA2gD,EAAcjkC,UAAA,IAwUtB,QArUQmvF,GAAW3uD,EAAAhuD,EAAAyI,GAsUfyB,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAGknD,KAAKnD,iBAAiBC,OApUjDhkD,EAAA4uG,YAAA5uG,EAAA2uG,QAAAE,KAuUA,IAAI3M,IAEA/vF,UArUOA,EAsUPrc,UArUWA,EAsUXguD,WArUYA,EAsUZiD,OArUQ,EAwUZswH,GAA4BzuF,gBAAgBsZ,GAAazjG,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG4mD,YAAcloD,EAAIhJ,KApUrBsK,EAAAonD,WAsUA,KArUI,GAAA+tD,KAAen1G,GAAA2uG,QAAW,CAsU1B,GAAI71D,IACA2O,SAAUznD,EAAG2uG,QAAQwG,GACrB59F,UAAU,EACVmwC,SAAUytD,EAEK,WAAfA,IACAr8D,EAAKgO,OAAStsD,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG2uG,QAAQwG,MAEzEn1G,EAAGonD,SAASvvD,KAAKihD,GAEjBv6C,GACAA,IACJyB,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG4uG,cAClE5uG,EAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QAAS0uI,GAAiBloF,EAAMp9C,GAE5B,IAAK,GAAI5O,KAAK8E,GAAGo1G,cApUTp1G,EAAGo1G,cAAYl6G,GAAAmtB,MAAA6+B,EAAAsgI,UAsUfxnL,EAAGynL,aAAc,EACjBptL,EAAQ8C,OAAO,UAAW,2BAA6B9F,WAAW,EAAM+F,KAAM,OAC9E8pD,EAAKsgI,SAAW,MAGhBxnL,EAAGynL,aAAc,CAIzB,KAAKznL,EAAGynL,YAAa,CACjB,GAAIp4C,KAGJ,IAvURnoF,EAAS3vC,UAAS2vC,EAAA,UAAAvxD,SAAAuxD,EAAA3vC,SACXvX,EAAAsvI,cAAa,EAsUPpoF,EAAK3vC,SAxQX,CAsUK,GAAI43H,GAAgB1oF,EAAUS,EAAKQ,UAG/BknD,GADW,QAAUnoD,EAAUS,EAAKQ,UAAY,GAClCltD,EAAO6P,KAAKrK,EAAGonD,UAAYM,SAAYR,EAAKQ,WAC9D1nD,GAAGo1G,cAAgBxG,EAAY9nD,OAC/BtsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GAC9BJ,EAAUI,EAAEa,UAAYynF,IACxBtoF,EAAE0oF,YAAa,SArEP,CAChB,GAAIt0I,IApUPkX,UAASA,EACX40C,OAAa,EACbjxD,UAAW+/J,EACH/xG,WAAA9jD,EAAAknD,KAAAnD,iBAAAD,WAsUCuxD,aAAc,EACdpoD,UAAW/F,EAAK+F,UApUvB5kC,KAAa6+B,EAAAsgI,SAsUN//H,SAAUP,EAAKO,SApUvB3zC,UAAgB5T,EAAOG,OAClB+X,SAAK,EAEV,IAAsB,IAAtBquC,EAAaS,EAASQ,UAsUdzsD,EAAIo6G,aAAe,MApUnB,CACf,GAAAm6B,GAAAh1I,EAAA6P,KAAArK,EAAAonD,SAAA,SAAAP,GAsUmB,MAAOA,GAAEa,WAAa,QAAUjB,EAAUS,EAAKQ,UAAY,KApUtEo7C,iBAER,IAAA,OAAA0sC,GAAA75I,SAAA65I,EA0UmB,MAJAz3I,GAAW2I,YAAY,QAAS,mCAAoC,UApU/EV,EAAAgT,YAAkB,EAsUPhT,EAAGsvI,cAAe,OApUzBpoF,EAAY+F,UAAAt3D,OAGNsF,GAAAo6G,aAAAm6B,EAAAzoF,OAEXsoF,EAAmBrvI,EAASonD,SAGhCiwH,EAAgCvuF,aAAA7tF,GAAAwD,KAAA,SAAAC,GAsUhBA,EAAIhJ,KAAKke,aAAc,GApU/B6+F,EAAWzyG,EAAAknD,KAAAnD,iBAAAD,WAAA9jD,EAAAknD,KAAAnD,iBAAAjuD,UAAA,WACN0E,EAAUqI,QAAAwsI,EAAA,SAAAI,GACnBj1I,EAAAqI,QAAgC7C,EAAAonD,SAAY,SAAUF,GAC3BuoF,EAAA/nF,WAAWR,EAAAQ,UAAuB+nF,EAAA3sC,oBACzD57C,EAAA47C,kBAAA2sC,EAAA3sC,kBACgB57C,GACFd,EAAAc,UAMlBnvD,EAAA2I,YAAgC,UAAYhC,EAAAhJ,KAAUme,QAAK,cACvD7T,EAAWgT,YAAY,EACvBhT,EAAAsvI,cAAA,EACGpoF,EAAA+F,UAAat3D,SAEjBoC,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,cACdqzC,EAAW3vC,UAAY2vC,EAAA3vC,WAwUpB,SAAU5W,GACT5I,EAAW2I,YAAY,mCAsBvC,QAASgvI,GAAgBC,GACrB,GAAI+3C,IACAv1K,UAAWA,EApUnB40C,OAAS4oF,EAAoB5oF,OACrBjxD,UAAU65I,EAAQ75I,UAClBguD,WAAA6rF,EAAA7rF,WAsUAuxD,aArUI,EAsUJpoD,UArUU0iF,EAAA1iF,UAsUVxF,SAAUkoF,EAAaloF,SACvBp/B,KAAMsnH,EAAatnH,KApUvBvU,UAAe5T,EAAKG,OAChB+X,SAAA,EAgVJi/J,GAA4BvuF,aAAa4+F,GAAMjpL,KAAK,SAAUC,GApU5C,MAAfA,EAAAlI,OAAekI,EAAAhJ,KAAAke,WAuUV7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD87H,EAAap1E,QAAS,GAEtBxiE,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,WAEvD,SAAUlT,GACT5I,EAAW2I,YAAY,QAAS,2BAA4B,YAjU3E,QAAYsoF,GAAA4mD,GAuUD,GAAIj9H,GAAUtY,EAAQsY,QAAQ,UAAW,4CAA8Ctb,WAAW,EAAM+F,KAAM,OAC1GiyI,EAAmBrvI,EAAGonD,QArUlCz0C,GAAAjT,OAAAjB,KAAA,WACY44K,EAAAruF,gBAAA4mD,EAAA7oF,QAAAtoD,KAAA,SAAAC,GACI,MAAAA,EAAAlI,QAAwBkI,EAAAhJ,KAAAke,WAuUpB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD4+F,EAAqBzyG,EAAGknD,KAAKnD,iBAAiBD,WAAY9jD,EAAGknD,KAAKnD,iBAAiBjuD,UAAW,WArUzG0E,EAAqBqI,QAAQwsI,EAAY,SAAiBI,GAC/Cj1I,EAAAqI,QAAA7C,EAAwBonD,SAAA,SAAAF,GAC/BuoF,EAAA/nF,WAAAR,EAAAQ,UAAA+nF,EAAA3sC,oBACe57C,EAAS47C,kBAAwB2sC,EAAA3sC,kBACxB57C,GAuUGd,EAAYc,QAI5Bd,OAnUJruD,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WAEb,SAAYlT,GACZ5I,EAAgB2I,YAAA,QAAA,2BAAA,cAInB,QAAGmvI,GAAA3oF,GACAA,EAAA+F,UAAAt3D,OACAuxD,EAAA3vC,UAAA,EACAvX,EAAAsvI,cAAe,EACf90I,EAAAqI,QAAc7C,EAAAonD,SAAA,SAAAP,GACdA,EAAA0oF,YAAkB,IAIrB,QAAIkjB,KAEAz4J,EAAA8F,GAAA,gCAA4BhK,UAAA+/J,EAAA5/J,OAAA,YAAAC,UAAA,kBA5BhC,GAAI8J,GAAKC,IACTD,GAAGqU,kBApUahJ,MAAY,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAqU5BrL,EAAGsU,SAAWtU,EApUEqU,gBAAW,GAsU3BrU,EAAGuU,YApUa,EAqUhBvU,EAAGwU,qBApUa,SAAWC,GAqUvBzU,EAAGuU,YApUSE,GAwUhBzU,EAAGgT,YApUa,EAqUhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGo1G,iBACHp1G,EAAGynL,aAAc,EACjB1vL,EAAW2c,SAAU,EAErB1U,EAAGivI,uBAAyBA,EAC5BjvI,EAAGyyG,qBAAuBA,EAC1BzyG,EAAGovI,iBAAmBA,EACtBpvI,EAAG6vI,aAAeA,EAClB7vI,EAAGomD,YAAcA,EACjBpmD,EAAG0vI,gBApUYA,EAqUf1vI,EAAGgpF,gBApUaA,EAqUhBhpF,EAAGyyJ,SAAWA,CACd,IAAIvyJ,GAAa/F,EAAsBgG,uBACnCgS,EApUGhY,EAAegG,uBAAAwU,gBAAAxC,UAqUlB0jJ,EApUe77J,EAAAvE,OAAYK,UAqU3B69J,EAAc35J,EAAOvE,OAAOM,MAChCmc,oOApCJ9d,QACKC,OApUO,oCAqUPe,WAAW,uBAAwBmyL,MA4W5C,WACI,YAOA,SAASI,GAAwBl9K,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQS,EAASmwE,EAA8BwrF,EAA4Bj8J,EAAuBu5J,EAA+B4L,EAAiCD,GAkE3O,QAASntJ,KAEL,GAAI+kJ,IACA9kJ,UAtUIA,EAuUJvc,OAAQ,IAIZg1E,GAA6BG,eAAeksF,GAAYx4J,KAAK,SAAU89J,GACnE,GAAoB,MAAhBA,EAAK/lK,OAAgB,CArUxBwJ,EAAA2hB,YAAkB46I,EAAA7mK,KACvB6pK,EAAA1J,EAEI,IAAAmL,IACD7uJ,UAAiBA,EACfvc,OAAA,IACEE,UAAgB+/J,EAGfjrF,GAAKI,iBAAAg2F,GAAAviK,KAAA,SAAA4hK,GACD,GAAc,MAAZA,EAAA7pK,OAAY,CAChBwJ,EAAAw/J,uBAAoBa,EAAA3qK,KAEtBsK,EAAAy/J,eAAkB9iK,KAAAC,MAAkBoD,EAAAw/J,uBAA2B,GAAAE,iBAE7D,IAASkoB,IACLz1K,UAAAA,EAuUMrc,UAAW+/J,EACXjgK,OAAQ,IACRg+J,YAAa,WAejBwC,GAA2BY,8BAA8B4wB,GAAYnpL,KAAK,SAAUo4J,GArUrF,MAAAA,EAAArgK,SACAwJ,EAAAg/J,mBAAAnI,EAAAnhK,KAEHsK,EAAAuU,YAAA,EAKDvU,EAAcsS,WAAI,IAEZ,SAAA3R,GACD5I,EAAO2I,YAAA,QAAA,mBAAA,oBAGPV,EAAAsS,WAAU,IAwUf,SAtUK3R,GAuUJ5I,EAtUS2I,YAAS,QAAc,mBAAkB,oBAyUtDV,EAAGsS,WAAY,IAEpB,SAtUS3R,GAuUR5I,EAtUO2I,YAAgB,QAAO,mBAAU,oBA6U5CV,EAAGylC,OAASkuH,EACZ3zJ,EAAGm0J,WAGHiC,EAA2BwB,eAAe,QAAQn5J,KAAK,SAAUC,GArUhD,MAAZA,EAAIlI,SACDwJ,EAAG6xF,SAAAnzF,EAAchJ,KACjBsK,EAAGsS,WAAA,IAwUR,SAtUU3R,GAuUT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS6+J,GAAcvL,EAAYz1J,GAE/B,GAtUIy1J,EAAI,CACJ,GAAAhuI,IACG7T,UAAAA,EACC2xC,WAAM,EACNhuD,UAAUk+J,GAyUV2jB,EAtUI,EAwUR,KAAK,GAtUGz8K,KAAA8E,GAAA2hB,YACA3hB,EAAA2hB,YAAWzmB,GAAKpF,WAAA+/J,IAChB8hB,EAAW33K,EAAA2hB,YAAAzmB,GAAA0mI,gBACX5hI,EAAAoiI,YAAezlI,KAAAC,MAAAoD,EAAA2hB,YAAAzmB,GAAAwkK,kBAiVvBtJ,GAtU2BuJ,gBAAQ35I,GAAevnB,KAAA,SAAWC,GACtC,MAsUfA,EAtUIlI,SAuUJwJ,EAAGgmD,aAtUItnD,EAAahJ,KA4VpBsK,EAAGsS,WAAY,EACftS,EAAG83K,gBAAiB,IAKzB,SAAUn3K,GACT5I,EAtUQ2I,YAAW,QAAY,mBAAkB,wBA0UrDV,GAAGm0J,QAtUIpwG,iBAAe,KAuUtB/jD,EAAGgmD,gBAIX,QAAS85G,GAAqBC,EAAYxhK,GAEtC,GAtUY,OAsURwhK,EAtUQ,CAuUR//J,EAAGggK,oBAAqB,CAExB,IAtUIh6I,IACA7T,UAAGA,EACH2xC,WAAO,EAuUPhuD,UAtUQ+/J,EAyUZyJ,GAAgCK,gBAAgB35I,GAAWvnB,KAAK,SAAU89J,GAClD,MAAhBA,EAAK/lK,SACLwJ,EAAGigK,oBAAsB1D,EAAK7mK,OAEnC,SAAUiL,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBA4BxDV,GAAGggK,oBAtUc,EAuUjBhgK,EAAGigK,uBAKX,QAASua,GAAgBzhK,GACrB/Y,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EArUrBpN,EAAS98I,EAuUL/Y,EAAG2gK,YAAa,CAOhB,KAAK,GAAIzlK,KAtUG8E,GAAA2hB,YAuUJ3hB,EAAG2hB,YAtUYzmB,GAAApF,WAAQ+/J,IAwUvB71J,EAAGylC,OAASzlC,EAAG2hB,YAtUKzmB,GAAQonB,YAAa,MAAKtiB,EAAA2hB,YAAoBzmB,GAAAid,UA6U9E,QAASsiK,GAAS9+B;AApUC,gBAsUXA,GACA37I,EAAG5J,eAtUgB,EAuUnB4J,EAAGijK,aAAc,EACjBjjK,EAtUGkjK,kBAAe,EAuUlBljK,EAAGm6K,iBAtUY,EAuUfn6K,EAAGm0J,QAAQj+J,UAAY,gBACvB8J,EAAGylC,OAASzlC,EAAGylC,OAAS,sBACxBzlC,EAAG2gK,YAAa,GAoBA,gBAAXhlB,GAtUjB37I,EAAA5J,eAAA,EACY4J,EAAAijK,aAAA,EACPjjK,EAAAkjK,kBAAW,EAwUJljK,EAAGm6K,iBAAkB,EACrBn6K,EAAG2gK,YAAa,EAtUnB3gK,EAAAm0J,QAAAj+J,UAAwB,gBACzB8J,EAAKylC,OAAAzlC,EAAAylC,OAAA,sBAGQ,uBAAdk2G,GAEA37I,EAAA5J,eAAc,EACd4J,EAAAijK,aAAA,EACIjjK,EAAAkjK,kBAAc,EAwUbljK,EAAGm6K,iBAAkB,EACrBn6K,EAAGmjK,YAAa,EAtUrBnjK,EAAA26K,cAAc,EACd36K,EAAAgT,YAAqB,EA0UhBhT,EAAGylC,OAASzlC,EAAGylC,OAAS,2BArU7B85H,EAAgB1J,IAEE,cAAlBla,GACA37I,EAAA5J,eAAmB,EACnB4J,EAAAijK,aAAa,EACbjjK,EAAAkjK,kBAAe,EAwUVljK,EAAGm6K,iBAAkB,EArU1BngL,EAAA8F,GAAA,iCAAiBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,UAGC,iBAAVk2G,EAGQ,iBAAhB37I,EAAAm0J,QAAgBj+J,UAChB8D,EAAY8F,GAAA,wBAAAhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAEc,iBAA1BzlC,EAAAm0J,QAAAj+J,WACA8D,EAAA8F,GAAA,wBAA8BhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAGZ,aAAlBk2G,IASmB,iBAAnB37I,EAAAm0J,QAAmBj+J,UACnB8D,EAAA8F,GAAA,oBAAuBhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAEN,iBAAjBzlC,EAAiBm0J,QAAAj+J,WAwUR8D,EAAO8F,GAAG,oBAAsBhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,UAlUhF,QAAGgtH,GAAA9W,GACA,GAAe,YAAfA,EACA37I,EAAAylC,OAAc,wBACbzlC,EAAA5J,eAAY,EACZ4J,EAAAijK,aAAa,EACbjjK,EAAAkjK,kBAAsB,MAI1B,IAAA,aAAAvnB,EAAA,CACA37I,EAAS5J,eAAO,EAwUR4J,EAAGijK,aAAc,EAtUjBjjK,EAAAkjK,kBAAa,EACbljK,EAAAgT,YAAW,CA0UX,KAAK,GAAI9X,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,WAAa+/J,IArUnC71J,EAAKylC,OAAWzlC,EAAA2hB,YAAKzmB,GAAAonB,YAAA,MAAAtiB,EAAA2hB,YAAAzmB,GAAAid,WA6UjC,QAAS47I,GAvUO8D,EAAQt5J,GAwUpB,GAAIs5J,EAvUQ,CAyUR,GAAI7xI,IAtUA7T,UAAAA,EAwUA2xC,WAvUQ+zG,EAwUR/hK,UAvUW+/J,EAwUXxgD,aAAc,EAGlB+gD,GAvUgB2B,mBAAa/xI,GAAAvnB,KAAA,SAAAC,GAwUzB,GAvUY,MAuURA,EAAIlI,OAvUe,CAwUnBwJ,EAAGg4J,kBAvUgBt5J,EAAAhJ,KAyUfsK,EAAGg4J,kBAvUc78J,OAAA,EAwUjB6E,EAAGi4J,aAAc,EAEjBj4J,EAAGi4J,aAAc,CAErB,KAAK,GAAI/8J,KAAK8E,GAAGg4J,kBACgC,IAAzCh4J,EAAGg4J,kBAAkB98J,GAAG03B,gBACxB5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eAIjF,IAAIstI,IACA/tJ,UAAWA,EACXrc,UAAW+/J,EACXsK,QAAS,gBAtUTr8G,WAAA+zG,EA0UJzB,GAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU4hK,GAtUpE,MAuUPA,EAvUI7pK,SAwUJwJ,EAAGm4J,cAAgBkI,EAAK3qK,KAEpBsK,EAAGm4J,cAAch9J,OAAS,EAC1B6E,EAAGo4J,qBAAsB,EAEzBp4J,EAAGo4J,qBAAsB,EAhUtC8H,EAAeC,QAAA,aAyUN/J,EAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAUo4J,GAC3D,MAAhBA,EAAKrgK,SAtUVwJ,EAAAsgK,eAAAzJ,EAAAnhK,KAELwqK,EAAAC,QAAA,kBAyUU/J,EAA2BgK,2BAA2BF,GAAczhK,KAAK,SAAU8hK,GAC3D,MAAhBA,EAAK/pK,SACLwJ,EAAGwgK,oBAAsBD,EAAK7qK,KA2B1B6I,GAtUnBA,MAEA,SAAakiK,GACJ1oK,EAAa2I,YAAA,QAAc,mBAAA,oBA0UzBnC,GACAA,MAET,SAAUkiK,GACT1oK,EAAW2I,YAAY,QAAS,mBAAoB,oBAGpDnC,GACAA,MArUpB,SAAAkiK,GACY1oK,EAAW2I,YAAK,QAAA,mBAAA,oBAuVpBV,EAAGsS,WAAY,EAEX/T,GACAA,MAGT,SAAUoC,GACT5I,EAvUO2I,YAAY,QAAA,mBAAA,wBA2UvBV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAvUGm0J,QAAA9rI,KAAe,GAwUlBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAAsB,EA6EjC,QAASgJ,GAAiBvJ,EAAkBt5J,GACxC,GAAIs5J,EAAkB,CAtU1B,GAAS7xI,IAwUG7T,UAAWA,EAtUf2xC,WAAW+zG,EACR/hK,UAAA+/J,EACAxgD,aAAc,EAGjB+gD,GAAuB+L,0BAAAn8I,GAAAvnB,KAAA,SAAAC,GACpB,GAAY,MAAZA,EAASlI,OAAY,CACrBwJ,EAAAqhK,yBAAa3iK,EAAAhJ,KAwUJ6I,GACAA,GAEJ,KAAK,GAAIrD,KAAK8E,GAAGqhK,yBACuC,IAAhDrhK,EAAGqhK,yBAAyBnmK,GAAG03B,gBAC/B5yB,EAAGqhK,yBAAyBnmK,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGqhK,yBAAyBnmK,GAAG03B,kBAIpG,SAAUjyB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAAQ4M,wBAA0B,KACrC/gK,EAAGqhK,4BACHrhK,EAAGm0J,QAAQ0L,YAAc,GAOjC,QAvUQvH,GAAGC,EAAkBh6J,GAyUzB,GAvUIg6J,EAAG,CACH,GAAGvyI,IAwUC7T,UAAWA,EACX2xC,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WAtU3ChuD,UAAI+/J,EAwUDxgD,aAAckjD,EApUlBnC,GAAsB2B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GACnB,GAAkB,MAAlBA,EAAAlI,OAAkB,CAClBwJ,EAAAw4J,qBAAa95J,EAAAhJ,IACb,IAAA+iK,GAAe,EACf,KAAA,GAAav9J,KAAA8E,GAAAw4J,qBAwUAx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBACjG5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGw4J,qBAAqBt9J,GAAG03B,gBApU9Ej9B,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eAwUEgY,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB98J,GAAGulJ,aAAap4H,KAnUjIroB,GAAAm0J,QAAA9rI,KAAmBowI,EAyUdz4J,EAAGsS,WAAY,EAEX/T,GACAA,MAGT,SAAUoC,GAtUT5I,EAAW2I,YAAA,QAAa,mBAAiB,wBA4U7CV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAvUCm0J,QAAI9rI,KAAW,GAwUhBroB,EAAGm0J,QAAQ0L,YAAc,GA2CjC,QAvUQqC,GAAkB3J,EAAAh6J,GAwUtB,GAAIg6J,EAAS,CAET,GAvUItB,IACA9kJ,UAAAA,EACA2xC,WAAW9jD,EAAAm0J,QAAA4M,wBAAAj9G,WACXhuD,UAAA+/J,EAwUAxgD,aAAckjD,EAGlBnC,GAvUuB+L,0BAAKlL,GAAAx4J,KAAA,SAAAC,GAwUxB,GAvUO,MAAHA,EAAGlI,OAAA,CAwUHwJ,EAAGoiK,4BAA8B1jK,EAAIhJ,IAtUrC,IAAI+iK,GAAG,EAwUP,KAvUI,GAAGv9J,KAAA8E,GAAAoiK,4BAwUCpiK,EAAGoiK,4BAA4BlnK,GAAG8oD,QAAUhkD,EAAGqhK,yBAAyBnmK,GAAG8oD,OAA4D,IAAnDhkD,EAAGoiK,4BAA4BlnK,GAAG03B,gBAtUvH5yB,EAAAqhK,yBAAcnmK,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAoiK,4BAAAlnK,GAAA03B,gBAGgCj9B,QAA7CqK,EAAGqhK,yBAAqBnmK,GAAAomK,sBACxB7I,GAAyE9iK,QAAtEqK,EAAAqhK,yBAAwCnmK,GAAAomK,oBAASj5I,KAAqB,GAAAroB,EAAAqhK,yBAAAnmK,GAAAomK,oBAAAj5I,KAIjFroB,GAAAm0J,QAAI0L,YAAepH,EAyUnBz4J,EAAGsS,WAvUY,EAEX/T,GAwUAA,MAGT,SAvUSoC,GAwUR5I,EAAW2I,YAvUI,QAAgB,mBAAK,wBA2UxCV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm0J,QAAQ0L,YAAc,GAgBjC,QAASgoB,KAKL,IAAK,GAFDC,GAAe,GAAIC,EAAgB,GAE9B7sL,EAAI,EAAGA,EAAI8E,EAAGg4J,kBAAkB78J,OAAQD,IAE7C6sL,GAAiB,gBAAkB/nL,EAAGg4J,kBAAkB98J,GAAG8oD,MAAQ,0BAA4BhkD,EAAGg4J,kBAAkB98J,GAAGulJ,aAAa15F,OAAS,kBAAoB/mD,EAAGg4J,kBAAkB98J,GAAGulJ,aAAaxzF,UAAY,OAGtN,KAAK,GAAI/xD,GAAI,EAAGA,EAAI8E,EAAGk/J,mBAAmB8oB,OAAO7sL,OAAQD,IAER,QAAzC8E,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,KAChCmiI,GAAgB,IAAM9nL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG2lI,MAAQ,MAAQ7gI,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG+sL,cAAgB,KACxE,QAAzCjoL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,OACrCmiI,GAAgB,IAAM9nL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG2lI,MAAQ,MAAQ7gI,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGgtL,MAAQ,KAGlHJ,GAAa3sL,OAAS,IACtB2sL,EAAeA,EAAahhL,OAAO,EAAGghL,EAAa3sL,OAAS,IAG5D4sL,EAAc5sL,OAAS,IACvB4sL,EAAgBA,EAAcjhL,OAAO,EAAGihL,EAAc5sL,OAAS,IAGnE2sL,EAAe,IAAMA,EAvUe,IAyUpCC,EAAgB,IAAMA,EAAgB,GAEtC,IAAII,IACAphI,OAAQ/mD,EAAGm0J,QAAQmN,oBAAoBv6G,OACvCU,SAAUznD,EAAGm0J,QAAQmN,oBAAoB75G,SACzCwF,UAAWjtD,EAAGm0J,QAAQmN,oBAvUMr0G,WA4U5BjnC,GACAgwI,QAAS,EACT7jJ,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxCiD,OAAQ/mD,EAvUGg4J,kBAAgBh4J,EAAAg4J,kBAAA78J,OAAA,GAAAslJ,aAAA15F,OAwU3Bq0G,gBAvUY2sB,EAwUZ1zB,UAAWyzB,EACXM,mBAAoBzrL,KAAKqkB,UAAUmnK,GACnCE,iBAAkB,EAClBv0K,UAAW0/I,EACXntI,QAAS,OACTmsE,OAAQxyF,EAAGm0J,QAAQ+E,mBAAmB1mE,OACtCnqE,KAAMroB,EAAGm0J,QAAQ9rI,MAKjBjqB,EAAW,GAAIH,SAKnBG,GAASF,OAAO,YAAavB,KAAKqkB,UAAUgF,IAE5CowI,EAvUgByxB,wBAAAzpL,GAAAK,KAAA,SAAAC,GAGTA,EAAAhJ,KAAUke,aAAK,GA0Ud5T,EAAGgT,YAAa,EAtUnBhT,EAAA5J,eAAA,EACE4J,EAAAijK,aAAQ,EACRjjK,EAAAkjK,kBAAoB,EACpBljK,EAAAmjK,YAAe,EACfprK,EAAA2I,YAAgB,UAAAhC,EAAAhJ,KAAAme,QAAA,yBAChB3B,MA2UCna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,iCAMxC,QAASsiK,KAEL,GAAIslB,GAAW,CACXtoL,GAAG+S,YACHu1K,EAAWtoL,EAAGm0J,QAAQ6B,QAE1B,IAAIqM,KAEJ,KAAK,GAAInnK,KAAK8E,GAAGg4J,kBACTh4J,EAAGg4J,kBAAkB98J,GAAGulJ,eACxB4hB,EAAiB,QAAUz7J,SAAS1L,GAAK,IAAM8E,EAAGg4J,kBAAkB98J,GAAGulJ,aAAa15F,OAI5F,IAAIu7G,GAAqB,KACrBC,EAAiB,KACjBC,IAGJ,IAAoC7sK,QAAhCqK,EAAGm0J,QAAQyM,mBAA4E,OAA1C5gK,EAAGm0J,QAAQyM,kBAAkBC,UAAoB,CAC9FyB,EAAqBtiK,EAAGm0J,QAAQ4M,wBAAwBj9G,WACxDy+G,EAAiBviK,EAAGqhK,yBAAyBrhK,EAAGqhK,yBAAyBlmK,OAAS,GAAGmmK,oBAAoBv6G,MAEzG,KAAK,GAAI7rD,KAAK8E,GAAGqhK,yBACTrhK,EAAGqhK,yBAAyBnmK,GAAGomK,sBAC/BkB,EAAwB,QAAU57J,SAAS1L,GAAK,IAAM8E,EAAGqhK,yBAAyBnmK,GAAGomK,oBAAoBv6G,QAcrH,GAAIgvG,IACAC,QAASsyB,EACTn2K,UAAWA,EACXrc,UAAW+/J,EACX/xG,WAAY9jD,EAAGm0J,QAAQpwG,iBAAiBD,WACxCiD,OAAQ/mD,EAAGg4J,kBAAkBh4J,EAAGg4J,kBAAkB78J,OAAS,GAAGslJ,aAAa15F,OAC3Eq0G,gBAAiBz+J,KAAKqkB,UAAUqhJ,GAChCjP,eAAgBpzJ,EAAGm0J,QAAQyM,kBAAkB7nJ,GAC7Cy5E,OAAQxyF,EAAGm0J,QAAQ+E,mBAAmB1mE,OAEtCsuE,kBAAmBwB,EACnBG,cAAeF,EACfpB,uBAAwBxkK,KAAKqkB,UAAUwhJ,GACvCzJ,WAAqCpjK,QAAzBqK,EAAGm0J,QAAQ4E,WAA0B/4J,EAAGm0J,QAAQ4E,WAAa,EACzEF,WAAqCljK,QAAzBqK,EAAGm0J,QAAQ0E,WAA0B74J,EAAGm0J,QAAQ0E,WAAa,EACzEF,YAAuChjK,QAA1BqK,EAAGm0J,QAAQwE,YAA2B34J,EAAGm0J,QAAQwE,YAAc,EAC5EG,iBAAiDnjK,QAA/BqK,EAAGm0J,QAAQ2E,iBAAgC94J,EAAGm0J,QAAQ2E,iBAAmB,EAC3FF,QAA+BjjK,QAAtBqK,EAAGm0J,QAAQyE,QAAuB54J,EAAGm0J,QAAQyE,QAAU,EAChE8J,QAA+B/sK,QAAtBqK,EAAGm0J,QAAQuO,QAAuB1iK,EAAGm0J,QAAQuO,QAAU,EAChEC,SAAiChtK,QAAvBqK,EAAGm0J,QAAQwO,SAAwB3iK,EAAGm0J,QAAQwO,SAAW,EACnEC,QAA+BjtK,QAAtBqK,EAAGm0J,QAAQyO,QAAuB5iK,EAAGm0J,QAAQyO,QAAU,EAChEC,SAAiCltK,QAAvBqK,EAAGm0J,QAAQ0O,SAAwB7iK,EAAGm0J,QAAQ0O,SAAW,EACnEC,YAAuCntK,QAA1BqK,EAAGm0J,QAAQ2O,YAA2B9iK,EAAGm0J,QAAQ2O,YAAc,EAC5EnxE,SAAU3xF,EAAGm0J,QAAQxiE,SAtU7BoxE,aAAS/iK,EAAAm0J,QAAiB4O,aAElBpB,aAAI3hK,EAAYm0J,QAAAyN,mBAAA7oJ,GAwUhB8oJ,cAvUe7hK,EAAAm0J,QAAA2N,wBAAA/oJ,GAwUfnjB,OAvUI,EAwUJywB,QAvUI,OAwUJvS,UAvUI0/I,EAAcnzJ,QAGlBjC,EAAA,GAAAH,SAwUJ,KAAK+B,EAvUG+S,UAAQ,CAwUZ,IAAK,GAvUG7X,KAAG8E,GAAA+hK,wBAwUP3jK,EAvUQF,OAAA8B,EAAA+hK,wBAAA7mK,GAAA6rB,IAAA/mB,EAAA+hK,wBAAA7mK,GAAAk5G,aA0UZ,KAAK,GAvUGl5G,KAAK8E,GAAIuhK,qBAwUbnjK,EAvUQF,OAAO8B,EAAAuhK,qBAAyBrmK,GAAG6rB,IAAA/mB,EAAAuhK,qBAAqBrmK,GAAAk5G,cA4UxEh2G,EAvUOF,OAAA,YAAevB,KAAAqkB,UAAA+0I,IA2UtBK,EAvUK4M,4BAAA5kK,GAAAK,KAAA,SAAAC,GACEA,EAAAhJ,KAAQke,aAAA,GACR5T,EAAAgT,YAAA,EACAhT,EAAA+S,WAAQ,EAwUP/S,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGmjK,YAAa,EAChBprK,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBACpD3B,MApUJna,EAAS2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,yBACL7T,EAAAgT,YAAY,IAyUjB,SAvUKrS,GAwUJ5I,EAvUI2I,YAAW,QAAA,iCA2UvB,QAvUQ0zH,KAwUJp0H,EAAGm0J,WACHn0J,EAAGgT,YAvUY,EAwUfhT,EAAG5J,eAvUa,EAwUhB4J,EAAGijK,aAvUc,EAwUjBjjK,EAAGm6K,iBAvUiB,EAwUpBn6K,EAAGkjK,kBAvUiB,EAwUpBljK,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cAAe,EAClB36K,EAAGi4J,aAvUa,EAwUhBj4J,EAAGo4J,qBAvUiB,EAwUpBp4J,EAAGuU,YAAc,EAKjBvU,EAAG+hK,2BACH/hK,EAAGuhK,wBAIP,QAAS4C,GAAcrxJ,GAEnB,GAAIH,GAvUItY,EAAWsY,QAAA,UAwUf,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WArUhB,GAAGs3J,IACAC,QAAAljJ,EAAAkjJ,QACA3vI,QAAQ,UA0UPjoB,EAAW,GAAIH,SACnBG,GAASF,OAAO,YAAavB,KAAKqkB,UAAU+0I,IAE5CK,EAA2B4M,4BAA4B5kK,GAAUK,KAAK,SAAUC,GACzD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBACpD3B,IACAkiH,KAGAr8H,EAAW2I,YAAY,QAAS,gCAIpC,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,kCAGzC,cAKP,QAASsT,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGm6K,iBAAkB,EACrBn6K,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cAAe,EAClB36K,EAAG2gK,YAAa,EAChB3gK,EAAGm0J,WACHn0J,EAAGi4J,aAAc,EACjBj4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGqhK,4BAuFP,QAASX,GAAe5tJ,GAepB,GAbA9S,EAAG+S,WAAY,EAtUf/S,EAAAm0J,WAwUAn0J,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAE1B9S,EAAGgT,YAvUY,EAwUfhT,EAAG5J,eAvUc,EAwUjB4J,EAAGijK,aAvUY,EAwUfjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGm6K,iBAAkB,EACrBn6K,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cAAe,EAtUlB36K,EAAA2gK,YAAgB,EAEZ3gK,EAAAgmD,aAAW,CACX,IAAA,GAAA9qD,KAAW8E,GAAAgmD,aACXhmD,EAAAgmD,aAAuB9qD,GAAA4oD,aAAiB9jD,EAAAm0J,QAAArwG,aAChC9jD,EAAGm0J,QAAApwG,iBAAqB/jD,EAAAgmD,aAAkB9qD,GAIlD,IAAA8qB,IACA7T,UAAWA,EACXrc,UAAS+/J,EACT/xG,WAAW9jD,EAAQm0J,QAAArwG,WACnB8vG,YAAiB,WAwUb7sG,OAAQj0C,EAAIi0C,OAGhBqvG,GAA2B6E,iCAAiCj1I,GAAWvnB,KAAK,SAAUC,GAtUtF,GAAe,MAAfA,EAAWlI,OAAI,CAwUPwJ,EAAGk7J,oBAAsBx8J,EAAIhJ,IAC7B,IAAIylK,GAAqBx+J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,gBAC/CrH,GAAU/zJ,EAAGm0J,QAAQpwG,iBAAiBD,WAAY,WAC9C,GAAI9jD,EAAGg4J,kBAAmB,CAtU1B,GAAAS,GAAa,EAwUT,KAAK,GAAIv9J,KAAK8E,GAAGg4J,kBAAmB,CAtUxDh4J,EAA2Bg4J,kBAAA98J,GAAAg9J,YAAkCv7J,KAAKC,MAAAoD,EAAUk7J,oBAAKhgK,GAAA+xD,UAwUzD,KAAK,GAAI9iD,KAAKnK,GAAGg4J,kBAAkB98J,GAAGg9J,YAC9Bl4J,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GAAG48C,QAAUo0G,EAAmB,QAAUv0J,SAAS1L,GAAK,MAE5F8E,EAAGg4J,kBAAkB98J,GAAGulJ,aAAezgJ,EAAGg4J,kBAAkB98J,GAAGg9J,YAAY/tJ,GApUhFxU,SAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eACFgY,GAAA9iK,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,KAAA,GAAAroB,EAAAg4J,kBAAA98J,GAAAulJ,aAAAp4H,MAGNroB,EAAAm0J,QAAY9rI,KAAAowI,CAyUX,KAAK,GAAIv9J,KAAK8E,GAAGm4J,cACb,GAAIn4J,EAAGm4J,cAAcj9J,GAAG6d,IAAM/Y,EAAGm0J,QAAQf,iBAtUxDpzJ,EAAAm0J,QAAAyM,kBAAA5gK,EAAAm4J,cAAAj9J,GAEe,OAAA8E,EAAAm0J,QAAAyM,kBAAAC,WAAA,CAwUQf,EAAqB9/J,EAAGm4J,cAAcj9J,GAAG2lK,UArU9C,KAAS,GAAA5qJ,KAAAjW,GAAAigK,oBAwUA,GAAIjgK,EAAGigK,oBAAoBhqJ,GAAG6tC,YAAc9jD,EAAGm0J,QAAQ2M,kBAAmB,CACtE9gK,EAAGm0J,QAAQ4M,wBAA0B/gK,EAAGigK,oBAAoBhqJ,EAC5D,IAAIsyK,IACAp2K,UAAWA,EACXrc,UAAW+/J,EAtUpB/xG,WAAA9jD,EAAAm0J,QAAA2M,kBAwUSlN,YAAa,UAtU1C7sG,OAAAj0C,EAAAi0C,OA0UyBqvG,GAA2B6E,iCAAiCstB,GAAe9pL,KAAK,SAAUC,GAtU3G,GAAA,MAAAA,EAAAlI,OAAA,CAwUyBwJ,EAAGihK,qBAAuBviK,EAAIhJ,IAtU1C,IAAAwrK,GAAAvkK,KAAAC,MAAAoD,EAAAm0J,QAAAgN,uBACUC,GAAAphK,EAAAm0J,QAAA2M,kBAAA,WACG,GAAM9gK,EAAGqhK,yBAAqB,CAwUvB,GAAI5I,GAAQ,EACZ,KAAK,GAAI7oJ,KAAK5P,GAAGqhK,yBAA0B,CACvCrhK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAcv7J,KAAKC,MAAMoD,EAAGihK,qBAAqBrxJ,GAAGq9C,UAtUtH,KAAA,GAAA9iD,KAAAnK,GAAAqhK,yBAAAzxJ,GAAAsoJ,YACJl4J,EAAAqhK,yBAAAzxJ,GAAAsoJ,YAAA/tJ,GAAA48C,QAAAm6G,EAAA,QAAAt6J,SAAAgJ,GAAA,MAyU+C5P,EAAGqhK,yBAAyBzxJ,GAAG0xJ,oBAAsBthK,EAAGqhK,yBAAyBzxJ,GAAGsoJ,YAAY/tJ,GApUxGxU,SAAAqK,EAAAqhK,yBAAAzxJ,GAAA0xJ,sBACR7I,GAAyBz4J,EAAAqhK,yBAAYzxJ,GAAoB0xJ,oBAAAj5I,MAE9DroB,EAAAm0J,QAAA0L,YAAApH,QA6UPz4J,EAAGuhK,uBACH,IAAIC,GAAsB7kK,KAAKC,MAAMD,KAAKC,MAAMoD,EAAGm0J,QAAQsN,aAAaC,cACxE,KAAK,GAAIzrJ,KAAKurJ,GACNA,EAAoBzsD,eAAe9+F,IACnCjW,EAAGuhK,qBAAqB1pK,MACpBkvB,IAAK9Q,EACLm+F,aAAcotD,EAAoBvrJ,MAvTlF,IAAA,GAAwB/a,KAAK8E,GAAA6xF,SACN7xF,EAAA6xF,SAAA32F,GAAcs3F,QAAYxyF,EAAGm0J,QAAQ3hE,SACrCxyF,EAAAm0J,QAAA+E,mBAA6Bl5J,EAAA6xF,SAAQ32F,GAIhD,KAAQ,GAAAA,KAAA8E,GAAWsgK,eACVtgK,EAAAsgK,eAAYplK,GAAY6d,IAAG/Y,EAAAm0J,QAAQwN,eACpC3hK,EAAAm0J,QAAWyN,mBAAuB5hK,EAAAsgK,eAAUplK,GAIlD,KAAG,GAAQA,KAAA8E,GAAAwgK,oBAwUDxgK,EAAGwgK,oBAAoBtlK,GAAG6d,IAAM/Y,EAAGm0J,QAAQ0N,gBAtUlD7hK,EAAQm0J,QAAA2N,wBAAmB9hK,EAAAwgK,oBAAAtlK,IA4UhC8E,EAAG+hK,0BACH,IAAIC,GAAyBrlK,KAAKC,MAAMD,KAAKC,MAAMoD,EAAGm0J,QAAQsN,aAAaQ,cAtU5E,KAAI,GAAAhsJ,KAAA+rJ,GACAA,EAAAjtD,eAAA9+F,IACEjW,EAAA+hK,wBAAyBlqK,MACnBkvB,IAAA9Q,EAwUCm+F,aAAc4tD,EAAuB/rJ,OAMrDjW,EAAGsS,WAAY,IAIpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAOhE,QAASg6K,KACL16K,EAAGi4J,aAvUQ,EAwUXj4J,EAAG43K,mBAvUgB,EAyUnB53K,EAAGgT,YAAa,EAChBhT,EAAG5J,eAvUM,EAwUT4J,EAAGijK,aAvUK,EAwURjjK,EAAGm6K,iBAvUQ,EAwUXn6K,EAAGkjK,kBAAmB,EACtBljK,EAvUGmjK,YAAU,EAwUbnjK,EAAG26K,cAvUY,EA0Uf36K,EAAG+S,WAAY,EAtUnB/S,EAAA+xJ,gBAAkB,EACd/xJ,EAAGsS,WAAU,EACbtS,EAAG83K,gBAAa,EAChB5lK,IA2UJ,QAvUOs2K,KAEHxuL,EAAG8F,GAAA,gCAAchK,UAAA+/J,EAAA5/J,OAAA,uBAAAC,UAAA,KAwarB,QAvUQuyL,KA2UA,GAAIhmD,IAAU,CACd,KAAK,GAAIvnI,KAAK8E,GAAGuhK,qBAC6B5rK,QAAtCqK,EAAGm0J,QAAQu0B,yBAtUX1oL,EAAAuhK,qBAA4BrmK,GAAA6rB,MAAQ/mB,EAAAm0J,QAAAu0B,wBAAAj0G,MAwUhCp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQu0B,wBAAwBj0G,IAAM,mBAtUlEp9E,WAAQ,EACN+F,KAAA,OAyUHqlI,GAAU,EAIjBA,KAC0B9sI,QAAvBqK,EAAG2oL,iBAtUH3oL,EAAAuhK,qBAAqB1pK,MACzBkvB,IAAa/mB,EAAAm0J,QAAQu0B,wBAAiBj0G,IAC9B2/B,aAAGp0G,EAAA2oL,mBA0UPtuL,EAAQ8C,OAvUI,UAAO,uBAwUf9F,WAAW,EACX+F,KAAM,QAt6C1B,GAAI4C,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGi4J,aAAc,EACjBj4J,EAAGggK,oBAAqB,EACxBhgK,EAAGo4J,qBAAsB,EACzBp4J,EAAG43K,mBAAoB,EAEvB53K,EAAGgT,YAAa,EAChBhT,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGm6K,iBAAkB,EACrBn6K,EAAGkjK,kBAAmB,EACtBljK,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cAAe,EAElB36K,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAAY,EACftS,EAAG83K,gBAAiB,EACpB//K,EAAW2c,SAAU,EACrB1U,EAAGwoL,WAAaA,EAEhBxoL,EAAGu/J,cAAgBA,EACnBv/J,EAAG+zJ,UAAYA,EACf/zJ,EAAGs4J,mBAAqBA,EACxBt4J,EAAG6nL,wBAA0BA,EAC7B7nL,EAAGgjK,4BAA8BA,EACjChjK,EAAGo0H,OAASA,EACZp0H,EAAGgU,OAASA,EACZhU,EAAGw6K,gBAAkBA,EACrBx6K,EAAGy6K,SAAWA,EACdz6K,EAAGyyJ,SAAWA,EACdzyJ,EAAG06K,gBAAkBA,EACrB16K,EAAG2gK,YAAa,EAEhB3gK,EAAGm0J,WACHn0J,EAAGmkK,cAAgBA,EAEnBnkK,EAAGohK,iBAAmBA,EACtBphK,EAAG8/J,qBAAuBA,EArU1B9/J,EAAAkiK,0BAASA,EAuUTliK,EAAG0gK,eAtUgBA,EA0UnB1gK,EAAGk/J,sBACHl/J,EAAG+hK,2BACH/hK,EAAGuhK,wBACHvhK,EAAGgxK,gBACHhxK,EAAGyoL,YAtUaA,CAuUhB,IAAIt2K,GAtUYhY,EAAoBgG,uBAAYwU,gBAAAxC,UAuU5CqhJ,EAAar5J,EAtUkBgG,uBAuU/B01J,EAAe77J,EAAOvE,OAAOK,UAC7B69J,EAtUY35J,EAAGvE,OAAYM,MAyU/Bmc,KAu/BAlS,EAAG+vG,YAAc,SAAUj9F,GACvB9S,EAAG+S,WAAY,EAEf/S,EAAGm0J,QAAU//J,QAvUO8e,KAAAJ,GAyUpB9S,EAAGgT,YAAa,EAQhBusJ,EAAc1J,EAAc,WAExB,GAvUG71J,EAAAgmD,aAAe,CACd,IAAA,GAAA9qD,KAAW8E,GAAAgmD,aAwUHhmD,EAAGgmD,aAAa9qD,GAAG4oD,aAAe9jD,EAAGm0J,QAAQrwG,aAC7C9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,GAnUvD,IAAA0tL,GAAejsL,KAAAC,MAAAoD,EAAAm0J,QAAAE,UAyUd,KAAK,GAAIn5J,KAAK8E,GAAGk/J,mBAAmB8oB,OACY,OAAxChoL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,MAGa,OAAxC3lD,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,OACrC3lD,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG4rD,OAAS8hI,EAAY5oL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG2lI,OAI7F,IAAIs6B,GAAqBx+J,KAAKC,MAAMoD,EAAGm0J,QAAQiH,gBAC/CrH,GAAU/zJ,EAAGm0J,QAAQpwG,iBAAiBD,WAAY,WAC9C,GAAI9jD,EAAGg4J,kBACH,IAAK,GAAI98J,KAAK8E,GAAGg4J,kBAAkBE,YAC3Bl4J,EAAGg4J,kBAAkBE,YAAYh9J,GAAG6rD,SAAWo0G,EAAmBjgK,GAAG4rD,OAAO,GAAGC,SAC/Ev4B,OAAOiyH,aAAezgJ,EAAGg4J,kBAAkBE,YAAYh9J,KA1TvE,IAAGitL,GAAAxrL,KAAmBC,MAAOoD,EAAGm0J,QAAAi0B,mBAChC,KAAA,GAAAltL,KAAA8E,GAAgBi5K,aACRj5K,EAAAi5K,aAAA/9K,GAAmB6rD,SAAUohI,EAASphI,SAC9C/mD,EAAAm0J,QAAgBmN,oBAASthK,EAAmBi5K,aAAU/9K,QA4gBlE8E,EAAGkjI,WAAa,WArUZ,GAAGljI,EAAA+S,UAmWE,CACD,GAAI0vH,IAAU,CACd,KAvUI,GAAAvnI,KAAU8E,GAAA+hK,wBAC0BpsK,QAAhCqK,EAAAm0J,QAAW4N,yBAwUP/hK,EAAG+hK,wBAAwB7mK,GAAG6rB,MAAQ/mB,EAAGm0J,QAAQ00B,oBAAoBp0G,MACrEp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQ00B,oBAAoBp0G,IAAM,mBAtUhEp9E,WAAA,EAwUK+F,KAAM,OAEVqlI,GAAU,OA5WvB,CAwUC,GAAIA,IAAU,CACd,KAAK,GAAIvnI,KAAK8E,GAAG+hK,wBACyBpsK,QAAlCqK,EAAGm0J,QAAQ00B,qBAtUlB7oL,EAAc+hK,wBAAK7mK,GAAA6rB,MAAA/mB,EAAAm0J,QAAA00B,oBAAAp0G,MAwURp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQ00B,oBAAoBp0G,IAAM,mBAtUjEp9E,WAAgB,EAC1B+F,KAAA,OAEWqlI,GAAK,EAIZA,KAwU0B9sI,QAAtBqK,EAAG8oL,gBACH9oL,EAAG+hK,wBAAwBlqK,MAtU/BkvB,IAAW/mB,EAAIm0J,QAAA00B,oBAAAp0G,IACV2/B,aAAOp0G,EAAa8oL,kBAGrBzuL,EAAI8C,OAAW,UAAK,uBACpB9F,WAAW,EACX+F,KAAA,UAoehB4C,EAAGqjI,SAAW,SAAUvwH,GAEpB,GAAIlV,GAAO,GAAIC,OAAMiV,EAAIshG,eAAiBr2G,KAAM+U,EAAIshG,aAAar2G,OAC7DtJ,GAAOC,OAAOwlB,KAAOxlB,OAAO4uI,WAAWnpH,gBAAgBvc,EAC3DnD,GAAQ4E,KAAK5K,EAAK,WAItBuL,EAAGojK,sBAvUwB,SAAQ5/B,EAAO6/B,GA4UtC,GAAIrjK,EAAG+S,UAAW,CACd,GAAI0wH,IACAuyB,QAASh2J,EAAGm0J,QAAQ6B,QACpByL,YAAazhK,EAAGm0J,QAAQsN,YACxBhtF,IAAK+uD,EAASz8G,IACdu8I,UAAWD,EAEfjN,GAA2BmN,iCAvU6B9/B,GAAAhlI,KAAA,SAAAC,GAwUpD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBuB,EAAW2I,YAAY,UAvUS,wBAAW,yBAyU3CV,EAAGm0J,QAAQsN,YAAc/iK,EAAIhJ,KAvUG,GAAA+rK,WAyUhC,IAAI+B,GAAmB7mK,KAAKC,MAAMD,KAAKC,MAAM8B,EAAIhJ,KAAK,GAAG+rK,aAAa,cACtEzhK,GAAG+hK,0BAEH,KAAK,GAAI7mK,KAAKsoK,GACNA,EAAiBzuD,eAvUc75G,IAwU/B8E,EAAG+hK,wBAAwBlqK,MACvBkvB,IAAK7rB,EACLk5G,aAAcovD,EAvUctoK,IA6UxC,IAAIuoK,GAAoB9mK,KAAKC,MAAMD,KAAKC,MAAM8B,EAAIhJ,KAAK,GAAG+rK,aAAa,cACvEzhK,GAAGuhK,uBAGH,KAAK,GAAIrmK,KAAKuoK,GACNA,EAAkB1uD,eAAe75G,IACjC8E,EAAGuhK,qBAAqB1pK,MACpBkvB,IAAK7rB,EACLk5G,aAAcqvD,EAAkBvoK,SA4B5CnD,GAAW2I,YAvUQ,QAAY,iBAwU3BrJ,WAAW,EACX+F,KAAM,QAId,SAAUuD,GACN5I,EAAW2I,YAvUQ,QAAQ,wBAwUvBrJ,WAAW,EACX+F,KAAM,aAOlB,IAAiB,iBAAbimK,EACA,IAAK,GAAInoK,KAAK8E,GAAG+hK,wBAtUT/hK,EAAG+hK,wBAAA7mK,GAA0B6rB,MAAAy8G,EAAAz8G,KAC7B/mB,EAAA+hK,wBAAIzsI,OAA8Bp6B,EAAA,OA6U1C,KAAK,GAAIA,KAAK8E,GAAGuhK,qBACTvhK,EAAGuhK,qBAAqBrmK,GAAG6rB,MAAQy8G,EAASz8G,KAC5C/mB,EAAGuhK,qBAAqBjsI,OAAOp6B,EAAG,IAOtDuP,EAAOs+K,eAvUc,SAAK5sL,GAyUlBA,IACA6D,EAAG8oL,gBAAkB3sL,EAAMsN,OAAOiE,MAAM,KAGhDjD,EAAOu+K,gBAAkB,SAAU7sL,GArUnCA,IACO6D,EAAA2oL,iBAAcxsL,EAAAsN,OAAAiE,MAAA,wQA5xCzBtZ,QACKC,OAAO,uCACPe,WAAW,0BAA2BuyL,MAumD/C,WACI,YAOA,SAvUQsB,GAAex+K,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAAu2C,EAAApjK,EAAA3X,GAoWnB,QAvUQ+X,KAwUJlS,EAAGjK,OAvUS49J,CAwUZ,IAAImmB,IACA3nK,UAAWA,EACX2xC,WAvUY,EAwUZhuD,UAAW+/J,EAEfqf,GAvU2BvV,gBAAWma,GAAuBr7K,KAAA,SAAAC,GAwUzD,GAvUY,MAuURA,EAAIlI,OAvUe,CAwUnBwJ,EAAGqjH,kBAvUW3kH,EAAAhJ,KAyUdsK,EAAGsjH,gBACH9oH,EAAOqI,QAAQ7C,EAAGqjH,kBAAmB,SAAU/f,GAC3CA,EAAIt/C,MAAQrnD,KAAKC,MAAM0mG,EAAIt/C,OAC3BxpD,EAAOqI,QAAQrI,EAAOmI,KAAK2gG,EAAIt/C,OAAQ,SAAUj9B,GAtUxDvsB,EAAA3F,SAAAmL,EAAAsjH,aAAAv8F,IACa/mB,EAAAsjH,aAAAzrH,KAAAkvB,OAyVV/mB,EAAGsS,WAAY,CAIf,IAAI5c,IACAyc,UAAWA,EACXvc,OAAQ,IACRg+J,YAAa,WACb99J,UAAW+/J,EAGfqf,GAAgCnqG,eAAer1E,GAAM+I,KAAK,SAAUC,GAC7C,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACjBsK,EAAG2hB,YAAYxmB,OAAS,GACxBd,EAAQ8C,OAAO,UAAW,yBAA2B9F,WAAW,EAAM+F,KAAM,OAEhF4C,EAAGsS,WAAY,GAIfva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAGxD3I,GAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAI5D,QAASsT,KACLhU,EAAGgT,YAAa,EAGpB,QAAStB,KACL1R,EAAGgT,YAAa,EAChBhT,EAAGrL,YACHqL,EAAG8uG,SAGP,QAASyU,KAEL,GAvUIC,GAAIxjH,EAAU,MAAA7E,OAAA,CA0Ud6E,GAAG8uG,MAvUK3zG,OAAO,GA2UX6E,EAAG8uG,MAAMj3G,MACLgxB,GAvUI26F,EAwUJC,SAAUzjH,EAAGrL,SAAS0yD,OApU1BrnD,EAACrL,SAAS0yD,KAAA,KA8UdrnD,EAAG8uG,MAvUKj3G,MAwUJgxB,GAAI26F,EACJC,SAvUQzjH,EAAArL,SAAM0yD,OA0UlBrnD,EAAGrL,SAAS0yD,KAAO,IAQ3B,QAASq8D,GAAW5gH,GAChB9C,EAAG8uG,MAAMx5E,OAAOxyB,EAAM,GAG1B,QAAS+gH,GAAkBlvH,GAEvBA,EAASmB,UAAY+/J,EACrBlhK,EAASwd,UAAYA,CACrB,IAAIi1C,KACJ,KAAK,GAAIlsD,KAAK8E,GAAG8uG,MACb1nD,EAAS,QAAUxgD,SAAS1L,GAAK,IAAM8E,EAAG8uG,MAAM5zG,GAAGuoH,QAGvD9uH,GAASqvD,MAAQrnD,KAAKqkB,UAAUomC,GAS3BpnD,EAAG+S,WAYJpe,EAAS0xB,QAAU,IACnB6uJ,EAAgCmS,YAAY1yL,GAAU8J,KAAK,SAAUC,GACjE3G,EAAW2I,YAAY,UAAW,wBAAyB,yBAC3DwR,IACAlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,GAChB,SAAUpS,GACT5I,EAAW2I,YAAY,QAAS,iCAEpCgR,MApBA/c,EAAS0xB,QAAU,IAEnB6uJ,EAAgCmS,YAAY1yL,GAAU8J,KAAK,SAAUC,GACjE3G,EAAW2I,YAAY,UAAW,sBAAuB,yBACzDwR,IACAlS,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,iCAEpCgR,KAeR,QAAS+lE,GAAkB9iF,GACvBqL,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGrL,SAAWP,QAAQ8e,KAAKve,EAE3B,KAAK,GAAIkjB,KAAK7X,GAAG2hB,YACT3hB,EAAG2hB,YAAY9J,GAAG/hB,YAAcnB,EAASmB,YAtUlDkK,EAAWrL,SAAUktB,gBAAK7hB,EAAA2hB,YAAA9J,GAIzB7X,GAAA8uG,SAwUAt0G,EAAO+7B,MAAM5hC,EAASqvD,MAAO,SAAU4/D,EAAW18D,GAC9C,GAAIs8D,GAAaxjH,EAAG,MAAO7E,OAAS,CACpC6E,GAAG8uG,MAAMj3G,MAtUdgxB,GAAA26F,EAwUSC,SAAUG,MAkCtB,QAAS0jE,GAvUgB3yL,GAwUrB,GAAIge,GAAUtY,EAvUMsY,QAAA,UAwUhB,4CACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBy2K,EAAgCoS,oBAAoB3yL,EAASmvD,YAAYrlD,KAAK,SAAUC,GAKjE,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,UAC/B7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WAEpD9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,YAU3D,cAKP,QAAS4+I,KAELz4J,EAAO8F,GAAG,gCAvUiBhK,UAAA+/J,EAAA5/J,OAAA,gBAAAC,UAAA,kBAyD/B,GAvUI8J,GAAGC,IAwUPD,GAAGgT,YAvUC,EAwUJhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBAtUHzsB,EAAS2c,SAAA,EAwUT1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAvUQA,EAwUX1R,EAAGujH,WAAaA,EAChBvjH,EAAG0jH,WAAaA,EAChB1jH,EAAG6jH,kBAAoBA,EACvB7jH,EAAGy3E,kBAAoBA,EACvBz3E,EAAGsnL,oBAAsBA,EAtUzBtnL,EAAGyyJ,SAAAA,EAwUHzyJ,EAAG8uG,SACH9uG,EAAGrL,YAEHqL,EAAGqU,kBAvUmBhJ,MAAG,IAAAA,MAAA,KAAyBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAwUlDrL,EAAGsU,SAvUStU,EAAIqU,gBAAW,GAwU3BrU,EAAGuU,YAvUa,EAwUhBvU,EAAGwU,qBAvUiB,SAAeC,GAwU/BzU,EAAGuU,YAAcE,EAErB,IAAItC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzE0jJ,EAAe77J,EAvUCvE,OAAUK,UAwU1B69J,EAAc35J,EAAOvE,OAAOM,MAChCmc,mKAhCJ9d,QACKC,OAAO,wCACPe,WAAW,2BAA4B6zL,MAyRhD,WACI,YAOA,SAASC,GAvUoBz+K,EAAA1S,EAAiByC,EAAAH,EAAAN,EAAAC,EAAA2kI,EAAAu2C,EAAAt6H,EAAA2G,EAwU1CvvC,EAvUYJ,EAAiBzX,GAgCpC,QAAY+X,KACTlS,EAAAjK,OAAA49J,CAwUQ,IAAIj+J,IACAyc,UAAWA,EAvUvBvc,OAAA,IA2UQs/K,GAAgCnqG,eAAer1E,GAAM+I,KAAK,SAAUC,GAC7C,MAAfA,EAAIlI,QAvUXwJ,EAAA2hB,YAAAjjB,EAAyBhJ,KACrBsK,EAAA2hB,YAAAxmB,OAAA,GACOd,EAAA8C,OAAA,UAAA,4BAAA6C,EAAArL,SAAAwe,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OAEb4C,EAAYsS,WAAA,GAIHva,EAAA2I,YAAA,QAAA,yBAAA,aAET,SAAaC,GACb5I,EAAA2I,YAAoB,QAAA,mBAAA,cA4WnBuuI,EAAuB4mB,GAG3B,QAAS5mB,GAAuBn5I,EAAWyI,GACvC,GAAIzI,EAAW,CACX,GAAIgkL,IACA3nK,UAAWA,EACX2xC,WAAY,EACZhuD,UAAWA,EAEfo/K,GAAgCvV,gBAAgBma,GAAar7K,KAAK,SAAUC,GACrD,MAAfA,EAAIlI,QACJwJ,EAAGgmD,aAAetnD,EAAIhJ,KAClBsK,EAAGgmD,aAAa7qD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,yBAA2B9F,WAAW,EAAM+F,KAAM,OAtUjF4C,EAAAsS,WAAY,EAyUP/T,GACAA,KAtUJxG,EAAO2I,YAAA,QAAA,yBAAA,aA0UZ,SAxUKC,GAyUJ5I,EAxUI2I,YAAa,QAAA,mBAAA,cA2UzBV,EAAGgmD,gBAKP,QAASI,GAAYc,GACjB,GAAIgoF,GAA6C,OAA3BhoF,EAAK47C,mBAAyDntG,SAA3BuxD,EAAK47C,kBAC1DkjB,EAAW,QAxUIv/D,EAAYS,EAAAQ,UAAA,EAyU/B1nD,GAAG4uG,YAAc5uG,EAAG2uG,QAAQqX,GACvBkpB,IACDlvI,EAAGo1G,cAxUY56G,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA4uG,YAAAyG,aAAAnuD,EAAA47C,kBAAA/7C,UAyUnBvsD,EAAOqI,QAAQ7C,EAxUConD,SAAW,SAAAP,GAyUnBA,EAAEa,WAAas+D,IAvUZkpB,IACCroF,EAAAC,OAAW9mD,EAAAo1G,eAyUfvuD,EAAEi8C,kBAAoB,KAE1B,IAxUIqsC,GAAgC1oF,EAArB,EAAqBS,EAAAQ,SAA0Bs+D,EAyU1Dv/D,GAAUI,EAAEa,UAAYynF,IAvU7BtoF,EAAAC,UACCD,EAAAi8C,kBAAuB,QAI/BosC,GACoB,IAAbzoF,EAAaS,EAAAQ,YAyUR1nD,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG2uG,QAAQ,MAAU0G,aAAgB,KAGhH,QAxUO5uD,GAAAc,GACH,MAAG3gD,UAAW2gD,EAAAjkC,UAAA,IA2UlB,QAASmvF,GAAqB3uD,EAAYvlD,GAvU1CyB,EAAA2uG,QAAShyG,KAAaC,MAAAoD,EAAAknD,KAAAnD,iBAAAC,OAyUlBhkD,EAAG4uG,YAAc5uG,EAAG2uG,QAAQE,KAE5B,IAAI3M,IAtUA/vF,UAASA,EAyUTrc,UAAW+/J,EACX/xG,WAAYA,EACZiD,OAAQ,EAGZmuH,GAxUyBtsF,gBAASsZ,GAAAzjG,KAAA,SAAAC,GAyU9B,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG4mD,YAAcloD,EAAIhJ,KAvUrBsK,EAAGonD,WAyUH,KAAK,GAAI+tD,KAAcn1G,GAAG2uG,QAAS,CAC/B,GAAI71D,IACA2O,SAAUznD,EAAG2uG,QAAQwG,GACrB59F,UAAU,EACVmwC,SAAUytD,EAtUR,WAALA,IACDr8D,EAAAgO,OAAAtsD,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA2uG,QAAAwG,MA0UAn1G,EAAGonD,SAASvvD,KAAKihD,GAtUtBv6C,GAyUKA,IACJyB,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG4uG,cAClE5uG,EAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAAUC,GAvUjB5I,EAAS2I,YAAiB,QAAA,mBAAA,gBAI1B,QAAS0uI,GAAAloF,GAyUL,GAAImoF,KArUJ,IAFAnoF,EAAA3vC,UAAS2vC,EAAY,UAAAvxD,SAAAuxD,EAAA3vC,SACrBvX,EAAAsvI,cAAS,EACLpoF,EAAA3vC,SAqYG,CACH,GAAI43H,GAAgB1oF,EAAUS,EAAKQ,UAG/BknD,GADW,QAAUnoD,EAAUS,EAAKQ,UAAY,GAClCltD,EAAO6P,KAAKrK,EAAGonD,UAAYM,SAAYR,EAAKQ,WAC9D1nD,GAAGo1G,cAAgBxG,EAAY9nD,OAC/BtsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GAC9BJ,EAAUI,EAAEa,UAAYynF,IACxBtoF,EAAE0oF,YAAa,SA7YZ,CACf,GAAKt0I,IACDkX,UAASA,EAyUL40C,OAAQ,EACRjxD,UAAW+/J,EAvUnB/xG,WAAiB9jD,EAAKknD,KAAAnD,iBAAUD,WAyUxBuxD,aAAc,EACdpoD,UAAW/F,EAAK+F,UAChBxF,SAAUP,EAAKO,SACfp/B,KAAK6+B,EAAKsgI,SACV1zK,UAAW5T,EAAWG,OACtB+X,SAAU,EAEd,IAAiC,IAA7BquC,EAAUS,EAAKQ,UAvUfzsD,EAAAo6G,aAAW,MACf,CAyUI,GAAIm6B,GAAah1I,EAAO6P,KAAKrK,EAAGonD,SAAU,SAAUP,GAvUxD,MAAAA,GAAAa,WAAA,QAAgCjB,EAAYS,EAAUQ,UAAK,KACvDo7C,iBAEA,IAAgB,OAAb0sC,GAAa75I,SAAA65I,EAKjB,MAJAz3I,GAAe2I,YAAA,QAAA,mCAAA,UACdV,EAAAgT,YAAW,EAyUPhT,EAAGsvI,cAAe,OAvU1BpoF,EAAA+F,UAAAt3D,OAGAsF,GAAAo6G,aAAAm6B,EAAgCzoF,OAE5BsoF,EAAArvI,EAAAonD,SA2UJ8tH,EAxUkBpsF,aAAA7tF,GAAAwD,KAAA,SAAAC,GACdA,EAAAhJ,KAAWke,aAAY,GAyUnB6+F,EAAqBzyG,EAAGknD,KAAKnD,iBAAiBD,WAAY,WAvUlEtpD,EAAAqI,QAAAwsI,EAAA,SAAAI,GAyUgBj1I,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUF,GAC9BuoF,EAAQ/nF,WAAaR,EAAKQ,UAAY+nF,EAAQ3sC,oBAC9C57C,EAAK47C,kBAAoB2sC,EAAQ3sC,kBAvUtC57C,GACRd,EAAAc,QAIDd,MAEHruD,EAAS2I,YAAA,UAAqBhC,EAAAhJ,KAAYme,QAAA,cAyUzC7T,EAAGgT,YAAa,EAChBhT,EAAGsvI,cAAe,EAClBpoF,EAAK+F,UAAYt3D,SAtUtBoC,EAAe2I,YAAO,QAAUhC,EAAAhJ,KAAWme,QAAM,cAChDqzC,EAAA3vC,UAAgB2vC,EAAO3vC,WA2UxB,SAxUC5W,GAyUA5I,EAAW2I,YAAY,kCAmBnC,QAASgvI,GAAgBC,GACrB,GAAI+3C,IACAv1K,UAAWA,EACX40C,OAAQ4oF,EAAa5oF,OACrBjxD,UAAW65I,EAAa75I,UACxBguD,WAAY6rF,EAAa7rF,WACzBuxD,aAAc,EACdpoD,UAAW0iF,EAAa1iF,UACxBxF,SAAUkoF,EAAaloF,SACvBp/B,KAAKsnH,EAAatnH,KAClBvU,UAAW5T,EAAWG,OACtB+X,SAAU,EAWd88J,GAxUIpsF,aAAgC4+F,GAAAjpL,KAAoB,SAASC,GAyU1C,MAAfA,EAAIlI,OAAgBkI,EAAIhJ,KAAKke,WAE7B7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD87H,EAAap1E,QAAS,GAEtBxiE,EAxUI2I,YAAW,QAAYhC,EAAAhJ,KAAWme,QAAS,WA0UpD,SAxUSlT,GAyUR5I,EAAW2I,YAAY,QAAS,2BAA4B,YAIpE,QAASsoF,GAAgB4mD,GAErB,GAAIj9H,GAAUtY,EAAQsY,QAAQ,UAAW,4CAA8Ctb,WAAW,EAAM+F,KAAM,OAC1GiyI,EAAmBrvI,EAAGonD,QAC1Bz0C,GAAQjT,OAAOjB,KAAK,WAvUjBy2K,EAAYlsF,gBAAA4mD,EAAA7oF,QAAAtoD,KAAA,SAAAC,GAyUY,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,WAC/B7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD4+F,EAAqBzyG,EAAGknD,KAAKnD,iBAAiBD,WAAY,WACtDtpD,EAAOqI,QAAQwsI,EAAkB,SAAUI,GAvU3Cj1I,EAAAqI,QAAA7C,EAAAonD,SAAA,SAAAF,GAyUYuoF,EAAQ/nF,WAAaR,EAAKQ,UAAY+nF,EAAQ3sC,oBAvUhE57C,EAAA47C,kBAAkC2sC,EAAW3sC,kBAyUvB57C,GACAd,EAAYc,QAI5Bd,OAGJruD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,WAvUtE,SAAAlT,GACY5I,EAAA2I,YAAA,QAAA,2BAAA,cAIZ,QAASmvI,GAAA3oF,GACLA,EAAA+F,UAAgBt3D,OACZuxD,EAAK3vC,UAAA,EACNvX,EAAAsvI,cAAmB,EACnB90I,EAAAqI,QAAc7C,EAAAonD,SAAA,SAAgBP,GA0UzBA,EAAE0oF,YAAa,IAGvB,QAzUOkjB,KA2UEz4J,EAAO8F,GAAG,gCAAkChK,UAAW+/J,EAAa5/J,OAAO,YAAYC,UAAU,kBAjV1G,GAAI8J,GAAKC,IACTD,GAAGqU,kBAvUoBhJ,MAAA,IAAAA,MAAwB,KAAUA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAwUzDrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAvUU,SAAAC,GAwUTzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGo1G,iBACHr9G,EAAW2c,SAAU,EArUrB1U,EAAAivI,uBAAwBA,EAwUxBjvI,EAAGyyG,qBAAuBA,EAC1BzyG,EAAGovI,iBAvUKA,EAwURpvI,EAAG6vI,aAvUQA,EAwUX7vI,EAAGomD,YAAcA,EACjBpmD,EAAG0vI,gBAAkBA,EAtUrB1vI,EAAAgpF,gBAAOA,EAwUPhpF,EAAGyyJ,SAASA,CAEZ,IAAIvyJ,GAvUO/F,EAAyBgG,uBAwUhCgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzE0jJ,EAAe77J,EAAOvE,OAAOK,UAC7B69J,EAAc35J,EAAOvE,OAAOM,MAChCmc,wOApCJ9d,QACKC,OAAO,oCACPe,WAAW,uBAAwB8zL,MA2V5C,WACI,YAOA,SAzUOC,GAAkB1+K,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAgY,EAAAJ,EAAAw7D,EAAAjzE,GAkWrB,QAAS+X,KACLF,EAzUWI,mBAAAD,GAAA1T,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,SA0UAwJ,EAAGqS,YAAc3T,EAAIhJ,KAxU1BsK,EAAAsS,WAAe,IA2Uf,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAAS+gB,GAAoBtP,EAAW5T,GAChC4T,GACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAChBsK,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,EACX/T,GACAA,KAEJlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAInD7B,EAAGwtE,QAAQ3rD,gBAAiB,KAC5B7hB,EAAG2hB,eACH3hB,EAAGopL,qBAyCP,QAzUSp1K,KA0UL,GAzUIte,IACJqd,UAAe/S,EAAG+S,UACd8+C,OAAM,EA2UV73D,GAAO8F,GAAG,iBACNpK,KAzUMA,IA1Gd,GAAGsK,GAAAC,IA2UHD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAxUpGrL,EAAAsU,SAAItU,EAAaqU,gBAAA,GAEjBrU,EAAAuU,YAAI,EACJvU,EAAAwU,qBAAyB,SAAOC,GAChCzU,EAAAuU,YAAAE,GA6UAzU,EAAGgT,YAzUY,EA0UfhT,EAAG+S,WAzUK,EA0UR/S,EAAGsS,WAzUK,EA2URva,EAAW2c,SAAU,EACrB1U,EAAGgU,OAzUCA,EA0UJhU,EAAGyhB,oBAzUaA,CA0UhB,IAAItP,GAzUWhY,EAAkBgG,uBAAAwU,gBAAAxC,SA0UjCD,KA2CAlS,EAAG8tE,4BAA8B,SAAUh4E,EAAWyI,GAClD,GAAItD,IACAnF,UAAWA,EAEXF,OAAQ,EACRwK,SAAU,EAvUdgtE,GAAeU,4BAAA7yE,GAAAwD,KAAA,SAAAC,GACX,GAAkB,MAAdA,EAAAlI,OAAc,CACdwJ,EAAAopL,kBAAW1qL,EAAAhJ,IACX,KAAA,GAAAwF,KAAY8E,GAAAopL,kBACZppL,EAAAopL,kBAAWluL,GAAAkxE,aAAApsE,EAAAopL,kBAAAluL,GAAAykI,YAAA,IA0UH3/H,EAAGopL,kBAAkBluL,GAAGmuL,YAAc,IAAMrpL,EAAGopL,kBAAkBluL,GAAGouL,mBAAqB,IAAMtpL,EAAGopL,kBAAkBluL,GAAGusD,SAAW,IAxU9IznD,EAAAopL,kBAAgCluL,GAAAkxE,aAAgB,MAAapsE,EAAKopL,kBAAeluL,GAAAquL,eAGzEvpL,GAAAopL,kBAAoBjuL,OAAS,GA0U7Bd,EAzUI8C,OAAQ,UAAO,mCAAsC6C,EAAAwtE,QAAiB3rD,gBAAMS,aAAAjrB,WAAA,EAAA+F,KAAA,OA2UpF4C,EAAGsS,WAzUI,EACH/T,GA0UAA,MAET,SAzUSoC,GA0UR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAwB5DV,EAAG+vG,YAzUW,SAASj9F,GA0UnB,GAAIpd,IACA6kE,QAAQ,EACR12C,QAAS/Q,EAvUb9Y,GAAI8F,GAAA,iBACApK,KAAIA,KAIZsK,EAAA2vG,YAAS,SAAU78F,GACf,GAAApd,IA0UIqd,WAAW,EACXnd,OAAQ,EAxUhBiuB,QAAS/Q,EACF2+C,QAAA,EA6UHz3D,GAAO8F,GAAG,iBAxUNpK,KAAAA,KA4URsK,EAAGytE,oBAzUa,SAAAD,GA0UZ,GAAI76D,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAxUJtb,WAAA,EACQ+F,KAAI,MA4UZuV,GAzUQjT,OAAKjB,KAAI,WA0Ub2uE,EAzUmBK,oBAAAD,EAAAG,cAAAlvE,KAAA,SAAAC,GACG,MAyUdA,EAzUIlI,QA0UJuB,EAzUI2I,YAAU,UAAA,uBAAA,kBA0UdV,EAAG8tE,4BAzUWN,EAAA13E,YAEdiC,EAAI2I,YAAe,QAAS,yBACxBrJ,WAAK,EA0UL+F,KAAM,QAGf,SAzUKuD,OA4UT,6KAhKXvM,QAxUIC,OAAG,6BACHe,WAAG,wBAAmB+zL,MA+e9B,WACI,YAOA,SAASK,GAzUezvL,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAozE,EAAAp7D,EAAAJ,EAAAzX,GAuWpB,QAAS+X,KACLF,EAzUYI,mBAAqBD,GAAQ1T,KAAA,SAAiBC,GACnC,MAyUfA,EAAIlI,SACJwJ,EAAGqS,YAzUS3T,EAAOhJ,KA0UnBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAzUK,mBAAY,oBA8UhD,QAAS+oL,GAAqB5gK,GAC1BukD,EAzUYa,gCAAsCplD,GAAKpqB,KAAA,SAASC,GA2U5D,GAzUW,MAyUPA,EAzUIlI,OAAG,CA0UPkI,EAzUIhJ,IA0UJ,KAAK,GAzUEwF,KAAAwD,GAAAhJ,KACHgJ,EAAAhJ,KAAAwF,GAAWkxE,aAAY1tE,EAAAhJ,KAAawF,GAAAykI,YAAc,IAClDjhI,EAAKhJ,KAAAwF,GAAWmuL,YAAM,IAAA3qL,EAAAhJ,KAAAwF,GAAAouL,mBAAA,IAAA5qL,EAAAhJ,KAAAwF,GAAAusD,SAAA,IA0UlB/oD,EAAIhJ,KAAKwF,GAAGkxE,aAAe,MAAa1tE,EAAIhJ,KAAKwF,GAAGquL,eAvU7DvpL,GAAA0pL,8BAAelvL,EAAAyC,OAAAyB,EAAAhJ,MAAAE,OAAA,IACdoK,EAAA2pL,2BAAuBnvL,EAAAyC,OAAAyB,EAAAhJ,MAAAE,OAAA,IA0UvBoK,EAAG4pL,qCAAuCpvL,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,IAC9EoK,EAAG6pL,kCAAoCrvL,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,KAC3EoK,EAAGsS,WAAY,IAEpB,SAzUI3R,GACH5I,EAAI2I,YAAgB,GAAA,0BAwV5B,QAzUQ+gB,GAAWtP,GACXA,GACAP,EAAW8P,eAAavP,GAAA1T,KAAA,SAAAC,GACZ,MAAZA,EAAYlI,QACZwJ,EAAA2hB,YAAcjjB,EAAAhJ,MACHsK,EAAA2hB,YAAaxmB,OAAA,GACdd,EAAA8C,OAAa,UAAA,oDAClB9F,WAAa,EACP+F,KAAW,OA6Ud4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAtUnD7B,EAAAwtE,QAAA3rD,gBAAA,KA4OJ,GAAI7hB,GAAKC,IAETD,GAAGqU,kBAzUShJ,MAAc,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0U1BrL,EAAGsU,SAzUStU,EAAAqU,gBAAgB,GA2U5BrU,EAAGuU,YAzUc,EA0UjBvU,EAAGwU,qBAzUoB,SAAWC,GA0U9BzU,EAAGuU,YAzUKE;EA6UZzU,EAAGgT,YAzUY,EA0UfhT,EAAG+S,WAzUS,EA0UZ/S,EAAGsS,WAAY,EAEftS,EAAGyxG,SAAU,EACbzxG,EAAGwxG,cAzUa,EA0UhBxxG,EAAG8pL,iBAzUa,EA0UhB9pL,EAAG+pL,sBAzUgB,EA2UnBhyL,EAAW2c,SAzUU,EA0UrB1U,EAAGwtE,WAEHxtE,EAAGypL,qBAzUiBA,EA2UpBzpL,EAAGyhB,oBAzUSA,CA0UZ,IAAItP,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KA8FAlS,EAAG+vG,YAAc,SAAUj9F,GACvB,GAAIpd,IACA6kE,QAAQ,EACR12C,QAAS/Q,EAETC,WAzUW,EA0UXnd,OAzUQkd,EAAAld,OA6UZoE,GAAO8F,GAAG,iBACNpK,KAAMA,KAKdsK,EAAG2vG,YAzUI,SAAe78F,GAClB,GAAApd,IACI+7D,QAAE,EA0UF77D,OAAQ,EACRiuB,QAAS/Q,EAxUjBk3K,UAAS,EA4ULhwL,GAAO8F,GAAG,iBACNpK,KAAMA,KArUlBsK,EAAAiqL,iBAAA,WA0UQR,IACAzpL,EAAGgT,YAAa,EAzUxBhT,EAAAyxG,SAAA,EACKzxG,EAAAwxG,cAAO,EACPxxG,EAAA8pL,iBAAW,EA2UR9pL,EAAG+pL,sBAAuB,GAI9B/pL,EAAGkqL,2BAA6B,WAzU7BT,IACAzpL,EAAAgT,YAAc,EA2UbhT,EAAGwxG,cAAe,EAzUnBxxG,EAAAyxG,SAAc,EACdzxG,EAAA8pL,iBAAA,EACC9pL,EAAG+pL,sBAAc,GA4UrB/pL,EAAGmqL,kBAAoB,WAxUpBV,IACAzpL,EAAAgT,YAAY,EACZhT,EAAA8pL,iBAAY,EA2UX9pL,EAAG+pL,sBAAuB,EAzU9B/pL,EAAAwxG,cAAqB,EAClBxxG,EAAAyxG,SAAS,GA8UZzxG,EAAGoqL,4BAA8B,WAC7BX,IACAzpL,EAAGgT,YAAa,EAChBhT,EAAG+pL,sBAAuB,EAzU9B/pL,EAAA8pL,iBAAgB,EACZ9pL,EAAAwxG,cAAe,EA2UfxxG,EAAGyxG,SA1US,GA8UhBzxG,EAAG+xB,KA1UI,WA2UH/xB,EAAGgT,YA1UY,wJAsIvB5e,QACKC,OAzUM,6BA0UNe,WAzUQ,6BAAeo0L,MA+gBhC,WACI,YAOA,SAASa,GAAetwL,EA1UIhC,EAAMyC,EAAAH,EAAAwyE,EAAA1yE,EAAAuxE,EAAAjhE,GAuX9B,QAASyH,KA7TLw5D,EAAWK,mBAAAttE,KAAA,SAAAC,GACO,MAAdA,EAAAlI,QACAwJ,EAAOsqL,eAAA5rL,EAAAhJ,KA2UHm3E,EAAmBK,qBAAqBzuE,KAAK,SAAUC,GAzUpC,MAAjBA,EAAAlI,QACAwJ,EAAAuqL,gBAAA7rL,EAAAhJ,KA2UMsK,EAAGsS,WAAY,GAvUlBva,EAAU2I,YAAK,QAAA,yBAAA,wBAGxBV,EAAAsS,WAAS,GA8ULva,EAAW2I,YAAY,QAAS,yBAA0B,uBAE/D,SAAUC,GAzUd5I,EAAc2I,YAAU,QAAK,mBAAA,wBA8PhC,GAAIV,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MA1UQ,KA4URA,MAAS,MAEbrL,EAAGsU,SA1UItU,EAAQqU,gBAAiB,GA4UhCrU,EAAGuU,YA1UI,EA2UPvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YA1UK,EA2URhT,EAAG+S,WAAY,EACf/S,EAAGsS,WA1UK,EA4URtS,EAAGuqL,kBACH,IA1UIlnI,MA2UAtuC,EA1UY5a,EAAgBgG,sBA2UhCpI,GAAW2c,SA1UI,EA2Uf1U,EAAGwX,aA1Uc,EA2UjBxX,EAAGyX,WAAY,EAEfvF,IACAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GA1UQ,GAAGC,QAAA,gBA2UXC,EAAMC,OA1UEC,aAAe9qB,EAAA+qB,SAAW/qB,EAAA+qB,SAAA/qB,EAAAgrB,MA2UtC,KAAKN,EAAMje,KAAKme,GAGZ,MAFA5qB,GA1UIkB,iBA2UJtF,EA1UQ2I,YAAA,OAAA,iCAAA,mBA2UD,GA0CfV,EAAGgU,OA1UK,WA2UJhU,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAzUhBhT,EAAAwX,aAAU,EA2UVxX,EAAGyX,WA1UO,GAGdzX,EAAG0X,MAAA,WACC1X,EAAAgT,YAAc,EA2UdhT,EAAGkU,YACHlU,EAAGwtE,YAGPxtE,EAAG0R,OAAS,WAzUR,GAAAiB,GAAQtY,EAAYsY,QAAA,eAChB,yFACItb,WAAQ,EA2UR+F,KA1UI,MA6UZuV,GAAQjT,OA1UIjB,KAAA,WA2URuB,EAAGgT,YA1US,EA2UZhT,EAAGkU,YACHlU,EAAGwtE,cAMXxtE,EAAGkU,UAAY,WACXlU,EAAGwqL,YAAYp2K,iBAGnBpU,EAAG6rE,eAAiB,SAAU2B,GAC1BxtE,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAzU1BzX,EAAY66B,MAAA,EACT76B,EAAA+S,WAAA,EA2UQ/S,EAAGgT,YAAa,EAChBhT,EAAGwtE,QAAUp5E,QAAQ8e,KAAKs6D,EA1UlC,KAAA,GAAAtyE,KAAA8E,GAAAuqL,gBACYvqL,EAAAuqL,gBAAArvL,GAAAuvL,YAAAzqL,EAAAwtE,QAAAi9G,YACIzqL,EAAAwtE,QAAAk9G,gBAAA1qL,EAA8BuqL,gBAAArvL,KAgV1C8E,EAAGgsE,uBAAyB,SAAUwB,GA1UnC,GAAAzsE,GAAA,yBAAqCysE,EAAS,SAAQ,WAAiB,UAAS,gBA6U3E76D,IA5US66D,EAAA,SAAgB,WAAA,UAAA,mCA4UfnzE,EAAQsY,QAAQ,UA1U/B5R,GACA1J,WAAA,EACI+F,KAAA,OA8UHuV,GAAQjT,OAAOjB,KAAK,WA1UrBitE,EAAaM,uBAAAwB,EAAAm9G,kBAAAlsL,KAAA,SAAAC,GACD,MAAAA,EAAAlI,QACAuB,EAAA2I,YAAA,UAAA,yBAAA,sBA4UCwR,KAzUbna,EAAe2I,YAAA,QAAA,sBACfrJ,WAAkB,EAClB+F,KAAuB,QAGvB,SAAUuD,GA4UD5I,EAAW2I,YAAY,QAAS,8EA1UzCrJ,WAAuB,EA4UV+F,KAAM,UAxUtB,eAgVA4C,EAAG8rE,iBA3UY,SAAc0B,GA4UzB,GAAI76D,GA3UOtY,EAAAsY,QAAY,UA4UnB,4CA1UDtb,WAAe,EACd+F,KAAA,MA8UJuV,GAAQjT,OAAOjB,KAAK,WAChBitE,EAAkBI,iBAAiB0B,EAAQm9G,kBAAkBlsL,KAAK,SAAUC,GA1UtD,MAArBA,EAAAlI,QACLuB,EAAoB2I,YAAA,UAAA,uBAAyC,uBA4UjDwR,KAzUAna,EAAA2I,YAAA,QAAA,uBACCrJ,WAAa,EACV+F,KAAK,QA8Ud,SAAUuD,GA1UT5I,EAAG2I,YAAA,QAAA,2EACArJ,WAAA,EACA+F,KAAA,UA8UR,eAMP4C,EAAG4qL,eAAiB,SAAUC,GAG1B,GAAK7qL,EAAG+S,UA/SL,CA8UC,GAAI83K,IACAJ,UAAWzqL,EAAGwtE,QAAQk9G,gBAAgBD,UACtCK,mBAAoB9qL,EAAGwtE,QAAQs9G,mBAC/BxB,mBAAoBtpL,EAAGwtE,QAAQ87G,mBAC/BqB,iBAAkB3qL,EAAGwtE,QAAQm9G,iBAEjCtnI,GAAIxrD,KAAKgzL,EACT,IAAIE,IACAC,WAAY3nI,EACZjjD,SAAU2U,EAAc1U,OAE5BqrE,GAAkBG,eAAek/G,GAAWtsL,KAAK,SAAUC,GACnDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eACpD3B,KAGAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eAGtD7T,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfswC,MACD,SAAU1iD,GACT5I,EAAW2I,YAAY,+BA1UhCrJ,WAAwB,EACZ+F,KAAA,SA8UP4C,EAAG0X,YA5DY,CACf,GAAImzK,IACAJ,UAAWzqL,EAAGwtE,QAAQk9G,gBAAgBD,UACtCK,mBAAoB9qL,EAAGwtE,QAAQs9G,mBAC/BxB,mBAAoBtpL,EAAGwtE,QAAQ87G,mBAC/BqB,iBAAkB3qL,EAAGwtE,QAAQm9G,iBAxUzCtnI,GAASxrD,KAAAgzL,EACD,IAAAI,IACAD,WAAA3nI,EACIjjD,SAAQ2U,EAAgB1U,OA8U5BqrE,GA3UYC,cAAes/G,GAAWxsL,KAAA,SAAAC,GA4U9BA,EAAIhJ,KA3UIke,aAAW,GA4UnB7b,EA3UQ2I,YAAM,UAAAhC,EAAAhJ,KAAAme,QAAA,eA4Ud3B,KAEAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,eAGtD7T,EAAGgT,YA3US,GA4Ub,SAAUrS,GA1UV5I,EAAU2I,YAAK,iCA6UlBV,EAAG0X,QACH2rC,qIAlOZjvD,QACKC,OAAO,6BACPe,WAAW,iBA1UYi1L,MAmlBhC,WACI,YAOA,SAASa,GA3UYnxL,EAAAhC,EAAAyC,EAAAH,EAAAwyE,EAAAX,EAAA/xE,GA0WjB,QA3UO+X,KAEHg6D,EAAkBK,qBAAA9tE,KAAA,SAAAC,GACL,MAAVA,EAAAlI,QA4UKwJ,EAAGmrL,mBAAqBzsL,EAAIhJ,KAC5BsK,EAAGsS,WAAY,GAzUxBjY,EAAAwH,MAAA,QAA8B,yBAAY,kBAEtC,SAAAlB,GACAtG,EAAAwH,MAAA,QAAuB,mBAAA,mBAmS9B,GAAI7B,GA3UIC,IA6URD,GAAGqU,kBA1UChJ,MAAO,IA6UPA,MAAS,KAETA,MAAS,KAzUTA,MAAA,KAEAA,MAAG,MA6UPrL,EAAGsU,SA3UItU,EAAAqU,gBAAkB,GA6UzBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YA3UI,EA4UPhT,EAAG+S,WA3UI,EA4UP/S,EAAGsS,WA3UI,EA4UPtS,EAAGmrL,qBA1UIhxL,GAAuBgG,sBA4U9BpI,GAAW2c,SAAU,EAGrBxC,IAeAlS,EAAGgU,OA3UI,WA4UHhU,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EA1UjBhT,EAAAwtE,YAQPxtE,EAAA0R,OAAA,WACK,GAAOiB,GAAAtY,EAAAsY,QAAA,eACP,yFA6UWtb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WA3UrBuB,EAAAgT,YAAmB,EAClBhT,EAAAkU,YACDlU,EAAAwtE,cAkVHxtE,EA5UGkU,UAAA,WACClU,EAAAwqL,YAASp2K,iBA+UbpU,EAAGqsE,iBAAmB,SAAUmB,GA3U7BxtE,EAAA66B,MAAA,EACA76B,EAAA+S,WAAA,EACC/S,EAAGgT,YAAA,EA6UHhT,EAAGwtE,QAAUp5E,QAAQ8e,KAAKs6D,IAzU9BxtE,EAAG4sE,yBAAY,SAAAY,GACZ,GAAAzsE,GAAA,yBAAYysE,EAAA,SAAA,WAAA,UAAA,gBAEZ76D,IA2Uc66D,EAAQ,SAAY,WAAa,UAAY,6BA3U3DnzE,EAAkBsY,QAAA,UACjB5R,GACA1J,WAAgB,EACT+F,KAAA,OA+UPuV,GAAQjT,OAAOjB,KAAK,WA3UxBytE,EAAAU,yBAAAY,EAAAi9G,WAAAhsL,KAAA,SAAAC,GAC4B,MAArBA,EAAWlI,QA6UFuB,EAAW2I,YAAY,UAAW,yBAA0B,gBA3U5DwR,KAEDna,EAAW2I,YAAA,QAAA,sBACZrJ,WAAA,EACK+F,KAAA,QA+UR,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,kEAC5BrJ,WAAW,EA3UX+F,KAAA,UA+UT,eAKP4C,EAAGssE,mBAAqB,SAAUkB,GAC9B,GAAI76D,GAAUtY,EAAQsY,QAAQ,UAC1B,4CACItb,WAAW,EACX+F,KAAM,MAGduV,GA5UQjT,OAAGjB,KAAA,WA6UPytE,EA5UII,mBAAmBkB,EAAqB49G,gBAAe3sL,KAAK,SAAAC,GAChD,MAARA,EAAIlI,QA6UJuB,EA5UO2I,YAAA,UAAsB,uBAAA,kBA6U7BwR,KAEAna,EA5UO2I,YAAA,QAAA,uBACHrJ,WAAW,EA6UX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,8DA3U7BrJ,WAAA,EACH+F,KAAA,UA+UL,eAOP4C,EAAGqrL,iBA5UgB,SAAAR,GAEf,GAAG5vL,IACAmxE,aAAYy+G,EAAAz+G,aA6UXk/G,iBAAkBT,EAAWS,iBA1UlCtrL,GAAQ+S,WAgBH9X,EAAGmwL,eAAUP,EAAAO,eA6UbnwL,EAAI0Y,WAAa,EACjBu4D,EAAoBG,iBAAiBpxE,GAAKwD,KAAK,SAAUC,GACjDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBACpD7T,EAAGwtE,YA1UZz1E,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBA8UP3B,IA3UTlS,EAAAgT,YAAiB,EACbhT,EAAA+S,WAAc,GACd,SAAYpS,GACZ5I,EAAO2I,YAAA,+BACPrJ,WAAY,EACZ+F,KAAa,WA9BbnC,EAAA6Y,UAAa,EACbo4D,EAAAC,gBAAAlxE,GAAAwD,KAAA,SAAAC,GACAA,EAAUhJ,KAAAke,aAAA,GA6UD7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBACpD7T,EAAGwtE,YA1UXz1E,EAAkB2I,YAAQ,QAAAhC,EAAAhJ,KAAAme,QAAA,gBAEtB3B,IACAlS,EAAAgT,YAAM,GA6UP,SAAUrS,GACT5I,EAAW2I,YAAY,iCA1U3BV,EAAG0R,kIAiKftd,QA1UIC,OAAG,6BA4UFe,WA3UO,mBAAO81L,MAmhBvB,WACI,YAOA,SAASK,GA5UWxxL,EAAAhC,EAAAyC,EAAAH,EAAAwyE,EAAA1yE,GA8WhB,QAAS+X,KAEL26D,EA5UiBK,qBAAKzuE,KAAA,SAAAC,GACH,MAAXA,EAAAlI,QA6UAwJ,EAAGuqL,gBA5UY7rL,EAAAhJ,KA6UfsK,EAAGsS,WA5UO,GA8UVjY,EAAQwH,MAAM,QAAS,yBAA0B,iBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,kBA8BnD,QAAS2pL,KACL,GAAIxrL,EAAG+S,UASH,CA5UI1Y,EAAA8C,OAAuB,eA6U3B,2BA5U2B6C,EAAAwtE,QAAQi+G,YAAA,gBAC/Bp0L,WAAA,EA6UA+F,KAAM,WAXf,CAAc/C,EAAQ8C,OAAO,eA3UxB,2BAAG6C,EAAAwtE,QAAAi+G,YAAA,gBACHp0L,WAAM,EACH+F,KAAA,QA8PX,GAAI4C,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MA5UQ,KA8URA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GA3UjCzU,EAAAuU,YAAAE,GA+UHzU,EAAGgT,YA5US,EA6UZhT,EAAG+S,WA5US,EA6UZ/S,EAAGsS,WAAY,EACftS,EAAGuqL,mBACHvqL,EAAGwtE,UACH,IAAIz4D,GA5UI5a,EAAkBgG,sBA6U1BpI,GAAW2c,SA5US,EA6UpB1U,EAAGwX,aA5Ua,EA6UhBxX,EAAGyX,WAAY,EACfzX,EAAGwrL,QAAUA,EAEbt5K,IAmBAlS,EAAGgU,OA5US,WA6URhU,EAAG66B,MA5UK,EA6UR76B,EAAG+S,WA5UK,EA6UR/S,EAAGgT,YA5UK,EA6URhT,EAAGwX,aA5UK,EA6URxX,EAAGyX,WA5UK,GAgVZzX,EAAG0X,MA5UK,WA6UJ1X,EAAGgT,YA5UK,EA6URhT,EAAGkU,YACHlU,EAAGwtE,YA8BPxtE,EAAG0R,OA5UK,WA6UJ,GAAIiB,GA5UQtY,EAASsY,QAAA,eA6UjB,yFACItb,WA5UI,EA6UJ+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAChBhT,EAAGkU,YACHlU,EAAGwtE,cAMXxtE,EAAGkU,UAAY,WACXlU,EAAGwqL,YAAYp2K,iBAGnBpU,EAAGgtE,gBAAkB,SAAUQ,GAG3BxtE,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EACfzX,EAAG66B,MAAO,EA3UrB76B,EAAY+S,WAAA,EACT/S,EAAAgT,YAAA,EA6UQhT,EAAGwtE,QAAUp5E,QAAQ8e,KAAKs6D,GAC1BxtE,EAAGwtE,QAAQzvE,KAAO3J,QAAQ8e,KAAKs6D,EAAQk+G,YAAYvoL,aAxSvDnD,EAAAitE,kBAAgB,SAAAO,GA8UZ,GAAI76D,GAAUtY,EAAQsY,QAAQ,UA5U9B,4CACQtb,WAAI,EACJ+F,KAAG,MAgVXuV,GA7UQjT,OAAAjB,KAAQ,WA8UZouE,EAAmBI,kBAAkBO,EAAQi9G,WAAWhsL,KAAK,SAAUC,GA5UzD,MAAfA,EAAUlI,QACDuB,EAAM2I,YAAS,UAAA,uBAAoB,iBA8UnCwR,KA3UJna,EAAY2I,YAAA,QAAA,uBACVrJ,WAAA,EACK+F,KAAA,QAgVR,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,oEAC5BrJ,WAAW,EACX+F,KAAM,UAGf,eAMP4C,EAAG2rL,gBA7Ue,SAAAd,GA+Ud,GAAIv+J,GAA0B32B,QAAnBqK,EAAGwtE,QAAQzvE,KA5UtB8sL,GACIY,YAAGzrL,EAAawtE,QAAAi+G,YAChBpC,YAAGrpL,EAAAwtE,QAAA67G,YACHqC,YAAap/J,EA8UblsB,SAAU2U,EAAc1U,OAI5B,IAAKL,EAAG+S,UA/TJ,CAEA,GAAAuZ,GAAK32B,QAAAqK,EAAAwtE,QAAAzvE,KACD8sL,GACAY,YAAMzrL,EAAAwtE,QAAAi+G,YA8UNpC,YAAarpL,EAAGwtE,QAAQ67G,YACxBoB,UAAWzqL,EAAGwtE,QAAQi9G,UA5UtBiB,YAAYp/J,EAChBlsB,SAAA2U,EAAoB1U,OAgVpBwsE,GA7UQG,gBAAA69G,GAAApsL,KAAA,SAAAC,GA8UAA,EA7UGhJ,KAAAke,aAAA,EACH7b,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAA,gBAgVhC9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gBA3UvD3B,IACClS,EAAAgT,YAAW,EA8UXhT,EAAG+S,WA7UY,EA8Uf83K,MACD,SAAUlqL,GACT5I,EAAW2I,YAAY,+BA5U5BrJ,WAAY,EA8UH+F,KAAM,SAGd4C,EAAG0X,YAtXRm1D,GAAwBC,eAAA+9G,GAAApsL,KAAA,SAAAC,GACpBA,EAAYhJ,KAAAke,aAAA,EA8UH7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBA1UtD9b,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBAEP3B,IACAlS,EAAAgT,YAAkB,GA8Ud,SAAUrS,GACT5I,EAAW2I,YAAY,iCA3U3BV,EAAA0X,0GAmHZtjB,QACKC,OA5UG,6BA6UHe,WA5UO,kBAAkBm2L,MAukBlC,WACI,YAOA,SAASK,GA7UWnhL,EAAW1Q,EAAAQ,EAAqBxC,EAAAyC,EAAAR,EAAuBK,EAAAwyE,EAAA1yE,EAAAuxE,EAAA0B,EAAA1yB,EA8UvEwxB,EA7UoBl6D,EAAWJ,EAAA2vC,EAAA3G,GAoa/B,QA9UI1oC,KAeDF,EAAUI,mBAAAD,GAAA1T,KAAA,SAAAC,GACO,MAAhBA,EAAAlI,SACOwJ,EAAAqS,YAAU3T,EAAAhJ,KAClBsK,EAAcqS,YAAAlX,OAAA,IACF6E,EAAA6xD,OACFl8D,QAAAqK,EAAAwtE,SA+UWD,EAAkBvtE,EAAGwtE,QAAQ3pD,UAzUjD7jB,EAAAsS,WAAmB,IAgVhB,SA9UQ3R,GA+UP5I,EA9UO2I,YAAY,QAAA,mBAAA,oBAkVvBmsE,EA9UkBK,qBAAAzuE,KAAA,SAAAC,GACA,MAAdA,EAAQlI,QA+UJwJ,EAAGuqL,gBAAkB7rL,EAAIhJ,KACzBsK,EAAGsS,WAAY,GAGfva,EAAW2I,YAAY,QAAS,yBAA0B,wBAMtE,QA9UO6rE,KACH,GAAGtxE,IA+UCnF,UAAWkK,EAAGwtE,QAAQ3rD,gBAAgB/rB,UACtCkqB,OAAQhgB,EAAGwtE,QAAQk9G,gBAAgBD,UACnCpuB,UAAWr8J,EAAGwtE,QAAQq+G,mBAAmBlB,iBA7U9C7mI,WAAQ9jD,EAAYwtE,QAAAzpB,iBAAAD,WAChBiD,OAAA/mD,EAAA4xG,OACAxxG,SAAA2U,EAAA1U,OAgVH6rE,GAAoBM,4BAA4BvxE,GAAKwD,KAAK,SAAUC,GAE7C,MAAfA,EAAIlI,QACJwJ,EAAG8rL,iBAAmBptL,EAAIhJ,KAG1BsK,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,kBA5U7D,SAASlB,GACDtG,EAAGwH,MAAU,QAAA,mBAAA,mBAsVrB,QA9UQ4f,GAAAtP,EAAA5T,GACA4T,GACAP,EAAA8P,eAAgCvP,GAAQ1T,KAAc,SAAAC,GACvC,MAAXA,EAAAlI,QACAwJ,EAAM2hB,YAAAjjB,EAAAhJ,MA+UGsK,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EACX+F,KAAM,OA1UtB4C,EAAAsS,WAAA,EACI/T,GACMA,KAgVFlE,EAAQwH,MAAM,QAAS,yBAA0B,mBA5UtD,SAAAlB,GACAtG,EAAAwH,MAAA,QAAA,mBAAA,oBAiXX,QAASoqE,GAAyBw+G,EAAWlsL,GACzC,GAAItD,IACA8wL,QAAStB,EAGb/+G,GAAkBO,yBAAyBhxE,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,SACJwJ,EAAGsqL,eAAiB5rL,EAAIhJ,KACpBsK,EAAGsqL,eAAenvL,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,4CAA8C6C,EAAGwtE,QAAQk9G,gBAAgBe,aAAep0L,WAAW,EAAM+F,KAAM,OAE7I4C,EAAGsS,WAAY,EACX/T,GACAA,OAOhB,QAAS0oD,GAAmBnD,EAAYhuD,EAAWyI,GA5UhD,GAAAulD,EAAA,CACK9jD,EAAA2uG,QAAUhyG,KAAQC,MAAAoD,EAAQwtE,QAAAzpB,iBAAAC,MAC1B,IAAAwuD,GAAAh4G,EAAAmI,KAAA3C,EAAA2uG,QA+UA3uG,GAAGuhG,QA9UCgR,EAAWC,GA+UfxyG,EAAG4uG,YA9UO5uG,EAAA2uG,QAAAE,MA+UVttD,EAAiBqnC,gBAAgB9kC,GAAYrlD,KAAK,SAAUC,GACxD,GAAmB,MAAfA,EAAIlI,OAAgB,CA7UxBwJ,EAAO4mD,YAAKloD,EAAYhJ,KAC5BsK,EAAAonD,WACQ,KAAI,GAAA+tD,KAAgBn1G,GAAA2uG,QAAA,CACpB,GAAA71D,IACA2O,SAAAznD,EAAA2uG,QAAAwG,GACG59F,UAAA,EACHmwC,SAAWytD,EAED,WAANA,IA+UIr8D,EAAKgO,OAAStsD,EAAOyC,OAAO+C,EAAG4mD,aAC3Ba,SAAYznD,EAAG2uG,QAAQwG,MA3UnCn1G,EAAAonD,SAAWvvD,KAAAihD,GAgVX94C,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAChCa,SAAYznD,EAAG4uG,cAInB5uG,EAAGsS,WAAY,EACX/T,GACAA,QAEJxG,GAAW2I,YAAY,QAAS,yBAA0B,eA5UlE,SAAaC,GACb5I,EAAa2I,YAAW,QAAA,mBAAA,oBAGxBV,GAAAi0B,WAkVR,QA9USs+E,GAAGC,GA+UR,GA9UIjR,GAAAiR,EAAA,EAmVJ,OAJAh4G,GAAOqI,QA9UK2vG,EAAS,SAAA3rD,GA+UbJ,EA9UII,GAAWJ,EAAA86C,KA+UfA,EAAU16C,KAEX06C,EAIX,QAAS96C,GA9UEc,GA+UP,MAAO3gD,UA9UC2gD,EAAWjkC,UAAY,IAiVnC,QAAS8iC,GA9UEc,GAgVP,GA9UIA,EAAI47C,kBAAkB,CACtB,GAAIt8C,GAAA,QAAa5/C,SAAAsgD,EAAAQ,SAAApkC,UAAA,IAAA,EA+UjBtjB,GAAG4uG,YA9Uc5uG,EAAG2uG,QAAQnoD,GA+U5BxmD,EAAGo1G,cA9Uc56G,EAAGyC,OAAQ+C,EAAA4mD,aACxBa,SAAWznD,EAAG4uG,YACdyG,aAAanuD,EAAA47C,kBAAA/7C,SAgVjBvsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GAC9BA,EAAEa,WAAalB,IA7UvBK,EAAAC,OAAmB9mD,EAAAo1G,iBAiVfluD,EAAKQ,WAAa1nD,EAAGuhG,UAErBvhG,EAAG4xG,OA9UC1qD,EAAW47C,kBAAY/7C,QA+U/B/mD,EAAG8uG,SACHviC,KAKR,QAASzmB,GA9UchwD,EAAYyI,GAgV/B,GAAItD,IACAnF,UAAWA,EAEf8kD,GA9UOgC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GA+UgB,MAAfA,EAAIlI,QACJwJ,EAAG68C,eAAiBn+C,EAAIhJ,MACnBsK,EAAG68C,eAAe1hD,OAAS,EAC5Bd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EA7U1B+F,KAAA,OAGT4C,EAAAmmD,eAAA,EAEgBnmD,EAAAsS,WAAA,EAgVI/T,GACAA,KA7UhBlE,EAAAwH,MAAqB,QAAA,yBAAwC,aAiVtD,SAAUlB,GA9UdtG,EAAAwH,MAAmB,QAAA,mBAAA,cA4qBtB,QAAS6V,KA9UL1X,EAAA+S,WAAI,EAgVJ/Y,EA/UI8F,GAAA/H,EAAWyE,eAmWnB,QAAS+wE,GAAkBC,GACvBxtE,EAAG66B,MAAO,EACV76B,EAAG2tE,aAAeH,EAAQG,aA9U3B3tE,EAAApK,OAAA43E,EAAiB53E,OAgVhBoK,EAAG+S,WAAY,EAIf/S,EAAGgsL,yBAA0B,EAC7BhsL,EAAGwtE,QAAUp5E,QAAQ8e,KAAKs6D,GA9U1BxtE,EAAA4tE,WAAIJ,EAAgBI,WAgVpB5tE,EAAGwtE,QA/UC1Z,KAAW1/D,QAAA8e,KAAAs6D,EAAAj1C,KAiVf,KA/UI,GAAAr9B,KAAA8E,GAAAqS,YACArS,EAAAqS,YAAanX,GAAAiX,YAAAnS,EAAAwtE,QAAAr7D,YACbnS,EAAAwtE,QAAYr6D,gBAAAnT,EAAAqS,YAAAnX,GAoVhBumB,GA/UazhB,EAAAwtE,QAAAr7D,UAAA,WAiVT,IAAK,GA/UGjX,KAAA8E,GAAO2hB,YAgVP3hB,EAAG2hB,YAAYzmB,GAAGpF,YAAckK,EAAGwtE,QAAQ13E,YAE3CkK,EAAGwtE,QAAQ3rD,gBAAkB7hB,EAAG2hB,YAAYzmB,KAQxD,KAAK,GAAIA,KAAK8E,GAAG8rL,iBACT9rL,EAAG8rL,iBAAiB5wL,GAAGkwL,iBAAmBprL,EAAGwtE,QAAQu+G,UA9U9D/rL,EAAAwtE,QAAey+G,qBAAYjsL,EAAA8rL,iBAAA5wL,GA4V1B,KAAK,GAAIA,KA/UG8E,GAAAuqL,gBAgVJvqL,EAAGuqL,gBA/UWrvL,GAAAuvL,YAAWzqL,EAAAwtE,QAAAxtD,SAgVzBhgB,EAAGwtE,QA/UIk9G,gBAAA1qL,EAAAuqL,gBAAArvL,GAsVf+wE,GA/UmBjsE,EAAAwtE,QAAYxtD,OAAS,WAgVpC,IAAK,GA/UG9kB,KAAA8E,GAAAsqL,eACAtqL,EAAAsqL,eAAMpvL,GAAAyvL,mBAAA3qL,EAAAwtE,QAAA6uF,YAgVNr8J,EAAGwtE,QAAQq+G,mBAAqB7rL,EAAGsqL,eAAepvL,MAM9D4qD,EAAqB9lD,EAAGwtE,QAAQ13E,UAAW,WACvC,IAAK,GAAIoF,KAAK8E,GAAG68C,eACT78C,EAAG68C,eAAe3hD,GAAG4oD,aAAe9jD,EAAGwtE,QAAQ1pB,aA9U5D9jD,EAAewtE,QAAAzpB,iBAAY/jD,EAAA68C,eAAA3hD,MAqV1B+rD,EAAmBjnD,EAAGwtE,QAAQ1pB,WAAY,WAEtC,IAAK,GAAI5oD,KAAK8E,GAAGonD,SACTpnD,EAAGonD,SAASlsD,GAAG6rD,SAAW/mD,EAAGwtE,QAAQzmB,SACrC/mD,EAAGknD,KAAK47C,kBAAoB9iG,EAAGonD,SAASlsD,MAtUpD8E,EAAAo0G,aAAer8G,EAAK8D,SAAY,kBAAAu4G,aAAA33G,IAoVhC,KAAK,GAAIvB,KA/UG8E,GAAAwtE,QAgVRxtE,EAAGwtE,QA/UQpB,aAAApsE,EAAAwtE,QAAAmyD,YAAA,IAgVP3/H,EAAGwtE,QA/UC67G,YAAW,IAAYrpL,EAAAwtE,QAAS87G,mBAAA,IAAAtpL,EAAAwtE,QAA4C/lB,SAAA,IAgVhFznD,EAAGwtE,QA/UKpB,aAAW,MAAApsE,EAAAwtE,QAAA+7G,gBArd/B,GAAIvpL,GAAKC,IAETD,GAAGqU,kBACChJ,MA7UO,IA+UPA,MAAS,KAETA,MAAS,KAETA,MA7UG,KA+UHA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EA5UjBvU,EAAGwU,qBAAmB,SAAUC,GA8U5BzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WA7US,EA8UZ/S,EAAGsS,WA7US,EA8UZtS,EAAGwhI,eA7UK,EA8URxhI,EAAGyhI,eA7Ua,EA+UhBzhI,EAAGyhB,oBA7UgBA,EA8UnBzhB,EAAGinD,mBA7UgBA,EA8UnBjnD,EAAG8lD,qBA7UaA,EA8UhB9lD,EAAGomD,YAAcA,EACjBpmD,EAAGutE,kBA7USA,EA8UZvtE,EAAGisE,yBA7UyBA,EA8U5BxhE,EAAOrM,SA7UI,GAAUH,UAgVrB+B,EAAGuqL,kBACH,IACIx1K,GA7UQ5a,EAA4BgG,uBA8UpCgS,EA7UQhY,EAAagG,uBAAAwU,gBAAAxC,SA8UzBpa,GA7UQ2c,SAAA,EA8UR1U,EAAGwtE,QA7USxzE,EAAQvE,OAAKC,KAENC,QA6UfqE,EAAOvE,OA7UKC,OA8UZsK,EAAG6xD,MAAQ73D,EA7UIvE,OAAAC,KAAAm8D,MA8Uf7xD,EAAGu6D,OA7USvgE,EAAAvE,OAAWC,KAAA6kE,OA8UvBv6D,EAAGyxD,OAASz3D,EAAOvE,OAAOC,KAAK+7D,OAC/BzxD,EAAGksL,WA7UKlyL,EAAAvE,OAAAC,KAAAw2L,WA8URlsL,EAAGmsL,iBA7UQnyL,EAAavE,OAAAC,KAAAy2L,iBA8UpBnsL,EAAGyxD,SACHzxD,EA7UGyhI,eAAe,EA8UlBzhI,EAAGwhI,eA7UY,EA8UfxhI,EAAGosL,UA7UK,GAgVRpsL,EAAG6xD,OACH7xD,EAAGwhI,eAAgB,EACnBxhI,EAAGyhI,eAAgB,EACnBzhI,EAAGwtE,WACHxtE,EAAGu6D,QAAS,EACZv6D,EAAGyxD,QAAS,GAMRzxD,EAAGyxD,QA5UVzxD,EAAAyhI,eAAA,EACTzhI,EAAAwhI,eAAA,EA8UgBxhI,EAAG6xD,OAAQ,EACX7xD,EAAGu6D,QAAS,IA5UhBv6D,EAAAyhI,eAAA,EACIzhI,EAAAwhI,eAAmB,EA+UnBxhI,EAAG6xD,OAAQ,EACX7xD,EAAGyxD,QAAS,IASxBv/C,IAzOAlS,EAAG8tE,4BAAwB,SAAAh4E,EAAAyI,GACvB,GAAGtD,IA+UCnF,UAAWA,EA5UhBF,OAAA,EA+UKwK,SAAU,EA1UdgtE,GAAUU,4BAAA7yE,GAAAwD,KAAA,SAAAC,GACK,MAAZA,EAAAlI,SACAwJ,EAAAopL,kBAAa1qL,EAAAhJ,KAiVJsK,EAAGopL,kBAAkBjuL,OAAS,GAC9Bd,EAAQ8C,OAAO,UAAW,mCAAqC6C,EAAGwtE,QAAQ3rD,gBAAgBS,aAAejrB,WAAW,EAAM+F,KAAM,OAEpI4C,EAAGsS,WAAY,EACX/T,GACAA,MAET,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAExDolD,EAAqBhwD,IAwIzBkK,EA/UG5H,OAAA,WAOC,GAAGgH,GAAc7E,EAAA8E,MAgVbhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aA9UtBrK,YAAa,qEACbE,WAAY,8BACZC,aAAY,KACZ+H,KAAA,KACAoC,SAAA,SAgVKC,UAAU,EA9UfyQ,SACA3N,MAAA,WACA,MAAAvC,GAAuBwtE,WAI1BpuE,GAAkBM,OAAIjB,KAAA,aAGnB,eAKHuB,EAAGqsL,eAAiB,WAOhB,GAAGjtL,GAAA7E,EAA0B8E,MACzBhI,WAAW,EACXiI,eAAG,cACHC,gBAAG,aACHrK,YAAG,sEAgVHE,WAAY,+BACZC,aAAc,KA9Ud+H,KAAG,KACHoC,SAAG,SACHC,UAAG,EACHyQ,SACG3N,MAAA,WACA,MAASvC,GAAAwtE,WAmVhBpuE,GAAcM,OAAOjB,KAAK,aAGvB,eAMPuB,EAAG8kI,aA/UY,WAgVX,GAAInyH,GA/UOtY,EAAQsY,QAAA,UAgVf,mDACAtb,WAAW,EACX+F,KAAM,MAIVuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAI85B,GAAOv4B,EAAGwtE,QAAQ1Z,IA7U9BsZ,GAAA0B,oBAAA9uE,EAAAwtE,QAAAG,aAAAp1C,GAAA95B,KAAA,SAAAC,GAgV+B,MAAfA,EAAIlI,QA9UJuB,EAAA2I,YAAA,UAAA,6BAAA,kBAgVA1G,EAAO8F,GAAG/H,EAAWyE,gBAErBzE,EAAW2I,YAAY,QAAS,mCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,mCAC5BrJ,WAAW,EACX+F,KAAM,UA3UlB,eAqVJ4C,EAAGssL,aAAe,WACd,GAAI35K,GAAUtY,EAAQsY,QAAQ,UAC1B,oDACAtb,WAAW,EACX+F,KAAM,MAeVuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAI85B,GAAOv4B,EAAGwtE,QAAQ1Z,IACtBsZ,GAAoB2B,4BAA4B/uE,EAAGwtE,QAAQG,aAAcp1C,GAAM95B,KAAK,SAAUC,GACvE,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,sCAAuC,kBA9UhF1G,EAAA8F,GAAA/H,EAAqByE,gBAEtBzE,EAAc2I,YAAQ,QAAgB,4CAC3BrJ,WAAQ,EACR+F,KAAG,QAGd,SAAUuD,GAgVN5I,EAAW2I,YAAY,QAAS,4CA9UxCrJ,WAAoB,EAgVR+F,KAAM,UAGf,eAKP4C,EAAGuxE,SAAW,WACV,GA/UG5+D,GAAUtY,EAAKsY,QAAA,UACd,6CAgVAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WAEhB,GAAI85B,GAAOv4B,EAAGwtE,QAAQ1Z,IA9U9BsZ,GAAS4B,uBAAyChvE,EAAAwtE,QAAAG,aAAAp1C,GAAA95B,KAAA,SAAAC,GAC/B,MAAXA,EAAWlI,QACXuB,EAAA2I,YAAuB,UAAe,wBAA0B,kBACxD1G,EAAI8F,GAAA/H,EAAgByE,gBAEpBzE,EAAQ2I,YAAY,QAAY,0BAC5BrJ,WAAQ,EAgVR+F,KA/UI,QAkVb,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,0BA9U5BrJ,WAAG,EACH+F,KAAI,UAkVb,eAMP4C,EAAGusL,qBAAuB,WACtB,GAAI55K,GAAUtY,EAAQsY,QAAQ,UAC1B,sDACAtb,WAAW,EA9UhB+F,KAAA,MAkVCuV,GAAQjT,OAAOjB,KAAK,WA7UhB,GAAA85B,GAAUv4B,EAAAwtE,QAAA1Z,IAgVVsZ,GAAoB6B,8BAA8BjvE,EAAGwtE,QAAQG,aAAcp1C,GAAM95B,KAAK,SAAUC,GACzE,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,iCAAkC,kBA9UhF1G,EAAA8F,GAAoB/H,EAAAyE,gBAETzE,EAAA2I,YAAwB,QAAA,0BAgVnBrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GA9UT5I,EAAG2I,YAAY,QAAA,0BACXrJ,WAAA,EACA+F,KAAA,UAkVT,eAzUP4C,EAAAwsL,QAAS,WACL,GAAI75K,GAAMtY,EAAAsY,QAAA,UACN,6CAgVAtb,WAAW,EACX+F,KAAM,MAKVuV,GAAQjT,OA/UIjB,KAAQ,aAGZkvE,aAAI3tE,EAAAwtE,QAAAG,aAgVJ8+G,SA/UIzsL,EAAAwtE,QAAAi/G,SAgVJl0J,KAAMv4B,EAAGwtE,QAAQj1C,KACjB5kB,WAAYoB,EAAc1U,OAC1BzK,OAAQ,GAKZw3E,GAAoB8B,sBAAsBw9G,WAAWjuL,KAAK,SAAUC,GA9UxD,MAAZA,EAAYlI,QACTuB,EAAe2I,YAAS,UAAQ,uBAAiB,kBAChD1G,EAAU8F,GAAA/H,EAAeyE,gBAE1BzE,EAAc2I,YAAW,QAAA,yBAC5BrJ,WAAiB,EACL+F,KAAA,QAkVT,SA/UUuD,GAgVT5I,EA/UQ2I,YAAW,QAAA,yBAgVfrJ,WA/UQ,EAgVR+F,KAAM,UAGf,eAMP4C,EAAG+kI,YAAc,WACb,GAAIpyH,GA/UQtY,EAAGsY,QAAA,UAgVX,4CACAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OA/UIjB,KAAI,WAgVZ,GAAI85B,GAAOv4B,EA/UCwtE,QAAA1Z,IAgVZsZ,GA/UW+B,0BAAAnvE,EAAAwtE,QAAAG,aAAAp1C,GAAA95B,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,QAgVAuB,EAAW2I,YAAY,UAAW,2BAA4B,kBA9UnE1G,EAAU8F,GAAK/H,EAAAyE,gBAiVVzE,EAAW2I,YAAY,QAAS,4BA9UrCrJ,WAAA,EACA+F,KAAU,QAkVV,SAAUuD,GA9UZ5I,EAAW2I,YAAS,QAAA,6BACrBrJ,WAAkB,EACf+F,KAAQ,UAkVZ,eA1UP4C,EAAA2sL,oBAAmB,WACf,GAAAh6K,GAAOtY,EAASsY,QAAW,UAgVvB,4CACAtb,WAAW,EA9UnB+F,KAAS,MAkVLuV,GA/UQjT,OAAAjB,KAAW,WACf,GAAG85B,GAAAv4B,EAAAwtE,QAAiB1Z,IACpBsZ,GAAmBgC,kCAA8BpvE,EAAAwtE,QAAAG,aAAAp1C,GAAA95B,KAAA,SAAAC,GAC9B,MAAfA,EAAAlI,QACAuB,EAAA2I,YAAqB,UAAA,2BAAkB,kBAgVnC1G,EAAO8F,GAAG/H,EAAWyE,gBA7UrBzE,EAAE2I,YAAa,QAAU,4BACvBrJ,WAAY,EAgVV+F,KAAM,QAGf,SAAUuD,GA9UT5I,EAAG2I,YAAc,QAAA,6BAClBrJ,WAAQ,EACX+F,KAAA,UAkVD,eAKP4C,EAAG4mE,MA/UK,WAgVJ,GAAIj0D,GAAUtY,EAAQsY,QAAQ,UA9U9B,0CACItb,WAAQ,EAgVR+F,KA/UI,MAkVRuV,GAAQjT,OAAOjB,KA/UC,WAgVZ,GAAI85B,GAAOv4B,EA/UCwtE,QAAM1Z,IAgVlBsZ,GAAoBiC,sBAAsBrvE,EAAGwtE,QAAQG,aAAcp1C,GAAM95B,KAAK,SAAUC,GACjE,MAAfA,EAAIlI,QACJuB,EA/UG2I,YAAA,UAAA,uBAAA,kBACH1G,EAAG8F,GAAA/H,EAAgByE,gBAEpBzE,EAAY2I,YAAA,QAAA,yBACXrJ,WAAA,EACA+F,KAAA,QAkVL,SAAUuD,GA9Ud5I,EAAe2I,YAAA,QAAA,yBACNrJ,WAAM,EAgVN+F,KAAM,UAGf,eAMP4C,EAAGgU,OAAS,WACRhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,GAOpBhT,EAAG0R,OA/UK,WAgVJ,GA/UIiB,GAAAtY,EAAYsY,QAAA,eACZ,yFACAtb,WAAM,EACN+F,KAAA,MAkVJuV,GA/UQjT,OAAOjB,KAAA,WAgVXuB,EAAG+S,WA/UY,EAgVf/Y,EAAO8F,GAAG/H,EAAWyE,kBA8G7BwD,EAAGytE,oBA/Ua,SAAWD,GAgVvB,GAAI76D,GA/UQtY,EAAMsY,QAAA,UAgVd,4CACAtb,WAAW,EA9UZ+F,KAAA,MAkVHuV,GAAQjT,OAAOjB,KAAK,WAChB2uE,EAAoBK,oBAAoBD,EAAQG,cAAclvE,KAAK,SAAUC,GA9U3D,MAAZA,EAAAlI,QACNuB,EAAkB2I,YAAQ,UAAA,uBAAA,kBAC1BwR,KAEMna,EAAA2I,YAAA,QAAA,yBAgVMrJ,WAAW,EACX+F,KAAM,QA5UlB,SAAWuD,OAkVZ,eAYP8J,EAAO4P,MAAQ,GAAIZ,MAGnBzZ,EAAG4sL,kBAAoB,SAAU/B,GAC7B,GAAK7qL,EAAG+S,UAxSJ,CAkVA,GAAI83K,IACAl9G,aAAc3tE,EAAG2tE,aAxUjBp1C,KAAMv4B,EAAGwtE,QAAQ1Z,KACjB24H,SAAAzsL,EAAYwtE,QAAAi/G,SAmVZ94K,WAAYoB,EAAc1U,OA5UlB,IAARL,EAAApK,SAgVAi1L,EA/UIj1L,OAAW,EAiVnB,IAAIwI,GA/UO,GAAAH,SAgVXG,GA/UQF,OAAA,OAAW8B,EAAAo0G,cAgVnBh2G,EAASF,OA/UG,OAAWvB,KAAAqkB,UAAA6pK,IAiVvBz9G,EAAoBE,iBAAiBlvE,GAAUK,KAAK,SAAUC,GACxC,KAAdA,EAAIlI,OA9UTuB,EAAe2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,kBAEV9b,EAAW2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAiVf7T,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA9UpB/Y,EAAY8F,GAAA/H,EAAAyE,gBAiVR,SAAUmE,GACT5I,EAAW2I,YAAY,+BACnBrJ,WAAW,EACX+F,KAAM,aA9EC,CAGf,GAAIytL,IA9UT/0L,UAAAkK,EAAuBwtE,QAAA3rD,gBAAY/rB,UAC9BkqB,OAAUhgB,EAAAwtE,QAAQk9G,gBAAQD,UAC1BpuB,UAAAr8J,EAAAwtE,QAAAq+G,mBAAAlB,iBACAoB,QAAW/rL,EAAAwtE,QAAAy+G,qBAAAb,eAiVPqB,SAAUzsL,EAAGo0G,aAAa33G,KAC1BqnD,WAAY9jD,EAAGwtE,QAAQzpB,iBAAiBD,WA9UxCvrB,KAAAv4B,EAAOwtE,QAAK1Z,KAGhB8Z,WAAA5tE,EAAAwtE,QAAoBI,WAChB7mB,OAAQ/mD,EAAA4xG,OAgVRlrD,OA/UI1mD,EAAAwtE,QAAW9mB,OAgVfmmI,eA/Uc,GAgVd/4K,UA/UOiB,EAAA1U,QAkVPjC,EA/UQ,GAAMH,SAgVlBG,GAASF,OAAO,OAAQ8B,EAAGo0G,cAC3Bh2G,EAASF,OAAO,UAAWvB,KAAKqkB,UAAU6pK,IAC1CzsL,EA/UGF,OAAU,UAAKvB,KAAAqkB,UAAAjM,EAAA1U,SAgVlB+sE,EA/UeC,iBAAqBjvE,GAAAK,KAAA,SAA0BC,GACtDA,EAAAhJ,KAAAke,aAAW,GACX7b,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,kBAgVN7Z,EAAO8F,GAAG/H,EAAWyE,gBA7U9BzE,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iBAiVP7Z,EAAO8F,GAAG/H,EAAWyE,eACrBwD,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,iCA7U3BgX,MAwZRjN,EA/UIuqG,YAAc,SAAQ74G,GAClBA,IACAA,EAAAsN,OAAWiE,MAAAvS,OAAA,GACX6E,EAAMo0G,aAAAj4G,EAAAsN,OAAAiE,MAAA,GAgVF1N,EAAGm0G,OAAS,GA7UZn0G,EAAAm0G,OAAY,4SA3nB5B//G,QACKC,OAAO,6BACPe,WAAW,mBA7Uew2L,MA4yCnC,WACI,YAOA,SAASkB,GA/UyBriL,EAAAxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAAizE,EAAAx7D,GAgV9B,GAAI5R,GA/UIC,IAgVRD,GAAGsU,SA/US,KAgVZtU,EAAGgT,YA/Ua,EAgVhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAAW2c,SA/US,CAgVJva,GA/UUgG,uBAAAwU,gBAAAxC,SAkV1BnS,GAAG+sL,qBA/UuB,WAgVtB,GAAIjoK,IACA6oD,aA/UQprE,EAAWorE,aAgVnB73E,UA/UQyM,EAAMzM,UAgVdF,OAAQ2M,EAAM3M,OACd+uB,gBA9UDlC,MAAYziB,EAAA5H,OAAAusB,eAgVPC,WAAczqB,EAAsBgG,uBAAuBE,QA1UpE+sE,GAAqBuB,yBAAA7pD,GAAArmB,KAAA,SAAAC,GACL,MAAZA,EAAAlI,QACAuB,EAAa2I,YAAA,UAAA,oCAAA,kBAgVR4b,EAAkBrN,QA9UrBjV,EAAQ8F,GAAA/H,EAAAyE,gBAENzE,EAAG2I,YAAW,QAAA,wBAgVTrJ,WAAW,EACX+F,KAAM,QAGf,SA/UCuD,GACA5I,EAAW2I,YAAA,QAAA,wBACXrJ,WAAM,EAgVF+F,KAAM,UAKlB4C,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,8LAhDlCnpB,QACKC,OA/UO,6BAgVPe,WAAW,8BAA+B03L,MAmDnD,WACI,YAOA,SAASE,GAA6BviL,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,EAAsBizE,EAAqBx7D,GACpK,GA/UI5R,GAAGC,IAgVPD,GAAGsU,SA/UI,KAgVPtU,EAAGgT,YA/UI,EAgVPhT,EAAG+S,WA/UY,EAgVf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EA/UQ2c,SAAO,CACAva,GAAQgG,uBAAiCwU,gBAAAxC,SAkVxDnS,GAAGitL,6BAA+B,WAC9B,GAAInoK,IA9UJ6oD,aAAAprE,EAAuBorE,aAgVnB73E,UAAWyM,EAAMzM,UA9UjBF,OAAK2M,EAAS3M,OAgVd+uB,gBACIlC,MAASziB,EAAG5H,OAAOusB,eACnBC,WA/UOzqB,EAA6BgG,uBAAYE,QAoVxD+sE,GAAoByB,iCAAiC/pD,GAAWrmB,KAAK,SAAUC,GACxD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,6CAA8C,kBA9UnF4b,EAAYrN,QACTjV,EAAG8F,GAAA/H,EAAiByE,gBAiVpBzE,EAAW2I,YAAY,QAAS,kCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,iCAC5BrJ,WAAW,EACX+F,KAAM,UAKlB4C,EAAG0R,OA/US,WAgVR4K,EA/UWiB,QAAQ,8LA+R3BnpB,QACKC,OA/UM,6BAgVNe,WA/UM,+BAAY43L,MAkY3B,WACI,YAOA,SAASE,GAAuBziL,EAAQ1Q,EAAOQ,EAAWxC,EAAYyC,EAAQR,EAAQK,EAASwyE,EAAoB1yE,EAAuBuxE,EAAmB0B,EAAqB1yB,EAC9KwxB,EAAqBl6D,EAAgBwoC,EAAa5oC,EAAwB2vC,EAAkB3G,EAAsBq9B,GA6DlH,QAAS/lE,KA7UTF,EAASI,mBAAoBD,GAAA1T,KAAA,SAAAC,GACN,MAAhBA,EAAAlI,SAgVKwJ,EAAGqS,YAAc3T,EAAIhJ,KACjBsK,EAAGqS,YAAYlX,OAAS,IA9UjC6E,EAAgB6xD,OACel8D,QAAlBqK,EAAOwtE,SAMxBxtE,EAAAsS,WAAoB,IAiVhB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAe5D,QAASysL,GA/UGr3L,GAiVRkK,EAAGsS,WAAY,EACf2lE,EAAmBK,yBAAyBxiF,GAAW2I,KAAK,SAAUC,GA7UlE,GAAgB,MAAhBA,EAAAlI,OAAwB,CACxBwJ,EAAAotL,eAAgB1uL,EAAWhJ,IAC3B,KAAS,GAAAwF,KAAO8E,GAAAotL,eAChBptL,EAAAotL,eAAoBlyL,GAAAkxE,aAAiBpsE,EAAUotL,eAAelyL,GAAAykI,YAAK,IACvD3/H,EAAAotL,eAAKlyL,GAAcmuL,YAAM,IAAArpL,EAAAotL,eAAAlyL,GAAAouL,mBAAA,IAAAtpL,EAAAotL,eAAAlyL,GAAAusD,SAAA,IAC7BznD,EAAAotL,eAAWlyL,GAAYkxE,cAiVtBpsE,EA/UEotL,eAAAjyL,OAAA,GACHd,EAAA8C,OAAW,UAAY,oDAgVnB9F,WAAW,EA9UZ+F,KAAG,OAGV4C,EAAAsS,WAAW,EAgVP/T,UA9URA,eAmVIlE,GAAQwH,MAAM,QAAS,yBAA0B,0BAEtD,SA/UKlB,GAgVJtG,EAAQwH,MAAM,QAAS,mBAAoB,2BAKnD,QAASwrL,GAAWl7K,GAEhBP,EA/UqB8P,eAAQvP,GAAA1T,KAAA,SAAAC,GAgVN,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAChBsK,EAAG2hB,YAAYxmB,OAAS,GA9U7BpD,EAAY2I,YAAc,OAAA,iDAAA,WAiV1BV,EAAGsS,WAAY,GA7UfjY,EAAAwH,MAAW,QAAS,yBAAA,gBAiVzB,SA/UKlB,GACJtG,EAAAwH,MAAS,QAAO,mBAAW,iBAiV/B7B,EAAG6hB,gBAAiB,KACpB7hB,EAAGotL,kBAIP,QAAS3rK,GA/UkBtP,EAAY5T,GAgV/B4T,IACAnS,EAAG2hB,eACH/P,EA/UmB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACL,MAAVA,EAAOlI,QAgVHwJ,EAAG2hB,YAAcjjB,EAAIhJ,MA9UhBsK,EAAA2hB,YAAKxmB,OAAA,GACdd,EAAW8C,OAAY,UAAA,oDACnB9F,WAAW,EACL+F,KAAA,OAmVN4C,EAAGsS,WAAY,EACX/T,GACAA,KAEJlE,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAInD7B,EAAGstL,YAAYzrK,gBAAiB,KAChC7hB,EAAG2hB,eACH3hB,EAAGstL,YAAY9wI,YAAY,KAG/B,QAAS01D,GAAchqD,EAAO3pD,GAE1B,GAAI0+C,IAAc,CAClBvC,GAAmBmQ,iBAAiB3C,EAAOjL,GAAax+C,KAAK,SAAUC,GAChD,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,yBAE1DnC,GACAA,KA9UL,SAAAoC,GACC5I,EAAA2I,YAAA,QAAA,mBAAA,2BAiVJysL,EA/UWjlI,GAkVf,QAASxL,GA/Ue5mD,GAiVhBA,GACA4kD,EAAmBiC,qBAAqB7mD,GAAW2I,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,MAEhBsK,EAAG8V,YAAY3a,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,uCACtB9F,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAzU3D,QAAAi7C,GAAAhnD,EAAAugB,EAAA0mC,EAAAx+C,GAiVQ,GAAI8X,GAAavgB,GAAainD,EAAO,CA/U7C,GAAA9hD,IACYnF,UAAAA,EACIugB,UAAAA,EAiVA2mC,MAAOD,EACPE,aAAa,EA9UrBvC,GAAKwC,sBAAAjiD,GAAAwD,KAAA,SAAAC,GACK,MAAAA,EAAAlI,QACEwJ,EAAA47C,aAAAl9C,EAAAhJ,MACDsK,EAAA47C,aAAAzgD,OAAA,GACAd,EAAA8C,OAAA,UAAA,qDACG9F,WAAA,EACG+F,KAAA,OAIlB4C,EAAAsS,WAAuB,GAElBjY,EAAcwH,MAAM,QAAA,yBAAA,kBAEZtD,GACRA,KAiVG,SAhVUoC,GACTtG,EAAAwH,MAAc,QAAA,mBAAsB,oBAK5C7B,EAAAstL,YAAA3vI,iBAAoB,KAiVpB39C,EAAG47C,gBACH57C,EAAGstL,YAhVKzvI,oBAAuB,KAiV/B79C,EAAGstL,YAhVKzuI,iBAAkB,KAiV1B7+C,EAAGi+C,iBAhVe,KAiVlBj+C,EAAGstL,YAhVQz7E,aAAA,KAmVf,QAASz0D,GAhVatnD,EAAAomD,EAAA39C,GAkVlB,GAAIzI,GAAaomD,EAAY,CA/U1B,GAAAjhD,IACCnF,UAAWA,EACPomD,WAAWA,EACXe,aAAM,EAkVVvC,GAAmB2C,yBAAyBpiD,GAAKwD,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,MA/U7BsK,EAAYo8C,gBAAAjhD,OAAA,GACpBd,EAAkB8C,OAAQ,UAAA,0DAiVN9F,WAAW,EACX+F,KAAM,OA5UlCmB,GAiVwBA,IACJyB,EAAGsS,WAAY,GA/UvBjY,EAAAwH,MAAA,QAAA,yBAAA,mBAmVG,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBA3UvD,QAAGy7C,GAAYxnD,EAAAomD,EAAArqB,EAAAtzB,GAEf,GAAAzI,GAAqBomD,GAAArqB,EAAA,CACjB,GAAA52B,IAkVQnF,UAAWA,EACXomD,WAAYA,EAhVrBrqB,cAAAA,EACKorB,aAAY,EAEZvC,GAAiB6C,0BAAAtiD,GAAAwD,KAAA,SAAAC,GACH,MAANA,EAAAlI,QACRwJ,EAAAw9C,aAAgB9+C,EAAAhJ,MACHsK,EAAGo8C,gBAAOjhD,OAAA,GACnBd,EAAc8C,OAAA,UAAA,+DAkVF9F,WAAW,EACX+F,KAAM,OA7Ud4C,EAAAsS,WAAW,EACf/T,GACAA,KAEGlE,EAAAwH,MAAA,QAAA,yBAAA,mBAmVJ,SAjVKlB,GAkVJtG,EAjVIwH,MAAM,QAAA,mBAAA,qBAwVtB,QAAS47C,GAAal/C,GAElB,GAAItD,IACAob,UAAWrW,EAAGstL,YAAYzrK,gBAAgBxL,UAhV/CvgB,UAASkK,EAAAstL,YAAYzrK,gBAAA/rB,UACpB4nD,cAAkB19C,EAAAstL,YAAQ3vI,iBAAAzB;AAkVtB0B,iBAAkB59C,EAAGstL,YAAYzvI,oBAAoBhsB,cACrDisB,WAAY99C,EAAGstL,YAAYzuI,iBAAiB7+B,OAC5C++B,SAAU/+C,EAAGi+C,iBAAiB51B,KAC9B40B,aAAa,EA/UzBzC,GAAA0D,kBAAAjjD,GAAAwD,KAAA,SAAAC,GAkV+B,MAAfA,EAAIlI,QAhVpBwJ,EAAAm+C,SAAAz/C,EAAAhJ,MAEgBsK,EAAAm+C,SAAAhjD,OAA0B,GAmVtBd,EAAQ8C,OAAO,UAAW,iDACtB9F,WAAW,EAjV1B+F,KAAA,OAIFmB,GACUA,KAETxG,EAAS2I,YAAA,QAAA,mCAAA,WAET,SAASC,MAsVb,QAlVI43E,GAASg1G,EAAA1zE,EAAAt7G,GAqVT,GAAItD,IAjVLnF,UAAckK,EAAAstL,YAAAzrK,gBAAA/rB,UACdwtD,cAAAtjD,EAAuBstL,YAAUz7E,aAAKvuD,cAClCQ,WAAA+1D,EAmVC9yD,OAAQwmI,EACRntL,SAAU2U,EAAc1U,OAhV7B6rE,GAAaO,kBAAAxxE,GAAAwD,KAAA,SAAAC,GACD,MAAZA,EAAYlI,QACZwJ,EAAYuqL,gBAAA7rL,EAAAhJ,KAEZsK,EAAAsS,WAAgB,GAEhBjY,EAAgBwH,MAAA,QAAA,yBAAA,gBAEhBtD,GACAA,KACA,SAAAoC,GACAtG,EAAAwH,MAAA,QAAuB,mBAAA,kBAG1B,QAAGoqE,GAAe1tE,GAoVd,GAAItD,IAjVLnF,UAAckK,EAAAstL,YAAAzrK,gBAAA/rB,UACdwtD,cAAgBtjD,EAAAstL,YAAAz7E,aAAAvuD,cAChBQ,WAAA9jD,EAAAstL,YAA2BvpI,iBAAAD,WACvBiD,OAAA/mD,EAAW4xG,OAmVV5xF,OAAQhgB,EAAGstL,YAAY5C,gBAAgB1qK,OACvC5f,SAAU2U,EAAc1U,OA/U5B6rE,GAAYQ,qBAAsBzxE,GAAAwD,KAAA,SAAuBC,GACxC,MAAVA,EAAAlI,SAmVCwJ,EAAGsqL,eAAiB5rL,EAAIhJ,KACpBsK,EAAGsqL,eAAenvL,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,4CAA8C6C,EAAGwtE,QAAQk9G,gBAAgBe,aAAep0L,WAAW,EAAM+F,KAAM,OAhVtJ4C,EAAAsS,WAAgB,EACf/T,GACMA,OAkYV,QAASk0G,GAAqB3uD,EAAYhuD,EAAWyI,GAEjD,GAAIulD,EAlVQ,CAmVR9jD,EAAG2uG,QAlVShyG,KAAAC,MAAWoD,EAAAstL,YAAAvpI,iBAAAC,OAmVvBhkD,EAAG4uG,YAlVS5uG,EAAM2uG,QAAAE,KAmVlB,IAAI5zG,IACA6oD,WAAYA,EAjVZhuD,UAAGA,EACHypD,OAAIv/C,EAAAstL,YAAAz7E,aAAA94F,GAsVRk/D,GAlVOS,wBAAAz9E,GAAAwD,KAAA,SAAAC,GACH,GAAc,MAAdA,EAAQlI,OAAe,CAmVnB,IAAK,GAAI0E,KAAKwD,GAAIhJ,KAjVjB,GAAK83L,GAAA9uL,EAAAhJ,KAAAwF,GAAAwE,MAoVNM,GAAG6vF,gBAAkBlzF,KAAKC,MAAM4wL,GAAUxpI,KAE1C,IAAIoD,KACJ5sD,GAAOqI,QAAQ7C,EAAG6vF,gBAAiB,SAAUhpC,GAjVzC,GAAA/N,IAChBuO,KAAAR,EAAAQ,KACAI,SAAuBZ,EAAAH,OACXI,OAAgB,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEZM,GAAAvvD,KAAYihD,KAGjB94C,EAAA4mD,YAAYQ,EACZpnD,EAAAsS,WAAA,MAoVCva,GAAW2I,YAAY,QAAS,yBAA0B,eAhVlE,SAAQC,GAmVJ5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAOhE,QAlVQ2gG,GAAWj6C,GA6Vf,MARIA,IAlVYA,EAAAjsD,OAAgB,GAmV5BX,EAAOqI,QAlVIukD,EAAc,SAAIP,GAmVzB,GAlVY,GAARA,EAAAvrB,SAAQ,CAmVR,GAlVI2mE,GAAQznG,EAAO6P,KAAAw8C,EAAWq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IAmV9BR,GAAEoG,UAlVMpG,EAAAm0D,QAAW,MAAA/Y,KAsVxB76C,EAyDX,QAASX,GAAUc,GAhVnB,MAAS3gD,UAAA2gD,EAAqBjkC,UAAW,IAsVzC,QAAS8iC,GAlVGc,GAoVR,GAAIA,EAlVIo6C,kBAAO,CAmVX,GAlVI96C,GAAA,QAAaC,EAAAS,EAAAO,UAAA,GAmVbd,EAAiBnsD,EAAO6P,KAAKrK,EAAG6vF,iBAjVpCnpC,OAAAF,GAuVAhsD,GAAOqI,QAAQ7C,EAlVC4mD,YAAW,SAAAC,GAmVvB,GAAIA,EAAEY,WAlVYjB,EAAA,CAoVd,GAAIi7C,GAAYjnG,EAAO8xB,IAAI46B,EAAKo6C,kBAAmB,SACnDz6C,GAAEC,OAASu6C,EAAgB7mG,EAAOyC,OAAO0pD,EAAeG,OAAQ,SAAUD,GAjVvE,MAAArsD,GAAY3F,SAAA4sG,EAAA56C,EAAAvrB,gBA4BvBt7B,EAAAgiG,UAAA96C,EAAmBo6C,iBAmVnB,IAlVIjvE,KAmVJ,KAAK,GAlVGn3B,KAAG8E,GAAAgiG,UAmVP3vE,EAlVIx6B,KAAKmI,EAAGgiG,UAAA9mG,GAAA6rD,OAoVhB/mD,GAAG4xG,OAASv/E,EAlVIqB,OAmVhB6kD,EAlVsBv4E,EAAA4xG,OAAA5xG,EAAAstL,YAAAvpI,iBAAAD,aAoX9B,QAASgC,GAAqBjwB,EAAWt3B,GAErC,GAAItD,IACAnF,UAlVQ+/B,EAoVZ+kB,GAlVegC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GACK,MAkVZA,EAlVIlI,QAmVJwJ,EAAG68C,eAAiBn+C,EAAIhJ,MAjVzBsK,EAAA68C,eAAe1hD,OAAA,GACdpD,EAAc2I,YAAS,OAAA,uDAAoB,WAoV3CV,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE1DnC,GAjVHA,KAmVF,SAAUoC,GAjVT5I,EAAM2I,YAAA,QAAA,mBAAA,qBAmWd,QAAS03E,GAlViBD,GAsVtBn4E,EAAG+S,WAlVS,EAoVZ/S,EAAGgT,YAlVQ,EAoVXhT,EAAGytL,gBAAiB,EACpBztL,EAlVGstL,YAAUl5L,QAAK8e,KAAAilE,GAmVlBn4E,EAAGstL,YAAYI,MAAQ1tL,EAAGstL,YAAY7qK,KAEtC,KAAK,GAAIvnB,KAAK8E,GAAGqS,YAjVZrS,EAAAqS,YAAAnX,GAAAiX,YAA8BnS,EAAAstL,YAAYn7K,YAC/CnS,EAAAstL,YAAAn6K,gBAAAnT,EAAAqS,YAAAnX,GAuVAumB,GAlVgBzhB,EAAAstL,YAAAn7K,UAAA,WAEZ,IAAA,GAAAjX,KAAU8E,GAAA2hB,YAmVF3hB,EAAG2hB,YAAYzmB,GAAGpF,YAAckK,EAAGstL,YAAYx3L,YAhV/CkK,EAAAstL,YAAWzrK,gBAAK7hB,EAAA2hB,YAAAzmB,MAwV5Bg3G,EAAclyG,EAAGstL,YAAYx3L,UAAW,WAjVpC,IAAI,GAAAoF,KAAA8E,GAAAk7C,QACAl7C,EAAAk7C,QAAAhgD,GAAAwgD,wBAAA17C,EAAAstL,YAAA5xI,wBAEI17C,EAAAstL,YAAe9wI,YAAAx8C,EAAAk7C,QAAoBhgD,MAyV/C4hD,EAlVmB98C,EAAGstL,YAAYx3L,UAAakK,EAAAstL,YAAAj3K,UAAArW,EAAAstL,YAAA5xI,sBAAA,WAC3C,IAAA,GAAAxgD,KAAY8E,GAAG47C,aACP57C,EAAG47C,aAAA1gD,GAAAghD,aAAAl8C,EAAAstL,YAAApxI,aAEXl8C,EAAUstL,YAAA3vI,iBAAc39C,EAAA47C,aAAA1gD,MAwV5BkiD,EAlVep9C,EAAAstL,YAAwBx3L,UAAGkK,EAAAstL,YAAApxI,WAAA,WAmVtC,IAAK,GAlVGhhD,KAAA8E,GAAQo8C,gBAmVRp8C,EAAGo8C,gBAAgBlhD,GAAG22B,gBAAkB7xB,EAAGstL,YAAYz7J,gBAhVvD7xB,EAAAstL,YAAAzvI,oBAAA79C,EAAAo8C,gBAAAlhD,MAwVZoiD,EAAyBt9C,EAAGstL,YAAYx3L,UAAWkK,EAAGstL,YAAYpxI,WAAYl8C,EAAGstL,YAAYz7J,cAAe,WACxG,IAAK,GAAI32B,KAAK8E,GAAGw9C,aAjVtBx9C,EAAAw9C,aAAqBtiD,GAAA8kB,SAAYhgB,EAAAstL,YAAAK,WAEtB3tL,EAAAstL,YAAAzuI,iBAAA7+C,EAAAw9C,aAAAtiD,KAwVV,KAlVI,GAAAA,KAAA8E,GAAAu7C,aACAv7C,EAAAu7C,aAAUrgD,GAAAmtB,OAAcroB,EAAAstL,YAAAvuI,WAmVpB/+C,EAAGi+C,iBAAmBj+C,EAAGu7C,aAAargD,GAI9C8E,GAAGstL,YAlVQzrK,mBAmVX7hB,EAAGstL,YAAY3vI,oBACf39C,EAAGstL,YAlVQzvI,uBAmVX79C,EAAGstL,YAlVQzuI,oBAmVX7+C,EAAGstL,YAlVKzrK,gBAAuBxL,UAAArW,EAAAstL,YAA0Bj3K,UAmVzDrW,EAAGstL,YAAYzrK,gBAAgB/rB,UAAYkK,EAAGstL,YAAYx3L,UAC1DkK,EAlVGstL,YAAU3vI,iBAAKzB,WAAAl8C,EAAAstL,YAAApxI,WAmVlBl8C,EAAGstL,YAlVSzvI,oBAAehsB,cAAoB7xB,EAAAstL,YAAAz7J,cAmV/C7xB,EAAGstL,YAAYzuI,iBAAiB7+B,OAAShgB,EAAGstL,YAAYK,SACxD3tL,EAAGi+C,iBAAiB51B,KAAOroB,EAAGstL,YAAYvuI,SAC1CtB,EAAa,WACT,IAAK,GAAIviD,KAAK8E,GAAGm+C,SACTn+C,EAAGm+C,SAASjjD,GAAGooD,gBAAkBtjD,EAAGstL,YAAYhqI,gBAChDtjD,EAAGstL,YAAYz7E,aAAe7xG,EAAGm+C,SAASjjD,KAMtD,KAAK,GAAIA,KAAK8E,GAAG8rL,iBACT9rL,EAAG8rL,iBAAiB5wL,GAAGkwL,iBAAmBprL,EAAGstL,YAAYvB,UACzD/rL,EAAGstL,YAAYrB,qBAAuBjsL,EAAG8rL,iBAAiB5wL,GAKlEq9E,GAAsBv4E,EAAGstL,YAAYvmI,OAAQ/mD,EAAGstL,YAAYxpI,WAAY,WAjV5E,IAAS,GAAA5oD,KAAA8E,GAAAuqL,gBACLvqL,EAAAuqL,gBAAArvL,GAAAuvL,YAAAzqL,EAAAstL,YAAAttK,SACIhgB,EAAAstL,YAAY5C,gBAAA1qL,EAAAuqL,gBAAArvL,MAuVhB8E,EAAGstL,YAlVK5C,mBAmVR1qL,EAAGstL,YAlVKz7E,gBAmVR7xG,EAAGstL,YAAYvpI,oBACf/jD,EAAGstL,YAAY5C,gBAAgBD,UAAYzqL,EAAGstL,YAAYttK,OAC1DhgB,EAAGstL,YAAYz7E,aAAavuD,cAAgBtjD,EAAGstL,YAAYhqI,cAC3DtjD,EAAGstL,YAlVCvpI,iBAAmBD,WAAA9jD,EAAwBstL,YAAUxpI,WAmVzD9jD,EAAG4xG,OAlVS5xG,EAAAstL,YAAevmI,OAsV3BklB,EAlVejsE,EAAAstL,YAAuBttK,OAAM,WAmVxC,IAAK,GAAI9kB,KAAK8E,GAAGsqL,eAjVTtqL,EAAAsqL,eAAepvL,GAAAyvL,mBAAA3qL,EAAAstL,YAAAjxB,YACfr8J,EAAAstL,YAAezB,mBAAoB7rL,EAAAsqL,eAAapvL,MAwV5D4qD,EAlVgB9lD,EAAAstL,YAAcx3L,UAAA,WAmV1B,IAAK,GAAIoF,KAAK8E,GAAG68C,eACT78C,EAAG68C,eAAe3hD,GAAG4oD,aAAe9jD,EAAGstL,YAAYxpI,aAjVnD9jD,EAAGstL,YAAAvpI,iBAAc/jD,EAAA68C,eAAA3hD,MAuV7B8E,EAAGstL,YAlVIvpI,oBAmVP/jD,EAAGstL,YAlVKvpI,iBAAuBC,MAAShkD,EAAAstL,YAAAtpI,MAoVxCyuD,EAlVOzyG,EAAAstL,YAAAxpI,WAAA9jD,EAAAstL,YAAAx3L,UAAA,WAoVH,IAAK,GAAIoF,KAAK8E,GAAGonD,SACTpnD,EAAGonD,SAASlsD,GAAG6rD,SAAW/mD,EAAGstL,YAAYvmI,SACzC/mD,EAAGknD,KAAK47C,kBAAoB9iG,EAAGonD,SAASlsD,MAnzBxD,GAAI8E,GAAKC,IAETD,GAAGqU,kBACChJ,MA/UQ,IAiVRA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SA/UStU,EAAIqU,gBAAe,GAiV/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WA/UI,EAgVPtS,EAAGwhI,eAAgB,EACnBxhI,EAAGyhI,eAAgB,EACnBzhI,EAAGqtL,WAAaA,EAChBrtL,EAAGmtL,cAAgBA,EACnBntL,EAAGyhB,oBA/UkBA,EAgVrBzhB,EAAGyyG,qBA/UgBA,EAgVnBzyG,EAAG8lD,qBA/UoBA,EAgVvB9lD,EAAG08C,oBA/UoBA,EAgVvB18C,EAAG88C,qBAAuBA,EAC1B98C,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGs9C,yBAA2BA,EAC9Bt9C,EAAGy9C,aAAeA,EAClBz9C,EAAGo4E,uBAAyBA,EAE5Bp4E,EAAGomD,YA/UKA,EAgVRpmD,EAAGkyG,cA/UKA,EAgVRlyG,EAAGisE,yBA/UgBA,EAgVnBxhE,EAAOrM,SA/UO,GAAAH,SAkVd,IACI8W,GA/UI5a,EAAoBgG,uBAgVxBgS,EA/UYhY,EAAoBgG,uBAAAwU,gBAAAxC,SAgVpCpa,GAAW2c,SA/UK,EAmVhBxC,IACAlS,EAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAAM,MAsVVroB,EAAG4tL,mBAAqB,WAEpB,GAlVI3yL,IAmVAnF,UAlVOkK,EAAAstL,YAAkBzrK,gBAAA/rB,UAmVzBwtD,cAlVWtjD,EAAAstL,YAAYz7E,aAAYvuD,cAmVnCQ,WAlVY9jD,EAACstL,YAAUvpI,iBAAAD,WAmVvBiD,OAAQ/mD,EAAG4xG,OACX5xF,OAAQhgB,EAAGstL,YAAY5C,gBAAgB1qK,OACvC2qK,iBAAkB3qL,EAAGstL,YAAYzB,mBAAmBlB,iBACpDvqL,SAAU2U,EAAc1U,OAE5B6rE,GAAoBS,mBAAmB1xE,GAAKwD,KAAK,SAAUC,GAEpC,MAAfA,EAAIlI,QAjVTwJ,EAAA8rL,iBAAeptL,EAAAhJ,KAoVVsK,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,kBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAiPnD7B,EAAGgU,OAlVK,WAmVJhU,EAAG+S,WAlVC,EAmVJ/S,EAAGgT,YAlVW,EAmVdhT,EAAGstL,eACHttL,EAAGi+C,iBAAmB,MAE1Bj+C,EAAG0R,OAlVS,WAoVR1R,EAAGgT,YAlVQ,GAmffhT,EAAGq4E,yBAA2B,SAAUF,GAjVpC,GAAAxlE,GAAOtY,EAAAsY,QAAA,UAmVH,4CACAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WAChBw5E,EAAmBI,yBAAyBF,EAAc01G,cAAcpvL,KAAK,SAAUC,GAChE,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,yBAC1DwR,KAEAna,EAAW2I,YAAY,QAAS,gCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,OAGd,eAOPX,EAAG8tL,mBAAqB,SAAU31G,GAC9B,GAAKn4E,EAAG+S,UA0CD,CAEH,GAAI83K,IAjVJ14K,UAAeA,EACX07K,aAAM7tL,EAAAstL,YAAuBO,aAmV7B/3L,UAAWkK,EAAGstL,YAAYzrK,gBAAgB/rB,UAC1CkqB,OAlVQhgB,EAAAstL,YAAY5C,gBAAgBD,UAmVpCpuB,UAlVMr8J,EAAAstL,YAASzB,mBAA8BlB,iBAmV7CoB,QAlVQ/rL,EAAAstL,YAAcrB,qBAAsBb,eAmV5C2C,MAAO/tL,EAAGstL,YAAYrB,qBAAqBt+G,aAC3C7pB,WAAY9jD,EAAGstL,YAAYvpI,iBAAiBD,WAC5CrhC,MAAOziB,EAAGstL,YAAYI,MACtB3mI,OAAQ/mD,EAAG4xG,OACXlrD,OAAQ1mD,EAAGstL,YAAY5mI,OACvBzvB,QAASj3B,EAAGstL,YAAYz7E,aAAa94F,GACrC2iC,sBAAuB17C,EAAGstL,YAAY9wI,YAAYd,sBAClDQ,WAAYl8C,EAAGstL,YAAY3vI,iBAAiBzB,WAC5CrqB,cAAe7xB,EAAGstL,YAAYzvI,oBAAoBhsB,cAClD87J,SAAU3tL,EAAGstL,YAAYzuI,iBAAiB7+B,OAC1CsjC,cAAetjD,EAAGstL,YAAYz7E,aAAavuD,cAW3C3vC,WAAYoB,EAAc1U,OA1U9B43E,GAAiBG,uBAAWyyG,GAAApsL,KAAA,SAAAC,GACpBA,EAAAhJ,KAAQke,aAAa,EAmVrB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eA/UzD9b,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eAoVC7T,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGstL,eAEHp7K,KAED,SAAUvR,GACT5I,EAAW2I,YAAY,+BACnBrJ,WAAW,EACX+F,KAAM,SAGd4C,EAAG0R,aAnGY,CAIf,GAAIymE,IACAriF,UAAWkK,EAAGstL,YAAYzrK,gBAAgB/rB,UAC1CkqB,OAAQhgB,EAAGstL,YAAY5C,gBAAgB1qK,OACvCq8I,UAAWr8J,EAAGstL,YAAYzB,mBAAmBlB,iBAC7CoB,QAAS/rL,EAAGstL,YAAYrB,qBAAqBb,eAC7C2C,MAAO/tL,EAAGstL,YAAYrB,qBAAqBt+G,aAC3C7pB,WAAY9jD,EAAGstL,YAAYvpI,iBAAiBD,WAC5CrhC,MAAOziB,EAAGstL,YAAYI,MACtB3mI,OAAQ/mD,EAAG4xG,OACXlrD,OAAQ1mD,EAAGstL,YAAY5mI,OACvBzvB,QAASj3B,EAAGstL,YAAYz7E,aAAa94F,GACrC2iC,sBAAuB17C,EAAGstL,YAAY9wI,YAAYd,sBAClDQ,WAAYl8C,EAAGstL,YAAY3vI,iBAAiBzB,WAC5CrqB,cAAe7xB,EAAGstL,YAAYzvI,oBAAoBhsB,cAClD87J,SAAU3tL,EAAGstL,YAAYzuI,iBAAiB7+B,OAjV7CsjC,cAAWtjD,EAASstL,YAAAz7E,aAAAvuD,cACzBxvC,UAAAiB,EAAA1U,OAyVI43E,GAAmBC,sBAAsBC,GAAe15E,KAAK,SAAUC,GAC/DA,EAAIhJ,KAAKke,aAAc,EAjV9B7b,EAAU2I,YAAY,UAAAhC,EAAAhJ,KAAAme,QAAA,yBAqVf9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBAEtD7T,EAAGstL,eAjVNp7K,IACLlS,EAAAgT,YAAA,GACI,SAAKrS,GACD5I,EAAW2I,YAAU,8WAtjBrCtM,QACKC,OAAO,6BACPe,WAAW,yBA/Ue83L,MA+xCnC,WACI,YAOA,SAlVQc,GAAUvjL,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAG,EAAA6X,EAAAJ,EAAAw7D,GA2Wd,QAASl7D,KAjVNF,EAASI,mBAAYD,GAAA1T,KAAA,SAAAC,GAmVG,MAAfA,EAAIlI,SAjVTwJ,EAAAqS,YAAa3T,EAAAhJ,KAmVRsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAAS+gB,GAAoBtP,GAjVtBA,GAmVCP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GAjVpD,MAAbA,EAAalI,QAmVJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAjV9BsK,EAAiB2hB,YAAAxmB,OAAA,GACjBd,EAAc8C,OAAa,UAAA,oDACf9F,WAAW,EAmVN+F,KAAM,OAId4C,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAhV7D,SAAAlB,GAmVQtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAInD7B,EAAGwtE,QAAQ3rD,gBAlVgB,KAuV/B,QAASosK,GAA+BplK,GAGpCukD,EAlVeoB,sCAAwC3lD,GAAApqB,KAAY,SAAAC,GAoV/D,GADAsB,EAAGkkB,MAAO,EAjVC,MAkVPxlB,EAlVIlI,OAAe,CAmVnBwJ,EAAGkuL,+BAAiCxvL,EAAIhJ,IACxC,KAAK,GAAIwF,KAAK8E,GAAGkuL,+BACbluL,EAAGkuL,+BAA+BhzL,GAAGkxE,aAAepsE,EAAGkuL,+BAA+BhzL,GAAGykI,YAAc,IACnG3/H,EAAGkuL,+BAA+BhzL,GAAGmuL,YAAc,IAAMrpL,EAAGkuL,+BAA+BhzL,GAAGouL,mBAAqB,IAAMtpL,EAAGkuL,+BAA+BhzL,GAAGusD,SAAW,IACzKznD,EAAGkuL,+BAA+BhzL,GAAGkxE,aAAe,MAAapsE,EAAGkuL,+BAA+BhzL,GAAGquL,eA/U7GvpL,GAAIkuL,+BAAsB/yL,OAAA,GACvBd,EAAG8C,OAAA,UAAgB,yBAA8B6C,EAAAwtE,QAAY3rD,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAoVjE4C,EAAGsS,WAlVI,EAmVH/T,UACAA,eAEJlE,GAAQwH,MAAM,QAAS,yBAA0B,mBAhVzD,SAAAlB,GACItG,EAAKwH,MAAS,QAAG,mBAAiB,oBA8P1C,GAAI7B,GAlVIC,IAoVRD,GAAGqU,kBAlVChJ,MAAqB,IAAAA,MAAqB,KAAUA,MAAU,KAAKA,MAAA,KAAAA,MAAA,MAmVvErL,EAAGsU,SAlVStU,EAAIqU,gBAAgB,GAoVhCrU,EAAGuU,YAlVc,EAmVjBvU,EAAGwU,qBAlVa,SAAWC,GAmVvBzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAlVS,EAmVZ/S,EAAGsS,WAlVS,EAmVZtS,EAAGmuL,cAlVc,EAmVjBnuL,EAAGkkB,MAlVK,EAmVRlkB,EAAGwtE,WACHxtE,EAAGiuL,+BAAiCA,EAhVpCjuL,EAAGyhB,oBAAqBA,EAmVxB1pB,EAlVO2c,SAAY,CAmVnB,IAlVIvC,GAAGhY,EAAagG,uBAAAwU,gBAAAxC,SAmVpBD,KAqFAlS,EAAG+vG,YAAc,SAAUj9F,GACvB,GAAIpd,IAjVD6kE,QAAA,EACA12C,QAAA/Q,EACAo5K,YAAY,EAIflyL,GAAG8F,GAAA,iBACApK,KAAAA,KAuVPsK,EAAG2vG,YAlVa,SAAG78F,GAmVf,GAAIpd,IAEAE,OAAQ,EACRiuB,QAAS/Q,EACT2+C,QAAQ,EACR28H,SAAQ,EAGZp0L,GAAO8F,GAlVC,iBAmVJpK,KAAMA,mKAzIlBtB,QACKC,OAAO,6BACPe,WAAW,+BAAgC44L,MA8IpD,WACI,YAOA,SAlVQK,GAAe5jL,EAAA1Q,EAAgBhC,EAAewC,EAAYC,EAAAH,EAAAL,EAAAozE,EAAAp7D,EAAAJ,EAAAzX,GAuX9D,QAAS+X,KAELF,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KAjV9BsK,EAAAsS,WAAA,IAoVI,SAlVC3R,GACA5I,EAAW2I,YAAA,QAAA,mBAAA,oBAsVnB,QAlVI+gB,GAAoBtP,GAChBA,GAmVAP,EAlVuB8P,eAAKvP,GAAA1T,KAAA,SAAAC,GACT,MAAXA,EAAAlI,QACAwJ,EAAA2hB,YAAAjjB,EAAAhJ,MACGsK,EAAA2hB,YAAAxmB,OAAA,GACHd,EAAW8C,OAAA,UAAY,oDACnB9F,WAAW,EACX+F,KAAM,OAsVV4C,EAAGsS,WAAY,GAhVxBjY,EAAYwH,MAAA,QAAA,yBAAA,mBAoVR,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBA9UpD7B,EAAAwtE,QAAA3rD,gBAAqB,KAoVxB,QAASysK,GAAsBzlK,GAC1BukD,EAlVGiB,sBAAAxlD,GAAApqB,KAAA,SAAAC,GAmVJ,GAAmB,MAAfA,EAAIlI,OAAgB,CAjVpBwJ,EAAAuuL,oBAAoB7vL,EAAAhJ,IAmVpB,KAlVI,GAAAwF,KAAA8E,GAAWuuL,oBACXvuL,EAAAuuL,oBAAuBrzL,GAAAkxE,aAAgBpsE,EAAAuuL,oBAAArzL,GAAAykI,YAAA,IACvC3/H,EAAAuuL,oBAA0BrzL,GAAAmuL,YAAA,IAAmBrpL,EAAAuuL,oBAAArzL,GAAAouL,mBAAA,IAAAtpL,EAAAuuL,oBAAArzL,GAAAusD,SAAA,IAC7CznD,EAAAuuL,oBAAwBrzL,GAAAkxE,aAAqB,MAAApsE,EAAAuuL,oBAAArzL,GAAAquL,eAE7CvpL,GAAAuuL,oBAAepzL,OAAY,GAC3Bd,EAAO8C,OAAG,UAAY,yBAAA6C,EAAAwtE,QAAA3rD,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAoV1B4C,EAAGsS,WAlVY,EACX/T,UACAA,eAqVJlE,GAlVIwH,MAAU,QAAG,yBAA6B,oBAmV9C7H,EAlVI8F,GAAA/H,EAAeyE,gBAoVxB,SAAUmE,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,sBA5F/C,GAlVI7B,GAAGC,IAoVLD,GAlVEqU,kBAAehJ,MAAY,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAmV7BrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAlVEwU,qBAAA,SAA4BC,GAmV5BzU,EAAGuU,YAlVUE,GAqVfzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwhI,eAAgB,EACnBxhI,EAAGyhI,eAAgB,EAOnBzhI,EAAGgsL,yBAA0B,EAE7BhsL,EAlVEyxG,SAAG,EAmVLzxG,EAlVEwxG,cAAe,EAmVjBz5G,EAAW2c,SAAU,EACrB1U,EAlVEwtE,WAmVJxtE,EAAGsuL,sBAAuBA,EAC1BtuL,EAAGyhB,oBAlVsBA,EAmVzB1pB,EAAW2c,SAlVQ,CAmVnB,IAAIvC,GAlVYhY,EAAQgG,uBAAgCwU,gBAAAxC,SAsVxDD,KA8DJlS,EAAG8tE,4BAA8B,SAAUh4E,EAAWyI,GAClD,GAAItD,IACAnF,UAlVQA,EAoVRF,OAAQ,EACRwK,SAAU,EAGd+xB,SAAQC,IAlVIz1B,KAAGqkB,UAAA/lB,IAmVfmyE,EAlVYU,4BAAA7yE,GAAAwD,KAAA,SAAAC,GACG,MAkVPA,EAlVIlI,SAmVJwJ,EAlVGopL,kBAAe1qL,EAAAhJ,KAoVdsK,EAAGopL,kBAAkBjuL,OAAS,GAC9Bd,EAAQ8C,OAAO,UAAW,mCAAqC6C,EAAGwtE,QAAQ3rD,gBAAgBS,aAAejrB,WAAW,EAAM+F,KAAM,OAEpI4C,EAlVGsS,WAAA,EAmVC/T,GAjVAA,MAoVT,SAlVSoC,GAmVR5I,EAlVQ2I,YAAc,QAAA,mBAA4B,qBAuV1DV,EAAG+vG,YAlVa,SAAAj9F,GAmVZ,GAAIpd,IACA6kE,QAlVQ,EAmVR12C,QAlVQ/Q,EAmVT++C,OAAO,EACPq6H,YAlVS,EA2VZlyL,GAAO8F,GAAG,iBACNpK,KAAMA,KAOVsK,EAAGwuL,YAAc,SAAU17K,GAMvBqf,QAlVIC,IAAA,mBAAmBz1B,KAAAqkB,UAAuBlO,GAoV9C,IAAI1T,GAlVQ7E,EAAW8E,MAmVnBhI,WAAW,EACXiI,eAlVW,cAmVXC,gBAlVQ,aAmVRrK,YAAa,+EACbE,WAlVO,+BAmVPC,aAlVO,KAmVP+H,KAlVI,KAmVJoC,SAAU,SACVC,UAlVI,EAmVJyQ,SAjVG3N,MAAA,WACC,MAAWuQ,MAsVnB1T,GAAcM,OAAOjB,KAAK,aAGvB,eAKXuB,EAAGgU,OAAS,WACRhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,GAGhBhT,EAAG2vG,YAAc,SAAU78F,GAjVlC,GAAYpd,IACTqd,WAAA,EAmVYnd,OAAQ,EACRiuB,QAAS/Q,EAlVrB2+C,QAAA,EAEKz3D,GAAA8F,GAAW,iBAoVJpK,KAAMA,+KAnMlBtB,QACKC,OAAO,6BACPe,WAlVM,sBAAYi5L,MA0hB3B,WACI,YAOA,SAnVOI,GAAYhkL,EAAAxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAAizE,EAAAx7D,GACf,GAAG5R,GAAAC,IACHD,GAAGsU,SAAA,KACHtU,EAAGgT,YAAO,EACVhT,EAAG+S,WAAU,EACb/S,EAAGsS,WAAA,EAoVHtS,EAAGwkB,gBAlVHzsB,EAAG2c,SAAA,CACQva,GAAUgG,uBAAAwU,gBAAAxC,SACrBggB,SAAIC,IAAA,QAAYz1B,KAAAqkB,UAAAze,IAuVhBvC,EAAG0uL,oBAnVgB,WAoVf,GAnVI5pK,IAoVA6oD,aAnVOprE,EAAAorE,aAoVP73E,UAnVOyM,EAAAzM,UAoVPF,OAAQ,EAlVT+uB,gBACClC,MAAWziB,EAAA2uL,SAAYlsK,OAyV3B2qD,GAnVIwB,iBAAuB9pD,GAAermB,KAAW,SAAKC,GAC1C,MAARA,EAAIlI,QAoVJuB,EAnVO2I,YAAc,UAAI,0BAAA,kBAoVzB4b,EAnVYrN,QAoVZjV,EAAO8F,GAnVC/H,EAAQyE,gBAqVhBzE,EAAW2I,YAnVO,QAAA,oBAoVdrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAnVQ2I,YAAc,QAAS,oBAoV3BrJ,WAAW,EAlVZ+F,KAAA,UAyVX4C,EAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,8LAnDlCnpB,QACKC,OAAO,6BACPe,WAAW,+BAAgCq5L,MAsDpD,WACI,YAOA,SAASG,GAnVkBnkL,EAAA1Q,EAA+BhC,EAAGyC,EAAeH,EAAaL,EAAGG,EAAA6X,EAAkCJ,EAAAw7D,GA4W1H,QAASl7D,KACLF,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA/U5D,QAAG+gB,GAAwBtP,GACnBA,GACAP,EAAQ8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACC,MAATA,EAASlI,QACTwJ,EAAA2hB,YAAYjjB,EAAAhJ,MAoVCsK,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EAlVrB+F,KAAA,OAuVE4C,EAAGsS,WAAY,GAjV5BjY,EAAcwH,MAAU,QAAK,yBAAA,mBAqVrB,SAAUlB,GAlVbtG,EAAQwH,MAAA,QAAA,mBAAA,oBAuVZ7B,EAAGwtE,QAAQ3rD,gBAAiB,KAIhC,QAASgtK,GAAuChmK,GAE5CukD,EAAoBqB,uCAAuC5lD,GAAIpqB,KAAK,SAAUC,GAE1E,GADAsB,EAAGmuL,cAAa,EACG,MAAfzvL,EAAIlI,OAAgB,CACpBwJ,EAAG8uL,uCAAyCpwL,EAAIhJ,IAlVvD,KAAA,GAAAwF,KAAA8E,GAAA8uL,uCACT9uL,EAAA8uL,uCAAA5zL,GAAAkxE,aAAApsE,EAAA8uL,uCAAA5zL,GAAAykI,YAAA,IAoVwB3/H,EAAG8uL,uCAAuC5zL,GAAGmuL,YAAc,IAAMrpL,EAAG8uL,uCAAuC5zL,GAAGouL,mBAAqB,IAAMtpL,EAAG8uL,uCAAuC5zL,GAAGusD,SAAW,IACjMznD,EAAG8uL,uCAAuC5zL,GAAGkxE,aAAe,MAAapsE,EAAG8uL,uCAAuC5zL,GAAGquL,eAlVlIvpL,GAAA8uL,uCAAA3zL,OAAA,GACId,EAAA8C,OAAA,UAAuB,yBAAA6C,EAAAwtE,QAAA3rD,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAsVvB4C,EAAGsS,WAAY,EAnVtB/T,UACIA,eAEJlE,GAAAwH,MAAoB,QAAS,yBAAoB,mBAsV/C,SAAUlB,GAnVZtG,EAAAwH,MAAc,QAAA,mBAAA,oBAmQnB,GAAI7B,GAAKC,IAEPD,GAAGqU,kBAnVchJ,MAAA,IAAAA,MAAA,KAA+BA,MAAY,KAAAA,MAAA,KAAAA,MAAA,MAoV5DrL,EAAGsU,SAnVWtU,EAAAqU,gBAAe,GAqV7BrU,EAAGuU,YAnVU,EAoVbvU,EAAGwU,qBAnVW,SAAAC,GAoVZzU,EAAGuU,YAnVSE,GAuVhBzU,EAAGgT,YAnVI,EAoVPhT,EAAG+S,WAnVK,EAoVR/S,EAAGsS,WAAY,EACdtS,EAAGmuL,cAAe,EAClBnuL,EAAGkkB,MAAO,EACXlkB,EAAGwtE,WAEHxtE,EAAG6uL,uCAAyCA,EAC5C7uL,EAAGyhB,oBAAsBA,EACzB1pB,EAAW2c,SAAU,CACrB,IAAIvC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KAkEAlS,EApVE+vG,YAAe,SAAAj9F,GACf,GAAGpd,IACA6kE,QAAA,EAqVG12C,QAAS/Q,EACTo5K,YAAY,EAGhBlyL,GAAO8F,GAAG,iBACNpK,KAAMA,KAKdsK,EApVE2vG,YAAW,SAAU78F,GACrB,GAAGpd,IACFqd,WAAA,EACAnd,OAAA,EACHiuB,QAAW/Q,EACP2+C,QAAY,EAuVZz3D,GAAO8F,GAAG,iBAnVdpK,KAAAA,mKAgOJtB,QACKC,OAAO,6BACPe,WAnVW,sCAAiBw5L,MA2crC,WACI,YAOA,SApVIG,GAA6BtkL,EAAW1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAgY,EAAAJ,EAAAw7D,EAAAjzE,GA8WxC,QApVQ+X,KAqVJF,EApVaI,mBAAQD,GAAqB1T,KAAA,SAAAC,GAC/B,MAAHA,EAAGlI,SAqVHwJ,EAAGqS,YApVI3T,EAAAhJ,KAqVPsK,EAAGsS,WApVI,IAsVZ,SApVQ3R,GAqVP5I,EApVI2I,YAAe,QAAW,mBAAA,oBAwVtC,QAAS+gB,GApVGtP,EAAA5T,GAqVJ4T,GACAP,EApVC8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACsB,MAAfA,EAAAlI,QACDwJ,EAAG2hB,YAAWjjB,EAAAhJ,MAqVRsK,EAAG2hB,YAAYxmB,OAAS,GAnV3Bd,EAAA8C,OAAA,UAAA,oDACA9F,WAAS,EAqVH+F,KAAM,OAjV/B4C,EAAAsS,WAA8B,EACnB/T,GACKA,KAEHlE,EAAAwH,MAAA,QAAA,yBAAA,mBAsVD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAInD7B,EAAGwtE,QApVI3rD,gBAAoB,KAuX/B,QAASmtK,GAAyBl5L,GAC9B,GAAImF,IAnVLnF,UAAcA,EAsVTF,OAAQ,EACRwK,SAAU,EAjVdgtE,GAAYsB,4BAAkCzzE,GAAAwD,KAAA,SAAAC,GAqVvB,MAAfA,EAAIlI,QAnVRwJ,EAAAivL,0BAA+BvwL,EAAAhJ,KAC/BsK,EAAWivL,0BAAA9zL,OAAA,GACXd,EAAgB8C,OAAA,UAAA,mCAAA6C,EAAAwtE,QAAA3rD,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAEhB4C,EAAAsS,WAAa,EACb/T,UACAA,aAEAlE,EAAUwH,MAAA,QAAA,yBAAA,oBACV7H,EAAU8F,GAAA/H,EAAAyE,iBAsVX,SApVKmE,GAqVJtG,EApVQwH,MAAA,QAAO,mBAAA,sBAyVvB,QAASmS,KACL,GAAIte,IAnVDqd,UAAY/S,EAAA+S,UAuVf/Y,GAAO8F,GAAG,iBACNpK,KAAMA,IA6Bb,QAASg4E,GAAsBF,GApVpC,GAAS76D,GAAAtY,EAAAsY,QAA6B,UAC9B,4CACDtb,WAAW,EACX+F,KAAa,MAGbuV,GAAAjT,OAAejB,KAAA,WAClB2uE,EAAqBM,sBAAAF,EAAAG,aAAAH,EAAAI,YAAAnvE,KAAA,SAAAC,GACL,MAAAA,EAAAlI,QACJuB,EAAa2I,YAAU,UAAA,uBAAA,kBAsVnBwR,KAEAna,EAAW2I,YAAY,QAAS,yBApV7CrJ,WAAsB,EACL+F,KAAA,QAGZ,SAAQuD,OAwVT,cAhLP,GApVIX,GAAIC,IAsVRD,GAAGqU,kBApViBhJ,MAAW,IAAKA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAqVpCrL,EAAGsU,SAAWtU,EApVEqU,gBAAiB,GAsVjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBApVqB,SAAWC,GAqV/BzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YApVa,EAqVhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGgvL,yBAA0BA,EAC7BhvL,EAAG0tE,sBApVuBA,EAqV1B31E,EAAW2c,SApVS,EAqVpB1U,EAAGgU,OAASA,EACZhU,EAAGyhB,oBAAsBA,CACzB,IAAItP,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KAyCAlS,EAAG8tE,4BApVwB,SAAWh4E,EAAAyI,GAqVlC,GAAItD,IAnVAnF,UAAGA,EAsVHF,OApVI,EAqVJwK,SAAU,EAlVdgtE,GAAWU,4BAAqB7yE,GAAoBwD,KAAA,SAAAC,GAqV7B,MAAfA,EAAIlI,SACJwJ,EAAGopL,kBAAoB1qL,EAAIhJ,KAEvBsK,EAAGopL,kBAAkBjuL,OAAS,GAnVjCd,EAAU8C,OAAK,UAAA,mCAAA6C,EAAAwtE,QAAA3rD,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAEhB4C,EAAAsS,WAAA,EACC/T,GACHA,MAsVH,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAkD5DV,EAAG+vG,YAAc,SAAUj9F,GACvB,GAAIpd,IAnVL6kE,QAAA,EACK12C,QAAO/Q,EAuVX9Y,GApVI8F,GAAA,iBACApK,KAAAA,KAwVRsK,EAAG2vG,YAAc,SAAU78F,GACvB,GAAIpd,IAEAE,OAAQ,EACRiuB,QAAS/Q,EACT2+C,QAAQ,EAnVXy6H,YAAA,EAuVDlyL,GAAO8F,GAAG,iBApVlBpK,KAAAA,mKAwLAtB,QACKC,OApVO,6BAqVPe,WAAW,kCAAmC25L,MAgMvD,WACI,YAOA,SAASG,GAAYzkL,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQozE,EAAoBp7D,EAAeJ,EAAwBzX,GAuBhI,QAtVK+X,KAGHF,EAAiBI,mBAAAD,GAAA1T,KAAA,SAAAC,GACd,MAAAA,EAAAlI,SACEwJ,EAAAqS,YAAc3T,EAAAhJ,KAuVTsK,EAAGsS,WAAY,IAEpB,SAAU3R,GArVd5I,EAAa2I,YAAA,QAAA,mBAAA,oBAKhB,QAAG+gB,GAAUtP,GAuVLA,GArVLP,EAAA8P,eAAyCvP,GAAA1T,KAAA,SAAAC,GACnB,MAAtBA,EAAAlI,QACQwJ,EAAA2hB,YAAUjjB,EAAAhJ,MACLsK,EAAA2hB,YAAAxmB,OAAsB,GACtCd,EAAA8C,OAAA,UAAA,oDAuVwB9F,WAAW,EArVnB+F,KAAA,OAID4C,EAAAsS,WAAY,GAEpBjY,EAAewH,MAAA,QAAA,yBAAA,mBAwVX,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAInD7B,EAAGwtE,QAtVC3rD,gBAAuB,KAuV3B7hB,EAAGuuL,uBAEP,QAASD,GAtVezlK,GAuVpBukD,EAtVgBiB,sBAA0BxlD,GAAApqB,KAAA,SAAAC,GAuV3C,GAAmB,MAAfA,EAAIlI,OAtVa,CAuVjBwJ,EAAGuuL,oBAtVoB7vL,EAAAhJ,IAuVvB,KAAK,GAAIwF,KAAK8E,GAAGuuL,oBACbvuL,EAAGuuL,oBAAoBrzL,GAAGkxE,aAAepsE,EAAGuuL,oBAAoBrzL,GAAGykI,YAAc,IAC7E3/H,EAAGuuL,oBAAoBrzL,GAAGmuL,YAAc,IAAMrpL,EAAGuuL,oBAAoBrzL,GAAGouL,mBAAqB,IAAMtpL,EAAGuuL,oBAAoBrzL,GAAGusD,SAAW,IACxIznD,EAtVCuuL,oBAAerzL,GAAAkxE,aAAA,MAAApsE,EAAAuuL,oBAAArzL,GAAAquL,eAyVlBvpL,GAAGuuL,oBAAoBpzL,OAAS,GArVlCd,EAAU8C,OAAK,UAAA,yBAAA6C,EAAAwtE,QAAA3rD,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAwVd4C,EAAGsS,WAAY,EACX/T,UACAA,eAETlE,GAAQwH,MAAM,QAAS,yBAA0B,oBACjD7H,EAAO8F,GAAG/H,EAAWyE,gBApV5B,SAASmE,GAuVNtG,EAAQwH,MAAM,QAAS,mBAAoB,sBAI9C,QAASstL,GAtVMr8K,GAuVVs6D,EAtVgBS,sBAAQ/6D,EAAA66D,cAAAlvE,KAAwC,SAAAC,GAuVjE,GAtVe,MAsVXA,EAAIlI,OAtVO,CAuVXwJ,EAAGovL,oBAtVY1wL,EAAAhJ,IAuVf,KAAK,GAAIwF,KAtVG8E,GAAGovL,oBAuVXpvL,EAAGovL,oBAAoBl0L,GAAGkxE,aAAepsE,EAAGovL,oBAAoBl0L,GAAGykI,YAAc,IArV7E3/H,EAAGovL,oBAAAl0L,GAAAmuL,YAAA,IAAuCrpL,EAAAovL,oBAAYl0L,GAAAouL,mBAAA,IAAAtpL,EAAAovL,oBAAAl0L,GAAAusD,SAAA,IACtDznD,EAAAovL,oBAAel0L,GAAWkxE,aAAA,MAA2BpsE,EAAGovL,oBAAQl0L,GAAgBquL,eAwVxFvpL,GAAGqvL,aAtVI,EAwVPrvL,EAAGsS,WAtVC,IAwVT,SAtVS3R,MAoPZ,GAAIX,GAAKC,IAEPD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MAC3FrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EArVEuU,YAAA,EAsVFvU,EAAGwU,qBAAuB,SAASC,GACjCzU,EAAGuU,YAAcE,GAlV5BzU,EAAAyhB,oBAAYA,EACTzhB,EAAAmvL,mBAAAA,EAsVInvL,EAAGsuL,sBAAwBA,EAC3BtuL,EAAGgT,YAAa,EArVpBhT,EAAA+S,WAAA,EAuVI/S,EAtVCsS,WAAO,EAwVRva,EAAW2c,SAAU,CACrB,IAAIvC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SApV7ED,KA0aAlS,EAAGgU,OAAS,WAERhU,EAAG+S,WAAY,EACf/S,EAAGgsL,yBAA0B,EArV9BhsL,EAAAsvL,WAAc,GAyVjBtvL,EAAG0R,OAtVK,WAuVJ1R,EAAGgT,YAtVa,EAuVhBhT,EAAGgsL,yBAA0B,EAC7BhsL,EAAGkU,YArVHlU,EAAAwtE,0KA6NRp5E,QACKC,OArVM,6BAsVNe,WArVO,cAAW85L,MA+d3B,WACI,YAOA,SAvVKK,GAAW9kL,EAAA1Q,EAAmChC,EAAAyC,EAAAH,EAAAL,EAAAS,EAAA+0L,EAAAtpB,EAAAupB,EAAA7kH,EAAAwrF,EAAAj8J,GAmZ/C,QAAS+X,KArVL,GAAG+kJ,IAwVC9kJ,UAAWA,EACXvc,OAAQ,IAIZg1E,GAA6BG,eAAeksF,GAAYx4J,KAAK,SAAU89J,GAtVnE,GAAQ,MAARA,EAAQ/lK,OAAA,CACRwJ,EAAA2hB,YAAU46I,EAAA7mK,KAEd6pK,EAAoB1J,EAEZ,IAAGmL,IAwVC7uJ,UAAWA,EAtVXvc,OAAG,IACHE,UAAQ+/J,EAGZjrF,GAAII,iBAAAg2F,GAAAviK,KAAA,SAAA4hK,GACA,GAAA,MAAAA,EAAA7pK,OAAA,CAwVIwJ,EAAGw/J,uBAAyBa,EAAK3qK,IAIjC,IAAIkyL,IACAz1K,UAAWA,EACXrc,UAAW+/J,EACXmnB,UAAW,cAGfwS,GAA0BE,gCAAgC9H,GAAYnpL,KAAK,SAAUo4J,GACjF,GAAoB,MAAhBA,EAAKrgK,OAAgB,CACrBwJ,EAAGg/J,mBAAqBnI,EAAKnhK,IAE7B,IAAIi6L,IAtVvBx9K,UAAyBA,EACpBo1J,UAAA,OACK3xK,OAAA,IAGDswK,GAAAsB,qCAAAmoB,GAAAlxL,KAAA,SAAA8hK,GAwVkC,MAAhBA,EAAK/pK,SACLwJ,EAAGs3K,oBAAsB/W,EAAK7qK,KAtV1CsK,EAAAsS,WAAA,IAET,SAAA3R,GACI5I,EAAA2I,YAAmC,QAAG,mBAAA,oBAyV7BV,EAAGsS,WAAY,IArV3B,SAAA3R,GACJ5I,EAAA2I,YAAA,QAAA,mBAAA,oBAGOV,EAAGsS,WAAW,IAE1B,SAAe3R,GACN5I,EAAM2I,YAAS,QAAA,mBAAoB,oBA0VvCV,EAAGsS,WAAY,IArV3B,SAAS3R,GACD5I,EAAO2I,YAAA,QAAA,mBAAA,oBA0VXV,EAAGylC,OAASkuH,EAtVZ3zJ,EAAAm0J,WA0VAiC,EAA2BwB,eAAe,QAAQn5J,KAAK,SAAUC,GAC1C,MAAfA,EAAIlI,SAtVbwJ,EAAA6xF,SAAcnzF,EAAUhJ,KACnBsK,EAAOsS,WAAA,IAyVR,SAvVU3R,GAwVT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS6+J,GAAcvL,EAAYz1J,GArVhC,GAAAy1J,EAAc,CACT,GAAAhuI,IAwVI7T,UAAWA,EAtVf2xC,WAAQ,EACRhuD,UAASk+J,EAYTy7B,GAAAG,0BAA4C5pK,GAAAvnB,KAAA,SAAAC,GAC7B,MAAXA,EAAAlI,SACAwJ,EAAMgmD,aAAAtnD,EAAAhJ,KAyVEsK,EAAGgmD,aAAa7qD,OAAS,IAtV1B6E,EAAAm0J,QAAKpwG,iBAAY/jD,EAAAgmD,aAAA,GAC5B+tG,EAAoB/zJ,EAAAm0J,QAAApwG,iBAA8BD,aAE1C9jD,EAAAsS,WAAW,EAGX/T,GACIA,MAyVT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAnVzDV,GAAAm0J,QAAYpwG,iBAAA,KAwVX/jD,EAAGgmD,gBAIX,QAASysG,GAAS9W,GACd,GAAe,YAAXA,EACA37I,EAAGylC,OAAS,wBACZzlC,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,MAIrB,IAAe,aAAXvnB,EAAwB,CAC7B37I,EAAG5J,eAAgB,EAvV/B4J,EAAAijK,aAAA,EACYjjK,EAAAkjK,kBAAA,EACPljK,EAAAgT,YAAW,CAGP,KAAA,GAAY9X,KAAA8E,GAAQ2hB,YAChB3hB,EAAA2hB,YAAAzmB,GAAApF,WAAA+/J,IAEJ71J,EAAAylC,OAAoBzlC,EAAA2hB,YAAczmB,GAAAonB,YAAe,MAActiB,EAAC2hB,YAAczmB,GAACid,WA8VpF,QAAS47I,GAAU8D,EAAkBt5J,GACjC,GAAIs5J,EAAkB,CAtVvB,GAAA7xI,IACA7T,UAAAA,EACA2xC,WAAa+zG,EACb/hK,UAAY+/J,EACZxgD,aAAY,EAGXm6E,GAAYz3B,mBAAsB/xI,GAAuBvnB,KAAA,SAAgBC,GAyVjE,GAAmB,MAAfA,EAAIlI,OAAgB,CAvVpCwJ,EAAAg4J,kBAAAt5J,EAAAhJ,KAEgBsK,EAAAg4J,kBAAA78J,OAAA,EAyVI6E,EAAGi4J,aAAc,EAtVlBj4J,EAAAi4J,aAAA,CAEJ,KAAA,GAAA/8J,KAAc8E,GAAIg4J,kBACN,IAAZh4J,EAAYg4J,kBAAA98J,GAAA03B,gBAyVH5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eAIjF5yB,GAAGsS,WAAY,EAEX/T,GAvVXA,MA2VE,SAxVSoC,GAyVR5I,EAxVO2I,YAAc,QAAI,mBAAA,wBA4V7BV,GAAGm0J,QAAQpwG,iBAxVW,KAyVtB/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAxVoB,EA4V/B,QAASE,GAxViBC,EAAAh6J,GA0VtB,GAAIg6J,EAAS,CACT,GAAIvyI,IACA7T,UAAWA,EAvVhB2xC,WAAQ9jD,EAAAm0J,QAAiBpwG,iBAAAD,WACzBhuD,UAAA+/J,EAyVKxgD,aAAckjD,EArVnBi3B,GAAoBz3B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GACjB,GAAA,MAAAA,EAAAlI,OAA0B,CACpBwJ,EAAAw4J,qBAAQ95J,EAAqBhJ,IAC/B,IAAA+iK,GAAA,GACIo3B,EAAA,EACH,KAAG,GAAA30L,KAAA8E,GAAAw4J,qBAMH,GAmVSx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBACjG5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGw4J,qBAAqBt9J,GAAG03B,gBApVzEj9B,QAAZqK,EAAYg4J,kBAAA98J,GAAAulJ,cAAAvlJ,GAAA8E,EAAAg4J,kBAAA78J,OAAA,EACX,IAAA,GAAAgP,KAAAnK,GAAAg4J,kBACAS,GAAA9iK,QAAAqK,EAAAg4J,kBAAA7tJ,GAAAs2I,aAAAp4H,KAAA,GAAAroB,EAAAg4J,kBAAA7tJ,GAAAs2I,aAAAp4H,KACKwnK,EAAAA,GAAAl6L,QAAAqK,EAAAg4J,kBAAA7tJ,GAAAs2I,aAAAxzF,UAAA,GAAAjtD,EAAAg4J,kBAAA7tJ,GAAAs2I,aAAAxzF,WAAA,GAKJ4iI,GAAS10L,OAAA,IAyVN00L,EAAQA,EAAM/oL,OAAO,EAAG+oL,EAAM10L,OAAS,IArVlD6E,EAAAm0J,QAAA9rI,KAAwBowI,EAC5Bz4J,EAAAm0J,QAAoB27B,UAAAD,EAEd7vL,EAAAsS,WAAA,EAEI/T,GACIA,MAGR,SAAAoC,GAyVC5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAKxDV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAAO,GAClBroB,EAAGm0J,QAAQ0L,YAAc,GAIjC,QAxVOa,GAAA5tJ,GA2VH9S,EAAG+S,WAAY,EAvVhB/S,EAAAm0J,WACCn0J,EAAGm0J,QAAA//J,QAAa8e,KAAAJ,GAoWhB9S,EAAGgT,YAAa,EAGpB,QAASgwJ,KAEL,GAAI+sB,GAAS,CACT/vL,GAAG+S,YACHg9K,EAAS/vL,EAAGm0J,QAAQp7I,GAExB,IAAIi3K,GAAa,CAvVhBhwL,GAAAm0J,QAAA67B,aACTA,EAAA,EA0VQ,IAAIC,GAAW,CAxVvBjwL,GAAAm0J,QAAA87B,WACYA,EAAA,EA4VJ,IAAI5tB,KAvVJ,KAAK,GAAAnnK,KAAA8E,GAAAg4J,kBA0VGh4J,EAAGg4J,kBAAkB98J,GAAGulJ,eAxVjC4hB,EAAqB,QAAez7J,SAAE1L,GAAS,IAAQ8E,EAAAg4J,kBAAiB98J,GAAAulJ,aAAS15F,OAIjF,IAAAgvG,IA2VKh9I,GAAIg3K,EACJ59K,UAAWA,EAxVhBrc,UAAc+/J,EACd/xG,WAAA9jD,EAAAm0J,QAAqBpwG,iBAAAD,WACrBiD,OAAA/mD,EAAAg4J,kBAAsBh4J,EAAAg4J,kBAAA78J,OAAA,GAAAslJ,aAAA15F,OACtBvmD,QAAAR,EAAAm0J,QAAoB9rI,KAAA,YA0VfynK,UAAW9vL,EAAGm0J,QAAQ27B,UAxV3B10B,gBAAaz+J,KAAAqkB,UAAAqhJ,GACb7qI,WAAgB,EAChB0D,aAAc,EACdwR,cAAkB,EAClBswI,UAAA,gBACAgT,WAAaA,EACbE,WAAeD,EA0VV5pK,QAAS,OAxVdvS,UAAY0/I,EAAAnzJ,OAGZmvL,GAAiBW,kCAAAp6B,GAAAt3J,KAAA,SAAAC,GACTA,EAAAhJ,KAAUke,aAAA,GAClB5T,EAAAgT,YAAa,EA0VJhT,EAAG+S,WAAY,EAxVxB/S,EAAA5J,eAAgB,EAChB4J,EAAYijK,aAAA,EACZjjK,EAAAkjK,kBAAqB,EACrBljK,EAAAmjK,YAAA,EACSprK,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,oCACA3B,MA4VAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,oCAxV3D7T,EAAWgT,YAAA,IAEX,SAAarS,GA0VR5I,EAAW2I,YAAY,QAAS,iCArVxC,QAAG0zH,KACAp0H,EAAAm0J,WACAn0J,EAAAgT,YAAA,EACAhT,EAAA5J,eAAe,EA0Vd4J,EAAGijK,aAAc,EAxVjBjjK,EAAAm6K,iBAAY,EACZn6K,EAAAkjK,kBAAa,EA0VbljK,EAAGmjK,YAAa,EAxVnBnjK,EAAI26K,cAAe,EAChB36K,EAAAi4J,aAAc,EA0Vdj4J,EAAGo4J,qBAAsB,EApVzBp4J,EAAA+hK,2BA0VA/hK,EAAGuhK,wBAKP,QAzVI4C,GAAArxJ,GA2VA,GAAIH,GAzVOtY,EAAAsY,QAAmB,UA0V1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WAEhB,GAAIs3J,IACAC,QAzVIljJ,EAAQkjJ,QA0VZ3vI,QAzVI,UAGJjoB,EAAA,GAAAH,SA0VJG,GAzVQF,OAAI,YAAgBvB,KAAKqkB,UAAA+0I,IA2VjCK,EAA2B4M,4BAA4B5kK,GAAUK,KAAK,SAAUC,GACzD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBACpD3B,IACAkiH,KAGAr8H,EAAW2I,YAAY,QAAS,gCAIpC,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,kCAGzC,cAKP,QAASsT,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGm6K,iBAAkB,EACrBn6K,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cAAe,EAClB36K,EAAG2gK,YAAa,EAChB3gK,EAAGm0J,WACHn0J,EAAGi4J,aAAc,EACjBj4J,EAAGo4J,qBAAsB,EACzBp4J,EAAGqhK,4BAEH9B,EAAc1J,GA8DlB,QAzVS6kB,KA0VL16K,EAAGi4J,aAzVY,EA0Vfj4J,EAAG43K,mBAzVmB,EA2VtB53K,EAAGgT,YAAa,EAChBhT,EAAG5J,eAAgB,EAxVvB4J,EAAAijK,aAAkB,EACdjjK,EAAAm6K,iBAAe,EA0Vfn6K,EAAGkjK,kBAzVa,EA0VhBljK,EAAGmjK,YAzVI,EA0VPnjK,EAAG26K,cAzVI,EA4VP36K,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAzVM,EA0VTtS,EAAG83K,gBAzVI,EA0VP5lK,IAIJ,QAASs2K,KAELxuL,EAAO8F,GAzVC,yBAAsBhK,UAAa+/J,EAAcz/J,eAAA,EAAAC,YAAA,EAAAC,cAAA,IAzM7D,GAAI0J,GAAKC,IArVbD,GAAAqU,kBAAShJ,MAAA,KAAgCA,MAAQ,KAAOA,MAAY,KAAQA,MAAS,MACjFrL,EAAAsU,SAAStU,EAAAqU,gBAAA,EAETrU,GAAGuU,YAAA,EACHvU,EAAGwU,qBAAc,SAAgBC,GAwV7BzU,EAAGuU,YAAcE;EAGrBzU,EAAGi4J,aAvVI,EAwVPj4J,EAAGggK,oBAAqB,EACxBhgK,EAAGo4J,qBAAsB,EACzBp4J,EAAG43K,mBAAoB,EArVvB53K,EAAGgT,YAAY,EACfhT,EAAG5J,eAAY,EACf4J,EAAGijK,aAAA,EACHjjK,EAAGm6K,iBAAA,EACHn6K,EAAAkjK,kBAAqB,EACrBljK,EAAGmjK,YAAS,EACZnjK,EAAG26K,cAAA,EAEH36K,EAAA+S,WAAA,EAwVA/S,EAAG+xJ,gBAAiB,EACpB/xJ,EAAGsS,WAAY,EACftS,EAAG83K,gBAAiB,EACpB//K,EAAW2c,SAAU,EAtVrB1U,EAAAwoL,WAAgBA,EAyVhBxoL,EAAGu/J,cAvVaA,EAwVhBv/J,EAAG+zJ,UAvVYA,EAwVf/zJ,EAAGs4J,mBAvVYA,EAwVft4J,EAAGgjK,4BAA8BA,EACjChjK,EAAGo0H,OAvVIA,EAwVPp0H,EAAGgU,OAvVKA,EAwVRhU,EAAG0gK,eAAiBA,EApVpB1gK,EAAAyyJ,SAASA,EAwVTzyJ,EAAG06K,gBAvVgBA,EAwVnB16K,EAAG2gK,YAvVK,EAyVR3gK,EAAGm0J,WACHn0J,EAAGmkK,cAvVaA,EAyVhBnkK,EAAGk/J,sBACHl/J,EAAG+hK,2BACH/hK,EAAGuhK,wBACHvhK,EAAGgxK,eAEH,IAAI7+J,GAvVYhY,EAAIgG,uBAAAwU,gBAAAxC,UAwVhBqhJ,EAAar5J,EAvVGgG,uBAyVf01J,EAvVW17J,EAAuBgG,uBAA0B01J,aAwV7DlC,EAAc35J,EAAOvE,OAAOM,MAGhCmc,KAsZAlS,EAAG+vG,YAAc,SAAUj9F,GACvB9S,EAAG+S,WAAY,EAEf/S,EAAGm0J,QAAU//J,QAAQ8e,KAAKJ,GAE1B9S,EAAGgT,YAzVY,EA2VfusJ,EAAc1J,EAAc,WAvVzB,GAAA71J,EAAAgmD,aAAU,CA0VL,IAAK,GAAI9qD,KAAK8E,GAAGgmD,aACThmD,EAAGgmD,aAAa9qD,GAAG4oD,aAAe9jD,EAAGm0J,QAAQrwG,aAxV7D9jD,EAAAm0J,QAA2BpwG,iBAAe/jD,EAAAgmD,aAAa9qD,GA6V/C,IAAI0tL,GAAcjsL,KAAKC,MAAMoD,EAAGm0J,QAAQE,UAvV5C,KAAA,GAAWn5J,KAAA8E,GAAAk/J,mBAAqB8oB,OA0VoB,OAAxChoL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,MAGa,OAAxC3lD,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,OAxVhD3lD,EAAck/J,mBAAY8oB,OAAU9sL,GAAA4rD,OAAA8hI,EAAA5oL,EAAAk/J,mBAAA8oB,OAAA9sL,GAAA2lI,OAIjC,IAAAs6B,GAAWx+J,KAAAC,MAAAoD,EAAAm0J,QAAAiH,gBACXrH,GAAA/zJ,EAAYm0J,QAAApwG,iBAAAD,WAAA,WACZ,GAAA9jD,EAAWg4J,kBA0VH,IAAK,GAAI98J,KAAK8E,GAAGg4J,kBAAkBE,YAC3Bl4J,EAAGg4J,kBAAkBE,YAAYh9J,GAAG6rD,SAAWo0G,EAAmBjgK,GAAG4rD,OAAO,GAAGC,SAC/Ev4B,OAAOiyH,aAAezgJ,EAAGg4J,kBAAkBE,YAAYh9J,KAavE,IAzVIitL,GAAOxrL,KAAAC,MAAaoD,EAAAm0J,QAAYi0B,mBA0VpC,KAAK,GAzVGltL,KAAG8E,GAAAi5K,aACHj5K,EAAAi5K,aAAa/9K,GAAA6rD,SAAQohI,EAAiBphI,SA0VtC/mD,EAAGm0J,QAAQmN,oBAAsBthK,EAAGi5K,aAAa/9K,QAqCrE8E,EAAGkjI,WAAa,WAEZ,GAAKljI,EAAG+S,UA4BH,CACD,GAAI0vH,IAAU,CACd,KAAK,GAzVGvnI,KAAI8E,GAAA+hK,wBACApsK,QAyVJqK,EAAGm0J,QAzVC4N,yBA0VA/hK,EAAG+hK,wBAAwB7mK,GAAG6rB,MAAQ/mB,EAAGm0J,QAAQ00B,oBAAoBp0G,MACrEp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQ00B,oBAAoBp0G,IAAM,mBAxV9Dp9E,WAAK,EACH+F,KAAA,OA2VHqlI,GAAU,OArCP,CACf,GAAIA,IAAU,CACd,KAAK,GAAIvnI,KAAK8E,GAAG+hK,wBAxVsBpsK,QAAtCqK,EAAUm0J,QAAA00B,qBACX7oL,EAAA+hK,wBAAkB7mK,GAAA6rB,MAAA/mB,EAAAm0J,QAAA00B,oBAAAp0G,MA0VNp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQ00B,oBAAoBp0G,IAAM,mBAxV3Dp9E,WAAA,EACD+F,KAAA,OAEXqlI,GAAW,EAIfA,KAC4B9sI,QAApBqK,EAAA8oL,gBACA9oL,EAAG+hK,wBAAwBlqK,MA0VvBkvB,IAAK/mB,EAAGm0J,QAAQ00B,oBAAoBp0G,IAxVpC2/B,aAAGp0G,EAAA8oL,kBA4VPzuL,EAzVO8C,OAAA,UAAc,uBA0VjB9F,WAAW,EAxVf+F,KAAS,6QAhkB7BhJ,QAuVKC,OAAO,uCACPe,WAAW,8BAA+Bm6L,MA0lBnD,WACI,YAOA,SAASa,GAA+B3lL,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQS,EAAS+0L,EAA2B9jJ,EAAoBtR,EAAoB8S,EAAiBg5H,EAAgCupB,EAAiC7kH,EAA8BwrF,EAA4Bj8J,GA4DhT,QAAS+X,KAEL,GAAI+kJ,IACA9kJ,UAAWA,EAxVZvc,OAAA,IA6VHg1E,GAA6BG,eAAeksF,GAAYx4J,KAAK,SAAU89J,GAxVnE,GAAS,MAATA,EAAS/lK,OAAA,CACNwJ,EAAA2hB,YAAA46I,EAAA7mK,KACH6pK,EAAY1J,EAEZ,IAAAmL,IACG7uJ,UAAQA,EACXvc,OAAa,IA0VLE,UAAW+/J,EAtVnBjrF,GAAWI,iBAAAg2F,GAAAviK,KAAA,SAAA4hK,GA0VH,GAAoB,MAAhBA,EAAK7pK,OAAgB,CACrBwJ,EAAGw/J,uBAAyBa,EAAK3qK,IArVtC,IAAAkyL,IACHz1K,UAAiBA,EA0VLrc,UAAW+/J,EACXmnB,UAAW,sBAGfwS,GAA0BE,gCAAgC9H,GAAYnpL,KAAK,SAAUo4J,GAxV7F,GAAA,MAAAA,EAAArgK,OAAA,CACOwJ,EAAAg/J,mBAAAnI,EAAAnhK,IAEI,IAAQi6L,IACZx9K,UAAqBA,EACZo1J,UAAO,OACL3xK,OAAA,IAGRswK,GAAAsB,qCAAAmoB,GAAAlxL,KAAA,SAAA8hK,GACC,MAAAA,EAAA/pK,SACJwJ,EAAAs3K,oBAAA/W,EAAA7qK,KACC0kC,EAAA4R,yBAAA75B,GAAA1T,KAAA,SAAAC,GACA,MAAAA,EAAAlI,OACHwJ,EAAAs6B,eAAA57B,EAAAhJ,KAIaqC,EAAA2I,YAAkC,QAAW,mCAAoB,SAGpE,SAAAC,GACI5I,EAAA2I,YAAA,QAAA,sCAAA,UAEGV,EAAAsS,WAAA,IAEX,SAAY3R,GACvB5I,EAAA2I,YAAA,QAAA,mBAAA,oBAECV,EAAAsS,WAAA,IAEE,SAAa3R,GA0VJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAGxDV,EAAGsS,WAAY,IAEpB,SAAU3R,GAxVhB5I,EAAS2I,YAAA,QAAA,mBAAA,oBAGXV,EAAAsS,WAAgB,IAEhB,SAAA3R,GACA5I,EAAA2I,YAAmB,QAAA,mBAAA,oBAGtBV,EAAGylC,OAAAkuH,EACH3zJ,EAAGm0J,WA4VHiC,EAA2BwB,eAAe,QAAQn5J,KAAK,SAAUC,GAC1C,MAAfA,EAAIlI,SAxVTwJ,EAAA6xF,SAAAnzF,EAAAhJ,KA4VKsK,EAAGsS,WAAY,IAEpB,SAAU3R,GAxVjB5I,EAAS2I,YAAmB,QAAA,mBAAA,oBA6V5B,QAASwrC,GAA2BmkJ,GAEhCrwL,EAAG4rC,mBACH5rC,EAAGswL,WAEHtwL,EAAGm0J,QAzVKnmH,oBAAS,KA0VjBhuC,EAAGm0J,QAAQz+G,iBAAmB,KAvVX//C,QAAf06L,GACA3kJ,EAAgB2C,gBAAkBgiJ,GAAU5xL,KAAA,SAAAC,GA0VrB,MAAfA,EAAIlI,OAxVZwJ,EAAA4rC,gBAA2BltC,EAAAhJ,KAEnBqC,EAAW2I,YAAY,QAAA,mBAA6B,gBA2VzD,SAzVKC,GA0VJ5I,EAAW2I,YAAY,QAAS,sCAAuC,iBAKnF,QAAS6vL,GAA4BC,GAKjC,GAHAxwL,EAAGswL,WACHtwL,EAAGm0J,QAAQz+G,iBAAmB,KAvVf//C,QAAZ66L,EAAY,CA2VX,GAAIlpB,IACAn1J,UAAWA,EACX+oB,aAAcl7B,EAAGm0J,QAAQpoH,mBAAmB7Q,aAxV/CwR,cAAS8jJ,EAKXhB,GAAkBiB,cAAAnpB,GAAA7oK,KAAA,SAAAC,GAClBsB,EAAAswL,QAAa5xL,EAAAhJ,MACb,SAAAiL,GACA5I,EAAa2I,YAAA,QAAA,mBAAA,iBAGbV,EAAAsS,WAAA,GA8VP,QAASitJ,GAAcvL,EAAYz1J,GAvV/B,GAAGy1J,EAAY,CA0VX,GAAIhuI,IAxVL7T,UAAUA,EA0VL2xC,WAAY,EAxVjBhuD,UAAak+J,EAqWZy7B,GAAgCG,0BAA0B5pK,GAAWvnB,KAAK,SAAUC,GAxV/D,MAAjBA,EAAKlI,SACDwJ,EAAAgmD,aAAOtnD,EAAAhJ,KA2VHsK,EAAGgmD,aAAa7qD,OAAS,IACzB6E,EAzVCm0J,QAAOpwG,iBAAmB/jD,EAAAgmD,aAAkB,GAC7C+tG,EAAG/zJ,EAAAm0J,QAAApwG,iBAA6BD,aA2VpC9jD,EAAGsS,WAAY,EACftS,EAAG83K,gBAAiB,EAvVxBv5K,GACQA,MA2VT,SAAUoC,GACT5I,EAAW2I,YAzVY,QAAA,mBAAkB,wBA6V7CV,GAAGm0J,QAAQpwG,iBAAmB,KAC9B/jD,EAAGgmD,gBAIX,QAASysG,GAAS9W,GACd,GAAe,YAAXA,EACA37I,EAAGylC,OAAS,wBACZzlC,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAzVK,EA0VRjjK,EAAGkjK,kBAzVkB,MA6VpB,IAAe,aAAXvnB,EAAwB,CAC7B37I,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGgT,YAAa,CAGhB,KAAK,GAAI9X,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,WAAa+/J,IAvVxC71J,EAAAylC,OAAczlC,EAAA2hB,YAAAzmB,GAAAonB,YAAA,MAAAtiB,EAAA2hB,YAAAzmB,GAAAid,WA+VrB,QAzVO47I,GAAA8D,EAAkBt5J,GACrB,GAAGs5J,EAAmB,CAEnB,GAAA7xI,IA0VK7T,UAAWA,EACX2xC,WAAY+zG,EAxVjB/hK,UAAY+/J,EACZxgD,aAAiB,EAGpBm6E,GAAAz3B,mBAAA/xI,GAAAvnB,KAAA,SAAAC,GA0VQ,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGg4J,kBAAoBt5J,EAAIhJ,KAvVlCsK,EAAag4J,kBAAA78J,OAAA,EA0VF6E,EAAGi4J,aAAc,EAEjBj4J,EAAGi4J,aAAc,CAvVrB,KAAA,GAAA/8J,KAAY8E,GAAAg4J,kBA0VqC,IAAzCh4J,EAAGg4J,kBAAkB98J,GAAG03B,gBAxVzB5yB,EAAAg4J,kBAAA98J,GAAAg9J,YAAAv7J,KAAAC,MAAAoD,EAAAg4J,kBAAA98J,GAAA03B,eAIP5yB,GAAAsS,WAAO,EA2VH/T,GACAA,MAGT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGm0J,QAzVQpwG,iBAAA,KA0VX/jD,EAAGg4J,qBACHh4J,EAAGm0J,QAAQ9rI,KAzVC,GA0VZroB,EAAGm4J,iBACHn4J,EAAGo4J,qBAzVQ,EA6VnB,QAASE,GAAmBC,EAASh6J,GAEjC,GAAIg6J,EAAS,CACT,GAAIvyI,IACA7T,UAAWA,EAxVd2xC,WAAA9jD,EAAAm0J,QAAApwG,iBAAAD,WACGhuD,UAAU+/J,EACdxgD,aAAiBkjD,EA4VjBi3B,GAzVoBz3B,mBAAqB/xI,GAAQvnB,KAAA,SAAoBC,GA0VjE,GAzVY,MAyVRA,EAAIlI,OAzVe,CA2VnBwJ,EAAGw4J,qBAAuB95J,EAAIhJ,IAC9B,IAzVI+iK,GAAA,GA0VAo3B,EAAQ,EAGZ,KAAK,GAAI30L,KAAK8E,GAAGw4J,qBAnV5B,GAoVmBx4J,EAAGw4J,qBAAqBt9J,GAAG8oD,QAAUhkD,EAAGg4J,kBAAkB98J,GAAG8oD,OAAqD,IAA5ChkD,EAAGw4J,qBAAqBt9J,GAAG03B,gBACjG5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGw4J,qBAAqBt9J,GAAG03B,gBArV/Fj9B,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,cAAAvlJ,GAAA8E,EAAAg4J,kBAAA78J,OAAA,EAAA,CACT,IAAA,GAAAgP,KAAAnK,GAAAg4J,kBAGY,GAwVoBS,GAA8D9iK,QAA7CqK,EAAGg4J,kBAAkB7tJ,GAAGs2I,aAAap4H,KAAoB,GAAKroB,EAAGg4J,kBAAkB7tJ,GAAGs2I,aAAap4H,KAxVxIle,GAAAnK,EAAAw4J,qBAAAr9J,OAAA,GAAAxF,QAAAqK,EAAAm0J,QAAAz+G,iBAAA,CA4VwB,GAAIkyI,IACAz1K,UAAWA,EAzVXrc,UAAQ+/J,EACnCmnB,UAAA,cAGQwS,GAAgBE,gCAAA9H,GAAAnpL,KAAA,SAAAo4J,GACrB,GAAA,MAAAA,EAAArgK,OAAA,CACK,GAAAk5G,GAAAmnD,EAAAnhK,KAEIg7L,EAAAl2L,EAAAyC,OAAAyyG,GAAA3oD,OAAA/mD,EAAAg4J,kBAAA7tJ,GAAAs2I,aAAA15F,QA2VmB8oI,GAAQa,EAAQ,GAAGZ,UACnBD,EAAQA,EAAQ,IAAM7vL,EAAGm0J,QAAQz+G,iBAAiByJ,UAxVlEn/C,EAAAm0J,QAAA27B,UAAAD,IAKR,SAAAlvL,GA2VoB5I,EAAW2I,YAAY,QAAS,mBAAoB,oBArVpEV,EAAAm0J,QAAA9rI,KAAAowI,EAgBjBz4J,EAAAsS,WAAkB,EA4VD/T,GAzVPA,MAGV,SAAAoC,GACA5I,EAAA2I,YAA0B,QAAA,mBAAA,wBAKzBV,GAAAm0J,QAAapwG,iBAAA,KA2VT/jD,EAAGg4J,qBAzVNh4J,EAAAm0J,QAAA9rI,KAAe,GAChBroB,EAAAm0J,QAAc0L,YAAc,GAKhC,QAAAmD,KA4VI,GAAI+sB,GAAS,EAITh6B,GACAh9I,GAAIg3K,EACJ59K,UAAWA,EAzVfrc,UAAA+/J,EACI/xG,WAAS9jD,EAAAm0J,QAAWpwG,iBAAKD,WA2VzBiD,OA1VO/mD,EAAAg4J,kBAAmBh4J,EAAAg4J,kBAAA78J,OAAA,GAAAslJ,aAAA15F,OA2V1BvmD,QA1VIR,EAAAm0J,QAAc9rI,KAAA,YA2VlB+yI,gBAAiB,GACjB00B,UA1VQ9vL,EAAAm0J,QAAa27B,UA2VrB50J,aA1VQl7B,EAAAm0J,QAAWpoH,mBAAA7Q,aA2VnBwR,cA1VQ1sC,EAAQm0J,QAAAnmH,oBAAAtB,cA2VhBlV,WA1VQx3B,EAAAm0J,QAAWz+G,iBAAAle,WA2VnBwlJ,UAAW,sBACX32J,QAAS,OACTvS,UA1VI0/I,EAAAnzJ,OA6VRmvL,GAA0BW,kCAAkCp6B,GAAWt3J,KAAK,SAAUC,GAC9EA,EAAIhJ,KAAKke,aAAc,GACvB5T,EAAGgT,YAAa,EAEhB29K,IAQA54L,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,+BACpD3B,MAGAna,EAAW2I,YA1VS,QAAQhC,EAAAhJ,KAAAme,QAAA,+BA2V5B7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,QA1VK,iCA8VpC,QAASiwL,GAAgBpyL,GAErB,GAAIqyL,GAAU5wL,EAAGm0J,QAAQ27B,UAAU7zL,QAAQ+D,EAAGm0J,QAAQz+G,iBAAiByJ,UAAW,GAClFyxI,GAAUA,EAAQttK,UAAU,EAAGstK,EAAQz1L,OA1VI,EA6V3C,IAAI01L,GAAc,GAAIjuL,OACtBiuL,GAAYC,QAAU9wL,EAAGm0J,QAAQ9rI,KACjCwoK,EAAYE,UAAYH,EACxBC,EAAYG,SAAWhxL,EAAGm0J,QAAQ27B,UAClCe,EAAYI,aAAe,aAC3BJ,EAAYK,OAAS,OACrBL,EAAYM,YAAc,aAC1BN,EAAYO,UAAY59B,EA1VInzJ,OA2V5BwwL,EAAYQ,YAAc,aAC1BR,EAAYxkG,MAAQrsF,EAAGm0J,QA1VI9rI,KAAA,YA2V3BwoK,EAAYS,aAAe,MAE3Bv3L,GAEItF,IAAKsD,EAAW8D,SAAW,6CAC3B01L,SAAU,OACVC,OAAQ,OACR97L,KAAMm7L,EACN1uL,SACIutE,eAAgB,sBAErB3tE,QA1VQ,SAAAogE,GA2VP13D,EAAOY,MAAQ82D,IAxVftgE,MAAA,SAAWA,GA2VP47B,MAAM57B,KAIVtD,GACAA,IAIR,QAAS61H,KACLp0H,EAAGm0J,WACHn0J,EAAGgT,YA1VQ,EA2VXhT,EAAG5J,eAAgB,EACnB4J,EA1VGijK,aAAU,EA2VbjjK,EAAGm6K,iBA1VY,EA2Vfn6K,EAAGkjK,kBAAmB,EACtBljK,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cAAe,EAzVtB36K,EAAAi4J,aAAS,EA2VLj4J,EAAGo4J,qBAAsB,EAU7B,QAAS+L,GA1VUrxJ,GA4Vf,GAAIH,GA1VQtY,EAAAsY,QAAW,UA2VnB,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GA1VQjT,OAAAjB,KAAW,WA4Vf,GAAIs3J,IACAC,QAASljJ,EAAIkjJ,QACb3vI,QAAS,UAvVdjoB,EAAU,GAAAH,SACVG,GAAQF,OAAA,YAAmBvB,KAAAqkB,UAAA+0I,IAE1BK,EAAkB4M,4BAAW5kK,GAAAK,KAAA,SAAAC,GA2VN,MAAfA,EAAIlI,QAzVRuB,EAAe2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,yBACf3B,IACAkiH,KA6VIr8H,EAAW2I,YAAY,QAAS,gCAtVpC,SAAGC,GACJ5I,EAAe2I,YAAA,QAAA,kCA6VnB,cAKP,QAAS+wL,GAAYC,GAEjB,GAAIz7K,GAAIjW,EAAGg4J,kBAAkB78J,OAAS,CAxV9BxF,SAAJ+7L,GAAgB/7L,QAAAqK,EAAAg4J,kBAAA/hJ,GAAAwqI,cA6VhB6X,EA1Vet4J,EAAAg4J,kBAAA/hJ,GAAAwqI,aAAA15F,QA+VvB,QAAS/yC,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EACjBjjK,EAAGkjK,kBAAmB,EACtBljK,EAAGm6K,iBAAkB,EACrBn6K,EAAGmjK,YAAa,EAChBnjK,EAAG26K,cA1VC,EA2VJ36K,EAAG2gK,YA1Va,EA2VhB3gK,EAAGm0J,WACHoL,EAAc1J,GACd71J,EAAGi4J,aA1Va,EA2VhBj4J,EAAGo4J,qBA1VgB,EA2VnBp4J,EAAGqhK,4BA2NP,QAASqZ,KACL16K,EAAGi4J,aAAc,EACjBj4J,EA1VG43K,mBAAe,EA4VlB53K,EAAGgT,YAAa,EAChBhT,EAAG5J,eAAgB,EACnB4J,EAAGijK,aAAc,EAzVrBjjK,EAAAm6K,iBAAyB,EA2VrBn6K,EAAGkjK,kBAAmB,EAzVtBljK,EAAAmjK,YAAc,EACdnjK,EAAA26K,cAAkB,EAGlB36K,EAAA+S,WAAI,EACJ/S,EAAA+xJ,gBAAY,EACZ/xJ,EAAAsS,WAAY,EACZtS,EAAA83K,gBAAY,EACZ5lK,IA8VJ,QA1VIs2K,KAEAxuL,EAAA8F,GAAA,yBAA2BhK,UAAA+/J,EAAA5/J,OAAA,uBAAAC,UAAA,KAnd/B,GAAI8J,GAAKC,IAETD,GAAGqU,kBAzViBhJ,MAAW,KAAKA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0VpCrL,EAAGsU,SAAWtU,EAzVEqU,gBAAG,EA2VnBrU,GAAGuU,YAzVa,EA0VhBvU,EAAGwU,qBAzVsB,SAAQC,GA0V7BzU,EAAGuU,YAzVaE,GA4VpBzU,EAAGi4J,aAAc,EACjBj4J,EAAGggK,oBAAqB,EACxBhgK,EAAGo4J,qBAzVqB,EA0VxBp4J,EAAG43K,mBAAoB,EAGvB53K,EAAGgT,YAAa,EAGhBhT,EAAG+S,WAAY,EACf/S,EAAG+xJ,gBAzViB,EA0VpB/xJ,EAAGsS,WAAY,EACftS,EAAG83K,gBAAiB,EACpB//K,EAAW2c,SAAU,EACrB1U,EAAGwoL,WAzVaA,EA2VhBxoL,EAAGu/J,cAAgBA,EACnBv/J,EAAG+zJ,UAAYA,EACf/zJ,EAAGs4J,mBAAqBA,EACxBt4J,EAAGgjK,4BAzViBA,EA0VpBhjK,EAAGo0H,OAASA,EACZp0H,EAAGgU,OAASA,EACZhU,EAAGyxL,YAAcA,EACjBzxL,EAAG2wL,gBAzVkBA,EA6VrB3wL,EAAGyyJ,SAAWA,EACdzyJ,EAAG06K,gBAzVMA,EA0VT16K,EAAG2gK,YAzVQ,EA2VX3gK,EAAGm0J,WACHn0J,EAAGmkK,cAzVgBA,EA2VnBnkK,EAAGk/J,sBACHl/J,EAAG+hK,2BAxVH/hK,EAAAuhK,wBA0VAvhK,EAAGgxK,eAEH,IAzVI7+J,GAAGhY,EAAYgG,uBAAAwU,gBAAAxC,UACfqhJ,EAAar5J,EAAAgG,uBA2VZ01J,EAAe17J,EAAsBgG,uBAAuB01J,aAC7DlC,EAAc35J,EAAOvE,OAAOM,MAChCiK,GAAGksC,2BAA6BA,EAChClsC,EAAGuwL,4BAA8BA,EAGjCr+K,IAogBAlS,EAAG+vG,YA1Va,SAAGj9F,GA2Vf9S,EAAG+S,WAAY,EAEf/S,EAAGm0J,QAAU//J,QA1VG8e,KAAAJ,GA4VhB9S,EAAGgT,YA1VI,EA4VPusJ,EAAc1J,EAAc,WAExB,GA1VC71J,EAAAgmD,aAAA,CACE,IAAA,GAAQ9qD,KAAA8E,GAAAgmD,aACRhmD,EAAAgmD,aAAe9qD,GAAA4oD,aAAA9jD,EAAAm0J,QAAArwG,aA2VN9jD,EAAGm0J,QAAQpwG,iBAAmB/jD,EAAGgmD,aAAa9qD,GAtV1D,IAAA0tL,GAAWjsL,KAAYC,MAAAoD,EAAAm0J,QAAAE,UAEpB,KAAA,GAAAn5J,KAAA8E,GAAgBk/J,mBAAA8oB,OACF,OAAdhoL,EAAAk/J,mBAAc8oB,OAAA9sL,GAAAyqD,MA6VwC,OAAxC3lD,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAGyqD,OACrC3lD,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG4rD,OAAS8hI,EAAY5oL,EAAGk/J,mBAAmB8oB,OAAO9sL,GAAG2lI,OAtV9F,IAAAs6B,GAAmBx+J,KAAAC,MAAAoD,EAAAm0J,QAAAiH,gBACnBrH,GAAA/zJ,EAAam0J,QAAApwG,iBAAAD,WAAA,WA2VR,GAAI9jD,EAAGg4J,kBACH,IAAK,GAAI98J,KAAK8E,GAAGg4J,kBAAkBE,YAzV9Bl4J,EAAAg4J,kBAAaE,YAAAh9J,GAAA6rD,SAAAo0G,EAAAjgK,GAAA4rD,OAAA,GAAAC,SACnBv4B,OAAeiyH,aAAazgJ,EAAAg4J,kBAAcE,YAAAh9J,KAajD,IAAAitL,GAAYxrL,KAAAC,MAAAoD,EAAAm0J,QAAAi0B,mBACZ,KAAA,GAAAltL,KAAW8E,GAAAi5K,aACXj5K,EAAAi5K,aAAc/9K,GAAA6rD,SAAAohI,EAAAphI,SA2VN/mD,EAAGm0J,QAAQmN,oBAAsBthK,EAAGi5K,aAAa/9K,QAkMrE8E,EAAGkjI,WAAa,WAEZ,GA1VIljI,EAAA+S,UA4BD,CACA,GAAA0vH,IAAA,CA2VC,KAAK,GAAIvnI,KAAK8E,GAAG+hK,wBAC6BpsK,QAAtCqK,EAAGm0J,QAAQ4N,yBACP/hK,EAAG+hK,wBAAwB7mK,GAAG6rB,MAAQ/mB,EAAGm0J,QAAQ00B,oBAAoBp0G,MACrEp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQ00B,oBAAoBp0G,IAAM,mBAC3Dp9E,WAAW,EACX+F,KAAM,OAEVqlI,GAAU,OA/XZ,CACV,GAAAA,IAAQ,CACR,KAAA,GAAMvnI,KAAA8E,GAAA+hK,wBACGpsK,QAATqK,EAASm0J,QAAA00B,qBACL7oL,EAAA+hK,wBAAgB7mK,GAAA6rB,MAAA/mB,EAAAm0J,QAAA00B,oBAAAp0G,MA2VRp6E,EAAQ8C,OAAO,UAAW6C,EAAGm0J,QAAQ00B,oBAAoBp0G,IAAM,mBAzVpEp9E,WAAoB,EACZ+F,KAAA,OAERqlI,GAAU,EA8VZA,KAzVL9sI,QAAAqK,EAAA8oL,gBACA9oL,EAAA+hK,wBAAAlqK,MA2VYkvB,IAAK/mB,EAAGm0J,QAAQ00B,oBAAoBp0G,IACpC2/B,aAAcp0G,EAAG8oL,kBAvV9BzuL,EAAU8C,OAAA,UAAA,uBACG9F,WAAA,EACb+F,KAAgB,yUApf3BhJ,QACKC,OAAO,0CACPe,WAzVW,iCAAuBg7L,MA8rC3C,WAEI,YAMA,SAASuB,GA1V0BlnL,EAAK1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAA2kI,EAAA7sH,EAAA09K,EAAAC,EAAAt1L,EAAAy3L,GA4XpC,QA1VO1/K,KAEHlS,EAAG6xL,cAAA1/K,UAAkBA,EACrBnS,EAAG6xL,cAAa/7L,UAAA+/J,CAEhB,IAAG7vI,IACA7T,UAAUnS,EAAA6xL,cAAA1/K,UACb2xC,WAAc,EACXhuD,UAAA+/J,EA6VH45B,GAAgCG,0BAA0B5pK,GAAWvnB,KAAK,SAAUC,GAC7D,MAAfA,EAAIlI,SAzVbwJ,EAAAgmD,aAAwBtnD,EAAKhJ,KA4VhBsK,EAAGgmD,aAAa7qD,OAAS,IAzVlC6E,EAAU6xL,cAAa9tI,iBAAA/jD,EAAAgmD,aAAA,GA2Vd+tG,EAAU/zJ,EAAG6xL,cAAc9tI,iBAAiBD,aAEhD9jD,EAAGsS,WAAY,IAGpB,SA1VQ3R,GA2VP5I,EA1VS2I,YAAY,QAAA,mBAAc,oBA+V3C,QAASqzJ,GAAU8D,EAAkBt5J,GACjC,GAAIs5J,EA1VQ,CA4VR,GA1VI7xI,IA2VA7T,UA1VWA,EA2VX2xC,WAAY+zG,EACZ/hK,UAAW+/J,EACXxgD,aA1Va,IA6VjBu8E,GAAgCE,kBAAkB9rK,GAAWvnB,KAAK,SAAUC,GACxE,GAAmB,MAAfA,EAAIlI,OAAgB,CAzVpBwJ,EAAAg4J,kBAAqBt5J,EAAKhJ,KAEtBsK,EAAGg4J,kBAAA78J,OAAmB,EACtB6E,EAAAi4J,aAAiB,EA4VjBj4J,EAAGi4J,aA1VY,CA4VnB,KAAK,GAAI/8J,KAAK8E,GAAGg4J,kBACgC,IAAzCh4J,EAAGg4J,kBAAkB98J,GAAG03B,eACxB5yB,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,eACzE5yB,EAAGg4J,kBAAkB98J,GAAG62L,sBAAwBp1L,KAAKC,MAAMoD,EAAGg4J,kBAAkB98J,GAAG03B,gBAGnF5yB,EAAGg4J,kBAAkB98J,GAAG62L,wBAIhC/xL,GAAGsS,WAAY,EAxVd/T,GACGA,MA6VT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGg4J,qBAIX,QAASM,GAAmBC,EAASh6J,GAxVjC,GAAGg6J,EAAU,CACV,GAAAvyI,IA2VK7T,UAAWA,EAzVhB2xC,WAAa9jD,EAAA6xL,cAAA9tI,iBAAAD,WACbhuD,UAAgB+/J,EAChBxgD,aAAckjD,EAAAp1J,WAGdyuL,GAAaE,kBAAA9rK,GAAAvnB,KAAA,SAAAC,GACb,GAAe,MAAfA,EAAAlI,OAAe,CA4VNwJ,EAAGw4J,qBAAuB95J,EAAIhJ,IAxVjC,KAAI,GAAQwF,KAAA8E,GAAAw4J,qBACNx4J,EAAAw4J,qBAAgBt9J,GAAe8oD,QAAWhkD,EAAAg4J,kBAAY98J,GAAA8oD,OAAA,IAAAhkD,EAAAw4J,qBAAAt9J,GAAA03B,gBACtD5yB,EAAQg4J,kBAAA98J,GAAmB82L,UAAGhyL,EAAaw4J,qBAAAt9J,GAAA82L,UA2VtChyL,EAAGg4J,kBAAkB98J,GAAGg9J,YAAcv7J,KAAKC,MAAMoD,EAAGw4J,qBAAqBt9J,GAAG03B,gBAvV5E13B,GAAA8E,EAAAw4J,qBAAAr9J,OAAA,GAAAxF,QAAAqK,EAAAg4J,kBAAA98J,GAAAulJ,eACDzgJ,EAAA6xL,cAAA/B,UAAA9vL,EAAAg4J,kBAAA98J,GAAAulJ,aAAAqvC,UACA9vL,EAAA6xL,cAAAI,cAAAjyL,EAAAg4J,kBAAA98J,GAAAulJ,aAAAv9F,aACCljD,EAAG6xL,cAAQK,iBAAAlyL,EAAAg4J,kBAAA98J,GAAAulJ,aAAA6qB,QACvBtrK,EAAa6xL,cAAAM,YAAAnyL,EAAAg4J,kBAAA98J,GAAAulJ,aAAAjpH,WAIjBx3B,GAAAsS,WAAA,EAEW/T,GACCA,MA6VT,SAAUoC,GACT5I,EAAW2I,YA1VU,QAAQ,mBAAmB,qBA+V5D,QAAS0xL,GA1V2BC,EAAG9zL,GA4VnC,GAAiB5I,QAAb08L,EAAwB,CAExB,GAAIC,GAAiB,EAErB,KAAK,GAAIp3L,KAAKm3L,GACVC,EA1VeA,EAAeD,EAAAn3L,GAAA6rD,OAAA,GA6V9BurI,GAAen3L,OA1VQ,IA2VvBm3L,EAAiBA,EA1VchvK,UAAA,EAAAgvK,EAAuBn3L,OAAc,GA4VxE,IAAI6qB,IACA7T,UAAWA,EACX2xC,WAAY9jD,EAAG6xL,cAAc9tI,iBAAiBD,WAC9ChuD,UAAW+/J,EACXxgD,aAAci9E,EAGlBV,GAAgCE,kBA1VQ9rK,GAAWvnB,KAAA,SAAAC,GA2V/C,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpBwJ,EAAGuyL,4BA1V6B7zL,EAAAhJ,KA4VhCsK,EAAGwyL,0BACH,KAAK,GAAIt3L,KAAK8E,GAAGuyL,4BAMb,GALIvyL,EAAGuyL,4BA1ViBr3L,GAAA8oD,QAAAhkD,EAA2Bg4J,kBAAA98J,GAAA8oD,OAAoE,IAApEhkD,EAAiCuyL,4BAAoBr3L,GAAU03B,gBA4V9G5yB,EAAGg4J,kBAAkB98J,GAAG62L,sBA1VOp1L,KAAAC,MAA2BoD,EAAAuyL,4BAAAr3L,GAAA03B,gBA6V1D13B,GAAM8E,EAAGuyL,4BA1V2Bp3L,OAAG,GAA0BxF,QAA1BqK,EAAAg4J,kBAA0B98J,GAAAu3L,wBAAA,CA4VjE,GAAIC,GAAc,IAElB,KAAK,GAAIz8K,KAAKjW,GAAGg4J,kBAAkB98J,GAAGu3L,wBAEmC98L,QAAjEqK,EAAGg4J,kBAAkB98J,GAAGu3L,wBAAwBx8K,GAAGuhB,aACnDk7J,GACI5C,UAAW9vL,EAAGg4J,kBAAkB98J,GAAGu3L,wBAAwBx8K,GAAG65K,UAC9D6C,gBAAiB3yL,EAAGg4J,kBAAkB98J,GAAGu3L,wBAAwBx8K,GAAGitC,aACpE0vI,mBAAoB5yL,EAAGg4J,kBA1VY98J,GAAAu3L,wBAA4Bx8K,GAAAq1J,QA2V/DunB,cAAe7yL,EAAGg4J,kBA1Vc98J,GAAAu3L,wBAAmBx8K,GAAAuhB,YA6VvDx3B,EAAGwyL,wBAAwB36L,KAAK66L,IAShD1yL,EAAGsS,WAAY,EAEX/T,GACAA,MAGT,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAMhE,QAASoyL,GAAcC,GAEOp9L,QAAtBo9L,IACA/yL,EAAG6xL,cAAcI,cAAgBc,EAAmB7vI,aACpDljD,EAAG6xL,cAAcK,iBAAmBa,EAAmBznB,QACvDtrK,EAAG6xL,cA1VaM,YAAcY,EAAav7J,WA4V3Cx3B,EAAGgzL,iBAAkB,EAErBhzL,EAAGkjD,cAAe,EAElBljD,EAAGizL,oBACHjzL,EAAGkzL,aAAc,EACjBtB,EA1V2BuB,uBAAQnzL,EAAqB6xL,cAAG1/K,UAAenS,EAAA6xL,cAAA/7L,UAAA,IAAA,eAAA,EAAAkK,EAAA6xL,cAAAK,kBAAAzzL,KAAA,SAAAC,GA2VpD,KAAdA,EAAIlI,OACAkI,EAAIhJ,KAAKyF,OAAS,IAElB6E,EAAGizL,iBA1VkBv0L,EAAAhJ,KA2VrBsK,EAAGkzL,aA1VY,IAgWnBn7L,EA1VO2I,YAAA,QAAAhC,EAA0BhJ,KAAAme,QAAA,mBA2VjC7T,EAAGgT,YA1VK,IA4Vb,SAAUrS,GACT5I,EAAW2I,YA1VQ,QAAA,kCA+V/B,QAAS0yL,KAE6Bz9L,QAA9BqK,EAAG6xL,cAAc/B,WAEb9vL,EAAG6xL,cAAc/B,UAAU30L,OAAS,IAEpC6E,EAAGgzL,iBAAkB,EAxVrBhzL,EAAAkjD,cAAW,EA4VXljD,EAAGizL,oBACHjzL,EAAGkzL,aAAc,EACjBtB,EAAgCuB,uBAAuBnzL,EAAG6xL,cAAc1/K,UAAWnS,EAAG6xL,cAAc/7L,UAAW,IAAK,eAAgB,EAAGkK,EAAG6xL,cAAcK,kBAAkBzzL,KAAK,SAAUC,GACnK,KAAdA,EAAIlI,OACAkI,EAAIhJ,KAAKyF,OAAS,IAxVrB6E,EAAAizL,iBAAAv0L,EAAAhJ,KACdsK,EAAoBkzL,aAAA,IAIpBn7L,EAAc2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,mBACd7T,EAAAgT,YAAkB,IAElB,SAAarS,GACb5I,EAAe2I,YAAA,QAAA,kCAgWtB,QA1VO2yL,KA4VH,GAA2C19L,QAAvCqK,EAAG6xL,cAAcyB,mBAAiC,CAElD,GAAInkB,IAAU,EAzVbokB,GAAa,CAElB,KAAO,GAAGr4L,KAAA8E,GAAA6xL,cAAyByB,mBAAa,CA2VpCtzL,EAAG6xL,cAAcM,aAAenyL,EAAG6xL,cAAcyB,mBAAmBp4L,GAAG23L,gBACvE1jB,GAAU,EAvVd,KAAA,GAAAhlK,KAAWnK,GAAAizL,iBACXjzL,EAAU6xL,cAAAyB,mBAAAp4L,GAAA23L,eAAA7yL,EAAAizL,iBAAA9oL,GAAAqtB,aACL+7J,GAAQ,GA+VjB,GAAIpkB,EACA,GAAKokB,EAkBDx7L,EAAW2I,YAAY,QAAS,gCAAiC,wBAlBhD,CAEjB,IAAK,GAAIxF,KAAK8E,GAAG6xL,cAAcyB,mBAAoB,CAC/C,GAAI59L,IACA8hC,WAAYx3B,EAAG6xL,cAAcyB,mBAAmBp4L,GAAG23L,cAzVrD/C,UAAA9vL,EAAA6xL,cAAAyB,mBAAAp4L,GAAA40L,UACHxkB,QAAAtrK,EAAA6xL,cAA8ByB,mBAAAp4L,GAAA03L,mBAG7B5yL,GAAAizL,iBAAiBp7L,KAAAnC,GAGrBsK,EAAAgzL,iBAAe,EA4VfhzL,EAAGkjD,cA1VO,EA2VVljD,EAAGkzL,aAAc,MAnVzBn7L,GAAc2I,YAAG,QAAA,sBAAyB,wBA8V1C,IA1V2B,IA0VvBV,EAAG6xL,cA1VSgB,eAAWl9L,QAAAqK,EAAA6xL,cAAAgB,cAAA,CA4VvB,GAAIW,IAAU,CAEd,KAAK,GAAIt4L,KAAK8E,GAAGizL,iBACTjzL,EAAGizL,iBAAiB/3L,GAAGs8B,YAAcx3B,EAAG6xL,cAAcgB,gBACtDW,GAAU,EAGlB,IAAIA,EAAS,CACT,GAAI99L,IACA8hC,WAAYx3B,EAAG6xL,cAAcgB,cAC7B/C,UAAW9vL,EAAG6xL,cAAc4B,qBAzV3CnoB,QAAAtrK,EAAA6xL,cAAAe,mBA6VW5yL,GAAGizL,iBAAiBp7L,KAAKnC,GACzBsK,EAAGgzL,iBAAkB,EAzV7BhzL,EAAAkjD,cAAA,EACIljD,EAAAkzL,aAAA,MA+VIn7L,GAAW2I,YAAY,QAAS,6BAA8B,qBApV9E,QAAIgzL,GAAYC,GAEb3zL,EAAA6xL,cAAkBc,gBAAA,GAClB3yL,EAAA6xL,cAAiBe,mBAAA,GACjB5yL,EAAA6xL,cAAegB,cAAA,GACf7yL,EAAA6xL,cAAiB4B,qBAAA,GAEN99L,QAAXg+L,IACA3zL,EAAA6xL,cAAgBc,gBAAAgB,EAAAzwI,aAChBljD,EAAA6xL,cAAkBe,mBAAAe,EAAAroB,QAClBtrK,EAAA6xL,cAAgBgB,cAAAc,EAAAn8J,WA4VXx3B,EAAG6xL,cAAc4B,qBAAuBE,EAAqB7D,WAvVrE,QAAG8D,KAEA,GAAAC,GAAY,EAEZ,KAAA,GAAA34L,KAAA8E,GAAAizL,iBACAY,EAAAA,EAA+B7zL,EAAAizL,iBAAA/3L,GAAAs8B,WAAA,GAGlCq8J,GAAA14L,OAAA,IA4VQ04L,EAAkBA,EAAgBvwK,UAAU,EAAGuwK,EAAgB14L,OAAS,GAxV5E,IAAG6qB,IACA7T,UAAAA,EA4VCrc,UAAW+/J,EA1VXq8B,iBAAYlyL,EAAA6xL,cAAAK,iBACZ4B,aAAcD,EACd//K,UAAA0/I,EAAYnzJ,OA8VhBuxL,GAAgCmC,uBAAuB/tK,GAAWvnB,KAAK,SAAUC,GA1VjFA,EAAAhJ,KAAAke,aAAA,GACQ5T,EAAAgT,YAAe,EACfhT,EAAG+S,WAAA,EA4VHhb,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBA1VpD3B,MA8VAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,mBA1VlD7T,EAAGgT,YAAY,IA6VpB,SAAUrS,GA1VV5I,EAAU2I,YAAK,QAAA,iCAgWtB,QAASszL,GAAmBC,GAzVxB,GAAIthL,GAAAtY,EAAkBsY,QAAA,UA4VlB,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GA3VQjT,OAAAjB,KAAW,WA6Vf,IA3VI,GAAAvD,KAAA8E,GAAWizL,iBACXgB,GAAcj0L,EAAAizL,iBAAA/3L,GAAAs8B,YA6VVx3B,EAAGizL,iBAAiB39J,OAAOp6B,EAAG,EAIlC8E,GAAGizL,iBAAiB93L,OAAS,EAC7B6E,EAAGkzL,aA3VQ,EA6VXlzL,EAAGkzL,aAAc,CAErB,IAAIW,GAAkB,EAEtB,KAAK,GAAI34L,KA3VG8E,GAAIizL,iBA4VZY,EA3VeA,EAAqB7zL,EAAAizL,iBAAmB/3L,GAAAs8B,WAAS,GA8VhEq8J,GA3Va14L,OAAA,IA4Vb04L,EA3VeA,EAAkBvwK,UAAG,EAAAuwK,EAAwB14L,OAAA,GA8VhE,IAAI6qB,IACA7T,UA3VOA,EA4VPrc,UAAW+/J,EACXq8B,iBA3VQlyL,EAAA6xL,cAAAK,iBA4VR4B,aA3VQD,EA4VR//K,UAAW0/I,EAAWnzJ,OAG1BuxL,GA3V2BmC,uBAAS/tK,GAAoBvnB,KAAA,SAAAC,GA4VhDA,EAAIhJ,KAAKke,aAAc,GACvB5T,EAAGgT,YAAa,EA1VvBhT,EAAA+S,WAAA,EACEhb,EAAA2I,YAAoB,QAAA,uBAAA,mBA4VfwR,MAxVPna,EAAA2I,YAA4B,QAAUhC,EAAAhJ,KAAAme,QAAA,mBA4V/B7T,EAAGgT,YAAa,IAzVxB,SAAIrS,GACA5I,EAAW2I,YAAA,QAAA,mCAiWvB,QA3VQwzL,KA6VJl0L,EAAGgzL,iBAAkB,EAErBhzL,EAAGkjD,cAAe,EAClBljD,EAAG6xL,cA3VcI,cAAY,KA4V7BjyL,EAAG6xL,cA3VaK,iBAAO,KAzH3B,GAAIlyL,GAAKC,IAETD,GAAGqU,kBA1VahJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2VhBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAAc,GACjBvU,EAAGwU,qBA1Va,SAAWC,GA2VvBzU,EAAGuU,YAAcE,EAErB,IAAItC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEqhJ,EA1VQr5J,EAAegG,sBA2V3BH,GAAGgzL,iBA1Va,EA2VhBhzL,EAAGm0L,gBAAiB,EACpBn0L,EAAGkjD,cAAe,EAClBljD,EAAGozL,eA1VgBA,EA2VnBpzL,EAAGqzL,gBAAkBA,EACrBrzL,EAAGk0L,SAAWA,EACdl0L,EAAG8yL,cAAgBA,EACnB9yL,EAAG0zL,gBAAkBA,EAzVrB1zL,EAAA6xL,gBA4VA,IA1VIh8B,GAAW17J,EAAkBgG,uBAAS01J,YA2V1C71J,GAAGizL,oBACHjzL,EAAGkzL,aA1VK,EA2VRlzL,EAAGwyL,2BACHxyL,EAAG4zL,eAAiBA,EACpB5zL,EAAG+zJ,UA1VKA,EA2VR/zJ,EAAGi4J,aAAc,EACjBj4J,EAAGs4J,mBAAqBA,EACxBt4J,EAAGoyL,6BAA+BA,EAClCpyL,EAAGg0L,mBAAqBA,EAExB9hL,gOApCJ9d,QACKC,OA1VO,wCA2VPe,WAAW,+BAAgCu8L,MA2dpD,WACI,YAOA,SAASyC,GAA6B3pL,EAAQ1Q,EAAOhC,EAAYyC,EAAQH,EAASL,EAAQ2kI,EAAc8wD,EAAiCva,EAAiCpjK,EAAc3X,GAgCpL,QAAS+X,KAELlS,EAAGrL,SA3VSi+B,cAAe,eA6V3B5yB,EAAGjK,OA3VS49J,CA4VZ,IAAImmB,IACA3nK,UA3VWA,EA4VX2xC,WA3VQ,EA4VRhuD,UAAW+/J,EAEf45B,GA3VuBG,0BAAqB9V,GAAwBr7K,KAAK,SAASC,GA4V9E,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGqjH,kBAAoB3kH,EAAIhJ,KAE3BsK,EAAGsjH,gBACH9oH,EAAOqI,QA3VK7C,EAAIqjH,kBAAc,SAAA/f,GA4V1BA,EAAIt/C,MAAQrnD,KAAKC,MAAM0mG,EAAIt/C,OAC3BxpD,EAAOqI,QA3VMrI,EAASmI,KAAG2gG,EAAAt/C,OAAA,SAAqBj9B,GA4VrCvsB,EAAO3F,SAASmL,EAAGsjH,aAAcv8F,IAClC/mB,EAAGsjH,aA3VQzrH,KAAAkvB,OA8VvB/mB,EAAGsS,WAAY,CAIf,IAAI5c,IACAyc,UAAWA,EACXvc,OAAQ,IACRg+J,YAAa,WACb99J,UAAW+/J,EAGf45B,GAAgC1kH,eAAer1E,GAAM+I,KAAK,SAAUC,GAC7C,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KA1VtBsK,EAAA2hB,YAAYxmB,OAAA,GA4VPd,EAAQ8C,OAAO,UAAW,yBAA2B9F,WAAW,EAAM+F,KAAM,OAzVhF4C,EAAAsS,WAAA,GAIRva,EAAW2I,YAAY,QAAS,yBAAoB,aA6VjD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAxV3D3I,GAAc2I,YAAA,QAAoB,yBAAA,aAEvC,SAAIC,GACA5I,EAAG2I,YAAc,QAAA,mBAAmC,cA+V5D,QA3VQsT,KA4VJhU,EAAGgT,YAAa,EAGpB,QA3VQtB,KA4VJ1R,EAAGgT,YA3VI,EA4VPhT,EAAGrL,YACHqL,EAAGrL,SA3VSi+B,cAAc,eA4V1B5yB,EAAG8uG,SAGP,QAASyU,KAEL,GAAIC,GAAaxjH,EAAG,MAAO7E,OAAS,CAGhC6E,GAAG8uG,MA3VM3zG,OAAA,GA+VT6E,EA3VG8uG,MAAAj3G,MACCgxB,GAAA26F,EA4VAC,SAAUzjH,EAAGrL,SAAS0yD,OAG1BrnD,EAAGrL,SAAS0yD,KAAO,KAOnBrnD,EAAG8uG,MA3VIj3G,MA4VHgxB,GAAI26F,EA1VJC,SAAGzjH,EAAArL,SAAe0yD,OA8VtBrnD,EAAGrL,SA3VI0yD,KAAA,IAmWf,QAASq8D,GAAW5gH,GAChB9C,EAAG8uG,MAAMx5E,OAAOxyB,EA3VC,GA8VrB,QAAS+gH,GAAkBlvH,GAEvBA,EAASmB,UA3VG+/J,EA4VZlhK,EAASwd,UAAYA,CACrB,IAAIi1C,KACJ,KAAK,GAAIlsD,KAAK8E,GAAG8uG,MACb1nD,EAAS,QAAUxgD,SAAS1L,GAAK,IAAM8E,EAAG8uG,MAAM5zG,GAAGuoH,QAGvD9uH,GAASqvD,MAAQrnD,KAAKqkB,UAAUomC,GAxV5BpnD,EAAI+S,WAuWJpe,EAAS0xB,QAAU,IACnBopK,EAAgC4E,yBAAyB1/L,GAAU8J,KAAK,SAAUC,GAC9E3G,EAAW2I,YAAY,UAAW,wBAAyB,yBA1V3DwR,IACAlS,EAAAgT,YAAK,EA4VLhT,EAAG+S,WAAY,GAChB,SA3VUpS,GA4VT5I,EA3VQ2I,YAAW,QAAA,iCA6VvBgR,MA/WA/c,EAAI0xB,QAAA,IAEJopK,EAA+B4E,yBAAoB1/L,GAAA8J,KAAA,SAAAC,GAC/C3G,EAAO2I,YAAc,UAAA,sBAAgC,yBA4VrDwR,IACAlS,EAAGgT,YAAa,GACjB,SAAUrS,GA1VT5I,EAAS2I,YAAQ,QAAA,iCA6VrBgR,KAeR,QAAS+lE,GA3Vc9iF,GA4VnBqL,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGrL,SA3VSP,QAAG8e,KAAAve,EA6Vf,KAAK,GAAIkjB,KA3VG7X,GAAG2hB,YA4VP3hB,EAAG2hB,YA3VI9J,GAAA/hB,YAAcnB,EAAAmB,YA4VrBkK,EAAGrL,SAASktB,gBAAkB7hB,EAAG2hB,YAAY9J,GAIrD7X,GAAG8uG,SACHt0G,EAAO+7B,MA3VE5hC,EAAAqvD,MAAA,SAAA4/D,EAAA18D,GA4VL,GA3VIs8D,GAAWxjH,EAAA,MAAY7E,OAAS,CA4VpC6E,GAAG8uG,MAAMj3G,MACLgxB,GAAI26F,EA1VPC,SAAAG,MAgWT,QAAS0jE,GA3VoB3yL,GA4VzB,GAAIge,GA3VQtY,EAAOsY,QAAA,UA4Vf,4CACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KA3VC,WA4VZgxL,EA3V0B6E,yBAAc3/L,EAAAmvD,YAAArlD,KAAA,SAAAC,GACnB,MA2VbA,EA3VIlI,QAAYkI,EAAAhJ,KAAcke,UA4V9B7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WAzVpD9b,EAAG2I,YAAiB,QAAKhC,EAAAhJ,KAAAme,QAAA,YA6VlC,cAKP,QAAS4+I,KAELz4J,EAAO8F,GAAG,yBAA2BhK,UAAW+/J,EAAcz/J,eAAe,EAAOC,YAAY,EAAMC,cAAc,IAvNxH,GAAI0J,GAAKC,IACTD,GAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAAW2c,SAAU,EACrB1U,EAAGgU,OA3VQA,EA4VXhU,EAAG0R,OA3VSA,EA4VZ1R,EAAGujH,WAAaA,EAChBvjH,EAAG0jH,WAAaA,EAChB1jH,EAAG6jH,kBAAoBA,EACvB7jH,EAAGy3E,kBAAoBA,EA1VvBz3E,EAAAsnL,oBAASA,EA4VTtnL,EAAGyyJ,SAAWA,EACdzyJ,EAAG8uG,SACH9uG,EAAGrL,YAEHqL,EAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SA3VUtU,EAAIqU,gBAAgB,GA4VjCrU,EAAGuU,YA3VS,EA4VZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,EAErB,IAAItC,GA3VQhY,EAAiBgG,uBAA4BwU,gBAAexC,UA6VpE0jJ,EA3VQ17J,EAAYgG,uBAAA01J,aA4VpBlC,EA3VQ35J,EAAWvE,OAAAM,MA6VvBmc,qMAlCJ9d,QACKC,OAAO,wCACPe,WAAW,+BA3V6Bg/L,MA6jBjD,WAEI,YAMA,SAASG,GA3VoB9pL,EAAA1Q,EAAqBhC,EAAAyC,EAAAH,EAAqBL,EAAA2kI,EAAA2gC,EAAAxtJ,EAAA3X,EAAAywE,GA0YnE,QAAS4pH,KAELx6L,EAAO8F,GAAG,4BAA8BhK,UAAW+/J,EAAc9/J,OAAQiK,EAAGylC,SAEhF,QAASgvJ,KAELz6L,EAAO8F,GAAG,wBA3VsBhK,UAAU+/J,EAAA9/J,OAAAiK,EAAAylC,SA6V9C,QAAS6lI,KAELtxK,EA3VI8F,GAAI,2BAA6BhK,UAAA+/J,EAAA9/J,OAAAiK,EAAAylC,SAmXzC,QAASgtH,KAELzyJ,EAAG5J,eA3VY,EA4Vf4J,EAAG3J,YA3VS,EA4VZ2J,EAAG2gK,YA3VS,EAuQhB,GAAI3gK,GA3VIC,IA4VRD,GAAGw0L,yBA3VsBA,EA4VzBx0L,EAAGy0L,qBAAuBA,EAC1Bz0L,EAAGsrK,QAAUA,CAGb,IAAIzV,GAAe17J,EAAsBgG,uBAAuB01J,YAKhE71J,GAAGyyJ,SAAWA,CAzVNt4J,GAA4BgG,uBAAAwU,gBAAAxC,UAC5BhY,EAAkBgG,oNAwU9B/L,QACKC,OAAO,qCACPe,WA3VO,4BAAwBm/L,MAubxC,WACI,YAOA,SA3VIG,GAAoBjqL,EAAA1S,EAAAyC,EAAAH,EAAAN,EAAAC,EAAA2kI,EAAA8wD,EAAAva,EAAAt6H,EAAA2G,EA4VpBvvC,EAAgBJ,EAAwBzX,GA1TxC,QAAG+X,KAEA,GAAAxc,IACAyc,UAAcA,EACdvc,OAAA,IA+VE65L,GAAgC1kH,eAAer1E,GAAM+I,KAAK,SAAUC,GA3VzD,MAAZA,EAAYlI,QA6VJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KA3V7BsK,EAAe2hB,YAAAxmB,OAAA,GACfd,EAAc8C,OAAO,UAAO,4BAAA6C,EAAArL,SAAAwe,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OAEhC4C,EAAAsS,WAAA,GAgWYva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GA3VV5I,EAAS2I,YAAA,QAAA,mBAAA,cAgYZuuI,EAAuB4mB,GAG3B,QAAS5mB,GA5VsBn5I,EAAYyI,GA6VvC,GAAIzI,EAAW,CACX,GAAIgkL,IACA3nK,UA5VIA,EA6VJ2xC,WAAY,EACZhuD,UA5VGA,EA8VP25L,GAAgCG,0BAA0B9V,GAAar7K,KAAK,SAAUC,GA3VxE,MAAfA,EAAUlI,QACTwJ,EAAWgmD,aAAYtnD,EAAAhJ,KA6VXsK,EAAGgmD,aAAa7qD,OAAS,EACzBd,EAAQ8C,OAAO,UAAW,yBAA2B9F,WAAW,EAAM+F,KAAM,OA1V9E4C,EAAAgmD,aAAA7qD,OAAA,IA8VE6E,EAAGknD,KAAKnD,iBAAmB/jD,EAAGgmD,aAAa,GA1V7CysD,EAAAzyG,EAAAknD,KAAAnD,iBAAAD,aAGF9jD,EAAAsS,WAAA,EACD/T,GA6VKA,KA1VXxG,EAAa2I,YAAA,QAAA,yBAAA,aAEd,SAAaC,GA6VT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAG5DV,EAAGgmD,gBAKP,QAASI,GA5VGc,GA6VR,GAAIgoF,GAA6C,OAA3BhoF,EAAK47C,mBAAyDntG,SAA3BuxD,EAAK47C,kBAC1DkjB,EAAW,QAAUv/D,EAAUS,EAAKQ,UAAY,EACpD1nD,GAAG4uG,YA5Va5uG,EAAA2uG,QAAOqX,GA6VlBkpB,IACDlvI,EAAGo1G,cAAgB56G,EAAOyC,OAAO+C,EAAG4mD,aAAea,SAAYznD,EAAG4uG,YAAayG,aAAgBnuD,EAAK47C,kBAAkB/7C,UAC1HvsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GAC9BA,EAAEa,WAAas+D,IACVkpB,IA3VRroF,EAAAC,OAAA9mD,EAAAo1G,eACEvuD,EAAAi8C,kBAAW,KA8Vd,IA5VIqsC,GAAsB1oF,EAAT,EAASS,EAAAQ,SAAAs+D,EA6VtBv/D,GAAUI,EAAEa,UAAYynF,IACxBtoF,EAAEC,UA3VHD,EAAAi8C,kBAAgB,QAgWnBosC,GACiC,IAA7BzoF,EAAUS,EAAKQ,YA3V1B1nD,EAAAo1G,cAAA56G,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA2uG,QAAA,MAAA0G,aAAA,KA+VD,QA5VO5uD,GAAMc,GACZ,MAAA3gD,UAAA2gD,EAAAjkC,UAAA,IA+VD,QAASmvF,GAAqB3uD,EAAYvlD,GA3VtCyB,EAAA2uG,QAAShyG,KAAAC,MAAYoD,EAAAknD,KAAAnD,iBAAAC,OACrBhkD,EAAA4uG,YAAS5uG,EAAA2uG,QAAYE,KAErB,IAAA3M,IA8VI/vF,UAAWA,EACXrc,UAAW+/J,EA3Vf/xG,WAASA,EA6VLiD,OAAQ,EAGZ0oI,GA5VuBkF,qBAAAzyF,GAAAzjG,KAAA,SAAAC,GA6VnB,GAAmB,MAAfA,EAAIlI,OAAgB,CA3VxBwJ,EAAA4mD,YAAAloD,EAAAhJ,KACIsK,EAAAonD,WACA,KAAA,GAAA+tD,KAAAn1G,GAAA2uG,QAAA,CACG,GAAA71D,IACJ2O,SAAeznD,EAAA2uG,QAAAwG,GACd59F,UAAW,EA6VHmwC,SAAUytD,EA1VnB,WAAAA,IACMr8D,EAAAgO,OAAUtsD,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA2uG,QAAAwG,MAEfn1G,EAAAonD,SAAWvvD,KAAAihD,GAERv6C,GACAA,IACJyB,EAAAo1G,cAAe56G,EAAAyC,OAAA+C,EAAA4mD,aAAAa,SAAAznD,EAAA4uG,cACd5uG,EAAAsS,WAAW,MAEfva,GAAA2I,YAAA,QAAA,yBAAA,eA8VD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QA5VO0uI,GAAmBloF,GA6VtB,GAAImoF,KAGJ,IA9VAnoF,EAAK3vC,UAAY2vC,EAAA,UAAavxD,SAAAuxD,EAAA3vC,SA6V9BvX,EAAGsvI,cA5VQ,EA6VNpoF,EA5VG3vC,SAyZD,CACH,GAAI43H,GAAgB1oF,EAAUS,EAAKQ,UA1VvCknD,GA4VmB,QAAUnoD,EAAUS,EAAKQ,UAAY,GA5V5CltD,EAAA6P,KAAsBrK,EAAAonD,UAAAM,SAAuBR,EAAAQ,WACzD1nD,GAAAo1G,cAAaxG,EAAsB9nD,OA8V/BtsD,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUP,GAC9BJ,EAAUI,EAAEa,UAAYynF,IACxBtoF,EAAE0oF,YAAa,SAjaP,CA6VhB,GAAIt0I,IACAkX,UAAWA,EACX40C,OAAQ,EA3VbjxD,UAAQ+/J,EACJ/xG,WAAM9jD,EAASknD,KAAAnD,iBAAiBD,WAC/BuxD,aAAa,EACdpoD,UAAW/F,EAAA+F,UACVxF,SAAIP,EAAAO,SACJp/B,KAAA6+B,EAAUsgI,SA6VV1zK,UAAW5T,EAAWG,OACtB+X,SAAU,EAEd,IAAiC,IAA7BquC,EAAUS,EAAKQ,UA3VlBzsD,EAAAo6G,aAAoB,MACrB,CACA,GAAAm6B,GAAAh1I,EAAA6P,KAAArK,EAAAonD,SAA4C,SAAAP,GACxC,MAAWA,GAAAa,WAAA,QAAAjB,EAAAS,EAAAQ,UAAA,KACXo7C,iBA8VA,IAAmB,OAAf0sC,GAAsC75I,SAAf65I,EAKvB,MAhWJz3I,GAAY2I,YAAY,QAAA,mCAAA,UAC5BV,EAAAgT,YAAA,EACQhT,EAAAsvI,cAAe,OACfpoF,EAAA+F,UAAWt3D,OA+VXsF,GAAIo6G,aAAem6B,EAAWzoF,OAElCsoF,EAAmBrvI,EAAGonD,SAG1BqoI,EAAgCmF,qBAAqB35L,GAAKwD,KAAK,SAAUC,GA3VxEA,EAAWhJ,KAAAke,aAAA,GA6VJ6+F,EAAqBzyG,EAAGknD,KAAKnD,iBAAiBD,WAAY,WA3V5DtpD,EAAAqI,QAAAwsI,EAAsC,SAAAI,GA6V5Bj1I,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUF,GAC9BuoF,EAAQ/nF,WAAaR,EAAKQ,UAAY+nF,EAAQ3sC,oBAC9C57C,EAAK47C,kBAAoB2sC,EAAQ3sC,kBAC7B57C,GACAd,EAAYc,QAxVpDd,MA8VoBruD,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,cA5VxE7T,EAAAgT,YAAA,EACYhT,EAAAsvI,cAAA,EACIpoF,EAAA+F,UAAAt3D,SAEPoC,EAAA2I,YAAkC,QAAOhC,EAAAhJ,KAAAme,QAAoB,cACzDqzC,EAAA3vC,UAAA2vC,EAAA3vC,WAGN,SAAU5W,GA8VD5I,EAAW2I,YAAY,kCAmBnC,QAASgvI,GAAgBC,GACrB,GAAI+3C,IACAv1K,UAAWA,EACX40C,OAAQ4oF,EAAa5oF,OACrBjxD,UAAW65I,EAAa75I,UACxBguD,WAAY6rF,EAAa7rF,WACzBuxD,aAAc,EACdpoD,UAAW0iF,EAAa1iF,UACxBxF,SAAUkoF,EAAaloF,SACvBp/B,KAAKsnH,EAAatnH,KAClBvU,UAAW5T,EAAWG,OACtB+X,SAAU,EAWdq3K,GAAgCmF,qBAAqBlN,GAAMjpL,KAAK,SAAUC,GA5VrE,MAAAA,EAAAlI,OAAAkI,EAA2BhJ,KAAAke,WAEzB7b,EAAG2I,YAAA,UAA8BhC,EAAAhJ,KAAWme,QAAA,WA8V3C87H,EAAap1E,QAAS,GAEtBxiE,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,WAEvD,SAAUlT,GA5VjB5I,EAAmB2I,YAAA,QAAA,2BAAA,YAiWnB,QAASsoF,GAAgB4mD,GAErB,GAAIj9H,GAAUtY,EAAQsY,QAAQ,UAAW,4CAA8Ctb,WAAW,EAAM+F,KAAM,OAC1GiyI,EAAmBrvI,EAAGonD,QAC1Bz0C,GAAQjT,OAAOjB,KAAK,WAChBgxL,EAAgCoF,qBAAqBjlD,EAAa7oF,QAAQtoD,KAAK,SAAUC,GAClE,MAAfA,EAAIlI,QAAkBkI,EAAIhJ,KAAKke,WAC/B7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,WACpD4+F,EAAqBzyG,EAAGknD,KAAKnD,iBAAiBD,WAAY,WACtDtpD,EAAOqI,QAAQwsI,EAAkB,SAAUI,GACvCj1I,EAAOqI,QAAQ7C,EAAGonD,SAAU,SAAUF,GAC9BuoF,EAAQ/nF,WAAaR,EAAKQ,UAAY+nF,EAAQ3sC,oBAC9C57C,EAAK47C,kBAAoB2sC,EAAQ3sC,kBAC7B57C,GACAd,EAAYc,QAI5Bd,OAGJruD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,WAEvD,SAAUlT,GA5Vd5I,EAAgB2I,YAAA,QAAA,2BAAA,cAiWvB,QAASmvI,GAAa3oF,GAClBA,EAAK+F,UAAYt3D,OACjBuxD,EAAK3vC,UAAW,EA5V3BvX,EAAYsvI,cAAA,EACT90I,EAAAqI,QAAA7C,EAAAonD,SAAA,SAAAP,GA8VYA,EAAE0oF,YAAa,IAGvB,QA9VQkjB,KAgWCz4J,EAAO8F,GAAG,yBAA2BhK,UAAW+/J,EAAcz/J,eAAc,EAAOC,YAAY,EAAKC,cAAa,IA1V1H,GA3VI0J,GAAGC,IA4VPD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SA3VItU,EAAAqU,gBAAe,GA6VtBrU,EAAGuU,YA3VI,EA4VPvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA3VnB/S,EAAAsS,WAAA,EA6VItS,EA5VCo1G,iBA6VDr9G,EA5VC2c,SAAW,EA8VZ1U,EAAGivI,uBAAyBA,EA3VhCjvI,EAAAyyG,qBAASA,EACLzyG,EAAAovI,iBAASA,EACTpvI,EAAG6vI,aAAaA,EAChB7vI,EAAGomD,YAAYA,EACfpmD,EAAG0vI,gBAAYA,EACf1vI,EAAGgpF,gBAAeA,EAClBhpF,EAAAyyJ,SAAWA;AAEX,GAAGvyJ,GAAS/F,EAAAgG,uBACTgS,EAAahY,EAAAgG,uBAAAwU,gBAAAxC,UAEb0jJ,EAAA17J,EAAoBgG,uBAAA01J,YAEvB71J,GAAGknD,QACHh1C,yQAsTJ9d,QACKC,OAAO,oCACPe,WAAW,2BAA4Bs/L,MAoWhD,WACI,YAOA,SAAS/iL,GAAkB5X,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASuX,EAAwBC,EAAsBC,EAAcC,EAAgB5X,EAAuB6X,EAAgBC,GAiC/L,QAASC,KACDC,GACAH,EA9VQI,mBAA0BD,GAAA1T,KAAA,SAAAC,GA+VX,MAAfA,EAAIlI,SA7VLwJ,EAAAqS,YAAY3T,EAAAhJ,KA+VXsK,EAAGsS,WAAY,IAEpB,SA9VI3R,GACH5I,EAAW2I,YAAY,QAAS,mBAAA,oBAkWxCuR,EAAqBM,sBAAsB9T,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,SACJwJ,EAAGwS,iBAAmB9T,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAsB5D,QAAS+R,GAAoBC,GACzB,GAAIC,GAAUtY,EAAQsY,QAAQ,UAAW,4CACrCtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WA7VpBwT,EAAuBQ,oBAAAC,EAAAE,cAAAnU,KAAA,SAAAC,GA+VI,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,kBA7VjEwR,KAEGna,EAAc2I,YAAA,QAAA,gCACdrJ,WAAW,EACX+F,KAAY,QAGhB,SAAAuD,GACI5I,EAAQ2I,YAAW,QAAK,gEACpBrJ,WAAG,EACH+F,KAAI,UAiWb,cAIP,QAASyV,GA9VWC,GA+VhB9S,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAG0S,QAAQO,QA9VIH,EAAAG,QAgWfjT,EAAG0S,QAAUte,QA9VG8e,KAAAJ,EAkWhB,KAAK,GA9VE5X,KAAA8E,GAAUqS,YACTrS,EAAAqS,YAAWnX,GAAAiX,WAAYnS,EAAS0S,QAAAP,YA+VhCnS,EAAG0S,QAAQS,gBAAkBnT,EAAGqS,YAAYnX,GAIpD,KAAK,GAAIA,KAAK8E,GAAGoT,iBACTpT,EAAGoT,iBAAiBlY,GAAGmY,iBAAmBrT,EAAG0S,QAAQW,iBACrDrT,EAAG0S,QAAQW,eAAiBrT,EAAGoT,iBAAiBlY,GA3VxD,KAAI,GAAAA,KAAA8E,GAAWsT,oBACZtT,EAAAsT,oBAAyBpY,GAAAqY,oBAAAvT,EAAA0S,QAAAc,UACvBxT,EAAA0S,QAAAa,kBAAAvT,EAAAsT,oBAAApY,IAwWT,QAASuY,KACL,GAAIC,GA9VUvZ,EAAoBgG,uBA+V9BuS,GACAP,UAAWnS,EAAG0S,QAAQS,gBAAgBhB,UACtCc,QAASjT,EAAG0S,QAAQO,QA7VpBI,eAAgBrT,EAAA0S,QAAAW,eAAAA,eAChBE,kBAAmBvT,EAAA0S,QAAAa,kBAAcA,kBAgWhCvT,GAAG+S,WA5URL,EAAAiB,WAAAD,EAAgCrT,OAC5BqS,EAAQE,aAAW5S,EAAK0S,QAAAE,aA+VxBX,EA9VqBY,kBAAIH,GAAAjU,KAAA,SAAAC,GAClBA,EAAAhJ,KAAAke,aAAW,GACd7b,EAAS2I,YAAiB,UAAShC,EAAAhJ,KAAAme,QAAA,kBAC/B3B,IA+VAlS,EAAGgT,YA9VW,EA+VdhT,EAAG+S,WA9VW,EA+VdrB,MA5VA3Z,EAAI2I,YAAe,QAAShC,EAAAhJ,KAAAme,QAAA,kBA+V5B7T,EAAGgT,YA9VM,IAgWd,SA9VQrS,GA+VP5I,EAAW2I,YAAY,mCA/B3BgS,EAAQoB,UAAYJ,EAAYrT,OA7VxC4R,EAAmB8B,iBAAYrB,GAAAjU,KAAA,SAAAC,GACpBA,EAAShJ,KAAAke,aAAW,GA+Vf7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBACpD3B,IA7VPlS,EAAAgT,YAAqB,EACvBtB,MAgWS3Z,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBA7V1D7T,EAAAgT,YAAc,IAGd,SAAWrS,GACX5I,EAAY2I,YAAA,kCAuXpB,QAASsT,KACLhU,EA9VG+S,WAAU,EA+Vb/S,EAAGgT,YA9VY,EA+VfhT,EAAGiU,aAAc,EA3VrB,QAASvC,KAEL1R,EAAA0S,WACA1S,EAAGgT,YAAA,EACHhT,EAAA+S,WAAU,EAiWd,QAASmB,KACLlU,EAAGmU,YA9VKC,gBAhMZ,GAAGpU,GAAAC,IAEHD,GAAGqU,kBAAYhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MACfrL,EAAGsU,SAAAtU,EAAAqU,gBAAgB,GAgWnBrU,EAAGuU,YAAc,EA7VjBvU,EAAGwU,qBAAA,SAAyBC,GACzBzU,EAAAuU,YAAAE,GAGHzU,EAAGgT,YAAA,EACHhT,EAAG+S,WAAA,EACH/S,EAAGsS,WAAA,EACHva,EAAG2c,SAAS,EAkWZ1U,EAAGgU,OAASA,EA7VZhU,EAAA0R,OAAIA,EA+VJ1R,EAAGkU,UAAYA,EA7VflU,EAAG0S,WAgWH1S,EAAGyT,kBAAoBA,EA7VvBzT,EAAA6S,kBAAgBA,EAgWhB7S,EAAGyS,oBA9VYA,CAgWf,IAAIN,GA9VYhY,EAAAgG,uBAAAwU,gBAAAxC,SAgWhBD,KAwBAD,EAAqB2C,eAAe7a,EAAOhC,GAAY0G,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,SACJwJ,EAAGoT,iBAAmB1U,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAIxDuR,EAAqB4C,kBAAkB9a,EAAOhC,GAAY0G,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,SACJwJ,EAAGsT,oBAAsB5U,EAAIhJ,KAC7BsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2OA3E5DtM,QA7VIC,OAAG,6BA+VFe,WA9VM,oBAAcuc,MA8iB7B,WACI,YAMA,SAASmjL,GA9Vc/6L,EAAeE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAA46L,EAAAC,EAAA9nJ,GAwXlC,QAASh7B,KACLlS,EAAGi1L,iBAEC5pL,MA9VQ,WAiWRA,MA9VG,WAkWHA,MAAS,YAEb2pL,EA9VOE,uBAAAz2L,KAAA,SAAAC,GACC,MAAAA,EAAAlI,QA+VAwJ,EAAGm1L,iBAAmBz2L,EAAIhJ,KA7V1BsK,EAAAsS,WAAW,GAEZva,EAAA2I,YAAgB,QAAY,yBAAA,uBAgWhC,SA9VSC,GA+VR5I,EA9VU2I,YAAa,QAAA,mBAAA,wBAiW3BwsC,EAAgBS,gBAAgBx7B,GAAW1T,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KA7VzBsK,EAAAsS,WAAgB,GAEjBva,EAAW2I,YAAA,QAAA,yBAAA,cAgWZ,SA9VCC,GACA5I,EAAA2I,YAAY,QAAa,mBAAA,eAiW7Bq0L,EA9VcK,mBAAar7L,EAAAhC,GAAA0G,KAAA,SAAAC,GACL,MAAlBA,EAAKlI,QACLwJ,EAAAstI,gBAAsB5uI,EAAAhJ,KACtBsK,EAAAsS,WAAU,GAgWNva,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAExD,IAAIzF,IACAo6L,oBAAqB,KACrB1hL,WAAY,KACZ6jB,WAAY,KAEhBw9J,GA9VuBE,qBAAcj6L,GAAWwD,KAAA,SAAAC,GA+VzB,MAAfA,EAAIlI,QA7VJwJ,EAAAs1L,uBAAuB52L,EAAAhJ,KACvBsK,EAAAsS,WAAa,GAEbva,EAAW2I,YAAY,QAAS,yBAAkB,aAEvD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAA,cAuWxC,QA9VQsT,KA+VJhU,EAAG+S,WA9VS,EA+VZ/S,EAAGgT,YA9VS,EA+VZhT,EAAGiU,aA9VS,EA+VZjU,EAAGwvE,YAGP,QAAS99D,KACL1R,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfmB,IACAlU,EAAGwvE,YAEP,QAASt7D,KACLlU,EAAGu1L,sBAAsBnhL,gBAG7B,QAASohL,KACL,GAAI9hL,GA9VavZ,EAAKgG,sBA+VtB,IAAKH,EA9VG+S,UAuBJ,CACP,GAAWwuK,IAgWA/pJ,WAAYx3B,EAAGwvE,SAAS95B,iBAAiBle,WACzCi+J,YAAaz1L,EAAGwvE,SAASkmH,oBAAoBC,kBA9VpD3gG,OAAAh1F,EAAkBwvE,SAAOwlB,OACrB4gG,WAAA51L,EAAAwvE,SAAAomH,WAAAvqL,MAgWGgqL,oBAAqBr1L,EAAGwvE,SAAS6lH,oBA9V1C1hL,WAAqBD,EAASrT,OAiWzB20L,GAAyBa,sBAAsBtU,GAAW9iL,KAAK,SAAUC,GA9V9EA,EAAchJ,KAAAke,aAAA,GACd7b,EAAuB2I,YAAU,UAAKhC,EAAAhJ,KAAAme,QAAA,gBAClC3B,IAgWSlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA9VfrB,MAED3Z,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBACJ7T,EAAAgT,YAAU,IAiWV,SAAUrS,GACT5I,EAAW2I,YAAY,qCA3YZ,CA+Vf,GAAI6gL,IAEA/pJ,WAAYx3B,EAAGwvE,SAAS95B,iBAAiBle,WA7V5Ci+J,YAAaz1L,EAAMwvE,SAAAkmH,oBAAAC,kBACnB3gG,OAAAh1F,EAAYwvE,SAAAwlB,OACZ4gG,WAAW51L,EAAAwvE,SAAAomH,WAAAvqL,MACbyI,UAAeJ,EAAArT,OAEd20L,GAAec,sBAAAvU,GAAA9iL,KAAA,SAAAC,GA+VPA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBA7V3D3B,IA+VOlS,EAAGgT,YAAa,EA7VhBtB,MAgWA3Z,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAClD7T,EAAGgT,YAAa,IA3VpC,SAAArS,GA+VgB5I,EAAW2I,YAAY,kCA6BnC,QAASq1L,GAAajjL,GA9VnB9S,EAAA+S,WAAA,EACA/S,EAAAgT,YAAA,CAgWC,IAAI2uK,GAAavtL,QAAQ8e,KAAKJ,EAE9B9S,GAAGwvE,SAAS6lH,oBAAsB1T,EAAW0T,oBAE7Cr1L,EAAGwvE,SAASwlB,OAAS2sF,EAAW3sF,MAEhC,KAAK,GAAIn9E,KAAK7X,GAAG4tC,aACT5tC,EAAG4tC,aAAa/1B,GAAG2f,aAAemqJ,EAAWnqJ,aA9VhDx3B,EAAAwvE,SAAO95B,iBAAA11C,EAAA4tC,aAAA/1B,GAkWZ,KAAK,GA/VGA,KAAI7X,GAAIstI,gBAgWRttI,EAAGstI,gBA/VIz1H,GAAc89K,oBAAIhU,EAAA8T,cAgWzBz1L,EAAGwvE,SA/VIkmH,oBAAY11L,EAAAstI,gBAAAz1H,GAkW3B,KAAK,GA/VGA,KAAA7X,GAAAi1L,eAgWAj1L,EAAGi1L,eAAep9K,GAAGxM,QAAUs2K,EAAWiU,aAC1C51L,EAAGwvE,SAASomH,WAAa51L,EAAGi1L,eAAep9K,IAKvD,QAAS+7B,GA/VM9gC,GAgWX,GAAIH,GAAUtY,EAAQsY,QAAQ,UA9V3B,4CAAetb,WAAA,EAAA+F,KAAA,MAiWlBuV,GAAQjT,OAAOjB,KAAK,WAChBu2L,EAAyBgB,wBAAwBljL,EAAIuiL,qBAAqB52L,KAAK,SAAUC,GA9V5E,MAArBA,EAAAlI,QACYuB,EAAW2I,YAAK,UAAA,2BAAA,QACjBwR,KAiWKna,EAAW2I,YAAY,QAAS,qBAAuBrJ,WAAW,EAAM+F,KAAM,QA7V1F,SAAWuD,GAgWH5I,EAAW2I,YAAY,QAAS,kEAAoErJ,WAAW,EAAM+F,KAAM,UAEhI,cAzMP,GAAI4C,GAAKC,IAETD,GAAGqU,kBA9VgBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA+VnBrL,EAAGsU,SAAWtU,EA9VEqU,gBAAI,GAgWpBrU,EAAGuU,YA9VS,EA+VZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAErBzU,EAAGgT,YA9Va,EA+VhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAG4zC,eAAiBA,EACpB5zC,EAAGw1L,sBAAwBA,EAC3Bx1L,EAAG+1L,aAAeA,EAClB/1L,EAAGkU,UAAYA,CAEf,IAAI/B,GAAYhY,EA9VIgG,uBAAAwU,gBAAAxC,SAgWpBnS,GAAGwvE,YAEHt9D,0KA7BJ9d,QACKC,OAAO,iCACPe,WAAW,wBA9Ve0/L,MAojBnC,WACI,YAOA,SAASmB,GA/Vel8L,EAAWE,EAAKwQ,EAAA1S,EAAAyC,EAAAH,EAAAuX,EAAAK,EAAA9X,EAAA6X,EAAAkkL,GA6XpC,QAAShkL,KACDC,GACAH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,SA9VPwJ,EAAKqS,YAAG3T,EAAAhJ,KACNsK,EAAAsS,WAAA,IAiWJ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5Dw1L,EAA0BC,yBAAyBp8L,EAAOhC,GAAY0G,KAAK,SAAUC,GAC9D,MAAfA,EAAIlI,SACJwJ,EAAGo2L,uBAAyB13L,EAAIhJ,KAChCsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gCA4D5D,QAAS21L,GAAuBvjL,GAC5B9S,EAAG+S,WAAY,EA9VnB/S,EAAAgT,YAAS,EACLhT,EAAGs2L,mBAAYC,eAAAzjL,EAAAyjL,eAgWfv2L,EAAGs2L,mBAAmB39I,YAAc7lC,EAAI6lC,YACxC34C,EAAGs2L,mBAAmBE,kBAAoB1jL,EAAI0jL,kBAC9Cx2L,EAAGs2L,mBAAmBG,kBAAoB3jL,EAAI2jL,kBAE9Cz2L,EAAGs2L,mBAAqBliM,QAAQ8e,KAAKJ,GAErC9S,EAAGs2L,mBAAmB78K,KAAO,GAAIA,MAAKzZ,EAAGs2L,mBAAmB78K,KAE5D,KAAK,GAAIve,KAAK8E,GAAGqS,YACTrS,EAAGqS,YAAYnX,GAAGiX,WAAanS,EAAGs2L,mBAAmBnkL,YACrDnS,EAAGs2L,mBAAmBnjL,gBAAkBnT,EAAGqS,YAAYnX,GAI/D,KAAK,GAAIA,KAAK8E,GAAG02L,kBA/VzB12L,EAAA02L,kBAAAx7L,GAAAy7L,kBAAA32L,EAAAs2L,mBAAAK,kBACY32L,EAAAs2L,mBAAAK,gBAAA32L,EAAA02L,kBAAAx7L,GAGZ,KAAS,GAAAA,KAAA8E,GAAAsT,oBACItT,EAAAsT,oBAAApY,GAAAqY,oBAAAvT,EAAAs2L,mBAAAM,oBAiWG52L,EAAGs2L,mBAAmB5uF,kBAAoB1nG,EAAGsT,oBAAoBpY,IAO7E,QAAS27L,GAAyBP,GA/V/B,GAAA3jL,GAAatY,EAAAsY,QAAA,UAAA,4CACbtb,WAAY,EACZ+F,KAAA,MAGAuV,GAASjT,OAAAjB,KAAA,WACTy3L,EAAiBW,yBAAAP,EAAAQ,kBAAAr4L,KAAA,SAAAC,GACO,MAAxBA,EAAAlI,QACAuB,EAAe2I,YAAA,UAAA,yCAAA,SACHwR,KAECna,EAAA2I,YAAsB,QAAA,oCAiWlBrJ,WAAW,EA/VjB+F,KAAA,QAGL,SAAOuD,GACT5I,EAAA2I,YAAkB,QAAA,2EAiWTrJ,WAAW,EA/VnB+F,KAAS,UAmWV,cAKP,QAAS25L,KA/VL,GAAArjL,GAAAvZ,EAAyBgG,uBACrBm2L,GAiWAnkL,UAhWOnS,EAAAs2L,mBAAuBnjL,gBAAAhB,UAiW9BokL,eAhWOv2L,EAAYs2L,mBAAAC,eAiWnB7uF,kBAhWO1nG,EAAAs2L,mBAAA5uF,kBAAAn0F,kBAiWPkjL,kBAhWez2L,EAAAs2L,mBAAqBG,kBAiWpCE,gBAAiB32L,EAAGs2L,mBAAmBK,gBAAgBK,oBA/VxDR,kBAAex2L,EAAAs2L,mBAAAE,kBACd/8K,KAAAxf,EAAW,QAAA+F,EAAYs2L,mBAAS78K,KAAA,cAiWhCk/B,YAAa34C,EAAGs2L,mBAAmB39I,YA7VnC34C,GAAI+S,WAkBJujL,EAAW3iL,WAAqBD,EAAArT,OAiWhCi2L,EAAmBQ,iBAAmB92L,EAAGs2L,mBAAmBQ,iBA9V5DZ,EAAqBG,uBAAAC,GAAA73L,KAAA,SAAAC,GACrBA,EAAYhJ,KAAAke,aAAA,GACZ7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,gBAiWJ3B,IA/VZlS,EAAAgT,YAAyB,EACbhT,EAAA+S,WAAW,EACZrB,MAEA3Z,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBACH7T,EAAAgT,YAAW,IAEhB,SAAUrS,GACT5I,EAAW2I,YAAY,mCAgUvB41L,EAhWO51H,UAAmBhtD,EAAArT,OAiW1B61L,EAhWmBe,sBAAAX,GAAA73L,KAAA,SAAAC,GACZA,EAAAhJ,KAAAke,aAAA,GACH7b,EAAW2I,YAAY,UAAShC,EAAAhJ,KAAAme,QAAA,kBAiW5B3B,IA/VTlS,EAAUgT,YAAK,EACdtB,MAkWQ3Z,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBA/V9D7T,EAAAgT,YAAwB,IAmWjB,SAhWIrS,GAiWH5I,EAhWG2I,YAAA,kCAoZf,QAAS0Y,GAhWG1jB,GAiWR,GAAI2jB,GAhWI3jB,EAAA2jB,KAiWJ9iB,EAhWIb,EAAAa,IAiWR,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAiE1D,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IA/VpB,IAAS,QAATA,EAmWQ,IAAK,GAlWLijB,GAAU,GAAQC,MAAQJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAkWjBxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CA/VvC,GAAA0e,GAAY,GAAAH,MAAYzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAExB,IAAIF,IAAeI,EACf,MAAA5Z,GAAA2Z,OAAWze,GAAA1E,OAoWvB,MAAO,GArTX,QAAGwd,KACAhU,EAAA+S,WAAA,EACA/S,EAAAgT,YAAA,EACAhT,EAAAiU,aAAA,EAGH,QAAAvC,KAkWI1R,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAhWnBmB,IACIlU,EAAAs2L,sBAoWJ,QAASpiL,KACLlU,EAAGk3L,uBAjWY9iL,gBAlCnB,GAAIpU,GAAKC,IAETD,GAAGqU,kBA/VgBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAgWnBrL,EAAGsU,SAAWtU,EA/VEqU,gBAAW,GAiW3BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YA/Va,EAgWhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EAIrB1U,EAAGgU,OAASA,EA9VZhU,EAAA0R,OAASA,EAgWT1R,EAAGkU,UA/VIA,EAgWPlU,EAAG+2L,uBA/ViBA,EAgWpB/2L,EAAGq2L,uBA/VsBA,EAgWzBr2L,EAAG62L,yBAA2BA,EAC9B72L,EAAGs2L,qBACH,IAAInkL,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAE7ED,KA2BAD,EA/VmB4C,kBAAW9a,EAAgBhC,GAAA0G,KAAA,SAAAC,GAC1B,MAAZA,EAAAlI,SACAwJ,EAAAsT,oBAAmB5U,EAAQhJ,KAC3BsK,EAAAsS,WAAA,IAiWL,SA/VS3R,GAgWR5I,EA/VI2I,YAAQ,QAAY,mBAAY,+BAmWxCw1L,EA/VgBC,yBAAAp8L,EAAAhC,GAAA0G,KAAA,SAAAC,GACG,MA+VXA,EAAIlI,SACJwJ,EAAGo2L,uBA/VK13L,EAAAhJ,KAgWRsK,EAAGsS,WA/VQ,IAiWhB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gCAGxDw1L,EA/VuBiB,kBAAYp9L,EAAAhC,GAAA0G,KAAA,SAAAC,GAgWZ,MAAfA,EAAIlI,SACJwJ,EAAG02L,kBAAoBh4L,EAAIhJ,KAC3BsK,EA/VGsS,WAAA,IAiWR,SA/VK3R,GAgWJ5I,EA/VI2I,YAAA,QAAqB,mBAA2B,iCAgJxDV,EAAAqa,MAAS,WACLra,EAAGsa,GAAA,GAAAb,OAkWPzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eA/VCC,YAAAjB,EACAkB,QAAG,GAAAhB,MAiWHiB,WAAW,GAGf1a,EAAG2a,aACCC,aAAcxB,EA/VlByB,QAAS,GAAApB,MAAA,KAAA,EAAA,IACLgB,QAAI,GAAAhB,MACJqB,YAAQ,GA2WZ9a,EAAG+a,UAAY,WACX/a,EAAGua,cAhWSE,QAAAza,EAAAua,cAAAE,QAAA,KAAA,GAAAhB,MAiWZzZ,EAAG2a,YAhWYF,QAAAza,EAAaua,cAAAE,SAmWhCza,EAAG+a,YAEH/a,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CA/VZ,IAAA4K,OAoWXzZ,EAAGob,MAAQ,WACPpb,EAAGqb,OAhWKxM,QAAA,GAmWZ7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAhWC1M,QAAA,GAmWR7O,EAAGwb,QAAU,SAhWGC,EAAAC,EAAAC,GAiWZ3b,EAAGsa,GAAK,GAhWIb,MAAGgC,EAAAC,EAAaC,IAmWhC3b,EAAG4b,SAAW,eAhWK,aAAA,aAAA,YAAA,QAiWnB5b,EAAG6b,OAAS7b,EAAG4b,QAhWC,GAkWhB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QA/VHtM,QAAS,GAkWT7O,EAAGqb,QA/VCxM,QAAI,GAmWR7O,EAAGub,QA/VC1M,QAAG,EAoWP,IAAIkN,GAhWW,GAAAtC,KAiWfsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAAgB,GAAIxC,KACxBwC,GAhWaT,QAAQO,EAAAC,UAAiB,GAiWtChc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SA9VR6iB,KAAK4C,EAiWLzlB,OAhWQ,cAuXZiU,EAAO4P,MAAQ,WACX5P,EAAO6P,GAAK,GAAIb,OAEpBhP,EAAO4P,QAEP5P,EAAOiN,MAAQ,WACXjN,EAAO6P,GAAK,MA7VpB7P,EAAApL,KAAA,SAAAuL,GAiWQH,EAAOjU,OAAOqY,QAAS,GAG3BpE,EAjWCuQ,MAAO,WACPvQ,EAAAyR,QAAWrN,QAAA,GAGhBpE,EAAS+Q,QAAA,SAAAC,EAAuBC,EAAOC,GAC/BlR,EAAK6P,GAAA,GAAAb,MAAAgC,EAAAC,EAAAC,IAGTlR,EAAGkQ,aAkWCwB,WAAY,OAhWbrB,YAAc,EACdsB,QAAA,QAoWH3R,EAAOmR,SAAW,QAhWlBnR,EAAGoR,OAAapR,EAAAmR,QAAA,GAEhBnR,EAAGjU,QACHqY,QAAW,GAmWXpE,EAAOyR,SACHrN,QAAQ,+LAvXhBza,QACKC,OAAO,kCACPe,WAAW,yBAA0B6gM,MAkZ9C,WACI,YAOA,SAjWImB,GAAqBr9L,EAAAE,EAAkBwQ,EAAO1S,EAAYyC,EAAKH,EAAUuX,EAAKs7B,EAAA/yC,EAAA6X,EAAAqlL,GA8X3E,QAjWKnlL,KAqWJlS,EAAGs3L,gBAhWHC,iBAAoB,WAoWhBA,iBAjWQ,YAoWRA,iBAjWQ,aAsWRn3L,SAjWGrI,EAAe21C,cAoWtBR,GAjWYS,gBAAMx7B,GAAA1T,KAAA,SAAAC,GAkWK,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KAGtBsK,EAAGsS,WAAY,GA/VlBva,EAAA2I,YAAuB,QAAK,yBAAA,aAE9B,SAAAC,GACA5I,EAAA2I,YAAmB,QAAA,mBAAqB,cAG3C22L,EAAsBG,uBAAwB/4L,KAAA,SAAAC,GAkWvB,MAAfA,EAAIlI,SAhWTwJ,EAAAy3L,mBAA6B/4L,EAAAhJ,KAkWxBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GAhWb5I,EAAc2I,YAAG,QAAa,mBAAA,qBAqWhC,QAASg3L,GAAmB5kL,GAC1B9S,EAAG+S,WAAY,EAhWf/S,EAAAgT,YAAc,EAkWhBhT,EAAG23L,eAjWUC,OAAA9kL,EAAkB8kL,OAmW7B53L,EAAG23L,eAAiBvjM,QAAQ8e,KAAKJ,EAIjC,KAAK,GAjWG5X,KAAG8E,GAAA4tC,aAkWH5tC,EAAG4tC,aAAa1yC,GAAGs8B,YAAcx3B,EAAG23L,eAAengK,aACnDx3B,EAAG23L,eAAejiJ,iBAAmB11C,EAAG4tC,aAAa1yC,GAI7D,KAAK,GAAIA,KAAK8E,GAAGs3L,cAhWZt3L,EAAAs3L,cAAAp8L,GAAAmY,iBAAyBrT,EAAoB23L,eAAAE,aAC9C73L,EAAA23L,eAAkBE,WAAQ73L,EAAAs3L,cAAWp8L,IA2W7C,QAAS48L,KACL,GAAIpkL,GAjWQvZ,EAAuBgG,uBAkW/Bw3L,GACAx4I,UAAWn/C,EAjWC23L,eAAMjiJ,iBAAAle,WAkWlBogK,OAAQ53L,EAAG23L,eAAeC,OAIzB53L,GAAG+S,WA/UJ4kL,EAAchkL,WAAWD,EAAArT,OACzBs3L,EAAaI,iBAAG/3L,EAAmB23L,eAAAI,iBAkWnCV,EAAsBK,mBAAmBC,GAAgBl5L,KAAK,SAAUC,GAChEA,EAAIhJ,KAAKke,aAAc,GAhW3B7b,EAAW2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,gBACf3B,IACAlS,EAAAgT,YAAA,EACQhT,EAAA+S,WAAS,EACTrB,MAEA3Z,EAAG2I,YAAa,QAAAhC,EAAAhJ,KAAAme,QAAA,gBAChB7T,EAAAgT,YAAA,IAmWL,SAjWKrS,GAkWJ5I,EAjWO2I,YAAa,mCAkUxBi3L,EAjWc7jL,UAAAJ,EAAArT,OAkWdg3L,EAAsBW,kBAAkBL,GAAgBl5L,KAAK,SAAUC,GAC/DA,EAAIhJ,KAAKke,aAAc,GAhWhC7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,KAkWH3B,IACAlS,EAAGgT,YAAa,EAChBtB,MA/VP3Z,EAAA2I,YAAyB,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAC1B7T,EAAAgT,YAAc,IAGd,SAAArS,GACA5I,EAAA2I,YAAsB,kCA6X9B,QAASsT,KACLhU,EAAG+S,WAjWC,EAkWJ/S,EAAGgT,YAjWa,EAkWhBhT,EAAGiU,aAjWS,EAoWhB,QAASvC,KACL1R,EAAGgT,YAjWS,EAkWZhT,EAAG+S,WAjWY,EAkWfmB,IACAlU,EAAG0S,WAGP,QAASwB,KACLlU,EAAGmU,YAAYC,gBA4BnB,QAASgF,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAiE1D,QAjWIC,GAAM7jB,GACN,GAAA2jB,GAAQ3jB,EAAA2jB,KAkWJ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EA9VA,IAAA,GAFCijB,GAAY,GAAMC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEZxe,EAAK,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACZ,GAAA0e,GAAgB,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAmWZ,IAAIF,IAAeI,EAhWlB,MAAQ5Z,GAAG2Z,OAAOze,GAAA1E,OAqW3B,MAAO,GA/QX,GAjWIwJ,GAAIC,IAmWRD,GAAGqU,kBAjWoBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAkWvBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAjWY,EAkWfvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAjWS,EAkWZhT,EAAG+S,WAjWQ,EAkWX/S,EAAGsS,WAjWQ,EAkWXva,EAAW2c,SAAU,EAIrB1U,EAAGgU,OAASA,EAhWZhU,EAAA0R,OAAAA,EAkWA1R,EAAGkU,UAjWSA,EAkWZlU,EAAG23L,kBACH33L,EAAG83L,mBAjWoBA,EAkWvB93L,EAAG03L,mBAAqBA,CACxB,IAjWGvlL,GAAUhY,EAAKgG,uBAAAwU,gBAAAxC,SAmWlBD,KA4IAlS,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAjWI,WAkWH1X,EAAGsa,GAAK,MA9VZta,EAAGua,eACCC,YAAQjB,EAkWRkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aAhWCC,aAAWxB,EAkWXyB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MAhWdqB,YAAc,GA4WjB9a,EAAG+a,UAjWY,WACX/a,EAAAua,cAAgBE,QAAUza,EAAAua,cAAkBE,QAAU,KAAA,GAAAhB,MAkWtDzZ,EAAG2a,YAAYF,QAAUza,EAAGua,cAAcE,SAG9Cza,EAAG+a,YAEH/a,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GA9VvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CAkWP,IAAI4K,OAIpBzZ,EAAGob,MAjWK,WAkWJpb,EAAGqb,OAAOxM,QAAS,GA9VvB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAAQ,SAAYC,EAAAC,EAAAC,GACnB3b,EAAGsa,GAAA,GAAOb,MAAAgC,EAASC,EAAAC,IAGvB3b,EAAG4b,SAAU,eAAgB,aAAY,aAAA,YAAA,QAkWzC5b,EAAG6b,OAjWS7b,EAAA4b,QAAS,GAmWrB5b,EAAG8b,iBAAmB,cA/VtB9b,EAAGib,QAkWCpM,QAAQ,GA9VZ7O,EAAGmb,QACCtM,QAAQ,GAmWZ7O,EAAGqb,QAhWAxM,QAAS,GAGZ7O,EAAGub,QACC1M,QAAQ,EAqWZ,IAjWIkN,GAAQ,GAAAtC,KAkWZsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GAAgB,GAAIxC,KACxBwC,GAAcT,QAAQO,EAASC,UAAY,GAhW3Chc,EAAA2Z,SACAN,KAAS0C,EACLvlB,OAAA,SAED6iB,KAAA4C,EACCzlB,OAAM,cAwXViU,EAAO4P,MAAQ,WACX5P,EAAO6P,GAAK,GAAIb,OAEpBhP,EAAO4P,QAEP5P,EAjWIiN,MAAO,WAkWPjN,EAAO6P,GAAK,MA9VhB7P,EAAOpL,KAAA,SAAQuL,GACXH,EAAOjU,OAAKqY,QAAA,GAGhBpE,EAAOuQ,MAAO,WACVvQ,EAAOyR,QAAOrN,QAAS,GAG3BpE,EAAO+Q,QAAQ,SAAYC,EAAAC,EAAAC,GACvBlR,EAAO6P,GAAA,GAAQb,MAAAgC,EAASC,EAAAC,IAG5BlR,EAAOkQ,aACHwB,WAAY,OAkWZrB,YAAa,EACbsB,QAAS,QAGb3R,EAjWImR,SAAa,QAkWjBnR,EAjWIoR,OAASpR,EAAAmR,QAAA,GAmWbnR,EAAOjU,QAhWPqY,QAAO,GAmWPpE,EAAOyR,SAhWPrN,QAAO,sLAoCXza,QACKC,OAAO,8BACPe,WAAW,qBAAsBgiM,MAuU1C,WACI,YAzVI,SAASa,GAAYl+L,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAA+9L,EAAAhrJ,GAgYlB,QAASh7B,OAhWT9R,SAAYrI,EAAA21C,cAqWXR,GAAgBS,gBAAgBx7B,GAAW1T,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KA/V/BsK,EAAYsS,WAAA,GAEZva,EAAA2I,YAAqB,QAAA,yBAAA,aAEpB,SAAYC,GAmWR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAGtDw3L,EAAmBC,oBAAoB15L,KAAK,SAAUC,GAjWzC,MAAPA,EAAAlI,SAmWAwJ,EAAGo4L,gBAAkB15L,EAAIhJ,KACzBsK,EAAGsS,WAAY,IAhWpB,SAAA3R,GACC5I,EAAA2I,YAAkB,QAAA,mBAAA,qBAsWxB,QAAS23L,GAAgBvlL,GACvB9S,EAlWE+S,WAAA,EAmWF/S,EAAGgT,YAlWC,EAoWNhT,EAAGs4L,MAAMC,eAAiBzlL,EAAIylL,eAC5Bv4L,EAAGs4L,MAAQlkM,QAAQ8e,KAAKJ,GAjWxB9S,EAAAs4L,MAAIE,cAAe1lL,EAAA0lL,aAInB,KAAA,GAAAt9L,KAAA8E,GAAgB4tC,aACR5tC,EAAA4tC,aAAe1yC,GAAAs8B,YAAKx3B,EAAA23L,eAAAngK,aACpBx3B,EAAG23L,eAAejiJ,iBAAI11C,EAAA4tC,aAAA1yC,IA2WjC,QAASu9L,GAAkBH,GACxB,GAAI3lL,GAAUtY,EAAQsY,QAAQ,UAAW,4CAjWxCtb,WAAA,EACG+F,KAAI,MAqWRuV,GAAQjT,OAAOjB,KAAK,WAjWjBy5L,EAAeO,kBAAAH,EAAAI,eAAAj6L,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,QAmWHuB,EAAW2I,YAAY,UAAW,kCAAmC,SACrEwR,KAhWLna,EAAA2I,YAAwB,QAAA,4BAChBrJ,WAAA,EACC+F,KAAA,QAGb,SAAAuD,GAmWK5I,EAAW2I,YAAY,QAAS,oEAC5BrJ,WAAW,EACX+F,KAAM,UAGf,cAQP,QAASu7L,KACL,GAAIjlL,GAAcvZ,EAAsBgG,uBACpCm4L,GACA9gK,WAAYx3B,EAAGs4L,MAAM5iJ,iBAAiBle,WACtCghK,cAAex4L,EAAGs4L,MAAME,cACxBI,iBAAmB54L,EAAGs4L,MAAMC,eAAeK,iBA9V3C54L,GAAA+S,WAoXAulL,EAAM3kL,WAAaD,EAAYrT,OAC/Bi4L,EAAMI,cAAgB14L,EAAGs4L,MAAMI,cAC/BR,EAlWkBG,gBAAAC,GAAA75L,KAAA,SAAAC,GACdA,EAAAhJ,KAAWke,aAAY,GAmWnB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBACpD3B,IAjWLlS,EAAAgT,YAAA,EACHhT,EAAA+S,WAAe,EACfrB,MAEQ3Z,EAAS2I,YAAc,QAAMhC,EAAAhJ,KAAAme,QAAA,gBAC7B7T,EAAAgT,YAAW,IAoWhB,SAlWQrS,GAmWP5I,EAlWO2I,YAAY,mCA/BvB43L,EAAAxkL,UAAiBJ,EAAArT,OACjB63L,EAAcW,eAAeP,GAAA75L,KAAiB,SAAAC,GACtCA,EAAGhJ,KAAAke,aAAe,GAmWlB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,KACpD3B,IACAlS,EAAGgT,YAAa,EAjWpBtB,MAEJ3Z,EAAA2I,YAAsB,QAAkBhC,EAAAhJ,KAAAme,QAAgB,kBAChD7T,EAAAgT,YAAS,IAqWd,SAlWQrS,GAmWP5I,EAlWI2I,YAAA,kCA2XZ,QAlWQsT,KAmWJhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGiU,aAAc,EAGrB,QAASvC,KACL1R,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfmB,IAjWRlU,EAAS0S,WAGL,QAAGwB,KAmWClU,EAAG84L,UAAU1kL,gBA3KjB,GAAIpU,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GA7V7BzU,EAAAgT,YAAA,EAkWQhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EAjWvBva,EAAA2c,SAAA,EAEK1U,EAAAgU,OAAWA,EAmWRhU,EAAG0R,OAASA,EACX1R,EAAGkU,UAAYA,EAjWxBlU,EAASs4L,SACLt4L,EAAI24L,gBAAKA,EAmWN34L,EAAGq4L,gBAAkBA,EAjWrBr4L,EAAAy4L,kBAAqBA,CACrB,IAAAtmL,GAAchY,EAAgBgG,uBAAAwU,gBAAAxC,SAsW9BD,2IAnCP9d,QACKC,OAjWM,2BAkWNe,WAjWG,kBAAA6iM,MAkiBZ,WACI,YAMA,SAlWOc,GAAgBh/L,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAA46L,GAgCnB,QAAG7iL,KAEC6iL,EAAgBiE,eAAAj/L,EAAAhC,GAAA0G,KAAA,SAAAC,GAmWO,MAAfA,EAAIlI,QACJwJ,EAAGi5L,QAAUv6L,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAhWpBva,EAAgB2I,YAAA,QAAA,yBAAA,aAoWhB,SAAUC,GAjWd5I,EAAQ2I,YAAY,QAAA,mBAAA,cAqWnBq0L,EAAwBK,mBAAmBr7L,EAAOhC,GAAY0G,KAAK,SAAUC,GAjW1D,MAApBA,EAAUlI,QACDwJ,EAAAk5L,qBAAsBx6L,EAAAhJ,KAmWtBsK,EAAGsS,WAAY,GAhWxBva,EAAW2I,YAAgB,QAAc,yBAAc,aAoWnD,SAAUC,GAjWd5I,EAAA2I,YAAmB,QAAA,mBAAA,cAMtB,QAAGy4L,KACC,GAAAzlL,GAAQvZ,EAAAgG,sBAmWR,IAAKH,EAAG+S,UAqBD,CAjWX,GAASwuK,IACD5oI,YAAY34C,EAAAuhL,UAAA5oI,YACZplC,kBAAYvT,EAAAuhL,UAAA/tK,QAAAD,kBACZoiL,kBAAgB31L,EAAAuhL,UAAAoU,kBACZhiL,WAAAD,EAAsBrT,OAE1B00L,GAAuBqE,oBAAoB7X,GAAA9iL,KAAA,SAAAC,GACnCA,EAAAhJ,KAAAke,aAAsB,GAmWtB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBAjWpD3B,IACAlS,EAAAgT,YAAU,EAmWVhT,EAAG+S,WAAY,EACfrB,MAhWL3Z,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,gBAmWK7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,qCAxCZ,CAjWpB,GAAS6gL,IACA5oI,YAAA34C,EAAAuhL,UAAA5oI,YAmWAplC,kBAAmBvT,EAAGuhL,UAAU/tK,QAAQD,kBACxCO,UAAWJ,EAAYrT,OAhW/B00L,GAAQsE,mBAAA9X,GAAA9iL,KAAA,SAAAC,GAmWIA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,kBACpD3B,IAjWDlS,EAAIgT,YAAA,EACVtB,MAEK3Z,EAAQ2I,YAAS,QAAYhC,EAAAhJ,KAAAme,QAAA,kBAC9B7T,EAAAgT,YAAA,IAGV,SAAArS,GACO5I,EAAA2I,YAAA,kCA8XV,QAAS44L,GAAaxmL,GAjWtB,GAAOH,GAAQtY,EAAAsY,QAAY,UACvB,4CAAYtb,WAAA,EAAA+F,KAAA,MAoWZuV,GAAQjT,OAAOjB,KAAK,WAjWjBs2L,EAAyBwE,sBAAAzmL,EAAA6iL,mBAAAl3L,KAAA,SAAAC,GACL,MAAhBA,EAAOlI,QAmWFuB,EAAW2I,YAAY,UAAW,2BAA4B,QAC9DwR,KAhWLna,EAAQ2I,YAAS,QAAA,qBAAArJ,WAAA,EAAA+F,KAAA,QAoWjB,SAAUuD,GAjWd5I,EAAU2I,YAAgB,QAAO,kEAAKrJ,WAAA,EAAA+F,KAAA,UAoWtC,cAMP,QAASo8L,GAAW1mL,GAChB9S,EAAG+S,WAAY,EAjWnB/S,EAAOgT,YAAW,CAClB,IAAO2uK,GAASvtL,QAAO8e,KAAQJ,EAE/B9S,GAAAuhL,UAAgBoU,kBAAAhU,EAAAgU,kBAmWb31L,EAlWCuhL,UAAQ5oI,YAAAgpI,EAAAhpI,WAEZ,KAAO,GAAA9gC,KAAU7X,GAAAi5L,QACLj5L,EAAAi5L,QAAAphL,GAAAtE,oBAAAouK,EAAA8X,YAmWAz5L,EAAGuhL,UAAU/tK,QAAWxT,EAAGi5L,QAAQphL,IAM/C,QAAS7D,KACLhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGiU,aAAc,EACjBjU,EAAGuhL,aAGP,QAAS7vK,KACL1R,EAAGgT,YAAa,EAlWxBhT,EAAA+S,WAAA,EAEK/S,EAAAuhL,aAyMD,GAlWIvhL,GAAAC,IAoWJD,GAAGqU,kBAlWYhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAmWfrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAhWjCrU,EAAGuU,YAAc,EAmWjBvU,EAAGwU,qBAlWe,SAAAC,GACdzU,EAAAuU,YAAaE,GAqWjBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EAjWrB1U,EAAAm5L,oBAAwBA,EAmWxBn5L,EAAGgU,OAlWKA,EAmWRhU,EAAG0R,OAlWKA,EAmWR1R,EAAGk5L,wBACHl5L,EAAGs5L,aAAeA,EAClBt5L,EAAGw5L,WAAaA,CA5Vbr/L,GAAAgG,uBAAAwU,gBAAAxC,SAmWHnS,GAAGuhL,aAGHrvK,6HAlCJ9d,QACKC,OAlWM,gCAmWNe,WAAW,uBAAwB2jM,MA4K5C,WACI,YAOA,SAnWQW,GAAY3/L,EAAAS,EAAAP,EAAAI,EAAAtC,EAAAoC,EAAAQ,EAAAy/B,EAAAsR,EAAAttB,GAiYhB,QAnWMpK,KAoWFhU,EAAGgT,YAnWS,EAoWZhT,EAAG+S,WAnWQ,EAoWX/S,EAAG4yE,SAGP,QAnWQwhD,KAoWJp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAG4yE,SAlWL1gE,IAiXF,QAASA,KACLvX,EAAgB64E,2BAA2B/0E,KAAK,SAAUC,GAEnC,MAAfA,EAAIlI,QACJwJ,EAAG25L,uBAAyBj7L,EAAIhJ,KAChC0pB,KAjWFrnB,EAAA2I,YAAyB,QAAA,yBAAA,gBAqW5B,SAnWCC,GACA5I,EAAM2I,YAAA,QAAA,mBAAA,iBAuWd,QAnWQ0e,KAoWJhB,EAnWgBgB,qBAAgB3gB,KAAA,SAAAC,GACT,MAmWfA,EAnWIlI,QAoWJwJ,EAAGqf,iBAnWC3gB,EAAAhJ,KAoWJsK,EAAG8/C,uBAnWItlD,EAAAyC,OAAA+C,EAAAqf,kBAAAjH,UAAA,IAoWPpY,EAAGsS,WAnWY,GAqWfva,EAnWQ2I,YAAM,QAAA,yBAAA,iBAqWnB,SAAUC,GACT5I,EAnWG2I,YAAe,QAAA,mBAAA,kBAwW1B,QAASk5L,GAAyBlkH,GAC9B/6E,EAnWeikB,cAAA82D,GAAAj3E,KAAA,SAAAC,GAoWQ,MAAfA,EAAIlI,QACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GAlWjB5I,EAAS2I,YAAkB,QAAA,mBAAA,aAuW3B,QAnWQm5L,GAAwB1nL,GAoW5BioB,EAnWI4R,yBAA4B75B,GAAe1T,KAAA,SAAAC,GAoWxB,MAAfA,EAAIlI,SACJwJ,EAAGs6B,eAAiB57B,EAAIhJ,KACxBsK,EAAGsS,WAAY,KAK3B,QAAS87B,GAnWkBlT,GAoWvBwQ,EAnWY2C,gBAAAnT,GAAAz8B,KAAA,SAAAC,GACG,MAmWPA,EAnWIlI,SAoWJwJ,EAAG4rC,gBAnWCltC,EAAAhJ,KAoWJsK,EAAGsS,WAnWI,KAwWnB,QAASwnL,KACL,GAAI7+L,IACAigC,aAAcl7B,EAAG4yE,MAAM7mC,mBAAmB7Q,aAC1CwR,cAAe1sC,EAAG4yE,MAAM5kC,oBAAoBtB,cAC5CrW,QAnWG,EAEG,IAANlkB,IACAlX,EAAAkX,UAAAnS,EAAmB4yE,MAAAz/D,gBAAgBhB,WAsWvCxX,EAnWY84E,eAAAx4E,GAAAwD,KAAA,SAAAC,GAoWR,GAnWW,MAmWPA,EAnWIlI,OAAgB,CAoWpBwJ,EAAG+5L,YAnWIr7L,EAAYhJ,IAoWnB,KAnWI,GAAAwF,KAAA8E,GAAA+5L,YACG/5L,EAAA+5L,YAAA7+L,GAAA8+L,QAAA,IAAA,MAAAh6L,EAAA+5L,YAAA7+L,GAAA8+L,UACHh6L,EAAA+5L,YAAW7+L,GAAA8+L,QAAqB,IAASh6L,EAAA+5L,YAAS7+L,GAAA8+L,QAItDh6L,GAAA+5L,YAAW5+L,OAAY,GAoWnBd,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAG4yE,MAAM5kC,oBAAoB4U,iBACvFvrD,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,KAO3B,QAnWIkwG,KAqWA,GAnWInwF,MACA4nK,IAoWJ,KAnWI,GAAG/+L,KAAA8E,GAAU4yE,MAAA+rE,aAoWbtsH,EAAIx6B,KAAKmI,EAAG4yE,MAAM+rE,aAAazjJ,GAAGs8B,WAjWtCx3B,GAAAw3B,WAASnF,EAAAqB,MA4CV,KAAA,GAAAx4B,KAAa8E,GAAA4yE,MAAA+rE,aAAA,CAqWR,GAAIu7C,IAEApJ,QAAS9wL,EAAG4yE,MAAM+rE,aAAazjJ,GAAGi/L,WAClCC,cAAep6L,EAAG4yE,MAAM+rE,aAAazjJ,GAAGm/L,SACxCC,QAAS,SAnWjBC,UAAY,iBACb50K,QAAU3lB,EAAA4yE,MAAA+rE,aAAAzjJ,GAAA03C,WAqWD39C,MAAO+K,EAAG4yE,MAAM+rE,aAAazjJ,GAAGs/L,SAChC78K,KAAM3d,EAAG4yE,MAAM+rE,aAAazjJ,GAAGo3C,QAnW3CmoJ,SAAAz6L,EAAA4yE,MAAA+rE,aAAAzjJ,GAAAu/L,SAqWYC,eAAe,OAnWlBC,YAAO36L,EAAA4yE,MAAA+rE,aAAAzjJ,GAAA+wC,YAqWJ2uJ,QAAS56L,EAAG4yE,MAAM+rE,aAAazjJ,GAAG43C,WAnW1C+nJ,SAAA,MACQC,kBAAe96L,EAAK4yE,MAAA+rE,aAAAzjJ,GAAAm4C,WACpB+9I,UAAGlxL,EAAcG,OACjB5G,kBAAe,UAqWfshM,WApWG,KACHC,gBAAW,EAqWXC,cAAe,EAnWpBC,cAAe,EACdC,WAAWn7L,EAAA4yE,MAAYvyD,qBAAS+6K,UAqW5BzmM,SAAU,YACV0mM,WAAWr7L,EAAG4yE,MAAM7mC,mBAAmBozG,eAnW/Cm8C,YAAAt7L,EAAA4yE,MAAwB5kC,oBAAmB4U,iBAGnC24I,GAEAzK,QAAA9wL,EAAW4yE,MAAA+rE,aAAYzjJ,GAASi/L,WAqWhCpJ,UAAW/wL,EAAG4yE,MAAM+rE,aAAazjJ,GAAG02B,iBAnWzCo/J,SAAehxL,EAAA4yE,MAAA+rE,aAAAzjJ,GAAAm/L,SACdpJ,aAAWjxL,EAAA4yE,MAAY+rE,aAASzjJ,GAAAk4C,UAqW5ByuB,SAAU7hE,EAAG4yE,MAAM+rE,aAAazjJ,GAAGuF,SACnCywL,OAA4C,KAAnClxL,EAAG4yE,MAAM+rE,aAAazjJ,GAAG64C,OAAiB,OAAS,SAC5Do9I,YAAal3L,EAAQ,QAAQ+F,EAAG4yE,MAAM+rE,aAAazjJ,GAAGw2C,IAAK,cAC3D0/I,UAAWlxL,EAAWG,OACtBgxL,YAAap3L,EAAQ,QAAQ,GAAIwf,MAAQ,cAnW5C4yE,MAAArsF,EAAA4yE,MAAA+rE,aAAsBzjJ,GAAAi/L,WAAA,gBACvB7I,aAAc,OAGVkK,GACAD,cAAAA,EACArB,mBAAWA,EAEfD,GAAApiM,KAAA2jM,GAsWJ,IAAK,GAAItgM,KApWG8E,GAAA4yE,MAAW+rE,aAqWnB,GAAI1jJ,IACAu8B,WApWOx3B,EAAA4yE,MAAa+rE,aAAAzjJ,GAAAs8B,WAqWpB7jB,WApWIzT,EAAAG,OAyWZ8xB,SAAQC,IAAIz1B,KAAKqkB,UAAUi5K,IAE3Bt/L,EApWQi5E,cAAWqmH,GAAYx7L,KAAA,SAAAC,GAqWH,YAApBA,EAAIhJ,KAAKc,QACTuB,EAAW6G,eAAgB,EAnW5BjE,EAAAy4E,qBAAAn4E,GAAAwD,KAAA,SAAAC,GACa,IAAZA,EAAYhJ,KAAAo0H,YACZ/xH,EAAgB2I,YAAU,UAAAhC,EAAAhJ,KAAAme,QAAA,wBAC1B7T,EAAAgT,YAAsB,EACtBhT,EAAA4yE,SACA1gE,KAEJxT,EAAAhJ,KAAwBo0H,cAAA,EACZ/xH,EAAK2I,YAAc,UAAMhC,EAAAhJ,KAAAme,QAAA,yBAG1B9b,EAAA2I,YAAa,QAAAhC,EAAAhJ,KAAAme,QAAA,wBACb7T,EAAAgT,YAAY,IAsWhB,SApWIrS,GACH5I,EAAW2I,YAAY,mCAI3B3I,EAAW2I,YAAY,QAAA,SAAA,wBAqWvBV,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,iCAI/B,QApWQuwE,GAAAn+D,GAqWJ,GAAIH,GAAUtY,EAAQsY,QAAQ,UAnW9B,4CACItb,WAAA,EACI+F,KAAI,MAuWZuV,GAAQjT,OApWOjB,KAAA,WAqWX9D,EApWQ+4E,wBAAgC5gE,EAAAiG,IAAAta,KAAA,SAAuBC,GAqWxC,MAAfA,EAAIlI,QAnWTuB,EAAe2I,YAAA,UAAA,8BAAA,yBACdwR,KAELna,EAAY2I,YAAA,QAAA,sCAqWCrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GAnWZ5I,EAAW2I,YAAK,QAAA,gEAClBrJ,WAAY,EACZ+F,KAAa,UAGd,cAyWN,QAAS2mH,GApWGjxG,GAqWR9S,EAAG4yE,MAAQx+E,QAAQ8e,KAAKJ,GACxB9S,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EA9TpB,GAAIhT,GAnWIC,IAqWRD,GAnWGqU,kBAAqBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoWxBrL,EAnWGsU,SAAGtU,EAAAqU,gBAAkB,GAqWxBrU,EAAGuU,YAnWK,EAoWRvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAnWGgT,YAAS,EAoWZhT,EAAG+S,WAnWY,EAoWf/S,EAAG4yE,SACH5yE,EAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EACZp0H,EAAGwiH,KAnWCA,EAoWJxiH,EAAG+jH,KAnWKA,EAoWR/jH,EAAGixE,OAnWSA,EAoWZjxE,EAAG+5L,cACH,IAAI75L,GAAa/F,EAAsBgG,sBACvCH,GAAG45L,yBAnWwBA,EAoW3B55L,EAAG65L,uBAnWYA,EAoWf75L,EAAGouC,6BAnWoBA,EAoWvBpuC,EAAG85L,gBAAkBA,CAErB,IAAI55L,GAnWI/F,EAAuBgG,uBAoW3BgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAe5D,IAAbA,EAlWFnS,EAAGy7L,YAAM,EAsWP5B,EAAuB1nL,GAK3BD,4KAzDJ9d,QACKC,OAnWM,wBAoWNe,WAnWG,2BAAqBskM,MA0qBjC,WACI,YAOA,SAASgC,GAAuBrhM,EAAStC,EAAYyC,EAAQL,EAAuBQ,EAAiByjB,EAAqBstB,EAAoBtR,GAxU1I,QAAGpmB,KAsWChU,EAAGgT,YAAa,EApWjBhT,EAAA+S,WAAc,EACd/S,EAAA4yE,SAwWH,QAASwhD,KACL,GAAIzhH,GAAUtY,EAAQsY,QAAQ,eApW/B,yFACAtb,WAAY,EACJ+F,KAAA,MAGRuV,GAAOjT,OAAAjB,KAAA,WACPuB,EAAOgT,YAAA,EACPhT,EAAA+S,WAAS,EACT/S,EAAA4yE,SACC1gE,MAIiB,GAAlBC,EAsWKnS,EAAGy7L,YAAa,EAnWpB5B,EAAY1nL,GA2WhB,QAASD,KACLvX,EAAgB24E,mBAAmB70E,KAAK,SAASC,GApWnC,MAATA,EAAAlI,QACFwJ,EAAAm6L,WAAaz7L,EAAAhJ,KACb0oB,EAAYgB,qBAAA3gB,KAAA,SAAAC,GACJ,MAAAA,EAAAlI,QACXwJ,EAAAqf,iBAAA3gB,EAAAhJ,KAsWgBsK,EAAG8/C,uBAAyBtlD,EAAOyC,OAAO+C,EAAGqf,kBAAoBjH,UAAY,IAC7EpY,EAAGsS,WAAY,GAnWfva,EAAA2I,YAAA,QAAA,yBAAA,iBAEf,SAAAC,GACD5I,EAAuB2I,YAAA,QAAA,mBAAA,mBAwWf3I,EAAW2I,YAAY,QAAS,yBAA0B,gBAnWtE,SAAAC,GAsWQ5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAI5D,QArWQk5L,GAAwBlkH,GAsW5B/6E,EArWWikB,cAAA82D,GAA6Bj3E,KAAA,SAAAC,GAChC,MAAAA,EAAAlI,QAsWAwJ,EArWGqS,YAAA3T,EAAAhJ,KACHsK,EAAAsS,WAAW,GAEhBva,EAAe2I,YAAA,QAAA,yBAAA,YAuWf,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QArWQm5L,GAAwB1nL,GAsW5BioB,EArWW4R,yBAAuB75B,GAAA1T,KAAA,SAAAC,GACvB,MAAHA,EAAGlI,SACHwJ,EAAGs6B,eAAY57B,EAAAhJ,KAsWfsK,EArWGsS,WAAA,KA0Wf,QAAS87B,GAA6BlT,GAClCwQ,EAAmB2C,gBAAgBnT,GAAcz8B,KAAK,SAASC,GACxC,MAAfA,EAAIlI,SACJwJ,EAAG4rC,gBAAkBltC,EAAIhJ,KApW5BsK,EAAA4rC,gBAAyBzwC,OAAU,GACxCd,EAAgB8C,OAAA,UAAc,+BAA8B6C,EAAA4yE,MAAA7mC,mBAAAozG,gBAChD9nJ,WAAW,EACZ+F,KAAA,OAGH4C,EAAAsS,WAAW,KA0WvB,QAASwnL,KAnWT,GAAA7+L,IACIigC,aAAAl7B,EAAmB4yE,MAAA7mC,mBAAyB7Q,aACxCwR,cAAQ1sC,EAAA4yE,MAAgB5kC,oBAAAtB,cAEjB,IAqWPv6B,IACAlX,EAAIkX,UAAYnS,EAAG4yE,MAAMz/D,gBAAgBhB,WAE7CxX,EAAgBg7E,mBAAmB16E,GAAKwD,KAAK,SAASC,GAClD,GAAmB,MAAfA,EAAIlI,OAAgB,CApWvBwJ,EAAA+5L,YAAAr7L,EAAAhJ,IACL,KAAA,GAAAwF,KAAmB8E,GAAA+5L,YACP/5L,EAAA+5L,YAAgB7+L,GAAA8+L,QAAA,IAAA,MAAAh6L,EAAA+5L,YAAA7+L,GAAA8+L,UACjBh6L,EAAA+5L,YAAkB7+L,GAAI8+L,QAAA,IAAAh6L,EAAA+5L,YAAA7+L,GAAA8+L,QA0WrBh6L,GAAG+5L,YAAY5+L,OAAS,GApW/Bd,EAAA8C,OAAkB,UAAA,kCAAA6C,EAAA4yE,MAAA5kC,oBAAA4U,iBACbvrD,WAAA,EACN+F,KAAiB,OAwWb4C,EAAGsS,WAAY,KAO3B,QAASkwG,GArWG5vC,GAuWR,GAAK5yE,EAAG+S,UA+CJpY,EAAgB04E,iBAAiBT,GAAOn0E,KAAK,SAASC,GACtB,IAAxBA,EAAIhJ,KAAKo0H,YACT/xH,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,wBACpD7T,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAG4yE,SACH1gE,KACOxT,EAAIhJ,KAAKo0H,cAAe,GAC/B/xH,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS;AACpD7T,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAG4yE,SACH1gE,MAEAna,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,wBAClD7T,EAAGgT,YAAa,IAErB,SAASrS,GACR5I,EAAW2I,YAAY,qCAtaZ,CAuWf,GADAkyE,EAAM9+D,UArWS5T,EAAYG,OAsWvBL,EAAGy7L,WAAY,CACf7oH,EAAMhhD,iBAAmBghD,EAAMz/D,gBAAgB4K,SAAW,IAAM60D,EAAM7mC,mBAAmBozG,eAAiB,IAAMvsE,EAAM5kC,oBAAoB4U,eAnW1I,IAAIvwB,GAAGugD,EAAAvyD,qBAAwB+6K,UAAApgM,MAAA,KAC3B2gM,EAAA,EAsWJ,KAAK,GArWGzgM,KAAAm3B,GAsWJspK,GArWI,GAAMtpK,EAAAn3B,GAAAqkC,OAAA,EAGd,IAAGq8J,GAAAhpH,EAAY5kC,oBAAA4U,gBAAA5nD,MAAA,KAsWX0yI,EAAM,EACV,KAAK,GAAIxyI,KAAK0gM,GACVluD,GAAO,GAAKkuD,EAAO1gM,GAAGqkC,OAAO,EAEjC,IAAIs8J,GAAW77L,EAAG4yE,MAAMz/D,gBAAgB4K,SAASuF,UAAU,EAAG,EAC9DsvD,GAAMunH,YAAcwB,EAAM,GAAK/oH,EAAMz/D,gBAAgB2oL,YAAmBD,EAAgBjpH,EAAM7mC,mBAAmB1jB,KAAYqlH,EAAW96D,EAAM+rE,aAAaq7C,SAAS92L,kBApWvK,CACL0vE,EAAAhhD,iBAAAghD,EAAA7mC,mBAAAozG,eAAA,IAAAvsE,EAAA5kC,oBAAA4U,eACI,IAAMg5I,GAAAhpH,EAAA5kC,oBAAA4U,gBAAA5nD,MAAA,KAAA,IAAA43E,EAAA+rE,aAAAq7C,QACNtsD,EAAA,EACC,KAAI,GAAQxyI,KAAA0gM,GACTluD,GAAQ,GAAMkuD,EAAA1gM,GAAAqkC,OAAgB,EAwW9B,IAAIs8J,GAAW77L,EAAG4yE,MAAMz/D,gBAAgB4K,SAASuF,UAAU,EAAG,EAC9DsvD,GAAMunH,YAAcvnH,EAAM7mC,mBAAmB1jB,KAAO,GAAKqlH,EAAW96D,EAAM+rE,aAAaq7C,SAAS92L,cAEpG0vE,EAAMp7C,WAAao7C,EAAM+rE,aAAannH,WAEtC78B,EAAgBw4E,eAAeP,GAAOn0E,KAAK,SAASC,GACpB,IAAxBA,EAAIhJ,KAAKo0H,YACT/xH,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,wBACpD7T,EAAGgT,YAAa,EAChBhT,EAAG4yE,SACH1gE,KACOxT,EAAIhJ,KAAKo0H,cAAe,EAC/B/xH,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBAEpD9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,wBAClD7T,EAAGgT,YAAa,IAErB,SAASrS,GACR5I,EAAW2I,YAAY,kCA0BnC,QArWSuwE,GAAIn+D,GAsWT,GArWIH,GAAItY,EAAAsY,QAAqB,UAsWzB,4CApWItb,WAAS,EACT+F,KAAA,MAwWRuV,GArWQjT,OAAAjB,KAAY,WAsWhB9D,EArWcg5E,iBAAmB7gE,EAAGiG,IAAAta,KAAA,SAAAC,GACjB,MAAfA,EAAMlI,QACNuB,EAAa2I,YAAM,UAAgB,8BAAA,uBACnCwR,KAEAna,EAAY2I,YAAM,QAAgB,oCAClCrJ,WAAU,EACV+F,KAAA,QAwWD,SArWCuD,GACA5I,EAAA2I,YAAiB,QAAA,gEACjBrJ,WAAe,EACf+F,KAAA,UAwWL,cAKP,QAAS2mH,GAAKjxG,GACV9S,EAAG4yE,MArWKx+E,QAAS8e,KAAGJ,GAsWpB9S,EAAG+S,WArWK,EAsWR/S,EAAGgT,YArWK,EAuGZ,GApWGhT,GAAGC,IAsWND,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GAC3BzU,EAAGuU,YAAcE,GAIzBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAG4yE,SACH5yE,EAAGgU,OAASA,EAnWnBhU,EAAAo0H,OAAYA,EACTp0H,EAAAwiH,KAAAA,EAqWIxiH,EAAG+jH,KAAOA,EACV/jH,EAAGixE,OAASA,EApWhBjxE,EAAAy7L,YAAA,EAsWIz7L,EArWC45L,yBAAOA,EAsWR55L,EArWC65L,uBAAWA,EAsWZ75L,EAAGouC,6BAA+BA,EAClCpuC,EAAG85L,gBAAkBA,CAnWrB,IAAI55L,GAAK/F,EAAAgG,uBAsWLgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SA8B7ED,2JA9DJ9d,QACKC,OAAO,wBAnWRe,WAAS,yBAASsmM,MA2mB1B,WACI,YAOA,SAASK,GArWO1hM,EAAoBJ,EAAAlC,EAAAyC,EAAAL,EAAAQ,GAwZhC,QArWIu4E,KAuWA,GAAIj4E,IACAkX,UArWQA,EAsWRsxC,SArWQzjD,EAAAiwE,SAsWR+rH,eArWWh8L,EAAAiD,KAEYtN,SAqWvBqK,EAAGi8L,uBACHj8L,EAAGi8L,yBAEPthM,EAAgBu4E,kBAAkBj4E,GAAKwD,KAAK,SAASC,GApW/B,MAAfA,EAAAlI,OACCwJ,EAAAi8L,qBAAuBv9L,EAAAhJ,KAuWvBqC,EArWU2I,YAAA,QAAA,yBAAA,aAuWf,SAASC,GApWT5I,EAAY2I,YAAA,QAAA,mBAAA,cAyWnB,QAASw7L,GAAgBppL,EAAK2B,GAnW1BzU,EAAGm8L,YAAQrpL,EAAQ8e,iBACnB5xB,EAAGo8L,MAAA,EACA,IAAA3nL,EAsWCzU,EAAGq8L,WAAavpL,GAEhB9S,EAAGQ,QAAUsS,EAAIqnL,WACjBn6L,EAAGq8L,WAAavpL,EAAIiG,IAGEpjB,QAAtBqK,EAAGs8L,kBACHt8L,EAAGs8L,oBApWH3mM,QAAAqK,EAAAu8L,eACPv8L,EAAAu8L,iBAGL5hM,EAASs4E,qBAAgCjzE,EAAAq8L,YAAY59L,KAAQ,SAAAC,GAChD,MAAAA,EAAAlI,QAuWqC,IAA9BkI,EAAIhJ,KAAK,GAAG8mM,iBArWzBx8L,EAAAs8L,gBAA8B3/L,KAAOC,MAAA8B,EAAShJ,KAAQ,GAAA8mM,iBACxB,IAAnB99L,EAAGhJ,KAAA,GAAA+mM,cAuWDz8L,EAAGu8L,aAAe5/L,KAAKC,MAAM8B,EAAIhJ,KAAK,GAAG+mM,eApWtD1kM,EAAA2I,YAAgC,QAAK,yBAAA,aAwWjC,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAjW5D,QAAGmiB,KACA7iB,EAAA8iB,YACA9iB,EAAA08L,WACA,KAAA,GAAOxhM,KAAA8E,GAAAu8L,aACEv8L,EAAAu8L,aAAArhM,GAAA8nB,WACIrtB,QAAAqK,EAAAu8L,aAAArhM,GAAA6d,IACb/Y,EAAA08L,SAAA7kM,KAA2BmI,EAAAu8L,aAAArhM,GAAA6d,GAK1B,KAAA,GAAA7d,KAAa8E,GAAAs8L,gBACb,GAAAt8L,EAAAs8L,gBAAYphM,GAAA8nB,WAuW4BrtB,QAA5BqK,EAAGs8L,gBAAgBphM,GAAG6d,GAAiB,CArW9C/Y,EAAS08L,SAAA7kM,KAAAmI,EAAAs8L,gBAAAphM,GAAA6d,GA2WF,IAAI4jL,GAAW1iM,EAAQ,QAAQ,GAAIwf,MAAQ,uBApWzCxe,GACV61L,QAAA9wL,EAAAQ,QACIo8L,UAAW58L,EAAAs8L,gBAAAphM,GAAAi/L,WACL0C,YAAA78L,EAAAs8L,gBAAAphM,GAAA02B,iBAuWEkrK,kBAAmB98L,EAAGs8L,gBAAgBphM,GAAGikD,UACzC8xI,aAAcjxL,EAAGs8L,gBAAgBphM,GAAGk4C,UArWrCi5C,MAAKrsF,EAAAs8L,gBAAWphM,GAAA+3C,WACxBo+I,YAAasL,EAEb38L,GAAQ8iB,SAAAjrB,KAAAoD,GA6Wf,MAtWO+E,GAAA,SAyWX,QAAS+8L,KApWT,IAAA,GAqWQllL,GAAI7X,EAAGu8L,aArWfrhM,EAAA,EAAAA,EAAA2c,EAAA3c,IAuWQ,IAAK8E,EAAGu8L,aAAarhM,GAAG8nB,UApW5B,YADKhjB,EAAAg9L,uBAAO,EA2WZ,IAAI3qK,GAAM73B,EAtWMyC,OAAI+C,EAAAu8L,aAAgB,SAAA7oI,GAuWhC,MAtWe,IAsWPA,EAAE1wC,WAGVqP,GAAIl3B,OAAS,EACb6E,EAAGq2B,SAtWS,EAwWZr2B,EAAGq2B,SAtWI,EA6Wf,QAtWQ4mK,KAuWJ,IAAK,GAAIjnK,GAAI,EAAGA,EAAIh2B,EAAGs8L,gBAAiBtmK,IACpC,IAAKh2B,EAAGs8L,gBAAgBtmK,GAAGhT,UApW1B,YAqWGhjB,EAAGk9L,0BAA2B,EAItC,IAAI7qK,GAtWI73B,EAAGyC,OAAA+C,EAAcs8L,gBAAI,SAAA5oI,GAuWzB,MAtWmB,IAAZA,EAAA1wC,WAwWPqP,GAtWIl3B,OAAA,EAuWJ6E,EAAGm9L,cAAe,EApWlBn9L,EAAAm9L,cAAW,EA2WnB,QAtWI15K,KAuWA,GAtWuB9tB,QAAnBqK,EAAAs8L,gBAuWA,IAtWI,GAAGphM,GAAA,EAAAA,EAAA8E,EAAAs8L,gBAAqBnhM,OAAAD,IACxB8E,EAAGs8L,gBAAYphM,GAAA8nB,UAAAhjB,EAAAk9L,6BAyWhB,IAAuBvnM,QAAnBqK,EAAGu8L,aACV,IAAK,GAAIpyL,GAAI,EAAGA,EAAInK,EAAGu8L,aAAaphM,OAAQgP,IArW3CnK,EAAAu8L,aAAApyL,GAAA6Y,UAA6BhjB,EAAAg9L,sBAqKtC,GAAIh9L,GAAKC,IAETD,GAAGqU,kBApWChJ,MAAS,IAuWTA,MArWQ,KAuWRA,MAAS,KAETA,MAAS,KAnWTA,MAAQ,MAuWZrL,EAAGsU,SArWCtU,EAAAqU,gBAAgB,GAsWpBrU,EAAGuU,YArWa,EAsWhBvU,EAAGwU,qBArWoB,SAAAC,GAsWnBzU,EAAGuU,YArWKE,GAuWZzU,EAAGozH,aAAe,EAClBpzH,EAAGkzH,mBACC7nH,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGmzH,UArWYnzH,EAAAkzH,iBAAe,GAsW9BlzH,EAAGqzH,sBArWwB,SAAA5+G,GAsWnBzU,EAAGozH,aAAe3+G,GAI1BzU,EAAGgT,YArWY,EAsWfhT,EAAGiwE,SAAW,MACdjwE,EAAG+S,WArWI,CAsWP,IAAI7S,GArWI/F,EAAuBgG,uBAsW3BgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGkzE,kBAAoBA,EACvBlzE,EAAGk8L,gBAAkBA,EApWrBl8L,EAAA+8L,kBAAqBA,EAsWrB/8L,EAAGi9L,qBArWuBA,EAsW1Bj9L,EAAGyjB,UArWKA,EAsWRzjB,EAAG6iB,UArWSA,EAsWZ7iB,EAAGq2B,SArWS,EAsWZr2B,EAAGm9L,cAAe,EAuJlBn9L,EAAGkkB,KAAO,WACNlkB,EAAGo8L,MAAO,EACVp8L,EAAGi8L,wBACHj8L,EAAGiD,KAAO,GACVjD,EAAGm8L,YAtWQ,GAuWXn8L,EAAGu8L,gBACHv8L,EAAGs8L,mBACHt8L,EAAGq2B,SAAU,EACbr2B,EAAGm9L,cAAe,GAItBn9L,EAAGo9L,WAtWK,WAwWJ,GAAI/5I,KArWJA,GAAIxgC,IAuWJ7iB,EAAGq9L,QACCZ,YAAaz8L,EAAG08L,SAAShpK,KAAK,KArWlCvhB,UAAAA,EACI2B,UAAQ5T,EAAWG,OAuWnBG,QAtWOR,EAAAq8L,YAwWX1hM,EAtWgBk5E,qBAAkBxwB,GAAA5kD,KAAU,SAASC,GACT,YAsWpCtK,QAtWQkpM,UAAG5+L,EAAAhJ,KAAec,SAuW1BuB,EAAW6G,eAAgB,EAC3BjE,EAAgBu6E,mBAAmBl1E,EAAGq9L,QAAQ5+L,KAAK,SAASC,GACrC,MAAfA,EAAIlI,QACJ0lM,EAAgBl8L,EAAGq8L,WAAY,GArWhCtkM,EAAY2I,YAAY,UAAA,6BAAA,cAEvB3I,EAAW2I,YAAA,QAAA,yBAAA,gBAInB3I,EAAG2I,YAAY,QAAA,yBAAA,cAwWpB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAlW5DV,EAAAu9L,cAAc,WAEVv9L,EAAA08L,YAuWA18L,EAAGw9L,cACH,KAtWI,GAAItiM,KAAG8E,GAAAu8L,aACHv8L,EAAAu8L,aAAMrhM,GAAA8nB,WAuWuBrtB,QAAzBqK,EAAGu8L,aAAarhM,GAAG6d,KArWnB/Y,EAAAw9L,YAAY3lM,KAAAmI,EAAAu8L,aAAqBrhM,GAAAi/L,YACjCn6L,EAAA08L,SAAM7kM,KAAAmI,EAAAu8L,aAAArhM,GAAA6d,IA0WlB,IAAI0kL,IACAC,WAtWQ19L,EAASw9L,YAuWjB1M,QAtWQ9wL,EAAMQ,QAwWlBR,GAAG29L,SACClB,YAAaz8L,EAAG08L,SAAShpK,KAAK,KAC9B5f,UAtWQ5T,EAAcG,OAuWtBG,QAtWIR,EAAMq8L,YAwWd1hM,EAtWcw6E,wBAAyBsoH,GAAAh/L,KAAA,SAAmBC,GACX,YAAvCtK,QAAIkpM,UAAS5+L,EAAMhJ,KAAAc,SACnBuB,EAAU6G,eAAA,EAwWVjE,EAtWgBy6E,sBAAiBp1E,EAAA29L,SAAAl/L,KAAA,SAAAC,GAuWV,MAAfA,EAAIlI,QACJ0lM,EAAgBl8L,EAAGq8L,WAAY,GArWnCtkM,EAAc2I,YAAM,UAAgB,+BAAsB,cAwWtD3I,EAAW2I,YAAY,QAAS,yBAA0B,gBAlWlE3I,EAAQ2I,YAAK,QAAkB,yBAAA,cAwWpC,SAtWSC,GAuWR5I,EAtWW2I,YAAQ,QAAA,mBAAA,gHA2E/BtM,QACKC,OAAO,wBACPe,WAAW,yBAA0B2mM,MA+R9C,WACI,YAOA,SAAS6B,GAtWW7lM,EAAWiC,EAAYQ,EAAAH,EAAeN,EAAKI,EAASsQ,EAAA9P,GAgZpE,QAASuX,KACL,GAAI8T,IACA7T,UAAWnS,EAAGmS,UArWf0rL,QAAA,EAuWCC,WAAY,GAEhBnjM,GAAgB86E,iBAAiBzvD,GAAWvnB,KAAK,SAAUC,GACrC,KAAdA,EAAIlI,OArWPwJ,EAAK+9L,oBAAKr/L,EAAAhJ,KAEZqC,EAAY2I,YAAA,QAAA,mBAAA,yBAwWZ,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,0BAlWhE,QAAAs9L,KAEA,GAqWQh+L,EAAGi+L,gBAAiB,EACpBj+L,EAAGk+L,cAAe,EAtW1BvoM,QAAAqK,EAAAm+L,MAAAC,gBAAA,IAAAp+L,EAAAm+L,MAAAC,eAAA,CACYp+L,EAAAi+L,gBAAA,CACP,IAAWhjM,IAwWAkX,UAAWnS,EAAGmS,UACdsxC,SAAU,MAtWjBu4I,eAAuBh8L,EAAAm+L,MAASC,eAyW7BzjM,GAAgBu4E,kBAAkBj4E,GAAKwD,KAAK,SAAUC,GAtWxC,MAAnBA,EAAAlI,OACUwJ,EAAAq+L,eAAA3/L,EAAAhJ,KAEAqC,EAAA2I,YAAA,QAAA,yBAAA,mBAET,SAASC,GACV5I,EAAA2I,YAAA,QAAA,mBAAA,qBAoXH,QAvWG49L,KACCt+L,EAAAmvK,SAAS,EAEAx5K,QAATqK,EAAAm+L,MAASI,WAAA5oM,QAAAqK,EAAAm+L,MAAAC,iBACVp+L,EAAAmvK,SAAA,GAKH,QAAGqvB,KACA,IAAAx+L,EAAA+S,UAyWK,GAxWAurL,IAwWIt+L,EAAGmvK,QAAS,CACZ,GAAI0uB,GAAU,EACV73K,GAtWA7T,UAAAnS,EAAAmS,UACF0rL,QAAAA,EACCU,UAAAv+L,EAAAm+L,MAAAI,UACXE,WAAaz+L,EAAA0+L,sBACD5qL,UAAA9T,EAAAE,WAAsBG,QAGnCjC,EAAoB,GAAAH,SACpBG,GAAAF,OAAuB,OAAAvB,KAAAqkB,UAAAgF,IACvB5nB,EAAYF,OAAA,YAAA8B,EAAA2+L,WAEZhkM,EAAU66E,eAAAp3E,GAAAK,KAAA,SAAAC,GACK,KAAAA,EAAAlI,QAwWE0b,IAtWXlS,EAAA4+L,UAAoB,EACzB5+L,EAAA6+L,YAAA,EACU9mM,EAAA2I,YAAA,GAAAhC,EAAAhJ,KAAA,QAAA,UAAAgJ,EAAAhJ,KAAAme,QAAA,qBAGN9b,EAAmB2I,YAAA,QAAA,mBAAA,qBAEhB,SAAAC,GACA5I,EAAA2I,YAAuB,QAAA,mBAAA,0BAItB3I,GAAG2I,YAAA,QAA2B,sBAAA,oBA+W1C,QAASo+L,KAtWT9+L,EAAS+S,WACLpd,QAAAqK,EAAAm+L,MAAAI,YACGv+L,EAAAm+L,MAAkBI,UAAApjM,OAAA,EACX6E,EAAA++L,WAAA,EAGH/+L,EAAA++L,WAAA,GA6WX,QAvWQC,GAAGlsL,GAwWP9S,EAAGi/L,oBAtWHj/L,EAAAk/L,uBAwWAl/L,EAAGm/L,gBAvWIrsL,EAAe+qL,QAwWtB79L,EAAGo/L,gBAAkBtsL,EAAIusL,QACzBr/L,EAAGs/L,kBAAoBxsL,EAAIyrL,UAtW3Bv+L,EAAAu/L,aAAgBzsL,EAAA0sL,aAwWhBx/L,EAAGy/L,aAvWS,mBAyWZz/L,EAAG6+L,YAvWY,EAwWf7+L,EAAG4+L,UAvWS,EAwWZ5+L,EAAG+S,WAvWY,EAwWf/S,EAAG2gK,YAvWQ,EAwWX3gK,EAAGy+L,YAvWK,EAwWRz+L,EAAGm+L,MAAQ/pM,QAAQ8e,KAAKJ,GAtWrB9S,EAAAm+L,MAASuB,iBAAKvkM,OAAA,IACb6E,EAAA2/L,yBAAuBhjM,KAASC,MAAAoD,EAAAm+L,MAAAuB,kBAAoBE,eAyWxD5/L,EAAGm+L,MAAMC,eAAiBtrL,EAAI+sL,UACH,IAAvB/sL,EAAIgtL,kBACJ9/L,EAAG+/L,gBAAkBpjM,KAAKC,MAAMkW,EAAIgtL,kBArW1B,IAAXhtL,EAAA6rL,YACA3+L,EAAAqtC,cAAWrtC,EAAAivC,cAAAl3C,EAAA8D,SAAA,8BAAAiX,EAAA6rL,UACd3+L,EAAKggM,aAAYltL,EAAA6rL,UAyWjB,IAAI34K,IACA63K,QAvWQ79L,EAAGm/L,gBAwWXhtL,UAAW,EACX2rL,WAAY,GAEhBnjM,GAAgBo4E,wBAAwB/sD,GAAWvnB,KAAK,SAAUC,GAtWjD,KAAZA,EAAIlI,OACDwJ,EAAGigM,iBAAmBvhM,EAAAhJ,KA0WtBqC,EAAW2I,YAAY,QAAS,mBAAoB,sBAYhE,QAASw/L,KAEL,GADAlgM,EAAGmgM,oBAvWa,EAwWkBxqM,QAA9BqK,EAAGogM,yBAAsE,IAA9BpgM,EAAGogM,wBAA+B,CAC7EpgM,EAAGmgM,oBAvWiB,CAwWpB,IAAIn6K,IACA7T,UAAWnS,EAAGmS,UACd0rL,QAAS79L,EAAGm/L,gBACZE,QAAQr/L,EAAGo/L,gBACXtB,WAAY99L,EAAGogM,wBArWvBzlM,GAAWq4E,qCAAAhtD,GAAAvnB,KAAA,SAAAC,GAwWe,KAAdA,EAAIlI,OACJwJ,EAAGqgM,kBAAoB3hM,EAAIhJ,KApW9BqC,EAAc2I,YAAK,QAAA,mBAAA,uBA8WhC,QAvWQ4/L,KAwWJtgM,EAAGugM,eACHvgM,EAAGwgM,eACH,KAAK,GAAItlM,KAAK8E,GAAGqgM,kBAAmB,CAtWhC,GAAIrgM,EAAAqgM,kBAAYnlM,GAAA8nB,UAAA,CACbhjB,EAAAwgM,aAAU3oM,KAAAmI,EAAAqgM,kBAAAnlM,GAAA6d,GACV,IAAAw8H,IACAu7C,QAAU9wL,EAAAqgM,kBAAAnlM,GAAAi/L,WAwWLc,cAAiB,IACjBwF,eAAkB,IAClBC,QAAW,cAAqB1gM,EAAGu/L,aAGvCv/L,GAAGugM,YAAY1oM,KAAK09I,GApWxB,IAA2B,MAAvBv1I,EAACm+L,MAAGuB,kBAA8B,IAAA1/L,EAAAm+L,MAAAuB,mBAC/BxkM,GAAA8E,EAAAqgM,kBAA2BllM,OAAA,EAAA,CAC9B,GAAAwlM,IAwWQ7P,QAAW9wL,EAAGu/L,aACdtE,cAAiB,IAtWvBwF,eAAiB,IACbC,QAAa,eAGpB1gM,GAAAugM,YAAe1oM,KAAA8oM,IA6WtB,GAAiC,MAA7B3gM,EAAGm+L,MAAMuB,kBAAyD,IAA7B1/L,EAAGm+L,MAAMuB,iBAAwB,CAtW9E,GAASlE,IACEoF,eAAmB5gM,EAAAm+L,MAAAI,UACtBsC,WAAgB7gM,EAAIu/L,aAChBuB,eAAG,IAwWHxP,aAAgB,IAChBsO,cAAiB5/L,EAAGugM,YArWxB5lM,GAAgBq6E,qBAAoBwmH,GAAQ/8L,KAAK,SAAAC,GAC7C,GAAmB,WAAhBA,EAAAhJ,KAAAc,OAA+B,CAwW9BuB,EAAW6G,eAAgB,EAC3BoB,EAAG+gM,gBAAkBriM,EAAIhJ,KAAK2V,MAC9BrL,EAAGghM,gBAAkBtiM,EAAIhJ,KAAK2V,MAAMu0L,aAtWnD,IAAAqB,MAwWmBC,IAtWV,IAAAlhM,EAAWghM,gBAAA7lM,OAAA,EAAA,CACP,IAAA,GAAAgP,KAAAnK,GAAAghM,gBACPE,GACOr4K,GAAA7oB,EAAAghM,gBAAA72L,GAAA0e,GACOioK,QAAA9wL,EAAAghM,gBAAA72L,GAAA2mL,SAEdmQ,EAAkBppM,KAAAqpM,EA0WL,IAAIC,IACAC,QAAWphM,EAAG+gM,gBAAgBK,QAC9BC,aAAgBrhM,EAAG+gM,gBAAgBM,aAtW3CzB,cAAWqB,GAIXK,GACQzD,QAAS79L,EAAKm/L,gBACnBrL,aAAA9zL,EAAAwgM,aAAA9sK,KAAA,KACA6qK,UAAWv+L,EAAAm+L,MAAAI,UACVmB,iBAAA/iM,KAAAqkB,UAAAmgL,GAwWIrtL,UAAY9T,EAAGE,WAAWG,OApWtC1F,GAAWs6E,sBAAgBqsH,GAAA7iM,KAAA,SAAAC,GACX,KAAAA,EAAAlI,OACJuB,EAAW2I,YAAK,UAAA,oBAAA,oBAGjB3I,EAAA2I,YAAA,QAAA,mBAAA,2BA6WP3I,GAAW2I,YAAY,QAAS,mBAAoB,0BAK3D,CAtWN,GAAAmwL,IACCgQ,WAAA7gM,EAAAu/L,aACG6B,QAAWzkM,KAAAC,MAAAoD,EAAAm+L,MAAAuB,kBAAA0B,QACXC,aAAc1kM,KAAAC,MAAAoD,EAAAm+L,MAAAuB,kBAAA2B,aACZzB,cAAY5/L,EAAAugM,YAyWb5lM,GAvWW26E,wBAAsBu7G,GAAWpyL,KAAA,SAAA8iM,GAwWxC,GAvWwB,KAApBA,EAAG/qM,OAAoB,CACvB,GAAGgrM,KAwWHzpM,GAAW6G,eAAgB,CAC3B,KAAK,GAAIqX,KAAKjW,GAAG2/L,yBAA0B,CACvC,GAAI8B,IAtWJ54K,GAAA7oB,EAAA2/L,yBAAA1pL,GAAA4S,GACEioK,QAAG9wL,EAAA2/L,yBAAA1pL,GAAA66K,QAyWL0Q,GAAa3pM,KAAK4pM,GApW9B,IAAW,GAAAxrL,KAAWsrL,GAAA7rM,KAAA2V,MAAA,CACV,GAAAo2L,IAwWI54K,GAAM04K,EAAU7rM,KAAK2V,MAAM4K,GAAG4S,GAtWlCioK,QAAAyQ,EAAwB7rM,KAAA2V,MAAW4K,GAAA66K,QA0WnC0Q,GAAa3pM,KAAK4pM,GAGtB,GAvWIN,IACAC,QAAWzkM,KAAAC,MAAAoD,EAAYm+L,MAAAuB,kBAAW0B,QAwWlCC,aAvWG1kM,KAAAC,MAAAoD,EAAAm+L,MAAAuB,kBAAA2B,aACHzB,cAAW4B,GAGhBx7K,GACH7T,UAAWnS,EAAAmS,UAwWH0rL,QAAS79L,EAAGm/L,gBAtWhBrL,aAAK9zL,EAAAwgM,aAAA9sK,KAAA,KACFgsK,iBAAY/iM,KAASqkB,UAAAmgL,GAwWpB96K,QAAS,kBACTvS,UAAU9T,EAAGE,WAAWG,OAG5B1F,GAAgBs6E,sBAAsBjvD,GAAWvnB,KAAK,SAAUijM,GAtW3E,GAAA,KAAAA,EAAAlrM,OAAA,CACT,GAAAwvB,IAwWgC63K,QAAS79L,EAAGm/L,gBACZhtL,UAAW,EAvW3C2rL,WAAA,GAEgBnjM,GAAkBo4E,wBAAA/sD,GAAAvnB,KAAA,SAAAC,GAyWgB,KAAdA,EAAIlI,OACJwJ,EAAGigM,iBAAmBvhM,EAAIhJ,KAG1BqC,EAAW2I,YAAY,QAAS,mBAAoB,sBAzV/D3I,EAAA2I,YAAA,UAAA,qBAAA,wBAID3I,GAAA2I,YAAA,QAAA,mBAAA,0BAMR3I,GAAA2I,YAAA,QAAA,mBAAA,uBAOZ,QAAGihM,KACA,IAAA,GAAAzmM,GAAA,EAAAA,EAAqB8E,EAAAigM,iBAAA9kM,OAAAD,IACrB8E,EAAAigM,iBAAqB/kM,GAAA8nB,WAAA,EA4WxB,QAAS+5K,KACL,IAAK,GAAI7hM,GAAI,EAAGA,EAAI8E,EAAGqgM,kBAAmBnlM,IAvW9C,IAAS8E,EAAOqgM,kBAAAnlM,GAAA8nB,UAER,YADAhjB,EAAAg9L,uBAAY,EAKhB,KAAA,GAAA9hM,GAAA,EAAgBA,EAAA8E,EAAAigM,iBAAiB/kM,IAC7B,IAAI8E,EAAIigM,iBAAe/kM,GAAA8nB,UA0WnB,YAzWAhjB,EAAGg9L,uBAAsB,GASrC,QAAS4E,KACL,GAAGC,MACAC,IACH,KAAI,GAAG5mM,KAAM8E,GAAAigM,iBACNjgM,EAAAigM,iBAAiB/kM,GAAA8nB,YAChB8+K,EAAMjqM,KAAAmI,EAAAigM,iBAAA/kM,GAAAi/L,YACN0H,EAAchqM,KAAAmI,EAAAigM,iBAAA/kM,GAAA6d,IA2WtB,IAAIuoL,IAvWAzD,QAAA79L,EAAAm/L,gBAyWAc,iBAxWY4B,EAAgBnuK,KAAA,KAyW5B/f,WAxWW3T,EAAAE,WAAAG,QA0WXm7L,GACA4F,QAAWzkM,KAAKC,MAAMoD,EAAGm+L,MAAMuB,kBAAkB0B,QACjDW,SAxWGD,EA0WPnnM,GAAgB06E,wBAAwBmmH,GAAU/8L,KAAK,SAAUC,GACtC,WAAnBA,EAAIhJ,KAAKc,QACTuB,EAAW6G,eAAgB,EAC3BjE,EAAgB46E,sBAAsB+rH,GAAQ7iM,KAAK,SAAUC,GAvWtE,GAA4B,KAA5BA,EAAkBlI,OAAe,CACvBuB,EAAiB2I,YAAa,UAAI,oBAAA,mBACxC,IAAeslB,IACf63K,QAAwB79L,EAAIm/L,gBACtBhtL,UAAmB,EAyWR2rL,WAAY,GAEhBnjM,GAAgBo4E,wBAAwB/sD,GAAWvnB,KAAK,SAAUC,GAvW5D,KAAAA,EAAAlI,OACTwJ,EAAAigM,iBAAAvhM,EAAAhJ,KAGIqC,EAAA2I,YAAA,QAAA,mBAAA,0BAKZ3I,GAAY2I,YAAA,QAAA,mBAAA,uBAKT3I,EAAI2I,YAAY,QAAA,mBAAA,sBA2X5B,QAASsT,KACLhU,EAAG6+L,YAxWa,EAyWhB7+L,EAAG4+L,UAAW,EACd5+L,EAAG+S,WAxWQ,EAyWX/S,EAAGi+L,gBAxWS,EAyWZj+L,EAAGy+L,YAAa,EAChBz+L,EAAGm+L,SAGP,QAAS/pE,KACLp0H,EAAGqgM,qBACHrgM,EAAGogM,wBAAwB,KAO/B,QAxWQjzJ,KAyWJntC,EAAGotC,iBAxWkB,EA2WzB,QAAS5uB,GAxWQriB,GA0Wb,GAAI6T,GAAS,GAAIS,WACjB,IAAKzQ,EAAGotC,gBApWH,CAEFptC,EAAA2+L,UAAAxiM,EAAsBsN,OAAAiE,MAAA,GACtBsC,EAAAU,OAAAjG,EAAsBiU,cACtB1O,EAAAa,cAAsB7Q,EAAA2+L,UAEtB,IAAAvgM,GAAe,GAAIH,SA0WlBG,GAASF,OAAO,YAAa8B,EAAG2+L,WAvWjCvgM,EAAAF,OAAa,UAAA8B,EAAAm+L,MAAAN,SAEbz/L,EAAAF,OAAY,eAAA8B,EAAAggM,cAEZgC,sCAAaC,gBAAA7jM,GAAAK,KAAA,SAAAC,GACQ,MAAbA,EAAAlI,OACJuB,EAAM2I,YAAiB,UAAY,mCAAA,WAGjC3I,EAAA2I,YAAqB,QAAA,yBAAA,UAEvB,SAAAC,GAyWC5I,EAAW2I,YAAY,QAAS,yBAA0B,eAxB9DV,GAAG2+L,UAAYxiM,EAAMsN,OAAOiE,MAAM,GAClCsC,EAAOU,OAASjG,EAAOiU,cACvB1O,EAAOa,cAAc7Q,EAAG2+L,WA7fhC,GAAI3+L,GAAKC,IAETD,GAAGqU,kBAtWgBhJ,MAAQ,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAuW3BrL,EAAGsU,SAAWtU,EAtWEqU,gBAAA,GAwWhBrU,EAAGuU,YAtWa,EAuWhBvU,EAAGwU,qBAtWgB,SAAaC,GAuW5BzU,EAAGuU,YAtWYE,GAyWnBzU,EAAGmS,UAAYhY,EAtWIgG,uBAAAwU,gBAAAxC,UAuWnBnS,EAAGE,WAtWa/F,EAAWgG,uBAuW3BH,EAAG6+L,YAtWa,EAuWhB7+L,EAAG4+L,UAAW,EACd5+L,EAAG2gK,YAtWQ,EAuWX3gK,EAAGkiM,YAtWS,EAuWZliM,EAAGmiM,iBAAkB,EACrBniM,EAAG++L,WAAY,EACf/+L,EAAG+S,WAAY,EACf/S,EAAGmgM,oBAAqB,EArWxBngM,EAAAi+L,gBAAgB,EAuWhBj+L,EAAGy+L,YAtWK,EAuWRz+L,EAAG2+L,UAtWK,KAuWR3+L,EAAGggM,aAtWS,KAuWZhgM,EAAG8+L,gBAtWeA,EAuWlB9+L,EAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EACZp0H,EAAGg/L,UAtWSA,EAuWZv0L,EAAO+T,aAtWCA,EAuWRxe,EAAGmtC,WAtWaA,EAuWhBntC,EAAGw+L,UAAYA,EACfx+L,EAAGsgM,eAtWaA,EAuWhBtgM,EAAG+8L,kBAtWgBA,EAuWnB/8L,EAAGkgM,kBAtWaA,EAuWhBlgM,EAAGg+L,mBAtWiBA,EAuWpBh+L,EAAG2hM,mBAtWiBA,EAuWpB3hM,EAAG4hM,wBAA0BA,EAC7B5hM,EAAGm+L,SACHjsL,IA7TAlS,EAAGk8L,gBAAc,SAAAppL,GACd9S,EAAAm+L,MAAAC,eAAchqM,QAAA8e,KAAAJ,EAAA8e,kBACd5xB,EAAAk+L,cAAA,EACCl+L,EAAG0+L,sBAAc5rL,EAAAiG,GAwWjB/Y,EAAGm+L,MAAMoB,aAAezsL,EAAIw4J,SA4GhCtrK,EAAG+xB,KAAO,WACN/xB,EAAG6+L,YAvWa,EAwWhB7+L,EAAG+S,WAAY,EACf/S,EAAG4+L,UAAW,GAiRlB5+L,EAAGoiM,YAAc,WACbpiM,EAAGm+L,MAAMI,UAAYv+L,EAAGs/L,kBACxBt/L,EAAG++L,WAxWS,GA2WhB/+L,EAAGyyJ,SAAW,WACVzyJ,EAAG6+L,YAxWK,EAyWR7+L,EAAG4+L,UAxWS,EAyWZ5+L,EAAG+S,WAAY,EACf/S,EAAGm+L,UA4DP1zL,EAAOiU,cAxWa,SAAAlR,GAyWhB/C,EAxWIe,OAAA,WACAxL,EAAAivC,cAAYzhC,EAAA/D,OAAA/J,0HAzLxBtL,QACKC,OAAO,wBACPe,WAtWU,iBAAAwoM,MAg5BnB,WACI,YAOA,SAxWIyE,GAAS53L,EAAoBxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAW,EAAAR,GA6X7B,QAAS+X,KAvWTvX,EAASm4E,oBAAiBvwE,EAAA/B,SAAA/B,KAAA,SAAAC,GACL,MAAdA,EAAAlI,OACAwJ,EAAAu8L,aAAe79L,EAAAhJ,KAEVqC,EAAG2I,YAAkB,QAAG,YAAW,cA0WxC,SAxWSC,GAyWR5I,EAxWQ2I,YAAc,QAAA,yBAAqB,eA4WnD,QAAS4hM,KACkB,GAAnBtiM,EAAGuiM,cACH5jM,WAxWO2jM,IAAiB,KAsUhC,GAxWItiM,GAAGC,IAyWPD,GAAGsU,SAxWQ,KAyWXtU,EAAGgT,YAxWQ,EAyWXhT,EAAG+S,WAxWS,EAyWZ/S,EAAGsS,WAxWS,EAyWZtS,EAAGqU,kBAxWqBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAyWxBrL,EAAGsU,SAxWStU,EAAAqU,gBAAW,GAyWvBrU,EAAGkS,KAAOA,EACVlS,EAAGuU,YAAc,EACjBvU,EAAGwiM,QAxWK,IAyWR,IAAItiM,GAxWY/F,EAAmBgG,sBA0WnCH,GAAGwU,qBAAuB,SAASC,GAC/BzU,EAAGuU,YAxWUE,GA0WjBzU,EAAGsiM,aAAeA,EAClBtiM,EAAGuiM,cAAe,EAClBxqM,EAAW2c,SAAU,EACrBxC,IAqBAlS,EAAGyiM,WAxWa,WAyWZziM,EAAG0iM,eACH,KAAK,GAAIxnM,KAAK8E,GAxWEu8L,aAyWRv8L,EAAGu8L,aAxWKrhM,GAAA8nB,WAyWRhjB,EAAG0iM,aAxWK7qM,KAAWmI,EAAAu8L,aAAArhM,GAAAi/L,aAmX/Bn6L,EAAG2iM,aAxWS,WAyWR3iM,EAAGyiM,YAEH,KAAK,GAxWGvnM,KAAA8E,GAAA0iM,aAyWJ,GAxWIngM,EAAAo9C,UAAiB,CAyWjB,GAAItmC,GAAO,GAAII,MAvWnB5a,EAAA,GAAgB6gD,OAAAn9C,EAAAm9C,MAAqB,cAAe3hD,KAAA,gCAAe6kM,aAAAvpL,EAAAwpL,YAC3DC,EAAS,GAAU7kM,SAyWvB6kM,GAxWe5kM,OAAA,eAAgBW,EAAAA,EAAApC,MAyW/BuD,EAAGuiM,cAxWI,EA8WPzuH,IAAI/+E,OAAOsY,QACP0mE,YAxWY,uBAyWZC,gBAxWY,2CAyWZC,OAAQ,aACRC,iBAxWQ,MA2WZ,IAAIC,GAxWQ,GAAAL,KAAAM,IAAA3+E,QAAmB4+E,OAAA,WAAAC,WAAA,IAAAC,aAAAvnE,QAAA,QAyW3BzR,EAAO2E,EAxWCM,QAAc,YAAgBR,EAAA0iM,aAAAxnM,GAAA,IAyWtCzF,GAxWQ4+E,OAAA,WAAmBI,IAAAl5E,EAAgBsD,EAAApC,KAAAi4E,YAAA71E,EAAAd,KAAA42E,KAAA91E,GAyW3Cs6B,GAEAy7C,SAAU,SACVC,UAAW,EAEXC,IAAK,cAELj2E,IACAs1E,EAAOY,OAxWCt/E,EAAA0jC,EAAoB,SAAKx4B,EAAUjL,GAyWvC+U,EAxWIlP,KAAA7F,EAAe2+B,QAyWnB,IAAI8uG,KACJA,GAAStrI,KAAK0D,EAAOsD,EAAKpC,KAvW1B,IAAAsmM,GAAgB,qBAAsBpmM,KAAQqkB,UAAKmiH,GAAe,sBAC9D9pH,EAAI,GAAII,MAyWRq/B,GACAz6C,OAAU6B,EAAWM,QACrBlC,SAxWK0B,EAAA0iM,aAAAxnM,GAyWL8nM,YAxWe,EAyWfC,QAA0B,MAAdjjM,EAAG+hL,QAAmB/hL,EAAG+hL,QAAU,GAC/CmhB,cAAoC,MAAlBljM,EAAG24C,YAAuB34C,EAAG24C,YAAc,GAC7DoqJ,gBAAmBA,EACnBI,YAAe9pL,EAAKwpL,UAvW3BO,WAAA/pL,EAAAwpL,UACDrsM,OAAW,IAyWH6sM,UAAa,WACbC,iBAAoB,KACpBC,WAAa,EArWzBvjM,GAAAuiM,cAAc,EACdpwK,QAAcC,IAAG0mB,GACjBn+C,EAAsBg4E,UAAS75B,GAC/Br6C,KAAgB,SAAWC,GACP,MAAAA,EAAAlI,QAyWoD,SAAhDkI,EAAIhJ,KAAK8tM,WAAW,GAAGC,uBAvWnC1rM,EAAA2I,YAAwB,UAAkB,sBAAqB,UACnDxF,GAAK8E,EAAA0iM,aAAAvnM,OAAA,GACN6E,EAAA0R,UAIX1R,EAAMuiM,cAAG,IA0WbviM,EAAGuiM,cAAe,EAvWlB5jM,WAAA,WA2aL,CACH,GAAIokM,GAAkB,qBAAuBpmM,KAAKqkB,UAAUze,EAAMm9C,MAAQ,sBACtErmC,EAAO,GAAII,MACXq/B,GAvWPz6C,OAAA6B,EAAqBM,QACjBlC,SAAc0B,EAAA0iM,aAAiBxnM,GAC7B8nM,YAAA,EAyWCC,QAA0B,MAAdjjM,EAAG+hL,QAAmB/hL,EAAG+hL,QAAU,GAC/CmhB,cAAoC,MAAlBljM,EAAG24C,YAAuB34C,EAAG24C,YAAc,GAC7DoqJ,gBAAmBA,EAvW1BI,YAAoB9pL,EAAAwpL,UAChBO,WAAc/pL,EAAAwpL,UACXrsM,OAAA,IACD6sM,UAAA,WACHC,iBAAA,KAyWIC,WAAa,EArWpBvjM,GAAIuiM,cAAc,EACf5nM,EAAIg4E,UAAoB75B,GACrBr6C,KAAA,SAAAC,GACH,MAAAA,EAAAlI,QAyWgE,SAAhDkI,EAAIhJ,KAAK8tM,WAAW,GAAGC,uBACvB1rM,EAAW2I,YAAY,UAAW,sBAAuB,UACrDxF,GAAM8E,EAAG0iM,aAAavnM,OAAS,GAC/B6E,EAAG0R,UApW1B1R,EAAAuiM,cAA0B,IAE3BviM,EAAAuiM,cAAA,EACC5jM,WAAY,OA6WrBqB,EAAG0R,OAAS,WAvWR3Z,EAAI6G,eAAS,EAyWb0d,EAxWgBiB,QAAA,iKA6HxBnpB,QACKC,OAxWM,wBAyWNe,WAxWM,kBAAWitM,MAwlB1B,WACI,YAOA,SAASqB,GAxWmB3pM,EAAAhC,EAAY0C,EAAAD,EAAAH,EAAAw7E,EAAA17E,EAAAsQ,GAkZpC,QAxWOyH,KACH,GAAG6jE,EACHF,GAAWC,sBAAA/7E,EAAAhC,EAAAg+E,GAAAt3E,KAAA,SAAAC,GAyWY,MAAfA,EAAIlI,QACJwJ,EAAGw5H,mBAAqB96H,EAAIhJ,KAvW/BsK,EAAAsS,WAAS,GAEXjY,EAAAwH,MAAA,QAAwB,yBAAA,oBA0WxB,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBA8IjD,QAASy0E,KAEPt2E,EAAGsS,WAzWS,CA0WZ,IAvWY0T,IAuWK7rB,EAAsBgG,wBAG3B8rC,YAAY,iBAIpB4pC,GAzWsBS,wBAAiBtwD,GAAcvnB,KAAM,SAAAC,GA0WvD,GAzWe,MAyWXA,EAzWIlI,OAAc,CA0WlBwJ,EAAG8Z,cAzWgBpb,EAAAhJ,KA0WnBsK,EAAGsS,WAzWU,CA0Wb,IAzWI2D,GAAInf,SAAAijB,cAAkB,IA0W1BjjB,UAzWQC,KAAAijB,YAAW/D,GA0WnBA,EAAEgE,MAzWM,eA0WR,IAAIrc,GAzWI,GAAAC,OAAUa,EAAAhJ,OA0WdqI,KAzWI,oBA2WJtJ,EAzWIC,OAAAwlB,IAAYC,gBAAcvc,EA2WlCnD,GAzWQ4E,KAAA5K,EAAA,UA0WRsD,EAzWQ2I,YAAe,UAAK,eAAA,mBA0W5BwR,QAEAna,GAzWQ2I,YAAa,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OA0WrB4C,EAAGsS,WAzWK,GA4Wb,SAAU3R,GACT5I,EAzWW2I,YAAA,QAAe,iBAAArJ,WAAA,EAAA+F,KAAA,OA0W1B4C,EAAGsS,WAzWK,IAwIpB,GAAItS,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAxWc,GA0W/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAxWME,GA2WbzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGw5H,sBAvWHx5H,EAAGs2E,wBAA0BA,EAyW7Bv+E,EAxWO2c,SAAM,EAyWb1U,EAAGwX,aAxWI,EAyWPxX,EAAGyX,WAAY,EACfvF,IAvWAzH,EAAGkc,SAAW,SAAUxqB,EAAAyqB,GAEpB,GAAGC,GAAA,GAAWC,QAAA,gBACXC,EAAAC,OAAYC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MACf,KAAGN,EAAQje,KAAAme,GA2WP,MAFA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,GArVfV,EAAAgU,OAAS,WACLhU,EAAG66B,MAAA,EAyWH76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAvWpBhT,EAAAwX,aAAS,EAyWLxX,EAAGyX,WAAY,GAGnBzX,EAAG0X,MAxWQ,WAyWP1X,EAAGgT,YAxWQ,EAyWXhT,EAAGkU,YACHlU,EAAGk2E,WAGPl2E,EAAG0R,OAxWK,WAyWJ,GAxWIiB,GAAOtY,EAAAsY,QAAiB,eAyWxB,yFAvWItb,WAAW,EAyWX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAvWhBuB,EAAAgT,YAAgB,EAyWhBhT,EAAGkU,YAvWHlU,EAAAk2E,aA6WRl2E,EAAGkU,UAAY,WACXlU,EAAG2jM,WAAWvvL,iBAGlBpU,EAAG4jM,mBAAqB,SAAU1tH,GAC9Bl2E,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EACfzX,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EAvWnB/S,EAAOgT,YAAA,EACHhT,EAAAk2E,OAAO9hF,QAAO8e,KAAAgjE,IA4WlBl2E,EAAGq2E,2BAA6B,SAAUH,GACtC,GAAIn1E,GAAM,yBAA4Bm1E,EAAO,SAAY,WAAa,UAAY,gBAE9EvjE,IADSujE,EAAO,SAAY,WAAa,UAAY,gCAC3C77E,EAAQsY,QAAQ,UAC1B5R,GACI1J,WAAW,EACX+F,KAAM,OArWtBuV,GAAAjT,OAAAjB,KAAA,WAyWYo3E,EAAsBQ,2BAA2BH,EAAOyjD,gBAAgBl7H,KAAK,SAAUC,GAChE,MAAfA,EAAIlI,QAxWxBuB,EAAA2I,YAAA,UAAA,yBAAA,mBACYwR,KA2WQna,EAAW2I,YAAY,QAAS,yBAC5BrJ,WAAW,EAxW1B+F,KAAgB,QAGlB,SAAauD,GACb5I,EAAY2I,YAAA,QAAA,kEACArJ,WAAA,EACZ+F,KAAmB,UAGnB,eA8WH4C,EAAGo2E,qBAzWkB,SAAAF,GA0WjB,GAAIvjE,GAAUtY,EAAQsY,QAAQ,UAxW/B,4CACAtb,WAAe,EACP+F,KAAA,MAGXuV,GAASjT,OAAOjB,KAAA,WACZo3E,EAAgBO,qBAA0BF,EAASyjD,gBAAmBl7H,KAAA,SAAAC,GAC/C,MAAXA,EAAAlI,QACDuB,EAAA2I,YAAmB,UAAA,uBAAA,oBACnBwR,KA2WCna,EAAW2I,YAAY,QAAS,0BAxWhCrJ,WAAK,EACF+F,KAAA,QA4WR,SAAUuD,GAxWZ5I,EAAA2I,YAAe,QAAA,8DACbrJ,WAAgB,EACnB+F,KAAW,UAGlB,eA6WD4C,EAAG6jM,mBAzWkB,SAAA3tH,GACbl2E,EAAI+S,WAeR8iE,EAAiBM,mBAAcD,GAAAz3E,KAAA,SAAAC,GACvBA,EAAMhJ,KAAAke,aAAW,EACb7b,EAAW2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,mBAGf9b,EAAe2I,YAAO,QAAAhC,EAAgBhJ,KAAMme,QAAK,mBA2WjD3B,IACAlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,GAChB,SAAUpS,GACT5I,EAAW2I,YAAY,+BAxWnBrJ,WAAO,EACP+F,KAAA,SA4WR4C,EAAG0X,UA9BHm+D,EAzWoBI,kBAAQC,GAAgBz3E,KAAA,SAAAC,GA0WpCA,EAAIhJ,KAAKke,aAAc,EACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBAGpD9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,mBAEtD3B,IACAlS,EAAGgT,YAAa,GACjB,SAAUrS,GACT5I,EAAW2I,YAAY,iCAvW5BV,EAAA0X,iIAwLXtjB,QACKC,OAAO,4BACPe,WAAW,qBAxWsBsuM,MAslB1C,WACI,YAOA,SAASI,GAAgBr5L,EAAO1S,EAAYyC,EAAQH,EAASN,EAAOU,EAAS87E,EAAmBp8E,EAAuB07E,EAAuBgU,GA4C1I,QAAS33E,KACLqkE,EAAkBE,oBAAoBh4E,KAAK,SAAUC,GAE9B,MAAfA,EAAIlI,QACJkI,EAAIhJ,KACJsK,EAAG+jM,yBAA2BvpM,EAAO++C,OAAO76C,EAAIhJ,KAAM,mCACtDmgF,EAAsBC,wBAAwBr3E,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAGgkM,mBAAqBtlM,EAAIhJ,KAC5BsK,EAAGsS,WAAY,GAGfva,EAAW2I,YAAY,QAAS,yBAA0B,iBAGlEV,EAAGsS,WAAY,GAIfva,EAAW2I,YAAY,QAAS,yBAA0B,gBAE/D,SAzWSC,GA0WR5I,EAzWQ2I,YAAW,QAAA,mBAAA,iBA6W3B,QAASujM,GAzWsBtqE,GA0W3BpjD,EAzWYC,gCAAqCmjD,GAAUl7H,KAAA,SAAAC,GAC/C,MAyWJA,EAzWIlI,QA0WJwJ,EAAGkkM,qBAzWoBxlM,EAAAhJ,KA0WvBsK,EAAGsS,WAzWC,GA4WJva,EAzWI2I,YAAa,QAAA,yBAAA,iBA+W7B,QAASyjM,GAzWG5lM,GA0WRsrF,EAzWkBE,oBAActrF,KAAA,SAAAC,GACZ,MAyWZA,EAAIlI,SACJwJ,EAAGixF,eAzWiBvyF,EAAAhJ,KA0WpBsK,EAAGsS,WAAY,EAEf/T,MAEL,SAAUoC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAM5D,QAASsT,KACLhU,EAAG66B,MAAO,EACV76B,EAAGgT,YAAa,EAxWjBhT,EAAAkkM,wBACClkM,EAAAokM,mBAAW,KACXpkM,EAAAwX,aAAA,EA0WAxX,EAAGyX,WAAY,EAGnB,QAASC,KACL1X,EAAGgT,YAAa,EAChBkB,IAxWXlU,EAAYqkM,cACTnyL,IA2WI,QAASR,KAzWb,GAAAiB,GAAAtY,EAAAsY,QAAA,eACY,yFACItb,WAAA,EA2WA+F,KAAM,MAvWduV,GAAKjT,OAAAjB,KAAA,WA2WDuB,EAAGgT,YAAa,EAzWrBkB,IACClU,EAAAqkM,cACDnyL,MAiXH,QA1WIgC,KA2WAlU,EAAGskM,eAAelwL,gBAvWtB,QAAGmwL,GAAcC,GACdxkM,EAAAwX,aAAA,EACCxX,EAAGyX,WAAA,EA2WHzX,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EAzWhB/S,EAAAgT,YAAa,EACbhT,EAAAqkM,WAAYjwM,QAAA8e,KAAAsxL,EAEZ,KAAA,GAAA3sL,KAAA7X,GAAAgkM,mBACAhkM,EAAAgkM,mBAA0BnsL,GAAA8hH,iBAAA6qE,EAAA7qE,iBAClB35H,EAAAqkM,WAAUI,yBAAAzkM,EAAAgkM,mBAAAnsL,GA+WjBssL,GAAkB,WAzWd,IAAA,GAAQtsL,KAAI7X,GAAAixF,eACNjxF,EAAAixF,eAAoBp5E,GAACozE,SAAMu5G,EAAiBv5G,SAC3CjrF,EAAA0kM,uBAAW1kM,EAAAixF,eAAAp5E,MAgX1B,QAASg/D,GAAiB2tH,GACtB,GAAI7xL,GAAUtY,EAAQsY,QAAQ,UAzWlC,4CAAgBtb,WAAA,EAAA+F,KAAA,MAEZuV,GAAAjT,OAAAjB,KAAA,WACI83E,EAAQM,iBAAgB2tH,EAAAhnE,YAAA/+H,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,QACAuB,EAAY2I,YAAA,UAAA,uBAAA,eACZujM,EAAAO,EAAA7qE,iBA4WCt/H,EAAQwH,MAAM,QAAS,4BAA8BxK,WAAW,EAAM+F,KAAM,UAGrF,cAKP,QA1WO25E,GAAYytH,GACf,GAAGzjM,GAAA,yBAAayjM,EAAA,SAAA,WAAA,UAAA,gBAEb7xL,IADA6xL,EAAc,SAAA,WAAA,UAAA,4BACdnqM,EAAYsY,QAAA,UA2WX5R,GAAO1J,WAAW,EAAM+F,KAAM,OAxWnCuV,GAAQjT,OAAAjB,KAAY,WAChB83E,EAAaQ,uBAAAytH,EAAAhnE,YAAA/+H,KAAA,SAAAC,GACb,MAAAA,EAAAlI,QACSuB,EAAA2I,YAAA,UAAA,yBAAA,eA2WAwR,KAxWJna,EAAY2I,YAAA,QAAA,qBAAArJ,WAAA,EAAA+F,KAAA,QAEhB,SAAAuD,GACI5I,EAAW2I,YAAA,QAAA,kEAAArJ,WAAA,EAAA+F,KAAA,UA4WhB,cAOP,QAASunM,GAAeH,GACpB,GAAItkM,GAAa/F,EAAsBgG,sBACvCqkM,GAAWv5G,OAASjrF,EAAG0kM,uBAAuBz5G,OAzW/Cu5G,EAAY7qE,eAAY35H,EAAAqkM,WAAAI,yBAAA9qE,eA4WlB35H,EAAG+S,WA1VJyxL,EAAK7wL,WAAAzT,EAAAG,OA2WLk2E,EA1WeK,eAAA4tH,GAAA/lM,KAAA,SAAAC,GACXA,EAAMhJ,KAAAke,aAAA,EA2WF7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,eAvW5D9b,EAAA2I,YAAsB,QAAAhC,EAAAhJ,KAA2Bme,QAAO,eA4WpDowL,EA1WetqE,gBA4Wf35H,EAAGgT,YA1WI,EA2WPhT,EAAG+S,WA1WY,EA2Wfb,KACD,SA1WSvR,GA2WR5I,EAAW2I,YAAY,+BAAiCrJ,WAAW,EAAM+F,KAAM,SAEnFsa,MA/BA8sL,EAAW1wL,UAAY5T,EAAWG,OAzWvCk2E,EAAqBI,cAAU6tH,GAAQ/lM,KAAA,SAAAC,GACnCA,EAAAhJ,KAAcke,aAAA,EACd7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,eAGZ9b,EAAa2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eA4WR3B,IACAlS,EAAGgT,YAAa,GACjB,SAAUrS,GAzWlB5I,EAAA2I,YAA6B,iCAExBgX,KAiYR,QAASs/D,KACLh3E,EA1WGsS,WAAY,CA2Wf,IAEI0T,IAFa7rB,EAAsBgG,wBAGnC8rC,YAAa,iBAIjBsqC,GA1WQS,iBAAWhxD,GAAAvnB,KAAA,SAAAC,GA2Wf,GA1WU,MAANA,EAAAlI,OAAM,CA2WNwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CAzWf,IAAA2D,GAAOnf,SAAKijB,cAAY,IAC5BjjB,UAAAC,KAAAijB,YAAsB/D,GAClBA,EAAAgE,MAAQ,eA2WR,IA1WIrc,GAAA,GAAWC,OAAAa,EAAAhJ,OACXqI,KAAA,oBAEAtJ,EAAAC,OAAWwlB,IAAAC,gBAAqBvc,EA4WpCnD,GA1WQ4E,KAAA5K,EAAM,UA2WdsD,EAAW2I,YAAY,UAAW,eAAgB,mBAClDwR,QAxWAna,GAAW2I,YAAY,QAAS,kBAAArJ,WAAA,EAAA+F,KAAA,OA2WhC4C,EAAGsS,WA1WY,GA6WpB,SAAU3R,GAzWV5I,EAAY2I,YAAA,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OA2WX4C,EAAGsS,WAAY,IAjRvB,GAAItS,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGkkM,wBAGHlkM,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGukM,YAAcA,EACjBvkM,EAAG62E,iBAAmBA,EACtB72E,EAAG2kM,eAAiBA,EACpB3kM,EAAGmkM,kBAAoBA,EACvBnkM,EAAG+2E,uBAAyBA,EAC5B/2E,EAAGikM,sBAAwBA,EAC3BjkM,EAAGg3E,iBAAmBA,EACtBh3E,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAEfvF,IACAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GAAQ,GAAIC,QAAO,gBACnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EAAMje,KAAKme,GAGZ,MAFA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,yKA7CnBtM,QACKC,OAAO,4BACPe,WAAW,iBAzWQ0uM,MAmoB5B,WACI,YAOA,SAASc,GA1WuB7qM,EAAAhC,EAAA0C,EAAAD,EAAAH,EAAAmpJ,EAAArtB,EA2W5BpkH,EA1WW5X,EAAe+7H,EAAAzrH,GAqZ1B,QAASyH,KACLsxI,EAA2BqhD,0BAA0B9qM,EAAOhC,GAAY0G,KAAK,SAAUC,GAzWjE,MA0WdA,EAAIlI,QACJwJ,EAAG8kM,wBAA0BpmM,EAAIhJ,KACjCsK,EAAGsS,WA1WS,GA4WZva,EA1WI2I,YAAA,QAAA,yBAAA,0BA4WT,SA1WSC,GA2WR5I,EA1WW2I,YAAY,QAAA,mBAAA,2BA6W3B8iJ,EA1WsBr9F,gBAAA1nD,KAAA,SAAAC,GACH,MAAXA,EAAAlI,SACAwJ,EAAGgwI,oBAAYtxI,EAAAhJ,KA2WfsK,EAAGsS,WAAY,KAIvBkxI,EAA2BuhD,YAAYtmM,KAAK,SAASC,GAC9B,MAAfA,EAAIlI,SACJwJ,EAAGglM,gBAAkBtmM,EAAIhJ,KACzBsK,EAAGsS,WAAY,KAI3B,QAASgnG,KA1Wbt5G,EAAAilM,wBACY,IAAAzqE,IACIkB,WAAA17H,EAAAklM,kBAAkBxpE,WA4WlBrlH,UAAWrW,EAAGowI,sBAAsB/5H,UAzW3C8/G,GAAuBwF,iBAAoBnB,GAAgB/7H,KAAS,SAAAC,GAChE,MAAAA,EAAAlI,QA4WOwJ,EAAGilM,sBAAwBvmM,EAAIhJ,KA1W5CsK,EAAAsS,WAAqB,GA6WRva,EAAW2I,YAAY,QAAS,yBAA0B,cAzWvE,SAAAC,GACI5I,EAAc2I,YAAA,QAAA,mBAAA,eAuYrB,QA3WQsT,KACJhU,EAAA+S,WAAW,EA4WX/S,EAAGgT,YA3WO,EA4WVhT,EAAG66B,MA3WC,EA4WJ76B,EAAGklM,kBA3WQ,KA4WXllM,EAAGglM,mBACHhlM,EAAGowI,sBAAsB,KACzBpwI,EAAGgwI,uBA1WPhwI,EAAAwX,aAAgB,EACZxX,EAAAyX,WAAA,EA8WJ,QAASC,KACL1X,EAAGgT,YA3WQ,EA4WXkB,IACAlU,EAAG+S,WA3WS,EA4WZ/S,EAAGmlM,uBACHjzL,IAEJ,QAASR,KACL,GAAIiB,GAAUtY,EA3WEsY,QAAW,eA4WvB,yFACItb,WAAW,EA1WX+F,KAAG,MA8WXuV,GAAQjT,OA3WGjB,KAAA,WA4WPuB,EAAGgT,YA3WY,EA4WfkB,IA1WDlU,EAAA+S,WAAe,EACd/S,EAAAmlM,uBA4WAjzL,MAOR,QAASgC,KACLlU,EAAGolM,wBAAwBhxL,gBAG/B,QAASixL,GAAwBF,GAC7BnlM,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EACfzX,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EA1WnB/S,EAAAgT,YAAS,EACLhT,EAAAmlM,oBAAyB/wM,QAAA8e,KAAAiyL,EA6WzB,KAAK,GA3WGjqM,KAAG8E,GAAA8V,YACH9V,EAAG8V,YAAY5a,GAAAmb,WAAA8uL,EAAAxyJ,QAAAt8B,YACfrW,EAAAmlM,oBAAa1uL,gBAAAzW,EAAA8V,YAAA5a,GA8WrB,KA3WG,GAAAiP,KAAUnK,GAAA43H,iBACT53H,EAAA43H,iBAAuBztH,GAAAuxH,aAASypE,EAAoBzpE,aA4WhD17H,EAAGmlM,oBAAoBG,yBAA2BtlM,EAAG43H,iBAAiBztH,IAMlF,QA3WOo7L,GAAOJ,GACV,GAAGxyL,GAAAtY,EAAasY,QAAA,UACb,4CAAuBtb,WAAA,EAAA+F,KAAA,MAE1BuV,GAAGjT,OAAAjB,KAAc,WACd+kJ,EAAY+hD,0BAAAJ,EAAArtE,uBAAAr5H,KAAA,SAAAC,GA4WY,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,yBA1WjE44G,EAAQt5G,EAAAklM,kBAAAxpE,WAAA17H,EAAAowI,sBAAA/5H,YAEbte,EAAA2I,YAAA,QAAA,sCAAArJ,WAAA,EAAA+F,KAAA,QAEA,SAAAuD,GA4WQ5I,EAAW2I,YAAY,QAAS,8EAAgFrJ,WAAW,EAAM+F,KAAM,UAzW/I,cAgXJ,QAASooM,GAAgCL,GA1WrC,GAAApkM,GAAQ,yBAAwBokM,EAAA,SAAA,WAAA,UAAA,gBAC5BxsL,GAAGwsL,EAAa,SAAA,WAAA,UAAA,sCAChBxyL,EAAAtY,EAAAsY,QAAA,UACA5R,GAAG1J,WAAa,EAAA+F,KAAA,MA6WpBuV,GAAQjT,OAAOjB,KAAK,WAChB+kJ,EAA2BgiD,gCAAgCL,EAAoBrtE,uBAAuBr5H,KAAK,SAAUC,GAC9F,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWiY,EAAM,yBACxCzG,KAzWPna,EAAY2I,YAAA,QAAA,wCAAArJ,WAAA,EAAA+F,KAAA,QA6WV,SAAUuD;AACT5I,EAAW2I,YAAY,QAAS,gFAAkFrJ,WAAW,EAAM+F,KAAM,UAzW9I,cAgXP,QA3WOqoM,GAA0BN,GAE7B,GAAAjlM,GAAiB/F,EAAoBgG,sBACjCglM,GAAOzpE,WAAsB17H,EAAAmlM,oBAAmBG,yBAA2B5pE,WA4W3EypE,EA3WkB9uL,UAAArW,EAAAmlM,oBAA8B1uL,gBAAmBJ,UA4WlErW,EAAG+S,WA1VRoyL,EAAoBxxL,WAAYzT,EAAAG,OAC5BmjJ,EAAkBkiD,wBAA4BP,GAAiB1mM,KAAU,SAAKC,GACtEA,EAAIhJ,KAAAke,aAAgB,GACpB7b,EAAW2I,YAAY,UAAWhC,EAAAhJ,KAAAme,QAAA,iCAClCylG,EAAsBt5G,EAAAklM,kBAAWxpE,WAAA17H,EAAAowI,sBAAA/5H,WA4WjCrW,EA3WGgT,YAAA,EACHhT,EAAA+S,WAAc,EA4Wd2E,MAzWT3f,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iCA4WH7T,EAAGgT,YAAa,IAGrB,SAAUrS,GA1WZ5I,EAAA2I,YAAuB,+BAAYrJ,WAAA,EAAA+F,KAAA,WA6UpC+nM,EAAoBrxL,UAAY5T,EAAWG,OAC3CmjJ,EAA2BmiD,uBAAuBR,GAAqB1mM,KAAK,SAAUC,GAC9EA,EAAIhJ,KAAKke,aAAc,GA1WnC7b,EAAkB2I,YAAY,UAAAhC,EAAAhJ,KAAAme,QAAA,iCACrB3B,IACGlS,EAAGgT,YAAA,EACH0E,MA6WA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iCAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GA1WZ5I,EAAA2I,YAAiB,kCAmYxB,QA3WEklM,KA4WA5lM,EAAGsS,WA3WC,CA4WJ,IAzWY0T,IAFI7rB,EAAgBgG,wBA8WpB8rC,YA3WG,iBA+WXu3G,GA3W2BoiD,4BAAS5/K,GAAAvnB,KAAA,SAAAC,GA4WhC,GAAmB,MAAfA,EAAIlI,OAAgB,CA1W7BwJ,EAAY8Z,cAAApb,EAAAhJ,KA4WHsK,EAAGsS,WAAY,CACf,IAAI2D,GAAInf,SAASijB,cAAc,IAC/BjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACrBqI,KAAM,oBAzWlBtJ,EAAaC,OAAAwlB,IAAAC,gBAAsBvc,EAE5BnD,GAAA4E,KAAA5K,EAAiB,UA4WhBsD,EAAW2I,YAAY,UAAW,eAAgB,mBA1WtDwR,QAEJna,GAAkB2I,YAAA,QAAc,kBAA2BrJ,WAAK,EAAA+F,KAAA,OACxD4C,EAAAsS,WAAS,GA8Wd,SA3WQ3R,GA4WP5I,EA3WI2I,YAAW,QAAY,iBAAkBrJ,WAAS,EAAA+F,KAAA,OA4WtD4C,EAAGsS,WAAY,IAhS3B,GAAItS,GAAKC,IAETD,GAAGqU,kBA1WQhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2WXrL,EAAGsU,SA1WQtU,EAAAqU,gBAAA,GA4WXrU,EAAGuU,YA1Wa,EA2WhBvU,EAAGwU,qBA1Wa,SAAWC,GA2WvBzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WA1WS,EA2WZ/S,EAAGsS,WA1WY,EA2WftS,EAAG8kM,2BACH/sM,EA1WW2c,SAAU,EA4WrB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGqlM,wBAA0BA,EAC7BrlM,EAAGulM,0BA1WQA,EA2WXvlM,EAAGwlM,gCAAkCA,EACrCxlM,EAAGylM,wBAA0BA,EAC7BzlM,EAAGs5G,uBAAyBA,EAC5Bt5G,EA1WE4lM,4BAASA,EA2WX5lM,EAAGwX,aA1WG,EA2WNxX,EAAGyX,WA1WI,EA8WPvF,IACAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GAAQ,GAAIC,QAAO,gBAzWnBC,EAAAC,OAAAC,aAAsB9qB,EAAA+qB,SAAmC/qB,EAAK+qB,SAAxC/qB,EAAwBgrB,MA2WlD,KAAKN,EA1WGje,KAAQme,GA6WZ,MAFA5qB,GAAMkB,iBACNtF,EA1WW2I,YAAY,OAAA,iCAAA,mBA2WhB,GA1Tfw1H,EAAeyB,sBAAA59H,EAAAhC,GAAA0G,KAAA,SAAAC,GACA,MAAZA,EAAAlI,QACHwJ,EAAW43H,iBAAUl5H,EAAAhJ,KAClBsK,EAAAsS,WAAA,GA6WKva,EAAW2I,YAAY,QAAS,yBAA0B,mBAzW/D,SAASC,GACT5I,EAAY2I,YAAA,QAAA,mBAAA,oBAIfqR,EAAG8D,mBAAoBpX,KAAA,SAAAC,GACpB,MAAAA,EAAAlI,QACAwJ,EAAA8V,YAAApX,EAAwBhJ,KACxBsK,EAAAsS,WAAmB,GAEnBva,EAAY2I,YAAA,QAAA,yBAAA,YAEf,SAAAC,GACA5I,EAAO2I,YAAW,QAAiB,mBAAS,8MAyPhDtM,QACKC,OAAO,+BACPe,WAAW,0BA1W2BwvM,MAqpB/C,WACI,YAOA,SAASiB,GA3WW9tM,EAAWyC,EAAYH,EAAaN,EAAK+rM,EAASj8G,EA4WlE25D,EAA4BrtB,EAA6BE,EAAsBl8H,EAAuB4rM,EAA0B3vE,EAChIF,EA3WYnkH,GA6DZ,QAAGqjI,KACA,GAAAn6I,IA6WKqiH,OAAQt9G,EAAGs7H,8BAA8BxD,sBA3W9Cla,kBAAc59G,EAAAq7H,iCAAAzd,kBACdK,WAAAj+G,EAAAy4H,sBAAsCxa,WAClCl/D,SAAA/+C,EAAc+wI,wBAAA1oH,KA8WjBroB,GAAGk+G,YA1WJkY,EAAYyF,kBAAA5gI,GAAAwD,KAAA,SAAAC,GACZ,GAAY,MAAZA,EAAYlI,OAAA,CACZwJ,EAAAk+G,SAAAx/G,EAA0BhJ,IAClB,KAAA,GAAUwF,KAAA8E,GAAAk+G,SAAA,CA6WLl+G,EAAGk+G,SAAShjH,GAAG8qM,eA3WnBhmM,EAAAk+G,SAAAhjH,GAAAm9H,QAAA17H,KAAAC,MAAAoD,EAAAk+G,SAAAhjH,GAAAm9H,QACA,KAAA,GAAAluH,KAAAnK,GAAAk+G,SAAAhjH,GAAAm9H,QAAAQ,QACG74H,EAAAk+G,SAAAhjH,GAAA8qM,YAAAnuM,KAAAmI,EAAAk+G,SAAAhjH,GAAAm9H,QAAAQ,QAAA1uH,GAAAgnF,MACZnxF,EAAAk+G,SAA0BhjH,GAAA+qM,QAAAjmM,EAAAk+G,SAAAhjH,GAAA8qM,YAAAtyK,KAAA,UAK1B37B,GAAA2I,YAA6B,QAAA,mCAAA,WAE7B,SAAYC,MAgBf,QAAS+2H,KACLxB,EAAAyB,sBAA2B59H,EAAAhC,GAAiC0G,KAAA,SAAYC,GACjD,MAAfA,EAAIlI,QACJwJ,EAAG43H,iBAAAl5H,EAAAhJ,KACHsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAmX5D,QAASk+H,KACD5+H,EAAGm7H,qBAAqBmqE,2BACxBtlM,EAAG8V,eA3WP9V,EAAAm7H,qBAA2B1kH,gBAAiB,KACxCzW,EAAAy7H,yBA6WAz7H,EAAGs7H,8BA5W0B,KA6W7Bt7H,EAAGi4H,4BACHj4H,EAAGq7H,iCAAmC,KACtCr7H,EAAGk4H,qBACHl4H,EAAGy4H,sBAAwB,KA3WnCz4H,EAAS+wI,wBAAyB,KAC3Bh/H,EAAA8D,mBAAuBpX,KAAA,SAAAC,GACD,MAAjBA,EAAAlI,QACAwJ,EAAA8V,YAAepX,EAAAhJ,KACfsK,EAAAsS,WAAc,GAElBva,EAAA2I,YAA4B,QAAA,yBAAsC,YA8W/D,SA5WQC,GA6WP5I,EA5WO2I,YAAY,QAAA,mBAAA,cAoD/B,QAASm3H,GAASC,EAAAv5H,GACVu5H,IACA93H,EAAAi4H,4BA6WAj4H,EAAGq7H,iCA5WY,KA6Wfr7H,EAAGk4H,qBACHl4H,EAAGy4H,sBAAwB,KAC3Bz4H,EAAG+wI,wBAA0B,KA3WjC5a,EAAgC0B,iDAAAC,GAAAr5H,KAAA,SAAAC,GACzBsB,EAAA69C,oBAAaloD,OAChBqK,EAAA69C,oBAAA,GACG79C,EAAAu4H,wBAAY5iI,OACZqK,EAAAu4H,wBAAsB,GACzB,MAAA75H,EAAAlI,SA6WQwJ,EAAGi4H,yBAA2Bv5H,EAAIhJ,KAC9BsK,EAAGi4H,yBAAyB98H,OAAS,GACrCd,EAAQ8C,OAAO,UAAW,0CAA4C6C,EAAGs7H,8BAA8ByX,yBAA2B17I,WAAW,EAAM+F,KAAM,OACzJ4C,EAAGw4H,mBAAoB,EACvBx4H,EAAGizB,UAAW,EACdjzB,EAAGy9F,MAAO,EA3WrBz9F,EAAYy4H,sBAAA,IA8WDz4H,EAAGw4H,mBAAoB,EA1WlCx4H,EAAAsS,WAAA,EACF/T,GACYA,QAoXnB,QAASm6H,GA5W4C9a,EAAer/G,GA6W5Dq/G,IACA59G,EAAGk4H,qBA3WPl4H,EAAKy4H,sBAAY,KACbz4H,EAAA+wI,wBAA2B,KA6W3B1a,EA5WOsC,yBAAoB/a,GAA8Bn/G,KAAA,SAAiBC,GA6WtEsB,EAAGu4H,wBAA0B5iI,OAC7BqK,EAAGu4H,wBAA0B,GACV,MAAf75H,EAAIlI,SACJwJ,EAAGk4H,kBAAoBx5H,EAAIhJ,KACvBsK,EAAGk4H,kBAAkB/8H,OAAS,GA3WzCd,EAAA8C,OAA0B,UAAA,mCAAqB6C,EAAA69C,oBAAAlsB,iBAAAt6B,WAAA,EAAA+F,KAAA,OACtC4C,EAAAizB,UAAgB,EAC1BjzB,EAAAy9F,MAAA,IAEWz9F,EAAAizB,UAAK,EAChBjzB,EAAAy9F,MAAA,GAEQz9F,EAAAsS,WAAW,EACX/T,GACGA,QAoXnB,QAAS6uI,KAEL,GAAInyI,IA3WRqiH,OAASt9G,EAAAs7H,8BAAgCxD,sBACjCla,kBAAM59G,EAAAq7H,iCAAgDzd,kBACtDK,WAASj+G,EAAAy4H,sBAAoBxa,WAC7B51F,KAAAroB,EAAA+wI,wBAA0B1oH,KA8W9B09K,GAAyB34D,mBAAmBnyI,GAAKwD,KAAK,SAAUC,GA3W5C,MAAZA,EAAAlI,QACJwJ,EAAAmiH,UAAA,EACQzjH,EAAIhJ,MACJsK,EAAAurI,gBAAWn3I,QAAY8e,KAAWxU,EAAAhJ,KAAMwwM,kBACxClmM,EAAAkmM,iBAAAxnM,EAAAhJ,KAAAwwM,iBA6WAlmM,EA5WGgtI,YAAAtuI,EAAAhJ,KAAAg3I,cACH1sI,EAAA/C,UAELyuI,MA8WK1rI,EAAG0sI,iBA3WZ1sI,EAAYmiH,UAAA,KA+WPpqH,EAAW2I,YAAY,QAAS,mCAAoC,UACpEV,EAAG0sI,iBA3WN1sI,EAAAmiH,UAAA,IAEL,SAAIxhH,GACA5I,EAAA2I,YAAoB,QAAA,iCAAoC,UACxDV,EAAA0sI,iBACA1sI,EAACmiH,UAAG,IAgXZ,QAAS+pB,GA5WOC,EAAWC,GA6WvBpsI,EAAGqrI,uBA5WS,EA6WZ7wI,EAAOqI,QA5WQspI,EAAAE,aAAa,SAAAD,GA6WxBA,EA5WQE,YAAA,IA8WZF,EAASE,YA5WG,EA6WZH,EAAUI,iBA5WkBH,EAAAI,aA6W5BC,IAGJ,QAASA,KAELjyI,EA5WOqI,QAAA7C,EAAA0sI,cAAA,SAAAP,GACHA,EAAAI,mBACAvsI,EAAA/C,OAAAkvI,EAAAQ,eAA2BR,EAAwBI,oBA+WvDvsI,EAAGkmM,iBA5WS1rM,EAAAyC,OAAuB+C,EAAGkmM,iBAAkBlmM,EAAA/C,QA6WxDyuI,IACAlxI,EAAOqI,QA5WQ7C,EAAA0sI,cAAY,SAAAP,GA6WvB3xI,EAAOqI,QA5WCspI,EAAAE,aAAA,SAAAD,GA6WAA,EA5WGI,eAAAxsI,EAAA/C,OAAAkvI,EAAAQ,eACHP,EAAAE,YAAW,EA8WXF,EAASE,YAAa,MAKtC,QAASlB,KACLprI,EAAG/C,UACH+C,EAAGqrI,uBAAwB,EAC3BrrI,EAAGkmM,iBAAmBlmM,EAAGurI,gBA3W3BG,IA+WF,QAASy6D,GAAgBrzL,GACrB9S,EAAGomM,aA5WShyM,QAAU8e,KAAAJ,GA6WtB9S,EAAG+S,WA5WS,EA6WZ/S,EAAGmiH,UAAW,EACdniH,EAAG26H,gBAAiB,EACpB36H,EAAGw4H,mBAAoB,EACvBx4H,EAAGizB,UA5WC,EA6WJjzB,EAAGo7H,YA5WSxpG,iBAAoBx9B,QAAA8e,KAAAJ,EAAA8e,kBA6WhC5xB,EAAGo7H,YA5WYuQ,gBAAgBv3I,QAAI8e,KAAAJ,EAAA64H,iBA6WnC3rI,EAAGo7H,YA5WYnwC,OAAA72F,QAAY8e,KAAAJ,EAAAm4E,OA8W3B,IAAIhuD,GAAMj9B,EA5WEo7H,YAASnwC,OA6WjBo7G,IACJrmM,GAAG0kM,0BACH2B,EAAYppK,EA5WIjiC,MAAM,IA8WtB,KAAK,GAAI6c,KAAK7X,GA5WEixF,eA6WZ,IAAK,GAAIo9E,KAAKg4B,GA3WNrmM,EAAAixF,eAAkBp5E,GAAAozE,SAAArkF,SAAAy/L,EAAAh4B,KAClBruK,EAAA0kM,uBAAuB7sM,KAAAmI,EAAWixF,eAAAp5E,IAoXlD,QAASyuL,GA5WclrE,GA6WnB,GAAIzoH,GA5WOtY,EAAAsY,QAAY,UA6WnB,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GAAQjT,OAAOjB,KAAK,WAChB23H,EAAmBmwE,WAAWnrE,EAAYriH,IAAIta,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,QA3WfuB,EAAA2I,YAAA,UAAA,uBAAA,gBACT00I,KA8WoBr9I,EAAW2I,YAAY,QAAS,6BAA+BrJ,WAAW,EAAM+F,KAAM,UAI/F,SAAUuD,GACT5I,EAAW2I,YAAY,iCA3W/BgX,IAgXA,QAAS8uL,KA5WN,GAAAC,GAAmBzmM,EAAEs7H,8BAA+ByX,wBAAmB,OACvE/yI,EAAAq7H,iCAA8B1pG,gBAAA,OA8WzB3xB,EAAGy4H,sBAAsBiuE,aAAe,IA3W7C/jM,EAAAnI,EAAAmI,KAAuB3C,EAAA/C,QACnB67C,EAAA,EA8WH,KAAK,GAAI59C,KAAKyH,GACVm2C,GAAQ,KAAOlyC,SAAS1L,GAAK,GAAK,KAAOyH,EAAKzH,GAAK,MAAQ8E,EAAG/C,OAAO0F,EAAKzH,IAAM,GA3WrFurM,IAAO,KAAA3tJ,EACP94C,EAAAo7H,YAAYuQ,gBAAA86D,EAgXf,QAAS/6D,KA5WN,GAAAqB,KACA,KAAA,GAAA92H,KAAcjW,GAAAgtI,YAAA,CACd,GAASl0F,IAAA6zF,cAAA3sI,EAAAgtI,YAAA/2H,GAAAo2H,gBACT,KAAA,GAAcx0H,KAAA7X,GAAAkmM,iBAAA,CACd,GAAAt9L,GAAApO,EAAuBihG,KAAA3iD,EAAAuzF,cAAAG,aAAAxsI,EAAAkmM,iBAAAruL,GAAAihC,EAAA6zF,gBACvB,KAAA/jI,EAAA,CA8Wa,GAAIskI,IACAV,aAAcxsI,EAAGkmM,iBAAiBruL,GAAGihC,EAAK6zF,eA5WlDL,YAAA,EAETxzF,GAAAuzF,aAAAx0I,KAAAq1I,IAGAH,EAAAl1I,KAAiBihD,GAEjB94C,EAAA0sI,cAAAK,EAyXH,QAASf,KACL,GAAImB,KACJ,KAAK,GAAIhB,KAAansI,GAAG0sI,cACjB1sI,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGC,WAC5Ca,EAAYntI,EAAG0sI,cAAcP,GAAWQ,eAAiB3sI,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGG,aAErGW,EAAYntI,EAAG0sI,cAAcP,GAAWQ,eAAiB,EAGjE,OAAOQ,GAGX,QAASrB,KACL,GAAItxI,EAAOmI,KAAK3C,EAAG/C,QAAQ9B,OAAS,EAAG,CACnC,GAAIF,IACAqiH,OAAUt9G,EAAGs7H,8BAA8BxD,sBA5WpDla,kBAAyB59G,EAAAq7H,iCAAsCzd,kBA8WtDK,WAAcj+G,EAAGy4H,sBAAsBxa,WA5W1Cl/D,SAAW/+C,EAAA+wI,wBAAA1oH,KACZ0jH,WAAMpvI,KAAAqkB,UAAAgrH,KAEN5V,GAAmB0V,sBAAG7wI,GAAAwD,KAAA,SAAiCC,GACxC,KAAfA,EAAYlI,OACCkI,EAAAhJ,KAKLqC,EAAW2I,YAAK,QAAA,sDAyWZV,EAAGgT,YAAa,EA5WlBhT,EAAAqrI,uBAAA,EA8WEm7D,MAxWJxmM,EAAGgT,YAAY,EACfhT,EAAGqrI,uBAAsB,IA+W9B,SA7WS1qI,UAiXZ5I,GAAW2I,YAAY,UAAW,qDAO1C,QAASgX,KACL1X,EAAGgT,YAAa,EA5WjBhT,EAAAkU,YACClU,EAAGo7H,eAgXP,QA7WO1pH,KACH,GAAGiB,GAAAtY,EAAAsY,QAAA,eACA,yFA8WKtb,WAAW,EACX+F,KAAM,MA1WlBuV,GAASjT,OAAUjB,KAAA,WACfuB,EAAAgT,YAAoB,EAChBhT,EAAAkU,YA8WAlU,EAAGo7H,iBAcX,QA7WQurE,KA+WJ,GA7WIC,GAAG5mM,EAAA0kM,uBACH5hL,IA8WJ,KA7WI,GAAG5nB,KAAA0rM,GACAjxM,QAAAixM,EAAA1rM,GAAA+vF,QACAnoE,EAAAjrB,KAAA+uM,EAAA1rM,GAAA+vF,OAgXP,IA7WI9nE,GAAGxmB,KAAAqkB,UAAA8B,GACH+jL,EAAA1jL,EAAeG,UAAA,EAAAH,EAAwBhoB,OAAU,EAiXrD,IAAK6E,EAAG+S,UA4BD,CACH,GAAI9X,IACA22B,iBA7WW5xB,EAAAo7H,YAAAxpG,iBA8WX+5G,gBA7WW3rI,EAAAo7H,YAAiBuQ,gBA8W5B1gD,OA7WQ47G,EA8WR9tL,GAAI/Y,EAAGomM,aA7WIrtL,GA8WXpF,WA7WWzT,EAAOG,OA+WtB+1H,GA7We0wE,kBAAA7rM,GAAAwD,KAAgC,SAAAC,GAChC,MA6WPA,EA7WIlI,OA8WJuB,EA7WI2I,YAAe,UAAW,uBAAyB,eA+WvD3I,EAAW2I,YAAY,QAAS,iBAAkB,eAEtD00I,IACAp1I,EAAGgT,YA7WY,GA8WhB,SAAUrS,GA5WV5I,EAAU2I,YAAK,iCA+WlBgX,QA5ZW,CA8WX,GAAIqvL,IACAzpF,OAAQt9G,EAAGs7H,8BAA8BxD,sBA5W1Cla,kBAAe59G,EAAAq7H,iCAAAzd,kBACdK,WAAWj+G,EAAAy4H,sBAAqBxa,WA8WhChzB,OAAQ47G,EACR96D,WAAYpvI,KAAKqkB,UAAUgrH,KAC3Bp6G,iBAAkB5xB,EAAGo7H,YAAYxpG,iBACjC+5G,gBAAiB3rI,EAAGo7H,YAAYuQ,gBAChC5sF,SAAU/+C,EAAG+wI,wBAAwB1oH,KACrCvU,UAAW5T,EAAWG,OA3W/B+1H,GAAA4wE,eAAqCD,GAAAtoM,KAAA,SAAAC,GAC7BA,EAAAhJ,KAAAke,aAAqB,EACrB7b,EAAA2I,YAAwB,UAAAhC,EAAAhJ,KAAAme,QAAA,eAGxB9b,EAAA2I,YAAA,QAAmChC,EAAAhJ,KAAAme,QAAA,eAEnCuhI,IACAp1I,EAAAgT,YAAA,GACH,SAAIrS,GACA5I,EAAA2I,YAAe,iCA+WnBV,EAAGk+G,YA5WHl+G,EAAAgmM,eA8WAtuL,KA3gBR,GAAI1X,GAAKC,IAETD,GAAGqU,kBA3WYhJ,MAAY,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA4W3BrL,EAAGsU,SA3WStU,EAAAqU,gBAAA,GA6WZrU,EAAGuU,YA3WS,EA4WZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YA3WCE,GA8WRzU,EAAGgT,YAAa,EAChBhT,EAAGq7I,MAAO,EA1WVr7I,EAAAsS,WAAS,EA4WTva,EA3WO2c,SAAY,EA8WnB1U,EAAGqsI,gBACHrsI,EAAGgmM,eACHhmM,EAAG/C,UACH+C,EAAGo7H,eACHp7H,EAAGm7H,wBACHn7H,EAAGqrI,uBA3WmB,EA8WtBrrI,EAAG0R,OA3WSA,EA4WZ1R,EAAGsmM,kBA3WiBA,EA4WpBtmM,EAAG63H,iDA3WmCA,EA4WtC73H,EAAG04H,6CA3WmBA,EA4WtB14H,EAAGotI,mBA3WoBA,EA4WvBptI,EAAGksI,eA3WaA,EA4WhBlsI,EAAGorI,YAAcA,EACjBprI,EAAG8rI,sBA3WmBA,EA4WtB9rI,EAAG2mM,gBAAkBA,EACrB3mM,EAAGo1I,SA3WSA,EA4WZp1I,EAAG4+H,YA3WSA,EA4WZ5+H,EAAGmmM,gBA3WSA,EA4WZnmM,EAAG26H,gBA3WY,EA4Wf36H,EAAGw4H,mBA3WoB,CA4WvB,IAAIt4H,GA3WW/F,EAAYgG,sBA4W3BH,GAAGizB,UAAW,EACdjzB,EAAGy9F,MAAO,EAEVi6B,IA3VA13H,EAAA+5H,sBAASC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,MA+BTroB,EAAAk7H,IAAO,WA6WHl7H,EAAGm7H,qBAAqB1kH,gBAAkB,GA3W1CzW,EAAAo7H,YAAYC,iCAAW,GACvBr7H,EAAAo7H,YAAUE,8BAA2B,GACrCt7H,EAAAo7H,YAAW3C,sBAAW,GA6WtBz4H,EAAGs5G,yBACHt5G,EAAGy9F,MA5WC,GA4ZRz9F,EAAGs5G,uBAAyB,WACxB,GAAIt5G,EAAGm7H,qBAAqB1kH,gBAAiB,CA3WjDzW,EAAAy7H,yBACQz7H,EAAAs7H,8BAAoB,KACpBt7H,EAAGi4H,4BACHj4H,EAAGq7H,iCAAY,KA6Wfr7H,EA5WGk4H,qBACHl4H,EAAAy4H,sBAAuB,KA6WvBz4H,EAAG+wI,wBAA0B,IA3WlC,IAAAvW,IACCkB,WAAW17H,EAAYm7H,qBAASmqE,yBAAoB5pE,WA6W5CrlH,UAAWrW,EAAGm7H,qBAAqB1kH,gBAAgBJ,UAEvD8/G,GAA4BwF,iBAAiBnB,GAAgB/7H,KAAK,SAAUC,GA3WrE,MAAAA,EAAAlI,QACHwJ,EAAAy7H,sBAAgB/8H,EAAAhJ,KACjBgJ,EAAAhJ,KAAkByF,OAAA,EAClB6E,EAAY26H,gBAAA,GAEJ36H,EAAA26H,gBAAqB,EA6WpB36H,EAAGw4H,mBAAoB,EA3WzBx4H,EAAAizB,UAAA,EACHjzB,EAAAy9F,MAAY,EA6WPz9F,EAAGq7H,iCAAmC,GACtCr7H,EAAGs7H,8BAAgC,GA3WrCt7H,EAAAy4H,sBAAA,GACCp+H,EAAA8C,OAAA,UAAA,uBAAA9F,WAAA,EAAA+F,KAAA,QAGZ4C,EAAAsS,WAAkB,GAElBva,EAAA2I,YAAsB,QAAA,yBAAA,uBAEtB,SAAcC,GACd5I,EAAY2I,YAAA,QAAA,mBAAA,4BAGnBV,GAAS26H,gBAAQ,EACV36H,EAAAw4H,mBAAa,EAChBx4H,EAAAizB,UAAA,GAuNJ42D,EAAiBE,oBAAAtrF,KAAA,SAAAC,GACI,MAAlBA,EAAAlI,SACAwJ,EAAAixF,eAAiBvyF,EAAAhJ,KACjBsK,EAAAsS,WAAoB,IAEpB,SAAA3R,GACA5I,EAAO2I,YAAA,QAAA,mBAAA,mBAmbVV,EAAGkU,UA7WK,WA8WJk3H,IACAprI,EAAGmiH,UAAW,EACdniH,EAAG+S,WAAY,EACf/S,EAAGinM,gBAAgB7yL,6TAve3BhgB,QACKC,OAAO,+BACPe,WAAW,sBA3WeywM,MAy5BnC,WACI,YAOA,SAASqB,GA7WGntM,EAAAhC,EAA4ByC,EAAAH,EAAA67H,EAAA/7H,GAyYpC,QA7WQ+X,KA8WJgkH,EA7WOixE,mBAAwBptM,EAAAhC,GAAA0G,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QACHwJ,EAAA43H,iBAAqBl5H,EAAAhJ,KACjBsK,EAAGsS,WAAA,GAEHva,EAAQ2I,YAAW,QAAK,yBAAA,kBA+W7B,SA7WSC,GA8WR5I,EAAW2I,YA7WS,QAAO,mBAAW,mBAiX9C,QAASsT,KACLhU,EAAGgT,YA7Wa,EA8WhBhT,EAAGwX,aAAc,EACjBxX,EAAGyX,WA7WY,EAgXnB,QAASC,KACL1X,EAAGgT,YAAa,EAChBkB,IACAlU,EAAGonM,gBAEP,QAAS11L,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eA5WlC,yFA8WYtb,WAAW,EA5Wf+F,KAAM,MAgXVuV,GA7WIjT,OAAAjB,KAAe,WACfuB,EAAAgT,YAAS,EA8WTkB,IA5WJlU,EAAAonM,kBAoXJ,QAASlzL,KACLlU,EAAGqnM,iBAAiBjzL,gBAGxB,QAASkzL,GA7WUF,GA8WfpnM,EAAGwX,aA7WY,EA8WfxX,EAAGyX,WAAa,EAChBzX,EAAG+S,WA7WQ,EA8WX/S,EAAGgT,YA7WK,EA8WRhT,EAAGonM,aA7WQhzM,QAAA8e,KAAgBk0L,GAgX/B,QA7WOG,GAAeH,GA8WlB,GA7WIrmM,GAAA,yBAAgCqmM,EAAA,SAAA,WAAkC,UAAA,gBAClEzuL,GAAGyuL,EAAgB,SAAA,WAAA,UAAA,8BACnBz0L,EAAGtY,EAAWsY,QAAA,UAAA5R,GAAA1J,WAAA,EAAA+F,KAAA,MA+WlBuV,GAAQjT,OAAOjB,KAAK,WAChBy3H,EAAoBqxE,yBAAyBH,EAAa1rE,YAAYj9H,KAAK,SAASC,GA5WpE,MAAfA,EAAAlI,QACFuB,EAAA2I,YAAwB,UAAAiY,EAAA,iBACpBzG,KA+WKna,EAAW2I,YAAY,QAAS,8BAAgCrJ,WAAW,EAAM+F,KAAM,QA3WnG,SAAUuD,GACV5I,EAAA2I,YAAA,QAAA,qEAAArJ,WAAA,EAAA+F,KAAA,UA+WG,cAKP,QAASoqM,GA7WaJ,GA8WlB,GAAIz0L,GAAUtY,EAAQsY,QAAQ,UAAW,4CACrCtb,WAAW,EA5WZ+F,KAAA,MAgXHuV,GA7WIjT,OAAOjB,KAAQ,WA8Wfy3H,EA7WiBsxE,mBAAoBJ,EAAO1rE,YAAUj9H,KAAA,SAAAC,GACrC,MAATA,EAAAlI,QA8WAuB,EAAW2I,YAAY,UAAW,mCAAoC,iBA5WtEwR,KA+WAna,EAAW2I,YAAY,QAAS,8BAC5BrJ,WAAW,EACX+F,KAAM,QA1WnB,SAAAuD,GACA5I,EAAA2I,YAAsB,QAAA,sEACzBrJ,WAAA,EA8WY+F,KAAM,UA1Wf,cAkXP,QA7WOqqM,GAAWL,GACd,GAAGlnM,GAAY/F,EAAmBgG,sBAC/BH,GAAA+S,WA+XCq0L,EAAazzL,WAAazT,EAAWG,OA5W7C61H,EAA2BwxE,iBAAaN,GAAA3oM,KAAA,SAAAC,GAChCA,EAAUhJ,KAAAke,aAAgB,GAC1B7b,EAAA2I,YAAA,UAAAhC,EAA8ChJ,KAAAme,QAAW,iBA8WjD3B,IA5WJlS,EAAOgT,YAAK,EAChBhT,EAAA+S,WAAmB,EACX2E,MAEA3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iBA8WA7T,EA7WGgT,YAAA,IAgXR,SAASrS,GACR5I,EAAW2I,YAAY,mCA5Y5B0mM,EAAYtzL,UAAS5T,EAAaG,OA8WjC61H,EAAoByxE,gBAAgBP,GAAc3oM,KAAK,SAASC,GA5W1DA,EAAGhJ,KAAAke,aAAY,GACrB7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACb3B,IACSlS,EAAAgT,YAAU,EA8WV0E,MA3WH3f,EAAS2I,YAAW,QAAAhC,EAAAhJ,KAAAme,QAAA,iBACjB7T,EAAGgT,YAAA,IAgXR,SAASrS,GACR5I,EAAW2I,YAAY,kCAjJnC,GAAIV,GAAKC,IAERD,GAAGqU,kBA7WWhJ,MAAA,IAAAA,MAA0B,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA8WxCrL,EAAGsU,SA7WWtU,EAAAqU,gBAAA,GA+WdrU,EAAGuU,YA7WY,EA8WfvU,EAAGwU,qBA7WmB,SAAAC,GA8WpBzU,EAAGuU,YA7WcE,GAgXpBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAG43H,oBACH7/H,EAAW2c,SAAU,EAErB1U,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGsnM,iBAAmBA,EACtBtnM,EAAGunM,yBAA2BA,EAC9BvnM,EAAGynM,iBAAmBA,EACtBznM,EAAGwnM,mBAAmBA,EACtBxnM,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAa,EA5WhBvF,sGA8UJ9d,QACKC,OA7WO,+BA8WPe,WA7WU,mBAAoB8xM,MA2hBvC,WACI,YAOA,SAASU,GA7WkBn9L,EAAS1S,EAAUyC,EAAYH,EAAKN,EAAWo8H,EAAkBh8H,EA8WxFqpJ,EAA4BsiD,EAA2BzvE,EACvDH,EA7WmBnkH,GA8anB,QAASG,KACLlS,EAAG+5H,sBA7WmBC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,KA8WtB,IAEIw/K,EACJrkD,GA7W2ByK,6BAAW45C,GAAAppM,KAAA,SAAAC,GA8WX,MAAfA,EAAIlI,SACJwJ,EAAG8nM,yBAA2BppM,EAAIhJ,KAClCsK,EAAGsS,WAAY,IAzW/B,SAAiB3R,GACV5I,EAAa2I,YAAA,QAAA,mBAAA,uBA6XpB,QAASg3H,KACLxB,EAAoByB,sBAAsB59H,EAAOhC,GAAY0G,KAAK,SAASC,GACpD,MAAfA,EAAIlI,QACJwJ,EAAG43H,iBAAmBl5H,EAAIhJ,KAC1BsK,EAAGsS,WAAY,GA3WvBva,EAAA2I,YAAA,QAAA,yBAAA,mBAEG,SAAAC,GACA5I,EAAA2I,YAAgB,QAAA,mBAAA,oBAmXvB,QA7WQk+H,KACJ7sH,EAAe8D,mBAAApX,KAAA,SAAAC,GACI,MAAdA,EAAIlI,QACDwJ,EAAA8V,YAAiBpX,EAAAhJ,KACjBsK,EAAAsS,WAAc,GA+Wdva,EAAW2I,YAAY,QAAS,yBAA0B,YA3WlE,SAAIC,GA8WA5I,EAAW2I,YAAY,QAAS,mBAAoB,aAM5D,QAAS44G,KACL,GA7W6C,MA6WzCt5G,EAAG+nM,mBA7WgBtxL,iBAAsB9gB,QAAAqK,EAAA+nM,mBAAAtxL,iBAAA,IAAAzW,EAAA+nM,mBAAAtxL,gBAAA,CA8WzC,GA7WI+jH,IACAkB,WAAY17H,EAAA+nM,mBAAezC,yBAAA5pE,WAC3BrlH,UAAArW,EAAA+nM,mBAAiCtxL,gBAAAJ,UA+WrC8/G,GA7WiBwF,iBAAwBnB,GAAA/7H,KAAA,SAAAC,GAC1B,MAAXA,EAAAlI,QA8WIwJ,EAAGy7H,sBAAwB/8H,EAAIhJ,KA5WvCgJ,EAAAhJ,KAAmByF,OAAA,EACP6E,EAAA26H,gBAAmB,GA+WnB36H,EAAG26H,gBAAiB,EA5WrB36H,EAAAw4H,mBAAA,EACHx4H,EAAAizB,UAAW,EA8WPjzB,EAAG+nM,mBAAmB1sE,iCAAmC,GA5WjEr7H,EAAA+nM,mBAAAtvE,sBAAA,GACGz4H,EAAA+nM,mBAAatvE,sBAAA9iI,OAEhB0E,EAAW8C,OAAY,UAAA,uBAAA9F,WAAA,EAAA+F,KAAA,QAGxB4C,EAAAsS,WAAc,GA+WTva,EAAW2I,YAAY,QAAS,yBAA0B,uBA3WlE,SAAUC,GACN5I,EAAA2I,YAAqB,QAAA,mBAAY,4BAgXrCV,GAAG26H,gBA7WQ,EA8WX36H,EAAGw4H,mBA7Wa,EA8WhBx4H,EAAGizB,UAAW,EAjV1B,QAAS4kG,GAAqDC,EAAqBv5H,GAC3E43H,EAAK0B,iDAAAC,GAAAr5H,KAAA,SAAAC,GA+WDsB,EAAG+nM,mBAAmB1sE,iCAAmC1lI,OA7W7DqK,EAAA+nM,mBAAoB1sE,iCAAsC,GAC1Dr7H,EAAA+nM,mBAActvE,sBAAgB9iI,OA+W1BqK,EAAG+nM,mBAAmBtvE,sBAAwB,GA7WpC,MAAd/5H,EAAAlI,SACAwJ,EAAAi4H,yBAAqCv5H,EAAAhJ,KACnCsK,EAAAi4H,yBAAc98H,OAAA,GA+WJd,EAAQ8C,OAAO,UAAW,wCAA0C6C,EAAG+nM,mBAAmBzsE,8BAA8ByX,yBAA2B17I,WAAW,EAAM+F,KAAM,OAC1K4C,EAAGw4H,mBAAoB,EA7WvBx4H,EAAAizB,UAAA,GAEDjzB,EAAAw4H,mBAAA,EAiXHx4H,EAAGsS,WAAY,EA7Wf/T,GACAA,OAMZ,QAAGm6H,GAAc9a,EAAAr/G,GACd83H,EAAasC,yBAAA/a,GAAAn/G,KAAA,SAAAC,GAChBsB,EAAA+nM,mBAAAtvE,sBAAA9iI,OA+WQqK,EAAG+nM,mBAAmBtvE,sBAAwB,GA7WtC,MAAP/5H,EAAOlI,SACZwJ,EAAAk4H,kBAAoBx5H,EAAAhJ,KACRsK,EAAAk4H,kBAAgB/8H,OAAA,GACjBd,EAAA8C,OAAA,UAAuB,+BAAA6C,EAAA+nM,mBAAA1sE,iCAAA2sE,0BAAA3wM,WAAA,EAAA+F,KAAA,OACvB4C,EAAAizB,UAAY,GAEfjzB,EAAAizB,UAAW,EAGfjzB,EAAAsS,WAAW,EAgXH/T,GACAA,OAMhB,QAASyyI,KA5WL,GAAG/1I,IACHqiH,OAAAt9G,EAAA+nM,mBAAAzsE,8BAAAxD,sBACGla,kBAAe59G,EAAA+nM,mBAAA1sE,iCAAAzd,kBA+WdK,WAAYj+G,EAAG+nM,mBAAmBtvE,sBAAsBxa,WA7WhE51F,KAASroB,EAAA+nM,mBAASh3D,wBAAA1oH,KAgXdy9K,GA9WImC,yBAAAhtM,GAAAwD,KAAA,SAAAC,GACe,MAAXA,EAAAlI,SACAwJ,EAAAkoM,uBAAMxpM,EAAAhJ,KAAAw7I,UA+WFlxI,EAAGkoM,uBAAuB/sM,OAAS,GACnCd,EAAQ8C,OAAO,UAAW,8BAAgC6C,EAAG+nM,mBAAmBtvE,sBAAsB0vE,mBAAqB9wM,WAAW,EAAM+F,KAAM,OA5WvJ4C,EAAAsS,WAAa,KAoXxB,QAAS0B,KACLhU,EAAGmiH,UAAW,EAKlB,QAASzwG,KA7WT1R,EAAAmiH,UAAS,EACLniH,EAAG+S,WAAA,EACH/S,EAAG+nM,mBAAap7D,cAAA,GAChBz4H,IAkXJ,QAASwD,KA7WT1X,EAAA+nM,mBAAS,KAKL/nM,EAAAm7H,wBAiXJ,QAASjnH,KACLlU,EAAGooM,uBA9WSh0L,gBAiXhB,QAASi0L,GAAuBN,GAE5B/nM,EAAG+S,WA9WK,EA+WR/S,EAAGgT,YAAa,EAChBhT,EA9WG+nM,mBAAWp7D,cAAA3sI,EAAAqxI,iBAAA02D,EAAA52G,KAKlB,QAASm3G,GAAmBP,GAgXxBA,EA9WezqF,OAAAt9G,EAAA+nM,mBAAAzsE,8BAAAxD,sBA+WfiwE,EA9WUnqF,kBAAA59G,EAAA+nM,mBAAA1sE,iCAAAzd,kBA+WVmqF,EAAmB9pF,WAAaj+G,EAAG+nM,mBAAmBtvE,sBAAsBxa,WAC5E8pF,EAAmBp7D,cAAgBo7D,EAAmB52G,IA7WtD,IAAAx+E,GAAQtY,EAAYsY,QAAA,UAChB,4CACItb,WAAQ,EA+WR+F,KA9WI,MAiXZuV,GAAQjT,OA9WIjB,KAAA,WA+WRqnM,EA9WuByC,yBAAAR,GAAAtpM,KAAA,SAAAC,GACL,MA8WVA,EA9WIlI,QA+WJuB,EAAW2I,YAAY,UAAW,gCAAiC,aA5WxEswI,KAGKj5I,EAAM2I,YAAA,QAAA,0BA+WFrJ,WAAW,EACX+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,kEAC5BrJ,WAAW,EA7WlB+F,KAAA,UAiXF,cAKP,QAASorM,GA9WuBT,GA+W5B,GAAI7nM,GA9WQ/F,EAAAgG,sBAuXZ,IARA4nM,EA9WezqF,OAAAt9G,EAAA+nM,mBAAAzsE,8BAAAxD,sBA+WfiwE,EA9WYnqF,kBAAuB59G,EAAA+nM,mBAAkB1sE,iCAASzd,kBA+W9DmqF,EA9We9pF,WAAaj+G,EAAA+nM,mBAAAtvE,sBAAAxa,WA+W5B8pF,EAAmB12D,iBAAmBrxI,EAAGqxI,iBACzC02D,EAAmBv2D,iBAAmBxxI,EAAG+nM,mBAAmBp7D,cAC5Do7D,EA9WgBp7D,cAAK3sI,EAAA+nM,mBAAAp7D,cAiXhB3sI,EAAG+S,UAnVJg1L,EAAAp0L,WAAAzT,EAAAG,OACP0nM,EAAW1/K,KAAAroB,EAAA+nM,mBAA0Bh3D,wBAAA1oH,KAgX9By9K,EAA0B2C,uBAAuBV,GAAoBtpM,KAAK,SAASC,GAC3EA,EAAIhJ,KAAKke,aAAc,EA9WlC7b,EAAA2I,YAA+B,UAAYhC,EAAAhJ,KAAQme,QAAS,oBAGxD9b,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,oBAGNm9H,IAgXShxI,EAAGmiH,UAAW,EA9WvBniH,EAAA+nM,mBAAcp7D,cAAA,GACd3sI,EAAA+S,WAAuB,GACrB,SAAcpS,GAgXP5I,EAAW2I,YAAY,QAAS,qCA3CrB,CA5Wf,GAAAzF,IACAqiH,OAAAt9G,EAAA+nM,mBAAoBzsE,8BAAoCxD,sBACpDla,kBAAa59G,EAAA+nM,mBAAoB1sE,iCAAAzd,kBA+WjCK,WA9WIj+G,EAAW+nM,mBAAYtvE,sBAA6Bxa,WA+WxD0uB,cA9WI3sI,EAAA+nM,mBAAAp7D,cA+WJtkH,KA9WIroB,EAAG+nM,mBAAah3D,wBAAA1oH,KA+WpBvU,UA9WO5T,EAAYG,OAiXvBylM,GA9WmB4C,sBAAyBztM,GAAKwD,KAAS,SAAAC,GAClDA,EAAGhJ,KAAAke,aAAa,EA+WhB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,oBA3WxD9b,EAAW2I,YAAY,QAAAhC,EAAAhJ,KAAAme,QAAA,oBAgXvBm9H,IAEAA,IACAhxI,EAAG+nM,mBAAmBp7D,cAAgB,GACtC3sI,EAAGmiH,UAAW,GA7WtB,SAAAxhH,GACR5I,EAAA2I,YAAA,QAAA,kCAUI,GA7WIV,GAAGC,IA+WPD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MA5W3FrL,EAAAsU,SAAStU,EAAAqU,gBAAkB,GA+W3BrU,EAAGuU,YA7WU,EA8WbvU,EAAGwU,qBA7WkB,SAAAC,GA8WnBzU,EAAGuU,YA7WYE,GAgXjBhK,EAAOknI,QA7WS,SAAIx1I,EAAUyqB,GA+W1B,GAAIC,GAAQ,GA7WIC,QAAA,mBA8WZC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EAAMje,KA7WCme,GAGR,MA2WA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,QAAS,kCAAmC,cA5WnE,GAKR+J,EAAAmnI,aAAA,SAAyBz1I,GA+WrB,GA5WI0qB,IADGnyB,OAAiByH,MAAI01I,cAAAz1G,QAAA,QACrB,GAAAtV,QAAY,oBA8WfgrH,EAAap9I,OAAOyH,MAAM01I,cAAcz1G,QAAQ,aA5WrD,IAAe,OAAf01G,EAAerxH,MAAAoG,GAgXV,MA/WJ1qB,GAAAkB,iBA8WItF,EAAW2I,YAAY,OAAQ,kCAAmC,cAC3D,GAMfV,EAAG+S,WAAY,EACf/S,EAAGsS,WA7WS,EA8WZva,EAAW2c,SAAU,EACrB1U,EAAG26H,gBAAiB,EACpB36H,EAAGw4H,mBA7WQ,EA8WXx4H,EAAGizB,UAAW,EACdjzB,EAAGkoM,0BA5WHloM,EAAAm7H,wBA+WAn7H,EAAG0X,MA7WKA,EA8WR1X,EAAG63H,iDA7WsBA,EA8WzB73H,EAAG04H,6CA7WiCA,EA8WpC14H,EAAGgxI,kCA7W0BA,EA8W7BhxI,EAAGs5G,uBA7WwBA,EA8W3Bt5G,EAAGgU,OA7WSA,EA8WZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UA7WKA,EA8WRlU,EAAGqoM,uBA7WiBA,EA8WpBroM,EAAGsoM,yBA7WsBA,EA8WzBtoM,EAAGwoM,uBA7WoBA,EAiXvBt2L,IACAwlH,IACAkH,IAsBA5+H,EAAGk7H,IA7WK,WA8WJl7H,EAAG+nM,mBA7WCtxL,gBAAA,GA8WJzW,EAAG+nM,mBA7WgBzsE,8BAAA,GA8WnBt7H,EAAG+nM,mBA7WW1sE,iCAAA,GA8Wdr7H,EAAG+nM,mBAAmBtvE,sBAAwB,GAC9Cz4H,EAAGs5G,oQAhGXllH,QACKC,OAAO,+BACPe,WA7WO,yBAAsBwyM,MAkvBtC,WACI,YAOA,SA/WQe,GAAoBl+L,EAAa1S,EAAAyC,EAAcH,EAAQN,EAAAU,EAAA07H,EAAAh8H,EAAAqpJ,EAAAttB,EAAAnkH,GA+Z3D,QAASG,KAELikH,EAA4ByyE,6BAA6BnqM,KAAK,SAAUC,GACpE,GAAmB,MAAfA,EAAIlI,OAAgB,CA9WxBwJ,EAAA6oM,yBAAcnqM,EAAAhJ,IACV,IAAAmyM,EAgXArkD,GAA2ByK,6BAA6B45C,GAAsBppM,KAAK,SAAUC,GACtE,MAAfA,EAAIlI,QACJwJ,EAAG8kM,wBAA0BpmM,EAAIhJ,KACjCsK,EAAGsS,WAAY,GA7Wfva,EAAA2I,YAAA,QAAA,yBAAA,2BAGbV,EAAAsS,WAAmB,MAEnBva,GAAA2I,YAAA,QAAA,yBAAA,0BAiXA,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BA5WxD8iJ,EAAoBr9F,gBAAsB1nD,KAAA,SAAOC,GAC1B,MAAfA,EAAIlI,SACJwJ,EAAGgwI,oBAAmBtxI,EAAIhJ,KAC1BsK,EAAGsS,WAAY,KAmXvBkxI,EA/WiBuhD,YAAAtmM,KAAA,SAAAC,GACF,MAAXA,EAAAlI,SAgXIwJ,EAAGglM,gBAAkBtmM,EAAIhJ,KACzBsK,EAAGsS,WAAY,KAK3B,QA/WIw2L,KAgXA,GA/WItuE,IAgXAkB,WA/WO17H,EAAAklM,kBAAkBxpE,WAgXzBrlH,UA/WOrW,EAAAowI,sBAAY/5H,WAiXnBpb,GACAmsI,OAAOzqI,KAAKqkB,UAAUw5G,GAE1BrE,GA/W2BojB,kBAASt+I,GAAAwD,KAAoB,SAAAC,GAgXjC,MAAfA,EAAIlI,QACJwJ,EAAG+oM,oBAAsBrqM,EAAIhJ,KAC7BsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,cA7WlE,SAAOC,GACH5I,EAAI2I,YAAiB,QAAA,mBAAA,eAiXzBV,EAAG25I,uBA/WmB,KAkX1B,QAASqvD,GA/W2B1rF,GAgXhCt9G,EAAGipM,yBACC3rF,GACA6Y,EA/We0B,iDAAiBva,GAAA7+G,KAAA,SAAAC,GACjB,MA+WPA,EAAIlI,SACJwJ,EAAGipM,sBA/WqBvqM,EAAAhJ,KAgXxBsK,EAAGsS,WA/WI,KAyXvB,QAASolH,KACLxB,EA/WYyB,sBAAuB59H,EAAShC,GAAA0G,KAAA,SAA0BC,GAgX/C,MAAfA,EAAIlI,QA9WLwJ,EAAA43H,iBAAcl5H,EAAAhJ,KACbsK,EAAAsS,WAAW,GAEZva,EAAA2I,YAAA,QAAA,yBAAA,mBAiXJ,SA/WIC,GACH5I,EAAG2I,YAAW,QAAA,mBAAA,oBAqXtB,QAASk+H,KACL7sH,EAAe8D,mBAAmBpX,KAAK,SAAUC,GAC1B,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAjW5D,QAAS44G,KACL,GAA4B,MAA5Bt5G,EAAAm7H,qBAA4B1kH,iBAAiD9gB,QAAjDqK,EAAAm7H,qBAAiD1kH,iBAA0C,IAAdzW,EAASm7H,qBAAK1kH,gBAAA,CACnH,GAAG+jH,IACAkB,WAAA17H,EAAAm7H,qBAAmBmqE,yBAAmC5pE,WACtDrlH,UAAArW,EAAAm7H,qBAAmB1kH,gBAAwBJ,UAE9C8/G,GAAwBwF,iBAAAnB,GAAA/7H,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,QACCwJ,EAAGilM,sBAAAvmM,EAAyBhJ,KAC5BgJ,EAAQhJ,KAAAyF,OAAO,EACZsP,EAAAc,QAAA,GAEAd,EAAAc,QAAA,EACAvL,EAAAilM,sBAAoB,KAgXnBjlM,EAAGm7H,qBAAqB+tE,gCAAkC,GAC1DlpM,EAAGm7H,qBAAqBxpG,gBAAkB,GA9W/Ct3B,EAAY8C,OAAA,UAAA,uBAAA9F,WAAA,EAAA+F,KAAA,QAkXX4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GA9WZ5I,EAAA2I,YAAA,QAAA,mBAA6C,wBAG9C+J,GAAGc,QAAA,EACHvL,EAAAilM,sBAAwB,KAsXhC,QAASjxL,KACLvJ,EAAOc,QAAS,EAChBvL,EAAG66B,MA/WK,EAgXR76B,EAAGgT,YAAa,EAChBhT,EAAGklM,kBA/WS,KAgXZllM,EAAGglM,mBACHhlM,EAAGowI,sBAAsB,KACzBpwI,EAAGgwI,uBACHhwI,EAAG25I,uBAAuB,KAC1B35I,EAAG+oM,uBACH/oM,EAAGwX,aAAa,EA9WpBxX,EAAAyX,WAAS,EAmXT,QA/WQC,KAgXJ1X,EAAGgT,YA/Wa,EAgXhBhT,EAAG+S,WA/WU,EAgXbmB,IA9WAlU,EAAAm7H,wBAgXAjpH,IAEJ,QAASR,KACL,GAAIiB,GA/WQtY,EAAQsY,QAAO,eAgXvB,yFA9WItb,WAAG,EAgXH+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EA9WxBhT,EAAS+S,WAAS,EACXmB,IAgXClU,EAAGm7H,wBACHjpH,MAOR,QA/WIgC,KAgXAlU,EAAGmpM,yBAAyB/0L,gBA5WhC,QAASg1L,GAAQjuE,GACbn7H,EAAGwX,aAAA,EAgXHxX,EAAGyX,WAAW,EACdzX,EAAG66B,MAAO,EACV76B,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EA9WhBhT,EAAGm7H,qBAAuB/mI,QAAA8e,KAAAioH,EAiX1B,KAAK,GAAItjH,KAAK7X,GAAG8kM,wBA9WZ9kM,EAAA8kM,wBAAYjtL,GAAAigH,wBAAAqD,EAAArD,wBACd93H,EAAAm7H,qBAAuB+tE,gCAAAlpM,EAAA8kM,wBAAAjtL,IAiXtBpN,EAAOc,QAAS,CA5WpB,KAAG,GAAArQ,KAAA8E,GAAY43H,iBACZ53H,EAAA43H,iBAAa18H,GAAAwgI,aAAAP,EAAAkuE,oBAAA3tE,aACb17H,EAAAm7H,qBAAmBmqE,yBAAmBtlM,EAAmB43H,iBAAmB18H,GAKnF,KAAS,GAAAiP,KAAAnK,GAAA8V,YAgXG9V,EAAG8V,YAAY3L,GAAGkM,WAAa8kH,EAAqBkuE,oBAAoBhzL,YA9WhFrW,EAAAm7H,qBAA+B1kH,gBAAmBzW,EAAA8V,YAAA3L,IAsXtD,QAASm/L,GA/WSnuE,GAiXd,GAAIxoH,GAAUtY,EAAQsY,QAAQ,UA9W9B,4CAA+Btb,WAAA,EAAA+F,KAAA,MAiX/BuV,GA/WQjT,OAAIjB,KAAI,WAgXZ03H,EA/WmBmzE,2BAAuBnuE,EAAiCvd,mBAAAn/G,KAAA,SAAAC,GAgXpD,MAAfA,EAAIlI,QA9WJuB,EAAA2I,YAAA,UAAA,+CAAA,4BAgXAsoM,EAAgChpM,EAAG25I,uBAAuBr8B,SA7W1DvlH,EAAW2I,YAAY,QAAS,yCAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,iFAC5BrJ,WAAW,EACX+F,KAAM,UAGf,cAKP,QAASmsM,GAAuBpuE,GAC5B,GAAIp6H,GAAA,yBAAao6H,EAAsB,SAAA,WAAA,UAAA,gBACvCxiH,GAAAwiH,EAA+B,SAAA,WAAmB,UAAA,yCAClDxoH,EAAAtY,EAAmBsY,QAAA,UACnB5R,GAAA1J,WAAmB,EAAA+F,KAAa,MAEhCuV,GAAAjT,OAAAjB,KAAmB,WACnB03H,EAAmBozE,iCAAsCpuE,EAAAvd,mBAAAn/G,KAAA,SAAAC,GAgX9B,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWiY,EAAM,4BA9W5CzG,KAEAna,EAAM2I,YAAA,QAAA,2CAAArJ,WAAA,EAAA+F,KAAA,QAiXP,SA/WCuD,GACA5I,EAAA2I,YAAe,QAAA,mFAAyCrJ,WAAA,EAAA+F,KAAA,UAiX7D,cAKP,QAASosM,GA/WgBruE,GAgXrB,GAAIj7H,GA/WQ/F,EAAuBgG,sBAgXnCg7H,GAAqBrD,sBAAwB93H,EAAGm7H,qBAAqB+tE,gCAAgCpxE,sBAEhG93H,EAAG+S,WAkBJooH,EA/WWxnH,WAAAzT,EAAAG,OAgXX81H,EA/WmBszE,yBAA8BtuE,GAAS18H,KAAA,SAAAC,GAgXlDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,0BA9WxDm1L,EAAAhpM,EAAA25I,uBAAAr8B,QACGt9G,EAAAgT,YAAW,EACXhT,EAAA+S,WAAA,EACA2E,MAEH3f,EAAW2I,YAAY,QAAShC,EAAAhJ,KAAAme,QAAA,0BAgX5B7T,EAAGgT,YAAa,IAGrB,SAAUrS,GACT5I,EAAW2I,YAAY,+BAAiCrJ,WAAW,EAAM+F,KAAM,WA/BnF+9H,EAAqBrnH,UAAY5T,EAAWG,OAC5C81H,EA/WIuzE,wBAAAvuE,GAAA18H,KAAA,SAAAC,GAgXIA,EAAIhJ,KAAKke,aAAc,GA9W3B7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,0BACG3B,IACAlS,EAAAgT,YAAW,EACf0E,MAiXK3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,0BAClD7T,EAAGgT,YAAa,IA5WxB,SAAArS,GACA5I,EAAA2I,YAA0B,kCAwBtC,QAAAipM,KACK3pM,EAAAsS,WAAO,CACP,IAkXe0T,IAlXJ7rB,EAA4BgG,wBAGnC8rC,YAAA,iBAIHkqF,GAA8BwzE,+BAAA3jL,GAAAvnB,KAAA,SAAAC,GAiXpB,GAAmB,MAAfA,EAAIlI,OAAgB,CA/WpBwJ,EAAA8Z,cAAApb,EAAAhJ,KACdsK,EAAAsS,WAAuB,CACrB,IAAc2D,GAAAnf,SAAAijB,cAAA,IAiXFjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eA/WV,IAAArc,GAAA,GAAAC,OAAAa,EAAAhJ,OACDqI,KAAA,oBAEZtJ,EAAAC,OAA2BwlB,IAAAC,gBAAAvc,EAEnBnD,GAAU4E,KAAA5K,EAAA,UACLsD,EAAA2I,YAAA,UAAA,eAAA,mBAiXAwR,QA9WJna,GAAA2I,YAAA,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OACA4C,EAAAsS,WAAA,GAGT,SAAA3R,GACA5I,EAAA2I,YAAA,QAAmC,iBAAArJ,WAAA,EAAA+F,KAAA,OACnC4C,EAAAsS,WAAA,IAzBH,GA/WItS,GAAIC,IAiXTD,GAAGqU,kBA/WgBhJ,MAAM,IAAWA,MAAM,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAgX1CrL,EAAGsU,SA/WMtU,EAAMqU,gBAAA,GAiXfrU,EAAGuU,YA/Wa,EAgXhBvU,EAAGwU,qBAAuB,SAASC,GACjCzU,EAAGuU,YAAcE,GAGlBzU,EAAGgT,YAAa,EA9WhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAA6oM,4BACA7oM,EAAGm7H,wBACHpjI,EAAG2c,SAAA,EACHjK,EAAGc,QAAW,EAEdvL,EAAGs5G,uBAAuBA,EAgX1Bt5G,EAAGgU,OAASA,EA9WZhU,EAAG0R,OAAQA,EACX1R,EAAGkU,UAAAA,EACHlU,EAAGopM,mBAAAA;AACHppM,EAAGspM,2BAAAA,EACHtpM,EAAGupM,iCAAyBA,EAC5BvpM,EAAGwpM,yBAASA,EACZxpM,EAAG8oM,6BAASA,EACZ9oM,EAAGgpM,+BAAYA,EACfhpM,EAAG2pM,+BAAyBA,EAC5B3pM,EAAGwX,aAAA,EACHxX,EAAGyX,WAAA,EAgXHvF,IACAwlH,IACAkH,IA9WAn0H,EAAA2c,WAAA,SAAAjrB,EAAAyqB,GAkXI,GAAIC,GAAQ,GAAIC,QAAO,YACnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MA9W1D,KAASN,EAAAje,KAAOme,GAkXR,MAjXD5qB,GAAAkB,iBACCtF,EAAA2I,YAAA,OAAA,4BAAA,aAgXO,GA6GfV,EAAGk7H,IAAM,WACLl7H,EAAGm7H,qBAAqB1kH,gBAAkB,GAC1CzW,EAAGm7H,qBAAqB+tE,gCAAkC,GAC1DlpM,EAAGs5G,2NAhKXllH,QACKC,OAAO,+BACPe,WAAW,2BAA4BuzM,MAoZhD,WACI,YAOA,SAASiB,GAhXSn/L,EAAA1S,EAAA0C,EAAAD,EAAAH,EAAAN,EAAAo8H,EAiXdqtB,EAhXmBntB,EAAoBl8H,EAiXvC+7H,EAhXenkH,GA8Zf,QAASG,KA/WLmkH,EAAQwzE,sBAAAprM,KAAA,SAAAC,GACQ,MAAZA,EAAOlI,QAiXHwJ,EAAGk4H,kBAAoBx5H,EAAIhJ,KA/WnCsK,EAAAsS,WAAA,GAEQva,EAAG2I,YAAA,QAA0B,yBAAA,kBAkXlC,SAhXQC,GAiXP5I,EAhXI2I,YAAW,QAAY,mBAAS,mBAoXxCw1H,EAAoByB,sBAAsB59H,EAAOhC,GAAY0G,KAAK,SAAUC,GA/WzE,MAAAA,EAAAlI,QAiXKwJ,EAAG43H,iBAAmBl5H,EAAIhJ,KAC1BsK,EAAGsS,WAAY,GA9WpBva,EAAA2I,YAAsB,QAAA,yBAAA,mBAkXtB,SAhXCC,GAiXA5I,EAhXQ2I,YAAe,QAAK,mBAAA,oBAqXhCqR,EAAe8D,mBAAmBpX,KAAK,SAAUC,GAC1B,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YA9WtE,SAASC,GACL5I,EAAA2I,YAAoB,QAAA,mBAA6B,aAmXjD8iJ,EAhXuBr9F,gBAAA1nD,KAAA,SAAAC,GACZ,MAgXHA,EAhXGlI,SACHwJ,EAAAgwI,oBAAuBtxI,EAAAhJ,KAiXvBsK,EAAGsS,WAAY,KAIvBkxI,EAA2BuhD,YAAYtmM,KAAK,SAAUC,GAC/B,MAAfA,EAAIlI,SACJwJ,EAAGglM,gBAAkBtmM,EAAIhJ,KACzBsK,EAAGsS,WAAY,KAK3B,QAASw2L,KACL,GAAItuE,IACAkB,WAhXI17H,EAAWklM,kBAAYxpE,WAiX3BrlH,UAAWrW,EAAGowI,sBAAsB/5H,WA9WpCpb,GAiXAmsI,OAAQzqI,KAAKqkB,UAAUw5G,GAE3BrE,GAA4BojB,kBAAkBt+I,GAAKwD,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QACJwJ,EAAG+oM,oBAAsBrqM,EAAIhJ,KA/WhCsK,EAAAsS,WAAY,GAEdva,EAAA2I,YAAqB,QAAA,yBAAkC,cAkXvD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eAExDV,EAAG25I,uBAAuB,KAG9B,QAhXQmwD,KAiXJ,GAAItvE,IACAt+E,WAhXIl8C,EAAW25I,uBAAGr8B,QAElBriH,GAiXAmsI,OAhXQzqI,KAAIqkB,UAAWw5G,GAkX3BnE,GAhXoBwmB,qBAAiB5hJ,GAAAwD,KAAA,SAAAC,GACd,MAgXfA,EAAIlI,QACJwJ,EAAG+pM,uBAhXQrrM,EAAAhJ,KAiXXsK,EAAGsS,WAhXY,GAkXfva,EAhXW2I,YAAA,QAAqB,yBAAA,cAkXrC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eAK5D,QAASspM,GAA2BpsF,GAChC59G,EAAGiqM,kBACH5zE,EAhXmBsC,yBAAqB/a,GAAoBn/G,KAAA,SAAAC,GAiXrC,MAAfA,EAAIlI,SA/WLwJ,EAAAiqM,eAAAvrM,EAAAhJ,KACHsK,EAAOsS,WAAS,KAyXxB,QAhXIgnG,GAAgB4wF,EAAA7zL,EAAA9X,GAChB,GAAG2rM,GAAO7zL,EAAA,CACP,GAAAmkH,IACAkB,WAAAwuE,EACA7zL,UAAgBA,EAEhB8/G,GAAoBwF,iBAAAnB,GAAA/7H,KAAA,SAAAC,GACG,MAAvBA,EAAAlI,QACAwJ,EAAAmqM,sBAAoBzrM,EAAAhJ,KACPsK,EAAAmqM,sBAAAhvM,OAAA,GACFd,EAAA8C,OAAA,UAAA,uCAAA6C,EAAAoqM,cAAA3zL,gBAAAC,aAAArf,WAAA,EAAA+F,KAAA,OAkXF4C,EAAGsS,WAAY,EACX/T,GA/WHA,KAEVxG,EAAY2I,YAAA,QAAA,yBAAA,uBAEZ,SAAAC,GACH5I,EAAA2I,YAAA,QAAA,mBAAA,4BAGIV,GAAAmqM,yBACAnqM,EAAAoqM,cAAA9uE,8BAAA,KAiXAt7H,EAAG6oM,4BACH7oM,EAAGoqM,cAhXO/uE,iCAAA,KAiXVr7H,EAAGoqM,cAAc1D,aAAe,GAIxC,QAhXQsC,GAAelxE,EAAAv5H,GACfu5H,EACA3B,EAA0B0B,iDAAAC,GAAAr5H,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,SAiXQwJ,EAAG6oM,yBAA2BnqM,EAAIhJ,KAC9BsK,EAAG6oM,yBAAyB1tM,OAAS,GACrCd,EAAQ8C,OAAO,UAAW,0CAA4C6C,EAAGoqM,cAAc9uE,8BAA8B+uE,uBAAyBhzM,WAAW,EAAM+F,KAAM,OAEzK4C,EAAGsS,WAAY,EACX/T,GA/WXA,QAKFyB,EAAA6oM,4BACA7oM,EAAAoqM,cAAW/uE,iCAAA,KACXr7H,EAAAoqM,cAAO1D,aAAA,IAoXd,QAAS1yL,KA/WLhU,EAAAgT,YAAc,EAiXdhT,EAAGoqM,iBACHpqM,EAAGklM,kBAhXQ,KAiXXllM,EAAGglM,mBACHhlM,EAAGowI,sBAhXiB,KAiXpBpwI,EAAGgwI,uBACHhwI,EAAG25I,uBAAuB,KA/W1B35I,EAAA+oM,uBAiXA/oM,EAAG+pM,0BACH/pM,EAAGg9I,0BAhXQ,KAiXXh9I,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAGnB,QAhXSC,KAiXL1X,EAAGgT,YAhXQ,EAiXXhT,EAAGkU,YACHlU,EAAGoqM,iBACHl4L,IAEJ,QAASR,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFA/WCtb,WAAA,EAiXG+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WA/WpBuB,EAAAgT,YAAoB,EAChBhT,EAAAkU,YAiXAlU,EAAGoqM,iBACHl4L,MAOR,QAASgC,KACLlU,EAAGsqM,kBAhXcl2L,gBAmXrB,QAASm2L,GAhXaH,GAiXlBpqM,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EACfzX,EAhXG+S,WAAY,EAiXf/S,EAAGgT,YAAa,EAChBhT,EAAGoqM,cAAgBh2M,QAAQ8e,KAAKk3L,EAEhC,KAAK,GAAIjgM,KAAKnK,GAAG43H,iBA/WZ53H,EAAA43H,iBAAAztH,GAAAuxH,aAAiC0uE,EAAsBf,oBAAA3tE,aACxD17H,EAAMoqM,cAAA9E,yBAA4BtlM,EAAA43H,iBAAiCztH,GAoXvE,KAAK,GAAI6rB,KAAKh2B,GAAG8V,YA/WT9V,EAAA8V,YAAYkgB,GAAA3f,WAAY+zL,EAAAf,oBAAAhzL,YAC5BrW,EAAAoqM,cAAA3zL,gBAA4BzW,EAAA8V,YAAAkgB,GAoXhCsjF,GAhXe8wF,EAAAf,oBAAA3tE,WAAA0uE,EAAAf,oBAAAhzL,UAAA,WAiXX,IAAK,GAhXGwB,KAAA7X,GAAAmqM,sBAiXAnqM,EAAGmqM,sBAAsBtyL,GAAGigH,wBAA0BsyE,EAActyE,wBA/WzE93H,EAAAoqM,cAAe9uE,8BAAAt7H,EAAAmqM,sBAAAtyL,GAoXlBmxL,GAA+BoB,EAAcf,oBAAoBvxE,sBAAuB,WACpF,IAAK,GAAI58H,KAAK8E,GAAG6oM,yBACT7oM,EAAG6oM,yBAAyB3tM,GAAG0iH,oBAAsBwsF,EAAcI,qBAAqB5sF,oBACxF59G,EAAGoqM,cAAc/uE,iCAAmCr7H,EAAG6oM,yBAAyB3tM,QAUpG,QAASuvM,GAhXOL,GAiXZ,GAAIz3L,GAhXQtY,EAAGsY,QAAa,UAiXxB,4CAhXQtb,WAAA,EAAA+F,KAAA,MAkXZuV,GAAQjT,OAhXIjB,KAAA,WAiXR43H,EAhXWo0E,oBAAaL,EAAAnsF,YAAAx/G,KAAA,SAAAC,GAiXD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,kBA/W/DspM,EAAehqM,EAAAg9I,0BAAAp/B,oBAkXV7lH,EAAW2I,YAAY,QAAS,+BAAiCrJ,WAAW,EAAM+F,KAAM,UAGjG,cAKP,QAASstM,GAhXuBN,GAiX5B,GAAIrpM,GAAM,yBAhXiBqpM,EAAA,SAAA,WAAA,UAAA,gBAiXvBzxL,GAhXQyxL,EAAA,SAAA,WAAA,UAAA,kCAiXRz3L,EAAUtY,EAhXCsY,QAAA,UAiXX5R,GAAO1J,WAhXC,EAAW+F,KAAA,MAkXvBuV,GAAQjT,OAAOjB,KAAK,WAChB43H,EAAqBq0E,0BAA0BN,EAAcnsF,YAAYx/G,KAAK,SAAUC,GA/WtE,MAAfA,EAAAlI,QACCuB,EAAW2I,YAAY,UAAAiY,EAAA,qBAiXnBzG,KAEAna,EAAW2I,YAAY,QAAS,oCAAsCrJ,WAAW,EAAM+F,KAAM,QAElG,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,4EAA8ErJ,WAAW,EAAM+F,KAAM,UA9W1I,cAqXP,QAASutM,GAAkBP,GACvB,GAAIlqM,GAAa/F,EAAsBgG,sBACvCiqM,GAActyE,sBAAwB93H,EAAGoqM,cAAc9uE,8BAA8BxD,sBACrFsyE,EAhXIxsF,kBAA4B59G,EAAAoqM,cAAA/uE,iCAA+Czd,kBAkX1E59G,EAAG+S,WAmBJq3L,EAhXIz2L,WAAuBzT,EAASG,OAiXpCg2H,EAhXmBu0E,kBAAAR,GAAA3rM,KAAA,SAAAC,GAiXXA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,mBACpDm2L,EAA2BhqM,EAAGg9I,0BAA0Bp/B,mBACxD59G,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf2E,MA9WpB3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAiXoB7T,EAAGgT,YAAa,IA9WxB,SAAArS,GACI5I,EAAA2I,YAAqB,QAAA,+BAAArJ,WAAA,EAAA+F,KAAA,WAiVzBgtM,EAhXWt2L,UAAY5T,EAAAG,OAiXvBg2H,EAhXgBw0E,iBAAST,GAAc3rM,KAAA,SAAAC,GAE/BA,EAAEhJ,KAAAke,aAAQ,GACV7b,EAAW2I,YAAU,UAAWhC,EAAAhJ,KAAAme,QAAA,mBAiXhC3B,IACAlS,EAAGgT,YAAa,EAChB0E,MA9WA3f,EAAQ2I,YAAU,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAClB7T,EAAAgT,YAAW,IAmXhB,SAhXKrS,GAiXJ5I,EAhXO2I,YAAY,kCAwY7B,QAASoqM,KAhXP9qM,EAAAsS,WAAK,CAkXL,IA/WU0T,IA+WO7rB,EAAsBgG,wBAG3B8rC,YAAY,iBAIpBoqF,GAAqBy0E,wBAAwB9kL,GAAWvnB,KAAK,SAAUC,GACnE,GAAmB,MAAfA,EAAIlI,OAAgB,CAhXpBwJ,EAAA8Z,cAAApb,EAAAhJ,KACDsK,EAAAsS,WAAA,CACA,IAAA2D,GAAAnf,SAAAijB,cAAA,IACZjjB,UAAoBC,KAAAijB,YAAA/D,GACpBA,EAAAgE,MAAgB,eACR,IAAArc,GAAU,GAAAC,OAAAa,EAAAhJ,OAkXDqI,KAAM,oBA/WvBtJ,EAAAC,OAAAwlB,IAAiCC,gBAAAvc,EAExBnD,GAAA4E,KAAA5K,EAAA,UACGsD,EAAA2I,YAAA,UAAA,eAAA,mBACZwR,QAEAna,GAAA2I,YAA4B,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OAC5B4C,EAAAsS,WAAoB,GAGpB,SAAA3R,GACA5I,EAAA2I,YAA0B,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OAC1B4C,EAAAsS,WAAc,IA9BjB,GAAItS,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MA/WpGrL,EAAAsU,SAAStU,EAAOqU,gBAAA,GAkXhBrU,EAAGuU,YAhXC,EAiXJvU,EAAGwU,qBAhXa,SAAgBC,GAiX5BzU,EAAGuU,YAhXQE,GAmXfzU,EAAGgT,YAhXa,EAiXhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGk4H,qBACHl4H,EAAGoqM,iBACHryM,EAAW2c,SAAU,EAErB1U,EAAGs5G,uBAhXwBA,EAiX3Bt5G,EAAGgpM,+BAhXYA,EAiXfhpM,EAAGgU,OAhXSA,EAiXZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAhXIA,EAiXPlU,EAAGuqM,kBAhXgBA,EAiXnBvqM,EAAGyqM,oBAAsBA,EACzBzqM,EAAG0qM,0BAA4BA,EAC/B1qM,EAAG2qM,kBAhXCA,EAiXJ3qM,EAAG8oM,6BAhX6BA,EAiXhC9oM,EAAG8pM,gCAhXkCA,EAiXrC9pM,EAAGgqM,2BAhXwBA,EAiX3BhqM,EAAG8qM,wBAA0BA,EAC7B9qM,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EACfvF,IACAzH,EAAOkc,SAhXS,SAAWxqB,EAAKyqB,GAkX5B,GAAIC,GAhXO,GAAAC,QAAY,gBAiXnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MACtD,KAAKN,EAAMje,KAAKme,GA7WpB,MA8WQ5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBA/WhE,2NA+TbtM,QACKC,OAAO,+BACPe,WAhXO,oBAAmBw0M,MA8wBnC,WACI,YAOA,SAASmB,GAjXsBhzM,EAAKyC,EAAAH,EAAAN,EAAA+rM,EAAAtiD,EAkXhCrtB,EAjXeE,EAAwB0vE,EAkXvC7vE,EAjXenkH,GA8af,QAAS2lH,KACLxB,EAAoByB,sBAAsB59H,EAAOhC,GAAY0G,KAAK,SAASC,GAhXzD,MAAfA,EAAAlI,QACCwJ,EAAA43H,iBAAuBl5H,EAAAhJ,KAkXnBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBA/WtE,SAASC,GACD5I,EAAA2I,YAAiB,QAAA,mBAAA,oBAuXzB,QAjXIk+H,KAkXA7sH,EAjXY8D,mBAAgBpX,KAAA,SAAAC,GACjB,MAAHA,EAAGlI,QACHwJ,EAAG8V,YAAYpX,EAAAhJ,KAkXfsK,EAjXGsS,WAAA,GAmXHva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAjXCC,GAkXA5I,EAAW2I,YAAY,QAAS,mBAAoB,aAM5D,QAjXI44G,KAkXA,GAjX4B,MAAxBt5G,EAAAm7H,qBAAwB1kH,iBAAA9gB,QAAAqK,EAAAm7H,qBAAA1kH,iBAAA,IAAAzW,EAAAm7H,qBAAA1kH,gBAAA,CAkXxB,GAjXI+jH,IACAkB,WAAG17H,EAAYm7H,qBAAAmqE,yBAAA5pE,WAkXfrlH,UAAWrW,EAAGm7H,qBAAqB1kH,gBAAgBJ,UAEvD8/G,GAA4BwF,iBAAiBnB,GAAgB/7H,KAAK,SAASC,GACpD,MAAfA,EAAIlI,QACJwJ,EAAG47C,aAAel9C,EAAIhJ,KAClBgJ,EAAIhJ,KAAKyF,OAAS,EAClB6E,EAAG26H,gBAAiB,GA/W/B36H,EAAA26H,gBAA+B,EACtB36H,EAAAw4H,mBAAW,EACjBx4H,EAAAizB,UAAiB,EACjBjzB,EAAA29C,iBAAY,GACZ39C,EAAW69C,oBAAA,GAkXH79C,EAAGu4H,wBAA0B,GAhXzCl+H,EAAA8C,OAAA,UAA4B,uBAAiC9F,WAAK,EAAU+F,KAAK,QAGzE4C,EAAAsS,WAAO,GAmXPva,EAAW2I,YAAY,QAAS,yBAA0B,uBAE/D,SAjXSC,GAkXR5I,EAjXQ2I,YAAA,QAAA,mBAAA,4BAoXZV,GAAG26H,gBAAiB,EACpB36H,EAjXGw4H,mBAAe,EAkXlBx4H,EAAGizB,UAjXC,EAqXZ,QAjXQwrB,GAAiBq5E,EAAgCv5H,GAkXrD43H,EAjXO0B,iDAA2BC,GAAAr5H,KAAA,SAAAC,GACb,MAAdA,EAAAlI,SACAwJ,EAAAo8C,gBAAc19C,EAAAhJ,KAkXTsK,EAAGo8C,gBAAgBjhD,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,sCAAwC9F,WAAW,EAAM+F,KAAM,OACzF4C,EAAGw4H,mBAAoB,EAhX9Bx4H,EAAAizB,UAAA,EACDjzB,EAAA69C,oBAAuB,GACvB79C,EAAAu4H,wBAA4B,IAEpBv4H,EAAGw4H,mBAAA,EAmXPx4H,EAAGsS,WAjXK,EAkXJ/T,GAhXAA,OAoXZyB,EAAG69C,oBAAsB,KACzB79C,EAAGo8C,mBACHp8C,EAAGu4H,wBAA0B,KAC7Bv4H,EAAGgrM,uBAGP,QAjXQ3uJ,GAAgCuhE,EAAAr/G,GAkXpC83H,EAAqBsC,yBAAyB/a,GAAmBn/G,KAAK,SAASC,GACxD,MAAfA,EAAIlI,SACJwJ,EAAGgrM,oBAAsBtsM,EAAIhJ,KAhXhCsK,EAASgrM,oBAAA7vM,OAAA,GACXd,EAAa8C,OAAA,UAAA,mCAAA6C,EAAAosI,SAAAvuF,oBAAAlsB,iBAAAt6B,WAAA,EAAA+F,KAAA,OACb4C,EAAAizB,UAAgB,EAChBjzB,EAAAu4H,wBAAkB,IAElBv4H,EAAAizB,UAAsB,EAEtBjzB,EAAAsS,WAAA,EACA/T,GACAA,OAGHyB,EAAGu4H,wBAAY,KAkXfv4H,EAAGgrM,uBAIP,QAjXOzwD,GAAApO,GACH,GAAGx5H,GAAAtY,EAAgBsY,QAAA,UAAA,+BAAAw5H,EAAAI,kBACnBl1I,WAAA,EAkXI+F,KAAM,MAGVuV,GAjXIjT,OAAAjB,KAAA,WAkXAuB,EAAGsS,WAjXY,CAmXf,IAAIrX,IACAqiH,OAAQt9G,EAAG29C,iBAAiBm6E,sBAhX5Bla,kBAAY59G,EAAA69C,oBAAY+/D,kBACzBK,WAAaj+G,EAAAu4H,wBAAAta,WACb51F,KAAAroB,EAAA+wI,wBAAA1oH,KACAskH,cAAgBR,EAAAh7C,KACnBq7C,aAAAL,EAAAI,iBAmXAw5D,GAAyBxrD,eAAet/I,GAAKwD,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,QAA8B,GAAZkI,EAAIhJ,OAC1By2I,EAAUI,iBAAmB,KAC7Bx0I,EAAW2I,YAAY,UAAW,uBAAwB,YAC1DswI,KA/WThxI,EAAAsS,WAAkB,GAkXd,WACCtS,EAAGsS,WAAY,KA/WpB,WACAtS,EAAAsS,WAAY,IAqXnB,QAAS0+H,KAEL,GAjXI/1I,IAkXAqiH,OAjXOt9G,EAAA29C,iBAAcm6E,sBAkXrBla,kBAAmB59G,EAAG69C,oBAAoB+/D,kBAC1CK,WAAYj+G,EAAGu4H,wBAAwBta,WACvC51F,KAAMroB,EAAG+wI,wBAAwB1oH,KAErCy9K,GAjX0BmC,yBAAahtM,GAAcwD,KAAA,SAAAC,GAC1C,MAAHA,EAAGlI,SAkXHwJ,EAAG0sI,cAAgBhuI,EAAIhJ,KAAKw7I,UACxBlxI,EAAG0sI,cAAcvxI,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,8BAAgC6C,EAAGu4H,wBAAwBmuE,cAAgBrvM,WAAW,EAAM+F,KAAM,OA/WpI4C,EAAKsS,WAAY,KAoXrByzL,EAAyB34D,mBAAmBnyI,GAAKwD,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGw6I,8BAAgC97I,EAAIhJ,KAAKwwM,iBAhXpDlmM,EAAAsS,WAAA,IAoXA,SAAS3R,GACL5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAMhE,QAASg6I,GAASvO,GA7Wd,GA+WAA,EAAU50H,UAAe40H,EAAU,UAAoCx2I,SAAvBw2I,EAAU50H,UA/WtD40H,EAAU50H,SAAQ,CAClB,GAAAtc,IAkXIuxI,aAAcL,EAAU8+D,gBAhXxB3tF,OAAOt9G,EAAA29C,iBAAiBm6E,sBAC5Bla,kBAAqB59G,EAAA69C,oBAAoB+/D,kBACrCK,WAAQj+G,EAAAu4H,wBAAgBta,WAkXxB0uB,cAjXeR,EAAAh7C,KAkXf9oE,KAjXIroB,EAAA+wI,wBAA2B1oH,KAoYnC,OAfA09K,GAAyBnrD,YAAY3/I,GAAKwD,KAAK,SAASC,GAhXzDA,EAAYhJ,KAAAke,aAAA,EAkXH7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,YAGpD9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,YA/W1D7T,EAAMgT,YAAA,EACNg+H,IAEA7E,EAAO8+D,gBAAuB,IAElC,SAAetqM,GACX5I,EAAA2I,YAAqB,iCAmXdyrI,GAIf,QAAS0O,GAAe1O,GACpBA,EAjXO8+D,gBAAe,GAkXtB9+D,EAjXQ50H,UAAW,EAoXvB,QAASvD,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG86I,eAAgB,EAGvB,QAjXQppI,KACJ1R,EAAAgT,YAAc,EACdhT,EAAA29C,iBAAc,KAkXd39C,EAAG69C,oBAAsB,KAhXzB79C,EAAAu4H,wBAAmB,KAkXnBv4H,EAAG+wI,wBAjXe,KAkXlB/wI,EAAGm7H,qBAjXC1kH,gBAAsC,KAkX1CzW,EAAGm7H,qBAAqBmqE,yBAA0B,KAClDpxL,IAGJ,QAASA,KACLlU,EAAGkrM,sBAjXS92L,gBAqXhB,QAAS4mI,GAAkBmwD,GAEvB,GAAIC,KACJA,GAjXQ9tF,OAAWt9G,EAAA29C,iBAAYm6E,sBAkX/BszE,EAAkBxtF,kBAAoB59G,EAAG69C,oBAAoB+/D,kBAC7DwtF,EAAkBntF,WAAaj+G,EAAGu4H,wBAAwBta,WAC1DmtF,EAjXO/iL,KAAAroB,EAAA+wI,wBAAA1oH,IACHroB,GAAA0sI,aAmXJ0+D,GAjXgBD,gBAAmBA,CAwXnC,IAAIx4L,GAjXQtY,EAAAsY,QAAW,UAkXnB,4CACItb,WAAW,EACX+F,KAAM,MAEduV,GAjXQjT,OAAAjB,KAAW,WAkXfsnM,EAAyB/qD,kBAAkBowD,GAAmB3sM,KAAK,SAASC,GACrD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,eAC1DswI,KA9WTj5I,EAAY2I,YAAA,QAAA,4BACXrJ,WAAa,EAkXD+F,KAAM,QAGf,SAASuD,GACR5I,EAAW2I,YAAY,QAAS,oEAC5BrJ,WAAW,EAhXnB+F,KAAA,UAoXD,cAKP,QAAS89I,GAjXiBkwD,GAmXtB,GAAInhM,GAAOjK,EAAG0sI,cACVp4E,GAAQ,CACZ,KAAK,GAAIp5D,KAjXG+O,GACuBtU,QAiX3BsU,EAjXI/O,GAAAqxI,kBAAkD,MAAhBtiI,EAAA/O,GAAAqxI,mBAkXtCj4E,GAjXI,EAoXb,IAAGA,EAAM,CACR,GAAI82I,KASJA,GAAkB9tF,OAASt9G,EAAG29C,iBAAiBm6E,sBAC/CszE,EAAkBxtF,kBAAoB59G,EAAG69C,oBAAoB+/D,kBAC7DwtF,EAAkBntF,WAAaj+G,EAAGu4H,wBAAwBta,WAhX1DmtF,EAAA/iL,KAAAroB,EAAA+wI,wBAAA1oH,IAmXA,IAAIi/G,GAAOtnI,EAAG0sI,aAhXtB0+D,GAAAD,kBACK,KAAO,GAAAjwM,GAAA,EAAAA,EAAAosI,EAAAnsI,OAAAD,IAC6BvF,QAAzB2xI,EAAApsI,GAAAqxI,iBAmXA6+D,EAAkBD,gBAAgB7jE,EAAKpsI,GAAGi2F,MAAQm2C,EAAKpsI,GAAGqxI,iBA9WtE6+D,EAAqBD,gBAAgB7jE,EAAApsI,GAAAi2F,MAAA,EAGnC40G,GAAoB5qD,eAAciwD,GAAwB3sM,KAAM,SAASC,GACzEA,EAAchJ,KAAAke,aAAgB,EAmXpB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBAhX9D9b,EAAA2I,YAAgC,QAAKhC,EAAAhJ,KAAAme,QAAA,yBAqX/B7T,EAAGgT,YAAa,EAhXrBg+H,MAEA18E,GAAA,MAGAj6D,GAAA8C,OAAA,UAAoB,4BAAA9F,WAAA,EAAA+F,KAAA,OACpBk3D,GAAA,EAjBH,GAAIt0D,GAAKC,IAEVD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MAC3FrL,EAAGsU,SAjXKtU,EAAAqU,gBAAe,GAmXvBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GACjCzU,EAAGuU,YAAcE,GAGlBzU,EAAGgT,YAjXY,EAkXfhT,EAAGq7I,MAAO,EACVr7I,EAAGsS,WAjXY,EAkXftS,EAAGqsI,gBACHt0I,EAAW2c,SAAU,EACrB1U,EAAG26H,gBAjXc,EAkXjB36H,EAAGw4H,mBAjXgB,EAkXnBx4H,EAAGizB,UAAW,EAEdjzB,EAAGy+C,+BAAiCA,EACpCz+C,EAAGq8C,+BAAiCA,EACpCr8C,EAAGgxI,kCAjXmCA,EAkXtChxI,EAAGs5G,uBAjXwBA,EAkX3Bt5G,EAAG06I,SAjXSA,EAkXZ16I,EAAG66I,eAjXYA,EAkXf76I,EAAGgU,OAASA,EACZhU,EAAG0R,OAjXSA,EAkXZ1R,EAAGkU,UAAYA,EACflU,EAAGg7I,kBAjXmBA,EAkXtBh7I,EAAGk7I,iBAjXgBA,EAkXnBl7I,EAAGu6I,eAAiBA,EAEpB7iB,IACAkH,IAEA5+H,EAAG+5H,sBAjXwBC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,MAgY3BroB,EAAGk7H,IAjXK,WAkXJl7H,EAAGm7H,qBAAqB1kH,gBAAkB,GAhX1CzW,EAAA29C,iBAAU,GAkXV39C,EAAG69C,oBAjXc,GAkXjB79C,EAAGu4H,wBAA0B,GAhX7Bv4H,EAAAs5G,8PAkTRllH,QACKC,OAAO,+BACPe,WAAW,wBAAyB21M,MA+Y7C,WACI,YAOA,SAASM,GAAQtxM,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASF,EAAuBmxM,EAAY15L,EAAwB25L,GArV7H,QAASr5L,KAoXL,GACIC,IAnXQhY,EAAgBgG,uBACjBhG,EAAuBgG,uBAAAwU,gBAAAxC,UAmXlCnS,GAAG2hB,eACH/P,EAlXW8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,QAmXAwJ,EAAG2hB,YAAcjjB,EAAIhJ,KAjX1By8B,QAASC,IAAKpyB,EAAA2hB,cACb3hB,EAAW2hB,YAAYxmB,OAAS,GAmXxBd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EACX+F,KAAM,OA/WjB4C,EAAAsS,WAAc,GAEXjY,EAAIwH,MAAA,QAAgB,yBAAA,mBAoXzB,SAlXQlB,GAmXPtG,EAlXOwH,MAAA,QAAA,mBAAA,oBAuXf,QAAS2pM,KACL,GAAI93L,GAAcvZ,EAAsBgG,sBACxCH,GAAGyrM,sBACH,IAAIxwM,IACAnF,UAAWkK,EAAG+pB,sBAAsBj0B,UAjX5Cge,UAASJ,EAAArT,OAoXLkrM,GAlXQG,gBAAiBzwM,GAAAwD,KAAA,SAAAC,GACF,MAAfA,EAAAlI,QACAwJ,EAAAyrM,oBAAc/sM,EAAAhJ,KAElBsK,EAAAsS,WAAA,GACQtS,EAAIyrM,oBAAgBtwM,OAAA,GACpBd,EAAGwH,MAAA,QAAmB,kBAAA,aAqX1BxH,EAAQwH,MAlXG,QAAA,yBAAA,eAoXhB,SAAUlB,GACTtG,EAAQwH,MAlXI,QAAG,mBAAW,gBAsXlC,QAASwlG,GAAKv0F,GAEV9S,EAAGgT,YAAa,EAChBhT,EAAGiU,aAlXY,EAmXfjU,EAAGyxD,QAAS,CACZ,IAAI/9C,GAlXQvZ,EAAuBgG,uBAmX/BlF,GACA0wM,MAlXG74L,EAAA64L,MAmXH71M,UAlXIkK,EAAA+pB,sBAAgCj0B,UAmXpCge,UAAWJ,EAAYrT,OAE3BkrM,GAlXOK,sBAAiB3wM,GAAAwD,KAAA,SAAAC,GACpB,GAAG,MAAAA,EAAAlI,OAAoB,CACpBwJ,EAAA6rM,qBAAWntM,EAAAhJ,KAmXVy8B,QAAQC,IAAIpyB,EAAG6rM,sBACf7rM,EAAG8rM,UAAYtxM,EAAO6P,KAAKrK,EAAG6rM,sBAAsBE,WACpD/rM,EAAGgsM,IAAIF,UAAY9rM,EAAG8rM,UAjXzB9rM,EAAAm0J,QAAA35J,EAAA6P,KAAArK,EAA+B6rM,sBAAAvpL,YACpCtiB,EAAAgsM,IAAA73C,QAAAn0J,EAA4Bm0J,QACpBn0J,EAAAisM,cAAezxM,EAAK6P,KAAArK,EAAA6rM,sBAAAI,cACpBjsM,EAAGgsM,IAAAC,cAAkBjsM,EAAIisM,cACzB95K,QAAOC,IAAApyB,EAAAisM,eAmXPjsM,EAAGksM,QAlXS1xM,EAAO6P,KAAArK,EAAA6rM,sBAAWK,QAmX9BlsM,EAAGgsM,IAlXIE,QAAAlsM,EAAAksM,QAmXPlsM,EAAG40D,aAlXep6D,EAAA6P,KAAArK,EAAA6rM,sBAAAj3I,aAmXlB50D,EAAGgsM,IAlXIp3I,aAAA50D,EAAA40D,aAmXP50D,EAAGmsM,UAlXI3xM,EAAA6P,KAAArK,EAAA6rM,sBAA0BM,UAmXjCnsM,EAAGgsM,IAlXIG,UAAAnsM,EAAAmsM,UAmXPnsM,EAAGosM,UAlXI5xM,EAAA6P,KAAoBrK,EAAA6rM,sBAAAO,UAmX3BpsM,EAAGgsM,IAAIK,OAASrsM,EAAGosM,UAjXnBpsM,EAAGsS,WAAY,CACf,KAAI,GAAApX,KAAA8E,GAAA6rM,qBACA,IAAA7rM,EAAA6rM,qBAAA3wM,GAAAoxM,iBAmXItsM,EAAG6rM,qBAAqB3wM,GAAGqxM,KAAO5vM,KAAKC,MAAMoD,EAAG6rM,qBAAqB3wM,GAAGoxM,gBACxEtsM,EAAGwsM,WAAaxsM,EAAG6rM,qBAAqB3wM,GAAGqxM,KA/WxDvsM,GAAA2rM,MAAA74L,EAAA64L,UAqXKtxM,GAAQwH,MAAM,QAAS,yBAA0B,eAhXzD,SAAAlB,GACItG,EAAQwH,MAAA,QAAW,mBAAK,gBAuXhC,QAAS6P,KACL,GAAIiB,GAAUtY,EAlXCsY,QAAA,eAmXX,yFACAtb,WAAW,EACX+F,KAlXI,MAqXRuV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAjXjBhT,EAAAgsM,OACAhsM,EAAAyxD,QAAA,IAiZP,QAlXOg7I,KAoXH,GAAI/4L,GAAcvZ,EAAsBgG,uBACpClF,GACAnF,UAAWkK,EAAG+pB,sBAAsBj0B,UAjX5C61M,MAAS3rM,EAAA2rM,MAmXDS,UAAWpsM,EAAGgsM,IAAIK,OAjXlBK,gBAAM/vM,KAAAqkB,UAAAhhB,EAAAwsM,YACNG,QAAQ3sM,EAAGgsM,IAAAY,QACX94L,UAAAJ,EAAsBrT,OAqX1BkrM,GAAWkB,QAAQxxM,GAAKwD,KAAK,SAAUC,GAjXvC,MAAAA,EAAAlI,QACQuB,EAAI2I,YAAgB,UAAAhC,EAAAhJ,KAAAme,QAAA,OAEpB23L,IAmXAxrM,EAAGgT,YAlXS,EAmXZ0E,MAEA3f,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,OACpD7T,EAAGgT,YAAa,IAGrB,SAlXSrS,GAmXR5I,EAlXW2I,YAAY,iCAsX/B,QAASgX,KACL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGyxD,QAAS,EACZv/C,IACAlS,EAAGgsM,OAzjBP,GAAAhsM,GAAAC,IAoXAD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAjXpGrL,EAAGsU,SAAAtU,EAAAqU,gBAAyB,GAoX5BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGmiH,UAAW,EACdniH,EAAGgmD,gBACHhmD,EAAGgsM,OACHhsM,EAAGk8G,WAEHl8G,EAAGqnG,KAlXIA,EAmXPrnG,EAAG0R,OAlXIA,EAmXP1R,EAAG0X,MAlXIA,EAmXP1X,EAAGwrM,OAlXIA,EAmXPxrM,EAAGysM,QAlXIA,EAmXPzsM,EAAGyxD,QAAS,EAEZv/C,IAkHAlS,EAAG6sM,IAlXK,SAAW/5L,GAoXf,GAAuBnd,QAAnBmd,EAAIg6L,YAA0B,CAC9B,GAAIC,GAAgBj6L,EAAIk6L,OAAOlhL,QAAQ,EAjXnCD,YAAOkhL,IAAiBj6L,EAAAg6L,aACzB9sM,EAAAitM,OAAYn6L,EAAAk6L,OAAAl6L,EAAAg6L,YACf9sM,EAAAktM,QAAA,EACIp6L,EAAAq6L,YAAMntM,EAAAitM,SAGN5yM,EAAA8C,OAAe,UAAA,iBACf9F,WAAS,EACT+F,KAAA,OAGJ0V,EAAAg6L,YAAA,OAuXAh6L,GAAIq6L,YAAc,qJAtK9B/4M,QAjXIC,OAAG,kCACHe,WAAG,UAAoBi2M,MAmkB/B,WACI,YAOA,SAAS+B,GAAiBrzM,EAAOS,EAAQP,EAASlC,EAAYsC,EAASF,EAAuB6X,EAAgBJ,EAAwBy7L,EAA2BC,EAA6BzlH,GAnV1L,QAAS31E,KACFC,GACAH,EAAAI,mBAAmBD,GAAA1T,KAAA,SAAAC,GACG,MAAtBA,EAAAlI,SACAwJ,EAAAqS,YAA0B3T,EAAAhJ,OAE1B,SAAAiL,GACA5I,EAAA2I,YAAqB,QAAA,mBAA0B,mBAqXlD,IAAIzF,IAjXR6Y,UAASJ,EAAYrT,OAoXjBgtM,GAA0BE,YAAYtyM,GAAKwD,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,QACJwJ,EAAGwtM,UAAY9uM,EAAIhJ,KAjXtBsK,EAAAsS,WAAkB,GAGvBjY,EAAAwH,MAAkB,QAAY,yBAAiB,cAE/C,SAAAlB,GACA5I,EAAA2I,YAAyB,QAAG,mBAAwB,eAuXxD,QAAS+gB,GAAoBtP,GACrBA,GACAs7L,IACA77L,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QAjXZwJ,EAAU2hB,YAAQjjB,EAAQhJ,MAC1BsK,EAAA2hB,YAAAxmB,OAAA,GACId,EAAW8C,OAAA,UAAA,oDACL9F,WAAA,EAmXM+F,KAAM,OA/Wd4C,EAAAsS,WAAe,GAEfjY,EAAAwH,MAAA,QAAA,yBAAA,mBAoXL,SAlXQlB,GAmXPtG,EAlXIwH,MAAA,QAAW,mBAAqB,qBAsXxC4rM,IAIR,QAASC,GAlXav7L,GAmXlB,GAAIA,EAAW,CACX,GAAIuB,GAAcvZ,EAAsBgG,uBAEpClF,GACAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UACpC2B,UAAWJ,EAAYrT,OAhX1B8R,IACLm7L,EAAAI,aAAAzyM,GAAAwD,KAAA,SAAAC,GACc,MAAAA,EAAAlI,QACFwJ,EAAA4tM,cAAAlvM,EAAAhJ,MACQsK,EAAA4tM,cAAAzyM,OAAA,GACJd,EAAA8C,OAAA,UAAoB,sDACpB9F,WAAA,EAmXQ+F,KAAM,OA/W1B4C,EAAAsS,WAAoB,GAqXRjY,EAAQwH,MAAM,QAAS,yBAA0B,cAEtD,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAOpE,QAASmtM,GAAW17L,EAAW27L,GAE3B,GAAIA,EAAa,CAjXjBC,GACA,IAAKr6L,GAAevZ,EAAkBgG,uBAC9BlF,GACAkX,UAAAnS,EAAA2tM,MAAkBx6L,gBAAgBhB,UAoXlC27L,YAAa9tM,EAAG2tM,MAAMK,kBAAkBF,YAjX5Ch6L,UAAAJ,EAAArT,OAoXAitM,GAA4BO,WAAW5yM,GAAKwD,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,QAjXhBwJ,EAAAiuM,YAAyBvvM,EAAAhJ,KACby8B,QAAKC,IAAApyB,EAAAiuM,cACTjuM,EAAWiuM,YAAY9yM,OAAA,GACpBd,EAAA8C,OAAA,UAAA,sDACQ9F,WAAY,EAmXX+F,KAAM,OA9WtB4C,EAAAsS,WAAA,GAqXQjY,EAAQwH,MAAM,QAAS,yBAA0B,YAhX7D,SAAelB,GACP5I,EAAA2I,YAAA,QAAA,mBAAA,iBAsXJqtM,KApWR,QAAG3lH,KAEApoF,EAAA2tM,MAAAhwJ,iBAAc,KACd39C,EAAAkuM,iBACCluM,EAAG2tM,MAAA9vJ,oBAAc,KAoXjB79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KAlXzB92C,EAAAouM,aACApuM,EAAA2tM,MAAAU,cAAY,KACZruM,EAAA2tM,MAAAW,cAAY,KACftuM,EAAAk8G,WACGl8G,EAAAyxD,QAAW,EACXzxD,EAAAuuM,mBACA,IAAAtzM,IACAkX,UAAUnS,EAAA2tM,MAAAx6L,gBAAAhB,UAoXLq8L,UAAWxuM,EAAG2tM,MAAMc,gBAAgBC,QAlXzC54M,UAAOH,QAAAqK,EAAA2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACPg4M,YAAS9tM,EAAA2tM,MAAAK,kBAAAF,YACT5B,QAAQlsM,EAAA2tM,MAAAgB,gBAAAC,cAER96L,UAAUJ,EAAArT,OAqXTwnF,GAAyBO,mBAAmBntF,GAAKwD,KAAK,SAAUC,GAlXpE,MAAAA,EAAAlI,QAoXYwJ,EAAGk8G,QAAUx9G,EAAIhJ,KAlXpBy8B,QAAOC,IAAApyB,EAAAk8G,UAoXCl8G,EAAGk8G,QAAQ/gH,OAAS,GAlX7Bd,EAAc8C,OAAA,UAAA,6DACF9F,WAAA,EACb+F,KAAc,OAKT4C,EAAAsS,WAAQ,GAsXRjY,EAnXQwH,MAAM,QAAA,yBAAA,cAqXnB,SAAUlB,GACT5I,EAnXO2I,YAAY,QAAA,mBAAA,eAuX3B,QAnXO2nF,KAoXHroF,EAAG2tM,MAnXCU,cAAc,KAoXlBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAAsB,KAlXnC79C,EAAAmuM,oBACInuM,EAAA2tM,MAAI72J,aAAc,KAClB92C,EAAGouM,aACHpuM,EAAA2tM,MAAIW,cAAM,KAoXVtuM,EAAGk8G,WACHl8G,EAAGyxD,QAnXC,EAoXJzxD,EAAGuuM,mBAlXH,IAAAtzM,IACIkX,UAAQnS,EAAA2tM,MAAWx6L,gBAAKhB,UAoXxBq8L,UAnXOxuM,EAAA2tM,MAAAc,gBAA0BC,QAoXjC54M,UAAwCH,QAA5BqK,EAAG2tM,MAAM9rL,gBAAgC7hB,EAAG2tM,MAAM9rL,gBAAgB/rB,UAAY,EAC1Fg4M,YAnXO9tM,EAAA2tM,MAAYK,kBAAAF,YAoXnB5B,QAnXSlsM,EAAG2tM,MAAAgB,gBAAoBC,cAqXhC96L,UAAWJ,EAAYrT,OAE3BwnF,GAnXsBQ,oBAASptF,GAAAwD,KAAA,SAA0BC,GAoXlC,MAAfA,EAAIlI,QAlXTwJ,EAAAkuM,cAAexvM,EAAAhJ,MACNsK,EAAAkuM,cAAe/yM,OAAA,IAoXfd,EAAQ8C,OAAO,UAAW,iEACtB9F,WAAW,EACX+F,KAAM,OAjXtB4C,EAAA2tM,MAAA3qJ,KAAA,KACGhjD,EAAA2tM,MAAa1qJ,GAAA,OAIZ5oD,EAAMwH,MAAA,QAAA,yBAAA,mBAqXP,SAnXClB,GACA5I,EAAW2I,YAAY,QAAA,mBAAA,oBAuX/B,QAAS4nF,KACL,GAAItoF,EAAG2tM,MAnXChwJ,iBAAe,CAoXnB39C,EAAG2tM,MAnXI9vJ,oBAAwB,KAoX/B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAnXI72J,aAAiB,KAoXxB92C,EAAGouM,aACHpuM,EAAG2tM,MAnXIW,cAAgB,KAoXvBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAnXS,EAoXZzxD,EAAGuuM,mBACH,IAnXItzM,IACAkX,UAAGnS,EAAA2tM,MAAex6L,gBAAehB,UACjCq8L,UAAOxuM,EAAA2tM,MAAAc,gBAAkBC,QACzB54M,UAA8BH,QAA3BqK,EAAY2tM,MAAA9rL,gBAAqC7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACpDg4M,YAAO9tM,EAAA2tM,MAAeK,kBAAAF,YACtB5B,QAAGlsM,EAAA2tM,MAAYgB,gBAAeC,cAE9BC,OAAG7uM,EAAA2tM,MAAYhwJ,iBAAAkxJ,OACf/6L,UAASJ,EAAQrT,OAqXrBwnF,GAnXeS,uBAA+BrtF,GAAKwD,KAAM,SAAGC,GAC7C,MAmXPA,EAnXIlI,QAoXJwJ,EAAGmuM,iBAAmBzvM,EAAIhJ,MACrBsK,EAAGmuM,iBAAiBhzM,OAAS,GAlXnCd,EAAY8C,OAAA,UAAA,qEAoXH9F,WAAW,EAlXpB+F,KAAA,QAwXC/C,EAAQwH,MAAM,QAAS,yBAA0B,sBAEtD,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BA/WxDV,GAAA2tM,MAAA9vJ,oBAAW,KACX79C,EAAAmuM,oBAoXAnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aAlXPpuM,EAAA2tM,MAAQW,cAAY,KAChBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAM,EACTzxD,EAAGuuM,oBAwXX,QAAShmH,KAlXN,GAAAvoF,EAAM2tM,MAAA9vJ,oBAAe,CACpB79C,EAAA2tM,MAAA72J,aAAA,KACI92C,EAAAouM,aACApuM,EAAA2tM,MAAIW,cAAoB,KACxBtuM,EAAAk8G,WAoXAl8G,EAAGyxD,QAnXI,EAoXPzxD,EAAGuuM,mBACH,IAnXItzM,IAoXAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UACpCq8L,UAnXCxuM,EAAA2tM,MAAAc,gBAAAC,QACD54M,UAA0BH,QAAlBqK,EAAO2tM,MAAA9rL,gBAA4B7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EAoX3Cg4M,YAnXI9tM,EAAW2tM,MAAAK,kBAAAF,YAoXf5B,QAnXIlsM,EAAM2tM,MAAAgB,gBAAAC,cAqXVE,UAAW9uM,EAAG2tM,MAAM9vJ,oBAAoBixJ,UAlXxCh7L,UAAIJ,EAAcrT,OAsXtBwnF,GAAyBU,qBAAqBttF,GAAKwD,KAAK,SAAUC,GAlXjE,MAAAA,EAAAlI,QACGwJ,EAAAouM,UAAc1vM,EAAAhJ,MAoXLsK,EAAGouM,UAAUjzM,OAAS,GACvBd,EAAQ8C,OAAO,UAAW,iEACtB9F,WAAW,EACX+F,KAAM,QA9WtB/C,EAAcwH,MAAA,QAAA,yBAAsB,eAEpC,SAAWlB,GACX5I,EAAA2I,YAAsB,QAAa,mBAAA,oBAuXnCV,GAAG2tM,MAAM72J,aAAe,KAlX5B92C,EAAAouM,aACIpuM,EAAA2tM,MAAQW,cAAgB,KAoXxBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAKX,QAAS/lH,KACL,GAAIxoF,EAAG2tM,MAAM72J,aAAc,CACvB92C,EAAGk8G,WAlXJl8G,EAAAyxD,QAAU,EACTzxD,EAAAuuM,mBAoXA,IAAItzM,IACAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UACpCq8L,UAAWxuM,EAAG2tM,MAAMc,gBAAgBC,QAlXvC54M,UAAQH,QAAAqK,EAAA2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACVg4M,YAAa9tM,EAAA2tM,MAAAK,kBAAAF,YACb5B,QAAYlsM,EAAA2tM,MAAAgB,gBAAAC,cAEfG,QAAA/uM,EAAA2tM,MAAA72J,aAAAi4J,QACGj7L,UAAMJ,EAAArT,OAsXLwnF,GAAyBW,2BAA2BvtF,GAAKwD,KAAK,SAAUC,GACjD,MAAfA,EAAIlI,QACJwJ,EAAGk8G,QAAUx9G,EAAIhJ,MAlX5BsK,EAAAk8G,QAAA/gH,OAAA,GACTd,EAAA8C,OAAA,UAAA,0DAoX4B9F,WAAW,EACX+F,KAAM,QAKd/C,EAAQwH,MAAM,QAAS,yBAA0B,iBAlXxD,SAAAlB,GAqXG5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAhX7DV,GAAAk8G,WACAl8G,EAAAyxD,QAAA,EACIzxD,EAAAuuM,oBAubP,QAAS9lH,KAEL,GAAIp2D,KACJ,KApXK,GAAAn3B,KAAA8E,GAAAuuM,iBACDl8K,EAAAx6B,MAqXI25D,OAAQxxD,EAAGuuM,iBAAiBrzM,GAAGs2D,OAC/Bw9I,SAAUhvM,EAAGuuM,iBAAiBrzM,GAAG8zM,SACjCC,WAAYjvM,EAAGuuM,iBAAiBrzM,GAAG+zM,YAG3C,IApXIh0M,IAqXAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UAnXpCq8L,UAAUxuM,EAAA2tM,MAAAc,gBAAAC,QAqXV54M,UApXwCH,QAApCqK,EAAW2tM,MAAG9rL,gBAAsB7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EAqXxCg4M,YApXI9tM,EAAW2tM,MAAAK,kBAAYF,YAqX3B5B,QAASlsM,EAAG2tM,MAAMgB,gBAAgBC,cAnXlC96L,UAAIJ,EAAWrT,OAqXf6uM,aApXIvyM,KAAAqkB,UAAAqR,GAsXRF,SAAQC,IAAIn3B,GACZ4sF,EApXwBY,oBAAcxtF,GAAYwD,KAAA,SAAAC,GAC9B,MAoXZA,EAAIlI,QACJuB,EAAW2I,YApXK,UAAWhC,EAAAhJ,KAAAme,QAAA,gBAqX3B3B,IACCwwF,KAED3qG,EApXW2I,YAAY,UAAAhC,EAAAhJ,KAAAme,QAAA,iBAwX5B,SAAUlT,GACT5I,EApXO2I,YAAe,iCAwX9B,QAASyuM,KAEL,GAAIl0M,IAlXRkX,UAASnS,EAAW2tM,MAAAx6L,gBAAwBhB,UAqXpCq8L,UAAWxuM,EAAG2tM,MAAMc,gBAAgBC,QAnXpC54M,UAAaH,QAAbqK,EAAa2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACbg4M,YAAA9tM,EAAA2tM,MAAAK,kBAAAF,YACA5B,QAAIlsM,EAAA2tM,MAAcgB,gBAAAC,cAClBp9I,OAAU,cAANxxD,EAAM2tM,MAAAyB,OAAApvM,EAAA2tM,MAAAU,cAAA78I,OAAAxxD,EAAA2tM,MAAAW,cAAA98I,OAqXV69I,gBApXwB,cAANrvM,EAAA2tM,MAAMyB,OAAgBpvM,EAAA2tM,MAAAU,cAAAgB,gBAAArvM,EAAA2tM,MAAAW,cAAAe,gBAqXxCC,IAAyB,cAAnBtvM,EAAG2tM,MAAMyB,OAA0BpvM,EAAG2tM,MAAMU,cAAckB,SAAWvvM,EAAG2tM,MAAMW,cAAciB,SAClGP,SApXIhvM,EAAA2tM,MAAa6B,SAqXjBP,WApXIjvM,EAAW2tM,MAAA75I,KAqXfhgD,UAAWJ,EAAY64E,SAnXvBkjH,UAAAh2L,KAsXJ0Y,SAAQC,IApXIn3B,GAqXZo3B,EAAIx6B,KAAKoD,GACTk3B,QAAQC,IApXIC,GAqXZryB,EAAGuuM,iBApXal8K,EAqXZryB,EAAGuuM,iBApXapzM,OAAW,GAqX3B6E,EAAGyxD,QAAS,EACZzxD,EAAG2tM,MAAMU,cAAgB,KACzBruM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,QAAU2J,EAAErqH,QAAQqqH,EAAEv5F,IAAItsB,EAAGuuM,iBAAkB,SAAUzrM,GACxD,MApXO+iH,GAAA5oH,OAAA+C,EAAYk8G,QAAA,SAAA1uG,GAqXf,MAAOA,GAAEgkD,QAAU1uD,EAAK0uD,aAOhCxxD,EAAGyxD,QAAS,EA0CpB,QAASixC,KACL1iG,EAAG2tM,MApXKx6L,gBAAgB,KAqXxBnT,EAAG2tM,MAAMc,gBApXkB,KAqX3BzuM,EAAG2tM,MAAM9rL,gBApXkB,KAqX3B7hB,EAAG2hB,eACH3hB,EAAG2tM,MAAMK,kBAAoB,KAC7BhuM,EAAG4tM,iBACH5tM,EAAG2tM,MAAMgB,gBAAkB,KAC3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MApXK+B,kBAAe,KAqXvB1vM,EAAG2vM,iBACH3vM,EAAG2tM,MApXM57E,IAAA,KAqXT/xH,EAAG2tM,MApXKyB,OAAQ,KAqXhBpvM,EAAG2tM,MAAMU,cAAgB,KACzBruM,EApXGk8G,WAqXHl8G,EAAG2tM,MApXChwJ,iBAAuB,KAqX3B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAAsB,KAC/B79C,EAAGmuM,oBAnXPnuM,EAAA2tM,MAAS72J,aAAA,KACL92C,EAAGouM,aACHpuM,EAAG2tM,MAAAW,cAAU,KACbtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAA,EACHzxD,EAAGuuM,oBACHvuM,EAAG2tM,MAAA75I,KAAA,KACH9zD,EAAG2tM,MAAM6B,SAAA,KAuXb,QApXO/B,KACHztM,EAAG2tM,MAAAc,gBAAS,KACZzuM,EAAG2tM,MAAA9rL,gBAAmB,KACtB7hB,EAAA2hB,eAqXA3hB,EAAG2tM,MApXCK,kBAAoB,KAqXxBhuM,EAAG4tM,iBACH5tM,EAAG2tM,MApXCgB,gBAAqB,KAqXzB3uM,EAAGiuM,eACHjuM,EAAG2tM,MApXC+B,kBAAkB,KAqXtB1vM,EAAG2vM,iBACH3vM,EAAG2tM,MApXC57E,IAAW,KAqXf/xH,EAAG2tM,MAAMyB,OAAS,KAnXlBpvM,EAAA2tM,MAAAU,cAAyB,KAqXzBruM,EAAGk8G,WACHl8G,EAAG2tM,MApXKhwJ,iBAAmB,KAqX3B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBApXkB,KAqX3B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aApXa,KAqXtB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cApXY,KAqXrBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAGP,QAASqB,KACL5vM,EApXG2tM,MAAA9rL,gBAAe,KAqXlB7hB,EAAG2tM,MApXCK,kBAAuB,KAqX3BhuM,EAAG2tM,MAAMgB,gBAAkB,KAC3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBAAoB,KAnXjC1vM,EAAA2vM,iBACI3vM,EAAA2tM,MAAO57E,IAAM,KAqXb/xH,EAAG2tM,MApXIyB,OAAM,KAqXbpvM,EAAG2tM,MApXIU,cAAA,KAqXPruM,EAAGk8G,WACHl8G,EAAG2tM,MApXIhwJ,iBAAY,KAqXnB39C,EAAGkuM,iBACHluM,EAAG2tM,MApXI9vJ,oBAAU,KAqXjB79C,EAAGmuM,oBACHnuM,EAAG2tM,MApXI72J,aAAA,KAqXP92C,EAAGouM,aACHpuM,EAAG2tM,MApXKW,cAAc,KAqXtBtuM,EAAGk8G,WACHl8G,EAAGyxD,QApXK,EAqXRzxD,EAAGuuM,oBAGP,QAASsB,KACL7vM,EAAG2tM,MApXKK,kBAAW,KAqXnBhuM,EAAG2tM,MAAMgB,gBAAkB,KAC3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MApXK+B,kBAAmB,KAqX3B1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAAM57E,IApXG,KAqXZ/xH,EAAG2tM,MAAMyB,OApXO,KAqXhBpvM,EAAG2tM,MAAMU,cApXW,KAqXpBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAAsB,KAC/B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aApXW,KAqXpB92C,EAAGouM,aACHpuM,EAAG2tM,MApXIW,cAAe,KAqXtBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAGP,QApXQR,KAqXJ/tM,EAAG2tM,MApXIgB,gBAAM,KAqXb3uM,EAAGiuM,eACHjuM,EAAG2tM,MApXI+B,kBAAsB,KAqX7B1vM,EAAG2vM,iBAEH3vM,EAAG2tM,MApXIyB,OAAA,KAqXPpvM,EAAG2tM,MAAMU,cAAgB,KACzBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBAnXPluM,EAAA2tM,MAAS9vJ,oBAAuB,KAC5B79C,EAAAmuM,oBAqXAnuM,EAAG2tM,MApXI72J,aAAM,KAqXb92C,EAAGouM,aACHpuM,EAAG2tM,MApXIW,cAAM,KAqXbtuM,EAAGk8G,WACHl8G,EAAGyxD,QApXI,EAqXPzxD,EAAGuuM,oBACHvuM,EAAG2tM,MApXK57E,IAAM,KAhTlB,GAAI/xH,GAAKC,IAETD,GAAGqU,kBAlXiBhJ,MAAK,IAAcA,MAAM,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAmX7CrL,EAAGsU,SAAWtU,EAlXEqU,gBAAW,GAoX3BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAlXa,SAAWC,GAmXvBzU,EAAGuU,YAAcE,EAGrB,IAAItC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEuB,EAlXQvZ,EAA4BgG,sBAmXxCH,GAAGyhB,oBAAsBA,EACzBzhB,EAAG0tM,aAlXQA,EAmXX1tM,EAAG6tM,WAlXSA,EAoXZ7tM,EAAGooF,mBAlXYA,EAmXfpoF,EAAGqoF,oBAlXEA,EAmXLroF,EAAGsoF,uBAAyBA,EAC5BtoF,EAAGuoF,qBAAuBA,EAjX1BvoF,EAAAwoF,2BAAwBA,EAmXxBxoF,EAAGyoF,oBAlXWA,EAmXdzoF,EAAGmvM,oBAlXsBA,EAmXzBnvM,EAAG0iG,MAAQA,EACX1iG,EAAG4vM,aAAeA,EAjXlB5vM,EAAA6vM,aAAkBA,EAmXlB7vM,EAAGuuM,oBACHvuM,EAAGyxD,QAlXI,EAmXPv/C,IAyHAlS,EAAG8vM,eAAiB,WAjXxB,iBAAA9vM,EAAA2tM,MAAAyB,OACY/mH,KAqXAroF,EAAG2tM,MAAMyB,OAAS,aAClBhnH,MA/IRpoF,EAAG+vM,cAAA,WACA,GAAe,cAAf/vM,EAAA2tM,MAAAyB,OAAe,CACf,GAAAn0M,IAqXSkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UAnX7Cq8L,UAAAxuM,EAAqB2tM,MAAAc,gBAAAC,QACrB54M,UAAsBH,QAAtBqK,EAAsB2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACtBg4M,YAAA9tM,EAAyB2tM,MAAAK,kBAAAF,YACzB5B,QAAAlsM,EAAA2tM,MAAuBgB,gBAAAC,cACvB96L,UAAAJ,EAA6BrT;CAE7BwnF,GAAsBO,mBAAAntF,GAAAwD,KAAA,SAAAC,GACd,MAAAA,EAAAlI,QACRwJ,EAAek8G,QAAAx9G,EAAAhJ,KACAsK,EAAAuuM,iBAAApzM,OAAA,IACf6E,EAAmBk8G,QAAA2J,EAAArqH,QAAAqqH,EAAAv5F,IAAAtsB,EAAAuuM,iBAAA,SAAAzrM,GACV,MAAA+iH,GAAA5oH,OAAA+C,EAAAk8G,QAAA,SAAA1uG,GACZ,MAAAA,GAAAgkD,QAAA1uD,EAAA0uD,cA2XgBn3D,EAAQwH,MAAM,QAAS,yBAA0B,cAEtD,SApXClB,GAqXA5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAjXxD,CAqXA,GAAIzF,IAnXRkX,UAAAnS,EAAA2tM,MAA0Bx6L,gBAAiBhB,UACnCq8L,UAAIxuM,EAAA2tM,MAAgBc,gBAAAC,QACpB54M,UAAmBH,QAAhBqK,EAAY2tM,MAAI9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACnBg4M,YAAG9tM,EAAY2tM,MAAAK,kBAAAF,YAqXf5B,QAASlsM,EAAG2tM,MAAMgB,gBAAgBC,cAClCG,QApXC/uM,EAAA2tM,MAAA72J,aAAAi4J,QACDj7L,UAAQJ,EAAerT,OAE5BwnF,GAAeW,2BAAAvtF,GAAAwD,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,QAqXHwJ,EAAGk8G,QAAUx9G,EAAIhJ,KACbsK,EAAGuuM,iBAAiBpzM,OAAS,IAC7B6E,EAAGk8G,QAAU2J,EAAErqH,QAAQqqH,EAAEv5F,IAAItsB,EAAGuuM,iBAAkB,SAAUzrM,GACxD,MAAO+iH,GAAE5oH,OAAO+C,EAAGk8G,QAAS,SAAU1uG,GAnXrD,MAAoBA,GAAAgkD,QAAW1uD,EAAA0uD,cA2XxBn3D,EApXIwH,MAAQ,QAAO,yBAAW,iBAsXnC,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAyChE,IAAI2xB,KAuCJryB,GAAGqkB,WAAa,SAAUvR,GAlXvB,GAAAH,GAAAtY,EAAiBsY,QAAY,UAC5B,4CACOtb,WAAM,EACT+F,KAAA,MAuXJuV,GApXIjT,OAAAjB,KAAA,WAqXA,GAAI2W,GAAQpV,EAAGuuM,iBAAiBnrM,QAAQ0P,EACxC9S,GAAGuuM,iBAAiBj5K,OAAOlgB,EAAO,GAC9BpV,EAAGuuM,iBAAiBpzM,OAAS,IAC7B6E,EAAGyxD,QAAS,GAEhBzxD,EAAG+vM,gBAnXJh4M,EAAM2I,YAAA,UAAmB,wBAAA,cAuXhCV,EAAGgwM,eApXI,SAAmBl9L,GAEtB,GAAGsC,GAAApV,EAAYuuM,iBAAAnrM,QAAA0P,EACf9S,GAAGuuM,iBAAMn5L,GAAgB45L,SAAAl8L,EAAAk8L,SACzBj3M,EAAS2I,YAAA,UAAgB,uBAAA,WACzBoS,EAAGynD,QAAU,GAuXjBv6D,EAAGiwM,SApXW,SAAAn9L,GAsXV9S,EAAGivM,WApXYn8L,EAAGm8L,WAqXlB50M,EApXI8C,OAAW,OAAI6C,EAAMivM,YACrB53M,WAAA,EACA+F,KAAA,QAwgBR4C,EAAGkwM,KAAO,WACc,QAAhBlwM,EAAG2tM,MAAM57E,IACT/xH,EApXG2tM,MAAA6B,SAAe,GAsXZxvM,EAAG2tM,MAAM75I,KAAO,KACtB9zD,EAAG2tM,MAAM6B,SAAW,KACpBxvM,EApXC2tM,MAAA6B,SAAA,0NAlVbp7M,QACKC,OAAO,kCACPe,WAlXW,mBAAeg4M,MA+jCnC,WACI,YAOA,SAAS+C,GApXOp2M,EAAAE,EAAcwQ,EAAM1S,EAAgByC,EAAAH,EAAAF,EAAAmxM,EAAA15L,EAAA25L,EAqXhD6E,GAqCA,QAASl+L,KAGL,GAAIC,GApXIhY,EAAsBgG,uBAAkBwU,gBAAAxC,SAqXhDP,GApXoB8P,eAAMvP,GAAgB1T,KAAA,SAAAC,GACvB,MAAXA,EAAAlI,QAqXAwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAnXzBsK,EAAA2hB,YAAAxmB,OAAyB,GACjBd,EAAI8C,OAAW,UAAK,oDACjB9F,WAAU,EACT+F,KAAG,OAuXX4C,EAAGsS,WAAY,GAGfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MApXC,QAAA,mBAAA,oBAwXjB,QAASg5G,KACL,GAAI76G,EAAG+pB,sBAAuB,CAC1BsmL,GACA,IApXC38L,GAAAvZ,EAAAgG,uBACGlF,GACAnF,UAAWkK,EAAG+pB,sBAAsBj0B,UACpCge,UAAWJ,EAASrT,OAsXxB+vM,GApXIE,kBAAsBr1M,GAAAwD,KAAA,SAAkBC,GACtB,MAAlBA,EAAAlI,QACAwJ,EAAAuwM,mBAAkB7xM,EAAahJ,MAC/BsK,EAAWuwM,mBAAYp1M,OAAA,GAqXfd,EAAQ8C,OAAO,UAAW,gDAAkD6C,EAAG+pB,sBAAsBzH,aAnXjHjrB,WAAyB,EACb+F,KAAA,OAwXJ4C,EAAGsS,WApXY,GAsXfjY,EAAQwH,MAAM,QAAS,yBAA0B,QAEtD,SAASnD,GACRrE,EAAQwH,MAAM,QAAS,mBAAoB,UAMvD,QAAS2uM,GApXG9iL,GAqXK,GAATA,GAAc1tB,EAAG+pB,uBACjBsmL,IACAI,KACgB,GAAT/iL,GAAc1tB,EAAG0wM,wBACxBC,IACAF,KAnXC,GAAA/iL,GAAA1tB,EAAsBisH,UAC3B2kF,IACU,GAAAljL,GAAA1tB,EAAA2vC,QACV3vC,EAAK6wM,gBACDJ,MAEI,GAAA/iL,EACA2iL,IAqXgB,GAAT3iL,GACPijL,IAnXJF,KAEoB,GAAT/iL,EACXkjL,IACgB,GAAhBljL,IACA1tB,EAAA6wM,iBACAJ,KAyXR,QApXQA,KAsXJ,GAAI/8L,GApXIvZ,EAAAgG,uBAqXJlF,GACAnF,UApXOkK,EAAA+pB,sBAAAj0B,UAqXPg7M,OApXsCn7M,QAAlCqK,EAAA0wM,uBAA2C1wM,EAAA0wM,uBAASI,OAAA,EAqXxDphK,SAA2B/5C,QAAhBqK,EAAGisH,WAA0C,MAAhBjsH,EAAGisH,UAAqBhyH,EAAQ,QAAQ+F,EAAGisH,UAAW,cAAgB,KAC9Gt8E,OAAsBh6C,QAAbqK,EAAG2vC,QAAoC,MAAb3vC,EAAG2vC,OAAkB11C,EAAQ,QAAQ+F,EAAG2vC,OAAQ,cAAgB,KACnG77B,UAAWJ,EAAYrT,OAE3B+vM,GApXIW,cAAW91M,GAAYwD,KAAA,SAAAC,GAqXJ,MAAfA,EAAIlI,QACJwJ,EAAG6wM,aAAenyM,EAAIhJ,KAnXxBsK,EAAAsS,WAAA,GAGFjY,EAAMwH,MAAA,QAAA,yBAAA,yBAsXP,SApXClB,GACAtG,EAAAwH,MAAc,QAAM,mBAAgB,0BAyX5C,QApXQwlG,GAAAv0F,GAqXJ9S,EAAGgxM,sBACHhxM,EAAGgT,YApXW,EAqXdhT,EAAGiU,aApXa,EAqXhBjU,EAAGsS,WApXY,CAqXf,IApXIoB,GAAWvZ,EAAAgG,uBAqXXlF,GAnXJg2M,MAAQn+L,EAAIm+L,MACRn7M,UAAKkK,EAAA+pB,sBAAAj0B,UACTge,UAAYJ,EAAArT,OAEZ+vM,GAAOc,wBAA0Bj2M,GAAGwD,KAAA,SAAAC,GAChC,GAAY,MAATA,EAAAlI,OAAS,CACT27B,QAAMC,IAAA1zB,EAAAhJ,MAENsK,EAAAmxM,oBAA0BzyM,EAAGhJ,KAAAw7M,wBAC5BlxM,EAAAgxM,mBAAmBtyM,EAAShJ,KAAAs7M,mBAqX5BhxM,EAAGsiB,YApXU9nB,EAAU6P,KAAKrK,EAAAmxM,qBAAA7uL,YAqX5BtiB,EAAGoxM,GAAG9uL,YAActiB,EAAGsiB,YACvBtiB,EAAGisM,cAAgBzxM,EAAO6P,KAAKrK,EAAGmxM,qBAAqBlF,cACvDjsM,EAAGoxM,GAAGnF,cAAgBjsM,EAAGisM,cACzBjsM,EAAGqxM,YAAc72M,EAAO6P,KAAKrK,EAAGmxM,qBAAqBE,YACrDrxM,EAAGoxM,GAAGC,YAAcrxM,EAAGqxM,YAlXxBrxM,EAAAksM,QAAS1xM,EAAA6P,KAAArK,EAAAmxM,qBAAAjF,QAqXRlsM,EAAGoxM,GAAGlF,QAAUlsM,EAAGksM,QACnBlsM,EAAGm/C,UAAY3kD,EAAO6P,KAAKrK,EAAGmxM,qBAAqBhyJ,UACnDn/C,EAAGoxM,GAAGjyJ,UAAYn/C,EAAGm/C,UAnX9Bn/C,EAAAsxM,gBAA4B92M,EAAA6P,KAAArK,EAAAmxM,qBAAAG,gBAqXnBtxM,EAAGoxM,GAAGE,gBAAkBtxM,EAAGsxM,gBAnX/BtxM,EAAAuxM,kBAA0B/2M,EAAA6P,KAAArK,EAAAmxM,qBAAAI,kBAC1BvxM,EAAAoxM,GAAAG,kBAAAvxM,EAAAuxM,kBACIvxM,EAAAsS,WAAW,EAsXXtS,EAAGixM,MAAQn+L,EAAIm+L,KACf,KAAK,GAAI/1M,KAAK8E,GAAGgxM,mBAnXjBhxM,EAAOgxM,mBAAiB91M,GAAAs2M,gBAAA70M,KAAAC,MAAAoD,EAAAgxM,mBAAA91M,GAAAu2M,YAGxBj3M,GAAGqI,QAAA7C,EAAAgxM,mBAA6B,SAAAxjM,GAC7BhT,EAAA8xB,IAAS9e,EAAAgkM,gBAAA,SAAAv2M,GAqXJ,MAAOA,GAAIy2M,kBAAmB,MAGtC1xM,EAAGsS,WAAY,EACf6f,QAAQC,IAAI5kB,EAAEgkM,iBAnXvBr/K,QAAiBC,IAAApyB,EAAAgxM,wBAGb32M,GAAAwH,MAAiB,QAAO,yBAAe,yBAE1C,SAAIlB,GAqXAtG,EAAQwH,MAAM,QAAS,mBAAoB,0BAKnD,QApXI8vM,GAA0B7+L,GAsX1B,GApXIY,GAAMvZ,EAAAgG,uBAqXNlF,GACAg2M,MAAOn+L,EAAIm+L,MACXn7M,UAAWkK,EAAG+pB,sBAAsBj0B,UACpCge,UAAWJ,EAAYrT,OAE3B+vM,GAAUwB,qBAAqB32M,GAAKwD,KAAK,SAASC,GAnXrC,MAARA,EAAAlI,OACFwJ,EAAM6xM,sBAAkBnzM,EAAAhJ,KAExB2E,EAAMwH,MAAA,QAAkB,yBAAA,yBAExB,SAAMnD,GACNrE,EAAAwH,MAAA,QAAgB,mBAAA,0BAwXvB,QApXOiwM,KAEH,GAAGp+L,GAAevZ,EAAAgG,uBACflF,GACAg2M,MAAAjxM,EAAUixM,MACVn7M,UAAMkK,EAAA+pB,sBAAmBj0B,UACzBi8M,YAAA/xM,EAAgBoxM,GAAAY,cAAAD,YAChBj+L,UAAMJ,EAAArT,OAET+vM,GAAS6B,qBAAeh3M,GAAAwD,KAAA,SAAAC,GACT,MAAZA,EAAAlI,OACAwJ,EAAMkyM,sBAAgBxzM,EAAAhJ,KAEtB2E,EAASwH,MAAA,QAAA,yBAAA,yBAET,SAAMnD,GACNrE,EAAMwH,MAAA,QAAW,mBAAA,0BAyXxB,QApXOswM,KAEH,GAAGz+L,GAAMvZ,EAAoBgG,uBAC1BlF,GACAg2M,MAAMjxM,EAAAixM,MACNn7M,UAAAkK,EAAc+pB,sBAAAj0B,UACdge,UAAMJ,EAAArT,OAET+vM,GAASgC,gBAAMn3M,GAAAwD,KAAA,SAAAC,GACG,MAAfA,EAAMlI,OACNwJ,EAAMqyM,iBAAgB3zM,EAAAhJ,KAEtB2E,EAAMwH,MAAA,QAAmB,yBAAA,yBAEzB,SAAMnD,GACNrE,EAAAwH,MAAA,QAAmB,mBAAA,0BAwX1B,QApXOywM,KAEHtyM,EAAGuyM,qBAAmB,EAqXtBvyM,EAAGwyM,gBAAiB,CACpB,IAAI9+L,GAAcvZ,EAAsBgG,sBAnX5C,KAASH,EAAAwyM,eAAe,CACjB,GAAAv3M,IACAw3M,aAAMzyM,EAAAoxM,GAAAsB,SACN5+L,UAAMJ,EAAkBrT,OAExB+vM,GAAMuC,iBAAoB13M,GAAAwD,KAAA,SAAAC,GAC1BA,EAAAhJ,KAAgBke,aAAA,EACV7b,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,aAGZ9b,EAAU2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,aAEV7T,EAAAgT,YAAgB,EAChBhT,EAAMuyM,qBAAsB,EAE5BvyM,EAAMoxM,GAAAsB,SAAe/8M,OACrBw8M,KAEA,SAAUxxM,GACV5I,EAAS2I,YAAA,kCA2XhB,QApXOkyM,KACH5yM,EAAGuyM,qBAAM,EACTvyM,EAAGwyM,gBAAgB,EAuXvB,QApXOK,KACH7yM,EAAGuyM,qBAAU,EACbvyM,EAAGwyM,gBAAM,EACTxyM,EAAGoxM,GAAAsB,SAAA,KACH1yM,EAAGoxM,GAAA0B,iBAAM,KAwXb,QApXOphM,KACH,GAAGiB,GAAUtY,EAAAsY,QAAA,eACV,yFACAtb,WAAA,EAqXK+F,KAAM,MAjXduV,GAAGjT,OAAMjB,KAAA,WACNuB,EAAAgT,YAAc,EACdhT,EAAAoxM,QA0EP,QAAG2B,KAEH,GAAAj6J,GAAWt+C,EAAUyC,OAAA+C,EAAAgxM,mBAAA,SAAAxjM,GAIlB,MAHAA,GAAAwlM,WAAWx4M,EAAAyC,OAAAuQ,EAAAgkM,gBAAA,SAAAv2M,GAsXF,MAAOA,GAAIy2M,mBAnXpBlkM,EAAAwlM,WAAiB73M,OAAA,IAwXZ+gH,IAnXL1hH,GAAAqI,QAASi2C,EAAA,SAAAtrC,GACT,GAAQvS,IACA61M,OAAAtjM,EAAAsjM,OACCmC,gBAAAzlM,EAAAylM,gBACTzB,mBAEAh3M,GAAAqI,QAAkB2K,EAAAwlM,WAAA,SAAAt/I,GAClBz4D,EAAAu2M,gBAAe35M,MACfi5M,OAAiBp9I,EAAAo9I,OACjB15K,WAAiBs8B,EAAAt8B,WACRH,QAAAy8B,EAAAz8B,QACTi8K,OAAcx/I,EAAAw/I,OACjBC,QAAAz/I,EAAAy/I,YAwXQj3F,EAAQrkH,KAAKoD,IAnXjB,IAAIyY,GAAYvZ,EAAsBgG,sBAgYtC,IA1X2B,GAqXvBH,EAAGoxM,GAAGY,cArXMD,YAsXZ/xM,EAAGozM,WArXSpzM,EAAMoxM,GAAAiC,mBAAAC,UAuXlBtzM,EAAGslB,WAAatlB,EAAGoxM,GAAGt1I,mBAAmBxkC,aAEzC4kF,EAAQ/gH,OAAS,EAAG,CACpB,GAAIF,IApXAnF,UAAQkK,EAAM+pB,sBAASj0B,UAsXvBm7M,MAAOjxM,EAAGixM,MApXfsC,UAAcvzM,EAAAoxM,GAAAY,cAAAD,YACbyB,YAAcxzM,EAAAozM,YAASpzM,EAAAslB,WAsXnBmuL,aAAczzM,EAAGoxM,GAAG0B,iBAAiBY,WACrCC,UAAWh3M,KAAKqkB,UAAUk7F,GAC1BpoG,UAAWJ,EAAYrT,OAlX3B+vM,GAAA2C,OAAA93M,GAAAwD,KAAA,SAAAC,GACkB,MAAdA,EAAAlI,QACAwJ,EAAM4zM,SAAAp5M,EAAA6P,KAAA3L,EAAAhJ,MAAAk+M,SACNv5M,EAAW8C,OAAG,oBAAsB,GAAA6C,EAAA4zM,UAAAv8M,WAAA,EAAA+F,KAAA,OAuXhCrF,EAAW2I,YAAY,UAAW,wBAAyB,iBAnX3DgX,MAEA3f,EAAQ2I,YAAA,UAAmB,2BAAY,iBAsXvCV,EAAGgT,YArXS,IAwXjB,SAASrS,GACR5I,EAAW2I,YAAY,qCAG3BrG,GAAQ8C,OArXG,UAAA,qBAsXP9F,WArXI,EAsXJ+F,KAAM,OA2BlB,QAASsa,KAEL1X,EAAGgT,YArXY,EAsXfhT,EAAG+S,WArXQ,EAsXXb,IAEAlS,EAAGoxM,MAKP,QArXQ17I,KACJr7D,EAAI8C,OAAM,UAAA,oCACN9F,WAAW,EACX+F,KAAA,OA2XR,QArXQizM,KAsXJrwM,EAAG6wM,gBACH7wM,EAAG0wM,uBArXoB,KAsXvB1wM,EAAGuwM,sBACHvwM,EAAGisH,UArXQ,KAsXXjsH,EAAG2vC,OArXK,KAwXZ,QArXQghK,KAsXJ3wM,EAAG6wM,gBACH7wM,EAAGisH,UAAY,KACfjsH,EAAG2vC,OAAS,KAGhB,QArXOihK,KACH5wM,EAAG2vC,OAAA,KA+ZP,QAASv2B,GArXM1jB,GAsXX,GAAI2jB,GArXI3jB,EAAQ2jB,KAsXZ9iB,EArXIb,EAAQa,IAsXhB,OAAgB,QAATA,GAAqC,KAAlB8iB,EAAKC,SA6DnC,QAASC,GArXM7jB,GAsXX,GAAI2jB,GArXI3jB,EAAQ2jB,KAsXZ9iB,EAAOb,EAAKa,IAChB,IArXY,QAATA,EAwXC,IAAK,GAvXLijB,GAAc,GAAAC,MAASJ,GAAAK,SAAA,EAAoB,EAAA,EAAA,GAuXlCxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAnXvE,IAAAF,IAAAI,EACG,MAAA5Z,GAAA2Z,OAAsBze,GAAA1E,OAyXzB,MArXI,GAtQR,GAAIwJ,GAAKC,IAETD,GAAGqU,kBApXqBhJ,MAAM,IAAAA,MAAgB,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAqX9CrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YApXS,EAqXZvU,EAAGwU,qBAAuB,SAASC,GAC3BzU,EAAGuU,YAAcE,GAGzBzU,EAAGgT,YApXa,EAqXhBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGmiH,UAAW,EAEdniH,EAAGuyM,qBAAsB,EACzBvyM,EAAGwyM,gBAAiB,EACpBxyM,EAAGoxM,MAGHpxM,EAAGqnG,KAAOA,EACVrnG,EAAG0R,OApXSA,EAqXZ1R,EAAG0X,MAAQA,EACX1X,EAAGwwM,MAAQA,EACXxwM,EAAG66G,OApXMA,EAqXT76G,EAAG2xM,qBApXkBA,EAqXrB3xM,EAAG8xM,qBApXiBA,EAqXpB9xM,EAAGmyM,gBApXQA,EAqXXnyM,EAAGsyM,aAAeA,EAClBtyM,EAAG6yM,eAAiBA,EACpB7yM,EAAG4yM,eAAiBA,EACpB5yM,EAAG+yM,OAASA,EAnXZ/yM,EAAG01D,YAAAA,EAqXHxjD,IA3DAlS,EAAGuL,OAAO,SAAAuH,GAuXN,GAAI0+L,GAAkB1+L,EAAI0+L,eAC1BxxM,GAAGwxM,gBApXgBA,CAqXnB,IApXIqC,GAAS,CAsXb,KAAK,GAAI34M,KAAKs2M,GACNA,EAAgBt2M,GAAGw2M,mBACnBmC,GAAkChoL,WAAW2lL,EAAgBt2M,GAAGi4M,SAGxErgM,GAAIghM,UAAYD,CAChB,IAAIE,GAAMloL,WAAWgoL,GAAgB/nL,QAAQ,EAC7ChZ,GAAImgM,gBAAkBpnL,WAAWkoL,GAnXjC/zM,EAAAg0M,eAAAlhM,EAAAmhM,OAAAnhM,EAAAghM,UACRn+M,QAAAmd,EAAAghM,UAqXgBhhM,EAAIohM,OAASl0M,EAAGg0M,gBAChBh0M,EAAGm0M,OAASrhM,EAAIohM,OAASl0M,EAAGg0M,eApX5Ch0M,EAAAo0M,QAAA,EACYthM,EAAAqhM,OAAAn0M,EAAAm0M,SAuXIn0M,EAAGo0M,QAAUthM,EAAIohM,OAASl0M,EAAGg0M,eAC7Bh0M,EAAGm0M,OAAS,EApXZrhM,EAAAqhM,OAAOn0M,EAASo0M,UA2XpBthM,EAAIghM,UAAY,EApXrBhhM,EAAAmgM,gBAAc,IAscjBjzM,EAAGq0M,YAAc,SAASvhM,GAnX1B9S,EAAAgT,YAAe,EACXhT,EAAAk3H,WAsXAl3H,EAAGk3H,QArXCpkH,EAAA0iD,YAEO7/D,QAqXPqK,EArXGk3H,SAAqB,MAAAl3H,EAAAk3H,QACxB78H,EAAA8C,OAAA,UAAA,mCACA9F,WAAA,EACG+F,KAAI,QAIP4C,EAAAs0M,SAAA95M,EAAA6P,KAAArK,EAAAk3H,SAAAo9E,SAsXAt0M,EArXGoxM,GAAAkD,SAAAt0M,EAAAs0M,WAwXXt0M,EAAGiP,MAAQ,WACPjP,EAAGk3H,YA4CPl3H,EAAGqa,MArXK,WAsXJra,EAAGsa,GArXC,GAAAb,OAuXRzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GArXK,MAwXZta,EAAGua,eACCC,YArXWjB,EAsXXkB,QArXQ,GAAGhB,MAAA,KAAA,EAAgB,KAwX/BzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WArXW,KAsXXtB,QArXQ,GAAGpB,MAAG,KAAU,GAAG,IAuX3BqB,YArXW,GAwXf9a,EAAGkrH,UACCtwG,aArXcxB,EAsXd+C,WArXW,KAsXXtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QArXQ,GAAGhB,MAsXXqB,YArXa,GAwXjB9a,EAAGmrH,cAAgB,WAEfnrH,EAAGkrH,SArXSzwG,QAAOza,EAAMisH,WA+X7BjsH,EAAGgb,MAAQ,WACPhb,EArXGib,OAAApM,QAAc,GAwXrB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACnB,IAAIwL,GAAQ,GAAIZ,MApXpB06B,EAAS,EAELn0C,GAAAm5B,SACIte,QAAM,GAAApB,MAAAY,EAAA65B,cAAAC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,aA0Xdhc,EAAGob,MArXC,WAsXApb,EAAGqb,OArXKxM,QAAI,GAwXhB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAAS,GAGvB7O,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SArXC,eAAA,aAAA,aAAA,aAsXJ5b,EAAG6b,OArXK7b,EAAA4b,QAAc,GAsXtB5b,EAAG8b,iBArXW,cAuXd9b,EAAGib,QACCpM,QArXI,GAwXR7O,EAAGmb,QACCtM,QArXQ,GAuXZ7O,EAAGqb,QACCxM,QArXQ,GAwXZ7O,EAAGub,QACC1M,QAAQ,EAGZ,IAAIkN,GAAW,GAAItC,KApXnBsC,GAASP,QAAAO,EAAAC,UAAkB,EAsX3B,IArXIC,GAAA,GAAAxC,KAsXJwC,GArXQT,QAAcO,EAAAC,UAAA,GAsXtBhc,EAAG2Z,SACCN,KArXI0C,EAsXJvlB,OArXI,SAuXJ6iB,KAAM4C,EApXNzlB,OAAA,4KA5PRpC,QACKC,OApXO,kCAqXPe,WApXU,SAAS+6M,MA0/B5B,WACI,YAOA,SAASoE,GArXOx6M,EAAME,EAAWwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAA6X,EAsX7Bs5L,EArXYkJ,EAAA5iM,EAAAhX,GA0ZZ,QAASsX,KACL,GAAIwB,GAAcvZ,EAAsBgG,uBACpCgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EH,GAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAExD,IAAIzF,IACA6Y,UAAWJ,EAAYrT,OAE3BirM,GAAWmJ,cAAcx5M,GAAKwD,KAAK,SAASC,GACrB,MAAfA,EAAIlI,QACJwJ,EAAG00M,YAAch2M,EAAIhJ,KACrBy8B,QAAQC,IAAIpyB,EAAG00M,aACf10M,EAAGsS,WAAY,EACfkiM,EAAWG,eAAe15M,GAAKwD,KAAK,SAASC,GACtB,MAAfA,EAAIlI,QACJwJ,EAAG40M,iBAAmBl2M,EAAIhJ,KAC1By8B,QAAQC,IAAIpyB,EAAG40M,kBACf50M,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAIzDxH,EAAQwH,MAAM,QAAS,yBAA0B,YAEtD,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QArXQ+gB,GAAkBtP,EAAI5T,GAEtB4T,GAsXAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GApXrD,MAALA,EAAKlI,QACNwJ,EAAA2hB,YAAmBjjB,EAAAhJ,KACnBy8B,QAAAC,IAAApyB,EAAiB2hB,cAsXR3hB,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDApX1B9F,WAAA,EACN+F,KAAW,OAKV4C,EAAAsS,WAAa,EACb/T,GACCA,KAEDlE,EAAAwH,MAAc,QAAS,yBAAG,mBAuX9B,SArXKlB,GAsXJtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAQvD,QAAS6rM,GAAav7L,EAAW5T,GAC7B,GAAImV,GAAcvZ,EAAsBgG,uBAEpClF,GApXRkX,UAAkBnS,EAAA60M,IAAA1hM,gBAAAhB,UAsXV2B,UAAWJ,EAAYrT,OAnXvB8R,IAsXAm5L,EArXWoC,aAAIzyM,GAAAwD,KAAA,SAAAC,GAsXQ,MAAfA,EAAIlI,QApXLwJ,EAAE4tM,cAAWlvM,EAAShJ,KAsXrBy8B,QAAQC,IAAIpyB,EAAG4tM,gBACV5tM,EAAG4tM,cAAczyM,OAAS,GApX7Bd,EAAA8C,OAAA,UAAA,sDAsXM9F,WAAW,EApXhB+F,KAAM,OAGb4C,EAAAsS,WAAmB,EACnB/T,GAsXQA,KAnXJlE,EAAAwH,MAAA,QAAqB,yBAAA,cAuX1B,SArXKlB,GAsXJ5I,EArXI2I,YAAW,QAAA,mBAAA,eA0X3B,QArXQmtM,KAEJ,GAAIn6L,GAAcvZ,EAAsBgG,uBAsXpClF,GACAkX,UAAWnS,EAAG60M,IAAI1hM,gBAAgBhB,UAClCrc,UAAWkK,EAAG60M,IAAIhzL,gBAAgB/rB,UAClCg4M,YAAa9tM,EAAG60M,IAAIC,kBAAkBhH,YACtCh6L,UAAWJ,EAAYrT,OAE3BirM,GArXOuC,WAAa5yM,GAAMwD,KAAA,SAAAC,GAsXtByzB,QArXGC,IAAA1zB,GACgB,MAAhBA,EAAAlI,QAMCwJ,EAAAiuM,YAAiBvvM,EAAAhJ,KACjBsK,EAAAsS,WAAc,GAEdjY,EAAAwH,MAAW,QAAK,yBAAU,YAuX/B,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAASq0M,KAGL,GAAIrhM,GAAcvZ,EAAsBgG,uBACpClF,GACAnF,UArXWkK,EAAA60M,IAAAhzL,gBAAA/rB,UAsXXge,UArXQJ,EAAWrT,OAuXvBm0M,GAAWQ,aAAa/5M,GAAKwD,KAAK,SAASC,GACvCyzB,QAAQC,IAAI1zB,GApXK,MAAdA,EAAAlI,QACCwJ,EAAAi1M,MAAWz6M,EAAA6P,KAAY3L,EAAAhJ,MAAAw/M,UAsXvB/iL,QAAQC,IAAIpyB,EAAGksM,SApXhBlsM,EAAA60M,IAAAI,MAAAj1M,EAAAi1M,MACHj1M,EAAAsS,WAAe,GAEXjY,EAAMwH,MAAA,QAAA,yBAAA,eAuXX,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QArXIy0M,KAEA,GAAGzhM,GAAUvZ,EAAAgG,uBACVlF,GAsXCnF,UAAWkK,EAAG60M,IAAIhzL,gBAAgB/rB,UApXlCge,UAAGJ,EAAWrT,OAuXlBm0M,GArXQY,YAAWn6M,GAAAwD,KAAA,SAAAC,GACL,MAANA,EAAAlI,QAsXAwJ,EAAGq1M,aAAe32M,EAAIhJ,KACtBy8B,QAAQC,IAAIpyB,EAAGq1M,cApXhBr1M,EAAAsS,WAAA,GAEAjY,EAAGwH,MAAW,QAAG,yBAAA,aAuXrB,SAASlB,GApXb5I,EAAQ2I,YAAW,QAAA,mBAAA,cAItB,QAAS40M,KAEL,GAAG5hM,GAAavZ,EAAAgG,uBACblF,GACHuuB,WAAAxpB,EAAA60M,IAAAU,iBAAA/rL,WAsXI1zB,UAAWkK,EAAG60M,IAAIhzL,gBAAgB/rB,UApXnCge,UAAKJ,EAAArT,OAuXRm0M,GAAWgB,mBAAmBv6M,GAAKwD,KAAK,SAASC,GAC1B,MAAfA,EAAIlI,QACJwJ,EAAGy1M,kBAAoB/2M,EAAIhJ,KApX9By8B,QAAAC,IAAcpyB,EAAAy1M,mBACXz1M,EAAAsS,WAAO,GAEXjY,EAAMwH,MAAA,QAAA,yBAAA,aAuXP,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAI5D,QArXOg1M,KAEH,GAAGhiM,GAAAvZ,EAAqBgG,uBACrBlF,GACAnF,UAASkK,EAAA60M,IAAAhzL,gBAAA/rB,UAsXRge,UAAWJ,EAAYrT,OAnX/Bm0M,GAASmB,mBAAgB16M,GAAAwD,KAAA,SAAAC,GACH,MAAfA,EAAAlI,QACAwJ,EAAA41M,gBAAYl3M,EAAAhJ,KACZy8B,QAASC,IAAApyB,EAAA41M,iBAsXJ51M,EAAGsS,WAAY,GAnXlBjY,EAAAwH,MAAc,QAAA,yBAAA,aAuXhB,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAjX5D,QAAGm1M,KAuXC,GAAIniM,GAAcvZ,EAAsBgG,uBApXzClF,GAsXKnF,UAAWkK,EAAG60M,IAAIhzL,gBAAgB/rB,UApXvCggN,cAAmB91M,EAAA60M,IAAAC,kBAAAhH,YACfY,QAAK1uM,EAAA60M,IAAAlG,gBAAAC,cAsXJmH,cAAe/1M,EAAG60M,IAAImB,gBAAgBC,aACtCC,eAAgBl2M,EAAG60M,IAAIsB,iBAAiBC,iBApX7C5sL,WAAgBxpB,EAAA60M,IAAAU,iBAAA/rL,WACfkoC,gBAAa1xD,EAAA60M,IAAAwB,cAAA3kJ,gBACb4kJ,aAAkBt2M,EAAA60M,IAAM0B,iBAAGC,kBAsXvB1iM,UAAWJ,EAAYrT,OAnX5Bm0M,GAAAiC,OAAax7M,GAAAwD,KAAA,SAAAC,GACZ,GAAc,MAAdA,EAAAlI,OAAc,CACdwJ,EAAA02M,QAAYh4M,EAAAhJ,KACZy8B,QAAaC,IAAKpyB,EAAA02M,QAElB,KAAa,GAAAx7M,KAAA8E,GAAA02M,QAAA,CAsXD,GAAI/hH,GAAY9oE,WAAW7rB,EAAG02M,QAAQx7M,GAAGy7M,OAAO7qL,QAAQ,GAlXtDhE,EAAA6sE,CACF7sE,GAAAA,EAAA3kB,UACH,IAAI0xF,GAAc,EACd/sE,GAAA1kB,QAAA,KAAA,IACAyxF,EAAA/sE,EAAAxE,UAAAwE,EAAA1kB,QAAA,KAAA0kB,EAAA3sB,SAsXD2sB,EAAI7gB,KAAKC,MAAM4gB,GACfA,EAAIA,EAAE3kB,UApXnB,IAAgB2xF,GAAWhtE,EAAAxE,UAAAwE,EAAA3sB,OAAA,GAC1B45F,EAAAjtE,EAAAxE,UAAA,EAAAwE,EAAA3sB,OAAA,EACyB,KAAb45F,IAsXID,EAAY,IAAMA,GAEtB90F,EAAG02M,QAAQx7M,GAAGy7M,MAAQ9qL,WAAW7rB,EAAG02M,QAAQx7M,GAAGy7M,OAAO7qL,QAAQ,GApXrE9rB,EAAS02M,QAAMx7M,GAAA07M,OAAA/qL,WAAA7rB,EAAA02M,QAAAx7M,GAAA07M,QAAA9qL,QAAA,GACT9rB,EAAA02M,QAAKx7M,GAAA27M,OAAAhrL,WAAA7rB,EAAA02M,QAAAx7M,GAAA27M,QAAA/qL,QAAA,GACL9rB,EAAA02M,QAAKx7M,GAAA02D,WAAA/lC,WAAA7rB,EAAA02M,QAAAx7M,GAAA02D,YAAA9lC,QAAA,GACT9rB,EAAA02M,QAASx7M,GAAU47M,UAAKjrL,WAAa7rB,EAAA02M,QAAAx7M,GAAA47M,WAAAhrL,QAAA,GA2XpC,IAAK,GAAI5wB,KAAK8E,GAAG02M,QApXP,IAAX12M,EAAW02M,QAAAx7M,GAAAg8H,UACRl3H,EAAS02M,QAAAx7M,GAAAs6D,YAAA74D,KAAAC,MAAAoD,EAAA02M,QAAAx7M,GAAAg8H,cA2XX78H,GAAQwH,MAAM,QAAS,yBAA0B,QAEtD,SAASlB,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,SArTnE,QAAWq2M,KACRphN,SAAAqK,EAAAg3M,WAsXYh3M,EAAGi3M,SAAU,EApXzBj3M,EAAAi3M,SAAA,EAKA,QAASC,KAIF,GAqXCH,IArXD/2M,EAAAi3M,WAAmB,EAAE,CACrB,GAAA5kL,KAuXK,KAAK,GAAIn3B,KAAK8E,GAAG02M,QArXtB12M,EAAc02M,QAAAx7M,GAAAi8M,aACd9kL,EAAAx6B,MACIi5M,OAAc9wM,EAAA02M,QAAAx7M,GAAAk8M,IAuXDC,OAAQr3M,EAAG02M,QAAQx7M,GAAGo8M,aAhX1C,IAAW5jM,GAAUvZ,EAAAgG,uBAClBlF,GACAnF,UAAekK,EAAA60M,IAAAhzL,gBAAA/rB,UACfggN,cAAU91M,EAAA60M,IAAAC,kBAAAhH,YAuXDY,QAAS1uM,EAAG60M,IAAIlG,gBAAgBC,cAChCmH,cAAe/1M,EAAG60M,IAAImB,gBAAgBC,aArXtCC,eAAAl2M,EAAA60M,IAAAsB,iBAAAC,iBACDjK,UAAAnsM,EAAA60M,IAAAI,MACRzrL,WAAAxpB,EAAsB60M,IAAAU,iBAAA/rL,WACtBkoC,gBAAe1xD,EAAA60M,IAAAwB,cAAA3kJ,gBACf4kJ,aAAat2M,EAAA60M,IAAA0B,iBAAAC,kBACbe,MAAWv3M,EAAA60M,IAAA2C,UACXC,QAAcz3M,EAAA60M,IAAA6C,QAEdC,MAAAh7M,KAAiBqkB,UAAAqR,GACjBve,UAAWJ,EAAArT,QAGXjC,EAAU,GAAAH,SAuXLG,GAASF,OAAO,YAAa8B,EAAGg3M,YArXxC54M,EAAAF,OAAA,OAAAvB,KAAAqkB,UAAA/lB,IAEAu5M,EAAgB0C,QAAA94M,EAAArE,GAAA0E,KAAA,SAAAC,GACM,MAAdA,EAAAlI,QAEJuB,EAAe2I,YAAmB,UAAWhC,EAAKhJ,KAAAme,QAAc,OACpD3B,IAEDwF,MAEC3f,EAAK2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,OACb7T,EAAWgT,YAAY,IAGvB,SAAWrS,GAuXP5I,EAAW2I,YAAY,qCAG3B3I,GAtXO2I,YAAc,UAAI,mCA0XjC,QAASgR,KACL,GAAIiB,GAAUtY,EAtXKsY,QAAA,eAuXf,yFACItb,WAtXW,EAuXX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAEhBuB,EAAG60M,OACHkC,IArXD/2M,EAAA43M,QAASxjM,kBAKhB,QAASsD,KAEL1X,EAAA+S,WAAe,EAuXf/S,EAAG60M,OACH3iM,IAoFJ,QAASkH,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KArXZ9iB,EAAAb,EAAAa,IACJ,OAAU,QAANA,GAAM,KAAA8iB,EAAAC,SAgad,QAtXQC,GAAM7jB,GAuXV,GAtXI2jB,GAAA3jB,EAAY2jB,KACZ9iB,EAAAb,EAAWa,IAuXf,IAtXI,QAAAA,EAGA,IAAI,GAoXAijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GApX1Cxe,EAAA,EAAAA,EAAW8E,EAAA2Z,OAAKxe,OAAAD,IAAA,CACpB,GAAG0e,GAAA,GAAAH,MAAoBzZ,EAAI2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAE3B,IAAGF,IAAYI,EACZ,MAAA5Z,GAAA2Z,OAAAze,GAAA1E,OA0XX,MAtXI,GA3NR,GAAIwJ,GAAKC,IAETD,GAAGqU,kBArXoBhJ,MAAA,IAAYA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAsXnCrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YArXE,EAsXLvU,EAAGwU,qBAAuB,SAASC,GAC/BzU,EAAGuU,YAAcE,GAIrBzU,EAAGgT,YArXI,EAsXPhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EApXfva,EAAS2c,SAAA,EAsXT1U,EAAGmiH,UArXI,EAsXPniH,EAAGgmD,gBACHhmD,EAAGk8G,WAGHl8G,EAAG0R,OAASA,EACZ1R,EAAG0X,MAAQA,EApXX1X,EAAAyhB,oBAAkBA,EAsXlBzhB,EAAG0tM,aArXeA,EAsXlB1tM,EAAG6tM,WArXKA,EAsXR7tM,EAAG+0M,SArXSA,EAsXZ/0M,EAAGm1M,YArXSA,EAsXZn1M,EAAGs1M,mBAAqBA,EACxBt1M,EAAG01M,eAAiBA,EACpB11M,EAAG61M,SArXSA,EAsXZ71M,EAAGk3M,QArXQA,EAsXXl3M,EAAG+2M,iBArXaA,EAsXhB/2M,EAAGi3M,SAAU,EAEb/kM,IA6QAlS,EAAGq0M,YAAc,SAASvhM,GAnXtB9S,EAAGgT,YAAO,EAsXVhT,EAAGk3H,WACHl3H,EAAGk3H,QAAUpkH,EAAI0iD,WApXlB,KAAA,GAAUt6D,KAAA8E,GAAAk3H,QACqBvhI,QAAtBqK,EAAAk3H,QAASh8H,GAAA8xM,SAsXThtM,EAAGk3H,QAAQh8H,GAAG8xM,OAAS,EAlXpBr3M,SAAZqK,EAAAk3H,SAAoB,MAAAl3H,EAAAk3H,QACpB78H,EAAA8C,OAAmB,UAAA,mCAsXV9F,WAAW,EApXX+F,KAAA,QAIT4C,EAAA8wM,OAASt2M,EAAA6P,KAAArK,EAAAk3H,SAAA45E,OACR9wM,EAAA60M,IAAQ/D,OAAA9wM,EAAA8wM,SAwXZ9wM,EAAGiP,MArXC,WAsXAjP,EAAGk3H,YAnXPl3H,EAAG6sM,IAAA,SAAS/5L,GAuXend,QAAnBmd,EAAIwkM,aACJt3M,EAAG63M,SAAW,EApXlB73M,EAAA63M,SAAehsL,WAAA/Y,EAAAwkM,aAAAzrL,WAAA/Y,EAAA8jM,QACV9jM,EAAA6jM,MAAQ32M,EAAS63M,UACtB73M,EAAA83M,UAAoB,EACxB93M,EAAc83M,UAAQjsL,WAAS/Y,EAAAwkM,aAAYzrL,WAAA/Y,EAAA8jM,QAC/B52M,EAACitM,OAAAn6L,EAAA6jM,MAAA32M,EAAA83M,UACH93M,EAAA+3M,UAAAjlM,EAAA8+C,WAAA9+C,EAAAwkM,YACEt3M,EAAAktM,QAAA,IAEFltM,EAAA83M,UAAA,EACE93M,EAAA83M,UAAAjsL,WAAA/Y,EAAAwkM,aAAAzrL,WAAA/Y,EAAA8jM,QAuXA52M,EAAG+3M,UAAYjlM,EAAI8+C,WAAa9+C,EAAIwkM,YAnXxCt3M,EAAOktM,QAAKltM,EAAA,UAAA8S,EAAA6jM,MACZ32M,EAAOitM,OAAK,GAwXZn6L,EAAI+jM,OAAS72M,EAAG83M,UApXhBhlM,EAAA8+C,WAAgB5xD,EAAIitM,OAsXpBn6L,EArXIgkM,UAAI92M,EAAAktM,UAuXRp6L,EArXI+jM,OAAI,EAsXR/jM,EAAI8+C,WArXW,EAsXf9+C,EAAIgkM,UAAY,IAKxBrsM,EAAO0qB,WAAa,SAASh5B,GACzB6D,EAAGg3M,WAAa76M,EAAMsN,OAAOiE,MAAM,IA8FvCjD,EAAOutM,YAtXa,SAAQ77M,GA0XxB,IAAK,GAFDuR,GAAQvR,EAAMsN,OAtXEiE,MAwXXxS,EAAI,EAAGA,EAAIwS,EAAMvS,OAAQD,IAAK,CACnC,GAAI2D,GAAO6O,EAAMxS,GACb8U,EAAS,GAAIS,WACjBT,GAAOU,OAtXIjG,EAAYiU,cAuXvB1O,EAAOa,cAtXKhS,KAyXpB4L,EAAOiU,cAtXS,SAAclR,GAuX1B/C,EAAOe,OAAO,WACVf,EAtXGuG,IAASxD,EAAA/D,OAAK/J,UA2XzB+K,EAAOwtM,aAAe,aAWtBj4M,EAAGqa,MAtXK,WACAra,EAAWsa,EAuXfta,GAAGsa,GAtXK,GAAIb,MAAI,cAwXhBzZ,EAAGsa,GAAGkB,QAtXMxb,EAAAsa,GAAQ0B,YAyXxBhc,EAAGqa,QAGHra,EAAGk4M,WAAa,WACZl4M,EAAGm4M,KAAO,GAtXE1+L,MAwXZzZ,EAAGm4M,KAAK38L,QAtXQxb,EAAAm4M,KAAAn8L,UAAA,IAyXpBhc,EAAGk4M,aAEHl4M,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eArXHC,YAASjB,EACLkB,QAAA,GAAAhB,MAAA,KAAA,EAAA,KAyXJzZ,EAAGirH,YACCrwG,aAtXIxB,EAuXJ+C,WAtXI,KAuXJtB,QAtXI7a,EAAAm4M,KAuXJ19L,QAASza,EAAGsa,GArXZQ,YAAW,GAwXf9a,EAAGkrH,UACCtwG,aAAcxB,EACd+C,WAAY,KACZtB,QAAS7a,EAAGm4M,KACZ19L,QAASza,EAAGsa,GAEZQ,YAtXW,GAyYf9a,EAAGgb,MAtXK,WAuXJhb,EAAGib,OAtXKpM,QAAI,CAuXZ,IAAIwL,GAtXOra,EAAAsa,GAuXP65B,EAtXI,EAwXRn0C,GAAGm5B,SACCte,QAtXO,GAAApB,MAAAY,EAAA65B,cAAAC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,aA2Xfhc,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,aAC1D5b,EAAG6b,OAtXK7b,EAAA4b,QAAc,GAuXtB5b,EAAG8b,iBAtXW,cAwXd9b,EAAGib,QACCpM,QAAQ,EAKZ,IAAIupM,GAtXW,GAAA3+L,KAuXf2+L,GAAS58L,QAtXM48L,EAAAp8L,UAAA,EAuXf,IAAIq8L,GAtXQ,GAAQ5+L,KAuXpB4+L,GAAY78L,QAAQ48L,EAASp8L,UAAY,GACzChc,EAAG2Z,SACCN,KAtXI++L,EAuXJ5hN,OAAQ,SAER6iB,KAAMg/L,EArXV7hN,OAAS,cA0YTwJ,EAAGyjB,UAAY,SAAS3Q,GArXE,GAA1BA,EAASqkM,YAuXDrkM,EAAIwkM,YAAc,EApXlBxkM,EAAAwkM,YAAM,8KAzOlBljN,QACKC,OAAO,kCACPe,WArXW,UAAGm/M,MAw9BvB,WACI,YAOA,SAAS+D,GAA2Bv+M,EAAOS,EAAQP,EAASlC,EAAYsC,EAASF,EAAuB6X,EAAgBJ,EAAwBy7L,EAA2BC,EAA6BzlH,GA4BpM,QAAS31E,KACDC,GACAH,EAtXYI,mBAAeD,GAAY1T,KAAQ,SAAQC,GAChC,MAAfA,EAAIlI,SACJwJ,EAAAqS,YAAM3T,EAAAhJ,OAwXX,SAtXSiL,GAuXR5I,EAtXQ2I,YAAA,QAAgB,mBAAA,mBAyXhC,IAAIzF,IACA6Y,UAtXWJ,EAAWrT,OAwX1BgtM,GAtX0BE,YAAAtyM,GAAawD,KAAA,SAAcC,GAC9B,MAsXfA,EAtXIlI,QAuXJwJ,EAAGwtM,UAAY9uM,EAAIhJ,KACnBsK,EAAGsS,WAAY,GAGfjY,EAAQwH,MAAM,QAAS,yBAA0B,cAEtD,SAtXSlB,GAuXR5I,EAAW2I,YAtXY,QAAG,mBAAyB,eA2X3D,QAAS+gB,GAtXMtP,GAuXPA,GACAs7L,IArXD77L,EAAc8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACU,MAAvBA,EAAWlI,QAuXHwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAChBsK,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDArX7B9F,WAAc,EAC3B+F,KAAA,OAGG4C,EAAUsS,WAAI,GAENjY,EAAQwH,MAAG,QAAU,yBAAA,mBAwXzB,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAI/C4rM,IAIR,QAtXQC,GAAYv7L,GAuXhB,GAtXIA,EAAO,CAuXP,GAAIuB,GAAcvZ,EAAsBgG,uBApXrClF,GACJkX,UAAUnS,EAAA2tM,MAAAx6L,gBAAAhB,UAuXL2B,UAAWJ,EAAYrT,OApX/B8R,IACQm7L,EAA0BI,aAAAzyM,GAAAwD,KAAA,SAAAC,GAChB,MAAXA,EAAWlI,QACXwJ,EAAY4tM,cAAelvM,EAAAhJ,MACdsK,EAAG4tM,cAAUzyM,OAAA,GACtBd,EAAY8C,OAAA,UAAA,sDACA9F,WAAW,EACV+F,KAAA,OAGb4C,EAAAsS,WAAA,GAyXKjY,EAAQwH,MAAM,QAAS,yBAA0B,cAEtD,SAAUlB,GArXV5I,EAAW2I,YAAG,QAAiB,mBAAA,gBA6X9C,QAASmtM,GAtXE17L,EAAA27L,GAuXP,GAtXIA,EAAa,CACbC,GACA,IAAIr6L,GAAYvZ,EAAAgG,uBAuXZlF,GACAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UAEpC27L,YAAa9tM,EAAG2tM,MAAMK,kBAAkBF,YArX7Ch6L,UAAaJ,EAASrT,OAwXrBitM,GAA4BO,WAAW5yM,GAAKwD,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,QArXXwJ,EAAAiuM,YAAmBvvM,EAAAhJ,MACjBsK,EAAAiuM,YAAe9yM,OAAW,GAC1Bd,EAAU8C,OAAA,UAAA,sDACV9F,WAAA,EACU+F,KAAA,OAyXL4C,EAAGsS,WAAY,GAnX3BjY,EAAAwH,MAAA,QAAA,yBAAA,YAEA,SAAAlB,GACO5I,EAAY2I,YAAM,QAAA,mBAAA,iBA0XrBqtM,KAKR,QAASwK,GAAmB3J,GACpBA,GACA4J,IArXAx4M,EAAA2vM,gBAAkBx3J,SAAA,IAAAc,SAAsB,UAAA0M,KAAA,UAAAxN,SAAA,IAAAc,SAAA,YAAA0M,KAAA,iBAAAxN,SAAA,KAAAc,SAAA,cAAA0M,KAAA,cAAAxN,SAAA,IAAAc,SAAA,SAAA0M,KAAA,UAyXxC6yJ,IAIR,QAASzwH,KACL/nF,EAAG2tM,MAtXKhwJ,iBAAmB,KAuX3B39C,EAAGkuM,iBACHluM,EAAG2tM,MAtXK9vJ,oBAAqB,KAuX7B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAtXK72J,aAAgB,KAuXxB92C,EAAGouM,aACHpuM,EAAG2tM,MAtXKW,cAAY,KAuXpBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,mBACH,IAtXItzM,IACAkX,UAASnS,EAAA2tM,MAAOx6L,gBAAgBhB,UAChCq8L,UAASxuM,EAAA2tM,MAAOc,gBAAaC,QAuX7B54M,UAAwCH,QAA5BqK,EAAG2tM,MAAM9rL,gBAAgC7hB,EAAG2tM,MAAM9rL,gBAAgB/rB,UAAY,EArX1Fg4M,YAAW9tM,EAAA2tM,MAAQK,kBAAiBF,YAuXpC5B,QAtXQlsM,EAAI2tM,MAAAgB,gBAAgBC,cAuX5Bl/J,SAAUz1C,EAAQ,QAAQ+F,EAAG2tM,MAAM3qJ,KAAM,cACzCrT,OAtXQ11C,EAAA,QAAW+F,EAAA2tM,MAAY1qJ,GAAA,cAuX/BnvC,UAtXQJ,EAAArT,OAwXZwnF,GAtXYE,gBAAA9sF,GAAAwD,KAAA,SAAAC,GACG,MAsXPA,EAAIlI,QACJwJ,EAAGkuM,cAtXYxvM,EAAAhJ,MACXsK,EAAGkuM,cAAa/yM,OAAA,IAuXhBd,EAAQ8C,OAAO,UAAW,8DACtB9F,WAAW,EArXX+F,KAAK,OAwXT4C,EAAG2tM,MAAM3qJ,KAAO,KArXrBhjD,EAAA2tM,MAAA1qJ,GAAA,OA0XC5oD,EAAQwH,MAAM,QAAS,yBAA0B,mBApXzD,SAAIlB,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,oBA0XR,QAASsnF,KArXL,GAAAhoF,EAAA2tM,MAAQhwJ,iBAAuB,CAuX3B39C,EAAG2tM,MAAM9vJ,oBAAsB,KArX/B79C,EAAGmuM,oBACHnuM,EAAA2tM,MAAA72J,aAAA,KACA92C,EAAGouM,aAuXHpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,mBArXX,IAAStzM,IAuXGkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UArXzCq8L,UAAYxuM,EAAA2tM,MAAAc,gBAAAC,QACZ54M,UAAMH,QAAAqK,EAAA2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACTg4M,YAAA9tM,EAAA2tM,MAAAK,kBAAAF,YAuXQ5B,QAASlsM,EAAG2tM,MAAMgB,gBAAgBC,cAClCl/J,SAAUz1C,EAAQ,QAAQ+F,EAAG2tM,MAAM3qJ,KAAM,cACzCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG2tM,MAAM1qJ,GAAI,cArX1C4rJ,OAAA7uM,EAAc2tM,MAAAhwJ,iBAAgBkxJ,OACjC/6L,UAAAJ,EAAArT,OAwXIwnF,GAAyBG,mBAAmB/sF,GAAKwD,KAAK,SAAUC,GArX1C,MAAjBA,EAAOlI,QACRwJ,EAAOmuM,iBAAMzvM,EAAAhJ,MACJsK,EAAAmuM,iBAAIhzM,OAAA,GACVd,EAAS8C,OAAO,UAAA,qEAChB9F,WAAc,EAuXL+F,KAAM,QAKd/C,EAAQwH,MAAM,QAAS,yBAA0B,sBAEtD,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAIxDV,GAAG2tM,MAAM9vJ,oBAAsB,KAC/B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAKX,QAtXOtmH,KAuXH,GAAIjoF,EAAG2tM,MAAM9vJ,oBAAqB,CAC9B79C,EAAG2tM,MAAM72J,aAAe,KArX7B92C,EAAAouM,aACHpuM,EAAA2tM,MAAAW,cAAA,KAuXQtuM,EAAGk8G,WArXRl8G,EAAAyxD,QAAa,EACTzxD,EAAAuuM,mBAuXC,IAAItzM,IArXAkX,UAAWnS,EAAA2tM,MAAKx6L,gBAAYhB,UAuX5Bq8L,UAAWxuM,EAAG2tM,MAAMc,gBAAgBC,QACpC54M,UAAwCH,QAA5BqK,EAAG2tM,MAAM9rL,gBAAgC7hB,EAAG2tM,MAAM9rL,gBAAgB/rB,UAAY,EArXnGg4M,YAAA9tM,EAAA2tM,MAAAK,kBAAAF,YAuXS5B,QAASlsM,EAAG2tM,MAAMgB,gBAAgBC,cArXnCl/J,SAAWz1C,EAAA,QAAA+F,EAAA2tM,MAAA3qJ,KAAA,cACVrT,OAAA11C,EAAA,QAAA+F,EAAA2tM,MAAA1qJ,GAAA,cAuXA6rJ,UAAW9uM,EAAG2tM,MAAM9vJ,oBAAoBixJ,UACxCh7L,UAAWJ,EAAYrT,OAnX/BwnF,GAA2BI,iBAAAhtF,GAAAwD,KAAA,SAAAC,GAuXA,MAAfA,EAAIlI,QACJwJ,EAAGouM,UAAY1vM,EAAIhJ,MArXnBsK,EAAAouM,UAAAjzM,OAAA,GACEd,EAAA8C,OAAA,UAAA,iEACF9F,WAAA,EACA+F,KAAA,QAKZ/C,EAAcwH,MAAA,QAAA,yBAAA,eAEd,SAAYlB,GACZ5I,EAAY2I,YAAA,QAAA,mBAAA,oBA0XRV,GAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAKX,QAtXQrmH,KAuXJ,GAtXIloF,EAAA2tM,MAAO72J,aAAK,CAChB92C,EAAOk8G,WAuXHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,mBACH,IAAItzM,IACAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UArXrCq8L,UAAWxuM,EAAA2tM,MAAAc,gBAAAC,QACf54M,UAAgBH,QAAAqK,EAAA2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACfg4M,YAAW9tM,EAAA2tM,MAAAK,kBAAAF,YACX5B,QAASlsM,EAAA2tM,MAAAgB,gBAAAC,cAuXLl/J,SAAUz1C,EAAQ,QAAQ+F,EAAG2tM,MAAM3qJ,KAAM,cArX9CrT,OAAU11C,EAAA,QAAA+F,EAAA2tM,MAAA1qJ,GAAA,cACT8rJ,QAAa/uM,EAAA2tM,MAAK72J,aAAMi4J,QAuXpBj7L,UAAWJ,EAAYrT,OAG3BwnF,GAAyBK,uBAAuBjtF,GAAKwD,KAAK,SAAUC,GArXhD,MAAfA,EAAAlI,QACGwJ,EAAAk8G,QAAWx9G,EAAAhJ,MAuXNsK,EAAGk8G,QAAQ/gH,OAAS,GACrBd,EAAQ8C,OAAO,UAAW,0DArXhC9F,WAAgB,EACP+F,KAAA,QA2XP/C,EAAQwH,MAAM,QAAS,yBAA0B,iBAEtD,SAAUlB,GArXrB5I,EAAA2I,YAAA,QAAA,mBAAA,sBAIAV,GAAAk8G,WACGl8G,EAAAyxD,QAAU,EACTzxD,EAAMuuM,oBA2XV,QAASpmH,KACLnoF,EAAGsS,WAAY,CArXnB,IAAArX,IACQkX,UAAOnS,EAAK2tM,MAAAx6L,gBAAAhB,UACZq8L,UAAOxuM,EAAK2tM,MAAAc,gBAAAC,QACZ54M,UAAgBH,QAAPqK,EAAA2tM,MAAO9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EAChBg4M,YAAI9tM,EAAA2tM,MAAiBK,kBAAWF,YAuXhC5B,QAASlsM,EAAG2tM,MAAMgB,gBAAgBC,cArXlCl/J,SAASz1C,EAAO,QAAO+F,EAAA2tM,MAAO3qJ,KAAQ,cAuXtCrT,OAtXQ11C,EAAA,QAAa+F,EAAI2tM,MAAQ1qJ,GAAA,cAuXjCuO,OAAQxxD,EAAG2tM,MAAMW,cAAc98I,OAC/B19C,UAtXQJ,EAAerT,OAyX3BwnF,GAAyBM,uBAAuBltF,GAAKwD,KAAK,SAAUC,GAChE,GAAmB,MAAfA,EAAIlI,OAAgB,CAGpB,GAxXDwJ,EAAAuuM,iBAAA7vM,EAAAhJ,MAwXMsK,EAAGuuM,iBAAiBpzM,OAAS,EArX/Bd,EAAS8C,OAAK,UAAA,sDACjB9F,WAAe,EACf+F,KAAc,WAyXT,CACD,GAAIi1B,GAAMryB,EAAGuuM,iBAAiBjiL,IAAI,SAAUrxB,EAAKw9M,GAE7C,MADAx9M,GAAIg1H,IAAMrpH,SAAS6xM,EAAQ,GACpBx9M,GApXtBk3B,SAAAC,IAAAC,GAwXeryB,EAAGuuM,iBAAiBpzM,OAAS,EAC7B6E,EAAGyxD,QAAS,EArXxBzxD,EAAAyxD,QAAA,EA0XIzxD,EAAGsS,WAAY,MAnXxBjY,GAAAwH,MAAqB,QAAS,yBAAwB,eAyXlD,SAAUlB,GAtXd5I,EAAc2I,YAAA,QAAA,mBAAA,gBAEbV,EAAG04M,cAwXGzoF,IAAK,EAAG0oF,QAAS,iBAAkB/7E,IAAK,KAAMjkF,YAAa,sBAAuBigK,SAAU,IAAWC,WAAY,SAAUC,gBAAiB,QAC9I7oF,IAAK,EAAG0oF,QAAS,iBAAkB/7E,IAAK,MAAOjkF,YAAa,qBAAsBigK,SAAU,IAAYC,WAAY,UAAWC,gBAAiB,QAtXtJ7oF,IAAA,EAAY0oF,QAAA,iBAAsB/7E,IAAA,KAAAjkF,YAAuB,UAAgBigK,SAAA,KAAAC,WAAA,QAAAC,gBAAA,UACzE7oF,IAAA,EAAc0oF,QAAA,+BAAsB/7E,IAAA,OAAAjkF,YAAA,gCAAAigK,SAAA,KAAAC,WAAA,EAAAC,gBAAA,IAGrCt+M,EAAAqI,QAAa7C,EAAA04M,YAAA,SAAAlrM,GACbA,EAAAurM,gBAAqBvrM,EAAAsrM,gBAAAtrM,EAAAqrM,WACrBrrM,EAAAwrM,mBAAkBxrM,EAAAurM,gBAAAvrM,EAAAqrM,WAAA,IAClB14K,MAAA3yB,EAAAwrM,sBACAxrM,EAAAwrM,mBAAmB,KAKtB,QAAGt2G,KACA1iG,EAAA2tM,MAASx6L,gBAAA,KACZnT,EAAA2tM,MAAAc,gBAAA,KAwXIzuM,EAAG2tM,MAAM9rL,gBAAkB,KAtX/B7hB,EAAA2hB,eACI3hB,EAAA2tM,MAAIK,kBAAW,KAwXfhuM,EAAG4tM,iBACH5tM,EAAG2tM,MAvXKgB,gBAAmB,KAwX3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBAAoB,KAC7B1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAvXK3qJ,KAAA,KAwXRhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MAAMhwJ,iBAAmB,KAtX5B39C,EAAAkuM,iBAwXAluM,EAAG2tM,MAvXC9vJ,oBAAuB,KAwX3B79C,EAAGmuM,oBAtXHnuM,EAAA2tM,MAAA72J,aAAA,KAwXA92C,EAAGouM,aACHpuM,EAAG2tM,MAvXKW,cAAe,KAwXvBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAGP,QAvXOd,KAwXHztM,EAAG2tM,MAvXCc,gBAAuB,KAwX3BzuM,EAAG2tM,MAAM9rL,gBAAkB,KAC3B7hB,EAAG2hB,eACH3hB,EAAG2tM,MAAMK,kBAAoB,KAC7BhuM,EAAG4tM,iBAtXP5tM,EAAA2tM,MAASgB,gBAAoB,KACzB3uM,EAAAiuM,eAwXAjuM,EAAG2tM,MAvXC+B,kBAAA,KAwXJ1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAvXK3qJ,KAAQ,KAwXhBhjD,EAAG2tM,MAAM1qJ,GAvXG,KAwXZjjD,EAAG2tM,MAAMhwJ,iBAvXW,KAwXpB39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAvXsB,KAwX/B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAvXM,KAwXftuM,EAAGk8G,WACHl8G,EAAGyxD,QAvXS,EAwXZzxD,EAAGuuM,oBAGP,QAASqB,KACL5vM,EAAG2tM,MAAM9rL,gBAAkB,KAC3B7hB,EAAG2tM,MAvXEK,kBAAA,KAwXLhuM,EAAG2tM,MAvXCgB,gBAAA,KAwXJ3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBAAoB,KAC7B1vM,EAAG2vM,iBAtXP3vM,EAAA2tM,MAAS3qJ,KAAA,KACLhjD,EAAA2tM,MAAI1qJ,GAAA,KAwXJjjD,EAAG2tM,MAvXKhwJ,iBAAc,KAwXtB39C,EAAGkuM,iBACHluM,EAAG2tM,MAvXK9vJ,oBAAM,KAwXd79C,EAAGmuM,oBACHnuM,EAAG2tM,MAvXK72J,aAAW,KAwXnB92C,EAAGouM,aACHpuM,EAAG2tM,MAvXKW,cAAW,KAwXnBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAvXS,EAwXZzxD,EAAGuuM,oBAGP,QAASsB,KACL7vM,EAAG2tM,MAAMK,kBAvXe,KAwXxBhuM,EAAG2tM,MAAMgB,gBAAkB,KAC3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBAvXU,KAwXnB1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAAM3qJ,KAAO,KAChBhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAvXc,KAwXvB79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EAtXhBzxD,EAAAuuM,oBA0XA,QAvXQR,KAwXJ/tM,EAAG2tM,MAvXKgB,gBAAM,KAwXd3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBAAoB,KAC7B1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAvXK3qJ,KAAA,KAwXRhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MAvXChwJ,iBAAA,KAwXJ39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAvXoB,KAwX7B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAvXe,KAwXxB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAvXW,KAwXpBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBAGP,QAASiK,KACLx4M,EAAG2tM,MAAM+B,kBAAoB,KAC7B1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAvXK3qJ,KAAA,KAwXRhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAvXC9vJ,oBAAA,KAwXJ79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAgB,KAtX7BtuM,EAAAk8G,WACIl8G,EAAAyxD,QAAI,EAwXJzxD,EAAGuuM,oBAEP,QAASrlJ,KACLlpD,EAAG2tM,MAAM3qJ,KAAO,KAChBhjD,EAAG2tM,MAvXC1qJ,GAAA,KAwXJjjD,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAAsB,KAtXnC79C,EAAAmuM,oBACInuM,EAAG2tM,MAAM72J,aAAA,KACT92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAA,KACTtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAM,EACTzxD,EAAGuuM,oBA4dP,QAASn1L,GAvXG1jB,GAwXR,GAAI2jB,GAvXI3jB,EAAA2jB,KAwXJ9iB,EAvXIb,EAAAa,IAwXR,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAuC1D,QAASC,GAvXG7jB;AAwXR,GAAI2jB,GAvXI3jB,EAAA2jB,KAwXJ9iB,EAvXIb,EAAAa,IAwXR,IAvXQ,QAuXJA,EAGA,IAAK,GAzXDijB,GAAY,GAAAC,MAAMJ,GAAAK,SAAa,EAAA,EAAA,EAAA,GAyX1Bxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EArX/D,IAAIF,IAAeI,EACf,MAAG5Z,GAAA2Z,OAAcze,GAAA1E,OA2X7B,MAAO,GAprBX,GAAIwJ,GAAKC,IApXTD,GAAAqU,kBAAoBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAuXpBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAtXW,EAuXdvU,EAAGwU,qBAtXuB,SAAAC,GAuXtBzU,EAAGuU,YAtXCE,EAyXR,IAAItC,GAtXIhY,EAAuBgG,uBAAiBwU,gBAAAxC,UAuX5CuB,EAtXIvZ,EAAmBgG,sBAuX3BH,GAAGyhB,oBAtXsBA,EAuXzBzhB,EAAG0tM,aAtXKA,EAuXR1tM,EAAG6tM,WAtXKA,EAuXR7tM,EAAGu4M,mBAAqBA,EACxBv4M,EAAG+nF,gBAtXYA,EAuXf/nF,EAAGgoF,mBAtXaA,EAuXhBhoF,EAAGioF,iBAtXYA,EAuXfjoF,EAAGkoF,uBAtXwBA,EAuX3BloF,EAAGmoF,uBAAyBA,EAC5BnoF,EAAG0iG,MAAQA,EACX1iG,EAAG4vM,aAtXaA,EAuXhB5vM,EAAG6vM,aAAeA,EAClB7vM,EAAGyxD,QAAS,EACZv/C,IAigBAlS,EAAGi5M,kBAvXa,WACZj5M,EAAGyxD,QAAA,EACHzxD,EAAAuuM,qBA6XJvuM,EAAGkpD,UAvXK,WAwXJA,IAtX2BvzD,QAAvBqK,EAAA2tM,MAAA+B,mBAwXA1vM,EAAG2tM,MAAM3qJ,KAAO,KAtXpBhjD,EAAA2tM,MAAA1qJ,GAAA,KACIjjD,EAAAyxD,QAAQ,EAwXRzxD,EAAGuuM,sBAGHvuM,EAAG2tM,MAAM3qJ,KAvXG,KAwXZhjD,EAAG2tM,MAAM1qJ,GAvXG,KAwXZjjD,EAAGyxD,QAAS,EACZzxD,EAAGuuM,sBAKXvuM,EAAGgoD,gBAvXiB,WAyXhB,GAvXkB,KAAfhoD,EAAA2tM,MAAU+B,kBAAKv3J,SAAA,CACdn4C,EAAA2tM,MAAA1qJ,GAAW7uD,QAAA8e,KAAYlT,EAAA2tM,MAAS3qJ,KAwXhC,IAAI8E,GAAqB,CACzB9nD,GAAG2tM,MAAM1qJ,GAAG8E,SAAS/nD,EAAG2tM,MAAM1qJ,GAAG9R,WAAa2W,GAC9C9nD,EAAG2tM,MAAM1qJ,GAAGznC,QAAQxb,EAAG2tM,MAAM1qJ,GAAGjnC,UAAY,GAtXpD+rE,QAGQ,IAAsB,KAAnB/nF,EAAA2tM,MAAA+B,kBAAmBv3J,SAAA,CACtBn4C,EAAG2tM,MAAM1qJ,GAAA7uD,QAAA8e,KAAelT,EAAA2tM,MAAA3qJ,KACxB,IAAG8E,GAAY,CACf9nD,GAAG2tM,MAAM1qJ,GAAA8E,SAAA/nD,EAAA2tM,MAAgB1qJ,GAAA9R,WAAA2W,GACzB9nD,EAAG2tM,MAAA1qJ,GAAAznC,QAAUxb,EAAA2tM,MAAA1qJ,GAAAjnC,UAAA,GACD,iBAAThc,EAAA2tM,MAASyB,OACTrnH,KAEC/nF,EAAA2tM,MAAAyB,OAAc,aACdtnH,sBA0XH,IAvXqC,MAAlC9nF,EAAA2tM,MAAS+B,kBAASv3J,SAAgB,CAwXtCn4C,EAAG2tM,MAvXC1qJ,GAAU7uD,QAAQ8e,KAAAlT,EAAQ2tM,MAAG3qJ,KAwXjC,IAvXI8E,GAAgB,CAwXpB9nD,GAAG2tM,MAvXC1qJ,GAAQ8E,SAAS/nD,EAAA2tM,MAAA1qJ,GAAA9R,WAAiB2W,GAwXtC9nD,EAAG2tM,MAvXC1qJ,GAAAznC,QAAWxb,EAAA2tM,MAAY1qJ,GAAAjnC,UAAA,GAwXJ,iBAAnBhc,EAAG2tM,MAAMyB,OAtXbrnH,KAyXI/nF,EAAG2tM,MAvXIyB,OAAA,aAwXPtnH,oBAMZ9nF,EAAGk5M,eAAiB,WArXmB,KAuX/Bl5M,EAAG2tM,MAvXK+B,kBAAcv3J,WAwXtBn4C,EAAG2tM,MAAM3qJ,KAAO,GAAIvpC,MAAK,QAAS,GAAKA,OAAQy6B,eAC/Cl0C,EAvXG2tM,MAAA1qJ,GAAU,GAAKxpC,MAAA,UAAA,GAAAA,OAAAy6B,eAwXlB6zC,MAOR/nF,EAAGqa,MAvXQ,WAwXPra,EAAGsa,GAvXI,GAAAb,OAyXXzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MApXZta,EAAAua,eACIC,YAAajB,EAwXbkB,QAvXO,GAAMhB,MAwXbiB,WAvXO,GA0XX1a,EAAG2a,aACCC,aAvXOxB,EAwXP+C,WAvXQ,KAwXRtB,QAvXQ,GAAApB,MAAA,KAAc,EAAA,IAwXtBgB,QAvXQ,GAAAhB,MAwXRqB,YAvXQ,GAiYZ9a,EAAG+a,UAvXS,WAwXR/a,EAAGua,cAvXYE,QAAYza,EAAAua,cAAIE,QAAA,KAAA,GAAAhB,MAwX/BzZ,EAAG2a,YAvXSF,QAAQza,EAAAua,cAAsBE,SA0X9Cza,EAAG+a,YAEH/a,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CACP,IAvXC4K,OA2XjBzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,EAAGwb,QAvXQ,SAAYC,EAAAC,EAAAC,GAwXnB3b,EAAGsa,GAvXI,GAAAb,MAAMgC,EAAAC,EAAgBC,IA0XjC3b,EAAG4b,SAvXQ,eAAmB,aAAA,aAAA,aAwX9B5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAAmB,cApXtB9b,EAAAmb,QACItM,QAAO,GA0XX7O,EAAGib,QACCpM,QAvXQ,wNAjThBza,QACKC,OAAO,kCACPe,WAAW,6BAA8BkjN,MA+rBlD,WACI,YAOA,SAASa,GAAQp/M,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASF,EAAuBmxM,EAAY15L,GAyCrG,QAASM,KAEL,GAAIwB,GAAcvZ,EAAsBgG,uBACpClF,GACA6Y,UAvXIJ,EAAcrT,OAyXtBirM,GAvXGmJ,cAAex5M,GAAAwD,KAAA,SAAAC,GACH,MAAXA,EAAAlI,QAwXIwJ,EAAG00M,YAAch2M,EAAIhJ,KArXvBsK,EAAKsS,WAAY,EACjBg5L,EAAQ8N,eAASn+M,GAAAwD,KAAkB,SAAYC,GAC9B,MAATA,EAAAlI,SACAwJ,EAAAq5M,gBAAS36M,EAAAhJ,KAyXPsK,EAAGsS,WAAY,KApXzBg5L,EAAAgO,gBAAwBr+M,GAAAwD,KAAA,SAAoBC,GAClC,MAAAA,EAAAlI,SACNwJ,EAAAu5M,iBAAqB76M,EAAAhJ,KAyXfsK,EAAGsS,WAAY,MAnX5BjY,EAAMwH,MAAA,QAAkB,yBAAA,cAGxB,SAAAlB,GACA5I,EAAM2I,YAAA,QAAoB,mBAAA,cAG7B,IAAGyR,GAAAhY,EAAcgG,uBAAAwU,gBAAAxC,SACjBP,GAAS8P,eAAoBvP,GAAA1T,KAAA,SAAAC,GACV,MAAhBA,EAAAlI,QACAwJ,EAAM2hB,YAAOjjB,EAAAhJ,MAEPsK,EAAA2hB,YAAmBxmB,OAAA,GACzBd,EAAgB8C,OAAA,UAAA,oDACV9F,WAAA,EACN+F,KAAmB,OAKnB4C,EAAAsS,WAAS,GA0XJjY,EAAQwH,MAAM,QAAS,yBAA0B,mBArXtD,SAAMlB,GACNtG,EAAMwH,MAAA,QAAkB,mBAAA,oBA4X/B,QAvXO23M,KAEHx5M,EAAGsS,WAAA,CACH,IAAGoB,GAAavZ,EAAAgG,uBACblF,GACAnF,UAAMkK,EAAA+pB,sBAAmBj0B,UACzBge,UAAAJ,EAAgBrT,OAEnBirM,GAAGkO,OAAAv+M,GAAmBwD,KAAA,SAAAC,GACnB,GAAM,MAANA,EAAMlI,OAAe,CACrBwJ,EAAAy5M,WAAY/6M,EAAAhJ,KAEZsK,EAAAsS,WAAU,EACD,GAAAtS,EAAAy5M,WAAAt+M,QACTd,EAAA8C,OAAmB,UAAA,gDAwXN9F,WAAW,EACX+F,KAAM,MApXnB,KAAM,GAAAlC,KAAA8E,GAAAy5M,WACkB,GAAlBz5M,EAAAy5M,WAAkBv+M,GAAAw+M,eACxBr/M,EAAc8C,OAAA,UAAA,gDACR9F,WAAoB,EACV+F,KAAA,WAOhB/C,GAAMwH,MAAA,QAAe,yBAAA,eAErB,SAAMlB,GACNtG,EAAAwH,MAAU,QAAA,mBAAA,gBA0XjB,QAAS83M,KACL,GAAI35M,EAAG45M,IAAIC,gBAAiB,CAtXhCC,GACO,IAAApmM,GAAMvZ,EAAoBgG,uBAC1BlF,GACAg7M,aAAcj2M,EAAA45M,IAAAC,gBAAA5D,aACdngN,UAAMkK,EAAA45M,IAAA/3L,gBAAoB/rB,UAC1Bge,UAAgBJ,EAAArT,OAEhBirM,GAAWqO,kBAAA1+M,GAAAwD,KAAA,SAAAC,GACL,MAAAA,EAAAlI,QACNwJ,EAAA+5M,mBAAgBr7M,EAAAhJ,MAEhBsK,EAAA+5M,mBAAmB5+M,OAAA,GACbd,EAAe8C,OAAA,UAAA,4DACT9F,WAAA,EACN+F,KAAgB,OAGtB4C,EAAAsS,WAAmB,GAGjBjY,EAAAwH,MAAiB,QAAA,yBAAA,mBAEnB,SAAclB,GACdtG,EAAMwH,MAAA,QAAoB,mBAAA,wBAI1Bi4M,KA4XP,QAvXOpM,KACH,GAAG1tM,EAAA45M,IAAMI,iBAAgB,CACtBC,GACA,IAAA9nM,GAAShY,EAAAgG,uBAAAwU,gBAAAxC,UACTuB,EAAmBvZ,EAAAgG,uBAyXdlF,GAtXHkX,UAAAA,EACF2B,UAAMJ,EAAoBrT,OAE1BirM,GAAMoC,aAAOzyM,GAAAwD,KAAA,SAAAC,GACF,MAALA,EAAKlI,QACLwJ,EAAA4tM,cAAmBlvM,EAAAhJ,MAEnBsK,EAAA4tM,cAAsBzyM,OAAA,GAC5Bd,EAAmB8C,OAAA,UAAA,kDACb9F,WAAe,EACT+F,KAAA,QAMV/C,EAAYwH,MAAA,QAAA,yBAAA,cAGd,SAAMlB,GACN5I,EAAgB2I,YAAA,QAAA,mBAAA,mBAIhBu5M,KA2XP,QAvXOpM,KAwXH,GAAI7tM,EAAG45M,IAAI9E,kBAAmB,CAC1BoF,GAtXL,IAAAxmM,GAAoBvZ,EAAYgG,uBAC5BgS,EAAShY,EAAAgG,uBAAAwU,gBAAAxC,UACTlX,GAwXKkX,UAAWA,EACXrc,UAAWkK,EAAG45M,IAAI/3L,gBAAgB/rB,UAClCg4M,YAAa9tM,EAAG45M,IAAI9E,kBAAkBhH,YACtCh6L,UAAWJ,EAAYrT,OArXhCirM,GAAYuC,WAAY5yM,GAAAwD,KAAA,SAAAC,GAEV,MAANA,EAAMlI,QAMRwJ,EAAAiuM,YAAAvvM,EAAAhJ,KACEsK,EAAMsS,WAAO,GAGbjY,EAAAwH,MAAmB,QAAA,yBAAA,YAyXnB,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAnXxDw5M,KA2XR,QAvXQpoF,KAyXJ,GAAI9xH,EAAG45M,IAAIjL,gBAAiB,CACxBj/G,GACA,IAvXCh8E,GAAavZ,EAAkBgG,uBAC7BlF,GACCk/M,cAAAn6M,EAAA45M,IAAqB9E,kBAAAhH,YACtBsM,QAASp6M,EAAA45M,IAAAjL,gBAAqBC,cAC9BqH,aAASj2M,EAAQ45M,IAAGC,gBAAS5D,aAC5BoE,MAAGr6M,EAAM45M,IAAAI,iBAAUt+J,sBACnB5lD,UAAAkK,EAAA45M,IAAA/3L,gBAAA/rB,UAwXAge,UAvXCJ,EAAArT,OAyXLirM,GAvXIx5E,QAAA72H,GAAAwD,KAAA,SAAAC,GAwXmB,MAAfA,EAAIlI,QACJwJ,EAAG8zF,SAAWp1F,EAAIhJ,MArXjBsK,EAAK8zF,SAAQ34F,OAAQ,GAC1Bd,EAAA8C,OAAqB,UAAA,wDACb9F,WAAY,EACZ+F,KAAQ,OAGf4C,EAAAsS,WAAA,GA0XGjY,EAAQwH,MAAM,QAAS,yBAA0B,SAEtD,SAAUlB,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAnXxDgvF,KA2XR,QAAS7d,KACL,GAAI7xE,EAAG45M,IAAIU,aAAc,CACrB14D,GACA,IAAIluI,GAAcvZ,EAAsBgG,uBACpClF,GACAg7M,aAAcj2M,EAAG45M,IAAIC,gBAAgB5D,aAtXtCh+K,OAAAj4B,EAAY45M,IAAAU,aAAArjL,QACXnhC,UAAIkK,EAAA45M,IAAA/3L,gBAAA/rB,UAwXJge,UAAWJ,EAAYrT,OAE3BirM,GAAWz5H,YAAY52E,GAAKwD,KAAK,SAAUC,GAtX5B,MAAZA,EAAAlI,QACCwJ,EAAAgmD,aAAAtnD,EAAAhJ,MAyXSsK,EAAGgmD,aAAa7qD,OAAS,IAtX3Bd,EAAA8C,OAAA,UAAA,4DACF9F,WAAA,EACA+F,KAAA,OAyXG4C,EAAGsS,WAAY,IAnXnBjY,EAAAwH,MAAA,QAAA,yBAAA,oBAEZ,SAAalB,GACb5I,EAAa2I,YAAA,QAAA,mBAAA,yBAIjBkhJ,KA2XA,QAAS/mC,KArXN,GAAA76G,EAAA45M,IAAYC,iBAAY75M,EAAA45M,IAAAznJ,iBAAAh3D,OAAA,EAAA,CACpBo/M,IACAv6M,EAAAmiH,UAAY,CAyXX,IAAIzuG,GAAcvZ,EAAsBgG,uBAtX7CkyB,KAwXS8B,IAtXT,KAAQ,GAAAj5B,KAAA8E,GAAY45M,IAAAznJ,iBAChB9/B,EAAOx6B,KAAAmI,EAAS45M,IAAAznJ,iBAAAj3D,GAAA4oD,YACf3vB,EAAQt8B,KAAImI,EAAA45M,IAAAznJ,iBAAAj3D,GAAAk8B,WAyXZp3B,GAAGq0B,SAAWhC,EAAIqB,OAClB1zB,EAAGw6M,SAAWrmL,EAAKT,MAtXxB,IAAQz4B,IACJg7M,aAAgBj2M,EAAA45M,IAAAC,gBAAA5D,aACfh+K,OAAYj4B,EAAA45M,IAAAU,aAAArjL,QAwXRnhC,UAAWkK,EAAG45M,IAAI/3L,gBAAgB/rB,UAClCshC,WAAYp3B,EAAGw6M,SAtXxB12J,WAAoB9jD,EAAAq0B,SACX8lL,cAAen6M,EAAA45M,IAAO9E,kBAAAhH,YAwXtBsM,QAASp6M,EAAG45M,IAAIjL,gBAAgBC,cAChC96L,UAAWJ,EAAYrT,OArXhCirM,GAAYzwF,OAAQ5/G,GAAAwD,KAAA,SAAAC,GACD,MAAnBA,EAAAlI,QAwXawJ,EAAGk8G,QAAUx9G,EAAIhJ,MACZsK,EAAGk8G,QAAQ/gH,OAAS,IAtX7Bd,EAAA8C,OAAA,UAAA,uDACA9F,WAAA,EAwXY+F,KAAM,OApXlB4C,EAAAsS,WAAA,IAIHjY,EAAYwH,MAAM,QAAA,yBAAA,eAEnB,SAAYlB,GACZ5I,EAAS2I,YAAO,QAAA,mBAAA,sBA+XxB,QAAS+5M,KAEL,GAAIz6M,EAAG45M,IAAI3nJ,cAAgBjyD,EAAG45M,IAAI3nJ,aAAa92D,OAAS,EAAG,CAtX3Du/M,GAwXI,IAAIhnM,GAAcvZ,EAAsBgG,uBACpCkyB,KACA8B,KACAwmL,IACJ,KAAK,GAAIz/M,KAAK8E,GAAG45M,IAAIznJ,iBACjB9/B,EAAIx6B,KAAKmI,EAAG45M,IAAIznJ,iBAAiBj3D,GAAGk8B,WAGxC,KAAK,GAAIl8B,KAAK8E,GAAG45M,IAAIznJ,iBAAkB,CACnC,GAAIhoD,EAvXpBxU,SAAAwU,IACYA,EAAA,GA0XQnK,EAAG45M,IAAIznJ,iBAAiBj3D,GAAG4oD,YAAc35C,IACzCgqB,EAAKt8B,KAAKmI,EAAG45M,IAAIznJ,iBAAiBj3D,GAAG4oD,YAvXxC35C,EAAOgqB,EAAAj5B,IA6XZ8E,EAAGq0B,SAAWF,EAAKT,OAvXxB1zB,EAAAw6M,SAAcnoL,EAAAqB,MACd,KAAA,GAAAx4B,KAAA8E,GAAA45M,IAAuB3nJ,aACnB0oJ,EAAA9iN,KAAcmI,EAAA45M,IAAA3nJ,aAAA/2D,GAAAs2D,OA0XbxxD,GAAGwxD,OAASmpJ,EAAKjnL,MAvXtB,IAAAz4B,IACAnF,UAAYkK,EAAA45M,IAAA/3L,gBAAA/rB,UACZ8kN,cAAY56M,EAAA45M,IAAA9iK,aAAA+jK,cACJ/M,YAAU9tM,EAAA45M,IAAA9E,kBAAAhH,YAClBY,QAAW1uM,EAAA45M,IAAAjL,gBAAAC,cACX52K,QAAeh4B,EAAA45M,IAAAU,aAAArjL,QACfG,WAAUp3B,EAAAw6M,SAyXD12J,WAAY9jD,EAAGq0B,SAvXfymL,QAAA96M,EAAAwxD,OACAupJ,kBAAA/6M,EAAA+6M,kBACDjnM,UAAAJ,EAAArT,OAGRirM,GAAamP,iBAAAx/M,GAAAwD,KAAA,SAAAC,GACb,GAAU,MAAAA,EAAAlI,OAAA,CAEDwJ,EAAAg7M,QAAAt8M,EAAAhJ,MAEAsK,EAAAg7M,QAAA7/M,OAAA,GACKd,EAAA8C,OAAA,UAAA,kDACC9F,WAAA,EACL+F,KAAA,OAGN4C,EAAUi7M,WAAAzgN,EAAA6P,KAAArK,EAAAg7M,SAAAC,WA2XDj7M,EAAG45M,IAAIqB,WAAaj7M,EAAGi7M,UAvXvC,KAAA,GAAA//M,KAAA8E,GAAAg7M,QAyXoBh7M,EAAGg7M,QAAQ9/M,GAAGggN,iBAAmBv+M,KAAKC,MAAMoD,EAAGg7M,QAAQ9/M,GAAGigN,aArXtEn7M,GAAcg7M,QAAA7/M,OAAA,GACRd,EAAA8C,OAAA,OAAA,oDACK9F,WAAY,EAyXP+F,KAAM,WAjXd/C,GAAQwH,MAAA,QAAW,yBAAK,QA0X7B,SAAUlB,GACT5I,EAxXW2I,YAAY,QAAA,mBAAA,aA4X3Bg6M,KAGR,QAAS1mM,KACLhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGiU,aAxXQ,EAyXXjU,EAAG45M,OAGP,QAxXOwB,KA0XH,GAAI1nM,GAAcvZ,EAAsBgG,uBACpCkyB,KAvXA8B,KACJwmL,IAyXA,KAxXI,GAAIz/M,KAAI8E,GAAA45M,IAAAznJ,iBAyXR9/B,EAxXIx6B,KAAGmI,EAAA45M,IAAAznJ,iBAAkBj3D,GAAAk8B,YAyXzBjD,EAAKt8B,KAAKmI,EAAG45M,IAAIznJ,iBAAiBj3D,GAAG4oD,WAEzC9jD,GAAGq0B,SAxXSF,EAAAT,OAyXZ1zB,EAAGw6M,SAAWnoL,EAxXEqB,MAyXhB,KAAK,GAAIx4B,KAAK8E,GAxXE45M,IAAA3nJ,aAyXZ0oJ,EAAK9iN,KAAKmI,EAAG45M,IAAI3nJ,aAAa/2D,GAAGs2D,OAErCxxD,GAAGwxD,OAASmpJ,EAAKjnL,MACjB,IAAIz4B,IACAggN,WAxXOj7M,EAAA45M,IAAYqB,WAyXnBnlN,UAAWkK,EAAG45M,IAAI/3L,gBAAgB/rB,UAClC8kN,cAxXO56M,EAAA45M,IAAA9iK,aAAA+jK,cAyXP/M,YAxXY9tM,EAAA45M,IAAM9E,kBAAShH,YAyX3BY,QAAS1uM,EAAG45M,IAAIjL,gBAAgBC,cAvXjC52K,QAAUh4B,EAAA45M,IAAKU,aAAArjL,QACdG,WAAQp3B,EAAMw6M,SAyXd12J,WAAY9jD,EAAGq0B,SACfymL,QAAS96M,EAAGwxD,OACZupJ,kBAAmB/6M,EAAG+6M,kBACtBjnM,UAAWJ,EAAYrT,OAE3BirM,GAAW8P,QAAQngN,GAAKwD,KAAK,SAAUC,GAvXxB,MAAZA,EAAAlI,QAECuB,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,OACN3B,IACAlS,EAAAgT,YAAW,EAyXP0E,MAtXA3f,EAAI2I,YAAgB,UAAAhC,EAAAhJ,KAAAme,QAAA,OACpB7T,EAAGgT,YAAa,IA2XrB,SAxXSrS,GAyXR5I,EAxXQ2I,YAAe,iCA2X/B,QAAS+nH,GAAO31G,GACZ9S,EAAGg7M,QAAQ1lL,OAAOxiB,EAAK,GAE3B,QAASpB,KACL,GAAIiB,GAAUtY,EAxXEsY,QAAQ,eAyXpB,yFACAtb,WAAW,EACX+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EAChBhT,EAAG45M,OACH55M,EAAGg7M,QAxXS,KAMpB,QAAStlJ,KACLr7D,EAAO8C,OAAI,UAAA,oCACP9F,WAAA,EACA+F,KAAI,OA2XZ,QAASi+M,KACLhhN,EAxXQ8C,OAAA,UAAW,qCAyXf9F,WAAW,EAvXX+F,KAAA,OA2XR,QAASsa,KAEL1X,EAAGgT,YAxXa,EAyXhBhT,EAAG+S,WAAY,EACfb,IACAlS,EAAG45M,OACH55M,EAAGg7M,QAAU,GAiDjB,QAASM,KACLt7M,EAAG45M,IAAIC,gBAAkB,KAvX7B75M,EAAA45M,IAAS9iK,aAAa,KAClB92C,EAAA45M,IAAOC,gBAAI,KAyXX75M,EAAG45M,IAxXCI,iBAAA,KAyXJh6M,EAAG+5M,sBACH/5M,EAAG45M,IAxXC9E,kBAAgB,KAyXpB90M,EAAG4tM,iBACH5tM,EAAG45M,IAAIjL,gBAxXY,KAyXnB3uM,EAAGiuM,eACHjuM,EAAG45M,IAAIU,aAxXc,KAyXrBt6M,EAAG8zF,YACH9zF,EAAG45M,IAAIznJ,iBAAmB,KAC1BnyD,EAAGgmD,gBACHhmD,EAAG45M,IAAI3nJ,aAAe,KACtBjyD,EAAG45M,IAAI3nJ,gBACPjyD,EAAGk8G,WACHl8G,EAAGg7M,WACHh7M,EAAG45M,IAAI3nJ,gBAGX,QAASspJ,KACLv7M,EAAG45M,IAAI9iK,aAxXQ,KAyXf92C,EAAG45M,IAAII,iBAAmB,KAC1Bh6M,EAAG+5M,sBACH/5M,EAAG45M,IAAI9E,kBAxXmB,KAyX1B90M,EAAG4tM,iBACH5tM,EAAG45M,IAxXIjL,gBAAe,KAyXtB3uM,EAAGiuM,eACHjuM,EAAG45M,IAAIU,aAAe,KACtBt6M,EAAG8zF,YACH9zF,EAAG45M,IAxXEznJ,iBAAA,KAyXLnyD,EAAGgmD,gBACHhmD,EAAG45M,IAAI3nJ,aAAe,KACtBjyD,EAAG45M,IAAI3nJ,gBACPjyD,EAAGk8G,WAvXPl8G,EAAAg7M,WACIh7M,EAAA45M,IAAA3nJ,gBA2XJ,QAxXQ6nJ,KAyXJ95M,EAAG45M,IAxXCI,iBAAU,KAyXdh6M,EAAG+5M,sBACH/5M,EAAG45M,IAAI9E,kBAxXiB,KAyXxB90M,EAAG4tM,iBACH5tM,EAAG45M,IAAIjL,gBAxXe,KAyXtB3uM,EAAGiuM,eACHjuM,EAAG45M,IAAIU,aAxXY,KAyXnBt6M,EAAG8zF,YACH9zF,EAAG45M,IAxXCznJ,iBAAmB,KAyXvBnyD,EAAGgmD,gBACHhmD,EAAG45M,IAAI3nJ,aAxXQ,KAyXfjyD,EAAG45M,IAAI3nJ,gBACPjyD,EAAGk8G,WACHl8G,EAAGg7M,WACHh7M,EAAG45M,IAAI3nJ,gBAGX,QAASgoJ,KACLj6M,EAAG45M,IAAI9E,kBAxXoB,KAyX3B90M,EAAG4tM,iBACH5tM,EAAG45M,IAAIjL,gBAxXM,KAyXb3uM,EAAGiuM,eACHjuM,EAAG45M,IAAIU,aAAe,KACtBt6M,EAAG8zF,YACH9zF,EAAG45M,IAAIznJ,iBAxXY,KAyXnBnyD,EAAGgmD,gBACHhmD,EAAG45M,IAAI3nJ,aAAe,KACtBjyD,EAAG45M,IAxXE3nJ,gBAyXLjyD,EAAGk8G,WACHl8G,EAAGg7M,WACHh7M,EAAG45M,IAAI3nJ,gBAGX,QAxXQioJ,KAyXJl6M,EAAG45M,IAxXCjL,gBAAA,KAyXJ3uM,EAAGiuM,eACHjuM,EAAG45M,IAxXCU,aAAU,KAyXdt6M,EAAG8zF,YACH9zF,EAAG45M,IAAIznJ,iBAxXgB,KAyXvBnyD,EAAGgmD,gBACHhmD,EAAG45M,IAAI3nJ,aAxXY,KAyXnBjyD,EAAG45M,IAAI3nJ,gBACPjyD,EAAGk8G,WACHl8G,EAAGg7M,WACHh7M,EAAG45M,IAAI3nJ,gBAGX,QAASy9B,KACL1vF,EAAG45M,IAAIU,aAxXa,KAyXpBt6M,EAAG8zF,YACH9zF,EAAG45M,IAAIznJ,iBAAmB,KAC1BnyD,EAAGgmD,gBACHhmD,EAAG45M,IAAI3nJ,aAAe,KACtBjyD,EAAG45M,IAAI3nJ,gBACPjyD,EAAGk8G,WACHl8G,EAAGg7M,WACHh7M,EAAG45M,IAAI3nJ,gBAGX,QAAS2vF,KACL5hJ,EAAG45M,IAAIznJ,iBAAmB,KAC1BnyD,EAAGgmD,gBACHhmD,EAAG45M,IAxXC3nJ,aAAA,KAyXJjyD,EAAG45M,IAAI3nJ,gBACPjyD,EAAGk8G,WACHl8G,EAAGg7M,WAvXPh7M,EAAA45M,IAAS3nJ,gBA2XT,QAxXQsoJ,KAyXJv6M,EAAG45M,IAxXI3nJ,aAAW,KA0XlBjyD,EAAGk8G,WACHl8G,EAAGg7M,WAIP,QAASN,KACL16M,EAAGg7M,WAvrBP,GAAIh7M,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAtXpGrL,EAAAsU,SAAStU,EAAAqU,gBAAA,GAyXTrU,EAAGuU,YAvXW,EAwXdvU,EAAGwU,qBAvXmB,SAAMC,GAwXxBzU,EAAGuU,YAvXYE,GA0XnBzU,EAAGgT,YAvXK,EAwXRhT,EAAG+S,WAvXK,EAwXR/S,EAAGsS,WAvXK,EAwXRva,EAvXQ2c,SAAW,EAwXnB1U,EAAGmiH,UAvXK,EAwXRniH,EAAGgmD,gBACHhmD,EAAGk8G,WAEHl8G,EAAGgU,OAvXSA,EAwXZhU,EAAG0R,OAvXSA,EAwXZ1R,EAAG0X,MAAQA,EACX1X,EAAG25M,kBAvXiBA,EAwXpB35M,EAAG0tM,aAvXaA,EAwXhB1tM,EAAG6tM,WAAaA,EAChB7tM,EAAG8xH,QAAUA,EACb9xH,EAAG6xE,YAAcA,EACjB7xE,EAAG66G,OAASA,EACZ76G,EAAGy6M,iBAvXcA,EAwXjBz6M,EAAGyoH,OAASA,EACZzoH,EAAG01D,YAAcA,EACjB11D,EAAGq7M,aAAeA,EAClBr7M,EAAGo7M,QAAUA,EACbp7M,EAAGw5M,OAASA,EACZx5M,EAAGw7M,WAAY,EACf/wM,EAAOgxM,SAvXS,EAwXhBz7M,EAAGs7M,gBAvXiBA,EAwXpBt7M,EAAGu7M,iBAvXkBA,EAyXrBrpM,IA8eAlS,EAAGuL,OAAS,SAAUuH,EAAK5X,GACvB,GAAIm3B,GAxXG73B,EAAUyC,OAAK6V,EAAAooM,iBAAA,SAAAxnJ,GAyXlB,MAxX2B,IAAvBA,EAAAg+I,kBA0XJr/K,GAAIl3B,OAAS,GACb2X,EAxXCqkM,aAAA,EACDn3M,EAAAw7M,WAAA,IA2XA1oM,EAAIqkM,aAAc,EAClBn3M,EAAGw7M,WAAY,IAKvBx7M,EAAGyjB,UAxXS,SAAA3Q,EAAc5X,GA6XtB,GAAuB,GAAnB4X,EAAIqkM,YAAqB,CAGzB,GAAI+D,GAxXOpoM,EAAgBooM,gBA2X3B,KAAK,GAAIhgN,KAxXGggN,GA0XRA,EAxXYhgN,GAAMk8M,KAAAtkM,EAAAskM,IAyXlB8D,EAAiBhgN,GAAGw2M,kBAAmB,CAG3C1xM,GAAGw7M,WAAY,MAEd,CACD,GAAIN,GAAmBpoM,EAAIooM,gBAC3B,KAAK,GAAIhgN,KAAKggN,GAvXXA,EAAehgN,GAAAk8M,KAAAtkM,EAAAskM,IACd8D,EAAWhgN,GAAAw2M,kBAAqB,CA0XpC1xM,GAAGw7M,WAAY,yIAlkB3BpnN,QACKC,OAAO,kCACPe,WAvXU,UAAU+jN,MAujC7B,WACI,YAOA,SAASuC,GAxXc3hN,EAAYS,EAAKP,EAAUlC,EAAKsC,EAAAF,EAAA6X,EAAAJ,EAAAy7L,EAAAC,EAAAzlH,GA2ZnD,QAAS31E,KAvXDC,GAyXAH,EAxXQI,mBAAAD,GAAA1T,KAAA,SAAAC,GACK,MAALA,EAAAlI,SACAwJ,EAAAqS,YAAI3T,EAAAhJ,OA0XT,SAxXQiL,GAyXP5I,EAxXS2I,YAAY,QAAA,mBAAoB,mBA2XjD,IAAIzF,IACA6Y,UAAWJ,EAAYrT,OAE3BgtM,GAxXuBE,YAAAtyM,GAAAwD,KAAA,SAAAC,GACD,MAAfA,EAAAlI,QACHwJ,EAAKwtM,UAAY9uM,EAAIhJ,KACjBsK,EAAAsS,WAAa,GAGbjY,EAAMwH,MAAA,QAAA,yBAAA,cA0XX,SAxXKlB,GAyXJ5I,EAxXI2I,YAAgB,QAAI,mBAAkB,eA6XlD,QAAS+gB,GAxXetP,GAyXhBA,GACAs7L,IACA77L,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QAvXZwJ,EAAW2hB,YAAAjjB,EAAiBhJ,MAChBsK,EAAA2hB,YAAgBxmB,OAAA,GAyXhBd,EAAQ8C,OAAO,UAAW,oDAvX3B9F,WAAc,EAyXT+F,KAAM,OAGd4C,EAAGsS,WAxXK,GA0XRjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAxXQlB,GAyXPtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAI/C4rM,IAIR,QAASC,GAxXWv7L,GAyXhB,GAAIA,EAAW,CACX,GAAIuB,GAxXYvZ,EAAMgG,uBA0XlBlF,GACAkX,UAAWnS,EAAG27M,WAAWxoM,gBAAgBhB,UACzC2B,UAAWJ,EAAYrT,OAEvB8R,IACAm7L,EAxX2BI,aAAAzyM,GAAAwD,KAAA,SAA0BC,GAyX9B,MAAfA,EAAIlI,QAvXbwJ,EAAU4tM,cAAKlvM,EAAAhJ,MACHsK,EAAA4tM,cAAYzyM,OAAS,GAyXpBd,EAAQ8C,OAAO,UAAW,sDACtB9F,WAAW,EAvX9B+F,KAAA,OA2XW4C,EAAGsS,WAAY,GArXfjY,EAAAwH,MAAA,QAAA,yBAAA,cAEP,SAAAlB,GAyXG5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAOpE,QAxXQmtM,GAAO17L,EAAA27L,GA0XX,GAxXIA,EAAY,CACZC,GAyXA,IAAIr6L,GAAcvZ,EAAsBgG,uBAvXzClF,GACAkX,UAAenS,EAAA27M,WAAAxoM,gBAAAhB,UAEd27L,YAAiB9tM,EAAA27M,WAAa3N,kBAAGF,YAyX7Bh6L,UAAWJ,EAAYrT,OAtX3BitM,GAAMO,WAAA5yM,GAAAwD,KAAA,SAAAC,GACa,MAAnBA,EAAYlI,QACZwJ,EAAWiuM,YAAOvvM,EAAAhJ,KAClBy8B,QAAeC,IAAGpyB,EAAIiuM,cACTjuM,EAAGiuM,YAAI9yM,OAAA,GACRd,EAAI8C,OAAA,UAAgB,sDAChB9F,WAAA,EACD+F,KAAA,OAIf4C,EAAWsS,WAAY,GAGfjY,EAAAwH,MAAW,QAAK,yBAAA,YA0XrB,SAxXClB,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,iBA4XJqtM,KAIR,QAxXOwK,GAAe3J,GACdA,GAyXA4J,IACAx4M,EAAG2vM,gBAAmBx3J,SAAU,IAAKc,SAAU,QAAS0M,KAAM,QAAWxN,SAAU,IAAKc,SAAU,SAAU0M,KAAM,SAAYxN,SAAU,IAAKc,SAAU,UAAW0M,KAAM,UAAaxN,SAAU,IAAKc,SAAU,YAAa0M,KAAM,iBAAoBxN,SAAU,KAAMc,SAAU,cAAe0M,KAAM,cAAiBxN,SAAU,IAAKc,SAAU,SAAU0M,KAAM,UAG9V6yJ,IAMR,QAASzwH,KAtXL/nF,EAAA29C,iBAAoB,KAyXpB39C,EAAGkuM,iBACHluM,EAAG69C,oBAxXU,KAyXb79C,EAAGmuM,oBACHnuM,EAAG82C,aAAe,KAClB92C,EAAGouM,aACHpuM,EAAGyxD,QAAS,EACZzxD,EAAG47M,sBACH57M,EAAGi+C,iBAAmB,IAvX1B,IAAAhjD,IACIkX,UAAenS,EAAA27M,WAAWxoM,gBAAAhB,UACtBq8L,UAAWxuM,EAAA27M,WAAAlN,gBAAAC,QACX54M,UAAMH,QAAAqK,EAAA27M,WAAA95L,gBAAA7hB,EAAA27M,WAAA95L,gBAAA/rB,UAAA,EAyXNg4M,YAAa9tM,EAAG27M,WAAW3N,kBAAkBF,YAC7C5B,QAASlsM,EAAG27M,WAAWhN,gBAAgBC,cAvX/Cl/J,SAASz1C,EAAe,QAAA+F,EAAA27M,WAAA34J,KAAA,cACpBrT,OAAQ11C,EAAO,QAAW+F,EAAA27M,WAAA14J,GAAA,cACtBnvC,UAAWJ,EAAArT,OA0XfwnF,GAAyBE,gBAAgB9sF,GAAKwD,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,QAvXPwJ,EAAAkuM,cAAQxvM,EAAAhJ,MAyXAsK,EAAGkuM,cAAc/yM,OAAS,IAvXpCd,EAAa8C,OAAA,UAAA,8DACD9F,WAAA,EACf+F,KAAA,OAEG4C,EAAU27M,WAAA34J,KAAA,KAyXDhjD,EAAG27M,WAAW14J,GAAK,MAEvBjjD,EAAGsS,WAAY,GArXnBjY,EAAMwH,MAAO,QAAW,yBAA4B,mBA0XrD,SAAUlB,GAvXT5I,EAAI2I,YAAY,QAAA,mBAAA,oBA4XxB,QAxXSsnF,KA0XL,GAxXIhoF,EAAG29C,iBAAY,CAyXf39C,EAAG67M,mBAAqB,KACxB77M,EAAGmuM,oBACHnuM,EAAG82C,aAAe,KAClB92C,EAAGouM,aAvXRpuM,EAAAyxD,QAAY,EAyXPzxD,EAAG47M,sBACH57M,EAAGi+C,iBAAmB,IACtB,IAAI5rB,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG29C,iBAvXbtrB,EAAAx6B,KAAAmI,EAAA29C,iBAAqBziD,GAAA2zM,OA0XzB7uM,GAAGyjD,SAAWpxB,EAAIqB,MAvXlB,IAAIz4B,IAyXAkX,UAAWnS,EAAG27M,WAAWxoM,gBAAgBhB,UACzCq8L,UAAWxuM,EAAG27M,WAAWlN,gBAAgBC,QAvX7C54M,UAAgCH,QAAlBqK,EAAA27M,WAAA95L,gBAAkB7hB,EAAA27M,WAAA95L,gBAAA/rB,UAAA,EAyX5Bg4M,YAAa9tM,EAAG27M,WAAW3N,kBAAkBF,YAvX7C5B,QAAAlsM,EAAA27M,WAAoBhN,gBAAWC,cAC/Bl/J,SAAAz1C,EAAiB,QAAG+F,EAAA27M,WAAmB34J,KAAA,cAyXvCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG27M,WAAW14J,GAAI,cAC1C4rJ,OAAQ7uM,EAAGyjD,SAvXZ3vC,UAAYJ,EAAArT,OA0XfwnF,GAxXCG,mBAAA/sF,GAAAwD,KAAA,SAAAC,GACsB,MAAnBA,EAAAlI,QACCwJ,EAAImuM,iBAAKzvM,EAAkBhJ,MAC5BsK,EAAAmuM,iBAA2BhzM,OAAI,GAC/Bd,EAAA8C,OAAoB,UAAA,qEAyXR9F,WAAW,EAvXZ+F,KAAA,OA2XP4C,EAAGsS,WAAY,GArXpBjY,EAAAwH,MAAe,QAAA,yBAAA,sBAEf,SAAAlB,GACJ5I,EAAA2I,YAAqB,QAAA,mBAAA,2BAIrBV,GAAA69C,oBAAc,KACd79C,EAAImuM,oBACJnuM,EAAA82C,aAAW,KACX92C,EAAIouM,aACJpuM,EAAAyxD,QAAA,EACAzxD,EAAI47M,sBACJ57M,EAAIi+C,iBAAe,KA6X1B,QAASgqC,KAtXL,GAAGjoF,EAAI69C,oBAAe,CACnB79C,EAAI82C,aAAA,KACJ92C,EAAAouM,aACApuM,EAAIyxD,QAAA,EACJzxD,EAAA47M,sBACA57M,EAAIi+C,iBAAkB,IACtB,IAAA5rB,KACA,KAAI,GAAAn3B,KAAA8E,GAAA69C,oBACJxrB,EAAAx6B,KAAWmI,EAAA69C,oBAAA3iD,GAAA4zM,UAEX9uM,GAAAwjD,YAAenxB,EAAAqB,MACf,IAAIz4B,IACAkX,UAAAnS,EAAe27M,WAAAxoM,gBAAAhB,UACnBq8L,UAAUxuM,EAAA27M,WAAAlN,gBAAAC,QACV54M,UAAUH,QAAAqK,EAAA27M,WAAA95L,gBAAA7hB,EAAA27M,WAAA95L,gBAAA/rB,UAAA,EACNg4M,YAAA9tM,EAAe27M,WAAA3N,kBAAAF,YAyXd5B,QAASlsM,EAAG27M,WAAWhN,gBAAgBC,cACvCl/J,SAAUz1C,EAAQ,QAAQ+F,EAAG27M,WAAW34J,KAAM,cAvXjDrT,OAAW11C,EAAA,QAAA+F,EAAA27M,WAAA14J,GAAA,cACT6rJ,UAAA9uM,EAAAwjD,YACJ1vC,UAAAJ,EAAqBrT,OAGrBwnF,GAAsBI,iBAAAhtF,GAAAwD,KAAA,SAAAC,GACR,MAAdA,EAAAlI,QACIwJ,EAAAouM,UAAe1vM,EAAAhJ,MACRsK,EAAAouM,UAAAjzM,OAAA,GACPd,EAAA8C,OAAmB,UAAA,iEACR9F,WAAA,EACX+F,KAAe,OAGnB4C,EAAUsS,WAAA,GA2XDjY,EAAQwH,MAAM,QAAS,yBAA0B,eAtXtD,SAAAlB,GACJ5I,EAAgB2I,YAAA,QAAA,mBAAA,oBAIhBV,GAAA82C,aAAW,KACX92C,EAAIouM,aACJpuM,EAAAyxD,QAAA,EACAzxD,EAAI47M,sBACJ57M,EAAIi+C,iBAAe,KA4X1B,QAAS69J,KACD97M,EAAG82C,cAvXX92C,EAASi+C,iBAAe,KACjBj+C,EAAI47M,sBACJ57M,EAAAyxD,QAAA,EACAzxD,EAAI++C,WAAAvD,aAAe,MAAAnzB,KAAA,MAAAmzB,aAAA,UAAAnzB,KAAA,MAEfmzB,aAAA,WACJnzB,KAAA,MAEAroB,EAAIsS,WAAA,IAGJtS,EAAIi+C,iBAAe,KAyXlBj+C,EAAG47M,sBACH57M,EAAGyxD,QAAS,GAIpB,QAxXOi3B,KAEH,GAAG1oF,EAAIi+C,iBAAe51B,KAAA,CACnBroB,EAAI47M,sBACJ57M,EAAAsS,WAAU,EACVtS,EAAAyxD,QAAU,CACV,IAAIp/B,KAyXH,KAAK,GAAIn3B,KAAK8E,GAAG82C,aACbzkB,EAAIx6B,KAAKmI,EAAG82C,aAAa57C,GAAG6zM,QAtXjC/uM,GAAI+7M,aAAA1pL,EAAmBqB,MAEvB,IAAIz4B,IACAkX,UAAAnS,EAAe27M,WAAAxoM,gBAAAhB,UACnBq8L,UAAUxuM,EAAA27M,WAAAlN,gBAAAC,QACV54M,UAAUH,QAAAqK,EAAA27M,WAAA95L,gBAAA7hB,EAAA27M,WAAA95L,gBAAA/rB,UAAA,EACNg4M,YAAA9tM,EAAe27M,WAAA3N,kBAAAF,YAyXd5B,QAASlsM,EAAG27M,WAAWhN,gBAAgBC,cACvCl/J,SAAUz1C,EAAQ,QAAQ+F,EAAG27M,WAAW34J,KAAM,cAvXjDrT,OAAA11C,EAAY,QAAA+F,EAAA27M,WAAA14J,GAAA,cACV8rJ,QAAA/uM,EAAA+7M,aAyXCC,QAASh8M,EAAGi+C,iBAAiB51B,KAvXlC4zL,OAAUvoM,EAAArT,OA0XT8xB,SAAQC,IAAIn3B,GACZ4sF,EAAyBa,kBAAkBztF,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,QAtXbwJ,EAAU47M,mBAAAl9M,EAAAhJ,KAyXDy8B,QAAQC,IAAIpyB,EAAG47M,qBACV57M,EAAG47M,mBAAmBzgN,OAAS,GAChCd,EAAQ8C,OAAO,UAAW,+DACtB9F,WAAW,EAvX9B+F,KAAA,OA2Xe4C,EAAG47M,mBAAmBzgN,OAAS,EAxXvD6E,EAAAyxD,QAAA,EAEgBzxD,EAAAyxD,QAAA,EA2XIzxD,EAAGsS,WAAY,GAvXtBjY,EAAAwH,MAAA,QAAA,yBAAA,mBAGN,SAAclB,GA0XL5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDV,GAAGyxD,QAAS,EACZzxD,EAAG47M,sBApXX,QAAGl5G,KACA1iG,EAAA27M,WAAAxoM,gBAAqB,KACrBnT,EAAA27M,WAAAlN,gBAAkB,KAClBzuM,EAAA27M,WAAA95L,gBAAqB,KACrB7hB,EAAA2hB,eACA3hB,EAAA27M,WAAQ3N,kBAAA,KACRhuM,EAAA4tM,iBACA5tM,EAAA27M,WAAehN,gBAAA,KACf3uM,EAAAiuM,eACAjuM,EAAA27M,WAAYjM,kBAAA,KACZ1vM,EAAA2vM,iBACA3vM,EAAA27M,WAAc34J,KAAA,KA0XbhjD,EAAG27M,WAAW14J,GAAK,KACnBjjD,EAAG29C,iBAAmB,KAxXvB39C,EAAAkuM,iBACAluM,EAAA69C,oBAAmB,KACnB79C,EAAAmuM,oBACAnuM,EAAA82C,aAAY,KACf92C,EAAAouM,aA0XIpuM,EAAGyxD,QAAS,EAxXhBzxD,EAAAi+C,iBAAgB,KACZj+C,EAAA47M,sBA4XJ,QAASnO,KACLztM,EAAG27M,WAAWlN,gBAAkB,KAChCzuM,EAAG27M,WAzXI95L,gBAAe,KA0XtB7hB,EAAG2hB,eACH3hB,EAAG27M,WAAW3N,kBAAoB,KAClChuM,EAAG4tM,iBAxXH5tM,EAAA27M,WAAUhN,gBAAA,KA0XV3uM,EAAGiuM,eACHjuM,EAAG27M,WAAWjM,kBAAoB,KAxXlC1vM,EAAA2vM,iBA0XA3vM,EAAG27M,WAzXS34J,KAAA,KA0XZhjD,EAAG27M,WAzXQ14J,GAAA,KA0XXjjD,EAAG29C,iBAzXQ,KA0XX39C,EAAGkuM,iBACHluM,EAAG69C,oBAzXM,KA0XT79C,EAAGmuM,oBACHnuM,EAAG82C,aAAe,KAClB92C,EAzXGouM,aA0XHpuM,EAAGyxD,QAzXC,EA0XJzxD,EAAG47M,sBACH57M,EAAGi+C,iBAAmB,KAI1B,QAzXQ2xJ,KA0XJ5vM,EAAG27M,WAzXC95L,gBAAA,KA0XJ7hB,EAAG27M,WAzXC3N,kBAAuB,KA0X3BhuM,EAAG27M,WAzXShN,gBAAoB,KA0XhC3uM,EAAGiuM,eACHjuM,EAAG27M,WAzXSjM,kBAAoB,KA0XhC1vM,EAAG2vM,iBACH3vM,EAAG27M,WAAW34J,KAzXM,KA0XpBhjD,EAAG27M,WAAW14J,GAAK,KACnBjjD,EAAG29C,iBAAmB,KACtB39C,EAAGkuM,iBACHluM,EAAG69C,oBAzXY,KA0Xf79C,EAAGmuM,oBACHnuM,EAAG82C,aAzXS,KA0XZ92C,EAAGouM,aACHpuM,EAAGyxD,QAzXI,EA0XPzxD,EAAG47M,sBACH57M,EAAGi+C,iBAAmB,KAG1B,QAzXQ4xJ,KA0XJ7vM,EAAG27M,WAAW3N,kBAAoB,KAClChuM,EAAG27M,WAAWhN,gBAAkB,KAChC3uM,EAAGiuM,eAxXPjuM,EAAA27M,WAASjM,kBAAwB,KAC7B1vM,EAAA2vM,iBA0XA3vM,EAAG27M,WAzXK34J,KAAA,KA0XRhjD,EAAG27M,WAAW14J,GAAK,KACnBjjD,EAAG29C,iBAzXW,KA0Xd39C,EAAGkuM,iBACHluM,EAAG69C,oBAzXgB,KA0XnB79C,EAAGmuM,oBACHnuM,EAAG82C,aAzXK,KA0XR92C,EAAGouM,aACHpuM,EAAGyxD,QAzXS,EA0XZzxD,EAAG47M,sBACH57M,EAAGi+C,iBAzXkB,KA4XzB,QAAS8vJ,KACL/tM,EAAG27M,WAAWhN,gBAAkB,KAChC3uM,EAAGiuM,eACHjuM,EAAG27M,WAAWjM,kBAzXiB,KA0X/B1vM,EAAG2vM,iBACH3vM,EAAG27M,WAAW34J,KAzXG,KA0XjBhjD,EAAG27M,WAAW14J,GAzXE,KA0XhBjjD,EAAG29C,iBAAmB,KACtB39C,EAAGkuM,iBACHluM,EAAG69C,oBAzXoB,KA0XvB79C,EAAGmuM,oBACHnuM,EAAG82C,aAAe,KAClB92C,EAAGouM,aACHpuM,EAAGyxD,QAAS,EACZzxD,EAAG47M,sBACH57M,EAAGi+C,iBAAmB,KAG1B,QAzXQu6J,KA0XJx4M,EAAG27M,WAzXCjM,kBAAA,KA0XJ1vM,EAAG2vM,iBACH3vM,EAAG27M,WAzXW34J,KAAA,KA0XdhjD,EAAG27M,WAzXK14J,GAAW,KA0XnBjjD,EAAG29C,iBAAmB,KACtB39C,EAAGkuM,iBACHluM,EAAG69C,oBAzXgB,KA0XnB79C,EAAGmuM,oBACHnuM,EAAG82C,aAzXC,KA0XJ92C,EAAGouM,aACHpuM,EAAGyxD,QAzXS,EA0XZzxD,EAAG47M,sBACH57M,EAAGi+C,iBAzXiB,KA2XxB,QAASiL,KACLlpD,EAAG27M,WAAW34J,KAzXM,KA0XpBhjD,EAAG27M,WAAW14J,GAAK,KACnBjjD,EAAG29C,iBAAmB,KACtB39C,EAAGkuM,iBACHluM,EAAG69C,oBAzXY,KA0Xf79C,EAAGmuM,oBACHnuM,EAAG82C,aAzXU,KA0Xb92C,EAAGouM,aACHpuM,EAAGyxD,QAAS,EACZzxD,EAAG47M,sBACH57M,EAAGi+C,iBAzXgB,KA8evB,QAAS7kC,GAAS1jB,GAxXlB,GAAA2jB,GAAS3jB,EAAA2jB,KACL9iB,EAAAb,EAAAa,IACA,OAAO,QAAAA,IAAqB,IAArB8iB,EAAqBC,UAAA,IAAAD,EAAAC,UAgahC,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAzXCb,EAAAa,IA0XL,IAzXO,QAAHA,EAGA,IAAG,GAFAijB,GAAY,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEZxe,EAAA,EAAAA,EAAA8E,EAAA2Z,OAAqBxe,OAAAD,IAAA,CACrB,GAAA0e,GAAA,GAAmBH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA2XlB,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAzXO,GA9TX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBAxXqBhJ,MAAQ,IAAAA,MAAY,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAyX5CrL,EAAGsU,SAAWtU,EAAGqU,gBAxXW,GA0X5BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,EAGrB,IAAItC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzEuB,EAxXavZ,EAAAgG,sBAyXjBH,GAAGyhB,oBAxXqBA,EAyXxBzhB,EAAG0tM,aAAeA,EAClB1tM,EAAG6tM,WAxXQA,EAyXX7tM,EAAGu4M,mBAxXoBA,EAyXvBv4M,EAAG+nF,gBAAkBA,EACrB/nF,EAAGgoF,mBAAqBA,EACxBhoF,EAAGioF,iBAxXMA,EAyXTjoF,EAAG0iG,MAAQA,EACX1iG,EAAG4vM,aAAeA,EAClB5vM,EAAG6vM,aAAeA,EAClB7vM,EAAGyxD,QAAS,EAvXZzxD,EAAAkpD,UAASA,EAyXTlpD,EAAG0oF,kBAxXCA,EAyXJ1oF,EAAG87M,YAxXYA,EA2Xf97M,EAAGkuM,iBACHluM,EAAGmuM,oBACHnuM,EAAGouM,aACHpuM,EAAGsS,WAxXU,EAyXbJ,IAgfAlS,EAAGkpD,UAAY,WAvX4BvzD,QAA3CqK,EAAS27M,WAAAjM,mBACDxmJ,IACA,KAAAlpD,EAAA27M,WAAAjM,kBAAAv3J,UACGn4C,EAAA27M,WAAA34J,KAAmB,GAAAvpC,MA0XlBzZ,EAAG27M,WAAW34J,KAAO5uD,QAAQ8e,KAAKlT,EAAG27M,WAAW34J,MAChDhjD,EAAG27M,WAAW14J,GAAK7uD,QAAQ8e,KAAKlT,EAAG27M,WAAW34J,MAxXlD+kC,KA2XqD,KAA5C/nF,EAAG27M,WAAWjM,kBAAkBv3J,UACrCn4C,EAAG27M,WAAW34J,KAAO,KACrBhjD,EAAG27M,WAAW14J,GAAK,OAtX3BjjD,EAAA27M,WAAA34J,KAAA,KACGhjD,EAAA27M,WAAmB14J,GAAA,OAKnBiG,KA6XPlpD,EAAGgc,QAzXK,WAEyC,KAAzChc,EAAA27M,WAAcjM,kBAAWv3J,WACzBn4C,EAAA27M,WAAY34J,KAAG5uD,QAAW8e,KAAAlT,EAAA27M,WAAmB34J,MAC7ChjD,EAAA27M,WAAa14J,GAAG7uD,QAAW8e,KAAAlT,EAAA27M,WAAkB34J,QA+XrDhjD,EAAGk8M,WAzXC,WA0XA,GAzX4B,KAAxBl8M,EAAA27M,WAAQjM,kBAAgBv3J,SAAA,CA0XxBn4C,EAAG27M,WAzXI14J,GAAA7uD,QAAoB8e,KAAAlT,EAAA27M,WAAA34J,KA0X3B,IAzXI4E,GAAQ,CA0XZ5nD,GAAG27M,WAzXK14J,GAAQznC,QAAOxb,EAAA27M,WAAW14J,GAAAjnC,UAAA4rC,OA4XlC5nD,GAAG27M,WAAW34J,KAAO,GACrBhjD,EAAG27M,WAzXQ14J,GAAA,IA+XnBjjD,EAAGgoD,gBAzXiB,WA2XhB,GAzXkB,KAAfhoD,EAAA27M,WAAejM,kBAAAv3J,SAAA,CACdn4C,EAAA27M,WAAW14J,GAAA7uD,QAAY8e,KAASlT,EAAA27M,WAAA34J,KA0XhC,IAAI8E,GAAqB,CACzB9nD,GAAG27M,WAAW14J,GAAG8E,SAAS/nD,EAAG27M,WAAW14J,GAAG9R,WAAa2W,GACxD9nD,EAAG27M,WAAW14J,GAAGznC,QAAQxb,EAAG27M,WAAW14J,GAAGjnC,UAAY,OAtXtD,IAAqB,KAAlBhc,EAAA27M,WAAAjM,kBAAkBv3J,SAAA,CACrBn4C,EAAG27M,WAAA14J,GAAA7uD,QAAqB8e,KAAAlT,EAAA27M,WAAA34J,KACxB,IAAG8E,GAAmB,CACtB9nD,GAAG27M,WAAA14J,GAAA8E,SAAe/nD,EAAA27M,WAAA14J,GAAA9R,WAAA2W,GAClB9nD,EAAG27M,WAAA14J,GAAYznC,QAAAxb,EAAA27M,WAAA14J,GAAAjnC,UAAA,OAGf,IAAsB,MAAnBhc,EAAA27M,WAAAjM,kBAAmBv3J,SAAA,CACtBn4C,EAAA27M,WAAU14J,GAAA7uD,QAAA8e,KAAAlT,EAAA27M,WAAA34J,KACV,IAAA8E,GAAiB,CA0XjB9nD,GAAG27M,WAzXU14J,GAAG8E,SAAA/nD,EAAA27M,WAAoB14J,GAAA9R,WAAA2W,GA0XpC9nD,EAAG27M,WAAW14J,GAAGznC,QAAQxb,EAAG27M,WAAW14J,GAAGjnC,UAAY,KAM9Dhc,EAAGk5M,eAzXS,WAEwC,KAyX5Cl5M,EAAG27M,WAzXWjM,kBAAgBv3J,WA0X9Bn4C,EAAG27M,WAzXS34J,KAAQ,GAAAvpC,MAAQ,QAAG,GAAWA,OAAIy6B,eA0X9Cl0C,EAAG27M,WAzXS14J,GAAG,GAAAxpC,MAAA,UAAA,GAAAA,OAAAy6B,iBAiYvBl0C,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAzXQjB,EA0XRkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAzXOxB,EA0XP+C,WAzXO,KA0XPtB,QAzXO,GAAApB,MAAS,KAAA,EAAA,IA0XhBgB,QAzXO,GAAAhB,MA0XPqB,YAzXO,GAmYX9a,EAAG+a,UAzXQ,WA0XP/a,EAAGua,cAzXIE,QAAAza,EAAqBua,cAAAE,QAAA,KAAA,GAAAhB,MA0X5BzZ,EAAG2a,YAzXIF,QAAAza,EAAmBua,cAAAE,SA4X9Bza,EAAG+a,YAEH/a,EAAGkb,MAzXQ,WA0XPlb,EAAGmb,OAzXKtM,QAAM,CACN,IAAA4K,OA6XZzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAzXKpM,QAAU,CACV,IAAQ4K,OA4XpBzZ,EAAGwb,QAAU,SAAUC,EAAMC,EAAOC,GAChC3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAzXK,aAAgB,aAAA,aA0XnC5b,EAAG6b,OAAS7b,EAAG4b,QAzXM,GA0XrB5b,EAAG8b,iBAzXiB,cA4XpB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QACCpM,QAAQ,wNA3qBhBza,QACKC,OAAO,kCACPe,WAxXW,qBAAgBsmN,MAyjCpC,WACI,YAOA,SAASS,GAAuBpiN,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASF,EAAuB6X,EACxGq7L,EAA2Bz7L,GAqC3B,QAASM,KAEL,GAAIwB,GAzXavZ,EAAAgG,sBA0XjB6R,GAAeI,mBAzXaD,GAAA1T,KAAA,SAAAC,GA0XL,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAzXI3T,EAAYhJ,KA0XnBsK,EAAGsS,WAzXI,IA2XZ,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAExD,IAAIzF,IACA6Y,UAAWJ,EAAYrT,OAG3BgtM,GAzXgBE,YAAAtyM,GAAAwD,KAAA,SAAAC,GA2XO,MAAfA,EAAIlI,QACJwJ,EAAGwtM,UAAY9uM,EAAIhJ,KAEnBsK,EAAGsS,WAAY,GAvXpBjY,EAAWwH,MAAA,QAAA,yBAAkB,cAE7B,SAAAlB,GACA5I,EAAA2I,YAAc,QAAA,mBAAA,cAGjB,IAAGzF,IACA6Y,UAAAJ,EAAcrT,OAEjBgtM,GAAmB+O,gBAAAnhN,GAAAwD,KAAA,SAAAC,GACE,MAAlBA,EAAAlI,QACAwJ,EAAA4tM,cAAgBlvM,EAAAhJ,KAEhBsK,EAAAsS,WAAgB,GAEhBjY,EAAAwH,MAAmB,QAAA,yBAAA,cAEnB,SAAAlB,GACA5I,EAAS2I,YAAA,QAAA,mBAAA,eAEZ27M,EAAGlqM,GA0XHsP,EAAoBtP,GAGxB,QAzXOsP,GAAWtP,EAAkB5T,GAE7B4T,EACAP,EAAW8P,eAAoBvP,GAAA1T,KAAA,SAAAC,GAC/B,GAAgB,MAAhBA,EAAAlI,OAAgB,CAChBwJ,EAAW2hB,YAAAjjB,EAAkBhJ,MAElBsK,EAAA2hB,YAAAxmB,OAAoB,GAC/Bd,EAAgB8C,OAAA,UAAA,oDACL9F,WAAO,EACF+F,KAAA,MAIhB,IAAA+V,GAAmBvQ,OAAA05M,OAAAt8M,EAAAu8M,MACnBppM,GAAe84B,EAIfjsC,EAAAsS,WAAmB,EA0XN/T,GACAA,QAvXXlE,GAAewH,MAAA,QAAA,yBAAA,mBAEjB,SAAWlB,GACXtG,EAAWwH,MAAA,QAAA,mBAAkB,qBAI7B7B,EAAAu8M,MAAAC,cAAkB,KAClBx8M,EAAAu8M,MAAA16L,gBAAgB,KAChB7hB,EAAAu8M,MAAAzH,kBAAmB,KACnB90M,EAAAu8M,MAAArQ,QAAgB,IA6XvB,QAzXOmQ,GAAYlqM,GACf,GAAGuB,GAASvZ,EAAAgG,sBA4XZ,IA1XAH,EAAGy8M,qBA0XCtqM,EAAW,CACX,GAAIlX,IAvXLkX,UAAWA,EACX2B,UAAWJ,EAAArT,OAEXgtM,GAAWgP,oBAAoBphN,GAAAwD,KAAA,SAAAC,GACf,MAAhBA,EAAAlI,SACAwJ,EAAWy8M,kBAAO/9M,EAAAhJ,MACPsK,EAAKy8M,kBAAAthN,OAAA,GAChBd,EAAmB8C,OAAA,UAAA,wCACH9F,WAAA,EAChB+F,KAAsB,OAIb4C,EAAAsS,WAAA,MAiYhB,QAzXOoqM,KAEH18M,EAAG28M,kBAAkB,EACrB38M,EAAG48M,aAAW,CACd,IAAGlpM,GAAAvZ,EAAmBgG,sBACtB,KAAGH,EAAA48M,YAAgB,CAChB,GAAA3hN,IACAgxM,cAAmBjsM,EAAAu8M,MAAAtQ,cACnBn4L,UAAeJ,EAAArT,OAEfgtM,GAASwP,aAAA5hN,GAAAwD,KAAA,SAAAC,GACTA,EAAAhJ,KAAAke,aAAqB,EACrB7b,EAAmB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,aAGjB9b,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,aAEjB7T,EAAAgT,YAAgB,EAChBhT,EAAA28M,kBAAkB,EAElB38M,EAAAu8M,MAAAtQ,cAAmBt2M,OACnBuc,KAEA,SAAAvR,GACA5I,EAAe2I,YAAA,kCAgYtB,QAzXOo8M,KACH98M,EAAG28M,kBAAgB,EACnB38M,EAAG48M,aAAA,EA4XP,QAzXOG,KACH/8M,EAAG28M,kBAAe,EAClB38M,EAAG48M,aAAY,EACf58M,EAAGu8M,MAAAtQ,cAAS,KACZjsM,EAAGu8M,MAAAzH,kBAAqB,KA6X5B,QAAS9gM,KACLhU,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAxXjBhT,EAAAiU,aAAY,EACXjU,EAAAu8M,SACAv8M,EAAAg9M,sBAAkB,KA0XlBh9M,EAAGy8M,qBAGP,QAASQ,KAEL,GAAIhiN,IACAkX,UAAWA,EACXq8L,UAzXSxuM,EAAGu8M,MAAAC,cAAW9N,QA0XvB54M,UAzXOkK,EAAAu8M,MAAW16L,gBAAO/rB,UA0XzBg4M,YAzXO9tM,EAAAu8M,MAAWzH,kBAAKhH,YA2X3BT,GAzXSQ,WAAA5yM,GAAAwD,KAAA,SAAAC,GACa,MAAdA,EAAGlI,QACHwJ,EAAGksM,QAAA1xM,EAAgB6P,KAAA3L,EAAAhJ,MAAAw2M,QA2XnBlsM,EAAGu8M,MAAMrQ,QAAUlsM,EAAGksM,QAvXzBlsM,EAAAsS,WAAA,GA4XGjY,EAAQwH,MAAM,QAAS,yBAA0B,YAvX1D,SAAUlB,GACT5I,EAAA2I,YAAA,QAAA,mBAAA,aA2XAV,EAAGu8M,MAzXIrQ,QAAW,GA4XtB,QAASgR,KAEL,GAAIxpM,GAAcvZ,EAAsBgG,sBACxC,IAAKH,EAAG+S,UAuBD,CACH,GAzXCwiI,IACE4nE,aAAWn9M,EAAKu8M,MAAQY,aACvBhrM,UAAAnS,EAAAu8M,MAAAppM,gBAAqBhB,UACtBq8L,UAAWxuM,EAAGu8M,MAAAC,cAAY9N,QAC1B54M,UAAWkK,EAAGu8M,MAAA16L,gBAAsB/rB,UA0XnCg4M,YAAa9tM,EAAGu8M,MAAMzH,kBAAkBhH,YACxC5B,QAASlsM,EAAGu8M,MAAMrQ,QAxXrBv4L,WAAOD,EAAWrT,OAGnBgtM,GAA0B+P,oBAAiB7nE,GAAA92I,KAAa,SAAAC,GACrDA,EAAAhJ,KAAcke,aAAW,GA0XpB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBAGpD6D,IACAxF,MAvXZna,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACO7T,EAAAgT,YAAW,IA6XX,SAASrS,GACR5I,EAAW2I,YAAY,qCAhDZ,CAxXpB,GAAAzF,IACQkX,UAAWnS,EAAAu8M,MAAAppM,gBAAkBhB,UAC7Bq8L,UAAWxuM,EAAAu8M,MAAKC,cAAgB9N,QAC/B54M,UAAAkK,EAAAu8M,MAAoB16L,gBAAA/rB,UACrBg4M,YAAc9tM,EAAAu8M,MAAQzH,kBAAiBhH,YA0XtC5B,QAASlsM,EAAGu8M,MAAMrQ,QAxXrBp4L,UAAAJ,EAAArT,OAEDgtM,GAAmBgQ,iBAAApiN,GAAAwD,KAAA,SAAAC,GA0XXA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBACpD3B,IACAlS,EAAGgT,YAAa,EAChB0E,MAEA3f,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBAxXzD7T,EAAAgT,YAAW,IAGX,SAAArS,GACA5I,EAAW2I,YAAW,kCAgCjC,QAAG48M,GAAoBxqM,GA2XnB9S,EAAG+S,WAAY,EAxXhB/S,EAAAgT,YAAA,EA0XChT,EAAGu8M,MAAQnoN,QAAQ8e,KAAKJ,EAvXxB,KAAG,GAAK5X,KAAA8E,GAAAqS,YA0XArS,EAAGqS,YAAYnX,GAAGiX,WAAaW,EAAIX,YACnCnS,EAAGu8M,MAAMppM,gBAAkBnT,EAAGqS,YAAYnX,GArXlDumB,GAAW3O,EAAAX,UAAA,WA0XP,IAAK,GAAIjX,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,YAAcgd,EAAIhd,YAxXjDkK,EAAcu8M,MAAA16L,gBAAA7hB,EAAA2hB,YAAAzmB,KAKb,KAAA,GAAAA,KAAa8E,GAAAwtM,UA0XLxtM,EAAGwtM,UAAUtyM,GAAGwzM,SAAW57L,EAAI47L,UAC/B1uM,EAAGu8M,MAAMC,cAAgBx8M,EAAGwtM,UAAUtyM,GAvXlD,KAAS,GAAAA,KAAS8E,GAAA4tM,cACV5tM,EAAO4tM,cAAK1yM,GAAA4yM,aAAAh7L,EAAAg7L,cACZ9tM,EAAOu8M,MAAKzH,kBAAA90M,EAAA4tM,cAAA1yM;AAgYpB,QAASqiN,GAAoBzqM,GAvX1B,GAAAH,GAAAtY,EAAAsY,QAAA,UAAA,4CA0XKtb,WAAW,EAxXhB+F,KAAQ,MA4XPuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIiV,GAAcvZ,EAAsBgG,uBACpClF,GAxXDkiN,aAAYrqM,EAAAqqM,aAChBrpM,UAAgBJ,EAAArT,OA2XfgtM,GAA0BmQ,oBAAoBviN,GAAKwD,KAAK,SAASC,GAC1C,MAAfA,EAAIlI,QAxXPuB,EAAU2I,YAAa,UAAK,4BAAA,gBACzBwR,KA2XAna,EAAW2I,YAAY,QAAS,6BAxXlCrJ,WAAgB,EACf+F,KAAQ,QA4XZ,SAASuD,GAxXR5I,EAAA2I,YAAA,mCA8XZ,QAzXIgR,KA0XA,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFACItb,WAAW,EAxXd+F,KAAA,MAGLuV,GAAIjT,OAASjB,KAAO,WAChBuB,EAAAgT,YAAI,EAEJhT,EAAAu8M,SA0XArqM,MAQR,QAASwF,KAEL1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfb,IAvXRlS,EAAAu8M,SAhXI,GAAAv8M,GAASC,IA2XTD,GAAGqU,kBAzXQhJ,MAAiB,IAAMA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0XlCrL,EAAGsU,SAzXQtU,EAAAqU,gBAAqB,GA2XhCrU,EAAGuU,YAzXQ,EA0XXvU,EAAGwU,qBAzXe,SAAAC,GACVzU,EAAAuU,YAAiBE,GA4XzBzU,EAAGgT,YAzXQ,EA0XXhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAzXS,EA0XZva,EAAW2c,SAzXC,EA2XZ1U,EAAG28M,kBAzXS,EA0XZ38M,EAAG48M,aAzXS,EA2XZ58M,EAAGyhB,oBAzXmBA,EA0XtBzhB,EAAGgU,OAzXSA,EA0XZhU,EAAG08M,cAzXSA,EA0XZ18M,EAAG+8M,gBAzXkBA,EA0XrB/8M,EAAG88M,gBAzXiBA,EA0XpB98M,EAAGi9M,WAAaA,EAChBj9M,EAAGk9M,kBAzXiBA,EA0XpBl9M,EAAGs9M,kBAzXKA,EA0XRt9M,EAAGu9M,oBAzXiBA,EA0XpBv9M,EAAG0R,OAASA,EAEZ1R,EAAG0X,MAAQA,EACX1X,EAAGq8M,oBAzXqBA,CA0XxB,IAAIlqM,GAAYpa,EAzXI2pE,kBA0XhBz1B,EAAcl0C,EAzXM0pE,mBA0XxBzhE,GAAGisC,YAAcA,EACjB/5B,yKAzCJ9d,QACKC,OAzXO,kCA0XPe,WAzXU,yBAAqB+mN,MAqvBxC,WAzXI,YAiYA,SA1XOsB,GAAc1jN,EAAAE,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAF,EAAA6X,EACjBq7L,EAA0Bz7L,EAAc07L,EAAAlzK,EAAAsR,EAAAwB,GAmaxC,QA1XQh7B,KA2XJ,GA1XIwB,GAAWvZ,EAAYgG,sBA4X3B6R,GAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GAzX3D,MAAAA,EAAAlI,SA2XQwJ,EAAGqS,YAAc3T,EAAIhJ,KAzXrBsK,EAAAsS,WAAe,IA4XpB,SAAS3R,GACR5I,EA1XO2I,YAAY,QAAA,mBAAA,mBA4XvB,IAAIzF,IACA6Y,UAAWJ,EAAYrT,OAE3BgtM,GA1XeE,YAAqBtyM,GAAAwD,KAAA,SAAoBC,GA2XjC,MAAfA,EAAIlI,QAzXZwJ,EAAAwtM,UAAA9uM,EAAAhJ,KACIy8B,QAAMC,IAAApyB,EAAAwtM,WACNxtM,EAAAsS,WAAW,GAEfjY,EAAAwH,MAAA,QAA0B,yBAA0B,cA4XjD,SA1XQlB,GA2XP5I,EAAW2I,YAAY,QAAS,mBAAoB,eAGxDg9M,EA1XsBvrM,GA2XtBsP,EAAoBtP,GAIxB,QA1XIsP,GAAoBtP,EAAA5T,GA4XhB4T,EACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GAzX1C,MAApBA,EAAAlI,QACLwJ,EAAA2hB,YAAAjjB,EAAAhJ,KACIy8B,QAAWC,IAAApyB,EAAA2hB,cACX3hB,EAAA2hB,YAAuBxmB,OAAA,GACXd,EAAA8C,OAAW,UAAK,oDACjB9F,WAAc,EA2XT+F,KAAM,OAKd4C,EAAGsS,WAAY,EACX/T,GACAA,KAxXJlE,EAAAwH,MAAA,QAAkB,yBAAA,mBA4XvB,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAI/C7B,EAAGu8M,MAAMC,cA1XE,KA2XXx8M,EAAGu8M,MA1XK16L,gBAAc,KA2XtB7hB,EAAGu8M,MAAMzH,kBAAoB,KAC7B90M,EA1XGu8M,MAAA5N,gBAAc,KA2XjB3uM,EAAGu8M,MA1XCxwK,mBAAuB,KA2X3B/rC,EAAGu8M,MAAMvuK,oBAAsB,KAC/BhuC,EAAGu8M,MAAMoB,cAAgB,MAIjC,QA1XQjQ,GAASv7L,EAAA5T,GA2Xb,GA1XImV,GAASvZ,EAAUgG,uBA4XnBlF,GACAkX,UAAWA,EAzXnB2B,UAASJ,EAAoBrT,OAEzB8R,IACGm7L,EAAoBI,aAAAzyM,GAAAwD,KAAA,SAAAC,GACR,MAAXA,EAAWlI,QACPwJ,EAAM4tM,cAAAlvM,EAAAhJ,KA2XFy8B,QAAQC,IAAIpyB,EAAG4tM,gBAzXnB5tM,EAAW4tM,cAAAzyM,OAAA,GACXd,EAAW8C,OAAY,UAAA,sDA2XX9F,WAAW,EAzX3B+F,KAAA,OAGQ4C,EAAAsS,WAAQ,EACJ/T,GA2XAA,KAEJlE,EAAQwH,MAAM,QAAS,yBAA0B,cAEtD,SAASlB,GACR5I,EA1XO2I,YAAY,QAAA,mBAAA,eA+X/B,QAASk9M,GAAuBzrM,EAAW5T,GAEnC4T,GAzXRioB,EAAyB4R,yBAAA75B,GAAA1T,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,QACGwJ,EAAAs6B,eAAmB57B,EAAAhJ,KACnBy8B,QAAcC,IAAApyB,EAAAs6B,iBACbt6B,EAAcs6B,eAAAn/B,OAAsB,GAChCd,EAAa8C,OAAA,UAAA,uDACP9F,WAAA,EACN+F,KAAkB,OAKd4C,EAAAsS,WAAW,EA2XP/T,GAzXDA,KA4XHlE,EAAQwH,MAAM,QAAS,yBAA0B,eAEtD,SA1XIlB,GA2XHtG,EAAQwH,MAAM,QAAS,mBAAoB,gBAKvD,QAASqqC,GA1X0B/0B,GA4X/Bu0B,EAAmB2C,gBAAgBruC,EAAGu8M,MAAMxwK,mBAAmB7Q,cAAcz8B,KAAK,SAASC,GAzX1F,MAAAA,EAAAlI,QA2XOwJ,EAAG4rC,gBAAkBltC,EAAIhJ,KACzBy8B,QAAQC,IAAIpyB,EAAG4rC,kBACV5rC,EAAG4rC,gBAAgBzwC,OAAS,GAzXpCd,EAAA8C,OAAkB,UAAA,2DACpB9F,WAAmB,EACnB+F,KAAc,OAId+Z,KAEApf,EAAM2I,YAAgB,QAAA,mBAAA,eA4XrBV,EAAGu8M,MAAMvuK,oBAAsB,KAC/BhuC,EAAGu8M,MAAMoB,cAAgB,MAxXjC,SAASh9M,GACF5I,EAAY2I,YAAA,QAAA,sCAAA,iBA+XnB,QA1XO6vL,GAAoBhyL,GA4XvB2uC,EAAgBe,uBAAuBjuC,EAAGu8M,MAAMvuK,oBAAoBtB,eAAejuC,KAAK,SAASC,GAzXrGsB,EAASswL,QAAA5xL,EAAahJ,KAClBy8B,QAAAC,IAAApyB,EAAAswL,UACItwL,EAAMswL,QAAAn1L,OAAA,GACNd,EAAW8C,OAAA,UAAA,sDACX9F,WAAc,EACd+F,KAAc,OAId4C,EAAAu8M,MAAQoB,cAAgB,KA4XpBp/M,GAzXAA,KA2XL,SAASoC,GACR5I,EA1XO2I,YAAY,QAAA,mBAAA,iBA+X3B,QA1XOg9M,GAAcvrM,GA4XjB,GAAIuB,GAAcvZ,EAAsBgG,sBAGxC,IADAH,EAAGy8M,qBACCtqM,EAAW,CAzXnB,GAASlX,IAEDkX,UAAcA,EACV2B,UAAWJ,EAAArT,OA4XfitM,GA1XwBoQ,yBAAgBziN,GAAAwD,KAAA,SAAAC,GACtB,MAAdA,EAAAlI,SACAwJ,EAAA69M,yBAAoBn/M,EAAgBhJ,MACpCsK,EAAA69M,yBAAsB1iN,OAAkB,GACxCd,EAAY8C,OAAM,UAAA,wDACP9F,WAAY,EA2XX+F,KAAM,OAvXd+0B,QAAAC,IAAWpyB,EAAA69M,0BACX79M,EAAAsS,WAAA,SA8XRtS,GAAG69M,4BAKX,QAAS7pM,KACLhU,EAAG+S,WAAY,EACf/S,EAAGgT,YA1XI,EA2XPhT,EAAGiU,aA1XW,EA2XdjU,EAAGu8M,SACHv8M,EAAGg9M,sBA1XmB,KA2XtBh9M,EAAG69M,4BAGP,QAAShQ,KAEL,GAAIn6L,GAAcvZ,EAAsBgG,uBACpClF,GAzXAkX,UAAAnS,EAAAmS,UA4XA27L,YA1XQ9tM,EAAAu8M,MAAWzH,kBAAYhH,YA2X/Bh6L,UAAWJ,EAAYrT,OAE3BitM,GA1XYO,WAAA5yM,GAAAwD,KAAA,SAAAC,GA2XRyzB,QA1XQC,IAAA1zB,GACG,MA0XPA,EAAIlI,QAnXJwJ,EAAAiuM,YAAWvvM,EAAAhJ,KA2XXsK,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,WAxX7D7B,EAASu8M,MAAA5N,gBAAuB,KAC5B3uM,EAAAu8M,MAAAxwK,mBAAA,KACG/rC,EAAAu8M,MAAAvuK,oBAAY,KACZhuC,EAAAu8M,MAAAoB,cAAa,MA4Xb,SAASh9M,GAzXZ5I,EAAc2I,YAAG,QAAa,mBAAA,aAiYlC,QA1XQo9M,KA4XJ,GAAIpqM,GA1XWvZ,EAAwBgG,sBA2XvC,IAAKH,EAAG+S,UA2BD,CACH,GA1XIwiI,IA2XAwoE,WAAY/9M,EAAGu8M,MAAMyB,kBAzXzBpP,cAAA5uM,EAAA4uM,cACIz8L,UAAQA,EA2XRq8L,UA1XIxuM,EAAAu8M,MAAWC,cAAY9N,QA2X3B54M,UA1XIkK,EAAAu8M,MAAA16L,gBAAA/rB,UA2XJg4M,YA1XO9tM,EAAAu8M,MAAAzH,kBAAAhH,YA2XP5B,QA1XIlsM,EAAAu8M,MAAWrQ,QA2XfhxK,aA1XQl7B,EAAAu8M,MAAWxwK,mBAAA7Q,aA2XnBwR,cA1Xc1sC,EAAAu8M,MAAAvuK,oBAAAtB,cA2XduxK,QAASj+M,EAAGu8M,MAAMoB,cAAcnmL,WAChC7jB,WAAYD,EAAYrT,OAG5BitM,GAA4B4Q,iBAAiB3oE,GAAK92I,KAAK,SAASC,GACxDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,wBAvX5D6D,IACAxF,MAEIna,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,wBA2XF7T,EAAGgT,YAAa,IAIrB,SAASrS,GAzXT5I,EAAQ2I,YAAA,qCAkUI,CACf,GAAIzF,IACA2zM,cAAe5uM,EAAGu8M,MAAM5N,gBAAgBC,cACxCz8L,UAAWA,EAzXdq8L,UAAYxuM,EAAAu8M,MAAWC,cAAA9N,QACpB54M,UAAGkK,EAAUu8M,MAAG16L,gBAAe/rB,UAC/Bg4M,YAAS9tM,EAAAu8M,MAAAzH,kBAA6BhH,YA2XtC5B,QAASlsM,EAAGu8M,MAAMrQ,QAzXrBhxK,aAAYl7B,EAAAu8M,MAAAxwK,mBAAe7Q,aACxBwR,cAAG1sC,EAAcu8M,MAAGvuK,oBAAmBtB,cACvCuxK,QAASj+M,EAAAu8M,MAAAoB,cAAuBnmL,WA2XhC1jB,UAAWJ,EAAYrT,OAE3BitM,GAA4B6Q,cAAcljN,GAAKwD,KAAK,SAASC,GACrDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,wBACpD3B,IAzXPlS,EAAAgT,YAAoB,EACzB0E,MAEI3f,EAAW2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,wBACL7T,EAAAgT,YAAA,IAGV,SAAerS,GACP5I,EAAA2I,YAAc,kCA8Z1B,QAAS09M,GAAetrM,GAEpB9S,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAzXpBhT,EAAAu8M,MAASnoN,QAAQ8e,KAAAJ,EAEb,KAAG,GAAA5X,KAAA8E,GAAaqS,YACbrS,EAAAqS,YAAYnX,GAAAiX,WAAAW,EAAAX,YACfnS,EAAAu8M,MAAAppM,gBAAAnT,EAAAqS,YAAAnX,GA8XAumB,GAAoB3O,EAAIX,UAAW,WAC/B,IAAK,GAAIjX,KAAK8E,GAAG2hB,YACT3hB,EAAG2hB,YAAYzmB,GAAGpF,YAAcgd,EAAIhd,YACpCkK,EAAGu8M,MAAM16L,gBAAkB7hB,EAAG2hB,YAAYzmB,KAKtD,KAAK,GAAIA,KAAK8E,GAAGwtM,UA1XzBxtM,EAAAwtM,UAAAtyM,GAAAwzM,SAAA57L,EAAAurM,aACYr+M,EAAAu8M,MAAAC,cAAAx8M,EAAAwtM,UAAAtyM,GAIZ,KAAS,GAAAA,KAAA8E,GAAAiuM,YACLjuM,EAAAiuM,YAA2B/yM,GAAAgxM,SAAAp5L,EAAAo5L,UAClBlsM,EAAAu8M,MAAA5N,gBAAA3uM,EAAAiuM,YAAA/yM,GA+XLwyM,GAAa56L,EAAIX,UAAW,WA1X7B,IAAA,GAAcjX,KAAA8E,GAAA4tM,cACd5tM,EAAA4tM,cAAuB1yM,GAAS4yM,aAAKh7L,EAAAg7L,cAC7B9tM,EAAAu8M,MAAczH,kBAAA90M,EAAA4tM,cAAA1yM,MAGtB0iN,EAAa9qM,EAAAX,UAAA,WACb,IAAA,GAAYjX,KAAA8E,GAAAs6B,eACAt6B,EAAAs6B,eAAAp/B,GAAAggC,cAAApoB,EAAAooB,eACZl7B,EAAgBu8M,MAAAxwK,mBAAA/rC,EAAAs6B,eAAAp/B,MAMhB8E,EAAAu8M,MAASxwK,sBACT/rC,EAAAu8M,MAAAxwK,mBAA6B7Q,aAAApoB,EAAAooB,aAC7BgR,EAAyB,WACzB,IAAA,GAAAhxC,KAAA8E,GAAA4rC,gBACa5rC,EAAA4rC,gBAAA1wC,GAAAwxC,eAAA55B,EAAA45B,gBACb1sC,EAAAu8M,MAAiBvuK,oBAAAhuC,EAAA4rC,gBAAA1wC,MAOjB8E,EAAAu8M,MAAAvuK,uBA4XChuC,EAAGu8M,MAAMvuK,oBAAoBtB,cAAgB55B,EAAI45B,cACjD6jJ,EAA4B,WA1X5B,IAAA,GAAYr1L,KAAA8E,GAAAswL,QACDtwL,EAAAswL,QAAAp1L,GAAAs8B,YAAA1kB,EAAAmrM,UACXj+M,EAAcu8M,MAAAoB,cAAW39M,EAAAswL,QAAAp1L,MAkY7B,QA3XIojN,GAAexrM,GA6Xf,GAAIH,GA3XOtY,EAAAsY,QAAkB,UAAA,4CA4XzBtb,WA3XO,EA4XP+F,KAAM,MAGVuV,GAAQjT,OAAOjB,KAAK,WA1XhB,GAAAiV,GAAMvZ,EAAAgG,uBACNlF,GA4XI+iN,kBAAmBlrM,EAAIkrM,kBA1X/BlqM,UAAAJ,EAA0BrT,OA6XtBitM,GA3XuBiR,iBAAAtjN,GAAAwD,KAAA,SAAAC,GACJ,MAAfA,EAAQlI,QACLuB,EAAY2I,YAAA,UAAA,4BAAA,wBACZwR,KA6XCna,EAAW2I,YAAY,QAAS,qCA1XhCrJ,WAAK,EACF+F,KAAA,QAGf,SAAAuD,GACA5I,EAAA2I,YAAoB,mCAgYxB,QAASgR,KA1XL,GAAIiB,GAAAtY,EAAWsY,QAAA,eACX,yFACItb,WAAQ,EA4XR+F,KA3XI,MA8XZuV,GAAQjT,OAAOjB,KA3XC,WA4XZuB,EAAGgT,YA3Xa,EA4XhBd,IACAlS,EAAGu8M,SACHv8M,EAAGw+M,UAAUpqM,kBAOrB,QAASsD,KAEL1X,EAAGgT,YA3Xa,EA4XhBhT,EAAG+S,WA3XK,EA4XRb,IAEAlS,EAAGu8M,SA3dP,GAAIv8M,GA1XIC,IA4XRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MAzXpGrL,EAAGsU,SAAAtU,EAAaqU,gBAAA,GAEhBrU,EAAGuU,YAAY,EACfvU,EAAAwU,qBAAqB,SAAAC,GA2XbzU,EAAGuU,YAAcE,GAGzBzU,EAAGgT,YAAa,EAzXhBhT,EAAG+S,WAAA,EACH/S,EAAGsS,WAAS,EACZtS,EAAGy+M,eAAgB,EACnB1mN,EAAG2c,SAAkB,EAIrB1U,EAAGyhB,oBAAoBA,EACvBzhB,EAAGgU,OAAAA,EACHhU,EAAGksC,2BAASA,EA2XZlsC,EAAG49M,uBAAyBA,EAzX5B59M,EAAGuwL,4BAAQA,EACXvwL,EAAG6tM,WAAAA,EACH7tM,EAAA89M,eAAgBA,EAChB99M,EAAAo+M,eAAkBA,EAClBp+M,EAAGs+M,iBAAcA,EACjBt+M,EAAA0R,OAAAA,EAEA1R,EAAA0X,MAASA,EA2XT1X,EAAG09M,yBA1XCA,EA2XJ19M,EAAG0tM,aA1XKA,CA6XR,IAAIv7L,GA1XWpa,EAAA2pE,iBA2Xf1hE,GAAGmS,UA1XYA,CA2Xf,IAAI85B,GAAcl0C,EAAW0pE,mBAC7BzhE,GAAGisC,YA1XaA,EA2XhB/5B,mQA7CJ9d,QACKC,OAAO,kCAzXRe,WAAG,2BAAqCqoN,MAg2BhD,WACI,YAOA,SA3XQiB,GAAU3mN,EAAAyC,EAAAH,EAAAN,EAAA87H,EA4Xd17H,EA3XmBy7H,EAAAE,EAAA6oF,EAAAl0M,EA4XnBkrH,EA3XmB5jH,GA0bnB,QAASG,KACLlS,EAAG+5H,sBA3XkBC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,KA6XrBu2L,KAGJ,QA3XQA,KA4XJhpF,EA3XaipF,yBAAgBpgN,KAAA,SAAAC,GA4XN,MAAfA,EAAIlI,QA1XTwJ,EAAA8+M,wBAAcpgN,EAAAhJ,KA6XTsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,uBAKtE,QA3XQo6H,GAAiBtf,EAAAj9G,GA6XrByB,EAAGs6H,wBA3X0B,KA4X7Bt6H,EAAG++M,kBA3XaC,gCAAkB,GA4XlCh/M,EAAGu6H,iBA3XS,KA4XZv6H,EAAG++M,kBA3XeE,yBAAA,GA6XlBppF,EAA2BkF,2CAA2Cvf,GAAoB/8G,KAAK,SAASC,GACjF,MAAfA,EAAIlI,SA1XLwJ,EAAAs6H,wBAAsB57H,EAAAhJ,KA4XrBsK,EAAGsS,WAAY,EA1XftS,EAAAs6H,wBAAAn/H,OAAA,GACAd,EAAA8C,OAAA,UAAA,yCAAA6C,EAAAk/M,aAAAC,6BAAAC,sBAAA/nN,WAAA,EAAA+F,KAAA,OACI4C,EAAA46H,mBAAK,EACb56H,EAAW66H,YAAY,GA6Xf76H,EAAG46H,mBAAoB,EAE3B56H,EAAGsS,WAAY,EA1XlB/T,GACLA,OA6YJ,QAASm5H,KACL/B,EA3XYsE,qBAAelgI,EAAAhC,GAAA0G,KAAA,SAAAC,GACZ,MA2XPA,EA3XIlI,QA4XJwJ,EAAGk6H,gBAAkBx7H,EAAIhJ,KACzBsK,EAAGsS,WAAY,GAzXhBva,EAAA2I,YAAA,QAA2B,yBAAA,iBA6X/B,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAM5D,QA3XOk+H,KACH7sH,EAAG8D,mBAAwBpX,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QA4XKwJ,EAAG8V,YAAcpX,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAzXvBva,EAAA2I,YAAA,QAAA,yBAAA,YAEA,SAAUC,GACN5I,EAAW2I,YAAG,QAAA,mBAAA,aAiYtB,QA3XQ24G,KA4XJ,GA3X4B,MAAxBr5G,EAAA++M,kBAAmBtoM,iBAAK9gB,QAAAqK,EAAA++M,kBAAAtoM,iBAAA,IAAAzW,EAAA++M,kBAAAtoM,gBAAA,CA4XxB,GAAI+jH,IACAC,UAAWz6H,EAAG++M,kBAAkBM,wBAAwB5kF,UACxDpkH,UAAWrW,EAAG++M,kBAAkBtoM,gBAAgBJ,UAEpDu/G,GAAwB8E,4BAA4BF,GAAgB/7H,KAAK,SAASC,GAC3D,MAAfA,EAAIlI,QA1XLwJ,EAAAs/M,qBAAkB5gN,EAAAhJ,KAClBgJ,EAAAhJ,KAAYyF,OAAA,EACZ6E,EAAA26H,gBAAA,GA6XK36H,EAAG26H,gBAAiB,EA1XvB36H,EAAA46H,mBAAkB,EAClB56H,EAAA66H,YAAA,EACA76H,EAAA++M,kBAAsBC,gCAAA,GACtBh/M,EAAA++M,kBAAgBE,yBAAA,GA4Xbj/M,EAAG++M,kBAAkBE,yBAA2B,GA1XpD5kN,EAAK8C,OAAA,UAAA,uBAAA9F,WAAA,EAAA+F,KAAA,QA6XL4C,EAAGsS,WAAY,GAGfjY,EAAQwH,MAAM,QAAS,yBAA0B,8BAvX7D7B,GAAA26H,gBAAA,EACI36H,EAAA46H,mBAAc,EACd56H,EAAC66H,YAAc,EAiYvB,QAAS0kF,KACLv/M,EAAGw/M,yBACHx/M,EAAGy/M,sBA3XsB,CA6XzB,IAAItlI,IACAkiC,eA3Xer8G,EAAA++M,kBAAYE,yBAAA5iG,eA4X3BP,sBAAuB97G,EAAG++M,kBAAkBC,gCAAgCljG,sBA1X5EN,mBAAAx7G,EAAA++M,kBAA4BI,6BAAsC3jG,mBA4XlEnzF,KA3XIroB,EAAI++M,kBAAShuE,wBAAoB1oH,KA8XzCs2L,GA3XezkI,yBAAaC,GAAA17E,KAAA,SAAAC,GAChB,MA2XJA,EA3XIlI,QA4XJwJ,EAAGw/M,sBA3XI9gN,EAAAhJ,KAAAw7I,UA4XPlxI,EAAGsS,WA3XY,GA8Xfva,EAAW2I,YAAY,QAAS,yBAA0B,uBAE/D,SA3XKC,GA4XJ5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAK5D,QAASu6H,GA3Xcnf,EAAAv9G,GA6XnBu3H,EA3XmBmF,uCAAyBnf,GAAAr9G,KAAA,SAAAC,GA6XxCsB,EAAGu6H,iBA3XmB,KA4XtBv6H,EAAG++M,kBA3XkBE,yBAAyB,GAE9B,MAAZvgN,EAAAlI,SACAwJ,EAAAu6H,iBAAY77H,EAAYhJ,KA4XpBsK,EAAGu6H,iBAAiBp/H,OAAS,GAC7Bd,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAG++M,kBAAkBC,gCAAgC59F,yBAA2B/pH,WAAW,EAAM+F,KAAM,OA1X7K4C,EAAA66H,YAAA,GAEQ76H,EAAA66H,YAAW,EA8Xf76H,EAAGsS,WA3XC,EACA/T,GA4XAA,OAKhB,QAASyV,KACLhU,EAAGmiH,UA3XI,EA8XX,QAASzwG,KACL1R,EAAGmiH,UAAW,EACdniH,EAAG+S,WAAY,EA1XnB/S,EAAA++M,kBAAwBpyE,cAAK,GACzBz4H,IA8XJ,QA3XOA,KA4XHlU,EAAG0/M,sBAAsBtrM,gBA1XzBpU,EAAA26H,gBAAiB,EA4XjB36H,EAAG46H,mBA3XoB,EA4XvB56H,EAAG66H,YA3XQ,EA+Xf,QA3XInjH,KA4XA1X,EAAGmiH,UA3XU,EA4XbniH,EAAG+S,WA3XY,EA4Xf/S,EAAG++M,qBAIP,QAASY,GAAsBZ,GA1X3B/+M,EAAA+S,WAAc,EA4Xd/S,EAAGgT,YA3XQ,EA4XXhT,EAAG++M,kBA3XcpyE,cAAmB3sI,EAAAqxI,iBAAU0tE,EAAA5tH,KA+XlD,QA3XSyuH,GAAYb,GA4XjBA,EA3XWvjG,mBAA0Bx7G,EAAI++M,kBAAAI,6BAAA3jG,mBA4XzCujG,EA3XiBjjG,sBAAqB97G,EAAA++M,kBAAYC,gCAAAljG,sBA4XlDijG,EAAkB1iG,eAAiBr8G,EAAG++M,kBAAkBE,yBAAyB5iG,eACjF0iG,EAAkBpyE,cAAgBoyE,EAAkB5tH,KACpD4tH,EAAkB12L,KAAOroB,EAAG++M,kBAAkBhuE,wBAAwB1oH,IAEtE,IA3XI1V,GAAStY,EAAQsY,QAAA,UA4XjB,4CA3X2Ctb,WAAI,EAAA+F,KAAA,MA6XnDuV,GAAQjT,OAAOjB,KAAK,WAChBkgN,EAAyBiB,wBAAwBb,GAAmBtgN,KAAK,SAASC,GA1X3D,MAA3BA,EAAAlI,QACSuB,EAAY2I,YAAA,UAAgB,gCAAA,uBAEzB6+M,IA4XArtM,KAGAna,EAAW2I,YAAY,QAAS,0BAA4BrJ,WAAW,EAAM+F,KAAM,UAxX5F,cAgYP,QAASyiN,GAAsBd,GAE3B,GAAI7+M,GAAa/F,EAAsBgG,sBAUvC,IATA4+M,EAAkBvjG,mBAAqBx7G,EAAG++M,kBAAkBI,6BAA6B3jG,mBACzFujG,EAAkBjjG,sBAAwB97G,EAAG++M,kBAAkBC,gCAAgCljG,sBAC/FijG,EAAkB1iG,eAAiBr8G,EAAG++M,kBAAkBE,yBAAyB5iG,eA1XjF0iG,EAAS1tE,iBAAsBrxI,EAAAqxI,iBAC/B0tE,EAASvtE,iBAAoBxxI,EAAA++M,kBAAoBpyE,cACjDoyE,EAAApyE,cAA4B3sI,EAAA++M,kBAAWpyE,cA+XlC3sI,EAAG+S,UA8BJgsM,EA3XeprM,WAAYzT,EAAAG,OA4X3B0+M,EAAkB12L,KAAOroB,EAAG++M,kBAAkBhuE,wBAAwB1oH,KACtEs2L,EAAyBgB,sBAAsBZ,GAAmBtgN,KAAK,SAASC,GACxEA,EAAIhJ,KAAKke,aAAc,EACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBAxX5D9b,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iBAEI3B,IA4XAqtM,IACAv/M,EAAGmiH,UAAW,EA1XdniH,EAAA++M,kBAAYpyE,cAAW,GACxB3sI,EAAA+S,WAAa,GAEb,SAAQpS,GACR5I,EAAU2I,YAAA,+BAAArJ,WAAA,EAAA+F,KAAA,aA6UE,CACf,GAAInC,IACAugH,mBAAoBx7G,EAAG++M,kBAAkBI,6BAA6B3jG,mBACtEM,sBAAuB97G,EAAG++M,kBAAkBC,gCAAgCljG,sBAC5EO,eAAgBr8G,EAAG++M,kBAAkBE,yBAAyB5iG,eAC9DswB,cAAe3sI,EAAG++M,kBAAkBpyE,cA1XvCtkH,KAAAroB,EAAA++M,kBAAsBhuE,wBAAA1oH,KA4XnBvU,UAAW5T,EAAWG,OAxX1Bs+M,GAAMc,qBAAAxkN,GAAAwD,KAAA,SAAAC,GA4XEA,EAAIhJ,KAAKke,aAAc,EACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBAxXxD9b,EAAM2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iBAEN3B,IA4XAqtM,IA1XJv/M,EAAAmiH,UAAA,EACIniH,EAAA++M,kBAAmBpyE,cAAK,GA4XxB3sI,EAAGy/M,sBA3XY,GA+XhB,SA3XS9+M,GA4XR5I,EA3XQ2I,YAAM,kCAkD1B,GAAIV,GAAKC,IAETD,GAAGqU,kBA3XKhJ,MAAA,IAA4BA,MAAA,KAAaA,MAAU,KAAAA,MAAc,KAAAA,MAAA,MA4XzErL,EAAGsU,SA3XStU,EAAIqU,gBAAe,GA6X/BrU,EAAGuU,YA3Xa,EA4XhBvU,EAAGwU,qBA3XqB,SAAAC,GA4XtBzU,EAAGuU,YAAcE,GAGnBhK,EAAOknI,QAAU,SAAUx1I,EAAOyqB,GAE9B,GAAIC,GA3XQ,GAAGC,QAAA,mBA4XXC,EAAMC,OA3XMC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MA4XhB,KAAKN,EAAMje,KA3XKme,GA8XZ,MAFA5qB,GAAMkB,iBACNtF,EA3XQ2I,YAAc,QAAS,kCAA0B,cA4XlD,GAKf+J,EAAOmnI,aAAe,SAASz1I,GAzX/B,GA4XQ0qB,IA5XCnyB,OAAAyH,MAAuB01I,cAAWz1G,QAAU,QA4XrC,GAAItV,QAAO,oBA1XnBgrH,EAAWp9I,OAAAyH,MAAA01I,cAAAz1G,QAAA,aA4Xf,IA3XuB,OA2XpB01G,EA3XCrxH,MAAAoG,GA8XA,MAFA1qB,GA3XIkB,iBA4XJtF,EA3XW2I,YAAA,OAAiB,kCAAI,cA4XzB,GAIfV,EAAGmiH,UAAW,EACdniH,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGw/M,yBACHznN,EAAW2c,SAAU,EACrB1U,EAAGy/M,sBA3XgB,EA4XnBz/M,EAAG26H,gBA3XiB,EA4XpB36H,EAAG46H,mBA3XiB,EA4XpB56H,EAAG66H,YAAa,EAGhB76H,EAAG0X,MA3XQA,EA4XX1X,EAAGu/M,iBA3XiBA,EA4XpBv/M,EAAG86H,8BAAgCA,EACnC96H,EAAGi7H,uCAAyCA,EAC5Cj7H,EAAGq5G,sBAAwBA,EAC3Br5G,EAAGgU,OAASA,EA1XZhU,EAAA0R,OAASA,EA4XT1R,EAAGkU,UAAYA,EACflU,EAAG2/M,sBA3XoBA,EA4XvB3/M,EAAG4/M,wBA3XwBA,EA4X3B5/M,EAAG6/M,sBA3XYA,EA8Xf3tM,IACAwlH,IACAkH,IAgDA5+H,EAAGk7H,IAAM,WACLl7H,EAAG++M,kBAAkBtoM,gBAAkB,GACvCzW,EAAG++M,kBA3XCI,6BAA4B,GA4XhCn/M,EAAG++M,kBA3XaC,gCAAgB,GA4XhCh/M,EAAG++M,kBA3XYE,yBAA+B,GA4X9Cj/M,EAAGq5G,4PAzHXjlH,QACKC,OAAO,8BA1XRe,WAAS,wBAAwBspN,MAwuBzC,WACI,YAOA,SAASoB,GAAgB/lN,EAAOhC,EAAYyC,EAAQH,EAASs7H,EAAoBx7H,EAAsBsQ,GA2CnG,QA5XQyH,KA6XJyjH,EAAmBoqF,kBAAkBhmN,EAAOhC,GAAY0G,KAAK,SAASC,GAC/C,MAAfA,EAAIlI,QACJwJ,EAAGk6H,gBAAkBx7H,EAAIhJ,KA3XlCsK,EAAWsS,WAAA,GAEXva,EAAY2I,YAAA,QAAA,yBAAA,iBAEf,SAAWC,GACR5I,EAAA2I,YAAuB,QAAA,mBAAA,kBAgY1B,QAASsT,KACLhU,EAAGgT,YAAa,EA3XjBhT,EAAAwX,aAAQ,EACRxX,EAAAyX,WAAA,EAGH,QAAGC,KACA1X,EAAAgT,YAAS,EACThT,EAAA+S,WAAS,EACTmB,IACAlU,EAAAggN,eAEH,QAAGtuM,KA6XC,GAAIiB,GAAUtY,EAAQsY,QAAQ,eAC1B,yFA3XRtb,WAAA,EACA+F,KAAA,MAGAuV,GAASjT,OAAOjB,KAAA,WACTuB,EAAAgT,YAAA,EACChT,EAAA+S,WAAA,EACJmB,IA6XIlU,EAAGggN,iBAOX,QAAS9rM,KACLlU,EAAGigN,gBA5XQ7rM,gBA+Xf,QAAS8rM,GAAgBF,GACrBhgN,EAAGwX,aAAa,EAChBxX,EAAGyX,WAAW,EA3XlBzX,EAAA+S,WAAS,EA6XL/S,EAAGgT,YAAa,EA3XhBhT,EAAGggN,YAAA5rN,QAAA8e,KAA0B8sM,GA+XjC,QA5XOG,GAAkBH,GA6XrB,GAAIj/M,GAAM,yBAA4Bi/M,EAAY,SAAY,WAAa,UAAY,gBA3XvFrnM,GAAAqnM,EAAA,SAA2B,WAAA,UAAA,6BACvBrtM,EAAQtY,EAAAsY,QAAgB,UAAA5R,GAAA1J,WAAA,EAAA+F,KAAA,MA8X5BuV,GA5XQjT,OAAGjB,KAAA,WA6XPk3H,EA5XWwqF,wBAAwBH,EAAYvlF,WAAAh8H,KAAA,SAAAC,GACxB,MAAfA,EAAAlI,QACAuB,EAAG2I,YAAoB,UAAAiY,EAAA,eACvBzG,KAEAna,EAAG2I,YAAoB,QAAA,6BAAArJ,WAAA,EAAA+F,KAAA,QA8X5B,SA5XIuD,GACH5I,EAAI2I,YAAA,QAAA,oEAAArJ,WAAA,EAAA+F,KAAA,UA8XT,cAKP,QAASgjN,GAAkBJ,GACvB,GAAIrtM,GAAUtY,EAAQsY,QAAQ,UAAW,4CA3X1Ctb,WAAM,EACF+F,KAAA,MAGHuV,GAAGjT,OAAAjB,KAAA,WACAk3H,EAAAyqF,kBAAAJ,EAAAvlF,WAAAh8H,KAAA,SAAAC,GA6XwB,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,kCAAmC,gBACrEwR,KA1XPna,EAAU2I,YAAA,QAAA,6BACfrJ,WAAmB,EACP+F,KAAA,QA+XL,SA5XIuD,GACH5I,EAAW2I,YAAY,QAAS,qEA6X5BrJ,WAAW,EA3XX+F,KAAK,UA+Xd,cAKP,QA5XIijN,GAAeL,GA6Xf,GA5XI9/M,GAAQ/F,EAAgBgG,sBA6XvBH,GA5XG+S,WAkBJitM,EAAArsM,WAAwBzT,EAAAG,OA6XxBs1H,EA5XY2qF,gBAAgBN,GAAAvhN,KAAA,SAAAC,GACpBA,EAAGhJ,KAAAke,aAAA,GACH7b,EAAQ2I,YAAc,UAAGhC,EAAAhJ,KAAAme,QAAA,gBA6XzB3B,IACAlS,EAAGgT,YA5XI,EA6XPhT,EAAG+S,WA5XI,EA6XP2E,MAEA3f,EA5XO2I,YAAA,QAAkBhC,EAAAhJ,KAAAme,QAAA,gBA6XzB7T,EAAGgT,YA5XI,IA+XZ,SAASrS,GACR5I,EA5XO2I,YAAY,mCA6VvBs/M,EA5XOlsM,UAAY5T,EAAAG,OA6XnBs1H,EA5XO4qF,eAAAP,GAAAvhN,KAAA,SAAAC,GACHA,EAAAhJ,KAAWke,aAAY,GA6XnB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gBA3XpD3B,IACRlS,EAAWgT,YAAY,EA6Xf0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gBAClD7T,EAAGgT,YAAa,IAzXrB,SAAArS,GACC5I,EAAA2I,YAAiB,kCAjKpC,GAAWV,GAAAC,IA6XLD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MAC3FrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EA5XEuU,YAAO,EA6XTvU,EA5XEwU,qBAAW,SAAAC,GA6XXzU,EAAGuU,YAAcE,GAzXlBzU,EAAAgT,YAAA,EACAhT,EAAA+S,WAAA,EACA/S,EAAAsS,WAAS,EA6XTva,EAAW2c,SAAU,EA3XrB1U,EAAGk6H,mBA8XHl6H,EAAGgU,OAASA,EA3XZhU,EAAG0R,OAAAA,EACH1R,EAAGkU,UAAAA,EA6XHlU,EA5XEkgN,gBAAiBA,EA6XnBlgN,EAAGmgN,wBAA0BA,EAC7BngN,EAAGogN,kBAAoBA,EA3XvBpgN,EAAAqgN,gBAAiBA,EA6XjBrgN,EAAGwX,aAAc,EACjBxX,EAAGyX,WA5XK,EAgYRvF,IAEAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GAAQ,GAAIC,QAAO,gBACnBC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MA3X1D,KAAON,EAAAje,KAAAme,GAGC,MAFJ5qB,GAAAkB,iBACItF,EAAA2I,YAAuB,OAAM,iCAAsB,mBACnD,6GAiVZtM,QACKC,OAAO,8BACPe,WAAW,kBAAmB0qN,MA+LvC,WACI,YAOA,SA5XIU,GAASzmN,EAAmB0Q,EAAA1S,EAAAyC,EAAAH,EAAAw7H,EAAAD,EAAA6qF,EA6X5B3qF,EA5XOG,EAAwB0oF,EAAAxkN,EAAA0vF,EAAA8rC,EAAA5jH,GA6c/B,QA5XI2lH,KACA/B,EAAkBsE,qBAAAlgI,EAA2BhC,GAAA0G,KAAkB,SAAAC,GAC7C,MAAlBA,EAAAlI,QACAwJ,EAAAk6H,gBAAkBx7H,EAAAhJ,KAClBsK,EAAAsS,WAAkB,GAEdva,EAAU2I,YAAgB,QAAA,yBAAA,iBA8X3B,SAAUC,GA3Xb5I,EAAe2I,YAAK,QAAW,mBAAA,kBAkYnC,QAASk+H,KACL7sH,EAAe8D,mBAAmBpX,KAAK,SAAUC,GA3XlC,MA4XPA,EAAIlI,QACJwJ,EAAG8V,YA5XYpX,EAAAhJ,KA6XfsK,EAAGsS,WAAY,GA1XpBva,EAAW2I,YAAA,QAAA,yBAAA,YA8XX,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAM5D,QA5XI24G,KACA,GAAsC,MAAtCr5G,EAAA0gN,oBAAkBjqM,iBAA+D9gB,QAA3CqK,EAAkB0gN,oBAAAjqM,iBAAyB,IAAAzW,EAAA0gN,oBAAAjqM,gBAAA,CACjF,GAAA+jH,IACAC,UAAkBz6H,EAAA0gN,oBAAsBrB,wBAAkB5kF,UAC1DpkH,UAAkBrW,EAAA0gN,oBAAmBjqM,gBAAkBJ,UA8XnDu/G,GAAwB8E,4BAA4BF,GAAgB/7H,KAAK,SAAUC,GAC5D,MAAfA,EAAIlI,QA3XRwJ,EAAAs/M,qBAAW5gN,EAAAhJ,KACLgJ,EAAAhJ,KAAAyF,OAAA,EACN6E,EAAA26H,gBAAuB,GAEvB36H,EAAA26H,gBAAmB,EACnB36H,EAAA46H,mBAAkB,EACZ56H,EAAG66H,YAAA,EACT76H,EAAWm/M,6BAAW,GA6Xdn/M,EAAGg/M,gCAAkC,GACrCh/M,EAAGi/M,yBAA2B,GA3X1Cj/M,EAAA+wI,wBAAyB,GAEjB12I,EAAW8C,OAAA,UAAY,uBAA6B9F,WAAA,EAAA+F,KAAA,OA6XhD4C,EAAGi/M,yBAA2B,MAGlCj/M,EAAGsS,WAAY,GAzXhBjY,EAAAwH,MAAW,QAAA,yBAAA,8BAgYlB7B,GAAG26H,gBAAiB,EACpB36H,EAAG46H,mBAAoB,EACvB56H,EA5XG66H,YAAS,EAiYpB,QA5XQua,KA6XJ,GA5XIn6I,IACAugH,mBAAAx7G,EAAAm/M,6BAA+C3jG,mBA6X/CM,sBA5XiB97G,EAAAg/M,gCAAoBljG,sBA6XrCO,eA5XQr8G,EAAWi/M,yBAAuB5iG,eA6X1Ct9D,SAAU/+C,EAAG+wI,wBAAwB1oH,KAEzC4tG,GA5XYwB,UAAWx8H,GAAYwD,KAAA,SAAaC,GA6XzB,MAAfA,EAAIlI,OA3XJwJ,EAAAk8G,QAAAx9G,EAAAhJ,KAEAqC,EAAG2I,YAAW,QAAA,mCAAA,WA8XnB,SA5XQC,MA+Xf,QAASm6H,GA5X0Btf,EAAAj9G,GA8X/ByB,EAAGs6H,2BACHt6H,EAAGg/M,gCAAkC,KACrCh/M,EAAGu6H,oBACHv6H,EAAGi/M,yBAA2B,KAG9BppF,EAA2BkF,2CAA2Cvf,GAAoB/8G,KAAK,SAAUC,GAClF,MAAfA,EAAIlI,SA3XZwJ,EAAAs6H,wBAAA57H,EAAAhJ,KACRsK,EAAAsS,WAAA,EA6XoBtS,EAAGs6H,wBAAwBn/H,OAAS,GACpCd,EAAQ8C,OAAO,UAAW,yCAA2C6C,EAAGm/M,6BAA6BC,sBAAwB/nN,WAAW,EAAM+F,KAAM,OA5XxK4C,EAAA46H,mBAAA,EACY56H,EAAA66H,YAAA,IA+XQ76H,EAAGi/M,yBAA2B,GAC9Bj/M,EAAG46H,mBAAoB,GA3X9B56H,EAAAsS,WAAA,EA8XO/T,GA5XdA,OAoYF,QAAS08H,GAAuCnf,EAAuBv9G,GA5XpEu3H,EAAamF,uCAAAnf,GAAAr9G,KAAA,SAAAC,GACbsB,EAAAu6H,iBAAY,KACZv6H,EAAAi/M,yBAAY,GAEM,MAAlBvgN,EAAAlI,SA8XSwJ,EAAGu6H,iBAAmB77H,EAAIhJ,KA5X1BsK,EAAAu6H,iBAAAp/H,OAAA,GACAd,EAAA8C,OAAA,UAAA,kCAAA6C,EAAAg/M,gCAAA59F,yBAAA/pH,WAAA,EAAA+F,KAAA,OACG4C,EAAA66H,YAAA,GAEZ76H,EAAA66H,YAA0B,EAG1B76H,EAAAsS,WAAc,EACF/T,GA8XCA,OAMhB,QAAS6uI,KA5XL,GAAInyI,IACAugH,mBAAax7G,EAAAm/M,6BAAqC3jG,mBAClDM,sBAAkB97G,EAAAg/M,gCAAAljG,sBAClBO,eAAMr8G,EAAAi/M,yBAAA5iG,eACNh0F,KAAAroB,EAAA+wI,wBAA+B1oH,KAgYnCo4L,GAAwBE,uBAAuB1lN,GAAKwD,KAAK,SAAUC,GAC5C,MAAfA,EAAIlI,QACJwJ,EAAGmiH,UAAW,EA5XVzjH,EAAAhJ,MACZsK,EAAAurI,gBAAmBn3I,QAAkB8e,KAAOxU,EAAAhJ,KAAAkrN,uBAChC5gN,EAAA4gN,sBAAgBliN,EAAAhJ,KAAAkrN,sBACjB5gN,EAAAgtI,YAAkBtuI,EAAIhJ,KAAAg3I,cACtB1sI,EAAA/C,UAEHyuI,MAEI1rI,EAAA0sI,iBACR1sI,EAAWmiH,UAAA,KAgYPpqH,EAAW2I,YAAY,QAAS,mCAAoC,UA5XvEV,EAAA0sI,iBACF1sI,EAAAmiH,UAAa,IAEb,SAAUxhH,GA8XT5I,EAAW2I,YAAY,QAAS,iCAAkC,UAClEV,EAAG0sI,iBA5XX1sI,EAASmiH,UAAQ,IAiYjB,QA7XO+pB,GAAcC,EAAAC,GA8XjBpsI,EAAGqrI,uBAAwB,EA5X/B7wI,EAASqI,QAASspI,EAAAE,aAAA,SAAAD,GACVA,EAAAE,YAAkB,IA+XtBF,EA7XQE,YAAW,EA8XnBH,EA7XQI,iBAAMH,EAAAI,aA8XdC,IAGJ,QA7XQA,KA+XJjyI,EA7XIqI,QAAA7C,EAAA0sI,cAAA,SAAAP,GACGA,EAAAI,mBA8XCvsI,EAAG/C,OAAOkvI,EAAU00E,gBAAkB10E,EAAUI,oBAExDvsI,EAAG4gN,sBAAwBpmN,EAAOyC,OAAO+C,EAAG4gN,sBAAuB5gN,EAAG/C,QACtEyuI,IACAlxI,EAAOqI,QAAQ7C,EAAG0sI,cAAe,SAAUP,GACvC3xI,EAAOqI,QAAQspI,EAAUE,aAAc,SAAUD,GA5XhDA,EAAYI,eAAAxsI,EAAA/C,OAAAkvI,EAAA00E,gBACdz0E,EAAgBE,YAAA,EA+XPF,EAASE,YAAa,MAKtC,QA7XOlB,KACHprI,EAAG/C,UA8XH+C,EAAGqrI,uBAAwB,EAC3BrrI,EAAG4gN,sBAAwB5gN,EAAGurI,gBA5XlCG,IAkYA,QA7XIo1E,KA8XA,GA7XIpiN,GAAAlE,EAAA6P,KAAArK,EAAmB+gN,wBAAwB91H,OAAYjrF,EAAA0kM,uBAAyBz5G,QA+XpF,IAAIvsF,EACA3G,EA7XQ2I,YAAA,QAAA,gBAAA,qBA8XL,CACH,GAAIzF,IACAk2F,KAAMnxF,EAAG0kM,uBAAuBvzG,KA5XjClG,OAASjrF,EAAA0kM,uBAAKz5G,OACb+1H,UAAWhhN,EAAAihN,eAAYD,UAE5BhhN,GAAA+gN,uBAAWlpN,KAAAoD,GA+Xd+E,EAAG0kM,uBAAyB,KAC5B1kM,EAAGihN,eAAeD,UAAY,GAKlC,QA7XQE,GAAMpuM,GA8XV9S,EAAG+gN,uBAAuBzrL,OAAOxiB,EAAK,GAG1C,QA7XQquM,GAAAruM,GA8XJ9S,EAAGihN,eA7XaD,UAAW5sN,QAAK8e,KAAAJ,EAAAkuM,UA+XhC,KAAK,GAAInpM,KA7XG7X,GAAAohN,sBA8XJphN,EAAGohN,sBA7XIvpM,GAAAozE,SAAAn4E,EAAAm4E,SA8XPjrF,EAAG0kM,uBA7XwB1kM,EAAAohN,sBAASvpM,IAkYhD,QAASwpM,GA7XEvuM,GA+XP9S,EAAGshN,UA7XSltN,QAAW8e,KAAAJ,GA8XvB9S,EAAG+S,WA7XS,EA8XZ/S,EAAGuG,QAAS,EACZvG,EAAGuhN,UAAW,EACdvhN,EA7XGmiH,UAAW,EA8XdniH,EAAGihN,eAAervL,iBAAmBx9B,QAAQ8e,KAAKJ,EAAI8e,kBACtD5xB,EAAGihN,eAAet1E,gBAAkBv3I,QAAQ8e,KAAKJ,EAAI64H,iBAgCrDn6C,EA7XY,WA8XR,IAAK,GA7XG35E,KAAG7X,GAAAyxF,eA8XHzxF,EAAGyxF,eAAe55E,GAAGozE,SAAWn4E,EAAIm4E,SACpCjrF,EAAGqyF,YAAcryF,EAAGyxF,eAAe55E,GAK3B,MAAZ/E,EAAI6yC,MACJ3lD,EAAGwhN,QAAU,IACbxhN,EAAG2xF,SAAW7+E,EAAI+iI,aAClBP,EAAmBt1I,EAAG2xF,SAAU3xF,EAAGqyF,YAAYpH,OAAQ,WA5X9D,IAAA,GAAApzE,KAAA7X,GAAA6xF,SACT7xF,EAAA6xF,SAAAh6E,GAAA26E,SAAA1/E,EAAA0/E,SA8X4BxyF,EAAGyhN,gBAAkBzhN,EAAG6xF,SAASh6E,QAK7C7X,EAAGwhN,QAAU,KACbxrE,EAAe,WA7XtB,IAAA,GAAmBn+H,KAAA7X,GAAOixF,eACVjxF,EAAAixF,eAAAp5E,GAAuBozE,SAAAn4E,EAAAm4E,SACnCjrF,EAAAsiJ,mBAAAtiJ,EAAAixF,eAAAp5E,SAsYL7X,EAAGihN,eAAeS,WAAattN,QAAQ8e,KAAKJ,EAAI4uM,YAChD1hN,EAAG+gN,uBAAyBpkN,KAAKC,MAAMkW,EAAI6uM,YAMpB,GAAlB7uM,EAAI4uM,YAAuC,MAAlB5uM,EAAI6uM,YAAwC,MAAlB7uM,EAAI6uM,aA7X7D3hN,EAAAuG,QAAe,EACfvG,EAAAuhN,UAAA,GAOH,QAAGK,GAAaX,GA+XZ,GAAItuM,GAAUtY,EAAQsY,QAAQ,UAC1B,4CAA8Ctb,WAAW,EAAM+F,KAAM,MA7X1EuV,GAASjT,OAAAjB,KAAA,WACTw3H,EAAY2rF,UAAAX,EAAAloM,IAAAta,KAAA,SAAAC,GACZ,MAAAA,EAAAlI,QACAuB,EAAA2I,YAAA,UAAyC,uBAAA,eA+X5B00I,KA5Xbr9I,EAAiB2I,YAAA,QAAA,4BAAArJ,WAAA,EAAA+F,KAAA,UAIjB,SAAWuD,GACX5I,EAAU2I,YAAA,iCAEVgX,IAGH,QAAGg0H,KACC,GAAAqB,KACD,KAAA,GAAA92H,KAAWjW,GAAAgtI,YAAA,CACX,GAAAl0F,IAAe+nK,eAAA7gN,EAAAgtI,YAAA/2H,GAAAo2H,gBACf,KAAA,GAAAx0H,KAAA7X,GAAqB4gN,sBAAA,CA+XZ,GAAIh4M,GAAQpO,EAAOihG,KAAK3iD,EAAKuzF,cAAgBG,aAAgBxsI,EAAG4gN,sBAAsB/oM,GAAGihC,EAAK+nK,iBA7X1G,KAAAj4M,EAAA,CACA,GAAAskI,IACGV,aAAyBxsI,EAAA4gN,sBAAqB/oM,GAAWihC,EAAM+nK,gBA+X9Cv0E,YAAY,EAEhBxzF,GAAKuzF,aAAax0I,KAAKq1I,IAG/BH,EAAQl1I,KAAKihD,GAEjB94C,EAAG0sI,cAAgBK,EAGvB,QAASy5D,KACL,GAAIC,GAAczmM,EAAGm/M,6BAA6BC,qBAAuB,OACrEp/M,EAAGg/M,gCAAgC59F,wBAA0B,OAC7DphH,EAAGi/M,yBAAyB4C,iBAAmB,IA5XpDl/M,EAAMnI,EAAYmI,KAAA3C,EAAA/C,QACd67C,EAAA,EACH,KAAG,GAAA59C,KAAAyH,GACAm2C,GAAA,KAAAlyC,SAAA1L,GAAA,GAAkC,KAAAyH,EAAAzH,GAAA,MAAA8E,EAAA/C,OAAA0F,EAAAzH,IAAA,GAErCurM,IAAG,KAAA3tJ,EACH94C,EAAAihN,eAAAt1E,gBAAA86D,EAiYJ,QAASzwD,GAAe7+H,GACpBnX,EAAGsiJ,mBAAqB,KACxBtiJ,EAAG2xF,SAAW,KACd3xF,EAAGixF,kBA7XPpH,EAAmBE,oBAAAtrF,KAAA,SAAAC,GACI,MAAnBA,EAAAlI,SACQwJ,EAAAixF,eAAoBvyF,EAAAhJ,KACjByhB,GACAA,MAgYR,SA9XKxW,MAkZZ,QAAS20I,GAAmB3jD,EAAU1G,EAAQ1sF,GAC1C,GAAe5I,SAAXs1F,EAAsB,CACtB,GAAIsqD,IACA5jD,SAAU3xF,EAAG2xF,SA7XhB1G,OAAAA,EAEDpB,GAAqBC,YAAAyrD,GAAA92I,KAAA,SAAAC,GACH,MAAdA,EAAAlI,QACAwJ,EAAAyhN,gBAAc,KA+XVzhN,EAAG6xF,SAAWnzF,EAAIhJ,KA7X1B6I,GACYA,IACJyB,EAAGsS,WAAA,GAgYHjY,EA9XOwH,MAAA,QAAA,yBAAiB,UAgY7B,SA9XSlB,GA+XR5I,EA9XW2I,YAAA,QAAoB,mBAAA,eAiYnC3I,GAAW2I,YA9XI,QAAA,gCAAkC,SAkYzD,QAASsrI,KAEL,GAAImB,KACJ,KAAK,GAAIhB,KAAansI,GAAG0sI,cACjB1sI,EAAG0sI,cA9XIP,GAAYE,aAAA,GAAAC,WA+XnBa,EAAYntI,EAAG0sI,cAAcP,GAAW00E,gBAAkB7gN,EAAG0sI,cAAcP,GAAWE,aAAa,GAAGG,aAEtGW,EA9XYntI,EAAA0sI,cAAeP,GAAA00E,gBAA0B,EAiY7D,OA9XO1zE,GAiYX,QA9XQrB,KAgYJ,GAAItxI,EAAOmI,KAAK3C,EAAG/C,QAAQ9B,OAAS,EAAG,CACnC,GAAIF,IACAugH,mBAAsBx7G,EAAGm/M,6BAA6B3jG,mBA7XzDM,sBAAW97G,EAAAg/M,gCAAAljG,sBACZO,eAAMr8G,EAAAi/M,yBAAA5iG,eACNt9D,SAAA/+C,EAAA+wI,wBAAuB1oH,KACvB0jH,WAAApvI,KAAuBqkB,UAAGgrH,KAE1B/V,GAAa6V,sBAAwB7wI,GAAAwD,KAAA,SAAAC,GA+Xf,KAAdA,EAAIlI,OA7XhBkI,EAAAhJ,KAmYgBqC,EAAW2I,YAAY,QAAS,qDAlYpCV,EAAAgT,YAAgB,EACjBhT,EAAAqrI,uBAAc,EACdm7D,MAmYCxmM,EAAGgT,YAAa,EA7XvBhT,EAAAqrI,uBAA8B,IAEhC,SAAA1qI,UAkYC5I,GAAW2I,YAAY,UAAW,qDAa1C,QAASgX,KACL1X,EAAGgT,YA9XQ,EA+XXhT,EAAGmiH,UA9XS,EA+XZniH,EAAG+S,WA9XS,EA+XZmB,IACAlU,EAAGihN,kBACHjhN,EAAG+gN,0BACH/gN,EAAGuG,OAAS,GACZvG,EAAGuhN,SAAW,GACdvhN,EAAGyhN,gBAAkB,KA7XzBzhN,EAAAsiJ,mBAAS,KAiYT,QA9XQ5wI,KA+XJ,GAAIiB,GAAUtY,EAAQsY,QAAQ,eA7X1B,yFA+XAtb,WA9XO,EA+XP+F,KA9XI,MAiYRuV,GAAQjT,OA9XOjB,KAAA,WA+XXuB,EAAGgT,YA9XQ,EA+XXkB,IACAlU,EAAGihN,kBACHjhN,EAAG+gN,0BACH/gN,EAAGuG,OA9XK,GA+XRvG,EAAGuhN,SA9XK,GA+XRvhN,EAAGyhN,gBAAkB,KACrBzhN,EAAGsiJ,mBAAqB,OAOhC,QA9XQpuI,KA+XJlU,EAAG8hN,mBA9XiB1tM,gBA+XpBg3H,IACAprI,EAAGmiH,UAAW,EACdniH,EAAG+S,WAAY,EAMnB,QAASgvM,GA9XOd,GA4YZ,GA9XGjhN,EAAA+S,UA8ZC/S,EAAGshN,UAAUvoM,GAAK/Y,EAAGshN,UAAUvoM,GAC3B/Y,EAAGshN,UAAU1vL,iBAAmB5xB,EAAGihN,eAAervL,iBAClD5xB,EAAGshN,UAAU31E,gBAAkB3rI,EAAGihN,eAAet1E,gBA7XpD3rI,EAAAshN,UAAcI,WAAA1hN,EAAAihN,eAAAS,WAChB1hN,EAAAshN,UAAS9uH,OAAA78F,QAAAqK,EAAAyhN,gBAAAzhN,EAAAyhN,gBAAAjvH,OAAA,EACTxyF,EAAAshN,UAAAr2H,QAAwBt1F,QAAAqK,EAAAsiJ,mBAAAtiJ,EAAAsiJ,mBAAAr3D,OAAA,KAAAt1F,QAAAqK,EAAAqyF,YAAAryF,EAAAqyF,YAAApH,OAAA,GACxBjrF,EAAAshN,UAAAK,WAA2BvtN,QAAA4tN,OAAAhiN,EAAA+gN,wBAC9B/gN,EAAAshN,UAAA3tM,WAAAzT,EAAAG,OA+XI41H,EAAsBgsF,UAAUjiN,EAAGshN,WAAW7iN,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,OACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,OA3XtD9b,EAAY2I,YAAG,QAAAhC,EAAAhJ,KAA0Bme,QAAU,OAEzD7T,EAAKkU,YACLkhI,IACGp1I,EAAAgT,YAAA,GACH,SAAUrS,GACN5I,EAAS2I,YAAA,iCAgYbgX,QAnbc,CACd,GAAAwqM,IACG1mG,mBAAgBx7G,EAAAm/M,6BAAA3jG,mBAChBM,sBAAW97G,EAAAg/M,gCAAAljG,sBA+XVO,eAAkBr8G,EAAGi/M,yBAAyB5iG,eAC9C0vB,WAAcpvI,KAAKqkB,UAAUgrH,KAC7Bp6G,iBAAoB5xB,EAAGihN,eAAervL,iBA7XzC+5G,gBAAe3rI,EAAAihN,eAAqBt1E,gBACtCn5C,OAAwB78F,QAAxBqK,EAAAyhN,gBAAwBzhN,EAAAyhN,gBAAAjvH,OAAA,EACpBvH,QAAgCt1F,QAAxBqK,EAAAsiJ,mBAAkCtiJ,EAAUsiJ,mBAAAr3D,OAAA,KAAAt1F,QAAAqK,EAAAqyF,YAAAryF,EAAAqyF,YAAApH,OAAA,GACvD02H,WAASvtN,QAAa4tN,OAAAhiN,EAAA+gN,wBA+XlBW,WAAc1hN,EAAGihN,eAAeS,WA7XxC3iK,SAAS/+C,EAAa+wI,wBAAA1oH,KACtBvU,UAAU5T,EAAmBG,OAgYzB41H,GAAsBksF,OAAOD,GAAKzjN,KAAK,SAAUC,GACzCA,EAAIhJ,KAAKke,aAAc,EA7X9B7b,EAAkB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,OAGf9b,EAAU2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,OAgYVK,IA7XLkhI,IACHp1I,EAAAgT,YAAA,GACO,SAAQrS,GACX5I,EAAe2I,YAAU,iCAgYzBgX,KA8BR,QA9XO85E,GAAer6E,GA+XlB0yE,EAAyBI,eAAexrF,KAAK,SAAUC,GAChC,MAAfA,EAAIlI,QACJwJ,EAAGyxF,eAAiB/yF,EAAIhJ,KA5X3ByhB,KAERpf,EAAA2I,YAAA,QAAA,4CAAA,UAGM,SAAAC,GA+XK5I,EAAW2I,YAAY,QAAS,4CAA6C,WArrBzF,GA5XIV,GAAGC,IA8XPD,GAAGqU,kBA5XKhJ,MAAuB,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA6X/BrL,EAAGsU,SA5XKtU,EAAAqU,gBAAmB,GA8X3BrU,EAAGuU,YA5XK,EA6XRvU,EAAGwU,qBA5Xc,SAAkBC,GA6X/BzU,EAAGuU,YAAcE;EAGrBzU,EAAGgT,YA5Xa,EA6XhBhT,EAAG+S,WA5XY,EA6Xf/S,EAAGsS,WA5XY,EA6Xfva,EAAW2c,SAAU,EAGrB1U,EAAGqsI,gBACHrsI,EAAG+gN,0BACH/gN,EAAG/E,OACH+E,EAAG/C,UACH+C,EAAGihN,kBACHjhN,EAAGqrI,uBAAwB,EAC3BrrI,EAAG26H,gBAAiB,EA3XpB36H,EAAA46H,mBAAS,EA6XT56H,EAAG66H,YAAa,EAGhB76H,EAAG0R,OA5XQA,EA6XX1R,EAAG4hN,UA5XQA,EA6XX5hN,EAAG86H,8BAAgCA,EACnC96H,EAAGi7H,uCA5X6BA,EA8XhCj7H,EAAGotI,mBA5XgBA,EA6XnBptI,EAAGksI,eA5XaA,EA6XhBlsI,EAAGorI,YA5XaA,EA6XhBprI,EAAG8rI,sBA5XgBA,EA6XnB9rI,EAAG+hN,QAAUA,EACb/hN,EAAGo1I,SAAWA,EACdp1I,EAAGqhN,QAAUA,EACbrhN,EAAGq5G,sBA5XwBA,EA6X3Br5G,EAAGkU,UA5XSA,EA6XZlU,EAAG8gN,YA5XaA,EA6XhB9gN,EAAGkhN,WAAaA,EAChBlhN,EAAGg2I,eAAiBA,CACpB,IAAI91I,GAAa/F,EAAsBgG,sBACvCH,GAAGmhN,SAAWA,EA3XdnhN,EAAAwxF,aAAkBA,EA6XlBxxF,EAAGs1I,mBA5XeA,EA8XlB5d,IA3XAkH,IA6XA5+H,EAAG+5H,sBA5XeC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,MA4YlBroB,EAAGk7H,IA5XI,WACHl7H,EAAG0gN,oBAAoBjqM,gBAAA,GA6XvBzW,EAAGm/M,6BAA+B,GAClCn/M,EAAGg/M,gCAAkC,GACrCh/M,EAAGi/M,yBAA2B,GA3XlCj/M,EAAA+wI,wBAA+B,GAC3B13B,KA+1BJxvB,EA9XeE,oBAA8BtrF,KAAA,SAAAC,GAC9B,MA8XPA,EA9XIlI,SA+XJwJ,EAAGohN,sBA9XQ1iN,EAAAhJ,KA+XXsK,EAAGsS,WA9XK,IAgYb,SAAU3R,GACT5I,EAAW2I,YA9XI,QAAA,mBAAA,mBAsgBnB+J,EAAOuqG,YAAc,SAAU74G,GACvBA,IACA6D,EAAGoiN,oBAAsBjmN,EAAMsN,OAAOiE,MAAM,KAGpDjD,EA9XO43M,aAAY,SAAalmN,GACzBA,IACA6D,EAAAsiN,yBAASnmN,EAAAsN,OAAAiE,MAAA,KAiYhB1N,EAAGuiN,mBA9XmB,WAClB,GAAGnkN,GAAA,GAAeH,SA+XlBG,GAASF,OAAO,cAAe8B,EAAGoiN,qBAClChkN,EAASF,OAAO,mBAAoB8B,EAAGsiN,0BACvClkN,EAASF,OAAO,KAAM8B,EAAGshN,UAAUvoM,IACnCk9G,EAAsBssF,mBAAmBnkN,GAAUK,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QACJ27B,QAAQC,IAAI1zB,GACZsB,EAAGshN,UAAUkB,YAAc9jN,EAAIhJ,KAAK8sN,YACpCxiN,EAAGshN,UAAUmB,iBAAmB/jN,EAAIhJ,KAAK+sN,iBACzC1qN,EAAW2I,YAAY,UAAW,yBAA0B,2BAE5D3I,EAAW2I,YAAY,QAAS,iCAAkC,2BAEvE,SAAUC,GACT5I,EAAW2I,YAAY,kVA1tBnCtM,QACKC,OAAO,8BACPe,WAAW,qBAAsBorN,MA6tB1C,WACI,YAOA,SAASkC,GAAqB3qN,EAAYyC,EAAOC,EAASJ,EAASN,EAAO67H,EACtEz7H,EAAuB4X,EAAgB4jH,EAAoBlrH,GAqD3D,QA9XQyH,KACJ0jH,EAAoBipF,uBAAY9kN,EAAAhC,GAAA0G,KAAA,SAAAC,GAC5B,MAAAA,EAAAlI,QACIwJ,EAAAs/M,qBAAwB5gN,EAAAhJ,KA+XxBsK,EAAGsS,WA9XY,GAgYfva,EA9XO2I,YAAA,QAAA,yBAAA,sBAgYZ,SA9XMC,GA+XL5I,EAAW2I,YAAY,QAAS,mBAAoB,uBAGxDk1H,EA9Xe+sF,gBAAY5oN,EAAAhC,GAAA0G,KAAA,SAAAC,GA+XJ,MAAfA,EAAIlI,QA7XZwJ,EAAAglM,gBAAAtmM,EAAAhJ,KA+XQsK,EAAGsS,WAAY,GA5XlBva,EAAA2I,YAAkB,QAAA,yBAAA,sBAEvB,SAASC,GACL5I,EAAW2I,YAAE,QAAmB,mBAAgB,uBAiYpDk1H,EA9XmBgtF,oBAAA7oN,EAAAhC,GAAA0G,KAAA,SAAAC,GACH,MA8XRA,EA9XIlI,QA+XJwJ,EAAGgwI,oBA9XsBtxI,EAAAhJ,KA+XzBsK,EAAGsS,WA9XK,GAgYRva,EA9XS2I,YAAa,QAAK,yBAAA,sBAgYhC,SAAUC,GA7XT5I,EAAQ2I,YAAK,QAAA,mBAAA,uBAwZrB,QAASmiN,KACL7iN,EAAG8iN,+BACH,IAAItoF,IA7XDC,UAAUz6H,EAAKklM,kBAAAzqE,UA+XdpkH,UAAWrW,EAAGowI,sBAAsB/5H,UAExCu/G,GAAwB8E,4BAA4BF,GAAgB/7H,KAAK,SAAUC,GAC5D,MAAfA,EAAIlI,QACJwJ,EAAG8iN,6BAA+BpkN,EAAIhJ,KACtCsK,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,0BAM7D,QAASmS,KACLhU,EAAG66B,MAAO,EACV76B,EAAGgT,YAAa,EAChBhT,EAAGklM,kBAAoB,KACvBllM,EAAGglM,mBACHhlM,EAAGowI,sBAAwB,KA7X/BpwI,EAAAgwI,uBACIhwI,EAAAwX,aAAe,EA+XfxX,EAAGyX,WA9XW,EAkYlB,QA9XQC,KA+XJ1X,EAAGgT,YA9Xa,EA+XhBhT,EAAG+S,WA9XY,EA+XfmB,IACAlU,EAAG+iN,oBACH7wM,IAEJ,QAASR,KACL,GAAIiB,GA9XQtY,EAAQsY,QAAM,eA+XtB,yFA7XGtb,WAAU,EACT+F,KAAA,MAiYRuV,GA9XIjT,OAAWjB,KAAA,WA+XXuB,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACfmB,IA7XRlU,EAAS+iN,oBA+XD7wM,MAQR,QAASgC,KA7XLlU,EAAAgjN,qBAAO5uM,gBAGX,QAAS6uM,GAAAF,GACL/iN,EAAAwX,aAAA,EACAxX,EAAAyX,WAAW,EA+XXzX,EAAG66B,MA9XK,EA+XR76B,EAAG+S,WA9XK,EA+XR/S,EAAGgT,YA9XK,EA+XRhT,EAAG+iN,iBA9XK3uN,QAAqB8e,KAAA6vM,EAgY7B,KAAK,GA9XGlrM,KAAA7X,GAAAk6H,gBA+XAl6H,EAAGk6H,gBAAgBriH,GAAG4iH,YAAcsoF,EAAiBtoF,YA7XzDz6H,EAAA+iN,iBAAsB1D,wBAA2Br/M,EAAAk6H,gBAAoBriH,GAiYzE,KAAK,GAAIA,KAAK7X,GA9XE8V,YA+XR9V,EAAG8V,YA9XQ+B,GAAAxB,YAAA0sM,EAAwB1sM,YA+XnCrW,EAAG+iN,iBA9XKtsM,gBAAAzW,EAAA8V,YAAA+B,IAoYpB,QAASqrM,GA9XUH,GAgYf,GAAIpwM,GA9XGtY,EAAesY,QAAA,UA+XlB,4CACItb,WAAW,EA7XZ+F,KAAA,MAiYPuV,GAAQjT,OAAOjB,KAAK,WAChBm3H,EAAwBstF,uBAAuBH,EAAiBvnG,oBAAoB/8G,KAAK,SAAUC,GA7XlF,MAAzBA,EAAAlI,QACYuB,EAAW2I,YAAK,UAAA,uCAAA,oBACjBmiN,EAA4B7iN,EAAAklM,kBAAAzqE,UAAAz6H,EAAAowI,sBAAA/5H,YAgYvBte,EAAW2I,YAAY,QAAS,iCA7X9BrJ,WAAA,EACH+F,KAAA,UAIR,cAmYP,QA9XO+lN,GAAyBJ,GAC5B,GAAGhiN,GAAA,yBAASgiN,EAAA,SAAA,WAAA,UAAA,gBACTpqM,GAAAoqM,EAAW,SAAA,WAAA,UAAA,iCACXpwM,EAAAtY,EAAkBsY,QAAA,UAClB5R,GA+XK1J,WAAW,EACX+F,KAAM,MAGduV,GA9XIjT,OAAAjB,KAAA,WACAm3H,EAAWutF,6BAAAJ,EAAAvnG,oBAAA/8G,KAAA,SAAAC,GACL,MAAAA,EAAAlI,QA+XEuB,EAAW2I,YAAY,UAAWiY,EAAM,oBACxCzG,KA5XLna,EAAa2I,YAAA,QAAA,iCAChBrJ,WAAA,EACG+F,KAAA,QAGA,SAAAuD,GACA5I,EAAA2I,YAAkB,QAAA,yEAClBrJ,WAAA,EA+XK+F,KAAM,UAGf,cA3XP,QAASgmN,GAAYL,GACjB,GAAG7iN,GAAA/F,EAAmBgG,sBACtB4iN,GAAAtoF,UAAAz6H,EAAA+iN,iBAAA1D,wBAAA5kF,UACGsoF,EAAW1sM,UAAArW,EAAA+iN,iBAAAtsM,gBAAAJ,UACXrW,EAAA+S,WAgZCgwM,EAAiBpvM,WAAazT,EAAWG,OACzCu1H,EAAwBytF,qBAAqBN,GAAkBtkN,KAAK,SAAUC,GA7X1EA,EAAAhJ,KAAWke,aAAA,GACX7b,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,sBACNgvM,EAAyB7iN,EAAAklM,kBAAAzqE,UAA6Bz6H,EAAAowI,sBAAA/5H,WACtDrW,EAAAgT,YAAA,EACAhT,EAAA+S,WAAkB,EAClB2E,MAEA3f,EAAA2I,YAAsB,QAAAhC,EAAehJ,KAAAme,QAAA,sBACrC7T,EAAAgT,YAAc,IAiYf,SA9XCrS,GACA5I,EAAA2I,YAAe,+BACfrJ,WAAa,EA+XT+F,KAAM,WAjCd2lN,EAAiBjvM,UAAY5T,EAAWG,OACxCu1H,EAAwB0tF,oBAAoBP,GAAkBtkN,KAAK,SAAUC,GACrEA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,sBACpD3B,IA7XPlS,EAAQgT,YAAA,EA+XD0E,MAEA3f,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,sBAClD7T,EAAGgT,YAAa,IAGrB,SAAUrS,GACT5I,EAAW2I,YAAY,QAAS,kCA2B3C,QAAS6iN,KACNvjN,EAAGsS,WA9XK,CA+XR,IA5XO0T,IAFC7rB,EAAAgG,wBAGA8rC,YAAW,iBAkYf2pF,GAAwB2tF,2BAA2Bv9L,GAAWvnB,KAAK,SAAUC,GA7X5E,GAAA,MAAAA,EAAAlI,OAAA,CACEwJ,EAAA8Z,cAAkBpb,EAAUhJ,KACxBsK,EAAAsS,WAAU,CACV,IAAA2D,GAAAnf,SAAUijB,cAAqB,IAC/BjjB,UAAUC,KAAAijB,YAAgB/D,GAC1BA,EAAAgE,MAAU,eACV,IAAArc,GAAU,GAAAC,OAAWa,EAAGhJ,OACxBqI,KAAU,oBAEjBtJ,EAAAC,OAAsBwlB,IAAAC,gBAAavc,EAE3BnD,GAAA4E,KAAW5K,EAAA,UA+XXsD,EAAW2I,YAAY,UAAW,eAAgB,mBAClDwR,QAEAna,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OA7X5E4C,EAAAsS,WAAA,GAGJ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OA+XvB4C,EAAGsS,WAAY,IAhU3B,GAAItS,GAAKC,IAETD,GAAGqU,kBA7XChJ,MAAA,IAgYAA,MA9XQ,KAgYRA,MAAS,KAETA,MAAS,KAETA,MA9XQ,MAgYZrL,EAAGsU,SA9XStU,EAAGqU,gBAAe,GAgY9BrU,EAAGuU,YA9Xa,EA+XhBvU,EAAGwU,qBA9XqB,SAAYC,GA+XhCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WA9XY,EA+Xf/S,EAAGsS,WA9XY,EA+Xfva,EAAW2c,SA9XC,EA+XZ1U,EAAGs/M,wBAEHt/M,EAAGgU,OAASA,EACZhU,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAGijN,qBAAuBA,EAC1BjjN,EAAGkjN,uBAAyBA,EAC5BljN,EAAGmjN,6BAA+BA,EAClCnjN,EAAGojN,qBAAuBA,EAC1BpjN,EAAG6iN,0BAA4BA,EAC/B7iN,EAAGujN,2BA9XmBA,EA+XtBvjN,EAAGwX,aA9XI,EA+XPxX,EAAGyX,WAAY,EAEfvF,IAEAzH,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GA9XIC,GAAG,GAASC,QAAA,gBACZC,EAAGC,OAAAC,aAAW9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MA+XlB,KAAKN,EAAMje,KAAKme,GAGZ,MAFA5qB,GAAMkB,iBACNtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,GAwCfqR,EAAe8D,mBAAmBpX,KAAK,SAAUC,GA7XxC,MAATA,EAASlI,QACDwJ,EAAA8V,YAAiBpX,EAAAhJ,KACjBsK,EAAGsS,WAAA,GAgYHva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SA9XKC,GACJ5I,EAAS2I,YAAW,QAAA,mBAAA,aAiYxBi1H,EA9XmBsE,qBAAOlgI,EAAAhC,GAAA0G,KAAA,SAAAC,GACJ,MAAfA,EAAAlI,QA+XCwJ,EAAGk6H,gBAAkBx7H,EAAIhJ,KACzBsK,EAAGsS,WAAY,GA5XhBva,EAAA2I,YAAqB,QAAA,yBAAA,iBAgYzB,SA9XIC,GACH5I,EAAA2I,YAAA,QAAyB,mBAAyB,iLA6Q1DtM,QACKC,OAAO,8BACPe,WAAW,uBAAwBstN,MA2U5C,WACI,YAOA,SAASc,GAAwBzrN,EAAW0C,EAASD,EAAQH,EAASN,EAAO87H,EACzE17H,EAAuBy7H,EAAyBD,EAAoB5jH,EAAetH,GAiDnF,QAASyH,KA9XN2jH,EAAmB4tF,4BAAAhlN,KAAA,SAAAC,GACT,MAATA,EAASlI,QACVwJ,EAAAs6H,wBAAA57H,EAAAhJ,KAGCsK,EAASsS,WAAA,GAETjY,EAASwH,MAAA,QAAA,yBAAA,wBAET,SAASlB,GAgYLtG,EAAQwH,MAAM,QAAS,mBAAoB,yBA5XhD+zH,EAAc+sF,gBAAA5oN,EAAAhC,GAAA0G,KAAA,SAAAC,GACS,MAAvBA,EAAAlI,QACIwJ,EAAAglM,gBAActmM,EAAAhJ,KAgYTsK,EAAGsS,WAAY,GA7XxBva,EAAa2I,YAAA,QAAA,yBAAA,sBAEb,SAAYC,GACf5I,EAAW2I,YAAU,QAAA,mBAAA,uBAGlBk1H,EAASgtF,oBAAA7oN,EAAAhC,GAAA0G,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QACTwJ,EAAYgwI,oBAAAtxI,EAAAhJ,KACZsK,EAAAsS,WAAuB,GAEvBva,EAAA2I,YAA+B,QAAA,yBAAA,sBAE/B,SAAAC,GACA5I,EAAA2I,YAAA,QAA6B,mBAAA,uBAIhC,QAAA64I,KAgYI,GAAIt+I,IA9XDw/H,UAAWz6H,EAAAklM,kBAAiBzqE,UAgY3BpkH,UAAWrW,EAAGowI,sBAAsB/5H,WA7XpC05E,GACAq3C,OAAOzqI,KAAKqkB,UAAM/lB,GAiYtB46H,GA/X2B6tF,qBAAQ3zH,GAAAtxF,KAAA,SAAkCC,GAC1D,MAAPA,EAAOlI,QAgYHwJ,EAAG2jN,mBAAqBjlN,EAAIhJ,KAC5BsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,sBA7XlE,SAAAC,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,uBAmYhC,QAASkjN,GA/XGpoG,GAgYRx7G,EAAG6jN,mCACHhuF,EA/XkBkF,2CAAAvf,GAAA/8G,KAAA,SAAAC,GACH,MAAXA,EAAAlI,SAgYIwJ,EAAG6jN,gCAAkCnlN,EAAIhJ,KACzCsK,EAAGsS,WAAY,KA6B3B,QA/XQolH,KAgYJ/B,EAAmBsE,qBAAqBlgI,EAAOhC,GAAY0G,KAAK,SAAUC,GA9X5D,MAAfA,EAAUlI,QACTwJ,EAAWk6H,gBAAYx7H,EAAShJ,KAgYxBsK,EAAGsS,WAAY,GA7X3Bva,EAAmB2I,YAAA,QAAqB,yBAAwB,iBAiYzD,SA/XIC,GACH5I,EAAG2I,YAAY,QAAA,mBAAA,kBAqYvB,QAASk+H,KACL7sH,EAAe8D,mBAAmBpX,KAAK,SAAUC,GA9X5C,MAAAA,EAAAlI,QACFwJ,EAAA8V,YAAApX,EAAAhJ,KACCsK,EAAAsS,WAAiB,GAEjBva,EAAc2I,YAAA,QAAsB,yBAAA,YAExC,SAAAC,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,aAqYhC,QAAS24G,KACL,GAA8C,MAA1Cr5G,EAAG0gN,oBAAoBjqM,iBAAqE9gB,QAA1CqK,EAAG0gN,oBAAoBjqM,iBAA0E,IAA1CzW,EAAG0gN,oBAAoBjqM,gBAAuB,CACvJ,GAAI+jH,IACAC,UAAWz6H,EAAG0gN,oBAAoBrB,wBAAwB5kF,UA9X7DpkH,UAASrW,EAAA0gN,oBAAAjqM,gBAAAJ,UAEXu/G,GAAa8E,4BAAAF,GAAA/7H,KAAA,SAAAC,GACO,MAApBA,EAAAlI,QACAwJ,EAAAs/M,qBAAkB5gN,EAAAhJ,KAClBgJ,EAAAhJ,KAAAyF,OAAwB,EACxB6E,EAAA26H,gBAAsB,GAEV36H,EAAA26H,gBAAA,EAgYC36H,EAAG0gN,oBAAoBvB,6BAA+B,GACtDn/M,EAAG0gN,oBAAoBt/F,wBAA0B,GACjD/mH,EAAQ8C,OAAO,UAAW,uBAAyB9F,WAAW,EAAM+F,KAAM,QA7XvF4C,EAAAsS,WAAa,GAGbjY,EAAAwH,MAAmB,QAAA,yBAAA,8BAIlB7B,GAAA26H,gBAAkB,EAqY1B,QA/XI3mH,KAgYAhU,EAAG8jN,iBA/XiB,EAgYpB9jN,EAAGgT,YA/XI,EAgYPhT,EAAG26H,gBA/XC,EAgYJ36H,EAAGklM,kBA/XI,KAgYPllM,EAAGglM,mBACHhlM,EAAGowI,sBAAwB,KAC3BpwI,EAAGgwI,uBACHhwI,EAAG25I,uBAAuB,KAC1B35I,EAAG2jN,sBACH3jN,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAGnB,QA/XOC,KAgYH1X,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA9XnBmB,IACIlU,EAAG0gN,uBACHxuM,IAiYJ,QA/XOR,KACH,GAAGiB,GAAAtY,EAAasY,QAAA,eACb,yFAgYKtb,WAAW,EA9Xd+F,KAAS,MAkYduV,GAAQjT,OAAOjB,KAAK,WAChBuB,EAAGgT,YAAa,EA9XpBhT,EAAK+S,WAAY,EACbmB,IAgYAlU,EAAG0gN,uBACHxuM,MAOR,QA/XQgC,KAgYJlU,EAAG+jN,wBA/XC3vM,gBAkYR,QAASg1L,GAAmBsX,GACxB1gN,EAAGwX,aAAc,EA9XjBxX,EAAAyX,WAAe,EAgYfzX,EAAG8jN,iBA/XC,EAgYJ9jN,EAAG+S,WA/XS,EAgYZ/S,EAAGgT,YA/XS,EAgYZhT,EAAG0gN,oBA/XStsN,QAAA8e,KAA0BwtM,EAgYtC,KAAK,GAAIxlN,KAAK8E,GA/XCk6H,gBAgYPl6H,EAAGk6H,gBA/XYh/H,GAAAu/H,YAAqBimF,EAAAsD,iBAAiCvpF,YAgYrEz6H,EAAG0gN,oBA/XgBrB,wBAAAr/M,EAAAk6H,gBAAAh/H,GAmY3B,KAAK,GAAIiP,KAAKnK,GAAG8V,YA9Xd9V,EAAA8V,YAAY3L,GAAAkM,YAAAqqM,EAAAsD,iBAAA3tM,YAgYPrW,EAAG0gN,oBAAoBjqM,gBAAkBzW,EAAG8V,YAAY3L,GA3XpEkvG,IACI,KAAI,GAAAxhG,KAAM7X,GAAA8+M,wBACN9+M,EAAO8+M,wBAAmBjnM,GAAA2jG,qBAAyBklG,EAAYllG,qBAC/Dx7G,EAAA0gN,oBAA0BvB,6BAAAn/M,EAAA8+M,wBAAAjnM,IAqYlC,QA/XIosM,GAAoBvD,GAiYpB,GAAI/tM,GA/XQtY,EAAIsY,QAAW,UAgYvB,4CA/X0Ctb,WAAM,EAAA+F,KAAA,MAiYpDuV,GAAQjT,OA/XOjB,KAAA,WAgYXo3H,EA/XmBouF,0BAAqBvD,EAAiC5kG,uBAAAr9G,KAAA,SAAAC,GAClD,MA+XfA,EA/XIlI,QAgYJuB,EA/XU2I,YAAA,UAAA,0CAAA,YAgYVkjN,EAAY5jN,EAAG25I,uBAAuBn+B,qBA7X3CnhH,EAAUwH,MAAK,QAAA,oCAAAxK,WAAA,EAAA+F,KAAA,UAkYnB,cAKP,QAAS8mN,GAAgCxD,GA9XzC,GAAA3/M,GAAS,yBAAqB2/M,EAAkB,SAAA,WAAA,UAAA,gBACxC/nM,GAAA+nM,EAAa,SAAsB,WAAA,UAAA,oCACvC/tM,EAAAtY,EAAiBsY,QAAY,UACzB5R,GAAA1J,WAAiB,EAAA+F,KAAY,MAiYjCuV,GA/XIjT,OAAAjB,KAAA,WACAo3H,EAAwBquF,gCAAoBxD,EAAiC5kG,uBAAKr9G,KAAA,SAAAC,GACjE,MAATA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWiY,EAAI,uBACtCzG,KAEAna,EAAA2I,YAAA,QAAA,oCAAArJ,WAAA,EAAA+F,KAAA,QAiYL,SA/XKuD,GAgYJ5I,EA/XO2I,YAAa,QAAA,4EAAArJ,WAAA,EAAA+F,KAAA,UAiYzB,cAGP,QAAS+mN,GAAwBzD,GAC7B,GAAIxgN,GAAa/F,EAAsBgG,sBACvCugN,GA/XOllG,mBAAAx7G,EAAA0gN,oBAAAvB,6BAAA3jG,mBAEHx7G,EAAA+S,WAiZA2tM,EAAoB/sM,WAAazT,EAAWG,OAC5Cw1H,EAA2BuuF,wBAAwB1D,GAAqBjiN,KAAK,SAAUC,GAC/EA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,yBA9X1D+vM,EAAA5jN,EAAA25I,uBAA6Bn+B,oBAChCx7G,EAAYgT,YAAA,EACXhT,EAAA+S,WAAa,EAgYL2E,MA7XA3f,EAAA2I,YAAY,QAAAhC,EAAAhJ,KAAAme,QAAA,yBAgYZ7T,EAAGgT,YAAa,IA5XxB,SAAArS,GACI5I,EAAQ2I,YAAW,+BAAKrJ,WAAA,EAAA+F,KAAA,WAgW5BsjN,EA/XiB5sM,UAAc5T,EAAMG,OAgYrCw1H,EA/XmBwuF,uBAA2B3D,GAAcjiN,KAAA,SAAAC,GACpDA,EAAAhJ,KAAAke,aAAA,GACA7b,EAAG2I,YAAa,UAAAhC,EAAAhJ,KAAAme,QAAA,yBAChB3B,IACAlS,EAAAgT,YAAA,EAgYA0E,MA7XA3f,EAAG2I,YAAa,QAAAhC,EAAAhJ,KAAAme,QAAA,yBAgYhB7T,EAAGgT,YAAa,IAGrB,SA/XCrS,GAgYA5I,EA/XI2I,YAAW,kCAsZvB,QAAS4jN,KACTtkN,EAAGsS,WA/XS,CAgYZ,IAEY0T,IAjYI7rB,EAAMgG,wBAkYV8rC,YAAY,iBAIpB4pF,GA/XWyuF,8BAAAt+L,GAAAvnB,KAAA,SAAAC,GAgYP,GA/Xe,MAAXA,EAAAlI,OAAW,CACXwJ,EAAG8Z,cAAYpb,EAAAhJ,KAgYfsK,EAAGsS,WAAY,CACf,IAAI2D,GAAInf,SAASijB,cAAc,IA9XpCjjB,UAAUC,KAAKijB,YAAA/D,GACdA,EAAAgE,MAAW,eACR,IAAArc,GAAY,GAAAC,OAAAa,EAAAhJ,OAgYPqI,KAAM,oBAENtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UA9X7BsD,EAAA2I,YAAA,UAAA,eAAA,mBACTwR,QAiYoBna,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OA/X/F4C,EAAAsS,WAAA,GAmYe,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OA/XjF4C,EAAAsS,WAAA,IAEL,GAAItS,GA9XIC,IAgYTD,GAAGqU,kBAAoBhJ,MAAS,IAAKA,MAAS,KAAMA,MAAS,KAAMA,MAAS,KAAMA,MAAS,MAC3FrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEhCrU,EAAGuU,YAAc,EA7XjBvU,EAAAwU,qBAAqB,SAAUC,GAC3BzU,EAAAuU,YAAIE,GAIRzU,EAAAgT,YAAO,EA+XPhT,EAAG+S,WA9XK,EA+XR/S,EAAGsS,WA9XQ,EA+XXtS,EAAGs6H,2BACHviI,EAAW2c,SAAU,EA7XrB1U,EAAG26H,gBAAA,EAgYH36H,EAAGq5G,sBA9XiBA,EA+XpBr5G,EAAGgU,OA9XCA,EA+XJhU,EAAG0R,OA9XCA,EA+XJ1R,EAAGkU,UA9XCA,EA+XJlU,EAAGopM,mBA9XaA,EA+XhBppM,EAAGikN,0BA9XqBA,EA+XxBjkN,EAAGkkN,gCA9XsBA,EA+XzBlkN,EAAGmkN,wBA9XsBA,EA+XzBnkN,EAAGu5I,kBA9XoBA,EA+XvBv5I,EAAG4jN,WAAWA,EACd5jN,EAAGskN,8BA9XoBA,EA+XvBtkN,EAAGwX,aAAc,EACjBxX,EAAGyX,WA9XI,EAkYPvF,IACAwlH,IA7XPkH,IACGn0H,EAAAkc,SAAA,SAAAxqB,EAAAyqB,GAgYQ,GAAIC,GAAQ,GAAIC,QAAO,gBA9X/BC,EAAAC,OAAAC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MACK,KAAON,EAAAje,KAAAme,GAkYA,MAjYP5qB,GAAWkB,iBAgYJtF,EAAW2I,YAAY,OAAQ,iCAAkC,mBAC1D,GAyEfk1H,EAAwBipF,uBAAuB9kN,EAAOhC,GAAY0G,KAAK,SAAUC,GA9X3D,MAAfA,EAAAlI,QACCwJ,EAAA8+M,wBAAuBpgN,EAAShJ,KAgYhCsK,EAAGsS,WAAY,GA7XnBva,EAAA2I,YAAwB,QAAA,yBAA2B,sBAiYpD,SA/XSC,GAgYR5I,EA/XW2I,YAAY,QAAA,mBAAA,uBAoY3BV,EAAGk7H,IA/XK,WAgYJl7H,EAAG0gN,oBAAoBjqM,gBAAkB,GACzCzW,EAAG0gN,oBAAoBvB,6BAA+B,GACtDn/M,EAAG0gN,oBAAoBt/F,wBAA0B,GA9XrDphH,EAAAq5G,qNAkPJjlH,QACKC,OAAO,8BACPe,WA9XW,0BAAAouN,MAuwBpB,WACI,YAOA,SAhYOe,GAAY95M,EAAA1S,EAAAyC,EAAAH,EAAAN,EAAAU,EAAAo7H,EAAA17H,EAAAy7H,EAAAE,EACfH,EAAe5jH,GAobf,QAASG,KAEL4jH,EAhYmB0uF,qBAAqB/lN,KAAA,SAAAC,GAiYjB,MAAfA,EAAIlI,QA/XTwJ,EAAAu6H,iBAAe77H,EAAAhJ,KAmYVsK,EAAGsS,WAAY,GA9XfjY,EAAIwH,MAAA,QAAgB,yBAAA,kBAkYzB,SAhYQlB,GAiYP5I,EAhYO2I,YAAA,QAAA,mBAAA,mBAmYXk1H,EAhYkB+sF,gBAAA5oN,EAAAhC,GAAA0G,KAAA,SAAAC,GACH,MAAXA,EAAAlI,QAiYIwJ,EAAGglM,gBAAkBtmM,EAAIhJ,KACzBsK,EAAGsS,WAAY,GA9XlBva,EAAA2I,YAAoB,QAAA,yBAAA,sBAkYtB,SAhYCC,GACA5I,EAAW2I,YAAG,QAAA,mBAAsB,uBAmYxCk1H,EAhYiBgtF,oBAAU7oN,EAAAhC,GAAA0G,KAAA,SAAAC,GAiYJ,MAAfA,EAAIlI,QA/XZwJ,EAAAgwI,oBAA2BtxI,EAAAhJ,KACnBsK,EAAAsS,WAAe,GAEfva,EAAG2I,YAAY,QAAA,yBAAA,sBAkYpB,SAhYKC,GAiYJ5I,EAAW2I,YAAY,QAAS,mBAAoB,uBAI5D,QAAS64I,KACL,GAAIt+I,IA/XRw/H,UAASz6H,EAAWklM,kBAAmBzqE,UAChCpkH,UAAArW,EAAAowI,sBAAgC/5H,WAE/B05E,GAiYAq3C,OAhYOzqI,KAAAqkB,UAAA/lB,GAkYX46H,GAA2B6tF,qBAAqB3zH,GAAMtxF,KAAK,SAAUC,GAC9C,MAAfA,EAAIlI,QACJwJ,EAAG2jN,mBAAqBjlN,EAAIhJ,KAC5BsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,sBA9XlE,SAAQC,GACJ5I,EAAG2I,YAAA,QAA0B,mBAAI,uBAoYzC,QAASm8I,KA/XN,GAAA5hJ,IACCihD,WAAWl8C,EAAA25I,uBAAqBn+B,oBAkY5BzrB,GACAq3C,OAAQzqI,KAAKqkB,UAAU/lB,GA9X5B66H,GAAkB2uF,wBAAA10H,GAAAtxF,KAAA,SAAAC,GACM,MAApBA,EAAAlI,QACAwJ,EAAA0kN,mBAAoBhmN,EAAAhJ,KACpBsK,EAAAsS,WAAoB,GAkYfva,EAAW2I,YAAY,QAAS,yBAA0B,sBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,uBAI5D,QAASkjN,GAhYMe,GAiYX3kN,EAAG4kN,4BACH9uF,EAhYWmF,uCAAA0pF,GAAAlmN,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,SAiYAwJ,EAAG4kN,yBAA2BlmN,EAAIhJ,KA/XvCsK,EAAAsS,WAAe,KAgZtB,QAhYQolH,KAiYJ/B,EAAmBsE,qBAAqBlgI,EAAOhC,GAAY0G,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QACJwJ,EAAGk6H,gBAAkBx7H,EAAIhJ,KACzBsK,EAAGsS,WAAY,GA9XlBva,EAAA2I,YAAwB,QAAA,yBAAA,iBAkY1B,SAhYKC,GAiYJ5I,EAhYI2I,YAAc,QAAA,mBAAoB,kBAsY9C,QAASk+H,KACL7sH,EAAe8D,mBAhYIpX,KAAiB,SAAAC,GACjB,MAgYXA,EAAIlI,QACJwJ,EAAG8V,YAhYQpX,EAAAhJ,KAiYXsK,EAAGsS,WAhYQ,GAkYXva,EAhYQ2I,YAAe,QAAA,yBAAkC,YAkY9D,SAhYSC,GAiYR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAM5D,QAhYQ24G,GAAoB96G,GAkYxB,GAAIyB,EAAGk/M,aAAaG,yBAA2Br/M,EAAGk/M,aAAazoM,gBAAiB,CAC5EzW,EAAGk/M,aAAaC,6BAA+B,KAC/Cn/M,EAAGk/M,aAAaF,gCAAkC,KAClDh/M,EAAGs6H,0BA/XX,IAASE,IACFC,UAAAz6H,EAAkBk/M,aAAAG,wBAAA5kF,UAClBpkH,UAAarW,EAAAk/M,aAAAzoM,gBAAAJ,UAEbu/G,GAAoB8E,4BAAAF,GAAA/7H,KAAA,SAAAC,GACF,MAAlBA,EAAAlI,QACAwJ,EAAAs/M,qBAAwB5gN,EAAAhJ,KACxBgJ,EAAAhJ,KAAsByF,OAAA,EACtB6E,EAAA26H,gBAAuB,EAGXtgI,EAAA8C,OAAA,UAAA,uBAAA9F,WAAA,EAAA+F,KAAA,OAkYH4C,EAAGsS,WAAY,EA/Xd/T,GACGA,KAGblE,EAAAwH,MAAsB,QAAA,yBAAA,8BAIrB7B,GAAA26H,gBAAkB,EAClB36H,EAAA46H,mBAAA,EAiYA56H,EAAGk/M,aAhYYC,6BAAA,KAiYfn/M,EAAGk/M,aAhYOF,gCAAA,KAiYVh/M,EAAGs/M,wBACHt/M,EAAGs6H,2BAKX,QAhYQQ,GAAyBtf,EAAAj9G,GACzBi9G,GAiYAx7G,EAAGs6H,2BACHt6H,EAAGk/M,aAAaF,gCAAkC,KAClDnpF,EAA2BkF,2CAA2Cvf,GAAoB/8G,KAAK,SAAUC,GAClF,MAAfA,EAAIlI,SACJwJ,EAAGs6H,wBAA0B57H,EAAIhJ,KAC7BsK,EAAGs6H,wBAAwBn/H,OAAS,GA/X/Cd,EAAY8C,OAAA,UAAA,yCAAA6C,EAAAk/M,aAAAC,6BAAAC,sBAAA/nN,WAAA,EAAA+F,KAAA,OACd4C,EAAA46H,mBAAwB,GAkYX56H,EAAG46H,mBAAoB,EA9XpC56H,EAAAsS,WAAc,EACF/T,GACZA,SAIHyB,EAAKs6H,2BACDt6H,EAAAk/M,aAAOF,gCAAiC,MAuYhD,QAAShrM,KACLhU,EAAGgT,WAAa3T,KAChBW,EAAG6kN,UAAW,EACd7kN,EAAGgT,YAAa,EA/XhBhT,EAAAk/M,gBACAl/M,EAAA26H,gBAAiB,EAiYjB36H,EAAG46H,mBAhYQ,EAiYX56H,EAAGklM,kBAhYQ,KAiYXllM,EAAGglM,mBACHhlM,EAAGowI,sBAAwB,KAC3BpwI,EAAGgwI,uBACHhwI,EAAG25I,uBAAyB,KAC5B35I,EAAG2jN,sBA/XP3jN,EAAAg9I,0BAAmC,KAiY/Bh9I,EAAG0kN,sBA/XH1kN,EAAAwX,aAAc,EAiYdxX,EAAGyX,WAhYC,EAmYR,QAhYQC,KAiYJ1X,EAAGgT,YAhYa,EAiYhBkB,IACAlU,EAAGk/M,gBACHhtM,IAEJ,QAASR,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eA/X3B,yFAiYKtb,WAAW,EACX+F,KAAM,MA7XlBuV,GAASjT,OAAAjB,KAAA,WACDuB,EAAAgT,YAAM,EACNkB,IACAlU,EAAAk/M,gBACAhtM,MAuYR,QAASgC,KACLlU,EAAG8kN,iBAhYS1wM,gBAmYhB,QAAS2wM,GAhYc7F,GAiYnBl/M,EAAGwX,aAAc,EACjBxX,EAhYGyX,WAAY,EAiYfzX,EAAG6kN,UAAW,EACd7kN,EAAG+S,WAAY,EA/XnB/S,EAAAgT,YAAS,EACLhT,EAAAk/M,aAAiB9qN,QAAA8e,KAAAgsM,EAkYjB,KAAK,GAAI/0M,KAAKnK,GAAGk6H,gBA/XTl6H,EAAAk6H,gBAAW/vH,GAAAswH,YAAAykF,EAAA8E,iBAAAvpF,YACfz6H,EAAAk/M,aAAoBG,wBAAuBr/M,EAAAk6H,gBAAA/vH,GAoY/C,KAAK,GAAI6rB,KAhYGh2B,GAAA8V,YAiYJ9V,EAAG8V,YAhYIkgB,GAAA3f,YAAa6oM,EAAA8E,iBAAA3tM,YAiYpBrW,EAAGk/M,aAhYCzoM,gBAAAzW,EAAA8V,YAAAkgB,GAoYZqjF,GAAsB,WAClByhB,EAA8BokF,EAAa1jG,mBAAoB,WA9X3D,IAAA,GAAA3jG,KAAW7X,GAAAs/M,qBAiYHt/M,EAAGs/M,qBAAqBznM,GAAG2jG,qBAAuB0jG,EAAa1jG,qBAC/Dx7G,EAAGk/M,aAAaC,6BAA+Bn/M,EAAGs/M,qBAAqBznM,GA/XhF7X,EAAA26H,gBAAA,EAGC,KAAI,GAAIz/H,KAAK8E,GAAAs6H,wBACTt6H,EAAAs6H,wBAAuBp/H,GAAW4gH,wBAAkBojG,EAAApjG,wBACpD97G,EAAAk/M,aAAeF,gCAAuBh/M,EAAAs6H,wBAAAp/H,GACnC8E,EAAA46H,mBAAa,OA4YhC,QAASoqF,GAAmB9F,GACxB,GAAIvsM,GAAUtY,EAAQsY,QAAQ,UA/X9B,4CACGtb,WAAY,EACX+F,KAAA,MAmYJuV,GAAQjT,OAhYIjB,KAAA,WAiYRq3H,EAAoBkvF,mBAAmB9F,EAAa7iG,gBAAgB59G,KAAK,SAAUC,GAC5D,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,mCAAoC,gBA/X9EkjN,EAAA5jN,EAAAg9I,0BAA2B2nE,wBAEnBtqN,EAAGwH,MAAA,QAAoB,6BACpBxK,WAAY,EACX+F,KAAI,UAoYjB,cAKP,QAAS6nN,GAhYkB/F,GAiYvB,GAAIn+M,GAAM,yBAhYEm+M,EAAA,SAAA,WAAA,UAAA,gBAiYRvmM,GAASumM,EAhYE,SAAA,WAAA,UAAA,6BAiYXvsM,EAhYQtY,EAAAsY,QAAW,UAiYnB5R,GAAO1J,WAhYI,EAAY+F,KAAA,MAkY3BuV,GAAQjT,OAAOjB,KAAK,WAChBq3H,EAhYkBmvF,yBAAA/F,EAAA7iG,gBAAA59G,KAAA,SAAAC,GACH,MAAXA,EAAAlI,QACGuB,EAAY2I,YAAA,UAAAiY,EAAA,gBAiYXzG,KAEAna,EAAW2I,YAAY,QAAS,+BAAiCrJ,WAAW,EAAM+F,KAAM,QAE7F,SAAUuD,GA/XhB5I,EAAA2I,YAAA,QAAA,uEAAArJ,WAAA,EAAA+F,KAAA,UAkYE,cAKP,QAAS8nN,GAAiBhG,GACtB,GAAIh/M,GAAa/F,EAAsBgG,sBAhY/C++M,GAAS1jG,mBAAwBx7G,EAAYk/M,aAAQC,6BAAyB3jG,mBAC1E0jG,EAAApjG,sBAAoC97G,EAAAk/M,aAAAF,gCAAAljG,sBAmY3B97G,EAAG+S,WA/WTmsM,EAAAvrM,WAAwBzT,EAAAG,OACxBy1H,EAASqvF,iBAAAjG,GAAAzgN,KAAA,SAAAC,GACAA,EAAAhJ,KAAAke,aAAA,GACG7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACZ+vM,EAAmB5jN,EAAAg9I,0BAAA2nE,uBACnB3kN,EAAAgT,YAAqB,EACrBhT,EAAA+S,WAA2B,EAC3B2E,MAEA3f,EAAoB2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iBACpB7T,EAAAgT,YAAuB,IAGvB,SAAYrS,GAkYHtG,EAAQwH,MAAM,QAAS,+BAAiCxK,WAAW,EAAM+F,KAAM,WAhaxF8hN,EAAkBprM,UAAY5T,EAAOG,OACrCy1H,EAAcsvF,gBAAgBlG,GAAAzgN,KAAA,SAAAC,GAkYjBA,EAAIhJ,KAAKke,aAAc,GAhYpC7b,EAAc2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACd3B,IACIlS,EAAAgT,YAAc,EAkYL0E,MA/XA3f,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iBACD7T,EAAAgT,YAAA,IAGZ,SAAiBrS,GACjBtG,EAAAwH,MAAoB,kCAyZvB,QAASwjN,KAhYLrlN,EAAAsS,WAAY,CACZ,IAEI0T,IAFa7rB,EAAoBgG,wBAGjC8rC,YAAW,iBAqYf6pF,GAAoBuvF,uBAAuBr/L,GAAWvnB,KAAK,SAAUC,GACjE,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAhY1BsK,EAAAsS,WAAO,CAkYJ,IAAI2D,GAAInf,SAASijB,cAAc,IAhYvCjjB,UAAAC,KAAoBijB,YAAA/D,GACZA,EAAAgE,MAAI,eACJ,IAAGrc,GAAA,GAAAC,OAAAa,EAAmBhJ,OAkYlBqI,KAAM,oBA/XPtJ,EAAAC,OAAYwlB,IAAAC,gBAAAvc,EAEfnD,GAAQ4E,KAAA5K,EAAM,UAkYdsD,EAAW2I,YAAY,UAAW,eAAgB,mBAhYvDwR,QAmYKna,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OAC3E4C,EAAGsS,WAAY,GAGpB,SAjYQ3R,GAkYP5I,EAjYO2I,YAAY,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OAkYnB4C,EAAGsS,WAjYI,IAtcf,GAAGtS,GAAAC,IAEHD,GAAGqU,kBAAiBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAiYpBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GA9XjCrU,EAAGuU,YAAS,EACZvU,EAAGwU,qBAAS,SAAAC,GACTzU,EAAAuU,YAAYE,GAGfzU,EAAGgT,YAAA,EACHhT,EAAG+S,WAAA,EACH/S,EAAGsS,WAAA,EACHva,EAAG2c,SAAW,EACd1U,EAAG26H,gBAAA,EACH36H,EAAG46H,mBAAc,EACjB56H,EAAGu6H,oBAkYHv6H,EAAG86H,8BAAgCA,EACnC96H,EAAGq5G,sBAAwBA,EA/X3Br5G,EAAAgU,OAAAA,EACAhU,EAAA0R,OAAAA,EACA1R,EAAAkU,UAAAA,EACAlU,EAAA+kN,iBAAkBA,EAiYlB/kN,EAAGglN,mBAAqBA,EACxBhlN,EAAGilN,yBAhYwBA,EAiY3BjlN,EAAGklN,iBAhYkBA,EAiYrBllN,EAAG4jN,WAhYYA,EAiYf5jN,EAAGu5I,kBAhYWA,EAiYdv5I,EAAG68I,qBAhYgBA,EAiYnB78I,EAAGqlN,uBAhYYA,EAiYfrlN,EAAGwX,aAAc,EACjBxX,EAAGyX,WAAY,EAGfvF,IACAwlH,IACAkH,IACAn0H,EAAOkc,SAAW,SAAUxqB,EAAOyqB,GAE/B,GAAIC,GAhYO,GAAAC,QAAY,gBAiYnBC,EAAMC,OAhYCC,aAAA9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MAiYX,KAAKN,EAhYGje,KAAQme,GAGZ,MA8XA5qB,GAAMkB,iBA/XPtF,EAAU2I,YAAK,OAAA,iCAAA,mBACd,GA6dRV,EAAGk7H,IAAM,WACLl7H,EAAGk/M,aAAazoM,gBAAkB,KA/XtCzW,EAAAk/M,aAASC,6BAAc,KACnBn/M,EAAAk/M,aAAeF,gCAAkC,KAkYjD3lG,uNAtJRjlH,QACKC,OAAO,8BACPe,WAAW,mBAAoBmvN,MAkdxC,WACI,YAOA,SAASe,GAjYiBvtN,EAAAyC,EAAAH,EAAAN,EAAA67H,EAAAC,EAAAC,EAAA6oF,EAAA8B,EAkYtB9qF,EAjYmB5jH,GAmbnB,QAASG,KAEL0sM,IAhYD5+M,EAAA+5H,sBACIC,oBAAa,UACb3xG,KAAA,MAmYC2xG,oBAAqB,WAhYzB3xG,KAAA,MAqYJ,QAASu2L,KACL,GAAI2G,EAhYR3vF,GAAmBipF,uBAAA9kN,EAAAhC,EAAAwtN,GAAA9mN,KAAA,SAAAC,GACI,MAAnBA,EAAAlI,QACQwJ,EAAA8+M,wBAAoBpgN,EAAAhJ,KAEpBsK,EAAGsS,WAAY,GAEfjY,EAAAwH,MAAW,QAAY,yBAAS,uBAmZ5C,QAjYQ61H,KAkYJ/B,EAAmBsE,qBAAqBlgI,EAAOhC,GAAY0G,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QACJwJ,EAAGk6H,gBAAkBx7H,EAAIhJ,KACzBsK,EAAGsS,WAAY,GA/XlBva,EAAA2I,YAAsB,QAAU,yBAAA,iBAErC,SAAOC,GACH5I,EAAG2I,YAAa,QAAA,mBAA+B,kBAuYvD,QAASk+H,KACL7sH,EAjYI8D,mBAAwBpX,KAAA,SAAAC,GACZ,MAARA,EAAIlI,QAkYJwJ,EAAG8V,YAjYIpX,EAAAhJ,KAkYPsK,EAAGsS,WAjYS,GAmYZva,EAjYW2I,YAAA,QAAA,yBAAA,YAmYhB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAM5D,QAAS24G,KACL,GAA4C,MAAxCr5G,EAAG++M,kBAAkBtoM,iBAAmE9gB,QAAxCqK,EAAG++M,kBAAkBtoM,iBAAwE,IAAxCzW,EAAG++M,kBAAkBtoM,gBAAuB,CACjJ,GAAI+jH,IAhYDC,UAAAz6H,EAAA++M,kBAAAM,wBAAA5kF,UACApkH,UAAArW,EAAA++M,kBAAiBtoM,gBAAAJ,UAEpBu/G,GAAgB8E,4BAA+BF,GAAA/7H,KAAA,SAAAC,GAC/B,MAAbA,EAAAlI,QACAwJ,EAAAs/M,qBAAuB5gN,EAAAhJ,KACvBgJ,EAAAhJ,KAAAyF,OAA0B,EAkYjB6E,EAAG26H,gBAAiB,GAEpB36H,EAAG26H,gBAAiB,EACpB36H,EAAG46H,mBAAoB,EAhYlC56H,EAAA66H,YAAA,EACD76H,EAAAm/M,6BAAoB,GACjBn/M,EAAAg/M,gCAA0B,GAC1Bh/M,EAAAi/M,yBAAa,GAChB5kN,EAAA8C,OAA2B,UAAA,uBACf9F,WAAW,EACZ+F,KAAA,OAEC4C,EAAAi/M,yBAA0B,MAoY9Bj/M,EAAGsS,WAjYI,GAGPjY,EAAIwH,MAAA,QAAA,yBAAA,8BAqYZ7B,GAjYG26H,gBAAA,EACH36H,EAAG46H,mBAAA,EACH56H,EAAG66H,YAAa,EAuYxB,QAASC,GAA8Btf,EAAoBj9G,GA/XvDs3H,EAAgBkF,2CAAAvf,GAAA/8G,KAAA,SAAAC,GACF,MAAXA,EAAAlI,SACAwJ,EAAAs6H,wBAAa57H,EAAAhJ,KACbsK,EAAAsS,WAAe,EACftS,EAAAs6H,wBAAiBn/H,OAAA,GACjBd,EAAA8C,OAAoB,UAAA,yCAAA6C,EAAAm/M,6BAAAC,sBACpB/nN,WAAoB,EACpB+F,KAAkB,OAElB4C,EAAA46H,mBAAsB,EACtB56H,EAAA66H,YAAyB,EACzB76H,EAAAi/M,yBAAqB,IAErBj/M,EAAA46H,mBAAqB,EAErB56H,EAAAsS,WAAY,EAkYH/T,GACAA,OA7XZyB,EAAGs6H,2BACHt6H,EAAAg/M,gCAAA,KAkYAh/M,EAAGu6H,oBAhYPv6H,EAAAi/M,yBAAkB,KAsYlB,QAAShkF,GAAuCnf,EAAuBv9G,GA/XnEu3H,EAAoBmF,uCAAYnf,GAAAr9G,KAAA,SAAAC,GAE5B,MAAAA,EAAAlI,SACGwJ,EAAAu6H,iBAAe77H,EAAAhJ,KAClBsK,EAAAu6H,iBAAAp/H,OAAA,GAkYQd,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAGg/M,gCAAgCA,iCAC7F3nN,WAAW,EACX+F,KAAM,OAEV4C,EAAG66H,YAAa,GA/XvB76H,EAAA66H,YAAY,EAoYT76H,EAAGsS,WAAY,EAhYlB/T,GACFA,OAGHyB,EAAGu6H,oBACHv6H,EAAGi/M,yBAAa,KAqYpB,QAjYQ1kE,GAAOpO,GAkYX,GAAIx5H,GAjYOtY,EAAAsY,QAAa,UAAA,+BAA6Cw5H,EAAAI,kBAkYjEl1I,WAAW,EACX+F,KAAM,MAGVuV,GAjYQjT,OAAGjB,KAAA,WAkYPuB,EAAGsS,WAjYI,CAmYP,IAAIrX,IAhYRugH,mBAAAx7G,EAAAm/M,6BAAA3jG,mBACAM,sBAAsB97G,EAAYg/M,gCAAAljG,sBAC9BO,eAAAr8G,EAAAi/M,yBAA2C5iG,eAkYvCh0F,KAAMroB,EAAG+wI,wBAAwB1oH,KAhYjCskH,cAAcR,EAAGh7C,KAkYjBq7C,aAjYWL,EAAAq5E,yBAmYf/E,GAjYelmE,eAAiBt/I,GAAAwD,KAAA,SAAAC,GAkYT,MAAfA,EAAIlI,QAA8B,GAAZkI,EAAIhJ,OAC1By2I,EAAUI,iBAAmB,KAhYjCx0I,EAAc2I,YAAG,UAAA,uBAAyB,YACtC6+M,KAmYJv/M,EAAGsS,WAjYQ,GAkYZ,WACCtS,EAAGsS,WAAY,KAEpB,WACCtS,EAAGsS,WAAY,IAKvB,QAASitM,KA/XTv/M,EAAAw/M,wBAoYI,IAAIrlI,IACAkiC,eAjYUr8G,EAAAi/M,yBAAA5iG,eAkYVP,sBAAuB97G,EAAGg/M,gCAAgCljG,sBAC1DN,mBAAoBx7G,EAAGm/M,6BAA6B3jG,mBAhYxDnzF,KAAQroB,EAAA+wI,wBAAwB1oH,KAoYhCs2L,GAjYuBzkI,yBAAuBC,GAAA17E,KAAA,SAAoCC,GAC3D,MAiYfA,EAjYIlI,QAkYJwJ,EAAGw/M,sBAjYI9gN,EAAAhJ,KAAAw7I,UAkYPlxI,EAAGsS,WAjYS,GAmYZva,EAjYQ2I,YAAM,QAAA,yBAAA,uBAmYnB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAGxD+/M,EAAwBE,uBAAuBxmI,GAAsB17E,KAAK,SAAUC,GAC7D,MAAfA,EAAIlI,SACJwJ,EAAGylN,sCAAwC/mN,EAAIhJ,KAAKkrN,sBAhYvD5gN,EAAAsS,WAAA,IAEL,SAAa3R,GACT5I,EAAU2I,YAAQ,QAAQ,mBAAA,iBAqYlC,QAjYQg6I,GAAAvO,GAoYJ,GADAA,EAAU50H,UAjYa40H,EAAY,UAAiBx2I,SAANw2I,EAAM50H,UAkY/C40H,EAjYO50H,SAAA,CAkYR,GAAItc,IACAugH,mBAjYex7G,EAAAm/M,6BAAqB3jG,mBAkYpCM,sBAAuB97G,EAAGg/M,gCAAgCljG,sBAhY3DO,eAAer8G,EAAAi/M,yBAAA5iG,eACdswB,cAAWR,EAAYh7C,KAkYvBq7C,aAAcL,EAAU8+D,gBAhY7B5iL,KAAAroB,EAAY+wI,wBAAA1oH,KAmYXo4L,GAAwBiF,oBAAoBzqN,GAAKwD,KAAK,SAAUC,GACxDA,EAAIhJ,KAAKke,aAAc,EACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,YA9XhE9b,EAAa2I,YAAqB,QAAGhC,EAAAhJ,KAAame,QAAA,YAmY1C7T,EAAGgT,YAAa,EAhYhBusM,IACJrtM,IACAi6H,EAAAK,aAAoB,IAkYjB,SAjYS7rI,GAkYR5I,EAjYI2I,YAAW,iCAoYvB,MAAOyrI,GAGX,QAASw5E,GAjYuBx5E,GAkY5BA,EAAUK,aAAe,GACzBL,EAAU50H,UAAW,EAGzB,QAAS7F,KACL1R,EAAGgT,YAAa,EAChBhT,EAAGm/M,6BAjYI,KAkYPn/M,EAAGg/M,gCAjY2B,KAkY9Bh/M,EAAGi/M,yBAjYqB,KAkYxBj/M,EAAG+wI,wBAjYkB,KAkYrB/wI,EAAG++M,kBAjYStoM,gBAAuB,KAkYnCzW,EAAG++M,kBAjYSM,wBAAc,KAkY1BnrM,IAGJ,QAASA,KACLlU,EAAG4lN,qBAjYoBxxM,gBAqY3B,QAASyxM,GAjYiBC,GAkYtB,GAAIC,KACJA,GAAiBvqG,mBAAqBx7G,EAAGm/M,6BAA6B3jG,mBACtEuqG,EAAiBjqG,sBAAwB97G,EAAGg/M,gCAAgCljG,sBAC5EiqG,EAAiB1pG,eAAiBr8G,EAAGi/M,yBAAyB5iG,eAC9D0pG,EAAiB19L,KAAOroB,EAAG+wI,wBAAwB1oH,KACnD09L,EAAiBD,oBAAsBA,CAhY3C,IAAAnzM,GAAStY,EAAAsY,QAAyB,UAC3B,4CACCtb,WAAa,EAkYT+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBgiN,EAAwBoF,0BAA0BE,GAAkBtnN,KAAK,SAAUC,GAC5D,MAAfA,EAAIlI,QAhYhBuB,EAAoB2I,YAAA,UAAuB,uBAA0B,wBACzDwR,IACDqtM,KAECxnN,EAAI2I,YAAS,QAAc,0BAC/BrJ,WAAc,EACZ+F,KAAQ,QAoYX,SAAUuD,GACT5I,EAjYU2I,YAAW,QAAA,kEAkYjBrJ,WAAW,EAhYf+F,KAAQ,UAoYb,cAKP,QAjYO89I,GAAe6qE,GAmYlB,GAjYI97M,GAAGjK,EAAAw/M,sBAkYHlrJ,GAAQ,CACZ,KAAK,GAAIp5D,KAAK+O,GAC8BtU,QAApCsU,EAAK/O,GAAGsqN,0BAA6E,MAApCv7M,EAAK/O,GAAGsqN,2BACzDlxJ,GAAQ,EA9XxB,IAAAA,EAAA,CAkYQ,GAAIyxJ,KACJA,GAAiBvqG,mBAAqBx7G,EAAGm/M,6BAA6B3jG,mBAjY9EuqG,EAAAjqG,sBAAA97G,EAAAg/M,gCAAAljG,sBACKiqG,EAAO1pG,eAAAr8G,EAAAi/M,yBAAA5iG,eACP0pG,EAAW19L,KAAAroB,EAAA+wI,wBAAwB1oH,IAoYhC,IAAIi/G,GAAOtnI,EAAGw/M,qBAhYlBuG,GAAoBD,sBAChB,KAAK,GAAA5qN,GAAA,EAAAA,EAAAosI,EAAAnsI,OAAAD,IAmYuCvF,QAApC2xI,EAAKpsI,GAAGsqN,yBACRO,EAAiBD,oBAAoBx+E,EAAKpsI,GAAGi2F,MAAQm2C,EAAKpsI,GAAGsqN,yBA9XrEO,EAASD,oBAAAx+E,EAAApsI,GAAAi2F,MAAA,EAGVsvH,GAAAuF,kBAAAD,GAAAtnN,KAAA,SAAAC,GACU,MAATA,EAASlI,SACVkI,EAAAhJ,KAAAke,aAAA,EACU7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,yBAEC9b,EAAG2I,YAAgB,QAAAhC,EAAAhJ,KAAAme,QAAA;AAG9B7T,EAAAgT,YAAuB,EACnBusM,MAKJ,SAAO5+M,GACP5I,EAAY2I,YAAA,iCAEZ4zD,GAAA,MAIAj6D,GAAA8C,OAAA,UAAuB,4BAAA9F,WAAA,EAAA+F,KAAA,OACvBk3D,GAAA,EA/BH,GAAIt0D,GAAKC,IA9XTD,GAAAqU,kBACIhJ,MAAI,IAmYJA,MAjYI,KAEJA,MAAI,KAmYJA,MAAS,KAETA,MAjYQ,MAmYZrL,EAAGsU,SAjYStU,EAAGqU,gBAAY,GAmY3BrU,EAAGuU,YAjYS,EAkYZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAjYGuU,YAAUE,GAoYjBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EAhYf/S,EAAAq7I,MAAS,EAkYTr7I,EAAGsS,WAjYW,EAkYdva,EAjYQ2c,SAAY,EAkYpB1U,EAAG26H,gBAAiB,EACpB36H,EAAG46H,mBAjYY,EAkYf56H,EAAG66H,YAjYa,EAkYhB76H,EAAGs7I,YAAa,EAChBt7I,EAAGimN,wBACHjmN,EAAGu8C,gBAEHv8C,EAAGu/M,iBAjYYA,EAkYfv/M,EAAG86H,8BAjYYA,EAkYf96H,EAAGi7H,uCAjYyCA,EAkY5Cj7H,EAAGq5G,sBAAwBA,EAC3Br5G,EAAG06I,SAjYIA,EAkYP16I,EAAG2lN,uBAjYgBA,EAkYnB3lN,EAAG0R,OAASA,EACZ1R,EAAGkU,UAAYA,EACflU,EAAG6lN,0BAA4BA,EAhY/B7lN,EAAAk7I,iBAAoBA,EAkYpBl7I,EAAGu6I,eAjYIA,EAmYProI,IACAwlH,IACAkH,IA6BA5+H,EAAGk7H,IAAM,WACLl7H,EAAG++M,kBAAkBtoM,gBAAkB,GAhY3CzW,EAAAm/M,6BAAuB,GACnBn/M,EAAAg/M,gCAAkC,GAkYlCh/M,EAAGi/M,yBAjYyB,GAkY5B5lG,iOAxFRjlH,QACKC,OAAO,8BACPe,WAAW,uBAjYGkwN,MA8yBvB,WACI,YAOA,SAlYIY,GAAAnuN,EAAAkC,EAAAO,EAAAH,EAAAN,EAAAQ,EAAAytE,EAAAp2D,EAAA0vC,EACA1G,EAAAg1B,EAAApuB,EAAArnD,EAAAM,GA4cA,QAAS0rN,GAlYGC,GAmYY,IAAhBA,EAjYApmN,EAAAqmN,0BAAwB3vG,gBAAA,aAA4BiB,cAAqB,IAsYzE33G,EAAGqmN,0BAlY6B3vG,gBAAA,aAAAiB,cAAA,IA0YxC,QAASzlG,KACDC,EACAsP,EAlYgBtP,IAqYhBnS,EAAG0hD,iBAAiB7/B,gBAAkB,KACtC7hB,EAAG2hB,gBAMX,QAASF,GAAoBtP,GACzBP,EAlYO8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QACAwJ,EAAA2hB,YAAAjjB,EAAoBhJ,KACpBsK,EAAAsS,WAAa,GAoYZva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAM5D,QAASk1G,KAELmB,IACAz1D,EAlYgB23B,uBAAWx6E,KAAA,SAAAC,GACL,MAkYdA,EAAIlI,QACJwJ,EAAG61G,cAAgBn3G,EAAIhJ,KACvBsK,EAAGsS,WAlYI,GAoYPva,EAlYO2I,YAAA,QAAA,yBAA2B,oBAoYvC,SAlYSC,GAmYR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAI5D,QAASw4E,KAEL48B,IAjYAx0D,EAAG43B,cAA0Bz6E,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,QACAwJ,EAAA+1G,YAAmBr3G,EAAAhJ,KACnBsK,EAAAsS,WAAA,GAoYKva,EAAW2I,YAAY,QAAS,yBAA0B,oBAE/D,SAAUC,GAjYjB5I,EAAS2I,YAAA,QAAA,mBAAuC,qBAsYhD,QAlYQy4E,KAoYJ68B,IACA10D,EAlYoB63B,wBAAkB16E,KAAA,SAAAC,GACtB,MAkYRA,EAAIlI,QACJwJ,EAAGi2G,WAlYWv3G,EAAAhJ,KAmYdsK,EAAGsS,WAAY,GAEfva,EAlYO2I,YAAA,QAAA,yBAAA,oBAoYZ,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAI5D,QAAS04E,KAhYL,GAAGn+E,IACAi7G,OAAAl2G,EAAAkiD,eAA2B75B,KAoY9B8tF,KACA70D,EAAsB83B,oBAAoBn+E,GAAKwD,KAAK,SAAUC,GAjY1C,MAAfA,EAAAlI,QACDwJ,EAAA+oD,eAAkBrqD,EAAQhJ,KAC1BsK,EAAAsS,WAAW,GAqYPva,EAAW2I,YAAY,QAAS,yBAA0B,oBAE/D,SAlYIC,GACH5I,EAAA2I,YAAA,QAAA,mBAAA,qBA0YR,QAASwvE,KAELlwE,EAAGsS,WAlYS,CAmYZ,IAAIpS,GAlYQ/F,EAAUgG,uBA4YlBiiD,EAAQpiD,EAAGkiD,eAAe75B,KAC1Bm6B,EAAa,KACb8jK,EAAiD,IAAtCtmN,EAAGumN,kBAAkBC,aAAsB,gBAAkBxmN,EAAGumN,kBAAkBE,WAAa,UAC1GC,EAAqD,IAAtC1mN,EAAGumN,kBAAkBC,aAAsBxmN,EAAGy2G,oBAAoBC,gBAAkB12G,EAAGumN,kBAAkBE,WAAa,OAsCzI,IAtaA,IAAAzmN,EAAA2mN,gBAAAC,YACG,KAAAxkK,EAmYKI,EAAaxiD,EAAGkiD,eAAeS,eAAiB,IAAM2jK,EAAU,UAAiBtmN,EAAG2mN,gBAAgBE,SAAW,6BAA+BH,EACxI,2CAA6CzsN,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,aAjYrF,KAAAZ,EACAI,EAAgBxiD,EAAGkiD,eAAAS,eAAyB,IAAA2jK,EAAA,UAAAtmN,EAAA2mN,gBAAAE,SAAA,6BAAAH,EAC5C,0CAA0BzsN,EAAgC,QAAA+F,EAAA+iD,KAAAC,KAAA,cACtC,KAApBZ,IACAI,EAASxiD,EAAAkiD,eAAwBS,eAAA,IAAA2jK,EAAA,UAAAtmN,EAAA2mN,gBAAAE,SAAA,6BAAAH,EAmYvB,8CAAqDzsN,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,eAhYtJ,KAAAb,IACQI,EAAIxiD,EAAWkiD,eAAKS,eAAA,IAAA2jK,EAAA,UAAAtmN,EAAA2mN,gBAAAE,SAAA,6BAAAH,EACjB,6CAAiCzsN,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,aAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,eAEjC,IAAAjjD,EAAA2mN,gBAAAC,aACH,KAAAxkK,EAmYAI,EAAaxiD,EAAG2mN,gBAAgBE,SAAW,IAAM7mN,EAAGkiD,eAAeS,eAAiB,2FAjY1E1oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,aACH,KAAAZ,EAmYPI,EAAaxiD,EAAG2mN,gBAAgBE,SAAW,IAAM7mN,EAAGkiD,eAAeS,eAAiB,0FAClC1oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAjYhE,KAAxBZ,IACQI,EAAIxiD,EAAW2mN,gBAAKE,SAAA,IAAA7mN,EAAAkiD,eAAAS,eAAA,8FACgC1oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,eAoY3C,KAATb,IAjYLI,EAAexiD,EAAA2mN,gBAAAE,SAAA,IAAA7mN,EAAAkiD,eAAAS,eAAA,mDAAA3iD,EAAAy2G,oBAAAC,gBACd,6CAAoDz8G,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,aAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,eAQ1CttD,QAAVqK,EAAAojD,cAAUpjD,EAAAojD,aAAAjoD,OAAA,EAAA,CAmYV,GAlYIkoD,KAmYJ,KAlYI,GAAAnoD,KAAA8E,GAAAojD,aACAC,EAAAxrD,KAAAmI,EAAAojD,aAAmBloD,GAAAooD,cAoYvBtjD,GAAGujD,KAlYCF,EAAA3vB,OAsYR,GAlYqB/9B,QAkYjBqK,EAAG82C,cAlY4B92C,EAAA82C,aAAM37C,OAAA,EAAA,CAmYrC,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aACbuM,EAAIxrD,KAlYGmI,EAAA82C,aAAA57C,GAAA8kB,OAoYXhgB,GAAGjC,KAlYEslD,EAAA3vB,OAuYT,GAlYsB/9B,QAkYlBqK,EAlYG69C,qBAAe79C,EAAA69C,oBAAA1iD,OAAA,EAAA,CAmYlB,GAlYIkoD,KAmYJ,KAAK,GAAInoD,KAAK8E,GAAG69C,oBACbwF,EAAIxrD,KAAKmI,EAAG69C,oBAAoB3iD,GAAG22B,cAhY9C7xB,GAAAwjD,YAAAH,EAAA3vB,OAuYG,GAA2B/9B,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CACpE,GAAIkoD,KAjYZ,KAAS,GAAAnoD,KAAS8E,GAAA29C,iBACX0F,EAAAxrD,KAAamI,EAAA29C,iBAAAziD,GAAAghD,WAEbl8C,GAAAyjD,SAAAJ,EAAA3vB,OAaP,GAAAz4B,IACQnF,UAAAkK,EAAA6hB,gBAAmB/rB,UACvB4tD,YAAiB/tD,QAAAqK,EAAAyjD,SAAwBzjD,EAAAyjD,SAAA,GACzCE,eAAiBhuD,QAAAqK,EAAAwjD,YAA2BxjD,EAAAwjD,YAAA,GAC5CI,QAAiBjuD,QAAjBqK,EAAiBjC,KAAoBiC,EAAAjC,KAAA,GACrCulD,cAA2B3tD,QAAVqK,EAAAujD,KAAUvjD,EAAAujD,KAAwB,GACnDnE,iBAAiBjlD,EAAsBgG,uBAAAwU,gBAAAs3B,YACnC3pB,YAAUtiB,EAAA6hB,gBAAgBS,YAC1BwhC,WAAA9jD,EAAA+jD,iBAAAD,WAmYAE,MAlYIrnD,KAAAqkB,UAAWhhB,EAAAqyB,KAmYfqd,SAlYUz1C,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAmYVrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cACpClE,SAAU/+C,EAAGikD,mBAAmB57B,KAjYpCyL,SAAQ5zB,EAAYi/C,UAChB+E,QAAA1B,EAmYAskK,WAlYY9mN,EAAAumN,kBAAgBC,aAmY5BniK,aAlYQrkD,EAAA2mN,gBAAuBC,WAmY/BG,cAlYQ/mN,EAAAqmN,wBAAA1uG,cAmYRqvG,eAlYQhnN,EAAAyiD,mBAAA4B,aAmYR4iK,mBAlYWjnN,EAAAknN,uBAAA9vG,aAmYX+vG,iBAlYQnnN,EAAWknN,uBAAqB7+L,KAwY5CunD,GAlYmBM,iBAAqBj1E,GAAAwD,KAAA,SAAAC,GAmYpC,GAlYmB,MAkYfA,EAlYIlI,OAAW,CAmYfwJ,EAAG8Z,cAlYOpb,EAAAhJ,KAmYVsK,EAAGsS,WAAY,CACf,IAAI2D,GAAInf,SAASijB,cAAc,IAjYpCjjB,UAAYC,KAAAijB,YAAA/D,GAmYPA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACrBqI,KAAM,oBAhYbtJ,EAAAC,OAAiBwlB,IAAAC,gBAAkBvc,EACxCnD,GAAA4E,KAAA5K,EAAA,UACIsD,EAAU2I,YAAA,UAAA,eAAA,mBACVwR,QAMA7X,GAAOwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OACP4C,EAAAsS,WAAmB,GAGvB,SAAA3R,GACA5I,EAAiB2I,YAAU,QAAA,4BAAwBrJ,WAAA,EAAA+F,KAAA,OAmY3C4C,EAAGsS,WAAY,IAoL3B,QAAS4/F,GAAchqD,GAjYvB,GAAAjtD,IACI6oD,WAAAnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACAhuD,UAAAoyD,EACAxY,SAAAz1C,EAAsB,QAAA+F,EAAA+iD,KAAcC,KAAK,cACrCrT,OAAQ11C,EAAA,QAAgB+F,EAAA+iD,KAAAE,GAAA,cAqYxBrtD,OAnYO,EAqYXqyD,GAnYQC,GAoY+B,IAAnCloD,EAAG6hD,yBAAyB9oC,KAlY7B9d,EAAA+oD,MAAUrnD,KAAKqkB,UAAAhhB,EAAAqyB,MAqYlB21C,EAAoBljB,UAAU7pD,GAAKwD,KAAK,SAAUC,GAC3B,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KAlYpBsK,EAAA8hD,kBAAwB,KAC7B9hD,EAAAk7C,QAAA//C,OAAA,GACAd,EAAA8C,OAAA,UAAA,kFACA9F,WAAsB,EACV+F,KAAA,OAIJ4C,EAAAsS,WAAW,GAEhBva,EAAe2I,YAAA,QAAA,yBAAA,0BAqYf,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAI5D,QAnYQg8C,GAAM5mD,GAoYV,GAnYIA,EAAW,CAoYX,GAAImF,IAlYR6oD,WAAAnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACAhuD,UAAAA,EAEQF,OAAG,EAqYgC,KAAnCoK,EAAG6hD,yBAAyB9oC,KAC5B9d,EAnYG+oD,MAAArnD,KAAAqkB,UAAAhhB,EAAAqyB,MAqYPivB,EAAsByD,cAAc9pD,GAAKwD,KAAK,SAAUC,GAlY1C,MAAfA,EAAUlI,QACTwJ,EAAW8V,YAAYpX,EAAAhJ,MAqYVsK,EAAG8V,YAAY3a,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,uCACtB9F,WAAW,EACX+F,KAAM,OA/X1B4C,EAAAsS,WAAA,GAEIjY,EAAawH,MAAA,QAAA,yBAAsB,mBAqYhC,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAMvD,QAASi7C,GAAqBhnD,EAAWugB,EAAW0mC,GAjYhD,GAAI1mC,GAAavgB,GAAAinD,EAAA,CACb,GAAA9/C,IACAoZ,UAAeA,EAoYX2mC,MAAOD,GAjYP9hD,GACA6oD,WAA+BnuD,QAAlBqK,EAAG+jD,iBAAgC/jD,EAAA+jD,iBAAgBD,WAAiB,GAoYjFhuD,UAnYMA,EAoYN45C,SAnYOz1C,EAAS,QAAK+F,EAAA+iD,KAAAC,KAAA,cACrBrT,OAAA11C,EAAgB,QAAA+F,EAAA+iD,KAAeE,GAAA,cAqY/BrtD,OAnYO,EACPsvD,UAAAvoD,KAAgBqkB,UAAA/jB,GAqYmB,KAAnC+C,EAAG6hD,yBAAyB9oC,KAlY5B9d,EAAA+oD,MAASrnD,KAAKqkB,UAAAhhB,EAAAqyB,MAqYlB21C,EAnYU7iB,eAAAlqD,GAAAwD,KAAA,SAAAC,GAoYa,MAAfA,EAAIlI,QAlYLwJ,EAAG47C,aAAgBl9C,EAAAhJ,MACbsK,EAAA47C,aAAKzgD,OAAA,GACdd,EAAgB8C,OAAA,UAAgB,qDAC1B9F,WAAA,EACC+F,KAAS,OAIhB4C,EAAAsS,WAAgB,GAqYZjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAnYClB,GAoYAtG,EAnYMwH,MAAA,QAAA,mBAAA,qBAwYlB,QAASu7C,KAEL,GAA2BznD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CAlYpE,GAAGk3B,KACH,KAAI,GAAAn3B,KAAM8E,GAAA29C,iBACVtrB,EAAKx6B,KAAImI,EAAK29C,iBAAiBziD,GAAAghD,WAqY/Bl8C,GAAGyjD,SAAWpxB,EAAIqB,MAlYlB,IAAGz2B,IAoYC+/C,MAAOh9C,EAAGglD,YAAYtJ,sBACtBrlC,UAAWrW,EAAG6hB,gBAAgBxL,UAC9B6lC,WAAYl8C,EAAGyjD,UAhYnBxoD,GACI6oD,WAA4BnuD,QAAhBqK,EAAA+jD,iBAAgB/jD,EAAA+jD,iBAAAD,WAAA,GAoY5BhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAlY/B45C,SAAWz1C,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAoYVrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAEpCrtD,OAAQ,EACRsvD,UAAWvoD,KAAKqkB,UAAU/jB,GAjYpB,KAAN+C,EAAAqlD,uBAAMtsC,KACV9d,EAAK+oD,MAASsB,qBAqYd0iB,EAAoBziB,kBAAkBtqD,GAAKwD,KAAK,SAAUC,GAlYrC,MAAlBA,EAAAlI,QAoYKwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KACzBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,gBAjYlE,SAAUC,GACV5I,EAAc2I,YAAG,QAAkB,mBAAA,kBA2Y3C,QAAS48C,GAAyBxnD,EAAWomD,EAAYrqB,GAErD,GAA8Bl8B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG69C,oBACbxrB,EAAIx6B,KAAKmI,EAAG69C,oBAAoB3iD,GAAG22B,cAEvC7xB,GAAGwjD,YAAcnxB,EAAIqB,MAjYrB,IAAAz2B,IACA+/C,MAAAh9C,EAAcglD,YAAGtJ,sBACjBrlC,UAAArW,EAAiB6hB,gBAAGxL,UACpB6lC,WAAal8C,EAAAyjD,SACb5xB,cAAmB7xB,EAAAwjD,aAGnBvoD,GACA6oD,WAAyBnuD,QAAbqK,EAAA+jD,iBAAa/jD,EAAA+jD,iBAAAD,WAAA,GACzBhuD,UAAUkK,EAAQ6hB,gBAAgB/rB,UAClC45C,SAAQz1C,EAAQ,QAAW+F,EAAK+iD,KAAIC,KAAA,cACpCrT,OAAU11C,EAAG,QAAA+F,EAAA+iD,KAAmBE,GAAA,cAEhCrtD,OAAS,EACTsvD,UAAevoD,KAAAqkB,UAAA/jB,GAEG,KAAlB+C,EAAAqlD,uBAAkBtsC,KAClB9d,EAAA+oD,MAAgBsB,qBAEhB0iB,EAAkBviB,WAAGxqD,GAAAwD,KAAA,SAAuBC,GAoYrB,MAAfA,EAAIlI,QACJwJ,EAAGizB,SAAWv0B,EAAIhJ,KAClBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,eAjYlE,SAAQC,GACJ5I,EAAG2I,YAAoB,QAAA,mBAAA,iBA+YnC,QAAS+8C,KAEL,GADAiyC,IACuB/5F,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIk3B,KACJ,KAnYK,GAAAn3B,KAAA8E,GAAA82C,aACDzkB,EAAAx6B,KAAQmI,EAAA82C,aAAe57C,GAAA8kB,OAqY3BhgB,GAAG2lD,KAAOtzB,EAAIqB,MACd,IAAIz2B,IAlYJ+/C,MAAUh9C,EAAAglD,YAAKtJ,sBACXrlC,UAAWrW,EAAA6hB,gBAAYxL,UACvB6lC,WAAGl8C,EAAYyjD,SAoYf5xB,cAAe7xB,EAAGwjD,YAClBxjC,OAAQhgB,EAAG2lD,KAEX5G,SAAW/+C,EAAGikD,mBAAmB57B,KAAK6f,OAAUloC,EAAGikD,mBAAmB57B,KAAO,MAG7EptB,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9B45C,SAAUz1C,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cACxCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAEpCrtD,OAAQ,EACRsvD,UAAWvoD,KAAKqkB,UAAU/jB,GAjYjB,KAAb+C,EAAAqlD,uBAAatsC,KACb9d,EAAA+oD,MAAcsB,qBAEd0iB,EAAmBpiB,WAAA3qD,GAAewD,KAAG,SAAAC,GACnB,MAAdA,EAAAlI,QACAwJ,EAAAm+C,SAAgBz/C,EAAAhJ,MACVsK,EAAAm+C,SAAAhjD,OAAA,EACC6E,EAAA6lD,cAAc,EAEf7lD,EAAA6lD,cAAA,GAsYF9tD,EAnYE2I,YAAA,QAAA,mCAA6D,WAEvE,SAAaC,OAwYrB,QAnYQmlD,GAAkB/sC,GAoYtB,GAAI9d,IACAnF,UAnYUijB,EAsYd6hC,GAnYcgC,qBAAA3hD,GAAAwD,KAAA,SAA4CC,GAC3C,MAmYPA,EAnYGlI,QACHwJ,EAAAgmD,aAAgBtnD,EAAAhJ,MAoYXsK,EAnYCgmD,aAAA7qD,OAAA,EAoYFd,EAAQ8C,OAAO,UAAW,6DAlY9B9F,WAAc,EACd+F,KAAa,OAuYT4C,EAAGmmD,eAAgB,EAEvBnmD,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAnYKlB,GACJtG,EAAKwH,MAAS,QAAG,mBAAc,oBAqYnC7B,EAAGy2G,oBAAoB,KACvBz2G,EAAG+jD,iBAnYe,KAoYlB/jD,EAAGglD,YAAa,KAMpB,QAAS0qC,KACL1vF,EAAGm+C,YACHn+C,EAAGojD,aAnYe,KA0YtB,QAnYQgD,GAASC,GAqYb,GAAIA,EAASC,sBAAuB,CAlYhC,GAAGE,GAAA,QAAkBC,EAAAJ,EAAAK,QAAA,GAoYjBC,EAAiBnsD,EAAO6P,KAAKrK,EAAG6vF,iBAAmBpoC,SAAYjB,GACnEhsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAAUC,GACjCA,EAAEY,WAAajB,IACfK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAAUxrB,SAAY+qB,EAASC,sBAAsBS,YAQrG/mD,EAAGqyB,KACCp1B,UAEJ,KAAK,GAAI/B,KAAK8E,GAAG4mD,YACT5mD,EAAG4mD,YAAY1rD,GAAGorD,wBAClBtmD,EAAGqyB,IAAIp1B,OAAO+C,EAAG4mD,YAAY1rD,GAAGwrD,QAAU1mD,EAAG4mD,YAAY1rD,GAAGorD,sBAAsBS,YA7X1FC,KA2YR,QAnYQC,GAAeC,GAoYnBF,GACA,IAnYI/rD,IACAnF,UAAQkK,EAAA+jD,iBAAmBjuD,UAC3BguD,WAAU9jD,EAAG+jD,iBAAmBD,WAqYpCtC,GAnYa6J,iBAAApwD,GAAAwD,KAAA,SAAAC,GACT,GAAe,MAAfA,EAAAlI,OAAe,CACfwJ,EAAAq+C,OAAc1hD,KAAGC,MAAA8B,EAAAhJ,KAAgBgK,QACjCM,EAAAsrD,WAAkB9wD,EAAA+wD,KAAAvrD,EAAAq+C,OAAwB2F,OAAA0C,OAC1C1mD,EAAA+lD,uBACA,IAAAqB,KACA5sD,GAAAqI,QAAkB7C,EAAGq+C,OAAA2F,MAAA,SAAuB6C,GAoYpC,GAAI/N,IACAuO,KAAMR,EAAEQ,KACRX,OAAQG,EAAEH,OACVI,OAAsB,UAAbD,EAAEH,OAAsBG,EAAEC,UAjYnDM,GAAAvvD,KAAyBihD,GACb94C,EAAA4mD,YAAgBQ,IAEpBpnD,EAAG+lD,qBAAYqB,EACfpnD,EAAAsS,WAAU,MAqYVva,GAnYU2I,YAAG,QAAA,yBAAA,SAsYjB,SAnYQC,GAoYJ5I,EAnYI2I,YAAW,QAAA,mBAAA,UAwY3B,QAASgR,KAEL1R,EAAG6hB,gBAnYS,KAoYZ7hB,EAAGumN,kBAnYmB,KAoYtBvmN,EAAG2mN,gBAnYS,KAoYZ3mN,EAAGkiD,eAnYa,KAoYhBliD,EAAGknN,uBAnYwB,KAoY3BlnN,EAAGy2G,oBAAqB,KACxBz2G,EAAG+jD,iBAAkB,KACrB/jD,EAAGglD,YAAY,KAKnB,QAASsC,GAAiBJ,EAAMb,GAC5BrmD,EAAGumD,aACHvmD,EAAG+lD,oBAEH,IAAIS,GAnYK,QAAAC,EAAAJ,EAAAK,QAAA,GAoYLC,EAnYYnsD,EAAM6P,KAASrK,EAAAq+C,OAAA2F,OAoY3B0C,OAnYOF,GAqYXhsD,GAAOqI,QAAQ7C,EAAG+lD,qBAAsB,SAAUc,GAlY9CA,EAAAH,SAAeF,IACXK,EAAAC,OAAWtsD,EAAAyC,OAAY0pD,EAASG,QAC7BxrB,SAAY4rB,EAAAZ,sBAAAS,YA0Y3B,QAASN,GAAUc,GACf,MAAO3gD,UAAS2gD,EAAWjkC,UAAU,IAGzC,QAASkkC,KAlYTxnD,EAAAukD,aAoYI,KAAK,GAAIrpD,KAAK8E,GAAG+lD,qBAAsB,CAlYnC,GAAA9qD,IACAwsD,SAAaznD,EAAG+lD,qBAAoB7qD,GAAAmsD,KACpCK,SAAW1nD,EAAA+lD,qBAAA7qD,GAAAwrD,OAEX1mD,GAAAukD,WAAQ1sD,KAAQoD,IAuYxB,QAnYI+rD,KACAxsD,EAAOqI,QAAA7C,EAAA+lD,qBAAgC,SAAGM,GACtCA,EAAIC,sBAA0B,OAmatC,QAASltC,GAAS1jB,GACd,GAnYI2jB,GAAA3jB,EAAA2jB,KAoYA9iB,EAnYIb,EAAQa,IAoYhB,OAnYe,QAmYRA,IAnY0B,IAAlB8iB,EAAcC,UAAI,IAAAD,EAAAC,UA0arC,QAnYQC,GAAA7jB,GAoYJ,GAAI2jB,GAnYI3jB,EAAQ2jB,KAoYZ9iB,EAAOb,EAnYIa,IAoYf,IAnYY,QAmYRA,EAGA,IAAK,GAFDijB,GAnYQ,GAAQC,MAAAJ,GAAOK,SAAW,EAAA,EAAA,EAAA,GAqY7Bxe,EAAI,EAnYGA,EAAA8E,EAAM2Z,OAAAxe,OAAAD,IAAA,CAoYlB,GAAI0e,GAAa,GAAIH,MAAKzZ,EAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EAlYf,MAAG5Z,GAAA2Z,OAAYze,GAAA1E,OAuY3B,MAnYO,GAkaX,QAASmxD,KACL,GAnYwB,KAApB3nD,EAAAkiD,eAAA75B,KAAoB,CAoYpBroB,EAAG+iD,KAnYKE,GAAI7uD,QAAA8e,KAAWlT,EAAK+iD,KAAAC,KAoY5B,IAAI4E,GAnYO,CAoYX5nD,GAAG+iD,KAnYKE,GAAGznC,QAAAxb,EAAA+iD,KAAYE,GAAAjnC,UAAA4rC,OAEQ,KAmY1B5nD,EAnYGkiD,eAAW75B,OAoYnBroB,EAAG+iD,KAAKE,GAAK,IAQrB,QAAS4E,KAjYT,GAAkC,KAAlC7nD,EAASkiD,eAAA75B,KAAyB,CAoY1BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAlYlC,IAAG8E,GAAA,CACH9nD,GAAA+iD,KAAIE,GAAM8E,SAAA/nD,EAAA+iD,KAAAE,GAAA9R,WAAA2W,GACV9nD,EAAA+iD,KAAKE,GAAIznC,QAAQxb,EAAA+iD,KAAAE,GAAAjnC,UAAqB,OAqYP,KAA1Bhc,EAAGkiD,eAAe75B,OAlYvBroB,EAAG+iD,KAAAE,GAAA,IAyYX,QAAS+E,KAEL,GAA8B,KAA1BhoD,EAAGkiD,eAAe75B,KAAa,CAlY/BroB,EAAA+iD,KAAIE,GAAM7uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,KAoYV,IAnYI8E,GAAgB,CAoYpB9nD,GAAG+iD,KAnYCE,GAAA8E,SAAc/nD,EAAA+iD,KAAAE,GAAA9R,WAAgB2W,GAoYlC9nD,EAAG+iD,KAnYCE,GAAAznC,QAAUxb,EAAQ+iD,KAAAE,GAAQjnC,UAAQ,OAG1B,KAARhc,EAAAkiD,eAAQ75B,OAoYZroB,EAAG+iD,KAnYCE,GAAA,IA6YZ,QAASgF,GAnYOC,GAqYZ,GAAIhoD,GAnYa/F,EAAKgG,uBAoYlBlF,GACAmF,SAAUF,EAAWi/C,UACrBrpD,UAAWoyD,EAEf5G,GAnYO2G,aAAAhtD,GAAAwD,KAAA,SAAAC,GAoYgB,MAAfA,EAAIlI,QACJwJ,EAAGmoD,qBAAuBzpD,EAAIhJ,KAC9BsK,EAAGsS,WAAY,EAGftS,EAAGooD,sBACHpoD,EAAG4tC,gBAlYN5tC,EAAAgiD,gBAAe,KACpBhiD,EAAA+hD,2BAAA,MAIQhqD,EAAS2I,YAAG,QAAgB,yBAAA,qBAqYjC,SAnYIC,GACH5I,EAAI2I,YAAS,QAAA,mBAAA,sBAwYrB,QAAS8nD,KACL,GAAItoD,GAAa/F,EAAsBgG,uBACnClF,GACAmF,SAAUF,EAAWi/C,UACrBrpD,UAAWkK,EAAG6hB,gBAAgB/rB,UAlY9B42C,cAAU1sC,EAAA8hD,kBAAApV,cAqYd4U,GAnYsBkH,aAAAvtD,GAAgBwD,KAAA,SAAAC,GACpB,MAAVA,EAAAlI,QACAwJ,EAAAooD,mBAAwB1pD,EAAGhJ,KAoY3BsK,EAAGsS,WAAY,GAjYfva,EAAW2I,YAAK,QAAU,yBAAA,kBAqY/B,SAnYQC,GAoYP5I,EAnYQ2I,YAAQ,QAAA,mBAAA,mBAwYxB,QAAS+nD,GAnYWP,EAAIQ,GAoYpB,GAAIxoD,GAnYY/F,EAAkBgG,uBAqY9BlF,GACAmF,SAAUF,EAAWi/C,UACrBrpD,UAnYWoyD,EAoYXxb,cAnYQgc,EAsYZpH,GAAsBmH,WAAWxtD,GAAKwD,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,QACJwJ,EAAG4tC,aAAelvC,EAAIhJ,KACtBsK,EAAGsS,WAAY,EAjYb,GAAAtS,EAAA8hD,kBAAApV,eACN8b,IAKIxoD,EAAGgiD,gBAAe,MAqYlBjqD,EAnYI2I,YAAe,QAAW,yBAAA,kBAqYnC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAM5D,QAASioD,GAnYMT,EAAAU,GAoYX,GAAI1oD,GAnYY/F,EAAegG,uBAE5BlF,GACCmF,SAAQF,EAAMi/C,UAoYdrpD,UAAWoyD,EAlYZhM,WAAA0M,EAsYHtH,GAAsBqH,YAAY1tD,GAAKwD,KAAK,SAAUC,GAC/B,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KACxBsK,EAAGsS,WAAY,GAjYlBva,EAAY2I,YAAA,QAAA,yBAAA,kBAEd,SAAAC,GAoYC5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAO5D,QAnYIq2G,KACA/2G,EAAAumN,kBAAa,KAoYbzwG,IAEJ,QAnYQA,KAoYJ91G,EAAG2mN,gBAnYW,KAoYd3mN,EAAG+1G,eACHC,IAEJ,QAASA,KACLh2G,EAAGkiD,eAAiB,KACpBliD,EAAGi2G,cACHE,IAEJ,QAnYQA,KAoYJn2G,EAAGknN,uBAnYa,KAoYhBlnN,EAAG+oD,kBAjrCP,GAAI/oD,GAAKC,IAjYTD,GAAAsU,SAAS,KAmYTtU,EAAG47C,gBACH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGgT,YAlYK,EAmYRhT,EAAG+S,WAlYW,EAmYd/S,EAAGsS,WAlYI,EAmYPtS,EAAGkwE,iBAlYKA,CAmYR,IAAI/9D,GAlYUhY,EAAAgG,uBAAAwU,gBAAAxC,SAmYdnS,GAAGyhB,oBAAsBA,EACzBzhB,EAAGm+C,YACHn+C,EAAGyhB,oBAAsBA,EAjYzBzhB,EAAAkyG,cAASA,EAmYTlyG,EAAGioD,aAlYKA,EAmYRjoD,EAAG08C,oBAlYCA,EAmYJ18C,EAAG88C,qBAlYaA,EAmYhB98C,EAAGo9C,yBAlYYA,EAmYfp9C,EAAGs9C,yBAA2BA,EAC9Bt9C,EAAGy9C,aAlYYA,EAmYfz9C,EAAG8lD,qBAlYYA,EAmYf9lD,EAAGinD,mBAlYiBA,EAmYpBjnD,EAAGsnD,iBAAmBA,EACtBtnD,EAAGwnD,cAAgBA,EACnBxnD,EAAGymD,UAAYA,EACfzmD,EAAGomD,YAAcA,EACjBpmD,EAAG2nD,iBAAmBA,EACtB3nD,EAAG41G,kBAAoBA,EAjYvB51G,EAAGk5E,YAAMA,EAmYTl5E,EAAGm5E,sBAlYsBA,EAmYzBn5E,EAAGo5E,oBAlYIA,EAmYPp5E,EAAG6nD,aAlYIA,EAmYP7nD,EAAGgoD,gBAlYIA,EAmYPhoD,EAAGyoD,WAlYCA,EAmYJzoD,EAAGwoD,aAAeA,EAClBxoD,EAAG2oD,YAAcA,EACjB3oD,EAAGmmN,YAAcA,EACjBnmN,EAAG+iD,QACH/iD,EAAG+2G,eAAiBA,EAjYpB/2G,EAAA81G,iBAAmBA,EAmYnB91G,EAAGg2G,iBAlYCA,EAmYJh2G,EAAGm2G,oBAlYaA,EAmYhBn2G,EAAG0R,OAAQA,EAIX1R,EAAG6hD,2BAA8B9oC,GAAI,IACrC/Y,EAAGqlD,yBAlYmBtsC,GAAA,IAqYtBhhB,EAAW2c,SAAU,EACrBxC,IA/XAlS,EAAAu7C,eAASC,aAAc,MAAAnzB,KAAA,KAAAmzB,aAAA,UAAAnzB,KAAA,MAAAmzB,aAAA,WAAAnzB,KAAA,MAoYvBroB,EAAG6oD,iBAlYanG,eAAgB,WAAA2B,aAAA,MAmY9B3B,eAlYa,eAAkB2B,aAAA,MAmY/B3B,eAlYa,OAAA2B,aAAY,MAmYzB3B,eAlYa,OAAA2B,aAAA,MAsYfrkD,EAAGm7C,aACGg8D,eAAgB,eAAgBC,aAAc,MAEpDp3G,EAAGonN,sBAAyBC,YAAa,eAAgBC,UAAW,MAClED,YAAa,eAAgBC,UAAW,MACxCD,YAAa,UAAWC,UAAW,MA6QrCtnN,EAAG2vF,YAlYC,WAoYA,GAlYIzvF,GAAY/F,EAAAgG,uBA4YZiiD,EAlYQpiD,EAAAkiD,eAAS75B,KAmYjBm6B,EAlYQ,KAmYR8jK,EAlYW,IAAAtmN,EAAAumN,kBAAAC,aAAA,eAAAxmN,EAAAumN,kBAAAE,WAAA,SAqChB,IA+VuC,IAAlCzmN,EAAG2mN,gBAAgBC,YACN,KAATxkK,EAjYAI,EAAGxiD,EAAakiD,eAAAS,eAAA,IAAA2jK,EAAA,UAAAtmN,EAAA2mN,gBAAAE,SAAA,6BAAA7mN,EAAAy2G,oBAAAC,gBAChB,2CAAAz8G,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,aAmYgB,KAATZ,EACPI,EAAaxiD,EAAGkiD,eAAeS,eAAiB2jK,EAAU,UAAiBtmN,EAAG2mN,gBAAgBE,SAAW,6BAA+B7mN,EAAGy2G,oBAAoBC,gBACzJ,0CAA4Cz8G,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAChE,KAATZ,IAjYZI,EAAexiD,EAAAkiD,eAAAS,eAAA,IAAA2jK,EAAA,UAAAtmN,EAAA2mN,gBAAAE,SAAA,6BAAA7mN,EAAAy2G,oBAAAC,gBACd,8CAAuBz8G,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,eAEnB,KAAAb,IAmYAI,EAAaxiD,EAAGkiD,eAAeS,eAAiB,IAAM2jK,EAAU,UAAiBtmN,EAAG2mN,gBAAgBE,SAAW,6BAA+B7mN,EAAGy2G,oBAAoBC,gBAC/J,6CAA+Cz8G,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,aAAe,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,eAhYrH,IAAlBjjD,EAAA2mN,gBAAkBC,aAClB,KAAAxkK,EAmYAI,EAAaxiD,EAAG2mN,gBAAgBE,SAAW,IAAM7mN,EAAGkiD,eAAeS,eAAiB,2FACjC1oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,aACjE,KAATZ,EACPI,EAAaxiD,EAAG2mN,gBAAgBE,SAAW,IAAM7mN,EAAGkiD,eAAeS,eAAiB,0FAClC1oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAChE,KAATZ,IAjYdI,EAAAxiD,EAAA2mN,gBAAAE,SAAA,IAAA7mN,EAAAkiD,eAAAS,eAAA,8FACT1oD,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,eAoYyB,KAATb,IAlYhBI,EAAAxiD,EAAA2mN,gBAAAE,SAAA,IAAA7mN,EAAAkiD,eAAAS,eAAA,mDAAA3iD,EAAAy2G,oBAAAC,gBACY,6CAAAz8G,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,aAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,eAQUttD,QAAfqK,EAAAojD,cAAepjD,EAAAojD,aAAAjoD,OAAA,EAAA,CACf,GAAAkoD,KACA,KAAA,GAAAnoD,KAAkB8E,GAAAojD,aAClBC,EAAaxrD,KAAAmI,EAAAojD,aAAAloD,GAAAooD,cAEbtjD,GAAAujD,KAAYF,EAAA3vB,OAIZ,GAAW/9B,QAAXqK,EAAA82C,cAAW92C,EAAA82C,aAAA37C,OAAA,EAAA,CACX,GAAAkoD,KACA,KAAA,GAAAnoD,KAAgB8E,GAAA82C,aAChBuM,EAAAxrD,KAAemI,EAAA82C,aAAA57C,GAAA8kB,OAEfhgB,GAAAjC,KAAAslD,EAAA3vB,OAKA,GAAqB/9B,QAArBqK,EAAA69C,qBAAqB79C,EAAA69C,oBAAA1iD,OAAA,EAAA,CACrB,GAAAkoD,KACA,KAAA,GAAAnoD,KAAgB8E,GAAA69C,oBAChBwF,EAAYxrD,KAAAmI,EAAA69C,oBAAA3iD,GAAA22B,cAEZ7xB,GAAAwjD,YAAmBH,EAAA3vB,OAKnB,GAAe/9B,QAAfqK,EAAA29C,kBAAe39C,EAAA29C,iBAAAxiD,OAAA,EAAA,CACf,GAAAkoD,KACA,KAAA,GAAanoD,KAAA8E,GAAA29C,iBACb0F,EAAAxrD,KAAemI,EAAA29C,iBAAAziD,GAAAghD,WAEfl8C,GAAAyjD,SAAcJ,EAAA3vB,OAgZb,GAAIz4B,IAlYRnF,UAAWkK,EAAU6hB,gBAAA/rB,UACrB4tD,YAAA/tD,QAAAqK,EAAAyjD,SAAAzjD,EAAAyjD,SAAA,GAoYQE,eAAmChuD,QAAlBqK,EAAGwjD,YAA4BxjD,EAAGwjD,YAAc,GACjEI,QAAqBjuD,QAAXqK,EAAGjC,KAAqBiC,EAAGjC,KAAO,GAlYjDulD,cAAgC3tD,QAAdqK,EAAAujD,KAA2BvjD,EAAAujD,KAAQ,GAoYhDnE,iBAAkBjlD,EAAsBgG,uBAAuBwU,gBAAgBs3B,YAlYpF3pB,YAAkBtiB,EAAE6hB,gBAAgBS,YACrCwhC,WAAgB9jD,EAAA+jD,iBAAgBD,WAChCE,MAAArnD,KAAgBqkB,UAAQhhB,EAAAqyB,KACxBqd,SAAgBz1C,EAAQ,QAAA+F,EAAA+iD,KAAcC,KAAA,cAoYhCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cACpClE,SAAU/+C,EAAGikD,mBAAmB57B,KAChCyL,SAAU5zB,EAAWi/C,UAlY1B+E,QAAa1B,EACVskK,WAAA9mN,EAAgBumN,kBAAgBC,aAoY9BniK,aAAcrkD,EAAG2mN,gBAAgBC,WAlYtCG,cAAA/mN,EAAuBqmN,wBAAe1uG,cACvCqvG,eAAahnN,EAAAyiD,mBAA2B4B,aACxC4iK,mBAAwBjnN,EAAAknN,uBAAW9vG,aAoY7B+vG,iBAAkBnnN,EAAGknN,uBAAuB7+L,KAMhDunD,GAnYOM,iBAA6Bj1E,GAAAwD,KAAA,SAAiBC,GAoYjD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAlYxBsK,EAAAsS,WAAA,CACA,IAAArX,IAoYKuF,QAASN,EAAWM,QACpBk/C,KAAM1/C,EAAG8Z,cACT6lC,WAAW,GAEXvgD,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAlYhBC,gBAAA,aACRrK,YAAW,8DACXE,WAAoB,kBAoYZC,aAAc,KAlYrB+H,KAAA,KACEoC,SAAA,SACAC,UAAc,EAoYTyQ,SACI3N,MAAO,WACH,MAAOtH,MA9XnBmE,GAAIM,OAAgBjB,KAAA,SAAAC,KAEjB,kBAyYHrE,GAAQwH,MAAM,QAAS,0BAA4BxK,WAAW,EAAM+F,KAAM,OAC1E4C,EAAGsS,WAAY,GAGnB,SAAU3R,GAlYT5I,EAAA2I,YAAoB,QAAA,4BAAArJ,WAAA,EAAA+F,KAAA,OACzB4C,EAAAsS,WAAA,KAsyBJtS,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAnYIjB,EAoYJkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,EAAG2a,aACCC,aAnYcxB,EAoYd+C,WAnYQ,KAoYRtB,QAnYQ,GAAApB,MAAA,KAAW,EAAA,IAoYnBgB,QAAS,GAAIhB,MACbqB,YAnYQ,GA6YZ9a,EAAG+a,UAAY,WACX/a,EAAGua,cAAcE,QAnYGza,EAAAua,cAAWE,QAAA,KAAA,GAAAhB,MAoY/BzZ,EAAG2a,YAAYF,QAnYKza,EAAMua,cAAAE,SAsY9Bza,EAAG+a,YAEH/a,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAnYE,CAoYA,IAAI4K,OAIpBzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,EAAGwb,QAAU,SAAUC,EAAMC,EAAOC,GAlYhC3b,EAAAsa,GAAI,GAAAb,MAAagC,EAAAC,EAAaC,IAsYlC3b,EAAG4b,SAnYS,eAAO,aAAA,aAAA,aAoYnB5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAnYe,cAsYlB9b,EAAGmb,QACCtM,QAnYQ,GAsYZ7O,EAAGib,QACCpM,QAAQ,GA3WZ7O,EAAAkpD,UAAS,WAELkwB,IAEqB,KAAjBp5E,EAAAkiD,eAAiB75B,MAoYjBroB,EAAG+iD,KAnYKC,KAAK,GAAGvpC,MAoYhBzZ,EAAG+iD,KAAKC,KAAO5uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,MAlYpChjD,EAAG+iD,KAAAE,GAAA7uD,QAAe8e,KAAAlT,EAAA+iD,KAAAC,OAEQ,KAAtBhjD,EAAAkiD,eAAU75B,MAoYdroB,EAAG+iD,KAnYCC,KAAW,KAoYfhjD,EAAG+iD,KAnYCE,GAAA,OAGJjjD,EAAA+iD,KAAIC,KAAM,KAoYVhjD,EAAG+iD,KAnYCE,GAAA,OAsYZjjD,EAAGgc,QAnYS,WAoYsB,KAA1Bhc,EAAGkiD,eAAe75B,OAClBroB,EAAG+iD,KAnYCC,KAAQ5uD,QAAA8e,KAAAlT,EAAA+iD,KAAAC,MAoYZhjD,EAAG+iD,KAnYCE,GAAA7uD,QAAgB8e,KAAAlT,EAAA+iD,KAAUC,iQAxoB1C5uD,QAjYIC,OAAG,4BACHe,WAAG,mBAAiB8wN,MA+jD5B,WACI,YAOA,SAASqB,GAAwBxtN,EAAO0Q,EAAQ1S,EAAYoC,EAAuBw0D,EAA4B64J,EAA6BntN,EAAS0X,EAAgB8jH,EAA4BC,GAuB7L,QAAS9hH,KACLhU,EAAGgT,YAnYQ,EAoYXhT,EAAG+S,WAnYQ,EAoYX/S,EAAGynN,OAGP,QAnYQrzF,KAqYJ,GAAIzhH,GAAUtY,EAAQsY,QAAQ,eAC9B,yFAhYJtb,WAAkB,EAoYV+F,KAAM,MAGduV,GAnYOjT,OAAAjB,KAAA,WACHuB,EAAGgT,YAAA,EACHhT,EAAG+S,WAAA,EACH/S,EAAGynN,SA6YP,QAASv1M,KAlYL,GAAIjX,IACAmF,SAAAF,EAAiBG,OACjB8R,UAAUA,EAEdw8C,GAAkBE,iBAAsB5zD,GAAAwD,KAAa,SAAAC,GAChC,MAAbA,EAAElI,QACFwJ,EAAE0nN,kBAAgBhpN,EAAOhJ,KAoYzBqc,EAnYI2T,qBAAiB3rB,EAAsBhC,GAAA0G,KAAA,SAAAC,GAoYpB,MAAfA,EAAIlI,QACJwJ,EAAG8V,YAAcpX,EAAIhJ,KAErBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YAjYnE,SAASC,GAoYJ5I,EAAW2I,YAAY,QAAS,mBAAoB,aAjY3DV,EAAAsS,WAAgB,GAEhBva,EAAY2I,YAAA,QAAsB,yBAAA,YAqYpC,SAnYKC,GAoYJ5I,EAnYI2I,YAAa,QAAA,mBAAwB,aAsY7CV,EAAG2nN,kBAAqBrsJ,WAAc,EAAGssJ,YAAe,4BAA+BtsJ,WAAc,EAAGssJ,YAAe,qBAhY3H,QAASC,KACL7nN,EAAAynN,IAAOK,iBAAW,KACmB,GAAjC9nN,EAAAynN,IAAAM,oBAASzsJ,YAoYTt7D,EAAGs6H,2BACHzE,EAA2B4tF,4BAA4BhlN,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,QACJwJ,EAAGs6H,wBAA0B57H,EAAIhJ,KACjCsK,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,wBAjY1D,SAASlB,GAoYJtG,EAAQwH,MAAM,QAAS,mBAAoB,2BA/XhD7B,EAAAu6H,oBAoYCzE,EAAoB0uF,qBAAqB/lN,KAAK,SAAUC,GACjC,MAAfA,EAAIlI,QAlYjBwJ,EAAgBu6H,iBAAA77H,EAAAhJ,KACfsK,EAAasS,WAAA,GAEFjY,EAAAwH,MAAA,QAAA,yBAAA,kBAqYJ,SAAUlB,GAlYlB5I,EAAc2I,YAAA,QAAA,mBAAA,oBA8YjB,QAnYQsnN,KACJ,GAAA5pN,GAAO,GAASH,SAoYhBG,GAASF,OAAO,aAAc8B,EAAGo0G,cACjCzlD,EAA2Bq5J,eAAe5pN,GAAUK,KAAK,SAAUC,GAlYpEA,EAAYhJ,MACRsK,EAAA60B,SAAcn2B,EAAAhJ,KAAagK,OAC3B3H,EAAY2I,YAAa,UAAc,wBAAA,qCAG3C3I,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAA,sCAGI,SAAOiL,GACN5I,EAAQ2I,YAAI,iCAIpB,QAAGunN,KACC,GAAGhtN,IACCkX,UAAQA,EAoYRo9C,MAAOvvD,EAAGkoN,gBACVC,cAAenoN,EAAG60B,SAlYvB/gB,UAAU5T,EAAgBG,OAqYzBsuD,GAA2By5J,eAAentN,GAAKwD,KAAK,SAAUC,GACtDA,EAAIhJ,KAAKke,aAAc,GAlYhC7b,EAAW2I,YAAgB,UAAchC,EAAAhJ,KAAAme,QAAc,0BAC9C3B,IACTlS,EAAAgT,YAAmB,IAGVjb,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,0BACA7T,EAAAgT,YAAA,IAqYL,SAAUrS,GAlYd5I,EAAS2I,YAAA,iCA2OZ,GAAIV,GAAKC,IAETD,GAAGqU,kBAnYChJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoYJrL,EAAGsU,SAnYWtU,EAAAqU,gBAAA,GAqYdrU,EAAGuU,YAnYK,EAoYRvU,EAAGwU,qBAAuB,SAAUC,GAlYhCzU,EAAAuU,YAAAE,GAuYJzU,EAAGgT,YAnYY,EAoYfhT,EAAG+S,WAnYS,EAoYZ/S,EAAGynN,OACHznN,EAAG6nN,SAAWA,EACd7nN,EAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EACZp0H,EAAGgoN,eAnYiBA,EAoYpBhoN,EAAGioN,aAAeA,CAClB,IAAI/nN,GAnYY/F,EAAcgG,uBAoY1BgS,EAnYYhY,EAAiBgG,uBAAAwU,gBAAAxC,SAgajCD,KA8DAzH,EAnYIuqG,YAAa,SAAA74G,GAqYTA,IACA6D,EAAGo0G,aAAej4G,EAAMsN,OAAOiE,MAAM,gNAxHjDtZ,QACKC,OAAO,2BACPe,WAAW,0BAA2BmyN,MAqK/C,WACI,YAOA,SAASc,GAAqB59M,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,EAAuByX,GACxI,GAAI5R,GAAKC,IACTD,GAAGsU,SAnYQ,KAoYXtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwkB,gBACHzsB,EAAW2c,SAAU,CAlYNva,GAAYgG,uBAoYXhG,EAAsBgG,uBAAuBwU,gBAAgBxC,SAkC7EnS,GAAG0R,OAAS,WACR4K,EAAkBiB,QAAQ,wKAjDlCnpB,QACKC,OAAO,2BACPe,WAnYW,uBAAmBizN,MAubvC,WACI,YAOA,SAASC,GAnYgBvuN,EAAA0Q,EAAAzQ,EAAAC,EAAAO,EAAAzC,EAAAga,EAAAC,EAAAw1M,EAAAntN,EAAAF,EAAA21D,EAAAitB,GAkarB,QAnYQ7qE,KAoYJ,GAAIjX,IAlYJmF,SAAAF,EAAsBG,OAClBkoN,UAAQ,EAqYZz4J,GAnYuBtzC,cAAAvhB,GAAAwD,KAAA,SAAAC,GAoYA,MAAfA,EAAIlI,QACJwJ,EAAGwoN,gBAAkB9pN,EAAIhJ,KAlYzBsK,EAAGsS,WAAA,GAEHva,EAAG2I,YAAkB,QAAA,yBAAA,YAqY1B,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aA3C5D,GAAIV,GAAKC,IAGTD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAnYuB,SAAQC,GAoY9BzU,EAAGuU,YAnYcE,GAsYrBzU,EAAGyoN,cAnYgB,SAAQ31M,GAoYvB,GAAIpd,IACAqd,UAAW/S,EAAG+S,UACd8+C,OAnYK,EACL0I,QAAQ,EAoYR9I,QAAQ,EACR77D,OAAQ,EACR6xN,IAAK30M,EAET9Y,GAAO8F,GAAG,2BACNpK,KAAMA,IA/Xd,IAAAwK,GAAS/F,EAAoBgG,sBAoYbhG,GAAsBgG,uBAAuBwU,gBAAgBxC,SAE7ED,0OAlCJ9d,QACKC,OAnYO,2BAoYPe,WAnYU,sCAAuCkzN,MA0b1D,WACI,YAOA,SAASI,GAAkC3uN,EAAO0Q,EAAQzQ,EAAQC,EAASO,EAAQzC,EAAYga,EAAgBC,EAAgBw1M,EAA6BntN,EAASF,EAAuB21D,EAAiCitB,GArXzN,QAAS/oE,KACL,GAAIte,IAoYAqd,UAAW/S,EAAG+S,UAlYd8+C,OAAM,EACN0I,QAAA,EACA9I,QAAA,EACA77D,OAAA,EAqYJoE,GAAO8F,GAAG,2BAlYVpK,KAAAA,IA0ZJ,QAnYQwc,KAoYJ,GAAIjX,IAlYAmF,SAAMF,EAAAG,OACNkoN,UAAU,EAqYdvoN,GAAGsS,WAnYC,EAoYJw9C,EAAgCtzC,cAAcvhB,GAAKwD,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QAlYZwJ,EAAAwoN,gBAAsB9pN,EAAAhJ,KACdsK,EAAAsS,WAAe,IAEfva,EAAG2I,YAAY,QAAA,yBAAA,OAoYfV,EAnYGsS,WAAA,IAqYR,SAAU3R,GAlYV5I,EAAU2I,YAAK,QAAA,mBAAA,OACdV,EAAAsS,WAAW,IAsUnB,GAnYItS,GAAAC,IAsYJD,GAAGqU,kBAnYYhJ,MAAY,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAoY3BrL,EAAGsU,SAAWtU,EAnYCqU,gBAAA,GAqYfrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAnYmB,SAAAC,GAoYlBzU,EAAGuU,YAnYYE,GAsYnBzU,EAAGgU,OAASA,EAeZhU,EAAGyoN,cAAgB,SAAU31M,GACzB,GAAIpd,IACAqd,UAnYQ/S,EAAA+S,UAoYR8+C,OAAO,EACP0I,QAAQ,EACR9I,QAAQ,EACR77D,OAAQ,EACR6xN,IAnYI30M,EAqYR9Y,GAAO8F,GAnYC,2BAoYJpK,KAAMA,IAId,IAAIwK,GAAa/F,EAAsBgG,sBACvBhG,GAAsBgG,uBAAuBwU,gBAAgBxC,SAE7ED,KAuBAlS,EAAG2oN,gBAAkB,SAAU71M,GAjY/B,GAAAH,GAAStY,EAAiBsY,QAAA,UACnB,4CAAoBtb,WAAA,EAAA+F,KAAA,MAqYvBuV,GAAQjT,OAAOjB,KAAK,WAlYxB,GAASxD,IACFk2D,MAAAr+C,EAAA81M,UACAxoN,SAAcF,EAAAG,OAqYbL,GAAGsS,WAAY,EAlYvBw9C,EAA4B+4J,iBAAA5tN,GAAAwD,KAAA,SAAAC,GACJ,MAAjBA,EAAAlI,QACA0b,IACHlS,EAAAsS,WAAA,IAEKva,EAAA2I,YAAsB,QAAA,yBAAA,OACxBV,EAAAsS,WAAA,IAqYI,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,OACpDV,EAAGsS,WAAY,KAEpB,oPA/FXle,QACKC,OAnYO,2BAoYPe,WAnYO,oCAAqBszN,MAwerC,WACI,YAOA,SAASI,GAAkC/uN,EAAO0Q,EAAQzQ,EAAQC,EAASO,EAAQzC,EAAYga,EAAgBC,EAAgBw1M,EAA6BntN,EAASF,EAAuB21D,EAAiCitB,GA+BzN,QApYQ7qE,KAqYJ,GAAIjX,IACAmF,SAAUF,EAAWG,OAnYrBkoN,UAAO,EAEXvoN,GAAGsS,WAAY,EACfw9C,EAAStzC,cAAAvhB,GAAAwD,KAAA,SAAAC,GAqYc,MAAfA,EAAIlI,QACJwJ,EAAGwoN,gBAAkB9pN,EAAIhJ,KACzBsK,EAAGsS,WAAY,IAEfva,EAAW2I,YAAY,QAAS,yBAA0B,OAC1DV,EAAGsS,WAAY,IAlY3B,SAAA3R,GAqYQ5I,EAAW2I,YAAY,QAAS,mBAAoB,OAnY5DV,EAASsS,WAAO,IA9ChB,GAAGtS,GAAAC,IAuYHD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAlYjCrU,EAAGuU,YAAa,EAChBvU,EAAGwU,qBAAY,SAAAC,GACZzU,EAAAuU,YAAME,GAGTzU,EAAGyoN,cAAS,SAAA31M,GACT,GAAApd,IACAqd,UAAe/S,EAAA+S,UACd8+C,OAAA,EACA0I,QAAY,EAqYR9I,QAAQ,EAnYhB77D,OAAS,EACF6xN,IAAA30M,EAEH9Y,GAAG8F,GAAM,2BAqYLpK,KAAMA,IAId,IApYIwK,GAAI/F,EAA0BgG,sBAC9BhG,GAAAgG,uBAAAwU,gBAAAxC,SAsYJD,0OAtaJ9d,QACIC,OAAI,2BAqYHe,WAAW,oCAAqC0zN,MA0DzD,WACI,YAOA,SAASC,GApYyBhvN,EAAA0Q,EAAAxQ,EAAAD,EAAAQ,EAAAzC,EAAAga,EAAAC,EAAAw1M,EAAAntN,EAAAF,EAAA21D,EAAAitB,GAga9B,QAASq3C,KACLp6H,EApYK8F,GAAA/H,EAAAyE,eAwaT,QAAS0V,KACL,GAAI9R,GAAWF,EAAWG,MAnY9ByvD,GAAwBk5J,sBAAA72M,EAAA/R,GAAA3B,KAAA,SAAAC,GACV,MAANA,EAAMlI,SACNwJ,EAAAqS,YAAW3T,EAAAhJ,KACXsK,EAAOsS,WAAG,IAsYX,SApYC3R,GAqYA5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAExDV,EAAGsS,WApYS,EAqYZtS,EAAGipN,aAEGC,SApYK,EAAAC,OAAa,uBAsYxBp3M,EApYW2T,qBAAA3rB,EAAAhC,GAAA0G,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,QACAwJ,EAAG8V,YAAapX,EAAAhJ,KAqYhB8xN,EAA4B4B,eAAervN,EAAOhC,GAAY0G,KAAK,SAASC,GAnYlE,MAALA,EAAKlI,QACHwJ,EAAA2nN,gBAAYjpN,EAAAhJ,KAqYXsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAExDV,EAAGsS,WAAY,GAlY/Bva,EAAA2I,YAAA,QAAA,yBAAA,YAsYW,SAASC,GApYpB5I,EAAA2I,YAAA,QAAA,mBAAA,aAKA,QAASy0M,KACDn1M,EAAAsS,WAAK,EACNw9C,EAAWslJ,YAAAr7M,EAAAhC,GAAA0G,KAAA,SAAAC,GACE,MAAbA,EAAalI,QACbwJ,EAAYq1M,aAAA32M,EAAAhJ,KACZsK,EAAYsS,WAAA,IAEJva,EAAU2I,YAAA,QAAA,yBAAA;AACjBV,EAAAsS,WAAa,IAuYV,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,YACpDV,EAAGsS,WAAY,IAEnBtS,EAAGsS,WAAY,EAInB,QAASmP,GAAoBtP,EAAWgF,GAChChF,GACA29C,EAAgCu5J,oBAAoBl3M,GAAW1T,KAAK,SAASC,GACtD,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,MAChBsK,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EACX+F,KAAM,OAId+Z,IACAnX,EAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GACRtG,EAAQwH,MAAM,QAAS,mBAAoB,oBA9XvD,QAAGynN,GAAqBxzN,GACpBkK,EAAAsS,WAAA,CAsYA,IAAIrX,IACAnF,UAAWA,EACXyzN,OAAO,EACPzwG,aAAc,EAnY1B94G,GAAA6wM,gBAsYQ/gJ,EAAgC05J,YAAYvuN,GAAKwD,KAAK,SAASC,GAC3D,GAAmB,MAAfA,EAAIlI,OAAgB,CArYpC,GAAAkI,EAAAhJ,KAAAyF,QACYd,EAAA8C,OAAA,UAAA,mCAAA,OAwYI6C,EAAG6wM,aAAenyM,EAAIhJ,IACtB,KAAK,GAAIwF,KAAK8E,GAAG6wM,aArYxB7wM,EAAA6wM,aAAA31M,GAAAuuN,UAAoC9sN,KAAOC,MAAQoD,EAAA6wM,aAAiB31M,GAAAo5B,WAChEt0B,EAAA6wM,aAAA31M,GAAAwuN,oBAAA,CAGN,KAAA,GAAkBxuN,KAAG8E,GAAA6wM,aACV,IAAG,GAAA1mM,KAAAnK,GAAgB6wM,aAAA31M,GAAAuuN,UAuYbzpN,EAAG6wM,aAAa31M,GAAGuuN,UAAUt/M,GAAGw1B,YAAa,CAnY1D3/B,GAAAsS,WAAc,MAwYTjY,GAAQwH,MAAM,QAAS,yBAA0B,YArY1D7B,EAAAsS,WAAgB,GAwYZ,SAtYC3R,GACAtG,EAAOwH,MAAA,QAAA,mBAAA,YACP7B,EAAAsS,WAAQ,IA4ahB,QAASq3M,KACL3pN,EAAG4pN,SAtYX,KAAA,GAAA1uN,KAAA8E,GAAA6wM,aACY,GAAA7wM,EAAA6wM,aAAA31M,GAAAi8M,aACIn3M,EAAA4pN,OAAA/xN,KAAAmI,EAAA6wM,aAAA31M,IA4YZ,QAAS2uN,KACL7pN,EAAGsS,WAAY,EAtYhBq3M,GAyYC,IAAIt3L,KAtYL,KAAA,GAAAn3B,KAAc8E,GAAAynN,IAAAh3J,iBACdp+B,EAAAx6B,KAAAmI,EAAAynN,IAAAh3J,iBAAsCv1D,GAAAsuB,WAyYrCxpB,GAAG8pN,SAAWz3L,EAAIqB,MAClB,IAAIq2L,KAtYL,KAAA,GAAS7uN,KAAA8E,GAAA4pN,OAwYJ,IAAK,GAAIz/M,KAAKnK,GAAG4pN,OAAO1uN,GAAGuuN,UAtY1B,GAAAzpN,EAAS4pN,OAAA1uN,GAAAuuN,UAAAt/M,GAAAunM,iBAAA,CACH,GAAAz2M,KACPA,GAAWi7D,SAAGl2D,EAAA4pN,OAAA1uN,GAAAuuN,UAAAt/M,GAAA+rD,SACPj7D,EAAAu2D,OAAAxxD,EAAA4pN,OAAA1uN,GAAAuuN,UAAAt/M,GAAAqnD,OACCv2D,EAAAg8B,QAAAj3B,EAAA4pN,OAAA1uN,GAAAuuN,UAAAt/M,GAAA8sB,QACAh8B,EAAAm8B,WAAAp3B,EAAA4pN,OAAA1uN,GAAAuuN,UAAAt/M,GAAAitB,WACAn8B,EAAAy5B,OAAA10B,EAAA4pN,OAAA1uN,GAAAuuN,UAAAt/M,GAAAuqB,OAwYAz5B,EAAI+uN,OAAShqN,EAAG4pN,OAAO1uN,GAAGuuN,UAAUt/M,GAAG8/M,eAtYzCF,EAAAlyN,KAA2BoD,GA2YrC,GAAIA,IAtYLnF,UAAgBkK,EAAAynN,IAAA5lM,gBAAe/rB,UAC1Bo0N,SAAOlqN,EAAAynN,IAAAyC,SACPC,WAAWnqN,EAAGynN,IAAA2C,iBAAAD,WACdE,SAAOpwN,EAAA,QAAA+F,EAAAynN,IAAA4C,SAAA,cACP7gM,WAAQxpB,EAAA8pN,SACRh2M,UAAQ5T,EAAAG,OACRiqN,gBAAQ3tN,KAAAqkB,UAAA+oM,GAyYZj6J,GAAgCy6J,gBAAgBtvN,GAAKwD,KAAK,SAASC,GAtY5DA,EAAGhJ,KAAAke,aAAA,GACN7b,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,6BAwYF7Z,EAAO8F,GAAG/H,EAAWyE,eACrB0V,IACAlS,EAAGsS,WAAY,EAtYvBtS,EAAAgT,YAAa,IAGjBjb,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,6BAwYY7T,EAAGgT,YAAa,EAtYnBhT,EAAAsS,WAAO,IAyYT,SAvYC3R,GACA5I,EAAW2I,YAAA,+BAwYXV,EAAGsS,WAAY,IAIvB,QAASm2M,GAvYM31M,GAwYX9S,EAAGsS,WAvYQ,EAwYXtS,EAAGynN,IAAI+C,MAvYIp2N,QAAA8e,KAAAJ,EAAA03M,OAwYXxqN,EAAGynN,IAAIyC,SAvYC91N,QAAW8e,KAAYJ,EAAAo3M,UAwY/BlqN,EAAGynN,IAAIzzF,WAvYI5/H,QAAY8e,KAAAJ,EAAAkhH,YAwYvBh0H,EAAGynN,IAAIgD,WAAar2N,QAAQ8e,KAAKJ,EAAI23M,WACrC,IAvYGxvN,IACC2tN,UAAW91M,EAAA81M,UACX8B,cAAe1qN,EAAAuoN,UAyYnBvoN,GAAG2qN,YACH76J,EAAgC86J,eAAe3vN,GAAKwD,KAAK,SAASC,GAC9D,GAAmB,MAAfA,EAAIlI,OAAgB,CAtY7BwJ,EAAA2qN,SAAkBjsN,EAAAhJ,KAwYTsK,EAAGyxD,QAAS,EAtYhBzxD,EAAA6xD,OAAU,EACV7xD,EAAAgT,YAAA,EAwYIhT,EAAGsS,WAAY,EAtYftS,EAAA6qN,oBACA,KAAA,GAAM3vN,KAAA8E,GAAA2qN,SACK,IAAJ3qN,EAAI2qN,SAAAzvN,GAAA4vN,YACX9qN,EAAU2qN,SAAAzvN,GAAWuuN,UAAA9sN,KAAAC,MAAAoD,EAAA2qN,SAAAzvN,GAAA4vN,WAwYb9qN,EAAG6qN,kBAAkBhzN,KAAKmI,EAAG2qN,SAASzvN,IApY9C8E,GAAAsS,WAAQ,IAyYb,SAvYS3R,GAwYR5I,EAvYW2I,YAAA,QAAA,mBAAA,kBAwYXV,EAAGsS,WAvYK,IA6hBhB,QAAS8G,GAAS1jB,GAxYlB,GAAA2jB,GAAA3jB,EAAA2jB,KA0YQ9iB,EAAOb,EAAKa,IAxYpB,OAAgB,QAAPA,GAAO,KAAA8iB,EAAAC,SAschB,QAASC,GAzYY7jB,GA0YjB,GAAI2jB,GAAO3jB,EAzYK2jB,KA0YZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAvY1Cxe,EAAI,EAAAA,EAAA8E,EAAS2Z,OAAAxe,OAAAD,IAAA,CA0YjB,GAzYI0e,GAAA,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA2YJ,IAAIF,IAzYGI,EACH,MAAA5Z,GAAQ2Z,OAAMze,GAAA1E,OA6Y1B,MAAO,GAphBX,GAAIwJ,GAAKC,IAGTD,GAAGqU,kBApYYhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAqYfrL,EAAGsU,SApYStU,EAAAqU,gBAAW,GAsYvBrU,EAAGuU,YApYc,EAqYjBvU,EAAGwU,qBApYgB,SAAYC,GAqYvBzU,EAAGuU,YAAcE,GAIzBzU,EAAGgT,YAAa,EAnYhBhT,EAAA+S,WAAS,EAqYT/S,EAAGsS,WApYQ,EAqYXtS,EAAGyxD,QApYQ,EAqYXzxD,EAAG6xD,OApYQ,EAqYX7xD,EAAGynN,OACHznN,EAAGo0H,OApYSA,EAqYZp0H,EAAGyhB,oBApYgBA,EAqYnBzhB,EAAGspN,eApYgBA,EAqYnBtpN,EAAG+qN,SAAU,EACb/qN,EAAGq1M,gBACHr1M,EAAGm1M,YAAcA,EACjBn1M,EAAG6pN,cApYQA,EAqYX7pN,EAAGyoN,cApYSA,EA0YZzoN,EAAGgrN,kBAEH,IAAI9qN,GApYY/F,EAAegG,uBAqY3BgS,EAAYhY,EApYGgG,uBAAAwU,gBAAAxC,SAGOxc,SAoYtBqE,EApYOvE,OAAAC,OAqYPsK,EAAG6xD,MApYK73D,EAAAvE,OAAWC,KAAAm8D,MAqYnB7xD,EAAGu6D,OAASvgE,EAAOvE,OAAOC,KAAK6kE,OAC/Bv6D,EAAGyxD,OAASz3D,EAAOvE,OAAOC,KAAK+7D,OAC/BzxD,EAAGuoN,UAAYvuN,EAAOvE,OAAOC,KAAKE,OAlY/BoK,EAAA6xD,OACH7xD,EAAAgT,YAAA,EACIhT,EAAA+S,WAAA,EACA/S,EAAGyxD,QAAA,EAqYHzxD,EAAG6xD,OAAQ,EACX7xD,EAAGynN,QAnYFznN,EAAAyxD,SACDzxD,EAAAsS,WAAe,EACnBtS,EAAAynN,IAASztN,EAAOvE,OAAAC,KAAc+xN,IAC9BgB,EAAAzoN,EAAAynN,OA8YJv1M,IAsHAlS,EAAGyjB,UAAY,SAAS3Q,GArYpB,IAAA,GAAO5X,KAAG4X,GAAA22M,UACN32M,EAAA22M,UAAMvuN,GAAAw2M,iBAAA5+L,EAAAqkM,aAIdn3M,EAAAuL,OAAI,SAAauH,GACb,GAAAuf,GAAA73B,EAAYyC,OAAA6V,EAAA22M,UAAsB,SAAAj8M,GAuY9B,MAAOA,GAAEkkM,kBAETr/K,GAAIl3B,OAAS,EArYrB2X,EAASqkM,aAAO,EAERrkM,EAAAqkM,aAAU,GAyYlBn3M,EAAGirN,UAtYC,WAuYA,IAtYI,GAAI/vN,KAAI8E,GAAA6wM,aAuYR,IAtYI,GAAG1mM,KAAAnK,GAAA6wM,aAAsB31M,GAAAuuN,UACV,GAAZzpN,EAAA6wM,aAAY31M,GAAAuuN,UAAAt/M,GAAAunM,mBACZ1xM,EAAA6wM,aAAA31M,GAAAuuN,UAAAt/M,GAAAw1B,YAAA,EACH3/B,EAAA+qN,SAAW,IAifvB/qN,EAAG0jB,gBAvYS,WAwYR1jB,EAAGsS,WAvYQ,CAwYX,IAAIrX,IAtYDk2D,MAAAnxD,EAAAynN,IAAYmB,UAwYXsC,UAAW,EACX9qN,SAAUF,EAAWG,OAEzByvD,GAAgCq7J,aAAalwN,GAAKwD,KAAK,SAASC,GACxDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,6BACpD7Z,EAAO8F,GAAG/H,EAAWyE,eAtY5B0V,IACTlS,EAAAgT,YAAA,EAwYgBhT,EAAGsS,WAAY,IArYnBva,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,6BACI7T,EAAAgT,YAAA,EAyYAhT,EAAGsS,WAAY,IAtYtB,SAAA3R,GACD5I,EAAK2I,YAAA,+BAyYDV,EAAGsS,WAAY,KAIvBtS,EAAGorN,eAAiB,WAvYjBprN,EAAAsS,WAAc,CACd,IAAArX,IACIk2D,MAAAnxD,EAAAynN,IAAcmB,UAyYbsC,UAAW,EACX9qN,SAAUF,EAAWG,OAtYzByvD,GAAWq7J,aAAAlwN,GAAAwD,KAAA,SAAAC,GACPA,EAAAhJ,KAAWke,aAAG,GACd7b,EAAO2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,6BACP7Z,EAAQ8F,GAAA/H,EAAAyE,eACR0V,IACAlS,EAAAgT,YAAQ,EACRhT,EAAKsS,WAAA,IAGLva,EAAM2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,6BAyYF7T,EAAGgT,YAAa,EAChBhT,EAAGsS,WAAY,IAtYvB,SAAA3R,GACA5I,EAAY2I,YAAA,+BAyYRV,EAAGsS,WAAY,KAIvBtS,EAAGqrN,aAxYW,WAyYV,GAxYIpwN,IACAk2D,MAAAnxD,EAAAynN,IAAWmB,UAyYXsC,UAAW,EAvYZ9qN,SAAAF,EAAYG,QA2YXsS,EAxYOtY,EAAAsY,QAAkB,UAyYzB,iDAxYmBtb,WAAA,EAAA+F,KAAA,MA0YvBuV,GAxYQjT,OAAAjB,KAAW,WACXqxD,EAAeq7J,aAAAlwN,GAAAwD,KAAA,SAAAC,GAyYQ,MAAfA,EAAIlI,QAvYPuB,EAAK2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,6BACH7Z,EAAA8F,GAAA/H,EAAqByE,eAC7B0V,IAyYSlS,EAAGgT,YAAa,GAEhBjb,EAAW2I,YAAY,QAAS,0CAA4CrJ,WAAW,EAAM+F,KAAM,UAG5G,eArWX4C,EAAGqa,MAAA,WACAra,EAAAsa,GAAA,GAAAb,MA0YCzZ,EAAGsa,GAAGkB,QAAQxb,EAAGsa,GAAG0B,UAAY,IAEpChc,EAAGqa,QAEHra,EAAG0X,MAAQ,WAxYR1X,EAAAsa,GAAA,MAGHta,EAAAua,eA0YIC,YAAajB,EACbkB,QAAS,GAAIhB,MAAK,KAAM,EAAG,KAG/BzZ,EAAGirH,YAxYCrwG,aAAYxB,EACZ+C,WAAG,KA0YHtB,QAAS,GAAIpB,MAAK,KAAM,GAAI,IAxY5BgB,QAAOza,EAAAsa,GA0YPQ,YAzYO,GA4YX9a,EAAGkrH,UACCtwG,aAzYaxB,EA0Yb+C,WAzYW,KA0YXtB,QAzYO,GAAApB,MAAA,KAAY,EAAA,IA0YnBgB,QAzYOza,EAAAsa,GA0YPQ,YAzYI,GA4YR9a,EAAGmrH,cAzYI,WA2YHnrH,EAAGkrH,SAASzwG,QAAUza,EAAGsa,IAU7Bta,EAAGgb,MAzYK,WA0YJhb,EAAGib,OAzYKpM,QAAG,GA4Yf7O,EAAGkb,MAzYI,WA0YHlb,EAAGmb,OAzYCtM,QAAW,CA0Yf,IAAIwL,GAAQ,GAAIZ,MAxYb06B,EAAA,EA2YHn0C,GAAGm5B,SAxYCte,QAAE,GAAApB,MAAeY,EAAA65B,cAAUC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,aA8YnChc,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAzYM,GA4YpB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAzYM,GA4YpB7O,EAAGwb,QAAU,SAzYGC,EAAWC,EAAAC,GA0YvB3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAzYS,eAAW,aAAqB,aAAA,aA0Y5C5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAzYkB,cA2YrB9b,EAAGib,QACCpM,QAAQ,GAtYZ7O,EAAAmb,QACItM,QAAG,GA2YP7O,EAAGqb,QACCxM,QAzYQ,GA4YZ7O,EAAGub,QACC1M,QAzYQ,EA4YZ,IAAIkN,GAzYI,GAAWtC,KA0YnBsC,GAzYQP,QAAGO,EAAYC,UAAA,EA0YvB,IAAIC,GAAgB,GAAIxC,KACxBwC,GAzYOT,QAAYO,EAAAC,UAAA,GA0YnBhc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OAAQ,SAvYR6iB,KAAI4C,EA0YJzlB,OAzYI,mPAhIZpC,QACKC,OAAO,2BACPe,WAAW,+BApYW2zN,MAs6B/B,WACI,YAOA,SAASuC,GAA+BvxN,EAAO0Q,EAAQzQ,EAAQC,EAASO,EAAQzC,EAAYga,EAAgBC,EAAgBw1M,EAA6BntN,EAASF,EAAuB21D,EAAiCitB,GA+BtN,QAzYQ7qE,KA0YJ,GAAIjX,IAxYAmF,SAAIF,EAAYG,OAChBkoN,UAAIvuN,EAAcvE,OAAAG,OA2YtBoK,GAAGsS,WAzYK,EA0YRw9C,EAAgCtzC,cAAcvhB,GAAKwD,KAAK,SAAUC,GAC3C,MAAfA,EAAIlI,QAxYbwJ,EAAYwoN,gBAAW9pN,EAAAhJ,KACjBsK,EAAIsS,WAAQ,IAETva,EAAO2I,YAAgB,QAAA,yBAAiC,OA0YxDV,EAAGsS,WAzYI,IA2YZ,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,OACpDV,EAAGsS,WAAY,IA9CvB,GAAItS,GAAKC,IAGTD,GAAGqU,kBAzYgBhJ,MAAa,IAAGA,MAAA,KAAqBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0YxDrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAzYc,EA0YjBvU,EAAGwU,qBAzYsB,SAAQC,GA0Y7BzU,EAAGuU,YAzYaE,GA4YpBzU,EAAGyoN,cAzYY,SAAY31M,GA0YvB,GAAIpd,IACAqd,UAzYI/S,EAAQ+S,UA0YZ8+C,OAzYO,EA0YP0I,QAAQ,EAxYT9I,QAAS,EACR77D,OAAQoE,EAAMvE,OAAAG,OACd6xN,IAAG30M,EA2YP9Y,GAAO8F,GAAG,2BACNpK,KAAMA,IAId,IAAIwK,GAAa/F,EAAsBgG,sBACvBhG,GAAsBgG,uBAAuBwU,gBAAgBxC,SAvY7ED,0OAuWJ9d,QACKC,OAzYG,2BA0YHe,WAzYW,iCAAoBk2N,MAmcxC,WACI,YAOA,SAASC,GAAyBxxN,EAAO0Q,EAAQ1S,EAAYoC,EAAuBK,EAAQgtN,EAA6B/sN,EACrHJ,EAAS0X,EAAgB8jH,EAA4BC,GAwBrD,QAAS9hH,KACLhU,EAAGgT,YAAa,EAxYhBhT,EAAA+S,WAAU,EA0YV/S,EAAGynN,OAGP,QAzYQrzF,KA4YJ,GAzYIzhH,GAAAtY,EAAiBsY,QAAK,eA0YtB,yFAtYItb,WAAW,EACX+F,KAAA,MA4YRuV,GAzYQjT,OAAGjB,KAAA,WA0YPuB,EAAGgT,YAAa,EAChBhT,EAAG+S,WAzYI,EA0YP/S,EAAGynN,SASX,QAASv1M,KAxYTs1M,EAA4B4B,eAAArvN,EAAAhC,GAAA0G,KAAA,SAAAC,GACT,MAAZA,EAAAlI,QACIwJ,EAAA0nN,kBAAqBhpN,EAAIhJ,KACzBqc,EAAW2T,qBAAiB3rB,EAAAhC,GAAA0G,KAAA,SAAAC,GACP,MAArBA,EAAalI,QACbwJ,EAAA8V,YAA0BpX,EAAIhJ,KAEtBsK,EAAIsS,WAAA,GA2YHva,EAAW2I,YAAY,QAAS,yBAA0B,YAvY1E,SAAAC,GACY5I,EAAW2I,YAAK,QAAA,mBAAA,aAEpBV,EAAGsS,WAAS,GAEZva,EAAG2I,YAAa,QAAA,yBAAA,YA2YrB,SAzYQC,GA0YP5I,EAzYS2I,YAAY,QAAU,mBAAA,aA4YnCV,EAAG2nN,kBAzYgBrsJ,WAAkB,EAAAssJ,YAAiB,4BAAAtsJ,WAAA,EAAAssJ,YAAA,qBAyZ1D,QAzYQC,GAAU1wM,GA0YdnX,EAAGynN,IAAIK,iBAAmB,KAxYmB,GAA7C9nN,EAAAynN,IAAAM,oBAAAzsJ,YACIt7D,EAAAs6H,2BA0YAzE,EAzY2B4tF,4BAAoBhlN,KAAS,SAAAC,GAC1C,MAAVA,EAAOlI,QACPwJ,EAAAs6H,wBAAA57H,EAAAhJ,KACGsK,EAAAsS,WAAa,EACb6E,GA0YKA,KAtYL9c,EAAAwH,MAAa,QAAA,yBAAA,wBA2YjB,SAAUlB,GAxYdtG,EAASwH,MAAK,QAAA,mBAAA,2BA6Yb7B,EAAGu6H,oBACHzE,EAAoB0uF,qBAAqB/lN,KAAK,SAAUC,GAxYjC,MAA5BA,EAAiBlI,QACbwJ,EAAYu6H,iBAAA77H,EAAAhJ,KACLsK,EAAAsS,WAAA,EACI6E,GACCA,KAGf9c,EAAAwH,MAAA,QAAgC,yBAAuB,kBA2YhD,SAzYClB,GACA5I,EAAU2I,YAAW,QAAA,mBAAA,oBAqZjC,QAzYQsnN,KA0YJ,GAAI5pN,GAAW,GAAIH,SACnBG,GAASF,OAAO,aAAc8B,EAAGo0G,cACjCozG,EAA4BQ,eAAe5pN,GAAUK,KAAK,SAAUC,GAxYrEA,EAAAhJ,MACKsK,EAAM60B,SAAAn2B,EAAAhJ,KAAAgK,OACN3H,EAAc2I,YAAA,UAAA,wBAAA,qCA4YV3I,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAM,KAG/C,SAzYCiL,GA0YA5I,EAAW2I,YAAY,iCAI/B,QAASunN,KACL,GAAIhtN,IACAuwN,UAAWxrN,EAzYCynN,IAAA3wK,aAAAzgC,UA0YZo1M,YAzYYzrN,EAAGynN,IAAAM,oBAAazsJ,WA0Y5BowJ,iBAzYe1rN,EAAAynN,IAAAiE,iBA0YfC,sBAzYuB3rN,EAAA60B,SAiZ3B,IAN6C,GAAzC70B,EAAGynN,IAAIM,oBAAoBzsJ,WAC3BrgE,EAzYG2wN,sBAAW5rN,EAAAynN,IAAA5pK,oBAAAi+D,sBA4Yd7gH,EAAI4wN,eAAiB7rN,EAAGynN,IAAIK,iBAAiBzrG,eAE5Cr8G,EAAG+S,UAgBH,CACD,GAAI3U,GAAW,GAAIH,SACnBG,GAASF,OAAO,aAAc8B,EAAGo0G,cACjCh2G,EAASF,OAAO,aAAc8B,EAAGynN,IAAI0C,YACrC/rN,EAASF,OAAO,aAAcgC,EAAWG,QAEzCmnN,EAA4BsE,eAAe1tN,GAAUK,KAAK,SAAUC,GAC5DA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BACpD3B,IACAlS,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,IAEfhb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,2BAClD7T,EAAGgT,YAAa,IAvYzB,SAASrS,GACN5I,EAAW2I,YAAG,qCAyWhBzF,GAAI6Y,UAAY5T,EAAWG,OACvBmnN,EAA4BS,aAAahtN,GAAKwD,KAAK,SAAUC,GACrDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,2BACpD3B,IACAlS,EAAGgT,YAAa,IAGhBjb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,2BAClD7T,EAAGgT,YAAa,IAErB,SAAUrS,GACT5I,EAAW2I,YAAY,iCA0BvC,QAASqrN,GAAaj5M,GAClB9S,EAAGsS,WAAY,EAxYhBtS,EAAAynN,IAAArzN,QAAgB8e,KAAAJ,GACfqf,QAAAC,IAAApyB,EAAaynN,KACbznN,EAAAgT,YAAa,EA0YbhT,EAAG+S,WAAY,EACf/S,EAAG60B,SAAW70B,EAAGynN,IAAIkE,sBAAsBzjL,OAxY5C1tC,EAAAqI,QAAa7C,EAAA8V,YAAA,SAAAtI,GACZA,EAAA6I,WAAcvD,EAAA04M,YACdxrN,EAAAynN,IAAY3wK,aAAAtpC,KA6YZhT,EAAOqI,QAAQ7C,EAAG2nN,gBAAiB,SAAUn6M,GACrCA,EAAE8tD,YAAcxoD,EAAI24M,cAxY7BzrN,EAAWynN,IAAAM,oBAAAv6M,KAGVq6M,EAAS,WACG,GAAZ/0M,EAAY24M,YACZjxN,EAAaqI,QAAA7C,EAAAs6H,wBAAA,SAAA9sH,GA0YGA,EAAEsuG,uBAAyBhpG,EAAI84M,wBAC/B5rN,EAAGynN,IAAI5pK,oBAAsBrwC,GAvY7CxN,EAAAynN,IAAAM,sBACY/nN,EAAAsS,WAAa,KAIpB9X,EAASqI,QAAM7C,EAAAu6H,iBAAA,SAAA/sH,GACJA,EAAA6uG,gBAAAvpG,EAAA+4M,iBACA7rN,EAAAynN,IAAAK,iBAAAt6M,GA2YAxN,EAAGynN,IAAIK,mBACP9nN,EAAGsS,WAAY,OAMnC,QAzYO05M,GAAgBl5M,GACnB,GAAIH,GAAQtY,EAAIsY,QAAA,UACZ,4CAAStb,WAAA,EAAA+F,KAAA,MAEbuV,GAAGjT,OAAUjB,KAAA,WACT0zB,QAAAC,IAAStf,GA0YT00M,EAA4BwE,eAAel5M,EAAIq3M,YAAY1rN,KAAK,SAAUC,GACnD,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,mCAAoC,gBACtEwR,KAvYFna,EAAS2I,YAAA,QAAA,6BAAArJ,WAAA,EAAA+F,KAAA,QA2YZ,SAAUuD,GAxYV5I,EAAW2I,YAAA,QAAA,sEAAArJ,WAAA,EAAA+F,KAAA,UA2Yf,cAnQP,GAAI4C,GAAKC,IAETD,GAAGqU,kBAzYgBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0YnBrL,EAAGsU,SAzYCtU,EAAAqU,gBAAA,GA2YJrU,EAAGuU,YAzYW,EA0YdvU,EAAGwU,qBAzYsB,SAAAC,GA0YrBzU,EAAGuU,YAzYaE,GA6YpBzU,EAAGgT,YAzYU,EA0YbhT,EAAG+S,WAzYU,EA0Yb/S,EAAGynN,OACHznN,EAAG6nN,SAAWA,EACd7nN,EAAGgU,OAASA,EACZhU,EAAGo0H,OAASA,EACZp0H,EAAGgoN,eAzYiBA,EA0YpBhoN,EAAGioN,aAzYaA,EA0YhBjoN,EAAGgsN,eAzYiBA,EA0YpBhsN,EAAG+rN,aAzYaA,CA0YhB,IAAI7rN,GAzYY/F,EAAqBgG,sBAsarC+R,KA4BAlS,EAAG01D,YAzYY,SAAY5iD,GA0YvB,GAAIre,GAAM,EAEVA,GAzYIsD,EAAW8D,SAAY,8CAA6BiX,EAAA64M,sBAOxDlxN,EAAI4E,KAAM5K,EAAA,WAibdgW,EAAOuqG,YAzYK,SAAW74G,GA2YfA,IACA6D,EAAGo0G,aAAej4G,EAAMsN,OAAOiE,MAAM,sMA1IjDtZ,QACKC,OAzYG,2BA0YHe,WAzYW,2BAAmBm2N,MA2pBvC,WACI,YAOA,SAzYQU,GAAQlyN,EAAA0Q,EAAAxQ,EAAAD,EAAAQ,EAAAzC,EAAAm0N,EAAAxkM,EAAArtB,EAAAF,EAAA21D,GAmaZ,QAAS97C,KACLhU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAzYS,EA0YZ/S,EAAGynN,OAGP,QAASrzF,KAxYEz+H,QAAPqE,EAAOvE,OAAAC,KA0YHsE,EAAO8F,GAAG/H,EAAWyE,gBAErBwD,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGynN,QAaX,QAASv1M,KAxYL,GAAKvc,QAALqE,EAAKvE,OAAAC,KA2YDsK,EAAGwoN,gBAAkBxuN,EAAOvE,OAAOC,KAAKs6B,qBACxChwB,EAAGsS,WAAY,MAzYpB,CACA,GAAAyG,GAAc,CA2YT2O,GAAyB+B,sBAAsB1Q,GAAIta,KAAK,SAASC,GAzYxD,MAAdA,EAAclI,QACdwJ,EAAAwoN,gBAAiC9pN,EAAKhJ,KAClCsK,EAAAsS,WAAc,GA4YLva,EAAW2I,YAAY,QAAS,yBAA0B,YAxYlE,SAAOC,GACP5I,EAAc2I,YAAA,QAAA,mBAAA,cAqetB,QAAS+nN,GAAc31M,GA1YnB9S,EAAAmsN,iBAAoB/3N,QAAA8e,KAAYJ,EAAAs5M,iBA4YhCpsN,EAAGqsN,iBA3YiBv5M,EAAAu5M,iBA4YpBrsN,EAAGsS,WA3YI,EA4YPtS,EAAGynN,IA3YIrzN,QAAM8e,KAAAJ,EA4Yb,IAAI7X,IACAwpF,MAAO3xE,EAAIw5M,UACXx2N,UAAWgd,EAAIhd,UACfsK,SAAUF,EAAWG,OAEzBL,GAAG2qN,YA1YPuB,EAAAK,2BAAAtxN,GAAAwD,KAAA,SAAAC,GA4YQ,GAAmB,MAAfA,EAAIlI,OAAgB,CA1YvBwJ,EAAA2qN,SAAOjsN,EAAAhJ,IACZ,KAAA,GAAAwF,KAAA8E,GAAA2qN,SAA4B,CAChB3qN,EAAA2qN,SAAWzvN,GAAAsxN,oBAAK7vN,KAAAC,MAAAoD,EAAA2qN,SAAAzvN,GAAAuxN,gBACjB,KAAA,GAAAtiN,KAAAnK,GAAA2qN,SAAwBzvN,GAAAsxN,oBAC3BxsN,EAAA2qN,SAAezvN,GAAAsxN,oBAA4BriN,GAAA46F,cAAiBl5E,WAAU7rB,EAAK2qN,SAAAzvN,GAAAsxN,oBAAAriN,GAAA46F,eACnE/kG,EAAA2qN,SAAIzvN,GAAWsxN,oBAAKriN,GAAAm8H,YAAAz6G,WAAA7rB,EAAA2qN,SAAAzvN,GAAAsxN,oBAAAriN,GAAAm8H,aACpBtmI,EAAG2qN,SAAAzvN,GAAAsxN,oBAAkBriN,GAAAuiN,UAAA7gM,WAAA7rB,EAAA2qN,SAAAzvN,GAAAsxN,oBAAAriN,GAAAuiN,WA4YrB1sN,EAAG2qN,SAASzvN,GAAGsxN,oBAAoBriN,GAAGwiN,aAAc,EA1YpD3sN,EAAG4sN,oBAAY5sN,EAAA2qN,SAAAzvN,GAAAsxN,oBAAAriN,GAAAyiN,oBACZ5sN,EAAA2qN,SAAAzvN,GAAAsxN,oBAAAriN,GAAAyiN,sBACH5sN,EAAA2qN,SAAWzvN,GAAAsxN,oBAAqBriN,GAAAgtM,aAAA,GAiZxCn3M,EA3YGgT,YAAA,EACHhT,EAAA6qN,oBAEL,IAAA12L,KACC,KAAA,GAAWj5B,KAAA8E,GAAA2qN,SA4YH,IAAK,GAAIxgN,KAAKnK,GAAG2qN,SAASzvN,GAAGsxN,oBACzBr4L,EAAKt8B,KAAKmI,EAAG2qN,SAASzvN,GAAGsxN,oBAAoBriN,GAvY9D,IAAA0iN,KACK,KAAM,GAAA3xN,KAAA8E,GAAA2qN,SAAA,GAAA6B,oBA4YEK,EAAah1N,KAAKmI,EAAG2qN,SAAS,GAAG6B,oBAAoBtxN,GAAGsuB,WAG5DxpB,GAAG8sN,UAEH,KAAK,GAAI5xN,KAAK2xN,GAAc,CACxB,GAAI/zK,GAAO,CACX,KAAK,GAAI3uC,KAAKgqB,GA1YR04L,EAAA3xN,IAAAi5B,EAAAhqB,GAAAqf,aA4YEsvB,GAAQ3kB,EAAKhqB,GAAGuiN,UAxY7B1sN,GAAA8sN,QAAAj1N,KAAmBihD,GAsZlB94C,EAAG+sN,OA3YS,CAEb,KAAA,GAAU7xN,KAAK8E,GAAA2qN,SACd3qN,EAAA+sN,QAAclhM,WAAS7rB,EAAA2qN,SAAAzvN,GAAoBsxN,oBAAA,GAAAznH,cA6Y3C/kG,GAAGsS,WAAY,IAGpB,SA3YC3R,GA4YA5I,EA3YQ2I,YAAe,QAAK,mBAAA,oBA6YhCV,EAAGsS,WA3YY,EAgenB,QAAS8G,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,GAAqC,KAAlB8iB,EAAKC,SA6DnC,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAxYJ,IAAA,GAyYQijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAzYtDxe,EAAA,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACR,GAAA0e,GAAA,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA6YgB,IAAIF,IAAeI,EA3YnC,MAAA5Z,GAAA2Z,OAAAze,GAAA1E,OAgZQ,MAAO,GA1YX,GAAIwJ,GAAKC,IAGTD,GAAGqU,kBAzYShJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA0YZrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAvYjCrU,EAAAuU,YAAe,EACfvU,EAAAwU,qBAA0B,SAAAC,GACtBzU,EAAAuU,YAAoBE,GA6YxBzU,EAAGgT,YAzYS,EA0YZhT,EAzYG+S,WAAA,EA0YH/S,EAAGyxD,QAzYO,EA0YVzxD,EAAG6xD,OAzYC,EA0YJ7xD,EAAGynN,OACHznN,EAAGgU,OAASA,EAxYZhU,EAAAo0H,OAASA,EA0YTp0H,EAAG+qN,SAzYK,EA0YR/qN,EAAGq1M,gBACHr1M,EAAG6wM,gBACH7wM,EAAGyoN,cAzYSA,EAoBnBzoN,EAAAgrN,kBA2YO,IAAI9qN,GAAa/F,EAAsBgG,sBACvBhG,GAAsBgG,uBAAuBwU,gBAAgBxC,SAG7ED,KAuBAlS,EAAGuL,OAAS,WAzYRvL,EAAO64B,YACH74B,EAAA64B,aAAM,EA6YN74B,EAAG64B,aAAc,CAxYrB,KAAA,GAAA39B,KAAY8E,GAAA2qN,SA2YR3qN,EAAG2qN,SAASzvN,GAAGi8M,YAAcn3M,EAAG64B,aA8CxCpuB,EAAOwtM,aAAe,WAElBj4M,EAAGnB,KAAO/H,SAAS2lC,eAAe,cAAc/uB,MAAM,GA1YvD1N,EAAAgtN,SAAa9yM,IAAAC,gBAAAna,EAAAnB,MACbgM,EAAA,WAAYZ,KAAA,MAAAjK,EAAAgtN,WAGfhtN,EAAGitN,YAAS,SAAAC,EAAAp6M,GACT,GAAAo6M,EAAS/V,YACT,IAAA,GAAAj8M,KAAiB4X,GAAA05M,oBACjB15M,EAAe05M,oBAAAtxN,GAAAi8M,cACfrkM,EAAiB05M,oBAAAtxN,GAAAi8M,aAAA,EACjBrkM,EAAe05M,oBAAAtxN,GAAAyxN,aAAA,OAIX,KAAA,GAAAzxN,KAAa4X,GAAA05M,oBACb15M,EAAA05M,oBAAYtxN,GAAAi8M,aAAA,EACZrkM,EAAM05M,oBAAAtxN,GAAAyxN,aAAA,GAkZbliN,EAAOuqG,YA3YC,SAAA74G,GAEAA,IA4YA6D,EAAGo0G,aA3YYj4G,EAAAsN,OAAAiE,MAAA,KA4dvB1N,EAAGmtN,gBAAkB,WACjB,GAAI9pK,KACJ,KAAK,GAAInoD,KA3YG8E,GAAA2qN,SA4YR,IAAK,GAAIxgN,KAAKnK,GAAG2qN,SAASzvN,GAAGsxN,oBA1Y1B,GAAAxsN,EAAA2qN,SAAezvN,GAAAsxN,oBAAAriN,GAAAgtM,YAAA,CACd,GAAAl8M,IA4YQuuB,WAAYxpB,EAAG2qN,SAASzvN,GAAGsxN,oBAAoBriN,GAAGqf,WAClDgoC,OAAQxxD,EAAG2qN,SAASzvN,GAAGs2D,OACvBo3J,UAAW5oN,EAAGynN,IAAI6E,UAEtBjpK,GAAIxrD,KAAKoD,GA1YlBA,KAgZH,GAAIooD,EAAIloD,OAAS,EAAG,CA1YxB,GAASF,IACDo6M,aAAe14M,KAAAqkB,UAAAqiC,GACnBulK,UAAgB5oN,EAAAynN,IAAA6E,UAChB7pM,MAAAziB,EAAAmsN,iBACQt3J,YAAU70D,EAAAynN,IAAA5yJ,YACV/gD,UAAG5T,EAAeG,OA6YtB6rN,GAA+BkB,sBAAsBnyN,GAAKwD,KAAK,SAASC,GA1YjEA,EAAAhJ,KAAAke,aAAA,GACH7b,EAAW2I,YAAY,UAAahC,EAAMhJ,KAAAme,QAAA,6BA4YtC3B,IACAlS,EAAGynN,OA1YZznN,EAAUgT,YAAK,IA6YNjb,EAAW2I,YAAY,OAAQhC,EAAIhJ,KAAKme,QAAS,IACjD7T,EAAGgT,YAAa,IAzYvB,SAAArS,GACD5I,EAAM2I,YAAA,qCAGNrG,GAAA8C,OAAA,OAAqB,kBAAI,aAkZjC6C,EAAGqa,MA3YK,WA4YJra,EAAGsa,GAAK,GAAIb,MA1YZzZ,EAAAsa,GAAKkB,QAAGxb,EAAAsa,GAAW0B,UAAA,IA6YvBhc,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MA3YG,KAAG,EAAA,KA8YvBzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WAAY,KACZtB,QA3YK,GAAApB,MAAA,KAAA,GAAA,IA4YLgB,QA3YQza,EAAAsa,GA4YRQ,YA3Ya,GA8YjB9a,EAAGkrH,UACCtwG,aA3YIxB,EA4YJ+C,WA3YY,KA4YZtB,QAAS,GA3YGpB,MAAA,KAAW,EAAA,IA4YvBgB,QAASza,EA3YGsa,GA4YZQ,YA3YY,GA8YhB9a,EAAGmrH,cA3Ya,WA6YZnrH,EAAGkrH,SAASzwG,QAAUza,EAAGsa,IAU7Bta,EAAGgb,MA3YI,WACHhb,EAAAib,OAAQpM,QAAO,GA8YnB7O,EAAGkb,MA3YI,WACHlb,EAAAmb,OAAOtM,QAAW,CA4YlB,IA3YIwL,GAAM,GAAAZ,MA4YN06B,EA3YO,EA6YXn0C,GAAGm5B,SACCte,QAAS,GAAIpB,MAAKY,EAAM65B,cAAgBC,EAAQ95B,EAAM82B,WAAY92B,EAAM2B,aAKhFhc,EAAGob,MAAQ,WA1YPpb,EAAAqb,OAASxM,QAAA,GA8Yb7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QA3YS,GA8YvB7O,EAAGwb,QAAU,SA3YOC,EAAGC,EAAYC,GA4Y/B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SA3YS,eAAkB,aAAA,aAA4B,aA4Y1D5b,EAAG6b,OAAS7b,EAAG4b,QA3YO,GA4YtB5b,EAAG8b,iBA3YiB,cA6YpB9b,EAAGib,QACCpM,QAAQ,GAGZ7O,EAAGmb,QACCtM,QAAQ,GAzYZ7O,EAAAqb,QACIxM,QAAI,GA8YR7O,EAAGub,QACC1M,QA3YI,EA8YR,IAAIkN,GAAW,GA3YCtC,KA4YhBsC,GAASP,QA3YOO,EAAAC,UAAA,EA4YhB,IAAIC,GA3Ye,GAAAxC,KA4YnBwC,GAAcT,QA3YEO,EAAWC,UAAY,GA4YvChc,EAAG2Z,SACCN,KAAM0C,EACNvlB,OA3YQ,SA6YR6iB,KA3YG4C,EA4YHzlB,OAAQ,oNA/XhBpC,QAxYIC,OAAG,2BA0YFe,WAzYW,8BAAA62N,MAiyBpB,WACI,YAOA,SA5YOoB,GAAMtzN,EAAA0Q,EAAAxQ,EAAAD,EAAAQ,EAAAzC,EAAA0C,EAAAitB,EAAArtB,EAAAF,EAAA21D,GA6BT,QAAI97C,KA6YAhU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA3YnB/S,EAAAynN,OA+YA,QAASrzF,KA3YqBz+H,QAAtBqE,EAAOvE,OAAOC,KACdsE,EAAG8F,GAAA/H,EAAkByE,gBA8YrBwD,EA5YGgT,YAAA,EACHhT,EAAA+S,WAAS,EACT/S,EAAAynN,QAcR,QAAGv1M,KACqBvc,QAAhBqE,EAAGvE,OAAAC,KACHsK,EAAGwoN,gBAAcxuN,EAAAvE,OAAAC,KAAAs6B,qBA8YjBtI,EA5YG+B,sBAAAvpB,EAAA+oB,OAAAxqB,KAAA,SAAAC,GACc,MAAdA,EAAAlI,QA6YKwJ,EAAGwoN,gBAAkB9pN,EAAIhJ,KA3Y5BsK,EAAKsS,WAAa,GA8Yfva,EAAW2I,YAAY,QAAS,yBAA0B,kBAG/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAKhE,QAAS4sN,GAAOn2M,GAEZuQ,EAAyB6lM,aAAa9uN,KAAK,SAASC,GAC7B,MAAfA,EAAIlI,SACJwJ,EAAG2zK,QAAUj1K,EAAIhJ,KAEjByhB,MAEL,SAASxW,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAI5D,QAASsc,KACLhd,EAAGid,WAAa,CAChB,KAAK,GAAI/hB,KAAK8E,GAAG2qN,SACb,GAAgC,IAA5B3qN,EAAG2qN,SAASzvN,GAAGwxN,WAA+C/2N,QAA5BqK,EAAG2qN,SAASzvN,GAAGwxN,UAAwB,CACzE,GAAIpvM,GAAYtd,EAAG2qN,SAASzvN,GAAGwxN,SAC/B1sN,GAAGid,YAAc4O,WAAWvO,IAuIxC,QAASmrM,GA5YW31M,GA6YhB9S,EAAGsS,WAAY,EACftS,EAAGynN,IAAMrzN,QA5YO8e,KAAKJ,EA6YrB,IAAIuG,GAAO,GA5YCI,MAAMzZ,EAAAynN,IAAA4C,SA6YlB5/M,GAAO+iN,SAASn0M,GAChBrZ,EAAGynN,IAAIgG,cAAgBztN,EAAGynN,IAAIhlM,MAC9BziB,EAAG0tN,aAAe1tN,EAAGynN,IAAItyL,UACzB,IAAIl6B,IA3YAwpF,MAAI3xE,EAAAw5M,UACJx2N,UAAUgd,EAAAhd,UA6YVF,OA5YIoK,EAAA2tN,wBA6YJnkM,WA5YIxpB,EAAWynN,IAAGj+L,WA8YtBxpB,GAAG2qN,YA3Y2B,GA4Y1B3qN,EAAG2tN,wBACH1yN,EAAI2yN,kBAAoB,EAExB3yN,EA5YI2yN,kBAAa,EA6YrBlmM,EA5YuBmmM,4BAA2B5yN,GAAKwD,KAAA,SAASC,GA6Y5D,GA5YQ,MA4YJA,EA5YIlI,OAAA,CA6YJwJ,EAAG2qN,SA5YUjsN,EAAAhJ,IA6Yb,KA5YI,GAAGwF,KAAA8E,GAAA2qN,SAAa,CA6YhB3qN,EA5YG2qN,SAAAzvN,GAAA86D,YAAAnqC,WAAA7rB,EAAA2qN,SAAAzvN,GAAA86D,aAAAlqC,QAAA,GACH9rB,EAAA2qN,SAAWzvN,GAAA4yN,cAAoBjiM,WAAS7rB,EAAA2qN,SAASzvN,GAAA4yN,eAAAhiM,QAAA,GACjD9rB,EAAG2qN,SAAAzvN,GAAA6yN,cAAaliM,WAAA7rB,EAAA2qN,SAAAzvN,GAAA6yN,eAAAjiM,QAAA,GA6YhB9rB,EAAG2qN,SAASzvN,GAAG8yN,cAAgBniM,WAAW7rB,EAAG2qN,SAASzvN,GAAG8yN,eAAeliM,QAAQ,GA3YrF9rB,EAAA2qN,SAAczvN,GAAA+yN,kBAAApiM,WAAA7rB,EAAA2qN,SAAAzvN,GAAA+yN,mBAAAniM,QAAA,EACb,KAAA,GAAWjU,KAAA7X,GAAA2zK,QA6YC3zK,EAAG2zK,QAAQ97J,GAAGq2M,gBAAkBluN,EAAG2qN,SAASzvN,GAAG03D,OA3Y5D5yD,EAAA2qN,SAAAzvN,GAAA03D,KAAA5yD,EAAA2zK,QAAA97J,IA8Ya7X,EAAG2zK,QAAQ97J,GAAGq2M,gBAAkBluN,EAAG2qN,SAASzvN,GAAG43D,OAC/C9yD,EAAG2qN,SAASzvN,GAAG43D,KAAO9yD,EAAG2zK,QAAQ97J,IAEjC7X,EAAG2zK,QAAQ97J,GAAGq2M,gBAAkBluN,EAAG2qN,SAASzvN,GAAG83D,OAC/ChzD,EAAG2qN,SAASzvN,GAAG83D,KAAOhzD,EAAG2zK,QAAQ97J,IAxY/CmF,IA6YEhd,EAAGgT,YAAa,EA3YzBhT,EAAAsS,WAAA,EA6YStS,EAAG6qN,uBA1YR,SAAKlqN,GA6YJ5I,EAAW2I,YAAY,QAAS,mBAAoB,iBACpDV,EAAGsS,WAAY,IA1YnBtS,EAAAsS,WAAa,EA8cjB,QAAS8G,GAAS1jB,GA3Yf,GAAA2jB,GAAS3jB,EAAA2jB,KACR9iB,EAAQb,EAAAa,IA6YR,OAAgB,QAATA,GAAqC,KAAlB8iB,EAAKC,SAhVnC,QAAGC,GAAc7jB,GACd,GAAA2jB,GAAA3jB,EAAA2jB,KACK9iB,EAAGb,EAAAa,IA8YP,IAAa,QAATA,EA1YL,IAAA,GA2YSijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GA3Y1Cxe,EAAA,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACb,GAAY0e,GAAA,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEJ,IAAAF,IAAAI,EACF,MAAA5Z,GAAA2Z,OAAAze,GAAA1E,OAIN,MAAA,GAhaH,GAAGwJ,GAAAC,IAGHD,GAAGqU,kBAAehJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAClBrL,EAAGsU,SAAAtU,EAAAqU,gBAAe,GA8YlBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GA3YnCzU,EAASuU,YAASE,GAgZlBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA3Yf/S,EAAAyxD,QAAS,EA6YTzxD,EAAG6xD,OA5YK,EA6YR7xD,EAAGynN,OACHznN,EAAGgU,OA5YQA,EA6YXhU,EAAGo0H,OA5YQA,EA6YXp0H,EAAG+qN,SA5YQ,EA6YX/qN,EAAGq1M,gBACHr1M,EAAG6wM,gBACH7wM,EAAG2tN,wBAA0B3zN,EAAOvE,OAAOC,KAAKE,OAChDoK,EAAGyoN,cAAgBA,EACnBzoN,EAAGstN,OAASA,EA3YZttN,EAAGgd,MAAAA,EAgaHhd,EAAGgrN,kBAEH,IAAI9qN,GA5YO/F,EAAcgG,sBACbhG,GAAuBgG,uBAASwU,gBAAoBxC,SA+YhED,KACAo7M,IA+CAttN,EAAGmuN,UAAY,WAEX,GAA0Bx4N,QAAtBqK,EAAGynN,IAAI5yJ,aAAkD,MAAtB70D,EAAGynN,IAAI5yJ,YAC1C,GAAwBl/D,QAAnBqK,EAAGo0G,cAAgDz+G,QAAnBqK,EAAG0tN,cAAoD/3N,QAAtBqK,EAAGynN,IAAI5yJ,aAAqDl/D,QAAxBqK,EAAGynN,IAAIgG,eAAsD,IAAxBztN,EAAGynN,IAAIgG,cAiE5H93N,QAAlBqK,EAAG60D,YA3YJx6D,EAAA8C,OAAa,UAAA,4BAAA9F,WAAA,EAAA+F,KAAA,OACOzH,QAApBqK,EAAAynN,IAAAgG,eAAoB,IAAAztN,EAAAynN,IAAAgG,cA6YnBpzN,EAAQ8C,OAAO,UAAW,+BAAiC9F,WAAW,EAAM+F,KAAM,OA1YtF/C,EAAS8C,OAAQ,UAAU,sBAAA9F,WAAA,EAAA+F,KAAA,WAsU6I,CACxK,GAAIi1B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG2qN,SAAU,CACvB,GAAI1vN,IACAu2D,OAAQxxD,EAAG2qN,SAASzvN,GAAGs2D,OACvBt0C,SAAsCvnB,QAA3BqK,EAAG2qN,SAASzvN,GAAGgiB,SAAyBld,EAAG2qN,SAASzvN,GAAGgiB,SAAW,EA3Y1Fu1C,SAA0B98D,QAAXqK,EAAW2qN,SAAAzvN,GAAAkzN,SAAApuN,EAAA2qN,SAAAzvN,GAAAkzN,SAAA,EA6Ybx7J,KAA4Cj9D,QAArCqK,EAAG2qN,SAASzvN,GAAG03D,KAAKs7J,cAA8BluN,EAAG2qN,SAASzvN,GAAG03D,KAAKs7J,cAAgB,EA3YnGp7J,KAA4Cn9D,QAAnCqK,EAAA2qN,SAAezvN,GAAA43D,KAAAo7J,cAAoBluN,EAAA2qN,SAAAzvN,GAAA43D,KAAAo7J,cAAA,EACxCl7J,KAAuBr9D,QAAnBqK,EAAA2qN,SAAgBzvN,GAAG83D,KAAAk7J,cAAAluN,EAAA2qN,SAAAzvN,GAAA83D,KAAAk7J,cAAA,EACxBxB,UAAe/2N,QAAAk2B,WAAA7rB,EAAA2qN,SAAAzvN,GAAAwxN,WAAA1sN,EAAA2qN,SAAAzvN,GAAAwxN,UAAA,EA8YhBr6L,GAAIx6B,KAAKoD,GA1Yb,GAAa,GAAb+E,EAAA2tN,wBAAa,CACZ,GAAIvvN,GAAS,GAAAH,SACVG,GAAKF,OAAA,aAAuB8B,EAAAo0G,cAC5Bh2G,EAAIF,OAAA,QAAoB8B,EAAGynN,IAAA6E,WAC3BluN,EAAIF,OAAA,aAAuB8B,EAAAynN,IAAAj+L,YA6Y3BprB,EAASF,OAAO,cAAe8B,EAAGynN,IAAI5yJ,aACtCz2D,EAASF,OAAO,QAAS8B,EAAGynN,IAAIgG,eA3YrCrvN,EAAAF,OAAA,cAAAvB,KAAAqkB,UAAAqR,IACE3K,EAAa2mM,cAAqBjwN,GAAAK,KAAA,SAAAC,GAC/BA,EAAAhJ,KAAAke,aAAuB,GACvB7b,EAAA2I,YAAuB,UAAchC,EAAAhJ,KAAAme,QAAA,uBA6YHle,QAAtBqE,EAAOvE,OAAOC,KACdsE,EAAO8F,GAAG/H,EAAWyE,gBAErB0V,IACAlS,EAAGgT,YAAa,KAGpBjb,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,uBA3YlE7T,EAAAgT,YAAA,IA8YW,SAASrS,GACR5I,EAAW2I,YAAY,qCA1YpC,CACA,GAAAzF,KACAA,GAAYwpF,MAAAzkF,EAAAynN,IAAA6E,UACNrxN,EAAAuuB,WAAaxpB,EAAAynN,IAAAj+L,WACZvuB,EAAAwnB,MAAAziB,EAAAynN,IAAAgG,cACCxyN,EAAIqzN,YAAA3xN,KAAAqkB,UAAAqR,GACXp3B,EAAWk6B,WAAIn1B,EAAA0tN,aACfzyN,EAAU45D,YAAW70D,EAAAynN,IAAA5yJ,YA6YbntC,EAAyB6mM,gBAAgBtzN,GAAKwD,KAAK,SAASC,GA3Y1DA,EAAAhJ,KAAAke,aAAA,GACd7b,EAA+B2I,YAAA,UAAAhC,EAA2BhJ,KAAKme,QAAK,uBACxCle,QAALqE,EAAKvE,OAAAC,KACNsE,EAAI8F,GAAA/H,EAAAyE,gBAEF0V,IACHlS,EAAKgT,YAAY,KAGnBjb,EAAY2I,YAAA,QAAoBhC,EAAGhJ,KAAAme,QAAY,uBAC/C7T,EAAAgT,YAAY,IA8YhB,SA5YQrS,GA6YP5I,EA5YO2I,YAAY,kCAyZnCrG,EAAQ8C,OAAO,UAAW,4BAA8B9F,WAAW,EAAM+F,KAAM,QAGnFqN,EAAO+iN,SA5YS,SAAAn0M,GA6YZ,GAAIgB,GA5YI,GAAKZ,MA6YT+0M,EAAKn0M,EA5YG2B,UA6YRyyM,EAAKp0M,EAAM82B,WAAa,EACxBu9K,EAAOr0M,EAAM65B,aACbs6K,GA5YI,KA6YJA,EAAK,IAAMA,GAEXC,EAAK,KACLA,EAAK,IA5YGA,GA8YZp0M,EAAQq0M,EAAO,IA5YKD,EAAA,IAAQD,EA6Y5B/jN,EAAO4P,MAAQA,CACf,IAAIs0M,GAAQ,GAAIl1M,MAAKY,GACjBu0M,EA5YQ,GAAGn1M,MAAAJ,EA+YXu1M,GAAQD,IACR3uN,EAAG6uN,UAAW,EACdx0N,EAAQ8C,OAAO,UAAW,sEACtB9F,WAAW,EACX+F,KAAM,SAKlB4C,EAAGqjI,SAAW,SAASvwH,EAAKrW,GAGxB,GAAIhI,GAAM,EACV,IA5YuB,GA4YnBuL,EAAG2tN,yBA5YgBlxN,EA6YnBhI,EAAMsD,EAAW8D,SAAW,uCAAyCY,MAClE,CA3YJ,GAAAmB,GAAS,GAAKC,OAAAiV,IACb/U,KAAA+U,EAAW/U,MAEZtJ,IAAAC,OAAYwlB,KAAAxlB,OAAA4uI,WAAAnpH,gBAAAvc,GA8YfnD,EAAQ4E,KAAK5K,EAAK,WAGtBgW,EA5YIuqG,YAAiB,SAAA74G,GA8YbA,IACA6D,EAAGo0G,aA5Yej4G,EAAAsN,OAAAiE,MAAA,KAuD1B1N,EAAG8uN,YAAa,SAAAh8M,GACZA,EAAAm7M,mBAAcpiM,WAAA/Y,EAAAkjD,aAAAnqC,WAAA/Y,EAAAoK,WAAA2O,WAAAl2B,QAAAmd,EAAAs7M,UAAA,IAAAt7M,EAAAs7M,SAAAjrN,WAAA+kC,OAAAp1B,EAAAs7M,SAAA,GAAA,MAAAtiM,QAAA,GACdhZ,EAAAi8M,cAAYljM,WAAAA,WAAA/Y,EAAAkjD,aAAAnqC,WAAA/Y,EAAAoK,UAAA2O,WAAA/Y,EAAAm7M,oBAAAniM,QAAA,GACZ9rB,EAAAgvN,QAASl8M,IA+Yb9S,EAAGgvN,QAAU,SAASl8M,GAClBA,EAAIg7M,cAAgBjiM,WAAWA,WAAW/Y,EAAIi8M,gBAAkBljM,WAAwBl2B,QAAZmd,EAAI8/C,KAAqB9/C,EAAI8/C,KAAKs7J,cAAgB,GAAK,MAAMpiM,QAAQ,GA3YlJhZ,EAAA45M,UAAW7gM,WAAAA,WAAA/Y,EAAAi8M,eAAAljM,WAAA/Y,EAAAg7M,gBAAAhiM,QAAA,GACV9rB,EAAAivN,QAAAn8M,IA+YJ9S,EAAGivN,QA5YU,SAAGn8M,GACZA,EAAAi7M,cAAaliM,WAAAA,WAAA/Y,EAAAi8M,gBAAAljM,WAAAl2B,QAAAmd,EAAAggD,KAAAhgD,EAAAggD,KAAAo7J,cAAA,GAAA,MAAApiM,QAAA,GA6YbhZ,EAAI45M,UAAY7gM,WAAWA,WAAW/Y,EAAIi8M,eAAiBljM,WAAW/Y,EAAIg7M,eAAiBjiM,WAAW/Y,EAAIi7M,gBAAgBjiM,QAAQ,IAItI9rB,EAAGkvN,QA5YI,SAASp8M,GA6YRA,EAAIk7M,cAAgBniM,WAAWA,WAAW/Y,EAAIi8M,gBAAkBljM,WAAwBl2B,QAAZmd,EAAIkgD,KAAqBlgD,EAAIkgD,KAAKk7J,cAAgB,GAAK,MAAMpiM,QAAQ,GACjJhZ,EAAI45M,UAAY7gM,WAAWA,WAAW/Y,EAAIi8M,eAAiBljM,WAAW/Y,EAAIg7M,eAAiBjiM,WAAW/Y,EAAIi7M,eAAiBliM,WAAW/Y,EAAIk7M,gBAAgBliM,QAAQ,GAClK9O,KAIRhd,EAAGqa,MA5YQ,WA6YPra,EAAGsa,GAAK,GAAIb,MACZzZ,EAAGsa,GAAGkB,QAAQxb,EAAGsa,GAAG0B,UAAY,IAEpChc,EAAGqa,QAEHra,EAAG0X,MAAQ,WA3YR1X,EAAAsa,GAAQ,MA+YXta,EAAGua,eACCC,YAAajB,EA3YbkB,QAAG,GAAUhB,MAAA,KAAA,EAAA,KA+YjBzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WAAY,KA3YbtB,QAAQ,GAAApB,MAAW,KAAA,GAAA,IAClBgB,QAAGza,EAAOsa,GA6YVQ,YAAa,GAGjB9a,EAAGkrH,UACCtwG,aAAcxB,EACd+C,WAAY,KA3YbtB,QAAU,GAAApB,MAAS,KAAM,EAAA,IACxBgB,QAAQza,EAAIsa,GA6YZQ,YAAa,GAzYjB9a,EAAGmrH,cAAY,WA8YXnrH,EAAGkrH,SAASzwG,QAAUza,EAAGsa,IAU7Bta,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,GAGvB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CA3YnB,IAAAwL,GAAW,GAAIZ,MACnB06B,EAAiB,EAEjBn0C,GAAAm5B,SACGte,QAAU,GAAApB,MAAAY,EAAA65B,cAAAC,EAAA95B,EAAA82B,WAAA92B,EAAA2B,aAiZbhc,EAAGob,MA5YC,WA6YApb,EAAGqb,OAAOxM,QAAS,GAGvB7O,EAAGsb,MA5YK,WA6YJtb,EAAGub,OA5YC1M,QAAY,GA+YpB7O,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GA5YC,GAAKb,MAAQgC,EAAGC,EAAOC,IA+Y/B3b,EAAG4b,SA5YS,eAAI,aAA2B,aAAA,aA6Y3C5b,EAAG6b,OAAS7b,EAAG4b,QA5YQ,GA6YvB5b,EAAG8b,iBAAmB,cAEtB9b,EAAGib,QA3YCpM,QAAO,GA+YX7O,EAAGmb,QACCtM,QAAQ,GAEZ7O,EAAGqb,QACCxM,QAAQ,GAzYnB7O,EAAAub,QACG1M,QAAA,EAEA,IAAAkN,GAAA,GAAAtC,KA8YIsC,GA7YQP,QAAAO,EAAAC,UAAA,EA8YR,IA7YCC,GAAW,GAAAxC,KA8YZwC,GAAcT,QAAQO,EAASC,UAAY,GAC3Chc,EAAG2Z,SA5YPN,KAAS0C,EACDvlB,OAAK,SA+YL6iB,KAAM4C,EA5YPzlB,OAAA,6LATPpC,QA3YIC,OAAG,2BACHe,WAAG,wBAAYi4N,MA2zBvB,WACI,YAQA,SAAS8B,GA7YkBl1N,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAN,EAAAQ,EAAAygD,EAAA9gD,EAAAyJ,EAAA49C,EAAAquB,EA8YvBj1B,EA7YiBG,EAAA3gD,EAAA4X,EAAA0vE,EAAAngC,EAAA1G,EAAA5oC,EAAAJ,EA8YjB8oC,EAAoBK,EAAsBtgD,EAAS+mD,GA6DnD,QA7YQ0vF,KA8YJlxI,GAAGu7C,eACCC,aA7Ya,MA8YbnzB,KAAM,MAENmzB,aA7YY,UA8YZnzB,KAAM,MAENmzB,aA7YY,WA8YZnzB,KAAM,OAELroB,GAAGu7C,aAAapgD,OAAS,GAC1Bd,EA7YQ8C,OAAI,UAAK,gEA8Yb9F,WAAW,EA5YX+F,KAAI,OAyZhB,QAASmrD,GAAgB6mK,GAErBpvN,GAAG0hD,iBAAiB2tK,YA7YI,KA8YV,GAAVD,GA7YoC,GA6YrBpvN,GAAG0hD,iBA7YK7/B,gBAAa1mB,OA8YpC6E,GAAGsvN,UACCC,mBA7Ye,iBA8YfC,iBA7YY,IAGS,GA6YpBxvN,GAAG0hD,iBA7YiB7/B,gBAAA1mB,SAMO,GA6Y5B6E,GAAG0hD,iBA7YK+tK,mBAAoBC,aA8Y5B1vN,GAAGsvN,UA5YCC,mBAAkB,iBAAeC,iBAAA,IACjCD,mBAAoB,qBAAAC,iBAAA,IACpBD,mBAAqB,mBAAIC,iBAAA,IAkZ7BxvN,GAAGsvN,UACGC,mBA7Ya,iBAAAC,iBAAA,IA8YbD,mBA7YU,qBAAAC,iBAAA,IA8YVD,mBA7Ya,mBAAaC,iBAAA,KAsb5C,QA7YQG,GAAGP,GA+YPpvN,GAAG0hD,iBA7YgBiuK,OAAA,KACL,GA6YVP,IACApvN,GAAG4vN,cACgD,GAA/C5vN,GAAG0hD,iBAAiBqC,iBAAiB5oD,OACrC6E,GAAG4vN,aACCC,aAAc,WA5YhBC,eAAc,IA+YZD,aAAc,cA5YhBC,eAAA,IAGHD,aAAA,OACCC,eAAiB,IAGdD,aAAc,OA8YbC,eAAgB,IAzYzB9vN,GAAA4vN,aA8YSC,aAAc,4BA5YtBC,eAAA,IA+YQD,aAAc,oCACdC,eAAgB,KAWhC,QA7YQ59M,KACAC,GAGAH,EAAGI,mBAA2BD,IAAA1T,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,SA8YIwJ,GAAGqS,YAAc3T,EAAIhJ,KA5YzBsK,GAAAsS,WAAA,GAGGtS,GAAAqS,YAAelX,OAAA,GACbd,EAAS8C,OAAG,UAAU,mCACpB9F,WAAY,EACZ+F,KAAS,SAkZjB,SA7YSuD,GA8YR5I,EAAW2I,YA7YI,QAAY,mBAAkB,qBAiZjDV,GAAG0hD,iBAAiB7/B,gBAAkB,KACtC7hB,GAAG2hB,gBAGP3hB,GAAG+vN,8BA3YKC,kBAAA,UAAAC,gBAAA,MAEAD,kBAAe,oBACfC,gBAAG,OAERD,kBAAc,+BACbC,gBAAW,OA+YPD,kBAAmB,qBA5YxBC,gBAAY,OA+YPD,kBAAmB,2CACnBC,gBAAiB,OAzYzBjwN,GAAGkwN,qBA8YCd,OAAQ,EACRe,eAAgB,cA1YhBf,OAAA,EACDe,eAAQ,kBAIXnwN,GAAAowN,4BACIC,SAAA,EA8YAC,sBAAuB,0BA1Y5BD,SAAU,EACLC,sBAAoB,qBAkZxBtwN,GAAGstI,kBA5YJ30F,YAAQ,aAgZHA,YAAa,UA9VjB34C,GAAAuwN,WAEGziE,SAAU,eACTtnB,OAAS,IAgZLsnB,SAAU,UACVtnB,OAAQ,IAGRsnB,SAAU,eACVtnB,OAAQ,IAMpB,QA7YOgqF,KA+YHxwN,GAAGywN,cA5YqC96N,QAAzCqK,GAAA0hD,iBAAWqC,mBACX/jD,GAAA0hD,iBAAoBgvK,eAAA,KACD,GAAnB1wN,GAAA0hD,iBAAmBqC,iBAAA5oD,SA8YV6E,GAAGywN,aA5YHE,WAAA,WACAC,SAAA,IAGAD,WAAA,eACAC,SAAA,KAiZE5wN,GAAG0hD,iBAAiBqC,iBAAiB5oD,OAAS,GAC5C6E,GAAG0hD,iBAAiB+tK,qBA5YxB,iBAAAzvN,GAAA0hD,iBAAA+tK,mBAAAoB,eACA7wN,GAAAywN,aA8YYE,WAAY,WACZC,SAAU,IA1YVD,WAAA,eACFC,SAAS,IAKrB5wN,GAAAywN,aACEE,WAAA,WA8YYC,SAAU,MA/VlC,QAAGnvM,GAAqBtP,GACrB2+M,IACAl/M,EAAA8P,eAA4BvP,GAAA1T,KAAA,SAAAC,GACV,MAAlBA,EAAAlI,QACAwJ,GAAA2hB,YAAiBjjB,EAAAhJ,KACjBsK,GAAAsS,WAAe,GAEftS,GAAA2hB,YAAkBxmB,OAAA,GACPd,EAAA8C,OAAA,UAAA,oDACD9F,WAAA,EACA+F,KAAA,QAIVrF,EAAc2I,YAAA,QAAA,yBAAA,mBAEd,SAAAC,GACA5I,EAAA2I,YAAqB,QAAA,mBAAA,oBAIxB,QAAGwxG,KAGA,GADAnoD,IAC+B,MAA/B/pD,GAAA0hD,iBAAA+tK,mBACA,GAAAx0N,IACA6oD,WAAgBnuD,QAAAqK,GAAA0hD,iBAAAqC,iBAAA/jD,GAAA0hD,iBAAAqC,iBAAAD,WAAA,GAChBhuD,UAAekK,GAAA0hD,iBAAA7/B,gBAAA,GAAA/rB,UACfF,OAAAoK,GAAA0hD,iBAAwBqvK,uBAAA3B,OAExB/qK,aAAmBrkD,GAAA0hD,iBAAA+tK,mBAAAC,aAGV,KAAT1vN,GAAA0hD,iBAASsvK,kBAAAX,WAGTp1N,EAAA+oD,MAAAsB,KAEAsqB,EAAA9qB,UAA8B7pD,GAAAwD,KAAA,SAAAC,GAC9B,MAAAA,EAAAlI,QA+YSyxD,GAAajoD,GAAG0hD,iBAAiB7/B,gBAAgB,GAAG/rB,WACpDkK,GAAGk7C,QAAUx8C,EAAIhJ,KA7Y1BsK,GAAAsS,WAAsB,GAUhBva,EAAY2I,YAAA,QAAA,yBAAA,0BAgZd,SA9YCC,GACA5I,EAAM2I,YAAA,QAAA,mBAAA,2BAyad,QA9YQo8C,GAAchnD,EAAAugB,GAgZlB4zC,GA9YQ,IAAAgnK,KA+YR,KAAK,GAAI/1N,KAAK8E,IAAG0hD,iBAAiBlF,YAC9By0K,EAAQp5N,KAAKmI,GAAG0hD,iBAAiBlF,YAAYthD,GAAGwgD,sBAEpD,IAAIrlC,GAAavgB,GAAuDH,QAA1CqK,GAAG0hD,iBAAiB+tK,mBAAiC,CAC/E,GAAIxyN,IACAoZ,UAAWA,EACX2mC,MAAOi0K,EAAQv9L,QA5Yfz4B,GACA6oD,WAAanuD,QAAAqK,GAAA0hD,iBAAAqC,iBAAA/jD,GAAA0hD,iBAAAqC,iBAAAD,WAAA;AA+YbhuD,UA9YMA,EA+YNF,OA9YMoK,GAAA0hD,iBAAoBqvK,uBAAsB3B,OA+YhD/qK,aA9YMrkD,GAAA0hD,iBAAoB+tK,mBAAoBC,aA+Y9CxqK,UAAWvoD,KAAKqkB,UAAU/jB,GA3YzB,KA8YD+C,GA9YC0hD,iBAAAsvK,kBAAAX,WACDp1N,EAAG+oD,MAAAsB,KAgZPsqB,EA9YUzqB,eAAoBlqD,GAAAwD,KAAA,SAAsBC,GAC1C,MAAFA,EAAElI,QA+YFwJ,GAAGkxN,UAAW,EACdlxN,GAAGsS,WAAY,EACftS,GAAG47C,aAAel9C,EAAIhJ,MACjBsK,GAAG47C,aAAazgD,OAAS,IAC1B6E,GAAGkxN,UAAW,EACd72N,EAAQ8C,OAAO,UAAW,iDA7YxB9F,WAAU,EACZ+F,KAAQ,SAIZrF,EAAA2I,YAAc,QAAA,yBAAA,oBAgZnB,SA9YIC,GA+YH5I,EA9YI2I,YAAc,QAAA,mBAAA,sBAoZ9B,QAAS08C,KAEL,GADA8M,IA7Y0Bv0D,QA8YtBqK,GAAG0hD,iBA9YK/D,kBAAc39C,GAAA0hD,iBAAA/D,iBAAAxiD,OAAA,EAAA,CA+YtB,GAAIk3B,MA9YI4+L,IA+YR,KAAK,GAAI/1N,KAAK8E,IAAG0hD,iBAAiB/D,iBAC9BtrB,EAAIx6B,KAAKmI,GAAG0hD,iBAAiB/D,iBAAiBziD,GAAGghD,WAErD,KA9YI,GAAGhhD,KAAA8E,IAAA0hD,iBAAclF,YA+YjBy0K,EA9YIp5N,KAAAmI,GAAA0hD,iBAAclF,YAAAthD,GAAAwgD,sBAiZtB17C,IAAGyjD,SA9YKpxB,EAAAqB,MA+YR,IAAIz2B,IACA+/C,MAAOi0K,EAAQv9L,OACfrd,UAAWrW,GAAG0hD,iBAAiB7/B,gBAAgB,GAAGxL,UAClD6lC,WAAYl8C,GAAGyjD,UAGfxoD,GACA6oD,WAAqDnuD,QAAxCqK,GAAG0hD,iBAAiBqC,iBAAiC/jD,GAAG0hD,iBAAiBqC,iBAAiBD,WAAa,GA7YvHhuD,UAAOkK,GAAQ0hD,iBAAA7/B,gBAAA,GAAA/rB,UA+YZF,OAAQoK,GAAG0hD,iBAAiBqvK,uBAAuB3B,OA7YxD/qK,aAAiBrkD,GAAA0hD,iBAAS+tK,mBAAAC,aACzBxqK,UAAavoD,KAAAqkB,UAAA/jB,GAGQ,KAAjB+C,GAAG0hD,iBAAcsvK,kBAAAX,WA+YjBp1N,EA9YI+oD,MAAAsB,KAgZRsqB,EA9YOrqB,kBAAAtqD,GAAAwD,KAAA,SAAAC,GACe,MAAdA,EAAAlI,QACAwJ,GAAAo8C,gBAAgB19C,EAAAhJ,KA+YhBsK,GAAGsS,WAAY,GA7YnBtS,GAAAo8C,gBAAAjhD,OAAA,GACId,EAAA8C,OAAc,UAAA,yDACd9F,WAAgB,EA+YR+F,KAAM,QAIdrF,EAAW2I,YAAY,QAAS,yBAA0B,gBAE/D,SA9YEC,GACD5I,EAAG2I,YAAc,QAAA,mBAAA,kBAoZ7B,QAAS48C,KAEL,GADAkI,IAC+C7vD,QAA3CqK,GAAG0hD,iBAAiB7D,qBAAoC79C,GAAG0hD,iBAAiB7D,oBAAoB1iD,OAAS,EAAG,CAC5G,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,IAAG0hD,iBAAiB7D,oBAC9BxrB,EAAIx6B,KAAKmI,GAAG0hD,iBAAiB7D,oBAAoB3iD,GAAG22B,cAExD7xB,IAAGwjD,YAAcnxB,EAAIqB,MAErB,IAAIz2B,IA7YH+/C,MAAOh9C,GAAA0hD,iBAAAlF,YAAAd,sBACRrlC,UAAWrW,GAAA0hD,iBAAA7/B,gBAAA,GAAAxL,UA+YP6lC,WAAYl8C,GAAGyjD,SACf5xB,cAAe7xB,GAAGwjD,aAGlBvoD,GACA6oD,WA9YmBnuD,QAAZqK,GAAA0hD,iBAAYqC,iBAAA/jD,GAAA0hD,iBAAAqC,iBAAAD,WAAA,GA+YnBhuD,UAAWkK,GAAG0hD,iBAAiB7/B,gBAAgB,GAAG/rB,UAClDF,OAAQoK,GAAG0hD,iBAAiBqvK,uBAAuB3B,OACnD/qK,aA9YYrkD,GAAA0hD,iBAAqB+tK,mBAAGC,aA+YpCxqK,UA9YQvoD,KAAQqkB,UAAO/jB,GAiZ4B,KAAnD+C,GAAG0hD,iBAAiBsvK,kBAAkBX,WACtCp1N,EAAI+oD,MAAQsB,KAEhBsqB,EAAyBnqB,WAAWxqD,GAAKwD,KAAK,SAAUC,GA7YtC,MAAfA,EAAAlI,QACCwJ,GAAAizB,SAAWv0B,EAAAhJ,KA+YPsK,GAAGsS,WAAY,GACVtS,GAAGizB,SAAS93B,OAAS,GA7YjCd,EAAA8C,OAAA,UAAA,6DACE9F,WAAiB,EACjB+F,KAAc,QAIjBrF,EAAA2I,YAAA,QAAA,yBAAA,eAEG,SAAAC,GACC5I,EAAA2I,YAAmB,QAAA,mBAAA,iBAuZ/B,QAASywN,KA7YoBx7N,QA8YrBqK,GAAG0hD,iBA9YC7C,kBAAiB7+C,GAAA0hD,iBAAA7C,iBAAA1jD,OAAA,GAgZrB+1I,IAOR,QA9YQzzF,KAgZJ,GADAiyC,IAC4C/5F,QAAxCqK,GAAG0hD,iBAAiB7C,kBAAiC7+C,GAAG0hD,iBAAiB7C,iBAAiB1jD,OAAS,EAAG,CACtG,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,IAAG0hD,iBAAiB7C,iBA7YnCxsB,EAAAx6B,KAAAmI,GAAA0hD,iBAA6B7C,iBAAA3jD,GAAA8kB,OAE5BhgB,IAAA2lD,KAAAtzB,EAAAqB,MA+YA,IAAIz2B,IA7YR+/C,MAAAh9C,GAAA0hD,iBAAAlF,YAAAd,sBACIrlC,UAAUrW,GAAA0hD,iBAAA7/B,gBAAA,GAAAxL,UACV6lC,WAAAl8C,GAAAyjD,SA+YI5xB,cAAe7xB,GAAGwjD,YAClBxjC,OAAQhgB,GAAG2lD,KACX5G,SAAU/+C,GAAG0hD,iBAAiBzD,iBAAiB51B,MA3YnDptB,GA+YI6oD,WAAqDnuD,QAAxCqK,GAAG0hD,iBAAiBqC,iBAAiC/jD,GAAG0hD,iBAAiBqC,iBAAiBD,WAAa,GA7Y5HhuD,UAAAkK,GAAA0hD,iBAAA7/B,gBAAA,GAAA/rB,UACIF,OAAAoK,GAAa0hD,iBAAAqvK,uBAAA3B,OA+YT/qK,aAAcrkD,GAAG0hD,iBAAiB+tK,mBAAmBC,aACrDxqK,UAAWvoD,KAAKqkB,UAAU/jB,GAGyB,KAAnD+C,GAAG0hD,iBAAiBsvK,kBAAkBX,WACtCp1N,EAAI+oD,MAAQsB,KAEhBsqB,EAAyBhqB,WAAW3qD,GAAKwD,KAAK,SAAUC,GACjC,MAAfA,EAAIlI,QACJwJ,GAAGm+C,SAAWz/C,EAAIhJ,MAEbsK,GAAGm+C,SAAShjD,OAAS,GACtB6E,GAAG6lD,cAAe,EAClBxrD,EAAQ8C,OAAO,UAAW,sDACtB9F,WAAW,EACX+F,KAAM,QAGV4C,GAAG6lD,cAAe,GAGtB9tD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,OAIrB,QAASy9C,KACmCzoD,QAApCqK,GAAG0hD,iBAAiBmwD,cAA6B7xG,GAAG0hD,iBAAiBmwD,aAAa12G,OAAS,EAkBnG,QA9YOm1N,GAAWD,GAEN,IA8YJA,GAEAn+G,EAAcm+G,GAGdrpK,MAGAlB,EA9YcuqK,GA+YdtmK,KAGJ/pD,GAAGuoD,gBAAgBvoD,GAAG0hD,iBAAiBqvK,uBAAuB3B,QA3YlE,QAAStpK,KAkZL,GAhZA87F,IAEyC,GAArC5hJ,GAAG0hD,iBAAiBsvK,kBAAiBX,UAAA,MAAArwN,GAAA0hD,iBAAA+tK,mBAAA,CACrC,GAAIp9L,KA+YJ,KA9YI,GAAGn3B,KAAA8E,IAAA0hD,iBAAcmwD,aA+YjBx/E,EA9YIx6B,KAAAmI,GAAA0hD,iBAAYmwD,aAAA32G,GAAA+7B,QAiZpB,IA9YIh8B,IA+YAnF,UA9YIkK,GAAA0hD,iBAAY7/B,gBAAA,GAAA/rB,UA+YhBytD,KA9YIlxB,EAAAqB,OA+YJ2wB,aAAcrkD,GAAG0hD,iBAAiB+tK,mBAAmBC,kBAIzD,IA9Y4B,MAAxB1vN,GAAA0hD,iBAAO+tK,mBA+YP,GA9YIx0N,IA+YAnF,UA9YOkK,GAAA0hD,iBAAc7/B,gBAAA,GAAA/rB,UA+YrBuuD,aA9YQrkD,GAAA0hD,iBAAY+tK,mBAAAC,aAqZc,OAA1C1vN,GAAG0hD,iBAAiB+tK,oBACpB70K,EAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAAUC,GA7YjD,MA8YLA,EAAIlI,QACJwJ,GAAG68C,eA9YiBn+C,EAAChJ,MA+YhBsK,GA9YG68C,eAAY1hD,OAAA,GA+YhBpD,EA9YI2I,YAAU,OAAA,uDAAA,WAgZlBV,GAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,oBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAKhE,QA9YQumD,GAAoBnxD,EAAAyI,GA+YxBiyN,IA7YyB76N,QA8YrBqK,GAAG0hD,iBA9YiBqC,mBACA,GA8YhB/jD,GAAG0hD,iBA9YaqC,iBAAA5oD,SA+YhB6E,GAAG2uG,QA9YChyG,KAAUC,MAAAoD,GAAA0hD,iBAAAqC,iBAAA,GAAAC,OA+YdhkD,GAAG4uG,YAAc5uG,GAAG2uG,QAAQE,MAE5BttD,EA9YgBqnC,gBAAA5oF,GAAA0hD,iBAAAqC,iBAAA,GAAAD,YAAArlD,KAAA,SAAAC,GACZ,GAAU,MAAVA,EAAAlI,OAAU,CA+YNwJ,GAAG4mD,YAAcloD,EAAIhJ,KACrBsK,GAAGonD,WACH,KAAK,GAAI+tD,KAAcn1G,IAAG2uG,QAAS,CA7YtC,GAAA71D,IACE2O,SAAiBznD,GAAA2uG,QAAAwG,GACjB59F,UAAc,EACbmwC,SAAYytD,EAgZW,WAAfA,IA7YZr8D,EAAAgO,OAAAtsD,EAAAyC,OAAA+C,GAAA4mD,aACgBa,SAAAznD,GAAA2uG,QAAAwG,MAiZRn1G,GAAGonD,SAASvvD,KAAKihD,GA5YxB94C,GAAAo1G,cAAA56G,EAAAyC,OAAA+C,GAAA4mD,aACEa,SAAcznD,GAAA4uG,cAEb5uG,GAAAsS,WAAU,MAiZVva,GAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,iBA3YhE,IAAAV,GAAA0hD,iBAAAsvK,kBAAAX,UACAn+G,KAoZJ,QAAS9rD,GA9YOc,GA+YZ,GAAIV,GAAW,QA9YC5/C,SAAWsgD,EAAAQ,SAAApkC,UAAA,IAAA,EA+Y3BtjB,IAAG4uG,YA9Ya5uG,GAAA2uG,QAAMnoD,GA+YtBxmD,GAAGo1G,cAAgB56G,EAAOyC,OAAO+C,GAAG4mD,aAChCa,SAAYznD,GAAG4uG,YACfyG,aA9YOnuD,EAAA47C,kBAAA/7C,SAgZXvsD,EAAOqI,QAAQ7C,GAAGonD,SAAU,SAAUP,GA7YnCA,EAAAa,WAAelB,IACdK,EAAAC,OAAW9mD,GAAAo1G,iBAIM,IAAzBp1G,GAAS0hD,iBAAgBsvK,kBAAAX,UA+YjBn+G,IAMR,QAAS5sD,KACL,GAAIwpD,IACA7xG,UAMJ,OAJAzC,GAAOqI,QAAQ7C,GAAGonD,SAAU,SAAUF,GA7Y/BA,EAAA47C,oBA+YCgM,EAAM7xG,OAAOiqD,EAAKQ,UAAYR,EAAK47C,kBAAkB/7C,UA5YzDpqD,KAAIqkB,UAAQ8tF,GA2ZpB,QAAS7nC,KAELjnE,GAAGsS,WA9YQ,CA+YX,IAAIpS,GA9YI/F,EAAuBgG,uBAG3B2uG,EAAAxpD,IAgZA9C,EAAa,IAEjB,IAAmD,IAA/CxiD,GAAG0hD,iBAAiB7/B,gBAAgB1mB,OAAc,CAoDlD,GAlDIqnD,EADiD,YAAjDxiD,GAAG0hD,iBAAiBgvK,eAAeC,WACtB,uBAEA,0BAG4C,oBAAzD3wN,GAAG0hD,iBAAiB+tK,mBAAmBoB,iBAM/BruK,EAF2C,GAA/CxiD,GAAG0hD,iBAAiBgvK,eAAeE,SACsB,IAArD5wN,GAAG0hD,iBAAiB2tK,YAAYG,iBACnBhtK,EAAa,IAAMxiD,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,SAAWvvN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,MAAQnwN,GAAG0hD,iBAAiB2F,KAAKI,SACvL,YAAmBznD,GAAG0hD,iBAAiBsvK,kBAAkBV,sBAAwB,SAE1E9tK,EAAaxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,SAAW7wN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OACnJnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,MAAQvvN,GAAG0hD,iBAAiB2F,KAAKI,SAAW,SAKlD,IAArDznD,GAAG0hD,iBAAiB2tK,YAAYG,iBA7YtBhtK,EAAW,IAAWxiD,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,SAAAvvN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,MAChDnwN,GAAA0hD,iBAAA2F,KAAAI,SAAA,YAAAznD,GAAA0hD,iBAAAsvK,kBAAAV,sBAAA,SAEiB9tK,EAAiBxiD,GAAA0hD,iBAAa+tK,mBAAAoB,eAAA,SAC3B7wN,GAAA0hD,iBAAiBqvK,uBAAeZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,oBAoZ5CvvN,GAAG0hD,iBAAiB+tK,mBAAmBC,aAAe,GAAK1vN,GAAG0hD,iBAAiB+tK,mBAAmBC,aAAe,IA3YjHltK,EAFM,GAANxiD,GAAM0hD,iBAAA0vK,aAAA5qF,OAC+C,GAArDxmI,GAAA0hD,iBAAgBgvK,eAAiBE,SACtBpuK,EAAAxiD,GAAA0hD,iBAAA+tK,mBAAAoB,eAAA,SAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,aAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAAA,MAAA1xC,GAAA0hD,iBAAA2F,KAAAI,SAAA,SAEMjF,EAAiBxiD,GAAA0hD,iBAAmB+tK,mBAAAoB,eAAA,SAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,aAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAIC,GAAnD1xC,GAAA0hD,iBAAiBgvK,eAAkBE,SAC1BpuK,EAAAxiD,GAAA0hD,iBAAA+tK,mBAAAoB,eAAA,SAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,aAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,MAAA9tJ,GAAA0hD,iBAAA2F,KAAAI,SAAA,SAGOjF,EAAKxiD,GAAA0hD,iBAAA+tK,mBAAAoB,eAAA,SAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,aAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,UAMU,yBA8YlC9tJ,GAAG0hD,iBA9Ya+tK,mBAAkBoB,eAAA,CA+YlC,GAAIQ,GA9YQ,EACM,0BA8YdrxN,GAAG0hD,iBA9YWsvK,kBAAAV,sBA+Yde,EAAY,0CAEZ7uK,EA9YG,gBAgZ0D,aAA7DxiD,GAAG0hD,iBAAiBqvK,uBAAuBZ,iBA7YhD3tK,EAAeA,EAAA,SAAAxiD,GAAA0hD,iBAAA+tK,mBAAAoB,eAAA,OAAA7wN,GAAA0hD,iBAAA2tK,YAAAE,mBACd8B,EAAW,sBAUf,GAyY2D,MAAvDrxN,GAAG0hD,iBAAiB+tK,mBAAmBC,eA7Y1CltK,EAAAA,EAA2B,IAAAxiD,GAAA0hD,iBAAA4vK,sBAAAtB,kBAAA,cAAAhwN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,8BAIwB,+BAApDvvN,GAAK0hD,iBAAY+tK,mBAAiBoB,eAAkB,CAgZhD,GAAIQ,GAAY,EAIZA,GAD+D,yBAA/DrxN,GAAG0hD,iBAAiBsvK,kBAAkBV,sBAC1B,0CA3YD,qBAiZf9tK,EAAa,sBAAwBxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,OAAS7wN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,IAAM8B,EAAY,IAAMrxN,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc,oBAzYvS6J,GADkD,yBAAlDxiD,GAAA0hD,iBAAcsvK,kBAAiBV,sBACpB9tK,EAAiB,2CAAuBxiD,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,gBAiZlC6J,EAAa,sBAA6BxiD,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc,eAxYlF,OAAxB34C,GAAA0hD,iBAAmB+tK,mBAAKC,eACK,GAAzB1vN,GAAG0hD,iBAAA0vK,aAAsB5qF,OAGrBhkF,EAFW,IAAZxiD,GAAA0hD,iBAAYgvK,eAAAE,SACqB,GAA5B5wN,GAAA0hD,iBAAgBiuK,OAASG,gBAAG,GAAA9vN,GAAA0hD,iBAAAiuK,OAAAG,eACjB,mCAAW9vN,GAAA0hD,iBAAAqvK,uBAAyDZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAAvvN,GAAA0hD,iBAAAiuK,OAAAE,aAAA,cAAA7vN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAAA,oBAAA1xC,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,gBAiZlE,yEAA2E34C,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,MAAQnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqBvvN,GAAG0hD,iBAAiBiuK,OAAOE,aAAe,cAAqB7vN,GAAG0hD,iBAAiB0vK,aAAatjE,SAAW,IAAM7zJ,EAAQ,QAAQ+F,GAAG+tC,IAAI2D,IAAK,cAAgB,gBA3Y3W,mFAA+C1xC,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAAA,gBAmZN,IAAhD1xC,GAAG0hD,iBAAiBgvK,eAAeE,SACe,IAA9C5wN,GAAG0hD,iBAAiBiuK,OAAOG,gBAAsE,IAA9C9vN,GAAG0hD,iBAAiBiuK,OAAOG,eAC9EttK,EAAa,mCAAqCxiD,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,IAAMvvN,GAAG0hD,iBAAiBiuK,OAAOE,aAAe,eAAsB7vN,GAAG0hD,iBAAiB0vK,aAAatjE,SAAW,oBAAsB9tJ,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc,gBAC5V34C,GAAG0hD,iBAAiBiuK,OAAOG,eAAiB,IA7YlEttK,EAA2B,mCAAAxiD,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,IAAAvvN,GAAA0hD,iBAAAiuK,OAAAE,aAAA,eAAA7vN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,oBAAA9tJ,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,iBAE+B,IAAxD34C,GAAiB0hD,iBAAAgvK,eAAuBE,WACjCpuK,EAAA,yEAAAxiD,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,MAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,mBAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,kBAOiC,MAAvC9tJ,GAAA0hD,iBAAU+tK,mBAA6BC,eAEvCltK,EAD+C,GAA/CxiD,GAAA0hD,iBAAc0vK,aAAiB5qF,OAChB,yEAAAxmI,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,+BAAAnwN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,KAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAgZE,yEAA2E1xC,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,+BAAiCnwN,GAAG0hD,iBAAiB0vK,aAAatjE,SAK9N,IA9YI0jE,GAAW,IAqZf,IAnZIA,EADkC,YAAlCxxN,GAAA0hD,iBAAiB6vK,aAAA54K,YACN,WAgZI,QAGqBhjD,QAApCqK,GAAG0hD,iBAAiBmwD,cAA6B7xG,GAAG0hD,iBAAiBmwD,aAAa12G,OAAS,EAAG,CA5Y9F,GAAIkoD,KA+YJ,KA9YI,GAAGnoD,KAAA8E,IAAA0hD,iBAAemwD,aAClBxuD,EAAGxrD,KAAAmI,GAAA0hD,iBAAYmwD,aAAA32G,GAAAooD,cAgZnBtjD,IAAGujD,KA9YKF,EAAA3vB,OAkZZ,GAGIrB,KACJ,KA9YG,GAAAn3B,KAAU8E,IAAA0hD,iBAAKqC,iBACd1xB,EAAAx6B,KAAAmI,GAAW0hD,iBAAYqC,iBAAS7oD,GAAA4oD,WAgZpC9jD,IAAG8jD,WAAazxB,EAAIqB,MAEpB,IA9YGz4B,IA+YCnF,UAAWkK,GAAG0hD,iBAAiB7/B,gBAAgB,GAAG/rB,UAClDguD,WAAY9jD,GAAG8jD,WACfJ,YAA6B/tD,QAAfqK,GAAGyjD,SAAyBzjD,GAAGyjD,SAAW,GACxDE,eAAmChuD,QAAlBqK,GAAGwjD,YAA4BxjD,GAAGwjD,YAAc,GA7YpEI,QAAAjuD,QAAAqK,GAAA2lD,KAA6B3lD,GAAA2lD,KAAA,GAC3B5G,SAAkDppD,QAAlDqK,GAAA0hD,iBAAiBzD,iBAAoCj+C,GAAA0hD,iBAAiBzD,iBAA6B51B,KAAA,GA+YlGi7B,cAA2B3tD,QAAXqK,GAAGujD,KAAqBvjD,GAAGujD,KAAO,GA7YtDS,MAAA8qD,EA+YI1vD,iBAAkBp/C,GAAG0hD,iBAAiBvuC,gBAAgB84B,YA7YvDA,YAAAjsC,GAAA0hD,iBAAAvuC,gBAAA84B,YA+YC3pB,YAAatiB,GAAG0hD,iBAAiB7/B,gBAAgB,GAAGS,YACpDmvM,cAAezxN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAC1DnpG,SAAU,GACV9iE,QAAS1B,EA7YZ4sD,SAAAoiH,EACLltK,UAAAtkD,GAAA0hD,iBAAAgvK,eAAAC,WACOe,UAAAxxN,EAAiBG,OAChBkkD,WAAMvkD,GAAA0hD,iBAAAsvK,kBAAAV,sBACVqB,SAAc3xN,GAAG0hD,iBAAiB+tK,mBAAkBC,aAChD7lH,YAAY7pG,GAAA0hD,iBAAiBqvK,uBAAoB3B,OA+YjDwC,iBAAkB5xN,GAAG0hD,iBAAiB2tK,YAAYG,iBA1YlDxvN,IAAA0hD,iBAAc+tK,mBAAiBC,aAAmB,GAAA1vN,GAAA0hD,iBAAA+tK,mBAAAC,aAAA,KAClDz0N,EAAA42N,SAAe7xN,GAAA0hD,iBAAA0vK,aAAA5qF,OACG,GAAlBxmI,GAAA0hD,iBAAkB0vK,aAAA5qF,SAClBvrI,EAAQ62N,WAAG73N,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,gBAiZqC,IAAhD1xC,GAAG0hD,iBAAiBgvK,eAAeE,WA3Ye,IAAlD5wN,GAAA0hD,iBAAc+tK,mBAAiBC,aAAmBz0N,EAAAysD,SAAA1nD,GAAA0hD,iBAAA2F,KAAAK,SACC,KAA3C1nD,GAAG0hD,iBAAiB+tK,mBAAAC,cAAuB1vN,GAAA0hD,iBAAAiuK,OAAAG,eAAA,IAAA70N,EAAAysD,SAAA1nD,GAAA0hD,iBAAA2F,KAAAK,WAiZK,KAAxD1nD,GAAG0hD,iBAAiB+tK,mBAAmBC,cAAuE,IAAhD1vN,GAAG0hD,iBAAiBgvK,eAAeE,WACjG31N,EAAI82N,SAAW/xN,GAAG0hD,iBAAiBiuK,OAAOG,gBA5Y9B,KAAZ9vN,GAAA0hD,iBAAY+tK,mBAAAC,eA+YZz0N,EAAI+2N,QAAUhyN,GAAG0hD,iBAAiB4vK,sBAAsBrB,gBA7Y5Dh1N,EAAAq8B,aAAAt3B,GAAyB0hD,iBAAgBuwK,uBAAoB36L,aACzDr8B,EAAIi6F,YAAIl1F,GAAW0hD,iBAAKwwK,oBAAAh9H,YA+YxBj6F,EA9YIgoG,YAAcjjG,GAAA0hD,iBAAIwwK,oBAAAjvH,YA+YtBhoG,EAAIkyG,UAAYntG,GAAG0hD,iBAAiB4vK,sBAAsBtB,kBAC1D/0N,EA9YI4nD,eAAiB7iD,GAAA0hD,iBAAYuwK,uBAAApvK,gBAmZrC7iD,GAAG8Z,cAAgB,KA5YW,GA8Y1B9Z,GAAG0hD,iBA9YQ+tK,mBAAeC,aA+Y1B30K,EAAqBksB,WAAWhsE,GAAKwD,KAAK,SAAUC,GAChD,GA9YG,MAAAA,EAAAlI,OAAA,CACHwJ,GAAA8Z,cAAuBpb,EAAAhJ,KA+YnBsK,GAAGsS,WAAY,CA7YxB,IAAU2D,GAAKnf,SAAAijB,cAAA,IA+YNjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OA7YpCqI,KAAA,oBAgZetJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EAErCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,eAAgB,mBAClDwR,QA5YTna,GAAA2I,YAAA,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OA+YS4C,GAAGsS,WAAY,GAGpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,GAAGsS,WAAY,IAEZtS,GAAG0hD,iBAAiB+tK,mBAAmBC,aAAe,GAC7D30K,EAAqBosB,qBAAqBlsE,GAAKwD,KAAK,SAAUC,GA5YjE,GAAsB,MAAtBA,EAAAlI,OAAsB,CA+YXwJ,GAAG8Z,cAAgBpb,EAAIhJ,KA7YnCsK,GAAasS,WAAG,CAChB,IAAA2D,GAAAnf,SAAAijB,cAAA,IACAjjB,UAAcC,KAAAijB,YAAA/D,GA+YFA,EAAEgE,MAAQ,eACV,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OA7YrCqI,KAAA,oBAEGtJ,EAAAC,OAAAwlB,IAAAC,gBAAAvc,EACHnD,GAAA4E,KAAqB5K,EAAA,UACrBsD,EAAA2I,YAAA,UAAA,iBAAA,uBAMC3I,GAAA2I,YAAuB,QAAA,kBAAArJ,WAAA,EAAA+F,KAAA,OA+YZ4C,GAAGsS,WAAY,GAEpB,SAAU3R,GA7Yd5I,EAAA2I,YAAiB,QAAkB,iBAAoBrJ,WAAA,EAAiB+F,KAAA,OACvE4C,GAAMsS,WAAA,QAkZT,IAAItS,GAAG0hD,iBAAiB7/B,gBAAgB1mB,OAAS,EAAG,CAErD,GA9YIk3B,KA+YJ,KA9YI,GAAAn3B,KAAU8E,IAAA0hD,iBAAA7/B,gBACVwQ,EAAAx6B,KAAAmI,GAAA0hD,iBAAiB7/B,gBAAiB3mB,GAAApF,UAgZtCkK,IAAGlK,UAAYu8B,EAAIqB,OACnB8uB,EA9YC,6CAAAxiD,GAAA0hD,iBAAAqvK,uBAAAZ,eACG,oFAgZJ,IAAIl1N,IACAk3N,WA9YqBx8N,QAAjBqK,GAAAlK,UAAkCkK,GAAAlK,UAAmB,GA+YzDqc,UAAWnS,GAAG0hD,iBAAiBvuC,gBAAgBhB,UAC/CitC,iBAAkBp/C,GAAG0hD,iBAAiBvuC,gBAAgB84B,YACtDA,YAAajsC,GAAG0hD,iBAAiBvuC,gBAAgB84B,YACjDwlL,cAAezxN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAC1DjsK,QAAS1B,EACTkvK,UAAWxxN,EAAWG,OA7YvBwpG,YAAA7pG,GAAiB0hD,iBAAAqvK,uBAAsB3B,OAkZ1Cx/I,GA9YgBQ,qBAA2Bn1E,GAAAwD,KAAA,SAAAC,GA+YvC,GA9YmB,MA8YfA,EA9YIlI,OAAW,CA+YfwJ,GAAG8Z,cAAgBpb,EAAIhJ,KA7YvBsK,GAAGsS,WAAY,CAEf,IAAA2D,GAAAnf,SAAWijB,cAAY,IA+YvBjjB,UAASC,KAAKijB,YAAY/D,GA7Y/BA,EAAAgE,MAAe,eACd,IAAArc,GAAW,GAAAC,OAAYa,EAAAhJ,OA+YfqI,KAAM,oBAENtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EA5Y5CnD,GAAA4E,KAAmB5K,EAAA,UACxBsD,EAAA2I,YAAA,UAAA,eAAA,mBACOwR,QAEIna,GAAU2I,YAAc,QAAA,kBAAiBrJ,WAAoB,EAAA+F,KAAA,OAC7D4C,GAAAsS,WAAc,GAiZlB,SA9YS3R,GA+YR5I,EA9YW2I,YAAA,QAAkB,iBAAArJ,WAAA,EAAA+F,KAAA,OA+Y7B4C,GAAGsS,WA9YQ,KAwZvB,QAASw+M,KACL/mK,IACA/C,IACAhnD,GAAG0hD,iBAAiB7/B,gBAAkB,KACtC7hB,GAAG0hD,iBA9YgBqvK,uBAAuB,KA+Y1C/wN,GAAG0hD,iBA9YiBsvK,kBAAe,KA+YnChxN,GAAG0hD,iBAAiB6vK,aAAe,KACnCvxN,GAAG0hD,iBA9YgB+tK,mBAAY,KA+Y/BzvN,GAAG0hD,iBAAiB0vK,aAAe,KACnCpxN,GAAG0hD,iBA9YgB2tK,YAAA,KA+YnBrvN,GAAG0hD,iBA9YagvK,eAAW,KA+Y3B1wN,GAAG0hD,iBAAiB2F,KAAO,KAG/B,QAASqoC,KACL1vF,GAAGm+C,YACHn+C,GAAG0hD,iBA9YQmwD,aAAiB,KAiZhC,QAASrsD,KACLxlD,GAAGizB,YACHjzB,GAAG0hD,iBAAiB7C,oBACpB7+C,GAAG0hD,iBAAiBzD,iBAAmB,KA7Y3CyxC,IAiZA,QA9YOxlC,KA+YHlqD,GAAGo8C,mBACHp8C,GAAG0hD,iBA9YiB7D,uBA+YpB2H,IAGJ,QAASyE,KACLjqD,GAAG47C,gBACH57C,GAAG0hD,iBAAiB/D,oBACpBuM,IA7YA1E,IAiZJ,QAASwE,KAGLC,IA7YJC,IACI1E,IAiZJ,QA9YIuE,KA+YA/pD,GAAGk7C,WACHl7C,GAAG0hD,iBA9YWlF,YAAY,KA+Y1BwN,IA7YAC,IA+YAC,IACA1E,IAGJ,QAASo8F,KACL5hJ,GAAG68C,kBACH78C,GAAG0hD,iBAAiBqC,iBAAmB,KACvCiD,IAGJ,QAASA,KACLxsD,EAAOqI,QAAQ7C,GAAGonD,SAAU,SAAUF,GA7Y1CA,EAAS47C,kBAAa,OAuZtB,QAASpxF,KA7YL1R,GAAAgT,YAAO,EA+YPhT,GAAGkU,YACHlU,GAAG0hD,oBA6DP,QAAStoC,IAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OA9YW,QAAPA,GAAwB,KAAjB8iB,EAAiBC,SA6bhC,QAASC,IA9YW7jB,GA+YhB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAEzCxe,EA9YG,EAAAA,EAAA8E,GAAA2Z,OAAaxe,OAAAD,IAAA,CA+YrB,GAAI0e,GAAa,GAAIH,MAAKzZ,GAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAAIF,IAAeI,EACf,MAAO5Z,IAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GAIX,QAASiyD,IAAWP,EAAOQ,GAEvB,GAAIxoD,GAAa/F,EAAsBgG,uBA5YnClF,GACAmF,SAAOF,EAAAi/C,UA+YPrpD,UA9YIoyD,EA+YJxb,cA9YOgc,EAiZXpH,GAAsBmH,WAAWxtD,GAAKwD,KAAK,SAAUC,GA7Y1C,MAAHA,EAAGlI,QA+YHwJ,GAAG4tC,aAAelvC,EAAIhJ,KA7YtBsK,GAAAsS,WAAU,EAEuC,GAA7CtS,GAAA0hD,iBAAYI,kBAAiBpV,eA+Y7B8b,KAEJxoD,GAAGgiD,gBAAkB,MAErBjqD,EAAW2I,YAAY,QAAS,yBAA0B,kBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAM5D,QAASunD,IAAaC,GAElB,GAAIhoD,GA9YI/F,EAA+BgG,uBA+YnClF,GACAmF,SA9YIF,EAAiBi/C,UA+YrBrpD,UA9YIoyD,EAgZR5G,GA9YsB2G,aAAAhtD,GAAiBwD,KAAA,SAAAC,GAChB,MAAfA,EAAAlI,QACAwJ,GAAAmoD,qBAAOzpD,EAAAhJ,KACPsK,GAAAsS,WAAA,EAGAtS,GAAAooD,sBACApoD,GAAA4tC,gBACA5tC,GAAAgiD,gBAAS,KACThiD,GAAA+hD,2BAAU,MAIVhqD,EAAU2I,YAAG,QAAiB,yBAAmB,qBAgZtD,SA9YKC,GA+YJ5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAM5D,QAAS8nD,MACL,GAAItoD,GAAa/F,EAAsBgG,uBACnClF,GA7YAmF,SAAOF,EAAAi/C,UA+YPrpD,UAAWkK,GAAG6hB,gBAAgB/rB,UA7Y9B42C,cAAA1sC,GAAA8hD,kBAAApV,cAgZJ4U,GA9YoBkH,aAAAvtD,GAAiBwD,KAAA,SAAAC,GA+Yd,MAAfA,EAAIlI,QACJwJ,GAAGooD,mBAAqB1pD,EAAIhJ,KA7Y5BsK,GAAGsS,WAAA,GAgZHva,EAAW2I,YAAY,QAAS,yBAA0B,kBAE/D,SA9YSC,GA+YR5I,EA9YQ2I,YAAe,QAAG,mBAAiB,mBA8anD,QAAS0Y,IA9YM1jB,GA+YX,GAAI2jB,GAAO3jB,EA9YC2jB,KA+YR9iB,EAAOb,EA9YIa,IA+Yf,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAuC1D,QAASC,IAAY7jB,GACjB,GA9YI2jB,GAAI3jB,EAAM2jB,KA+YV9iB,EA9YIb,EAAAa,IA+YR,IA9YQ,QA8YJA,EAGA,IA9YI,GAFAijB,GAAA,GAAAC,MAAqBJ,GAAAK,SAAA,EAAiB,EAAA,EAAA,GAEtCxe,EAAA,EAAAA,EAAe8E,GAAG2Z,OAAAxe,OAAAD,IAAiB,CACnC,GAAA0e,GAAS,GAAAH,MAAAzZ,GAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAET,IAAAF,IAAgBI,EA+YZ,MAAO5Z,IAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GA4BX,QAASmxD,MACL,GAA8B,KAA1B3nD,GAAGkiD,eAAe75B,KAAa,CAC/BroB,GAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,GAAG+iD,KAAKC,KAClC,IAAI4E,GAAoB,CA7YhC5nD,IAAS+iD,KAAAE,GAAAznC,QAAiBxb,GAAA+iD,KAAAE,GAAAjnC,UAAA4rC,OAEtB,KAAA5nD,GAAAkiD,eAAA75B,OACGroB,GAAA+iD,KAAAE,GAAA,IAqZP,QA9YO+E,MAgZH,GAA8B,KAA1BhoD,GAAGkiD,eAAe75B,KAAa,CAC/BroB,GAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,GAAG+iD,KAAKC,KA7Y1C,IAAS8E,GAAY,CACd9nD,IAAA+iD,KAAAE,GAAW8E,SAAA/nD,GAAA+iD,KAAAE,GAAA9R,WAAA2W,GACX9nD,GAAA+iD,KAAAE,GAAAznC,QAAiBxb,GAAA+iD,KAAAE,GAAAjnC,UAAe,OAGlB,KAAZhc,GAAAkiD,eAAY75B,OACdroB,GAAA+iD,KAAAE,GAAW,IAMlB,QAAS0+B,IAAmBywI,EAAAC,GAExBryN,GAAGsS,WAAA,CACH,IAAArX,IA+YI+2N,QAASI,EACTt8N,UAAWu8N,EA5Yf5wI,GAAkBE,4BAAA1mF,GAAAwD,KAAA,SAAAC,GACE,MAAjBA,EAAAlI,QACHwJ,GAAAqzF,mBAAA30F,EAAAhJ,KACAsK,GAAAsS,WAAA,EA+YYtS,GAAGqzF,mBAAmBl4F,OAAS,GAC/BpD,EAAW2I,YAAY,OAAQ,kDAAmD,YAEtF3I,EAAW2I,YAAY,QAAS,mCAAoC,WA5Y5E,SAAAC,MACAX,GAAAsS,WAAA,EAiZJ,QAASsvE,IAA8BtqD,EAAc+6L,GA5YjDryN,GAAGsS,WAAU,CACb,IAAGrX,IACHq8B,aAAAA,EACAxhC,UAAAu8N,EAEA5wI,GAAAG,8BAAA3mF,GAAAwD,KAAA,SAAAC,GA+YuB,MAAfA,EAAIlI,QACJwJ,GAAGu0F,cAAgB71F,EAAIhJ,KA7Y1BsK,GAAAsS,WAAgB,GAClBtS,GAAAu0F,cAAiBp5F,OAAA,GACjBpD,EAAiB2I,YAAA,OAAmB,qDAAA,YAgZ/B3I,EAAW2I,YAAY,QAAS,mCAAoC,WA5YhF,SAASC,MACLX,GAAAsS,WAAe,EAMnB,QAAGggN,IAAYjC,GAgZXrwN,GAAG0hD,iBAAiB+tK,mBAAqB,KACzB,GAAZY,EA7YRrwN,GAASuyN,iBACF1B,eAAa,mBACbnB,aAAA,IAiZKmB,eAAgB,yBAChBnB,aAAc,IA1YhBmB,eAAc,2BA+YZnB,aAAc,IAGdmB,eAAgB,4BAChBnB,aAAc,IA3YdmB,eAAS,6BA+YTnB,aAAc,IAGdmB,eAAgB,qCA7YzBnB,aAAA,IAsZSmB,eAAgB,8BA7YzBnB,aAAA,IAwZK1vN,GAAGuyN,iBA7YR1B,eAAa,mBACZnB,aAAc,IAGdmB,eAAY,yBACZnB,aAAa,IAIbmB,eAAY,2BACZnB,aAAY,IAGZmB,eAAa,4BA+YLnB,aAAc,IA3YnBmB,eAAmB,6BA+YdnB,aAAc,IA3YjBmB,eAAe,qCAChBnB,aAAY,IAsZRmB,eAAgB,8BAChBnB,aAAc,IA3YfmB,eAAY,gBAChBnB,aAAgB,KAiZXmB,eAAgB,kBA7YrBnB,aAAU,KAxsDjB,GAAG1vN,IAAAC,IA8YHD,IAAGsU,SAAW,KA5YdtU,GAAAgT,YAAI,EACJhT,GAAA+S,WAAI,EA8YJ/S,GAAGsS,WAAY,EACftS,GAAGkwN,sBA5YHlwN,GAAAwyN,wBACAxyN,GAAAowN,6BA8YApwN,GAAGstI,mBA5YHttI,GAAAuyN,kBA8YAvyN,GAAG47C,gBACH57C,GAAGizB,YACHjzB,GAAGo8C,mBACHp8C,GAAGm+C,YACHn+C,GAAGk7C,WACHl7C,GAAGsvN,WACHtvN,GAAGkxN,UAAW,EACdlxN,GAAGywN,cACHzwN,GAAG68C,kBACH78C,GAAG2hB,cACH,IAAIxP,IAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,IAAGyhB,oBA7YsBA,EA8YzBzhB,GAAGinD,mBA7YoBA,EA8YvBjnD,GAAG8lD,qBAAuBA,EAE1B9lD,GAAG88C,qBAAuBA,EAC1B98C,GAAGo9C,yBAA2BA,EA5Y9Bp9C,GAAAs9C,yBAA0BA,EA8Y1Bt9C,GAAGmxN,2BA7YCA,EA8YJnxN,GAAGo+C,6BA7Y0BA,EA8Y7Bp+C,GAAGomD,YA7YaA,EA8YhBpmD,GAAGkyG,cA7YYA,EA8YflyG,GAAGy9C,aA7YaA,EA8YhBz9C,GAAGswN,sBA7YSA,EA8YZtwN,GAAGuoD,gBAAkBA,EACrBvoD,GAAGsyN,iBA7YkBA,GA8YrBtyN,GAAG0R,OA7YKA,EA8YR1R,GAAGwwN,YAAcA,EACjBxwN,GAAG2vN,OAASA,EACZ3vN,GAAGyoD,WAAaA,GA5YhBzoD,GAAAwoD,aAAiBA,GA8YjBxoD,GAAGgoD,gBA7YiBA,GA8YpBhoD,GAAG2nD,iBA7YkBA,GA8YrB3nD,GAAG2hF,4BA7YwBA,GA8Y3B3hF,GAAG4hF,8BA7Y4BA,GAgZ/B5hF,GAAGyyN,qBAAsB,EACzBzyN,GAAG0yN,cAAe,EAClB1yN,GAAGinE,WAAaA,CAGhBjnE,IAAG/C,UACHlF,EAAW2c,SAAU,EA5YrBxC,IAmaAlS,GAAG+oD,iBACGpG,eA7YU,SAAgBt6B,KAAA,IAASonE,iBAAO,IA8Y1C9sC,eA7YU,UAAgBt6B,KAAA,IAAAonE,iBAA8B,IA8YxD9sC,eA7YU,WAAAt6B,KAAA,IAAyBonE,iBAAc,IAmbvDzvF,GAAG2yN,iBA7YiB,SAAWC,GA8YX,GAAZA,GAA0E,iBAAzD5yN,GAAG0hD,iBAAiB+tK,mBAAmBoB,iBACxD7wN,GAAG4vN,cACgD,GAA/C5vN,GAAG0hD,iBAAiBqC,iBAAiB5oD,OACrC6E,GA7YG4vN,aACCC,aAAG,WACHC,eAAe,IAEfD,aAAQ,cA8YRC,eAAgB,IAGhBD,aAAc,OA5YlBC,eAAkB,IAGvBD,aAAoB,OACXC,eAAI,IAIZ9vN,GAAK4vN,aACAC,aAAM,4BA8YHC,eAAgB,IA3YnBD,aAAM,oCA8YHC,eAAgB,MA+NhC9vN,GAAG6yN,UAAY,WA5Y4Bl9N,QA6YnCqK,GAAG0hD,iBA7YKqC,mBA8YR/jD,GAAG0hD,iBA7YegvK,eAAU,KA8YuB,GAA/C1wN,GAAG0hD,iBAAiBqC,iBAAiB5oD,SACrC6E,GAAGywN,aACCE,WAAY,WA5YjBC,SAAA,IAgZKD,WAAY,eACZC,SAAU,KAIZ5wN,GAAG0hD,iBAAiBqC,iBAAiB5oD,OAAS,IACa,iBAAzD6E,GAAG0hD,iBAAiB+tK,mBAAmBoB,eA5YlD7wN,GAAAywN,aACTE,WAAA,WA8YwBC,SAAU,IA3YtBD,WAAA,eACIC,SAAA,IAKZ5wN,GAAAywN,aACoBE,WAAA,WA+YAC,SAAU,OA01B9B5wN,GAAGkU,UAAY,WA7YXlU,GAAA8yN,qBAAY1+M,iBAwZhBpU,GAAGqa,MAAQ,WACPra,GAAGsa,GA9YK,GAAGb,MAAA,cAgZXzZ,GAAGsa,GAAGkB,QAAQxb,GAAGsa,GAAG0B,YAGxBhc,GAAGqa,QAIHra,GAAGqa,MAAQ,WACPra,GAAGsa,GAAK,GAAIb,MAAK,cAEjBzZ,GAAGsa,GAAGkB,QAAQxb,GAAGsa,GAAG0B,YAGxBhc,GAAGqa,QAGHra,GAAGk4M,WAAa,WACZl4M,GAAGm4M,KAAO,GAAI1+L,MAEdzZ,GAAGm4M,KAAK38L,QAAQxb,GAAGm4M,KAAKn8L,UAAY,IAGxChc,GAAGk4M,aAEHl4M,GAAG0X,MA9YK,WA+YJ1X,GAAGsa,GA9YK,MAiZZta,GAAGua,eACCC,YAAajB,GACbkB,QAAS,GAAIhB,MAAK,KAAM,EAAG,KAG/BzZ,GAAGirH,YACCrwG,aAAcxB,GACd+C,WAAY,KACZtB,QAAS7a,GAAGm4M,KACZ19L,QAASza,GAAGsa,GACZQ,YAAa,GAEjB9a,GAAGkrH,UACCtwG,aAAcxB,GACd+C,WAAY,KACZtB,QA9YQ7a,GAAGm4M,KA+YX19L,QA9YQza,GAAIsa,GAgZZQ,YA9YY,GAiZhB9a,GAAGmrH,cAAgB,WACfnrH,GAAGkrH,SA9YSzwG,QAAGza,GAAA+tC,IAAA2D,KA+ZnB1xC,GAAGgb,MAAQ,WACPhb,GAAGib,OAAOpM,QA9YE,CAgZZ,IAAIslC,GAAS,EAEbn0C,IAAGm5B,SACCte,QAAS,GAAIpB,MAAKY,MAAM65B,cAAgBC,EAAQ95B,MAAM82B,WAAY92B,MAAM2B,aAKhFhc,GAAGwb,QA9YS,SAAOC,EAAAC,EAAiBC,GA+YhC3b,GAAGsa,GAAK,GA9YIb,MAAAgC,EAAAC,EAAaC,IAiZ7B3b,GAAG4b,SAAW,eA9Ye,aAAa,aAAA,aA+Y1C5b,GAAG6b,OAAS7b,GAAG4b,QAAQ,GACvB5b,GAAG8b,iBAAmB,cAEtB9b,GAAGib,QACCpM,QAAQ,EAKZ,IAAIupM,IAAW,GAAI3+L,KACnB2+L,IAAS58L,QAAQ48L,GAASp8L,UAAY,EACtC,IAAIq8L,IAAc,GAAI5+L,KACtB4+L,IAAY78L,QAAQ48L,GA9YIp8L,UAAa,GA+YrChc,GAAG2Z,SACCN,KAAM++L,GACN5hN,OAAQ,SAER6iB,KAAMg/L,GACN7hN,OAAQ,cAsGZwJ,GAAGqa,MAAQ,WACPra,GAAGsa,GA9YI,GAAAb,OAgZXzZ,GAAGqa,QAEHra,GAAG0X,MAAQ,WACP1X,GAAGsa,GAAK,MAGZta,GAAGua,eACCC,YAAajB,GACbkB,QAAS,GAAIhB,MACbiB,WAAW,GAGf1a,GAAG2a,aACCC,aAAcxB,GACd+C,WAAY,KACZtB,QAAS,GAAIpB,MA9YG,KAAA,EAAA,IA+YhBgB,QAAS,GAAIhB,MACbqB,YAAa,GAUjB9a,GAAG+a,UAAY,WACX/a,GAAGua,cA9YaE,QAAIza,GAAAua,cAAgBE,QAAA,KAAA,GAAAhB,MA+YpCzZ,GAAG2a,YAAYF,QA9YIza,GAAAua,cAAoBE,SAiZ3Cza,GAAG+a,YAEH/a,GAAGkb,MAAQ,WACPlb,GAAGmb,OAAOtM,QAAS,CACP,IAAI4K,OAIpBzZ,GAAGgb,MAAQ,WACPhb,GAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,GAAGwb,QAAU,SA9YOC,EAAAC,EAAWC,GA+Y3B3b,GAAGsa,GAAK,GAAIb,MA9YIgC,EAAGC,EAAAC,IAiZvB3b,GAAG4b,SAAW,eA9Ya,aAAY,aAAS,aA+YhD5b,GAAG6b,OAAS7b,GAAG4b,QA9YI,GA+YnB5b,GAAG8b,iBAAmB,cAGtB9b,GAAGmb,QACCtM,QA9YI,GAiZR7O,GAAGib,QACCpM,QAAQ,GAwBZ7O,GAAGkpD,UAAY,WA7YgB,KA8YvBlpD,GAAGkiD,eA9YS75B,MA+YZroB,GAAG+iD,KAAKC,KA9YI,GAAMvpC,MA+YlBzZ,GAAG+iD,KAAKC,KAAO5uD,QAAQ8e,KAAKlT,GAAG+iD,KAAKC,MACpChjD,GAAG+iD,KAAKE,GA9YI7uD,QAAM8e,KAAOlT,GAAI+iD,KAAAC,OAEH,KA8YrBhjD,GA9YGkiD,eAAa75B,MA+YrBroB,GAAG+iD,KA9YKC,KAAA,KA+YRhjD,GAAG+iD,KA9YKE,GAAA,OAiZRjjD,GAAG+iD,KA9YKC,KAAG,KA+YXhjD,GAAG+iD,KAAKE,GAAK,OAGrBjjD,GAAGgc,QA9YS,aAmkBZhc,GAAG81F,WA9YS,SAAAhjF,GAMZ,GAAA5S,GAAiB/F,EAAqBgG,uBAGnC2uG,EAAUxpD,IAET9C,EAAQ,IAubR,IApCIA,EADiD,YAAjDxiD,GAAG0hD,iBAAiBgvK,eAAeC,WACtB,uBA5YD,0BAGsC,oBAAlD3wN,GAAA0hD,iBAAiB+tK,mBAAeoB,iBAK5BruK,EA6Y+C,GAA/CxiD,GAAG0hD,iBAAiBgvK,eAAeE,SA7Y/BpuK,EAAexiD,GAAA0hD,iBAAY+tK,mBAAAoB,eAAA,SAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,MAAAvvN,GAAA0hD,iBAAA2F,KAAAI,SAAA,SAiZlBjF,EAAaxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,SAAW7wN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,oBAItMvvN,GAAG0hD,iBAAiB+tK,mBAAmBC,aAAe,GAAK1vN,GAAG0hD,iBAAiB+tK,mBAAmBC,aAAe,IAGzGltK,EAFuC,GAA3CxiD,GAAG0hD,iBAAiB0vK,aAAa5qF,OA7YV,GAA1BxmI,GAAA0hD,iBAA0BgvK,eAAAE,SA+YNpuK,EAAaxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,SAAW7wN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,aAAevvN,GAAG0hD,iBAAiB0vK,aAAatjE,SAAW,IAAM7zJ,EAAQ,QAAQ+F,GAAG+tC,IAAI2D,IAAK,cAAgB,MAAQ1xC,GAAG0hD,iBAAiB2F,KAAKI,SAAW,SAEnWjF,EAAaxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,SAAW7wN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,aAAevvN,GAAG0hD,iBAAiB0vK,aAAatjE,SAAW,IAAM7zJ,EAAQ,QAAQ+F,GAAG+tC,IAAI2D,IAAK,cA1Y7S,GAAf1xC,GAAA0hD,iBAAegvK,eAAAE,SA+YMpuK,EAAaxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,SAAW7wN,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,aAAevvN,GAAG0hD,iBAAiB0vK,aAAatjE,SAAW,MAAQ9tJ,GAAG0hD,iBAAiB2F,KAAKI,SAAW,SA3YnTjF,EAAKxiD,GAAA0hD,iBAAA+tK,mBAAAoB,eAAA,SAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,aAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,UAoZiC,yBAAzD9tJ,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAA2C,CAClF,GA9YIQ,GAAG,EACA,0BA8YHrxN,GA9YG0hD,iBAAAsvK,kBAAAV,sBACHe,EAAW,0CAEhB7uK,EAAe,gBAgZmD,aAA7DxiD,GAAG0hD,iBAAiBqvK,uBAAuBZ,iBAC3C3tK,EAAaA,EAAa,SAAWxiD,GAAG0hD,iBAAiB+tK,mBAAmBoB,eAAiB,OAAS7wN,GAAG0hD,iBAAiB2tK,YAAYE,mBACtI8B,EAAY,sBApYpB,GALuC,MAAnCrxN,GAAA0hD,iBAAa+tK,mBAAsBC,eACnCltK,EAAMA,EAAA,IAAAxiD,GAAA0hD,iBAAA4vK,sBAAAtB,kBAAA,cAAAhwN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,8BAIkD,+BAA5DvvN,GAAA0hD,iBAAsB+tK,mBAAkBoB,eAAoB,CAgZxD,GA9YIQ,GAAG,EAIHA,GA6Y+D,yBAA/DrxN,GAAG0hD,iBAAiBsvK,kBAAkBV,sBA7YnC,0CAGA,qBAiZP9tK,EA9YO,sBAAAxiD,GAAA0hD,iBAAA+tK,mBAAAoB,eAAA,OAAA7wN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,IAAA8B,EAAA,IAAArxN,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,oBAmZH6J,GA/YgD,yBAApDxiD,GAAA0hD,iBAAuBsvK,kBAASV,sBA+Yf9tK,EAAa,2CAAkDxiD,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc,gBAG9G6J,EAAa,sBAA6BxiD,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc;AAxY5E,MAA9B34C,GAAA0hD,iBAAc+tK,mBAAgBC,eACM,GAApC1vN,GAAA0hD,iBAAkB0vK,aAAkB5qF,OAG5BhkF,EA4YgD,IAAhDxiD,GAAG0hD,iBAAiBgvK,eAAeE,SA7Ya,GAA5D5wN,GAAA0hD,iBAAmCiuK,OAAKG,gBAAoB,GAAA9vN,GAAA0hD,iBAAAiuK,OAAAG,eAChC,mCAAA9vN,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAAvvN,GAAA0hD,iBAAAiuK,OAAAE,aAAA,kBAAA7vN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAAA,oBAAA1xC,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,gBAGjB,yEAAA34C,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,MAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAAvvN,GAAA0hD,iBAAAiuK,OAAAE,aAAA,kBAAA7vN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAAA,gBAGO,mFAAA1xC,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,IAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAAA,gBAmZ0C,IAAhD1xC,GAAG0hD,iBAAiBgvK,eAAeE,SACe,IAA9C5wN,GAAG0hD,iBAAiBiuK,OAAOG,gBAAsE,IAA9C9vN,GAAG0hD,iBAAiBiuK,OAAOG,eAC9EttK,EAAa,mCAAqCxiD,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,OAASnwN,GAAG0hD,iBAAiB2tK,YAAYE,mBAAqB,IAAMvvN,GAAG0hD,iBAAiBiuK,OAAOE,aAAe,mBAA0B7vN,GAAG0hD,iBAAiB0vK,aAAatjE,SAAW,oBAAsB9tJ,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc,gBAChW34C,GAAG0hD,iBAAiBiuK,OAAOG,eAAiB,IA7Y5DttK,EAAY,mCAAAxiD,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,OAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,IAAAvvN,GAAA0hD,iBAAAiuK,OAAAE,aAAA,mBAAA7vN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,oBAAA9tJ,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,iBAgZgD,IAAhD34C,GAAG0hD,iBAAiBgvK,eAAeE,WA7YvDpuK,EAAA,yEAAAxiD,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,MAAAnwN,GAAA0hD,iBAAA2tK,YAAAE,mBAAA,mBAAAvvN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,kBAOc,MAAb9tJ,GAAA0hD,iBAAa+tK,mBAAAC,eAEbltK,EADa,GAAbxiD,GAAS0hD,iBAAI0vK,aAAA5qF,OACF,yEAAAxmI,GAAA0hD,iBAAAqvK,uBAAAZ,eAAA,+BAAAnwN,GAAA0hD,iBAAA0vK,aAAAtjE,SAAA,KAAA7zJ,EAAA,QAAA+F,GAAA+tC,IAAA2D,IAAA,cAgZU,yEAA2E1xC,GAAG0hD,iBAAiBqvK,uBAAuBZ,eAAiB,+BAAiCnwN,GAAG0hD,iBAAiB0vK,aAAatjE,SAzY9N,IAAA0jE,GAAa,IAqZb,IALIA,EA/YS,YAAbxxN,GAAA0hD,iBAAa6vK,aAAA54K,YA+YM,WAEA,QA3YHhjD,QAAZqK,GAAA0hD,iBAAYmwD,cAAA7xG,GAAA0hD,iBAAAmwD,aAAA12G,OAAA,EAAA,CAgZZ,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,IAAG0hD,iBAAiBmwD,aA7YvCxuD,EAAYxrD,KAAAmI,GAAA0hD,iBAAYmwD,aAAA32G,GAAAooD,cAEpBtjD,IAAAujD,KAAAF,EAAY3vB,OAkZf,GA3YIrB,KA+YJ,KAAK,GAAIn3B,KAAK8E,IAAG0hD,iBAAiBqC,iBAC9B1xB,EAAIx6B,KAAKmI,GAAG0hD,iBAAiBqC,iBAAiB7oD,GAAG4oD,WA5YtD9jD,IAAA8jD,WAAQzxB,EAAYqB,MAEnB,IAAIz4B,IA+YAnF,UAAWkK,GAAG0hD,iBAAiB7/B,gBAAgB,GAAG/rB,UAClDguD,WAAY9jD,GAAG8jD,WA7YpBJ,YAAiC/tD,QAAvBqK,GAAUyjD,SAAkBzjD,GAAAyjD,SAAA,GAClCE,eAA2BhuD,QAAbqK,GAAMwjD,YAAOxjD,GAAAwjD,YAAA,GA+Y1BI,QAAqBjuD,QAAXqK,GAAG2lD,KAAqB3lD,GAAG2lD,KAAO,GAC5C5G,SAAmDppD,QAAxCqK,GAAG0hD,iBAAiBzD,iBAAiCj+C,GAAG0hD,iBAAiBzD,iBAAiB51B,KAAO,GA7YjHi7B,cAA2B3tD,QAAhBqK,GAAAujD,KAA8BvjD,GAAAujD,KAAc,GACvDS,MAAY8qD,EACZ1vD,iBAAmBp/C,GAAA0hD,iBAAAvuC,gBAAA84B,YA+YdA,YAAajsC,GAAG0hD,iBAAiBvuC,gBAAgB84B,YACjD3pB,YAAatiB,GAAG0hD,iBAAiB7/B,gBAAgB,GAAGS,YA7YzDmvM,cAASzxN,GAAA0hD,iBAAAqvK,uBAAAZ,eACRnpG,SAAQ,GA+YJ9iE,QAAS1B,EACT4sD,SAAUoiH,EA7YfltK,UAAStkD,GAAA0hD,iBAAAgvK,eAAAC,WACRe,UAAQxxN,EAAAG,OA+YJkkD,WAAYvkD,GAAG0hD,iBAAiBsvK,kBAAkBV,sBAClDqB,SAAU3xN,GAAG0hD,iBAAiB+tK,mBAAmBC,aACjD7lH,YAAa7pG,GAAG0hD,iBAAiBqvK,uBAAuB3B,OA7YhEwC,iBAAqB5xN,GAAM0hD,iBAAA2tK,YAAAG,iBAInBxvN,IAAA0hD,iBAAiB+tK,mBAAeC,aAAkB,GAAA1vN,GAAA0hD,iBAAA+tK,mBAAAC,aAAA,KA+YlDz0N,EAAI42N,SAAW7xN,GAAG0hD,iBAAiB0vK,aAAa5qF,OA7YL,GAA3CxmI,GAAK0hD,iBAAkB0vK,aAAO5qF,SAC1BvrI,EAAI62N,WAAa73N,EAAI,QAAQ+F,GAAO+tC,IAAG2D,IAAM,gBAGrB,IA8Y5B1xC,GAAG0hD,iBA9YegvK,eAAUE,WAiZ+B,IAAvD5wN,GAAG0hD,iBAAiB+tK,mBAAmBC,aAAsBz0N,EAAIysD,SAAW1nD,GAAG0hD,iBAAiB2F,KAAKK,SA7YtG,KAAA1nD,GAAA0hD,iBAAA+tK,mBAAAC,cAAA1vN,GAAA0hD,iBAAAiuK,OAAAG,eAAA,IAAA70N,EAAAysD,SAAA1nD,GAAA0hD,iBAAA2F,KAAAK,WAiZqD,KAAxD1nD,GAAG0hD,iBAAiB+tK,mBAAmBC,cAAuE,IAAhD1vN,GAAG0hD,iBAAiBgvK,eAAeE,WACjG31N,EAAI82N,SAAW/xN,GAAG0hD,iBAAiBiuK,OAAOG,gBA5YvB,KAAxB9vN,GAAA0hD,iBAAwB+tK,mBAAAC,eACnBz0N,EAAG+2N,QAAAhyN,GAAA0hD,iBAA4B4vK,sBAAArB,gBAC/Bh1N,EAAGq8B,aAAgBt3B,GAAA0hD,iBAAAuwK,uBAAA36L,aACnBr8B,EAAGi6F,YAAYl1F,GAAA0hD,iBAAqBwwK,oBAAAh9H,YACpCj6F,EAAGgoG,YAAUjjG,GAAQ0hD,iBAAawwK,oBAAAjvH,YA+YlChoG,EAAIkyG,UAAYntG,GAAG0hD,iBAAiB4vK,sBAAsBtB,kBAC1D/0N,EA9YC4nD,eAAO7iD,GAAe0hD,iBAAauwK,uBAAApvK,gBAkZxC1wB,QA9YKC,IAAApyB,GAAA0hD,iBAAA2F,MA+YLrnD,GAAG8Z,cA9YgB,KAgZwC,GAAvD9Z,GAAG0hD,iBAAiB+tK,mBAAmBC,aACvC30K,EAAqBksB,WAAWhsE,GAAKwD,KAAK,SAAUC,GA7YzD,GAAsB,MAAZA,EAAAlI,OAAY,CA+YTwJ,GAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,GAAGsS,WAAY,CACf,IAAIrX,IACAuF,QAASN,EAAWM,QACpBk/C,KAAM1/C,GAAG8Z,cACT6lC,WAAW,GA5YpBvgD,EAAuB7E,EAAK8E,MACvBhI,WAAa,EACjBiI,eAAoB,cACbC,gBAAgB,aA+YfrK,YAAa,8DA7YjBE,WAAe,kBACfC,aAAK,KA+YD+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SACI3N,MAAO,WACH,MAAOtH,MAzYvBmE,GAAAM,OAAqBjB,KAAA,SAAAC,KAEd,kBAgZH3G,GAAW2I,YAAY,QAAS,kBAAoBrJ,WAAW,EAAM+F,KAAM,OA7Y3E4C,GAAAsS,WAAe,GAiZpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,GAAGsS,WAAY,IA5YlBtS,GAAA0hD,iBAAA+tK,mBAAqCC,aAAW,GA+YjD30K,EAAqBosB,qBAAqBlsE,GAAKwD,KAAK,SAAUC,GA5Y9D,GAAM,MAAAA,EAAAlI,OAAA,CACNwJ,GAAS8Z,cAAApb,EAAAhJ,KACTsK,GAAWsS,WAAA,CA+YH,IAAIrX,IA7YhBuF,QAAoBN,EAAAM,QACRk/C,KAAA1/C,GAAW8Z,cACZ6lC,WAAA,GAEIvgD,EAAA7E,EAAmB8E,MACtBhI,WAAW,EACZiI,eAAA,cACHC,gBAAuB,aA+YfrK,YAAa,8DA7YhBE,WAAK,kBACHC,aAAA,KA+YC+H,KAAM,KACNoC,SAAU,SA7YrBC,UAAA,EA+YWyQ,SA7YD3N,MAAA,WACL,MAAAtH,MAKEmE,GAAWM,OAAKjB,KAAA,SAAAC,KAEjB,kBAIH3G,GAAW2I,YAAY,QAAS,kBAAArJ,WAAA,EAAoC+F,KAAA,OA+YhE4C,GAAGsS,WAAY,GA5YxB,SAAY3R,GA+YP5I,EAAW2I,YAAY,QAAS,iBAAmBrJ,WAAW,EAAM+F,KAAM,OAC1E4C,GAAGsS,WAAY,qcAzgE/Ble,QA5YIC,OAAA,gCA8YCe,WA7YO,uBAAsB+5N,MA+5EtC,WACI,YAOA,SAAS4D,GA9YqBh7N,EAAAyC,EAAAH,EAAAE,EAAAR,EAAA6pF,EAAA5xE,EAAAJ,EAAA8oC,EA+Y1BE,EAAsBJ,EAAaqnC,EAAoBtgC,EAAkBC,EAAmBF,EAAuBnnD,EAAuBM,EAASR,GAyEnJ,QAASsuD,GAAgB6mK,GACrBpvN,GAAGqlD,0BACW1vD,QAAVy5N,IACApvN,GAAGqlD,yBAA4BvC,qBAAsB,6BAA8B/pC,GAAI,IAAO+pC,qBAAsB,gBAAiB/pC,GAAI,IACzI/Y,GAAG6hD,yBAA2B,KAC9B7hD,GAAGgzN,aAAe,KACJ,GAAV5D,EACApvN,GAAGizN,WACCC,SAAU,iBACVC,WAAY,IAIhBnzN,GAAGizN,WACGC,SAAU,iBAAkBC,WAAY,IACxCD,SAAU,qBAAsBC,WAAY,IA7Y1DD,SAAA,oBAAAC,WAAA,KA2ZJ,QAASjhN,KAEDF,EAAeI,mBAAmBD,IAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,SA7YLwJ,GAAAqS,YAAiB3T,EAAAhJ,KA+YhBsK,GAAGsS,WAAY,IAEpB,SAAU3R,GA7YT5I,EAAO2I,YAAA,QAAiB,mBAA2B,oBAkZ3D,QAAS+gB,GA9YgBtP,GA+YrB2+M,IACI3+M,GACAP,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GA7Y5C,MAAjBA,EAAAlI,QACIwJ,GAAA2hB,YAAiBjjB,EAAAhJ,MACbsK,GAAA2hB,YAAiBxmB,OAAA,GACpBd,EAAA8C,OAAa,UAAgB,oDAC1B9F,WAAA,EACH+F,KAAa,OAIb4C,GAAGsS,WAAA,GAgZHjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SA9YKlB,GA+YJtG,EAAQwH,MAAM,QAAS,mBAAoB,oBAInD7B,GAAGozN,sBAAsB,KAuB7B,QAASnrK,GAAaC,GAClB,GAAIhoD,GAAa/F,EAAsBgG,uBA7YnClF,GA+YAmF,SA9YIF,EAAYi/C,UA+YhBrpD,UA9YOoyD,EAgZX5G,GA9YoB2G,aAAAhtD,GAAAwD,KAAA,SAAAC,GA+YG,MAAfA,EAAIlI,QACJwJ,GAAGmoD,qBAAuBzpD,EAAIhJ,KA7YlCsK,GAAAsS,WAAa,GAiZTva,EAAW2I,YAAY,QAAS,yBAA0B,qBAE/D,SA9YKC,GA+YJ5I,EA9YO2I,YAAA,QAAA,mBAAA,sBAoZf,QAAS+nD,GAAWP,EAAOQ,GA5YvB,GAAIxoD,GAAG/F,EAAiBgG,uBAgZpBlF,GACAmF,SA9YQF,EAAOi/C,UA+YfrpD,UAAWoyD,EACXxb,cAAegc,EAGnBpH,GAAsBmH,WAAWxtD,GAAKwD,KAAK,SAAUC,GA7YxC,MA8YLA,EAAIlI,QACJwJ,GAAG4tC,aA9YclvC,EAAAhJ,KA+YjBsK,GAAGsS,WAAY,EAE2B,GAAtCtS,GAAG8hD,kBAAkBpV,eA5YrB8b,IAmZJxoD,GAAGgiD,gBAAkB,MAErBjqD,EA9YI2I,YAAa,QAAA,yBAAA,kBAgZtB,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAM5D,QAAS8nD,GA9YGjqD,GA+YR,GAAItD,IACAmF,SA9YIF,GAAai/C,UA+YjBrpD,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9B42C,cAAe1sC,GAAG8hD,kBAAkBpV,cAExC4U,GAAsBkH,aAAavtD,GAAKwD,KAAK,SAAUC,GA7YpC,MAAfA,EAAAlI,QAEAwJ,GAAAooD,mBAAe1pD,EAAAhJ,KACZy8B,QAAAC,IAAA,WAAAz1B,KAAAqkB,UAAAtiB,EAAAhJ,OAgZC6I,IACAyB,GAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,oBAE/D,SA9YUC,GA+YT5I,EA9YQ2I,YAAQ,QAAA,mBAAiC,qBAoZzD,QA9YQioD,GAAAT,EAAAU,GA+YJ,GAAI3tD,IACAmF,SAAUF,GAAWi/C,UA7YrBrpD,UAAMoyD,EACVhM,WAAc0M,EAGdtH,GAAoBqH,YAAA1tD,GAAAwD,KAAA,SAAAC,GA+YG,MAAfA,EAAIlI,QA7YRwJ,GAAMqoD,eAAA3pD,EAAAhJ,KACNsK,GAAAsS,WAAc,GAEdva,EAAc2I,YAAG,QAAY,yBAA2B,kBAgZzD,SA9YUC,GACT5I,EAAW2I,YAAG,QAAiB,mBAAoB,mBAmZ3D,QA9YQwxG,GAAahqD,GA+YjBg/E,IACAn9E,IACA,IA9YI9uD,IACA6oD,WAAUnuD,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,GACVhuD,UAAWoyD,EACXtyD,OAAAoK,GAAW4hD,oBAAW7oC,GAEQ,KAA9B/Y,GAAA6hD,yBAAa9oC,KAEb9d,EAAA+oD,MAAArnD,KAAAqkB,UAAqBhhB,GAAAqyB,MAiZzBuxD,EAAyB9+B,UAAU7pD,GAAKwD,KAAK,SAAUC,GA7YhD,MAAAA,EAAAlI,QACCwJ,GAAAk7C,QAAWx8C,EAAGhJ,KACXsK,GAAAk7C,QAAA//C,OAAiB,GAChBd,EAAA8C,OAAa,UAAQ,kFA+YjB9F,WAAW,EACX+F,KAAM,OA1Yd4C,GAAGsS,WAAA,GAgZHva,EAAW2I,YAAY,QAAS,yBAA0B,0BA5YlE,SAAOC,GACH5I,EAAI2I,YAAc,QAAA,mBAAwB,2BAoblD,QAASo8C,GAAqBhnD,EAAWugB,EAAW0mC,GAEhD,GADAkN,KACI5zC,GAAavgB,GAAainD,EAAO,CACjC,GAAI9/C,IACAoZ,UA9YIA,EA+YJ2mC,MAAOD,GAEP9hD,GACA6oD,WA9YoCnuD,QAAhCqK,GAAW+jD,iBAAqB/jD,GAAA+jD,iBAA+BD,WAAY,GA+Y/EhuD,UA9YOA,EA+YPF,OAAQoK,GAAG4hD,oBAAoB7oC,GAC/BmsC,UAAWvoD,KAAKqkB,UAAU/jB,GA5YM,KAAhC+C,GAAA6hD,yBAAuB9oC,KACvB9d,EAAG+oD,MAAArnD,KAAYqkB,UAAAhhB,GAAAqyB,MAGnBuxD,EAAqBz+B,eAAAlqD,GAAqBwD,KAAK,SAAKC,GA+Y7B,MAAfA,EAAIlI,QA7YJwJ,GAAA47C,aAAel9C,EAAKhJ,MACjBsK,GAAA47C,aAAgBzgD,OAAI,GACpBd,EAAA8C,OAAY,UAAA,iDACX9F,WAAM,EACN+F,KAAS,OAIb4C,GAAAsS,WAAI,GAgZJjY,EA9YIwH,MAAA,QAAgB,yBAAA,mBAgZzB,SA9YSlB,GA+YRtG,EA9YQwH,MAAA,QAAY,mBAAA,qBA8ChC,QAAGu7C,GAAQvnB,EAAAxf,EAAA0mC,GAGR,GADAmN,KACYv0D,QAAZqK,GAAA29C,kBAAY39C,GAAA29C,iBAAAxiD,OAAA,EAAA,CACZ,GAAAk3B,KACH,KAAW,GAAAn3B,KAAU8E,IAAA29C,iBAClBtrB,EAAWx6B,KAAAmI,GAAA29C,iBAAAziD,GAAAghD,WAEVl8C,IAAAyjD,SAAapxB,EAAAqB,MACb,IAAAz2B,IAgZQ+/C,MAAOD,EA9YhB1mC,UAAAA,EACA6lC,WAAgBl8C,GAAAyjD,UAGhBxoD,GACA6oD,WAAmBnuD,QAAAqK,GAAA+jD,iBAAA/jD,GAAA+jD,iBAAAD,WAAA,GACnBhuD,UAAc+/B,EAgZLjgC,OAAQoK,GAAG4hD,oBAAoB7oC,GA9YxCmsC,UAAkBvoD,KAAAqkB,UAAA/jB,GAES,KAA3B+C,GAAA6hD,yBAA2B9oC,GAG3B6qE,EAAuBr+B,kBAAAtqD,GAAAwD,KAAA,SAAAC,GACI,MAA3BA,EAAAlI,QACAwJ,GAAAo8C,gBAAyB19C,EAAAhJ,KACzBsK,GAAgBsS,WAAA,GAEhBva,EAAA2I,YAAmC,QAAA,yBAAA,gBAEnC,SAAeC,GAgZN5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAiDhE,QAAS48C,KAGL,GADAkI,KA7YwB7vD,QA+YpBqK,GAAG29C,kBA/YiB39C,GAAA29C,iBAAkCxiD,OAAA,GAClCxF,QA+YpBqK,GAAG69C,qBA/YiB79C,GAAqB69C,oBAAY1iD,OAAA,EAAA,CAgZrD,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,IAAG69C,oBACbxrB,EAAIx6B,KAAKmI,GAAG69C,oBAAoB3iD,GAAG22B,cAEvC7xB,IAAGwjD,YAAcnxB,EAAIqB,MA7Y1B,IAAAz2B,IACG+/C,MAAAh9C,GAAgBglD,YAAUtJ,sBAC1BrlC,UAAgBrW,GAAA6hB,gBAAiBxL,UACjC6lC,WAAgBl8C,GAAAyjD,SAgZV5xB,cAAe7xB,GAAGwjD,aAGlBvoD,GA9YJ6oD,WAAkCnuD,QAAnBqK,GAAA+jD,iBAAmC/jD,GAAA+jD,iBAAeD,WAAA,GAC7DhuD,UAAIkK,GAAA6hB,gBAAgB/rB,UACpBF,OAAGoK,GAAA4hD,oBAAkB7oC,GACrBmsC,UAAGvoD,KAAYqkB,UAAA/jB,GAEL,KAAf+C,GAAA6hD,yBAAe9oC,GAkZd6qE,EAAyBn+B,WAAWxqD,GAAKwD,KAAK,SAAUC,GACjC,MAAfA,EAAIlI,QA9YXwJ,GAAAizB,SAAoBv0B,EAAAhJ,KACzBsK,GAAAsS,WAAA,GAEIva,EAAA2I,YAAuB,QAAe,yBAA0B,eAiZ7D,SA/YQC,GAgZP5I,EA/YS2I,YAAG,QAAY,mBAAY,iBAwZhD,QAAS2yN,KACLrzN,GAAGikD,mBAAqB,KACxBjkD,GAAGu7C,eA/YcC,aAAK,UAAAnzB,KAAA,MAAAmzB,aAAA,WAAAnzB,KAAA,MAkZ1B,QAASo1B,KA7YLiyC,IAgZA,IAAIr9D,KACJ,KAAK,GAAIn3B,KAAK8E,IAAG82C,aACbzkB,EAAIx6B,KAAKmI,GAAG82C,aAAa57C,GAAG8kB,OA7YhChgB,IAAA2lD,KAAAtzB,EAAAqB,MACA,IAAIz2B,IACA+/C,MAAGh9C,GAAAglD,YAAmBtJ,sBAgZtBrlC,UAAWrW,GAAG6hB,gBAAgBxL,UAE9B6lC,WAAYl8C,GAAGyjD,SA7Yf5xB,cAAG7xB,GAAAwjD,YAgZHxjC,OAAQhgB,GAAG2lD,KACX5G,SAAU/+C,GAAGikD,mBAAmB57B,MA5YhCptB,GAgZA6oD,WAAoCnuD,QAAvBqK,GAAG+jD,iBAAiC/jD,GAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BF,OAAQoK,GAAG4hD,oBAAoB7oC,GAC/BmsC,UAAWvoD,KAAKqkB,UAAU/jB,GA7YL,KAA7B+C,GAAS6hD,yBAAoB9oC,KACrB9d,EAAA+oD,MAAArnD,KAAaqkB,UAAAhhB,GAAAqyB,MAkZjBuxD,EA/Yeh+B,WAAA3qD,GAAAwD,KAAA,SAAAC,GAgZQ,MAAfA,EAAIlI,QA9YZwJ,GAAAm+C,SAAsBz/C,EAAAhJ,MACVsK,GAAAm+C,SAAWhjD,OAAK,GACjBd,EAAA8C,OAAA,UAA2B,iDAC3B9F,WAAY,EAgZP+F,KAAM,OA7Yd4C,GAAA6lD,cAAW,GAEhB7lD,GAAU6lD,cAAK,GAkZV9tD,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,MAGjB,QAASmlD,GAAqB/sC,GA5Y1B,GAFA/Y,GAAAgpD,mBAgZAhpD,GAAGlK,UAAYijB,EA9YLpjB,QAANojB,EAAM,CACN4oC,IAEA,IAAA1mD,IAgZInF,UAAWijB,EAMf6hC,GAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAAUC,GA9YnD,MAAHA,EAAGlI,QACHwJ,GAAAgmD,aAAAtnD,EAAAhJ,KACAwxI,KAgZKlnI,GAAGgmD,aAAa7qD,OAAS,EAC1Bd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EACX+F,KAAM,OAIV4C,GAAGmmD,eAAgB,EA7Y/BnmD,GAAWsS,WAAY,GAiZfjY,EAAQwH,MAAM,QAAS,yBAA0B,aAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,eAQvD,QA/YQqlI,KAgZJosF,KACAtzN,GAAGuzN,MA/YQ,EAgZXvzN,GAAGwzN,QA/YK,SAgZR,IAAIv4N,IACAnF,UA/YIkK,GAAA6hB,gBAAA/rB,UAgZJqxI,UA/YO,WAgZP/mI,SA/YOrI,EAAAuK,OAiZXu/E,GAAmBe,kBAAkB3nF,GAAKwD,KAAK,SAAUC,GA9YvC,MAAfA,EAAAlI,SACCwJ,GAAAgkM,mBAAuBtlM,EAAShJ,KAgZxBsK,GAAGgkM,mBAAmB7oM,OAAS,GAC/Bd,EAAQ8C,OAAO,UAAW,yCAA2C6C,GAAG6hB,gBAAgBS,aACpFjrB,WAAW,EACX+F,KAAM,OA5YlB4C,GAAMsS,WAAA,KAoZd,QAASmhN,GAA8B95F,GA9YnC35H,GAAA65H,mBAAsB,KAgZtB75H,GAAG0zN,iBACH,IAAIrhM,IACAsnG,eA/YO35H,GAAY2zN,qBAAAh6F,gBAiZnB1+H,GACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UA9Y/BqxI,UAAU,OACTC,OAAAzqI,KAAWqkB,UAAYqR,GAgZvBjyB,SAAUrI,EAAWuK,OAEzBu/E,GAAmBgB,cAAc5nF,GAAKwD,KAAK,SAAUC,GAC9B,MAAfA,EAAIlI,QA9YPwJ,GAAA0zN,eAAqBh1N,EAAAhJ,KAC1BsK,GAAA0zN,eAAAv4N,OAAA,GACAd,EAAA8C,OAAA,UAAA,kCAAA6C,GAAAy5H,uBAAAm6F,kBACUv8N,WAAA,EACM+F,KAAI,OAkZZ4C,GAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,iCAAmCrJ,WAAW,EAAM+F,KAAM,QAE/F,SAAUuD,GACU,MAAfA,EAAInK,OA9YZ6D,EAAA8C,OAAA,QAAyB,iBAAoB9F,WAAe,EAAA+F,KAAA,OAEpDrF,EAAG2I,YAAc,QAAA,iCAAArJ,WAAA,EAAA+F,KAAA,SAsZ7B,QAASsqI,KACLmsF,KACA7zN,GAAGuzN,MA/YQ,EAgZXvzN,GAAGwzN,QA/YK,WAgZR,IAAIv4N,IA9YDnF,UAAUkK,GAAK6hB,gBAAA/rB,UACdqxI,UAAW,MAgZX/mI,SAAUrI,EAAWuK,OAEzBu/E,GAAmBiB,eAAe7nF,GAAKwD,KAAK,SAAUC,GAC/B,MAAfA,EAAIlI,SACJwJ,GAAGk6H,gBAAkBx7H,EAAIhJ,KACzBsK,GAAGsS,WAAY,EACXtS,GAAGk6H,gBAAgB/+H,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,wBAA0B6C,GAAG6hB,gBAAgBS,aACnEjrB,WAAW,EACX+F,KAAM,OAGd4C,GAAGsS,WAAY,KAmC3B,QAAS+mG,KACLr5G,GAAG8zN,oBA/YqB,KAgZxB9zN,GAAGs/M,wBACHt/M,GAAG+zN,uBA/YQ,KAgZX/zN,GAAGs6H,2BACHt6H,GAAGu3H,qBAAuB,KAC1Bv3H,GAAGi+C,iBAAmB,KACtBj+C,GAAGu6H,oBACHv6H,GAAGg0N,YA/Ya,KAgZhBh0N,GAAGk8G,UACH,IAAI7pF,IACAooG,UA/YYz6H,GAAAi0N,oBAAex5F,UAgZ3BpkH,UAAarW,GA/YG6hB,gBAAWxL,WAiZ3Bpb,GACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BqxI,UAAW,WACXC,OA/YQzqI,KAAGqkB,UAAYqR,GAgZvBjyB,SAAUrI,EA/YCuK,OAiZfu/E,GAAmBmB,oBAAoB/nF,GAAKwD,KAAK,SAAUC,GA9YrC,MAAfA,EAAAlI,QACCwJ,GAAAs/M,qBAAuB5gN,EAAAhJ,KAiZnBgJ,EAAIhJ,KAAKyF,OAAS,EAClB6E,GAAG26H,gBAAiB,GAEpB36H,GAAG26H,gBAAiB,EACpB36H,GAAG46H,mBAAoB,EACvB56H,GAAG66H,YAAa,EAEhBxgI,EAAQ8C,OAAO,UAAW,uBACtB9F,WAAW,EACX+F,KAAM,QAGd4C,GAAGsS,WAAY,GAGfjY,EAAQwH,MAAM,QAAS,yBAA0B,0BAO7D,QAASqyN,KACLl0N,GAAG+zN,uBAAyB,KAC5B/zN,GAAGs6H,2BACHt6H,GAAGi+C,iBAAmB,KACtBj+C,GAAGu3H,qBAAuB,KAC1Bv3H,GAAGu6H,oBACHv6H,GAAGg0N,YAAc,KACjBh0N,GAAGk8G,UACH,IAAI7pF,IACAmpF,mBAAsBx7G,GAAG8zN,oBAAoBt4G,oBAE7CvgH,GACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BqxI,UAAW,cACXC,OAAQzqI,KAAKqkB,UAAUqR,GACvBjyB,SAAUrI,EAAWuK,OAEzBu/E,GAAmBoB,uBAAuBhoF,GAAKwD,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,QACJwJ,GAAGs6H,wBAA0B57H,EAAIhJ,KACjCsK,GAAGsS,WAAY,GAEfjY,EAAQwH,MAAM,QAAS,yBAA0B,wBAEtD,SAAUlB,GA9YbtG,EAAAwH,MAAA,QAAA,mBAAA,yBAoZJ,QAASsyN,KACLn0N,GAAGu3H,qBA/YmB,KAgZtBv3H,GAAGu6H,oBACHv6H,GAAGi+C,iBA/YY,KAgZfj+C,GAAGg0N,YA/YK,KAgZRh0N,GAAGk8G,UACH,IAAI7pF,IACAypF,sBAAyB97G,GAAG+zN,uBAAuBj4G,uBAEnD7gH,GACAnF,UA/YIkK,GAAA6hB,gBAAW/rB,UAgZfqxI,UA/YI,OAgZJC,OA/YIzqI,KAAAqkB,UAAgBqR,GAgZpBjyB,SAAUrI,EAAWuK,OAEzBu/E,GAAmBqB,gBAAgBjoF,GAAKwD,KAAK,SAAUC,GAChC,MAAfA,EAAIlI,QA9YRwJ,GAAAu6H,iBAAyB77H,EAAAhJ,KACrBsK,GAAAsS,WAAQ,GAkZRjY,EA/YOwH,MAAA,QAAA,yBAAA,iBAiZZ,SAAUlB,GACTtG,EA/YGwH,MAAU,QAAK,mBAAA,kBAmZ1B,QAASuyN,KACLp0N,GAAGg0N,YAAc,KACjBh0N,GAAGk8G,UACH,IAAI7pF,IACAgqF,eAAkBr8G,GAAGu3H,qBAAqBlb,gBAE1CphH,GACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BqxI,UAAW,MACXC,OAAQzqI,KAAKqkB,UAAUqR,GACvBjyB,SAAUrI,EAAWuK,OAEzBu/E,GAAmBsB,eAAeloF,GAAKwD,KAAK,SAAUC,GAC/B,MAAfA,EAAIlI,OACJwJ,GAAGk8G,QAAUx9G,EAAIhJ,KAEjBqC,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,MAOjB,QAAS0zN,KACLC,KACAt0N,GAAGuzN,MAAQ,EACXvzN,GAAGwzN,QAAU,YACb,IAAIv4N,IACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BqxI,UAAW,MACX/mI,SAAUrI,EAAWuK,OAEzBu/E,GAAmBuB,gBAAgBnoF,GAAKwD,KAAK,SAAUC,GAChC,MAAfA,EAAIlI,QACJwJ,GAAG43H,iBAAmBl5H,EAAIhJ,KAC1BsK,GAAGsS,WAAY,EACf01H,wBAEAjwI,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAoC5D,QAAS44G,KACLt5G,GAAGu0N,qBAAuB,KAC1Bv0N,GAAGw0N,oBACHx0N,GAAGy0N,wBA/YgB,KAgZnBz0N,GAAG00N,uBACH10N,GAAGy4H,sBAAwB,KAC3Bz4H,GAAG20N,qBAAuB,KAC1B30N,GAAGk4H,qBACHl4H,GAAG40N,aAAe,KAClB50N,GAAG60N,WACH,IAAIxiM,IACAqpG,WAAc17H,GAAG80N,qBAAqBp5F,WA9Y9CrlH,UAASrW,GAAA6hB,gBAAgBxL,WAElBpb,GAgZCnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BqxI,UAAW,WA9YnBC,OAASzqI,KAAAqkB,UAAeqR,GACpBjyB,SAAArI,EAAAuK,OAEAu/E,GAAUyB,qBAAAroF,GAAAwD,KAAA,SAAAC,GACO,MAAZA,EAAIlI,QACDwJ,GAAAw0N,iBAAqB91N,EAAGhJ,KAgZxBsK,GAAGsS,WAAY,GA7YnBva,EAAS2I,YAAA,QAAA,yBAAA,uBAiZV,SA/YCC,GAgZA5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAI5D,QA/YQq0N,KAgZJ/0N,GAAGy0N,wBA/Yc,KAgZjBz0N,GAAG00N,uBACH10N,GAAGy4H,sBAAwB,KA9Y3Bz4H,GAAAk4H,qBAgZAl4H,GAAG40N,aA/Yc,KAgZjB50N,GAAG20N,qBA/Ye,KAgZlB30N,GAAG60N,WACH,IA/YIxiM,IAgZAirF,OAAUt9G,GAAGu0N,qBAAqBj3G,QA7YlCriH,GAgZAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAC9BqxI,UAAW,cA9YfC,OAAAzqI,KAAAqkB,UAAyBqR,GACrBjyB,SAAQrI,EAAWuK,OAiZvBu/E,GA/YgB0B,wBAAqBtoF,GAAAwD,KAAA,SAAAC,GACjB,MA+YZA,EA/YIlI,SAgZJwJ,GAAG00N,oBA/YgBh2N,EAAAhJ,KAgZfsK,GAAG00N,oBA/YOv5N,OAAA,GAgZVd,EAAQ8C,OAAO,UAAW,0CAA4C6C,GAAGu0N,qBAAqBxhF,yBA9Y3F17I,WAAA,EACA+F,KAAA,OAiZH4C,GAAGw4H,mBAAoB,EA9YxBx4H,GAAAizB,UAAA,EACHjzB,GAAAy9F,MAAW,EAgZPz9F,GAAGy4H,sBAAwB,IAE3Bz4H,GAAGw4H,mBAAoB,EA7Y9Bx4H,GAAAsS,WAAA,KAqZT,QA/YQ0iN,KAgZJh1N,GAAGy4H,sBA/YgB,KAgZnBz4H,GAAGk4H,qBACHl4H,GAAG40N,aAAe,KAClB50N,GAAG20N,qBAAuB,KAC1B30N,GAAG60N,WACH,IAAIxiM,IA9YAurF,kBAAqB59G,GAAAy0N,wBAA0B72G,mBAiZ/C3iH,GACAnF,UA/YQkK,GAAA6hB,gBAAA/rB,UAgZRqxI,UA/YQ,OAgZRC,OAAQzqI,KA/YIqkB,UAAQqR,GAgZpBjyB,SAAUrI,EA/YMuK,OAiZpBu/E,GAAmB2B,iBAAiBvoF,GAAKwD,KAAK,SAAUC,GACpDsB,GAAGu4H,wBAA0B5iI,OAC7BqK,GAAGu4H,wBA/YY,GACA,MA+YX75H,EAAIlI,SACJwJ,GAAGk4H,kBAAoBx5H,EAAIhJ,KA9YvBsK,GAAGk4H,kBAAY/8H,OAAA,GAgZfd,EA/YG8C,OAAA,UAAA,mCAAA6C,GAAAy0N,wBAAA9iM,iBACHt6B,WAAc,EAgZV+F,KAAM,OA7Yd4C,GAAAizB,UAAc,EAgZVjzB,GAAGy9F,MAAO,IAEVz9F,GAAGizB,UAAW,EACdjzB,GAAGy9F,MAAO,GAEdz9F,GAAGsS,WAAY,KAK3B,QA/YO2iN,KACHj1N,GAAA40N,aAAU,KAgZV50N,GAAG60N,WACH,IA/YIxiM,IACA4rF,WAAUj+G,GAAAy4H,sBAAWxa,YAEzBhjH,GACInF,UAAQkK,GAAA6hB,gBAAgB/rB,UAgZxBqxI,UA/YO,OAgZPC,OA/YQzqI,KAAGqkB,UAAAqR,GAgZXjyB,SA/YQrI,EAAQuK,OAiZpBu/E,GA/YgB4B,gBAAMxoF,GAAAwD,KAAA,SAAAC,GAgZlB,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAG60N,SAAWn2N,EAAIhJ,IA9YlB,KAAG,GAAAwF,KAAA8E,IAAY60N,SAgZX70N,GAAG60N,SAAS35N,GAAGm9H,QAAU17H,KAAKC,MAAMoD,GAAG60N,SAAS35N,GAAGm9H,aAGvDtgI,GAAW2I,YAAY,QAAS,mCAAoC,WA7YzE,SAAAC,MAyZP,QAAS2nI,KA9YL4sF,KAgZAl1N,GAAGuzN,MA/YK,EAgZRvzN,GAAGwzN,QA/YQ,aAgZX,IAAIv4N,IACAnF,UA/YQkK,GAAA6hB,gBAAe/rB,UAgZvBqxI,UAAW,WACX/mI,SAAUrI,EA/YQuK,OAiZtBu/E,GAAmB6B,sBAAsBzoF,GAAKwD,KAAK,SAAUC,GA9YtC,MAAfA,EAAGlI,SAgZHwJ,GA/YG87H,uBAAAp9H,EAAAhJ,KACHsK,GAAA87H,uBAAuB3gI,OAAS,GAgZ5Bd,EAAQ8C,OAAO,UAAW,wCAA0C6C,GAAG6hB,gBAAgBS,aA9YtFjrB,WAAK,EACN+F,KAAA,OAGJ4C,GAAAsS,WAAW,KAyZvB,QA/YO6iN,KACHn1N,GAAAo1N,uBAAU,KAgZVp1N,GAAGq1N,qBACH,IA/YIhjM,IACAosF,qBAAqBz+G,GAAAw+G,2BAAAC,sBAEzBxjH,GACInF,UAAQkK,GAAA6hB,gBAAgB/rB,UAgZxBqxI,UA/YO,OAgZPC,OA/YOzqI,KAAAqkB,UAAYqR,GAgZnBjyB,SA/YQrI,EAAGuK,OAkZfu/E,GA/YgB8B,kBAAM1oF,GAAAwD,KAAA,SAAAC,GAgZC,MAAfA,EAAIlI,SACJwJ,GAAGq1N,mBAAqB32N,EAAIhJ,KA9YzBsK,GAAAq1N,mBAAYl6N,OAAA,GAgZXd,EAAQ8C,OAAO,UAAW,oCAAsC6C,GAAGw+G,2BAA2BoD,gBAC1FvqH,WAAW,EACX+F,KAAM,OAGd4C,GAAGsS,WAAY,KAK3B,QAAS20C,GAAmBC,GACxBF,IAEA,IAAI/rD,IACAnF,UAAWkK,GAAG+jD,iBAAiBjuD,UAC/BguD,WAAY9jD,GAAG+jD,iBAAiBD,WAEpCtC,GAAkB6J,iBAAiBpwD,GAAKwD,KAAK,SAAUC,GACnD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAChCM,GAAGsrD,WAAa9wD,EAAO+wD,KAAKvrD,GAAGq+C,OAAO2F,OAAO0C,OAC7C1mD,GAAG+lD,uBACH,IAAIqB,KAEJ5sD,GAAOqI,QAAQ7C,GAAGq+C,OAAO2F,MAAO,SAAU6C,GACtC,GAAI/N,IACAuO,KAAMR,EAAEQ,KACRX,OAAQG,EAAEH,OACVgB,SAAUb,EAAEH,OACZI,OAAsB,UAAbD,EAAEH,OAAsBG,EAAEC,UAEvCM,GAASvvD,KAAKihD,GACd94C,GAAG4mD,YAAcQ,IA7YxBpnD,GAAA+lD,qBAAwBqB,EAC1BpnD,GAAAsS,WAAA,MAEAva,GAAA2I,YAAyB,QAAA,yBAAA,SAGzB,SAAAC,GACA5I,EAAA2I,YAAmB,QAAA,mBAAA,UAsZ1B,QA/YQ0lD,GAAMC,GAgZV,GA/YIA,EAAAC,sBAA8B,CAC9B,GAAAE,GAAW,QAAAC,EAAAJ,EAAAK,QAAA,GACXC,EAAansD,EAAU6P,KAAArK,GAAA6vF,iBAAApoC,SAAAjB,GACvBhsD,GAAAqI,QAAU7C,GAAA4mD,YAAW,SAAAC,GAgZbA,EAAEY,WAAajB,IA9Y3BK,EAAAC,OAAmBtsD,EAAAyC,OAAA0pD,EAA8BG,QAAUxrB,SAAK+qB,EAAAC,sBAAAS,YAmZ5D/mD,GAAGqyB,KACCp1B,UAEJ,KAAK,GA/YG/B,KAAG8E,IAAA4mD,YACH5mD,GAAG4mD,YAAA1rD,GAAAorD,wBACHtmD,GAAGqyB,IAAAp1B,OAAA+C,GAAa4mD,YAAA1rD,GAAAwrD,QAAA1mD,GAAA4mD,YAAA1rD,GAAAorD,sBAAAS,YAqZxBC,MAMR,QAASM,GAAiBjB,GACtB,GAAIA,EAASC,sBAAuB,CAChCtmD,GAAGumD,aACHvmD,GAAG+lD,oBA7YX,IAASS,GAAA,QAAAC,EAA8BJ,EAAAK,QAAA,GAChCC,EAAAnsD,EAAyB6P,KAAArK,GAAAq+C,OAAA2F,OACzB0C,OAAAF,GAEAhsD,GAAAqI,QAAA7C,GAAA+lD,qBAAuB,SAAAc,GACvBA,EAAAH,SAAmBF,IACnBK,EAAAC,OAActsD,EAAAyC,OAAA0pD,EAAAG,QACJxrB,SAAA+qB,EAAAC,sBAAAS,gBAMTC,MAoZR,QA/YQP,GAAQc,GAgZZ,MAAO3gD,UA/YI2gD,EAAAjkC,UAA0B,IAkZzC,QAASkkC,KACLxnD,GAAGukD,aACH,KA/YG,GAAArpD,KAAU8E,IAAA+lD,qBAAK,CACd,GAAA9qD,IAgZIwsD,SAAUznD,GAAG+lD,qBAAqB7qD,GAAGmsD,KACrCK,SAAU1nD,GAAG+lD,qBAAqB7qD,GAAGwrD,OAEzC1mD,IAAGukD,WAAW1sD,KAAKoD,IAM3B,QA/YOqqD,KAiZH,GA/YIgwK,IAgZAr4N,UAMJ,OAJAzC,GA/YIqI,QAAW7C,GAAG+lD,qBAAgB,SAAAM,GAC9BA,EAAWC,wBACXgvK,EAAar4N,OAAAopD,EAAUqB,UAAArB,EAAAC,sBAAAS,UAiZpBpqD,KAAKqkB,UAAUs0M,GAK1B,QAASC,KAELv1N,GAAGsS,WA/YK,CAgZR,IAAIpS,GAAa/F,EAAsBgG,uBA7YnCkmD,EAAQf,IAiZR9C,EAAa,IAnXjB,IAoX6C,IAAzCxiD,GAAGozN,sBAAsBxuK,YA9YN,IAAlB5kD,GAAA8hD,kBAAkBpV,cACpB1sC,GAAAkiD,eAAcutC,iBAAA,EACdjtC,EAAU,kBAAAxiD,GAAAw1N,qBAAAC,aAAA,IAAAz1N,GAAAkiD,eAAAS,eAAA,IAAA3iD,GAAAwzN,QAAA,oBAAAxzN,GAAA8hD,kBAAAc,gBAAA,4BAAA5iD,GAAAiiD,iBAAAY,eAAA,yDAAA7iD,GAAAgzN,aAAAE,SAAA,MAAAlzN,GAAA6hD,yBAAAiB,qBACH,gBAAA7oD,EAAA,QAAA+F,GAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,GAAA+iD,KAAAE,GAAA,cAAA,oBACoC,IAA1CjjD,GAAkBkiD,eAAGutC,mBAgZbjtC,EAAa,kBAAmBxiD,GAAGw1N,qBAAqBC,aAAe,IAAMz1N,GAAGkiD,eAAeS,eAAiB,IAAM3iD,GAAGwzN,QAAU,oBAAsBxzN,GAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,GAAGiiD,iBAAiBY,eAAiB,yDAAsE7iD,GAAGgzN,aAAaE,SAAW,MAAQlzN,GAAG6hD,yBAAyBiB,qBA9Y/Y,eAAA7oD,EAAA,QAAA+F,GAAA+iD,KAAAC,KAAA,cAAA,qBAINhjD,GAAUkiD,eAAWutC,iBAAA,EAgZbjtC,EAAa,kBAAoBxiD,GAAGw1N,qBAAqBC,aAAe,IAAMz1N,GAAGkiD,eAAeS,eAAiB,IAAM3iD,GAAGwzN,QAAU,oBAAsBxzN,GAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,GAAGgiD,gBAAgBkB,aAAe,yDAAsEljD,GAAGgzN,aAAaE,SAAW,MAAQlzN,GAAG6hD,yBAAyBiB,qBA9YvZ,gBAAuC7oD,EAAK,QAAU+F,GAAK+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,GAAA+iD,KAAAE,GAAA,cAAA,oBAC/B,IAAhBjjD,GAAAkiD,eAAgButC,mBACjBjtC,EAAc,kBAAAxiD,GAAAw1N,qBAAAC,aAAA,IAAAz1N,GAAAkiD,eAAAS,eAAA,IAAA3iD,GAAAwzN,QAAA,oBAAAxzN,GAAA8hD,kBAAAc,gBAAA,4BAAA5iD,GAAAgiD,gBAAAkB,aAAA,yDAAAljD,GAAAgzN,aAAAE,SAAA,MAAAlzN,GAAA6hD,yBAAAiB,qBACd,eAAA7oD,EAAA,QAAA+F,GAAA+iD,KAAAC,KAAA,cAAA,qBAqZPR,EAAaxiD,GAAGw1N,qBAAqBC,aAAe,IAAMz1N,GAAGwzN,QAAU,qBAAuBxzN,GAAG4hD,oBAAoBW,gBAAkB,OAASviD,GAAGgzN,aAAaE,SAAW,MAAQlzN,GAAG6hD,yBAAyBiB,qBAAuB,MAAQ9iD,GAAG0hD,iBAAiB6vK,aAAa54K,YAAc,eA1YjShjD,QAAAqK,GAAAojD,cAAApjD,GAAAojD,aAAAjoD,OAAA,EAAA,CACG,GAAAkoD,KACA,KAAA,GAAUnoD,KAAA8E,IAAAojD,aACTC,EAAMxrD,KAAAmI,GAAAojD,aAAAloD,GAAAooD,cAENtjD,IAAAujD,KAAAF,EAAW3vB,OAGf,GAAAgiM,GAAA,IAkZA,IAFAA,EA/YQ11N,GAAIuzN,MAED,GA+YPmC,EACA,GA/YI5xI,IAEA41C,eAAgC/jI,QAArBqK,GAAA2zN,qBAAqB3zN,GAA0B2zN,qBAAAh6F,eAAA,GAgZ1D6qE,WAAsC7uM,QAAzBqK,GAAG65H,mBAAmC75H,GAAG65H,mBAAmB2D,WAAa,GAI9F,IAAe,GAAXk4F,EACA,GAAI5xI,IAEA03B,mBAA+C7lH,QAA1BqK,GAAG8zN,oBAAoC9zN,GAAG8zN,oBAAoBt4G,mBAAqB,GACxGM,sBAAqDnmH,QAA7BqK,GAAG+zN,uBAAuC/zN,GAAG+zN,uBAAuBj4G,sBAAwB,GACpHO,eAA4C1mH,QAA3BqK,GAAGu3H,qBAAqCv3H,GAAGu3H,qBAAqBlb,eAAiB,GAClGtjG,GAAuBpjB,QAAlBqK,GAAGg0N,YAA4Bh0N,GAAGg0N,YAAYj7M,GAAK,GAIhE,IAAe,GAAX28M,EACA,GAAI5xI,IAEAw5B,OAAoC3nH,QAA3BqK,GAAGu0N,qBAAqCv0N,GAAGu0N,qBAAqBj3G,OAAS,GAClFM,kBAAkDjoH,QAA9BqK,GAAGy0N,wBAAwCz0N,GAAGy0N,wBAAwB72G,kBAAoB,GAC9GK,WAAyCtoH,QAA5BqK,GAAGy4H,sBAAsCz4H,GAAGy4H,sBAAsBxa,WAAa,GAC5FllG,GAAwBpjB,QAAnBqK,GAAG40N,aAA6B50N,GAAG40N,aAAa77M,GAAK,GAIlE,IAAe,GAAX28M,EACA,GAAI5xI,IAEA26B,qBAAwD9oH,QAAjCqK,GAAGw+G,2BAA2Cx+G,GAAGw+G,2BAA2BC,qBAAuB,GAC1Hof,cAA6CloI,QAA7BqK,GAAGo1N,uBAAuCp1N,GAAGo1N,uBAAuBv3F,cAAgB,GAK5G,IAAI5iI,IACAnF,UAAWkK,GAAG6hB,gBAAgB/rB,UAE9BkuD,MAAOqC,EA7YfvC,WAAS9jD,GAAA+jD,iBAAyBD,WAC3BJ,YAAA1jD,GAAA29C,iBAAuBzB,WACvByH,eAAA3jD,GAAmB69C,oBAAAhsB,cACnB+xB,QAA0BjuD,QAA1BqK,GAAA82C,aAA0B92B,OAAAhgB,GAAA82C,aAAA92B,OAAA,GAC1BsjC,cAAsB3tD,QAAtBqK,GAAAojD,aAAsBpjD,GAAAujD,KAAA,GACtBnE,iBAAAp/C,GAAAmT,gBAAwB84B,YACxB3pB,YAAAtiB,GAAA6hB,gBAAuBS,YACvBqvM,SAAA3xN,GAAAuzN,MACAoC,eAAe31N,GAAAozN,sBAAAxuK,YAGdlV,SAAA1vC,GAAA+iD,KAAiBC,KACjBrT,OAAA3vC,GAAA+iD,KAAgBE,GAgZhBnvB,SAAU5zB,EAAWi/C,UA9YrBmF,UAAMtkD,GAAAw1N,qBAAAz8M,GACNmrC,QAAA1B,EACAozK,UAAW51N,GAAA6hD,yBAAA9oC,GACX88M,eAAal5N,KAAAqkB,UAAU8iE,GACvB3/B,kBAAUnkD,GAAW0hD,iBAAA6vK,aAAA54K,YAgZrBkxD,YAAa7pG,GAAG4hD,oBAAoB7oC,GA9YxC64M,iBAAmB5xN,GAAAgzN,aAAAG,WAEe,KA+Y9BnzN,GAAGw1N,qBA/YIz8M,KAgZP9d,EA/YIysD,SAAG1nD,GAAA81N,iBAAYpuK,UAkZsB,IAAzC1nD,GAAGozN,sBAAsBxuK,cA9Y1B5kD,GAAA8hD,kBAAepV,cAAA,GACdzxC,EAAAu8B,WAAoD7hC,QAAzCqK,GAAYgiD,gBAASxqB,WAAoBx3B,GAAAgiD,gBAAAxqB,WAAA,GAgZ5Cv8B,EAAIyxC,cAAuD/2C,QAAtCqK,GAAG8hD,kBAAkBpV,cAA8B1sC,GAAG8hD,kBAAkBpV,cAAgB,KA5YpHzxC,EAAAu8B,WAAmC7hC,QAAnCqK,GAAAiiD,iBAAmC3qB,aAAAt3B,GAAAiiD,iBAAA3qB,aAAA,GACrCr8B,EAAAyxC,cAA0B/2C,QAAAqK,GAAA8hD,kBAAApV,cAAA1sC,GAAA8hD,kBAAApV,cAAA,KAK7Bva,QAAGC,IAAAn3B,GACH2oF,EAAcC,sBAAA5oF,GAAAwD,KAAA,SAAAC,GACV,GAAM,MAANA,EAAMlI,OAAA,CACNwJ,GAAA8Z,cAAapb,EAAAhJ,KAgZTsK,GAAGsS,WAAY,CA9YnB,IAAM2D,GAAAnf,SAAAijB,cAAA,IACNjjB,UAAWC,KAAGijB,YAAgB/D,GAC9BA,EAAAgE,MAAW,eACX,IAAQrc,GAAK,GAAAC,OAAUa,EAAAhJ,OACvBqI,KAAU,oBAEdtJ,EAAAC,OAAmBwlB,IAAAC,gBAAwBvc,EACnCnD,GAAI4E,KAAA5K,EAAW,UACfsD,EAAG2I,YAAA,UAA0B,iBAAA,mBAsZ7BwR,QAGA7X,GA/YOwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OAgZP4C,GAAGsS,WA/YI,GAkZX,SAAU3R,GACNtG,EAAQwH,MAAM,gBAAiB,YAAc7B,GAAGwzN,SAAWn8N,WAAW,EAAM+F,KAAM,OAClF4C,GAAGsS,WAAY,IAI3B,QA/YOw+M,KACH/mK,KACA/C,KACA6sK,KACAS,KACAhB,KAgZA4B,KACAl1N,GAAG6hB,gBAAkB,KA9YrB7hB,GAAA2hB,eAgZA3hB,GAAG4hD,oBA/Ye,KAgZlB5hD,GAAG6hD,yBA/YY,KAgZf7hD,GAAGw1N,qBA/Yc,KAgZjBx1N,GAAG81N,iBA/YW,KAgZd91N,GAAGukD,cA9YHvkD,GAAAgzN,aAAA,KAgZAhzN,GAAGizN,YACHjzN,GAAG+jD,iBA/YI,KAkZX,QAASpC,MAEL3hD,GAAG4hD,oBA/Ya,KAgZhB5hD,GAAG6hD,yBA/YmB,KAkZ1B,QAAS6tC,MACL1vF,GAAGm+C,YACHn+C,GAAGojD,aA/YY,KAmZnB,QAASoC,MACLxlD,GAAG82C,aAAe,KAClB92C,GAAGikD,mBAAqB,KACxBjkD,GAAGizB,YA9YPy8D,KAkZA,QA/YQxlC,MAgZJlqD,GAAG69C,oBA/YkB,KAgZrB79C,GAAGo8C,mBA9YHoJ,KAmZJ,QA/YQyE,MAgZJjqD,GAAG29C,iBAAmB,KA9YtB39C,GAAA47C,gBAgZAsO,KACA1E,KAGJ,QAASwE,MAGLC,KACAC,KACA1E,KAGJ,QAASuE,MACL/pD,GAAGglD,YAAc,KACjBhlD,GAAGk7C,QAAU,KACbl7C,GAAG+jD,iBAAmB,KACtBiG,KACAC,KA9YJC,KACI1E,KACAquK,KACAS,KACAhB,KAgZA4B,KAIJ,QA/YIluK,MAgZAxsD,EA/YIqI,QAAQ7C,GAAA+lD,qBAAgB,SAAAM,GAgZxBA,EA/YOC,sBAAyB,OAoZxC,QAASutK,MACL7zN,GAAGi0N,oBAAsB,KACzBj0N,GAAGk6H,mBAGHl6H,GAAGi+C,iBAAmB,KAEtBj+C,GAAG8zN,oBAAsB,KACzB9zN,GAAGs/M,wBACHt/M,GAAG+zN,uBAAyB,KAC5B/zN,GAAGs6H,2BACHt6H,GAAGu3H,qBAAuB,KA9Y9Bv3H,GAAAu6H,oBACIv6H,GAAGg0N,YAAA,KACHh0N,GAAGk8G,WAkZP,QAASo4G,MA9YLt0N,GAAA80N,qBAAU,KAgZV90N,GAAG43H,oBAGH53H,GAAG20N,qBA/YsB,KAiZzB30N,GAAGu0N,qBAAuB,KA9Y1Bv0N,GAAAw0N,oBAgZAx0N,GAAGy0N,wBA/YyB,KAgZ5Bz0N,GAAG00N,uBACH10N,GAAGy4H,sBA/YY,KAgZfz4H,GAAGk4H,qBACHl4H,GAAG40N,aA/Ya,KAgZhB50N,GAAG60N,YAGP,QAASvB,MACLtzN,GAAG2zN,qBAAuB,KAC1B3zN,GAAGgkM,sBACHhkM,GAAG65H,mBAAqB,KACxB75H,GAAG0zN,kBAGP,QA/YIwB,MACAl1N,GAAAw+G,2BAAU,KAgZVx+G,GAAG87H,0BACH97H,GAAGo1N,uBA/YgB,KAgZnBp1N,GAAGq1N,sBAGP,QAAS3jN,MACLq4C,KACA2lC,KACA1oC,KACA6sK,KACAS,KACAhB,KACA4B,KACAhhN,KACAlU,GAAGmT,gBA/Ya,KAgZhBnT,GAAGqS,eACHrS,GAAG6hB,gBAAkB,KACrB7hB,GAAG2hB,eACH3hB,GAAG4hD,oBA/YY,KAgZf5hD,GAAG6hD,yBAA2B,KAC9B7hD,GAAGw1N,qBA/YQ,KAgZXx1N,GAAG81N,iBA/YQ,KAgZX91N,GAAGukD,cACHvkD,GAAGgzN,aA/YK,KAgZRhzN,GAAGizN,YACHjzN,GAAG0hD,iBAAiB6vK,aAAe,KACnCvxN,GAAG+jD,iBA/YgB,KAgZnB7xC,IAIJ,QAASgC,MACLlU,GAAG+1N,sBAAsB3hN,gBA4M7B,QAASgF,IA/YO1jB,GAgZZ,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAuC1D,QA/YIC,IAAA7jB,GACA,GAAA2jB,GAAA3jB,EAAA2jB,KACA9iB,EAAAb,EAAAa,IACA,IAAG,QAAAA,EAGA,IAAA,GAFAijB,GAAc,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEdxe,EAAA,EAAAA,EAAA8E,GAAA2Z,OAA2Bxe,OAAAD,IAAA,CAC3B,GAAA0e,GAAA,GAAuBH,MAAAzZ,GAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEvB,IAAAF,IAAaI,EACb,MAAe5Z,IAAA2Z,OAAAze,GAAA1E,OAmZlB,MAAO,GA4BX,QA/YOmxD,MACH,GAAkB,KAAf3nD,GAAAkiD,eAAe75B,KAAA,CAClBroB,GAAA+iD,KAAAE,GAAA7uD,QAAA8e,KAAAlT,GAAA+iD,KAAAC,KACA,IAAA4E,GAAA,CAgZI5nD,IAAG+iD,KAAKE,GAAGznC,QAAQxb,GAAG+iD,KAAKE,GAAGjnC,UAAY4rC,OA7Y1B,KAAf5nD,GAAAkiD,eAAe75B,OAgZhBroB,GAAG+iD,KAAKE,GAAK,IAuBrB,QA/YI+E,MAiZA,GAA8B,KAA1BhoD,GAAGkiD,eAAe75B,KAAa,CAC/BroB,GAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,GAAG+iD,KAAKC,KAClC,IAAI8E,GAAqB,CACzB9nD,IAAG+iD,KAAKE,GAAG8E,SAAS/nD,GAAG+iD,KAAKE,GAAG9R,WAAa2W,GA9YpD9nD,GAAS+iD,KAAAE,GAAAznC,QAAgBxb,GAAA+iD,KAAAE,GAAAjnC,UAAA,OAkZc,KAA1Bhc,GAAGkiD,eAAe75B,OACvBroB,GAAG+iD,KAAKE,GAAK;CA70DrB,GAAIjjD,IA9YIC,IA+YRD,IAAGsU,SA9YS,KA+YZtU,GAAGuzN,MAAQ,EACXvzN,GAAGwzN,QAAU,UACbxzN,GAAGgT,YA9YK,EA+YRhT,GAAG+S,WA9YS,EA+YZ/S,GAAGsS,WA9YS,EA+YZva,EAAW2c,SAAU,EACrB1U,GAAGm+C,YACHn+C,GAAG+lD,uBACH,IAAI7lD,IA9YQ/F,EAAcgG,uBA+YtBgS,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAE7EnS,IAAGyhB,oBAAsBA,EACzBzhB,GAAGkyG,cAAgBA,EAEnBlyG,GAAGioD,aAAeA,EAClBjoD,GAAGyoD,WA9YKA,EA+YRzoD,GAAG2nD,iBA9YSA,GA+YZ3nD,GAAG2oD,YA9YSA,EAgZZ3oD,GAAGgoD,gBAAkBA,GACrBhoD,GAAG88C,qBAAuBA,EAC1B98C,GAAGo9C,yBAA2BA,EAC9Bp9C,GAAGs9C,yBAA2BA,EAC9Bt9C,GAAGy9C,aAAeA,EAClBz9C,GAAG8lD,qBAAuBA,EAC1B9lD,GAAGm1N,yBAA2BA,EAC9Bn1N,GAAGsoI,uBA9YQA,EA+YXtoI,GAAGi1N,cA9YQA,EA+YXj1N,GAAGg1N,6BA9YyBA,EA+Y5Bh1N,GAAG+0N,iCA9YuBA,EA+Y1B/0N,GAAGs5G,uBAAyBA,EAC5Bt5G,GAAGwoD,aA9YKA,EAgZRxoD,GAAGq0N,gBA9YSA,EA+YZr0N,GAAGo0N,gBAAkBA,EACrBp0N,GAAGm0N,wBAA0BA,EAC7Bn0N,GAAGk0N,4BA9YKA,EA+YRl0N,GAAGq5G,sBA9YSA,EAgZZr5G,GAAG0nI,gBAAkBA,EACrB1nI,GAAGyzN,8BA9YKA,EA+YRzzN,GAAGknI,mBA9YSA,EA+YZlnI,GAAGinD,mBA9YSA,EA+YZjnD,GAAGsnD,iBAAmBA,EACtBtnD,GAAGwnD,cA9YKA,EA+YRxnD,GAAGymD,UA9YSA,EA+YZzmD,GAAGomD,YA9YSA,EA+YZpmD,GAAG0R,OAASA,GACZ1R,GAAGqzN,cA9YKA,EA+YRrzN,GAAGu1N,sBA9YSA,EA+YZv1N,GAAGuoD,gBA9YSA,EA+YZvoD,GAAG47C,gBACH57C,GAAGo8C,mBACHp8C,GAAGizB,YACHjzB,GAAG68C,kBACH78C,GAAG68C,kBACH78C,GAAG+iD,QACH7wC,IAKAlS,GAAGg2N,mBA9YSP,aAAgB,WAAA18M,GAAA,IAAA08M,aAAA,eAAA18M,GAAA,IAmZ5B/Y,GAAGstI,kBA9YS30F,YAAc,UAAAA,YAAA,aA+Y1B34C,GAAGuwN,WAAcziE,SAAU,eAAgBtnB,OAAQ,IAAOsnB,SAAU,cAAetnB,OAAQ,IAAOsnB,SAAU,UAAWtnB,OAAQ,IAC/HxmI,GAAGi2N,gBAAmB3xK,UAAW,wBAAyBM,YAAa,IAAON,UAAW,gBAAiBM,YAAa,IAwBvH5kD,GAAG+oD,iBACGpG,eAAgB,SAAUt6B,KAAM,IAAKonE,iBAAkB,IACvD9sC,eAAgB,UAAWt6B,KAAM,IAAKonE,iBAAkB,IACxD9sC,eAAgB,WAAYt6B,KAAM,IAAKonE,iBAAkB,IAyC/DzvF,GAAGk2N,qBA9YqB,SAAArgM,EAAA+uB,GAEC,GA8YjB5kD,GAAGozN,sBA9YcxuK,YA+YjB5kD,GAAGgpD,kBAAqBzG,gBAAiB,YAAaxpC,GAAI,IAAOwpC,gBAAiB,gBAAiBxpC,GAAI,IAI1D,GAAxC/Y,GAAGozN,sBAAsBxuK,cAC9B5kD,GAAGgpD,kBAAqBzG,gBAAiB,gBAAiBxpC,GAAI,KA1YjD,IAAb6rC,GA+YAqD,EAAapyB,IAk3C3B71B,GAAG81F,WA/YW,WAiZZ,GAAI51F,GA/YY/F,EAAmBgG,uBAiZ/BkmD,EAAWf,IAEX9C,EAAa,IA4BjB,IA1aqB,IA+YjBxiD,GAAGozN,sBA/YcxuK,YACG,IA+YhB5kD,GAAG8hD,kBA/YapV,cAgZZ1sC,GAAGkiD,eAAeutC,iBAAmB,EA9YrCjtC,EAAS,kBAAqBxiD,GAAAw1N,qBAAAC,aAAA,IAAAz1N,GAAAkiD,eAAAS,eAAA,IAAA3iD,GAAAwzN,QAAA,oBAAAxzN,GAAA8hD,kBAAAc,gBAAA,4BAAA5iD,GAAAiiD,iBAAAY,eAAA,yDAAA7iD,GAAAgzN,aAAAE,SAAA,MAAAlzN,GAAA6hD,yBAAAiB,qBAgZ5B,gBA/YwB7oD,EAAA,QAAA+F,GAAuB+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,GAAA+iD,KAAAE,GAAA,cAAA,oBACT,IA+YjCjjD,GA/YCkiD,eAAiButC,mBAgZzBjtC,EAAa,kBAAmBxiD,GAAGw1N,qBAAqBC,aAAe,IAAMz1N,GAAGkiD,eAAeS,eAAiB,IAAM3iD,GAAGwzN,QAAU,oBAAsBxzN,GAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,GAAGiiD,iBAAiBY,eAAiB,yDAAsE7iD,GAAGgzN,aAAaE,SAAW,MAAQlzN,GAAG6hD,yBAAyBiB,qBAC3Y,eAA4B7oD,EAAQ,QAAQ+F,GAAG+iD,KAAKC,KAAM,cAAgB,qBA3Y5EhjD,GAAAkiD,eAAAutC,iBAAA,EAgZAjtC,EAAa,kBAAoBxiD,GAAGw1N,qBAAqBC,aAAe,IAAMz1N,GAAGkiD,eAAeS,eAAiB,IAAM3iD,GAAGwzN,QAAU,oBAAsBxzN,GAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,GAAGgiD,gBAAgBkB,aAAe,yDAAsEljD,GAAGgzN,aAAaE,SAAW,MAAQlzN,GAAG6hD,yBAAyBiB,qBACzY,gBAA4B7oD,EAAQ,QAAQ+F,GAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,GAAG+iD,KAAKE,GAAI,cAAgB,oBACnF,IAAvCjjD,GAAGkiD,eAAeutC,mBACzBjtC,EAAa,kBAAoBxiD,GAAGw1N,qBAAqBC,aAAe,IAAOz1N,GAAGkiD,eAAeS,eAAiB,IAAM3iD,GAAGwzN,QAAU,oBAAsBxzN,GAAG8hD,kBAAkBc,gBAAkB,4BAAmC5iD,GAAGgiD,gBAAgBkB,aAAe,yDAAsEljD,GAAGgzN,aAAaE,SAAW,MAAQlzN,GAAG6hD,yBAAyBiB,qBAC1Y,eAA2B7oD,EAAQ,QAAQ+F,GAAG+iD,KAAKC,KAAM,cAAgB,qBAMnFR,EA/YYxiD,GAAAw1N,qBAAqBC,aAAmB,IAAAz1N,GAAAwzN,QAAU,qBAAAxzN,GAAA4hD,oBAAAW,gBAAA,OAAAviD,GAAAgzN,aAAAE,SAAA,MAAAlzN,GAAA6hD,yBAAAiB,qBAAA,MAAA9iD,GAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAK5ChjD,QA+YlBqK,GAAGojD,cA/Y0BpjD,GAAAojD,aAAUjoD,OAAA,EAAA,CAgZvC,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,IAAGojD,aACbC,EAAIxrD,KAAKmI,GAAGojD,aAAaloD,GAAGooD,cAEhCtjD,IAAGujD,KAAOF,EAAI3vB,OAGlB,GAAIgiM,GA/YQ,IAkZZ,IAFAA,EAAU11N,GAAGuzN,MAEE,GAAXmC,EACA,GAAI5xI,IA7YA41C,eAAqC/jI,QAArBqK,GAAA2zN,qBAAqB3zN,GAAA2zN,qBAAAh6F,eAAA,GAgZrC6qE,WAAsC7uM,QAAzBqK,GAAG65H,mBAAmC75H,GAAG65H,mBAAmB2D,WAAa,GAI9F,IA/Ya,GA+YTk4F,EACA,GAAI5xI,IAEA03B,mBA/Y6C7lH,QAAxBqK,GAAA8zN,oBAAwB9zN,GAAA8zN,oBAAAt4G,mBAAA,GAgZ7CM,sBAAqDnmH,QAA7BqK,GAAG+zN,uBAAuC/zN,GAAG+zN,uBAAuBj4G,sBAAwB,GACpHO,eA/YuB1mH,QAAhBqK,GAAWu3H,qBAAKv3H,GAAAu3H,qBAAAlb,eAAA,GAgZvBtjG,GAAuBpjB,QAAlBqK,GAAGg0N,YAA4Bh0N,GAAGg0N,YAAYj7M,GAAK,GAIhE,IAAe,GAAX28M,EA9YA,GAAA5xI,IAEIw5B,OAAgB3nH,QAAZqK,GAAAu0N,qBAAYv0N,GAAAu0N,qBAAAj3G,OAAA,GAgZhBM,kBA/YYjoH,QAAAqK,GAAAy0N,wBAAAz0N,GAAAy0N,wBAAA72G,kBAAA,GAgZZK,WAAyCtoH,QAA5BqK,GAAGy4H,sBAAsCz4H,GAAGy4H,sBAAsBxa,WAAa,GA9Y5FllG,GAAkBpjB,QAAlBqK,GAAO40N,aAAW50N,GAAsB40N,aAAU77M,GAAA,GAmZ1D,IA/Ye,GA+YX28M,EACA,GAAI5xI,IAEA26B,qBAAwD9oH,QAAjCqK,GAAGw+G,2BAA2Cx+G,GAAGw+G,2BAA2BC,qBAAuB,GAC1Hof,cAA6CloI,QAA7BqK,GAAGo1N,uBAAuCp1N,GAAGo1N,uBAAuBv3F,cAAgB,GAK5G,IAAI5iI,IACAnF,UA/YQkK,GAAA6hB,gBAAW/rB,UAiZnBkuD,MA/YIqC,EAiZJvC,WA/YY9jD,GAAG+jD,iBAAAD,WAgZfJ,YA/YY1jD,GAAI29C,iBAAGzB,WAgZnByH,eA/YgB3jD,GAAA69C,oBAAahsB,cAgZ7B+xB,QA/Y4BjuD,QA+YlBqK,GAAG82C,aA/YK92B,OAA4BhgB,GAAA82C,aAAmB92B,OAAK,GAgZtEsjC,cA/Y0B3tD,QA+YVqK,GA/YGojD,aAAsBpjD,GAAAujD,KAAA,GAgZzCnE,iBA/YgBp/C,GAAAmT,gBAAa84B,YAgZ7B3pB,YAAatiB,GAAG6hB,gBA/YaS,YAgZ7BqvM,SAAU3xN,GAAGuzN,MACboC,eAAgB31N,GAAGozN,sBAAsBxuK,YAGzClV,SAAU1vC,GAAG+iD,KA/YGC,KAgZhBrT,OAAQ3vC,GAAG+iD,KAAKE,GAChBnvB,SAAU5zB,EA/YSi/C,UAgZnBmF,UAAWtkD,GAAGw1N,qBA/Yez8M,GAgZ7BmrC,QAAS1B,EACTozK,UAAW51N,GAAG6hD,yBAAyB9oC,GACvC88M,eAAgBl5N,KAAKqkB,UAAU8iE,GAC/B3/B,kBAAmBnkD,GAAG0hD,iBAAiB6vK,aAAa54K,YACpDkxD,YAAa7pG,GAAG4hD,oBAAoB7oC,GACpC64M,iBA/YW5xN,GAAAgzN,aAAAG,WAiZoB,KAA/BnzN,GAAGw1N,qBAAqBz8M,KACxB9d,EAAIysD,SAAW1nD,GAAG81N,iBAAiBpuK,UA5YK,IA+YxC1nD,GAAGozN,sBA/YQxuK,cAgZP5kD,GAAG8hD,kBA/YWpV,cAAA,GAgZdzxC,EA/YIu8B,WAA+B7hC,QAAjBqK,GAAGgiD,gBAAcxqB,WAAAx3B,GAAAgiD,gBAAAxqB,WAAA,GAgZ/Bv8B,EA/YIyxC,cAA4B/2C,QAAhBqK,GAAA8hD,kBAAgBpV,cAAA1sC,GAAA8hD,kBAAApV,cAAA,KAkZpCzxC,EAAIu8B,WAAkD7hC,QAApCqK,GAAGiiD,iBAAiB3qB,aAA6Bt3B,GAAGiiD,iBAAiB3qB,aAAe,GAClGr8B,EAAIyxC,cAAuD/2C,QAAtCqK,GAAG8hD,kBAAkBpV,cAA8B1sC,GAAG8hD,kBAAkBpV,cAAgB,KAKzHva,QAAQC,IA/YIn3B,GAgZZ2oF,EA/YYC,sBAAA5oF,GAAAwD,KAAA,SAAAC,GAgZR,GA/YY,MA+YRA,EAAIlI,OA/YI,CAgZRwJ,GAAG8Z,cA/YKpb,EAAahJ,KAgZjBsK,GAAGsS,WAAY,CACf,IAAIrX,IACAuF,QAASN,EAAWM,QA9YxBk/C,KAAA1/C,GAAW8Z,cACP6lC,WAAA,GAEAvgD,EAAA7E,EAAwB8E,MACxBhI,WAAA,EACAiI,eAAgB,cAChBC,gBAAQ,aAgZRrK,YAAa,8DACbE,WAAY,kBACZC,aAAc,KA9YlB+H,KAAA,KACIoC,SAAA,SACJC,UAAA,EACIyQ,SACA3N,MAAA,WACA,MAAatH,MAKjBmE,GAAcM,OAAAjB,KAAA,SAAAC,KAEd,kBAkZJrE,GAAQwH,MAAM,QAAS,0BAA4BxK,WAAW,EAAM+F,KAAM,OAC1E4C,GAAGsS,WAAY,GAGnB,SA/YQ3R,GAgZJtG,EA/YIwH,MAAA,gBAAc,YAAgB7B,GAAAwzN,SAAAn8N,WAAA,EAAA+F,KAAA,OAgZlC4C,GAAGsS,WAAY,KAYnBtS,GAAGqa,MAAQ,WACPra,GAAGsa,GAAK,GAAIb,OAEhBzZ,GAAGqa,QAEHra,GAAG0X,MA/YK,WAgZJ1X,GAAGsa,GA/YC,MAkZRta,GAAGua,eACCC,YA/YIjB,GAgZJkB,QA/YI,GAAAhB,MAgZJiB,WAAW,GAGf1a,GAAG2a,aACCC,aAAcxB,GA9Yd+C,WAAO,KAgZPtB,QA/YQ,GAAGpB,MAAA,KAAA,EAAA,IAgZXgB,QA/YQ,GAAIhB,MAgZZqB,YA/YY,GAyZhB9a,GAAG+a,UA/YC,WAgZA/a,GAAGua,cA/YSE,QAAWza,GAAKua,cAAAE,QAAA,KAAA,GAAAhB,MAgZ5BzZ,GAAG2a,YA/YQF,QAAAza,GAAgBua,cAAIE,SAkZnCza,GAAG+a,YAEH/a,GAAGkb,MAAQ,WACPlb,GAAGmb,OAAOtM,QA/YQ,CAgZN,IAAI4K,OAIpBzZ,GAAGgb,MAAQ,WACPhb,GAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,GAAGwb,QAAU,SAAUC,EAAMC,EAAOC,GAChC3b,GAAGsa,GA/YK,GAAAb,MAAAgC,EAAAC,EAAAC,IAkZZ3b,GAAG4b,SA/YS,eAAc,aAAS,aAAA,aAgZnC5b,GAAG6b,OA/YS7b,GAAG4b,QAAA,GAgZf5b,GAAG8b,iBAAmB,cAGtB9b,GAAGmb,QACCtM,QA/YQ,GAkZZ7O,GAAGib,QA9YHpM,QAAS,GAuaT7O,GAAGkpD,UAAY,WA9YM,KAArBlpD,GAASkiD,eAAY75B,MACdroB,GAAA+iD,KAAAC,KAAW,GAAAvpC,MACXzZ,GAAA+iD,KAAAC,KAAe5uD,QAAA8e,KAAAlT,GAAA+iD,KAAAC,MAgZdhjD,GAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,GAAG+iD,KAAKC,OAEH,KAA1BhjD,GAAGkiD,eAAe75B,MA9Y/BroB,GAAS+iD,KAAAC,KAAY,KACdhjD,GAAA+iD,KAAAE,GAAA,OAGHjjD,GAAA+iD,KAAAC,KAAA,KAgZIhjD,GAAG+iD,KAAKE,GAAK,OAGrBjjD,GAAGgc,QA/YI,WACkB,KAAlBhc,GAAAkiD,eAAkB75B,OACrBroB,GAAA+iD,KAAAC,KAAA5uD,QAAA8e,KAAAlT,GAAA+iD,KAAAC,MAgZIhjD,GAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,GAAG+iD,KAAKC,uUAxyD9C5uD,QACKC,OAAO,gCACPe,WAAW,wBAAyB29N,MA21D7C,WACI,YAOA,SAASoD,GAAiB1rN,EAAQ1S,EAAYyC,EAAQH,EAASN,EAAOQ,EAAWogD,EAAqB8mC,EAClG/mC,EA/YOvgD,EAAuB6X,EAAAJ,EAAAg+D,EAAAn1E,EAgZ9BogD,EAA4BC,EAAwBE,EAAiBR,EAAavgD,GAwClF,QA/YOi3I,KACHlxI,EAAGu7C,eACAC,aAAa,UACbnzB,KAAA,MAEAmzB,aAAA,WACAnzB,KAAA,MA8cP,QAASnW,KA9YTF,EAAcI,mBAAAD,GAAA1T,KAAA,SAAAC,GACV,MAAAA,EAAAlI,QACJwJ,EAAAqS,YAAA3T,EAAAhJ,KACIsK,EAAAsS,WAAqB,GAErBva,EAAiB2I,YAAG,QAAA,yBAAwC,YAiZzD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAK5D,QA/YIuvG,GAAY99F,EAAwB5T,GACpC4T,GACAnS,EAAAkmI,KAAYrkH,gBAAI,KACZ7hB,EAAC2hB,eAgZD/P,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KA9YvBsK,EAAA2hB,YAAAxmB,OAAA,GACVd,EAAA8C,OAAA,UAAA,4BAAA6C,EAAAkmI,KAAA/yH,gBAAA84B,aACJ50C,WAAA,EACI+F,KAA0B,OAkZd4C,EAAGsS,WAAY,EACX/T,GA9YxBA,KAEkBxG,EAAA2I,YAAgB,QAAA,yBAAA,aAEvB,SAAAC,GAgZK5I,EAAW2I,YAAY,QAAS,mBAAoB,gBA5YhEV,EAAAkmI,KAAgBrkH,gBAAG,KACnB7hB,EAAU2hB,eACV3hB,EAAAkmI,KAAe1pF,YAAI,MAoZnB,QAAS01D,GAAchqD,GACnBrN,EAA2Bu7K,2BAA2BluK,GAAOzpD,KAAK,SAAUC,GA9Y9D,MAARA,EAAGlI,QACFwJ,EAAAk7C,QAAKx8C,EAAAhJ,KACNsK,EAAAsS,WAAW,GAEZva,EAAA2I,YAAA,QAAA,yBAAA,0BAET,SAAgBC,GAChB5I,EAAmB2I,YAAG,QAAiB,mBAAa,2BAsBpD,QAAQ21N,GAAgBC,GACpBt2N,EAAGkmI,KAAAqwF,aAAoB,KAChB,GAAHD,EAiZAt2N,EAAGw2N,WA7YCD,aAAU,eAgZNE,WAAY,IA7YhBF,aAAW,UACXE,WAAgB,IAGhBF,aAAY,eACZE,WAAc,IAGdF,aAAU,aACVE,WAAS,KAmZbz2N,EAAGkmI,KAAKqwF,aAAc,KAEtBv2N,EAAGw2N,WAEKD,aAAc,eA9YnBE,WAAY,IAGXF,aAAe,eACpBE,WAAY,IAGJF,aAAA,UACHE,WAAM,KAuZlB,QAAS35K,GAAqBhnD,EAAWinD,EAAO1mC,GACxCvgB,GAAainD,GAAS1mC,EACtBskC,EAAoB+7K,gCAAgC5gO,EAAWinD,EAAO1mC,GAAW5X,KAAK,SAAUC,GACzE,MAAfA,EAAIlI,QACJwJ,EAAG47C,aAAel9C,EAAIhJ,MA9Y3BsK,EAAY47C,aAAAzgD,OAAA,GACPpD,EAAA2I,YAAA,OAAA,kDAAA,WAEbV,EAAAsS,WAAA,GAEQjY,EAAYwH,MAAA,QAAA,yBAAA,mBAiZZ,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBA5YnD7B,EAAAkmI,KAASvoF,iBAAI,KACb39C,EAAAk7C,WAgZIl7C,EAAGkmI,KAAKroF,oBAAqB,KAC7B79C,EAAGkmI,KAAKrnF,iBAAkB,KA9Y/B7+C,EAAA0hD,iBAAczD,iBAAA,KACbj+C,EAAAkmI,KAAAr0B,aAAc,KACd7xG,EAAA0hD,iBAAY6vK,aAAA,KACZvxN,EAAAkmI,KAAS4nB,SAAS,KAClB9tJ,EAAAkmI,KAASqwF,aAAI,MAsZjB,QA/YQn5K,KACJ,GAA+BznD,QAA/BqK,EAAOkmI,KAAAvoF,kBAAqC39C,EAAAkmI,KAAKvoF,iBAAkBxiD,OAAA,EAAA,CAgZ/D,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGkmI,KAAKvoF,iBA9Y3BtrB,EAAYx6B,KAAAmI,EAAAkmI,KAAYvoF,iBAAAziD,GAAAghD,WAEpBl8C,GAAAyjD,SAAYpxB,EAAAqB,MAiZX,IAAI59B,GAAYkK,EAAGkmI,KAAKrkH,gBAAgB/rB,SAExCglD,GAAuB67K,mCAAmC7gO,EAAWkK,EAAGyjD,UAAUhlD,KAAK,SAAUC,GA9YlF,MAAZA,EAAAlI,QACGwJ,EAAAo8C,gBAAS19C,EAAAhJ,MACHsK,EAAAo8C,gBAAAjhD,OAAA,GAgZApD,EAAW2I,YAAY,OAAQ,uDAAwD,WAE3FV,EAAGsS,WAAY,GA7YjBjY,EAASwH,MAAA,QAAA,yBAAA,sBAiZZ,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,wBAYvD,QAASy7C,KACL,GAAmC3nD,QAA/BqK,EAAGkmI,KAAKroF,qBAAoC79C,EAAGkmI,KAAKroF,oBAAoB1iD,OAAS,EAAG,CA9YzF,GAASk3B,KACR,KAAQ,GAAAn3B,KAAA8E,GAAAkmI,KAAAroF,oBAgZAxrB,EAAIx6B,KAAKmI,EAAGkmI,KAAKroF,oBAAoB3iD,GAAG22B,cAE5C7xB,GAAGwjD,YAAcnxB,EAAIqB,MA9Y7B,IAAS59B,GAAYkK,EAAMkmI,KAAArkH,gBAAA/rB,SACnBklD,GAAY47K,4BAAA9gO,EAAAkK,EAAAwjD,aAAA/kD,KAAA,SAAAC,GACA,MAALA,EAAKlI,QACZwJ,EAASw9C,aAAO9+C,EAAAhJ,MACZsK,EAAAw9C,aAAsBriD,OAAM,GAgZpBpD,EAAW2I,YAAY,OAAQ,4DAA6D,WA7YhGV,EAAAsS,WAAa,GAEbjY,EAAAwH,MAAA,QAAe,yBAAY,mBAiZhC,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAOvD,QAASsvN,KA7YyBx7N,QAA1BqK,EAAGkmI,KAAArnF,kBAA4B7+C,EAAAkmI,KAAArnF,iBAAA1jD,OAAA,GAC/B+1I,IAoZR,QA/YQzzF,KAiZJ,GAAgC9nD,QAA5BqK,EAAGkmI,KAAKrnF,kBAAiC7+C,EAAGkmI,KAAKrnF,iBAAiB1jD,OAAS,EAAG,CAC9E,GA/YCk3B,KACD,KAAG,GAAKn3B,KAAA8E,GAAOkmI,KAAArnF,iBACZxsB,EAAKx6B,KAAKmI,EAAAkmI,KAAArnF,iBAAA3jD,GAAA8kB,OAiZbhgB,GAAG2lD,KAAOtzB,EAAIqB,MA9YnB,IAAA59B,GAAUkK,EAAYkmI,KAAArkH,gBAAA/rB,SACjB0kD,GAAGq8K,4BAA4B/gO,EAAAkK,EAAA2lD,MAAAlnD,KAAA,SAAAC,GACR,MAAfA,EAAAlI,QACAwJ,EAAAm+C,SAAaz/C,EAAKhJ,MAgZbsK,EAAGm+C,SAAShjD,OAAS,GACtBpD,EAAW2I,YAAY,OAAQ,8CAA+C,YA7YzF3I,EAAA2I,YAAmB,QAAA,mCAAA,WAEjB,SAAUC,OAqZrB,QAASghF,GAA4BywI,EAASC,GAE1CryN,EAAGsS,WAAY,CACf,IAAIrX,IACA+2N,QAASI,EACTt8N,UAAWu8N,EAEf5wI,GAAoBE,4BAA4B1mF,GAAKwD,KAAK,SAAUC,GAC7C,MAAfA,EAAIlI,QACJwJ,EAAGqzF,mBAAqB30F,EAAIhJ,KAC5BsK,EAAGsS,WAAY,EACXtS,EAAGqzF,mBAAmBl4F,OAAS,GAC/BpD,EAAW2I,YAAY,OAAQ,kDAAmD,YAEtF3I,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,MACbX,EAAGsS,WAAY,EAGnB,QAASsvE,GAA8BtqD,EAAc+6L,GA7YrDryN,EAAAsS,WAAS,CAgZL,IAAIrX,IA9YAq8B,aAAGA,EACHxhC,UAAQu8N,EAiZZ5wI,GA/YeG,8BAAiC3mF,GAAAwD,KAAA,SAAAC,GACzB,MAAhBA,EAAKlI,QAgZJwJ,EAAGu0F,cAAgB71F,EAAIhJ,KACvBsK,EAAGsS,WAAY,GA9YXtS,EAAAu0F,cAAep5F,OAAQ,GACvBpD,EAAK2I,YAAA,OAAA,qDAAA,YAiZT3I,EAAW2I,YAAY,QAAS,mCAAoC,WAEzE,SAAUC,MACbX,EAAGsS,WAAY,EA1YvB,QAAAovE,KAgZQ1hF,EAAGsS,WAAY,CACf,IAAIpS,GAAa/F,EAAsBgG,uBA7Y1CqiD,EAAW,IA6BT,IAoXoC,GAA/BxiD,EAAGkmI,KAAK4nB,SAASgpE,WA9YpBt0K,EA+Y0C,GAAnCxiD,EAAGkmI,KAAKqwF,aAAaE,WA/YXz2N,EAAAkmI,KAAQ4nB,SAAYA,SAAQ,aAAgB9tJ,EAAAkmI,KAAW6wF,qBAAqBC,iBAAA,KAAAh3N,EAAAkmI,KAAAqwF,aAAAA,aAAA,oBAAAv2N,EAAAiyN,uBAAApvK,eACvD,GAA3C7iD,EAAoBkmI,KAAAqwF,aAAAE,WACpB,2BAAoDz2N,EAAAkmI,KAAAqwF,aAAiBA,aAAa,MAASt8N,EAAA,QAAA+F,EAAA+tC,IAAA2D,IAAA,cAAA,OAAA1xC,EAAAkmI,KAAA4nB,SAAAA,SAAA,MAAA9tJ,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAE7E34C,EAAAkmI,KAAA4nB,SAAAA,SAAA,aAAA9tJ,EAAAkmI,KAAAqwF,aAAAA,aAAA,MAAAv2N,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAGC34C,EAAAkmI,KAAA4nB,SAAAgpE,WAAA,EAEZt0K,EADsB,GAAtBxiD,EAAAkmI,KAAAqwF,aAAsBE,WACX,2BAAAz2N,EAAAkmI,KAAAqwF,aAAAA,aAAA,MAAAt8N,EAAA,QAAA+F,EAAA+tC,IAAA2D,IAAA,cAAA,OAAA1xC,EAAAkmI,KAAA4nB,SAAAA,SAAA,MAAA9tJ,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAGI34C,EAAAkmI,KAAA4nB,SAAAA,SAAA,aAAA9tJ,EAAAkmI,KAAAqwF,aAAAA,aAAA,MAAAv2N,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAGJ,GAAX34C,EAAWkmI,KAAA4nB,SAAAgpE,aAEXt0K,EADmC,GAAlCxiD,EAAAkmI,KAAYqwF,aAAAE,WACb,2BAAwBz2N,EAAAkmI,KAAAqwF,aAAAA,aAAA,MAAAt8N,EAAA,QAAA+F,EAAA+tC,IAAA2D,IAAA,cAAA,OAAA1xC,EAAAkmI,KAAA4nB,SAAAA,SAAA,MAAA9tJ,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAER,2BAAA34C,EAAAkmI,KAAAqwF,aAAAA,aAAA,OAAAv2N,EAAAkmI,KAAA4nB,SAAAA,SAAA,MAAA9tJ,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,gBAOWhjD,QAA3BqK,EAAAkmI,KAAAr0B,cAA2B7xG,EAAAkmI,KAAAr0B,aAAA12G,OAAA,EAAA,CAC3B,GAAAkoD,KACA,KAAA,GAAAnoD,KAAe8E,GAAAkmI,KAAAr0B,aAiZNxuD,EAAIxrD,KAAKmI,EAAGkmI,KAAKr0B,aAAa32G,GAAGooD,cAErCtjD,GAAGujD,KAAOF,EAAI3vB,OAIlB,GAA4B/9B,QAAxBqK,EAAGkmI,KAAKr0B,cAA6B7xG,EAAGkmI,KAAKr0B,aAAa12G,OAAS,EAAG,CACtE,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAGkmI,KAAKr0B,aAClBxuD,EAAIxrD,KAAKmI,EAAGkmI,KAAKr0B,aAAa32G,GAAGooD,cAErCtjD,GAAGujD,KAAOF,EAAI3vB,OAKlB,GAhZIz4B,IACDnF,UAAAkK,EAAAkmI,KAAArkH,gBAAA/rB,UACC4tD,YAAc/tD,QAAAqK,EAAAyjD,SAAAzjD,EAAAyjD,SAAA,GACdE,eAAMhuD,QAAAqK,EAAAwjD,YAAAxjD,EAAAwjD,YAAA,GAiZNI,QAAqBjuD,QAAXqK,EAAG2lD,KAAqB3lD,EAAG2lD,KAAO,GAC5CrC,cAA2B3tD,QAAXqK,EAAGujD,KAAqBvjD,EAAGujD,KAAO,GAClDnE,iBAAkBp/C,EAAGkmI,KAAK/yH,gBAAgB84B,YA9Y9C3pB,YAAatiB,EAAAkmI,KAAArkH,gBAAAS,YAiZT20M,UAAWj3N,EAAGkmI,KAAK4nB,SAASgpE,WA/YpChjM,SAAA5zB,EAAAi/C,UACImF,UAAatkD,EAAAkmI,KAAA4nB,SAAAA,SAiZT5pG,QAAS1B,EACT2B,kBAAmBnkD,EAAG0hD,iBAAiB6vK,aAAa54K,YACpDu+K,WAAYl3N,EAAGkmI,KAAKqwF,aAAaE,WA5YzB,KAAZz2N,EAAAkmI,KAAYqwF,aAAAE,WAiZRx7N,EAAIk8N,WAAal9N,EAAQ,QAAQ+F,EAAG+tC,IAAI2D,IAAK,cA/YrD,IAAA1xC,EAAAkmI,KAAAqwF,aAAAE,aACIx7N,EAAA+2N,QAAUhyN,EAAAkmI,KAAA6wF,qBAAAK,eACVn8N,EAAAq8B,aAAYt3B,EAAAiyN,uBAAA36L,aACbr8B,EAAAi6F,YAAAl1F,EAAAkyN,oBAAAh9H,YACCj6F,EAAAo8N,gBAAUr3N,EAAAkmI,KAAA6wF,qBAAAC,kBAGV7kM,QAAAC,IAAUn3B,GAEXwmF,EAAAC,eAAAzmF,GAAAwD,KAAA,SAAAC,GAEC,GADAsB,EAAAsS,WAAU,EACE,MAAZ5T,EAAYlI,OAAA,CACbwJ,EAAA8Z,cAAApb,EAAAhJ,KACCsK,EAAUsS,WAAA,CACV,IAAY2D,GAAAnf,SAAAijB,cAAA,IAiZJjjB,UAASC,KAAKijB,YAAY/D,GA/YnCA,EAAAgE,MAAA,eACC,IAAUrc,GAAA,GAAAC,OAAAa,EAAAhJ,OACEqI,KAAA,oBAEhBtJ,EAAAC,OAAAwlB,IAAAC,gBAAAvc,EACInD,GAAU4E,KAAA5K,EAAA,UACVsD,EAAY2I,YAAA,UAAA,iBAAA,mBAkZJwR,QA7YRlS,GAAAsS,WAAA,EACIjY,EAAAwH,MAAkB,QAAA,oDAA+BxK,WAAA,EAAA+F,KAAA,MAEjD4C,GAAAsS,WAAA,IA6gBR,QAASZ,KACL1R,EAAGkmI,QAsDP,QAAS9sH,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAhZI2jB,KAiZX9iB,EAAOb,EAhZIa,IAiZf,OAhZY,QAgZLA,GAhZ4B,KAAT8iB,EAAAC,SA+b9B,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KA/YpB9iB,EAASb,EAAAa,IACL,IAAA,QAAAA,EAGI,IAAK,GAFFijB,GAAK,GAAAC,MAAAJ,GAAoBK,SAAa,EAAG,EAAA,EAAK,GAExCxe,EAAA,EAAKA,EAAG8E,EAAK2Z,OAAAxe,OAAAD,IAAkB,CACpC,GAAI0e,GAAa,GAAAH,MAAAzZ,EAAA2Z,OAAiBze,GAAGme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEtC,IAAAF,IAAWI,EACV,MAAA5Z,GAAY2Z,OAAQze,GAAA1E,OAoZ5B,MAAO,GAhuBX,GA/YIwJ,GAAGC,IAgZPD,GAAGsU,SA/YI,KAgZPtU,EAAGgT,YA/YI,EAgZPhT,EAAG+S,WA/YI,EAgZP/S,EAAGsS,WA/YI,EAgZPtS,EAAG+5H,uBACH/5H,EAAGuwN,YACHvwN,EAAGw2N,YACHx2N,EAAGs3N,oBACHt3N,EAAG47C,gBA9YH57C,EAAAw9C,gBAgZAx9C,EAAGo8C,mBACHp8C,EAAGm+C,WACH,IA/YIhsC,GAAGhY,EAAqBgG,uBAAAwU,gBAAAxC,SAgZ5BnS,GAAGiwG,sBA/YqBA,EAgZxBjwG,EAAG0hF,eAAiBA,EACpB1hF,EAAGkyG,cAAgBA,EAEnBlyG,EAAG88C,qBA/YIA,EAgZP98C,EAAGq2N,eA/YIA,EAgZPr2N,EAAG2hF,4BA/Y6BA,EAgZhC3hF,EAAG4hF,8BA/YyBA,EAgZ5B5hF,EAAGo9C,yBAA2BA,EAC9Bp9C,EAAGs9C,yBAA2BA,EA9Y9Bt9C,EAAAmxN,2BAAkBA,EAgZlBnxN,EAAGy9C,aA/YCA,EAiZJz9C,EAAG0R,OA/YCA,EAiZJ3Z,EA/YI2c,SAAA,EAgZJxC,IAmBAlS,EAAGstI,kBA9YH30F,YAAS,UAkZLA,YAAa,aA1YjB34C,EAAAuwN,WAgZIziE,SAAU,mBA9YdgpE,WAAW,IAGRhpE,SAAA,aACCgpE,WAAG,IAiZHhpE,SA/YI,cAgZJgpE,WA/YM,IAiZNhpE,SA/YI,gBAgZJgpE,WA/YM,IAiZNhpE,SAAU,iBACVgpE,WA/YG,IAiZHhpE,SA/YI,kBAgZJgpE,WA/YM,IAkZNhpE,SA/YM,yBAgZNgpE,WAAY,IAGZhpE,SAAU,kBA9YXgpE,WAAA,IAmZH92N,EAAGs3N,mBA7YAN,iBAAgB,cAAgBI,eAAsB,MAEpDJ,iBAAY,oBACTI,eAAQ,OAEbJ,iBAAW,+BAgZNI,eAAgB,OA7YxBJ,iBAAU,qBACJI,eAAG,OAETJ,iBAAc,2CACVI,eAAA,OAyxBJp3N,EAAG2vF,YAhZK,WAiZJ,GAhZGzvF,GAAA/F,EAAAgG,uBAGAqiD,EAAA,IA6aH,IA5asB,GAAlBxiD,EAAAkmI,KAAA4nB,SAAAgpE,WAkZIt0K,EAjZY,GAAhBxiD,EAAAkmI,KAAAqwF,aAAgBE,WAiZCz2N,EAAGkmI,KAAK4nB,SAASA,SAAW,aAAoB9tJ,EAAGkmI,KAAK6wF,qBAAqBC,iBAAmB,KAAOh3N,EAAGkmI,KAAKqwF,aAAaA,aAAe,oBAAsBv2N,EAAGiyN,uBAAuBpvK,eAC9J,GAAnC7iD,EAAGkmI,KAAKqwF,aAAaE,WACf,2BAA6Bz2N,EAAGkmI,KAAKqwF,aAAaA,aAAe,MAAQt8N,EAAQ,QAAQ+F,EAAG+tC,IAAI2D,IAAK,cAAgB,OAAc1xC,EAAGkmI,KAAK4nB,SAASA,SAAW,MAAQ9tJ,EAAG0hD,iBAAiB6vK,aAAa54K,YAAc,eAEtN34C,EAAGkmI,KAAK4nB,SAASA,SAAW,aAAoB9tJ,EAAGkmI,KAAKqwF,aAAaA,aAAe,MAAQv2N,EAAG0hD,iBAAiB6vK,aAAa54K,YAAc,eA7YxJ34C,EAAIkmI,KAAA4nB,SAAgBgpE,WAAA,EAEpBt0K,EADqB,GAArBxiD,EAAGkmI,KAAAqwF,aAAkBE,WAClB,2BAAYz2N,EAAAkmI,KAAAqwF,aAAAA,aAAA,MAAAt8N,EAAA,QAAA+F,EAAA+tC,IAAA2D,IAAA,cAAA,OAAA1xC,EAAAkmI,KAAA4nB,SAAAA,SAAA,MAAA9tJ,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,eAmZF34C,EAAGkmI,KAAK4nB,SAASA,SAAW,aAAoB9tJ,EAAGkmI,KAAKqwF,aAAaA,aAAe,MAAQv2N,EAAG0hD,iBAAiB6vK,aAAa54K,YAAc,eAGxH,GAA/B34C,EAAGkmI,KAAK4nB,SAASgpE,aAElBt0K,EADmC,GAAnCxiD,EAAGkmI,KAAKqwF,aAAaE,WACR,2BAA6Bz2N,EAAGkmI,KAAKqwF,aAAaA,aAAe,MAAQt8N,EAAQ,QAAQ+F,EAAG+tC,IAAI2D,IAAK,cAAgB,OAAc1xC,EAAGkmI,KAAK4nB,SAASA,SAAW,MAAQ9tJ,EAAG0hD,iBAAiB6vK,aAAa54K,YAAc,eA9YtO,2BAA2C34C,EAAAkmI,KAAAqwF,aAAAA,aAAA,OAAAv2N,EAAAkmI,KAAA4nB,SAAAA,SAAA,MAAA9tJ,EAAA0hD,iBAAA6vK,aAAA54K,YAAA,gBAO7BhjD,QAgZfqK,EAAGkmI,KAhZKr0B,cAA4B7xG,EAAGkmI,KAAAr0B,aAAA12G,OAAA,EAAA,CAiZvC,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAhZEkmI,KAAAr0B,aAiZZxuD,EAAIxrD,KAAKmI,EAhZGkmI,KAAAr0B,aAAM32G,GAAAooD,cAkZtBtjD,GAAGujD,KAAOF,EAAI3vB,OAIlB,GAhZe/9B,QAgZXqK,EAAGkmI,KAAKr0B,cAhZG7xG,EAAAkmI,KAAAr0B,aAAA12G,OAAA,EAAA,CAiZX,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAGkmI,KAAKr0B,aA/YnBxuD,EAAAxrD,KAAUmI,EAAAkmI,KAAKr0B,aAAA32G,GAAAooD,cAkZlBtjD,GAAGujD,KAAOF,EAAI3vB,OAKlB,GAAIz4B,IACAnF,UAAWkK,EAAGkmI,KAAKrkH,gBAAgB/rB,UACnC4tD,YAA6B/tD,QAAfqK,EAAGyjD,SAAyBzjD,EAAGyjD,SAAW,GACxDE,eAAmChuD,QAAlBqK,EAAGwjD,YAA4BxjD,EAAGwjD,YAAc,GA/YzEI,QAAuBjuD,QAAdqK,EAAA2lD,KAAqB3lD,EAAA2lD,KAAA,GAC1BrC,cAA2B3tD,QAA3BqK,EAAAujD,KAA2BvjD,EAAAujD,KAA2B,GAClDnE,iBAAQp/C,EAAWkmI,KAAK/yH,gBAAA84B,YAkZxB3pB,YAhZOtiB,EAAAkmI,KAAYrkH,gBAAAS,YAiZnB20M,UAhZOj3N,EAAAkmI,KAAA4nB,SAAAgpE,WAiZPhjM,SAhZI5zB,EAAWi/C,UAiZfmF,UAAWtkD,EAAGkmI,KAAK4nB,SAASA,SA/Y7B5pG,QAAU1B,EACT2B,kBAAWnkD,EAAA0hD,iBAAqB6vK,aAAoB54K,YAiZpDu+K,WAAYl3N,EAAGkmI,KAAKqwF,aAAaE,WAIG,KAApCz2N,EAAGkmI,KAAKqwF,aAAaE,WACrBx7N,EAAIk8N,WAAal9N,EAAQ,QAAQ+F,EAAG+tC,IAAI2D,IAAK,cACF,IAApC1xC,EAAGkmI,KAAKqwF,aAAaE,aAC5Bx7N,EAAI+2N,QAAUhyN,EAAGkmI,KAAK6wF,qBAAqBK,eAC3Cn8N,EAAIq8B,aAAet3B,EAAGiyN,uBAAuB36L,aAC7Cr8B,EAAIi6F,YAAcl1F,EAAGkyN,oBAAoBh9H,YACzCj6F,EAAIo8N,gBAAkBr3N,EAAGkmI,KAAK6wF,qBAAqBC,kBAGvD7kM,QAAQC,IAAIn3B,GAEZwmF,EAAoBC,eAAezmF,GAAKwD,KAAK,SAAUC,GAEnD,GADAsB,EAAGsS,WAAY,EACI,MAAf5T,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KACvBsK,EAAGsS,WAAY,CACf,IAAIrX,IA/YPuF,QAAeN,EAAQM,QACpBk/C,KAAA1/C,EAAA8Z,cACJ6lC,WAAa,GAEVvgD,EAAW7E,EAAA8E,MACVhI,WAAA,EACIiI,eAAc,cACdC,gBAAY,aACbrK,YAAA,8DACCE,WAAA,kBACAC,aAAY,KAiZZ+H,KAAM,KA/YVoC,SAAA,SACIC,UAAA,EACAyQ,SAiZI3N,MAAO,WA/Yf,MAAAtH,MAKDmE,GAAAM,OAAAjB,KAAA,SAAAC,KAkZI,kBAGHsB,GAAGsS,WAhZC,EAiZJjY,EAhZIwH,MAAA,QAAY,oDAAAxK,WAAA,EAAA+F,KAAA,MAkZpB4C,GAAGsS,WAhZC,KA2ZZtS,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,MAAK,cA9YrBzZ,EAAAsa,GAASkB,QAAAxb,EAAAsa,GAAA0B,YAmZThc,EAAGqa,QAGHra,EAAGk4M,WAAa,WACZl4M,EAAGm4M,KAAO,GAAI1+L,MAEdzZ,EAAGm4M,KAAK38L,QAhZOxb,EAAAm4M,KAAAn8L,UAAA,IAmZnBhc,EAAGk4M,aAEHl4M,EAAG0X,MAAQ,WACP1X,EAAGsa,GAhZI,MAmZXta,EAAGua,eACCC,YAhZYjB,EAiZZkB,QAhZO,GAAAhB,MAAA,KAAiB,EAAA,KAmZ5BzZ,EAAGirH,YACCrwG,aAhZYxB,EAiZZ+C,WAAY,KACZtB,QAAS7a,EAAGm4M,KACZ19L,QAASza,EAAGsa,GACZQ,YAAa,GAEjB9a,EAAGkrH,UA/YHtwG,aAASxB,EACL+C,WAAY,KAiZZtB,QAhZQ7a,EAAAm4M,KAiZR19L,QAhZSza,EAAAsa,GAkZTQ,YAAa,GAKjB9a,EAAGmrH,cAhZK,WAiZJnrH,EAAGkrH,SAhZSzwG,QAAIza,EAAA+tC,IAAW2D,KAia/B1xC,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CAEnB,IAAIslC,GAAS,EA9YjBn0C,GAAAm5B,SACQte,QAAQ,GAAApB,MAAAY,MAAA65B,cAAuBC,EAAgB95B,MAAK82B,WAAA92B,MAAoB2B,aAqZhFhc,EAAGwb,QAhZQ,SAAAC,EAAkBC,EAAAC,GAiZzB3b,EAAGsa,GAhZK,GAAAb,MAAAgC,EAAeC,EAAKC,IAmZhC3b,EAAG4b,SAAW,eAhZK,aAAmB,aAAA,aAiZtC5b,EAAG6b,OAAS7b,EAAG4b,QAhZM,GAiZrB5b,EAAG8b,iBAhZiB,cAkZpB9b,EAAGib,QACCpM,QAAQ,EAKZ,IAAIupM,GAAW,GAAI3+L,KACnB2+L,GAAS58L,QAhZE48L,EAAAp8L,UAAA,EAiZX,IAAIq8L,GAAc,GAAI5+L,KACtB4+L,GAAY78L,QAAQ48L,EAASp8L,UAAY,GACzChc,EAAG2Z,SACCN,KAAM++L,EA/YV5hN,OAAS,SAEL6iB,KAAIg/L,EAiZJ7hN,OAhZI,+VAvUZpC,QA9YIC,OAAA,gCAgZCe,WA/YM,mBAAuB+gO,MA2nCtC,WACI,YAOA,SAhZQoB,GAAUx/N,EAAAkC,EAAAO,EAAAH,EAAAN,EAAAiY,EAAAJ,EAAA0vC,EAAA2tC,EAiZdr0C,EAhZiBJ,EAAAqnC,EAAAtgC,EAAAC,EAAArnD,EAAAM,GAydjB,QAhZQyX,KACAC,EAkZAH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GA/Y7C,MAAXA,EAAOlI,SAiZFwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,IA9YpB,SAAK3R,GACJ5I,EAAM2I,YAAA,QAAA,mBAAA,qBAmZVV,EAAG0hD,iBAAiB7/B,gBAAkB,KA/YtC7hB,EAAG2hB,gBAsZX,QAhZQF,GAAmBtP,GAiZvBP,EAhZqB8P,eAAYvP,GAAgB1T,KAAA,SAAWC,GACvC,MAAjBA,EAAAlI,QACAwJ,EAAA2hB,YAAqBjjB,EAAAhJ,KACrBsK,EAAAsS,WAAmB,GAkZfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAhZCC,GACA5I,EAAU2I,YAAW,QAAA,mBAAA,oBAkZzBV,EAAG6hB,gBAhZU,KAiZb7hB,EAAGw3N,wBAhZuB,KAiZ1Bx3N,EAAG6hD,yBAhZqB,KAiZxB7hD,EAAGkiD,eAAiB,KAKxB,QAASgtC,KACLlvF,EAAGsS,WAhZK,CAiZR,IAhZIpS,GAAI/F,EAAkBgG,sBAmZ1B,IAA4BxK,QAAxBqK,EAAG8hD,mBAAkC9hD,EAAG8hD,kBAAkB3mD,OAAS,EAAG,CACtE,GAAIkoD,KA/YR,KAAQ,GAAInoD,KAAA8E,GAAA8hD,kBAiZJuB,EAAIxrD,KAAKmI,EAAG8hD,kBAAkB5mD,GAAGwxC,cA9YrC1sC,GAAG4kD,YAAYvB,EAAA3vB,OAkZnB+jM,GACA,IAAIr1K,GAhZmBzsD,QAAZqK,EAAA4kD,YAAY5kD,EAAA4kD,aAAA,EAiZnBpC,EAhZY,IA8ZhB,IA7ZQ,GAgZJJ,EACAI,EAhZM,WAAQxiD,EAAAyiD,mBAAAC,eAAA,IAAA1iD,EAAAkiD,eAAAS,eAAA,QAAA3iD,EAAAw3N,wBAAAE,mBAAA,4BAAA13N,EAAA6hD,yBAAAiB,qBACV,eAAyB7oD,EAAO,QAAA+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,YAiZ7Bb,EAhZO,EAiZdI,EAAa,WAAaxiD,EAAGyiD,mBAAmBC,eAAiB,IAAM1iD,EAAGkiD,eAAeS,eAAiB,QAAU3iD,EAAGw3N,wBAAwBE,mBAAqB,4BAAmC13N,EAAG6hD,yBAAyBiB,qBAC/N,eAhZqB7oD,EAAA,QAAgB+F,EAAA+iD,KAAAC,KAAA,cAAA,OAAA/oD,EAAA,QAAA+F,EAAA+iD,KAAAE,GAAA,cAAA,YACrCb,IAAQ,IAiZZI,EAhZI,WAAWxiD,EAAYyiD,mBAAWC,eAAkB,IAAA1iD,EAAAkiD,eAAAS,eAAA,QAAA3iD,EAAAw3N,wBAAAE,mBAAA,4BAAA13N,EAAA6hD,yBAAAiB,qBAiZpD,eAA2B7oD,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cAAgB,OAAS/oD,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cAAgB,aA3YhHttD,QAgZlBqK,EAAGojD,cAhZwBpjD,EAAAojD,aAAAjoD,OAAA,EAAA,CAiZ3B,GAAIkoD,KA/YJ,KAAG,GAAAnoD,KAAA8E,GAAYojD,aAiZXC,EAAIxrD,KAAKmI,EAAGojD,aAAaloD,GAAGooD,cAEhCtjD,GAAGujD,KAAOF,EAAI3vB,OAIlB,GAAuB/9B,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CA/Y5D,GAAAkoD,KACA,KAAG,GAAKnoD,KAAA8E,GAAS82C,aACbuM,EAAGxrD,KAAKmI,EAAA82C,aAAa57C,GAAA8kB,OAkZzBhgB,GAAGjC,KAhZIslD,EAAO3vB,OAqZlB,GAA8B/9B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAhZGkoD,KACH,KAAI,GAAGnoD,KAAK8E,GAAA69C,oBACRwF,EAAAxrD,KAAAmI,EAAA69C,oBAAa3iD,GAAA22B,cAkZjB7xB,GAAGwjD,YAhZEH,EAAA3vB,OAqZT,GAhZgB/9B,QAAZqK,EAAA29C,kBAAyB39C,EAAc29C,iBAAGxiD,OAAA,EAAA,CAiZ1C,GAhZIkoD,KAiZJ,KAAK,GAhZEnoD,KAAA8E,GAAA29C,iBACH0F,EAAAxrD,KAAAmI,EAAA29C,iBAAaziD,GAAAghD,WAkZjBl8C,GAAGyjD,SAAWJ,EAAI3vB,OAetB,GAhZIz4B,IAkZAnF,UAhZQkK,EAAK6hB,gBAAQ/rB,UAiZrB4tD,YAA6B/tD,QAAfqK,EAAGyjD,SAAyBzjD,EAAGyjD,SAAW,GA/YxDE,eAAchuD,QAAAqK,EAAAwjD,YAAAxjD,EAAAwjD,YAAA,GAiZdI,QAAqBjuD,QAAXqK,EAAGjC,KAAqBiC,EAAGjC,KAAO,GAC5CulD,cAA2B3tD,QAAXqK,EAAGujD,KAAqBvjD,EAAGujD,KAAO,GAClDnE,iBAAkBp/C,EAAGmT,gBAAgB84B,YA/YzC3pB,YAAAtiB,EAAA6hB,gBAAAS,YACIuhC,WAAM7jD,EAAAw3N,wBAAAh2M,SACNsiC,WAAW9jD,EAAG+jD,iBAAKD,WACnBE,MAAArnD,KAAAqkB,UAAiBhhB,EAAAqyB,KACjBqd,SAAAz1C,EAAiB,QAAG+F,EAAA+iD,KAAAC,KAAe,cACnCrT,OAAA11C,EAAa,QAAQ+F,EAAA+iD,KAAAE,GAAa,cAClClE,SAAA/+C,EAAAikD,mBAA2B57B,KAC3B+B,MAAA,GAiZA0J,SAAU5zB,EAAWi/C,UA/YrB+E,QAAA1B,EACA4sD,SAAA,QACA/qD,aAAUrkD,EAAAyiD,mBAAW4B,aACrBszK,eAAc33N,EAAKw3N,wBAASz+M,GAC5BurC,UAAStkD,EAAAyiD,mBAAAC,eACT6B,WAAAvkD,EAAA6hD,yBAAuC9oC,GACvCyrC,WAAoB7uD,QAARqK,EAAGskD,UAAkBtkD,EAAAskD,UAAA,IAiZjCulD,YAAa,EA7YjB13E,SAAOC,IAAKn3B,GAiZZg0F,EAhZqBC,uBAAuBj0F,GAAKwD,KAAA,SAAAC,GAC1C,GAAY,MAARA,EAAGlI,OAAkB,CACxBwJ,EAAA8Z,cAAkBpb,EAAAhJ,IAClB,IAAAugB,GAAAnf,SAAkBijB,cAAA,IAClBjjB,UAAAC,KAAiBijB,YAAA/D,GACjBA,EAAAgE,MAAA,eAiZI,IAAIrc,GAAO,GAAIC,OAAMa,EAAIhJ,OACjBqI,KAAM,oBAEVtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EA/YjDnD,GAAoB4E,KAAA5K,EAAA,UACbsD,EAAY2I,YAAA,UAAA,iBAAA,mBACPwR,IACDlS,EAAAsS,WAAgB,MAEfjY,GAAMwH,MAAA,QAAA,0BAAAxK,WAAA,EAAA+F,KAAA,OACN4C,EAAAsS,WAAS,GAmZjB,SAAS3R,GA/YL5I,EAAI2I,YAAgB,QAAU,iBAAKrJ,WAAA,EAAA+F,KAAA,OAiZnC4C,EAAGsS,WAhZY,IA0Z3B,QAAS4/F,GAhZWhqD,GAmZhB,GAAIjtD,IACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWoyD,EACXtyD,OAhZIoK,EAAAw3N,wBAA0Bh2M,SAiZ9BkuB,SAAUz1C,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cACxCrT,OAhZO11C,EAAA,QAAY+F,EAAA+iD,KAAAE,GAAA,cAkZvBgF,GAhZWC,GACY,IAgZnBloD,EAAG6hD,yBAhZgB9oC,KAiZnB9d,EAhZI+oD,MAAQrnD,KAAAqkB,UAAehhB,EAAAqyB,MAkZ/B48D,EAhZmBE,cAAAl0F,GAAAwD,KAAA,SAAAC,GAiZI,MAAfA,EAAIlI,QACJwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAG8hD,kBAAoB,KACnB9hD,EAAGk7C,QAAQ//C,QAAU,GA/Y5Bd,EAAS8C,OAAA,UAAA,qFACJ9F,WAAA,EAiZM+F,KAAM,OAGd4C,EAAGsS,WAAY,GA9Yfva,EAAS2I,YAAA,QAAA,yBAAA,0BAEd,SAAGC,GAiZF5I,EAAW2I,YAAY,QAAS,mBAAoB,2BA3Y5D,QAAGg8C,GAAyB5mD,GACxB,GAAGA,EAAW,CAiZV,GAAImF,IA/YA6oD,WAA4BnuD,QAAjBqK,EAAK+jD,iBAAY/jD,EAAA+jD,iBAAAD,WAAA,GAiZ5BhuD,UAAWA,EACXF,OAAQoK,EAAGw3N,wBAAwBh2M,SAEA,KAAnCxhB,EAAG6hD,yBAAyB9oC,KA/Y7B9d,EAAA+oD,MAAYrnD,KAAAqkB,UAAAhhB,EAAAqyB,MAkZfivB,EAAsByD,cAAc9pD,GAAKwD,KAAK,SAASC,GAChC,MAAfA,EAAIlI,QA/YjBwJ,EAAgB8V,YAAApX,EAAAhJ,MAEFsK,EAAK8V,YAAS3a,OAAA,GAiZXd,EAAQ8C,OAAO,UAAW,uCACtB9F,WAAW,EA/YnB+F,KAAA,OAIA4C,EAAAsS,WAAA,GAkZAjY,EAAQwH,MAAM,QAAS,yBAA0B,mBA9Y7D,SAAclB,GACdtG,EAAYwH,MAAA,QAAA,mBAAA,qBAsZhB,QAASi7C,GAAqBhnD,EAAWugB,EAAW0mC,GAChD,GAAI1mC,GAAavgB,GAAainD,EAAO,CACjC,GAAI9/C,IA/YToZ,UAAgBA,EACZ2mC,MAASD,GAkZJ9hD,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GA/YrFhuD,UAASA,EACVF,OAAYoK,EAAAw3N,wBAAAh2M,SACZkuB,SAAYz1C,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cACTrT,OAAS11C,EAAA,QAAe+F,EAAA+iD,KAAAE,GAAa,cAiZpCiC,UAAWvoD,KAAKqkB,UAAU/jB,GAES,KAAnC+C,EAAG6hD,yBAAyB9oC,KAC5B9d,EAAI+oD,MAAQrnD,KAAKqkB,UAAUhhB,EAAGqyB,MAElC48D,EAAwBG,mBAAmBn0F,GAAKwD,KAAK,SAASC,GACvC,MAAfA,EAAIlI,QACJwJ,EAAG47C,aAAel9C,EAAIhJ,MACjBsK,EAAG47C,aAAazgD,OAAS,GA/YnCd,EAAY8C,OAAA,UAAA,qDACA9F,WAAA,EAiZC+F,KAAM,OA5YtB4C,EAASsS,WAAS,GAkZVjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAEtD,SAASlB,GA/YjBtG,EAAUwH,MAAU,QAAM,mBAAY,qBAKzC,QAAGu7C,KAkZC,GAA2BznD,QAAvBqK,EAAG29C,kBAAiC39C,EAAG29C,iBAAiBxiD,OAAS,EAAG,CA/YzE,GAASk3B,KACR,KAAQ,GAAAn3B,KAAA8E,GAAA29C,iBAiZAtrB,EAAIx6B,KAAKmI,EAAG29C,iBAAiBziD,GAAGghD,WAEpCl8C,GAAGyjD,SAAWpxB,EAAIqB,MA/Y1B,IAAAz2B,IACI+/C,MAAeh9C,EAAAglD,YAAAtJ,sBACVrlC,UAAQrW,EAAS6hB,gBAAYxL,UAClC6lC,WAAkBl8C,EAAAyjD,UAGZxoD,GACE6oD,WAAAnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACThuD,UAAAkK,EAAA6hB,gBAAA/rB,UACOF,OAAAoK,EAAA43N,mBAAA,GAAAp2M,SACEkuB,SAAAz1C,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cAiZArT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cACpCiC,UAAWvoD,KAAKqkB,UAAU/jB,GA9YlB,KAAZ+C,EAAOqlD,uBAAKtsC,KACZ9d,EAAO+oD,MAAKsB,qBAEZ2pC,EAAqBI,sBAAuBp0F,GAAMwD,KAAA,SAAAC,GAiZ3B,MAAfA,EAAIlI,QA/YPwJ,EAAIo8C,gBAAc19C,EAAOhJ,KACtBsK,EAAAsS,WAAa,GAEbva,EAAA2I,YAAe,QAAY,yBAAA,gBAkZhC,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAxYvE,QAAW48C,GAAAxnD,EAAAomD,EAAArqB,GAkZA,GAA8Bl8B,QAA1BqK,EAAG69C,qBAAoC79C,EAAG69C,oBAAoB1iD,OAAS,EAAG,CAC1E,GAAIk3B,KAhZhB,KAAA,GAAAn3B,KAAA8E,GAAA69C,oBACYxrB,EAAAx6B,KAAAmI,EAAA69C,oBAAA3iD,GAAA22B,cAmZA7xB,GAAGwjD,YAAcnxB,EAAIqB,MA/YxB,IAAAz2B,IACL+/C,MAAAh9C,EAAsBglD,YAAAtJ,sBACbrlC,UAAArW,EAAA6hB,gBAAAxL,UACN6lC,WAAWl8C,EAAAyjD,SACX5xB,cAAe7xB,EAAAwjD,aAGfvoD,GACA6oD,WAAYnuD,QAAAqK,EAAA+jD,iBAAA/jD,EAAA+jD,iBAAAD,WAAA,GACZhuD,UAAYkK,EAAA6hB,gBAAA/rB,UACZF,OAAAoK,EAAAw3N,wBAAyBh2M,SAClBkuB,SAAAz1C,EAAA,QAAA+F,EAAA+iD,KAAAC,KAAA,cACNrT,OAAY11C,EAAA,QAAA+F,EAAsB+iD,KAAAE,GAAA,cACnCiC,UAAAvoD,KAAsBqkB,UAAA/jB,GAEN,KAAhB+C,EAAAqlD,uBAAgBtsC,KAChB9d,EAAA+oD,MAAesB,qBAEf2pC,EAAuBK,eAAAr0F,GAAAwD,KAAA,SAAAC,GACI,MAA3BA,EAAAlI,QACAwJ,EAAAizB,SAA2Bv0B,EAAAhJ,KAC3BsK,EAAesS,WAAA,GAEfva,EAAqB2I,YAAA,QAAA,yBAAA,eAErB,SAAgBC,GAChB5I,EAAY2I,YAAA,QAAA,mBAAA,iBAUf,QAAA+8C,KAmZI,GAlZJiyC,IAkZ2B/5F,QAAnBqK,EAAG82C,cAA6B92C,EAAG82C,aAAa37C,OAAS,EAAG,CAC5D,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG82C,aAhZtBzkB,EAAAx6B,KAAAmI,EAAqB82C,aAAG57C,GAAA8kB,OAExBhgB,GAAA2lD,KAAetzB,EAAGqB,MAkZb,IAAIz2B,IAhZT+/C,MAAAh9C,EAAkBglD,YAAEtJ,sBAkZXrlC,UAAWrW,EAAG6hB,gBAAgBxL,UAhZvC6lC,WAAiBl8C,EAAAyjD,SACd5xB,cAAgB7xB,EAAAwjD,YAChBxjC,OAAAhgB,EAAgB2lD,KAmZV5G,SAAW/+C,EAAGikD,mBAAmB57B,KAAK6f,OAAUloC,EAAGikD,mBAAmB57B,KAAO,MAG7EptB,GACA6oD,WAAoCnuD,QAAvBqK,EAAG+jD,iBAAiC/jD,EAAG+jD,iBAAiBD,WAAa,GAClFhuD,UAAWkK,EAAG6hB,gBAAgB/rB,UAhZvCF,OAAAoK,EAAAw3N,wBAA4Bh2M,SAkZnBkuB,SAAUz1C,EAAQ,QAAQ+F,EAAG+iD,KAAKC,KAAM,cACxCrT,OAAQ11C,EAAQ,QAAQ+F,EAAG+iD,KAAKE,GAAI,cACpCiC,UAAWvoD,KAAKqkB,UAAU/jB,GA/YjB,KAAZ+C,EAAAqlD,uBAAYtsC,KACd9d,EAAA+oD,MAAgBsB,qBAEf2pC,EAAMM,eAAAt0F,GAAAwD,KAAA,SAAAC,GACP,MAAAA,EAAAlI,QACCwJ,EAAAm+C,SAAcz/C,EAAAhJ,MACRsK,EAAAm+C,SAAAhjD,OAAA,EAkZM6E,EAAG6lD,cAAe,EAElB7lD,EAAG6lD,cAAe,GA9YtB9tD,EAAA2I,YAAA,QAAA,mCAAA;EAmZL,SAASC,OAKpB,QAASmlD,GAAqB/sC,GAE1B,GAjZmBpjB,QAiZfqK,EAAGm+C,UAjZwBn+C,EAAAm+C,SAAShjD,OAAA,EAAA,CAkZpC,GAAIk3B,KACJ,KAjZG,GAAAn3B,KAAA8E,GAAAm+C,SACA9rB,EAAAx6B,KAAAmI,EAAAm+C,SAAiBjjD,GAAA+7B,QAmZpBj3B,GAAG06G,QAAUroF,EAAIqB,OAGrB,GAAIz4B,IACAnF,UAAWijB,EA9YX22B,SAAQz1C,EAAA,QAAgB+F,EAAA+iD,KAAAC,KAAA,cAkZxBrT,OAjZO11C,EAAA,QAAc+F,EAAI+iD,KAAAE,GAAA,cAkZzB40K,WAjZO73N,EAAAw3N,wBAAYz+M,GAkZnB2hG,QAjZO16G,EAAA06G,QAmZX9/D,GAAqBo9B,mBAAmB/8E,GAAKwD,KAAK,SAASC,GAhZ1C,MAAdA,EAASlI,QACRwJ,EAAAgmD,aAAWtnD,EAAYhJ,MAkZdsK,EAAGgmD,aAAa7qD,OAAS,EAhZnCd,EAAA8C,OAAkB,UAAA,0DAClB9F,WAAA,EACA+F,KAAA,OAqZS4C,EAAGmmD,eAAgB,EA/Y1BnmD,EAAAsS,WAAA,GAEDjY,EAAAwH,MAAa,QAAA,yBAAsB,mBAmZpC,SAASlB,GAhZRtG,EAAGwH,MAAA,QAAA,mBAAqC,oBAuZhD,QAAS6tF,KAhZL1vF,EAAAm+C,YACAn+C,EAAAojD,aAAgB,KAwZpB,QAASgD,GAjZGC,GAmZR,GAjZIA,EAAAC,sBAA6B,CAkZ7B,GAjZIE,GAAU,QAAWC,EAAMJ,EAAQK,QAAW,GAkZ9CC,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,OAAO2F,OAAS0C,OAAUF,GAC9DhsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAASC,GAChCA,EAAEH,SAAWF,IACbK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAAUxrB,SAAY+qB,EAASC,sBAAsBS,YAQrG/mD,EAAGqyB,KACCp1B,UA/YJ,KAAI,GAAA/B,KAAM8E,GAAA4mD,YACL5mD,EAAI4mD,YAAQ1rD,GAAAorD,wBACTtmD,EAAAqyB,IAAKp1B,OAAG+C,EAAA4mD,YAAgB1rD,GAAAwrD,QAAA1mD,EAAA4mD,YAAA1rD,GAAAorD,sBAAAS,OAoZhC50B,SAAQC,IAAIpyB,EAAGqyB,SAGfryB,GAAGqyB,IAAM,KAhZT20B,IAwZR,QAASC,GAAmBC,GACxBF,GACA,IAAI/rD,IAhZAnF,UAAGkK,EAAA+jD,iBAAoBjuD,UACvBguD,WAAU9jD,EAAA+jD,iBAAAD,WACVpU,SAASz1C,EAAQ,QAAA+F,EAAA+iD,KAAAC,KAAkB,cAkZnCrT,OAjZQ11C,EAAQ,QAAA+F,EAAA+iD,KAAAE,GAAoB,cAkZpC40K,WAAY73N,EAAGw3N,wBAAwBz+M,GAhZvC2hG,QAAG16G,EAAA06G,QAmZPl5D,GAAkBkxB,kBAAkBz3E,GAAKwD,KAAK,SAASC,GAC/C,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAEhCM,EAAGsrD,WAAa9wD,EAAO+wD,KAAKvrD,EAAGq+C,OAAO2F,OAAO0C,OAC7C1mD,EAAG+lD,uBACH,IAAIqB,KACJ5sD,GAAOqI,QAAQ7C,EAAGq+C,OAAO2F,MAAO,SAAS6C,GACrC,GAAI/N,IAhZpBuO,KAAAR,EAAAQ,KAkZoBX,OAAQG,EAAEH,OACVI,OAAsB,UAAbD,EAAEH,OAAsBG,EAAEC,UA/Y7CM,GAAAvvD,KAAAihD,GAkZM94C,EAAG4mD,YAAcQ,IA/Y7BpnD,EAAA+lD,qBAA6BqB,EAC7BpnD,EAAAsS,WAAoB,MAEpBva,GAAmB2I,YAAQ,QAAa,yBAAU,SAGlD,SAAAC,GACA5I,EAAe2I,YAAA,QAAiB,mBAAA,UAsZxC,QAjZQ4mD,GAAOJ,EAAAb,GAkZXrmD,EAAGumD,aACHvmD,EAAG+lD,oBAEH,IAjZIS,GAAA,QAAiBC,EAAAJ,EAAmBK,QAAA,GACpCC,EAAgBnsD,EAAG6P,KAAArK,EAAAq+C,OAAA2F,OACnB0C,OAAAF,GAmZJhsD,GAjZIqI,QAAA7C,EAAa+lD,qBAAgB,SAAgBc,GAC7CA,EAAAH,SAAaF,IAkZTK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QACpCxrB,SAAY4rB,EAAKZ,sBAAsBS,YAOvD,QAASN,GAjZSc,GAkZd,MAAO3gD,UAjZS2gD,EAAWjkC,UAAU,IAoZzC,QAASkkC,KACLxnD,EAAGukD,aACH,KAAK,GAAIrpD,KAjZG8E,GAAA+lD,qBAAuB,CAkZ/B,GAAI9qD,IACAwsD,SAjZOznD,EAAA+lD,qBAAY7qD,GAAAmsD,KAkZnBK,SAjZO1nD,EAAA+lD,qBAAA7qD,GAAAwrD,OAmZX1mD,GAAGukD,WAjZQ1sD,KAAAoD,IAqZnB,QAAS+rD,KACLxsD,EAAOqI,QAjZI7C,EAAA+lD,qBAAY,SAAAM,GAkZnBA,EAASC,sBAAwB,OAgCzC,QAASltC,GAAS1jB,GACd,GAAI2jB,GAjZO3jB,EAAA2jB,KAkZP9iB,EAjZOb,EAAAa,IAkZX,OAjZQ,QAiZDA,IAjZiC,IAArB8iB,EAAYC,UAAmC,IAA1BD,EAAAC,UAwb5C,QAASC,GAAY7jB,GAhZrB,GAAA2jB,GAAS3jB,EAAA2jB,KACD9iB,EAAAb,EAAAa,IAkZJ,IAjZQ,QAAJA,EAoZA,IAAK,GAnZDijB,GAAW,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAmZNxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CAhZvC,GAAA0e,GAAM,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEN,IAAAF,IAAWI,EACX,MAAW5Z,GAAA2Z,OAAAze,GAAA1E,OAqZnB,MAAO,GAMX,QAASihO,KA/YmB,KAiZpBz3N,EAAGkiD,eAjZS75B,MAkZZroB,EAAG+iD,KAAKC,KAAO,GAjZCvpC,MAkZhBzZ,EAAG+iD,KAAKE,GAAK,GAjZGxpC,MAkZhBy4F,EAAclyG,EAAG6hB,gBAAgB/rB,YACA,KAA1BkK,EAAGkiD,eAAe75B,KACzBs/B,IAhZuB,KAiZhB3nD,EAjZCkiD,eAAe75B,KAkZvBw/B,IAhZ+B,KAiZxB7nD,EAjZCkiD,eAAc75B,MAkZtB2/B,IASR,QAjZQL,KAkZJ,GAjZc,KAAV3nD,EAAAkiD,eAAU75B,KAAA,CAmZVroB,EAAG+iD,KAjZKE,GAAK7uD,QAAG8e,KAAAlT,EAAA+iD,KAAiBC,KAkZjC,IAAI4E,GAAoB,CAhZxB5nD,GAAG+iD,KAAAE,GAAAznC,QAAexb,EAAA+iD,KAAAE,GAAAjnC,UAAA4rC,GAClBsqD,EAAalyG,EAAA6hB,gBAAA/rB,eACa,KAAtBkK,EAAAkiD,eAAU75B,OAkZdroB,EAAG+iD,KAjZCE,GAAA,IAyZZ,QAAS4E,KACL,GAjZwB,KAiZpB7nD,EAAGkiD,eAjZS75B,KAAmB,CAmZ/BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAhZlC,IAAI8E,GAAG,CAkZP9nD,GAAG+iD,KAjZKE,GAAA8E,SAAQ/nD,EAAA+iD,KAAAE,GAAA9R,WAAA2W,GAkZhB9nD,EAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY,GAhZ1Ck2F,EAAAlyG,EAAA6hB,gBAAwB/rB,eACI,KAAxBkK,EAAIkiD,eAAe75B,OAkZvBroB,EAAG+iD,KAjZKE,GAAG,IAuZnB,QAAS+E,KACL,GAA8B,KAA1BhoD,EAAGkiD,eAAe75B,KAAa,CAE/BroB,EAAG+iD,KAAKE,GAAK7uD,QAAQ8e,KAAKlT,EAAG+iD,KAAKC,KAClC,IAAI8E,GAAqB,CACzB9nD,GAAG+iD,KAAKE,GAAG8E,SAAS/nD,EAAG+iD,KAAKE,GAAG9R,WAAa2W,GAC5C9nD,EAAG+iD,KAAKE,GAAGznC,QAAQxb,EAAG+iD,KAAKE,GAAGjnC,UAAY,GAC1Ck2F,EAAclyG,EAAG6hB,gBAAgB/rB,eAEA,KAA1BkK,EAAGkiD,eAAe75B,OAhZzBroB,EAAG+iD,KAAAE,GAAA,IAyZX,QAASgF,GAjZaC,GAkZlB,GAAIhoD,GAjZI/F,EAA8BgG,uBAkZlClF,GACAmF,SAjZIF,EAAei/C,UAkZnBrpD,UAAWoyD,EAEf5G,GAjZc2G,aAAAhtD,GAAAwD,KAAA,SAAAC,GACO,MAAbA,EAAAlI,QACAwJ,EAAAmoD,qBAAczpD,EAAgBhJ,KAC9BsK,EAAAsS,WAAW,EACXtS,EAAAmoD,qBAAkBtwD,MAAW+qD,gBAAW,aAAAlW,cAAA,IAExC1sC,EAAAooD,sBAkZApoD,EAAG4tC,gBAhZH5tC,EAAGgiD,gBAAA,KACHhiD,EAAA+hD,2BAAY,MAqZZhqD,EAjZO2I,YAAe,QAAA,yBAAA,qBAmZ3B,SAASC,GACR5I,EAjZQ2I,YAAW,QAAY,mBAAS,sBAsZhD,QAAS8nD,KACL,GAAItoD,GAAa/F,EAAsBgG,uBACnClF,GACAmF,SAAUF,EAAWi/C,UACrBrpD,UAAWkK,EAAG6hB,gBAAgB/rB,UAC9B42C,cAAe1sC,EAAG8hD,kBAAkBpV,cAExC4U,GAAsBkH,aAAavtD,GAAKwD,KAAK,SAASC,GAhZlC,MAAfA,EAAAlI,QACLwJ,EAAAooD,mBAAA1pD,EAAAhJ,KACOsK,EAAAsS,WAAgB,GAEnBva,EAAc2I,YAAG,QAAc,yBAAA,kBAmZhC,SAASC,GAhZR5I,EAAU2I,YAAI,QAAA,mBAAA,mBAsZtB,QAAS+nD,GAjZGP,EAAeQ,GAkZvB,GAAIxoD,GAjZY/F,EAAGgG,uBAmZflF,GACAmF,SAAUF,EAAWi/C,UACrBrpD,UAAWoyD,EAhZXxb,cAAUgc,EAoZdpH,GAjZmBmH,WAAAxtD,GAAAwD,KAAwB,SAAAC,GACzB,MAAVA,EAAAlI,QACAwJ,EAAA4tC,aAAgBlvC,EAAAhJ,KAChBsK,EAAAsS,WAAW,EAEyB,GAAjCtS,EAAA8hD,kBAAApV,eACC8b,IAsZJxoD,EAAGgiD,gBAjZkB,MAmZrBjqD,EAjZW2I,YAAA,QAAA,yBAAA,kBAmZhB,SAASC,GACR5I,EAjZW2I,YAAA,QAAA,mBAAA,mBAuZnB,QAASioD,GAAYT,EAAOU,GACxB,GAAI1oD,GAAa/F,EAAsBgG,uBA/YvClF,GACImF,SAAGF,EAAYi/C,UACfrpD,UAAUoyD,EACVhM,WAAS0M,EAoZbtH,GAjZqBqH,YAAA1tD,GAAAwD,KAAA,SAAAC,GAkZE,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KAhZ5BsK,EAAMsS,WAAA,GAmZFva,EAAW2I,YAAY,QAAS,yBAA0B,kBAE/D,SAjZCC,GACA5I,EAAQ2I,YAAQ,QAAgB,mBAAI,mBA/e5C,GAAIV,GAhZIC,IAiZRD,GAAGsU,SAAW,KACdtU,EAAG47C,gBACH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGgT,YAhZY,EAiZfhT,EAAG+S,WAhZS,EAiZZ/S,EAAGsS,WAAY,EACftS,EAAGkvF,uBAhZYA,EAiZflvF,EAAG+iD,OACH,IAAI5wC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAhZmBA,EAiZtBzhB,EAAGm+C,YACHn+C,EAAGkyG,cAAgBA,EACnBlyG,EAAGioD,aAAeA,EA/YlBjoD,EAAA08C,oBAASA,EAiZT18C,EAAG88C,qBAhZCA,EAiZJ98C,EAAGo9C,yBAhZgBA,EAiZnBp9C,EAAGs9C,yBAhZWA,EAiZdt9C,EAAGy9C,aAhZKA,EAiZRz9C,EAAG8lD,qBAhZgBA,EAiZnB9lD,EAAGinD,mBAAqBA,EACxBjnD,EAAGsnD,iBAhZCA,EAiZJtnD,EAAGwnD,cAhZaA,EAiZhBxnD,EAAGymD,UAhZYA,EAiZfzmD,EAAGomD,YAhZYA,EAiZfpmD,EAAG2nD,iBAhZiBA,EAiZpB3nD,EAAGy3N,aAhZaA,EAiZhBz3N,EAAG6nD,aAhZYA,EAiZf7nD,EAAGgoD,gBAhZSA,EAiZZhoD,EAAGyoD,WAAaA,EAChBzoD,EAAGwoD,aAhZcA,EAiZjBxoD,EAAG2oD,YAhZIA,EAkZP5wD,EAAW2c,SAAU,EACrBxC,IAIAlS,EAAG43N,qBAhZkBF,mBAAsB,WAAA3+M,GAAA,EAAAyI,SAAA,IAAAk2M,mBAAA,YAAA3+M,GAAA,EAAAyI,SAAA,IAkZ3CxhB,EAAGu7C,eAAkBC,aAAc,UAAWnzB,KAAM,MAASmzB,aAAc,WAAYnzB,KAAM,MAE7FroB,EAAG6oD,iBAhZanG,eAAuB,WAAG2B,aAAA,MAAA3B,eAAA,eAAA2B,aAAA,MAkZ1CrkD,EAAG+oD,iBACGpG,eAhZgB,eAAKt6B,KAAa,MAiZlCs6B,eAhZM,gBAAat6B,KAAA,MAA6Bs6B,eAAQ,iBAAat6B,KAAe,MAiZpFs6B,eAhZS,mBAAAt6B,KAAA,MAuZfroB,EAAGqlD,yBAA4BvC,qBAAsB,6BAA8B/pC,GAAI,IA+kBvF/Y,EAAGqa,MAAQ,WAhZXra,EAAAsa,GAAS,GAAAb,OAmZTzZ,EAAGqa,QAEHra,EAAG0X,MAjZK,WAkZJ1X,EAAGsa,GAjZC,MAoZRta,EAAGua,eACCC,YAAajB,EAhZbkB,QAAA,GAAahB,MACbiB,WAAO,GAoZX1a,EAAG2a,aACCC,aAjZYxB,EAkZZ+C,WAjZW,KAkZXtB,QAjZQ,GAAGpB,MAAA,KAAA,EAAA,IAkZXgB,QAjZQ,GAAIhB,MAkZZqB,YAjZY,GA2ZhB9a,EAAG+a,UAjZK,WAkZJ/a,EAAGua,cAAcE,QAAUza,EAAGua,cAAcE,QAAU,KAAO,GAAIhB,MACjEzZ,EAAG2a,YAAYF,QAAUza,EAAGua,cAAcE,SA9Y9Cza,EAAA+a,YAmZA/a,EAAGkb,MAjZK,WAkZJlb,EAAGmb,OAjZKtM,QAAA,CACA,IAAA4K,OAqZZzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CAhZf,IAAA4K,OAoZRzZ,EAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,EAAGsa,GAAK,GAjZIb,MAAKgC,EAAGC,EAAAC,IAoZxB3b,EAAG4b,SAAW,eAjZgB,aAAA,aAAA,aAkZ9B5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBAAmB,cAGtB9b,EAAGmb,QACCtM,QAAQ,GAGZ7O,EAAGib,QACCpM,QAAQ,gSA3sBhBza,QACKC,OAAO,gCA/YRe,WAAS,uBAAAmiO,MA6xCjB,WACI,YAOA,SAASO,GAjZUrtN,EAAYxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAG,EAAAk9D,GAkZ3B,GAAIr3D,GAAKC,IACTD,GAAGsU,SAjZS,KAkZZtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAjZI,EAkZP/S,EAAGsS,WAjZK,EAkZRva,EAAW2c,SAAU,CACrB,IAAIxU,GAAa/F,EAAsBgG,sBAEvCH,GAAGykB,cAAgB,WACf,GAAIliB,EAAM3M,OAAQ,CAhZtB,GAASmiO,IACFC,YACAv1M,MAAeziB,EAAA5H,OAAAusB,eAkZNszM,QAAW/3N,EAAWG,OACtB63N,QAAWj+N,EAAQ,QAAQ,GAAIwf,MAAQ,gBAG3Cxe,GACAk2D,MAAO5uD,EAAM4uD,MAhZhB6mK,WAAYr7N,KAAAqkB,UAAU+2M,GAEvB1gK,GAASitB,SAAArpF,GAAAwD,KAAA,SAAuBC,GACjB,MAAXA,EAAAlI,QACAuB,EAAA2I,YAAwB,UAAQ,gCAA0B,aACvD4b,EAAWrN,QACVjV,EAAE8F,GAAA,oBAmZF/H,EAAW2I,YAAY,QAAS,mBAC5BrJ,WAAW,EACX+F,KAAM,QAGf,SAAUuD,GACT5I,EAAW2I,YAAY,QAAS,mBAhZjCrJ,WAAM,EACL+F,KAAQ,aAqZX,CACD,GAAI0nB,IACAH,gBAhZIlC,MAAOziB,EAAA5H,OAAAusB,eAkZPC,WAAc1kB,EAAWG,OAhZ9BwkB,WAAA5qB,EAAA,QAAA,GAAAwf,MAAA,gBAoZCxe,GACAk2D,MAAO5uD,EAAM4uD,MACbxsC,eAAgBhoB,KAAKqkB,UAAU8D,GAEnCuyC,GAAWktB,UAAUtpF,GAAKwD,KAAK,SAAUC,GAClB,MAAfA,EAAIlI,QAhZXuB,EAAA2I,YAAyB,UAAA,oCAAA,iBAC9B4b,EAAArN,QACUjV,EAAA8F,GAAA,0BAEN/H,EAAe2I,YAAA,QAAiB,oBACtBrJ,WAAQ,EACV+F,KAAQ,QAoZb,SAAUuD,GAhZjB5I,EAAkB2I,YAAA,QAAkB,oBACxBrJ,WAAI,EACJ+F,KAAG,WAuZnB4C,EAAG0R,OAAS,WACR4K,EAAkBiB,QAjZQ,4JAmUlCnpB,QACKC,OAAO,mBACPe,WAAW,mBAjZO0iO,MAke3B,WACI,YAOA,SAASK,GAjZiBpgO,EAAAyC,EAAAH,EAAAN,EAAAI,EAAAqnD,EAAA5G,EAAAhpC,EAkZtB2vC,EAjZYvvC,EAAWvH,EAAYswC,EAA6B3gD,EAAAH,EAAAQ,EAAA48D,EAAAr9D,EAAAO,EAAA68D,EAkZhEF,EAAoBrc,EAA4BF,EAAqBG,EAAwBE,EAAiBR,EAAa4yB,GAkI3H,QAASl7D,KACDlY,EAAOvE,OAAOC,OACdsK,GAAGyxD,OAASz3D,EAAOvE,OAAOC,KAAK+7D,OAhZvCzxD,GAAS6xD,OAAA7xD,GAAAyxD,OACLzxD,GAAAo4N,QAAAp+N,EAAAvE,OAAAC,KAAA2iO,QACIr4N,GAAGs4N,UAAA1xN,SAAe5M,EAAavE,OAAAC,KAAA2iO,QAAA9P,YAmZnC1vG,IAEA74G,GAAGu4N,cAhZC3iO,OAAA,YAkZAizB,GAjZG,IAmZHjzB,OAjZO,eACPizB,GAAA,IAmZAjzB,OAAQ,gBACRizB,GAAI,IAGR7oB,GAAGkoB,cACKC,YAAa,cACbC,UAAW,EAhZdC,KAAA,MAmZGF,YAAa,sBAhZdC,UAAU,EACTC,KAAA,OAEJF,YAAiB,uBACdC,UAAO,EACPC,KAAK,OAoZJF,YAAa,iCACbC,UAAW,EACXC,KAAM,OAENF,YAAa,6CAhZhBC,UAAA,EACEC,KAAA,OAEAF,YAAU,iBACTC,UAAA,EACDC,KAAK,OAoZZroB,GAAGsoB,kBAhZCC,iBAAa,wBAkZbC,OAAQ,IAERD,iBAAkB,iBAClBC,OAAQ,IA/YhBD,iBAAS,oBACDC,OAAG,IAmZPxoB,GAAGyoB,iBAhZCC,eAAI,SACJC,OAAQ,IAERD,eAAc,UAkZdC,OAAQ,IA/YRD,eAAa,YAkZbC,OAAQ,IAERD,eAAgB,qBAChBC,OAAQ,IAERD,eAAgB,QAChBC,OAAQ,IA/YK,YAAb3uB,EAAAmiG,UACAn8F,GAAAyxD,QAAM,GAoZVz/C,EAAeI,mBAAmBD,IAAW1T,KAAK,SAASC,GAhZrC,MAAtBA,EAAAlI,QACQwJ,GAAAqS,YAAe3T,EAAKhJ,KACjBsK,GAAAyxD,UAAA,GACA+mK,KACHx4N,GAAGsS,WAAA,GAEHva,EAAG2I,YAAA,QAAqB,yBAAA,YAmZ7B,SAjZQC,GAkZP5I,EAjZO2I,YAAA,QAAA,mBAA6B,aAuZ5C,QAjZOm4G,KAkZH,OAjZI74G,GAAAs4N,WAkZA,IAAK,GACDt4N,GAAG+4G,YAAc,OAAQ,OAAQ,OAAQ,OAAQ,SACjD,MACJ,KAAK,GAhZJ/4G,GAAA+4G,YAAe,OAAA,OAAA,OAAA,SAAA,UAAA,SAChB,MACA,KAAA,GACA/4G,GAAA+4G,YAAqB,OAAA,OAAA,OAAA,SAAA,UAAA,SACrB,MACA,KAAA,GAkZI/4G,GAAG+4G,YAAc,OAAQ,QAAS,SAhZ1C,MACI,KAAI,GACA/4G,GAAG+4G,YAAA,OACH,MAkZJ,KAAK,GAhZD/4G,GAAA+4G,YAAW,OAAY,OAAS,OAAA,WAAA,WAuZ5C,QAASC,GAAQC,GACb,MAAOz+G,GAAO3F,SAASmL,GAAG+4G,WAAYE,GAG1C,QAASs0B,KAhZK,IAANvtI,GAAA8C,KAAMo3D,gBAAA9xC,UACNpoB,GAAAy4N,sBACAC,UAAW,cACXrwM,KAAA,MAmZQqwM,UAAW,sBAhZvBrwM,KAAA,OAEWqwM,UAAA,uBACArwM,KAAA,OAGCqwM,UAAA,iCAkZArwM,KAAM,OAENqwM,UAAW,6CACXrwM,KAAM,OA5YfroB,GAAAy4N,sBACCC,UAAW14N,GAAA8C,KAAYo3D,gBAAS/xC,YAkZ5BE,KAAMroB,GAAG8C,KAAKo3D,gBAAgB7xC,OAM1C,QAjZQ4nF,GAAa99F,EAAA5T,GAkZb4T,GAhZAnS,GAAA8C,KAAM61N,sBAAA,KACN3xK,KACAhnD,GAAA8C,KAAA+e,gBAAW,KACX7hB,GAAAgmD,gBAGJhmD,GAAA8C,KAAA81N,eAAsB,KAmZlB54N,GAAGsS,WAjZI,EAkZPV,EAjZmB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACZ,MAAAA,EAAAlI,QACHwJ,GAAA2hB,YAAWjjB,EAAYhJ,KAkZfsK,GAAG2hB,YAAYxmB,OAAS,GAhZ5Bd,EAAK8C,OAAA,UAAA,4BAAA6C,GAAA8C,KAAAqQ,gBAAA84B,aACF50C,WAAY,EAkZP+F,KAAM,OAGd4C,GAAGsS,WAAY,EACX/T,GACAA,KA/YfxG,EAAA2I,YAAA,QAAA,yBAAA,aAmZM,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBA/Y/DV,GAAA8C,KAAW+e,gBAAoB,KAmZxB7hB,GAAG2hB,eACH3hB,GAAG8C,KAAK61N,sBAAwB,KAjZnC34N,GAAAgmD,gBACDhmD,GAAK8C,KAAAo3D,gBAAA,KACNl6D,GAAAm4D,YAAWC,iBAAA,KAGXp4D,GAAA8C,KAAY81N,eAAA,KACf5xK,MAgbA,QAAS6xK,GAlZOt6N,GAmZZomD,IACA,IAEI7uD,GAlZCkK,GAAA8C,KAAA+e,gBAAA/rB,SAwZL,IAJIgjO,IAnZA94N,GAAA+S,UAuZ6B,GAA7B/S,GAAG8C,KAAK81N,eAAe/vM,GACvB,GAAIgvD,IAAU,MAEd,IAlZIA,IAAO,EACPy4B,EAAAtwG,GAAA8C,KAAgB81N,eAAe/vM,EAoZvCgyB,GAlZyBk+K,YAAUjjO,EAAe+hF,EAAAy4B,EAAAwoH,IAAAr6N,KAAA,SAAAC,GAClC,MAARA,EAAIlI,QAmZJwJ,GAAGk7C,QAlZCx8C,EAAWhJ,KAmZfsK,GAAGsS,WAlZC,EACA/T,GAmZAA,KAEJxG,EAlZQ2I,YAAW,QAAA,yBAAA,0BAoZxB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAI5D,QAASs4N,GAlZa3iN,EAAA0mC,EAAAx+C,GAmZlB0rD,IAEA,IAAI5zC,GAAYA,EACZ2mC,EAAQD,EA/YZjnD,EAAAkK,GAAkB8C,KAAA+e,gBAAQ/rB,SAMlC,IA8YYgjO,IADA94N,GAAG+S,UA7Yf,GAAA/S,GAAA8C,KAAA81N,eAAA/vM,GAmZY,GAAIgvD,IAAU,MAjZ1B,IAAAA,IAAA,EACYy4B,EAAAtwG,GAAA8C,KAAA81N,eAAA/vM,EAqZJ8xB,GAAoBs+K,iBAAiB5iN,EAAW2mC,EAAOlnD,EAAW+hF,EAASy4B,EAAWwoH,IAAYr6N,KAAK,SAASC,GACzF,MAAfA,EAAIlI,QAlZXwJ,GAAA47C,aAAmBl9C,EAAAhJ,KACxBsK,GAAAsS,WAAkB,EAClB/T,GACSA,KAENxG,EAAc2I,YAAA,QAAA,yBAAA,YAEd,SAAAC,GACA5I,EAAA2I,YAAmB,QAAA,mBAAA,aAuZtB,QAnZGw4N,GAAAh9K,EAAA39C,GACC2rD,IAEA,IAAAhO,GAASA,EAsZLpmD,EAAYkK,GAAG8C,KAAK+e,gBAAgB/rB,SA7YxC,IAJDgjO,IADA94N,GAAA+S,UAKU,GAAT/S,GAAA8C,KAAS81N,eAAA/vM,GACV,GAAAgvD,IAAA,MAEA,IAAAA,IAAA,EACCy4B,EAAStwG,GAAA8C,KAAA81N,eAAA/vM,EAETiyB,GAASq+K,oBAAAj9K,EAAApmD,EAAA+hF,EAAAy4B,EAAAwoH,IAAAr6N,KAAA,SAAAC,GACV,MAAAA,EAAAlI,QACCwJ,GAASo8C,gBAAA19C,EAAAhJ,KAoZDsK,GAAGsS,WAAY,EAlZZ/T,GACZA,KAqZSxG,EAAW2I,YAAY,QAAS,yBAA0B,gBAjZlE,SAASC,GACV5I,EAAA2I,YAAA,QAAA,mBAAA,iBAuZH,QAnZG04N,GAAAvnM,EAAAtzB,GACCinD,IAEA,IAAA3zB,GAASA,EAGV/7B,EAAAkK,GAAA8C,KAAwB+e,gBAAc/rB,SAMtC,IA+YKgjO,IApZA94N,GAAG+S,UAKE,GAAV/S,GAAA8C,KAAU81N,eAAA/vM,GACT,GAAAgvD,IAAa,MAEd,IAAOA,IAAA,EACPy4B,EAActwG,GAAA8C,KAAA81N,eAAA/vM,EAEdmyB,GAAiBq+K,aAAAxnM,EAAA/7B,EAAA+hF,EAAAy4B,EAAAwoH,IAAAr6N,KAAA,SAAAC,GAoZO,MAAfA,EAAIlI,QAlZbwJ,GAAAu8C,aAAsB79C,EAAAhJ,KAoZbsK,GAAGsS,WAAY,GAjZhBva,EAAA2I,YAAA,QAAA,yBAAA,SAqZJ,SAASC,GAlZb5I,EAAA2I,YAAwB,QAAA,mBAAA,UAuZ3B,QAAS44N,GAA4Bt5M,GAEnBrqB,QAAVqqB,IAlZLhgB,GAAA+5H,sBACAC,oBAA8B,UAC9B3xG,KAAA,MAEA2xG,oBAAA,WACA3xG,KAAA,MAEW,GAAXroB,GAAW+S,WAAA/S,GAAA8C,KAAA+7C,mBACF0uF,IACT0B,EAAejvI,GAAA8C,KAAA+e,gBAAA/rB,aAOlB,QAAGyjO,GAAkBlxM,GAClBq9B,IAEA,IAAA1lC,GAAchgB,GAAA8C,KAAA+7C,iBAAA7+B,OACd++B,EAAO/+C,GAAA8C,KAAAiuI,wBAAA1oH,KAGPvyB,EAAWkK,GAAA8C,KAAA+e,gBAAA/rB,SAMX,IAJAgjO,IADA94N,GAAA+S,UAKwB,GAAxB/S,GAAA8C,KAAA81N,eAAwB/vM,GACxB,GAAAgvD,IAAA,MAEA,IAAAA,IAAU,EACVy4B,EAAatwG,GAAA8C,KAAA81N,eAAA/vM,EAEb2xB,GAAAg/K,aAAkBx5M,EAAA++B,EAAAjpD,EAAA+hF,EAAAy4B,EAAAwoH,IAAAr6N,KAAA,SAAAC,GACK,MAAvBA,EAAAlI,QACAwJ,GAAA8zF,SAAiBp1F,EAAAhJ,KACjBsK,GAAUsS,WAAA,GAEVva,EAAa2I,YAAA,QAAA,yBAAA,SAqZT,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,UA9Y5D,QAAAuuI,GAAAn5I,EAAAyI,GAEI,GAAEzI,EAAA,CAoZEkxD,KACAhnD,GAAG8C,KAAK61N,sBAAwB,KAChC34N,GAAGgmD,eACH,IAAI/qD,IAlZHnF,UAAOA,EAGR,IADAq8B,QAAGC,IAASn3B,GACG,GAAZ+E,GAAA8C,KAAS81N,eAAG/vM,GACZ+xB,EAAiBgC,qBAAY3hD,GAAAwD,KAAA,SAAAC,GACR,MAArBA,EAAYlI,QAoZHwJ,GAAGgmD,aAAetnD,EAAIhJ,KAlZtCsK,GAAAgmD,aAAA7qD,OAAA,GAoZoBd,EAAQ8C,OAAO,UAAW,6BAA+B6C,GAAG8C,KAAK+e,gBAAgBS,aAlZnFjrB,WAAA,EACN+F,KAAA,OAGA4C,GAAAsS,WAAA,EACJ/T,GACLA,KAEKxG,EAAA2I,YAAA,QAAA,yBAAA,aAqZG,SAASC,GAlZjB5I,EAAe2I,YAAA,QAAA,mBAAA,kBAEV,CACA,GAAAzF,IACDnF,UAAAA,EACCmhC,QAAaj3B,GAAA8C,KAAAsgD,aAAArqC,GAGd,IAAA,IAAA/Y,GAAA8C,KAAA81N,eAAA/vM,IAAA,IAAA7oB,GAAA8C,KAAA81N,eAAA/vM,GACC,GAAAivD,GAAa93E,GAAA8C,KAAA81N,eAAA/vM,GACbkvD,GAAW,CAqZXn9B,GAAqBg9B,uBAAuB38E,EAAInF,UAAWmF,EAAIg8B,SAAS,EAAM6gD,EAAWC,GAAat5E,KAAK,SAASC,GAlZxH,MAAAA,EAAAlI,QACIwJ,GAAAgmD,aAAatnD,EAAAhJ,KACFsK,GAAAgmD,aAAA7qD,OAAA,GACLd,EAAA8C,OAAA,UAAA,6BAAA6C,GAAA8C,KAAA+e,gBAAAS,aACPjrB,WAAA,EACc+F,KAAA,OAGd4C,GAAAsS,WAAA,EACC/T,GACWA,KAqZHxG,EAAW2I,YAAY,QAAS,yBAA0B,aAjZvE,SAAAC,GACC5I,EAAkB2I,YAAA,QAAA,mBAAA,mBAKnBsmD,MACChnD,GAAA8C,KAAA61N,sBAAkB,KAClB34N,GAAAgmD,eAsZJyzK,GAnZoB3jO,GAuZxB,QAnZQ44G,GAAQ5qD,EAAAhuD,EAAAyI,GAqZZ,GAnZIzI,EAAA,CACAkxD,KACDhnD,GAAA2uG,QAAAhyG,KAAAC,MAAAoD,GAAA8C,KAAA61N,sBAAA30K,OACChkD,GAAA4uG,YAAgB5uG,GAAA2uG,QAAAE,KAChB,IAAA5zG,IACD6oD,WAAA9jD,GAAA8C,KAAA61N,sBAAA70K,WACChuD,UAAAkK,GAAgB8C,KAAA+e,gBAAA/rB,UAChBypD,OAAQv/C,GAAA8C,KAAAsgD,aAAArqC,GAuZyB,IAA7B/Y,GAAG8C,KAAK81N,eAAe/vM,IAAwC,GAA7B7oB,GAAG8C,KAAK81N,eAAe/vM,KACzD5tB,EAAIrF,OAASoK,GAAG8C,KAAK81N,eAAe/vM,IAjZxC04B,EAAQonC,iBAAgB1tF,GAAAwD,KAAA,SAAAC,GACpB,GAAiB,MAAdA,EAAAlI,OAAkB,CACjB,IAAG,GAAA0E,KAAWwD,GAAAhJ,KACd,GAAA83L,GAAA9uL,EAAAhJ,KAAAwF,GAAAwE,MAEDM,IAAA6vF,gBAAAlzF,KAAAC,MAAA4wL,GAAAxpI,KAqZC,KAAK,GAAI9oD,GAAI,EAAGA,EAAI8E,GAAG05N,QAAQv+N,OAAQD,IAlZvC,IAAK,GAAAiP,GAAA,EAAAA,EAAAnK,GAAA6vF,gBAAA10F,OAAAgP,IACF,IAAA,GAAY6rB,GAAA,EAASA,EAAAh2B,GAAA6vF,gBAAoB1lF,GAAA28C,OAAA3rD,OAAA66B,IAoZhC,IAAK,GAAI2jM,GAAI,EAAGA,EAAI35N,GAAG05N,QAAQx+N,GAAG4hB,OAAO,GAAGpnB,KAAKyF,OAAQw+N,IAChD35N,GAAG6vF,gBAAgB1lF,GAAG28C,OAAO9wB,GAAG+wB,QAAU/mD,GAAG05N,QAAQx+N,GAAG4hB,OAAO,GAAGpnB,KAAKikO,GAAG5yK,QAAY/mD,GAAG05N,QAAQx+N,GAAG+7B,SAAWj3B,GAAG8C,KAAKsgD,aAAarqC,IACrIqtH,EAAcpmI,GAAG6vF,gBAAgB1lF,GAAG28C,OAAQ,SAAU9mD,GAAG6vF,gBAAgB1lF,GAAG28C,OAAO9wB,GAAG+wB,OA5Y9G,IAAAK,KACC5sD,GAAAqI,QAAA7C,GAAA6vF,gBAAA,SAAAhpC,GACE,GAAA/N,IACHuO,KAAAR,EAAAQ,KACCI,SAAAZ,EAAAH,OACEI,OAA8B,UAAhBD,EAAAH,QAAwBG,EAAAC,OAAUu6C,GAAWx6C,EAAAC,WAE7DM,GAAAvvD,KAAAihD,KAGA94C,GAAA4mD,YAAAQ,EACEpnD,GAAAsS,WAAc,MAEhBva,GAAA2I,YAAA,QAAA,yBAAA,eAqZF,SAnZCC,GAoZA5I,EAAW2I,YAAY,QAAS,mBAAoB,iBA3YhE,QAAS0lI,GAAA1oI,EAAkBo3G,EAAAzpG,GACvB3N,EAAImF,QAAQ,SAAAnD,EAAgB0V,GACrB1V,EAAAo1G,KAAsBzpG,GAqZrB3N,EAnZI43B,OAAMlgB,EAAA,KAyZtB,QAASgxC,GAnZOc,GAoZZ,GAAIA,EAAKo6C,kBAAmB,CACxB,GAnZI96C,GAAA,QAAAC,EAAAS,EAAAO,UAAA,GAoZAd,EAnZensD,EAAA6P,KAAArK,GAAA6vF,iBAoZfnpC,OAnZUF,GAENhsD,GAAWgnG,MAAAxhG,GAAA6vF,gBAAA,SAAAhpC,GAoZf,MAnZIJ,GAAMI,EAAAH,SAqZdlsD,GAAOqI,QAAQ7C,GAAG4mD,YAAa,SAASC,GACpC,GAAIA,EAAEY,WAAajB,EAAU,CAjZ9B,GAAAi7C,GAAAjnG,EAAuB8xB,IAAA46B,EAAAo6C,kBAAA,SACtBz6C,GAAAC,OAAcu6C,GAAK7mG,EAAgByC,OAAA0pD,EAAAG,OAAA,SAAAD,GAC7B,MAAQrsD,GAAA3F,SAAgB4sG,EAAA56C,EAAAvrB,oBAuClC0rB,MAwZR,QAnZQP,GAAQc,GAoZZ,MAnZI3gD,UAAA2gD,EAAAjkC,UAAA,IAsZR,QAASs2M,GAAUr7N,GACf,GAAItD,IACA6oD,WAAY9jD,GAAG8C,KAAK61N,sBAAsB70K,WAC1ChuD,UAAWkK,GAAG8C,KAAK+e,gBAAgB/rB,UACnCw6G,UAAWtwG,GAAG8C,KAAK81N,eAAe/vM,GAClCoO,QAASj3B,GAAG8C,KAAKsgD,aAAarqC,GAC9Bqe,WAAYp3B,GAAGo3B,WAEnB2jB,GAAqBorB,UAAUlrE,GAAKwD,KAAK,SAASC,GAC9C,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAG65N,QAAUn7N,EAAIhJ,IACjB,KAAK,GAAIwF,KAAK8E,IAAG65N,QACb75N,GAAG85N,IAAM95N,GAAG65N,QAAQ3+N,GAAG6+N,aAI3B,OAFIx7N,IACAA,IACIyB,GAAG,IAEXjI,EAAW2I,YAAY,QAAS,yBAA0B,aAOtE,QAASs5N,KAhZL,GAAAC,GAAAp0G,EAAArkB,MAAAxhG,GAAA4mD,YAAA,SAAAC,GACI,MAAAjgD,UAASigD,EAAAY,SAAAnkC,UAAA,MAGT5jB,IAoZJA,GAnZIkiG,mBAAa5hG,GAAA8C,KAAA61N,sBAAA/lM,aAsZjB,IAAIsnM,KAMJ,OAxZA1/N,GAAOqI,QAAKo3N,EAAe34H,kBAAS,SAAAz6C,GAChCqzK,EAAIriO,KAAUsiO,EAAAtzK,MAqZlBnnD,EAnZIhK,KAAIwkO,EAqZDx6N,EAGX,QAASy6N,GAnZoBxrH,GAoZzB,GAAIjvG,KASJ,OARAA,GAAOg1B,OAnZKi6E,EAAAj6E,OAoZZh1B,EAAOqnD,OAnZK4nD,EAAA5nD,OAoZZrnD,EAAOstD,WACP2hD,EAnZQzM,YAAW1nG,EAAA4/N,OAAYzrH,EAASzM,YAAA,UAoZxC1nG,EAAOqI,QAAQ8rG,EAAQzM,YAAa,SAASr7C,GAlZ1CnnD,EAAAstD,QAAcnG,EAAAoG,WAAApG,EAAAQ,OAsZV3nD,EAGX,QAnZI26N,KAoZA,IAAK,GAAIn/N,KAAK8E,IAAG8C,KAAKsgD,aAAc,CAlZhC,GAAAk3K,GAAY39N,KAAAC,MAAAoD,GAAA8C,KAAAsgD,aAAAwyF,gBACZ,KAAA,GAAQ5/G,KAAAskM,GAoZCt6N,GAAG8C,KAAKy3N,wBAAwBlyM,MAAQ2N,GAChC,MAALA,IAlZAh2B,GAAGw6N,aAAKF,EAAgBt6N,GAAA8C,KAAAy3N,wBAAAlyM,QAwZ5C,QAASoyM,KAlZLJ,GAoZA,IAnZIvyL,GAoZA4yL,EAnZGlgO,EAAA6P,KAAArK,GAAA05N,SACHziM,QAAIj3B,GAAU8C,KAAAsgD,aAAArqC,IAqZlB,IAAiC,GAA7B/Y,GAAG8C,KAAK81N,eAAe/vM,GAAS,CAlZpC,GAAA8xM,IACQ1jM,QAAIj3B,GAAA8C,KAAWsgD,aAAKrqC,GACpBs6F,UAAGrzG,GAAA8C,KAAesgD,aAAI/6B,KAAA,IAAAroB,GAAA8C,KAAAy3N,wBAAAlyM,KACtBuyM,aAAG56N,GAAYw6N,aACfvhL,SAAIj5C,GAAA8C,KAAA+7C,iBAAA5F,SAoZJj5B,OAnZIhgB,GAAA8C,KAAA+7C,iBAAA7+B,OAoZJuS,SAnZGvyB,GAAA8C,KAAAsgD,aAAA7wB,SACHsoM,YAAW76N,GAAA66N,YAoZXx9M,OAAQrd,GAAG86N,SAlZhBC,UAAc/6N,GAAA8C,KAAAy3N,wBAAAlyM,KAqZU,OAAnBroB,GAAGw6N,cAA2C7kO,QAAnBqK,GAAGw6N,cAC9Bx6N,GAAG05N,QAAQ7hO,KAAKzD,QAAQ8e,KAAKynN,IAC7B36N,GAAG8C,KAAK+7C,iBAAmB,KAlZ9B7+C,GAAAu8C,gBACLv8C,GAAA8C,KAAAiuI,wBAAA,KAoZQ/wI,GAAG8C,KAAKy3N,wBAA0B,KAlZtCv6N,GAAA8C,KAAAsgD,aAAa,KAoZTpjD,GAAG8zF,aAjZP/7F,EAAe2I,YAAK,QAAgB,+BAAAV,GAAA8C,KAAAy3N,wBAAA7B,UAAA,mBAAA,mBAIpC,IAAAgC,EAAa,CAoZT5yL,EAAQ4yL,CAlZT,IAAKM,GAAAhB,IACJiB,EAAUzgO,EAAA6P,KAAAy9B,EAAAhrB,QACX8kF,mBAAAo5H,EAAAp5H,oBAECq5H,GAoZIA,EAAWvlO,KAAO8E,EAAO4yD,OAAO6tK,EAAWvlO,KAAMslO,EAAQtlO,MAjZzDoyC,EAAAhrB,OAAWjlB,KAAKmjO,GAEpBlzL,EAAGzqB,OAAY7iB,EAAAy2B,MAAAgqM,EAAAvlO,KAAA,cACf,CAoZAoyC,GAlZG7Q,QAAAj3B,GAAA8C,KAAAsgD,aAAArqC,GACHs6F,UAAWrzG,GAAA8C,KAAYsgD,aAAS/6B,KAAA,IAAAroB,GAAA8C,KAAAy3N,wBAA0BlyM,KAoZtDuyM,aAAc56N,GAAGw6N,aAlZjBvhL,SAAKj5C,GAAA8C,KAAA+7C,iBAAA5F,SACbj5B,OAAWhgB,GAAA8C,KAAY+7C,iBAAS7+B,OAoZxBuS,SAAUvyB,GAAG8C,KAAKsgD,aAAa7wB,SAC/BsoM,YAAa76N,GAAG66N,YAChBE,UAAW/6N,GAAG8C,KAAKy3N,wBAAwBlyM,KAlZlDvL,UAqZG,IAAIk+M,GAAUhB,GAlZlBlyL,GAAAhrB,OAAgBjlB,KAAAmjO,GAoZZlzL,EAAMzqB,OAAS7iB,EAAOy2B,MAAM+pM,EAAQtlO,KAAM,UACnB,MAAnBsK,GAAGw6N,cAA2C7kO,QAAnBqK,GAAGw6N,cAlZtCx6N,GAAA05N,QAAe7hO,KAAKzD,QAAA8e,KAAgB40B,IACjC9nC,GAAA8C,KAAW+7C,iBAAA,KACd7+C,GAAAu8C,gBACGv8C,GAAA8C,KAAAiuI,wBAAA,KACH/wI,GAAA8C,KAAay3N,wBAAA,KAoZLv6N,GAAG8C,KAAKsgD,aAAe,KAlZvBpjD,GAAA8zF,YACJ9sC,MAEAjvD,EAAU2I,YAAA,QAAA,+BAAAV,GAAA8C,KAAAy3N,wBAAA7B,UAAA,mBAAA,eAMP,GAmZP14N,GAAG+S,WAnZgB/S,GAAAo4N,SAAAtwL,GAAA,MAAA9nC,GAAAw6N,cAoZnB1yL,EAAMn0B,WAnZCoB,GAAA1U,OAoZPynC,EAnZIqpB,MAAAnxD,GAAWo4N,QAAAjnK,MAoZfrpB,EAAMhrB,OAASo+M,EAAyBpzL,GAlZzCuvB,EAAS+sB,QAAKt8C,GAAArpC,KAAA,SAAAC,GACU,MAAvBA,EAAWlI,QAqZHwJ,GAAG8C,KAAK+7C,iBAAmB,KAC3B7+C,GAAGu8C,gBAlZVv8C,GAAA8C,KAAAiuI,wBAAoC,KAoZ7B/wI,GAAG8C,KAAKy3N,wBAA0B,KAlZ1Cv6N,GAAU8C,KAAAsgD,aAAW,KAClBpjD,GAAA8zF,YACC9sC,KACAjvD,EAAM2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,qBAEN9b,EAAA2I,YAAqB,QAAAhC,EAAAhJ,KAAAme,QAAA,uBAGL,MAAb7T,GAAAw6N,cAoZPziO,EAnZI2I,YAAA,QAAA,gCAAAV,GAAA8C,KAAAy3N,wBAAA7B,UAAA,oBAAA,eAqZR14N,GAAGw6N,aAAe,KAClBpB,EAAkCp5N,GAAG8C,KAAK+6C,oBAAoBhsB,eAC9DspM,KAGJ,QAASD,GAAyBR,GAlZlC,GAAAU,GAAS,EAwZL,OAvZA5gO,GAAAqI,QAAA63N,EAAA59M,OAAA,SAAAwmF,GAoZI,GAAI+3H,GAAU7gO,EAAO8xB,IAAIg3E,EAAI5tG,KAAM,UAAUg+B,KAAK,IAlZlD0nM,IAAYC,EAAK,MAqZdD,EAAU93M,UAAU,EAAG83M,EAAUjgO,OAAS,GAGrD,QAnZQ81E,GAAGn+D,GAoZP,GAnZI9S,GAAAo4N,QAAA,CAoZA,GAnZGzlN,GAAAtY,EAAAsY,QAAA,UACH,4CAoZQtb,WAAW,EAlZX+F,KAAA,MAqZRuV,GAnZGjT,OAAAjB,KAAA,WACC,GAAAxD,IACAk2D,MAAAnxD,GAAYo4N,QAAQjnK,MAoZhBl6B,QAASnkB,EAAImkB,QAjZjBogC,GAAI5K,WAAgBxxD,GAAAwD,KAAA,SAAAC,GACF,MAAfA,EAAAlI,QACAwJ,GAAA05N,QAAYh7N,EAAAhJ,KACZ8iO,KACHzgO,EAAW2I,YAAY,UAAS,qBAA0B,QAEtD3I,EAAK2I,YAAA,QAAA,yBAAA,eAMrBmlH,GAAS50C,OAAAjxE,GAAA05N,SACLziM,QAAAnkB,EAAAmkB,UA0ZJ,QAASwiM,GAAsB6B,GAC3BluJ,EAnZgBiB,sBAAAitJ,GAAA78N,KAAA,SAAAC,GACZ,GAAY,MAARA,EAAGlI,OAAK,CACRwJ,GAAAstI,gBAAqB5uI,EAAAhJ,IAoZrB,KAnZI,GAAIwF,KAAI8E,IAAAstI,gBAoZRttI,GAAGstI,gBAnZIpyI,GAAey9C,YAAI34C,GAAAstI,gBAAApyI,GAAAykI,YAAA,IACtB3/H,GAAAstI,gBAAOpyI,GAAamuL,YAAY,IAAArpL,GAAAstI,gBAAApyI,GAAAouL,mBAAA,IAAAtpL,GAAAstI,gBAAApyI,GAAAusD,SAAA,IAoZhCznD,GAAGstI,gBAnZgBpyI,GAAAkxE,aAAW,MAAApsE,GAAAstI,gBAAuCpyI,GAAAquL,oBAsZ7ExxL,GAAW2I,YAAY,QAAS,IAC5BrJ,WAAW,EACX+F,KAnZI,QAsZb,SAASuD,GACR5I,EAAW2I,YAnZY,QAAA,IAoZnBrJ,WAAW,EACX+F,KAnZG,SA0Zf,QAASm+N,KAEL,IAAK,GAnZGrgO,KAAI8E,IAAGw7N,mBAAoB,CAoZ/Bx7N,GAAGiV,QACHjV,GAAGiV,KAnZK0jC,YAAI34C,GAAAw7N,mBAActgO,GAAAy9C,YAoZtB34C,GAAGiV,KAAKw3K,SAAWzsL,GAAGw7N,mBAAmBtgO,GAAGuxL,SAlZ5CzsL,GAAAiV,KAAA04D,aAAqB3tE,GAAAw7N,mBAAuBtgO,GAAIyyE,YAoZpD,IAAIzgB,GAnZQ1yD,EAAI3F,SAAW2F,EAAK8xB,IAAAtsB,GAAAy7N,qBAAA,gBAAAz7N,GAAAiV,KAAA04D,aAoZ3BzgB,KAEDltD,GAAGy7N,qBAnZiB5jO,KAAOmI,GAAAiV,MAoZ3BjV,GAAG07N,eAnZa7jO,KAAAmI,GAAAiV,KAAW04D,gBA8ZvC,QAASguJ,GAnZO7oN,GAoZZ,GAAIre,GAAM,EAEVA,GAAMsD,EAAW8D,SAAW,iBAAmBiX,EAAI25K,SA5YnDhyL,EAAA4E,KAAA5K,EAAA,UAsZJ,QAASmnO,GAAc9oN,GAlZvB,GAAAH,GAAStY,EAAcsY,QAAA,UACnB,kEACItb,WAAW,EACX+F,KAAA,MAqZJuV,GAnZOjT,OAAAjB,KAAA,WACHonH,EAAA50C,OAAIjxE,GAAMy7N,sBACN9tJ,aAAY76D,EAAG66D,eAqZnBk4C,EAAE50C,OAnZEjxE,GAAQ07N,gBAoZR/tJ,aAAc76D,EAAI66D,iBAS9B,QAASkuJ,IAnZet9N,GAoZpByB,GAAGm4D,YAAYK,oBAAsB,IACrC,IAAIv9D,IACAg/D,YAAaj6D,GAAG8C,KAAKo3D,gBAAgB7xC,KACrCG,OAnZQxoB,GAAAm4D,YAAaC,iBAAkB5vC,OAoZvCG,OAAQ3oB,GAAGm4D,YAnZUE,mBAAc1vC,OAoZnCw1C,iBAnZgBn+D,GAAKm4D,YAAWoG,iBAAOxlD,GAoZvC2iC,sBAnZ2C/lD,QAAvBqK,GAAK8C,KAAI05C,YAAyBx8C,GAAO8C,KAAG05C,YAAad,sBAAK,KAoZlFt7C,SAAU2U,GAnZc1U,OAqZmB,KAA3CL,GAAGm4D,YAAYC,iBAAiB5vC,SAChCvtB,EAAIihD,WAA0CvmD,QAA5BqK,GAAG8C,KAAK66C,iBAAiC39C,GAAG8C,KAAK66C,iBAAiBzB,WAAa,MAEtD,IAA3Cl8C,GAAGm4D,YAAYC,iBAAiB5vC,SAChCvtB,EAAIihD,WAA0CvmD,QAA5BqK,GAAG8C,KAAK66C,iBAAiC39C,GAAG8C,KAAK66C,iBAAiBzB,WAAa,KACjGjhD,EAAI42B,cAAgDl8B,QAA/BqK,GAAG8C,KAAK+6C,oBAAoC79C,GAAG8C,KAAK+6C,oBAAoBhsB,cAAgB,MAEjHqlC,EAnZmB4C,gBAAW7+D,GAAAwD,KAAA,SAAiBC,GAC3B,MAmZZA,EAAIlI,SACJwJ,GAAGm6D,gBAnZiBz7D,EAAAhJ,KAoZpBsK,GAAGsS,WAnZS,EAoZR/T,GACAA,MAET,SAASoC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAK5D,QAAS25D,IAActhD,GACnBq+C,EAnZqB0uB,iBAAA/sE,GAAAta,KAAA,SAAAC,GACF,MAAXA,EAAAlI,SAoZAwJ,GAAGy5D,YAAc/6D,EAAIhJ,KAAKomO,iBAlZ3B97N,GAAA8uD,aAAApwD,EAAAhJ,KAAAqmO,mBAqZJ,SAASp7N,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAI5D,QAnZIy6N,MAoZAn7N,GAAG0sD,aACH,KAAK,GAAIxxD,KAAK8E,IAAG05N,QAAS,CACtB15N,GAAGsoD,OACHtoD,GAAGsoD,IAAItoC,OAAShgB,GAAG05N,QAAQx+N,GAAG8kB,MAC9B,IAAIktC,GAAS1yD,EAAO3F,SAAS2F,EAAO8xB,IAAItsB,GAAG0sD,WAAY,UAAW1sD,GAAGsoD,IAAItoC,OACpEktC,IACDltD,GAAG0sD,WAAW70D,KAAKmI,GAAGsoD,IAAItoC,QAIlChgB,GAAGggB,OAnZKhgB,GAAA0sD,WAAWh5B,KAAU,IAoZ7B,IAnZIz4B,IAoZA+gO,QAnZIh8N,GAAA8C,KAAUo3D,gBAAA7xC,KAoZd1U,WAAYoB,GAAc1U,OAlZ1B2f,OAAIhgB,GAAAggB,OAqZRq3C,GAAWutB,mBAAmB3pF,GAAKwD,KAAK,SAASC,GAlZ7C,GAAkB,MAAlBA,EAAOlI,OACH,GAAmBb,QAAfqK,GAAEi8N,eAAa,GAAU,CAoZzB,IAAK,GAAI/gO,KAAKwD,GAAIhJ,KAlZd,IAAA,GAAAyU,KAAYnK,IAAAi8N,eACLj8N,GAAAi8N,eAAgB9xN,GAAAmtB,cAAc54B,EAAAhJ,KAAewF,GAAAo8B,cAC7C54B,EAAAhJ,KAAO4/B,OAAS52B,EAAAhJ,KAAAwF,GAAa,EAuZxC8E,IAAGqoD,eAAiB3pD,EAAIhJ,SAExBsK,IAAGqoD,eAAiB3pD,EAAIhJ,SAI5BqC,GAAW2I,YAAY,QAAS,yBAA0B,eAG/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAK5D,QAASyjF,MACLnkF,GAAGk8N,mBACH,KAAK,GAAIhhO,KAAK8E,IAAG87D,mBACb97D,GAAGkjJ,cAEHljJ,GAAGkjJ,WAAW5rH,aAAet3B,GAAG87D,mBAAmB5gE,GAAGo8B,aACtDt3B,GAAGk8N,iBAAiBrkO,KAAKmI,GAAGkjJ,WAIhC,IAAI//H,GAAaxmB,KAAKqkB,UAAUhhB,GAAGk8N,iBAGnC,IAFAl8N,GAAGs3B,aAAenU,EAAWG,UAAU,EAAGH,EAAWhoB,OAAS,GAE1D6E,GAAGo4N,QAAS,CACZ,GAAIn9N,IACAk2D,MAAOnxD,GAAGo4N,QAAQjnK,MAClB9I,gBACI8zK,SAAYn8N,GAAGk8N,kBAhZvB7kK,GAAA8sB,cAAAlpF,GAAAwD,KAAA,SAAAC,GAoZuB,MAAfA,EAAIlI,QACJwJ,GAAGi8N,eAAiBv9N,EAAIhJ,KACxBsK,GAAGqoD,kBACHroD,GAAG87D,mBAAqB,KAlZ/Bq/J,KACEpjO,EAAS2I,YAAW,UAAU,wCAAA,QAqZzB3I,EAAW2I,YAAY,QAAS,yBAA0B,aAhZlE,CACA,IAAA,GAAAxF,KAAc8E,IAAA87D,mBACd97D,GAAAo8N,YACAp8N,GAAAo8N,SAAYv5K,eAAkB7iD,GAAA87D,mBAAA5gE,GAAA2nD,eAC9B7iD,GAAAo8N,SAAe9kM,aAAAt3B,GAAA87D,mBAAA5gE,GAAAo8B,aAoZXt3B,GAAGi8N,eAAepkO,KAAKmI,GAAGo8N,SAjZ9Bp8N,IAAAqoD,kBAoZAroD,GAAG87D,mBAnZkB,KAoZrBq/J,MAKR,QAASzwJ,IAnZc53D,GAoZnB,GAAI9S,GAAGo4N,QAnZI,CAoZP,GAnZIzlN,GAAAtY,EAAWsY,QAAY,UAoZvB,4CACItb,WAAW,EACX+F,KAAM,MAEduV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IAlZPk2D,MAAAnxD,GAAAo4N,QAAsBjnK,MAoZf75B,aAAcxkB,EAAIwkB,aAjZ1B+/B,GAAeqT,iBAAWzvE,GAAAwD,KAAa,SAAYC,GACxB,MAApBA,EAASlI,QAoZJwJ,GAAGi8N,eAAiBv9N,EAAIhJ,KACxB8iO,KAlZHzgO,EAAA2I,YAAA,UAAA,2BAAA,QAqZG3I,EAAW2I,YAAY,QAAS,yBAA0B,eA3Y1EmlH,GAAA50C,OAAOjxE,GAAAi8N,gBAoZC3kM,aAAcxkB,EAAIwkB,eAgB9B,QAnZS+kM,MAsZL,GADAr8N,GAAG2tE,aAnZe3tE,GAAA07N,eAAAhoM,KAAA,KAoZb1zB,GAnZG+S,UAkdD,CACH,GAnZIgmD,KAqZJ,KAAK,GAnZG79D,KAAG8E,IAAA8uD,aAoZPiK,EAnZOlhE,MACHqhE,WAAGl5D,GAAA8uD,aAAe5zD,GAAAg+D,WAClBM,eAAQx5D,GAAA8uD,aAAA5zD,GAA0Bs+D,eAClC1S,OAAQ9mD,GAAA8uD,aAAA5zD,GAAA4rD,QA6ZhB,IAAI7rD,IAlZDk2D,MAAAnxD,GAAAo4N,QAAajnK,MAChB5B,MAAMvvD,GAAAuvD,MACNyzC,SAAchjG,GAAGgjG,SACjBgB,aAAeruG,QAAAqK,GAAAgkG,aAAyBhkG,GAAAgkG,aAAA,EACxCD,UAAW/jG,GAAA+jG,UACPD,IAAI9jG,GAAI8jG,IAoZRw4H,WAAYt8N,GAAGs8N,WACfC,WAnZYv8N,GAAAu8N,WAoZZC,SAnZOx8N,GAAA2tE,aAoZP8uJ,YAnZYxiO,EAAA,QAAA+F,GAAAy8N,YAA0B,cAoZtCC,mBAlZI1jK,aAAQD,EACRM,UAAGr5D,GAAWq5D,WAqZlB1lD,WAnZIoB,GAAW1U,OAsZnBg3D,GAAW4sB,UAAUhpF,GAAKwD,KAAK,SAASC,GAChCA,EAAIhJ,KAAKke,aAAc,GAlZxB7b,EAAG2I,YAAgB,UAAMhC,EAAAhJ,KAAAme,QAAA,OAChC7T,GAAW+S,WAAY,EAoZf/S,GAAG28N,SAAU,EAlZtB38N,GAAAyxD,QAAe,IAElB15D,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,OAoZgBxc,WAAW,EACX+F,KAAM,OAjZlB4C,GAAA28N,SAAY,IAEZ,SAAIh8N,GACJ5I,EAAa2I,YAAU,QAAA,qBAoZfrJ,WAAW,EAlZhB+F,KAAU,OAqZT4C,GAAG28N,SAAU,QAvgBL,CAoZZ,IAAK,GAnZGzhO,KAAI8E,IAAK05N,QAoZb15N,GAAG05N,QAnZQx+N,GAAA4hB,OAAAo+M,EAAkCl7N,GAAK05N,QAAAx+N,GAqZtD,IAAI69D,KACJ,KAAK,GAAI79D,KAAK8E,IAAG8uD,aACbiK,EAAOlhE,MAlZVqhE,WAAWl5D,GAAA8uD,aAAA5zD,GAAAg+D,WAChBM,eAAAx5D,GAAA8uD,aAAA5zD,GAAAs+D,eACI1S,OAAA9mD,GAAA8uD,aAAA5zD,GAAA4rD,QAIA,IAAG7rD,IACCnF,UAASkK,GAAA8C,KAAA+e,gBAAA/rB,UACTy5D,MAAAvvD,GAASuvD,MACTyzC,SAAAhjG,GAAWgjG,SACXgB,aAAiBruG,QAAHqK,GAAGgkG,aAAAhkG,GAAAgkG,aAAA,EACjBD,UAAU/jG,GAAG+jG,UACbD,IAAA9jG,GAAQ8jG,IACRn7E,OAAA3oB,GAAUm4D,YAAQE,mBAAa1vC,OAC/B2zM,WAAAt8N,GAAas8N,WACbC,WAAWv8N,GAAAu8N,WACXK,aAAc58N,GAAA2tE,aAoZd8uJ,YAAaxiO,EAAQ,QAAQ+F,GAAGy8N,YAAa,cAlZ7CzvM,SAAGhtB,GAAA8C,KAAAo3D,gBAA2B7xC,KAC9Bw0M,MAAG78N,GAAA8C,KAAQ81N,eAAkB/vM,GAC7Bi0M,qBACGrjK,YAAez5D,GAAAy5D,aAElBijK,mBACG1jK,aAAKD,EACLM,UAAWr5D,GAAAm4D,YAAAK,oBAAAc,WAEdyjK,aAoZI5+K,SAAYn+C,GAAG05N,SAjZpBrxK,gBACC8zK,SAASn8N,GAAAk8N,kBAET77N,OAAI0U,GAAU1U,OAsZlBg3D,GAAW2sB,cAAc/oF,GAAKwD,KAAK,SAASC,GAlZpCA,EAAAhJ,KAAAke,aAAY,GACZ7b,EAAW2I,YAAO,UAAchC,EAAAhJ,KAAWme,QAAM,OAoZjD7T,GAAG28N,SAAU,EAlZb38N,GAAA+S,WAAa,EAoZb/S,GAAGyxD,QAAS,IAjZb15D,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,SACKxc,WAAA,EACJ+F,KAAS,OAET4C,GAAA28N,SAAA,IAqZL,SAnZKh8N,GAoZJ5I,EAnZI2I,YAAkB,QAAA,qBAClBrJ,WAAA,EACA+F,KAAA,OAqZJ4C,GAAG28N,SAAU,KA6DzB,QAAS54G,MACL/jH,GAAG+S,WAAY,EACf/S,GAAGyxD,QAnZS,EACM,MAmZdzxD,GAAGy7N,uBACHz7N,GAAGg9N,KAnZK,KAsZZvD,EAnZmBz5N,GAAAo4N,QAAWtiO,WAsZlC,QAAS0iO,MACL,IAAK,GAAIt9N,KAAK8E,IAnZEqS,YAoZRrS,GAAGqS,YAnZQnX,GAAAiX,WAAAnS,GAAAo4N,QAAAjmN,YAoZXnS,GAAG8C,KAnZKqQ,gBAAWnT,GAAAqS,YAAqBnX,GAuZhD+0G,GAnZOjwG,GAAAo4N,QAAAjmN,UAAA,WAoZH,IAAK,GAAIjX,KAAK8E,IAAG2hB,YAlZf3hB,GAAO2hB,YAAYzmB,GAAApF,WAAAkK,GAAAo4N,QAAAtiO,YACjBkK,GAAA8C,KAAS+e,gBAAI7hB,GAAA2hB,YAAAzmB,GAuZjB,KAAK,GAAIA,KAAK8E,IAAGu4N,YACTv4N,GAAGu4N,YAAYr9N,GAAG2tB,IAAM7oB,GAAGo4N,QAAQyE,QACnC78N,GAAG8C,KAAK81N,eAAiB54N,GAAGu4N,YAAYr9N,GAIhD,KAnZI,GAAGA,KAAA8E,IAAAkoB,YACHloB,GAAKkoB,YAAYhtB,GAAAmtB,MAAAroB,GAAAo4N,QAAiBprM,WAC9BhtB,GAAG8C,KAAAo3D,gBAAmBl6D,GAAAkoB,YAAiBhtB,GAuZ/C,KAAK,GAnZEA,KAAA8E,IAAAsoB,gBACHtoB,GAAAsoB,gBAAuBptB,GAAAstB,QAAaxoB,GAAAo4N,QAAA5vM,SAChCxoB,GAAAm4D,YAAWC,iBAAAp4D,GAAAsoB,gBAAAptB,GAihBnB,OA7gBD29N,GAAA,WACC,IAAA,GAAW39N,KAAA8E,IAAAk7C,QACPl7C,GAAWk7C,QAAAhgD,GAAAwgD,uBAAA17C,GAAAo4N,QAAA18K,wBACL17C,GAAA8C,KAAA05C,YAAAx8C,GAAAk7C,QAAAhgD,GAwZN89N,GAA0Bh5N,GAAG8C,KAAK+e,gBAAgBxL,UAAWrW,GAAGo4N,QAAQ18K,sBAAuB,WAC3F,GAAI17C,GAAGo4N,QAAQl8K,YAAcl8C,GAAGo4N,QAAQvmM,cAAe,CAlZ9D,IAAe,GAAA32B,KAAA8E,IAAA47C,aAoZI57C,GAAG47C,aAAa1gD,GAAGghD,YAAcl8C,GAAGo4N,QAAQl8K,aAlZnDl8C,GAAA8C,KAAA66C,iBAAoB39C,GAAA47C,aAAA1gD,GAIrBg+N,GAAkBl5N,GAAmBo4N,QAAGl8K,WAAA,WACvC,GAAOl8C,GAAAo4N,QAASvmM,cAAc,CAC9B,IAAA,GAAA32B,KAAA8E,IAAAo8C,gBAoZep8C,GAAGo8C,gBAAgBlhD,GAAG22B,eAAiB7xB,GAAGo4N,QAAQvmM,gBAlZlD7xB,GAAA8C,KAAQ+6C,oBAAA79C,GAAAo8C,gBAAAlhD,GAuZhBk+N,GAAkCp5N,GAAGo4N,QAAQvmM,oBA3YhE,KAAA,GAAY32B,KAAK8E,IAAAyoB,eACZzoB,GAAAyoB,eAAAvtB,GAAAytB,QAAA3oB,GAAAo4N,QAAAzvM,SAoZM3oB,GAAGm4D,YAAYE,mBAAqBr4D,GAAGyoB,eAAevtB,GAI9D,KAAK,GAAIA,KAAK8E,IAAGgoB,mBACThoB,GAAGgoB,mBAAmB9sB,GAAG6d,IAAM/Y,GAAGo4N,QAAQtrM,iBAC1C9sB,GAAGm4D,YAAYoG,iBAAmBv+D,GAAGgoB,mBAAmB9sB,GAIhE2gO,IAAe,WAlZlB,IAAA,GAAc3gO,KAAK8E,IAAAm6D,gBACVn6D,GAAQm6D,gBAAQj/D,GAAAo+D,WAAAt5D,GAAAo4N,QAAA/+J,YAC1Br5D,GAAAm4D,YAAAK,oBAAAx4D,GAAAm6D,gBAAkEj/D,QAQlE8E,GAAEi9N,MAAOj9N,GAAGo4N,QAAA8E,MAoZZl9N,GAAGuvD,MAnZCvvD,GAAAo4N,QAAkB7oK,MAoZtBvvD,GAAGgkG,aAAehkG,GAAGo4N,QAAQp0H,aACzBhkG,GAAG+jG,UAAY/jG,GAAGo4N,QAAQr0H,UAC1B/jG,GAAG8jG,IAAM9jG,GAAGo4N,QAAQt0H,IACpB9jG,GAAGs8N,WAAat8N,GAAGo4N,QAAQkE,WAC3Bt8N,GAAGu8N,WAAav8N,GAAGo4N,QAAQmE,WAC3Bv8N,GAAGgjG,SAAWhjG,GAAGo4N,QAAQp1H,SAC7BhjG,GAAGy8N,YAAc,GAAIhjN,MAAKzZ,GAAGo4N,QAAQqE,aACrCplK,EAAW76C,cAAcxc,GAAGo4N,QAAQjnK,OAAO1yD,KAAK,SAASC,GAlZxDsB,GAAA05N,QAAeh7N,EAAAhJ,KAAUmnB,eAC3Bs+M,KASI3gO,EAAAqI,QAAY7C,GAAA05N,QAAA,SAAiB9kM,GAC5B,GAAAuoM,GAAsBxgO,KAAAC,MAAAg4B,EAAoB9X,QAoZ9BsgN,IAlZb5iO,GAAYqI,QAAAs6N,EAAiB,SAAc75H,GAC1C,GAAcqL,GAAQn0G,EAAA6P,KAAA+yN,GACNx7H,mBAAS0B,EAAA1B,qBAEdq5H,IACP,IAAWtsH,EACZA,EAAkB/M,mBAAI0B,EAAA1B,mBACV+M,EAAAj5G,KAAA8E,EAAA4yD,OAAAuhD,EAAAj5G,KAAAykO,EAAA72H,QACX,CACA,GAAA23H,KAoZYA,GAAWr5H,mBAAqB0B,EAAI1B,mBAlZ3Cq5H,EAAAvlO,QACFulO,EAAYvlO,KAASmC,KAAAsiO,EAAoB72H,IAoZhC85H,EAA2BvlO,KAAKojO,MAGxCrmM,EAAK9X,OAASsgN,IAhZtBp9N,GAAAy7N,qBAAoB/8N,EAAAhJ,KAAA8mO,QACpB,KAAG,GAAAthO,KAAA8E,IAAcy7N,qBACdz7N,GAAAy7N,qBAAwBvgO,GAAAy9C,YAAA34C,GAAAy7N,qBAAAvgO,GAAAykI,YAAA,IAoZnB3/H,GAAGy7N,qBAAqBvgO,GAAGmuL,YAAc,IAAMrpL,GAAGy7N,qBAAqBvgO,GAAGouL,mBAAqB,IAAMtpL,GAAGy7N,qBAAqBvgO,GAAGusD,SAAW,IAlZ/IznD,GAAKy7N,qBAAAvgO,GAAAkxE,aAAA,MAAApsE,GAAAy7N,qBAAAvgO,GAAAquL,eAsZT,KAAK,GAAIruL,KAAK8E,IAAGy7N,qBACbz7N,GAAG07N,eAAe7jO,KAAKmI,GAAGy7N,qBAAqBvgO,GAAGyyE,aA9YvD3tE,IAAIi8N,eAAYv9N,EAAQhJ,KAAG2nO,aAE1B,KAAC,GAAQniO,KAAAwD,GAAAhJ,KAAA4nO,kBAAAtkK,aACNh5D,GAAA8uD,aAAmBpwD,EAAIhJ,KAAA4nO,kBAAAtkK,aAAA99D,GAoZtB8E,GAAGq5D,UAAY36D,EAAIhJ,KAAK4nO,kBAAkBjkK,SAE9Cr5D,IAAGy5D,YAAc/6D,EAAIhJ,KAAK6nO,wBA/Y9B,SAAY58N,MAqZJX,GAAG,UAKnB,QAASwpE,MACLnS,EAAWmS,gBAnZgBxpE,GAAAo4N,QAAAjnK,OAAkB1yD,KAAA,SAAAC,GAoZtB,MAAfA,EAAIlI,QACJ0tB,KACAnsB,EAAW2I,YAAY,UAAW,gBAAiB,QAEnD3I,EAnZO2I,YAAA,QAAqB,yBAAA,SAwZxC,QAAStI,MACL,GAAIqvN,IACAt2J,MAAOnxD,GAAGo4N,QAAQjnK,OAjZnB/xD,EAAc7E,EAAA8E,MACbhI,WAAW,EAoZXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,8CACbE,WAAY,mBAlZpBC,aAAS,KACF+H,KAAA,KACHoC,SAAc,SACVC,UAAG,EAoZHyQ,SAlZG3N,MAAA,WACA,MAAAklN,MAKProN,GAAGM,OAAejB,KAAA,aAAqB,cAsZ3C,QAnZQ++N,IAAU1qN,GAoZd,GAAI1T,GAnZc7E,EAAQ8E,MAoZtBhI,WAnZI,EAoZJiI,eAnZQ,cAoZRC,gBAAiB,aACjBrK,YAAa;AAlZbE,WAAW,qBAoZXC,aAnZY,KAoZZ+H,KAAM,KACNoC,SAnZQ,SAoZRC,UAnZQ,EAoZRyQ,SACI3N,MAnZI,WAoZA,MAnZGuQ,MAwZf1T,GAnZaM,OAAQjB,KAAA,SAAAq1D,GAoZjBhhD,EAnZI+nN,YAAc/mK,GAoZnB,cAGP,QAAShwC,MACLuzC,EAnZOmtB,WAAAxkF,GAAiBo4N,QAAAjnK,OAAA1yD,KAAA,SAAAC,GACjB,MAAAA,EAAAlI,QACH0tB,KAoZInsB,EAAW2I,YAAY,UAAW,mBAAoB,QAEtD3I,EAAW2I,YAAY,QAAS,yBAA0B,SAKtE,QAASywE,MACL9Z,EAAWqtB,YAnZY1kF,GAAAo4N,QAAAjnK,OAAA1yD,KAAA,SAAAC,GACL,MAmZVA,EAnZIlI,QAoZJ0tB,KAlZJnsB,EAAe2I,YAAK,UAAW,mBAAA,QAqZ3B3I,EAnZW2I,YAAW,QAAA,yBAAA,SAwZlC,QAASwwE,MACL,GAAIu2I,IACAt2J,MAAOnxD,GAAGo4N,QAnZEjnK,MAoZZv7D,OAAQoK,GAAGs4N,WAEXl5N,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,8CACbE,WAnZG,mBAoZHC,aAAc,KAlZd+H,KAAE,KAoZFoC,SAnZI,SAoZJC,UAAU,EACVyQ,SACI3N,MAAO,WACH,MAAOklN,MAKnBroN,GAnZQM,OAAWjB,KAAA,aAAA,cAyZvB,QAASk7E,MAlZT35E,GAAAsS,WAAmB,CAoZf,IAWIrX,IAXad,EAAsBgG,wBAYnCrK,UAAWkK,GAAG8C,KAAK+e,gBAAgB/rB,UACnCq7D,MAAOnxD,GAAGo4N,QAAQjnK,MAClB3O,WAAY,GAlZZpD,iBAAUp/C,GAAA8C,KAAAqQ,gBAAA84B,YAoZV3pB,YAnZItiB,GAAW8C,KAAG+e,gBAAKS,aAqZ3B6P,SAnZQC,IAAAn3B,GAoZRo8D,EAnZQsiB,WAAc1+E,GAAIwD,KAAA,SAAAC,GAClB,GAAc,MAAdA,EAAAlI,OAAc,CACdwJ,GAAK8Z,cAAGpb,EAAAhJ,KACRsK,GAAAsS,WAAW,CACX,IAAA2D,GAAYnf,SAAGijB,cAAA,IACfjjB,UAAYC,KAAGijB,YAAA/D,GACfA,EAAAgE,MAAc,eACd,IAAArc,GAAa,GAAAC,OAAQa,EAAQhJ,OACnBqI,KAAQ,oBAElBtJ,EAAAC,OAAqBwlB,IAAAC,gBAAAvc,EACjBnD,GAAA4E,KAAA5K,EAAkB,UAoZlBsD,EAAW2I,YAAY,UAAW,iBAAkB,uBAhZpDrG,GAAAwH,MAAc,QAAA,0BAAgCxK,WAAA,EAAA+F,KAAA,OAoZ9C4C,GAAGsS,WAAY,GAGvB,SAAS3R,GAlZL5I,EAAA2I,YAAgB,QAAA,iBAAArJ,WAAA,EAAA+F,KAAA,OAoZhB4C,GAAGsS,WAnZC,IAuZhB,QAASZ,MAlZD1R,GAAA+S,WAgaA/S,GAnZGyxD,QAAS,EAoZZzxD,GAAG+S,WAnZY,EAoZfylN,OAdAx4N,GAAG8C,QACH9C,GAAG05N,WACH15N,GAAGm4D,eACHn4D,GAAGi8N,kBACHj8N,GAAGgT,YAnZQ,EAoZXhT,GAAG29C,iBAnZQ,KAoZX39C,GAAG69C,oBAnZgB,KAoZnB79C,GAAG6+C,iBAnZS,KAoZZ7+C,GAAG8C,KAAK26N,uBACRz9N,GAAG+wI,wBAA0B,KAC7B/wI,GAAG09N,mBAnZkBtpN,iBA8Z7B,QAASkoM,MACLt8M,GAAGgT,YAnZU,EAoZbhT,GAAG6xD,OAnZK,EAoZR7xD,GAAG8C,QA4BP,QAASsW,IAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KAlZZ9iB,EAAAb,EAAWa,IAoZf,OAnZgB,QAmZTA,IAnZkC,IAApB8iB,EAAAC,UAAoB,IAAAD,EAAAC,UAod7C,QAnZQC,IAAO7jB,GAoZX,GAAI2jB,GAnZI3jB,EAAK2jB,KAoZT9iB,EAAOb,EAnZKa,IAoZhB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GAEzCxe,EAAI,EAAGA,EAAI8E,GAAG2Z,OAAOxe,OAAQD,IAAK,CACvC,GAAI0e,GAAa,GAAIH,MAAKzZ,GAAG2Z,OAAOze,GAAGme,MAAMK,SAAS,EAAG,EAAG,EAAG,EAE/D,IAnZIF,IAAeI,EAoZf,MAnZI5Z,IAAK2Z,OAAIze,GAAK1E,OAuZ9B,MAAO,GAIX,QAASwwD,MACLxsD,EAAOqI,QAAQ7C,GAAG4mD,YAnZU,SAAOM,GAoZ3BA,EAAKo6C,kBAnZmB,KAoZxBp6C,EAAKJ,YAMjB,QAASpB,MACL1lD,GAAG8C,KAAK61N,sBAAwB,KAChC34N,GAAGgmD,gBACHgB,KACAhnD,GAAG8C,KAAKsgD,aAAe,KACvBpjD,GAAG8zF,YAGP,QAAStuC,MACLE,KACA1lD,GAAG8C,KAAK+7C,iBAAmB,KAC3B7+C,GAAG8C,KAnZKiuI,wBAAiB,KAoZzB/wI,GAAGu8C,gBAGP,QAAS2N,MACL1E,KACAE,KACA1lD,GAAG8C,KAAK+6C,oBAnZqB,KAoZ7B79C,GAAGo8C,mBAGP,QAAS6N,MACLC,KACA1E,KACAE,KACA1lD,GAAG8C,KAAK66C,iBAAmB,KAC3B39C,GAAG47C,gBAYP,QAAS+I,MAELsF,KACAC,KACA1E,KACAE,KACA1lD,GAAG8C,KAAK05C,YAAc,KACtBx8C,GAAGk7C,WACHl7C,GAAGm4D,YAAYE,mBAAqB,KAGxC,QAASn0C,MACLlqB,EAAO8F,GAAG/H,EAnZMyE,eAsZpB,QAAS6kG,IAAgBj6C,GAUrB,MARIA,IAAYA,EAnZQjsD,OAAS,GAoZ7BX,EAAOqI,QAAQukD,EAnZK,SAAQP,GAoZxB,GAnZgB,GAmZZA,EAAEvrB,SAnZU,CAoZZ,GAAI2mE,GAnZWznG,EAAA6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IAoZfR,GAAEoG,WAnZU,MAAIg1C,KAuZrB76C,EAxzDX,GAAIpnD,IAAKC,IAETD,IAAGuU,YAAc,EAhZjBvU,GAAAizH,aAAS,EAkZTjzH,GAAGozH,aAjZI,EAkZPpzH,GAAGqU,kBACChJ,MAAS,IA/YTA,MAAI,KAmZJA,MAAS,KAETA,MAjZQ,KAmZRA,MAAS,MAEbrL,GAAGsU,SAAWtU,GAAGqU,gBAAgB,GACjCrU,GAAGwU,qBAAuB,SAASC,GAC/BzU,GAAGuU,YAAcE,GAErBzU,GAAG+yH,mBAhZH1nH,MAAS,IAmZLA,MAAS,KA/YbA,MAAS,KAELA,MAAS,KAmZTA,MAjZQ,MAmZZrL,GAAGgzH,UAAYhzH,GAAG+yH,iBAAiB,GACnC/yH,GAAGi1D,sBAjZwB,SAAAxgD,GAkZvBzU,GAAGizH,aAAex+G,GAEtBzU,GAAGkzH,mBAhZH7nH,MAAS,IAmZLA,MAjZI,KAmZJA,MAAS,KAETA,MAAS,KAETA,MAAS,MA/YbrL,GAAGmzH,UAAQnzH,GAAAkzH,iBAAW,GAkZtBlzH,GAAGqzH,sBAjZa,SAAA5+G,GAkZRzU,GAAGozH,aAAe3+G,GA9Y1BzU,GAAGsS,WAAQ,EAkZXtS,GAAGgT,YAjZS,EAkZZhT,GAAG28N,SAAU,CACb,IAAI7D,KAAa,CAhZjB/gO,GAAG2c,SAAgB,EAkZnB1U,GAAG8C,QACH9C,GAAGm4D,eACH1tD,EAjZIkzN,cAkZJ39N,GAAGqoD,kBA/YHroD,GAAGy4N,uBAmZHz4N,GAAG+S,WAjZC,EAkZJ/S,GAAG6xD,OAjZC,EAkZJ7xD,GAAGyxD,QAjZC,EAmZJzxD,GAAGiwG,sBAAwBA,EAC3BjwG,GAAGivI,uBAAyBA,EAC5BjvI,GAAG0uG,cAAgBA,EAhZnB1uG,GAAAomD,YAASA,EAmZTpmD,GAAG64N,OAjZKA,EAmZR74N,GAAGg5N,0BAA4BA,EAC/Bh5N,GAAGs5N,4BAA8BA,EAhZjCt5N,GAAGu5N,gCAAuBA,EAkZ1Bv5N,GAAGk5N,oCAjZ+BA,EAkZlCl5N,GAAGo5N,kCAjZ6BA,EAkZhCp5N,GAAGutI,gBAAkBA,EACrBvtI,GAAG45N,UAAYA,EAhZf55N,GAAGy6N,SAAAA,EAkZHz6N,GAAGixE,OAASA,EAhZZjxE,GAAGu7N,aAAQA,EAkZXv7N,GAAG47N,cAjZWA,EAkZd57N,GAAG0qE,iBAjZiBA,GAkZpB1qE,GAAG0R,OAASA,GACZ1R,GAAGs8M,OAASA,GACZt8M,GAAGw9N,SAAWA,GAhZdx9N,GAAGq8N,QAAQA,GAkZXr8N,GAAGwpE,gBAjZWA,GAkZdxpE,GAAGmkF,cAjZaA,GAkZhBnkF,GAAG27N,YAAcA,EACjB37N,GAAGw4N,YAAcA,GAhZjBx4N,GAAGkkB,KAAAA,GAkZHlkB,GAAG+jH,KAjZIA,GAkZP/jH,GAAG5H,OAASA,GACZ4H,GAAGmxE,SAAWA,GAhZdnxE,GAAG8jB,QAAUA,GACb9jB,GAAGkxE,MAAAA,GACHlxE,GAAGs8N,WAAA,GAkZHt8N,GAAGu8N,WAAa,EAChBv8N,GAAG67N,eAAiBA,GAhZpB77N,GAAGy5N,sBAASA,EAkZZz5N,GAAGm7N,sBAjZSA,GAkZZn7N,GAAGq6D,cAAgBA,GACnBr6D,GAAGg5G,QAAUA,EAhZbh5G,GAAG25E,WAASA,GAkZZ35E,GAAGqhG,gBAjZSA,GAkZZrhG,GAAGstI,mBACHttI,GAAGy7N,wBACHz7N,GAAG07N,kBAhZH17N,GAAA05N,WAkZA15N,GAAGi8N,kBACHj8N,GAAG+4G,cAIH/xD,IACA,IAAIjyC,IAjZY5a,EAAyBgG,uBAkZrCgS,GAAY4C,GAAcJ,gBAAgBxC,SAC9CnS,IAAG8zB,SAjZS/e,GAAIoqC,UAkZhBjtC,IACAlS,GAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAC3GkP,aAAc,iCAAkClP,GAAI,IA6hC1D/Y,GAAG49N,kBAnZkB,SAAAC,IACjBA,EAAQ,IAAAA,EAAc,KACtBxjO,EAAO8C,OAAQ,eAAQ,2EACnB9F,WAAe,EAoZX+F,KAAM,OAjZd4C,GAAOgkG,aAAA,OAq3BXhkG,GAAGqa,MAAQ,WACPra,GAAGsa,GAAK,GAAIb,OAEhBzZ,GAAGqa,QAEHra,GAAG0X,MAAQ,WACP1X,GAAGsa,GAAK,MAGZta,GAAGua,eACCC,YAnZQjB,GAoZRkB,QAnZQ,GAAAhB,MAoZRiB,WAnZQ,GAsZZ1a,GAAG2a,aACCC,aAnZQxB,GAoZRyB,QAnZQ,GAAApB,MAAU,KAAG,EAAA,IAoZrBgB,QAnZQ,GAAAhB,MAoZRqB,YAnZQ,GA8ZZ9a,GAAG+a,UAAY,WACX/a,GAAGua,cAnZYE,QAASza,GAAAua,cAAAE,QAAA,KAAA,GAAAhB,MAoZxBzZ,GAAG2a,YAnZYF,QAAAza,GAAAua,cAAAE,SAsZnBza,GAAG+a,YAEH/a,GAAGgb,MAAQ,WACPhb,GAAGib,OAAOpM,QAAS,GAGvB7O,GAAGkb,MAAQ,WACPlb,GAAGmb,OAAOtM,QAnZQ,CAoZN,IAAI4K,OAIpBzZ,GAAGob,MAAQ,WACPpb,GAAGqb,OAAOxM,QAAS,GAGvB7O,GAAGsb,MAnZI,WACHtb,GAAGub,OAAA1M,QAAS,GAsZhB7O,GAAGwb,QAAU,SAASC,EAAMC,EAAOC,GAC/B3b,GAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,GAAG4b,SAAW,eAAgB,aAAc,aAAc,YAAa,QAlZvE5b,GAAA6b,OAAS7b,GAAA4b,QAAc,GAqZvB5b,GAAG8b,iBAnZY,cAqZf9b,GAAGib,QACCpM,QAAQ,GAGZ7O,GAAGmb,QACCtM,QAnZQ,GAqZZ7O,GAAGqb,QACCxM,QAAQ,GAGZ7O,GAAGub,QACC1M,QAAQ,EAIZ,IAAIkN,IAnZS,GAAItC,KAoZjBsC,IAASP,QAnZOO,GAAGC,UAAe,EAoZlC,IAAIC,IAnZe,GAAKxC,KAoZxBwC,IAAcT,QAAQO,GAASC,UAAY,GAC3Chc,GAAG2Z,SACCN,KAAM0C,GACNvlB,OAnZI,SAqZJ6iB,KAAM4C,GACNzlB,OAAQ,ydAluDhBpC,QACKC,OAAO,mBACPe,WAAW,qBAjZe+iO,MAmtEnC,WACI,YAOA,SAAS2F,GAAmBrzN,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,GAC/G,GAAI6F,GAAKC,IACTD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,CAlZNva,GAAqBgG,sBAqZpCH,GAAG+9N,gBAnZkB,WAoZbx7N,IACAA,EAAMy7N,aAnZKh+N,EAAYynN,IAAIuW,cAqZ/B1hN,EAnZWrN,MAAA1M,EAAkBy7N,eAuZjCh+N,EAAG0R,OAnZQ,WAoZP4K,EAAkBiB,QAAQ,+IAvBlCnpB,QACKC,OAAO,mBACPe,WAAW,qBAnZW0oO,MA6a/B,WACI,YAOA,SAASG,GAAalmO,EAAYyC,EAAQH,EAASN,EAAOC,EAAQG,EAC9DsQ,EAAQxQ,EAASQ,EAAS48D,EAAYrlD,EAAgBJ,GAoCtD,QAnZQM,KAoZJlS,EAAGshB,eAnZWC,SAAA,QAAAC,SAAA,IAAAD,SAAA,sCAAAC,SAAA,IAAAD,SAAA,gCAAAC,SAAA,IAAAD,SAAA,WAAAC,SAAA,IACVD,SAAS,UAAAC,SAAA,IAAAD,SAAA,sBAAAC,SAAA,IAsZbxP,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,QACJwJ,EAAGqS,YAAc3T,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAjZfva,EAAA2I,YAAc,QAAA,yBAAA,YAqZnB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,aAK5D,QAASuvG,GAnZc99F,EAAY5T,GAoZ3B4T,GACAnS,EAAG8C,KAnZC+e,gBAAW,KAqZf7hB,EAAGsS,WAAY,EACfV,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QAlZXwJ,EAAA2hB,YAAWjjB,EAAAhJ,KACLsK,EAAA2hB,YAAexmB,OAAQ,GACtBd,EAAW8C,OAAK,UAAA,4BAAA6C,EAAA8C,KAAAqQ,gBAAA84B,aACpB50C,WAAA,EACW+F,KAAA,OAsZP4C,EAAGsS,WAAY,EACX/T,GACAA,KAjZXxG,EAAQ2I,YAAA,QAAA,yBAAA,aAET,SAAUC,GACV5I,EAAW2I,YAAA,QAAA,mBAAA,gBAGXV,EAAA8C,KAAA+e,gBAAW,KACX7hB,EAAA2hB,eACA3hB,EAAAk+N,YAwZR,QAnZQC,KAoZJ,GAnZIljO,IACAk2D,MAAAnxD,EAAS,MAAAA,EAAAmxD,MAAA,GAoZTv7D,OAnZIoK,EAAOwhB,SAoZX7N,WAnZQoB,EAAO1U,OAoZfvK,UAAWkK,EAAG8C,KAAK+e,gBAAgB/rB,UAEnCmF,GAAInF,UACJuhE,EAAWstB,UAAU1pF,GAAKwD,KAAK,SAASC,GAlZlB,MAAZA,EAAAlI,QAoZEwJ,EAAGk+N,QAAUx/N,EAAIhJ,KACbsK,EAAGk+N,QAAQ/iO,OAAS,GACpBd,EAAQ8C,OAAO,UAAW,wBAA0B6C,EAAG8C,KAAK+e,gBAAgBS,aACxEjrB,WAAW,EACX+F,KAAM,OAhZb,IAAA4C,EAAAwhB,WAoZGxhB,EAAGkiB,KAAM,EACTliB,EAAGmiB,YAAc3nB,EAAOyC,OAAOyB,EAAIhJ,MAAQ6yN,UAAa,IAlZ3DvoN,EAAAoiB,gBAAA5nB,EAAAyC,OAAAyB,EAAAhJ,MAAA6yN,UAAA,KAsZDvoN,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,cAhZtE,SAAMC,GACN5I,EAAmB2I,YAAA,QAAgB,mBAAA,eAGnCV,EAAAk+N,WAwZR,QAASE,GAnZOtrN,GAoZZ,GAAIpd,IACAqd,WAnZW,EAoZXslN,QAnZQvlN,EAoZR2+C,QAnZQ,EAsZZz3D,GAAO8F,GAAG,WACNpK,KAAMA,IAId,QAASitB,KACL3iB,EAAGkiB,KAAM,EACTliB,EAAGwhB,SAnZS,EAoZZxhB,EAAGk+N,QAnZSl+N,EAAGmiB,YAsZnB,QAnZQS,KAoZJ5iB,EAAGkiB,KAnZK,EAoZRliB,EAAGwhB,SAnZQ,EAoZXxhB,EAAGk+N,QAAUl+N,EAAGoiB,gBAMpB,QAnZQ8hE,GAAGpxE,GAoZP,GAnZIH,GAAGtY,EAAcsY,QAAA,eACjB,6CACGtb,WAAA,EACA+F,KAAA,MAsZPuV,GAnZOjT,OAAKjB,KAAA,WACR44D,EAAG6sB,UAAApxE,EAAAq+C,OAA0B1yD,KAAA,SAAAC,GACP,MAAnBA,EAAAlI,QACA2nO,EAAAn+N,EAAA8C,KAAA+e,gBAAA/rB,WACAiC,EAAS2I,YAAA,UAAA,mBAAA,QAEZ3I,EAAA2I,YAAA,QAAA,yBAAA,WAkPR,GAAIV,GAAKC,IAjZTD,GAAAqU,kBACIhJ,MAAI,IAqZJA,MAAS,KAETA,MAnZI,KAqZJA,MAnZI,KAqZJA,MAnZI,MAqZRrL,EAAGsU,SAnZWtU,EAAAqU,gBAAA,GAoZdrU,EAAGuU,YAnZK,EAoZRvU,EAAGwU,qBAnZe,SAAAC,GACVzU,EAAAuU,YAASE,GAsZjBzU,EAAGsS,WAAY,EACftS,EAAGgT,YAAa,EAChBhT,EAAGkiB,KAAM,EACTnqB,EAAW2c,SAAU,CACrB,IAnZIK,GAAc5a,EAAuBgG,uBAoZrCgS,EAAY4C,EAAcJ,gBAAgBxC,SAC9CnS,GAAGo+N,QAAUA,EAlZbp+N,EAAA2iB,UAASA,EAoZT3iB,EAAGkkF,UAnZKA,EAoZRlkF,EAAG4iB,sBAnZgBA,EAoZnB5iB,EAAGiwG,sBAnZqBA,EAoZxBjwG,EAAGm+N,kBAnZKA,EAoZRn+N,EAAGwhB,SAnZKxnB,EAAavE,OAAAG,OAqZrBsc,IA+GAlS,EAAGkkB,KAAO,WAlZVlkB,EAAAkiB,KAAS,4KA2Pb9tB,QACKC,OAAO,mBACPe,WAnZW,eAAW6oO,MAkkB/B,WACI,YAOA,SAnZOI,GAAA7jO,EAAAH,EAAA2kC,EAAAjnC,EAAA0S,EAAAgd,EAAAttB,EAAAF,EAAAD,GAwcH,QAnZO2yH,KAoZH3sH,EAAGs+N,aAAc,EACjB72M,EAAqB6+D,kBAAkBn0E,GAAW1T,KAAK,SAASC,GAlZjElE,EAAWqI,QAAAnE,EAAAhJ,KAAgB,SAAA+xN,GAClBA,EAAGz6L,SAAQxyB,EAAA6P,KAAArK,EAAAkoB,aAoZPG,KAAQo/L,EAAIz6L,WAlZzB7E,YAoZSs/L,EAAI36L,eAAiBtyB,EAAO6P,KAAKrK,EAAGgoB,oBAlZpCjP,GAAA0uM,EAAA36L,iBACA7E,eAGTvpB,EAAShJ,KAAA8E,EAAA83B,QAAA5zB,EAAAhJ,KAAA,cACR,KAAQ,GAAAqxB,KAAAroB,GAAAhJ,KAoZAgJ,EAAIhJ,KAAKqxB,GAAOvsB,EAAO83B,QAAQ5zB,EAAIhJ,KAAKqxB,GAAM,cAGlD/mB,GAAGk+N,QAAUx/N,EAAIhJ,MAClB,SAASiL,MAGhB,QAAS49N,GAAiB9W,GACK,IAAvBA,EAAI+W,eACJnkO,EAAQ8C,OAAO,UAAW,mCAlZ9B9F,WAAe,EACV+F,KAAQ,OAEc,IAAjBqqN,EAAAgX,iBACXpkO,EAAU8C,OAAA,UAAA,yCACH9F,WAAA,EACE+F,KAAA,QAGR4C,EAAA0+N,aAAQjX,EAoZJznN,EAAGsS,WAAY,EACfmV,EAAqB8+D,uBAAuBkhI,EAAIt2J,OAAO1yD,KAAK,SAASC,GAlZpE,GAAkB,MAAlBA,EAAAlI,OAAkB,CACZwJ,EAAA0+N,aAAK7hN,eAAAlgB,KAAAC,MAAA8B,EAAAhJ,MACLsK,EAAAsS,WAAK,CACZ,IAASwmC,KACL94C,GAAA2+N,YAoZInkO,EAAO+7B,MAAMv2B,EAAG0+N,aAAa7hN,eAAe,GAAI,SAAS/S,EAAK80N,GAlZ7D,GAAOvgL,GAAOugL,EAAA5jO,MAAO,IACtB,IAAsB,QAAtBqjD,EAAa,GAAY,CAoZjB,GAAIwgL,GAAMrkO,EAAOy2B,MAAMjxB,EAAG0+N,aAAa7hN,eAAgB+hN,EAlZ/D9lL,GAAA8lL,GAAe,WAAY3kO,EAAA,UAAA4kO,EAAA,GAAA,YACpB7+N,EAAG2+N,SAAU9mO,KAAA+mO,OAqZZ9lL,GAAK8lL,GAAO,KAIpB5+N,EAAG0+N,aAAa7hN,eAAehlB,KAAKihD,GACpC94C,EAAGsS,WAAY,EAlZtBtY,EAAA8F,GAAA,qBAAqBpK,MAAAopO,aAAA9+N,EAAA0+N,aAAAC,SAAA3+N,EAAA2+N,UAAApoO,KAAA,aAqZnB,SAnZMoK,OAuSjB,GAAIX,GAAKC,IAGTD,GAAGs+N,aAAc,EACjBt+N,EAAGsS,WAAY,EAlZftS,EAAG0+N,eAoZH,IAnZI3pN,GAAa5a,EAAAgG,uBACbgS,EAAS4C,EAAIJ,gBAAAxC,SAqZjBnS,GAAGgoB,qBACCC,aAAc,qBAlZflP,GAAA,IAECkP,aAAa,oBACblP,GAAA,IAqZAkP,aAAc,iCACdlP,GAAI,IAhZR/Y,EAAAkoB,cACIC,YAAW,cAoZXC,UAnZW,EACXC,KAAA,MAqZAF,YAAa,sBAlZdC,UAAY,EACXC,KAAG,OAqZHF,YAAa,uBACbC,UAAW,EAlZZC,KAAA,OAEAF,YAAQ,iCACPC,UAAU,EAoZVC,KAAM,OAjZPF,YAAQ,6CACPC,UAAU,EACVC,KAAI,OAqZJF,YAAa,mBACbC,UAAW,EAlZZC,KAAA,OAIHroB,EAAGu+N,iBAAmBA,EAqZtB5xG,kIAvDJv4H,QACKC,OAAO,mBAlZRe,WAAW,qBAAWipO,MAwgB9B,WACI,YAOA,SAASU,GAAsBt0N,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,GAClH,GAAI6F,GAAKC,IAlZTD,GAAAsU,SAAS,KAoZTtU,EAAGgT,YAnZC,EAoZJhT,EAAG+S,WAnZS,EAoZZ/S,EAAGsS,WAnZS,EAoZZva,EAnZO2c,SAAA,CAoZUva,GAAsBgG,sBAjZvCH,GAAAg/N,mBAAS,WACLz8N,IACAA,EAAA08N,eAAAj/N,EAAAynN,IAAAwX,gBAEA3iN,EAAGrN,MAAkB1M,EAAA08N,iBAuZzBj/N,EAAG0R,OAnZC,WACA4K,EAAAiB,QAAA,+IA4XRnpB,QACKC,OAnZM,mBAoZNe,WAnZG,wBAAA2pO,MA6aZ,WACI,YAOA,SAASG,GAAkBnnO,EAAYyC,EAAQH,EAASN,EAAOC,EAAQG,EACnEsQ,EAAQxQ,EAASQ,EAAS48D,EAAY5vC,EAAsB2lD,EAAqB7yE,GA4EjF,QArZI2X,KAEAlS,EAAAgpB,aAAShpB,EAAA+U,cAAAkU,MACVxB,EAAAw+D,mBAAAjmF,EAAAgpB,cAAAvqB,KAAA,SAAAC,GACU,MAAAA,EAAAlI,QACV27B,QAAAC,IAAA1zB,EAAAhJ,MACUsK,EAAA0pB,UACV1pB,EAAAm/N,0BAAA3kO,EAAAyC,OAAAyB,EAAAhJ,MAAA6yN,UAAA,EAAA6W,cAAA,IACUp/N,EAAAm/N,0BAAAhkO,QAAA,IAsZWd,EAAQ8C,OAAO,UAAW,4BAA8B9F,WAAW,EAAM+F,KAAM,OApZtFpD,EAAA8F,GAAgB/H,EAAAyE,iBAEPwD,EAAAqpB,aACfrpB,EAAAq/N,wBAAc7kO,EAAAyC,OAAAyB,EAAAhJ,MAAA6yN,UAAA,EAAA6W,cAAA,IAsZDp/N,EAAGq/N,wBAAwBlkO,QAAU,IACrCd,EAAQ8C,OAAO,UAAW,8CAAgD9F,WAAW,EAAM+F,KAAM,OApZ1GpD,EAAA8F,GAAA/H,EAAAyE,iBAENwD,EAAAs/N,eACEt/N,EAAUu/N,wBAAA/kO,EAAAyC,OAAAyB,EAAAhJ,MAAA6yN,UAAA,EAAA6W,cAAA,IACDp/N,EAAAu/N,wBAAsBpkO,QAAA,IAC1Bd,EAAc8C,OAAA,UAAgB,2CAAA9F,WAAA,EAAA+F,KAAA,OACjCpD,EAAA8F,GAAA/H,EAAAyE,kBAGVwD,EAAAw/N,2BAAwBhlO,EAAAyC,OAAAyB,EAAAhJ,MAAA6yN,UAAA,IACxBvoN,EAAwBw/N,2BAAArkO,QAAA,IACJd,EAAA8C,OAAA,UAAA,sCAAA9F,WAAA,EAAA+F,KAAA,OACFpD,EAAO8F,GAAA/H,EAAAyE,iBAwZZwD,EAAGsS,WAAY,GAIfva,EAAW2I,YAAY,QAAS,yBAA0B,QAlZlE,SAAQC,GACJ5I,EAAG2I,YAAkB,QAAA,mBAAA,SAyZjC,QAAS++N,GAAwBh7I,EAAOz7D,GACpCvB,EArZiB4+D,mBAAA5B,EAAAz7D,GAAAvqB,KAAA,SAAAC,GACb,GAAuB,MAAvBA,EAAWlI,OAAY,CAsZfwJ,EAAG+c,sBAAwBre,EAAIhJ,KAAKmnB,eACpC7c,EAAGid,WAAa,CAChB,KAAK,GAAI/hB,KAAK8E,GAAG+c,sBAAuB,CAjZxC,GAkZI/c,EAAG+c,sBAAsB7hB,GAAG4hB,OAASngB,KAAKC,MAAMoD,EAAG+c,sBAAsB7hB,GAAG4hB,QApZvF9c,EAAA8c,OAAsB9c,EAAA+c,sBAAqB7hB,GAAA4hB,OAElBnnB,QAAlBqK,EAAA+c,sBAAkB7hB,GAAAgiB,UAAAvnB,QAAAqK,EAAA+c,sBAAA7hB,GAAAiiB,IAAA,CAsZV,GAAIC,GAAgBpd,EAAG+c,sBAAsB7hB,GAAGmiB,MApZjDrd,GAAA+c,sBAAA7hB,GAAAoV,OAAA,EAAA,IAAAtQ,EAAA+c,sBAAA7hB,GAAA,SAAA,IAAA8E,EAAA+c,sBAAA7hB,GAAA,IAAA,EAAA,KAAA,GAEH,KAAA,GAAW2c,KAAK7X,GAAA0/N,QACjB1/N,EAAc0/N,QAAI7nN,GAAAsF,MAAAnd,EAAA+c,sBAAA7hB,GAAAiiB,MACdnd,EAAY+c,sBAAY7hB,GAAAiiB,IAAAnd,EAAA0/N,QAAA7nN,IA0Z3B,IAAK,GAAI1N,KAAKnK,GAAG8c,OApZlB9c,EAAAknD,KAAYlnD,EAAA8c,OAAA3S,GAAA48C,MAEX,KAAA/mD,EAAAknD,KACDlnD,EAAA2/N,QAAA,EAuZK3/N,EAAG2/N,QAAS,EAGpB,IAAK,GAAI3pM,KAAKh2B,GAAG+c,sBAAuB,CApZ7C,GAAAO,GAAAtd,EAAA+c,sBAAAiZ,GAAA1lB,KACKtQ,GAAAid,YAAkBK,EA2ZlB,GAzZK3nB,QAAV+I,EAAUhJ,KAAA+5D,eAAA,IAAA/wD,EAAAhJ,KAAA+5D,gBAsZDzvD,EAAG4/N,WAAW/nO,MAAOg9B,SAAUn2B,EAAIhJ,KAAK+5D,gBACxCzvD,EAAG6/N,cAAchoO,MAAOg9B,SAAUn2B,EAAIhJ,KAAKoqO,kBAE3C9/N,EAAG0pB,SAAU,CApZxB1pB,EAAA0c,8BAAoBhe,EAAAhJ,KAAAknB,kBACf,KAAA,GAAA1hB,KAAA8E,GAAA0c,8BACK1c,EAAA0c,8BAAoBxhB,GAAA6kO,OAAApqO,QAAAqK,EAAA0c,8BAAAxhB,GAAA6kO,WAGpB//N,GAAG0c,8BAAqBhe,EAAAhJ,KAAAknB,kBAGnC5c,GAAWsS,WAAU,MAuZbva,GArZO2I,YAAc,QAAA,yBAAA,QAwZ7B,SAASC,GACL5I,EAAW2I,YArZW,QAAA,mBAAA,SAyZlC,QAASs/N,GAAUltN,GACf9S,EAAGynN,OACHznN,EAAGykF,MAAQ3xE,EAAIq+C,MACfnxD,EAAGynN,IAAI+C,MAAQ13M,EAAIoqN,MACnBl9N,EAAGynN,IAAIwY,SAAW,GAAIxmN,MAAK3G,EAAI2pN,aAC/Bz8N,EAAGynN,IAAIyY,QArZS,GAAGzmN,MAAA3G,EAAA28L,WAsZnBzvM,EAAGynN,IAAIl4J,MAAQz8C,EArZIy8C,MAsZnBvvD,EAAGynN,IAAIzkH,SArZSlwF,EAAAkwF,QAsZhB,KAAK,GAAI9nG,KAAK8E,GAAGkoB,YACTloB,EAAGkoB,YAAYhtB,GAAGmtB,OAASvV,EAAIka,WApZ/BhtB,EAAAynN,IAAA0Y,UAAcngO,EAAAkoB,YAAAhtB,GAAAitB,YAwZtB,KAAK,GArZEjtB,KAAA8E,GAAAgoB,mBACAhoB,EAAAgoB,mBAAU9sB,GAAA6d,KAAAjG,EAAAga,iBAsZT9sB,EAAGynN,IAAI2Y,eAAiBpgO,EAAGgoB,mBAAmB9sB,GAAG+sB,aAGzDwxM,GAAsB3mN,EAAI0pN,SAAU,aApZxC,IAAAniN,GAAS,GAAQZ,MACT+0M,EAAAn0M,EAAO2B,UACPyyM,EAAAp0M,EAAW82B,WAAA,EACXu9K,EAAAr0M,EAAS65B,aACTs6K,GAAA,KAsZAA,EAAK,IAAMA,GAnZfC,EAAO,KACHA,EAAA,IAAMA,GAuZVp0M,EAAQq0M,EAAO,IAAMD,EAAK,IAAMD,EAChC/jN,EAAO4P,MAAQA,CApZnB,IAAAs0M,GAAS,GAAAl1M,MAAYY,GACdu0M,EAAM,GAAAn1M,MAAA3G,EAAA2pN,YACN7N,GAAAD,IAAW3uN,EAAA0pB,UAAA1pB,EAAAqpB,cACXhvB,EAAA8C,OAAa,UAAA,sEAsZR9F,WAAW,EACX+F,KAAM,OAnZX4C,EAAAgT,YAAM,GAENhT,EAAAgT,YAAa,CAEjB,IAAAqtN,GAAOp5N,KAAWq5N,IAAA3R,EAAA9rB,UAAA+rB,EAAA/rB,UACjB7iM,GAAGynN,IAAA8Y,WAAMt5N,KAAA0nK,KAAA0xD,EAAA,OAGbZ,EAAwBz/N,EAAAykF,MAAAzkF,EAAAgpB,cAwCxB,QAAGuyM,KAGA,GAFCv7N,EAAAo0G,aAAc33G,MACV1E,EAAA2I,YAAA,UAAA,yBAAA,OACLV,EAAAqpB,YAAA,CACCrpB,EAAA4/N,cACI5/N,EAAA4/N,WAAA/nO,MACLg9B,SAAA70B,EAAAo0G,aAAA33G,KACCijD,KAAc1/C,EAAAo0G,cAwZV,IAAIh2G,GAAW,GAAIH,SACnB,KAAK,GAAI/C,KAAK8E,GAAG4/N,WArZtBxhO,EAAeF,OAAA,aAAA8B,EAAA4/N,WAAA1kO,GAAAwkD,KAEdj4B,GAAW2/D,iBAAAhpF,EAAA4B,EAAAykF,MAAAzkF,EAAAgpB,cAAAvqB,KAAA,SAAAC,GACL,MAAAA,EAAAlI,QACPuB,EAAA2I,YAAA,UAAA,wBAAA,OACcV,EAAAsS,WAAA,EACFtS,EAAA4/N,aAAA/qM,SAAAn2B,EAAAhJ,QAEZqC,EAAA2I,YAAA,QAAA,yBAAA,QAGO,SAAAC,GACP5I,EAAA2I,YAAA,QAAA,mBAAA,aAGCV,GAAM4/N,cACP5/N,EAAA4/N,WAAA/nO,MACCg9B,SAAa70B,EAAAo0G,aAAA33G,KACbijD,KAAW1/C,EAAAo0G,cAGXp0G,GAAAo0G,gBAyZJ,QAASosH,KAnZN,GAoZMxgO,EAAGo0G,aAAa33G,MACjB1E,EAAW2I,YAAY,UAAW,yBAA0B,OArZjEV,EAAAqpB,YAAmB,CAuZdrpB,EAAG6/N,iBArZX7/N,EAAA6/N,cAAAhoO,MAuZYg9B,SAAU70B,EAAGo0G,aAAa33G,KAC1BijD,KAAM1/C,EAAGo0G,cApZd,IAAAh2G,GAAc,GAAAH,SACjB,KAAA,GAAA/C,KAAA8E,GAAqB6/N,cACjBzhO,EAAOF,OAAY,OAAM8B,EAAA6/N,cAAc3kO,GAAAwkD,KAwZvCj4B,GAtZoB4/D,WAAAjpF,EAAA4B,EAAAykF,MAAAzkF,EAAAgpB,cAAAvqB,KAAA,SAAAC,GACb,MAAAA,EAAAlI,QACCuB,EAAA2I,YAAwB,UAAQ,wBAAoB,OACpDV,EAAM6/N,gBAAIhrM,SAAAn2B,EAAAhJ,OACXsK,EAAAsS,WAAA,GAwZKva,EAAW2I,YAAY,QAAS,yBAA0B,QAnZlE,SAASC,GAuZL5I,EAAW2I,YAAY,QAAS,mBAAoB,aAnZ7DV,GAAA6/N,iBAuZC7/N,EAAG6/N,cAAchoO,MACbg9B,SAAU70B,EAAGo0G,aAAa33G,KArZ7BijD,KAAA1/C,EAAAo0G,cAyZLp0G,GAAGo0G,gBAGP,QAASqlH,GAtZUgH,EAAwBliO,GAuZvC6uE,EAtZmBkB,qBAAWmyJ,GAAAhiO,KAAA,SAAAC,GAuZ1B,GAtZe,MAAXA,EAAAlI,OAAW,CACXwJ,EAAA48N,aAAMl+N,EAAAhJ,IAuZN,KAAK,GAAIwF,KAAK8E,GAAG48N,aArZlB58N,EAAA48N,aAAA1hO,GAAAy9C,YAAA34C,EAAA48N,aAAA1hO,GAAAykI,YAAA,IACA3/H,EAAA48N,aAAe1hO,GAAAmuL,YAAA,IAAArpL,EAAA48N,aAAA1hO,GAAAouL,mBAAA,IAAAtpL,EAAA48N,aAAA1hO,GAAAusD,SAAA,IACfznD,EAAY48N,aAAA1hO,GAAAkxE,aAAA,MAAApsE,EAAA48N,aAAA1hO,GAAAquL,eAyZXhrL,SAEAxG,GAtZQ2I,YAAO,QAAA,IACXrJ,WAAG,EACH+F,KAAA,QAyZT,SAASuD,GACR5I,EAAW2I,YAtZU,QAAO,IAuZxBrJ,WAAW,EACX+F,KAAM,SAMlB,QAASu+N,GAtZU7oN,GAuZf,GAAIre,GAAM,EACVA,GAAMsD,EAAW8D,SAAW,iBAAmBiX,EAAI25K,SACnDhyL,EAtZO4E,KAAA5K,EAAS,UAyZpB,QAAS4uI,GAASvwH,EAAKrW,GACnB,GAAIhI,GAAM,EArZrB,IAAYuL,EAAAqpB,aAAA5sB,GAAAuD,EAAAs/N,eAAA7iO,EACThI,EAAAsD,EAAA8D,SAAA,oCAAAY,MAuZe,CACH,GAAImB,GAAO,GAAIC,OAAMiV,EAAI4sC,OAtZrC3hD,KAAA+U,EAAA4sC,KAAA3hD,MAEKtJ,IAAWC,OAAAwlB,KAAAxlB,OAAA4uI,WAAyBnpH,gBAAAvc,GAyZjCnD,EAAQ4E,KAAK5K,EAAK,UApZtB,QAAGuoB,GAAWlK,GAEX,GADA9S,EAAAid,WAAa,EACDtnB,QAAZmd,EAAAoK,UAAYvnB,QAAAmd,EAAAqK,IAAAA,IAAA,CACZ,GAAAC,GAAYtK,EAAAuK,MACfvK,GAAWxC,OAAU,EAAA,IAAAwC,EAAA,SAAA,IAAAA,EAAAqK,IAAA,IAAA,EAAA,KAAA,IAyZjB,IAAK,GAAIjiB,KAAK8E,GAAG+c,sBAAuB,CAtZzC,GAAAO,GAAqBtd,EAAA+c,sBAAY7hB,GAAAoV,KAC5BtQ,GAAAid,YAAOK,GAOf,QAAGojN,KACC,IAAA,GAAAxlO,KAAA8E,GAAA+c,sBAwZI/c,EAAG+c,sBAAsB7hB,GAAG4hB,OAASngB,KAAKqkB,UAAUhhB,EAAG+c,sBAAsB7hB,GAAG4hB,OAEpF,KAAK,GAAI5hB,KAAK8E,GAAG+c,sBACb/c,EAAG+c,sBAAsB7hB,GAAGiiB,IAAMnd,EAAG+c,sBAAsB7hB,GAAGiiB,IAAIA,GArZ9E,IAAAliB,IAwZYk2D,MAAOnxD,EAAGykF,MACVntD,aAAct3B,EAAGgpB,aAvZ7BnM,eAAA7c,EAAA+c,sBACYH,mBAAA5c,EAAA0c,+BA0ZAte,EAAW,GAAIH,SACnB,KAAK,GAAI/C,KAAK8E,GAAG4/N,WAvZhBxhO,EAAAF,OAAkB,aAAY8B,EAAA4/N,WAAiB1kO,GAAAwkD,KAEhD,KAAK,GAAAxkD,KAAA8E,GAAA6/N,cAyZDzhO,EAASF,OAAO,OAAQ8B,EAAG6/N,cAAc3kO,GAAGwkD,KArZjD,IADCthD,EAASF,OAAA,OAAAvB,KAAAqkB,UAAA/lB,IACV+E,EAAAqpB,YAAA,CACC,GAAA1W,GAAStY,EAAAsY,QAAA,qBACV,yDAAA3S,EAAAynN,IAAAl4J,MAAA,iJACUl4D,WAAA,EACV+F,KAAA,MAEAuV,GAAAjT,OAAAjB,KAAA,WACC,IAAS,GAAAvD,KAAA8E,GAAA4/N,WAyZG3kO,EAAIw0D,cAAgBzvD,EAAG4/N,WAAW1kO,GAAG25B,QAtZlD,KAAc,GAAA35B,KAAA8E,GAAA6/N,cACd5kO,EAAA6kO,eAAgC9/N,EAAK6/N,cAAA3kO,GAAA25B,QA0Z5BpN,GAAqB2+D,cAAcnrF,GAAKwD,KAAK,SAASC,GAC3B,MAAfA,EAAIlI,QAvZZuB,EAAA2I,YAAA,UAAA,yBAAA,OACAgR,IACE1R,EAAAsS,WAAA,GAEfva,EAAgC2I,YAAA,QAAA,yBAAA,QAGpB,SAAAC,GACH5I,EAAA2I,YAAA,QAAA,mBAAA,eAIT+mB,GAAcs+D,wBAAA3nF,GAAAK,KAAA,SAAAC,GACC,MAAAA,EAAAlI,QACLuB,EAAA2I,YAAA,UAAA,oBAAA,OACCgR,IACF1R,EAAAsS,WAAA,GA0ZQva,EAAW2I,YAAY,QAAS,yBAA0B,QArZ3E,SAAgBC,GAChB5I,EAAqB2I,YAAA,QAAA,mBAAA,SA8ZxB,QAxZQgR,KAyZJ1R,EAxZGgT,YAAA,EAyZHhT,EAAGkU,YACHlU,EAAG+c,yBACH/c,EAAG0c,iCACH1c,EAxZG4/N,cAyZH5/N,EAAG6/N,iBACH3tN,IAj2BJ,GAAAlS,GAASC,IAqZTD,GAAGqU,kBAlZChJ,MAAA,IAEAA,MAAA,KAEAA,MAAG,KAqZHA,MAAS,KAjZbA,MAAS,MAqZTrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAAc,EAlZjBvU,EAAAwU,qBAAyB,SAAUC,GAoZ3BzU,EAAGuU,YAAcE,GAGzBzU,EAAG2gO,cACH3gO,EAAG4/N,cACH5/N,EAAG48N,gBACH58N,EAAG6/N,iBACH7/N,EAAG0c,iCACH1c,EAAGsS,WAAY,EACftS,EAAGgT,YAnZQ,EAoZXhT,EAAG+S,WAAY,EACf/S,EAAGyxD,QAAS,EACZ15D,EAAW2c,SAAU,EAlZ5B1U,EAAA+U,cAAY5a,EAAAgG,uBACTH,EAAAggO,UAAAA,EAoZIhgO,EAAG27N,YAAcA,EACjB37N,EAAGu7N,aAAeA,EAnZtBv7N,EAAAwgO,QAAAA,EAqZIxgO,EApZCqjI,SAAOA,EAqZRrjI,EApZC0R,OAAWA,EAqZZ1R,EAAGgd,MAAQA,EAlZfhd,EAAA0pB,SAA6C,GAApC1vB,EAAAvE,OAAmBC,KAAQE,OAChCoK,EAAAqpB,YAAS,GAAArvB,EAAAvE,OAAAC,KAAAE,OACToK,EAAGs/N,cAAW,GAAAtlO,EAAAvE,OAAAC,KAAAE,OACdoK,EAAG0gO,mBAAaA,EAChBxuN,IACAlS,EAAG0/N,UAAYviN,IAAA,IAAAA,IAAA,IAAAA,IAAA,KAAAA,IAAA,KACfnd,EAAAkoB,cACIC,YAAa,cAqZTC,UAAW,EAnZhBC,KAAA,MAEKF,YAAM,sBAqZNC,UAAW,EAnZfC,KAAA,OAsZIF,YAAa,uBACbC,UAAW,EAnZhBC,KAAS,OAuZJF,YAAa,iCACbC,UAAW,EACXC,KAAM,OAlZlBF,YAAA,6CAqZYC,UAAW,EACXC,KAAM,OAnZNF,YAAA,mBACPC,UAAW,EAsZJC,KAAM,OAlZdroB,EAAAgoB,qBAA0BC,aAAY,qBAAgBlP,GAAA,IAAAkP,aAAwB,oBAAAlP,GAAA,IAC1EkP,aAAK,iCAAAlP,GAAA,IA6iBT/Y,EAAGkkB,KAAO,WACNlkB,EAAGgT,YAAa,GAGpBvI,EAAOuqG,YArZY,SAAU74G,GAsZrBA,IACA6D,EAAGo0G,aArZKj4G,EAAAsN,OAAqBiE,MAAK,KAyZ1C1N,EAAG4gO,eAAiB,SAAS9tN,GACzB,GAAI1T,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,kDACbE,WAAY,wBACZC,aAAc,KApZlB+H,KAAA,KACRoC,SAAA,SAsZYC,UAAU,EACVyQ,SArZZ3N,MAAA,WACY,MAAAuQ,MAKJ1T,GAAKM,OAAAjB,KAAA,SAAAq1D,GAuZD,IAAK,GAAI54D,KAAK8E,GAAG0c,8BACT1c,EAAG0c,8BAA8BxhB,GAAG2lO,WAAa/tN,EAAI+tN,YArZlE7gO,EAAc0c,8BAAAxhB,GAAA+jO,eAAAnrK,IAGb,eAomBJ9zD,EAAGkU,UAAY,WAvZXlU,EAAA8gO,wBAAA1sN,iBA2ZJpU,EAAG25E,WAxZW,WAyZV35E,EAxZGsS,WAAA,CAyZH,IAxZIrX,IACAk2D,MAAAnxD,EAAAykF,MACAntD,aAAMt3B,EAAAgpB,aA4ZVvB,GAxZU6/D,wBAAArsF,GAAAwD,KAAA,SAAAC,GAyZN,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAG8Z,cAAgBpb,EAAIhJ,KAvZhCsK,EAAAsS,WAAwB,CACrB,IAAA2D,GAAcnf,SAAAijB,cAAA,IAyZRjjB,UAASC,KAAKijB,YAAY/D,GAC1BA,EAAEgE,MAAQ,eAvZb,IAAOrc,GAAA,GAAAC,OAAAa,EAAAhJ,OACZqI,KAAA,oBAEAtJ,EAAAC,OAAqBwlB,IAAAC,gBAAsBvc,EACnCnD,GAAQ4E,KAAA5K,EAAA,UAyZRsD,EAxZI2I,YAAgB,UAAA,eAAA,uBACC,OAAjBhC,EAAOlI,QAyZXuB,EAxZW2I,YAAA,OAAA,uCAAsDrJ,WAAgB,EAAA+F,KAAA,OAyZjF4C,EAAGsS,WAxZY,IA0Zfva,EAAW2I,YAxZW,QAAA,kBAAWrJ,WAAA,EAAA+F,KAAA,OAyZjC4C,EAAGsS,WAAY,IAGpB,SAAS3R,GACR5I,EAAW2I,YAxZK,QAAe,iBAAWrJ,WAAA,EAAA+F,KAAA,OAyZ1C4C,EAAGsS,WAAY,6LA1f3Ble,QACKC,OAAO,mBACPe,WAAW,oBAAqB8pO,MAggBzC,WACI,YAOA,SAAS6B,GAAoBt2N,EAAQ1S,EAAYiC,EAAQD,EAAOS,EAAQH,EAASklE,GAyB7E,QAASh0D,MAKT,QAASohH,KACL3sH,EAAGsS,WAAY,EACfitD,EAAYC,aAxZW/gE,KAAO,SAAGC,GAyZV,MAAfA,EAAIlI,QACJwJ,EAAGy/D,SAxZS/gE,EAAGhJ,KAyZfsK,EAAGsS,WAxZY,GA0Zfva,EAAW2I,YAxZI,QAAS,yBAAA,SA0Z7B,SAASC,GACR5I,EAxZQ2I,YAAc,QAAG,YAAA,UA4ZjC,QAAS+mF,KACLznF,EAAGsS,WAAY,EACftS,EAAGoqD,gBACHmV,EAAYkoB,mBAAmBznF,EAAG2+I,aAAa51H,QAAQtqB,KAAK,SAASC,GAvZlD,MAwZXA,EAxZIlI,QAyZJwJ,EAAGvE,SAxZQiD,EAAAhJ,KAyZXsK,EAAGsS,WAxZU,GA2Zbva,EAxZW2I,YAAA,QAAA,yBAAA,SA0ZhB,SAASC,GACR5I,EAAW2I,YAAY,QAAS,YAAa,UAIrD,QAASsgO,GAAWrlO,GAChBqE,EAAGoqD,aAAezuD,EAGtB,QAASgsF,KACL3nF,EAAGsS,WAAY,EACfitD,EAAYooB,oBAAoB3nF,EAAG2+I,aAAa51H,OAAQ/oB,EAAGvE,UAAUgD,KAAK,SAASC,GAvZ/D,MAAfA,EAAAlI,QAAekI,EAAAhJ,MACjBsK,EAAMsS,WAAA,EACNva,EAAY2I,YAAA,UAAA,6BAAA,SAER3I,EAAW2I,YAAa,QAAA,yBAAA,SAE5B,SAAIC,GACJ5I,EAAI2I,YAAe,QAAA,YAAA,UA+U1B,GAAIV,GAAKC,IACTlI,GAAW2c,SAxZQ,EAyZnB1U,EAAGsS,WAAY,EAGftS,EAAGihO,aAEHjhO,EAAGynF,mBAAqBA,EACxBznF,EAAGghO,WAAaA,EAChBhhO,EAAG2nF,oBAAsBA,EAvZzB3nF,EAAAuL,OAASA,EA0ZTohH,IAGA3sH,EAAG2vH,YAxZa,WAyZZllH,EAAO4F,WAxZS,iCA2ZpBrQ,EAAGg3D,UAAY,WACXvsD,EAAO4F,WAAW,mHA1B1Bjc,QACKC,OAAO,oBACPe,WAAW,sBAAuB2rO,MAkF3C,WACI,YAOA,SAxZQG,GAAennO,EAAAhC,EAAAyC,EAAAH,EAAAF,EAAAyX,EAyZnBgpC,EAxZmBysB,GAobnB,QAASn1D,KAvZNN,EAAkB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACD,MAAbA,EAAAlI,QAyZKwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,GAtZnBjY,EAAAwH,MAAA,QAAA,yBAAA,qBA0ZD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,sBAInD,QAxZQikD,GAAWhwD,GAyZf,GAxZIA,EAAA,CACAkK,EAAAmhO,IAAA9sM,SAAiB,KACjBr0B,EAAA68C,kBACA78C,EAAA8zF,WACA,IAAA74F,IACAnF,UAAMA,EAEN8kD,GAAUgC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GACD,MAATA,EAASlI,QACLwJ,EAAO68C,eAAWn+C,EAAAhJ,MACdsK,EAAO68C,eAAA1hD,OAAA,EAyZHd,EAAQ8C,OAAO,UAAW,6DACtB9F,WAAW,EACX+F,KAAM,OApZX4C,EAAAmmD,eAAA,EA0ZHnmD,EAAGsS,WAAY,GAtZxBjY,EAAWwH,MAAA,QAAA,yBAAA,mBA0ZP,SAAUlB,GAvZZtG,EAAAwH,MAAe,QAAA,mBAAA,wBAIhB7B,GAAGmhO,IAAA9sM,SAAa,KAChBr0B,EAAG68C,kBAyZH78C,EAAG8zF,YAMX,QAASstI,GAAatrO,EAAWguD,GAC7B9jD,EAAGsS,WAxZC,CAyZJ,IAAIrX,IACAnF,UAAWA,EACXguD,WAxZYA,EAyZZ1jD,SAAUF,EAxZKG,OA0ZnBgnE,GAxZgBS,mBAAW7sE,GAAYwD,KAAS,SAAAC,GAyZzB,MAAfA,EAAIlI,QAtZJwJ,EAAA8zF,SAAcp1F,EAAAhJ,KAOdsK,EAAAsS,WAAS,GA0ZTjY,EAAQwH,MAAM,QAAS,yBAA0B,kBAEtD,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,mBAMnD,QAxZQwnH,GAAGv2G,GA0ZP,GAAI7X,IACAnF,UAAWgd,EAAIhd,UAvZfguD,WAAIhxC,EAAWgxC,WACfu9K,eAAcvuN,EAAGuuN,eAyZjBjqM,WAxZItkB,EAASskB,WAyZbkqM,gBAAiBxuN,EAAIwuN,gBAvZrB3tN,WAAAzT,EAAqBG,OA0ZzBgnE,GAxZgBK,mBAAWzsE,GAAYwD,KAAA,SAAWC,GAyZ1CA,EAAIhJ,KAxZIke,aAAG,GAyZX7b,EAxZW2I,YAAY,UAAAhC,EAAAhJ,KAAAme,QAAA,gCAyZvButN,EAxZWtuN,EAAAhd,UAAAgd,EAAAgxC,cA0ZX/rD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gCAClDutN,EAAatuN,EAAIhd,UAAWgd,EAAIgxC,cAGrC,SAAUnjD,GACT5I,EAxZG2I,YAAA,iCA8ZX,QAAS6gO,GAAezuN,GAvZpB,GAAGH,GAAAtY,EAAesY,QAAA,UAyZd,4CACItb,WAAW,EAvZd+F,KAAA,MA0ZLuV,GAxZQjT,OAAIjB,KAAA,WAyZR,GAxZIxD,IACAomO,eAAcvuN,EAAGuuN,eAyZjBvrO,UAxZOgd,EAAAhd,UAyZPguD,WAxZWhxC,EAAAgxC,WAyZX1jD,SAxZQF,EAAGG,OA0ZfgnE,GAxZiBO,mBAAA3sE,GAAAwD,KAAA,SAAAC,GACbA,EAAAhJ,KAAAke,aAAA,GACG7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,gCACHutN,EAAWtuN,EAAAhd,UAAqBgd,EAAIgxC,cA2ZhC/rD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,gCAClDutN,EAAatuN,EAAIhd,UAAWgd,EAAIgxC,cAGrC,SAxZCnjD,GACA5I,EAAM2I,YAAA,mCA+ZlB,QAxZQ8gO,KACJ,GAAiB7rO,QAAjBqK,EAAMojD,cAA6C,GAAvBpjD,EAAAojD,aAAuBjoD,OAAA,CA0Z/C,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAGojD,aAvZhBC,EAAAxrD,KAASmI,EAAKojD,aAAMloD,GAAA+7B,QAErBj3B,GAACi3B,QAAGosB,EAAA3vB,MA0ZJ,IAxZGz4B,IACCnF,UAAWkK,EAAAmhO,IAAMt/M,gBAAW/rB,UAC5BguD,WAAU9jD,EAAKmhO,IAAA9sM,SAAAyvB,WAyZf7sB,QAASj3B,EAAGi3B,QAvZhBnjB,UAAc5T,EAAOG,OAEzBgnE,GAAkBI,kBAAAxsE,GAAAwD,KAAA,SAAAC,GAyZNA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,qBAvZrDutN,EAAKphO,EAAAmhO,IAAAt/M,gBAAA/rB,UAAAkK,EAAAmhO,IAAA9sM,SAAAyvB,YACb9jD,EAAAojD,aAAa,MAERrrD,EAAA2I,YAAoB,QAAAhC,EAAAhJ,KAAAme,QAAA,sBAIxB,SAAIlT,GACD5I,EAAA2I,YAAc,qCA4ZjBrG,GAAQ8C,OAAO,UAAW,8BACtB9F,WAAW,EACX+F,KAAM,OAlMlB,GAxZI4C,GAAIC,IA0ZRD,GAAGqU,kBAxZgBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAyZnBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAxZc,EAyZjBvU,EAAGwU,qBAxZgB,SAAAC,GAyZfzU,EAAGuU,YAAcE,GAGrBzU,EAAGsS,WAxZK,EAyZRtS,EAAG8lD,qBAxZsBA,EAyZzB9lD,EAAGohO,aAxZcA,EAyZjBphO,EAAGwhO,aAxZaA,EAyZhBxhO,EAAGqpH,UAxZSA,EAyZZrpH,EAAGuhO,eAxZeA,EAyZlBvhO,EAAG8zF,YACH/7F,EAxZW2c,SAAA,CA2ZX,IAAIxU,GAAa/F,EAAsBgG,uBAMnCgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,sJAjCJ9d,QACKC,OAAO,wBACPe,WAAW,sBAAuB8rO,MAgN3C,WACI,YAOA,SAASO,GAAoB1nO,EAAOhC,EAAYyC,EAAQH,EAASF,EAAuByX,EACpFgpC,EAxZqBysB,GAsbrB,QAASn1D,KACLN,EAxZI8P,eAAqBvP,GAAwB1T,KAAA,SAAeC,GAC5C,MAwZZA,EAxZIlI,QAyZJwJ,EAAG2hB,YAxZKjjB,EAAWhJ,KAyZnBsK,EAAGsS,WAxZK,GA0ZRjY,EAAQwH,MAxZG,QAAA,yBAAA,qBA0ZhB,SAAUlB,GACTtG,EAAQwH,MAAM,QAAS,mBAAoB,sBAInD,QAASikD,GAAqBhwD,GAC1B,GAAIA,EAAW,CACXkK,EAAGmhO,IAAI9sM,SAAW,KAClBr0B,EAAG68C,kBAvZX78C,EAAS0hO,eAEF,IAAAzmO,IACAnF,UAAAA,EAEA8kD,GAAagC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GACG,MAAhBA,EAAAlI,QACHwJ,EAAA68C,eAAAn+C,EAAAhJ,MAyZiBsK,EAAG68C,eAAe1hD,OAAS,EAvZjCd,EAAW8C,OAAA,UAAA,6DACf9F,WAAwB,EAyZX+F,KAAM,OApZhB4C,EAAAmmD,eAAA,EAENnmD,EAAAsS,WAAiB,GA0ZTjY,EAAQwH,MAAM,QAAS,yBAA0B,mBAtZ7D,SAAAlB,GACQtG,EAAIwH,MAAA,QAAgB,mBAAA,wBA4ZxB7B,GAAGmhO,IAxZC9sM,SAAc,KAyZlBr0B,EAAG68C,kBACH78C,EAAG0hO,gBAIX,QAAShwN,KACL1R,EAAGmhO,IAAIt/M,gBAxZY,KAyZnB7hB,EAAGmhO,IAAI9sM,SAxZQ,KAyZfr0B,EAAG2hO,cAxZK,KA4ZZ,QAASC,GAxZM9rO,EAAYguD,GAyZvB,GAAI7oD,IACAnF,UAAWA,EAvZZguD,WAASA,EACR1jD,SAAAF,EAAWG,OA0ZfgnE,GAAmBE,sBAAsBtsE,GAAKwD,KAAK,SAAUC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAG0hO,aAAehjO,EAAIhJ,KACtBsK,EAAGsS,WAAY,EACVtS,EAAG6xD,OApZxB7xD,EAAA2hO,cAAA,KAyZoB3hO,EAAG6hO,gBACH7hO,EAAG6xD,OAAQ,GALXiwK,EAAkBhsO,EAAWguD,IAjZjCzpD,EAAAwH,MAAA,QAAuB,yBAAA,qBA2Z5B,SAAUlB,GAxZZtG,EAAAwH,MAAA,QAAoB,mBAAoB,sBA8Z7C,QAASigO,GAAkBhsO,EAAWguD,GAxZnC,GAAA7oD,IA0ZKnF,UAAWA,EAxZhBguD,WAAAA,EACA1jD,SAAaF,EAAAG,OAEbgnE,GAASC,oBAAArsE,GAAAwD,KAAA,SAAAC,GA0ZJ,GAAmB,MAAfA,EAAIlI,OAAgB,CAEpB,GAAI6wI,GAAO3oI,EAAIhJ,IACf,IAAIgJ,EAAIhJ,KAAKyF,OAAS,EAxZ/B,GAAcksI,GAAA7sI,EAAW++C,OAAA76C,EAAAhJ,KAAA,YA4ZhB,IAAI4xI,GAAOtnI,EAAG0hO,YAvZfttO,SAAAyO,QAAWykI,EAAA,SAAA/yG,EAAAC,GA0ZNpgC,QAAQyO,QAAQwkI,EAAM,SAAUl8E,EAAQC,GAChC72B,EAAO1B,YAAcs4B,EAAOt4B,WAC5Bw0G,EAAK/xG,OAAO81B,EAAM,OAI9BprD,EAAGyzF,SAAW4zC,EACdrnI,EAAG6hO,aAAernO,EAAO++C,OAAOv5C,EAAGyzF,SAAU,aAxZzCzzF,EAAA6hO,aAAA1mO,OAAA,GACTd,EAAY8C,OAAA,UAAA,oBAAA6C,EAAAmhO,IAAAt/M,gBAAAS,aACHjrB,WAAa,EACb+F,KAAA,OA4ZJ4C,EAzZGsS,WAAA,MA2ZHjY,GAAQwH,MAAM,QAAS,yBAA0B,qBAEtD,SAzZClB,GA0ZAtG,EAAQwH,MAAM,QAAS,mBAAoB,sBAMnD,QAzZIwnH,GAAYv2G,GA2ZZ,GAAI7X,IACAnF,UAzZOgd,EAAAhd,UA0ZPguD,WAAYhxC,EAAIgxC,WAChBi+K,eAzZOjvN,EAAAivN,eA0ZPT,gBAzZexuN,EAAAwuN,gBA0Zf3tN,WAAYzT,EAAWG,OAE3BgnE,GAzZeM,oBAAqB1sE,GAAAwD,KAAa,SAAAC,GA0ZzCA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iCAvZvD+tN,EAAW9uN,EAAMhd,UAAAgd,EAAAgxC,cA2Zd/rD,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iCAClD+tN,EAAa9uN,EAAIhd,UAAWgd,EAAIgxC,cAtZxC,SAAYnjD,GACR5I,EAAQ2I,YAAW,iCA+Z3B,QAzZO6gO,GAAczuN,GA0ZjB,GAzZIH,GAAAtY,EAAWsY,QAAY,UA0ZvB,4CACItb,WAAW,EACX+F,KAAM,MAvZzBuV,GAAYjT,OAAAjB,KAAA,WACT,GAAAxD,IA0ZgB8mO,eAAgBjvN,EAAIivN,eACpBjsO,UAAWgd,EAAIhd,UAzZ/BguD,WAAAhxC,EAAAgxC,WACY1jD,SAAAF,EAAAG,OA4ZAgnE,GAAmBQ,oBAAoB5sE,GAAKwD,KAAK,SAAUC,GACnDA,EAAIhJ,KAAKke,aAAc,GAzZlC7b,EAAoB2I,YAAO,UAAYhC,EAAQhJ,KAAAme,QAAS,iCAC7D+tN,EAAsB9uN,EAAAhd,UAAoBgd,EAAAgxC,cAGvC/rD,EAAqB2I,YAAc,QAAEhC,EAAShJ,KAAQme,QAAS,iCACpD+tN,EAAG9uN,EAAgBhd,UAAAgd,EAAAgxC,cA8ZtB,SAAUnjD,GACT5I,EAAW2I,YAAY,mCApZnC,QAAG8gO,KACA,GAAW7rO,QAAXqK,EAAA2hO,eAAW,GAAA3hO,EAAA2hO,cAAAxmO,OAAA,CA4ZN,GAAIkoD,KACJ,KAAK,GAAInoD,KAAK8E,GAAG2hO,cAzZrBt+K,EAAAxrD,KAAamI,EAAA2hO,cAAAzmO,GAAsBk8B,WA4Z/Bp3B,GAAGo3B,WAAaisB,EAAI3vB,MAEpB,IAAIz4B,IACAnF,UAAWkK,EAAGmhO,IAAIt/M,gBAAgB/rB,UAzZ1CguD,WAAY9jD,EAAAmhO,IAAA9sM,SAAsByvB,WACtC1sB,WAAAp3B,EAAAo3B,WACStjB,UAAO5T,EAAAG,OAERgnE,GAAmBG,oBAAKvsE,GAAAwD,KAAA,SAAAC,GACjBA,EAAAhJ,KAAAke,aAAkB,GAClB7b,EAAY2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,qBACZ7T,EAAA6xD,OAAA,EACH+vK,EAAc5hO,EAAAmhO,IAASt/M,gBAAA/rB,UAA0BkK,EAAAmhO,IAAA9sM,SAAAyvB,aAEtD/rD,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,sBA8ZX,SAAUlT,GAzZZ5I,EAAA2I,YAAqB,qCAItBrG,GAAG8C,OAAW,UAAA,8BACV9F,WAAM,EACN+F,KAAA,OAuKZ,GAAI4C,GAxZIC,IA0ZRD,GAAGqU,kBAxZiBhJ,MAAa,IAAAA,MAAU,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA;GAyZ3CrL,EAAGsU,SAxZQtU,EAAAqU,gBAAa,GAyZxBrU,EAAGuU,YAxZS,EAyZZvU,EAAGwU,qBAxZS,SAAAC,GAyZRzU,EAAGuU,YAxZSE,GA2ZhBzU,EAAGsS,WAxZK,EAyZRtS,EAAG8lD,qBAxZuBA,EAyZ1B9lD,EAAG4hO,aAxZaA,EAyZhB5hO,EAAGwhO,aAAeA,EAClBxhO,EAAGqpH,UAxZSA,EAyZZrpH,EAAGuhO,eAxZiBA,EAyZpBvhO,EAAG6hO,gBACH9pO,EAAW2c,SAxZC,EAyZZ1U,EAAG6xD,OAAQ,EACX7xD,EAAG0R,OAAQA,CAGX,IAAIxR,GAAa/F,EAxZUgG,uBA8ZvBgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,sJAnCJ9d,QACKC,OAAO,wBACPe,WAxZO,sBAAeqsO,MAypB/B,WACI,YAOA,SAASO,GAAoBjoO,EAAOhC,EAAYyC,EAAQH,EAASg2E,EAAwBt+D,EAAgB5X,EAAuByX,EAC5HipC,EA1Z0BF,EAAAG,EAAAE,EAAAinL,EAAAC,GAyb1B,QAAShwN,KACLN,EA1ZsBwpE,wBAAS38E,KAAA,SAA0BC,GA2ZlC,MAAfA,EAAIlI,SAzZTwJ,EAAAg/H,oBAAetgI,EAAAhJ,KACdsK,EAAAsS,WAAc,IA4Zf,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BAI5D,QA1ZIyhO,GAAAjmL,EAAA/kC,GACUxhB,QAANumD,GACAl8C,EAAAoiO,gBAAe,KACfpiO,EAAAsgI,mBACAtgI,EAAAglD,YAAgB,KAChBhlD,EAAAk7C,WACAl7C,EAAAyW,gBAAqB,KACrBzW,EAAA8V,eA2ZA9V,EAAG29C,iBAAmB,KAzZ1B39C,EAAA47C,gBACI57C,EAAA69C,oBAAa,KA2Zb79C,EAAGo8C,mBACHp8C,EAAG82C,aA1Zc,KA2ZjB92C,EAAGizB,YACHrhB,EA1Ze4pE,yBAA8Bt/B,GAASz9C,KAAA,SAAAC,GACjC,MAAjBA,EAAAlI,SA2ZIwJ,EAAGsgI,gBAAkB5hI,EAAIhJ,KACrBsK,EAAGsgI,gBAAgBnlI,OAAS,EAzZ/Bd,EAAK8C,OAAA,UAAA,iCAAA6C,EAAAqiO,wBAAAxmL,cACHxkD,WAAY,EA2ZP+F,KAAM,OAGN+Z,GACAA,IAvZhBnX,EAAAsS,WAAA,IA4ZG,SA1ZO3R,GA2ZN5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAIxDV,EAAGoiO,gBA1ZgB,KA2ZnBpiO,EAAGsgI,mBACHtgI,EAAGglD,YA1ZW,KA2ZdhlD,EAAGk7C,WAzZHl7C,EAAAyW,gBAAmB,KA2ZnBzW,EAAG8V,eACH9V,EAAG29C,iBA1ZgB,KA2ZnB39C,EAAG47C,gBACH57C,EAAG69C,oBAAsB,KACzB79C,EAAGo8C,mBACHp8C,EAAG82C,aA1ZK,KA2ZR92C,EAAGizB,aAOX,QAASy2B,GAAO62E,EAAehiI,GACN5I,QAAjB4qI,GACAvgI,EAAGglD,YAAc,KACjBhlD,EAAGk7C,WAzZXl7C,EAASyW,gBAAe,KAChBzW,EAAG29C,iBAAgB,KACnB39C,EAAA47C,gBACA57C,EAAA69C,oBAAU,KACV79C,EAAAo8C,mBA2ZAp8C,EAAG82C,aA1Za,KA2ZhB92C,EAAGizB,YAzZH4nB,EAAiBI,eAAAx8C,KAAA,SAAAC,GA2ZM,MAAfA,EAAIlI,QAzZRwJ,EAAMk7C,QAAAx8C,EAAAhJ,KACNsK,EAAAsS,WAAkB,EAClB/T,GACAA,KA4ZIxG,EAAW2I,YAAY,QAAS,yBAA0B,0BAE/D,SA1ZSC,GA2ZR5I,EA1ZI2I,YAAW,QAAY,mBAAoB,2BA4ZnD4hO,EA1ZW/hG,KA6ZXvgI,EAAGglD,YAAc,KACjBhlD,EAAGk7C,WACHl7C,EAAGyW,gBAAkB,KACrBzW,EA1ZG29C,iBAAe,KA2ZlB39C,EAAG47C,gBACH57C,EAAG69C,oBAAsB,KACzB79C,EAAGo8C,mBACHp8C,EA1ZC82C,aAAA,KACD92C,EAAAizB,aA+ZR,QAASqvM,GAAa/hG,GAClBlwD,EAAuBI,sBAAsB8vD,GAAe9hI,KAAK,SAAUC,GACpD,MAAfA,EAAIlI,QACJwJ,EAAGuiO,aAAe7jO,EAAIhJ,KACtBsK,EAAGsS,WAAY,GAxZtBva,EAAA2I,YAAA,QAAA,yBAAA,mBA4ZE,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASqqD,GAAWxsD,GAzZxBwT,EAAS8D,mBAA2BpX,KAAA,SAAoBC,GAC9B,MAAtBA,EAAAlI,QACSwJ,EAAA8V,YAAApX,EAAAhJ,KA4ZGsK,EAAGsS,WAAY,EA1ZxB/T,GACWA,KAEXxG,EAAA2I,YAAuB,QAAe,yBAAA,YA6ZlC,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAvZ5D,QAAGsqD,GAAe30C,EAAA0mC,EAAAx+C,GACf,GAAY5I,QAAZ0gB,EAAY,CACZ,GAAApb,IACAygD,sBAAeqB,EACP1mC,UAAUA,EAElBrW,GAAQ29C,iBAAA,KA4ZH39C,EAAG47C,gBACH57C,EAAG69C,oBAAsB,KA1Z7B79C,EAAAo8C,mBA4ZIp8C,EAAG82C,aAAe,KAClB92C,EAAGizB,YACH0nB,EAAoBgB,uBAAuB1gD,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,SACJwJ,EAAG47C,aAAel9C,EAAIhJ,KA1ZtBsK,EAAA47C,aAAAzgD,OAAsB,GACtCd,EAAA8C,OAAA,UAAA,kCAAA6C,EAAAyW,gBAAAC,aACgBrf,WAAA,EACZ+F,KAAuB,OAGZ4C,EAAAsS,WAAY,EACZ/T,GACKA,WAgaZyB,GAAG29C,iBAAmB,KACtB39C,EAAG47C,gBA1ZX57C,EAAS69C,oBAAqB,KACtB79C,EAAAo8C,mBACAp8C,EAAG82C,aAAe,KAClB92C,EAAGizB,YAiaX,QA3ZQg4B,GAAqB/O,EAAA39C,GACT5I,QA2ZZumD,GACAl8C,EAAG69C,oBA3ZQ,KA4ZX79C,EAAGo8C,mBACHp8C,EAAG82C,aA3ZS,KA4ZZ92C,EAAGizB,YACH6nB,EA3ZsBqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GA4ZC,MAAfA,EAAIlI,SACJwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KACrBsK,EA3ZGo8C,gBAAAjhD,OAAA,GACHd,EAAG8C,OAAA,UAAgB,gCAAA6C,EAAA29C,iBAAA9B,cA4ZfxkD,WAAW,EA1ZhB+F,KAAA,OA8ZH4C,EAAGsS,WAAY,EA1ZpB/T,GACSA,SAKZyB,EAAG69C,oBAAiB,KACpB79C,EAAGo8C,mBA4ZHp8C,EAAG82C,aAAe,KAClB92C,EAAGizB,aAIX,QA3ZOi4B,GAAcr5B,EAAAtzB,GACC5I,QAAfk8B,GA4ZC7xB,EAAG82C,aAAe,KAClB92C,EAAGizB,YACH+nB,EAAgBsB,2BAA2BzqB,GAAepzB,KAAK,SAAUC,GA1ZxE,GAAa,MAAbA,EAAAlI,OAAwB,CACnB,GAAA6wI,GAAA3oI,EAAAhJ,KAEM4xI,EAAAtnI,EAAAuiO,YA6ZJnuO,SAAQyO,QAAQykI,EAAM,SAAU/yG,EAAQC,GA1ZpDpgC,QAAmByO,QAAAwkI,EAAA,SAA2Bl8E,EAAKC,GAC5B72B,EAAK0kB,WAAAkS,EAAAzM,aACjB2oF,EAAe/xG,OAAI81B,EAAA,OA+ZlBprD,EAAGizB,SAAWo0G,EAzZXrnI,EAAA6xD,MAoaC7xD,EAAG6xD,OAAQ,EAnaZ7xD,EAAAizB,SAAe93B,OAAA,GACfd,EAAQ8C,OAAA,UAAA,+BAAA6C,EAAA69C,oBAAAlsB,iBA4ZCt6B,WAAW,EA1ZxB+F,KAAA,OAmaC4C,EAAGsS,WAAY,EA1ZtB/T,GACKA,SAKVyB,EAAA82C,aAAmB,KACf92C,EAAAizB,aA+ZR,QAASvhB,KACL1R,EAAGqiO,wBAA0B,KAC7BriO,EAAGoiO,gBA3ZK,KA4ZRpiO,EAAGsgI,mBACHtgI,EAAGglD,YAAc,KACjBhlD,EAAGk7C,WACHl7C,EAAGyW,gBA3ZiB,KA4ZpBzW,EAAG8V,eACH9V,EAAG29C,iBA3ZiB,KA4ZpB39C,EAAG47C,gBACH57C,EAAG69C,oBAAsB,KACzB79C,EAAGo8C,mBACHp8C,EAAG82C,aA3ZQ,KA4ZX92C,EAAGizB,YACHjzB,EAAGuiO,gBAKP,QAASl5G,GAAUv2G,GAEf,GAAI7X,IACAslI,cA3ZYztH,EAAMytH,cA4ZlBhX,WAAYz2G,EAAIy2G,WA1ZjB+3G,gBAAexuN,EAAAwuN,gBACd3tN,WAAQzT,EAAeG,OA6Z3BgwE,GAAuBE,sBAAsBt1E,GAAKwD,KAAK,SAAUC,GACzDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,oBACpDyuN,EAAaxvN,EAAIytH,iBAxZrBxoI,EAAM2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,oBACNyuN,EAAexvN,EAAAytH,iBA8ZhB,SA3ZC5/H,GACA5I,EAAA2I,YAAuB,iCA+Z/B,QAAS6gO,GA3ZczuN,GA4ZnB,GAAIH,GA3ZItY,EAAAsY,QAAA,UA4ZJ,4CACItb,WA3ZG,EACH+F,KAAA,MA6ZRuV,GAAQjT,OAAOjB,KAAK,WAChB,GAAIxD,IA1ZLsuH,WAAez2G,EAAAy2G,WACdgX,cAAWztH,EAAYytH,cA4ZnBngI,SAAUF,EAAWG,OAEzBgwE,GAAuBG,sBAAsBv1E,GAAKwD,KAAK,SAAUC,GACzDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,oBA1Z3D7T,EAAA6xD,OAAe,EACN7xD,EAAA69C,qBACVqN,EAAAlrD,EAAA69C,oBAA4ChsB,eA8ZpCywM,EAAaxvN,EAAIytH,iBAxZrBxoI,EAAA2I,YAAoB,QAAAhC,EAAAhJ,KAAAme,QAAA,oBACpByuN,EAAexvN,EAAAytH,iBA8ZhB,SAAU5/H,GA1Zb5I,EAAA2I,YAAmB,mCAka3B,QAAS8gO,KACL,GAAuB7rO,QAAnBqK,EAAG82C,cAAuD,GAA1B92C,EAAG82C,aAAa37C,OAAa,CAE7D,GAAIkoD,KACJ,KA3ZG,GAAAnoD,KAAU8E,GAAA82C,aACTuM,EAAAxrD,KAAAmI,EAAW82C,aAAY57C,GAAA4jD,UA6Z3B9+C,GAAGggB,OAASqjC,EAAI3vB,MAEhB,IAAIz4B,IACAslI,cAAevgI,EAAGoiO,gBAAgB7hG,cA1ZrCvgH,OAAAhgB,EAAAggB,OACElM,UAAA5T,EAAiBG,OAEpBgwE,GAAUC,mBAAAr1E,GAAAwD,KAAA,SAAAC,GACLA,EAAIhJ,KAAQke,aAAA,GACT7b,EAAQ2I,YAAc,UAAGhC,EAAAhJ,KAAAme,QAAA,oBA4ZzB7T,EAAG6xD,OAAQ,EA1ZhB3G,EAAiBlrD,EAAA69C,oBAAAhsB,eAEhBywM,EAAMrnO,EAAAslI,gBAGNxoI,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,qBA+ZhB,SA3ZSlT,GA4ZR5I,EA3ZI2I,YAAW,qCA+ZnBrG,GA3ZQ8C,OAAA,UAAW,mCA4Zf9F,WAAW,EACX+F,KAAM,OA/XlB,GAAI4C,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SA1ZMtU,EAAAqU,gBAAA,GA2ZTrU,EAAGuU,YA1ZY,EA2ZfvU,EAAGwU,qBA1ZQ,SAAiBC,GA2ZxBzU,EAAGuU,YA1ZIE,GA6ZXzU,EAAGsS,WAAY,EACftS,EAAGizB,YACHl7B,EAAW2c,SAAU,EAErB1U,EAAG0R,OA1ZIA,EA2ZP1R,EAAGqpH,UA1ZWA,EA2ZdrpH,EAAG6xD,OA1ZK,EA2ZR7xD,EAAGuhO,eA1ZiBA,EA2ZpBvhO,EAAGwhO,aA1ZeA,EA2ZlBxhO,EAAGmiO,eAAiBA,EACpBniO,EAAG0pD,OA1ZCA,EA2ZJ1pD,EAAG+qD,WA1ZaA,EA2ZhB/qD,EAAGgrD,qBA1ZSA,EA2ZZhrD,EAAGirD,yBA1Z2BA,EA2Z9BjrD,EAAGkrD,qBAAuBA,CAC1B,IAAIhrD,GAAa/F,EAAsBgG,sBACvC+R,KA4WA+vN,EA3ZSh+N,MAAA,MA4ZTi+N,EA3ZQ,IAAQM,UAAkB,2GA4ZlCN,EA3ZY,IAAAO,UAAW,kZAa3BruO,QACKC,OAAO,wBACPe,WAAW,sBA1ZmB4sO,MA2yBvC,WACI,YAOA,SAASU,GAAoB3oO,EAAOhC,EAAYyC,EAAQH,EAASqgD,EAAoBwlC,EAAwBnuE,EAAgB5X,EAAuByX,EA3ZpJipC,EAAAF,EAAAG,EAAAE,EAAAinL,EAAAC,GAgCI,QAAAhwN,KA6ZIN,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACrBsK,EAAGsS,WAAY,GA1ZvBjY,EAAAwH,MAAA,QAAuB,yBAA6B,qBA8ZjD,SA5ZQlB,GA6ZPtG,EA5ZOwH,MAAA,QAAY,mBAAA,sBAia3B,QAASqwG,GAAcp8G,GACnB,GAAiBH,QAAbG,EAAwB,CA3ZhCkK,EAASglD,YAAe,KAChBhlD,EAAAk7C,WAEAl7C,EAAG29C,iBAAkB,KACrB39C,EAAG47C,gBACH57C,EAAG69C,oBAAU,KACb79C,EAAGo8C,mBACHp8C,EAAG82C,aAAc,KACjB92C,EAAGizB,YACHjzB,EAAGuiO,eAEH7nL,GAAGmQ,iBAAkB/0D,GAAA,GAAA2I,KAAA,SAAAC,GACH,MAAfA,EAAAlI,QAEHwJ,EAAAk7C,QAAAx8C,EAAuBhJ,KACfsK,EAAAsS,WAAe,GAEfva,EAAO2I,YAAgB,QAAS,yBAAG,0BA8ZxC,SAAUC,GACT5I,EAAW2I,YA5ZO,QAAA,mBAAA,2BA8ZtB4hO,EAAaxsO,OAGbkK,GAAGglD,YAAc,KACjBhlD,EAAGk7C,WAEHl7C,EAAG29C,iBAAmB,KACtB39C,EA5ZG47C,gBA6ZH57C,EAAG69C,oBA5ZY,KA6Zf79C,EAAGo8C,mBACHp8C,EAAG82C,aAAe,KAClB92C,EA5ZCizB,YACDjzB,EAAGuiO,gBAiaX,QA5ZQD,GAAGxsO,GA6ZPoqF,EA5ZOI,sBAAmBxqF,GAAA2I,KAAA,SAAAC,GACJ,MAAfA,EAAAlI,QACAwJ,EAAAuiO,aAAA7jO,EAAsBhJ,KACtBsK,EAAAsS,WAAA,GAEAva,EAAW2I,YAAA,QAAA,yBAAA,mBA8Zf,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAoB5D,QAASsqD,GA5ZWl1D,EAAAinD,EAAA1mC,EAAA9X,GA6ZhB,GAAa5I,QAATonD,EA5ZW,CA6ZX,GAAI9hD,IACAnF,UAAWA,EA3ZZugB,UAAUA,EACT2mC,MAAAD,EAEJ/8C,GAAA29C,iBAAa,KA6Zb39C,EAAG47C,gBACH57C,EA5ZC69C,oBAAA,KACD79C,EAAGo8C,mBACHp8C,EAAG82C,aAAU,KACb92C,EAAGizB,YACHjzB,EAAGuiO,gBACH7nL,EAAkBwC,sBAAAjiD,GAAAwD,KAAA,SAAAC,GACf,MAAAA,EAAAlI,SACAwJ,EAAA47C,aAAkBl9C,EAAAhJ,KAClBsK,EAAA47C,aAAezgD,OAAA,GACfd,EAAW8C,OAAA,UAAA,kCAAA6C,EAAAglD,YAAA6U,yBA6ZExiE,WAAW,EACX+F,KAAM,OAzZrB4C,EAAAsS,WAAa,EAClB/T,GACYA,WAiaRyB,GAAG29C,iBAAmB,KA3ZvB39C,EAAA47C,gBACC57C,EAAA69C,oBAAuB,KA6ZvB79C,EAAGo8C,mBACHp8C,EAAG82C,aAAe,KAClB92C,EAAGizB,YA3ZXjzB,EAASuiO,gBAgaT,QAASt3K,GA5ZwB/O,EAAA39C,GAClB5I,QA4ZPumD,GACAl8C,EAAG69C,oBA5ZK,KA6ZR79C,EAAGo8C,mBACHp8C,EAAG82C,aA5ZI,KA6ZP92C,EAAGizB,YACHjzB,EAAGuiO,gBA3ZJznL,EAAeqB,yBAAAD,GAAAz9C,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,SA6ZHwJ,EAAGo8C,gBAAkB19C,EAAIhJ,KACrBsK,EAAGo8C,gBAAgBjhD,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,gCAAkC6C,EAAG29C,iBAAiB9B,cA3Z3FxkD,WAAqB,EACT+F,KAAA,OAGT4C,EAAAsS,WAAW,EA6ZH/T,GA3ZTA,SAKHyB,EAAG69C,oBAAW,KACd79C,EAAAo8C,mBA6ZAp8C,EAAG82C,aA5ZS,KA6ZZ92C,EAAGizB,YACHjzB,EAAGuiO,iBAOX,QAASr3K,GA5ZWr5B,EAAAtzB,GACA5I,QA4ZZk8B,GACA7xB,EAAG82C,aAAe,KAClB92C,EAAGizB,YACHjzB,EAAGuiO,gBACHvnL,EA5ZCsB,2BAAAzqB,GAAApzB,KAAA,SAAAC,GACE,GAAmB,MAAnBA,EAAAlI,OAAmB,CACnB,GAAA6wI,GAAe3oI,EAAAhJ,KAEf4xI,EAAAtnI,EAAkBuiO,YAElBnuO,SAAWyO,QAAAykI,EAAA,SAAA/yG,EAAAC,GA6ZFpgC,QAAQyO,QAAQwkI,EAAM,SAAUl8E,EAAQC,GAChC72B,EAAO0kB,WAAakS,EAAOzM,aAC3B2oF,EAAK/xG,OAAO81B,EAAM,OAxZtCprD,EAAAizB,SAAco0G,EAEXrnI,EAAA6xD,MAqaS7xD,EAAG6xD,OA5ZO,EARnB7xD,EAAeizB,SAAA93B,OAAA,GACJd,EAAA8C,OAAA,UAAA,+BAAA6C,EAAA69C,oBAAAlsB,iBACdt6B,WAAuB,EACX+F,KAAW,OAQf4C,EAAGsS,WAAY,EACX/T,GACAA,SAKZyB,EAAG82C,aAAA,KACH92C,EAAGizB,YACHjzB,EAAGuiO,iBAgaX,QAAS7wN,KA3ZT1R,EAAAqiO,wBAA8B,KAC1BriO,EAAAmhO,IAAIt/M,gBAAiB,KA6ZrB7hB,EAAGsgI,mBACHtgI,EAAGglD,YA5ZI,KA6ZPhlD,EAAGk7C,WAGHl7C,EAAG29C,iBA5ZS,KA6ZZ39C,EAAG47C,gBACH57C,EAAG69C,oBAAsB,KACzB79C,EAAGo8C,mBACHp8C,EAAG82C,aA5Za,KA6ZhB92C,EAAGizB,YACHjzB,EAAGuiO,gBAKP,QAASl5G,GAAUv2G,GACf,GAAI7X,IACAnF,UAAWgd,EA5ZChd,UA6ZZyzH,WAAYz2G,EA5ZIy2G,WA6ZhB+3G,gBAAiBxuN,EA5ZGwuN,gBA6ZpB3tN,WAAYzT,EA5ZQG,OA8ZxB6/E,GAAuBE,sBAAsBnlF,GAAKwD,KAAK,SAAUC,GACzDA,EAAIhJ,KAAKke,aAAc,GACvB7b,EA5ZS2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,oBA6ZTyuN,EA5ZWxvN,EAAAhd,aA+ZXiC,EA5ZO2I,YAAY,QAAAhC,EAAAhJ,KAAAme,QAAA,oBA6ZnByuN,EA5ZQxvN,EAAAhd,aA+Zb,SAAU6K,GACT5I,EAAW2I,YAAY,iCAI/B,QAAS6gO,GAAezuN,GACpB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAC1B,4CA3ZCtb,WAAS,EACX+F,KAAA,MAEHuV,GAAGjT,OAAAjB,KAAA,WACA,GAAAxD,IACAsuH,WAAUz2G,EAAAy2G,WACVzzH,UAAAgd,EAAkBhd,UAClBsK,SAAcF,EAAAG,OAEd6/E,GAAeG,sBAAAplF,GAAAwD,KAAA,SAAAC,GACfA,EAAAhJ,KAAAke,aAAsB,GACtB7b,EAAkB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,oBAClB7T,EAAA6xD,OAAe,EACJ7xD,EAAA69C,qBACXqN,EAAelrD,EAAA69C,oBAAAhsB,eA8ZNywM,EAAaxvN,EAAIhd,aAzZxBiC,EAAe2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,oBACpByuN,EAAAxvN,EAAAhd,aAGI,SAAY6K,GACZ5I,EAAA2I,YAAqB,mCAma7B,QAAS8gO,KACL,GA5ZW7rO,QA4ZPqK,EAAG82C,cA5ZI,GAAA92C,EAAA82C,aAAA37C,OAAA,CA8ZP,GA5ZIkoD,KA6ZJ,KAAK,GAAInoD,KAAK8E,GAAG82C,aACbuM,EAAIxrD,KAAKmI,EAAG82C,aAAa57C,GAAG4jD,UA1ZhC9+C,GAAAggB,OAAWqjC,EAAA3vB,MA8ZX,IAAIz4B,IACAnF,UAAWkK,EAAGmhO,IAAIt/M,gBAAgB/rB,UA3ZrCkqB,OAAAhgB,EAAAggB,OACDlM,UAAU5T,EAAgBG,OA8Z1B6/E,GA5ZeC,mBAAAllF,GAAAwD,KAAA,SAAAC,GACXA,EAAMhJ,KAAAke,aAAA,GA6ZF7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,oBA3ZxD7T,EAAO6xD,OAAK,EACZ3G,EAAMlrD,EAAA69C,oBAAAhsB,eACNywM,EAAgBrnO,EAAAnF,YA+ZZiC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,qBAIvD,SA5ZQlT,GA6ZP5I,EA5ZW2I,YAAA,qCAgafrG,GA5ZQ8C,OAAA,UAAiB,mCA6ZrB9F,WAAW,EACX+F,KAAM,OAtVlB,GA5ZC4C,GAAOC,IA8ZRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GA3ZrCrU,EAAAuU,YAAS,EACLvU,EAAAwU,qBAAA,SAA4BC,GACxBzU,EAAAuU,YAAKE,GAGTzU,EAAGsS,WAAW,EACdtS,EAAGizB,YACHl7B,EAAG2c,SAAA,EA8ZH1U,EAAG0R,OAASA,EACZ1R,EAAGqpH,UAAYA,EA3ZfrpH,EAAG6xD,OAAA,EACH7xD,EAAGuhO,eAAWA,EACdvhO,EAAAwhO,aAAWA,EA6ZXxhO,EAAGkyG,cAAgBA,EA1ZnBlyG,EAAGgrD,qBAAYA,EACfhrD,EAAGirD,yBAAQA,EACXjrD,EAAGkrD,qBAAiBA,CACpB,IAAGhrD,GAAA/F,EAAegG,uBAMfgS,EAAAhY,EAAuBgG,uBAAAwU,gBAAAxC,SAC1BD,KA0tBA+vN,EA5ZYh+N,MAAW,MA6ZvBi+N,EAAe,IAAOM,UAAY,2GAClCN,EAAe,IAAOO,UAAY,uaArWtCruO,QACKC,OAAO,wBA1Zfe,WAAY,sBAAAstO,MAowBb,WAEI,YAQA,SAAS3sG,GA5Zeh8H,EAAGhC,GA6avB,QAASk5I,GA5ZchpE,GA6ZnB,MAAOluE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCosE,EAAclzE,GAK5F,QAAS4tO,GA5ZS16J,GA6Zd,MAAOluE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiC9G,GAG7E,QAAS28I,GAAaR,GAClB,MAAOn3I,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCq1I,EAAWn8I,GAzZ3F,QAAA08I,GAAsBtF,GA6ZlB,MAAOpyI,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCswI,EAAWp3I,GAGxF,QAASu8I,GAAgBngD,GA3ZhC,MAAYp3F,GAAAgnE,KAAAhpE,EAAA8D,SAAA,gCAAAs1F,EAAAp8F,GA8ZH,QAAS6tO,GAAyBC,GAChC,MAAO9oO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCosE,aAAclzE,GAtC5FkL,KAAKyxI,aA5ZOA,EA6ZZzxI,KAAKwxI,cAAgBA,EACrBxxI,KAAKqxI,gBA5ZGA,EA6ZRrxI,KAAKgxI,gBA5ZeA,EA6ZpBhxI,KAAK0iO,iBA5ZWA,EA8ZhB1iO,KAAK2iO,yBA5ZWA,CA+ZhB,IAAI7tO,IACAoN,SACIi/D,MA5ZQrpE,EAAWqK,QA0Y/BhO,QACKC,OAAO,oCACP8U,QA5ZO,mBAAgB4sH,GA8Z5BA,EA5ZgB10D,SAAM,QAAA,iBA4c1B,WAEI,YAQA,SA7ZOyhK,GAAY/oO,EAAAhC,GA6af,QAASgrO,GAAwB96J,GAC7B,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA0C9G,GA1ZrF,QAAIiuO,GAAY/6J,GAChB,MAAAluE,GAAAupE,IAAAvrE,EAAA8D,SAAA,4CAAA9G,GAgaA,QA7ZQkuO,GAAmBC,GA8ZvB,MAAOnpO,GA7ZIgnE,KAAAhpE,EAAkB8D,SAAA,2BAAAqnO,EAAAnuO,GAgajC,QAASouO,GA7ZiBD,GA8ZtB,MAAOnpO,GAAMitE,IAAIjvE,EAAW8D,SAAW,2BAA4BqnO,EAAmBnuO,GAG1F,QAASquO,GAAwBv6M,GAC7B,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,4BAA8BgtB,EAAI9zB,GA7bhFkL,KAAGgjO,qBAAWA,EACdhjO,KAAAkjO,sBAAqBA,EA8ZrBljO,KAAKmjO,wBAA0BA,EA5Z/BnjO,KAAG8iO,wBAASA,EACZ9iO,KAAG+iO,yBAAYA,CAIf,IAAGjuO,IA8ZCoN,SA5ZDi/D,MAAArpE,EAAuBqK,QA4Y9BhO,QA5ZIC,OAAG,2BACH8U,QAAG,wBAAuB25N,GA+Z9BA,EAAsBzhK,SAAW,QAAS,iBAyC9C,WAEI,YAQA,SAAS1mB,GA7ZG5gD,EAAmBhC,GAsb3B,QAASk4I,KACL,MAAOl2I,GAAMupE,IAAIvrE,EAAW8D,SAAW,qBAAsB9G,GAGjE,QA7ZIg7I,KA8ZA,MA7ZIh2I,GAAQupE,IAAAvrE,EAAgB8D,SAAA,yBAAA9G,GAgahC,QAASo7F,GA7ZMloB,GA8ZX,MAAOluE,GA7ZCupE,IAAAvrE,EAAW8D,SAAY,wBAAS9G,GAga5C,QA7ZQsuO,GAAWp7J,GA8Zf,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,0BAA2B9G,GAGtE,QAAS47I,GAAgB/1D,GACrB,MAAO7gF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kBAAmB++E,EAAc7lF,GAG7E,QAAS27I,GAAiB91D,GACtB,MAAO7gF,GAAMitE,IAAIjvE,EAAW8D,SAAW,kBAAmB++E,EAAc7lF,GAG5E,QAASg5J,GAAsBnzE,GAC3B,MAAO7gF,GAAMupE,IAAIvrE,EAAW8D,SAAW,iCAAkC9G,GAG7E,QAAS2rJ,GAA6B73H,GAClC,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA2CgtB,EAAI9zB,GA1Z1F,QAASw7I,GAAA1nH,GACL,MAAI9uB,GAASouE,OAAApwE,EAAW8D,SAAA,mBAAAgtB,EAAA9zB,GAga5B,QAAS4mD,GA7Zc1gD,GA8ZnB,MAAOlB,GA7ZCgnE,KAAOhpE,EAAA8D,SAAA,kCAAAZ,EAAAlG,GAganB,QA7ZQy7I,GAAkB3nH,GA8ZtB,MA7ZO9uB,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,yBAAAgtB,KAAA9zB,GAgajC,QA7ZQ2hO,GAAc7gM,EAAAknB,EAAAumL,GA8ZlB,GA7ZI7uO,GAAGsD,EAAA8D,SAAe,wCAAAg6B,EAClB,UAAAknB,EAAmB,cAAAumL,CA+ZvB,OAAOvpO,GA7ZKupE,IAAG7uE,EAAAM,GAganB,QAASkkO,GA7Ze5iN,EAAW2mC,EAAAlnD,EAAA+hF,EAAAy4B,EAAAizH,GA8Z/B,MAAOxpO,GAAMupE,IAAIvrE,EA7ZS8D,SAAA,6BAAA/F,EAAA,UAAAknD,EAAA,cAAA3mC,EA8ZpB,YAAcwhE,EAAU,cAAgBy4B,EAAY,eAAiBizH,EAAYxuO,GAE3F,QAASq9G,GA7ZsBt8G,EAAAknD,EAAA3mC,EAAAwhE,EAAAy4B,GA8Z3B,MAAOv2G,GA7ZKupE,IAAIvrE,EAAA8D,SAAA,mCAAA/F,EAAA,UAAAknD,EAAA,cAAA3mC,EA8ZV,YA7ZUwhE,EAAA,cAAAy4B,EAAAv7G,GA4UpBkL,KAAK0wI,gBA7ZeA,EA8ZpB1wI,KAAKywI,iBA7ZWA,EA8ZhBzwI,KAAKswI,mBA7ZcA,EA8ZnBtwI,KAAKkwF,mBA7ZcA,EA8ZnBlwF,KAAKojO,oBA7ZcA,EA8ZnBpjO,KAAK8tJ,sBA7ZsBA,EA8Z3B9tJ,KAAKuwI,yBAA2BA,EAChCvwI,KAAK07C,uBA7ZqBA,EA8Z1B17C,KAAKgwI,oBA7ZkBA,EA8ZvBhwI,KAAK8vI,wBAA0BA,EAC/B9vI,KAAKy2N,gCA7ZgBA,EA8ZrBz2N,KAAKg5N,iBAAmBA,EACxBh5N,KAAKygJ,6BA7ZIA,EA8ZTzgJ,KAAKmyG,uBA7ZoBA,CAkazB,IAAIr9G,IACAoN,SA5ZIi/D,MAAGrpE,EAAeqK,QAkY9BhO,QACKC,OA7ZO,oCA8ZP8U,QA7ZO,sBAAkBwxC,GA+Z9BA,EA7Ze0mB,SAAe,QAAA,iBAuflC,WAEI,YAQA,SA7ZQ20D,GAAIj8H,EAAchC,GAiCtB,QAASu7I,GAAAr4I,GACL,MAAIlB,GAAAgnE,KAAAhpE,EAAiB8D,SAAW,yBAAAZ,EAAAlG,GAgapC,QA7ZQy+I,GAAkBv4I,GA8ZtB,MA7ZIlB,GAAAgnE,KAAAhpE,EAAgB8D,SAAA,2BAA+CZ,EAAAlG,GAgavE,QAAS2+I,GA7ZOz4I,GA8ZZ,MAAOlB,GA7ZKgnE,KAAIhpE,EAAU8D,SAAA,4BAAAZ,EAAAlG,GAga9B,QAAS6+I,GA7ZmB34I,GA8ZxB,MAAOlB,GAAMgnE,KAAKhpE,EA7ZM8D,SAAO,6BAAiCZ,EAAAlG,GAgapE,QAASmlF,GAAyBC,GAC9B,MAAOpgF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAA8Cs+E,EAAsBplF,GAGhH,QAASqlF,GA7ZenS,GA8ZpB,MAAOluE,GAAMupE,IA7ZGvrE,EAAO8D,SAAS,wBAAY9G,GAgahD,QAASslF,GA7ZyBpS,GA8Z9B,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAyB9G,GAGpE,QAAS09I,GA7ZYx7G,GA8ZjB,MAAOl9B,GAAMupE,IA7ZGvrE,EAAW8D,SAAA,yBAAAo7B,EAAAliC,GAga/B,QAASqiI,GA7ZsBngG,GA8Z3B,MAAOl9B,GA7ZKupE,IAAIvrE,EAAA8D,SAAA,4BAAAo7B,EAAAliC,GAgapB,QAASy/I,GAA0Bv9G,GAC/B,MAAOl9B,GAAMupE,IAAIvrE,EAAW8D,SAAW,sCAAwCo7B,EAASliC,GAG5F,QA7ZQ4uB,GAAc1oB,GA8ZlB,MA7ZOlB,GAAAgnE,KAAAhpE,EAAe8D,SAAA,oCAAAZ,EAAAlG,GAga1B,QAASw8E,GAASt2E,GA5ZlB,MAASlB,GAAAgnE,KAAShpE,EAAA8D,SAAA,6BAAAZ,EAAAlG,GAgalB,QA7ZOivB,GAAA/oB,GACH,MAAGlB,GAAAgnE,KAAchpE,EAAA8D,SAAA,6BAAAZ,EAAAlG,GAgarB,QAAS6xE,GAAM3rE,GA5ZX,MAAGlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,0BAAAZ,EAAAlG,GAga1B,QA7ZOmgJ,GAAkBrsH,GACrB,MAAG9uB,GAAAupE,IAAAvrE,EAAe8D,SAAA,gCAAAgtB,EAAA9zB,GAgatB,QAASgwB,GAAkB3sB,GACvB,MAAO2B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BzD,EAAQrD,GA1ZhF,QAASk+I,GAAel6H,GACpB,MAAIhf,GAAMupE,IAAAvrE,EAAA8D,SAAA,+BAAAkd,EAAAhkB,GAgad,QA7ZQm+I,GAAqBn6H,GA8ZzB,MA7ZIhf,GAAAupE,IAAYvrE,EAAW8D,SAAA,iCAAAkd,EAAAhkB,GAga/B,QA7ZQo+I,GAAap6H,GA8ZjB,MAAOhf,GA7ZCupE,IAAAvrE,EAAW8D,SAAY,kCAA6Bkd,EAAAhkB,GAgahE,QAASq+I,GA7ZMr6H,GA8ZX,MAAOhf,GA7ZCupE,IAAAvrE,EAAW8D,SAAY,mCAA2Bkd,EAAAhkB,GAS9D,QAASwkI,GAAA3+C,GACL,MAAI7gF,GAAAgnE,KAAUhpE,EAAQ8D,SAAQ,kBAAA++E,EAAA7lF,GAgalC,QAASopI,GA7ZSljI,GA8Zd,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,mBAAoBZ,EAAKlG,GAOpE,QA7ZQ0pI,GAAAxjI,GA8ZJ,MAAOlB,GA7ZKgnE,KAAIhpE,EAAK8D,SAAc,mBAAMZ,EAAAlG,GAua7C,QAASsiI,GA7ZwBp8H,GA8Z7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GA9I9EkL,KAAKo6E,8BA7Z4BA,EA8ZjCp6E,KAAKs5H,YA7ZMA,EA8ZXt5H,KAAKk+H,eA7ZMA,EA8ZXl+H,KAAKw+H,eA7ZiBA,EA8ZtBx+H,KAAKm6E,eA7ZMA,EA8ZXn6E,KAAKi6E,yBA7Z0BA,EA8Z/Bj6E,KAAKwyI,wBA7Z0BA,EA8Z/BxyI,KAAKqzI,kBA7ZcA,EA8ZnBrzI,KAAKuzI,oBA7ZkBA,EA8ZvBvzI,KAAKyzI,qBA7ZuBA,EA8Z5BzzI,KAAK2zI,sBA7ZmBA,EA8ZxB3zI,KAAKgzI,kBA7ZmBA,EA8ZxBhzI,KAAKizI,oBAAsBA,EAC3BjzI,KAAKkzI,qBAAuBA,EAC5BlzI,KAAKmzI,sBA7ZcA,EA8ZnBnzI,KAAKu0I,0BA7ZeA,EA8ZpBv0I,KAAK0jB,aA7ZeA,EA8ZpB1jB,KAAKsxE,SAAWA,EAChBtxE,KAAK8kB,kBAAoBA,EACzB9kB,KAAKi1I,+BAAiCA,EACtCj1I,KAAK+jB,SA7ZIA,EA8ZT/jB,KAAK2mE,MA7ZMA,EA8ZX3mE,KAAKm3H,2BA7ZwBA,EA8Z7Bn3H,KAAKo3H,iCA7ZqBA,CAga1B,IAAItiI,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAnChChO,QACKC,OA7ZO,oCA8ZP8U,QAAQ,kBAAmB6sH,GAEhCA,EAAgB30D,SAAW,QAAS,iBAsJxC,WAEI,YAQA,SAASxmB,GA7ZmB9gD,EAAahC,GAgbrC,QAAS2/I,KACL,MAAO39I,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA6B9G,GAGxE,QAASkmD,KACL,MAAOlhD,GAAMupE,IAAIvrE,EAAW8D,SAAW,sCAAuC9G,GAGlF,QAASqjJ,GA7ZcT,GA8ZnB,MAAO59I,GA7ZCgnE,KAAMhpE,EAAA8D,SAAA,4BAAA87I,EAAA5iJ,GAgalB,QAASojJ,GAAQR,GACb,MAAO59I,GAAMitE,IAAIjvE,EAAW8D,SAAW,4BAA6B87I,EAAK5iJ,GA1Z7E,QAAAkjJ,GAAepvH,GACf,MAAA9uB,GAAeouE,OAAOpwE,EAAY8D,SAAA,6BAAAgtB,EAAA9zB,GAgalC,QAASyuO,GAAWC,GAChB,MAAO1pO,GAAMouE,OAAOpwE,EAAW8D,SAAW,8BAA+B9G,GAG7E,QAASgjJ,GAA6BlvH,GA5Z1C,MAAA9uB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,mCAAAgtB,KAAA9zB,GAgaI,QA7ZQqhO,GAAAvtM,GACP,MAAQ9uB,GAAAupE,IAAAvrE,EAAoB8D,SAAA,6CAAAgtB,EAAA9zB,GAga7B,QAASgkO,GAAYjjO,EAAW+hF,EAASy4B,EAAWizH,GA5ZxD,MAASxpO,GAAAupE,IAAAvrE,EAAwB8D,SAAY,kCAAA/F,EAAA,YAAA+hF,EAAA,cAAAy4B,EAAA,eAAAizH,EAAAxuO,GAGzC,QAAKo9G,GAAkBr8G,EAAA+hF,EAAAy4B,GACvB,MAAKv2G,GAAAupE,IAAAvrE,EAAkB8D,SAAA,wCAAA/F,EAAA,YAAA+hF,EAAA,cAAAy4B,EAAAv7G,GAsWvBkL,KAAKm4I,uBAAyBA,EAC9Bn4I,KAAKk4I,QA7ZMA,EA8ZXl4I,KAAKg4I,UAAYA,EACjBh4I,KAAKy3I,0BA7ZaA,EA8ZlBz3I,KAAKujO,WA7ZOA,EA8ZZvjO,KAAKg7C,aA7ZeA,EA8ZpBh7C,KAAK83I,6BA7Z6BA,EA8ZlC93I,KAAKm2N,2BAA6BA,EAClCn2N,KAAK84N,YA7ZGA,EA8ZR94N,KAAKkyG,kBA7ZeA,CAgapB,IAAIp9G,IACAoN,SACIi/D,MAASrpE,EAAWqK,QArBhChO,QA5ZIC,OAAA,oCA8ZC8U,QA7ZO,6BAAmB0xC,GA+Z/BA,EA7ZsBwmB,SAAA,QAAA,iBA4d1B,WAEI,YAQA,SAAS6oE,GAAuBnwI,EAAOhC,GAjZnC,QAASghJ,GAAc99I,GACnB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAAAZ,EAAiClG,GAG7E,QAAS02I,GAAAxwI,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAAAZ,EAAiClG,GA+Z7E,QA7ZEmkJ,GAASj+I,GACP,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAAZ,EAAkClG,GA0Y9EkL,KAAK84I,gBAAkBA,EACvB94I,KAAKwrI,eAAiBA,EACtBxrI,KAAKi5I,kBAAoBA,CAGzB,IAAInkJ,IACAoN,SA5ZJi/D,MAASrpE,EAAaqK,QA+Y1BhO,QACKC,OAAO,oCACP8U,QAAQ,yBAA0B+gI,GAEvCA,EA7Za7oE,SAAgB,QAAc,iBAwb/C,WA3ZC,YAQG,SAAA7mB,GAAAzgD,EAAsBhC,GA8BlB,QAASwgJ,GAAAmrF,GACL,MAAO3pO,GAAMgnE,KAAIhpE,EAAW8D,SAAW,kBAAA6nO,EAA4B3uO,GAGvE,QAASmiJ,GAAAxhJ,GACL,GAAAX,IA8ZIoN,SACIi/D,MAASrpE,EAAWqK,OAzZvC,OA4ZWrN,GAAOoN,QAAQ,gBAAkBxM,OA5ZhCoE,EAAAgnE,KAAAhpE,EAAA8D,SAAA,sBAAAnG,EAAAX,GAIT,QAAAiqD,GAAA0kL,GACK,MAAO3pO,GAAAgnE,KAAAhpE,EAAA8D,SAAA,kBAAA6nO,EAAA3uO,GA+ZR,QAASg/I,GAAgB2vF,GA5Z7B,MAAA3pO,GAAoBgnE,KAAAhpE,EAAW8D,SAAS,uBAAA6nO,EAAA3uO,GAGpC,QAAKmpD,GAAkBwlL,GACvB,MAAK3pO,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,gCAAA6nO,KAAA3uO,GAGxB,QAAK+2I,GAAsBqB,GAC3B,MAAKpzI,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,iBAAAsxI,EAAAp4I,GAG7B,QAAKshJ,GAAAzhH,GACL,MAAK76B,GAAAgnE,KAAAhpE,EAA0B8D,SAAA,qBAAA+4B,EAAA7/B,GAG/B,QAAKyiJ,GAAA5iH,GACL,MAAK76B,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,qBAAA+4B,EAAA7/B,GAga7B,QAAS03D,GAAW5jC,GAChB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,mBAAqBgtB,EAAI9zB,GAGvE,QA7ZQ8hO,GAAoB8M,EAAA3jN,GA8ZxB,MAAOjmB,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAkC8nO,EAAY,WAAa3jN,EAAQjrB,GA1Z9G,QAASmhJ,GAAArtH,GACL,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,uBAAsBgtB,EAAA9zB,GAGjE,QAASsiJ,GAAAp8I,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,sBAAAZ,EAA0BlG,GAGrE,QAASykO,GAAAx5M,EAAmB++B,EAAAjpD,EAAc+hF,EAAAy4B,EAAAizH,GACtC,MAAOxpO,GAAMupE,IAAIvrE,EAAW8D,SAAW,qBAAA/F,EAAyB,aAAAipD,EAAA,WAAA/+B,EA8Z5D,YAAc63D,EAAU,cAAgBy4B,EAAY,eAAiBizH,EAAYxuO,GAIzF,QAASsgJ,GAAequF,GACpB,MAAO3pO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuB6nO,EAAU3uO,GAG7E,QAAS0hJ,GAAa7hH,GAClB,MAAO76B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuB+4B,EAAM7/B,GAGzE,QAASwhJ,GAAemtF,GACpB,MAAO3pO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuB6nO,EAAU3uO,GAG7E,QAASqhJ,GAAevtH,GACpB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,uBAAyBgtB,EAAI9zB,GAxZ3E,QAASg6I,GAAuB9zI,GAC5B,MAAOlB,GAAMgnE,KAAAhpE,EAAO8D,SAAW,mCAAoCZ,EAAAlG,GAiTvEkL,KAAK6rI,sBAAwBA,EA5ZjC7rI,KAASo2I,SAAAA,EACLp2I,KAAK++C,WAAAA,EACL/+C,KAAK8zI,gBAAAA,EACL9zI,KAAKs4I,WAAAA,EACLt4I,KAAKwsD,WAAAA,EACLxsD,KAAKi+C,kBAAAA,EA8ZLj+C,KAAK42N,4BAA8BA,EACnC52N,KAAKi3I,UAAYA,EACjBj3I,KAAKo3I,cAAgBA,EA5ZrBp3I,KAAIu3I,WAASA,EA8Zbv3I,KA7ZIi2I,eAASA,EA8Zbj2I,KAAKu5N,aA7ZYA,EA+ZjBv5N,KAAKw2I,aAAeA,EACpBx2I,KAAKo1I,eAAiBA,EACtBp1I,KAAKs2I,eAAiBA,EA5ZtBt2I,KAAAm2I,eAASA,EAgaTn2I,KAAK8uI,yBAA2BA,CAGhC,IAAIh6I,IACAoN,SA5ZJi/D,MAASrpE,EAAAqK,QAhCbhO,QA8ZKC,OAAO,oCA5ZZ8U,QAAA,cAAAqxC,GA+ZAA,EA7ZK6mB,SAAQ,QAAA,iBAghBjB,WAEI,YAQA,SAASvmB,GAAuB/gD,EAAOhC,GAsBnC,QA7ZSwhJ,GAAAt+I,GA8ZL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GA1ZtF,QAASqkJ,GAAuBnxE,GAC5B,MAAKluE,GAAAupE,IAAAvrE,EAAA8D,SAAgC,6BAAA9G,GAGrC,QAAK6uO,GAAiB37J,GACtB,MAAKluE,GAAAupE,IAAAvrE,EAAiB8D,SAAA,gCAAA9G,GAGtB,QAAKmlJ,GAAoBt/D,GACzB,MAAK7gF,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,qBAAA++E,EAAA7lF,GAG3B,QAAKklJ,GAAoBr/D,GACzB,MAAK7gF,GAAAitE,IAAAjvE,EAAsB8D,SAAA,qBAAA++E,EAAA7lF,GAG3B,QAAK8uO,GAA4BjpJ,GACjC,MAAK7gF,GAAAupE,IAAevrE,EAAA8D,SAAA,0CAAA9G,GAGpB,QAAKonD,GAAAtzB,GACL,MAAK9uB,GAAWupE,IAAAvrE,EAAA8D,SAAA,0CAAAgtB,EAAA9zB,GAiahB,QAAS+kJ,GAAsBjxH,GAC3B,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,sBAAwBgtB,EAAI9zB,GAG1E,QA7ZQglJ,GAAoBlxH,GA8ZxB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA8BgtB,KAAQ9zB,GA1ZlF,QAAS4hO,GAAuB9gM,EAAAqmB,GAC5B,GAAAznD,GAAOsD,EAAW8D,SAAW,0CAA0Cg6B,EAAA,eAAAqmB,CA8ZvE,OAAOniD,GAAMupE,IAAI7uE,EAAKM,GAG1B,QA7ZIokO,GAAkBj9K,EAAWpmD,EAAW+hF,EAAAy4B,EAA4BizH,GA8ZpE,MAAOxpO,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAqC/F,EAAY,eAAiBomD,EAAa,YAAc27B,EAAU,cAAgBy4B,EAAY,eAAiBizH,EAAYxuO,GAG3M,QA7ZIs9G,GAA6Bv8G,EAAWomD,EAAA27B,EAAAy4B,GA8ZxC,MAAOv2G,GAAMupE,IAAIvrE,EAAW8D,SAAW,yCAA2C/F,EAAY,eAAiBomD,EAAa,YAAc27B,EAAU,cAAgBy4B,EAAWv7G,GApEnLkL,KA7ZIi6I,mBAAsBA,EA8Z1Bj6I,KAAKg6I,oBAAsBA,EAC3Bh6I,KAAK65I,sBAAwBA,EA5Z7B75I,KAAAm5I,sBAA0BA,EA8Z1Bn5I,KA7ZI2jO,uBAAiBA,EA8ZrB3jO,KAAK4jO,yBA7ZmBA,EA8ZxB5jO,KAAK85I,4BAA8BA,EA5ZnC95I,KAAAk8C,yBAAgCA,EA8ZhCl8C,KA7ZIs5I,kBAAiBA,EA8ZrBt5I,KAAK02N,mCA7Z6BA,EA8ZlC12N,KAAKk5N,oBAAsBA,EAC3Bl5N,KAAKoyG,0BAA0BA,CAzZtC,IAAAt9G,IA8ZWoN,SA5ZRi/D,MAAArpE,EAAAqK,QAqYAhO,QACKC,OAAO,oCACP8U,QAAQ,yBAA0B2xC,GAEvCA,EA7ZkBumB,SAAW,QAAW,iBAye5C,WAEI,YAQA,SA7ZQrmB,GAAiBjhD,EAAAhC,GAmbrB,QAAS8kJ,GAAqB5hJ,GA5Z9B,MAASlB,GAAAgnE,KAAShpE,EAAK8D,SAAA,+BAAAZ,EAAAlG,GAgavB,QAAS4nJ,GAAe10E,GA5ZxB,MAASluE,GAAMupE,IAAKvrE,EAAA8D,SAAA,sBAAA9G,GAgapB,QAAS+uO,GAAgB77J,GA5ZzB,MAASluE,GAAAupE,IAAAvrE,EAAA8D,SAA+B,0BAAI9G,GAga5C,QAASuoJ,GAAYymF,GA5ZrB,MAAShqO,GAAAgnE,KAAAhpE,EAAkB8D,SAAQ,iBAAAkoO,EAAAhvO,GAganC,QAASsoJ,GAAa0mF,GA5ZtB,MAAShqO,GAAAitE,IAAAjvE,EAAsB8D,SAAA,iBAAAkoO,EAAAhvO,GAga/B,QAASmoJ,GAAer0H,GA5ZxB,MAAS9uB,GAAAouE,OAAApwE,EAAwB8D,SAAA,kBAAAgtB,EAAA9zB,GAgajC,QAASivO,GAAsBD,GA5Z/B,MAAShqO,GAAAupE,IAAAvrE,EAAqB8D,SAAI,8BAAA9G,GAgalC,QAASooJ,GAAqBt0H,GA5Z9B,MAAS9uB,GAAAgnE,KAAAhpE,EAAsB8D,SAAI,wBAAAgtB,KAAA9zB,GAganC,QAASunD,GAA2BzzB,GAChC,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAsCgtB,EAAI9zB,GAGrF,QAASy0F,GAAwBvuF,GAC7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GAGlF,QA7ZI6hO,GAA6B/gM,EAAWouM,GA8ZxC,MAAOlqO,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAqCg6B,EAAY,kBAAoBouM,EAAelvO,GAG/H,QA7ZIskO,GAAiBxnM,EAAW/7B,EAAW+hF,EAAAy4B,EAAyBizH,GA8ZhE,MAAOxpO,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAA0B/F,EAAY,kBAAoB+7B,EAAgB,YAAcgmD,EAAU,cAAgBy4B,EAAY,eAAiBizH,EAAYxuO,GAGtM,QAASu9G,GAAmBx8G,EAAWomD,EAAYrqB,EAAegmD,EAASy4B,GACvE,MAAOv2G,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAAgC/F,EAAY,eAAiBomD,EAAa,kBAAoBrqB,EAAgB,YAAcgmD,EAAU,cAAgBy4B,EAAYv7G,GAtE7MkL,KAAKq9I,YAAcA,EACnBr9I,KAAKo9I,aAAeA,EA5ZpBp9I,KAAAi9I,eAASA,EA8ZTj9I,KA7ZI08I,eAAiBA,EA8ZrB18I,KAAK6jO,gBAAkBA,EACvB7jO,KAAKk9I,qBAAuBA,EA5Z5Bl9I,KAAA+jO,sBAASA,EA8ZT/jO,KA7ZIq8C,2BAA4BA,EA8ZhCr8C,KAAKupF,wBAA0BA,EAC/BvpF,KAAK48I,qBAAuBA,EA5Z5B58I,KAAA22N,4BAAmCA,EA8ZnC32N,KA7ZIo5N,aAAaA,EA8ZjBp5N,KAAKqyG,mBAAoBA,CAGzB,IA7ZIv9G,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAxBhChO,QA5ZIC,OAAA,oCA8ZC8U,QA7ZG,kBAAiB6xC,GA+ZzBA,EAAgBqmB,SAAW,QAAS,iBA8ExC,WAEI,YAQA,SAAS4oE,GAAgBlwI,EAAOhC,GAtY5B,QAAKmsO,GAAcC,GACnB,MAAKpqO,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,+BAAAsoO,EAAApvO,GAGxB,QAAIwlJ,GAASt/I,GACT,MAAAlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,8BAAAZ,EAAAlG,GAgab,QAASq4I,GAAmBg3F,GACxB,MAAOrqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmCuoO,EAAYrvO,GAG3F,QAAS6lJ,GAAYzO,GACjB,MAAOpyI,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCswI,EAAWp3I,GAGzF,QAASomJ,GAAekpF,GACpB,MAAOtqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCwoO,EAAUtvO,GAGxF,QAASimJ,GAAkB7pD,GACvB,MAAOp3F,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCs1F,EAAMp8F,GAGpF,QAASslJ,GAAoBj6I,GACzB,MAAOrG,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAsCuE,EAAUrL,GAG3F,QAASulJ,GAAWjkI,EAAWjW,GAC3B,MAAOrG,GAAMupE,IAAIvrE,EAAW8D,SAAW,2BAA6Bwa,EAAY,aAAejW,EAAUrL,GAG7G,QAAS0lJ,GAAyBx/I,GAC9B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCZ,EAAKlG,GAIxF,QAAS6mJ,GAAYlmJ,GA5ZrB,GAAAX,IACIoN,SA8ZQi/D,MAASrpE,EAAWqK,OA3ZhCk/D,aAAqB,cA+ZjB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BnG,EAAMX,GAI9E,QAASunJ,GAAY5mJ,GACjB,GAAIX,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OA9ZRrN,GAAAoN,QAAA,gBAAAxM,OA8ZeoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCnG,EAAMX,GA7EvFkL,KAAK26I,YAAcA,EACnB36I,KAAKk7I,eAAiBA,EACtBl7I,KAAK+6I,kBAAoBA,EA5ZhC/6I,KAAYikO,eAAAA,EA8ZLjkO,KAAKmtI,mBAAqBA,EA5Z9BntI,KAAAs6I,eAAAA,EAgaIt6I,KA7ZCo6I,oBAAOA,EA8ZRp6I,KA7ZCq6I,WAAQA,EA8ZTr6I,KAAKw6I,yBAA2BA,EA5ZpCx6I,KAAA27I,YAAAA,EA8ZI37I,KAAKq8I,YAAcA,CA1ZnB,IAAAvnJ,IACAoN,SACKi/D,MAAArpE,EAAAqK,QAqYThO,QACKC,OAAO,oCACP8U,QAAQ,kBAAmB8gI,GAEhCA,EA7Za5oE,SAAA,QAAA,iBAmfjB,WAEI,YAQA,SAASg+F,GAA2BtlK,EAAOhC,GAavC,QAASusO,GAA+B3oF,GACpC,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wDAAyD8/I,EAAS5mJ,GAG9G,QAAS06K,GAAuC9zB,GA5ZpD,MAAA5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAAA,gEAAA8/I,EAAA5mJ,GAgaI,QA7ZQ60K,GAAAjuB,GACP,MAAQ5hJ,GAAAgnE,KAAAhpE,EAAe8D,SAAA,sDAAA8/I,EAAA5mJ,GAgaxB,QAAS67K,GAAyCj1B,GA5ZtD,MAAS5hJ,GAAYgnE,KAAAhpE,EAAO8D,SAAY,kEAAA8/I,EAAA5mJ,GAqYpCkL,KAAKwvK,uCAAyCA,EA5Z9CxvK,KAAAqkO,+BAA8BA,EA8Z9BrkO,KA7ZI2pK,6BAA6BA,EA8ZjC3pK,KAAK2wK,yCAA2CA,CA3ZhD,IAAA77K,IACIoN,SA8ZIi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OAAO,mCACP8U,QAAQ,6BAA8Bk2J,GAE3CA,EA7ZiBh+F,SAAA,QAAA,iBA+brB,WAEI,YAQA,SA7ZSy6F,GAAiB/hK,EAAAhC,GA0atB,QAAS4lK,GAAqBhiB,GA5Z9B,MAAS5hJ,GAAAgnE,KAAWhpE,EAAU8D,SAAA,6CAAA8/I,EAAA5mJ,GAga9B,QAASonK,GAAiBhqJ,GA5Z1B,MAASpY,GAAAupE,IAAUvrE,EAAM8D,SAAA,uCAAAsW,EAAApd,GAgazB,QAAS4pK,GA7ZuBhjB,GA8Z5B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sDAAuD8/I,EAAS5mJ,GAG1G,QA7ZS4tL,GAAW4hD,GA8ZlB,MAAOxqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4C0oO,EAAaxvO,GArbrGkL,KAAK09J,qBAAiBA,EA8ZtB19J,KAAKk8J,iBAAmBA,EACxBl8J,KAAK0+J,gCAAkCA,EA5ZvC1+J,KAAK0iL,qBAAAA,CA+ZL,IAAI5tL,IA5ZAoN,SACAi/D,MAASrpE,EAAAqK,QA8YjBhO,QA5ZIC,OAAK,wCACL8U,QAAK,kCAAiB2yJ,GA+Z1BA,EAAgCz6F,SAAW,QAAS,iBAmCxD,WAEI,YAQA,SAAS80F,GAAsBp8J,EAAOhC,GAYlC,QAAS6+J,GAAuBjb,GA5ZhC,MAAS5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAA4B,sCAAmB8/I,EAAA5mJ,GAgaxD,QAASi/K,GAAsBr4B,GA5Z/B,MAAS5hJ,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,qCAAA8/I,EAAA5mJ,GA8YpCkL,KAAK22J,uBA7ZoBA,EA8ZzB32J,KAAK+zK,sBAAsBA,CACnB,IAAIj/K,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QAiZ1BhO,QACKC,OAAO,8BACP8U,QAAQ,wBAAyBgtJ,GAEtCA,EA7ZqB90F,SAAK,QAAW,iBAsbzC,WAGI,YASA,SA7ZIuwG,GAA2B73K,EAAAhC,GAya3B,QAAS26K,GAAsB/2B,GAC3B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiD8/I,EAAS5mJ,GAGtG,QAAS89K,GAAkCl3B,GACvC,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4DAA6D8/I,EAAS5mJ,GAflHkL,KAAKyyK,sBAAwBA,EA3Z7BzyK,KAAA4yK,kCAAkCA,CA+ZlC,IAAI99K,IACAoN,SA5ZJi/D,MAASrpE,EAAmBqK,QA8YhChO,QACKC,OAAO,uCACP8U,QAAQ,iCAAkCyoK,GAE/CA,EA7Z0BvwG,SAAW,QAAW,iBAubpD,WAGI,YAQA,SA7ZS+yG,GAAyBr6K,EAAAhC,GAua9B,QAASs8K,GAA8B14B,GA5ZnC,MAAA5hJ,GAASgnE,KAAAhpE,EAAA8D,SAAA,wDAAA8/I,EAAA5mJ,GA+Zb,QA7ZQ4/K,GAAoBh5B,GA8ZxB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yDAA0D8/I,EAAS5mJ,GA1a/GkL,KAAK00K,+BAA2BA,EAChC10K,KAAKo0K,8BAA8BA,CAEnC,IAAAt/K,IACAoN,SACKi/D,MAAArpE,EAAsBqK,QAiZ/BhO,QA5ZAC,OAAS,4CACL8U,QAAK,uCAAqBirK,GA+Z9BA,EA7ZiC/yG,SAAA,QAAA,iBAobrC,WAEI,YAQA,SAASi+F,GAAgCvlK,EAAOhC,GAY5C,QAAS4nK,GAAgBhkB,GACrB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2C8/I,EAAS5mJ,GAGhG,QA7ZIg2E,GAAoBy5J,GA8ZpB,MAAOzqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgC2oO,EAAUzvO,GAGtF,QA7ZIsyL,GAAahzJ,GA8Zb,MAAOt6B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCw4B,EAAUt/B,GAG7F,QA7ZQuyL,GAAiBn1K,GACrB,MAAOpY,GAAMupE,IAAIvrE,EAAK8D,SAAA,0CAAAsW,EAAApd,GAvB1BkL,KAAA0/J,gBAASA,EA8ZT1/J,KA7ZI8qE,eAAiBA,EA8ZrB9qE,KAAKonL,YAAcA,EACnBpnL,KAAKqnL,oBAAsBA,CA5Z3B,IAAAvyL,IACIoN,SA8ZIi/D,MAASrpE,EAAWqK,QAdhChO,QACKC,OA7ZG,wCA8ZH8U,QAAQ,kCAAmCm2J,GAEhDA,EA7ZgCj+F,SAAA,QAAc,iBA6blD,WA3ZQ,YAQJ,SAAAg2G,GAAAt9K,EAAAhC,GAcI,QAAK4nK,GAAuBhkB,GACvB,MAAA5hJ,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,0CAAA8/I,EAAA5mJ,GAK7B,QAAKg2E,GAAey5J,GACf,MAAAzqO,GAAAgnE,KAAoBhpE,EAAA8D,SAAA,+BAAA2oO,EAAAzvO,GAkarB,QA7ZI+zF,GAAS5hC,GA8ZT,MAAOntD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BqrD,EAAMnyD,GA1ZpF,QAAS6zF,GAAA1hC,GACL,MAAOntD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCqrD,EAAAnyD,GAI7E,QAAOi0F,GAAUngE,GA8Zb,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,8BAAgCgtB,EAAI9zB,GA/b1FkL,KAAA0/J,gBAAAA,EACK1/J,KAAO8qE,eAAAA,EA+ZJ9qE,KAAK6oF,aAAeA,EA5Z5B7oF,KAAA2oF,gBAA2BA,EA8ZnB3oF,KAAK+oF,gBAAgBA,CA5Z7B,IAASj0F,IACAoN,SACAi/D,MAAerpE,EAAAqK,QA6YpBhO,QACCC,OAAO,oCACP8U,QAAQ,8BAA+BkuK,GA3Z/CA,EAAYh2G,SAAA,QAAA,iBAwcb,WAEI,YAQA,SA7ZQqyG,GAAoB35K,EAAWhC,GA0anC,QAASy+K,GAAmBiuD,GACxB,MAAO1qO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAA+C4oO,EAAgB1vO,GAG3G,QAAS0gL,GAA6B95B,GAClC,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wDAAyD8/I,EAAS5mJ,GAE9G,QA7ZI8hL,GAA4Bl7B,GA8Z5B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oDAAqD8/I,EAAS5mJ,GA3Z1G,QAAS+gL,GAA4Bn6B,GACjC,MAAO5hJ,GAAMgnE,KAAIhpE,EAAW8D,SAAW,4DAA0D8/I,EAAA5mJ,GAuYrGkL,KAAK42K,yBAA2BA;AAEhC52K,KA7ZIu2K,mBAAiBA,EA8ZrBv2K,KAAKw1K,6BAA6BA,EAClCx1K,KAAK61K,iCAAiCA,CAEtC,IA7ZI/gL,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAhBhChO,QA5ZIC,OAAA,yCA8ZC8U,QA7ZG,+BAA4BuqK,GA+ZpCA,EAA6BryG,SAAW,QAAS,iBAqCrD,WA3ZI,YAqaA,SA7ZSqyF,GAAiB35J,EAAAhC,GA6atB,QA7ZQgnK,GAAoBpjB,GA8ZxB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmD8/I,EAAS5mJ,GAGxG,QAAS8+J,GAAoBlY,GA5Z7B,MAAS5hJ,GAAAgnE,KAAAhpE,EAAe8D,SAAgB,kDAAA8/I,EAAA5mJ,GAgaxC,QAASkhK,GAAuBta,GA5ZhC,MAAS5hJ,GAAAitE,IAAAjvE,EAAoB8D,SAAA,yCAAA8/I,EAAA5mJ,GAga7B,QAAS2vO,GAAgC/oF,GA5ZzC,MAAS5hJ,GAAAgnE,KAAAhpE,EAAmB8D,SAAY,oDAAA8/I,EAAA5mJ,GAgaxC,QAASk/J,GAAqCtY,GA5Z9C,MAAS5hJ,GAAAgnE,KAAYhpE,EAAW8D,SAAA,yDAAA8/I,EAAA5mJ,GAgahC,QAASujL,GAAyB38B,GA5ZlC,MAAS5hJ,GAAAgnE,KAAAhpE,EAAe8D,SAAU,qDAAA8/I,EAAA5mJ,GAgalC,QAASgkL,GAAkCp9B,GA5Z3C,MAAS5hJ,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,6DAAA8/I,EAAA5mJ,GAgajC,QAASqkL,GAA2Bz9B,GA5ZpC,MAAS5hJ,GAAAgnE,KAAAhpE,EAAoB8D,SAAU,sDAAA8/I,EAAA5mJ,GA3CvCkL,KAAK8+J,6BAAiBA,EACtB9+J,KAAK4zJ,oBAAqBA,EAC1B5zJ,KAAKg2J,uBAAiBA,EA8ZtBh2J,KAAKykO,gCAAkCA,EACvCzkO,KAAKg0J,qCAAuCA,EA5Z5Ch0J,KAAKq4K,yBAAsBA,EAC3Br4K,KAAK84K,kCAAaA,EAClB94K,KAAKm5K,2BAA2BA,CAChC,IAAArkL,IACAoN,SA8ZQi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OAAO,0CA5ZZ8U,QAAA,gCAAoCuqJ,GAEpCA,EAAyBryF,SAAO,QAAY,iBAqdhD,WAEI,YAQA,SAASg1F,GAAuCt8J,EAAOhC,GAanD,QAASihK,GAAkCrd,GACvC,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sDAAuD8/I,EAAS5mJ,GAG5G,QAASoiK,GAA+Bxb,GA5Z/C,MAAY5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAAA,yCAAA8/I,EAAA5mJ,GAgaT,QAASymK,GAA2B7f,GA5ZpC,MAAA5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAAA,+CAAA8/I,EAAA5mJ,GAyYIkL,KAAK+4J,kCAAoCA,EACzC/4J,KAAKk3J,+BAAiCA,EACtCl3J,KAAKu7J,2BAA2BA,CAGhC,IAAIzmK,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OA7ZO,gDA8ZP8U,QA7ZO,yCAASktJ,GA+ZrBA,EAAuCh1F,SAAW,QAAS,iBA+B/D,WAEI,YAQA,SAAS6zG,GAAgCn7K,EAAOhC,GAe5C,QA7ZI4nK,GAAkBhkB,GA8ZlB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2C8/I,EAAS5mJ,GAtZpG,QAAAg2E,GAAAy5J,GA8ZQ,MAAOzqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgC2oO,EAAUzvO,GAGtF,QA7ZSsyL,GAAAhzJ,GA8ZL,MAAOt6B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuCw4B,EAAUt/B,GA1ZjG,QAASuyL,GAAAn1K,GA8ZD,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,0CAA4CsW,EAAWpd,GA1ZlG,QAAK+zF,GAAA5hC,GACL,MAAKntD,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,4BAAAqrD,EAAAnyD,GAga5B,QA7ZI6zF,GAAS1hC,GA8ZT,MA7ZIntD,GAASgnE,KAAAhpE,EAAW8D,SAAA,mCAAAqrD,EAAAnyD,GAI5B,QAASi0F,GAAAngE,GACL,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,6BAAAgtB,EAAA9zB,GA3C5CkL,KAAA0/J,gBAASA,EA8ZT1/J,KA7ZI8qE,eAAkBA,EA8ZtB9qE,KAAKonL,YAAcA,EACnBpnL,KAAKqnL,oBAAsBA,EA5Z3BrnL,KAAA6oF,aAASA,EA8ZT7oF,KA7ZI2oF,gBAAkBA,EA8ZtB3oF,KAAK+oF,gBAAkBA,CACvB,IAAIj0F,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QA4Y1BhO,QACKC,OAAO,wCA5ZR8U,QAAI,kCAAS+rK,GA+ZjBA,EA7ZgC7zG,SAAA,QAAA,iBAidpC,WAEI,YAQA,SAAS6kG,GAA+BnsK,EAAOhC,GA7Y9C,QAAAyvK,GAAuBm9D,GACvB,MAAA5qO,GAAAgnE,KAAsBhpE,EAAA8D,SAAA,gEAAA8oO,EAAA5vO,GAganB,QA7ZQy0K,GAAoBm7D,GA8ZxB,MAAO5qO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mEAAoE8oO,EAAS5vO,GAEzH,QAASkoL,GAA2C0nD,GAChD,MAAO5qO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sEAAuE8oO,EAAS5vO,GAG5H,QA7ZIujL,GAA6BqsD,GA8Z7B,MAAO5qO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oDAAqD8oO,EAAS5vO,GAG1G,QA7ZI4qL,GAA6BglD,GA+Z7B,GAAI5vO,IACAoN,SACIi/D,MAASrpE,EAAWqK,OA3Z3Bk/D,aAAA,cA+ZD,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uDAAwD8oO,EAAS5vO,GA1ZjH,QAAA4oL,GAAAgnD,GAEa,GAAA5vO,IA8ZWoN,SA5ZxBi/D,MAA+BrpE,EAAWqK,OA+ZlBk/D,aAAc,cAElB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2DAA4D8oO,EAAS5vO,GA1Z7H,QAAK6oL,GAAoC+mD,GAErC,GAAA5vO,IACAoN,SACIi/D,MAASrpE,EAAWqK,OA+ZpBk/D,aAAc,cA3ZtB,OAASvnE,GAAAgnE,KAAAhpE,EAAsB8D,SAAS,2DAAA8oO,EAAA5vO,GAkWxCkL,KAAKunK,qCAAuCA,EAC5CvnK,KAAKupK,wCAA0CA,EA5ZtDvpK,KAAYq4K,yBAAAA,EA8ZLr4K,KAAK0/K,4BAA8BA,EA5ZvC1/K,KAAA09K,gCAAAA,EA8ZI19K,KAAK29K,gCAAkCA,EA5Z3C39K,KAAAg9K,2CAAAA,CA+ZI,IA7ZCloL,IA8ZGoN,SA5ZRi/D,MAAArpE,EAAgCqK,QA2YhChO,QACKC,OAAO,2CACP8U,QA7ZC,iCAA8B+8J,GA+ZpCA,EAA+B7kG,SAAW,QAAS,iBAoEvD,WAEI,YAQA,SAASqjG,GAA8B3qK,EAAOhC,GAa1C,QA7ZQktK,GAAoB9yJ,GA8ZxB,MAAOpY,GAAMupE,IAAIvrE,EAAW8D,SAAW,6CAA+CsW,EAAWpd,GA1ZrG,QAASgwK,GAAA5yJ,GACL,MAAOpY,GAAMupE,IAAAvrE,EAAK8D,SAAW,sCAAWsW,EAAApd,GAga5C,QA7ZI8vK,GAAkBlpB,GA8ZlB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgD8/I,EAAS5mJ,GAGrG,QAASgxK,GAA2BpqB,GAChC,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mDAAoD8/I,EAAS5mJ,GAxBzGkL,KA7ZCglK,oBAAOA,EA8ZRhlK,KA7ZC8kK,aAAQA,EA8ZT9kK,KAAK4kK,uBAAyBA,EA5ZlC5kK,KAAA8lK,2BAAqCA,CAErC,IAAAhxK,IACIoN,SACKi/D,MAAArpE,EAAAqK,QA8YThO,QACKC,OAAO,sCA5Zf8U,QAAY,gCAAAu7J,GA+ZTA,EAA8BrjG,SAAW,QAAS,iBAkCtD,WAGQ,YApZA,SAAIswG,GAAS53K,EAAAhC,GAyaT,QAASs6K,GAA0B12B,GAC/B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wDAAyD8/I,EAAS5mJ,GAG9G,QAAS6rL,GAAsCjlC,GAC3C,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oEAAqE8/I,EAAS5mJ,GAf1HkL,KA7ZIoyK,0BAAoBA,EA+ZxBpyK,KAAK2gL,sCAAwCA,CA3ZjD,IAAA7rL,IACIoN,SA8ZQi/D,MAASrpE,EAAWqK,QAfhChO,QA5ZKC,OAAA,yCA8ZA8U,QAAQ,mCAAoCwoK,GA3ZjDA,EAAsBtwG,SAAA,QAAA,iBAub9B,WAEI,YAQA,SAAS4kG,GAA2BlsK,EAAOhC,GAsBvC,QA7ZQ0uK,GAA6B9qB,GA8ZjC,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wDAAyD8/I,EAAS5mJ,GAG9G,QAASsxK,GAAsB1qB,GA5Z3B,MAAA5hJ,GAASgnE,KAAAhpE,EAAmB8D,SAAA,8CAAA8/I,EAAA5mJ,GAgahC,QAAS24K,GAAa5C,GAElB,GA7ZI5/F,IA8ZA/oE,SACIi/D,MAASrpE,EAAWqK,OAK5B,OADA8oE,GAAU/oE,QAAQ,gBAAkBxM,OAC7BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgDivK,EAAc5/F,GA1ZjH,QAAYqjG,GAAA5yB,GA8ZD,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iDAAkD8/I,EAAS5mJ,GA1Z3G,QAAA64K,GAAAjyB,GACK,MAAO5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAAA,yCAAA8/I,EAAA5mJ,GAOR,QAAKwuL,GAAA5nC,GA8ZD,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6C8/I,EAAS5mJ,GA1ZlG,QAAK4xL,GAAAhrC,GAED,GAAA9oE,IACA1wE,SACIi/D,MAASrpE,EAAWqK,OA+ZpBk/D,aAAc,cA3ZlB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAAA8/I,EAA+C9oE,GAG3F,QAASq0G,GAAAvrC,GACL,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAA8/I,EAAyD5mJ,GAyVrGkL,KAAKwmK,gCAAkCA,EACvCxmK,KA7ZIytK,aAAKA,EA8ZTztK,KA7ZIsuK,gBAAKA,EA8ZTtuK,KAAK2tK,iBAAmBA,EACxB3tK,KA7ZIomK,sBAAoBA,EA8ZxBpmK,KA7ZI0mL,uBAAuBA,EA8Z3B1mL,KA7ZIsjL,sBAAqBA,EA8ZzBtjL,KA7ZIinL,4BAAaA,CAoajB,IAAInyL,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAxBhChO,QA5ZIC,OAAA,mCACC8U,QAAO,6BAAA88J,GA+ZZA,EAA2B5kG,SAAW,QAAS,iBA8EnD,WAEI,YAQA,SAASi1F,GAA2Bv8J,EAAOhC,GA/YvC,QAAKu/J,GAAsB3b,GAC3B,MAAK5hJ,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,kDAAA8/I,EAAA5mJ,GAG9B,QAAKurL,GAA2B3kC,GAChC,MAAK5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAAkC,iDAAA8/I,EAAA5mJ,GAgavC,QA7ZIisL,GAASrlC,GA8ZT,MA7ZI5hJ,GAASupE,IAAAvrE,EAAW8D,SAAA,sCAAA8/I,EAAA5mJ,GAga5B,QAAS0sL,GAAoB9lC,GA5Z7B,MAAS5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAA6B,yCAAS8/I,EAAA5mJ,GAga/C,QAAS6vO,GAA4CjpF,GA5ZrD,MAAS5hJ,GAAAgnE,KAAAhpE,EAAoB8D,SAAS,iEAAA8/I,EAAA5mJ,GAgYtCkL,KAAKq3J,6BAA+BA,EA5ZxCr3J,KAAAqgL,4BAAAA,EA8ZIrgL,KAAK+gL,iBAAmBA,EA5Z5B/gL,KAAAwhL,oBAAAA,EA8ZIxhL,KA7ZC2kO,4CAAOA,CA+ZR,IAAI7vO,IA5ZRoN,SA8ZYi/D,MAASrpE,EAAWqK,QAhBhChO,QACKC,OAAO,mCACP8U,QAAQ,6BAA8BmtJ,GAE3CA,EAA2Bj1F,SAAW,QAAS,iBAsCnD,WAEI,YASA,SA7ZIw6F,GAAkC9hK,EAAAhC,GA0alC,QAASirL,GAAwB6hD,GAC7B,MAAO9qO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiDgpO,EAAY9vO,GAGzG,QAASunK,GAAoBwoE,GA5ZpC,MAAY/qO,GAAAgnE,KAAAhpE,EAAA8D,SAAA,4CAAAipO,EAAA/vO,GAgaL,QAASotL,GAAyB2iD,GA5ZtC,MAAA/qO,GAAAgnE,KAAAhpE,EAAA8D,SAAA,iDAAAipO,EAAA/vO,GAyYIkL,KAAK+iL,wBAA0BA,EA3Z/B/iL,KAAAq8J,oBAASA,EA+ZTr8J,KAAKkiL,yBAAyBA,CAC9B,IAAIptL,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QA6Y1BhO,QACKC,OAAO,qCACP8U,QAAQ,+BAAgC0yJ,GAE7CA,EA7Z0Bx6F,SAAW,QAAW,iBA8bpD,WAEI,YAQA,SAAS+0F,GAA2Br8J,EAAOhC,GA4BvC,QAAS4nK,GAAgBhkB,GA5ZzB,MAAK5hJ,GAAAgnE,KAAAhpE,EAAkB8D,SAAA,0CAAA8/I,EAAA5mJ,GAIvB,QAAKgwO,GAAervO,GACpB,GAAKX,IACAoN,SACDi/D,MAASrpE,EAAAqK,OAiaT,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAC1BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwCnG,EAAMX,GAG1F,QA7ZIw5F,GAAaotD,GA8Zb,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqC8/I,EAAS5mJ,GAG1F,QAASgjK,GAAmBA,GACxB,MAAOh+J,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yCAA0Ck8J,EAAoBhjK,GAG1G,QA7ZIotK,GAA6BpK,GA8Z7B,MAAOh+J,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiDk8J,EAAoBhjK,GAGjH,QA7ZI4uK,GAA6B5L,GA8Z7B,MAAOh+J,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmDk8J,EAAoBhjK,GAGnH,QA7ZI8yL,GAA4BlsC,GA8Z5B,GAAI5mJ,IACAoN,SA5ZCi/D,MAAArpE,EAAmBqK,OAI5B,OA4ZIrN,GAAOoN,QAAQ,gBAAkBxM,OA5Z5BoE,EAAAgnE,KAAAhpE,EAAsB8D,SAAA,4CAAA8/I,EAAA5mJ,GAga/B,QAASiuK,GAA4BrnB,GACjC,GAAI5mJ,IA5ZRoN,SACWi/D,MAAMrpE,EAAOqK,OAiapB,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAC1BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiD8/I,EAAS5mJ,GA1Z1G,QAAAmvK,GAAAvoB,GA8ZQ,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAiD8/I,EAAS5mJ,GAGtG,QA7ZSikL,GAAAr9B,GA8ZL,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6C8/I,EAAS5mJ,GA1ZtG,QAAS6iK,GAAAzmE,GA8ZD,MAAOp3F,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAsCs1F,EAAMp8F,GA1ZvF,QAAKqrK,GAA2BzkB,GAChC,MAAK5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAA8B,+CAAA8/I,EAAA5mJ,GAGnC,QAAKiiK,GAAArb,GA8ZD,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmD8/I,EAAS5mJ,GAGxG,QA7ZQkmK,GAAoBtf,GA8ZxB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qDAAsD8/I,EAAS5mJ,GA1Z3G,QAAS0hK,GAAA9a,GACL,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wDAAA8/I,EAAiE5mJ,GAG7G,QAASwuK,GAAA1nF,GACL,MAAO9hF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qDAAAggF,EAAoE9mF,GAgahH,QA7ZIs1K,GAA6B1uB,GA8Z7B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oDAAqD8/I,EAAS5mJ,GA9G1GkL,KA7ZI0/J,gBAAkBA,EA8ZtB1/J,KAAKsuF,YAAcA,EACnBtuF,KAAK83J,mBAAqBA,EA5Z1B93J,KAAAkiK,0BAASA,EA8ZTliK,KA7ZI4nL,wBAAkBA,EA8ZtB5nL,KAAK+iK,4BAA8BA,EACnC/iK,KAAKikK,4BAA8BA,EA5ZvCjkK,KAAS0jK,8BAA2BA,EA8ZhC1jK,KA7ZI+4K,wBAAkBA,EA8ZtB/4K,KAAKmgK,2BAA6BA,EAClCngK,KAAK+2J,8BAAgCA,EACrC/2J,KAAKg7J,iCAAmCA,EACxCh7J,KAAKw2J,oCAAsCA,EAC3Cx2J,KAAK8kO,mBAAqBA,EA3ZjC9kO,KAAY23J,eAAAA,EAET33J,KAAAsjK,iCAAAA,EA8ZItjK,KAAKoqK,gCAAkCA,CAEvC,IA7ZCt1K,IACAoN,SA8ZOi/D,MAASrpE,EAAWqK,QA9BhChO,QA5ZIC,OAAI,uCA8ZH8U,QA7ZG,6BAASitJ,GA+ZjBA,EAA2B/0F,SAAW,QAAS,iBAwHnD,WAEI,YAQA,SAASuwH,GAAgC73L,EAAOhC,GAa5C,QAASo7L,GAAuBhhL,EAAWrc,EAAWkvO,EAAWC,EAAW9yC,EAAanV,GAErF,MA7ZIjjL,GAASupE,IAAAvrE,EAAA8D,SAAA,4DAAAsW,EAAA,cAAArc,EAAA,cAAAkvO,EAAA,cAAAC,EAAA,gBAAA9yC,EAAA,cAAAnV,EAAAjoL,GA+ZjB,QAASg/L,GAAuBp4C,GAC5B,MA7ZI5hJ,GAAAgnE,KAAchpE,EAAA8D,SAAA,iDAAA8/I,EAAA5mJ,GAgapB,QAAS+8L,GAAkBn2C,GACzB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6C8/I,EAAS5mJ,GApBlGkL,KAAKkzL,uBAAyBA,EAC9BlzL,KAAK8zL,uBA7ZwBA,EA8Z7B9zL,KAAK6xL,kBA7ZeA,CA8ZpB,IAAI/8L,IACAoN,SACIi/D,MAASrpE,EA7ZGqK,QAgZxBhO,QACKC,OAAO,wCACP8U,QA7ZO,kCAAcyoL,GA+Z1BA,EA7Z0BvwH,SAAW,QAAW,iBA2bpD,WAEI,YAQA,SA7ZSouH,GAAe11L,EAAAhC,GA4apB,QA7ZI63L,GAA4Bj0C,GA8Z5B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oDAAqD8/I,EAAS5mJ,GAI1G,QAASg2E,GAAey5J,GACpB,MAAOzqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgC2oO,EAAUzvO,GAGtF,QAASs/L,GAAyBhgK,GAC9B,MAAOt6B,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mDAAoDw4B,EAAUt/B,GAG1G,QAASu/L,GAAyBniL,GA5ZzC,MAAYpY,GAAAupE,IAAAvrE,EAAA8D,SAAA,0CAAAsW,EAAApd,GAGL,QAAA6/L,GAAA1tI,GA8ZI,MAAOntD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAA8CqrD,EAAMnyD,GAGhG,QA7ZK4/L,GAAQztI,GA8ZT,MAAOntD,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAA8CqrD,EAAMnyD,GAzZhG,QAAS8/L,GAAAhsK,GA8ZL,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,gCAAkCgtB,EAAI9zB,GArcpFkL,KAAK2vL,0BAAAA,EA8ZL3vL,KAAK8qE,eAAiBA,EA5ZtB9qE,KAAIo0L,yBAASA,EA8Zbp0L,KA7ZIq0L,yBAASA,EA8Zbr0L,KAAK20L,qBA7ZuBA,EA8Z5B30L,KAAK00L,qBAAuBA,EAC5B10L,KAAK40L,qBAAuBA,CAC5B,IAAI9/L,IA5ZJoN,SACIi/D,MAAarpE,EAAIqK,QA4YzBhO,QA5ZAC,OAAA,wCA8ZK8U,QAAQ,kCAAmCsmL,GAEhDA,EAAgCpuH,SAAW,QAAS,iBAiDxD,WAEI,YAQA,SA7ZQmuH,GAASz1L,EAAAhC,GA0ab,QA7ZSggK,GAAApc,GA8ZL,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2C8/I,EAAS5mJ,GAEhG,QAAS26L,GAAgC/zC,GA5Z7C,MAAS5hJ,GAAAgnE,KAAAhpE,EAA2B8D,SAAO,qDAAY8/I,EAAA5mJ,GAEnD,QAAKo7L,GAAkCx0C,GACvC,MAAK5hJ,GAAAgnE,KAAehpE,EAAA8D,SAAA,uDAAA8/I,EAAA5mJ,GAGpB,QAAK07L,GAAA90C,GACL,MAAK5hJ,GAAAgnE,KAAAhpE,EAAyB8D,SAAA,mCAAA8/I,EAAA5mJ,GAuY9BkL,KAAK83J,mBAAqBA,EAC1B93J,KAAKyvL,gCAAkCA,EACvCzvL,KAAKkwL,kCAAoCA,EACzClwL,KAAKwwL,cAAeA,CA3Z3B,IAAA17L,IA8ZWoN,SA5ZRi/D,MAAArpE,EAAAqK,QA8YAhO,QACKC,OAAO,uCACP8U,QA7ZG,4BAASqmL,GA+ZjBA,EAA0BnuH,SAAW,QAAS,iBA+BlD,WAEI,YAQA,SA7ZIpvD,GAASlY,EAAAhC,GA6aT,QA7ZIgc,GAAkB9Y,GAClB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAAZ,EAAAlG,GAG5C,QAAS8d,GAAgB5X,GACrB,MAAOlB,GAAMitE,IAAAjvE,EAAK8D,SAAW,uBAAWZ,EAAAlG,GAG5C,QAAS0d,GAAiBoW,GACtB,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,wBAAAgtB,EAAA9zB,GAia5C,QAAS6f,KACL,MAAO7a,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA6B9G,GAIxE,QAAS8f,KACL,MAAO9a,GAAMupE,IAAIvrE,EAAW8D,SAAW,+BAAgC9G,GAG3E,QA7ZQwd,KA8ZJ,MA7ZIxY,GAASgnE,KAAAhpE,EAAA8D,SAAA,iCAAA9G,GAwXjBkL,KAAK8T,iBAAmBA,EACxB9T,KAAK4S,kBAAoBA,EA5ZzB5S,KAAAsS,oBAASA,EA8ZTtS,KA7ZIwS,oBAAkBA,EA8ZtBxS,KAAK2U,eAAiBA,EACtB3U,KAAK4U,kBAAoBA,CAGzB,IA7ZI9f,IA8ZAoN,SACIi/D,MA7ZIrpE,EAASqK,QA2YzBhO,QACKC,OA7ZG,6BA8ZH8U,QA7ZO,uBAAoB8I,GA+ZhCA,EAAqBovD,SAAW,QAAS,iBA8C7C,WAEI,YArZH,SAAY60H,GAAAn8L,EAAAhC,GAgBL,QAAKk/L,GAAAh8L,GA8ZD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GAG9E,QA7ZQshM,GAAoBp7L,GA8ZxB,MAAOlB,GAAMitE,IAAIjvE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GA1Z7E,QAAS8hM,GAAAhuK,GACL,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,6BAAAgtB,EAAA9zB,GAG5C,QAASohM,KACL,MAAOp8L,GAAMupE,IAAAvrE,EAAK8D,SAAW,oCAAW9G,GA+Z5C,QAASoiM,KA5ZT,MAASp9L,GAAAupE,IAAAvrE,EAAiB8D,SAAS,+BAAA9G,GA9BvCkL,KAAAg3L,sBAAAA,EA8ZIh3L,KAAKk2L,yBAA2BA,EA5ZpCl2L,KAAAo2L,uBAAAA,EA+ZIp2L,KA7ZC42L,yBAAQA,EA8ZT52L,KAAKk3L,kBAAoBA,CA1Z7B,IAAApiM,IA8ZQoN,SA5ZCi/D,MAAArpE,EAAAqK,QA2YThO,QACKC,OAAO,kCACP8U,QAAQ,4BAA6B+sL,GAE1CA,EAA0B70H,SAAW,QAAS,iBAuClD,WAEI,YAQA,SAAS2zH,GAAyBj7L,EAAOhC,GAarC,QAASm9L,GAAqBj6L,GA5Z9B,MAAKlB,GAAAgnE,KAAAhpE,EAAsB8D,SAAA,yCAAAZ,EAAAlG,GAE3B,QAAKihM,GAAyBntK,GAC1B,MAAA9uB,GAASouE,OAAApwE,EAAA8D,SAAA,4BAAAgtB,EAAA9zB,GAgab,QAAS+gM,GAAsBn6C,GAC3B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4B8/I,EAAS5mJ,GAGjF,QA7ZI8gM,GAAkBqvC,GA8ZlB,MAAOnrO,GAAMitE,IAAIjvE,EAAW8D,SAAW,2BAA4BqpO,EAAmBnwO,GArb9FkL,KAAA+1L,wBAAAA,EA8ZI/1L,KAAKi1L,qBAAuBA,EA5ZhCj1L,KAAA61L,sBAAAA,EA8ZI71L,KA7ZC41L,sBAAOA,CAGZ,IAAA9gM,IA8ZQoN,SACIi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OAAO,iCACP8U,QAAQ,2BAA4B6rL,GAEzCA,EAAyB3zH,SAAW,QAAS,iBAwCjD,WA3ZC,YAQG,SAAAg2H,GAA2Bt9L,EAAWhC,GAiBlC,QAAKy/L,KA8ZD,MAAOz9L,GAAMupE,IAAIvrE,EAAW8D,SAAW,mCAAoC9G,GA1Z/E,QAAKijM,GAAA/8L,GACL,MAAKlB,GAAAgnE,KAAAhpE,EAAA8D,SAAkC,wBAAAZ,EAAAlG,GAgavC,QA7ZI2iM,GAASz8L,GA8ZT,MA7ZIlB,GAASitE,IAAAjvE,EAAW8D,SAAA,wBAAAZ,EAAAlG,GAxBhCkL,KAAS+3L,kBAAAA,EA8ZL/3L,KAAKy3L,mBAAqBA,EA1Z1Bz3L,KAAKu3L,qBAAqBA,CAI1B,IAAAziM,IACAoN,SACKi/D,MAAArpE,EAAAqK,QAlBThO,QA8ZKC,OAAO,8BA5ZZ8U,QAAA,wBAAAkuL,GA+ZAA,EA7Zah2H,SAAA,QAAA,iBAscjB,WAEI,YAQA,SA7ZI62H,GAASn+L,EAAmBhC,GA4a5B,QAAS8gM,GA7ZY59L,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAsBZ,EAAKlG,GAGvE,QA7ZIsjM,GAAkBp9L,GA8ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAsBZ,EAAKlG,GA3ZvE,QAASojM,KACL,MAAIp+L,GAASupE,IAAAvrE,EAAA8D,SAAA,6BAAA9G,GA+ZjB,QAAS0jM,GA7ZY5vK,GA8ZjB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,sBAAwBgtB,EAAI9zB,GAxB1EkL,KAAK44L,eAAiBA,EACtB54L,KAAKo4L,gBAAkBA,EAEvBp4L,KA7ZIw4L,kBAAkBA,EA8ZtBx4L,KAAKk4L,kBAAoBA,CAGzB,IA7ZIpjM,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAjBhChO,QACKC,OAAO,2BA5ZR8U,QAAS,qBAAqB+uL,GA+ZlCA,EAAmB72H,SAAW,QAAS,iBAkC3C,WAEI,YAQA,SAAS0zH,GAAwBh7L,EAAOhC,GA/YpC,QAASihM,GAAAr9C,GACL,MAAO5hJ,GAAMupE,IAAAvrE,EAAK8D,SAAW,+BAAW8/I,EAAA5mJ,GAG5C,QAASskM,GAAA19C,GACL,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAAA8/I,EAAA5mJ,GAG5C,QAASqgM,GAAA+vC,GACL,MAAOprO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAAspO,EAAqDpwO,GAkajG,QAASqkM,GAAoB+rC,GA5ZpC,MAAYprO,GAAAitE,IAAAjvE,EAAA8D,SAAA,yBAAAspO,EAAApwO,GAIT,QAAAwkM,GAAA1wK,GACK,MAAO9uB,GAAAouE,OAAApwE,EAAA8D,SAAA,0BAAAgtB,EAAA9zB,GAhCRkL,KAAA+4L,eAASA,EA8ZT/4L,KA7ZIo5L,mBAAkBA,EA8ZtBp5L,KAAKm1L,mBAAqBA,EAC1Bn1L,KAAKm5L,oBAAsBA,EA5Z3Bn5L,KAAAs5L,sBAASA,CA8ZT,IA7ZIxkM,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OA7ZG,gCA8ZH8U,QAAQ,0BAA2B4rL,GAExCA,EA7Za1zH,SAAqB,QAAA,iBAwctC,WAEI,YAQA,SAAS5rD,GAAY1b,EAAOhC,GArY5B,QAAAqtO,GAAAnqO,GA8ZQ,GAAIlG,IA5ZHoN,SA8ZOi/D,MAASrpE,EAAWqK,OA3Z3Bk/D,aAAiB,cAEtB,OAAKvnE,GAAAgnE,KAAAhpE,EAA2B8D,SAAA,sBAAAZ,EAAAlG,GAGhC,QAAK4gB,GAAAsyD,GACD,MAAAluE,GAASupE,IAAAvrE,EAAA8D,SAAA,eAAA9G,GAgab,QAAS0qB,GAAgBoJ,GACrB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAA0BgtB,EAAI9zB,GAGzE,QA7ZIstI,GAAkBhqH,GA8ZlB,MAAOte,GAAMupE,IAAIvrE,EAAW8D,SAAW,yBAA2Bwc,EAAStjB,GA1Z/E,QAASswO,GAAep9J,GACpB,MAAOluE,GAAMupE,IAAAvrE,EAAK8D,SAAW,eAAW9G,GAG5C,QAAS0jB,GAAAjC,GACL,MAAOzc,GAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAA2a,EAAAzhB,GAG5C,QAASwjB,GAAA/B,GACL,MAAOzc,GAAMitE,IAAIjvE,EAAW8D,SAAW,cAAA2a,EAAAzhB,GAG3C,QAASijB,GAAA6Q,GACL,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,eAAAgtB,EAAA9zB,GA+Z5C,QAAS2jB,GAAiBmQ,GA5Z1B,MAAS9uB,GAAAgnE,KAAAhpE,EAAqB8D,SAAM,qBAAAgtB,KAAA9zB,GAgapC,QAAS8jB,GAASysN,GACd,MAAOvrO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAoBypO,EAAOvwO,GAGvE,QAAS+jB,GAAY+P,GACjB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAsBgtB,EAAI9zB,GA1Z7E,QAAYsiB,GAAAiuN,GA8ZD,MAAOvrO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA0BypO,EAAOvwO,GAE7E,QAASghB,KA5Zb,MAAAhc,GAAAupE,IAAAvrE,EAAA8D,SAAA,mBAAA9G,GA5EIkL,KAAAwY,QAASA,EA8ZTxY,KAAKsY,SAAWA,EAChBtY,KA7ZI+X,WAAaA,EA8ZjB/X,KAAK0V,WAAaA,EA5ZlB1V,KAAAwf,gBAASA,EA8ZTxf,KA7ZIolO,eAAkBA,EA8ZtBplO,KAAKoiI,oBAAsBA,EAC3BpiI,KAAKyY,iBAAmBA,EACxBzY,KA7ZEmlO,eAASA,EA8ZXnlO,KA7ZI4Y,SAAOA,EA8ZX5Y,KAAK6Y,YAAcA,EACnB7Y,KAAK8V,YAAcA,EACnB9V,KAAKoX,kBAAoBA,CAxZ7B,IAAAtiB,IA8ZQoN,SA5ZRi/D,MAAArpE,EAAAqK,QAmYAhO,QACKC,OA7ZO,oBA8ZP8U,QAAQ,cAAesM,GAE5BA,EAAY4rD,SAAW,QAAS,iBAwFpC,WAEI,YAQA,SA7ZI3rD,GAAS3b,EAAAhC,GAgBhB,QAAY0lB,GAAAwqD,GA8ZD,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,eAAgB9G,GA1Z/D,QAAAwwO,GAAAt9J,GACK,MAAOluE,GAAAupE,IAAAvrE,EAAA8D,SAAA,kBAAA9G,GAGZ,QAAAkpB,GAAqBN,GA8Zb,MAAO5jB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAe8hB,EAAM5oB,GA1ZjE,QAAKipB,GAAAL,GACL,MAAK5jB,GAAAitE,IAAAjvE,EAAoB8D,SAAA,cAAA8hB,EAAA5oB,GAGzB,QAAK8oB,GAAAgL,GACL,MAAK9uB,GAAAouE,OAAApwE,EAAoB8D,SAAA,eAAAgtB,EAAA9zB,GAGzB,QAAI+hB,GAAS+R,GACT,MAAA9uB,GAASupE,IAAAvrE,EAAA8D,SAAA,yBAAAgtB,EAAA9zB,GA+Zb,QAASmpB,GAAiB2K,GACtB,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAuBgtB,KAAQ9zB,GAvC3EkL,KA7ZIge,QAAOA,EA8ZXhe,KAAK+d,SAAWA,EA5ZhB/d,KAAA4d,WAASA,EA8ZT5d,KA7ZIwd,WAAaA,EA8ZjBxd,KAAKslO,YAAcA,EACnBtlO,KA7ZC6W,iBAASA,EA8ZV7W,KA7ZIie,iBAAkBA,CAgatB,IA7ZEnpB,IACEoN,SA8ZIi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OA7ZG,oBA8ZH8U,QA7ZO,cAASuM,GA+ZrBA,EAAY2rD,SAAW,QAAS,iBA+CpC,WAEI,YAQA,SA7ZItvD,GAAShY,EAAiBhC,GA+a1B,QAAS6/C,GAAcl6B,GA5Z3B,MAAA3jB,GAAAupE,IAAAvrE,EAAA8D,SAAA,qBAAA9G,GAgaI,QAAS8gB,GAAiB6H,GA5Z9B,MAAA3jB,GAAAupE,IAAAvrE,EAAoC8D,SAAU,+BAAA9G,GAga1C,QAASywO,GAAW7yL,GA5ZpB,MAAK54C,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,iBAAA82C,EAAA59C,GAga7B,QAAS2xB,GAAYisB,GA5ZrB,MAAK54C,GAAAitE,IAAAjvE,EAA2B8D,SAAA,iBAAA82C,EAAA59C,GAgahC,QAAS0wO,GAAc58M,GA5ZnB,MAAA9uB,GAASouE,OAAApwE,EAAA8D,SAAA,kBAAAgtB,EAAA9zB,GAgab,QAAS2wO,GAAehoN,GACpB,MAAO3jB,GAAMouE,OAAOpwE,EAAW8D,SAAW,mBAAoB9G,GAGlE,QA7ZI8wB,GAAkBnI,GA8ZlB,MAAO3jB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwB6hB,EAAY3oB,GAGhF,QA7ZI8wB,GAAiBnI,GA8ZjB,MAAO3jB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwB6hB,EAAY3oB,GAGhF,QA7ZI2wB,KA8ZA,MAAO3rB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAiC9G,GAG7E,QA7ZIuxB,GAA4B5I,GA8Z5B,MAAO3jB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmC6hB,EAAY3oB,GAtD3FkL,KA7ZIulO,WAAaA,EA8ZjBvlO,KAAKymB,YAAcA,EACnBzmB,KAAKwlO,cAAgBA,EACrBxlO,KAAK23C,cAAgBA,EA5ZrB33C,KAAAylO,eAASA,EA8ZTzlO,KA7ZI4V,iBAAiBA,EA8ZrB5V,KAAK4lB,oBAAsBA,EAC3B5lB,KAAKylB,qBAAuBA,EA5Z5BzlB,KAAAqmB,wBAA+BA,CAga/B,IAAIvxB,IACAoN,SACIi/D,MAASrpE,EAAWqK,QApBhChO,QA5ZIC,OAAA,uBA8ZC8U,QA7ZG,iBAAoB4I,GA+Z5BA,EAAesvD,SAAW,QAAS,iBAiEvC,WAEI,YAQA,SA7ZSvvD,GAAA/X,EAAAhC,GA8aL,QAASooE,GAAY8H,GACjB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,iBAAkB9G,GAG7D,QAAS6iD,GAAcqwB,GACnB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,qBAAsB9G,GAGjE,QAAS4wO,GAAa19J,GAClB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,oBAAqB9G,GAGhE,QAAS4rE,GAAS1rE,GACd,MAAO8E,GAAMgnE,KAAKhpE,EAAW8D,SAAW,eAAgB5G,EAAOF,GAGnE,QAAS0rE,GAAUxrE,GACf,MAAO8E,GAAMitE,IAAIjvE,EAAW8D,SAAW,eAAgB5G,EAAOF,GA1ZzE,QAAYwrE,GAAA13C,GA8ZD,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,gBAAkBgtB,EAAI9zB,GA1ZxE,QAAAuhB,GAAAuS,GACK,MAAO9uB,GAAAupE,IAAAvrE,EAAA8D,SAAA,6BAAAgtB,EAAA9zB,GA+ZR,QAASurE,GAAkBz3C,GA5Z/B,MAAA9uB,GAAAgnE,KAAsBhpE,EAAW8D,SAAS,sBAAAgtB,KAAA9zB,GA5CtCkL,KAAK0gE,SAAAA,EACL1gE,KAAKwgE,UAAAA,EACLxgE,KAAKsgE,YAAAA,EA8ZLtgE,KAAKkgE,YAAcA,EACnBlgE,KAAK23C,cAAgBA,EA5ZrB33C,KAAI0lO,aAASA,EA8Zb1lO,KA7ZIqW,oBAASA,EA8ZbrW,KAAKqgE,kBA7ZYA,CAgajB,IAAIvrE,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QA0Y1BhO,QA5ZKC,OAAA,qBA8ZA8U,QAAQ,eAAgB2I,GAE7BA,EAAauvD,SAAW,QAAS,iBAoDrC,WAEI,YAQA,SAASmiF,GAA2BzpJ,EAAOhC,GAoBvC,QAAS8sM,KACL,MAAO9qM,GAAMupE,IAAIvrE,EAAW8D,SAAW,6CAA8C9G,GAGzF,QAASoxD,KACL,MAAOpsD,GAAMupE,IAAIvrE,EAAW8D,SAAW,oCAAqC9G,GA1ZpF,QAAAgwM,KA8ZQ,MAAOhrM,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAiC9G,GAI5E,QAAS6wO,GAA2B39J,GA5ZxC,MAAAluE,GAAmBupE,IAAAvrE,EAAW8D,SAAS,gDAAA9G,GAganC,QAAS4wM,GAAuB0D,GA5ZhC,MAAKtvM,GAAAgnE,KAAiBhpE,EAAA8D,SAAA,6BAAAwtM,EAAAt0M,GAGtB,QAAK2wM,GAAoB2D,GACzB,MAAKtvM,GAAAitE,IAAAjvE,EAAoB8D,SAAA,6BAAAwtM,EAAAt0M,GAGzB,QAAIwwM,GAAS18K,GACT,MAAA9uB,GAASouE,OAAApwE,EAAA8D,SAAA,8BAAAgtB,EAAA9zB,GAgab,QAASywM,GAAgC38K,GACrC,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAsCgtB,KAAQ9zB,GAG1F,QAASk5J,GAA6B45C,GAClC,MAAO9tM,GAAMupE,IAAIvrE,EAAW8D,SAAW,uDAAwD9G,GAzZnG,QAAS6wM,GAAoB3qM,GACzB,GAAAlG,IA8ZIoN,SA5ZCi/D,MAAArpE,EAAsBqK,OA+ZvBk/D,aAAc,cAElB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAA+CZ,EAAKlG,GAhEhGkL,KAAK0lM,uBAAyBA,EAC9B1lM,KAAKylM,wBAA0BA,EAC/BzlM,KAAKslM,0BAA4BA,EA5ZjCtlM,KAAA4kM,0BAAgCA,EA8ZhC5kM,KA7ZI2lO,2BAA4BA,EA8ZhC3lO,KAAKulM,gCAAkCA,EACvCvlM,KAAKguJ,6BAA+BA,EA5ZpChuJ,KAAAkmD,cAASA,EA8ZTlmD,KA7ZI8kM,UAAaA,EA8ZjB9kM,KAAK2lM,4BAA8BA,CAInC,IAAI7wM,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAtBhChO,QACKC,OAAO,+BACP8U,QAAQ,6BAA8Bq6I,GAE3CA,EA7ZiBniF,SAAA,QAAA,iBAserB,WAEI,YAQA,SA7ZS+0D,GAAAr8H,EAAqBhC,GA2a1B,QAAS+uM,GAAkBvxD,GA5Z3B,MAASx7I,GAAAgnE,KAAAhpE,EAAmB8D,SAAS,wCAAA05I,EAAAxgJ,GAgarC,QAAS+2I,GAAsBs4F,GA5Z/B,MAASrqO,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,mCAAiBuoO,EAAArvO,GAga7C,QAASiyM,GAAe76D,GACpB,MAAOpyI,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2CAA4CswI,EAAWp3I,GAGnG,QA7ZI8mI,GAAiB0Z,GA8ZjB,MAAOx7I,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAAyC05I,EAAKxgJ,GA1Z1F,QAASwxM,GAAA19K,GACL,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,yCAAgCgtB,EAAA9zB,GA9B9EkL,KAAK+mM,eAAAA,EACL/mM,KAAK47H,kBAAAA,EACL57H,KAAK6mM,kBAAAA,EACL7mM,KAAIsmM,WAASA,EA8ZbtmM,KA7ZI6rI,sBAASA,CAgab,IAAI/2I,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAhBhChO,QA5ZAC,OAAA,+BA8ZK8U,QAAQ,qBAAsBitH,GAEnCA,EAAmB/0D,SAAW,QAAS,iBAsC3C,WA3ZC,YAQG,SAAA60D,GAAuBn8H,EAAShC,GA6a5B,QAASovM,KACL,MAAOptM,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAiC9G,GA1Z5E,QAAI4iI,KACA,MAAA59H,GAASupE,IAAAvrE,EAAA8D,SAAA,0CAAA9G,GAgab,QAAS4yM,GAAgBh1J,GACrB,MAAO54C,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAuB82C,EAAS59C,GAG5E,QA7ZQ2yM,GAAS/0J,GA8Zb,MAAO54C,GA7ZCitE,IAASjvE,EAAW8D,SAAA,sBAAA82C,EAAA59C,GAgahC,QAASyyM,GAAmB3+K,GA5ZxB,MAAO9uB,GAAMouE,OAAKpwE,EAAW8D,SAAW,uBAAuBgtB,EAAK9zB,GAGxE,QAAS8wO,GAAWnoN,GAChB,MAAO3jB,GAAMouE,OAAIpwE,EAAW8D,SAAW,wBAAgB9G,GAG3D,QAASwyM,GAAoB1+K,GACzB,MAAO9uB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,6BAA8BgtB,KAAA9zB,GAqXzEkL,KAAK0nM,gBAAkBA,EA5Z3B1nM,KAASynM,iBAAmBA,EACxBznM,KAAKunM,mBAAUA,EACfvnM,KAAKknM,mBAAWA,EAChBlnM,KAAK4lO,oBAAaA,EAClB5lO,KAAK03H,sBAAaA,EAClB13H,KAAKsnM,yBAAkBA,CAGvB,IAAAxyM,IACAoN,SACKi/D,MAAWrpE,EAAAqK,QAlBpBhO,QA8ZKC,OAAO,+BA5ZZ8U,QAAA,sBAAA+sH,GA+ZAA,EA7Za70D,SAAe,QAAA,iBA6chC,WAEI,YAQA,SA7ZIykI,GAAwB/rM,EAAAhC,GAexB,QAASkwM,GAAgBhgI,GACrB,MAAOluE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAA0BosE,EAAAlzE,GAGtE,QAAS+wO,GAAyB79J,GAC9B,MAAOluE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAiC9G,GAga7E,QA7ZI2zM,GAAiBq9B,GA8ZjB,MAAOhsO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmDkqO,EAAmBhxO,GAGlH,QAAS0zM,GAAuBs9B,GAC5B,MAAOhsO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAiDkqO,EAAmBhxO,GAGhH,QAASwzM,GAAyB1/K,GA5Z9B,MAAA9uB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,gDAAAgtB,EAAA9zB,GA8XJkL,KA7ZIyoM,sBAAiBA,EA8ZrBzoM,KAAKwoM,uBAAyBA,EAC9BxoM,KAAKsoM,yBAA2BA,EA5ZhCtoM,KAAAgoM,yBAAwBA,EA8ZxBhoM,KA7ZI6lO,0BAAoBA,CAiarB,IAAI/wO,IACHoN,SA5ZJi/D,MAASrpE,EAAgBqK,QA4Y7BhO,QACKC,OAAO,+BA5ZR8U,QAAS,4BAAc28L,GA+Z3BA,EAA0BzkI,SAAW,QAAQ,iBA2CjD,WAEI,YAQA,SAAS80D,GAA4Bp8H,EAAOhC,GAoBxC,QA7ZIwhJ,GAAiBt+I,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAA+CZ,EAAKlG,GAIhG,QAAS6zM,GAA2Bo9B,GAChC,MAAOjsO,GAAMupE,IAAIvrE,EAAW8D,SAAW,gDAAiD9G,GAG5F,QAASkxO,GAA4Bh+J,GA5ZrC,MAASluE,GAAAupE,IAAAvrE,EAAqB8D,SAAA,yCAAA9G,GAga9B,QAAS20M,GAAwB9uH,GAC7B,MAAO7gF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+B++E,EAAc7lF,GAGzF,QAAS00M,GAAyB7uH,GA5ZtC,MAAA7gF,GAAAitE,IAAAjvE,EAAA8D,SAAA,8BAAA++E,EAAA7lF,GAgaI,QA7ZQmxO,GAAAtrJ,GACP,MAAQ7gF,GAAAupE,IAAAvrE,EAAkB8D,SAAA,mDAAA9G,GAga3B,QAASu0M,GAA2BzgL,GA5ZxC,MAAS9uB,GAAAouE,OAAepwE,EAAO8D,SAAY,+BAAAgtB,EAAA9zB,GAGvC,QAAK8iI,GAAgBhvG,GACrB,MAAK9uB,GAAAupE,IAAgBvrE,EAAA8D,SAAA,0DAAAgtB,EAAA9zB,GAIrB,QAAKw0M,GAAuB1gL,GAC5B,MAAK9uB,GAAAgnE,KAAAhpE,EAA0B8D,SAAA,qCAAAgtB,KAAA9zB,GAG/B,QAAI4mI,GAASnB,GACT,MAAAzgI,GAASgnE,KAAAhpE,EAAA8D,SAAA,uCAAA2+H,EAAAzlI,GAgaV,QAAS40M,GAA+B1uM,GACvC,GAAIlG,IA5ZRoN,SACWi/D,MAAUrpE,EAAWqK,OA+ZxBk/D,aAAc,cA3ZlB,OAAOvnE,GAAMgnE,KAAIhpE,EAAW8D,SAAW,iDAAgCZ,EAAAlG,GApE3EkL,KAAIypM,wBAASA,EA8ZbzpM,KA7ZIwpM,yBAASA,EA8ZbxpM,KAAKqpM,2BA7ZuBA,EA8Z5BrpM,KAAK2oM,2BAA6BA,EAClC3oM,KAAKgmO,4BAA8BA,EACnChmO,KAAKimO,kCAAoCA,EA5ZzCjmO,KAAAspM,iCAAkCA,EA8ZlCtpM,KA7ZI43H,iDAAuCA,EA8Z3C53H,KAAK07H,iBAAmBA,EACxB17H,KAAKs5I,kBAAoBA,EA5ZzBt5I,KAAA0pM,+BAAmCA,CAInC,IAAA50M,IACIoN,SA8ZIi/D,MAASrpE,EAAWqK,QAvBhChO,QA5ZIC,OAAK,+BACL8U,QAAK,8BAAcgtH,GA+ZvBA,EA7Z4B90D,SAAA,QAAA,iBA0ehC,WAEI,YAQA,SA7ZQg1D,GAAoBt8H,EAAAhC,GAobxB,QAAS8kJ,GAAqB5hJ,GA5Z1B,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,2CAAAZ,EAAAlG,GAER,QAAA80M,GAAAs8B,GA8ZQ,MAAOpsO,GAAMupE,IAAIvrE,EAAW8D,SAAW,iCAAkC9G,GAG7E,QA7ZSqxO,GAAgBn+J,GA8ZrB,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,sCAAuC9G,GA1ZtF,QAAS81M,GAAoBw7B,GACzB,MAAKtsO,GAAWgnE,KAAAhpE,EAAA8D,SAAA,uBAAAwqO,EAAAtxO,GAGhB,QAAK61M,GAAcy7B,GACnB,MAAKtsO,GAAAitE,IAAgBjvE,EAAA8D,SAAA,uBAAAwqO,EAAAtxO,GAGrB,QAAKuxO,GAAoBD,GA8ZrB,MAAOtsO,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA4C9G,GAGvF,QA7ZI01M,GAAS5hL,GA8ZT,MA7ZI9uB,GAASouE,OAAApwE,EAAW8D,SAAA,wBAAAgtB,EAAA9zB,GAga5B,QAAS4jI,GAAyB9vG,GA5ZlC,MAAS9uB,GAAAupE,IAAYvrE,EAAA8D,SAAc,+CAAAgtB,EAAA9zB,GAInC,QAAS21M,GAAc7hL,GACnB,MAAO9uB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,8BAAsBgtB,KAAA9zB,GAGjE,QAASswJ,GAA2Bx8H,GAChC,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,8CAAqBgtB,KAAA9zB,GAGhE,QAAS+1M,GAAgB7vM,GACrB,GAAAlG,IA8ZIoN,SACIi/D,MAASrpE,EAAWqK,OA3Z5Bk/D,aAAiB,cA+ZjB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CZ,EAAKlG,GArE5FkL,KAAK4qM,iBAAmBA,EACxB5qM,KAAK2qM,kBAAoBA,EA5ZzB3qM,KAAAwqM,oBAASA,EA8ZTxqM,KA7ZI4pM,oBAAkBA,EA8ZtB5pM,KAAKmmO,qBAAuBA,EAC5BnmO,KAAKqmO,2BAA6BA,EA5ZlCrmO,KAAAyqM,0BAA6BA,EA8Z7BzqM,KA7ZI04H,yBAAkBA,EA8ZtB14H,KAAKolJ,6BAA+BA,EACpCplJ,KAAK48I,qBAAuBA,EA5Z5B58I,KAAA6qM,wBAASA,CAmaT,IAAI/1M,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAzBhChO,QA5ZIC,OAAA,+BA8ZC8U,QA7ZG,uBAAoBktH,GA+Z5BA,EAAqBh1D,SAAW,QAAS,iBA+E7C,WAEI,YAQA,SAAS0kI,GAAyBhsM,EAAOhC,GA9YrC,QAAKwiJ,GAAgBt/I,GACrB,MAAKlB,GAAYgnE,KAAAhpE,EAAA8D,SAAA,mCAAAZ,EAAAlG,GAgajB,QAASmvO,GAAeC,GACpB,MAAOpqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAAyCsoO,EAAgBpvO,GAGrG,QA7ZQq4I,GAAoBg3F,GA8ZxB,MAAOrqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CuoO,EAAYrvO,GA1ZnG,QAAS6lJ,GAAAzO,GACL,MAAOpyI,GAAMgnE,KAAIhpE,EAAW8D,SAAW,0CAAAswI,EAA8Cp3I,GAGzF,QAASomJ,GAAAkpF,GACL,MAAOtqO,GAAMgnE,KAAIhpE,EAAW8D,SAAW,0CAAqCwoO,EAAAtvO,GAGhF,QAASimJ,GAAY7pD,GACjB,MAAOp3F,GAAMgnE,KAAIhpE,EAAW8D,SAAW,0CAAiCs1F,EAAAp8F,GAnChFkL,KAAA26I,YAAAA,EA8ZI36I,KA7ZCk7I,eAAOA,EA8ZRl7I,KA7ZC+6I,kBAAQA,EA8ZT/6I,KAAKikO,eAAiBA,EA5Z1BjkO,KAAAmtI,mBAA2BA,EA8ZvBntI,KAAKs6I,eAAiBA,CA1ZtB,IAAAxlJ,IACAoN,SACKi/D,MAAArpE,EAAAqK,QA4YThO,QACKC,OAAO,+BACP8U,QAAQ,2BAA4B48L,GAEzCA,EAAyB1kI,SAAW,QAAS,iBA2CjD,WAEI,YAQA,SAASkqI,GAAWxxM,EAAOhC,GAYvB,QAAS2zM,GAAgBzwM,GA3ZzB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAiC,sBAAAZ,EAAAlG,GAga1C,QAAS62M,GA7ZY3wM,GA+ZjB,MA7ZIlB,GAAAgnE,KAAchpE,EAAA8D,SAAA,4BAAAZ,EAAAlG,GAgatB,QAAS03M,GAAQxxM,GAEb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAcZ,EAAKlG,GAvBnEkL,KA7ZIyrM,gBAASA,EA8ZbzrM,KAAK2rM,sBA7ZuBA,EA8Z5B3rM,KAAKwsM,QAAUA,CAGX,IA7ZI13M,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAdhChO,QACKC,OAAO,kCACP8U,QAAQ,aAAcoiM,GAEvBA,EA7ZWlqI,SAAU,QAAA,iBA4b7B,WA3ZI,YAqaA,SA7ZS+uI,GAAAr2M,EAAAhC,GAgBL,QAASg5M,GAAA91M,GA+ZL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAmBZ,EAAKlG,GA3ZpE,QAASm8M,GAAej2M,GA+ZpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA6BZ,EAAKlG,GA3Z9E,QAASu7M,GAAkBr1M,GA+ZvB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAuBZ,EAAKlG,GA3ZxE,QAAS68M,GAAe32M,GA+ZpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA0BZ,EAAKlG,GAE3E,QAASk9M,GAAqBh3M,GA3Z1B,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,0BAAAZ,EAAAlG,GAER,QAAA49M,GAAA13M,GAEA,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,sBAAAZ,EAAAlG,GA+ZI,QA7ZSq9M,GAAAn3M,GAEb,MAAAlB,GAAoBgnE,KAAAhpE,EAAW8D,SAAS,qBAAAZ,EAAAlG,GAExC,QAASg+M,GAAA93M,GAEL,MAAKlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,YAAAZ,EAAAlG,GAgX5BkL,KA7ZI8wM,cAAKA,EA8ZT9wM,KA7ZIixM,wBAAkBA,EA8ZtBjxM,KA7ZIqwM,kBAAKA,EA8ZTrwM,KAAK2xM,qBAAuBA,EAC5B3xM,KAAKgyM,qBAAuBA,EAC5BhyM,KA7ZI0yM,iBAAaA,EA8ZjB1yM,KAAKmyM,gBA7ZYA,EA8ZjBnyM,KAAK8yM,OA7ZOA,CA+ZR,IAAIh+M,IACAoN,SA5ZJi/D,MAASrpE,EAAkBqK,QA2Y/BhO,QACKC,OAAO,kCA5ZZ8U,QAAA,YAAmBinM,GAEnBA,EAAS/uI,SAAA,QAAmB,iBAidhC,WAEI,YAQA,SA7ZImzI,GAASz6M,EAAAhC,GA4aT,QAAS48M,GAAe15M,GA3ZpB,MAAOlB,GAAMgnE,KAAAhpE,EAAO8D,SAAW,qBAAWZ,EAAAlG,GA+Z9C,QAASigN,GAAa/5M,GA3ZlB,MAAOlB,GAAMgnE,KAAAhpE,EAAO8D,SAAW,mBAAWZ,EAAAlG,GA+Z9C,QAASqgN,GAAYn6M,GA3ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kBAAAZ,EAAAlG,GA+Z5C,QAASygN,GAAmBv6M,GAExB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAAyBZ,EAAKlG,GAE1E,QAAS4gN,GAAmB16M,GAExB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAAyBZ,EAAKlG,GAE1E,QA7ZQ0hN,GAAAx7M,GA+ZJ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,aAAaZ,EAAKlG,GAE9D,QAASmiN,GAAQj8M,GA5ZrB,GAASlG,IACAoN,SACAi/D,MAAArpE,EAAyBqK,OAka1B,OA/ZJrN,GAAKoN,QAAA,gBAA4BxM,OA+ZtBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAcZ,EAAKlG,GA9CnEkL,KAAK00M,eA7ZgBA,EA8ZrB10M,KAAK+0M,aAAeA,EACpB/0M,KAAKm1M,YAAcA,EACnBn1M,KA7ZIu1M,mBAASA,EA8Zbv1M,KAAK01M,mBA7ZoBA,EA8ZzB11M,KAAKw2M,OAASA,EACdx2M,KAAKi3M,QAAUA,CAEX,IA7ZIniN,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAjBhChO,QACKC,OA7ZG,kCA8ZH8U,QA7ZO,aAASqrM,GA+ZjBA,EAAWnzI,SAAW,QAAS,iBAsDvC,WAEI,YAQA,SAASiqI,GAAWvxM,EAAOhC,GAoBvB,QAAS08M,GAAcx5M,GAEnB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAuBZ,EAAKlG,GAExE,QA7ZQqkN,GAAAn+M,GA+ZJ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAwBZ,EAAKlG,GAEzE,QAASukN,GAAgBr+M,GA3ZzB,MAAKlB,GAAAgnE,KAAAhpE,EAA0B8D,SAAA,yBAAAZ,EAAAlG,GAE/B,QAAK4kN,GAAA1+M,GAEL,MAAKlB,GAAAgnE,KAAAhpE,EAAA8D,SAA8B,2BAAAZ,EAAAlG,GAEnC,QAAK24M,GAAAzyM,GAEL,MAAKlB,GAAAgnE,KAAAhpE,EAAmB8D,SAAA,wBAAAZ,EAAAlG,GAExB,QAAK84M,GAAA5yM,GA+ZD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAoBZ,EAAKlG,GA3ZrE,QAAI+8H,GAAS72H,GA+ZT,MA7ZIlB,GAASgnE,KAAAhpE,EAAW8D,SAAA,iBAAAZ,EAAAlG,GA+Z5B,QAAS88E,GAAY52E,GA3ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAAZ,EAAAlG,GA+Z5C,QAAS8lH,GAAO5/G,GA3ZhB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAA2B,gBAAAZ,EAAyBlG,GA+Z7D,QAAS0lN,GAAiBx/M,GA3Z1B,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAA4B,uBAAcZ,EAAAlG,GA+ZnD,QAASqmN,GAAQngN,GA3ZjB,MAASlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,aAAcZ,EAAAlG,GA+Z/C,QAASykN,GAAOv+M,GA3ZhB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAyB,aAAcZ,EAAAlG,GA4VpDkL,KA7ZIw0M,cAASA,EA8Zbx0M,KAAKm5M,eA7ZgBA,EA8ZrBn5M,KAAKq5M,gBAAkBA,EACvBr5M,KAAK05M,kBAAoBA,EACzB15M,KA7ZIytM,aAASA,EA8ZbztM,KAAK4tM,WA7ZUA,EA8Zf5tM,KAAK6xH,QAAUA,EACf7xH,KAAK4xE,YAAcA,EACnB5xE,KA7ZI46G,OAASA,EA8Zb56G,KAAKw6M,iBA7ZgBA,EA8ZrBx6M,KAAKm7M,QAAUA,EACfn7M,KAAKu5M,OAASA,CAEV,IAAIzkN,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAtBhChO,QACKC,OAAO,kCACP8U,QAAQ,aAAcmiM,GAEvBA,EA7ZWjqI,SAAW,QAAA,iBAqe9B,WAEI,YAQA,SAASgsI,GAA0BtzM,EAAOhC,GAgBtC,QA7ZQw1M,GAAAtyM,GAEJ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAAZ,EAAAlG,GA+Z5C,QAAS8nN,GAAa5hN,GAClB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG;CAEvF,QAASqnN,GAAgBnhN,GA5ZrB,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,kCAAAZ,EAAAlG,GAER,QAAA84M,GAAA5yM,GA8ZQ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAEnF,QA7ZQsnN,GAAAphN,GACP,MAAQlB,GAAAgnE,KAAAhpE,EAAwB8D,SAAA,2CAAAZ,EAAAlG,GAErC,QAAAsoN,GAAqBpiN,GA8Zb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GA3Z9E,QAAKqoN,GAAmB7nE,GACxB,MAAKx7I,GAAAitE,IAAAjvE,EAAoB8D,SAAA,4BAAA05I,EAAAxgJ,GAEzB,QAAKyoN,GAAsBviN,GAC3B,MAAKlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,4BAAAZ,EAAAlG,GAuX5BkL,KAAKstM,YAAcA,EACnBttM,KAAK48M,aAAeA,EA5ZpB58M,KAAAm8M,gBAASA,EA8ZTn8M,KA7ZI4tM,WAAaA,EA8ZjB5tM,KAAKo8M,oBAAsBA,EAC3Bp8M,KAAKo9M,iBAAmBA,EACxBp9M,KA7ZCm9M,oBAA0BA,EA8Z3Bn9M,KA7ZIu9M,oBAAkBA,CA+ZtB,IAAIzoN,IA5ZDoN,SACKi/D,MAASrpE,EAAAqK,QA2YrBhO,QACKC,OA7ZG,kCA8ZH8U,QAAQ,4BAA6BkkM,GAE1CA,EA7ZahsI,SAAA,QAAA,iBA0cjB,WAEI,YAQA,SAASisI,GA7ZuBvzM,EAAAhC,GA6a5B,QA7ZI2lN,GAA6BziN,GA8Z7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgDZ,EAAKlG,GA3ZjG,QAASopN,GAAAljN,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,8BAAwBZ,EAAUlG,GA+Z7E,QAASmpN,GAAiB3oE,GA5Z1B,MAASx7I,GAAAitE,IAAAjvE,EAAA8D,SAA2B,8BAAU05I,EAAAxgJ,GA+Z9C,QAASwpN,GAAiBtjN,GACtB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAEhF,QA7ZI24M,GAAazyM,GA8Zb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAoCZ,EAAIlG,GA3ZpF,QAAS84M,GAAA5yM,GACL,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,kCAAAZ,EAAAlG,GA+X3CkL,KAAKy9M,yBAA2BA,EAChCz9M,KAAKk+M,cAAgBA,EA5ZrBl+M,KAAAi+M,iBAASA,EA8ZTj+M,KA7ZIytM,aAAaA,EA8ZjBztM,KAAK4tM,WAAaA,EA5ZlB5tM,KAAAs+M,iBAASA,CA+ZT,IAAIxpN,IACAoN,SA5ZJi/D,MAASrpE,EAAAqK,QA4YbhO,QACKC,OAAO,kCACP8U,QAAQ,8BAA+BmkM,GA3ZxCA,EAAajsI,SAAA,QAAA,iBAmcrB,WAEI,YAQA,SAASw9F,GA7ZY9kK,EAAAhC,GAgajB,QA7ZQquE,GAAciW,GA8ZlB,MAAOtiF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAA4BwgF,GAHxEp8E,KAAKmmE,aA7ZOA,EAsZhBhyE,QACKC,OA7ZG,qCA8ZH8U,QAAQ,6BAA8B01J,GAE3CA,EA7Zex9F,SAAA,QAA6B,iBAyahD,WA3ZC,YAQG,SAAA40D,GAAyBl8H,EAAWhC,GA4ahC,QAASkqN,GAAU1sE,GACf,MAAOx7I,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gBAAiB05I,EAAKxgJ,GAGlE,QAAS+2I,GAAsBs4F,GAC3B,MAAOrqO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,eAAgBuoO,EAAYrvO,GAGxE,QAASotN,GAAOh2E,GACZ,MAAOpyI,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAoBswI,EAAWp3I,GAG3E,QAAS0iI,GAAU8d,GACf,MAAOx7I,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gBAAiB05I,EAAKxgJ,GAGlE,QAAS6sN,GAAU/4L,GACf,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,iBAAmBgtB,EAAI9zB,GAGrE,QAASwtN,GAAmBnkN,GACxB,GAAIrJ,IA5ZRoN,SACWi/D,MAAMrpE,EAAKqK,OAialB,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAC1BoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,yBAA0BuC,EAAUrJ,GAzChFkL,KAAKkiN,OAASA,EA5ZlBliN,KAASw3H,UAAAA,EACLx3H,KAAKgiN,UAAAA,EACLhiN,KAAK2hN,UAAAA,EACL3hN,KAAK6rI,sBAAoBA,EACzB7rI,KAAKsiN,mBAAiBA,CAgatB,IAAIxtN,IACAoN,SA5ZAi/D,MAASrpE,EAAAqK,QAjBjBhO,QA8ZKC,OAAO,8BA5ZZ8U,QAAA,wBAAA8sH,GA+ZAA,EA7Za50D,SAAA,QAA4B,iBA8c7C,WAEI,YAQA,SAASs0D,GAAmB57H,EAAOhC,GAgB/B,QAASgoN,KACL,MAAOhmN,GAAMupE,IAAIvrE,EAAW8D,SAAW,8BAA+B9G,GAG1E,QA7ZIklI,KA8ZA,MAAOlgI,GAAMupE,IAAIvrE,EAAW8D,SAAW,wCAAyC9G,GAGpF,QAASwrN,GAAe5tK,GA5Z/B,MAAY54C,GAAAgnE,KAAAhpE,EAAA8D,SAAA,qBAAA82C,EAAA59C,GAgaL,QAASurN,GAAgB3tK,GA5Z7B,MAAA54C,GAAAitE,IAAAjvE,EAAA8D,SAAA,qBAAA82C,EAAA59C,GAgaI,QAASqrN,GAAkBv3L,GA5Z3B,MAAU9uB,GAAAouE,OAAWpwE,EAAS8D,SAAA,sBAAAgtB,EAAA9zB,GAGlC,QAAKwxO,GAAgB7oN,GAChB,MAAA3jB,GAAAouE,OAAApwE,EAA0B8D,SAAA,uBAAA9G,GAG/B,QAAKorN,GAAuBt3L,GACvB,MAAA9uB,GAAAgnE,KAAmBhpE,EAAA8D,SAAA,4BAAAgtB,KAAA9zB,GAqXpBkL,KAAKsgN,eAAiBA,EA5ZtBtgN,KAAIqgN,gBAASA,EA8ZbrgN,KA7ZImgN,kBAASA,EA8ZbngN,KAAK8/M,kBA7ZYA,EA8ZjB9/M,KAAKsmO,mBAAqBA,EAC1BtmO,KAAKg6H,qBAAuBA,EAC5Bh6H,KAAKkgN,wBAA0BA,CAG/B,IA7ZIprN,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OAAO,8BA5ZZ8U,QAAS,qBAAkBwsH,GAE3BA,EAAKt0D,SAAwB,QAAA,iBA6cjC,WAEI,YAQA,SAASs9I,GAAyB5kN,EAAOhC,GAkBrC,QAASmiF,GAAyBC,GA5ZlC,MAASpgF,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,6CAAAs+E,EAAAplF,GA+Z9B,QA7ZIyxO,GAA6BrsJ,GA8Z7B,MAAOpgF,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgDs+E,EAAsBplF,GAGlH,QA7ZI0xO,GAA6Bx+J,GA8Z7B,MAAOluE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqC9G,GA1ZxF,QAAY0qN,GAAAinB,GA8ZD,MAAO3sO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgD6qO,EAAmB3xO,GA1ZnH,QAAA4qN,GAAA+mB,GACK,MAAO3sO,GAAAgnE,KAAAhpE,EAAA8D,SAAA,oCAAA6qO,EAAA3xO,GAGR,QAAA6qN,GAA+B/2L,GA8Z3B,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6CgtB,EAAI9zB,GA3ZjG,QAAK4xO,GAAiBznB,GACjB,MAAAnlN,GAAegnE,KAAAhpE,EAAA8D,SAAA,mDAAA9G,GAqXhBkL,KA7ZIw/M,qBAAkBA,EA8ZtBx/M,KAAK0/M,sBAAwBA,EA5Z7B1/M,KAAA2/M,wBAA2BA,EA8Z3B3/M,KAAKi6E,yBAA2BA,EAChCj6E,KA7ZIwmO,yBAAkBA,EAEtBxmO,KAAA0mO,+BAAmCA,EA8ZnC1mO,KAAKumO,2BAA6BA,CAIlC,IAAIzxO,IA5ZAoN,SA8ZIi/D,MAASrpE,EAAWqK,QApBhChO,QA5ZIC,OAAA,8BA8ZC8U,QAAQ,2BAA4Bw1M,GAEzCA,EAAyBt9I,SAAW,QAAS,iBAgDjD,WAEI,YAQA,SA7ZQu0D,GAAkB77H,EAAWhC,GAkbjC,QAAS4qN,GAAgB1nN,GA5ZzB,MAASlB,GAAQupE,IAAAvrE,EAAK8D,SAAA,qCAAAZ,EAAAlG,GA+ZtB,QA7ZQ6tN,GAAS3nN,GA8Zb,MAAOlB,GA7ZCupE,IAASvrE,EAAW8D,SAAA,yCAAAZ,EAAAlG,GAgahC,QA7ZI8pN,GAAe0G,GA8Zf,MAAOxrN,GAAMupE,IAAIvrE,EAAW8D,SAAW,wCAAyC9G,GAGpF,QAAS6xO,GAAwB3+J,GAC7B,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,kCAAmC9G,GAG9E,QAASuuN,GAAoBP,GA5ZjC,MAAAhpN,GAAAgnE,KAAAhpE,EAAA8D,SAAA,0BAAAknN,EAAAhuN,GAgaI,QA7ZQsuN,GAAAN,GACP,MAAQhpN,GAAAitE,IAAAjvE,EAAc8D,SAAA,0BAAAknN,EAAAhuN,GAgavB,QAAS8xO,GAA0B9jB,GA5ZvC,MAAShpN,GAAWupE,IAAAvrE,EAAO8D,SAAY,iDAAA9G,GAGvC,QAAKmuN,GAAkBr6L,GAClB,MAAA9uB,GAAAouE,OAAoBpwE,EAAA8D,SAAA,2BAAAgtB,EAAA9zB,GAGzB,QAAKouN,GAAUt6L,GACV,MAAA9uB,GAAcgnE,KAAAhpE,EAAA8D,SAAA,iCAAAgtB,KAAA9zB,GAqaf,QA7ZQ2lI,GAAoBF,GA8ZxB,MAAOzgI,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAwC2+H,EAAgBzlI,GAIpG,QAASwuN,GAA2BtoN,GA5ZhC,GAAAlG,IA8ZIoN,SA5ZCi/D,MAAArpE,EAAoBqK,OAEzBk/D,aAAkB,cAEtB,OAASvnE,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,4CAAAZ,EAAAlG,GAqV9BkL,KAAKqjN,oBAAsBA,EA5Z3BrjN,KAAAojN,qBAA2BA,EA8Z3BpjN,KAAKijN,uBAAyBA,EAC9BjjN,KA7ZI4+M,uBAAkBA,EA8ZtB5+M,KAAK2mO,wBAA0BA,EA5Z/B3mO,KAAA4mO,0BAA0BA,EA8Z1B5mO,KAAKkjN,6BAA+BA,EACpCljN,KA7ZIy6H,4BAA6BA,EA8ZjCz6H,KAAK0iN,gBAAkBA,EA5ZvB1iN,KAAA2iN,oBAASA,EA8ZT3iN,KAAKsjN,2BAA4BA,CAIjC,IAAIxuN,IA5ZAoN,SA8ZIi/D,MAASrpE,EAAWqK,QAvBhChO,QACKC,OAAO,8BACP8U,QAAQ,0BAA2BysH,GAExCA,EA7Zav0D,SAAoB,QAAA,iBA6erC,WAEI,YAQA,SAASw0D,GAA2B97H,EAAOhC,GAxYvC,QAAS2rN,GAAYzoN,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gDAAgDZ,EAAKlG,GAGjG,QAAS0uN,GAA0BqjB,GAC/B,MAAO/sO,GAAMupE,IAAIvrE,EAAW8D,SAAW,8CAA+C9G,GA1Z9F,QAAAgyO,GAAA9+J,GA8ZQ,MAAOluE,GAAMupE,IAAIvrE,EAAW8D,SAAW,wCAAyC9G,GAGpF,QA7ZSsvN,GAAAyiB,GA8ZL,MAAO/sO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA8BirO,EAAwB/xO,GA1ZtG,QAASqvN,GAA0B0iB,GAC/B,MAAK/sO,GAAAitE,IAAcjvE,EAAA8D,SAAA,6BAAAirO,EAAA/xO,GAGnB,QAAKiyO,GAAaF,GAClB,MAAK/sO,GAAAupE,IAAAvrE,EAAsB8D,SAAA,kDAAA9G,GAG3B,QAAKkvN,GAAsBp7L,GA8ZvB,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,8BAAgCgtB,EAAI9zB,GAElF,QA7ZIgmI,GAAS+rG,GA8ZT,MA7ZI/sO,GAASupE,IAAAvrE,EAAW8D,SAAA,kEAAAirO,EAAA/xO,GA+Z5B,QAASmvN,GAAgCr7L,GACrC,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAsCgtB,KAAQ9zB,GAI1F,QAASuvN,GAA8BrpN,GA5ZvC,GAAAlG,IACIoN,SA8ZQi/D,MAASrpE,EAAWqK,OA3Z5Bk/D,aAAkB,cAEtB,OAASvnE,GAAAgnE,KAAWhpE,EAAK8D,SAAA,+CAAAZ,EAAAlG,GA9DzBkL,KAAAokN,uBAAsBA,EA8ZtBpkN,KAAKmkN,wBAA0BA,EAC/BnkN,KA7ZIgkN,0BAA6BA,EA8ZjChkN,KAAKwjN,0BAA4BA,EA5ZjCxjN,KAAA8mO,2BAA0BA,EA8ZzB9mO,KAAK86H,2CAA6CA,EACnD96H,KA7ZI+mO,iCAA6BA,EA8ZjC/mO,KAAKikN,gCAAkCA,EA5ZvCjkN,KAAAyjN,qBAAqBA,EA8ZrBzjN,KAAKqkN,8BAAgCA,CAIrC,IAAIvvN,IA5ZAoN,SA8ZIi/D,MAASrpE,EAAWqK,QAtBhChO,QACKC,OA7ZG,8BA8ZH8U,QAAQ,6BAA8B0sH,GAE3CA,EAA2Bx0D,SAAW,QAAS,iBAwEnD,WAEI,YArZH,SAAYy0D,GAAA/7H,EAAAhC,GAibL,QA7ZI0sN,GAASxpN,GA8ZT,MA7ZIlB,GAASgnE,KAAAhpE,EAAW8D,SAAA,4CAAAZ,EAAAlG,GAga5B,QAASyvN,GAAmByiB,GACxB,MAAOltO,GAAMupE,IAAIvrE,EAAW8D,SAAW,gCAAiC9G,GAtZ5E,QAASqwN,GAAAlG,GACL,MAAOnlN,GAAMgnE,KAAIhpE,EAAW8D,SAAW,sBAAAqjN,EAAoCnqN,GAga/E,QA7ZIowN,GAAkBjG,GA8ZlB,MAAOnlN,GAAMitE,IAAIjvE,EAAW8D,SAAW,sBAAuBqjN,EAAcnqN,GAGhF,QAASmyO,GAA0BhoB,GA5ZnC,MAASnlN,GAAAupE,IAAWvrE,EAAI8D,SAAA,yCAAA9G,GAgaxB,QAASkwN,GAAyBp8L,GAC9B,MAAO9uB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAA+BgtB,KAAQ9zB,GAEnF,QAASkmI,GAAuCksG,GA5ZpD,MAAAptO,GAAAupE,IAAAvrE,EAAA8D,SAAA,uDAAAsrO,EAAApyO,GAiaI,QA7ZSiwN,GAAAn8L,GA8ZL,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,uBAAyBgtB,EAAI9zB,GAzZ3E,QAAKswN,GAAepqN,GA8ZhB,GAAIlG,IA5ZRoN,SACWi/D,MAAMrpE,EAAKqK,OA+Zdk/D,aAAc,cAElB,OAAOvnE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAAyCZ,EAAKlG,GA/D1FkL,KAAKmlN,gBAAkBA,EA5Z3BnlN,KAAAklN,iBAAAA,EA8ZIllN,KAAK+kN,mBAAqBA,EA5Z9B/kN,KAAAukN,mBAAAA,EA+ZIvkN,KA7ZCinO,0BAAQA,EA8ZTjnO,KAAKglN,yBAA2BA,EA5ZhChlN,KAAAg7H,uCAAuCA,EA8ZvCh7H,KAAKwkN,wBAA0BA,EA5ZnCxkN,KAASolN,uBAAAA,CAIL,IAAAtwN,IACAoN,SACKi/D,MAAArpE,EAAaqK,QAuYtBhO,QA5ZIC,OAAA,8BA8ZC8U,QA7ZG,sBAAkB2sH,GA+Z1BA,EAAoBz0D,SAAW,QAAS,iBAyE5C,WAEI,YAQA,SA7ZSo/I,GAAwB1mN,EAAAhC,GA4a7B,QA7ZIwiJ,GAAkBt/I,GA8ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mCAAoCZ,EAAKlG,GAGrF,QA7ZIqyO,GAAkBC,GA8ZlB,MAAOttO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4CAA6CwrO,EAAatyO,GAGtG,QA7ZI4rN,GAAkB0mB,GA8ZlB,MAAOttO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgDwrO,EAAatyO,GAGzG,QA7ZIixN,GAAoBqhB,GA8ZpB,MAAOttO,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAA+CwrO,EAAatyO,GAGxG,QA7ZQ2wN,GAAS4hB,GA8Zb,MA7ZIvtO,GAASgnE,KAAAhpE,EAAA8D,SAAA,8CAAAyrO,EAAAvyO,GAgajB,QAAS8wN,GAA0Bh9L,GA5Z/B,MAAO9uB,GAAAgnE,KAAQhpE,EAAA8D,SAAkB,8CAAAgtB,EAAA9zB,GAnCrCkL,KAAKylN,oBAAqBA,EA8Z1BzlN,KAAK4lN,0BAA4BA,EACjC5lN,KAAKmnO,uBAAyBA,EA5Z9BnnO,KAAI+lN,kBAASA,EA8Zb/lN,KA7ZI0gN,uBAASA,EA8Zb1gN,KAAKs6I,eA7ZYA,CAgajB,IAAIxlJ,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QA4Y1BhO,QA5ZAC,OAAS,8BACL8U,QAAK,0BAASs3M,GA+ZlBA,EA7ZqBp/I,SAAA,QAAA,iBA0czB,WAEI,YAQA,SA7ZS6uB,GAAiBn2F,EAAAhC,GA+ajB,QAASwvO,GAAW7xO,GA3ZrB,MADJX,GAASoN,QAAA,gBAAuBxM,OACrBoE,EAAMgnE,KAAIhpE,EAAW8D,SAAW,2BAAAnG,EAAAX,GAia7C,QA7ZMo7F,KA8ZA,MAAOp2F,GAAMupE,IAAIvrE,EAAW8D,SAAW,wBAAyB9G,GAIpE,QAAS+7F,GAAgB71F,GA3ZzB,MA4ZKlG,GAAOoN,QAAQ,gBAAkBxM,OA5Z7BoE,EAAAgnE,KAAAhpE,EAAsB8D,SAAA,sBAAAZ,EAAAlG,GAga/B,QAAS07F,GAAiBx1F,GA5Z1B,MAASlB,GAAAitE,IAAAjvE,EAAmB8D,SAAY,sBAAAZ,EAAAlG,GAgaxC,QAASu7F,GAAmBznE,GA5Z5B,MAAS9uB,GAAAouE,OAAApwE,EAAwB8D,SAAI,uBAAAgtB,EAAA9zB,GAiarC,QAASq7F,KACL,MAAOr2F,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgC9G,GAxc5EkL,KAAK6wF,gBAAkBA,EACvB7wF,KAAKwwF,iBAAAA,EACLxwF,KAAKqwF,mBAAoBA,EACzBrwF,KAAKmwF,mBAAqBA,EAC1BnwF,KAAKkwF,mBAAAA,EACLlwF,KAAKsnO,WAAAA,CAmaL,IAAIxyO,IACAoN,SACIi/D,MAASrpE,EAAWqK,QApBhChO,QA5ZKC,OAAA,4BA8ZA8U,QAAQ,sBAAuB+mF,GAEpCA,EAAoB7uB,SAAW,QAAS,iBAoD5C,WAEI,YAQA,SA7ZS1S,GAA2B50D,EAAAhC,GA2ahC,QA7ZIiwN,GAAkB5pN,GA8ZlB,GAAIrJ,IA5ZRoN,SACWi/D,MAAMrpE,EAAKqK,OAIlB,OADJrN,GAASoN,QAAA,gBAAyBxM,OACvBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,uCAAqCuC,EAAArJ,GAGjF,QAASqzN,GAAAntN,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8CAAAZ,EAAgDlG,GAG5F,QAAS85D,GAAA5zD,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAqCZ,EAAAlG,GAGjF,QAASyyO,KACL,MAAOztO,GAAMouE,OAAKpwE,EAAW8D,SAAW,6BAAA9G,GA6X5CkL,KAAK+nN,eAAiBA,EA5ZtB/nN,KAAKmoN,eAAAA,EACLnoN,KAAK4uD,iBAAAA,EA8ZL5uD,KAAKunO,eAAiBA,CAItB,IA7ZIzyO,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAhBhChO,QA5ZAC,OAAS,2BACL8U,QAAK,6BAAuBwlD,GA+ZhCA,EA7ZS0S,SAA0B,QAAA,iBAucvC,WAEI,YAQA,SAASvR,GAAgC/1D,EAAOhC,GAwB5C,QAASyxN,GAAYvuN,GA5ZrB,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAK,sCAAAZ,EAAAlG,GAgalC,QAASqgN,KA5ZT,MAASr7M,GAAAupE,IAAAvrE,EAAuB8D,SAAA,qCAAqB9G,GAgarD,QAAS0yO,GAAgB1uN,GA5ZzB,MAAShf,GAAAupE,IAAAvrE,EAAA8D,SAAwB,0CAAckd,EAAAhkB,GAga/C,QAASw1N,GAAgBtvN,GA5ZzB,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,gCAAkBZ,EAAAlG,GAga/C,QAASo2N,GAAalwN,GA5ZtB,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,sCAAkBZ,EAAAlG,GAgahD,QAAS61N,GAAe3vN,GA5ZxB,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAA0B,wCAAkBZ,EAAAlG,GAgarD,QAASynB,GAAcvhB,GA5ZvB,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAI,uCAAAZ,EAAAlG,GAgapC,QAAS8zN,GAAiB5tN,GA5Z1B,MAASlB,GAAAgnE,KAAAhpE,EAAA8D,SAAiC,0CAAAZ,EAAAlG,GAga1C,QAASs0N,GAAoBl3M,GA5ZzB,MAAApY,GAASupE,IAAAvrE,EAAA8D,SAA6B,8CAAIsW,EAAApd,GAga9C,QAASi0N,GAAsB72M,EAAU/R,GACrC,MAAOrG,GAAMupE,IAAIvrE,EAAW8D,SAAW,gDAAkDsW,EAAY,aAAe/R,EAAUrL,GAGlI,QAASq7D,GAA2Bj+C,EAAU/R,GAC1C,MAAOrG,GAAMupE,IAAIvrE,EAAW8D,SAAW,qDAAuDsW,EAAY,aAAe/R,EAAUrL,GAGvI,QA7ZQw7D,GAASp+C,EAAA/R,GA8Zb,MA7ZIrG,GAASupE,IAAAvrE,EAAA8D,SAAA,qDAAAsW,EAAA,aAAA/R,EAAArL,GApErBkL,KAASupN,YAAAA,EACLvpN,KAAKm1M,YAAAA,EACLn1M,KAAKsqN,gBAAAA,EACLtqN,KAAKkrN,aAAAA,EACLlrN,KAAK2qN,eAAAA,EACL3qN,KAAKuc,cAAAA,EACLvc,KAAK4oN,iBAAAA,EACL5oN,KAAKwnO,gBAAAA,EACLxnO,KAAKopN,oBAAAA,EAELppN,KAAK+oN,sBAAsBA,EA+Z3B/oN,KAAKmwD,2BAA6BA,EAClCnwD,KAAKswD,2BAA6BA,CAIlC,IAAIx7D,IACAoN,SACIi/D,MAASrpE,EAAWqK,QA1BhChO,QA5ZAC,OAAA,2BACK8U,QAAO,kCAAA2mD,GA+ZZA,EAAgCuR,SAAW,QAAS,iBA4ExD,WAEI,YAQA,SA7ZKmmJ,GAAOztN,EAAAhC,GAeR,QAAKiwN,GAAA5pN,GA8ZD,GAAIrJ,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GA7ZIoN,QAAS,gBAAWxM,OA8ZjBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,0CAA2CuC,EAAUrJ,GAGjG,QAASkzN,GAAahtN,GA5ZtB,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAK,gCAAAZ,EAAAlG,GAganC,QAASq0N,KA5ZT,MAASrvN,GAAAupE,IAAAvrE,EAAA8D,SAA0B,0CAAwB9G,GAga3D,QAASi3N,GAAenjM,GA5ZxB,MAAS9uB,GAAAouE,OAAApwE,EAAA8D,SAA2B,2CAAcgtB,EAAA9zB,GAgalD,QAAS+2N,GAAe1tN,GA5ZxB,GAAArJ,IACIoN,SA8ZQi/D,MAASrpE,EAAWqK,OAI5B,OA9ZArN,GAAOoN,QAAM,gBAAexM,OA8ZrBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAmCuC,EAAUrJ,GA3CzFkL,KA7ZC+nN,eAAQA,EA8ZT/nN,KAAKgoN,aAAeA,EA5ZxBhoN,KAAAmpN,eAAAA,EA8ZInpN,KAAK+rN,eAAiBA,EA5Z1B/rN,KAAS6rN,eAAAA,CAIL,IAAA/2N,IACAoN,SACMi/D,MAAArpE,EAAAqK,QA4YVhO,QA5ZHC,OAAW,2BA8ZH8U,QAAQ,8BAA+Bq+M,GAE5CA,EAA4BnmJ,SAAW,QAAS,iBAmDpD,WAEI,YAQA,SAAS6qJ,GAA+BnyN,EAAOhC,GAa3C,QAASq1N,GAAsBhvN,GAC3B,MAAOrE,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+BAAgCuC,EAAUrJ,GAGtF,QAASw3N,GAA2BtxN,GA5ZxC,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,qDAAAZ,EAAAlG,GAgaI,QA7ZQo2N,GAAApyM,GACP,MAAQhf,GAAAupE,IAAAvrE,EAAuB8D,SAAA,wCAAAkd,EAAAhkB,GAwYhCkL,KAAKmtN,sBAAwBA,EA5Z7BntN,KAAAssN,2BAASA,EA8ZTtsN,KA7ZIkrN,aAAaA,CAgajB,IAAIp2N,IACAoN,SACIi/D,MAASrpE,EAAWqK,QAdhChO,QACKC,OA7ZG,2BA8ZH8U,QAAQ,iCAAkC+iN,GAE/CA,EA7Z0B7qJ,SAAW,QAAW,iBAybpD,WAEI,YAQA,SA7ZS35C,GAAyB3tB,EAAAhC,GA6a9B,QAASs2N,GAAcjwN,GACnB,GAAIrJ,IA5ZRoN,SACWi/D,MAAUrpE,EAAWqK,OAI5B,OADJrN,GAASoN,QAAA,gBAAgBxM,OACdoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,2BAAuBuC,EAAcrJ,GAGjF,QAAS84N,GAAiB5yN,GACtB,MAAOlB,GAAMgnE,KAAIhpE,EAAW8D,SAAW,gDAAqCZ,EAAAlG,GAGhF,QAAS00B,GAAA1Q,GACL,MAAOhf,GAAMupE,IAAIvrE,EAAW8D,SAAW,2CAA0Ckd,EAAAhkB,GAGrF,QAASw4N,KACL,MAAOxzN,GAAMupE,IAAAvrE,EAAK8D,SAAW,+BAA0C9G,GAga3E,QA7ZIw5N,GAAiBtzN,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6CAA6CZ,EAAKlG,GAtC9FkL,KAAKouN,cAAgBA,EACrBpuN,KAAK4tN,4BAA8BA,EACnC5tN,KAAKwpB,sBAAwBA,EA5Z7BxpB,KAAIstN,WAASA,EA8ZbttN,KA7ZIsuN,gBAASA,CAiab,IAAIx5N,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QA4Y1BhO,QACKC,OAAO,2BA5ZR8U,QAAK,2BAA4Bue,GA+ZrCA,EA7ZS25C,SAAA,QAAA,iBA2cb,WAEI,YAQA,SA7ZQ3S,GAAa30D,EAAKhC,GAsBtB,QAAKq3D,GAAAt5D,EAAyBy+D,GA+Z1B,MAAOx6D,GAAMupE,IAAIvrE,EAAW8D,SAAW,4BAA8B/F,EAAY,cAAgBy+D,EAAWx/D,GA3ZhH,QAAI87D,GAAShoC,GA+ZT,MA7ZI9uB,GAASupE,IAAAvrE,EAAW8D,SAAA,kCAAAgtB,EAAA9zB,GA+Z5B,QAASg8D,GAAoBloC,GACzB,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,qCAAuCgtB,EAAK9zB,GAEvF,QA7ZIm8D,GAAa1nC,EAAgB2nC,GA+Z7B,MAAOp3D,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAA+B2tB,EAAa,UAAY2nC,EAAOp8D,GAE1G,QA7ZIs8D,GAA6Bp2D,GA+Z7B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,yCAA0CZ,EAAKlG,GAE3F,QA7ZI8gE,GAAarE,EAAKL,GA8ZlB,MAAOp3D,GAAMupE,IAAIvrE,EAAW8D,SAAW,6BAA+B21D,EAAS,UAAYL,EAAOp8D,GA3ZtG,QAASwgE,GAAAt6D,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,6BAAAZ,EAAAlG,GA+Z5C,QAAS8+D,GAAO54D,GA5ZhB,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAW,uBAAAZ,EAAAlG,GA+ZxC,QAASs/D,GAAoBp5D,GACzB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGtF,QAAS2uB,GAAgBzoB,GACrB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gCAAiCZ,EAAKlG,GAGlF,QAAS6uB,GAAO3oB,GACZ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAwBZ,EAAKlG,GAEzE,QAASsgE,GAASp6D,GA5ZtB,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,yBAAAZ,EAAAlG,GAgaI,QA7ZQivB,GAAA/oB,GACP,MAAQlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,yBAAAZ,EAAAlG,GA4VhCkL,KAAKmvD,WAAaA,EAClBnvD,KAAK4wD,iBAAmBA,EACxB5wD,KAAK8wD,oBAAsBA,EAC3B9wD,KAAKixD,YAAcA,EACnBjxD,KAAKoxD,yBAA2BA,EAChCpxD,KAAK41D,YAAcA,EA5Z1B51D,KAAWs1D,aAAAA,EA8ZJt1D,KAAK4zD,OAASA,EA5ZlB5zD,KAAAo0D,oBAAAA,EAEAp0D,KAAAyjB,gBAAAA,EA8ZIzjB,KA7ZC2jB,OAAOA,EA8ZR3jB,KA7ZCo1D,SAAQA,EA8ZTp1D,KAAK+jB,SAAWA,CAEhB,IAAIjvB,IA5ZRoN,SACSi/D,MAAArpE,EAAsBqK,QAqY/BhO,QACKC,OA7ZO,kBA8ZP8U,QAAQ,kBA7ZYulD,GA+ZzBA,EA7ZY2S,SAAc,QAAA,iBAye9B,WAEI,YAQA,SAASkqI,GA7ZGxxM,EAAShC,GAyajB,QAAS2zM,GAAgBzwM,GAErB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAsBZ,EAAKlG,GAGvE,QA7ZI62M,GAAkB3wM,GA+ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA4BZ,EAAKlG,GAG7E,QAAS03M,GAAQxxM,GA3ZjB,MAASlB,GAAAgnE,KAAAhpE,EAAuB8D,SAAA,cAAAZ,EAAAlG,GAsYpCkL,KAAKyrM,gBAAkBA,EACvBzrM,KAAK2rM,sBAAwBA,EAC7B3rM,KAAKwsM,QAAUA,CAGX,IA7ZI13M,IA8ZAoN,SACIi/D,MAASrpE,EAAWqK,QAdhChO,QACKC,OAAO,kCACP8U,QAAQ,aAAcoiM,GA3ZvBA,EAAIlqI,SAAS,QAAA,iBA4brB,WAEI,YAQA,SAAS+uI,GAAUr2M,EAAOhC,GAgBtB,QA7ZIg5M,GAAS91M,GA+ZT,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,mBAAmBZ,EAAKlG,GAEpE,QAASm8M,GAAwBj2M,GA3Z7B,MAAIlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,6BAAAZ,EAAAlG,GA+ZjB,QAASu7M,GA7ZYr1M,GA+ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,uBAAuBZ,EAAKlG,GAExE,QA7ZI68M,GAAkB32M,GA+ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA0BZ,EAAKlG,GAE3E,QA7ZIk9M,GAAkBh3M,GA+ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,0BAA0BZ,EAAKlG,GAE3E,QA7ZI49M,GAAkB13M,GA+ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sBAAsBZ,EAAKlG,GAEvE,QA7ZIq9M,GAAoBn3M,GA+ZpB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAqBZ,EAAKlG,GAEtE,QAASg+M,GAAO93M,GAEZ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,YAAYZ,EAAKlG,GA1cjEkL,KAAA8wM,cAAAA,EA8ZA9wM,KA7ZKixM,wBAAOA,EA8ZZjxM,KA7ZKqwM,kBAAQA,EA8ZbrwM,KAAK2xM,qBAAuBA,EA5Z5B3xM,KAAAgyM,qBAA2BA,EA8Z3BhyM,KAAK0yM,iBAAmBA,EA5ZxB1yM,KAAAmyM,gBAASA,EA8ZTnyM,KA7ZI8yM,OAAKA,CAEL,IAAAh+M,IACAoN,SA8ZQi/D,MAASrpE,EAAWqK,QAlBhChO,QACKC,OAAO,kCACP8U,QAAQ,YAAainM,GAEtBA,EAAU/uI,SAAW,QAAS,iBAoDtC,WAEI,YAQA,SA7ZSmzI,GAAAz6M,EAAkBhC,GAevB,QAAI48M,GAAS15M,GA+ZT,MA7ZIlB,GAASgnE,KAAAhpE,EAAW8D,SAAA,qBAAAZ,EAAAlG,GA+Z5B,QAASigN,GAAa/5M,GA3ZtB,MAASlB,GAAAgnE,KAAYhpE,EAAK8D,SAAA,mBAAAZ,EAAAlG,GA+Z1B,QAASqgN,GAAYn6M,GA3ZrB,MAASlB,GAAAgnE,KAAAhpE,EAAc8D,SAAA,kBAAAZ,EAAAlG,GA+ZvB,QAASygN,GAAmBv6M,GA3Z5B,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAA,yBAAAZ,EAAAlG,GA+Z7B,QAAS4gN,GAAmB16M,GA3Z5B,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,yBAAAZ,EAAAlG,GA+Z9B,QAAS0hN,GAAOx7M,GA3ZhB,MAASlB,GAAAgnE,KAAahpE,EAAK8D,SAAA,aAAAZ,EAAAlG,GA+Z3B,QAASmiN,GAAQj8M,GACb,GAAIlG,IA5ZRoN,SACWi/D,MAAMrpE,EAAKqK,OAkalB,OA/ZJrN,GAASoN,QAAA,gBAAmBxM,OA+ZjBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,cAAcZ,EAAKlG,GA9CnEkL,KA7ZI00M,eAAKA,EA8ZT10M,KA7ZI+0M,aAAKA,EA8ZT/0M,KA7ZIm1M,YAAKA,EA8ZTn1M,KA7ZIu1M,mBAAKA,EA8ZTv1M,KA7ZI01M,mBAAKA,EA8ZT11M,KA7ZIw2M,OAAKA,EA8ZTx2M,KAAKi3M,QAAUA,CAEX,IAAIniN,IA5ZJoN,SACKi/D,MAAArpE,EAAAqK,QA4YThO,QA5ZAC,OAAA,kCA8ZK8U,QAAQ,aAAcqrM,GA3ZvBA,EAAKnzI,SAAc,QAAA,iBAmd3B,WAEI,YAQA,SA7ZQiqI,GAAOvxM,EAAUhC,GAoBrB,QAAK08M,GAAiBx5M,GAEtB,MAAKlB,GAAAgnE,KAAiBhpE,EAAA8D,SAAA,uBAAAZ,EAAAlG,GAEtB,QAAKqkN,GAAiBn+M,GA+ZlB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAwBZ,EAAKlG,GA3ZzE,QAAIukN,GAASr+M,GA+ZT,MA7ZIlB,GAASgnE,KAAAhpE,EAAW8D,SAAA,yBAAAZ,EAAAlG,GA+Z5B,QAAS4kN,GAAkB1+M,GA3Z3B,MAASlB,GAAAgnE,KAAAhpE,EAAe8D,SAAU,2BAAAZ,EAAAlG,GA+ZlC,QA7ZQ24M,GAASzyM,GA+Zb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,wBAAwBZ,EAAKlG,GAEzE,QA7ZI84M,GAAe5yM,GA+Zf,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oBAAoBZ,EAAKlG,GA3ZrE,QAAS+8H,GAAA72H,GA+ZL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iBAAiBZ,EAAKlG,GA3ZlE,QAAS88E,GAAA52E,GA+ZL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAqBZ,EAAKlG,GA3ZtE,QAAS8lH,GAAA5/G,GA+ZL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,gBAAgBZ,EAAKlG,GA3ZjE,QAAS0lN,GAAex/M,GA+ZpB,MA7ZIlB,GAASgnE,KAAAhpE,EAAA8D,SAAA,uBAAAZ,EAAAlG,GA+ZjB,QAASqmN,GAAQngN,GA3Zb,MAAOlB,GAAAgnE,KAAQhpE,EAAA8D,SAAkB,aAAAZ,EAAAlG,GA+ZrC,QAASykN,GAAOv+M,GAEZ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,aAAaZ,EAAKlG,GAjElEkL,KAAKw0M,cAAgBA,EACrBx0M,KAAKm5M,eAAiBA,EACtBn5M,KA7ZIq5M,gBAASA,EA8Zbr5M,KAAK05M,kBA7ZoBA,EA8ZzB15M,KAAKytM,aAAeA,EACpBztM,KAAK4tM,WAAaA,EAClB5tM,KAAK6xH,QAAUA,EACf7xH,KAAK4xE,YAAcA,EA5ZtB5xE,KAAA46G,OAAYA,EA8ZT56G,KAAKw6M,iBAAmBA,EA5ZxBx6M,KAAAm7M,QAAAA,EA8ZAn7M,KAAKu5M,OAASA,CAEV,IA7ZCzkN,IACAoN,SA8ZOi/D,MAASrpE,EAAWqK,QAtBhChO,QA5ZIC,OAAA,kCA8ZC8U,QA7ZG,aAAiBmiM,GA+ZrBA,EAAWjqI,SAAW,QAAS,iBAwEvC,WA3ZI,YAqaA,SA7ZSgsI,GAAAtzM,EAA6BhC,GA6alC,QA7ZIw1M,GAAatyM,GA+Zb,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAkCZ,EAAKlG,GAEnF,QA7ZI8nN,GAAiB5hN,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qCAAsCZ,EAAKlG,GAEvF,QAASqnN,GAAgBnhN,GA5ZhC,MAAYlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,kCAAAZ,EAAAlG,GAET,QAAA84M,GAAA5yM,GA8ZQ,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,iCAAkCZ,EAAKlG,GAEnF,QA7ZQsnN,GAAAphN,GACP,MAAQlB,GAAAgnE,KAAAhpE,EAAA8D,SAA4B,2CAAAZ,EAAAlG,GAEzC,QAAAsoN,GAAyBpiN,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,4BAA6BZ,EAAKlG,GA3Z9E,QAAKqoN,GAAgB7nE,GACrB,MAAKx7I,GAAAitE,IAAAjvE,EAAA8D,SAA8B,4BAAA05I,EAAAxgJ,GAEnC,QAAKyoN,GAAaviN,GAClB,MAAKlB,GAAAgnE,KAAiBhpE,EAAA8D,SAAA,4BAAAZ,EAAAlG,GAtCtBkL,KAAKstM,YAAAA,EA8ZLttM,KAAK48M,aAAeA,EACpB58M,KAAKm8M,gBAAkBA,EA5ZvBn8M,KAAI4tM,WAASA,EA8Zb5tM,KA7ZIo8M,oBAASA,EA8Zbp8M,KAAKo9M,iBA7ZYA,EA8ZjBp9M,KAAKm9M,oBAAsBA,EAC3Bn9M,KAAKu9M,oBAAsBA,CAE3B,IAAIzoN,IA5ZJoN,SACIi/D,MAAarpE,EAAKqK,QA2Y1BhO,QACKC,OAAO,kCA5ZZ8U,QAAA,4BAA0CkkM,GAE1CA,EAAShsI,SAAA,QAA+B,iBA0c5C,WAEI,YAQA,SAASisI,GA7Z2BvzM,EAAAhC,GA6ahC,QA7ZI2lN,GAA4BziN,GA8Z5B,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgDZ,EAAKlG,GA3ZjG,QAASopN,GAAAljN,GACL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAAAZ,EAAAlG,GA+Z5C,QAASmpN,GAAiB3oE,GACtB,MAAOx7I,GAAMitE,IAAIjvE,EAAW8D,SAAW,8BAA+B05I,EAAKxgJ,GA3ZtF,QAAYwpN,GAAAtjN,GA8ZD,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,8BAA+BZ,EAAKlG,GAEhF,QAAS24M,GAAazyM,GA5Z1B,MAAAlB,GAAAgnE,KAAAhpE,EAAA8D,SAAA,oCAAAZ,EAAAlG,GA+ZI,QA7ZS84M,GAAA5yM,GA8ZL,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kCAAkCZ,EAAIlG,GA9BlFkL,KAAKy9M,yBAA2BA,EAChCz9M,KA7ZIk+M,cAAeA,EA8ZnBl+M,KA7ZIi+M,iBAAkBA,EA8ZtBj+M,KAAKytM,aAAeA,EACpBztM,KAAK4tM,WAAaA,EA5ZlB5tM,KAAAs+M,iBAASA,CA+ZT,IAAIxpN,IACAoN,SA5ZJi/D,MAASrpE,EAAAqK,QA4YbhO,QACKC,OAAO,kCACP8U,QAAQ,8BAA+BmkM,GAExCA,EA7ZiBjsI,SAAA,QAAA,iBAmczB,WACI,YAMA,SA7ZS15C,GAAS5tB,EAAAhC,GAibd,QA7ZI+9B,GAAiB76B,GA8ZjB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GAGtF,QAASggC,GAAyBi5D,GA5ZlC,MAASj0F,GAAAupE,IAAYvrE,EAAA8D,SAAmB,2CAAAmyF,EAAAj5F,GA+ZxC,QA7ZIsgC,GAAiB4H,GA8ZjB,MAAOljC,GAAMouE,OAAOpwE,EAAW8D,SAAW,iCAAmCohC,EAAKloC,GAGtF,QA7ZIykC,GAAkBp7B,GA8ZlB,GAAIrJ,IA5ZRoN,SACWi/D,MAAUrpE,EAAWqK,OAia5B,OA9ZArN,GAAOoN,QAAM,gBAAgBxM,OA8ZtBoE,EAAMgnE,KAAKhpE,EAAW8D,SAAW,wCAAyCuC,EAAUrJ,GAG/F,QAASmjC,GAAqBj9B,GA5Z9B,MAASlB,GAAAgnE,KAAAhpE,EAAoB8D,SAAK,sCAAAZ,EAAAlG,GAgalC,QAASqjC,GAAuBn9B,GA5ZhC,MAASlB,GAAAgnE,KAAAhpE,EAAqB8D,SAAA,wCAAAZ,EAAAlG,GA+Z9B,QAAS0jC,GAAmBx9B,GACxB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,oCAAqCZ,EAAKlG,GA1ctFkL,KAAK61B,mBAASA,EACd71B,KAAK80B,yBAAWA,EAChB90B,KAAKo1B,oBAAWA,EA8ZhBp1B,KAAKu5B,uBAAyBA,EA5Z9Bv5B,KAAIi4B,qBAASA,EA8Zbj4B,KA7ZIm4B,uBAASA,EA8Zbn4B,KAAKw4B,mBA7ZYA,CA+ZjB,IAAI1jC,IACAoN,SA5ZJi/D,MAASrpE,EAAWqK,QA0YxBhO,QA5ZIC,OAAK,yBACL8U,QAAK,wBAA2Bwe,GA+ZpCA,EA7ZS05C,SAAe,QAAA,iBAmd5B,WAGQ,YASA,SAASqmK,GAA2B3tO,EAAOhC,GAjZ1C,QAAA4vO,GAAkBhsF,GAClB,MAAA5hJ,GAAAgnE,KAAwBhpE,EAAA8D,SAAA,oCAAA8/I,EAAA5mJ,GAgarB,QAAS6yO,GAA+BjsF,GA5ZxC,MAAS5hJ,GAAAgnE,KAAAhpE,EAAA8D,SAAA,gDAAA8/I,EAAA5mJ,GA8YTkL,KAAK0nO,mBAAqBA,EAE1B1nO,KAAK2nO,+BAAiCA,CA3ZzC,IAAO7yO,IACPoN,SA8ZWi/D,MAASrpE,EAAWqK,QAfhChO,QACKC,OAAO,mCACP8U,QAAQ,6BAA8Bu+N,GAEvCA,EAA2BrmK,SAAW,QAAS,iBA0B3D,WAEI,YASA,SAASwmK,GAA6B9tO,EAAOhC,GAazC,QAAS+vO,GAA0BnsF,GA5ZnC,MAAU5hJ,GAAAgnE,KAAWhpE,EAAS8D,SAAA,kDAAA8/I,EAAA5mJ,GAGlC,QAAKgzO,GAAgBpsF,GAChB,MAAA5hJ,GAAAgnE,KAAAhpE,EAA0B8D,SAAA,wDAAA8/I,EAAA5mJ,GAG/B,QAAKizO,GAAuBrsF,GACvB,MAAA5hJ,GAAAgnE,KAAmBhpE,EAAA8D,SAAA,oDAAA8/I,EAAA5mJ,GAgapB,QAASkzO,GAAqCtsF,GA5Z1C,MAAA5hJ,GAASgnE,KAAAhpE,EAAA8D,SAAA,6DAAA8/I,EAAA5mJ,GAqYbkL,KAAK6nO,0BAA4BA,EACjC7nO,KAAK8nO,gCAAkCA,EACvC9nO,KAAK+nO,4BAA8BA,EACnC/nO,KAAKgoO,qCAAuCA,CAE5C,IAAIlzO,IA5ZRoN,SA8ZYi/D,MAASrpE,EAAWqK,QAhBhChO,QA5ZIC,OAAA,yCA8ZC8U,QAAQ,+BAAgC0+N,GAE7CA,EAA6BxmK,SAAW,QAAS,iBAmCrD,WAGI,YASA,SA7ZIwwG,GAAS93K,EAAqBhC,GA2a9B,QA7ZImwO,GAAkBvsF,GA8ZlB,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,sCAAuC8/I,EAAS5mJ,GAG5F,QA7ZIozO,GAA6BxsF,GA8Z7B,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,kDAAmD8/I,EAAS5mJ,GA1Z/G,QAAYqzO,GAAAzsF,GA8ZD,MAAO5hJ,GAAMgnE,KAAKhpE,EAAW8D,SAAW,+CAAgD8/I,EAAS5mJ,GArBrGkL,KA7ZIioO,sBAAkBA,EAEtBjoO,KAAAkoO,kCAAmCA,EA+ZnCloO,KA7ZImoO,+BAA6BA,CAEjC,IAAArzO,IA8ZIoN,SA5ZAi/D,MAAarpE,EAAKqK,QA4Y1BhO,QACKC,OA7ZG,kCA8ZH8U,QAAQ,sBAAuB0oK,GAEpCA,EAAoBxwG,SAAW,QAAS,iBAgC5C,WA1ZI,YAOA,SAAKgnK,GAAU59N,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAL,EAAAogC,EAAAstM,EAAA71D,EAAAtyG,EAAAplE,GAubX,QA7ZI+X,KAEJkoB,EAAqB4R,yBAAA75B,GAAA1T,KAAA,SAAAC,GA8ZM,MAAfA,EAAIlI,SA5ZLwJ,EAAAs6B,eAAW57B,EAAWhJ,KA8ZrBsK,EAAGsS,WAAY,IA3ZvB,SAAa3R,GACT5I,EAAS2I,YAAA,QAAA,mBAAA,0BAqajB,QAAS4nO,GAAsBv2D,GAxZnC,GA0ZQ/xK,EAAGw8J,eA5Zdx8J,EAAYg8J,SAAAkW,gBAAA,KA8ZDlyK,EAAGgT,YAAa,EA5ZxBrd,QAAAo8K,EAAA,CAEA,GAAA/rJ,IACY7T,UAAAA,EACC+oB,aAAc62I,EAgafF,GAAoBq2D,sBAAsBliN,GAAWvnB,KAAK,SAAUC,GA5ZrD,MAAPA,EAAAlI,SACfwJ,EAAgBw8J,YAAA99J,EAAAhJ,KAChBsK,EAAiBgT,YAAA,EACjBhT,EAAkBsS,WAAA,IAElB,SAAe3R,GACf5I,EAAa2I,YAAA,QAAA,mBAAA,2BAQd,QAAI6nO,GAASC,EAAAz2D,GAiaT,GAFA/xK,EAAGy8J,gBACHz8J,EAAGgT,YAAa,EACFrd,QAAV6yO,EAAqB,CA3Z7B,GAASvxE,IA8ZG9kJ,UAAWA,EA5ZZ+oB,aAAW62I,EA8ZV1V,UAAWmsE,EA1ZnBd,GAA6BC,mBAAW1wE,GAAAx4J,KAAwB,SAAKC,GA8Z1C,MAAfA,EAAIlI,SA5ZXwJ,EAAAy8J,aAAqB/9J,EAAAhJ,KA8ZdsK,EAAGgT,YAAa,EA5ZrBhT,EAAMsS,WAAK,IAEb,SAAA3R,GA8ZG5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAMhE,QAAS+nO,KAEL,GAAIC,GAAc,CAMdA,GAhaC1oO,EAAA+S,UAgaa/S,EAAGg8J,SAASqC,WAFZ,CAIlB,IAAIr4I,IAEA7T,UAAWA,EA5ZnB+oB,aAAqBl7B,EAAAg8J,SAAAjwH,mBAAA7Q,aA8ZbmhI,UAAWr8J,EAAGg8J,SAASkW,gBAAgB7V,UA5Z3C6lB,aAAkBliL,EAAAg8J,SAAWkmB,aA8ZzB7jB,WAAYqqE,EA5ZpBriN,QAAS,OA8ZDvS,UAAWJ,EAAYrT,OA1Z/BqnO,GAAsBE,+BAAA5hN,GAAAvnB,KAAA,SAAAC,GA8ZVA,EAAIhJ,KAAKke,aAAc,GA5ZxB7b,EAAW2I,YAAW,UAAWhC,EAAAhJ,KAAAme,QAAkB,wBA8ZlD7T,EAAGg8J,SAASkmB,aAAe,KA5Z9BliL,EAAAgT,YAAY,EA8ZThT,EAAG+S,WAAY,EA5ZhBw1N,EAAWvoO,EAAAg8J,SAAWkW,gBAAW7V,UAAkBr8J,EAAAg8J,SAAAjwH,mBAAA7Q,eA+ZlDnjC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,yBA3ZzD,SAAAlT,GA8ZG5I,EAAW2I,YAAY,iCAQ/B,QAASuhL,GAAenvK,GA3ZxB,GAAKH,GAAAtY,EAAcsY,QAAA,UACd,4CAAetb,WAAA,EAAA+F,KAAA,MAEpBuV,GAAKjT,OAAajB,KAAA,WAEb,GAAAs3J,IACA5jJ,UAAAA,EACA+oB,aAAA,EA8ZOmhI,UAAW,EA5ZnB6lB,aAAS,GACT7jB,WAASvrJ,EAAAurJ,WACLh4I,QAAS,SA8ZLvS,UAAWJ,EAAYrT,OA1ZnCqnO,GAA0BE,+BAAA7xE,GAAAt3J,KAAA,SAAAC,GA8ZK,MAAfA,EAAIlI,QA5ZTuB,EAAW2I,YAAW,UAAWhC,EAAAhJ,KAAAme,QAAA,wBA8Z5B7T,EAAGgT,YAAa,EA5ZvBhT,EAAAg8J,SAAkBkmB,aAAA,KAChBliL,EAAM+S,WAAK,EA8ZNw1N,EAAavoO,EAAGg8J,SAASkW,gBAAgB7V,UAAWr8J,EAAGg8J,SAASjwH,mBAAmB7Q,eA3ZxFnjC,EAAW2I,YAAW,QAAWhC,EAAAhJ,KAAAme,QAAA,WAEnC,SAAWlT,GACT5I,EAAW2I,YAAW,QAAW,8BAAA,cAQ5C,QAASshL,GAAAlvK,GACL9S,EAAA+S,WAAa,EAEjB/S,EAAAgT,YAAS,EACLhT,EAAAg8J,SAAa5nK,QAAK8e,KAAAJ,EA+ZlB,KAAK,GAAI5X,KAAK8E,GAAGs6B,eACTt6B,EAAGs6B,eAAep/B,GAAGggC,eAAiBl7B,EAAGg8J,SAAS9gI,eA5ZzDl7B,EAAAg8J,SAAAjwH,mBAAA/rC,EAAAs6B,eAAAp/B,GAgaD,KAAK,GAAI2c,KAAK7X,GAAGw8J,YA5ZzBx8J,EAAAw8J,YAAA3kJ,GAAAwkJ,YAAAr8J,EAAAg8J,SAAAK,YACYr8J,EAAAg8J,SAAAkW,gBAAAlyK,EAAAw8J,YAAA3kJ,IAKZ,QAASnG,KA8ZD1R,EAAGgT,YAAa,EA5ZpBhT,EAAKg8J,YAgOL,GAAIh8J,GAAKC,IAETD,GAAGqU,kBA7ZUhJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA8ZbrL,EAAGsU,SA7ZKtU,EAASqU,gBAAW,EA+Z5BrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GA5ZpCzU,EAAAuU,YAASE,GAgaTzU,EAAG0R,OAASA,EA5ZZ1R,EAAAgT,YAAS,EA8ZThT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG+S,WA7ZQ,EA8ZX/S,EAAGgiL,YAAcA,EA5ZjBhiL,EAAAiiL,eAASA,EA8ZTjiL,EAAGsoO,sBAAwBA,EAC3BtoO,EAAGuoO,aA7ZcA,EA8ZjBvoO,EAAGyoO,aAAeA,EAElBzoO,EAAGg8J,WACH,IA7ZI7pJ,GAAOhY,EAAsBgG,uBAAWwU,gBAA8BxC,UA8ZtEuB,EAAcvZ,EAAsBgG,sBAExC+R,yLA3bJ9d,QACKC,OAAA,mCACAe,WAAA,0BAAqBizO,MAmmB9B,WAGI,YAMA,SA7ZIM,GAAkCl+N,EAAK1Q,EAAAhC,EAAAsC,EAAAJ,EAAAD,EAAA2kI,EAAAvkG,EAAAstM,EAAAG,EAAAj2D,EAAAC,EA8ZvC13K,GA5XA,QAAK+X,KAELlS,EAAKklK,eACAG,WAAA,EAAqBujE,SAAA,UA8ZhBvjE,WAAc,EAAGujE,SAAY,WA5ZnCvjE,WAAS,EAAAujE,SAAA,YACTvjE,WAAS,EAAAujE,SAAA,kBACLvjE,WAAS,EAAAujE,SAAW,gBAgaxB5oO,EAAGiyK,aAAarM,iBAAmB5lK,EAAGklK,aAAa,GAEnDE,GA3ZA,IAAArP,IA8ZI5jJ,UAAWA,EACXqlB,WAAY9jB,EAAYuV,MAG5B4+M,GAA6BC,0BAA0B/xE,GAAWt3J,KAAK,SAAUC,GA5Z5E,MAAAA,EAAAlI,SACEwJ,EAAA8kK,qBAAwBpmK,EAAAhJ,KA+ZvB0kC,EAAmB4R,yBAAyB75B,GAAW1T,KAAK,SAAUC,GA5ZlD,MAAvBA,EAAAlI,SACQwJ,EAAAs6B,eAAA57B,EAAAhJ,KACAsK,EAAAsS,WAAA,IA+ZF,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kCAGxDV,EAAGsS,WAAY,IA3Z3B,SAAS3R,GACL5I,EAAa2I,YAAK,QAAW,mBAAW,kCAia5C,QA7ZI4nO,GAAkBv2D,GAO7B,GALO/xK,EAAAgyK,sBACIhyK,EAAAiyK,aAAa42D,iBAAgB,KA8Z7B7oO,EAAGiyK,aAAa62D,qBAAuB,KACvC9oO,EAAGiyK,aAAaE,QAAU,KA3ZzBx8K,QAAAo8K,EAAA,CA+ZG,GAAI/rJ,IA5ZZ7T,UAAAA,EA8ZY+oB,aAAc62I,EAIlBF,GAAoBq2D,sBAAsBliN,GAAWvnB,KAAK,SAAUC,GA5Z7C,MAA3BA,EAAAlI,SA8ZYwJ,EAAGgyK,mBAAqBtzK,EAAIhJ,KA3ZnCsK,EAAAsS,WAAA,IAEA,SAAA3R,GA8ZG5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAKhE,QAAS4xK,GA7ZYk2D,EAAWz2D,EAAAxzK,GAma5B,GALAyB,EAAGiyK,aAAa62D,qBAAuB,KACvC9oO,EAAGiyK,aAAaE,QAAU,KAC1BnyK,EAAGmxH,UAAW,EA5ZdnxH,EAAAyyK,oBA+Zc98K,QAAV6yO,EAAqB,CA3ZzB,GAAAvxE,IACI9kJ,UAAaA,EA8ZT+oB,aAAc62I,EACd1V,UAAWmsE,EAzZlBd,GAAAC,mBAAA1wE,GAAAx4J,KAAA,SAAAC,GA8Z0B,MAAfA,EAAIlI,SA5ZxBwJ,EAAAyyK,iBAAA/zK,EAAAhJ,KAEAsK,EAAAsS,WAAA,IAEa,SAAA3R,GA8ZG5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAlZhE,QAAI0kK,GAAS7mK,GAEe5I,QAApBqK,EAAAiyK,aAASrM,iBAAWgjE,WA8Z6B,SAA7C5oO,EAAGiyK,aAAarM,iBAAiBgjE,WACjC5oO,EAAGslK,SAAU,GA1Zd/mK,GA8ZCA,KAIZ,QAASo0K,GAAmBp0K,GA3Z5B,GAAAynB,GAAS,IA+ZL,KAAK,GAAI9qB,KAAK8E,GAAGyyK,iBA3ZrBzsJ,GACWwsJ,SAAWxyK,EAAAyyK,iBAAWv3K,GAAWs3K,SA8ZhCxrD,SAAUhnH,EAAGyyK,iBAAiBv3K,GAAG8rH,SACjC4rD,OAAQ5yK,EAAGyyK,iBAAiBv3K,GAAG03K,OAC/BT,QAASvrK,SAAS1L,GAAK,EACvBmrB,QAAS,OACTvS,UAAWJ,EAAYrT,QAG3BuxK,EAA+BiB,kCAAkC7sJ,GAAWvnB,KAAK,SAAUC,GA5ZvGA,EAAAhJ,KAAAke,aAAA,EA8ZoB5T,EAAGgT,YAAa,EA3ZxBjb,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,iCA+ZG,SAAUlT,GA5ZzB5I,EAAoB2I,YAAW,gCAiavB3I,GAAW2I,YAAY,UAAW,qCAAsC,gCA5Z5EV,EAAKmxH,UAAA,EAEA5yH,GA8ZGA,IAIR,QA7ZIwqO,GAAS92D,GA+ZT,GAAItM,EA1ZgC,IAAxC3lK,EAASiyK,aAAArM,iBAA+BP,WACpCM,GA+ZY5sJ,GAAM/Y,EAAGiyK,aAAarM,iBAAiBP,WA5Z9Cv+G,QA+ZWg3G,UAAa7jK,EAAQ,QAAQ+F,EAAGiyK,aAAanU,UAAW,SACxDC,QAAW9jK,EAAQ,QAAQ+F,EAAGiyK,aAAalU,QAAS,WAIZ,GAA/C/9J,EAAGiyK,aAAarM,iBAAiBP,YAGc,GAA/CrlK,EAAGiyK,aAAarM,iBAAiBP,YAGc,GAA/CrlK,EAAGiyK,aAAarM,iBAAiBP,YAGc,GAA/CrlK,EAAGiyK,aAAarM,iBAAiBP,UAI1C,IAAItP,IACA8P,cAAe,EA7ZlB1zJ,UAAAA,EACDqlB,WAAK9jB,EAAAuV,MA+ZDiS,aAAcl7B,EAAGiyK,aAAa+2D,eAAe9tM,aA7ZlDmhI,UAAAr8J,EAAmBiyK,aAAW42D,iBAAiBxsE,UAC/CgC,WAAcr+J,EAAAiyK,aAAgB62D,qBAAAzqE,WAC7BgH,WAAQrlK,EAAAiyK,aAAArM,iBAAAP,WACTS,UAAcnpK,KAAAqkB,UAAA2kJ,GACdt/I,QAAA,OACIvS,UAAAJ,EAAcrT,OAIlBwnO,GAAaE,gCAAAhyE,GAAAt3J,KAAA,SAAAC,GACbA,EAAAhJ,KAAiBke,aAAA,IACjB5T,EAAYsS,WAAA,EACZtS,EAAAgT,YAAc,EACdjb,EAAiB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,wBACjB3B,MAEA,SAAAvR,GA+ZK5I,EAAW2I,YAAY,QAAS,mBAAoB,0BAI5D,QAASuoO,GAAuBn2N,GA5ZhC,GAAAH,GAAgBtY,EAAAsY,QAAA,UA+ZR,4CAA8Ctb,WAAW,EAAM+F,KAAM,MAEzEuV,GA9ZQjT,OAAIjB,KAAA,WAgaR,GA9ZIs3J,IA+ZA8P,cAAe/yJ,EAAI+yJ,cA7ZxBx/I,QAAU,SACTvS,UAAWJ,EAAYrT,OAiavBwnO,GAA6BE,gCAAgChyE,GAAWt3J,KAAK,SAAUC,GAChE,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,gCACpD7T,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EA7ZtBb,KAOGna,EAAY2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WAgab,SA9ZClT,GA+ZA5I,EAAW2I,YAAY,QAAS,sCAAuC,cAKnF,QAAS0yK,GA9ZUtgK,GA+Zf9S,EAAG+S,WA9ZY,EAgaf/S,EAAGgT,YA9ZI,EA+ZPhT,EAAGiyK,aA9ZK79K,QAAW8e,KAAYJ,EAga/B,KAAK,GAAI5X,KAAK8E,GAAGs6B,eACTt6B,EAAGs6B,eAAep/B,GAAGggC,eAAiBl7B,EAAGiyK,aAAa/2I,eACtDl7B,EAAGiyK,aAAalmI,mBAAqB/rC,EAAGs6B,eAAep/B,GAG/D,KAAK,GAAI2c,KAAK7X,GAAGgyK,mBA7ZZhyK,EAAAgyK,mBAAqBn6J,GAAAqkC,aAASl8C,EAAAiyK,aAAA/1H,aA+Z3Bl8C,EAAGiyK,aAAat0H,iBAAmB39C,EAAGgyK,mBAAmBn6J,GAIjE,IAAIw7J,GAAWrzK,EAAGiyK,aAAajrD,SAE3BgsD,EA9ZIK,EAAW/vJ,UAAA,EAAA,GA+ZfgwJ,EA9ZID,EAAA/vJ,UAAc,EAAA,EAsatBtjB,GAAGiyK,aA9ZYgB,MAAAD,EA+ZfhzK,EAAGiyK,aAAaiB,QAAUI,EAG9B,QAASt/J,KACLhU,EAAGgT,YAAa,EAChBhT,EAAGiyK,aAAarM,iBAAmB5lK,EAAGklK,aAAa,GAEvD,QAAS9wC,KA7ZTp0H,EAAAgT,YAAS,EA+ZLhT,EAAGiyK,gBA7ZHjyK,EAAAmxH,UAAI,EA+ZJnxH,EAAGiyK,aAAarM,iBAAmB5lK,EAAGklK,aAAa,GAjTvD,GAAIllK,GAAKC,IAETD,GAAGqU,kBA7ZmBhJ,MAAW,KAAAA,MAAW,KAAAA,MAAA,KAA+BA,MAAK,MA8ZhFrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YA7Zc,EA8ZjBvU,EAAGwU,qBAAuB,SAAUC,GA5ZpCzU,EAAAuU,YAASE;EAGTzU,EAAAsoO,sBAA0BA,EA8Z1BtoO,EAAGsyK,iBA7ZmBA,EA8ZtBtyK,EAAG+oO,qBAAuBA,EA5Z1B/oO,EAAAipO,uBAAwBA,EA8ZxBjpO,EAAGozK,iBA7ZmBA,EA8ZtBpzK,EAAGo0H,OAASA,EACZp0H,EAAGiyK,gBACHjyK,EAAGgT,YAAa,EA5ZvBhT,EAAA+S,WAAY,CACT,IAAAZ,GAAAhY,EAAAgG,uBAAAwU,gBAAAxC,UACAuB,EAAAvZ,EAAAgG,sBA8ZIsK,GA7ZC8oK,MAAO,EA8ZR9oK,EA7ZC+oK,MAAQ,GA8ZTxzK,EAAGmxH,UAAW,EA5ZlBnxH,EAAA2yK,mBAAsBA,EACtB3yK,EAAAoyK,YAAS,IA8ZLpyK,EAAGiyK,gBACHjyK,EAAGklK,gBACHllK,EAAGolK,gBAAkBA,EA5ZrBplK,EAAAgU,OAAKA,EAEL9B,IA2fAzH,EAAO8oH,iBA5ZPjpF,OAAK,WACAtqC,EAAAmxH,UAAA,0PAwRT/8H,QACKC,OAAO,6CACPe,WAAW,kCAAmCuzO,MA4TvD,WACI,YAOA,SAASO,GA9Z0Bz+N,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAJ,EAAAD,EAAA63K,EAAA61D,EAAAG,EAAA1tO,EAAAigC,GA6b/B,QAASloB,KAELlS,EAAG+7J,aA9ZKhjJ,GAAc,IAAAnjB,OAAA,cAAAmjB,GAAA,EAAAnjB,OAAA,YAgatBoK,EAAGgT,YA9ZK,EA+ZRhT,EAAGg8J,SA9ZKC,aAAW,GAAYxiJ,MA+Z/ByiJ,EAAY,GAAIziJ,OAGpB,QAASijJ,GA9ZW5pJ,GAgahB9S,EAAG28J,aA9ZY1iK,EAAA,QAAa6Y,EAAA8pJ,UAAA,SA+Z5B58J,EAAG68J,cA9ZY/pJ,EAAA8pJ,UAgaf58J,EAAG88J,WA9ZS7iK,EAAA,QAAgB6Y,EAAAiqJ,QAAS,SA+ZrC/8J,EAAGg9J,YA9ZYlqJ,EAAAiqJ,QAgaf/8J,EAAGi9J,gBAAkBnqJ,EAAIoqJ,cAEzBl9J,EAAGgT,YA9ZK,EA+ZRhT,EAAGm9J,gBAAiB,EAIpBn9J,EAAGg8J,SAASjwH,mBAAqB,KACjC/rC,EAAGg8J,SAASmtE,gBAAkB,KAC9BnpO,EAAGg8J,SAAS6sE,iBAAmB,KA5Z/BO,IAiaJ,QA9ZOd,GAAwBv2D,GAO3B,GALA/xK,EAAAgyK,sBA+ZAhyK,EAAGg8J,SA9ZQmtE,gBAAkB,KA+Z7BnpO,EAAGg8J,SA9ZQ6sE,iBAAS,KA+ZpB7oO,EAAGg8J,SAASmW,QAAU,KA5ZRx8K,QAAdo8K,EAAiB,CAgab,GA9ZI/rJ,IA+ZA7T,UAAWA,EACX+oB,aAAc62I,EA1ZnBF,GAAaq2D,sBAAAliN,GAAAvnB,KAAA,SAAAC,GACF,MAAXA,EAAWlI,SA+ZFwJ,EAAGgyK,mBAAqBtzK,EAAIhJ,KAE5BsK,EAAGsS,WAAY,IA5Z1B,SAAA3R,GA+ZO5I,EAAW2I,YAAY,QAAS,mBAAoB,2BA1ZpE,QAAA4xK,GAAAk2D,EAAAz2D,EAAAxzK,GAsaQ,GApaHyB,EAAAg8J,SAAW6sE,iBAAA,KAgaR7oO,EAAGg8J,SAASmW,QAAU,KA9Z9BnyK,EAASmxH,UAAA,EACLnxH,EAAAyyK,oBAiakB98K,QAAV6yO,EAAqB,CA7Z1B,GAAAvxE,IACS9kJ,UAAAA,EACT+oB,aAAc62I,EACd1V,UAAAmsE,EAIAd,GAAwBC,mBAAA1wE,GAAAx4J,KAAA,SAAAC,GACL,MAAnBA,EAAAlI,SACAwJ,EAAAyyK,iBAAuB/zK,EAAAhJ,KAEvBsK,EAAAsS,WAAmB,IAEnB,SAAe3R,GACf5I,EAAa2I,YAAA,QAAA,mBAAA,2BAKhB,QAAO68J,GAAQzqJ,GAEZ9S,EAAAgT,YAAA,EACAhT,EAAAm9J,gBAAc,EACdn9J,EAAAg8J,SAAAwB,eAAe,KAEfx9J,EAAA28J,aAAkB1iK,EAAA,QAAA6Y,EAAA8pJ,UAAA,SAClB58J,EAAA68J,cAAS/pJ,EAAA8pJ,UAEZ58J,EAAA88J,WAAA7iK,EAAA,QAAA6Y,EAAAiqJ,QAAA,SACA/8J,EAAAg9J,YAAgBlqJ,EAAAiqJ,QAEZ/8J,EAAGi9J,gBAAenqJ,EAAAoqJ,cAmalBl9J,EAAGqpO,iBAEe,KAAdv2N,EAAIld,OACJoK,EAAGqpO,cAAc7rE,eAAiB,KAEf,WAAd1qJ,EAAIld,OA9ZboK,EAAAqpO,cAAA7rE,eAAAx9J,EAAA+7J,WAAA,GAEgB,aAAZjpJ,EAAAld,SACAoK,EAAAqpO,cAAW7rE,eAAAx9J,EAAA+7J,WAAA,IAkaf/7J,EAAGqpO,cAAcx5L,QAAU/8B,EAAI+8B,QAGnC,QAASukF,KACLp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WA/ZK,EAgaRb,IAGJ,QAASk3N,KACLhvM,EA/ZW4R,yBAAe75B,GAAA1T,KAAA,SAAAC,GACH,MA+ZfA,EA/ZIlI,SAgaJwJ,EAAGs6B,eAAiB57B,EAAIhJ,KACxBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GA9ZV5I,EAAU2I,YAAK,QAAA,mBAAA,kCAmatB,QAASw7J,GAAYD,GA5ZjB,GA8ZAj8J,EAAG09J,mBA9ZA/nK,QAAAsmK,GAAqB,MAAAA,EAAA,CAGrB,GAAAj2I,IAgaK7T,UAAWA,EA9ZfqlB,WAAW9jB,EAAWuV,MAgalBgzI,aAAchiK,EAAQ,QAAQgiK,GAGlC4rE,GA/ZkBG,4BAAAhiN,GAAAvnB,KAAA,SAAAC,GAgaK,MAAfA,EAAIlI,SACJwJ,EAAG09J,gBAAkBh/J,EAAIhJ,KACzBsK,EAAGsS,WAAY,IAEpB,SA/ZS3R,GAgaR5I,EA/ZO2I,YAAA,QAAyB,mBAAA,6BAoa5C,QAASk9J,GA/ZcC,GAianB,GAAIG,EAWJ,IAtaGA,EA6ZCh+J,EAAGm9J,eA7ZJ,MAmaY,eA5ZP,OAAJa,EAgaA,GA/ZIH,EAAAC,UAAW99J,EAAA68J,cACX9kK,EAAA2I,YAAc,QAAA,qBAAA,8BAiab,IAAIm9J,EAAQE,QAAU/9J,EAAGg9J,YAC1BjlK,EAAW2I,YAAY,QAAS,mBAAoB,8BA7ZxD,CAiaI,GA/ZIq1J,IAgaAmH,cAAel9J,EAAGi9J,gBA9ZlB9qJ,UAAGA,EAgaHqlB,WAAY9jB,EAAYuV,MA9Z7BgzI,aAAehiK,EAAA,QAAA+F,EAAAg8J,SAAAC,cACdW,UAAW3iK,EAAY,QAAA+F,EAASg8J,SAAAmC,SAAoB,SAgahDpB,QAAS9iK,EAAQ,QAAQ+F,EAAGg8J,SAASoC,OAAQ,SAC7CljI,aAAcl7B,EAAGg8J,SAASjwH,mBAAmB7Q,aAC7CmhI,UAAWr8J,EAAGg8J,SAASmtE,gBAAgB9sE,UACvCgC,WAAYr+J,EAAGg8J,SAAS6sE,iBAAiBxqE,WA9ZlDh4I,QAAkB23I,EACbM,WAAYt+J,EAAAg8J,SAAAwB,eAAAzkJ,GACb82B,QAAW7vC,EAAAg8J,SAAAnsH,QAgaN/7B,UAAWJ,EAAYrT,OA5Z9BwnO,GAA0BI,qCAAAlyE,GAAAt3J,KAAA,SAAAC,GAgafA,EAAIhJ,KAAKke,aAAc,IA9ZhC5T,EAAAsS,WAAa,EACTtS,EAAAgT,YAAa,EACbjb,EAAU2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,0BAgaL3B,MA7ZR,SAAAvR,GACA5I,EAAA2I,YAAA,QAAA,mBAAA,gCAIH,CAgaD,GAAIq1J,IA9ZJmH,cAAYl9J,EAAAi9J,gBAgaR9qJ,UAAWA,EA9ZdqlB,WAAY9jB,EAAAuV,MAgaTgzI,aAAchiK,EAAQ,QAAQ+F,EAAGg8J,SAASC,cA9Z9CW,UAAY3iK,EAAA,QAAA+F,EAAAg8J,SAAAmC,SAAA,SACRpB,QAAA9iK,EAAa,QAAA+F,EAAAg8J,SAAoBoC,OAAA,SACjCljI,aAAa,EACbmhI,UAAW,EACXgC,WAAS,EACTh4I,QAAS23I,EACTM,WAAWt+J,EAAAqpO,cAAY7rE,eAAAzkJ,GAgavB82B,QAAS7vC,EAAGqpO,cAAcx5L,QAC1B/7B,UAAWJ,EAAYrT,OAG3BwnO,GA/ZwBI,qCAAAlyE,GAAAt3J,KAAA,SAAAC,GAgahBA,EA/ZGhJ,KAAAke,aAAA,IACH5T,EAAAsS,WAAW,EAgaXtS,EAAGgT,YAAa,EA9ZrBjb,EAAe2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,0BACd3B,MAiaD,SAAUvR,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,6BA+BhE,QA/ZS0Y,GAAO1jB,GAgaZ,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAEhB,OAAgB,QAATA,GAAqC,IAAlB8iB,EAAKC,SAiDnC,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IAAK,GAFDijB,GA/ZO,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAiaFxe,EAAI,EAAGA,EAAIuP,EAAOkP,OAAOxe,OAAQD,IAAK,CA9Z5C,GAAA0e,GAAe,GAAAH,MAAAhP,EAAAkP,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAiad,IAAIF,IAAeI,EACf,MAAOnP,GAAOkP,OAAOze,GAAG1E,OAKpC,MAAO,GAzWX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBA9ZChJ,MAA2B,KAAAA,MAAA,KAAAA,MAA+B,KAAWA,MAAK,MA+Z9ErL,EAAGsU,SA9ZStU,EAAIqU,gBAAK,EAgarBrU,GAAGuU,YA9ZY,EA+ZfvU,EAAGwU,qBA9ZY,SAAaC,GA+ZxBzU,EAAGuU,YA9ZQE,GAmafzU,EAAGu9J,aA9ZcA,EA+ZjBv9J,EAAG08J,YA9ZKA,EA+ZR18J,EAAGk8J,YAAcA,EACjBl8J,EAAG49J,iBAAmBA,EACtB59J,EAAGopO,eAAiBA,EACpBppO,EAAGsoO,sBAAwBA,EAC3BtoO,EAAGsyK,iBAAmBA,EACtBtyK,EAAGo0H,OAASA,EACZp0H,EAAGsS,WAAY,EAEftS,EAAGg8J,WAEH,IAAI7pJ,GA9ZIhY,EAAAgG,uBAA8CwU,gBAAuBxC,UA+ZzEuB,EAAcvZ,EAAsBgG,sBAGxC+R,KAiPAzH,EAAO4P,MAAQ,WACX5P,EAAO6P,GAAK,GAAIb,OAEpBhP,EAAO4P,QAEP5P,EA/ZIiN,MAAI,WAgaJjN,EAAO6P,GAAK,MAGhB7P,EAAO8P,eACHC,YA/ZYjB,EAgaZkB,QAAS,GA/ZGhB,MAgaZiB,WAAW,GAGfjQ,EAAOkQ,aACHC,aAAcxB,EACd+C,WAAY,KACZtB,QA/ZS,GAAGpB,MAAA,KAAA,EAAa,IAgazBgB,QAAS,GAAIhB,MACbqB,YAAa,GAWjBrQ,EA/ZIsQ,UAAI,WAgaJtQ,EA/ZI8P,cAAeE,QAAAhQ,EAAA8P,cAAAE,QAAA,KAAA,GAAAhB,MAganBhP,EA/ZIkQ,YAAWF,QAAAhQ,EAAA8P,cAAAE,SAkanBhQ,EAAOsQ,YAEPtQ,EAAOuQ,MA/ZC,WAgaJvQ,EA/ZIwQ,OAAApM,QAAgB,GAkaxBpE,EAAOyQ,MAAQ,WACXzQ,EAAO0Q,OAAOtM,QAAS,GAG3BpE,EAAO+Q,QA/ZS,SAAKC,EAAAC,EAAcC,GAga/BlR,EAAO6P,GA/ZI,GAAAb,MAAAgC,EAAYC,EAAAC,IAka3BlR,EAAOmR,SA/ZK,eAAA,aAAA,aAAA,aAgaZnR,EAAOoR,OAASpR,EAAOmR,QAAQ,GAC/BnR,EA/ZOqR,iBAAe,cAiatBrR,EAAOwQ,QACHpM,QAAQ,GAGZpE,EAAO0Q,QA9ZHtM,QAAI,EAkaR,IA/ZIkN,GAAQ,GAAOtC,KAganBsC,GAASP,QAAQO,EAASC,UAAY,EACtC,IAAIC,GA/ZQ,GAAYxC,KAgaxBwC,GA/ZYT,QAAAO,EAAmBC,UAAA,GAga/BvR,EAAOkP,SAECN,KAAM0C,EACNvlB,OAAQ,SAGR6iB,KAAM4C,EACNzlB,OA/ZQ,6NAmEpBpC,QACKC,OA9ZO,yCA+ZPe,WA9ZO,gCAA0B8zO,MAixB1C,WAEI,YAMA,SAASI,GAAuB7+N,EAAQ1Q,EAAOhC,EAAYsC,EAASL,EAAQ2kI,EAAcvkG,EAAoBy3I,EAC1G13K,GA2BA,QAAS+X,KAELkoB,EAAmB4R,yBAAyB75B,GAAW1T,KAAK,SAAUC,GA9ZrE,MAAAA,EAAAlI,SACTwJ,EAAAs6B,eAAA57B,EAAAhJ,KAgagBsK,EAAGsS,WAAY,IA9Z/B,SAAA3R,GACY5I,EAAA2I,YAAA,QAAA,mBAAA,yBAIZ,QAAS4nO,GAAAv2D,GAGF,GAFC/xK,EAAAw8J,eAiaAx8J,EAAGgT,YAAa,EA/ZjBrd,QAAAo8K,EAAqB,CAEpB,GAAQ/rJ,IACT7T,UAAcA,EACd+oB,aAAuB62I,EAmalBF,GAAoBq2D,sBAAsBliN,GAAWvnB,KAAK,SAAUC,GAC7C,MAAfA,EAAIlI,SACJwJ,EAAGw8J,YAAc99J,EAAIhJ,KA/ZlCsK,EAAegT,YAAA,EACfhT,EAAcsS,WAAA,IAEd,SAAA3R,GACA5I,EAAiB2I,YAAA,QAAA,mBAAA,0BAqapB,QAAS0zH,KA/ZNp0H,EAAA+hL,WAiaC/hL,EAAGgT,YAAa,EAGpB,QAASovK,KACL,GAAImnD,GAAa,CA3ZdA,GA6ZEvpO,EAAG+S,UA7ZS/S,EAAE+hL,QAAM1lB,UAFb,CAKZ,IAAGpF,IACH9kJ,UAAYA,EAiaR+oB,aAAcl7B,EAAG+hL,QAAQh2I,mBAAmB7Q,aAC5CmhI,UAAWktE,EA/ZnBC,YAAqBxpO,EAAA+hL,QAAKynD,YAialBnjN,QAAS,OA/ZVvS,UAAAJ,EAAuBrT,OAG1BwxK,GAAgBs2D,kCAA6BlxE,GAAAx4J,KAAA,SAAAC,GAC1CA,EAAAhJ,KAAcke,aAAI,GAiab7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,uBA/ZzD7T,EAAAgT,YAAkB,EAiabhT,EAAG+hL,QAAQynD,YAAc,KA/Z9BxpO,EAAA+S,WAAa,EACbu1N,EAAiBtoO,EAAA+hL,QAAAh2I,mBAAA7Q,eAkaZnjC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,wBA9ZvD,SAASlT,GACT5I,EAAS2I,YAAA,iCAMhB,QAASshL,GAAAlvK,GAEL9S,EAAG+S,WAAA,EACH/S,EAAGgT,YAAS,EAEZhT,EAAG+hL,QAAS3tL,QAAA8e,KAAUJ,EAEtB,KAAI,GAAA5X,KAAA8E,GAAWs6B,eAiaPt6B,EAAGs6B,eAAep/B,GAAGggC,eAAiBl7B,EAAG+hL,QAAQ7mJ,eA/ZjDl7B,EAAA+hL,QAAAh2I,mBAAY/rC,EAAAs6B,eAAAp/B,IAqaxB,QAAS4nL,GAAchwK,GAEnB,GAAIH,GAhaQtY,EAAIsY,QAAW,UAiavB,4CAhaoCtb,WAAA,EAAA+F,KAAA,MAkaxCuV,GAAQjT,OAhaOjB,KAAA,WAkaX,GAhaGs3J,IACC5jJ,UAAWA,EAiaX+oB,aAAc,EACdmhI,UAAWvpJ,EAAIupJ,UACfmtE,YAAa,GACbnjN,QAAS,SA/ZZvS,UAAAJ,EAAyBrT,OAG3BwxK,GAAmBs2D,kCAAApyE,GAAAt3J,KAAA,SAAAC,GACR,MAAXA,EAAWlI,QACXuB,EAAmB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,uBAiaV7T,EAAGgT,YAAa,EA/ZxBhT,EAAU+hL,QAAAynD,YAAW,KAiabxpO,EAAG+S,WAAY,EA/ZnBu1N,EAAatoO,EAAA+hL,QAAAh2I,mBAAA7Q,eAEbnjC,EAAc2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,WAkaf,SAAUlT,GACT5I,EAAW2I,YAAY,QAAS,6BAA8B,cA7I1E,GAAIV,GAAKC,IAETD,GAAGqU,kBA/ZqBhJ,MAAA,KAAaA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAgarCrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EAEjCrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGo0H,OA/ZIA,EAgaPp0H,EAAGgT,YA/ZI,EAgaPhT,EAAG+xJ,gBAAiB,EACpB/xJ,EAAG+S,WAAY,EA9Zf/S,EAAAgiL,YAASA,EAgaThiL,EAAG8iL,cA/ZIA,EAgaP9iL,EAAGoiL,YA/ZIA,EAgaPpiL,EAAGs6B,kBA9ZHt6B,EAAAw8J,eAgaAx8J,EAAGsoO,sBA/ZiBA,EAiapBtoO,EAAG+hL,UACH,IA/ZI5vK,GAAGhY,EAAagG,uBAAmCwU,gBAAAxC,UAganDuB,EAAcvZ,EAAsBgG,sBAExC+R,oJA/BJ9d,QACKC,OAAO,kCACPe,WAAW,yBAA0Bk0O,MA2J9C,WAEI,YAMA,SAhaQG,GAA6Bh/N,EAAA1Q,EAAAhC,EAAAsC,EAAAL,EAAA2kI,EAAAvkG,EAAAu3I,EAAAE,EAiajC13K,GAwBA,QAAS+X,KA9ZTkoB,EAAkB4R,yBAAA75B,GAAA1T,KAAA,SAAAC,GACE,MAAbA,EAAAlI,SACAwJ,EAAAs6B,eAAY57B,EAAAhJ,KACfsK,EAAAsS,WAAA,IAkaG,SAAU3R,GA/ZjB5I,EAAS2I,YAAiB,QAAA,mBAAA,gCAqa1B,QAAS8/K,GAAkBzO,GAIvB,GAHA/xK,EAhaGgyK,sBAiaHhyK,EAAGgT,YAhaY,EAkaArd,QAAXo8K,EAAsB,CA9Z9B,GAAS/rJ,IAiaG7T,UAAWA,EA/ZhB+oB,aAAkB62I,EACjBpsH,KAAA3lD,EAAAoyK,YAGAT,GAAgBU,0BAAArsJ,GAAAvnB,KAAA,SAAAC,GACD,MAAXA,EAAAlI,SACAwJ,EAAAgyK,mBAAwBtzK,EAAAhJ,KACxBsK,EAAAgT,YAAc,EAiaVhT,EAAGsS,WAAY,IA9ZvB,SAAA3R,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,iCAqapC,QAAS0zH,KACLp0H,EAAGygL,iBACHzgL,EAAGgT,YAAa,EA7ZpB,QAAS0tK,KAEL,GAAIC,GAAU,CAEV3gL,GAAG+S,YAiaH4tK,EAAc3gL,EAAGygL,cAAcvkI,WAEnC,IAAI+6G,IACA9kJ,UAhaCA,EAiaD+oB,aAAcl7B,EAAGygL,cAAc10I,mBAAmB7Q,aA/ZlDghB,WAAWykI,EAiaX9kI,aAAc77C,EAAGygL,cAAc5kI,aAC/Bx1B,QAAS,OA/ZTvS,UAAAJ,EAAmBrT,OACnBslD,KAAI3lD,EAAAoyK,YAmaRT,GAha+BiP,sCAAgB3pB,GAAAx4J,KAAA,SAAAC,GACvCA,EAAAhJ,KAAAke,aAAuB,GAiavB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,8BACpD7T,EAhaCgT,YAAA,EAiaDhT,EAAGygL,cAAc5kI,aAAe,KA/ZhC77C,EAAA+S,WAAI,EAiaJytK,EAhaIxgL,EAAeygL,cAAG10I,mBAAA7Q,eAkatBnjC,EAhaI2I,YAAY,QAAYhC,EAAAhJ,KAAAme,QAAA,+BAkajC,SAhaSlT,GAiaR5I,EAhaQ2I,YAAS,iCAqazB,QAASmgL,GAhamB/tK,GAiaxB,GAAIH,GAhaQtY,EAASsY,QAAG,UAiapB,4CAha+Btb,WAAA,EAAA+F,KAAA,MAkanCuV,GAAQjT,OAAOjB,KAAK,WAEhB,GAAIs3J,IACA5jJ,UAhaWA,EAiaX+oB,aAhaW,EAiaXghB,WAhaQppC,EAAAopC,WAiaRL,aAhaQ,GAiaRx1B,QAAS,SACTvS,UAhaGJ,EAAerT,OAmatBsxK,GAAiCiP,sCAAsC7qB,GAAWt3J,KAAK,SAAUC,GAC1E,MAAfA,EAAIlI,QA/ZXuB,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,8BACG7T,EAAAgT,YAAY,EACZhT,EAAAygL,cAAkB5kI,aAAA,KAClB77C,EAAA+S,WAAW,EACXytK,EAAYxgL,EAAYygL,cAAA10I,mBAAA7Q,eAExBnjC,EAAW2I,YAAgB,QAAGhC,EAAShJ,KAAAme,QAAU,WAkalD,SAhaClT,GACA5I,EAAW2I,YAAA,QAAA,oCAAA,cAuavB,QAASogL,GAAkBhuK,GAEvB9S,EAAG+S,WAhaS,EAiaZ/S,EAAGgT,YAhaY,EAkafhT,EAAGygL,cAhaSrsL,QAAW8e,KAAAJ,EAkavB,KAAK,GAAI5X,KAAK8E,GAAGs6B,eA/ZVt6B,EAAAs6B,eAAep/B,GAAAggC,eAAAl7B,EAAAygL,cAAAvlJ,eACdl7B,EAAAygL,cAAW10I,mBAAqB/rC,EAAAs6B,eAAoBp/B,IAoRhE,GAhaI8E,GAAGC,IAkaPD,GAAGqU,kBAAqBhJ,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpFrL,EAAGsU,SAhaItU,EAAAqU,gBAAqB,EAka5BrU,GAAGuU,YAAc,EACjBvU,EAAGwU,qBAhasB,SAAIC,GAiazBzU,EAAGuU,YAAcE,GAGrBzU,EAAGo0H,OAhaIA,EAiaPp0H,EAAGgT,YAAa,EAChBhT,EAAG+S,WAhaS,EAiaZ/S,EAAGygL,iBACHzgL,EAAG6gL,oBAAsBA,EACzB7gL,EAAG0gL,kBAhacA,EAiajB1gL,EAAG8gL,kBAhaQA,EAiaX9gL,EAAGwgL,kBAAoBA,CACvB,IAAIruK,GAhaShY,EAAcgG,uBAAawU,gBAAAxC,UAiapCuB,EAhaOvZ,EAAcgG,sBAiazBH,GAAGoyK,YAAc,IAEjBlgK,sLA5BJ9d,QACKC,OAAO,0CACPe,WAhaM,iCAAaq0O,MAwjB5B,WAGI,YAKA,SAhaIC,GAAuBj/N,EAAA1Q,EAAAhC,EAAAyC,EAAAH,EAAAJ,EAAAD,EAAA2kI,EAAAkpG,EAAA1tO,GAmbvB,QAhaI+X,KAiaAlS,EAAGg8J,SAASC,aAAe,GAAIxiJ,MAC/ByiJ,EAAYl8J,EAAGg8J,SAASC,cAG5B,QAhaIC,GAAOD,GAoaP,GAFAj8J,EAAG0iL,oBAEiB/sL,QAAhBsmK,GAA6C,MAAhBA,EAAsB,CAGnD,GAAIj2I,IACA7T,UAAWA,EA/ZhBqlB,WAAQ9jB,EAAYuV,MAChBgzI,aAAOhiK,EAAS,QAAAgiK,GAGpB4rE,GAA0BG,4BAAYhiN,GAAAvnB,KAAA,SAAAC,GACd,MAAfA,EAAIlI,SAiaJwJ,EAAG0iL,iBAAmBhkL,EAAIhJ,KAC1BsK,EAAGsS,WAAY,IA9ZxB,SAAS3R,GACT5I,EAAA2I,YAAmB,QAAA,mBAAA,qBA+b1B,QAhaQ0Y,GAAS1jB,GAiab,GAAI2jB,GAhaI3jB,EAAI2jB,KAiaR9iB,EAAOb,EAAKa,IAEhB,OAhaY,QAgaLA,GAha6B,IAAV8iB,EAAAC,SAid9B,QAASC,GAAY7jB,GAhajB,GAAA2jB,GAAA3jB,EAAA2jB,KACI9iB,EAAIb,EAAIa,IAkaZ,IAjaW,QAiaPA,EA9ZD,IAAA,GAFKijB,GAAG,GAAYC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEVxe,EAAA,EAAKA,EAAAuP,EAAAkP,OAAAxe,OAAAD,IAAA,CACd,GAAA0e,GAAW,GAAYH,MAAAhP,EAASkP,OAAAze,GAAAme,MAAoBK,SAAA,EAAA,EAAA,EAAA,EAmahD,IAAIF,IAAeI,EACf,MAAOnP,GAAOkP,OAAOze,GAAG1E,OAKpC,MAAO,GA7IX,GAhaIwJ,GAAAC,IAkaJD,GAAGqU,kBAhaYhJ,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAiafrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,EA9ZjCrU,GAAAuU,YAAO,EAiaPvU,EAAGwU,qBAhae,SAAAC,GACdzU,EAAAuU,YAAYE,GAoahBzU,EAAGk8J,YAAcA,EACjBl8J,EAAGg8J,WACH,IAAI7pJ,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UA/Z7EuB,EAAkBvZ,EAAMgG,sBAkaxB+R,KAiCAzH,EAhaI4P,MAAQ,WAiaR5P,EAAO6P,GAAK,GAAIb,OA9ZpBhP,EAAI4P,QAEJ5P,EAAIiN,MAAA,WACJjN,EAAA6P,GAAc,MAmad7P,EAAO8P,eACHC,YAhaYjB,EAiaZkB,QAAS,GAAIhB,MA/ZbiB,WAAA,GAmaJjQ,EAAOkQ,aACHC,aAAcxB,EACd+C,WAAY,KA/ZhBtB,QAAS,GAAApB,MAAY,KAAM,EAAA,IACvBgB,QAAI,GAAOhB,MAiaXqB,YAhaW,GA2afrQ,EAAOsQ,UAAY,WACftQ,EAAO8P,cAAcE,QAAUhQ,EAAO8P,cAAcE,QAAU,KAAO,GAAIhB,MA/ZzEhP,EAAOkQ,YAAAF,QAAAhQ,EAAA8P,cAAAE,SAmaXhQ,EAAOsQ,YAEPtQ,EAAOuQ,MAAQ,WA/ZtBvQ,EAAYwQ,OAAApM,QAAA,GAmaLpE,EAAOyQ,MAAQ,WACXzQ,EAAO0Q,OAAOtM,QAAS,GAG3BpE,EAjaC+Q,QAAW,SAAAC,EAAAC,EAA0BC,GAkalClR,EAAO6P,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IA9ZtClR,EAAImR,SAAK,eAAA,aAAA,aAAA,aAkaTnR,EAAOoR,OAASpR,EAAOmR,QAAQ,GAha/BnR,EAAGqR,iBAAqB,cAExBrR,EAAIwQ,QACDpM,QAAA,GAoaHpE,EAAO0Q,QACHtM,QAAQ,EA9ZZ,IAAGkN,GAAA,GAAAtC,KACHsC,GAAGP,QAAYO,EAAAC,UAAA,EACf,IAAGC,GAAc,GAAAxC,KACjBwC,GAAGT,QAAgBO,EAAAC,UAAA,GACnBvR,EAAGkP,SAEAN,KAAA0C,EACAvlB,OAAA,SAGC6iB,KAAA4C,EACAzlB,OAAA,oKAmSRpC,QACKC,OAAO,qCACPe,WAAW,4BAA6Bs0O,MAqJjD,WACI,YAOA,SAASC,GAAU5xO,EAAYiC,EAAQyQ,EAAQjQ,EAAQH,EAASF,EAAuBD,EAAWE,EAAaO,GAkF3G,QAASw2K,KACDnxK,EAAG4pO,cAAgB5pO,EAAG6pO,YACtB1vO,EAjakBkoE,WAAAriE,EAAAusF,SAAAvsF,EAAA6pO,YAAA,SAAAnrO,GACdsB,EAAAihO,aAkamB,MAAfviO,EAAIlI,OACJwJ,EAAG8pO,UAAW,EACPprO,EAAIlI,UAAW,IACtBwJ,EAAGihO,UAAUppO,KAAK,uCAClBmI,EAAGsS,WAAY,KAIvBtS,EAAGihO,UAAUppO,KAAK,qCAI1B,QAAS8pE,KAhab3hE,EAAAsS,WAAA,EACKnY,EAAOwnE,MAAA3hE,EAAAusF,SAAAvsF,EAAAS,SAAA,SAAA/B,GACPsB,EAAAihO,aAma0B,MAAfviO,EAAIlI,QAjaXwJ,EAAAsS,WAAA,EACLlY,EAAuB+wF,YAAApzF,EAAAuK,QAAA7D,KAAA,SAAAC,GACdvE,EAAAmoE,qBAAA5jE,EAAAhJ,KAmaO,IAAIwK,GAAa/F,EAAsBgG,sBAjapDpI,GAAqB+C,mBACPd,EAAA8F,GAAA,cAGd9F,EAAuB8F,GAAA,aACnBI,EAAcyU,iBAGT5c,EAAAoH,0BAEG,SAAAwB,GACZxG,EAAgBmoE,qBAAA,SAII,MAApB5jE,EAAoBlI,QACnBwJ,EAAAihO,UAAYppO,KAAA,wBACZmI,EAAAsS,WAAc,GACD5T,EAAAlI,UAAA,IAmaLwJ,EAAGihO,UAAUppO,KAAK,uCAja9BmI,EAAAsS,WAAA,KAuaA,QAASy3N,KACL/pO,EAAG8pO,UAlaQ,EAqaf,QAlaQp4N,KAmaJ1R,EAAG8pO,UAAW,EAzIlB,GAAI9pO,GAAKC,IAaT,IAZAlI,EAAW2c,SAAU,EAGrB1U,EAAGsS,WAjaI,EAkaPtS,EAAG8pO,UAjaI,EAkaP9pO,EAAGihO,aA/ZHjhO,EAAA2hE,MAASA,EAkaT3hE,EAAG+pO,WAjaKA,EAkaR/pO,EAAG0R,OAASA,EACZ1R,EAAGmxK,SAjaSA,EAmaRp5K,EAAW+C,mBAAoB,CAC/BkF,EAAGusF,SAjaCx0F,EAAgBuD,aAAQ0uO,IAka5BhqO,EAAGS,SAAW1I,EAAWuD,aAAa2uO,MA/ZlChzM,QAAAl/B,EAAauD,aAAA67B,MACbrhC,UAAWiC,EAAAuD,aAAAm6B,IACX2B,WAAAr/B,EAAiBuD,aAAQ+7B,GACzBC,aAAWv/B,EAAAuD,aAAAi8B,OACXC,WAAAz/B,EAAgBuD,aAAQ8uB,MACxBqN,SAAS1/B,EAAAuD,aAAAo8B,QACT1U,WAAW,GAmaf2+C,KA/YJl3D,EAAAy/N,aAAqB,SAAK/tO,EAAAyqB,GAGtB,GAAGC,GAAA,GAAaC,QAAA,sCAkaZC,EAAMC,OAAOC,aAAc9qB,EAAM+qB,SAAyB/qB,EAAM+qB,SAApB/qB,EAAMgrB,MAhatD,KAAGN,EAAAje,KAAUme,GAAQ,CAErB,GAgaI5qB,EAAMkB,iBAhaO,KAAZlB,EAASgrB,MAuaN,MADApvB,GAAW2I,YAAY,UAAW,gCAAiC,mBAC5D,CAtaPkJ,OAAG4B,OAAA,WACAm2D,QA4afl3D,EAAO0/N,SAAW,SAAUhuO,EAAOyqB,GAE/B,GAAIC,GAjaI,GAAAC,QAAW,0DAkafC,EAjaIC,OAAAC,aAAc9qB,EAAA+qB,SAAA/qB,EAAA+qB,SAAA/qB,EAAAgrB,MAkatB,KAAKN,EAjaGje,KAAAme,GAAW,CAmaf,GADA5qB,EAjaIkB,iBACS,KAATlB,EAAAgrB,MAuaA,MAlaApvB,GAAQ2I,YAAW,UAAK,4BAAA,mBACpB,CALJkJ,OAAA4B,OAAW,WAkaPm2D,0IA7EpBvtE,QACKC,OAAO,0BACPe,WAAW,YAAau0O,MAiJjC,WACI,YAOA,SAASS,GAlaO3/N,EAAc1S,EAAAiC,EAAAD,EAAAS,EAAAH,EAAAD,GA0b1B,QAASuyH,KAjaL3sH,EAAAsS,WAAQ,EAmaRlY,EAlaIixF,cAAiB5sF,KAAA,SAAcC,GAmaZ,MAAfA,EAAIlI,QAjaRwJ,EAAAqzB,SAAa30B,EAAAhJ,KACbsK,EAAAsS,WAAW,IAEXva,EAAY2I,YAAA,QAAA,yBAAA,QACZV,EAAAsS,WAAiB,IAoalB,SAlaC3R,GACA5I,EAAS2I,YAAA,QAAA,YAAA,QAmaTV,EAAGsS,WAAY,IAIvB,QAASm5E,KACLzrF,EAAGsS,WAlaQ,EAmaXtS,EAAGoqD,gBACHhwD,EAlaWqxF,mBAAYzrF,EAAAqqO,aAAAhqO,QAAA5B,KAAA,SAAAC,GAmanBsB,EAAGsS,WAlaC,EACG,MAkaH5T,EAlaGlI,OACHwJ,EAAAvE,SAAWiD,EAAAhJ,MAGfqC,EAAW2I,YAAY,QAAA,yBAAA,QAmanBV,EAAGsS,WAAY,IAEpB,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,YAAa,QAjarDV,EAASsS,WAAA,IAsaT,QAlaI0uN,GAAerlO,GAmafqE,EAAGoqD,aAAezuD,EAGtB,QAAS+vF,KACL1rF,EAAGsS,WAlaK,EAmaRlY,EAlaQsxF,oBAAc1rF,EAAAqqO,aAAAhqO,OAAAL,EAAAvE,UAAAgD,KAAA,SAAAC,GACL,MAATA,EAAAlI,QAASkI,EAAAhJ,MACTqC,EAAW2I,YAAY,UAAA,6BAAA,QAmavBV,EAAGsS,WAAY,IAhanBva,EAAA2I,YAAA,QAAiC,yBAAA,QAC7BV,EAAAsS,WAAQ,IAoab,SAlaS3R,GAmaR5I,EAlaW2I,YAAA,QAAc,YAAe,QAmaxCV,EAAGsS,WAlaQ,IAyVnB,GAAItS,GAAKC,IACTlI,GAAW2c,SAAU,EACrB1U,EAAGsS,WAAY,EAGftS,EAAGihO,aAGHjhO,EAAGyrF,mBAAqBA,EACxBzrF,EAAGghO,WAlaQA,EAmaXhhO,EAAG0rF,oBAlaoBA,EAoavBihC,IA/ZA3sH,EAAA2vH,YAAkB,WACdllH,EAAG4F,WAAA,iCAqaPrQ,EAAGg3D,UAAY,WAjafvsD,EAAS4F,WAAA,mHAwYbjc,QACKC,OAlaO,oBAmaPe,WAAW,sBAAuBg1O,MAkF3C,WACI,YAOA,SAlaIE,GAASrwO,EAAkBwQ,EAAK1S,EAAAiC,EAAAD,EAAAS,EAAAH,EAmahC+/B,EAAoBsR,EAAoBtxC,EAAamlE,EAAaplE,EAAuB21D,EAAiC5iB,GAuD1H,QAASh7B,KACLlS,EAAGsS,WAnaK,CAoaR,IAAI2oB,GAnaI9gC,EAAWgG,uBAAAwU,gBAAAxC,SAoanBioB,GAnaQ4R,yBAAwB/Q,GAAAx8B,KAoa5B,SAnaIC,GAoamB,MAAfA,EAAIlI,QACJwJ,EAAGs6B,eAAiB57B,EAAIhJ,KAlahC6pE,EAAAqoB,gBAA6BnpF,KAAA,SAAAC,GACD,MAAhBA,EAAAlI,QACDwJ,EAAAy/D,SAAmB/gE,EAAIhJ,KACvB0E,EAAYkxF,oBAAArwD,GAAAx8B,KAAA,SAAAC,GAoaHsB,EAAGqzB,SAAW30B,EAAIhJ,MAlapB,SAAAiL,GACH5I,EAAY2I,YAAS,QAAA,yBAAoB,WAsaxC3I,EAAW2I,YAAY,QAAS,yBAA0B,SAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,WAGxD3I,EAAW2I,YAAY,QAAS,mCAAoC,SAha7E,SAAQC,GACJ5I,EAAK2I,YAAA,QAAA,sCAAA,UAIZV,EAAAuqO,eAAax2B,IAAA,MAAApuJ,KAAA,aAAAouJ,IAAA,MAAApuJ,KAAA,eAAAouJ,IAAA,MAAApuJ,KAAA,aAsajB,QAASzZ,GAA2B/0B,GAjapCu0B,EAAqB2C,gBAAAruC,EAAA+rC,mBAAA7Q,cAAAz8B,KAAA,SAAAC,GACH,MAAdA,EAAAlI,QACAwJ,EAAA4rC,gBAAYltC,EAAAhJ,KAEZyhB,KAqaQpf,EAAW2I,YAAY,QAAS,mBAAoB,gBAEzD,SAASC,GAlahB5I,EAAkB2I,YAAM,QAAA,sCAAA,iBAqapBV,EAAGguC,oBAnaa,KAoahBhuC,EAAG01C,iBAAmB,KAK1B,QAnaI66I,GAA+BhyL,GAC/B,GAAA08B,GAAO9gC,EAA6BgG,uBAAcwU,gBAAAxC,SAoalD+6B,GAAgBS,gBAAgB1S,GAAWx8B,KAAK,SAASC,GACrDsB,EAAGswL,QAAU5xL,EAAIhJ,KAlalB6I,GAoaKA,KAlaL,SAAQoC,GACX5I,EAAc2I,YAAS,QAAA,mBAAA,iBAqavBV,EAAG01C,iBAAmB,KAG1B,QAASylL,GAAsB58N,GAC3B,GAA2B,OAAvByB,EAAG82C,aAAai9J,IAAc,CAla/B,GAAA7zM,GAAU/F,EAA4BgG,sBACzC/F,GAAgBgxF,yBAAkBlrF,EAAAG,QAAA5B,KAAA,SAAAC,GAoa1BsB,EAAGqoD,eAAiB3pD,EAAIhJ,KACpB6I,GAlaTA,KACA,SAASoC,GACT5I,EAAA2I,YAAmB,QAAA,mBAAA,qBAEV,OAATV,EAAS82C,aAAAi9J,KACZjkJ,EAAQslJ,cAAA32M,KAAA,SAAAC,GAoaAsB,EAAGq1M,aAAe32M,EAAIhJ,KAClB6I,GAlaAA,KACZ,SAAQoC,GAoaA5I,EAAW2I,YAAY,QAAS,mBAAoB,iBA7ZhE,QAAO8pO,KAqaH,GAnaIC,KACQ90O,SAARqK,EAAA01C,kBAoaA+0L,EAAK1xN,GAAK/Y,EAAG01C,iBAAiBle,WAlalCizM,EAAA7hN,SAAA,OACUjzB,QAAAqK,EAAA87D,oBACN2uK,EAAA1xN,GAAQ/Y,EAAA87D,mBAAAxkC,aAoaRmzM,EAAK7hN,SAAW,QAEhB6hN,EAAK1xN,GAAK/Y,EAAGywD,iBAAiBjnC,WAlatCihN,EAAS7hN,SAAY,OAqajBxuB,EAnaW+xF,iBAAKs+I,GAAAhsO,KAAA,SAAAC,GACI,GAAhBA,EAAAhJ,MAC0B,OAAtBsK,EAAA82C,aAAiBi9J,IAoab15M,EAAQ8C,OAAO,UAAW,sCAAwC6C,EAAG01C,iBAAiByJ,WAlarF9nD,WAAW,EACZ+F,KAAA,OAE2B,OAA3B4C,EAAA82C,aAAei9J,IACf15M,EAAO8C,OAAO,UAAU,sCAAA6C,EAAA87D,mBAAAjZ,gBAoapBxrD,WAAW,EACX+F,KAAM,OAhaf/C,EAAA8C,OAAA,UAAA,sCAAA6C,EAAAywD,iBAAAmE,cAoaSv9D,WAAW,EACX+F,KAAM,OA/ZrB4C,EAAAy9F,MAAA,EACTz9F,EAAA0qO,OAAA,IAqa2C,OAAvB1qO,EAAG82C,aAAai9J,KAnapC/zM,EAAAyqO,KAAAtrL,UAAAn/C,EAAA01C,iBAAAyJ,UACYn/C,EAAAyqO,KAAApwC,SAAAr6L,EAAA01C,iBAAA2kJ,UACiB,OAAbr6L,EAAa82C,aAAAi9J,IAqaT/zM,EAAGyqO,KAAKtrL,UAAYn/C,EAAG87D,mBAAmBjZ,eAla3C7iD,EAAAyqO,KAAAtrL,UAAoBn/C,EAAAywD,iBAAgBmE,aAwavC50D,EAAGy9F,MAAO,EAnanBz9F,EAAY0qO,OAAA,GAEZ1qO,EAAAsS,WAAY,GAqaR,SAAS3R,GAnab5I,EAAQ2I,YAAA,QAAA,mBAAA,eACRV,EAAAsS,WAAa,IA0ahB,QApaO85E,KACHpsF,EAAAsS,WAAU,EACc,KAApBtS,EAAAyqO,KAAAz3L,QAAS9K,OACT9tC,EAAWgyF,eAAWpsF,EAAAyqO,KAAaz3L,SAAAv0C,KAAA,SAAAC,GACvB,KAAZA,EAAYlI,OACZwJ,EAAA2qO,gBAAyBjsO,EAAAhJ,KAEzBsK,EAAU2qO,gBAAW,EAsajB3qO,EAAGsS,WAAY,GAnavB,SAAA3R,GAqaQ5I,EAAW2I,YAAY,QAAS,mBAAoB,eACpDV,EAAGsS,WAAY,KAGnBtS,EAAGyqO,KAAKz3L,QAAU,GAClBhzC,EAAGsS,WAAY,GAIvB,QAASg6E,KACLtsF,EAAGsS,WAAY,EACiB,KAA5BtS,EAAGyqO,KAAKl+I,SAASrkD,OACjB9tC,EAAYkyF,cAActsF,EAAGyqO,KAAKl+I,UAAU9tF,KAAK,SAASC,GACpC,KAAdA,EAAIlI,OACJwJ,EAAG4qO,eAAiBlsO,EAAIhJ,KAExBsK,EAAG4qO,eAAgB,EAla/B5qO,EAAAsS,WAAA,GAqaO,SAAS3R,GAnaZ5I,EAAY2I,YAAO,QAAA,mBAAA,eACnBV,EAAMsS,WAAO,KAGbtS,EAAAyqO,KAAIl+I,SAAM,GAqaVvsF,EAAGsS,WApaO,GAmblB,QApaQ4B,KACJ,GAAIvB,GAAOtY,EAAWsY,QAAA,eAClB,yFACItb,WAAM,EACN+F,KAAM,MAuaduV,GAAQjT,OApaEjB,KAAA,WAqaNuB,EAAGgT,YApaY,EAqafhT,EAAGyqO,QACHzqO,EAAG+rC,mBAAqB,KACxB/rC,EAAGguC,oBAAsB,KACzBhuC,EAAG01C,iBAAmB,KACtB11C,EAAG2+I,aAAe,KAClB3+I,EAAGy9F,MAAO,IAmDlB,QAASotI,KAnaT,GAAAn3N,GAAsBvZ,EAAAgG,sBAClB,IAAGH,EAAA+S,UAyFC,CACA/S,EAAGsS,WAAY,CAsaf,IAAIw5E,IACAzrF,OAAQL,EAAGyqO,KAAKpqO,OAChByzB,SAAU9zB,EAAGyqO,KAAKl+I,SAClBptC,UAAWn/C,EAAGyqO,KAAKtrL,UApa3Bk7I,SAAAr6L,EAAAyqO,KAAApwC,SACRrnJ,QAAAhzC,EAAAyqO,KAAAz3L,QAsagBjqB,OAAQ/oB,EAAG2+I,aAAa51H,OACxBpV,WAAYD,EAAYrT,OApa5BjG,GAAAyxF,WAAAC,GAAArtF,KAAA,SAAAC,GACsB,MAAlBA,EAAAlI,QAuaIuB,EAAW2I,YAAY,UAAW,4BAA6B,eAC/DV,EAAGsS,WAAY,EAra1BtS,EAAAgT,YAAwB,EAC7Bd,IACSwF,MAwaO3f,EAAW2I,YAAY,QAAS,eAAgB,eAChDV,EAAGgT,YAAa,IApa7B,SAAArS,GACC5I,EAAS2I,YAAA,QAAA,mBAAA,eACVV,EAAAsS,WAAA,IAGCtS,EAAAuL,QAAS,MAkTL,IAA2B,OAAvBvL,EAAG82C,aAAai9J,IAAc,CAC9B,GAAIjoH,IAnaPS,SAASvsF,EAAAyqO,KAAAl+I,SACXptC,UAAWn/C,EAAAyqO,KAAAtrL,UAqaFk7I,SAAUr6L,EAAGyqO,KAAKpwC,SAClBrnJ,QAAShzC,EAAGyqO,KAAKz3L,QACjBvyC,SAAUT,EAAGyqO,KAAKhqO,SAna7BsoB,OAAA/oB,EAAA2+I,aAAA51H,OACT5W,UAAAuB,EAAAiB,gBAAAxC,UAqaoB2B,UAAWJ,EAAYrT,OACvB4oB,MAAOjpB,EAAG87D,mBAAmBxkC,aAnarCt3B,GAAAsS,WAAA,EACIlY,EAAA4xF,qBAAuBF,GAAArtF,KAAA,SAAAC,GAsaA,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,0BAA2B,eApa5EV,EAAAsS,WAA2B,EACvBtS,EAAAgT,YAAA,EACEd,IACIwF,MAuaK3f,EAAW2I,YAAY,QAAS,eAAgB,eAparDV,EAAAgT,YAAA,IAuaA,SAASrS,GAparB5I,EAAqB2I,YAAA,QAAA,mBAAA,eACRV,EAAAsS,WAAA,QAyaD,IAA2B,OAAvBtS,EAAG82C,aAAai9J,IAAc,CACrC,GAAIjoH,IApaXS,SAAcvsF,EAAAyqO,KAAYl+I,SACpBptC,UAAWn/C,EAAAyqO,KAAAtrL,UAsaNk7I,SAAUr6L,EAAGyqO,KAAKpwC,SAClBrnJ,QAAShzC,EAAGyqO,KAAKz3L,QApalBvyC,SAAAT,EAAYyqO,KAAAhqO,SAChBsoB,OAAW/oB,EAAA2+I,aAAA51H,OAsaN5W,UAAWuB,EAAYiB,gBAAgBxC,UACvC2B,UAAWJ,EAAYrT,OApavB4oB,MAAAjpB,EAAAywD,iBAAAjnC,WAEZxpB,GAAAsS,WAAY,EACJlY,EAAI6xF,eAAgBH,GAAArtF,KAAA,SAAAC,GACF,MAAfA,EAAAlI,QACAuB,EAAY2I,YAAA,UAAA,0BAAA,eACZV,EAAAsS,WAAA,EACHtS,EAAWgT,YAAY,EACpBd,IAsaKwF,MAnaD3f,EAAY2I,YAAS,QAAA,eAAa,eAC1CV,EAAYgT,YAAA,IAuaR,SAASrS,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,eApa3DV,EAAAsS,WAAqB,QAEvB,CACH,GAAYw5E,IACLS,SAAYvsF,EAAAyqO,KAAAl+I,SACPptC,UAAWn/C,EAAAyqO,KAAKtrL,UACjBk7I,SAAWr6L,EAAAyqO,KAAIpwC,SAsadrnJ,QAAShzC,EAAGyqO,KAAKz3L,QApalBvyC,SAAAT,EAAAyqO,KAAAhqO,SACHsoB,OAAW/oB,EAAA2+I,aAAY51H,OACpB5W,UAAYuB,EAAAiB,gBAAAxC,UAsaX2B,UAAWJ,EAAYrT,OApavB4oB,MAAKjpB,EAAA01C,iBAAAle,WAEVx3B,GAAAsS,WAAY,EAsaXlY,EAAY2xF,WAAWD,GAAMrtF,KAAK,SAASC,GACpB,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,0BAA2B,eApa7DV,EAAAsS,WAAM,EACnBtS,EAAegT,YAAA,EAsaFd,IACAwF,MAnaD3f,EAAA2I,YAAA,QAAA,eAAA,eACHV,EAAAgT,YAAoB,IAExB,SAAWrS,GACR5I,EAAY2I,YAAA,QAAA,mBAAA,eACZV,EAAAsS,WAAA,KAoEf,QAAGoF,KACA1X,EAAAgT,YAAc,EACdhT,EAAAyqO,QACHzqO,EAAA+rC,mBAAA,KAuaI/rC,EAAGguC,oBAAsB,KACzBhuC,EAAG01C,iBAAmB,KACtB11C,EAAG2+I,aAAe,KAratB3+I,EAAAy9F,MAAS,EAtDT,GAlaIz9F,GAAGC,IAuaPD,GAAGqU,kBACChJ,MAlaQ,IAoaRA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MAAS,MAEbrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAharCrU,EAAAuU,YAAA,EAmaIvU,EAAGwU,qBAAuB,SAASC,GAC3BzU,EAAGuU,YAAcE,GAGzB1c,EAnaC2c,SAAW,EAsaZ1U,EAAGsS,WAAY,EAjaftS,EAAGgT,YAAW,EACdhT,EAAAyqO,QACAzqO,EAAG4qO,eAAc,EACjB5qO,EAAG2qO,gBAAA,EAqaH3qO,EAAGksC,2BAA6BA,EAChClsC,EAAGuwL,4BAA8BA,EACjCvwL,EAAGwqO,mBAAqBA,EAlaxBxqO,EAAGkU,UAAAA,EACHlU,EAAG6qO,SAAWA,EACd7qO,EAAAssF,cAAgBA,EAChBtsF,EAAAosF,eAAkBA,EAoalBpsF,EAAG+S,WAAY,EAlaf/S,EAAA8qO,WAAA,EAoaA9qO,EAAG+qO,WAAY,EAlaf/qO,EAAAgrO,WAAS,EAoaThrO,EAAGy9F,MAnaI,EAoaPz9F,EAAG0qO,OAnaC,EAoaJ1qO,EAAGirO,QAAS,EACZjrO,EAAGm7N,sBAAwBA,EAla3Bn7N,EAAAwX,aAAS,EAoaTxX,EAAGyX,WAAY,EACfvF,IA2LAlS,EAAGgU,OApaS,WAqaRhU,EAAG8qO,WApaY,EAqaf9qO,EAAG+qO,WAAY,EACf/qO,EAAGgrO,WAAY,EACfhrO,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGy9F,MAAO,EACVz9F,EAAGwX,aAAc,EAnarBxX,EAAOyX,WAAW,GA4blBzX,EAAGkrO,SAAW,SApaST,GAqanBzqO,EAAGwX,aApaY,EAqafxX,EAAGyX,WApaY,EAqafzX,EAAG+S,WAAY,EACf/S,EAAGgT,YAAa,EAChBhT,EAAGyqO,KApaIr2O,QAAA8e,KAAAu3N,GAsaPzqO,EAAGyqO,KAAK7hN,SAAW5oB,EAAGyqO,KAAK7hN,QAE3B,KAAK,GAAI/Q,KAAK7X,GAAGy/D,SAnaZz/D,EAAAy/D,SAAQ5nD,GAAAkR,QAAA0hN,EAAA3hN,KAAAC,SACb/oB,EAAA2+I,aAAA3+I,EAAAy/D,SAAA5nD,GA6bA7X,GAAG8qO,WApaQ,EAqaX9qO,EAAG+qO,WApaQ,EAqaX/qO,EAAGgrO,WApaY,EAqafhrO,EAAGy9F,MApaK,EAqaRz9F,EAAG0qO,OApaQ,GAsiBf1qO,EAAGksF,WAAa,SAASu+I,GAratB,GAAA93N,GAActY,EAAAsY,QAAA,UACd,4CACQtb,WAAA,EAuaC+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAChBrE,EAAY8xF,WAAWu+I,EAAKpqO,QAAQ5B,KAAK,SAASC,GAra3C,MAAAA,EAAAlI,QAuaCuB,EAAW2I,YAAY,UAAW,2BAA4B,QAra9DwR,KAEbna,EAAgB2I,YAAA,QAAA,qBACCrJ,WAAA,EAuaA+F,KAAM,QAnavB,SAAAuD,GACA5I,EAAY2I,YAAA,QAAA,kEACDrJ,WAAA,EACX+F,KAAgB,UAGhB,iPAhDPhJ,QACKC,OAAO,oBACPe,WAAW,iBAAkBk1O,MAsetC,WACI,YAOA,SAASa,GAtauBpzO,EAAWyC,EAAAL,EAAqBC,EAAAkiB,EAA0BtiB,GAkbtF,QAtaQkY,KAuaJlS,EAAGsS,WAtaK,EAuaRlY,EAAYoxF,iBAAiBzzF,EAAWuK,QAAQ7D,KAAK,SAASC,GAC1D,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGqS,YAAc3T,EAAIhJ,IAra1B,IAAAwK,GAAkB/F,EAAsBgG,sBAua/BD,GAAWyU,kBACX3U,EAAGmT,gBAAkBjT,EAAWyU,iBAEpC3U,EAAGsS,WAAY,MApafva,GAAI2I,YAAgB,QAAA,mBAAA,SACpBV,EAAGsS,WAAA,GAwaR,SAtaK3R,GAuaJ5I,EAtaO2I,YAAA,QAAA,mBAAA,SAuaPV,EAAGsS,WAtaY,IA0avB,QAAS84N,KAraL9uN,EAAGiB,QAAsB,UAya7B,QAAS8tN,KACL,GAAInrO,GAAa/F,EAAsBgG,sBACvCD,GAAWyU,gBAAkB3U,EAAGmT,gBArapChZ,EAASmoE,qBAAsCpiE,GAya/C,QAtaQorO,KAuaJ,GAtaIx/I,IAuaAzrF,OAtaItI,EAAAuK,OACL6P,UAASnS,EAAKmT,gBAAAhB,UAwajBpa,GAAW2pE,kBAAoBoqB,EAAK35E,UArapC/X,EAAGuxF,sBAAmBG,GAAArtF,KAualB,SAASC,GACc,MAAfA,EAAIlI,OAraXkI,EAAAhJ,MACEqC,EAAoB2I,YAAO,QAAA,kCAAA,QAE9B3I,EAAY2I,YAAA,QAAyB,mCAAsC,SAya3E,SAtaQC,GACL5I,EAAS2I,YAAK,QAAA,sCAAA,UAyarB1G,EAtaOg/I,SAuaP18H,EAtaIrN,QAyWR,GAAIjP,GAAKC,IAGTD,GAAGorO,WAAaA,EAChBprO,EAAGqrO,wBAtayBA,EAua5BrrO,EAAGsrO,GAAKA,EAERp5N,yGAbJ9d,QACKC,OAAO,oBACPe,WAAW,yBAtawB+1O,MA2e5C,WACI,YAOA,SAASI,GAAuBxzO,EAAYyC,EAAQL,EAAuBC,EAAakiB,EAAmBtiB,EAAQ4X,GAa/G,QAtaQM,KAuaJlS,EAAGsS,WAtaY,EAuafV,EAtaoB8P,eAAkBxhB,EAAAyU,gBAAAxC,WAAA1T,KAA2C,SAAAC,GAua7E,GAtaY,MAsaRA,EAAIlI,OAtae,CAuanBwJ,EAAG2hB,YAtaWjjB,EAAAhJ,IAuad,IAAIwK,GAAa/F,EAAsBgG,sBACnCD,GAtaUyU,kBACV3U,EAAAmT,gBAAejT,EAAWyU,iBAwa9B3U,EAAGsS,WAtaW,MAwadva,GAtaO2I,YAAA,QAAA,mBAAA,SAuaPV,EAAGsS,WAtaS,GAwajB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,SACpDV,EAAGsS,WAAY,IAIvB,QAAS84N,KACL9uN,EAtaeiB,QAAA,UAyanB,QAASiuN,KAELzzO,EAAW8pB,gBAtaI7hB,EAAA6hB,gBA4anB,QAASypN,KACLtxO,EAAOg/I,SACP18H,EAtaOrN,QAwXX,GAtaIjP,GAAIC,IAyaRD,GAAGorO,WAtaSA,EAuaZprO,EAAGwrO,wBAtaeA,CAualB,IAAItrO,GAtaS/F,EAAQgG,sBAuarBH,GAAGsrO,GAtaKA,EAwaRp5N,kIAdJ9d,QACKC,OAAO,oBACPe,WAAW,yBAA0Bm2O,MAwD9C,WACI,YAMA,SAASE,GAtae1zO,EAAe0S,EAAAhQ,EAAAF,EAAAF,EAAAG,EAAAg7B,EAAAxjB,EAAAJ,EAAAzX,GAuenC,QAAS+X,KACDC,GACAH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GAratC,MAAfA,EAAAlI,SACPwJ,EAAAqS,YAAc3T,EAAAhJ,KACd8/B,EAAYy4D,aAAAxvF,KAAA,SAAAC,GACA,MAAAA,EAAAlI,SACCwJ,EAAAg3B,YAAAt4B,EAAAhJ,KACEsK,EAAKsS,WAAA,IAEf,SAAc3R,GAuaN5I,EAAW2I,YAAY,QAAS,mBAAoB,oBApazDV,EAAAsS,WAAY,IAwahB,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAKhE,QAAS+gB,GAAoBtP,GACzB,GAAIA,EAAW,CACXu5N,GACA,IAAIhwJ,IAAa,CACjB17E,GAAGsS,WAAY,EACfV,EAAuB6pE,sBAAsBtpE,EAAWupE,GAAYj9E,KAAK,SAASC,GAC3D,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACjBsK,EAAG2hB,YAAYxmB,OAAS,GACxBd,EAAQ8C,OAAO,UAAW,4CAA8C9F,WAAW,EAAM+F,KAAM,OAEnG4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAnazDgrO,KA0aP,QAASl3I,GAA4B1+F,GAC7BA,GACA61O,IAraRn2M,EAAoBg4D,4BAAA13F,GAAA2I,KAAA,SAAAC,GACE,MAAdA,EAAAlI,QACIwJ,EAAAs0F,uBAAW51F,EAAAhJ,KACRsK,EAAAs0F,uBAA2Bn5F,OAAA,GAC1Bd,EAAO8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OACP4C,EAAAsS,WAAa,GAEbva,EAAU2I,YAAQ,QAAA,yBAAA,mBAwavB,SAtaKC,GAuaJ5I,EAtaI2I,YAAW,QAAa,mBAAA,qBAyahCirO,IAKR,QAASl3I,GAtasB3+F,EAAYomD,GAuavC,GAAIA,EAtaY,CAuaZqtD,GACA,IAAItuG,IACAnF,UAtaQA,EAuaRomD,WAtaWA,EAEa,IAsaxBl8C,EAAGq0F,KAtaKu3I,qBAAgBp2I,WAuaxBv6F,EAAI4wO,cAAe,EAEnB5wO,EAtaI4wO,cAAW,EAwanBr2M,EAAoBi4D,yBAAyBxyF,GAAKwD,KAAK,SAASC,GACzC,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KArarBsK,EAAGqoD,eAAaltD,OAAO,GAC1Bd,EAAO8C,OAAA,UAAA,gDAAA9F,WAAA,EAAA+F,KAAA,OACP4C,EAAAsS,WAAa,GAEbva,EAAU2I,YAAQ,QAAA,yBAAA,eAwavB,SAtaKC,GAuaJ5I,EAtaI2I,YAAW,QAAa,mBAAA,oBAyahC6oG,KAKR,QAAS7U,GAtasB5+F,EAAYwhC,GAuavC,GAAIA,EAtaY,CAuaZiyE,GACA,IAAItuG,IACA46B,UAtaQ//B,EAuaRkwF,OAAQ1uD,EACR6sC,aAtaQnkE,EAAAq0F,KAAWu3I,qBAAqBp2I,WAuaxCpxB,WAtawBzuE,QAAbqK,EAAAq0F,KAAAy3I,uBAAa9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAwa5Bz9D,GAtagBm4D,iCAAK1yF,GAAAwD,KAAA,SAAAC,GACF,MAAXA,EAAAlI,QACAwJ,EAAGu0F,cAAY71F,EAAAhJ,KAuaXsK,EAAGu0F,cAAcp5F,OAAS,GAra/Bd,EAAA8C,OAAA,UAAA,kDAAA9F,WAAA,EAAA+F,KAAA,OACC4C,EAAAsS,WAAO,GAEPva,EAAW2I,YAAQ,QAAA,yBAAA,eAwaxB,SAtaKC,GAuaJ5I,EAtaI2I,YAAkB,QAAA,mBAAA,oBAya1B6oG,KA+BR,QAASxJ,KAEL,GAtaiC,MAA7B//F,EAAAq0F,KAAAiX,kBAAkC,CAualCtL,GACA,IAAIn8B,GAtaI7jE,EAAAq0F,KAAWiX,kBAAYpW,YAua3B/wB,EAtaOnkE,EAAAq0F,KAAYu3I,qBAAAp2I,WAuanBpxB,EAtaoBzuE,QAAbqK,EAAAq0F,KAAay3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,CAuaxBz9D,GAtaQ0uC,2BAAAL,EAAAM,EAAAC,GAAA3lE,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QAuaAwJ,EAtaGigG,sBAAAvhG,EAAAhJ,KACHsK,EAAAigG,sBAAuB9kG,OAAS,GAC7Bd,EAAA8C,OAAa,UAAA,qEAAA9F,WAAA,EAAA+F,KAAA,OAuahB4C,EAAGsS,WAAY,GApanBva,EAAW2I,YAAY,QAAS,yBAAoB,uBAwarD,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,4BAGxDs/F,KAjaR,QAAGE,KACC,GAAsB,MAAlBlgG,EAAAmgG,oBAA0BngG,EAAAmgG,mBAAAhlG,OAAA,EAAA,CAC1BilG,GAuaA,IAtaI/tE,KAuaJ,KAtaI,GAAAn3B,KAAM8E,GAAAmgG,mBAuaN9tE,EAAIx6B,KAAKmI,EAAGmgG,mBAAmBjlG,GAAGghD,WApa1Cl8C,GAAAyjD,SAAepxB,EAAKqB,MAChB,IAAAz4B,IACIolG,eAAQrgG,EAAWyjD,SAuanByxC,YAtaIl1F,EAAWq0F,KAAAiX,kBAAuBpW,YAuatC62I,eAtaI/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WAuaJ+3B,WAtaO53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAwaXz9D,GAtaY6uC,8BAAWppE,GAAAwD,KAAA,SAAAC,GACL,MAsaVA,EAtaIlI,QAuaJwJ,EAAGsgG,yBAA2B5hG,EAAIhJ,KAClCsK,EAAGsS,WAAY,GApanBva,EAAW2I,YAAY,QAAS,yBAAA,uBAwajC,SAtaKC,GAuaJ5I,EAAW2I,YAAY,QAAS,mBAAoB,4BAGxD0/F,KAjaR,QAASG,KACL,GAAgB,MAAbvgG,EAAAwgG,uBAAaxgG,EAAAwgG,sBAAArlG,OAAA,EAAA,CACbslG,GACA,IAAApuE,KACA,KAAA,GAAAn3B,KAAA8E,GAAAwgG,sBACAnuE,EAAAx6B,KAAAmI,EAAAwgG,sBAAmBtlG,GAAA22B,cAEnB7xB,GAAAwjD,YAAOnxB,EAAAqB,MAuaN,IAAIz4B,IACAylG,kBAAmB1gG,EAAGwjD,YACtB0xC,YAAal1F,EAAGq0F,KAAKiX,kBAAkBpW,YACvC62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WArarD+3B,WAAA53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAwaIz9D,GAAoB8uC,uBAAuBrpE,GAAKwD,KAAK,SAASC;AACvC,MAAfA,EAAIlI,QAtaxBwJ,EAAA2gG,kBAAAjiG,EAAAhJ,KACYsK,EAAA2gG,kBAAAxlG,OAAA,GACId,EAAA8C,OAAA,UAA0B,wDAAA9F,WAAA,EAAA+F,KAAA,OAwatB4C,EAAGsS,WAAY,GAra1Bva,EAAA2I,YAAuB,QAAoB,yBAAuB,2BAya5D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,gCApaxD+/F,KA4aR,QAASG,KAtaT,GAAgB,MAAhB5gG,EAAS6gG,gBAAO7gG,EAAA6gG,eAAA1lG,OAAA,EAAA,CACT2lG,GACH,IAAAzuE,KACI,KAAI,GAAIn3B,KAAA8E,GAAA6gG,eACJxuE,EAAGx6B,KAAAmI,EAAA6gG,eAAkB3lG,GAAA8kB,OA0azB,IADAhgB,EAAGggB,OAvaKqS,EAAAqB,OACqB/9B,QAuazBqK,EAAGq0F,KAvaIiX,kBAA6B,CAwapC,GAAIrwG,IAtaDyxD,WAAY1sD,EAAAggB,OACZk1E,YAAAl1F,EAAAq0F,KAAAiX,kBAAApW,YACH62I,eAAW/rO,EAAYq0F,KAAAu3I,qBAASp2I,WAC7B+3B,WAAY53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAEpBz9D,GAAc+uC,sBAAAtpE,GAAAwD,KAAA,SAAAC,GACU,MAAZA,EAAAlI,QACRwJ,EAAY+gG,kBAAAriG,EAAAhJ,KAwaCsK,EAAG+gG,kBAAkB5lG,OAAS,GAC9Bd,EAAQ8C,OAAO,UAAW,iDAAmD9F,WAAW,EAAM+F,KAAM,OACxG4C,EAAGsS,WAAY,GAra/Bva,EAA0B2I,YAAA,QAAA,yBAAA,2BAyaf,SAASC,GAtaf5I,EAAA2I,YAA0B,QAAA,mBAAA,iCA2a3BogG,KAIR,QAvaQE,KAyaJ,GAAIhhG,EAAGihG,eAAgB,CAtavBC,GACA,IAAA7uE,KACI,KAAA,GAASn3B,KAAK8E,GAAAihG,eAAA,CACV5uE,EAAIx6B,KAAImI,EAAAihG,eAAgB/lG,GAAA6d,IAyaxB/Y,EAAGi4B,OAvaK5F,EAAAqB,MAwaR,IAAIz4B,IAtaAkmG,WAAWnhG,EAAAi4B,OAwaXi9D,YAAal1F,EAAGq0F,KAAKiX,kBAAkBpW,YACvC62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAtarD+3B,WAAc53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,GA0adz9D,EAAoBgvC,2BAA2BvpE,GAAKwD,KAAK,SAASC,GAta/D,MAAAA,EAAAlI,QACPwJ,EAAAgmD,aAAkBtnD,EAAAhJ,KAwaFsK,EAAGgmD,aAAa7qD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,0CAA4C9F,WAAW,EAAM+F,KAAM,OACjG4C,EAAGsS,WAAY,GAranCva,EAAA2I,YAAA,QAAA,yBAAA,2BAyae,SAASC,GAvaxB5I,EAAA2I,YAAA,QAAA,mBAAA,gCA4aYwgG,KAIR,QAASE,KAtaN,GAAAphG,EAAA+jD,iBAA0B,CACzB/jD,EAAAsS,WAAa,EACT05N,GAyaA,IAAI35M,KAvaZ,KAAA,GAAAn3B,KAAA8E,GAAAihG,eAyaY5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,GAElC/Y,GAAGi4B,OAAS5F,EAAIqB,MAvaxB,IAASz4B,IACFkmG,WAAYnhG,EAAAi4B,OACf6rB,WAAA9jD,EAAuB+jD,iBAAeD,WAC9BoxC,YAAIl1F,EAAWq0F,KAAKiX,kBAAApW,YACpB62I,eAAG/rO,EAAcq0F,KAAIu3I,qBAAAp2I,WACrB+3B,WAAuC53H,QAAnCqK,EAAAq0F,KAAay3I,uBAAsB9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EA0a3Cz9D,GAxaWivC,2BAA6BxpE,GAAAwD,KAAA,SAAAC,GAyapC,GAAmB,MAAfA,EAAIlI,OAvaL,GAAY,MAAZkI,EAAAhJ,KAAY,CACZsK,EAAAq+C,OAAA1hD,KAAAC,MAAA8B,EAAAhJ,MAAAsuD,KACH,IAAWoD,KACR5sD,GAAYqI,QAAA7C,EAAAq+C,OAAA,SAAAwI,GAyaH,GAAI/N,IAvaNuO,KAAAR,EAAAQ,KACHI,SAAYZ,EAASH,OACjBI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WA0aCM,GAASvvD,KAAKihD,KAta7B94C,EAAa4mD,YAAAQ,EAClBpnD,EAAkBsS,WAAQ,MA0aVjY,GAAQ8C,OAAO,UAAW,0CAA4C9F,WAAW,EAAM+F,KAAM,OAvaxG4C,EAAAsS,WAA0B,MA6anBva,GAAW2I,YAAY,QAAS,yBAA0B,2BAE/D,SAASC,GAvaX5I,EAAK2I,YAAA,QAAA,mBAAA,gCA2aNsrO,KAnaf,QAAW5lL,GAAAc,GA0aA,GAAIA,EAAKo6C,kBAAmB,CACxB,GAAI96C,GAAW,QAAUC,EAAUS,EAAKO,UAAY,GAxahEd,EAAAnsD,EAAA6P,KAAArK,EAAAq+C,QACYqI,OAAAF,IA2aI+6C,EAAU/mG,EAAOgnG,MAAMxhG,EAAGq+C,OAAQ,SAASwI,GAxalD,MAAAJ,GAAmBI,EAAAH,SA2ahBlsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAASC,GAxa7C,GAAAA,EAAAY,WAAqBjB,EAAgB,CA2axB,GAAIi7C,GAAYjnG,EAAO8xB,IAAI46B,EAAKo6C,kBAAmB,SAxahEz6C,GAAcC,OAAAu6C,EAAA7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GACd,MAAuBrsD,GAAA3F,SAAc4sG,EAAA56C,EAAAvrB,aAKrC,GAAYurB,EAAAY,WAAA85C,EAAA76C,OAAA,CACA,GAAA9xB,GAAAp6B,EAAA6P,KAAArK,EAAA0hG,mBACCzqE,QAAAj3B,EAAAihG,eAAsBloF,IAEnC,IAAA6b,EAAA,CACA,GAAA+sE,GAA2BnnG,EAAA6P,KAAAuqB,EAAA9X,QAC3B8kF,mBAA6B5hG,EAAA+jD,iBAAAnxB,eAE7B,IAAA+uE,EAAgC,CAChC,GAAyBE,GAAArnG,EAAA8xB,IAAAq1E,EAAAjsG,KAAA,SACzB8E,GAAwBqI,QAAA0+F,EAAAz6C,OAAA,SAAAg7C,GACKtnG,EAAA3F,SAAAgtG,EAAAC,EAAA/6C,SACAvsD,EAAAy2E,OAAAswB,EAAAz6C,OAAA,SAAAi7C,GACT,MAAAA,GAAAh7C,SAAA+6C,EAAA/6C,aAMpB/mD,EAAAgiG,UAAoB96C,EAAAo6C,qBAibvB,QAzaI76C,GAAMc,GACP,MAAA3gD,UAAA2gD,EAAAjkC,UAAA,IA4aH,QAAS+9E,GAAgBj6C,GAUrB,MARIA,IAAYA,EAASjsD,OAAS,GAxanCX,EAAAqI,QAAoBukD,EAAA,SAAAP,GACnB,GAAc,GAAdA,EAAcvrB,SAAA,CACF,GAAA2mE,GAAAznG,EAAA6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IACbR,GAAAoG,WAAA,MAAAg1C,KA6aQ76C,EAGX,QAzaIxxB,KACD51B,EAAAsS,WAAA,EACC6vF,GACA,IAAA9vE,KACD,KAAA,GAAAn3B,KAAA8E,GAAAgiG,UACC3vE,EAAAx6B,KAAAmI,EAAgBgiG,UAAA9mG,GAAA6rD,OA2ahB/mD,GAAGoiG,QAAU/vE,EAAIqB,MACjB,IAAIz4B,IAxaRonG,eAAgBriG,EAAAoiG,QACRjB,WAAWnhG,EAAAi4B,OACXi9D,YAAAl1F,EAAeq0F,KAAAiX,kBAAmBpW,YA0alC62I,eAzaY/rO,EAAAq0F,KAAWu3I,qBAAKp2I,WA0a5B+3B,WAza6B53H,QAAlBqK,EAAAq0F,KAAAy3I,uBAAkB9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EA2ajCz9D,GAzaoBkvC,kBAAezpE,GAAKwD,KAAA,SAAAC,GA2apC,GAzamB,MAyafA,EAAIlI,OAzaW,CA2af,GADAwJ,EAAG+1B,gBAAkBr3B,EAAIhJ,KACrBsK,EAzaG+1B,gBAAc56B,OAAA,EAAA,CA0ajB,IAzaI,GAAAD,KAAA8E,GAAW+1B,gBA0aX,IAAK,GAAI5rB,KAAKnK,GAAG+1B,gBAAgB76B,GAAGg5B,aAxarC,IAAA,GAAY8B,KAAAh2B,GAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA,CA0aHj0B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGC,IAAMt5B,KAAKC,MAAMoD,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGE,SAxatHl2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAG,OAAAx5B,KAAAC,MAAAoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SACFl2B,EAAA+1B,gBAAqB76B,GAAAg5B,aAAA/pB,GAAoB8pB,QAAA+B,GAAAI,SA0ahCvB,aAEJ70B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGK,SAAU,CAva9E,IAAoBC,GAAA,CACV97B,GAAA+7B,MAAAv2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAC,IAAAO,UAAA,SAAAnrB,EAAA0b,GACXuP,GAAAjrB,IAEerL,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cACQz2B,EAAA+1B,gBAAA76B,GAAsBg5B,aAAW/pB,GAAA8pB,QAAY+B,GAAKhZ,OAAShd,EAAA+1B,gBAAK76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cAAAH,GAAAxK,QAAA,GAE5E9rB,EAAc+1B,gBAAI76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,MAAAsZ,EAAAxK,QAAA,EAET,IAAA9O,GAAOhd,EAAA+1B,gBAAW76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,KA0alBhd,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGU,QAAqE,IAA1D12B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAG,OAAelK,QAAQ,EAxa7I,IAAY4K,GAAA12B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAU,MAEJ12B,GAAA+1B,gBAAY76B,GAASg5B,aAAA/pB,GAAA8pB,QAA0B+B,GAAAW,OAAA9K,WAAA7O,GAAA6O,WAAA6K,EA0ajC12B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGW,MAxajE32B,GAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAY,OAAA/K,WAAA7O,GAAA6O,WAAA6K,EACF,IA0aSG,IA1aG72B,EAAS+1B,gBAAA76B,GAAAg5B,aAAoB/pB,GAAA8pB,QAAA+B,GAAAY,OA0axB,EAxa7Bp8B,GAAA+7B,MAAAv2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAG,OAAAK,UAAA,SAAAnrB,EAAA0b,GACH8P,GAAAxrB,IA2awBrL,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cACjDz2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGc,UAAY92B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cAAgBH,GAAMxK,QAAQ,GAvazJ9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAc,SAAAR,EAAAxK,QAAA,GAES9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAA4B/pB,GAAA8pB,QAAgB+B,GAAAe,QAAc,EAKtE,IAAG,GAAA77B,KAAA8E,GAAY+1B,gBACZ,IAAA,GAAA5rB,KAAAnK,GAAAg3B,YACH,GAAWh3B,EAAA+1B,gBAAY76B,GAAS6d,KAAA/Y,EAAAg3B,YAAA7sB,GAA0B8sB,QAAA,CA0a9C,GAAIh8B,IAxaPg8B,QAAAj3B,EAAAg3B,YAAA7sB,GAAA8sB,QA2aGj3B,GAAG+1B,gBAAgB76B,GAAGg8B,aAAe18B,EAAOyC,OAAO+C,EAAGg3B,YAAa/7B,QAK/EZ,GAAQ8C,OAAO,UAAW,iBAAmB9F,WAAW,EAAM+F,KAAM,MAra5E4C,GAAAsS,WAAA,MAEIva,GAAW2I,YAAA,QAAA,yBAAA,2BA2ahB,SAASC,GAxaR5I,EAAO2I,YAAK,QAAA,mBAAmC,4BAqdvD,QAASk3B,GAzaEhD,GA0aP,GAzaIiC,GAAA,CA0aJr8B,GAAO+7B,MAAM3B,EAAKuB,OAAOK,UAAW,SAASnrB,EAAO0b,GAChD8P,GAASxrB,IAETupB,EAAK6B,cAxaV7B,EAAAkC,UAAAlC,EAAuB6B,cAAWI,GAAA/K,QAAA,GAE9B8I,EAAKkC,SAAAD,EAAA/K,QAAA,GA8iBZ,QAASmgN,KAEL,GAAI55M,IACAiG,mBAIJ,KAzaI,GAAAp9B,KAAA8E,GAAA+1B,gBA0aA,IAAK,GAAI5rB,KAAKnK,GAAG+1B,gBAAgB76B,GAAGg5B,aAChC,IAAK,GAAI8B,KAAKh2B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,SAC5Cj0B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,QAAuE,IAA5DoK,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,QAA4E,IAA5DoK,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,QAxazLy8B,EAAAiG,gBAA6BzgC,MA0adm9B,MAAOh1B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGhB,MAxarE8C,aAAgB,GAAA93B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OAAAoK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAc,SAAA,EACnByB,KAAA5iC,QAAAqK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAn1B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAA1S,MAAA,GACU6Q,UAAA39B,QAAAqK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAn1B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAD,MAAA,KACIsD,eAAGx4B,EAAgB+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OACjBmiC,gBAAkB,GAAA/3B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OAAA+G,KAAAqkB,UAAAhhB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAG,QAAA,MA2btC,IAAIl7B,IACAq9B,gBAzaiBjG,EAAAiG,gBA4ajBr9B,GAAIq9B,gBAAgBn9B,OAAS,EAC7Bq6B,EAzaGs4D,qBAAA7yF,GAAAwD,KAAA,SAAAC,GACHA,EAAAhJ,KAAAke,aAAA,GA0aQ7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,iBACpD7T,EAAG0iG,SAvaV3qG,EAAA2I,YAA6B,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAE3B,SAAAlT,GACA5I,EAAY2I,YAAA,iCAGfrG,EAAK8C,OAAS,UAAG,0BAAgB9F,WAAA,EAAA+F,KAAA,OA8azC,QAASsuO,KACL1rO,EAAGq0F,KAzaKxyE,gBAAe,KA0avB7hB,EAAG2hB,eACH3hB,EAAGq0F,KAzaKu3I,qBAAmB,KA0a3B5rO,EAAGq0F,KAzaKy3I,uBAAqB,KA0a7B9rO,EAAGq0F,KAAKtyC,2BAA6B,KACrC/hD,EAAGs0F,0BACHt0F,EAAGq0F,KAzaKv4B,mBAAmB,KA0a3B97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBAzaoB,KA0a5BtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBAzaqB,KA0axBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAzaqB,KA0axBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAzaiB,KA0apB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAzagB,KA0anBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAzagB,KA0anB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBA8BP,QAAS41M,KACL3rO,EAAGq0F,KAAKu3I,qBAAuB,KAC/B5rO,EAAGq0F,KAAKy3I,uBAAyB,KACjC9rO,EAAGq0F,KAzaKtyC,2BAA2B,KA0anC/hD,EAAGs0F,0BACHt0F,EAAGq0F,KAAKv4B,mBAzamB,KA0a3B97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBAzac,KA0atBtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAzaqB,KA0axBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASwzE,KACLvpG,EAAGq0F,KAAKiX,kBAAoB,KAC5BtrG,EAAGu0F,iBAxaPv0F,EAAAmgG,sBACIngG,EAAAmgG,mBAAgB,KA0ahBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAxa/BxgG,EAAAwgG,yBA0aIxgG,EAAGsgG,4BAxaHtgG,EAAA6gG,eAAgB,KA0ahB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAzaW,KA0adjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAzaOiqE,KACHhgG,EAAAmgG,mBAAA,KACAngG,EAAAmgG,sBACAngG,EAAAigG,yBA0aAjgG,EAAGwgG,sBAzauB,KA0a1BxgG,EAAGwgG,yBAxaHxgG,EAAGsgG,4BACHtgG,EAAA6gG,eAAU,KA0aV7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAzaiB,KA0apBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KAxatB/jD,EAAAgmD,gBA2aAhmD,EAAG+1B,mBAGP,QAASqqE,KACLpgG,EAAGwgG,sBAzasB,KA0azBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS0qE,KACLzgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS+qE,KACL9gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASmrE,KACLlhG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASi2M,KAELhsO,EAAG+1B,mBAGP,QAASosE,KACLniG,EAAG+1B,mBAj9BP,GAAI/1B,GAAKC,IAETD,GAAGqU,kBAtagBhJ,MAAA,IAAiBA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAuapCrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAtaQ,EAuaXvU,EAAGwU,qBAtaoB,SAAYC,GAua3BzU,EAAGuU,YAtaIE,GAyafzU,EAAGgT,YAtaa,EAuahBhT,EAAG+S,WAtaQ,EAuaX/S,EAAGsS,WAAY,CACf,IAAIH,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAAsBA,EArazBzhB,EAAAw0F,4BAAyBA,EAuazBx0F,EAAGy0F,yBAtagBA,EAuanBz0F,EAAG00F,2BAtasBA,EAuazB10F,EAAG+/F,2BAtaiBA,EAuapB//F,EAAGkgG,8BAtagCA,EAuanClgG,EAAGugG,uBAtagBA,EAuanBvgG,EAAG4gG,sBAtagBA,EAuanB5gG,EAAGghG,2BAtagBA,EAuanBhhG,EAAGohG,2BAA6BA,EAChCphG,EAAG41B,kBAtaYA,EAuaf51B,EAAGomD,YAtaQA,EAuaXpmD,EAAGymD,UAtaSA,EAuaZzmD,EAAGisO,iBAtaYA,EAuafjsO,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGq0F,QACHt8F,EAAW2c,SAAU,EACrBxC,IAEAlS,EAAGu7C,eAraCC,aAAG,UACHnzB,KAAG,MAEHmzB,aAAG,WACHnzB,KAAG,MA0aProB,EAAGs1F,mBAraHC,aAAS,wBACLC,YAAI,IAwaJD,aAtaQ,0BAuaRC,YAtaQ,IAyaZx1F,EAAG+yF,iBACCC,eAtaO,UAuaPC,aAtac,IAwadD,eAtaO,QAuaPC,aAtaO,IAwaPD,eAtac,UAuadC,aAAc,IA6HlBjzF,EAAGksO,qBAtaqB,WAuapBlsO,EAAGq0F,KAAKy3I,uBAtamB,KAua3B9rO,EAAGq0F,KAAKtyC,2BAtauB,KAua/B/hD,EAAGq0F,KAAKtyC,2BAtawB,KAuahC/hD,EAAGq0F,KAAKv4B,mBAtaQ,KAuahB97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBAtaW,KAuanBtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAtaoB,KAuavBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAG2gG,qBACH3gG,EAAGihG,eAtaI,KAuaPjhG,EAAGihG,kBACHjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAtagB,KAuanB/jD,EAAGgmD,gBACHhmD,EAAG4mD,eACH5mD,EAAG+1B,oBAoWP/1B,EAAG82B,SAAW,SAASlC,EAAM9hB,EAAK0hB,GAE9BI,EAAKuB,OAzaOK,UAAIhC,GAAW3I,WAAK/Y,GA0ahC8kB,EAAUhD,EACV,IAAIkC,GAzaQjL,WAAO+I,EAAAkC,UAAehL,QAAS,GA0avC6K,EAAS9K,WAzaW+I,EAAA+B,QAAO7K,QAAW,GA0atC8K,EAzaQ/K,WAAG+I,EAAYgC,QAAA9K,QAAA,EA0a3B,IAAID,WAzaWiL,IAAAjL,WAAA8K,IAAA9K,WAAA+I,EAAAkC,WAAAjL,WAAA+K,GA4aXhC,EAzaGkC,SAASA,EAAKhL,QAAA,OA2ad,CACHzxB,EAzaG8C,OAAA,UAAA,oCAAAy3B,EAAAgC,OAAA9K,QAAA,GAAA,OAAA8I,EAAA+B,OAAA7K,QAAA,IAAAz0B,WAAA,EAAA+F,KAAA,OACHw3B,EAAAh/B,OAAA,EA0aAg/B,EAAKkC,SAAWlC,EAAK5X,KACrB,IAAIqV,KACJ,KAAK,GAAItL,KAAO6N,GAAKqB,IAAIO,UACrBnE,EAAIx6B,MAxaP4zB,MAAA1E,EACD1b,MAAcupB,EAAAqB,IAAAO,UAAAzP,IA6ad,KAzaI,GAAA7rB,KAAQm3B,GACRA,EAAAn3B,GAAAuwB,OAAiB+I,IACjBI,EAAAuB,OAAgBK,UAAKhC,GAAA3I,WAAAwG,EAA0Bn3B,GAAAmQ,OA8anDupB,GAAKuB,OAzaOK,aA0aZ5B,EAAKuB,OAzaOK,UAAQpiC,QAAO8e,KAAW0hB,EAAAqB,IAAAO,WA2atC5B,EAAK9Q,SAzaM,EA0aX8Q,EAAKyB,SAzaG,IAybhBr2B,EAAGm1B,WAzaI,SAAiBP,EAAAh/B,GAEpB,GADAg/B,EAAGp+B,OAAKZ,EACW,GAAhBg/B,EAAAp+B,OAAgB,CAChB,GAAA4I,GAAqB7E,EAAA8E,MACrBhI,WAAA,EACAiI,eAAA,cACAC,gBAAA,aACArK,YAAA,qDACAE,WAAA,8BACAC,aAAiB,KACjB+H,KAAA,KACAoC,SAAA,SACAC,UAAA,EACAyQ,SACA3N,MAAA,WACA,MAAmBqyB,MA8alBx1B,GAAcM,OAAOjB,KAAK,SAASxD,GAxalC25B,EAAAO,WAAAl6B,EACL25B,EAAAh/B,OAAAg/B,EAAAp+B,OACYo+B,EAAA9Q,UACR8Q,EAAA9Q,SAAA,IACA,WACI8Q,EAAA+D,QAAA,EACA/D,EAAAO,aACJP,EAAAO,WAAoB1S,MAAA,IAChBmS,EAAIh/B,OAAI,QA2aT,CACHg/B,EAAKh/B,OAzaOg/B,EAAAp+B,OA0aRo+B,EAzaI+D,OA0aJ/D,EAAK+D,QAzaE,EACQ,GAAX/D,EAAA9Q,UA0aJ8Q,EAAKh/B,OAAS,EAClB,IAzaGkhC,GAASjL,WAAK+I,EAAAkC,UAAAhL,QAAA,GACb6K,EAAA9K,WAAW+I,EAAY+B,QAAS7K,QAAA,GA0ahC8K,EAAS/K,WAAW+I,EAAKgC,QAAQ9K,QAAQ,EAva7CD,YAAAiL,IAAAjL,WAAA8K,IAAA9K,WAAA+I,EAAAkC,WAAAjL,WAAA+K,KA4aIv8B,EAAQ8C,OAAO,UAAW,gDAAkDy3B,EAAKgC,OAAO9K,QAAQ,GAAK,OAAS8I,EAAK+B,OAAO7K,QAAQ,IAAMz0B,WAAW,EAAM+F,KAAM,OAC/Jw3B,EAAKh/B,OAAS,EAxajBg/B,EAAAuB,OAAAK,UAAApiC,QAAgC8e,KAAA0hB,EAAAqB,IAAAO,WAC9B5B,EAAAkC,SAAAlC,EAAsB5X,MACzB4X,EAAA9Q,SAAA,EACI8Q,EAAAyB,SAAM,KAgblBr2B,EAAG44B,gBAzaS,SAAgBhE,GA0axB,GAAIx1B,GAzaI7E,EAAmB8E,MA0avBhI,WAzaI,EA0aJiI,eAAgB,cAxahBC,gBAAA,aA0aArK,YAzaY,qDA0aZE,WAzaW,8BA0aXC,aAzaW,KA0aX+H,KAAM,KACNoC,SAzaQ,SA0aRC,UAAU,EACVyQ,SAxaI3N,MAAA,WA0aI,MAAOqyB,MAKnBx1B,GAAcM,OAAOjB,KAAK,SAASxD,GAC/B25B,EAAKO,WAAal6B,GAxa1B,eA6aA+E,EAAG20B,gBAzac,SAAQC,EAAAO,GA4arB,GAzaIl6B,IACA+5B,MAAIJ,EAAMI,MA0aVG,WAzaIA,GA2aJ/1B,EAzaI7E,EAAmB8E,MA0avBhI,WAzaI,EA0aJiI,eAAgB,cAxahBC,gBAAA,aA0aArK,YAzaY,iDA0aZE,WAzaW,yBA0aXC,aAzaY,KA0aZ+H,KAAM,KACNoC,SAzaQ,SA0aRC,UAAU,EACVyQ,SACI3N,MAAO,WAxaR,MAAStH,MA8ahBmE,GAAcM,OAAOjB,KAAK,SAASxD,GAC3B25B,EAAKO,aACLP,EAAKO,WAAWD,MAAQj6B,IAC7B,eAGP+E,EAAGuL,OAzaK,SAAA0oB,EAAAqvE,GACAA,EAAIzqE,YACJyqE,EAAAzqE,aAAiB,EAGjByqE,EAAGzqE,aAAa,CA2apB,KAAK,GAzaG39B,KAAI+4B,GACet+B,QAyanBs+B,EAzaI/4B,GAAAy9B,QAAe,GAAA1E,EAAA/4B,GAAAy9B,SA0anB1E,EAzaI/4B,GAAA4oB,QAAgBw/E,EAAKzqE,YACF,GAAnB5E,EAAA/4B,GAAA4oB,QACAmQ,EAAA/4B,GAAAtF,OAAgB,EAEpBq+B,EAAA/4B,GAAAtF,OAAoB,IA2pBhCoK,EAAG0iG,MAAQ,WACP1iG,EAAGq0F,KAAKlhF,gBAzaG,KA0aXnT,EAAGq0F,KAzaKxyE,gBAAW,KA0anB7hB,EAAG2hB,eACH3hB,EAzaGq0F,KAAAu3I,qBAAc,KA0ajB5rO,EAAGq0F,KAzaCy3I,uBAAuB,KA0a3B9rO,EAAGq0F,KAAKtyC,2BAA6B,KACrC/hD,EAAGs0F,0BACHt0F,EAAGq0F,KAAKv4B,mBAAqB,KAxa9B97D,EAAAqoD,kBA0aCroD,EAAGq0F,KAAKiX,kBAAoB,KAxa5BtrG,EAAAu0F,iBACAv0F,EAAAmgG,sBACAngG,EAAAmgG,mBAAe,KACfngG,EAAAigG,yBACAjgG,EAAAwgG,sBAAwB,KACxBxgG,EAAAwgG,yBA0aAxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAzagB,KA0anBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAzaiB,KA0apB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,uLAr/BX3hC,QACKC,OAtaM,4BAuaNe,WAtaU,qBAAaq2O,MA85ChC,WACI,YAMA,SAASU,GAAiBp0O,EAAY0C,EAASJ,EAASE,EAAWC,EAAQg7B,EAAqBxjB,EAAgBJ,EAAwBzX,GAiEpI,QAAS+X,KACDC,GACAH,EAzaSI,mBAAmBD,GAAa1T,KAAS,SAAAC,GAC9B,MAAhBA,EAAKlI,SACLwJ,EAAKqS,YAAU3T,EAAAhJ,KACf8/B,EAAey4D,aAAAxvF,KAAA,SAAAC,GA0aY,MAAfA,EAAIlI,SACJwJ,EAAGg3B,YAAct4B,EAAIhJ,KACrBsK,EAAGsS,WAAY,IAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAvahEV,EAAAsS,WAAgB,IAEhB,SAAA3R,GACA5I,EAAA2I,YAAiB,QAAA,mBAAA,oBAgbzB,QAzaQ+gB,GAAStP,GA0ab,GAAIA,EAzaW,CA0aXu5N,GACA,IAAIhwJ,IAAa,CACjB17E,GAAGsS,WAAY,EACfV,EAAuB6pE,sBAAsBtpE,EAAWupE,GAAYj9E,KAAK,SAAUC,GAC5D,MAAfA,EAAIlI,QAxahBwJ,EAAc2hB,YAAYjjB,EAAAhJ,KACjBsK,EAAA2hB,YAAaxmB,OAAA,GACRd,EAAA8C,OAAA,UAAA,4CAAA9F,WAAA,EAAA+F,KAAA,OA0aF4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAvatE,SAAAC,GA0aQ5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAIxDgrO,KAIR,QAzaQl3I,GAAiB1+F,GACjBA,GACA61O,IACAn2M,EAAcg4D,4BAAA13F,GAAA2I,KAAA,SAAAC,GACR,MAAAA,EAAAlI,QACNwJ,EAAUs0F,uBAAA51F,EAAAhJ,KACAsK,EAAAs0F,uBAAAn5F,OAAA,GACDd,EAAA8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OACL4C,EAAOsS,WAAW,GA2adva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,qBArazDirO,IA8aP,QAzaQl3I,GAAkB3+F,EAAAomD,GA0atB,GAAIA,EAAY,CACZqtD,GAxaA,IAAItuG,IA0aAnF,UAAWA,EAxadomD,WAASA,EAEmB,IAAzBl8C,EAAAq0F,KAAQu3I,qBAAiBp2I,WACzBv6F,EAAI4wO,cAAW,EA2af5wO,EAAI4wO,cAzaG,EA0aXr2M,EAzamBi4D,yBAASxyF,GAAAwD,KAAA,SAAAC,GA0aL,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KACpBsK,EAAGqoD,eAAeltD,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,gDAAkD9F,WAAW,EAAM+F,KAAM,OACvG4C,EAAGsS,WAAY,GAvatBva,EAAA2I,YAAmB,QAAA,yBAAA,eAEpB,SAAMC,GACN5I,EAAA2I,YAAiB,QAAA,mBAAA,oBAIrB6oG,KA8aJ,QAAS7U,GAzayB5+F,EAAAwhC,GA0a9B,GAAIA,EAAc,CACdiyE,GACA,IAAItuG,IACA46B,UAAW//B,EACXkwF,OAAQ1uD,EACR6sC,aAAcnkE,EAAGq0F,KAAKu3I,qBAAqBp2I,WAC3CpxB,WAA+CzuE,QAAlCqK,EAAGq0F,KAAKy3I,uBAAuC9rO,EAAGq0F,KAAKy3I,uBAAuB74I,aAAe,EAE9Gz9D,GAAoBm4D,iCAAiC1yF,GAAKwD,KAAK,SAAUC,GAClD,MAAfA,EAAIlI,QACJwJ,EAAGu0F,cAAgB71F,EAAIhJ,KACnBsK,EAAGu0F,cAAcp5F,OAAS,GAC1Bd,EAAQ8C,OAAO,UAAW,kDAAoD9F,WAAW,EAAM+F,KAAM,OACzG4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAraxD6oG,KAycR,QAzaOxJ,KACH,GAAG//F,EAAAq0F,KAAAiX,kBAAqB,CACrBtL,GACA,IAAAn8B,GAAA7jE,EAAAq0F,KAAAiX,kBAAwBpW,YACxB/wB,EAAAnkE,EAAAq0F,KAAwBu3I,qBAAAp2I,WACxBpxB,EAA2BzuE,QAA3BqK,EAAAq0F,KAA2By3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,CAC3Bz9D,GAAiB0uC,2BAAAL,EAAAM,EAAAC,GAAA3lE,KAAA,SAAAC,GACA,MAAjBA,EAAAlI,QACAwJ,EAAAigG,sBAAoBvhG,EAAAhJ,KACpBsK,EAAAigG,sBAAiB9kG,OAAA,GACjBd,EAAiB8C,OAAA,UAAA,2DAAA9F,WAAA,EAAA+F,KAAA,OACjB4C,EAAAsS,WAAoB,GAEpBva,EAAe2I,YAAA,QAAA,yBAAA,uBAEf,SAAAC,GA0aK5I,EAAW2I,YAAY,QAAS,mBAAoB,4BArazDs/F,KA8aP,QAzaOE,KACH,GAAGlgG,EAAAmgG,mBAAgB,CAChBC,GACA,IAAA/tE,KACA,KAAA,GAAAn3B,KAAA8E,GAAAmgG,mBACA9tE,EAAAx6B,KAAAmI,EAAAmgG,mBAAwBjlG,GAAAghD,WAExBl8C,GAAAyjD,SAAApxB,EAAAqB,MACA,IAAAz4B,IACAolG,eAAiBrgG,EAAAyjD,SACjByxC,YAAAl1F,EAAoBq0F,KAAAiX,kBAAApW,YACpB62I,eAAiB/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WACjB+3B,WAAiB53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAEjBz9D,GAAmB6uC,8BAAAppE,GAAAwD,KAAA,SAAAC,GACJ,MAAfA,EAAAlI,QA0aSwJ,EAAGsgG,yBAA2B5hG,EAAIhJ,KAxa3CsK,EAAAsS,WAAkB,GA2aTva,EAAW2I,YAAY,QAAS,yBAA0B,uBAvanE,SAAKC,GACA5I,EAAA2I,YAAA,QAAyB,mBAAA,4BAI9B0/F,KA8aP,QAzaOG,KACH,GAAGvgG,EAAAwgG,sBAAwB,CACxBC,GACA,IAAApuE,KACA,KAAA,GAAAn3B,KAAA8E,GAAiBwgG,sBACjBnuE,EAAAx6B,KAAAmI,EAAiBwgG,sBAAAtlG,GAAA22B,cAEjB7xB,GAAAwjD,YAAiBnxB,EAAAqB,MACjB,IAAAz4B,IACAylG,kBAAoB1gG,EAAAwjD,YACpB0xC,YAAAl1F,EAAmBq0F,KAAAiX,kBAAApW,YACnB62I,eAAe/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WA0aV+3B,WAA+C53H,QAAlCqK,EAAGq0F,KAAKy3I,uBAAuC9rO,EAAGq0F,KAAKy3I,uBAAuB74I,aAAe,EAE9Gz9D,GAAoB8uC,uBAAuBrpE,GAAKwD,KAAK,SAAUC,GACxC,MAAfA,EAAIlI,QAxaXwJ,EAAA2gG,kBAAoBjiG,EAAAhJ,KACjBsK,EAAA2gG,kBAAoBxlG,OAAA,GACzBd,EAAgB8C,OAAA,UAAA,wDAAA9F,WAAA,EAAA+F,KAAA,OAChB4C,EAAAsS,WAAqB,GAErBva,EAAA2I,YAAwB,QAAA,yBAAA,2BAExB,SAAAC,GACA5I,EAAA2I,YAA2B,QAAA,mBAAA,gCAI3B+/F,KA8aP,QAASG,KAxaL,GAAG5gG,EAAA6gG,eAAkB,CA0ajBC,GACA,IAAIzuE,KAxaZ,KAAS,GAAAn3B,KAAY8E,GAAA6gG,eACdxuE,EAAAx6B,KAAAmI,EAAA6gG,eAAqB3lG,GAAA8kB,OAErBhgB,GAAAggB,OAAAqS,EAAAqB,MACA,IAAAz4B,IACAyxD,WAAA1sD,EAAAggB,OACAk1E,YAAAl1F,EAAAq0F,KAAAiX,kBAA2BpW,YAC3B62I,eAAiB/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WACjB+3B,WAAiB53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAEjBz9D,GAAiB+uC,sBAAAtpE,GAAAwD,KAAA,SAAAC,GACA,MAAjBA,EAAAlI,QACAwJ,EAAA+gG,kBAAoBriG,EAAAhJ,KACpBsK,EAAA+gG,kBAAmB5lG,OAAA,GACnBd,EAAe8C,OAAA,UAAA,iDAAA9F,WAAA,EAAA+F,KAAA,OA0aN4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,2BAvajE,SAAAC,GACF5I,EAAA2I,YAAwB,QAAA,mBAAA,gCAIxBogG,KA6aP,QAzaOE,KACH,GAAGhhG,EAAAihG,eAAmB,CACnBC,GA0aC,IAAI7uE,KAxaL,KAAA,GAAAn3B,KAAA8E,GAAkBihG,eAAA,CA0ab5uE,EAAIx6B,KAAKmI,EAAGihG,eAAe/lG,GAAG6d,IAvajC/Y,EAAAi4B,OAAA5F,EAAAqB,MACF,IAAAz4B,IACAkmG,WAAiBnhG,EAAAi4B,OACjBi9D,YAAoBl1F,EAAAq0F,KAAAiX,kBAAApW,YACpB62I,eAAiB/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WACjB+3B,WAAiB53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAEjBz9D,GAAmBgvC,2BAAAvpE,GAAAwD,KAAA,SAAAC,GACJ,MAAfA,EAAelI,QA0aFwJ,EAAGgmD,aAAetnD,EAAIhJ,KAxanCsK,EAAkBgmD,aAAA7qD,OAAA,GA0aDd,EAAQ8C,OAAO,UAAW,0CAA4C9F,WAAW,EAAM+F,KAAM,OACjG4C,EAAGsS,WAAY,GAva5Bva,EAAiB2I,YAAA,QAAA,yBAAA,2BAEjB,SAAAC,GACA5I,EAAmB2I,YAAA,QAAA,mBAAA,iCA8alBwgG,KAKR,QAzaOE,KA0aH,GAAIphG,EAAG+jD,iBAAkB,CACrBioL,GAxaR,IAAS35M,KA0aD,KAAK,GAAIn3B,KAAK8E,GAAGihG,eAxalB5uE,EAAAx6B,KAAAmI,EAAAihG,eAAkB/lG,GAAA6d,GA2ajB/Y,GAAGi4B,OAAS5F,EAAIqB,MAxaxB,IAASz4B,IACFkmG,WAAAnhG,EAAkBi4B,OA0ab6rB,WAAY9jD,EAAG+jD,iBAAiBD,WAChCoxC,YAAal1F,EAAGq0F,KAAKiX,kBAAkBpW,YACvC62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAxa9C+3B,WAAW53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EAEfz9D,GAAKivC,2BAAkBxpE,GAAAwD,KAAA,SAAAC,GACvB,GAAc,MAAdA,EAAAlI,OAAc,CACTwJ,EAAAq+C,OAAA1hD,KAAAC,MAAuB8B,EAAAhJ,MAAAsuD,KACvB,IAAAoD,KACA5sD,GAAAqI,QAAA7C,EAAAq+C,OAA6B,SAAAwI,GAClC,GAAA/N,IACKuO,KAAAR,EAAAQ,KACYI,SAAAZ,EAAAH,OACZI,OAAoB,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEzBM,GAAqBvvD,KAAAihD,KAErB94C,EAAA4mD,YAAwBQ,MAGxBrvD,GAAA2I,YAA2B,QAAA,yBAAA,2BAE3B,SAAAC,GACA5I,EAAA2I,YAAoB,QAAA,mBAAA,gCAKpBsrO,KA8aP,QAAS5lL,GAAYc,GAva5B,GAAYA,EAAAo6C,kBAAA,CACT,GAAA96C,GAAA,QAAAC,EAAAS,EAAAO,UAAA,GA0agBd,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,QAChCqI,OAAUF,IAxad+6C,EAAA/mG,EAAAgnG,MAAAxhG,EAAAq+C,OAAA,SAAAwI,GACI,MAAAJ,GAAAI,EAAAH,SAEPlsD,GAAAqI,QAAiB7C,EAAA4mD,YAAY,SAASC,GAClC,GAAAA,EAAAY,WAAAjB,EAAA,CAEN,GAAAi7C,GAAqBjnG,EAAc8xB,IAAE46B,EAAAo6C,kBAA0B,SACpDz6C,GAAGC,OAAAu6C,EAAgB7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GA2ab,MAAOrsD,GAAO3F,SAAS4sG,EAAW56C,EAAEvrB,aAK5C,GAAIurB,EAAEY,WAAa85C,EAAQ76C,OAAQ,CAza/B,GAAA9xB,GAAAp6B,EAAA6P,KAAArK,EAAA0hG,mBACDzqE,QAAAj3B,EAAAihG,eAAAloF,IAEC,IAAA6b,EAAA,CACb,GAAA+sE,GAAsBnnG,EAAA6P,KAAAuqB,EAAA9X,QACtB8kF,mBAA8B5hG,EAAA+jD,iBAAAnxB,eAE9B,IAAA+uE,EAA6B,CAC7B,GAAAE,GAA6BrnG,EAAA8xB,IAAAq1E,EAAAjsG,KAAA,SAC7B8E,GAAAqI,QAAgC0+F,EAAAz6C,OAAA,SAAAg7C,GACPtnG,EAAA3F,SAAAgtG,EAAAC,EAAA/6C,SACDvsD,EAAAy2E,OAAAswB,EAAAz6C,OAAA,SAAAi7C,GACK,MAAAA,GAAAh7C,SAAA+6C,EAAA/6C,aAM7B/mD,EAAAgiG,UAAwB96C,EAAAo6C,qBAkb3B,QA1aI76C,GAAcc,GACd,MAAM3gD,UAAA2gD,EAAAjkC,UAAA,IA6aV,QA1aI+9E,GAAMj6C,GAobN,MARIA,IAAYA,EAASjsD,OAAS,GAC9BX,EAAOqI,QAAQukD,EAAU,SAAUP,GAzaxC,GAAoB,GAApBA,EAAAvrB,SAAoB,CACnB,GAAc2mE,GAAAznG,EAAA6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IACFR,GAAAoG,WAAA,MAAAg1C,KA8aL76C,EAGX,QA1aIxxB,KACA51B,EAAAsS,WAAc,EACf6vF,GACC,IAAA9vE,KACA,KAAA,GAAAn3B,KAAc8E,GAAAgiG,UA2aV3vE,EAAIx6B,KAAKmI,EAAGgiG,UAAU9mG,GAAG6rD,OAxa7B/mD,GAAAoiG,QAAA/vE,EAAgBqB,MAChB,IAAAz4B,IA2aIonG,eAAgBriG,EAAGoiG,QACnBjB,WAAYnhG,EAAGi4B,OAzavBi9D,YAAgBl1F,EAAAq0F,KAAAiX,kBAAApW,YACR62I,eAAW/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WACX+3B,WAA6C53H,QAA7CqK,EAAeq0F,KAAAy3I,uBAA6C9rO,EAAAq0F,KAAKy3I,uBAAA74I,aAAA,EA2ajEm5I,eA1aY,EA4ahB52M,GA1aYkvC,kBAAoBzpE,GAAAwD,KAAa,SAAKC,GA2a9C,GA1agB,MA0aZA,EAAIlI,OA1aY,CA4ahB,GADAwJ,EAAG+1B,gBA1aYr3B,EAAAhJ,KA2aXsK,EAAG+1B,gBA1aQ56B,OAAY,EAAA,CA2avB,IAAK,GAAID,KAAK8E,GAAG+1B,gBAzad,IAAA,GAAU5rB,KAAKnK,GAAA+1B,gBAAA76B,GAAAg5B,aACd,IAAA,GAAW8B,KAAAh2B,GAAA+1B,gBAAqB76B,GAAAg5B,aAAoB/pB,GAAA8pB,QAAA,CA2a5Cj0B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGC,IAAMt5B,KAAKC,MAAMoD,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGE,SAza5Hl2B,EAAY+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAG,OAAAx5B,KAAAC,MAAAoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SA2aHl2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGI,SAzanDvB,aA4aE70B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGK,SAAU,CAC3D,IAAIC,GAAO,CAza9B97B,GAAA+7B,MAAAv2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAC,IAAAO,UAAA,SAAAnrB,EAAA0b,GA2auBuP,GAAQjrB,IAERrL,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cAzapDz2B,EAAA+1B,gBAAW76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,OAAAhd,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cAAAH,GAAAxK,QAAA,GAEhC9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,MAAAsZ,EAAAxK,QAAA,EAEe,IAAA9O,GAAAhd,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhZ,KACfhd,GAAuB+1B,gBAAA76B,GAAAg5B,aAAsB/pB,GAAW8pB,QAAA+B,GAAYU,QAAoB,IAAf12B,EAAU+1B,gBAAK76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAA,OAAAlK,QAAA,EAC5E,IAAW4K,GAAK12B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAU,MAEb12B,GAAA+1B,gBAAqB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAW,OAAA9K,WAAA7O,GAAA6O,WAAA6K,EACT12B,GAAA+1B,gBAAW76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAA4CW,MACvE32B,GAAY+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAY,OAAA/K,WAAA7O,GAAA6O,WAAA6K,EACZ,IACQG,IADR72B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAY,OACoB,EA2aXp8B,GAAO+7B,MAAMv2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGG,OAAOK,UAAW,SAAUnrB,EAAO0b,GAzanG8P,GAAAxrB,IA4aMrL,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cACjDz2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGc,UAAY92B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGS,cAAgBH,GAAMxK,QAAQ,GAxapK9rB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAc,SAAAR,EAAAxK,QAAA,GA4aoB9rB,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGe,QAAU,EAra/E,IAAA,GAAA77B,KAAoB8E,GAAA+1B,gBACR,IAAA,GAAA5rB,KAAWnK,GAAKg3B,YACjB,GAAAh3B,EAAA+1B,gBAAyB76B,GAAI6d,KAAA/Y,EAAAg3B,YAAA7sB,GAAA8sB,QAAA,CACzB,GAAAh8B,IACKg8B,QAAOj3B,EAAAg3B,YAAW7sB,GAAA8sB,QAE3Bj3B,GAAA+1B,gBAAA76B,GAAAg8B,aAAA18B,EAAAyC,OAAA+C,EAAAg3B,YAAA/7B,QAgbHZ,GAAQ8C,OAAO,UAAW,iBAAmB9F,WAAW,EAAM+F,KAAM,MAGxE4C,GAAGsS,WAAY,MAEfva,GAAW2I,YAAY,QAAS,yBAA0B,2BAxatE,SAASC,GACD5I,EAAA2I,YAAY,QAAA,mBAAA,4BAkdpB,QAASk3B,GA1aUhD,GA2af,GAAIiC,GA1aQ,CA2aZr8B,GAAO+7B,MAAM3B,EA1aGuB,OAAQK,UAAO,SAAWnrB,EAAA0b,GA2atC8P,GA1aQxrB,IA4aRupB,EAAK6B,cACL7B,EAAKkC,UAAYlC,EAAK6B,cAAgBI,GAAO/K,QAAQ,GAErD8I,EA1aIkC,SAAWD,EAAA/K,QAAY,GA6kBnC,QAASmgN,KAEL,GAAI55M,IACAiG,mBAIJ,KAAK,GAAIp9B,KAAK8E,GAAG+1B,gBACb,IA1aI,GAAA5rB,KAAAnK,GAAA+1B,gBAAoB76B,GAAAg5B,aA2apB,IA1aI,GAAI8B,KAAIh2B,GAAA+1B,gBAAgB76B,GAAAg5B,aAAA/pB,GAAA8pB,SACpBj0B,EAAG+1B,gBAAe76B,GAAIg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,QAAA,IAAAoK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,QAAA,IAAAoK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,QACtBy8B,EAAIiG,gBAAgBzgC,MAChBm9B,MAAAh1B,EAAQ+1B,gBAAkB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhB,MAC3B8C,aAAY,GAAA93B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OAAAoK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAc,SAAA,EACZyB,KAAA5iC,QAAAqK,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAn1B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAA1S,MAAA,GACH6Q,UAA0D39B,QAA/CqK,EAAA+1B,gBAAqB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAA0B+B,GAAAb,WAAAn1B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAb,WAAAD,MAAA,KA2atDsD,eAAgBx4B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGpgC,OAza1EmiC,gBAAe,GAAA/3B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAApgC,OAAA+G,KAAAqkB,UAAAhhB,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAG,QAAA,MAgb1B,IA1aIl7B,IA2aAq9B,gBAAiBjG,EAAIiG,gBAErBr9B,GAAIq9B,gBAAgBn9B,OAAS,EAC7Bq6B,EAAoBs4D,qBAAqB7yF,GAAKwD,KAAK,SAAUC,GAza5DA,EAAAhJ,KAAAke,aAA6B,GAC3B7b,EAAA2I,YAAkB,UAAAhC,EAAAhJ,KAAAme,QAAA,eACrB7T,EAAA0iG,UAEK3qG,EAAY2I,YAAA,QAAgBhC,EAAAhJ,KAAAme,QAAA,eACzB7T,EAAAgT,YAAQ,IAEb,SAASrS,GACR5I,EAAM2I,YAAA,iCA8aVrG,EA1aI8C,OAAA,UAAmB,0BAA0B9F,WAAA,EAAA+F,KAAA,OA+azD,QAASsuO,KACL1rO,EAAGq0F,KAAKxyE,gBA1aQ,KA2ahB7hB,EAAG2hB,eACH3hB,EAAGq0F,KAAKu3I,qBA1amB,KA2a3B5rO,EAAGq0F,KAAKy3I,uBA1aoB,KA2a5B9rO,EAAGq0F,KAAKtyC,2BA1awB,KA2ahC/hD,EAAGs0F,0BACHt0F,EAAGq0F,KAAKv4B,mBAAqB,KAC7B97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBAAoB,KAC5BtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBA1aY,KA2afngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eA1aC,KA2aJjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAxaPhmD,EAAA+1B,mBAwcA,QAAS41M,KACL3rO,EAAGq0F,KAAKu3I,qBA1aoB,KA2a5B5rO,EAAGq0F,KAAKy3I,uBA1aoB,KA2a5B9rO,EAAGq0F,KAAKtyC,2BA1awB,KA2ahC/hD,EAAGs0F,0BACHt0F,EAAGq0F,KAAKv4B,mBAAqB,KAC7B97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBAAoB,KAC5BtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBAzaP7gG,EAAA2gG,qBACI3gG,EAAAihG,kBA2aAjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBAzaP/gG,EAAA+jD,iBAAyB,KA2arB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASwzE,KACLvpG,EAAGq0F,KAAKiX,kBAAoB,KAC5BtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBAzaHngG,EAAAmgG,mBAAO,KA2aPngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAza/BxgG,EAAAwgG,yBACIxgG,EAAGsgG,4BACHtgG,EAAA6gG,eAAA,KACA7gG,EAAA6gG,kBACA7gG,EAAA2gG,qBA2aA3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KAzapBjhG,EAAG+gG,qBACH/gG,EAAA+jD,iBAAU,KA2aV/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QA1aQiqE,KA2aJhgG,EAAGmgG,mBAAqB,KAzaxBngG,EAAAmgG,sBA2aAngG,EAAGigG,yBACHjgG,EAAGwgG,sBA1aQ,KA2aXxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eA1aa,KA2ahB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASqqE,KACLpgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS0qE,KACLzgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS+qE,KACL9gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASmrE,KACLlhG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QA1aOi2M,KA4aHhsO,EAAG+1B,mBAvaP,QAAGosE,KA2aCniG,EAAG+1B,mBA99BP,GAAI/1B,GAzaIC,IA2aRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAzaUtU,EAAAqU,gBAAU,GA2avBrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAzaa,EA0ahBhT,EAAG+S,WAzaQ,EA0aX/S,EAAGsS,WAzaK,CA0aR,IAAIH,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAzaUA,EA0abzhB,EAAGw0F,4BAza2BA,EA0a9Bx0F,EAAGy0F,yBAA2BA,EAC9Bz0F,EAAG00F,2BAza2BA,EA0a9B10F,EAAG+/F,2BAA6BA,EAChC//F,EAAGkgG,8BAAgCA,EAxanClgG,EAAGugG,uBAAsBA,EA0azBvgG,EAAG4gG,sBAzaeA,EA0alB5gG,EAAGghG,2BAzauBA,EA0a1BhhG,EAAGohG,2BAzayBA,EA0a5BphG,EAAG41B,kBAzaoBA,EA0avB51B,EAAGomD,YAzaSA,EA0aZpmD,EAAGymD,UAzaSA,EA0aZzmD,EAAGisO,iBAzaSA,EA0aZjsO,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACHhpG,EAAW2c,SAzaC,EA0aZxC,IAEAlS,EAAGu7C,eACCC,aAAc,UACdnzB,KAAM,MAENmzB,aAAc,WACdnzB,KAzaI,MA6aRroB,EAAGs1F,mBACCC,aAzaO;AA0aPC,YAzaQ,IA2aRD,aAzaY,0BA0aZC,YAzaQ,IA4aZx1F,EAAG+yF,iBACCC,eAzaa,UA0abC,aAzaa,MA2abD,eAzaa,QA0abC,aAzaQ,MA4aRD,eAzaI,UA0aJC,aAzaQ,MAyiBZjzF,EAAGksO,qBAzaS,WA0aRlsO,EAAGq0F,KAzaCy3I,uBAAoB,KA0axB9rO,EAAGq0F,KAzaKtyC,2BAA2B,KA0anC/hD,EAAGq0F,KAAKtyC,2BAza2B,KA0anC/hD,EAAGq0F,KAAKv4B,mBAzaO,KA0af97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBAzae,KA0avBtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBAzagB,KA0anBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAzaI,KA0aPxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,kBACH7gG,EAAG6gG,eAAiB,KACpB7gG,EAAG2gG,qBAxaP3gG,EAAAihG,eAAS,KACLjhG,EAAGihG,kBACHjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAK,KACR/jD,EAAGgmD,gBACHhmD,EAAG4mD,eACH5mD,EAAG+1B,oBAwwBP/1B,EAAG82B,SA1aS,SAAYlC,EAAA9hB,EAAA0hB,GA4apBI,EA1aIuB,OAAOK,UAAKhC,GAAA3I,WAAqB/Y,GA2arC8kB,EA1aQhD,EA2aR,IAAIkC,GAAWjL,WAAW+I,EAAKkC,UAAUhL,QAAQ,GAC7C6K,EA1aQ9K,WAAA+I,EAAe+B,QAAA7K,QAAA,GACvB8K,EAAA/K,WAAoB+I,EAAAgC,QAAA9K,QAAA,EA2axB,IAAID,WA1aQiL,IAAejL,WAAK8K,IAAA9K,WAAA+I,EAAAkC,WAAAjL,WAAA+K,GA2a5BhC,EAAKkC,SA1aMA,EAAAhL,QAAqB,OA4a/B,CACDzxB,EA1aQ8C,OAAG,UAAY,gDAAAy3B,EAAAgC,OAAA9K,QAAA,GAAA,OAAA8I,EAAA+B,OAAA7K,QAAA,IAAAz0B,WAAA,EAAA+F,KAAA,OA2avBw3B,EAAKh/B,OA1aM,EA2aXg/B,EAAKkC,SA1aGlC,EAAW5X,KA2anB,IAAIqV,KACJ,KA1aG,GAAAtL,KAAU6N,GAAKqB,IAAAO,UACdnE,EAAAx6B,MA2aI4zB,MAAO1E,EACP1b,MAAOupB,EAAKqB,IAAIO,UAAUzP,IAIlC,KAAK,GAAI7rB,KAAKm3B,GACNA,EAAIn3B,GAAGuwB,OAAS+I,IAChBI,EAAKuB,OAAOK,UAAUhC,GAAQ3I,WAAWwG,EAAIn3B,GAAGmQ,OAKxDupB,GA1aIuB,OAAAK,aA2aJ5B,EA1aIuB,OAAQK,UAAApiC,QAAA8e,KAAA0hB,EAAAqB,IAAAO,WA2aZ5B,EA1aI9Q,SAAA,EA2aJ8Q,EA1aIyB,SAAA,IA0bZr2B,EAAGm1B,WA1aK,SAAAP,EAAAh/B,GA6aJ,GADAg/B,EAAKp+B,OAASZ,EACK,GAAfg/B,EAAKp+B,OAAa,CAzavB,GAAA4I,GAAuB7E,EAAY8E,MAC1BhI,WAAA,EACAiI,eAAA,cACAC,gBAAA,aACArK,YAAA,qDACLE,WAAiB,8BACZC,aAAA,KACL+H,KAAA,KACAoC,SAAA,SACAC,UAAA,EACAyQ,SACA3N,MAAA,WACA,MAAAqyB,MAKAx1B,GAAAM,OAAiBjB,KAAA,SAAAxD,GACjB25B,EAAAO,WAAiBl6B,EACjB25B,EAAAh/B,OAAAg/B,EAAoBp+B,OACpBo+B,EAAA9Q,UACA8Q,EAAA9Q,SAAe,IACf,WACA8Q,EAAA+D,QAAkB,EA2aT/D,EAAKO,aACLP,EAAKO,WAAW1S,MAAQ,IAC5BmS,EAAKh/B,OAAS,QAvalB,CACAg/B,EAAAh/B,OAAAg/B,EAAAp+B,OACIo+B,EAAA+D,OACA/D,EAAA+D,QAAA,EACiB,GAAjB/D,EAAA9Q,UACJ8Q,EAAAh/B,OAAA,EA2aA,IA1aIkhC,GAAQjL,WAAW+I,EAAKkC,UAAAhL,QAAA,GA2axB6K,EA1aO9K,WAAA+I,EAAA+B,QAAwB7K,QAAI,GA2anC8K,EA1aQ/K,WAAG+I,EAAAgC,QAAsB9K,QAAA,EA4ajCD,YA1aOiL,IAAYjL,WAAA8K,IAAA9K,WAAA+I,EAAAkC,WAAAjL,WAAA+K,KAIpBv8B,EAAA8C,OAAe,UAAA,kCAAAy3B,EAAAgC,OAAA9K,QAAA,GAAA,OAAA8I,EAAA+B,OAAA7K,QAAA,IAAAz0B,WAAA,EAAA+F,KAAA,OACdw3B,EAAAh/B,OAAW,EA2aXg/B,EAAKy3M,WAAW71M,UAAYpiC,QAAQ8e,KAAK0hB,EAAKqB,IAAIO,WAClD5B,EAAKkC,SAAWlC,EAAK5X,MAzaxB4X,EAAA9Q,SAAA,EACD8Q,EAAAyB,SAAA,KAKRr2B,EAAA44B,gBAAS,SAAAhE,GACL,GAAIx1B,GAAG7E,EAAoB8E,MACvBhI,WAAA,EACAiI,eAAU,cACVC,gBAAiB,aA2ajBrK,YA1aa,qDA2abE,WAAY,8BAzaZC,aAAc,KACd+H,KAAI,KA2aJoC,SA1aI,SA2aJC,UA1aI,EA2aJyQ,SAzaI3N,MAAA,WA2aI,MAAOqyB,MAKnBx1B,GAAcM,OA1aCjB,KAAA,SAAAxD,GA2aX25B,EAAKO,WA1aGl6B,GA2aT,eAGP+E,EAAG20B,gBAAkB,SAAUC,EAAMO,GAGjC,GA1aIl6B,IA2aA+5B,MAAOJ,EAAKI,MACZG,WAAYA,GAEZ/1B,EAAgB7E,EAAU8E,MAzalChI,WAAS,EACDiI,eAAG,cACHC,gBAAA,aACArK,YAAU,iDACVE,WAAS,yBA2aTC,aA1aa,KA2ab+H,KAAM,KAzaNoC,SAAG,SACHC,UAAU,EA2aVyQ,SAzaI3N,MAAA,WACA,MAAAtH,MA+aRmE,GA1aYM,OAAGjB,KAAA,SAAoBxD,GA2a3B25B,EA1aIO,aA2aJP,EAAKO,WA1aWD,MAAOj6B,IA2a5B,eAKP+E,EAAGq0M,YA1aS,SAAWr/K,GA2anB,GAAI51B,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eA1aC,cACDC,gBAAA,aA2aArK,YAAa,sDACbE,WAAY,kBACZC,aAAc,KACd+H,KAAM,KAzadoC,SAAS,SACDC,UAAG,EACHyQ,SACI3N,MAAM,WACL,MAASyyB,MA+alB51B,GA1aQM,OAAYjB,KAAG,aA4apB,eAIPuB,EAAGuL,OA1aS,SAAQ0oB,EAAWqvE,GA2avBA,EAAIzqE,YACJyqE,EAAIzqE,aA1aW,EA6afyqE,EAAIzqE,aA1aO,CA4af,KAAK,GAAI39B,KAAK+4B,GAzaQt+B,QAAfs+B,EAAA/4B,GAAUy9B,QAAK,GAAA1E,EAAA/4B,GAAAy9B,SACd1E,EAAA/4B,GAAW4oB,QAAAw/E,EAAYzqE,YA2aG,GAAtB5E,EAAQ/4B,GAAG4oB,QACXmQ,EAAQ/4B,GAAGtF,OAAS,EAGpBq+B,EAAQ/4B,GAAGtF,OAAS,IAwOpCoK,EAAG0iG,MA1aK,WACJ1iG,EAAAq0F,KAAIlhF,gBAAoB,KACxBnT,EAAAq0F,KAAIxyE,gBAAoB,KACxB7hB,EAAA2hB,eA2aA3hB,EAAGq0F,KA1aCu3I,qBAAyB,KA2a7B5rO,EAAGq0F,KAAKy3I,uBAAyB,KACjC9rO,EAAGq0F,KA1aEtyC,2BAAA,KA2aL/hD,EAAGs0F,0BACHt0F,EAAGq0F,KA1aCv4B,mBAAc,KA2alB97D,EAAGqoD,kBACHroD,EAAGq0F,KA1aKiX,kBAAM,KA2adtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBA1agB,KA2anBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eA1ae,KA2alB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,8KAjgCX3hC,QACKC,OAAO,4BACPe,WAAW,mBAAoB+2O,MAqgCxC,WACI,YAQA,SAASG,GAAwBryO,EAASwQ,EAAQzQ,EAAQjC,EAAYyC,EAAQH,EAASE,EAAWR,EAAOihD,EAAiB9gD,EAAWyJ,EAAe49C,EAAkBquB,EAClKj1B,EAAqBG,EAAwB3gD,EAAuBQ,EAAiB6/C,EAAaI,EAAsB5oC,EAAgBJ,EAAwB4jB,EAzahKklB,EAAgBK,EAAwBtgD,EAAA+mD,GAmfxC,QAAS0vF,KACLlxI,EAAGu7C,eAzaHC,aAAc,UACVnzB,KAAK,MA4aLmzB,aAAc,WACdnzB,KAAM,MAQd,QA1aQnW,KACAC,IACAH,EAAAI,mBAAgBD,IAAA1T,KAAA,SAAAC,GACC,MAAjBA,EAAAlI,SACAwJ,EAAAqS,YAAa3T,EAAAhJ,KACbsK,EAAAsS,WAAY,IAEZ,SAAM3R,GACN5I,EAAU2I,YAAA,QAAA,mBAAA,oBA+adV,EAAGusO,eACKC,SAAU,EACVC,eAAgB,0BAvahBD,SAAK,EACLC,eAAgB,aA4ahBD,SAAU,EACVC,eAAgB,eAtaxBv7F,IA6aJ,QA1aQzvH,GAAiBtP,GA2arB,GA1aIlX,IACAkX,UAAAA,EACAu6N,WAAA,UA4aJl3M,GA1ac04D,cAAAjzF,GAAAwD,KAAA,SAAAC,GACA,MAAVA,EAAAlI,QACAwJ,EAAA2hB,YAASjjB,EAAAhJ,KACLsK,EAAAsS,WAAO,GA4aPva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASisO,GAASH,GACG,IAAbA,GACAxsO,EAAG4sO,QAAQjvL,iBAAmB,KAzanC39C,EAAA4sO,QAASjvL,oBACJ39C,EAAA47C,gBACA57C,EAAA4sO,QAAI/uL,oBAAc,KA2alB79C,EAAG4sO,QAAQ/uL,uBACX79C,EA1aGo8C,mBACHp8C,EAAA4sO,QAAI/tL,iBAAc,KA2alB7+C,EAAG4sO,QAAQ/tL,oBAzaf7+C,EAAKizB,YACDjzB,EAAA4sO,QAAI3uL,iBAAqB,KA2azBj+C,EAAG4sO,QA1aC/6H,aAAqB,KA2azB7xG,EAAG4sO,QA1aK/6H,gBA2aR7xG,EAAGm+C,YACHn+C,EAAG4sO,QAAQ7oL,iBAAmB,KAC9B/jD,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGszB,aACHu5M,KAEoB,IAAbL,GACPxsO,EAAG4sO,QAAQ7oL,iBAAmB,KAC9B/jD,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAG4sO,QAAQjvL,iBAAmB,KAzatC39C,EAAS4sO,QAAAjvL,oBACL39C,EAAA47C,gBACI57C,EAAA4sO,QAAM/uL,oBAAA,KACN79C,EAAA4sO,QAAA/uL,uBA2aA79C,EAAGo8C,mBACHp8C,EAAG4sO,QAAQ/tL,iBAAmB,KAza9B7+C,EAAA4sO,QAAA/tL,oBACJ7+C,EAAKizB,YACDjzB,EAAA4sO,QAAS3uL,iBAAQ,KA2ajBj+C,EAAG4sO,QA1aM/6H,aAAY,KA2arB7xG,EAAG4sO,QA1aK/6H,gBA2aR7xG,EAAGm+C,YACHn+C,EAAGszB,aACHw5M,KAzagB,IA0aTN,IACPxsO,EAAG4sO,QAAQ7qL,2BA1aoB,KA2a/B/hD,EAAGs0F,0BACHt0F,EAAG4sO,QAAQ9wK,mBA1aK,KA2ahB97D,EAAGqoD,kBACHroD,EAAG4sO,QAAQjvL,iBAAmB,KAC9B39C,EAAG4sO,QAAQjvL,oBACX39C,EAAG47C,gBACH57C,EAAG4sO,QAAQ/uL,oBAAsB,KAzajC79C,EAAA4sO,QAAM/uL,uBACN79C,EAAAo8C,mBA2aAp8C,EAAG4sO,QAAQ/tL,iBAAmB,KAza9B7+C,EAAA4sO,QAAI/tL,oBACJ7+C,EAAAizB,YA2aAjzB,EAAG4sO,QA1aK3uL,iBAAS,KA2ajBj+C,EAAG4sO,QA1aK/6H,aAAW,KA2anB7xG,EAAG4sO,QA1aQ/6H,gBA2aX7xG,EAAGm+C,YACHn+C,EAAG4sO,QA1aK7oL,iBAAW,KA2anB/jD,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EA1aGszB,aA2aHkhE,EA1a2Bx0F,EAAA4sO,QAAA/qN,gBAAA/rB,YA8anC,QA1aQ0+F,GAA0B1+F,GA2a1BA,GAEA0/B,EAAoBg4D,4BAA4B13F,GAAW2I,KAAK,SAASC,GAClD,MAAfA,EAAIlI,QAzaXwJ,EAAAs0F,uBAAiB51F,EAAAhJ,KACdsK,EAAAs0F,uBAAkBn5F,OAAA,GACvBd,EAAc8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OACT4C,EAAAsS,WAAA,GAEAva,EAAA2I,YAAA,QAA6B,yBAAA,mBAElC,SAAKC,GACL5I,EAAA2I,YAAiB,QAAA,mBAAA,oBAmbxB,QA1aOqsO,GAAiBj3O,EAAAomD,GACpB,GAAGA,EAAA,CACA,GAAAjhD,IACAnF,UAAAA,EACAomD,WAAiBA,EAEjB1mB,GAAmBi4D,yBAAAxyF,GAAAwD,KAAA,SAAAC,GACJ,MAAfA,EAAAlI,QA2aSwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KAzajCsK,EAAAqoD,eAAkBltD,OAAA,GA2aLd,EAAQ8C,OAAO,UAAW,gDAAkD9F,WAAW,EAAM+F,KAAM,OACvG4C,EAAGsS,WAAY,GAxanBva,EAAA2I,YAAuB,QAAA,yBAAA,eAE5B,SAAKC,GACL5I,EAAA2I,YAAyB,QAAA,mBAAA,iBAmbhC,QA1aOmsO,KACH,GAA8B,IAA3B7sO,EAAA4sO,QAAAI,eAA2BR,SAG3B,GAAAvxO,IACAnF,UAAAkK,EAAiB4sO,QAAA/qN,gBAAA/rB,UACjBm3O,SAAA,WACAP,WAAA,eAEA,IAAe,IAAf1sO,EAAA4sO,QAAeI,eAAAR,SA2ad,GAAIvxO,IAzaLnF,UAAAkK,EAAkB4sO,QAAA/qN,gBAAA/rB,UA2abshC,WAAYp3B,EAAGo3B,WACf61M,SAAU,UAzabP,WAAA,eAEF,IAA8B,IAAzB1sO,EAAA4sO,QAAAI,eAAyBR,SAC9B,GAAKvxO,IACLnF,UAAAkK,EAAA4sO,QAAyB/qN,gBAAA/rB,UACpBwhC,aAAAt3B,EAAA4sO,QAAqB9wK,mBAAAxkC,aAC1B21M,SAAA,aACKP,WAAA,UAGRl3M,GAAG24D,eAAqBlzF,GAAAwD,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,QACAwJ,EAAA47C,aAAAl9C,EAAwBhJ,KACxBsK,EAAAsS,WAAA,GAEAva,EAAA2I,YAAiB,QAAA,yBAAA,mBAEjB,SAAAC,GACA5I,EAAA2I,YAAiB,QAAA,mBAAA,oBA+axB,QAAS08C,KAzaL,GAAGp9C,EAAA4sO,QAAAjvL,iBAAkBxiD,OAAA,EAAA,CA2ajB,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQjvL,iBAzaxBtrB,EAAAx6B,KAAAmI,EAAA4sO,QAAoBjvL,iBAAAziD,GAAAghD,WAGtB,IADAl8C,EAAAyjD,SAAApxB,EAAgBqB,OACK,IAArB1zB,EAAA4sO,QAAAI,eAAqBR,SACrB,GAAAvxO,IACAnF,UAAAkK,EAAA4sO,QAAwB/qN,gBAAA/rB,UACxBomD,WAAAl8C,EAAwByjD,SACxBwpL,SAAA,WACAP,WAAA,eAEA,IAAiB,IAAjB1sO,EAAA4sO,QAAiBI,eAAAR,SACjB,GAAAvxO,IACAnF,UAAiBkK,EAAA4sO,QAAA/qN,gBAAA/rB,UACjBomD,WAAiBl8C,EAAAyjD,SACjBrsB,WAAoBp3B,EAAAo3B,WACpB61M,SAAmB,UACnBP,WAAe,eAEf,IAAkB,IAAlB1sO,EAAA4sO,QAAkBI,eAAAR,SA2ab,GAAIvxO,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UAza7CwhC,aAAYt3B,EAAA4sO,QAAA9wK,mBAAAxkC,aACd4kB,WAAqBl8C,EAAAyjD,SACrBwpL,SAAA,aACAP,WAAA,UAGAl3M,GAAA44D,kBAA2BnzF,GAAAwD,KAAA,SAAAC,GACV,MAAjBA,EAAAlI,QACAwJ,EAAAo8C,gBAAiB19C,EAAAhJ,KACjBsK,EAAAsS,WAAoB,GAEpBva,EAAiB2I,YAAA,QAAA,yBAAA,sBAEjB,SAAAC,GACA5I,EAAe2I,YAAA,QAAA,mBAAA,wBAKtB,QAAS48C,KACL,GAAGt9C,EAAA4sO,QAAA/uL,oBAAwB1iD,OAAA,EAAA,CACxB,GAAAk3B,KACA,KAAA,GAAAn3B,KAAA8E,GAAA4sO,QAAA/uL,oBACAxrB,EAAAx6B,KAAAmI,EAAiB4sO,QAAA/uL,oBAAA3iD,GAAA22B,cAGjB,IADA7xB,EAAA6xB,cAAoBQ,EAAAqB,OACH,IAAjB1zB,EAAA4sO,QAAAI,eAAiBR,SACjB,GAAAvxO,IACAnF,UAAoBkK,EAAA4sO,QAAA/qN,gBAAA/rB,UACpB+7B,cAAmB7xB,EAAA6xB,cACnBo7M,SAAe,WA2aNP,WAAY,eAEb,IAA2C,IAAvC1sO,EAAG4sO,QAAQI,eAAeR,SACjC,GAAIvxO,IAzaPnF,UAAAkK,EAAqB4sO,QAAA/qN,gBAAA/rB,UACvB+7B,cAAiB7xB,EAAA6xB,cACjBuF,WAAiBp3B,EAAAo3B,WACjB61M,SAAA,UACAP,WAAiB,eAEjB,IAAoB,IAApB1sO,EAAA4sO,QAAoBI,eAAAR,SACpB,GAAAvxO,IACAnF,UAAekK,EAAA4sO,QAAA/qN,gBAAA/rB,UA2aNwhC,aAAct3B,EAAG4sO,QAAQ9wK,mBAAmBxkC,aAzarDzF,cAAkB7xB,EAAA6xB,cA2aTo7M,SAAU,aACVP,WAAY,UAvarBl3M,GAAiB64D,WAAApzF,GAAAwD,KAAA,SAAAC,GACG,MAApBA,EAAAlI,QACAwJ,EAAAizB,SAAmBv0B,EAAAhJ,KACnBsK,EAAAsS,WAAe,GAEfva,EAAkB2I,YAAA,QAAA,yBAAA,eA4ad,SAASC,GAzaX5I,EAAc2I,YAAA,QAAA,mBAAA,iBAgbvB,QAAS+8C,KAzaT,GAAAz9C,EAAS4sO,QAAA/tL,iBAAa1jD,OAAA,EAAA,CA2ad,GAAIk3B,KAzaL,KAAA,GAAAn3B,KAAA8E,GAAkB4sO,QAAA/tL,iBA2abxsB,EAAIx6B,KAAKmI,EAAG4sO,QAAQ/tL,iBAAiB3jD,GAAG8kB,OAva7C,IADPhgB,EAASggB,OAAAqS,EAAcqB,OACE,IAAlB1zB,EAAA4sO,QAAAI,eAAkBR,SA2ab,GAAIvxO,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UAza3CipD,SAAY/+C,EAAA4sO,QAAA3uL,iBAAA51B,KACXrI,OAAAhgB,EAAAggB,OACAitN,SAAA,WACLP,WAAc,eAET,IAAyB,IAAzB1sO,EAAA4sO,QAAAI,eAAyBR,SACzB,GAAAvxO,IACLnF,UAAAkK,EAAA4sO,QAAyB/qN,gBAAA/rB,UACpBipD,SAAA/+C,EAAA4sO,QAAqB3uL,iBAAA51B,KAC1BrI,OAAiBhgB,EAAAggB,OACZoX,WAAAp3B,EAAAo3B,WACL61M,SAAgB,UAChBP,WAAqB,eAErB,IAAwB,IAAxB1sO,EAAA4sO,QAAAI,eAAwBR,SACxB,GAAAvxO,IACAnF,UAAAkK,EAAA4sO,QAAwB/qN,gBAAA/rB,UACxBwhC,aAAAt3B,EAAA4sO,QAA2B9wK,mBAAAxkC,aAC3BynB,SAAiB/+C,EAAA4sO,QAAA3uL,iBAAA51B,KACjBrI,OAAiBhgB,EAAAggB,OACjBitN,SAAA,aACAP,WAAiB,UAGjBl3M,GAAmBwpB,WAAA/jD,GAAAwD,KAAA,SAAAC,GACJ,MAAfA,EAAAlI,QA2aSwJ,EAAGm+C,SAAWz/C,EAAIhJ,KAza3BsK,EAAAsS,WAAkB,GA4aTva,EAAW2I,YAAY,QAAS,yBAA0B,sBAE/D,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAtapE,QAAAosO,KAqbQ,GAA2C,IAAvC9sO,EAAG4sO,QAAQI,eAAeR,UAna/B,GAoaKxsO,EAAGsS,WAAY,EApapBtS,EAAA4sO,QAAA/6H,aAAgC12G,OAAK,EAAA,CAC7B,GAAAk3B,KA4aC,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQ/6H,aACrBx/E,EAAIx6B,KAAKmI,EAAG4sO,QAAQ/6H,aAAa32G,GAAG6d,GAzajD/Y,GAAYi4B,OAAA5F,EAAAqB,MAEZ,IAAAz4B,IACAnF,UAAkBkK,EAAA4sO,QAAA/qN,gBAAA/rB,UAClBolH,QAAiBl7G,EAAAi4B,OACjBg1M,SAAe,WACJP,WAAA,UAEXl3M,GAAW84D,eAAArzF,GAAAwD,KAAA,SAAAC,GACD,MAAAA,EAAAlI,QACCwJ,EAAA68C,eAAAn+C,EAAAhJ,KACEsK,EAAAsS,WAAA,GAECva,EAAA2I,YAAsB,QAAA,yBAAA,mBAEpC,SAAqBC,GACrB5I,EAAuB2I,YAAA,QAAA,mBAAA,yBAKvB,IAAc,IAAdV,EAAc4sO,QAAAI,eAAAR,SAAA,CACdxsO,EAAAsS,WAAc,CACd,IAAArX,IACAnF,UAAakK,EAAA4sO,QAAA/qN,gBAAA/rB,UACbm3O,SAAA,UACAP,WAAY,UAEZl3M,GAAW84D,eAAArzF,GAAAwD,KAAA,SAAAC,GACE,MAAAA,EAAAlI,QACJwJ,EAAA68C,eAAAn+C,EAAAhJ,KA4aIsK,EAAGsS,WAAY,GAza5Bva,EAAgB2I,YAAA,QAAA,yBAAA,mBAEhB,SAAYC,GACZ5I,EAAW2I,YAAA,QAAA,mBAAA,wBAEX,IAAa,IAAbV,EAAa4sO,QAAAI,eAAAR,SAAA,CA4aRxsO,EAAGsS,WAAY,CA1apB,IAAA+f,KA4aK,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQ/6H,aACrBx/E,EAAIx6B,KAAKmI,EAAG4sO,QAAQ/6H,aAAa32G,GAAG6d,GAza7C/Y,GAAAi4B,OAAA5F,EAAAqB,MACA,IAAAz4B,IA4aSnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UA1avColH,QAAAl7G,EAAAi4B,OA4aCg1M,SAAU,WA1anBP,WAAU,UA6aD1sO,GAAG4sO,QAAQ/6H,aAAa12G,OAAS,GACjCq6B,EAAoB84D,eAAerzF,GAAKwD,KAAK,SAASC,GA1atD,MAAAA,EAAAlI,QACDwJ,EAAU68C,eAAAn+C,EAAAhJ,KACrBsK,EAAAsS,WAAA,GA6aoBva,EAAW2I,YAAY,QAAS,yBAA0B,mBAzavE,SAAgBC,GACf5I,EAAc2I,YAAA,QAAA,mBAAA,qBAmbtB,QAASolD,KACL,GAAI7qD,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UAza9C8kD,GAAgBgC,qBAAA3hD,GAAAwD,KAAA,SAAAC,GACG,MAAXA,EAAAlI,QACAwJ,EAAA68C,eAAen+C,EAAAhJ,MACPsK,EAAI68C,eAAW1hD,OAAK,GACpBpD,EAAG2I,YAAkB,OAAA,uDAAA,WA6azBV,EAAGsS,WAAY,GAzafva,EAAW2I,YAAY,QAAS,yBAAoB,oBA6azD,SA3aIC,GA4aH5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAI5D,QAASumD,GA3amBnD,EAAAhuD,EAAAyI,GA6axB,GADAyB,EAAGsS,WAAY,EA1aXwxC,GAAAhuD,EAAA,CA4aAkxD,IACAhnD,EAAG2uG,QA3aChyG,KAAAC,MAAgBoD,EAAA4sO,QAAA7oL,iBAAAC,OA4apBhkD,EA3aG4uG,YAAA5uG,EAAA2uG,QAAAE,KA4aH,IA3aI5zG,IACA6oD,WAAAA,EA4aAhuD,UAAWA,EACXykE,OAAQ,EAGZ,IAA2C,IAAvCv6D,EAAG4sO,QAAQI,eAAeR,SAAgB,CAC1C,GAAIn6M,KA1aP,KAAA,GAAAn3B,KAAA8E,GAAoB4sO,QAAA/6H,aACfx/E,EAAAx6B,KAAAmI,EAAA4sO,QAAA/6H,aAAA32G,GAAA6d,GAEN/Y,GAAAi4B,OAAY5F,EAAAqB,MAEhB,IAAAz4B,IACY6oD,WAAWA,EACZhuD,UAAAA,EACAolH,QAAAl7G,EAAYi4B,OACZg1M,SAAA,WACHP,WAAW,eAEhB,IAAc,IAAL1sO,EAAK4sO,QAAAI,eAAAR,SACb,GAAAvxO,IA4aQ6oD,WAAYA,EACZhuD,UAAWA,EACXm3O,SAAU,UA1ajBP,WAAmB,eAEjB,IAA2B,IAAnB1sO,EAAA4sO,QAAAI,eAAmBR,SAAA,CAC3B,GAAAn6M,KACA,KAAA,GAAAn3B,KAAe8E,GAAA4sO,QAAA/6H,aACfx/E,EAAQx6B,KAAAmI,EAAA4sO,QAAA/6H,aAAsB32G,GAAA6d,GAE9B/Y,GAAAi4B,OAAA5F,EAAAqB,MACA,IAAAz4B,IACA6oD,WAAQA,EACRhuD,UAAWA,EACXolH,QAAQl7G,EAAAi4B,OACRg1M,SAAQ,WACRP,WAAQ,WAIXl3M,EAAiB+4D,YAAAtzF,GAAAwD,KAAA,SAAAC,GAEjB,GADGsB,EAAAsS,WAAY,EACf,MAAA5T,EAAAlI,OAAA,CA4aQwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAAQskD,KA1azC,IAAAoD,KACJ5sD,GAAQqI,QAAA7C,EAAAq+C,OAAmB,SAAAwI,GAC3B,GAAA/N,IACAuO,KAAcR,EAAAQ,KACNI,SAAAZ,EAAAH,OACAI,OAAmB,UAAnBD,EAAAH,QAAmBG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEnBM,GAAAvvD,KAAAihD,KAER94C,EAAA4mD,YAAkBQ,MAElBrvD,GAAQ2I,YAAmB,QAAA,yBAAA,cAC3BV,EAAAsS,WAAW,GAEX,SAAQ3R,GACR5I,EAAQ2I,YAAe,QAAA,mBAAA,cACvBV,EAAAsS,WAAW,QA8adtS,GA3aGsS,WAAI,CA6aXtS,GAAGsS,WA3aI,EAgbX,QA3aQ8zC,GAAGc,GA4aP,GA3aIA,EAAGo6C,kBAAQ,CACX,GAAG96C,GAAQ,QAAAC,EAAsBS,EAAAO,UAAA,GAC9Bd,EAAkBnsD,EAAA6P,KAAArK,EAAAq+C,QAClBqI,OAAQF,GAEGhsD,GAAAgnG,MAAAxhG,EAAAq+C,OAAA,SAAAwI,GACX,MAAQJ,GAAAI,EAAAH,SAEXlsD,GAAGqI,QAAQ7C,EAAA4mD,YAAe,SAAAC,GACvB,GAAAA,EAAAY,WAAWjB,EAAA,CAEX,GAAAi7C,GAAiBjnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SACjBz6C,GAAAC,OAAcu6C,EAAA7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GACd,MAAYrsD,GAAA3F,SAAA4sG,EAAA56C,EAAAvrB,aAKdt7B,EAAAgiG,UAAA96C,EAAAo6C,iBACD,IAAAjvE,KA4aI,KAAK,GAAIn3B,KAAK8E,GAAGgiG,UA1arB3vE,EAAAx6B,KAAAmI,EAAoBgiG,UAAA9mG,GAAA6rD,OA6ahB/mD,GAAGo3B,WA3aI/E,EAAAqB,OACoC,IAAvC1zB,EAAA4sO,QAAOI,eAAAR,UA4aPK,OAShB,QAASrnH,GAAoBt+D,GACzB,GAAIA,EAAKu+D,kBAAmB,CACxB,GAAIj/D,GAAW,QAAUC,EAAUS,EAAKO,UAAY,GAChDd,EAAiBnsD,EAAO6P,KAAKrK,EAAG6vF,iBAChCpoC,SAAYjB,GAzaxBhsD,GAASqI,QAAA7C,EAAA0lH,iBAAmC,SAAA7+D,GACpCA,EAAAY,WAAYjB,IACRK,EAAMC,OAAAtsD,EAAAyC,OAAA0pD,EAAAG,QACNxrB,SAAW4rB,EAAAu+D,kBAAA1+D,gBAybfC,KAMR,QAASA,KACLxsD,EAAOqI,QAAQ7C,EAAG0lH,iBAAkB,SAASx+D,GA1ajDA,EAASy+D,kBAAc,OAgbvB,QAASC,GA3aG1+D,GA4aRlnD,EAAG2kH,eA3ae,EA6alB,IAAIpjB,GAAUskB,EAAErkB,MAAMxhG,EAAG6vF,gBAAiB,SAAShpC,GAC/C,MA3aOjgD,UAAGigD,EAAQY,SAAAnkC,UAAe,MA4alCmkC,QAEH,IAAIP,EA3aIO,WAAY85C,EA4ahBvhG,EAAG2kH,eA3aWnqH,EAAA8xB,IAAA46B,EAAAu+D,kBAAA,UAAA/xF,KAAA,SA4aX,CACH,GA1aGoyF,GAAe5+D,EAAAu+D,iBAClBjrH,GAAIqI,QAAM7C,EAAA6vF,gBAAA,SAAAhpC,GACN,GAAAA,EAAAY,WAAc85C,EACdvhG,EAAA2kH,eAAiBnqH,EAAQ8xB,IAAAw5F,EAAmB,UAAApyF,KAAA,SAE5C,IAAA+yB,EAAYI,EAAAY,WAAAhB,EAAAS,EAAAO,UAAA,CA4aJ,GAAIs+D,GAAevrH,EAAO8xB,IAAIw5F,EAAkB,UAC5CE,EAAWxrH,EAAO6P,KAAKrK,EAAG6vF,iBAAmBpoC,SAAY,QAAUhB,EAAUI,EAAEY,UAAY,IA1a/Gq+D,GAAmCtrH,EAAKyC,OAAK+oH,EAASl/D,OAAK,SAAAm/D,GAC/C,MAAWzrH,GAAK3F,SAAAkxH,EAAAE,EAAA3qF,eAib5Bt7B,EA3aG4xG,OAAS1qD,EAAKu+D,kBAAA1+D,OA4ajBw+D,kBA3aevlH,EAAA6kH,SAAYhjG,gBAAS/rB,UAAoBkK,EAAA6kH,SAAAxwF,SAAAyvB,WAAA9jD,EAAA4xG,QA+a5D,QAASnrD,GAAUc,GA1anB,MAAS3gD,UAAA2gD,EAAAjkC,UAA2B,IA8apC,QA3aQ+9E,GAAiBj6C,GAqbrB,MARIA,IAAYA,EAASjsD,OAAS,GA1a9BX,EAAGqI,QAAWukD,EAAI,SAAAP,GACd,GAAW,GAARA,EAAAvrB,SAAQ,CACP,GAAA2mE,GAAMznG,EAAA6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IACNR,GAAAoG,WAAc,MAAQg1C,KA+a3B76C,EA6BX,QAAS8lL,KAzaT,GAAAC,KA6aI,KA3aI,GAAIjyO,KAAM8E,GAAAszB,UACV,GAAAtzB,EAAKszB,UAAYp4B,GAAAm7B,QACb,IAAI,GAAKlsB,KAAGnK,GAAAszB,UAAQp4B,GAAAkyO,cA4ahBD,EAAct1O,KAAKmI,EAAGszB,UAAUp4B,GAAGkyO,cAAcjjO,GAK7D,KAAK,GAAIjP,KA3aGiyO,GAAe,CA4avB,GAAIlyO,IACAM,KA3aI4xO,EAAYjyO,GA6apB8E,GAAGuiM,cA3aW,EA6ad/sK,EA3amB+3D,gBAAWtyF,GAAAwD,KAAgB,SAAAC,GA4a1C,GA3amB,MAAfA,EAAAlI,OAAkB,CAClB,GAAAwH,GAAejG,EAAAuF,cAAA,wCAAAoB,EAAAhJ,KACfqC,GAAUoG,WAAAH,EAAAkC,GAAAM,QAAA,uBAAA,WACE7K,QAAZoC,EAAYwD,MAAA,MAAAxD,EAAAwD,OA4aJyE,EAAGmjI,SAAStrI,KAAKE,EAAWwD,MA1a9ByE,EAAQmjI,SAAAhoI,QAAe,EACvB6E,EAAAqtO,UAAA,EAENt1O,EAAiB2I,YAAQ,QAAmB,yBAAA,kBA+a5C3I,EAAW2I,YAAY,UAAW,6BAA8B,eAChEysO,SAzaAp1O,GAAI2I,YAAgB,QAAA,yBAAA,gBA6azB,SA3aQC,GA4aP5I,EA3aO2I,YAAA,QAAA,mBAAA,iBA6aXV,EAAGuiM,cAAe,EAClB5jM,WA3aG,MAgbX,QAASm3F,KACL,GAAI76F,IA1aRuF,QAASN,GAAeM,QAChBk/C,KAAG1/C,EAAAmjI,UAEH/jI,EAAc7E,EAAW8E,MA4azBhI,WA3aQ,EA4aRiI,eAAgB,cA1ahBC,gBAAgB,aAChBrK,YAAO,8DA4aPE,WA3aQ,kBA4aRC,aA3aQ,KA4aR+H,KAAM,KACNoC,SA3aQ,SA4aRC,UA3aQ,EA4aRyQ,SACI3N,MAAO,WA1aJ,MAAOtH,MAgblBmE,GA3aYM,OAAAjB,KAAY,SAAGC,KA6axB,cAqBP,QAAS4uO,KAvaT,GAwaIttO,EAAGutO,YA3aI,EA4aPvtO,EAAGsS,WAAY,EACftS,EAAGotO,iBA1agB,IAAvBptO,EAAS4sO,QAAAI,eAAcR,UAAA,IAAAxsO,EAAA4sO,QAAAI,eAAAR,SAAA,CA4af,GAAIn6M,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQ/6H,aACrBx/E,EAAIx6B,KAAKmI,EAAG4sO,QAAQ/6H,aAAa32G,GAAG6d,GAExC/Y,GAAGi4B,OAAS5F,EAAIqB,MAChB,IAAIz4B,IACA6oD,WAAY9jD,EAAG4sO,QAAQ7oL,iBAAiBD,WACxChuD,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtColH,QAASl7G,EAAGi4B,OA1abb,WAAQp3B,EAAAo3B,WACRoB,eAAY,OA8aZ,IAA2C,IAAvCx4B,EAAG4sO,QAAQI,eAAeR,SACjC,GAAIvxO,IACA6oD,WAAY9jD,EAAG4sO,QAAQ7oL,iBAAiBD,WACxChuD,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UA1atCwhC,aAAWt3B,EAAA4sO,QAAa9wK,mBAAYxkC,aACpC4jF,QAAIl7G,EAAMi4B,OACVb,WAASp3B,EAAKo3B,WA4adoB,eA3agB,EA+axBhD,GA3akBg5D,gBAAAvzF,GAAAwD,KAAA,SAAAC,GA4ad,GA3amB,MA2afA,EA3aIlI,OAAc,CA4alBwJ,EAAGsS,WA3aU,EA4abtS,EAAGszB,UA3aW50B,EAAAhJ,KACVsK,EAAAszB,UAAYn4B,OAAA,GA4aZd,EAAQ8C,OAAO,UAAW,6BAA+B6C,EAAG4sO,QAAQ7oL,iBAAiBnxB,eA1azFv7B,WAAA,EACQ+F,KAAI,OA8aZ+0B,QAAQC,IA3aGpyB,EAAAszB,UA4aX,KAAK,GA3aGp4B,KAAA8E,GAAAszB,UAAW,CA4aftzB,EAAGszB,UAAUp4B,GAAGkyO,iBA1ajBptO,EAAAszB,UAAcp4B,GAAA+6B,IAAAt5B,KAAAC,MAAAoD,EAAAszB,UAAAp4B,GAAA03G,YACb5yG,EAAAszB,UAAWp4B,GAAAg6B,MAAYv4B,KAAAC,MAASoD,EAAAszB,UAAAp4B,GAAAo4B,UA6ahC,IAAIgD,GAAO,CACX97B,GAAO+7B,MAAMv2B,EAAGszB,UAAUp4B,GAAG+6B,IAAIO,UAAW,SAASnrB,EAAO0b,GACxDuP,GAAQjrB,IAzajBrL,EAAYszB,UAAAp4B,GAAAu7B,cACLz2B,EAAAszB,UAAAp4B,GAAA48B,cAAA93B,EAAAszB,UAAAp4B,GAAAu7B,cAAAH,GAAAxK,QAAA,GAEN9rB,EAAUszB,UAAAp4B,GAAA48B,aAAAxB,EAAAxK,QAAA,EA6aN,IAAI0hN,KA1aZhzO,GAAAqI,QAAoB7C,EAAAszB,UAAep4B,GAAAg6B,MAAUL,SAAS,SAAKrnB,GAC/CggO,EAAA31O,MACD41O,SAAAjgO,EACAkgO,UAAYlgO,EAAAxS,MAAA,KAAA2yO,MAAAzqO,kBA8aflD,EAAGszB,UAAUp4B,GAAGg6B,MAAML,SAAWzgC,QAAQ8e,KAAKs6N,GAGlD,IAAK,GAAItyO,KAAK8E,GAAGszB,UAAW,CA1azB,IAAG,GAAAnpB,KAAQnK,GAAAy0H,UACHtjF,EAAAnxC,EAAAszB,UAAAp4B,GAAA04B,WAAA5zB,EAAAy0H,UAAAtqH,GAAA4O,KACL/Y,EAAAszB,UAAAp4B,GAAAw5H,MAAA10H,EAAAy0H,UAAAtqH,GAAAyjO,UA8aF5tO,GAAGszB,UAAUp4B,GAAGkf,KAAO,GAAIX,MAAKzZ,EAAGszB,UAAUp4B,GAAG04B,UAAUsgB,cAza9Dl0C,EAAAsS,WAAM,MAENva,GAAS2I,YAAG,QAAA,yBAAA,kBACZV,EAAAsS,WAAU,GA6af,SAAS3R,GA1aR5I,EAAO2I,YAAQ,QAAa,mBAAY,kBA4axCV,EAAGsS,WA3aC,IAgbZ,QAAS6+B,GAAS93B,GACd,GAAIsgN,GAAI,GAAIlgN,MAAKJ,EAEjB,OAAOsgN,GAAExoL,WA3aG,EAmgBhB,QAAS6V,KACLxsD,EAAOqI,QA3aQ7C,EAAAonD,SAAA,SAAAF,GA4aXA,EAAK47C,kBA3ac,OAob3B,QAASpxF,KA1aL1R,EAAG4sO,QAAAz5N,gBAAY,KA4afnT,EAAG4sO,QAAQ/qN,gBAAkB,KAC7B7hB,EAAG2hB,eACH3hB,EAAG4sO,QAAQI,eAAiB,KAC5BhtO,EAAG4sO,QAAQjvL,oBA1af39C,EAAA4sO,QAASjvL,iBAAkB,KACvB39C,EAAA47C,gBA4aA57C,EAAG4sO,QA3aK/uL,uBA4aR79C,EAAG4sO,QA3aK/uL,oBAAwB,KA4ahC79C,EAAGo8C,mBACHp8C,EAAG4sO,QAAQ/tL,iBAAmB,KAC9B7+C,EAAG4sO,QA3aK/tL,oBA4aR7+C,EAAGizB,YACHjzB,EAAG4sO,QAAQ3uL,iBAAmB,KAC9Bj+C,EAAG4sO,QA3aQ/6H,aAAW,KA4atB7xG,EAAG4sO,QA3aK/6H,gBA4aR7xG,EAAGm+C,YACHn+C,EAAG4sO,QAAQ7oL,iBA3aiB,KA4a5B/jD,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGszB,aA+DP,QA3aQla,GAAK1jB,GA4aT,GA3aI2jB,GAAG3jB,EAAA2jB,KA4aH9iB,EA3aGb,EAAAa,IA4aP,OA3aQ,QAAJA,GAAkB,KAAA8iB,EAAAC,SA0d1B,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KA1aZ9iB,EAAIb,EAAAa,IA4aR,IAAa,QAATA,EAGA,IAAK,GA7aLijB,GAAa,GAAOC,MAAGJ,GAAAK,SAAW,EAAS,EAAG,EAAA,GA6arCxe,EAAI,EAAGA,EAAI8E,EAAG2Z,OAAOxe,OAAQD,IAAK,CA1avC,GAAA0e,GAAY,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEb,IAAAF,IAAAI,EACA,MAAA5Z,GAAA2Z,OAAkBze,GAAA1E,OA+azB,MAAO,GAppCX,GAAIwJ,GA1aIC,IA4aRD,GAAGqU,kBA1aShJ,MAAgB,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2a5BrL,EAAGsU,SA1aStU,EAAAqU,gBAAiB,GA4a7BrU,EAAGuU,YA1aS,EA2aZvU,EAAGwU,qBA1auB,SAAAC,GA2alBzU,EAAGuU,YA1aOE,GA6alBzU,EAAGgT,YA1aS,EA2aZhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACftS,EAAGwyN,wBACHxyN,EAAGstI,mBACHttI,EAAGuyN,kBACHvyN,EAAG47C,gBACH57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGm+C,YACHn+C,EAAGsvN,WACHtvN,EAAGkxN,UAAW,EACdlxN,EAAGywN,aACH,IAAIt+M,IA1aQhY,EAAcgG,uBAAAwU,gBAAAxC,UA2atBjS,GA1aY/F,EAAKgG,sBA2arBH,GAAGyhB,oBA1akBA,EA2arBzhB,EAAGinD,mBA1acA,EA2ajBjnD,EAAG8lD,qBAAuBA,EAE1B9lD,EAAG6sO,YA1aMA,EA2aT7sO,EAAGo9C,yBA1awBA,EA2a3Bp9C,EAAGs9C,yBA1acA,EA2ajBt9C,EAAG8sO,YA1acA,EA2ajB9sO,EAAGomD,YA1acA,EA2ajBpmD,EAAGwlH,oBA1acA,EA2ajBxlH,EAAG4lH,WA1aSA,EA2aZ5lH,EAAG+sO,wBA1akBA,EA2arB/sO,EAAGstO,UA1aSA,EA2aZttO,EAAGy9C,aA1aKA,EA2aRz9C,EAAG2sO,SA1aSA,EA2aZ3sO,EAAGutO,YAAa,EAChBvtO,EAAG0R,OAASA,EAEZ1R,EAAGuiM,cA1aS,EA2aZviM,EAAGotO,iBACHptO,EAAGmjI,YACHnjI,EAAG6tO,WA1aS,EA2aZ7tO,EAAGqtO,UA1aS,EA2aZrtO,EAAGktO,WA1aSA,EA2aZltO,EAAG81F,WAAaA,EAEhB91F,EAAG8tO,iBAAkB,EAIrB9tO,EAAGyyN,qBA1agB,EA2anBzyN,EAAG0yN,cA1aK,CA8aR1yN,GAAG4sO,WAIH5sO,EAAG/C,UACHlF,EAAW2c,SA1aQ,EA2anBxC,IAopBAlS,EAAG+tO,cA3aa,SAAYj7N,GA6axB,GADAA,EAAIs6N,iBACAt6N,EAAIujB,QACJ,IA3aI,GAAIn7B,KAAM4X,GAAAoiB,MAAAL,SA4aV/hB,EA3aIs6N,cAAcv1O,KAAA,kCAAwBib,EAAAoiB,MAAAL,SAAA35B,GAAAuyO,cA8a9C36N,GAAIs6N,gBAER,IAAI/6M,GAAM73B,EAAOyC,OAAO+C,EAAGszB,UAAW,SAASogC,GAC3C,MAAqB,IAAbA,EAAEr9B,SAEVhE,GA3aIl3B,OAAQ,EA4aZ6E,EAAG8tO,iBA3aQ,EA6aX9tO,EAAG8tO,iBA3aQ,GAsmBnB9tO,EAAGy0H,YAAe17G,GAAM,EAAG60N,UAAa,YAAe70N,GAAM,EAAG60N,UAAa,aACvE70N,GAAM,EAAG60N,UAAa,UAAa70N,GAAM,EAAG60N,UAAa,UAAa70N,GAAM,EAAG60N,UAAa,QAAW70N,GAAM,EAAG60N,UAAa,SAAY70N,GAAM,EAAG60N,UAAa,SAAY70N,GAAM,EAAG60N,UAAa,WAAc70N,GAAM,EAAG60N,UAAa,cAAiB70N,GAAM,GAAI60N,UAAa,WAAA,EAAiB70N,GAAM,GAAI60N,UAAa,aAAgB70N,GAAM,GAAI60N,UAAa,aAGlWnjO,EAAOyK,OAAS,EAEhBzK,EA3aI0K,SAAU,SAAAC,GA4aV,MA3aI3K,GAAAyK,SAAcE,GA8atB3K,EAAO4K,SA3aS,SAAWxW,GA4avB4L,EAAOyK,OA3aIzK,EAAAyK,OAAqB,IAAAzK,EAAAyK,OAAArW,EAAA1D,OAAA,GA8apCsP,EAAO6K,SAAW,SAASzW,GACvB4L,EAAOyK,OA3aIzK,EAAYyK,OAAArW,EAAA1D,OAAA,IAAAsP,EAAAyK,OAAA,GA8a3BzK,EAAO8K,UAAY,SAASH,GACxB3K,EA3aGyK,OAASE,GAofhBpV,EAAGkU,UA3aY,WA4aXlU,EAAG8yN,qBAAqB1+M,iBA4B5BpU,EAAGqa,MAAQ,WACPra,EAAGsa,GA3aK,GAAIb,MAAA,cA6aZzZ,EAAGsa,GAAGkB,QA3aMxb,EAAIsa,GAAA0B,YA8apBhc,EAAGqa,QAIHra,EAAGqa,MA3aQ,WA4aPra,EAAGsa,GAAK,GAAIb,MAAK,cAEjBzZ,EAAGsa,GAAGkB,QAAQxb,EAAGsa,GAAG0B,YAxaxBhc,EAAAqa,QA8aAra,EAAGk4M,WA3aS,WA4aRl4M,EAAGm4M,KA3aK,GAAA1+L,MA6aRzZ,EAAGm4M,KA3aC38L,QAAOxb,EAAQm4M,KAAGn8L,UAAA,IA8a1Bhc,EAAGk4M,aAEHl4M,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YAAajB,EACbkB,QAAS,GAAIhB,MAAK,KAAM,EAAG,KAG/BzZ,EAAGirH,YACCrwG,aAAcxB,EACd+C,WA3aO,KA4aPtB,QA3aI7a,EAAAm4M,KA4aJ19L,QAASza,EAAGsa,GACZQ,YAAa,GAEjB9a,EAAGkrH,UACCtwG,aAAcxB,EA1alB+C,WAAS,KACLtB,QAAO7a,EAAAm4M,KA4aP19L,QA3aSza,EAAAsa,GA6aTQ,YAAa,GAKjB9a,EAAGmrH,cAAgB,WA1afnrH,EAAAkrH,SAAIzwG,QAAkBza,EAAG+tC,IAAA2D,KA4b7B1xC,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CAEnB,IAAIslC,GAAS,EAEbn0C,GAAGm5B,SA1aAte,QAAS,GAAKpB,MAAAY,MAAA65B,cAAkBC,EAAA95B,MAAA82B,WAAA92B,MAAA2B,aAKvChc,EAAAwb,QAAS,SAAUC,EAAAC,EAAYC,GAC3B3b,EAAAsa,GAAO,GAAAb,MAASgC,EAAAC,EAAWC,IAG/B3b,EAAA4b,SAAS,eAAgB,aAAU,aAAA,aA4anC5b,EAAG6b,OAAS7b,EAAG4b,QAAQ,GACvB5b,EAAG8b,iBA3aiB,cA6apB9b,EAAGib,QACCpM,QAAQ,EAKZ,IA3aIupM,IAAO,GAAA3+L,KA4aX2+L,IAAS58L,QAAQ48L,GAASp8L,UAAY,EACtC,IAAIq8L,IAAc,GAAI5+L,KACtB4+L,IAAY78L,QAAQ48L,GAASp8L,UAAY,GACzChc,EAAG2Z,SACCN,KAAM++L,GACN5hN,OAAQ,SAzaR6iB,KAAIg/L,GACJ7hN,OAAQ,cAgcZwJ,EAAGs0D,MA3aC,SAAAxhD,GA6aA9S,EAAGqyB,OA1aHryB,EAAAguO,OAASl7N,EA4aTqf,QA3aQC,IAAGpyB,EAAAguO,QA4aXhuO,EAAGutO,YA3aU,EA4abz6N,EAAIm7N,OA3aQtxO,KAAAC,MAAAkW,EAAc8/F,YA4a1B5yG,EAAGqyB,IAAIx6B,KAAKib,IAUhB9S,EAAGkuO,UA3aK,SAAAp7N,GA4aJ,GAAI1T,GA3aY7E,EAAW8E,MA4avBhI,WA3aQ,EA4aRiI,eA3aQ,cA4aRC,gBA3agB,aA4ahBrK,YAAa,mDACbE,WAAY,mBACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACV0uO,YAAa,WACbj+N,SACIk+N,EAAG,WA1aC,MAAAt7N,MAgbZ1T,GA3aQM,OAAWjB,KAAA,aAAqB,eA+a5CuB,EAAG0R,OAAS,WACR4K,kBAAkBiB,QAAQ,2cA7sClCnpB,QACKC,OA1aO,4BA2aPe,WA1aO,0BAAsBk3O,MA2nDtC,WACI,YAQA,SAAS+B,GA3aSp0O,EAAAwQ,EAAA1S,EAAAyC,EAAAH,EAAAE,EAAAR,EAAAihD,EAAA9gD,EAAAyJ,EAAA49C,EAAAquB,EA4adj1B,EA3akBG,EAAA3gD,EAAA4X,EAAAyoC,EAAAI,EAAA5oC,EAAAJ,EAAA4jB,EA4alBklB,EA3akBK,EAAAtgD,EAAA+mD,GAyelB,QAAS0vF,KACLlxI,EAAGu7C,eACCC,aA3aW,UA4aXnzB,KAAM,MAENmzB,aA3aY,WA4aZnzB,KAAM,MAQd,QAASnW,KACDC,GACAH,EA3aYI,mBAAQD,GAAA1T,KAAA,SAAAC,GA4aG,MAAfA,EAAIlI,SA1aJwJ,EAAAqS,YAAiB3T,EAAGhJ,KA4apBsK,EAAGsS,WA3aI,IA6aZ,SA3aS3R,GA4aR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5DV,EAAGusO,eACKC,SAAU,EACVC,eAAgB,0BAGhBD,SAAU,EA1aVC,eAAc,aA6adD,SA3aQ,EA4aRC,eA3ae,eA+avBv7F,IAGJ,QAASzvH,GA3actP,GA4anB,GAAIA,EA3aO,CA4aPnS,EAAG4sO,QAAQI,eAAiB,KA1a7BhtO,EAAA4sO,QAASjvL,oBACR39C,EAAA4sO,QAAWjvL,iBAAY,KACvB39C,EAAG47C,gBA4aH57C,EAAG4sO,QAAQ/uL,uBACX79C,EAAG4sO,QAAQ/uL,oBAAsB,KACjC79C,EAAGo8C,mBACHp8C,EAAG4sO,QAAQ/tL,iBAAmB,KA1atC7+C,EAAS4sO,QAAS/tL,oBACV7+C,EAAAizB,YA4aAjzB,EAAG4sO,QAAQ3uL,iBAAmB,KA1alCj+C,EAAO4sO,QAAE/6H,aAAa,KA4alB7xG,EAAG4sO,QAAQ/6H,gBACX7xG,EAAGm+C,YA1aRn+C,EAAA4sO,QAAe7oL,iBAAS,KACrB/jD,EAAA68C,kBA4aE78C,EAAG4mD,eACH5mD,EAAGszB,YA1aJ,IAAAr4B,IA4aKkX,UAAWA,EA1ahBu6N,WAAW,SA6aVl3M,GAAoB04D,cAAcjzF,GAAKwD,KAAK,SAASC,GAC9B,MAAfA,EAAIlI,QA1abwJ,EAAW2hB,YAAejjB,EAAAhJ,KACtBsK,EAAAsS,WAAiB,GA6aZva,EAAW2I,YAAY,QAAS,yBAA0B,mBAza/D,SAASC,GA4aR5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAxa5DV,GAAO4sO,QAAAI,eAAS,KA4aZhtO,EAAG4sO,QAAQjvL,oBACX39C,EAAG4sO,QAAQjvL,iBAAmB,KA1atC39C,EAAS47C,gBACL57C,EAAA4sO,QAAA/uL,uBACA79C,EAAA4sO,QAAA/uL,oBAAA,KACG79C,EAAAo8C,mBACAp8C,EAAA4sO,QAAA/tL,iBAAiB,KACjB7+C,EAAA4sO,QAAA/tL,oBACA7+C,EAAAizB,YACAjzB,EAAA4sO,QAAA3uL,iBAAiB,KACjBj+C,EAAA4sO,QAAA/6H,aAAiB,KACjB7xG,EAAA4sO,QAAA/6H,gBACA7xG,EAAAm+C,YACAn+C,EAAA4sO,QAAA7oL,iBAAwB,KA4avB/jD,EAAG68C,kBACH78C,EAAG4mD,eA1aX5mD,EAASszB,aAMT,QAASq5M,GAAAH,GAEF,IAAAA,GACAxsO,EAAA4sO,QAAAjvL,iBAAiB,KACpB39C,EAAA4sO,QAAAjvL,oBA4aI39C,EAAG47C,gBACH57C,EAAG4sO,QAAQ/uL,oBAAsB,KA1azC79C,EAAS4sO,QAAA/uL,uBACF79C,EAAAo8C,mBACAp8C,EAAA4sO,QAAA/tL,iBAAiB,KACpB7+C,EAAA4sO,QAAA/tL,oBA4aI7+C,EAAGizB,YACHjzB,EAAG4sO,QAAQ3uL,iBAAmB,KA1atCj+C,EAAS4sO,QAAA/6H,aAAgB,KAClB7xG,EAAA4sO,QAAA/6H,gBACA7xG,EAAAm+C,YACHn+C,EAAA4sO,QAAA7oL,iBAAA,KACA/jD,EAAA68C,kBA4aI78C,EAAG4mD,eACH5mD,EAAGszB,aA1aXu5M,KA6a4B,IAAbL,GA1aXxsO,EAAA4sO,QAAA7oL,iBAAA,KACA/jD,EAAA68C,kBACA78C,EAAA4mD,eA4aI5mD,EAAG4sO,QAAQjvL,iBAAmB,KAC9B39C,EAAG4sO,QAAQjvL,oBA1anB39C,EAAS47C,gBACF57C,EAAA4sO,QAAU/uL,oBAAA,KACV79C,EAAA4sO,QAAA/uL,uBACH79C,EAAAo8C,mBACAp8C,EAAA4sO,QAAA/tL,iBAAA,KACA7+C,EAAA4sO,QAAA/tL,oBACA7+C,EAAAizB,YA4aIjzB,EAAG4sO,QAAQ3uL,iBAAmB,KAC9Bj+C,EAAG4sO,QAAQ/6H,aAAe,KA1alC7xG,EAAS4sO,QAAA/6H,gBACF7xG,EAAAm+C,YACAn+C,EAAAszB,aACHw5M,KA4awB,IAAbN,IACPxsO,EAAG4sO,QAAQ7qL,2BAA6B,KA1ahD/hD,EAASs0F,0BACLt0F,EAAO4sO,QAAQ9wK,mBAAa,KACxB97D,EAAAqoD,kBA4aAroD,EAAG4sO,QAAQjvL,iBAAmB,KAC9B39C,EAAG4sO,QAAQjvL,oBACX39C,EAAG47C,gBACH57C,EAAG4sO,QAAQ/uL,oBAAsB,KA1atC79C,EAAA4sO,QAAY/uL,uBACR79C,EAAAo8C,mBA4aCp8C,EAAG4sO,QAAQ/tL,iBAAmB,KAC9B7+C,EAAG4sO,QAAQ/tL,oBA1anB7+C,EAASizB,YACFjzB,EAAA4sO,QAAQ3uL,iBAAkB,KAC1Bj+C,EAAA4sO,QAAQ/6H,aAAkB,KAC1B7xG,EAAA4sO,QAAA/6H,gBACA7xG,EAAAm+C,YACAn+C,EAAA4sO,QAAQ7oL,iBAAmB,KAC3B/jD,EAAA68C,kBACA78C,EAAA4mD,eACA5mD,EAAAszB,aACAkhE,EAAQx0F,EAAsB4sO,QAAA/qN,gBAAA/rB,YA+arC,QA3aO0+F,GAAW1+F,GACXA,GAEA0/B,EAAQg4D,4BAAe13F,GAAA2I,KAAA,SAAAC,GACZ,MAAXA,EAAWlI,QACHwJ,EAAAs0F,uBAAmB51F,EAAAhJ,KAC3BsK,EAAAs0F,uBAAiBn5F,OAAA,GACjBd,EAAc8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OACd4C,EAAYsS,WAAA,GA6aHva,EAAW2I,YAAY,QAAS,yBAA0B,mBAza/D,SAAAC,GACC5I,EAAS2I,YAAA,QAAA,mBAAA,oBASrB,QAAGqsO,GAAmBj3O,EAAAomD,GAClB,GAAGA,EAAS,CA4aR,GAAIjhD,IA1aFnF,UAAWA,EA4aTomD,WAAYA,EAzarB1mB,GAAAi4D,yBAAAxyF,GAAAwD,KAAA,SAAAC,GA4a4B,MAAfA,EAAIlI,QACJwJ,EAAGqoD,eAAiB3pD,EAAIhJ,KA1axBsK,EAAAqoD,eAAWltD,OAAA,GACTd,EAAA8C,OAAA,UAAA,gDAAA9F,WAAA,EAAA+F,KAAA,OA4aF4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,eAzavE,SAAAC,GA4aS5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAShE,QAASmsO,KA1aN,GAAa,IAAb7sO,EAAA4sO,QAAaI,eAAAR,SACZ,GAAAvxO,IACAnF,UAAYkK,EAAA4sO,QAAA/qN,gBAAA/rB,UACZm3O,SAAY,WACZP,WAAY,cA6aL,IAA2C,IAAvC1sO,EAAG4sO,QAAQI,eAAeR,SA1atC,GAAAvxO,IACCnF,UAAckK,EAAA4sO,QAAA/qN,gBAAA/rB,UACdshC,WAAYp3B,EAAAo3B,WACZ61M,SAAY,UACZP,WAAY,cAEZ,IAAa,IAAb1sO,EAAa4sO,QAAAI,eAAAR,SA4aT,GAAIvxO,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtCwhC,aAAct3B,EAAG4sO,QAAQ9wK,mBAAmBxkC,aAC5C21M,SAAU,aA1anBP,WAAgB,SA8afl3M,GAAoB24D,eAAelzF,GAAKwD,KAAK,SAASC,GAC/B,MAAfA,EAAIlI,QA1aPwJ,EAAA47C,aAAel9C,EAAAhJ,KAChBsK,EAAOsS,WAAK,GAETva,EAAS2I,YAAe,QAAA,yBAAa,mBA6azC,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAK5D,QAAS08C,KACL,GAAIp9C,EAAG4sO,QAAQjvL,iBAAiBxiD,OAAS,EAAG,CA1a7C,GAAQk3B,KACJ,KAAA,GAAOn3B,KAAA8E,GAAS4sO,QAAAjvL,iBA4aXtrB,EAAIx6B,KAAKmI,EAAG4sO,QAAQjvL,iBAAiBziD,GAAGghD,WAxa7C,IA0aCl8C,EAAGyjD,SAAWpxB,EAAIqB,OA1aT,IAAV1zB,EAAA4sO,QAAUI,eAAAR,SACT,GAAAvxO,IA4aQnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtComD,WAAYl8C,EAAGyjD,SACfwpL,SAAU,WACVP,WAAY,cAzahB,IAAsB,IAAlB1sO,EAAK4sO,QAAMI,eAAOR,SA4atB,GAAIvxO,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UA1axComD,WAAAl8C,EAAgByjD,SACfrsB,WAAQp3B,EAAAo3B,WACpB61M,SAAmB,UA4aNP,WAAY,cAzahB,IAAA,IAAA1sO,EAAA4sO,QAAAI,eAAAR,SA4aA,GAAIvxO,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtCwhC,aAAct3B,EAAG4sO,QAAQ9wK,mBAAmBxkC,aAC5C4kB,WAAYl8C,EAAGyjD,SA1ahBwpL,SAAI,aACVP,WAAiB,SAGvBl3M,GAAU44D,kBAAAnzF,GAAAwD,KAAA,SAAAC,GACH,MAAAA,EAAAlI,QACEwJ,EAAAo8C,gBAAA19C,EAAAhJ,KACTsK,EAAAsS,WAAA,GAESva,EAAA2I,YAAA,QAAA,yBAAA,sBA6aD,SAASC,GA1aX5I,EAAY2I,YAAM,QAAA,mBAAA,wBAgb3B,QAAS48C,KACL,GA3aIt9C,EAAA4sO,QAAS/uL,oBAAqB1iD,OAAQ,EAAK,CA4a3C,GA3aIk3B,KA4aJ,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQ/uL,oBA1arBxrB,EAAIx6B,KAAAmI,EAAA4sO,QAAe/uL,oBAAY3iD,GAAA22B,cA8anC,IADA7xB,EAAG6xB,cAAgBQ,EAAIqB,OACoB,IAAvC1zB,EAAG4sO,QAAQI,eAAeR,SAC1B,GAAIvxO,IA1aLnF,UAAAkK,EAAA4sO,QAAA/qN,gBAAA/rB,UA4aK+7B,cAAe7xB,EAAG6xB,cAClBo7M,SAAU,WACVP,WAAY,cAzaxB,IAAA,IAAA1sO,EAAA4sO,QAAAI,eAAAR,SACG,GAAMvxO,IACGnF,UAAAkK,EAAA4sO,QAAA/qN,gBAAA/rB,UACA+7B,cAAG7xB,EAAA6xB,cACZuF,WAAap3B,EAAAo3B,WACZ61M,SAAc,UACNP,WAAA,cA6aD,IAA2C,IAAvC1sO,EAAG4sO,QAAQI,eAAeR,SACjC,GAAIvxO,IACAnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtCwhC,aAAct3B,EAAG4sO,QAAQ9wK,mBAAmBxkC,aAC5CzF,cAAe7xB,EAAG6xB,cAClBo7M,SAAU,aACVP,WAAY,SAxapBl3M,GAAgB64D,WAAepzF,GAAAwD,KAAA,SAAAC,GACpB,MAAXA,EAAWlI,QACXwJ,EAAAizB,SAAgBv0B,EAAAhJ,KAChBsK,EAAAsS,WAAiB,GAEjBva,EAAY2I,YAAA,QAAA,yBAAA,eAEZ,SAAMC,GACN5I,EAAU2I,YAAA,QAAA,mBAAA,iBAiblB,QAAS+8C,KACL,GAAIz9C,EAAG4sO,QAAQ/tL,iBAAiB1jD,OAAS,EAAG,CACxC,GAAIk3B,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQ/tL,iBA1a7BxsB,EAAAx6B,KAAcmI,EAAA4sO,QAAY/tL,iBAAe3jD,GAAA8kB,OA8arC,IADAhgB,EAAGggB,OAASqS,EAAIqB,OAC2B,IAAvC1zB,EAAG4sO,QAAQI,eAAeR,SA1a1B,GAAAvxO,IACRnF,UAAkBkK,EAAQ4sO,QAAA/qN,gBAAA/rB,UA4adipD,SAAU/+C,EAAG4sO,QAAQ3uL,iBAAiB51B,KACtCrI,OAAQhgB,EAAGggB,OACXitN,SAAU,WACVP,WAAY,cAzaxB,IAAA,IAAA1sO,EAAA4sO,QAAAI,eAAAR,SACR,GAAAvxO,IA4aoBnF,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtCipD,SAAU/+C,EAAG4sO,QAAQ3uL,iBAAiB51B,KA3a1DrI,OAAAhgB,EAAAggB,OACYoX,WAAAp3B,EAAAo3B,WACI61M,SAAA,UA6aIP,WAAY,cAEb,IAA2C,IAAvC1sO,EAAG4sO,QAAQI,eAAeR,SA3axC,GAAAvxO,IACLnF,UAAqBkK,EAAA4sO,QAAA/qN,gBAAwB/rB;AAC7CwhC,aAAoBt3B,EAAA4sO,QAAA9wK,mBAA+BxkC,aA6anCynB,SAAU/+C,EAAG4sO,QAAQ3uL,iBAAiB51B,KACtCrI,OAAQhgB,EAAGggB,OACXitN,SAAU,aA3ajBP,WAAA,SAGNl3M,GAAcwpB,WAAgB/jD,GAAAwD,KAAA,SAAAC,GA6aF,MAAfA,EAAIlI,QA3ajBwJ,EAAcm+C,SAAAz/C,EAAAhJ,KACdsK,EAAAsS,WAAuB,GA8aVva,EAAW2I,YAAY,QAAS,yBAA0B,sBA1avE,SAAaC,GACb5I,EAAY2I,YAAA,QAAA,mBAAA,wBAKf,QAAGosO,KACA,GAAW,IAAX9sO,EAAA4sO,QAAWI,eAAAR,SAAA,CACX,GAAAn6M,KACA,KAAA,GAAWn3B,KAAA8E,GAAA4sO,QAAA/6H,aACXx/E,EAAUx6B,KAAAmI,EAAA4sO,QAAA/6H,aAAA32G,GAAA6d,GAEV/Y,GAAAi4B,OAAa5F,EAAAqB,MAEb,IAAAz4B,IACAnF,UAAAkK,EAAqB4sO,QAAA/qN,gBAAA/rB,UACrBolH,QAAAl7G,EAAAi4B,OA6aSg1M,SAAU,WA3anBP,WAAc,cAEd,IAA2B,IAA3B1sO,EAAA4sO,QAAAI,eAA2BR,SAC3B,GAAAvxO,IACAnF,UAAckK,EAAA4sO,QAAA/qN,gBAAA/rB,UACdm3O,SAAA,UACAP,WAAa,cAEb,IAAY,IAAA1sO,EAAA4sO,QAAAI,eAAAR,SAAA,CACZ,GAAAn6M,KACA,KAAA,GAAWn3B,KAAA8E,GAAA4sO,QAAA/6H,aA6aFx/E,EAAIx6B,KAAKmI,EAAG4sO,QAAQ/6H,aAAa32G,GAAG6d,GAExC/Y,GAAGi4B,OAAS5F,EAAIqB,MAChB,IAAIz4B,IA3aTnF,UAAAkK,EAAsB4sO,QAAA/qN,gBAAA/rB,UACtBolH,QAAel7G,EAAAi4B,OA6aNg1M,SAAU,WACVP,WAAY,UAzarBl3M,EAAU84D,eAAArzF,GAAAwD,KAAA,SAAAC,GA6ac,MAAfA,EAAIlI,QACJwJ,EAAG68C,eAAiBn+C,EAAIhJ,KACxBsK,EAAGsS,WAAY,GA1ahBva,EAAU2I,YAAA,QAAA,yBAAA,mBA8ad,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QA5aQolD,KA6aJ,GA5aG7qD,IACCnF,UAAAkK,EAAc4sO,QAAA/qN,gBAAA/rB,UA8alB8kD,GAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,QACJwJ,EAAG68C,eAAiBn+C,EAAIhJ,MACnBsK,EAAG68C,eAAe1hD,OAAS,GAC5BpD,EAAW2I,YAAY,OAAQ,uDAAwD,WAE3FV,EAAGsS,WAAY,GA1anBva,EAAW2I,YAAA,QAAA,yBAAA,oBA8aZ,SA5aSC,GA6aR5I,EA5aW2I,YAAA,QAAkB,mBAAA,qBAgbrC,QAASumD,GA5acnD,EAAYhuD,EAASyI,GA6axC,GAAIulD,GAAchuD,EAAW,CACzBkxD,IACAhnD,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAG4sO,QAAQ7oL,iBAAiBC,OACpDhkD,EAAG4uG,YAAc5uG,EAAG2uG,QAAQE,KA3a7B,IAAA5zG,IACK6oD,WAAUA,EACVhuD,UAAAA,EA6aAykE,OAAQ,EAGZ,IA5aoB,IAAhBv6D,EAAA4sO,QAAAI,eAAgBR,SAAA,CACjB,GAAAn6M,KACC,KAAA,GAAAn3B,KAAU8E,GAAA4sO,QAAA/6H,aACVx/E,EAAAx6B,KAAAmI,EAAgB4sO,QAAA/6H,aAAA32G,GAAA6d,GA8ahB/Y,GAAGi4B,OAAS5F,EAAIqB,MA1axB,IAAAz4B,IA6aY6oD,WAAYA,EACZhuD,UAAWA,EA3alBolH,QAAAl7G,EAAAi4B,OACDg1M,SAAW,WACRP,WAAQ,cAER,IAA2B,IAAnB1sO,EAAA4sO,QAAAI,eAAmBR,SAC3B,GAAAvxO,IACA6oD,WAAQA,EACRhuD,UAAQA,EACRm3O,SAAA,UACAP,WAAQ,cAER,IAAW,IAAX1sO,EAAW4sO,QAAAI,eAAAR,SAAA,CACX,GAAAn6M,KACA,KAAA,GAAQn3B,KAAA8E,GAAA4sO,QAAe/6H,aACvBx/E,EAAQx6B,KAAAmI,EAAA4sO,QAAe/6H,aAAA32G,GAAA6d,GAEvB/Y,GAAAi4B,OAAQ5F,EAAAqB,MACR,IAAAz4B,IACA6oD,WAAcA,EACdhuD,UAAYA,EACXolH,QAAMl7G,EAAAi4B,OACNg1M,SAAW,WACXP,WAAY,UAgbhBl3M,EA5aW+4D,YAAkBtzF,GAAAwD,KAAA,SAAAC,GA6azB,GA5amB,MAAfA,EAAGlI,OAAY,CA6afwJ,EA5aGq+C,OAAA1hD,KAAAC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,KACH,IAAAoD,KA6aA5sD,GAAOqI,QAAQ7C,EAAGq+C,OAAQ,SAASwI,GA3a/B,GAAA/N,IACGuO,KAAAR,EAAAQ,KA6aCI,SAAUZ,EAAEH,OA3azBI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEQM,GAAAvvD,KAAAihD,KAER94C,EAAA4mD,YAAeQ,MAEfrvD,GAAQ2I,YAAA,QAAsB,yBAAA,eAE9B,SAAQC,GACR5I,EAAQ2I,YAAA,QAAmB,mBAAA,iBAmbtC,QA5aQ0lD,GAAGc,GA8aP,GA5aIA,EAAGo6C,kBAAY,CA6af,GAAI96C,GAAW,QAAUC,EAAUS,EAAKO,UAAY,GAChDd,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,QAChCqI,OAAUF,GAEAhsD,GAAOgnG,MAAMxhG,EAAGq+C,OAAQ,SAASwI,GA3a9C,MAASJ,GAAUI,EAAAH,SAEpBlsD,GAAAqI,QAAa7C,EAAG4mD,YAAA,SAAAC,GACb,GAAAA,EAAAY,WAAQjB,EAAmB,CAE3B,GAAAi7C,GAAejnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SACfz6C,GAAAC,OAAQu6C,EAAsB7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GACtB,MAAArsD,GAAA3F,SAAsB4sG,EAAA56C,EAAAvrB,aAwB9Bt7B,EAAAgiG,UAAA96C,EAAkBo6C,iBAClB,IAAAjvE,KACA,KAAA,GAAQn3B,KAAA8E,GAAAgiG,UACR3vE,EAAAx6B,KAAWmI,EAAAgiG,UAAA9mG,GAAA6rD,OAEX/mD,GAAAo3B,WAAQ/E,EAAAqB,OACe,IAAvB1zB,EAAQ4sO,QAAAI,eAAeR,UACvBK,OAqbX,QA5aQrnH,GAAWt+D,GA6af,GA5aIA,EAAGu+D,kBAAe,CAClB,GAAGj/D,GAAQ,QAAAC,EAAsBS,EAAAO,UAAA,GAC9Bd,EAAQnsD,EAAA6P,KAAsBrK,EAAA6vF,iBAC9BpoC,SAAAjB,GAEHhsD,GAAGqI,QAAQ7C,EAAA0lH,iBAAmB,SAAA7+D,GAC3BA,EAAAY,WAAWjB,IACXK,EAAAC,OAAQtsD,EAAAyC,OAAmB0pD,EAAAG,QACnBxrB,SAAA4rB,EAAeu+D,kBAAA1+D,gBAc1BC,KAkbR,QAASA,KACLxsD,EAAOqI,QA5aK7C,EAAA0lH,iBAAuB,SAASx+D,GA6axCA,EAAKy+D,kBAAoB,OAKjC,QAASC,GAAW1+D,GAEhBlnD,EAAG2kH,eAAiB,EAEpB,IAAIpjB,GAAUskB,EAAErkB,MAAMxhG,EAAG6vF,gBAAiB,SAAShpC,GAC/C,MAAOjgD,UAASigD,EAAEY,SAASnkC,UAAU,MA3a7CmkC,QA8aI,IA5aIP,EAAIO,WAAM85C,EA6aVvhG,EAAG2kH,eA5aYnqH,EAAA8xB,IAAA46B,EAAAu+D,kBAAA,UAAA/xF,KAAA,SA6aZ,CACH,GA3aAoyF,GAAoB5+D,EAAAu+D,iBA6apBjrH,GA5aIqI,QAAQ7C,EAAA6vF,gBAAgB,SAAAhpC,GA6axB,GA5aIA,EAAAY,WAAG85C,EACHvhG,EAAA2kH,eAAOnqH,EAAe8xB,IAASw5F,EAAA,UAAApyF,KAAA,SAE/B,IAAG+yB,EAAAI,EAAYY,WAAAhB,EAAAS,EAAAO,UAAA,CACZ,GAAAs+D,GAAAvrH,EAAA8xB,IAAAw5F,EAAA,UACHE,EAAWxrH,EAAY6P,KAAArK,EAAS6vF,iBAAApoC,SAA0B,QAAAhB,EAAAI,EAAAY,UAAA,IA6atDq+D,GAAmBtrH,EAAOyC,OAAO+oH,EAASl/D,OAAQ,SAASm/D,GA3a3D,MAAKzrH,GAAA3F,SAAAkxH,EAAAE,EAAA3qF,eAkbrBt7B,EAAG4xG,OAAS1qD,EAAKu+D,kBAAkB1+D,OACnCw+D,kBAAkBvlH,EAAG6kH,SAAShjG,gBAAgB/rB,UAAWkK,EAAG6kH,SAASxwF,SAASyvB,WAAY9jD,EAAG4xG,QAIjG,QA5aQnrD,GAAWc,GA6af,MA5aI3gD,UAAU2gD,EAAAjkC,UAAA,IA+alB,QAAS+9E,GA5aej6C,GAsbpB,MARIA,IA5aUA,EAAQjsD,OAAA,GAClBX,EAAIqI,QAAMukD,EAAA,SAAAP,GACN,GAAc,GAAdA,EAAAvrB,SAAc,CACd,GAAA2mE,GAAeznG,EAAA6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IACfR,GAAAoG,WAAU,MAAAg1C,KAId76C,EA0bR,QA5aOkmL,KA8aH,GAA2C,IAAvCttO,EAAG4sO,QAAQI,eAAeR,UAAyD,IAAvCxsO,EAAG4sO,QAAQI,eAAeR,SAAgB,CACtF,GAAIn6M,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG4sO,QAAQ/6H,aACrBx/E,EAAIx6B,KAAKmI,EAAG4sO,QAAQ/6H,aAAa32G,GAAG6d,GA1axC/Y,GAAGi4B,OAAQ5F,EAAAqB,MACX,IAAIz4B,IACJ6oD,WAAc9jD,EAAG4sO,QAAQ7oL,iBAAkBD,WACvChuD,UAASkK,EAAG4sO,QAAQ/qN,gBAAiB/rB,UA6arColH,QAASl7G,EAAGi4B,OA3abb,WAAWp3B,EAAIo3B,WACdoB,eAAW,OA+aZ,IA5aoB,IA4ahBx4B,EA5aC4sO,QAAAI,eAAeR,SA6avB,GAAIvxO,IACA6oD,WA5aI9jD,EAAA4sO,QAAY7oL,iBAAAD,WA6ahBhuD,UAAWkK,EAAG4sO,QAAQ/qN,gBAAgB/rB,UACtCwhC,aA5aUt3B,EAAA4sO,QAAQ9wK,mBAAexkC,aACjC4jF,QAAIl7G,EAAMi4B,OA6aVb,WA5aIp3B,EAAWo3B,WA6afoB,eA5agB,EA+axBhD,GA5aYg5D,gBAAYvzF,GAAAwD,KAAA,SAAAC,GA6apB,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EA5aGszB,UAAO50B,EAAQhJ,KACdsK,EAAAszB,UAAMn4B,OAAA,GACNd,EAAA8C,OAAc,UAAQ,6BAAgB6C,EAAA4sO,QAAA7oL,iBAAAnxB,eACtCv7B,WAAc,EACd+F,KAAA,MA+aJ,KAAK,GAAIlC,KAAK8E,GAAGszB,UAAW,CACxBtzB,EAAGszB,UAAUp4B,GAAG+6B,IAAMt5B,KAAKC,MAAMoD,EAAGszB,UAAUp4B,GAAG03G,YA3azD5yG,EAAAszB,UAAoBp4B,GAAAg6B,MAAAv4B,KAAAC,MAAuBoD,EAAAszB,UAAKp4B,GAASo4B,UACjD,IAAIgD,GAAA,CACJ97B,GAAG+7B,MAAAv2B,EAAAszB,UAAsBp4B,GAAA+6B,IAAAO,UAAA,SAAAnrB,EAAA0b,GACtBuP,GAAAjrB,IAEHrL,EAAAszB,UAAWp4B,GAAAu7B,cA6aPz2B,EAAGszB,UAAUp4B,GAAG48B,cAAgB93B,EAAGszB,UAAUp4B,GAAGu7B,cAAgBH,GAAMxK,QAAQ,GA1atF9rB,EAAWszB,UAAAp4B,GAAY48B,aAASxB,EAAAxK,QAAoB,EAErD,IAAA0hN,KA6aKhzO,GAAOqI,QAAQ7C,EAAGszB,UAAUp4B,GAAGg6B,MAAML,SAAU,SAASrnB,GACpDggO,EAAS31O,MA3apB41O,SAAAjgO,EACUkgO,UAAAlgO,EAAAxS,MAAoB,KAAS2yO,MAAGzqO,kBAGnClD,EAAAszB,UAAQp4B,GAAQg6B,MAAAL,SAAAzgC,QAAuB8e,KAAAs6N,GAI3C,IAAI,GAAAtyO,KAAM8E,GAAAszB,UACN,IAAA,GAAAnpB,KAAcnK,GAAAy0H,UACdtjF,EAAenxC,EAAGszB,UAAAp4B,GAAA04B,WAAA5zB,EAAAy0H,UAAAtqH,GAAA4O,KAClB/Y,EAAUszB,UAAAp4B,GAAAw5H,MAAA10H,EAAAy0H,UAAAtqH,GAAAyjO,UAibd5tO,GAAGsS,WA5aY,MA8afva,GA5aI2I,YAAe,QAAA,yBAAA,mBA8axB,SA5aSC,GA6aR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAI5D,QAASywC,GA5aO93B,GA6aZ,GAAIsgN,GAAI,GA5aIlgN,MAAAJ,EA8aZ,OAAOsgN,GAAExoL,WA5aG,EAogBhB,QAAS6V,KACLxsD,EA5aOqI,QAAA7C,EAASonD,SAAI,SAAAF,GAChBA,EAAI47C,kBAAM,OAqblB,QAASpxF,KACL1R,EAAG4sO,QA5aQz5N,gBAAY,KA6avBnT,EAAG4sO,QA5aQ/qN,gBAAA,KA6aX7hB,EAAG2hB,eACH3hB,EAAG4sO,QAAQI,eAAiB,KAC5BhtO,EA5aG4sO,QAAAjvL,oBA6aH39C,EAAG4sO,QA5aCjvL,iBAAuB,KA6a3B39C,EAAG47C,gBACH57C,EAAG4sO,QAAQ/uL,uBACX79C,EAAG4sO,QAAQ/uL,oBAAsB,KA3arC79C,EAAAo8C,mBACIp8C,EAAA4sO,QAAU/tL,iBAAA,KA6aV7+C,EAAG4sO,QA5aC/tL,oBA6aJ7+C,EAAGizB,YA3aHjzB,EAAA4sO,QAAA3uL,iBAAqB,KA6arBj+C,EAAG4sO,QA5aK/6H,aAAe,KA6avB7xG,EAAG4sO,QA5aQ/6H,gBA6aX7xG,EAAGm+C,YACHn+C,EAAG4sO,QAAQ7oL,iBA5aY,KA6avB/jD,EAAG68C,kBACH78C,EAAG4mD,eACH5mD,EAAGszB,aA+DP,QAASla,GAAS1jB,GACd,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EA5aKa,IA6ahB,OAAgB,QAATA,GAAqC,KAAlB8iB,EAAKC,SA+CnC,QAASC,GAAY7jB,GACjB,GAAI2jB,GAAO3jB,EAAK2jB,KACZ9iB,EAAOb,EAAKa,IAChB,IAAa,QAATA,EAGA,IA5aI,GA0aAijB,GAAa,GAAIC,MAAKJ,GAAMK,SAAS,EAAG,EAAG,EAAG,GA1a1Cxe,EAAA,EAAMA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACV,GAAA0e,GAAiB,GAAAH,MAAAzZ,EAAW2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA8a5B,IAAIF,IAAeI,EA3ahB,MAAA5Z,GAAA2Z,OAAiBze,GAAA1E,OAgb5B,MAAO,GA/hCX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBA3ae,SAAAC,GA4aVzU,EAAGuU,YAAcE,GAGzBzU,EAAGgT,YAAa,EA1ahBhT,EAAA+S,WAAS,EA4aT/S,EAAGsS,WA3aQ,EA4aXtS,EAAGwyN,wBACHxyN,EAAGstI,mBACHttI,EAAGuyN,kBACHvyN,EA3aC47C,gBA4aD57C,EAAGizB,YACHjzB,EAAGo8C,mBACHp8C,EAAGm+C,YACHn+C,EAAGsvN,WACHtvN,EAAGkxN,UAAW,EACdlxN,EAAGywN,aACH,IAAIt+M,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7EnS,GAAGyhB,oBAAsBA,EACzBzhB,EAAGinD,mBAAqBA,EACxBjnD,EAAG8lD,qBAAuBA,EAE1B9lD,EAAG6sO,YA3aIA,EA4aP7sO,EAAGo9C,yBA3agBA,EA4anBp9C,EAAGs9C,yBA3aoBA,EA4avBt9C,EAAG8sO,YA3aQA,EA4aX9sO,EAAGomD,YA3aSA,EA4aZpmD,EAAGwlH,oBA3asBA,EA4azBxlH,EAAG4lH,WA3aaA,EA4ahB5lH,EAAG+sO,wBAA0BA,EAC7B/sO,EAAGstO,UA3aQA,EA4aXttO,EAAGy9C,aA3aeA,EA4alBz9C,EAAG2sO,SA3aSA,EA6aZ3sO,EAAG0R,OA3aSA,EA8aZ1R,EAAGyyN,qBAAsB,EACzBzyN,EAAG0yN,cAAe,CAKlB1yN,GAAG4sO,WAIH5sO,EAAG/C,UACHlF,EAAW2c,SAAU,EACrBxC,IAovBAlS,EAAGy0H,YA5aK17G,GAAA,EAAA60N,UAA+B,YAAU70N,GAAS,EAAK60N,UAAA,aA6azD70N,GA5aM,EAAA60N,UAAQ,UAAgB70N,GAAA,EAAA60N,UAAA,UAAA70N,GAAA,EAAA60N,UAAA,QAAA70N,GAAA,EAAA60N,UAAA,SAAA70N,GAAA,EAAA60N,UAAA,SAAA70N,GAAA,EAAA60N,UAAA,WAAA70N,GAAA,EAAA60N,UAAA,cAAA70N,GAAA,GAAA60N,UAAA,WAAA,EAAA70N,GAAA,GAAA60N,UAAA,aAAA70N,GAAA,GAAA60N,UAAA,aA+apCnjO,EAAOyK,OAAS,EAEhBzK,EAAO0K,SAAW,SAASC,GACvB,MA5aO3K,GAAAyK,SAAcE,GA+azB3K,EAAO4K,SA5aI,SAAAxW,GA6aP4L,EAAOyK,OAAUzK,EAAOyK,OAAS,IAAOzK,EAAOyK,OAASrW,EAAK1D,OAAS,GAza1EsP,EAAA6K,SAAS,SAAezW,GACpB4L,EAAOyK,OAAQzK,EAAAyK,OAAiBrW,EAAA1D,OAAY,IAAAsP,EAAAyK,OAAA,GA+ahDzK,EAAO8K,UA5aS,SAAQH,GA6apB3K,EAAOyK,OAASE,GAyEpBpV,EAAGkU,UAAY,WACXlU,EAAG8yN,qBAAqB1+M,iBA4B5BpU,EAAGqa,MA5aK,WA6aJra,EAAGsa,GAAK,GAAIb,MAAK,cAEjBzZ,EAAGsa,GAAGkB,QAAQxb,EAAGsa,GAAG0B,YAGxBhc,EAAGqa,QAIHra,EAAGqa,MAAQ,WACPra,EAAGsa,GA5aK,GAAAb,MAAA,cA8aRzZ,EAAGsa,GAAGkB,QAAQxb,EAAGsa,GAAG0B,YAGxBhc,EAAGqa,QAGHra,EAAGk4M,WAAa,WACZl4M,EAAGm4M,KA5aK,GAAG1+L,MA8aXzZ,EAAGm4M,KA5aK38L,QAAIxb,EAAMm4M,KAAAn8L,UAAA,IA+atBhc,EAAGk4M,aAEHl4M,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAGZta,EAAGua,eACCC,YA5aYjB,EA6aZkB,QAAS,GA5aGhB,MAAA,KAAU,EAAA,KA+a1BzZ,EAAGirH,YACCrwG,aA5aYxB,EA6aZ+C,WA5aQ,KA6aRtB,QAAS7a,EA5aGm4M,KA6aZ19L,QAASza,EAAGsa,GACZQ,YA5aW,GA8af9a,EAAGkrH,UACCtwG,aA5aYxB,EA6aZ+C,WA5aY,KA6aZtB,QAAS7a,EA5aGm4M,KA6aZ19L,QAASza,EA5aGsa,GA8aZQ,YAAa,GAKjB9a,EAAGmrH,cA5aa,WA6aZnrH,EAAGkrH,SA5aSzwG,QAAOza,EAAA+tC,IAAQ2D,KA6b/B1xC,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CA1avB,IAAAslC,GAAS,EAELn0C,GAAAm5B,SACIte,QAAI,GAAApB,MAAWY,MAAA65B,cAAyBC,EAAA95B,MAAY82B,WAAA92B,MAAA2B,aAib5Dhc,EAAGwb,QA5aS,SAAOC,EAAAC,EAAYC,GA6a3B3b,EAAGsa,GAAK,GAAIb,MAAKgC,EAAMC,EAAOC,IAGlC3b,EAAG4b,SAAW,eAAgB,aAAc,aAAc,aAC1D5b,EAAG6b,OAAS7b,EAAG4b,QA5aK,GA6apB5b,EAAG8b,iBA5ae,cA8alB9b,EAAGib,QACCpM,QAAQ,EAKZ,IAAIupM,GAAW,GAAI3+L,KACnB2+L,GAAS58L,QAAQ48L,EAASp8L,UAAY,EACtC,IAAIq8L,GAAc,GAAI5+L,KACtB4+L,GAAY78L,QAAQ48L,EAASp8L,UAAY,GACzChc,EAAG2Z,SACCN,KAAM++L,EACN5hN,OAAQ,SAER6iB,KAAMg/L,EACN7hN,OAAQ,cAoBZwJ,EAAGs0D,MAAQ,SAASxhD,GAChB9S,EAAGqyB,OACHryB,EAAGguO,OAASl7N,EACZ9S,EAAGutO,YAAa,EA3apBz6N,EAAAm7N,OAAStxO,KAAAC,MAAAkW,EAAoB8/F,YACzB5yG,EAAAqyB,IAAIx6B,KAAKib,IAqbb9S,EAAGkuO,UAAY,SAASp7N,GACpB,GAAI1T,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,mDACbE,WAAY,mBACZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACV0uO,YAAa,WACbj+N,SA3aAk+N,EAAA,WA6aQ,MAAOt7N,MAvavB1T,GAASM,OAAAjB,KAAqB,aAAA,qcAnqBlCrK,QACKC,OA3aO,4BA4aPe,WA3aO,wBAAiBi5O,MA8/CjC,WACI,YASA,SAASC,GA5aM7jO,EAAiB1S,EAAWukB,EAAKjiB,EAAmBL,GA6a/D,GAAIgG,GAAKC,IAETD,GAAGuuO,aA5aS9jO,EAAA+jO,SAAmBJ,EA8a/Bj8M,QAAQC,IA5aIpyB,EAAAuuO,cA8aZvuO,EAAG0R,OAAS,WACR4K,EA5agBiB,QAAU,WA+a9B9S,EAAO4jH,KAAO,SA5aMogH,GA8ahB,GAAI5vO,GAAO4vO,EACPC,EAAQ53O,SAAS2lC,eAAe,WAxajCkyM,GA2aO73O,SAAS2lC,eAAe,QA3atB3lC,SAAK2lC,eAAkB,QACnCiyM,GAAAz0N,MAAAqU,QAAqB,OA8arB,KAAK,GAAIpzB,GAAI,EAAGA,EAAI8E,EAAGuuO,aAAar5M,MAAML,SAAS15B,OAAQD,IACvD,GAAI8E,EAAGuuO,aAAar5M,MAAML,SAAS35B,KAAO2D,EAAM,CA3a/CuW,MAAUla,CACR,OAgbPyzO,EAAS59N,IAAM,4DAA8D09N,GAGjFhkO,EAAOmkO,WA5aW,WA6ad,GAAIF,GA5aQ53O,SAAI2lC,eAAoB,UA6apCiyM,GAAMz0N,MA5aMqU,QAAE,iFAoYtBl6B,QACKC,OAAO,4BACPe,WA5aO,mBAAqBk5O,MAsdrC,WACI,YAOA,SAASO,GAAgBpkO,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAOizB,EAAqBh7B,EAAQ8hB,EAAmBjiB,EAASL,EACzHG,GAkBA,QAAS+X,KAELsjB,EAAoBu4D,oBAAoBxrF,GAAO9D,KAAK,SAAUC,GAC1D,GA5akB,MAAfA,EAAIlI,OAAW,CACdwJ,EAAA8uO,kBAAMpwO,EAAAhJ,IACN,KAAA,GAAAwF,KAAY8E,GAAG8uO,kBACf9uO,EAAA8uO,kBAAsB5zO,GAAAwkD,KAAA/iD,KAAgBC,MAAAoD,EAAA8uO,kBAAA5zO,GAAA6zO,YAEtC/uO,GAAAsS,WAAY,IA8ajB,SA5aK3R,GA6aJ5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA5B5D,GAAIV,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA5aC,EA6aJvU,EAAGwU,qBA5agB,SAAeC,GA6a9BzU,EAAGuU,YA5aWE,GA+alBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WA5aQ,EA6aX/S,EAAGsS,WA5aS,EA6aZva,EAAW2c,SA5aC,CACAva,GAAsBgG,sBA6alC+R,KAiBAlS,EAAG0R,OA5aS,WA6aR4K,EA5aeiB,QAAU,qKAoYjCnpB,QACKC,OAAO,4BACPe,WAAW,kBAAmBy5O,MA0CvC,WACI,YAOA,SAASG,GAAqBj1O,EAAOE,EAASwQ,EAAQ1S,EAAYyC,EAAQH,EAASF,EAAuByX,EACtGi9E,GA3YA,QAAS38E,KAGL,GAAAC,GAAShY,EAAagG,uBAAAwU,gBAAAxC,SA6atBP,GAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QA3abwJ,EAAY2hB,YAAYjjB,EAAAhJ,KACfy8B,QAAGC,IAAApyB,EAAA2hB,cA6aE3hB,EAAG2hB,YAAYxmB,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,oDA3a1B9F,WAAA,EA6aI+F,KAAM,OAGd4C,EAAGsS,WAAY,GAzahBjY,EAASwH,MAAC,QAAO,yBAAgC,mBA8arD,SAASlB,GA3aTtG,EAAAwH,MAAW,QAAS,mBAAM,oBAIjC,QAAOotO,KA8aH,GAAIv7N,GAAcvZ,EAAsBgG,uBACpClF,GA3aRnF,UAASkK,EAAA+pB,sBAAiBj0B,UACtBge,UAAAJ,EAAArT,OAEAwuF,GAAoBC,qBAAkB7zF,GAAAwD,KAAA,SAAAC,GAClB,MAAjBA,EAAAlI,QACAwJ,EAAAkvO,sBAAiBxwO,EAAAhJ,MACjBsK,EAAAkvO,sBAAgC/zO,OAAA,GAChCd,EAAiB8C,OAAA,UAAA,0CAAqB6C,EAAA+pB,sBAAAzH,aACtCjrB,WAAiB,EACjB+F,KAAiB,OA+aZ+0B,QAAQC,IAAIpyB,EAAGkvO,uBACflvO,EAAGsS,WAAY,GA1apBjY,EAAWwH,MAAA,QAAA,yBAAA,QA8aX,SAASnD,GACRrE,EAAQwH,MAAM,QAAS,mBAAoB,SAInD,QA5aOwlG,GAAAv0F,GAEH9S,EAAAgT,YAAA,EA6aAhT,EAAGsS,WAAY,EACftS,EAAGiU,aAAc,CA3arB,IAAAP,GAASvZ,EAAmBgG,uBACrBlF,GACAnF,UAAAkK,EAAA+pB,sBAAiBj0B,UACpBsK,SAAAsT,EAAArT,OA6aI60F,YAAapiF,EAAIoiF,YACjB/jC,MAAOr+C,EAAI2xE,MA1afzkF,GAAGmxD,MAAAr+C,EAAA2xE,MACHzkF,EAAGk1F,YAAApiF,EAAiBoiF,YACpBrG,EAAAE,mBAAA9zF,GAAAwD,KAAA,SAAAC,GA8aQ,GA7aRsB,EAAAsS,WAAA,EA6a2B,MAAf5T,EAAIlI,OAAgB,CACpBwJ,EAAGmvO,kBAAoBzwO,EAAIhJ,KAAKq5F,mBA3avC/uF,EAAAovO,kBAAe1wO,EAAAhJ,KAAA05O,kBA6aRj9M,QAAQC,IAAIpyB,EAAGmvO,mBACfh9M,QAAQC,IAAIpyB,EAAGovO,mBAIfpvO,EAAGq1F,GAAGg6I,QAAU70O,EAAO6P,KAAKrK,EAAGmvO,mBAAmBE,QAClDrvO,EAAGq1F,GAAGi6I,QAAU90O,EAAO6P,KAAKrK,EAAGmvO,mBAAmBG,QA3azDtvO,EAAAq1F,GAAWk6I,UAAA/0O,EAAA6P,KAAArK,EAAAmvO,mBAAAI,UACbvvO,EAAUq1F,GAAAm6I,IAAAh1O,EAAA6P,KAAArK,EAAAmvO,mBAAAK,IACVxvO,EAAAq1F,GAAAo6I,cAA+Bj1O,EAAA6P,KAAArK,EAAAmvO,mBAAAM,cAClCzvO,EAAA8sB,eAAAtyB,EAAA6P,KAAArK,EAAAmvO,mBAAAriN,cACA,KAAA,GAAA5xB,KAAA8E,GAAAgoB,mBACAhoB,EAAAgoB,mBAAA9sB,GAAA6d,IAAA/Y,EAAA8sB,iBACA9sB,EAAAq1F,GAAAvoE,eAAA9sB,EAAAgoB,mBAAA9sB,GAAA+sB,aAGKjoB,GAAAq1F,GAAAq6I,WAAgBl1O,EAAA6P,KAAArK,EAAAmvO,mBAAAO,WAClB1vO,EAAAq1F,GAAA4N,YAAiBzoG,EAAA6P,KAAArK,EAAAmvO,mBAAAlsI,YACjBjjG,EAAAq1F,GAAAs6I,UAAiBn1O,EAAA6P,KAAmBrK,EAAAmvO,mBAAAQ,UACvC3vO,EAAAq1F,GAAAxyC,eAAAroD,EAAA6P,KAAArK,EAAAmvO,mBAAAtsL,eA6aY7iD,EAAGq1F,GAAGu6I,OAASp1O,EAAO6P,KAAKrK,EAAGmvO,mBAAmBS,OACjD5vO,EAAGq1F,GAAGw6I,YAAcr1O,EAAO6P,KAAKrK,EAAGmvO,mBAAmBU,YA3a7D7vO,EAAA8vO,aAAqBt1O,EAAA6P,KAAArK,EAAAmvO,mBAAAW,aACnB9vO,EAAQ+vO,OAAGpzO,KAAUC,MAAAoD,EAAS8vO,cAC5B39M,QAAAC,IAAApyB,EAAA+vO,OA6aG,KAAK,GAAI70O,KAAK8E,GAAGovO,kBACb,GAA0C,MAAtCpvO,EAAGovO,kBAAkBl0O,GAAG80O,YAA4Dr6O,QAAtCqK,EAAGovO,kBAAkBl0O,GAAG80O,YACtE,GAA0C,IAAtChwO,EAAGovO,kBAAkBl0O,GAAG80O,WAAkB,CAC1ChwO,EAAGovO,kBAAkBl0O,GAAGm1G,QAAU1zG,KAAKC,MAAMoD,EAAGovO,kBAAkBl0O,GAAG80O,WA3avE,KAAA,GAAA7lO,KAAAnK,GAAAovO,kBAAAl0O,GAAAm1G,QACE,MAAArwG,EAAAovO,kBAAAl0O,GAAAm1G,QAAAlmG,GAAA6lO,YAAAr6O,QAAAqK,EAAAovO,kBAAAl0O,GAAAm1G,QAAAlmG,GAAA6lO,WA6aQhwO,EAAGovO,kBAAkBl0O,GAAGm1G,QAAQlmG,GAAG8pB,QAAUt3B,KAAKC,MAAMoD,EAAGovO,kBAAkBl0O,GAAGm1G,QAAQlmG,GAAG6lO,YA1a7GhwO,EAAAovO,kBAAAl0O,GAAAm1G,QAAAlmG,GAAA8pB,gBAKHj0B,GAAAovO,kBAAmBl0O,GAAAm1G,UAInBl+E,SAAAC,IAAApyB,EAAAovO,mBACRpvO,EAAAiwO,WAAkB,MA0BT51O,GAAKwH,MAAA,QAAA,yBAAA,MA6aL7B,EAAGsS,WAAY,GAGvB,SAAS3R,GA3adtG,EAAAwH,MAAA,QAAA,mBAAA,MA6aS7B,EAAGsS,WAAY,IAM3B,QAASZ,KACL,GAAIiB,GAAUtY,EAAQsY,QAAQ,eA3a/B,yFA6aStb,WAAW,EA3aZ+F,KAAA,MA+aPuV,GAAQjT,OAAOjB,KAAK,WA3arBuB,EAAAgT,YAAgB,EACfhT,EAAAq1F,MACAr1F,EAAAovO,uBAgbJ,QA5aI13N,KAEA1X,EAAAgT,YAAY,EACZhT,EAAA+S,WAAY,EACZb,IA6aAlS,EAAGq1F,MA3aJr1F,EAAAovO,qBA6cH,QAASc,KAGLlwO,EAAGsS,WAAY,CACf,IAAI+f,MAEA3e,EAAcvZ,EAAsBgG,sBA3azC,KAAA,GAAUjF,KAAA8E,GAAAovO,kBACN,GAAKpvO,EAAAovO,kBAAel0O,GAAOi8M,YAAA,CA6atB,GAAIr+J,KACJ,KAAK,GAAI3uC,KAAKnK,GAAGovO,kBAAkBl0O,GAAGm1G,QA3apC,IAAA,GAAAr6E,KAAgBh2B,GAAAovO,kBAAcl0O,GAAAm1G,QAAclmG,GAAA8pB,QAC3C6kB,EAAQjhD,MACDu/B,WAAAp3B,EAAAovO,kBAAAl0O,GAAAm1G,QAAAlmG,GAAAgmO,WA6aEn7M,MAAOh1B,EAAGovO,kBAAkBl0O,GAAGm1G,QAAQlmG,GAAG8pB,QAAQ+B,GAAGhB,OAI9C,IAAf8jB,EAAK39C,OACLk3B,EAAIx6B,MACAqjH,QAASl7G,EAAGovO,kBAAkBl0O,GAAG88B,QA3alCo4M,aAAApwO,EAAAovO,kBAAAl0O,GAAAk1O,aACFC,WAGJh+M,EAAAx6B,MACHqjH,QAAAl7G,EAAAovO,kBAAAl0O,GAAA88B,QACEo4M,aAAApwO,EAAAovO,kBAAAl0O,GAAAk1O,aACTC,IAAAv3L,IAKH,GAAAw3L,GAA2B3zO,KAAAqkB,UAAAqR,EACvBF,SAAIC,IAAOk+M,GAoBXn+M,QAAIC,IAAAk+M,EACJ,IAAGr1O,IA6aCnF,UAAWkK,EAAG+pB,sBAAsBj0B,UACpCq7D,MAAOnxD,EAAGmxD,MACV+jC,YAAal1F,EAAGk1F,YAChB90F,SAAUsT,EAAYrT,OACtBiwO,kBAAmBA,EAGvBn+M,SAAQC,IAAIn3B,GA3ab4zF,EAA0BG,aAAA/zF,GAAAwD,KAAA,SAAAC,GACrBsB,EAAAsS,WAAA,EACW,MAAX5T,EAAAlI,QACAwJ,EAAAsS,WAAgB,EAChBva,EAAA2I,YAAiB,UAAAhC,EAAAhJ,KAAAme,QAAA,mBACjB3B,IACAlS,EAAAgT,YAAY,EACZ0E,MAEA3f,EAAU2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,mBACV7T,EAAAgT,YAAU,EACVhT,EAAAsS,WAAa,IA+ad,SA5aS3R,GA6aR5I,EAAW2I,YAAY,+BACvBV,EAAGsS,WAAY,IA3TvB,GAAItS,GAAKC,IAETD,GAAGqU,kBA5aoBhJ,MAAU,IAAGA,MAAA,KAAoBA,MAAQ,KAAAA,MAAA,KAAAA,MAAA,MA6ahErL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA5aa,EA6ahBvU,EAAGwU,qBA5aiB,SAAcC,GA6a1BzU,EAAGuU,YA5aaE,GA+axBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAAU,EACrB1U,EAAGmiH,UAAW,EACdniH,EAAGq1F,MAKHr1F,EAAGqnG,KAAOA,EACVrnG,EAAG0R,OAASA,EACZ1R,EAAG0X,MAAQA,EACX1X,EAAGivO,qBA5aYA,EA6afjvO,EAAGkwO,aA5aYA,EA6aflwO,EAAGxJ,QA5aS,EA8aZ0b,IACAlS,EAAGgoB,qBA5agBC,aAAqB,qBAAoBlP,GAAA,IAAAkP,aAAA,oBAAAlP,GAAA,IA6atDkP,aAAc,iCAAkClP,GAAI,IAiL1D/Y,EAAGyjB,UA5aU,SAAG3Q,GA6aZA,EAAIi/G,KAAM,EAGa,GAAnBj/G,EAAIqkM,aACJrkM,EAAIi/G,KAAM,EACVj/G,EAAIs9N,aAAe,GA1apBt9N,EAAAi/G,KAAS,GAIhB/xH,EAAAuwO,UAAS,SAAez9N,GA8apBqf,QA5aIC,IAAOtf,EACX,IAAAu9F,GAAOv9F,EAASu9F,OA6ahBl+E,SAAQC,IAAIi+E,EAEZ,KAAK,GAAIn1G,KAAKm1G,GAAS,CACnBA,EAAQn1G,GAAG+4B,QAAUo8E,EAAQn1G,GAAG+4B,QAChC9B,QAAQC,IAAIi+E,EAAQn1G,GAAG+4B,QACvB,KAAK,GAAI9pB,KAAKkmG,GAAQn1G,GAAG+4B,QACrBo8E,EAAQn1G,GAAG88B,SAAWq4E,EAAQn1G,GAAG+4B,QAAQ9pB,GAAG6tB,QAC5Cq4E,EAAQn1G,GAAG+4B,QAAQ9pB,GAAGqmO,eAAgB,IAyFlDxwO,EAAGywO,aA5ae,WA6adzwO,EAAGxJ,QAAUwJ,EAAGxJ,+JAtUxBpC,QACKC,OAAO,yBACPe,WAAW,uBA5ae45O,MAyUnC,WACI,YAmbA,SAAS0B,GAAyB34O,EAAYwK,EAAOvI,EAAQsiB,EAAmBukD,GAC5E,GAAI7gE,GAAKC,IA3abD,GAAAqU,kBAA0BhJ,MAAQ,IAAAA,MAAY,KAAAA,MAAmB,KAASA,MAAQ,KAAAA,MAAA,MAC9ErL,EAAAsU,SAAStU,EAAAqU,gBAAA,GAETrU,EAAGuU,YAAA,EACHvU,EAAAwU,qBAAA,SAAAC,GACAzU,EAAAuU,YAAeE,GAgbfzU,EAAGq1F,GA7aC9yF,EA+aJxK,EAAW2c,SAAU,EAErB1U,EAAGwiH,KA7aC,WACA,GAAIvnH,IACAk2D,MAAAnxD,EAAQq1F,GAAAlkC,MA8aRw/K,gBAAiB3wO,EAAGq1F,GAAGs7I,gBACvBluN,MAAOziB,EAAGq1F,GAAG5yE,MA5abgvF,QAAMzxG,EAAAq1F,GAASoc,QACfrxG,SAAAJ,EAAWq1F,GAAAj1F,SA+afygE,GAAmBM,eAAelmE,GAAKwD,KAAK,SAAUC,GA5ajDA,EAAIhJ,KAAOke,aAAO,GACf7b,EAAG2I,YAAmB,UAAShC,EAAOhJ,KAAAme,QAAM,uBAC5C7Z,EAAA8F,GAAQ/H,EAAAyE,gBA+aRzE,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,wBAEvD,SAAUlT,GA5ab5I,EAAe2I,YAAA,iCAIf4b,EAAYrN,MAASjP,EAAAq1F,GAAAphE,UAgbzBj0B,EAAGo0H,OAAS,WACR93G,EAAkBiB,QAAQ,8FA5ClCnpB,QA5aAC,OAAA,yBACKe,WAAO,2BAAAs7O,MA2dhB,WA7aI,YAqbA,SA9aQE,GAAK74O,EAAAiC,EAAAG,EAAA6X,EAAA6uD,EAAAjvD,EAAApX,EAAAH,EAAAE,GAgCT,QAAG2X,KACCC,GA+aIH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAASC,GACpC,MAAfA,EAAIlI,SACJwJ,EAAGqS,YAAc3T,EAAIhJ,KA7ajCsK,EAAAsS,WAAA,IAgbO,SAAS3R,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBA5a/DV,EAAAgoB,qBAAWC,aAAwB,qBAAAlP,GAAA,IAAAkP,aAAA,oBAAAlP,GAAA,IAgb1BkP,aAAc,iCAAkClP,GAAI,IA5a9D/Y,EAAAu4N,cACI3iO,OAAK,YAgbDizB,GAAI,IA7aTjzB,OAAW,eAgbNizB,GAAI,IA7aTjzB,OAAA,gBACKizB,GAAG,IAGR7oB,EAAAkoB,cACAC,YAAY,cACZC,UAAY,EACJC,KAAA,MAEHF,YAAA,sBAgbIC,UAAW,EACXC,KAAM,OAENF,YAAa,uBA9afC,UAAA,EACEC,KAAA,OAGTF,YAAe,iCACNC,UAAA,EAgbAC,KAAM,OA7afF,YAAsB,6CACnBC,UAAc,EAgbRC,KAAM,OA7aTF,YAAO,iBAgbJC,UAAW,EACXC,KAAM,OAGdroB,EAAGsoB,kBACCC,iBA/aO,wBAgbPC,OA/aI,IAibJD,iBA/agB,iBAgbhBC,OAAQ,IAERD,iBAAkB,oBAClBC,OAAQ,IAEZxoB,EAAGyoB,iBACCC,eA/aO,SAgbPC,OA/aI,IAELD,eAAc,UACbC,OAAQ,IAibRD,eAAgB,YAChBC,OAAQ,IAERD,eAAgB,qBA9ahBC,OAAA,IAEAD,eAAc,QACdC,OAAA,IAobR,QAASlH,GA/aWtP,EAAA5T,GAgbZ4T,EACAP,EA/auB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACL,MA+aVA,EA/aIlI,QAgbJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KACjBsK,EAAG2hB,YAAYxmB,OAAS,GA9axBd,EAAO8C,OAAA,UAAA,4BAAA6C,EAAA8C,KAAAqQ,gBAAA84B,aACZ50C,WAAY,EACZ+F,KAAA,OAGC4C,EAAAsS,WAAK,EACL/T,GAgbIA,KAEJxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAASC,GA9ab5I,EAAa2I,YAAA,QAAA,mBAAA,cAGZV,EAAAq1F,GAAAxzE,gBAAc,KAmbtB,QA/aQi/C,GAAiBjrC,GAgbrB,GA/aI56B,IAgbAnF,UAAW+/B,EA9aZjgC,OAAQ,EAEXoK,GAAAsS,WAAA,EAgbAuuD,EA/aWC,iBAAY7lE,GAAAwD,KAAA,SAAAC,GACP,MAARA,EAAIlI,QAgbJwJ,EAAGsS,WA/aI,EAgbPtS,EAAGu0F,cA/aI71F,EAAAhJ,KACHsK,EAAAu0F,cAAep5F,OAAA,GACfd,EAAQ8C,OAAO,UAAA,wDAAA9F,WAAA,EAAA+F,KAAA,SAibnBrF,EAAW2I,YAAY,QAAS,yBAA0B,cAC1DV,EAAGsS,WAAY,IAEpB,SA/aS3R,GAgbR5I,EA/aW2I,YAAG,QAAY,mBAAe,cAgbzCV,EAAGsS,WA/aW,IAmbtB,QAAS0uD,GA/akByjB,EAAAntD,EAAsB/4B,GAgb7C,GAAItD,IACAk2D,MAAOszB,EACPntD,aAAcA,EAElBupC,GA/akBG,wBAAqB/lE,GAAQwD,KAAA,SAAAC,GAgb3C,GA/ac,MA+aVA,EA/aIlI,OAAM,CAgbVwJ,EAAGsS,WA/aO,EAgbVtS,EAAG8zF,SA/aOp1F,EAAAhJ,IAibV,KA/aI,GAAGwF,KAAA8E,GAAA8zF,SACuB,GAAvB9zF,EAAA8zF,SAAS54F,GAAKqvB,eAAS,GAAAvqB,EAAA8zF,SAAA54F,GAAA21O,SAAA,GAAA7wO,EAAA8zF,SAAA54F,GAAAmiB,OAC1Brd,EAAA8zF,SAAe54F,GAAA41O,oBAAA/3N,GAAA,EAAAg4N,YAAA,kBAAAh4N,GAAA,EAAAg4N,YAAA,sBAAAh4N,GAAA,EAAAg4N,YAAA,sBAAAh4N,GAAA,EAAAg4N,YAAA,0BAAAh4N,GAAA,EAAAg4N,YAAA,oBAAAh4N,GAAA,EAAAg4N,YAAA,wBACqB,GAA3B/wO,EAAK8zF,SAAG54F,GAAAqvB,eAAmB,GAAAvqB,EAAA8zF,SAAA54F,GAAAmiB,OAChCrd,EAAA8zF,SAAO54F,GAAA41O,oBAAqB/3N,GAAc,EAAAg4N,YAAW,kBAAqBh4N,GAAA,EAAAg4N,YAAyB,sBAAAh4N,GAAA,EAAAg4N,YAAA,sBAAAh4N,GAAA,EAAAg4N,YAAA,0BACnE,GAA5B/wO,EAAI8zF,SAAG54F,GAAAqvB,cAgbXvqB,EAAG8zF,SA/aQ54F,GAAA41O,oBAAqB/3N,GAAU,EAAAg4N,YAAc,sBAAqBh4N,GAAA,EAAAg4N,YAAA,0BACpD,GA+alB/wO,EA/aC8zF,SAAS54F,GAAK21O,SAAiC,GAA9B7wO,EAAA8zF,SAAqB54F,GAAAmiB,OAgb9Crd,EAAG8zF,SA/aS54F,GAAA41O,oBAAyB/3N,GAAG,EAAAg4N,YAAW,kBAAyBh4N,GAAA,EAAAg4N,YAAqB,sBAAyBh4N,GAAA,EAAAg4N,YAAW,oBAAAh4N,GAAA,EAAAg4N,YAAA,wBAClH,GA+aZ/wO,EAAG8zF,SA/aS54F,GAAA21O,QAgbnB7wO,EAAG8zF,SAAS54F,GAAG41O,oBA/aI/3N,GAAA,EAAAg4N,YAAA,oBAAAh4N,GAAA,EAAAg4N,YAAA,wBACA,GA+aZ/wO,EAAG8zF,SA/aS54F,GAAAmiB,SAgbnBrd,EAAG8zF,SAAS54F,GAAG41O,oBAAuB/3N,GAAI,EAAGg4N,YAAa,kBAAqBh4N,GAAI,EAAGg4N,YAAa,sBAK3G,KAAK,GAAI71O,KAAK8E,GAAG8zF,SAWb,GAVA9zF,EAAG8zF,SAAS54F,GAAG81O,gBAAkBr0O,KAAKC,MAAMoD,EAAG8zF,SAAS54F,GAAGsnG,aAC3DxiG,EAAG8zF,SAAS54F,GAAG2rI,MAAQrsI,EAAOyC,OAAO+C,EAAG8zF,SAAS54F,GAAG81O,gBAAiB,SAASnpN,GA9a9E,GAAelyB,QAAPkyB,EAAAiL,KAAO,MAAAjL,KAibf7nB,EAAG8zF,SAAS54F,GAAG+1O,cAAiBjxO,EAAG8zF,SAAS54F,GAAG2rI,MAAM1rI,OAAS,EAAK6E,EAAG8zF,SAAS54F,GAAG2rI,MAAM,GAAG/zG,KAAO,GAClG9yB,EAAG8zF,SAAS54F,GAAGkoD,aAAgBpjD,EAAG8zF,SAAS54F,GAAG2rI,MAAM1rI,OAAS,EAC7D6E,EAAG8zF,SAAS54F,GAAGg2O,cAAoD,GAAnClxO,EAAG8zF,SAAS54F,GAAGi2O,kBAA4D,GAAnCnxO,EAAG8zF,SAAS54F,GAAGi2O,iBAAyB,WAAa,GACzHnxO,EAAG8zF,SAAS54F,GAAGkoD,cACfpjD,EAAGoxO,WAAWpxO,EAAG8zF,SAAS54F,IAES,GAAnC8E,EAAG8zF,SAAS54F,GAAGi2O,kBAA4D,GAAnCnxO,EAAG8zF,SAAS54F,GAAGi2O,kBAA4D,GAAnCnxO,EAAG8zF,SAAS54F,GAAGi2O,kBAA4D,GAAnCnxO,EAAG8zF,SAAS54F,GAAGi2O,iBACvI,IAAK,GAAIhnO,KAAKnK,GAAG8zF,SAAS54F,GAAG41O,kBACrB9wO,EAAG8zF,SAAS54F,GAAG41O,kBAAkB3mO,GAAG4O,KAAO/Y,EAAG8zF,SAAS54F,GAAGi2O,mBAC1DnxO,EAAG8zF,SAAS54F,GAAGg4B,aAAelzB,EAAG8zF,SAAS54F,GAAG41O,kBAAkB3mO,GAQ/EgoB,SAAQC,IAAIpyB,EAAG8zF,cAEf/7F,GAAW2I,YAAY,QAAS,yBAA0B,cAC1DV,EAAGsS,WAAY,CAEf/T,IACAA,KACL,SAASoC,GACR5I,EA/aQ2I,YAAc,QAAS,mBAAA,cAgb/BV,EAAGsS,WA/aQ,IAmbnB,QAAS++N,GA/aGv+N,GAibR9S,EAAGsS,WAAY,EACftS,EAAGwrH,YAAa,EAChBxrH,EAAGq1F,GAAKjhG,QAAQ8e,KAAKJ,EAErB,KAAK,GAAI5X,KAAK8E,GAAGu4N,YA9aZv4N,EAAAu4N,YAASr9N,GAAA2tB,KAAA7oB,EAAAq1F,GAAAwnI,QACV78N,EAAAq1F,GAAUi8I,OAAQtxO,EAAAu4N,YAAQr9N,GAAAtF,OAmb9B,KAAK,GAAIsF,KAAK8E,GAAGsoB,gBACTtoB,EAAGsoB,gBAAgBptB,GAAGstB,SAAWxoB,EAAGq1F,GAAG7sE,SA9avCxoB,EAAAq1F,GAAAk8I,SAAYvxO,EAAAsoB,gBAAWptB,GAAAqtB,iBAmb/B,KAAK,GAAIrtB,KAAK8E,GAAGyoB,eACTzoB,EAAGyoB,eAAevtB,GAAGytB,SAAW3oB,EAAGq1F,GAAG1sE,SACtC3oB,EAAGq1F,GAAGm8I,WAAaxxO,EAAGyoB,eAAevtB,GAAGwtB,eA3ahD,KAAG,GAAAxtB,KAAA8E,GAAYkoB,YACfloB,EAAAkoB,YAAAhtB,GAAAmtB,MAAAroB,EAAAq1F,GAAAroE,WACQhtB,EAAAq1F,GAAAo8I,YAAAzxO,EAAAkoB,YAAAhtB,GAAAitB,YAmbR,KAAK,GAAIjtB,KAAK8E,GAAGgoB,mBA9alBhoB,EAAYgoB,mBAAc9sB,GAAA6d,KAAA/Y,EAAAq1F,GAAA/2B,iBACrBt+D,EAAMq1F,GAAAq8I,mBAAA1xO,EAAAgoB,mBAAA9sB,GAAA+sB,aAGV+4C,GAAuBhhE,EAAAq1F,GAAMlkC,MAAAnxD,EAAAq1F,GAAA/9D,aAAA,cAgb7Bt3B,EAAGgT,YA/aW,EA2/BlB,QAAS2+N,GAjben7O,EAAQi7G,GAkb5B,GAAe,IAAXj7G,GAjbmB,IAibFA,GAjbE,IAAAi7G,EAAA,CAkbnB,GAAIx2G,IACAk2D,MAAOnxD,EAAGq1F,GAAGlkC,MACbw/K,gBAAiBn6O,EACjB4J,SAAUF,EAAWG,OACrBoxG,QAjbQ97G,QAAA87G,EAAeA,EAAA,GAobvBryG,EAjbQ7E,EAAA8E,MAkbRhI,WAAW,EACXiI,eAAgB,cAChBC,gBAjbc,aAkbdrK,YAAa,4DACbE,WAAY,2BACZC,aAjbW,KACX+H,KAAA,KACAoC,SAAS,SAkbTC,UAjbQ,EAkbRyQ,SAhbI3N,MAAK,WACD,MAAAtH,MAqbZmE,GAjbaM,OAAKjB,KAAI,aAAS,kBAmb5B,CACH,GAAIxD,IACAk2D,MAjbInxD,EAAKq1F,GAAIlkC,MAkbbw/K,gBAjbgBn6O,EAkbhB4J,SAAUF,EAjbMG,OAmbpBwgE,GAjbYM,eAAWlmE,GAAcwD,KAAA,SAAAC,GAkb7BA,EAAIhJ,KAAKke,aAAc,GACvB7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,uBAhb9Ble,QAAtBqE,EAAAvE,OAAeC,KACfsE,EAAA8F,GAAA/H,EAAqByE,gBAElBwD,EAAIgT,YAAa,EACpB8tD,EAAM9gE,EAAAq1F,GAAAv/F,aAGNiC,EAAA2I,YAAkB,QAAAhC,EAAAhJ,KAAAme,QAAA,wBAmbvB,SAjbKlT,GAkbJ5I,EAAW2I,YAAY,kCA53BnC,GAAIV,GAAKC,IA5aTD,GAAGqU,kBAAchJ,MAAgB,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA+ajCrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GA5ajCrU,EAAGuU,YAAA,EA+aHvU,EAAGwU,qBA9akB,SAAAC,GA+abzU,EAAGuU,YAAcE,GA3azBzU,EAAGgT,YAAY,EACfhT,EAAG+S,WAAY,EACf/S,EAAAsS,WAAW,EACXva,EAAI2c,SAAa,EACjB1U,EAAAwrH,YAAA,EA+aAxrH,EAAGq1F,MAEHr1F,EAAGyhB,oBA9aCA,EA+aJzhB,EAAG8gE,iBA9aCA,EA+aJ9gE,EAAGqxO,OA9aSA,EA+aZrxO,EAAG2xO,eA9aYA,CAgbf,IAAIzxO,GA9aY/F,EAAqBgG,uBA+ajCgS,EAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,SAC7ED,KA5asBvc,QA8alBqE,EA9aGvE,OAAUC,OA+absK,EAAGq1F,GA9aCjhG,QAAW8e,KAAAlZ,EAAYvE,OAAAC,KAAS2/F,IA+apCr1F,EAAGqxO,OAAOrxO,EAAGq1F,KAyOjBr1F,EAAG4xO,cA/ae,SAAA9+N,EAAAqE,GAgbdnX,EAAGusM,QACHvsM,EAAGi0B,WACHj0B,EAAGwrH,YAAa,CA9ajB,IAAAvwH,IAgbKm8B,WAAYtkB,EAAIgK,OA9apBma,QAAYnkB,EAAAmkB,QAEZ4pC,GAAYI,2BAAAhmE,GAAAwD,KAAA,SAAAC,GAgbR,GAAmB,MAAfA,EAAIlI,OAAgB,CA9avBwJ,EAAIsS,WAAc,EACnBtS,EAAAusM,KAAW7tM,EAAAhJ,IACX,IAAQgK,GAAImmH,EAAAvzF,QAAWtyB,EAAAusM,KAAA,SAAA38L,GAAA,MAAAA,GAAAijB,WAEnB7yB,GAAAi0B,WAibAz5B,EAAOqI,QAAQnD,EAAQ,SAASqnB,EAAK1b,GACjCrL,EAAGi0B,QAAQp8B,MACPg7B,UAAWxnB,EACX+rB,WAAYrQ,EAAI,GAAGqQ,WACnBH,QAASlQ,EAAI,GAAGkQ,QA9a3BhD,QAAelN,KAIhB,KAAM,GAAA7rB,KAAA8E,GAAAi0B,QAAA,CACV,GAAA6kB,GAAA,CACI,KAAA,GAAc3uC,KAAAnK,GAAAi0B,QAAA/4B,GAAsB+4B,QAC1B6kB,GAAG94C,EAAAi0B,QAAA/4B,GAAmB+4B,QAAA9pB,GAAAuqB,MAExB10B,GAAAi0B,QAAO/4B,GAAA22O,UAAA/4L,EAkbX,IAAK,GA/aG59C,KAAK8E,GAAA8zF,SAgbL9zF,EAAG8zF,SA/aC54F,GAAA+7B,UAAej3B,EAAAi0B,QAAkB,GAAGgD,UAgbxCj3B,EAAG8zF,SA/aQ54F,GAAG+4B,QAAAj0B,EAAAi0B,QAkblB9c,IA9aAA,QAmbJpf,GA/aQ2I,YAAM,QAAA,yBAAA,cAgbdV,EAAGsS,WAAY,CAEf6E,IACAA,KACL,SAASxW,GACR5I,EAAW2I,YA/aM,QAAA,mBAAA,cAgbjBV,EAAGsS,WAAY,KAKvBtS,EAAG8xO,QA/aS,SAAIh/N,EAAA/U,GAgbZ,GAAI9C,IACAg5B,QAASnhB,EAAImhB,QACb0xB,KAAM5nD,EACN68N,aAAc9nN,EAAI8nN,aAClBroM,SAAUzf,EAAIyf,SACdrV,SAAUpK,EAAIoK,SACd+zN,cAAen+N,EAAIm+N,cACnB9zN,IAAKrK,EAAIqK,IAED,IAARpf,GAAqB,GAARA,IACb9C,EAAI82O,gBAAkBj/N,EAAIogB,aAAana,GAE3C,IAAI3Z,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,wDACbE,WAAY,uBACZC,aAAc,KA9alB+H,KAAQ,KACJoC,SAAM,SACNC,UAAA,EACAyQ,SACA3N,MAAA,WACA,MAAUtH,MAIdmE,GAAYM,OAAAjB,KAAA,aAibT,eAKPuB,EAAGkxO,cA/aY,SAAap+N,EAAA/U,EAAAoZ,GAgbxB,GA/aQxhB,QA+aJmd,EA/aIm+N,eAAA,IAAAn+N,EAAAm+N,eAgbJ,GA/aO,GA+aHn+N,EA/aGogB,aAAAna,GAAA,CAEH,IAAG,GAAA7d,KAAA4X,GAAamhB,QAAA,CACb,GAAA6kB,GAAY,CAgbXhmC,GAAImhB,QAAQ/4B,GAAG82O,gBAAkBx3O,EAAOyC,OAAO6V,EAAImhB,QAAQ/4B,GAAG+4B,SAAWuE,eAAgB,GACzF,KAAK,GAAIruB,KAAK2I,GAAImhB,QAAQ/4B,GAAG82O,gBA9a7Bl5L,GAAKhmC,EAAAmhB,QAAA/4B,GAAA82O,gBAAA7nO,GAAAuqB,MAEV5hB,GAAAmhB,QAAY/4B,GAAA22O,UAAA/4L,EAGpB,IAAA,GAAe59C,KAAA4X,GAAWmhB,QAAA,CACb,IAAI,GAAA9pB,KAAA2I,GAAAmhB,QAAA/4B,GAAA82O,gBAgbAl/N,EAAImhB,QAAQ/4B,GAAG82O,gBAAgB7nO,GAAG8nO,UAAW,CAEjD,KAAK,GAAIj8M,KAAKljB,GAAImhB,QAAQ/4B,GAAG+4B,QAC+B,GAApDnhB,EAAImhB,QAAQ/4B,GAAG82O,gBAAgBh8M,GAAGwC,iBA9arD1lB,EAAAmhB,QAAA/4B,GAAA82O,gBAAAh8M,GAAAi8M,UAAA,EAibWn/N,GAAImhB,QAAQ/4B,GAAG29B,aAAc,EA5ajC/lB,EAAAo/N,aAAA13O,EAAAy2B,MAA4Bne,EAAAmhB,QAAA,SAAA+9G,GAAA,MAAAA,GAAA6/F,YAib5B/+N,EAAIq/N,cAAiBr/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,KAC5ErK,EAAIs/N,iBAAoBt/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,SA/atF,IAAqC,GAArCrK,EAAAogB,aAAyBna,GAAY,CACjC,GAAA9d,IAibOg5B,QAASnhB,EAAImhB,QA/a1B0xB,KAAmB5nD,EACR68N,aAAG9nN,EAAgB8nN,aAibjBroM,SAAUzf,EAAIyf,SA/a3Bw/M,gBAAcj/N,EAAAogB,aAAAna,IAmbD3Z,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EA/anBiI,eAAA,cAibQC,gBAAiB,aA/atBrK,YAAU,wDAibLE,WAAY,uBA/alBC,aAAY,KACR+H,KAAA,KACCoC,SAAM,SACbC,UAAiB,EACVyQ,SACK3N,MAAG,WACC,MAAAtH,MAIZmE,GAAWM,OAAAjB,KAAY,SAAW8D,GAE/BuQ,EAAAmhB,QAAA1xB,CACH,IAAAu2C,GAAW,EAibH4d,EAAQ,CA9apB,KAAW,GAAAx7D,KAAA4X,GAAYmhB,QAibPnhB,EAAImhB,QAAQ/4B,GAAG29B,YACfigB,GAAQhmC,EAAImhB,QAAQ/4B,GAAG22O,UA9azBn7K,GAAS5jD,EAAGmhB,QAAA/4B,GAAA22O,SAI9B/+N,GAAAo/N,aAA0Bp5L,EAibdhmC,EAAIq/N,cAAiBr/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,KAE5ErK,EAAIs/N,iBAAqBt/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,KAAUu5C,EAAQ5jD,EAAIoK,UAAY,EAAKpK,EAAIqK,IAAM,MAGlI,kBA9aP,IAAA,GAAArK,EAAAogB,aAAAna,GAAA,CAmbI,IAAK,GAAI7d,KAAK4X,GAAImhB,QAAS,CACvB,GAAI6kB,GAAO,CAhbtBhmC,GAAAmhB,QAAkB/4B,GAAA82O,gBAAoBx3O,EAAAyC,OAAA6V,EAAuBmhB,QAAA/4B,GAAA+4B,SAAgBuE,eAAoB,GAC7F,KAAA,GAAAruB,KAAA2I,GAAAmhB,QAAA/4B,GAAA82O,gBAkbWl5L,GAAQhmC,EAAImhB,QAAQ/4B,GAAG82O,gBAAgB7nO,GAAGuqB,MA/ahD5hB,GAAGmhB,QAAA/4B,GAAA22O,UAAgB/4L,EAE9B,IAAc,GAAA59C,KAAA4X,GAAAmhB,QAAA,CACd,IAAA,GAAA9pB,KAAuB2I,GAAAmhB,QAAc/4B,GAAA82O,gBAC7Bl/N,EAAAmhB,QAAc/4B,GAAA82O,gBAAA7nO,GAAA8nO,UAAA,CAmbT,KAAK,GAAI9nO,KAAK2I,GAAImhB,QAAQ/4B,GAAG+4B,QAhb7B,GAAAnhB,EAAAmhB,QAAA/4B,GAAA+4B,QAAA9pB,GAAAquB,iBACD1lB,EAAAmhB,QAAA/4B,GAAA+4B,QAAA9pB,GAAA8nO,UAAA,EAEJn/N,GAAAmhB,QAAU/4B,GAAA29B,aAAA,EAobT/lB,EAAIo/N,aAAe13O,EAAOy2B,MAAMne,EAAImhB,QAAS,SAAS+9G,GAAK,MAAOA,GAAE6/F,YAhb7E/+N,EAAAq/N,cAAsBr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KACtBrK,EAAAs/N,iBAAmBt/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,SACV,IAAA,GAAArK,EAAAogB,aAAAna,GAAA,CACT,GAAA9d,IAkbag5B,QAASnhB,EAAImhB,QAhbzB0xB,KAAa5nD,EACD68N,aAAA9nN,EAAA8nN,aAChBroM,SAAAzf,EAAAyf,SAkbgBw/M,gBAAiBj/N,EAAIogB,aAAana,IA9apC3Z,EAAG7E,EAAA8E,MAkbDhI,WAAW,EACXiI,eAAgB,cAhbhBC,gBAAA,aACRrK,YAAW,wDACXE,WAAe,uBACPC,aAAI,KACJ+H,KAAG,KACHoC,SAAG,SAkbHC,UAAU,EAhbfyQ,SACC3N,MAAW,WAkbC,MAAOtH,MAInBmE,GAAcM,OAAOjB,KAAK,SAAS8D,GA/axCuQ,EAAAmhB,QAAe1xB,CACN,IAAAu2C,GAAA,EACJ4d,EAAA,CAEI,KAAA,GAAAx7D,KAAA4X,GAAAmhB,QACJnhB,EAAAmhB,QAAA/4B,GAAA29B,YACLigB,GAAAhmC,EAAAmhB,QAAA/4B,GAAA22O,UAEKn7K,GAAA5jD,EAAAmhB,QAAA/4B,GAAA22O,SAIA/+N,GAAAo/N,aAAap5L,EACbhmC,EAAAq/N,cAAWr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAEZrK,EAAAs/N,iBAAAt/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAAAu5C,EAAA5jD,EAAAoK,UAAA,EAAApK,EAAAqK,IAAA,MAGC,kBAGA,IAAW,GAAXrK,EAAWogB,aAAAna,GAAA,CAmbX,IAAK,GAAI7d,KAAK4X,GAAImhB,QAAS,CAhb/B,GAAA6kB,GAAA,CAOIhmC,GAAMmhB,QAAA/4B,GAAA82O,gBAAAl/N,EAAAmhB,QAAA/4B,GAAA+4B,OAIN,KAAM,GAAA9pB,KAAA2I,GAAAmhB,QAAA/4B,GAAA82O,gBAkbEl5L,GAAQhmC,EAAImhB,QAAQ/4B,GAAG82O,gBAAgB7nO,GAAGuqB,MA/avD5hB,GAAAmhB,QAAmB/4B,GAAA22O,UAAA/4L,EAElB,IAAQ,GAAA59C,KAAA4X,GAAAmhB,QAAA,CACT,IAAA,GAAA9pB,KAAA2I,GAAAmhB,QAAA/4B,GAAA82O,gBACCl/N,EAAAmhB,QAAkB/4B,GAAA82O,gBAAA7nO,GAAA8nO,UAAA,CAEnBn/N,GAAAmhB,QAAA/4B,GAAA29B,aAAA,EAobK/lB,EAAIo/N,aAAe13O,EAAOy2B,MAAMne,EAAImhB,QAAS,SAAS+9G,GAAK,MAAOA,GAAE6/F,YAhbzE/+N,EAAAq/N,cAAkBr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KACjBrK,EAAAs/N,iBAAgBt/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,SAChB,IAAQ,GAAArK,EAAAogB,aAAAna,GAAA,CACT,GAAA9d,IACCg5B,QAAgBnhB,EAAAmhB,QACR0xB,KAAA5nD,EACT68N,aAAA9nN,EAAA8nN,aACCroM,SAAgBzf,EAAAyf,SACRw/M,gBAAAj/N,EAAAogB,aAAAna,IAGA3Z,EAAA7E,EAAA8E,MACThI,WAAA,EACCiI,eAAgB,cACRC,gBAAA,aAkbArK,YAAa,wDACbE,WAAY,uBACZC,aAAc,KACd+H,KAAM,KAhbboC,SAAA,SACDC,UAAW,EACXyQ,SACY3N,MAAA,WACD,MAAAtH,MAqbPmE,GAjbYM,OAAMjB,KAAA,SAAA8D,GAmbduQ,EAAImhB,QAAU1xB,CAhbd,IAAGu2C,GAAA,EACC4d,EAAA,CAmbJ,KAjbG,GAAAx7D,KAAA4X,GAAAmhB,QACHnhB,EAAWmhB,QAAA/4B,GAAY29B,YAkbfigB,GAAQhmC,EAAImhB,QAAQ/4B,GAAG22O,UA/axBn7K,GAAA5jD,EAAYmhB,QAAS/4B,GAAA22O,SAqb5B/+N,GAAIo/N,aAAep5L,EACnBhmC,EAAIq/N,cAAiBr/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,KA/anFrK,EAAAs/N,iBAA4Bt/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAAAu5C,EAAA5jD,EAAAoK,UAAA,EAAApK,EAAAqK,IAAA,MAG7B,mBAsbA9iB,GAjbO8C,OAAA,UAAY,kCACf9F,WAAG,EACH+F,KAAI,OAmbR0V,EAAIogB,aAjbG,IAmbP/b,IACAA,KAGRnX,EAAGoxO,WAjbQ,SAAYt+N,EAAAqE,GAkbnB,GAAIrE,EAAIswC,aACJpjD,EAAG4xO,cAAc9+N,EAAK,WAClBA,EAAImhB,QAAUj0B,EAAGi0B,OAhbpB,KAAA,GAAA/4B,KAAA4X,GAAAmhB,QACK,IAAA,GAAA9pB,KAAA2I,GAAA+zH,MACC/zH,EAAAmhB,QAAA/4B,GAAAk8B,aAAAtkB,EAAA+zH,MAAA18H,GAAAitB,aACOtkB,EAAAmhB,QAAA/4B,GAAA29B,aAAA,EAkbEr+B,EAAOqI,QAAQiQ,EAAImhB,QAAQ/4B,GAAG+4B,QAAS,SAAS4yB,GAhbjDA,EAAAorL,UAAA,IAKX,IAA2B,GAA3Bn/N,EAAKq+N,iBAAsB,CACvB,IAAI,GAAGj2O,KAAA4X,GAASmhB,QAAG,CACf,GAAG6kB,GAAA,CAkbHhmC,GAjbGmhB,QAAO/4B,GAAA82O,gBAAYx3O,EAAiByC,OAAQ6V,EAAAmhB,QAAY/4B,GAAA+4B,SAAauE,eAAA,GACxE,KAAG,GAAAruB,KAAS2I,GAAGmhB,QAAA/4B,GAAA82O,gBACZl5L,GAAOhmC,EAAAmhB,QAAY/4B,GAAA82O,gBAAoB7nO,GAAAuqB,MAmb1C5hB,GAjbGmhB,QAAO/4B,GAAA22O,UAAY/4L,EAob1B,IAjbI,GAAG59C,KAAA4X,GAASmhB,QAAG,CAkbf,IAjbG,GAAI9pB,KAAG2I,GAAAmhB,QAAY/4B,GAAA82O,gBACnBl/N,EAAAmhB,QAAY/4B,GAAA82O,gBAAoB7nO,GAAG8nO,UAAO,CAmb7C,KAAK,GAAIj8M,KAAKljB,GAAImhB,QAAQ/4B,GAAG+4B,QAC+B,GAApDnhB,EAAImhB,QAAQ/4B,GAAG82O,gBAAgBh8M,GAAGwC,iBAClC1lB,EAAImhB,QAAQ/4B,GAAG82O,gBAAgBh8M,GAAGi8M,UAAW;AA/atDn/N,EAAAmhB,QAAY/4B,GAAA29B,aAAkB,EAmbjC/lB,EAjbIo/N,aAAc13O,EAAAy2B,MAAWne,EAAOmhB,QAAA,SAAA+9G,GAAA,MAAAA,GAAA6/F,YAkbpC/+N,EAAIq/N,cAAiBr/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,KAhb5ErK,EAAGs/N,iBAAYt/N,EAAAo/N,aAAoBp/N,EAAYm+N,eAAe,EAAKn+N,EAAGqK,IAAS,SAC5E,IAA4B,GAA5BrK,EAAAq+N,iBAA+B,CAClC,IAAG,GAAAj2O,KAAS4X,GAAGmhB,QAAA,CACX,GAAGo+M,GAAS,CACZv/N,GAAGmhB,QAAA/4B,GAAW82O,gBAAYx3O,EAAAyC,OAAA6V,EAAAmhB,QAAA/4B,GAAA+4B,SAAAuE,eAAA,GAkb1B,KAAK,GAAIruB,KAAK2I,GAAImhB,QAAQ/4B,GAAG82O,gBAhb1BK,GAASv/N,EAAGmhB,QAAA/4B,GAAA82O,gBAA4B7nO,GAAAuqB,MAmb3C5hB,GAjbImhB,QAAO/4B,GAAA22O,UAAYQ,EAob3B,GAAIv5L,GAAO,EAhbP4d,EAAA,CAmbJ,KAAK,GAAIx7D,KAAK4X,GAAImhB,QACVnhB,EAAImhB,QAAQ/4B,GAAG29B,YACfigB,GAAQhmC,EAAImhB,QAAQ/4B,GAAG22O,UA/ahCn7K,GAAA5jD,EAAAmhB,QAAA/4B,GAAA22O,SAIH/+N,GAAAo/N,aAAAp5L,EACAhmC,EAAAq/N,cAAAr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAEJrK,EAAWs/N,iBAAqBt/N,EAAAo/N,aAAoBp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAAAu5C,EAAA5jD,EAAAoK,UAAA,EAAApK,EAAAqK,IAAA,SAmbzC,IAA4B,GAAxBrK,EAAIq+N,iBAAuB,CAClC,IAAK,GAAIj2O,KAAK4X,GAAImhB,QAAS,CACvB,GAAI6kB,GAAO,CAhbfhmC,GAAKmhB,QAAA/4B,GAAA82O,gBAAAx3O,EAAAyC,OAAA6V,EAAAmhB,QAAA/4B,GAAA+4B,SAAAuE,eAAA,GACjB,KAAA,GAAAruB,KAAA2I,GAAAmhB,QAAA/4B,GAAA82O,gBACel5L,GAAAhmC,EAAAmhB,QAAA/4B,GAAA82O,gBAAA7nO,GAAAuqB,MAEC5hB,GAAAmhB,QAAK/4B,GAAA22O,UAAA/4L,EAGV,IAAA,GAAA59C,KAAe4X,GAAAmhB,QAAa,CACzB,IAAA,GAAS9pB,KAAG2I,GAAAmhB,QAAe/4B,GAAA82O,gBAkbrBl/N,EAAImhB,QAAQ/4B,GAAG82O,gBAAgB7nO,GAAG8nO,UAAW,CAEjD,KAAK,GAAIj8M,KAAKljB,GAAImhB,QAAQ/4B,GAAG+4B,QAhbX,GAAjBnhB,EAAAmhB,QAAiB/4B,GAAA82O,gBAAAh8M,GAAAwC,iBACvB1lB,EAAgBmhB,QAAG/4B,GAAA82O,gBAAyBh8M,GAAAi8M,UAAA,EAmbvCn/N,GAAImhB,QAAQ/4B,GAAG29B,aAAc,EAEjC/lB,EAAIo/N,aAAe13O,EAAOy2B,MAAMne,EAAImhB,QAAS,SAAS+9G,GAAK,MAAOA,GAAE6/F,YAhbvE/+N,EAAKq/N,cAAmBr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KACtBrK,EAAAs/N,iBAAkBt/N,EAAWo/N,aAAcp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,SAmbvC,IAA4B,GAAxBrK,EAAIq+N,iBAAuB,CAClC,IAAK,GAAIj2O,KAAK4X,GAAImhB,QAAS,CACvB,GAAIo+M,GAAQ,CAhbdv/N,GAAGmhB,QAAA/4B,GAAa82O,gBAAAx3O,EAAAyC,OAAA6V,EAAAmhB,QAAA/4B,GAAA+4B,SAAAuE,eAAA,GACnB,KAAA,GAAYruB,KAAG2I,GAAQmhB,QAAM/4B,GAAA82O,gBAC1BK,GAAcv/N,EAAGmhB,QAAA/4B,GAAY82O,gBAAG7nO,GAAAuqB,MAmb9B5hB,GAAImhB,QAAQ/4B,GAAG22O,UAAYQ,EA9ahC,GAAAv5L,GAAA,EACG4d,EAAA,CAmbF,KAAK,GAAIx7D,KAAK4X,GAAImhB,QAhb9BnhB,EAAwBmhB,QAAM/4B,GAAA29B,YACdigB,GAAAhmC,EAAAmhB,QAAA/4B,GAAA22O,UAmbIn7K,GAAS5jD,EAAImhB,QAAQ/4B,GAAG22O,SA7azC/+N,GAAao/N,aAAAp5L,EACNhmC,EAAAq/N,cAAAr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAENrK,EAASs/N,iBAAIt/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAAAu5C,EAAA5jD,EAAAoK,UAAA,EAAApK,EAAAqK,IAAA,SAEjB,IAAmB,GAAArK,EAAAq+N,iBAA2B,CAClC,IAAA,GAAAj2O,KAAW4X,GAAKmhB,QAAA,CACjB,GAAA6kB,GAAY,CACZhmC,GAAOmhB,QAAI/4B,GAAA82O,gBAAAl/N,EAAAmhB,QAAA/4B,GAAA+4B,OACV,KAAS,GAAE9pB,KAAA2I,GAAWmhB,QAAM/4B,GAAA82O,gBAkbpBl5L,GAAQhmC,EAAImhB,QAAQ/4B,GAAG82O,gBAAgB7nO,GAAGuqB,MAE9C5hB,GAAImhB,QAAQ/4B,GAAG22O,UAAY/4L,EAG/B,IAjbI,GAAA59C,KAAA4X,GAAWmhB,QAAA,CACX,IAAA,GAAA9pB,KAAY2I,GAAImhB,QAAG/4B,GAAA82O,gBACnBl/N,EAAAmhB,QAAgB/4B,GAAA82O,gBAAA7nO,GAAA8nO,UAAA,CAmbhB,KAAK,GAAIj8M,KAAKljB,GAAImhB,QAAQ/4B,GAAG+4B,QAC+B,GAApDnhB,EAAImhB,QAAQ/4B,GAAG82O,gBAAgBh8M,GAAGwC,iBAClC1lB,EAAImhB,QAAQ/4B,GAAG82O,gBAAgBh8M,GAAGi8M,UAAW,EA/arDn/N,GAAAmhB,QAAO/4B,GAAA29B,aAAA,EAmbX/lB,EAjbIo/N,aAAW13O,EAAWy2B,MAAAne,EAAQmhB,QAAG,SAAA+9G,GAAA,MAAAA,GAAA6/F,YAkbrC/+N,EAAIq/N,cAAiBr/N,EAAIo/N,aAAep/N,EAAIm+N,eAAiB,EAAKn+N,EAAIqK,IAAM,KAhb5ErK,EAAGs/N,iBAAWt/N,EAAYo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,SAmbvB,IAA4B,GAAxBrK,EAAIq+N,iBAAuB,CAhbtC,IAAS,GAAAj2O,KAAQ4X,GAAAmhB,QAAU,CACnB,GAAGo+M,GAAS,CACZv/N,GAAGmhB,QAAS/4B,GAAG82O,gBAAal/N,EAAAmhB,QAAA/4B,GAAA+4B,OAmb5B,KAAK,GAAI9pB,KAAK2I,GAAImhB,QAAQ/4B,GAAG82O,gBAhbjCK,GAAAv/N,EAAAmhB,QAAA/4B,GAAA82O,gBAAA7nO,GAAAuqB,MAmbI5hB,GAAImhB,QAAQ/4B,GAAG22O,UAAYQ,EA9anC,GAAAv5L,GAAW,EACR4d,EAAY,CAEf,KAAA,GAAAx7D,KAAA4X,GAAAmhB,QACAnhB,EAAAmhB,QAAA/4B,GAAA29B,YACSigB,GAAAhmC,EAAAmhB,QAAA/4B,GAAA22O,UAEEn7K,GAAA5jD,EAAAmhB,QAAA/4B,GAAA22O,SAqbP/+N,GAAIo/N,aAAep5L,EAhbtBhmC,EAAAq/N,cAAoBr/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAEzBrK,EAASs/N,iBAAIt/N,EAAAo/N,aAAAp/N,EAAAm+N,eAAA,EAAAn+N,EAAAqK,IAAA,KAAAu5C,EAAA5jD,EAAAoK,UAAA,EAAApK,EAAAqK,IAAA,KAGbhG,GACAA,UAEA,CAkbA,GAAIxE,GAAUtY,EAAQsY,QAAQ,eAhb9B,kDACItb,WAAA,EAkbI+F,KAAM,MA9aduV,GAAAjT,OAAAjB,KAAgB,WAChBqU,EAAAswC,cAAiB,EACjBtwC,EAAAo/N,aAAa,KACbp/N,EAAAq/N,cAAY,KACZr/N,EAAAs/N,iBAAc,KACdt/N,EAAMm+N,cAAA,KACNn+N,EAAAo+N,cAAU,GACVp+N,EAAAogB,aAAU,MAmbP,SAjbQvyB,GAkbPmS,EAjbIswC,cAAO,MAubvBpjD,EAAGsyO,gBAjbe,WAmbd,GAAIjgN,KACJ,KAAK,GAAIn3B,KAAK8E,GAAG8zF,SACb,GAAI9zF,EAAG8zF,SAAS54F,GAAGkoD,aAhbxB,IAAA,GAAgBj5C,KAAAnK,GAAS8zF,SAAK54F,GAAM+4B,QAC3B,GAAAj0B,EAAA8zF,SAAiB54F,GAAA+4B,QAAa9pB,GAAI0uB,YAAA,CAC9B,GAAA7D,GAAax6B,EAAS8xB,IAAAtsB,EAAA8zF,SAAA54F,GAAA+4B,QAAA9pB,GAAA8pB,QAAA,SAAApM,GAkbd,GAAkB,GAAdA,EAAEoqN,SAAkB,MAAOpqN,GAAEmN,MAAQnN,EAAEmN,OA/a/C3C,GAAAx6B,MACAqjH,QAAWl7G,EAAA8zF,SAAA54F,GAAA+4B,QAAyB9pB,GAAA8sB,QACnCG,WAAap3B,EAAA8zF,SAAW54F,GAAA+4B,QAAA9pB,GAAiBitB,WAC1Cm7M,QAAY3rO,SAAQ5G,EAAG8zF,SAAA54F,GAAA+1O,eAkbnBc,gBAAiB/xO,EAAG8zF,SAAS54F,GAAGg4B,aAAana,GAhbjDy5N,OAAuB,GAAZxyO,EAAA8zF,SAAY54F,GAAAg4B,aAAAna,GAAA,KAAAic,IAwbvC,IAAK,GAAI95B,KAjbGm3B,GAkbRA,EAAIn3B,GAAGm1O,OAhbqB,GAibxBh+M,EAAIn3B,GAAG62O,gBACP1/M,EAAIn3B,GAAGm1O,IAAM,KAEb71O,EAAOqI,QAAQwvB,EAAIn3B,GAAGs3O,OAAQ,SAASzrN,EAAK1b,GACxCgnB,EAAIn3B,GAAGm1O,IAAIx4O,MACPm9B,MAAOjO,KAOvB,IAAI9rB,IACAnF,UAjbQkK,EAAAq1F,GAAAv/F,UAkbRq7D,MAAOnxD,EAjbCq1F,GAAAlkC,MAkbR+jC,YAjbQl1F,EAAAq1F,GAAAH,YAkbRo7I,kBAAmB3zO,KAAKqkB,UAAUqR,GAClCve,UAAW5T,EAAWG,OAI1BwgE,GAjbYK,kBAAiBjmE,GAAAwD,KAAA,SAAAC,GAkbrBA,EAjbIhJ,KAAAke,aAAa,GAkbjB7b,EAjbI2I,YAAY,UAAAhC,EAAAhJ,KAAAme,QAAA,uBACEle,QAAdqE,EAAAvE,OAAcC,KACdsE,EAAM8F,GAAA/H,EAAAyE,gBAENwD,EAAAgT,YAAU,EACV8tD,EAAS9gE,EAAAq1F,GAAAv/F,aAsbbiC,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,wBAEvD,SAjbSlT,GAkbR5I,EAjbQ2I,YAAc,kCA0e9BV,EAAGo0H,OAAS,WAhbiBz+H,QAibrBqE,EAAOvE,OAjbCC,KAkbRsE,EAAO8F,GAjbC/H,EAAYyE,gBAmbpBwD,EAAGgT,YAjbW,EAkbdd,8JA54BZ9d,QACKC,OAAO,yBACPe,WAAW,oBAAqBw7O,MAm5BzC,WACI,YAOA,SAAS6B,GAAqB16O,EAjbCwK,EAAA+Z,EAAA9hB,GAkb3B,GAAIwF,GAAKC,IAaT,IAXAD,EAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YAjba,EAkbhBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAjbaE,GAobpB1c,EAAW2c,SAjbI,EAkbf1U,EAAGq1F,GAAK9yF,EACR4vB,QAAQC,IAAIpyB,EAAGq1F,IAhbA,GAibXr1F,EAAGq1F,GAAG1vC,KACN,IAAK,GAjbGzqD,KAAA8E,GAAAq1F,GAAAphE,QAAA,CAkbJ,GAjbI6kB,GAAK,CAkbT,KAAK,GAjbG3uC,KAAInK,GAAAq1F,GAAOphE,QAAA/4B,GAAA+4B,QAkbf6kB,GAAQ94C,EAAGq1F,GAAGphE,QAAQ/4B,GAAG+4B,QAAQ9pB,GAAGuqB,MAExC10B,GAAGq1F,GAAGphE,QAAQ/4B,GAAG22O,UAAY/4L,EAGrC,GAAkB,GAAd94C,EAAGq1F,GAAG1vC,MAA2B,GAAd3lD,EAAGq1F,GAAG1vC,MAA2B,GAAd3lD,EAAGq1F,GAAG1vC,KAC5C,IAAK,GAAIzqD,KAjbG8E,GAAIq1F,GAAAphE,QAAW,CAkbvB,GAAI6kB,GAAO,CACkB,IAAzB94C,EAAGq1F,GAAG08I,iBAAiD,GAAzB/xO,EAAGq1F,GAAG08I,gBACpC/xO,EAAGq1F,GAAGphE,QAAQ/4B,GAAG82O,gBAAkBx3O,EAAOyC,OAAO+C,EAAGq1F,GAAGphE,QAAQ/4B,GAAG+4B,SAAWuE,eAAgB,IAhb/D,GAA1Bx4B,EAAAq1F,GAAK08I,iBAAyC,GAAjB/xO,EAAAq1F,GAAA08I,gBAkbjC/xO,EAAGq1F,GAAGphE,QAjbE/4B,GAAQ82O,gBAAex3O,EAAAyC,OAAgB+C,EAAGq1F,GAAAphE,QAAA/4B,GAAA+4B,SAAAuE,eAAA,IAkbpB,GAAzBx4B,EAAGq1F,GAAG08I,iBAAiD,GAAzB/xO,EAAGq1F,GAAG08I,gBACzC/xO,EAAGq1F,GAjbCphE,QAAI/4B,GAAQ82O,gBAAehyO,EAAAq1F,GAAAphE,QAAA/4B,GAAA+4B,QAE/Bj0B,EAAAq1F,GAAKphE,QAAS/4B,GAAA82O,gBAAax3O,EAAAyC,OAAA+C,EAAAq1F,GAAAphE,QAAA/4B,GAAA+4B,SAAAuE,eAAA,GAkb/B,KAAK,GAjbGruB,KAAKnK,GAAIq1F,GAAAphE,QAAS/4B,GAAA82O,gBAkbtBl5L,GAjbQ94C,EAAAq1F,GAAIphE,QAAQ/4B,GAAG82O,gBAAgB7nO,GAAGuqB,MAmb9C10B,GAAGq1F,GAAGphE,QAjbM/4B,GAAA22O,UAAW/4L,MAqb1B,IAjbW,IAibP94C,EAjbGq1F,GAAA1vC,KAAI,CAkbZ3lD,EAAG0yO,cACH1yO,EAAG2yO,aAEH,KAAK,GAAIz3O,KAjbG8E,GAAAq1F,GAAAphE,QAAa,CAkbrB,GAAI6kB,GAjbI,CACkB,IAibtB94C,EAAGq1F,GAjbC08I,iBAAkB,GAAA/xO,EAAAq1F,GAAA08I,gBAkbtB/xO,EAAGq1F,GAjbCphE,QAAU/4B,GAAA82O,gBAAIx3O,EAAAyC,OAAA+C,EAAAq1F,GAAAphE,QAAA/4B,GAAA+4B,SAAAuE,eAAA,IACO,GAArBx4B,EAAAq1F,GAAA08I,iBAAkC,GAAb/xO,EAAaq1F,GAAA08I,gBAkbtC/xO,EAAGq1F,GAAGphE,QAAQ/4B,GAAG82O,gBAAkBx3O,EAAOyC,OAAO+C,EAAGq1F,GAAGphE,QAAQ/4B,GAAG+4B,SAAWuE,eAAgB,IAC/D,GAAzBx4B,EAAGq1F,GAAG08I,iBAAiD,GAAzB/xO,EAAGq1F,GAAG08I,kBAhbzC/xO,EAAAq1F,GAAIphE,QAAA/4B,GAAA82O,gBAA+BhyO,EAAAq1F,GAAAphE,QAAA/4B,GAAA+4B,QAmbvC,KAAK,GAjbG9pB,KAAAnK,GAAAq1F,GAAAphE,QAAgB/4B,GAAA82O,gBAkbpBl5L,GAjbI94C,EAAAq1F,GAAAphE,QAAiB/4B,GAAA82O,gBAAA7nO,GAAAuqB,MAmbzB10B,GAAGq1F,GAAGphE,QAjbE/4B,GAAA22O,UAAY/4L,EAqbxB,IAAK,GAAI59C,KAjbG8E,GAAAq1F,GAAAphE,QAkbJj0B,EAAGq1F,GAjbCphE,QAAS/4B,GAAA29B,YAkbb74B,EAAG2yO,WAjbK96O,KAAOmI,EAAAq1F,GAAAphE,QAAW/4B,IAob1B8E,EAAG0yO,WAAW76O,KAAKmI,EAAGq1F,GAAGphE,QAAQ/4B,GAIzC8E,GAAG4yO,aAjbap4O,EAAUy2B,MAAAjxB,EAAA0yO,WAAA,SAAA1gG,GAAA,MAAAA,GAAA6/F,YAAA7xO,EAAAq1F,GAAAn4E,UAAA,EAAAld,EAAAq1F,GAAAl4E,IAAA,KAkb1Bnd,EAAG6yO,aAjbar4O,EAAOy2B,MAAAjxB,EAAA2yO,WAAA,SAAA3gG,GAAA,MAAAA,GAAA6/F,YAAA7xO,EAAAq1F,GAAA47I,eAAA,EAAAjxO,EAAAq1F,GAAAl4E,IAAA,SAmbtB,IAAmB,IAAfnd,EAAGq1F,GAAG1vC,KACX,IAAK,GAAIzqD,KAjbG8E,GAAKq1F,GAAAphE,QAAS,CAkbtB,GAAI6kB,GAAO,CACX94C,GAAGq1F,GAAGphE,QAAQ/4B,GAjbE82O,gBAAYx3O,EAAWyC,OAAA+C,EAAAq1F,GAAAphE,QAAA/4B,GAAA+4B,SAAAuE,eAAA,GAkbvC,KAAK,GAAIruB,KAAKnK,GAAGq1F,GAjbEphE,QAAA/4B,GAAA82O,gBAkbfl5L,GAAQ94C,EAAGq1F,GAjbCphE,QAAS/4B,GAAI82O,gBAAW7nO,GAAAuqB,MAmbxC10B,GAAGq1F,GAAGphE,QAAQ/4B,GAAG22O,UAAY/4L,EAIrC94C,EAAGuL,OAAS,SAAUuH,GAEdA,EAAI+lB,YACJ/lB,EAAI+lB,aAAc,EAGlB/lB,EAAI+lB,aAAc,CAEtB,KAAK,GAjbE39B,KAAA4X,GAAAk/N,gBACHl/N,EAAAk/N,gBAAe92O,GAAA+2O,SAAWn/N,EAAA+lB,aAqblC74B,EAAGwiH,KAjbK,WAkbJlmG,EAAkBrN,MAAMjP,EAAGq1F,GAAGphE,UAGlCj0B,EAAGo0H,OAAS,WACR93G,EAAkBiB,QAAQ,yEA3GlCnpB,QACKC,OAAO,yBACPe,WAAW,uBAjbsBq9O,MA8hB1C,WACI,YAOA,SAASK,GAAoB/6O,EAAYiC,EAAQG,EAAuB6X,EAAgB6uD,EAAoBjvD,EAAwBpX,EAAQH,EAASE,GA0BjJ,QAAS2X,KACDC,GACAH,EAjbYI,mBAAYD,GAAA1T,KAAA,SAAAC,GACR,MAibRA,EAjbIlI,SAkbJwJ,EAAGqS,YAjbU3T,EAAKhJ,KAkblBsK,EAAGsS,WAjbK,IAmbb,SAjbS3R,GAkbR5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAKhE,QAAS+gB,GAjbgBtP,GAkbjBA,EACAP,EAjbgB8P,eAAoBvP,GAAG1T,KAAA,SAAAC,GACpB,MAibXA,EAAIlI,QACJwJ,EAAG2hB,YAjbcjjB,EAAIhJ,KAkbjBsK,EAAG2hB,YAAYxmB,OAAS,GACxBd,EAAQ8C,OAAO,UAAW,4BAA8B6C,EAAG8C,KAAKqQ,gBAAgB84B,aAC5E50C,WAAW,EAhbf+F,KAAA,OAGJ4C,EAAAsS,WAAI,EAkbA/T,UAhbDA,YAmbHxG,EAjbQ2I,YAAO,QAAA,yBAAA,aAmbpB,SAjbSC,GAkbR5I,EAAW2I,YAjbS,QAAY,mBAAmB,eAobvDV,EAAGq1F,GAAGxzE,gBAAkB,KACxB7hB,EAAG2hB,gBAIX,QAASm/C,GAAiBjrC,GACtB71B,EAAGu0F,gBACH,IAAIt5F,IACAnF,UAAW+/B,EACXjgC,OAAQ,QAEZirE,GAAmBC,iBAAiB7lE,GAAKwD,KAAK,SAASC,GAhbvC,MAibRA,EAjbIlI,QAkbJwJ,EAAG+yO,OAjbKr0O,EAAAhJ,KAkbRsK,EAAGgzO,YAjbKx4O,EAAAyC,OAAoB+C,EAAI+yO,OAAA,SAAmBlrN,GAkb/C,GAAyB,GAArBA,EAAE8oN,gBAAsB,MAAO9oN,KAEvC7nB,EAAGizO,yBAjbmBz4O,EAASyC,OAAA+C,EAAA+yO,OAAA,SAAAlrN,GAkb3B,GAjbgB,GAAZA,EAAA8oN,gBAAY,MAAA9oN,KAmbpB7nB,EAAGkzO,eAjbc14O,EAASyC,OAAQ+C,EAAG+yO,OAAA,SAAiBlrN,GAkblD,GAjbqB,GAibjBA,EAAE8oN,gBAjbe,MAAW9oN,MAqbpC9vB,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAjbSC,GAkbR5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAvF5D,GAAIV,GAAKC,IAETD,GAAGqU,kBAjbiBhJ,MAAA,IAAoBA,MAAG,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MAkb3CrL,EAAGsU,SAAWtU,EAjbEqU,gBAAc,GAmb9BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAjbsB,SAASC,GAkb1BzU,EAAGuU,YAjbaE,GAobxBzU,EAAGgT,YAAa,EAChBhT,EAAG+S,WAAY,EACf/S,EAAGsS,WAAY,EACfva,EAAW2c,SAjbS,EAkbpB1U,EAAGwrH,YAAa,EAChBxrH,EAAGq1F,MACHr1F,EAAGu0F,iBAEHv0F,EAAGyhB,oBAAsBA,EACzBzhB,EAAG8gE,iBAAmBA,CAEtB,IACI3uD,IADahY,EAAsBgG,uBAhbvBhG,EAAmBgG,uBAA0BwU,gBAAcxC,UAkb3ED,KAoEAlS,EAAGmzO,iBAAmB,WAClBnzO,EAAGu0F,iBAEHv0F,EAAGu0F,cAAgBv0F,EAAGgzO,aAG1BhzO,EAAGozO,qBAjbiB,WAkbhBpzO,EAAGu0F,cAAgBv0F,EAAGizO,0BAG1BjzO,EAAGqzO,WAAa,WACZrzO,EAAGu0F,cAjbcv0F,EAAIkzO,gBAobzBlzO,EAAGqxO,OAAS,SAjbQv+N,GAkbhB,GAAIpd,IACA2/F,GAAIviF,EAER9Y,GAAO8F,GAAG,eACNpK,KAAMA,6JApHlBtB,QACKC,OAAO,yBACPe,WAAW,sBAjbmB09O,OAyiBvC,WACI,YAQA,SAASv2N,GAjbsBxiB,EAAAhC,GAyc3B,QAASu7O,GAAoBr4O,GACzB,GAAIlG,IACAoN,SACIi/D,MAASrpE,EAAWqK,OAI5B,OADArN,GAAOoN,QAAQ,gBAAkBxM,OAhb1BoE,EAAAgnE,KAAAhpE,EAAA8D,SAAA,oCAAAZ,EAAAlG,GAobX,QAASw+O,GAjbkBt4O,GAkbvB,MAAOlB,GAjbKitE,IAAAjvE,EAAM8D,SAAA,mBAAAZ,EAAAlG,GAobtB,QAjbQy+O,GAAQ3qN,GAkbZ,MAAO9uB,GAjbKupE,IAAAvrE,EAAe8D,SAAA,yBAAAgtB,EAAA9zB,GAmb/B,QAAS0+O,GAjbO5qN,GAkbZ,MAAO9uB,GAjbKupE,IAAAvrE,EAAA8D,SAAmB,2BAAAgtB,EAAA9zB,GAmbnC,QAAS2+O,GAjbO7qN,GAkbZ,MAAO9uB,GAjbKupE,IAAAvrE,EAAe8D,SAAA,4BAAAgtB,EAAA9zB,GAmb/B,QAAS4+O,GAjbW9qN,GAkbhB,MAAO9uB,GAjbKupE,IAAAvrE,EAAe8D,SAAA,4BAAAgtB,EAAA9zB,GAmb/B,QAAS6+O,GAAU/qN,GACf,MAAO9uB,GAAMupE,IAAIvrE,EAAW8D,SAAW,qCAAuCgtB,EAAI9zB,GAEtF,QAASynB,GAAcqM,GAhbpB,MAAA9uB,GAAAupE,IAAkBvrE,EAAW8D,SAAA,sCAAAgtB,EAAA9zB,GAmbhC,QAjbQ8+O,GAAM54O,GACV,MAAKlB,GAAIgnE,KAAQhpE,EAAU8D,SAAA,4BAAAZ,EAAAlG,GAmb/B,QAAS++O,GAjbQ74O,GAkbb,MAAOlB,GAjbKgnE,KAAIhpE,EAAY8D,SAAW,oBAAgBZ,EAAAlG,GAmb3D,QAASg/O,GAAW94O,GAChB,MAAOlB,GAAMgnE,KAAKhpE,EAAW8D,SAAW,qBAAsBZ,EAAKlG,GAEvE,QAASi/O,GAAS/4O,GACd,MAAOlB,GAAMgnE,KAAKhpE,EAjbE8D,SAAe,mBAAuBZ,EAAAlG,GAmb9D,QAASk/O,GAAQh5O,GACb,MAAOlB,GAAMgnE,KAAKhpE,EAjbW8D,SAAG,kBAAyBZ,EAAMlG,GAmbnE,QAASm/O,GAASrrN,GACd,MAAO9uB,GAAMouE,OAAOpwE,EAAW8D,SAAW,oBAAoBgtB,EAAI9zB,GAvEtEkL,KAAKqzO,oBAjboBA,EAkbzBrzO,KAAKuzO,YAAcA,EACnBvzO,KAAKwzO,UAAYA,EACjBxzO,KAAKyzO,eAAiBA,EACtBzzO,KAAK0zO,YAAcA,EACnB1zO,KAAK2zO,UAAYA,EACjB3zO,KAAKuc,cAAgBA,EACrBvc,KAAKszO,uBAjbmBA,EAkbxBtzO,KAAK4zO,kBAAoBA,EACzB5zO,KAAK6zO,UAAYA,EACjB7zO,KAAK8zO,WAjbWA,EAkbhB9zO,KAAK+zO,SAjbWA,EAkbhB/zO,KAAKg0O,QAAUA,EACfh0O,KAAKi0O,SAjbWA,CAqbhB,IAAIn/O,IACAoN,SACIi/D,MAASrpE,EAAWqK,QA1BhChO,QACKC,OAAO,yBACP8U,QAAQ,yBAjb0BoT,GAmbvCA,EAjboB8kD,SAAI,QAAA,kBAmgB5B,WACI,YAMA,SAAS8yK,GAAoBp8O,EAAY0S,EAAQjQ,EAAQH,EAASE,EAAWR,EAAOC,EAAQS,EAAS8hB,EAAwBvK,EAAgBJ,EACzIylD,EAAYzc,EAAsB2G,EAAkBxG,EAAsBqc,EAA2Bj9D,EAAuBstB,EAC5HozB,EAA4BF,EAAqBG,EAAwBE,EAAiBR,EAAa0c,EAAoBkW,GAsF3H,QAjbQl7D,KACAlY,EAAAvE,OAAAC,OAkbAsK,GAAGyxD,OAASz3D,EAAOvE,OAAOC,KAAK+7D,OAC/BzxD,GAAG6xD,OAAS7xD,GAAGyxD,OACfzxD,GAAGo4N,QAAUp+N,EAAOvE,OAAOC,KAAK2iO,QAChCr4N,GAAGs4N,UAAY1xN,SAAS5M,EAAOvE,OAAOC,KAAK2iO,QAAQziO,QACnDoK,GAAGwhB,SAAWxhB,GAAGs4N,WAGrBt4N,GAAGshB,eAAkBC,SAAU,QAASC,SAAU,IAAOD,SAAU,sCAAuCC,SAAU,IAAOD,SAAU,gCAAiCC,SAAU,IAAOD,SAAU,WAAYC,SAAU,IAhbtND,SAAA,UAAAC,SAAA,IAAAD,SAAA,sBAAAC,SAAA,IAobDq3F,IAhbH74G,GAAAu4N,cAwbW3iO,OAAQ,eAjbjBizB,GAAA,IAGAjzB,OAAc,gBACdizB,GAAA,IAIH7oB,GAAAkoB,cACQC,YAAA,cACIC,UAAG,EACLC,KAAQ,MAENF,YAAO,sBACXC,UAAc,EACVC,KAAA,OAEDF,YAAc,uBAmbbC,UAAW,EACXC,KAAM,OA/aNF,YAAO,iCACPC,UAAM,EACNC,KAAM,OAENF,YAAM,6CAmbNC,UAlbW,EACXC,KAAM,OAENF,YAAM,iBACVC,UAAc,EACVC,KAAA,OA+bRroB,GAAGsoB,kBACCC,iBAlbe,wBAmbfC,OAlbO,IAobPD,iBAlbkB,iBAmblBC,OAAQ,IAERD,iBAlbkB,oBAmblBC,OAAQ,IAEZxoB,GAAGyoB,iBACCC,eAAgB,SAChBC,OAAQ,IAhbRD,eAAU,UAmbVC,OAlbO,IAobPD,eAlbK,YAmbLC,OAlbO,IAobPD,eAAgB,qBAChBC,OAAQ,IAhbTD,eAAgB,QAmbfC,OAAQ,IAhbQ,YAApB3uB,EAASmiG,UACLn8F,GAAAyxD,QAAW,GAqbfz/C,EAlbQI,mBAAyBD,IAAA1T,KAAgB,SAAGC,GAmb7B,MAAfA,EAAIlI,QAjbLwJ,GAAGqS,YAAW3T,EAAAhJ,KAmbbsK,GAAGsS,WAAY,EACXtS,GAAGyxD,UAAW,GACd2iL,KAjbJp0O,GAAAsS,WAAe,GAEfva,EAAA2I,YAAa,QAAA,yBAAA,YAoblB,SAASC,GACR5I,EAlbG2I,YAAA,QAAA,mBAAA,aAwbX,QAASm4G,KACL,OAAQ74G,GAAGs4N,WAjbZ,IAAO,GACNt4N,GAAA+4G,YAAwB,OAAM,OAAA,OAAA,OAAA,SAmbtB,MACJ,KAAK,GAjbD/4G,GAAA+4G,YAAY,OAAA,OAAA,OAAA,SAAA,UAAA,SACpB,MAmbI,KAAK,GACD/4G,GAAG+4G,YAAc,OAAQ,OAAQ,OAAQ,SAAU,UAAW,SAC9D,MAjbR,KAAA,GACR/4G,GAAA+4G,YAAA,OAAA,QAmbgB,MACJ,KAAK,GAlbjB/4G,GAAA+4G,YAAA,OACY,MACP,KAAW,GAobA/4G,GAAG+4G,YAAc,OAAQ,OAAQ,OAAQ,WAAY,WA7ajE,QAAGC,GAAcC,GAobb,MAAOz+G,GAAO3F,SAASmL,GAAG+4G,WAAYE,GAG1C,QAnbQs0B,KAobJvtI,GAAGqoD,kBACHroD,GAAG87D,mBAAqB,KAlbzB97D,GAAA8C,KAAAy3N,wBAAa,KACD,IAAZv6N,GAAA8C,KAAYo3D,gBAAA9xC,UACZpoB,GAAAy4N,sBACQC,UAAU,cACLrwM,KAAA,MAEbqwM,UAAgB,sBAobHrwM,KAAM,OAjbnBqwM,UAAmB,uBAobNrwM,KAAM,OAhbtBqwM,UAAA,iCAobgBrwM,KAAM,OAjbdqwM,UAAW,6CACXrwM,KAAA,OAwbAroB,GAnbGy4N,sBACCC,UAAW14N,GAAA8C,KAAAo3D,gBAAqB/xC,YAobhCE,KAAMroB,GAAG8C,KAAKo3D,gBAAgB7xC,OA/a1CroB,GAAAm4D,YAASC,iBAAoB,KACzBp4D,GAAA8C,KAAI05C,YAAW,KAobfx8C,GAAGm4D,YAnbCE,mBAAuB,KAob3Br4D,GAAGm4D,YAnbSoG,iBAAoB,KAobhCv+D,GAAGm4D,YAnbYK,oBAAkB,KAsbrC,QAASy3C,GAnbe99F,EAAW5T,GAob3B4T,GACAnS,GAAG8C,KAAK61N,sBAAwB,KAChC3xK,KACAhnD,GAAG8C,KAnbK+e,gBAAe,KAobvB7hB,GAAGgmD,gBAGHhmD,GAAG8C,KAnbK81N,eAAW,KAobnB54N,GAAGsS,WAAY,EACfV,EAnbiB8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACF,MAAXA,EAAAlI,QAobIwJ,GAAG2hB,YAAcjjB,EAAIhJ,KAlb1BsK,GAAA2hB,YAAAxmB,OAAA,GACGd,EAAA8C,OAAkB,UAAA,4BAAA6C,GAAA8C,KAAAqQ,gBAAA84B,aACrB50C,WAAc,EAobD+F,KAAM,OAhbrB4C,GAAAsS,WAAiB,EACnB/T,GACOA,KAEExG,EAAA2I,YAAA,QAAA,yBAAA,aAEZ,SAAAC,GACQ5I,EAAI2I,YAAgB,QAAA,mBAAA,gBAsbxBV,GAAG8C,KAnbK+e,gBAAM,KAobd7hB,GAAG2hB,eACH3hB,GAAG8C,KAnbI61N,sBAAA,KAobP34N,GAAGgmD,gBACHhmD,GAAG8C,KAAKo3D,gBAAkB,KAC1Bl6D,GAAGm4D,YAnbIC,iBAAwB,KAob/Bp4D,GAAG8C,KAnbK05C,YAAM,KAobdx8C,GAAGm4D,YAAYE,mBAAqB,KACpCr4D,GAAGm4D,YAAYoG,iBAAmB,KAClCv+D,GAAGm4D,YAnbIK,oBAAA,KAGRx4D,GAAA8C,KAAS81N,eAAK,KACb5xK,MAwbR,QAnbO6xK,GAAAt6N,GAobHomD,IAlbA,IAqbI7uD,GAAYkK,GAAG8C,KAAK+e,gBAAgB/rB,SA7axC,IAJGgjO,IADJ94N,GAAA+S,UAKuB,GAAnB/S,GAAA8C,KAAA81N,eAAmB/vM,GAoblB,GAAIgvD,IAAU,MAjbnB,IAASA,IAAS,EACby4B,EAAOtwG,GAAA8C,KAAA81N,eAAA/vM,EAqbXgyB,GAA2Bk+K,YAAYjjO,EAAW+hF,EAASy4B,EAAWwoH,IAAYr6N,KAAK,SAASC,GAlbtF,MAAHA,EAAGlI,QACNwJ,GAAMk7C,QAAAx8C,EAAAhJ,KAobEsK,GAAGk7C,QAAQ//C,OAAS,GACpBd,EAAQ8C,OAAO,UAAW,sDACtB9F,WAAW,EACX+F,KAAM,OAhb9BmB,GAoboBA,IAlbpByB,GAAAsS,WAAA,GAEava,EAAA2I,YAA0B,QAAA,yBAAA,0BAEvC,SAAAC,GAobY5I,EAAW2I,YAAY,QAAS,mBAAoB,2BAjb5DV,GAAK8C,KAAA05C,YAAA,KACLx8C,GAAKm4D,YAAcE,mBAAA,KACnBr4D,GAAKm4D,YAAYoG,iBAAA,KACjBv+D,GAAKm4D,YAAAK,oBAAiB,KAGtB,QAAKwgK,GAAgB3iN,EAAA0mC,EAAAx+C,GACrB0rD,IAEA,IAAK5zC,GAAYA,EACZ2mC,EAAAD,EAGAjnD,EAAWkK,GAAA8C,KAAA+e,gBAAA/rB,SAybZ,IAJIgjO,IADA94N,GAAG+S,UA9aiB,GAApB/S,GAAA8C,KAAA81N,eAAoB/vM,GAobpB,GAAIgvD,IAAU,MAEd,IAAIA,IAAU,EAlbby4B,EAAAtwG,GAAA8C,KAAoB81N,eAAK/vM,EAqb9B8xB,GAnbas+K,iBAAA5iN,EAAA2mC,EAAAlnD,EAAA+hF,EAAAy4B,EAAAwoH,IAAAr6N,KAAA,SAAAC,GACI,MAATA,EAAAlI,QAobAwJ,GAAG47C,aAAel9C,EAAIhJ,KAClB6I,GAlbLA,IACAyB,GAAAsS,WAAW,GAqbVva,EAAW2I,YAAY,QAAS,yBAA0B,YAjblE,SAAOC,GAobH5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAASw4N,GAAoCh9K,EAAY39C,GAlbzD2rD,IAqbI,IAAIhO,GAAaA,EAGbpmD,EAAYkK,GAAG8C,KAAK+e,gBAAgB/rB,SAMxC,IAvbAgjO,IADJ94N,GAAS+S,UAwb4B,GAA7B/S,GAAG8C,KAAK81N,eAAe/vM,GAlb/B,GAASgvD,IAAA,MAqbD,IAAIA,IAAU,EAlbby4B,EAAAtwG,GAAkB8C,KAAK81N,eAAA/vM,EAqb5BiyB,GAAuBq+K,oBAAoBj9K,EAAYpmD,EAAW+hF,EAASy4B,EAAWwoH,IAAYr6N,KAAK,SAASC,GAlb5F,MAAfA,EAAAlI,QACEwJ,GAAAo8C,gBAAsB19C,EAAAhJ,KAobjB6I,GAlbPA,IACEyB,GAAAsS,WAAW,GAEbva,EAAc2I,YAAA,QAAA,yBAAA,gBAqbhB,SAASC,GAlbhB5I,EAAiB2I,YAAK,QAAA,mBAAA,iBAubtB,QAnbI04N,GAA+BvnM,EAAWtzB,GAob1CinD,IAEA,IAAI3zB,GAAgBA,EAGhB/7B,EAAYkK,GAAG8C,KAAK+e,gBAAgB/rB,SA9ahD,IAHQgjO,IAkbI94N,GAAG+S,UA/af,GAAA/S,GAAA8C,KAAA81N,eAAA/vM,GACY,GAAAgvD,IAAA,MAsbA,IAAIA,IAAU,EAnbjBy4B,EAAAtwG,GAAoB8C,KAAA81N,eAAoB/vM,EAE7CmyB,GAAAq+K,aAA4BxnM,EAAA/7B,EAAqB+hF,EAAAy4B,EAAwBwoH,IAAiBr6N,KAAA,SAAaC,GAC9F,MAAAA,EAAAlI,QACNwJ,GAAAu8C,aAAmB79C,EAAAhJ,KACT6I,GACVA,IACCyB,GAASsS,WAAA,GAETva,EAAS2I,YAAA,QAAA,yBAAA,SAET,SAASC,GACV5I,EAAA2I,YAAA,QAAA,mBAAA,UAIH,QAAG44N,GAAct5M,GACdrqB,SAAAqqB,IACIhgB,GAAA+5H,sBAqbKC,oBAAqB,UAnb9B3xG,KAAa,MAEJ2xG,oBAAA,WACR3xG,KAAa,MAEF,GAAZroB,GAAY+S,WAAA/S,GAAA8C,KAAA+7C,mBACZ0uF,IACA0B,EAAajvI,GAAA8C,KAAA+e,gBAAA/rB,aAQhB,QAAGyjO,GAAgBlxM,GAChBq9B,IAEA,IAAA1lC,GAAAhgB,GAAA8C,KAAA+7C,iBAA4B7+B,OAC5B++B,EAAA/+C,GAAA8C,KAAAiuI,wBAA8B1oH,KAG9BvyB,EAAAkK,GAAA8C,KAAA+e,gBAAoC/rB,SAMpC,IAJAgjO,IADA94N,GAAA+S,UAKwB,GAAxB/S,GAAA8C,KAAA81N,eAAwB/vM,GACxB,GAAAgvD,IAAY,MAEZ,IAASA,IAAA,EACTy4B,EAAUtwG,GAAA8C,KAAA81N,eAAA/vM,EAEV2xB,GAAAg/K,aAAcx5M,EAAA++B,EAAAjpD,EAAA+hF,EAAAy4B,EAAAwoH,IAAAr6N,KAAA,SAAAC,GACH,MAAXA,EAAWlI,QACXwJ,GAAW8zF,SAAAp1F,EAAAhJ,KACXsK,GAAAsS,WAAgB,GAEPva,EAAA2I,YAAA,QAAA,yBAAA,SAET,SAAAC,GACA5I,EAAA2I,YAAkB,QAAA,mBAAA,UAKrB,QAAGuuI,GAAUn5I,EAAAyI,GACV,GAAAzI,EAAY,CACZkK,GAAQ8C,KAAA61N,sBAAA,KACR34N,GAAQgmD,gBACRgB,IAKA,IAAA/rD,IACAnF,UAAoBA,EACpBmhC,QAAWj3B,GAAA8C,KAAcsgD,aAAArqC,GAGzB,IAAsC,IAAtC/Y,GAAA8C,KAAA81N,eAAwB/vM,GAAc,CACnC,GAAAivD,GAAc93E,GAAA8C,KAAA81N,eAAA/vM,GAqbJkvD,GAAc,CAElBn9B,GAAqBg9B,uBAAuB38E,EAAInF,UAAWmF,EAAIg8B,SAAS,EAAM6gD,EAAWC,GAAat5E,KAAK,SAASC,GAnb/F,MAAjBA,EAAKlI,QAqbDwJ,GAAGgmD,aAAetnD,EAAIhJ,KAnb1BsK,GAAAgmD,aAAA7qD,OAAA,GACMd,EAAM8C,OAAA,UAAA,6BAAA6C,GAAA8C,KAAA+e,gBAAAS,aACDjrB,WAAY,EAChB+F,KAAA,OAGZ4C,GAAWsS,WAAG,EAqbD/T,GACAA,KAlbJxG,EAAW2I,YAAU,QAAO,yBAAU,YAsb3C,SAASC,GAnbpB5I,EAAA2I,YAAA,QAAA,mBAAA,iBAubQk6C,GAAqBgC,qBAAqB3hD,GAAKwD,KAAK,SAASC,GACtC,MAAfA,EAAIlI,QACJwJ,GAAGgmD,aAAetnD,EAAIhJ,KAClBsK,GAAGgmD,aAAa7qD,OAAS,GAnbzCd,EAAA8C,OAAA,UAAA,6BAAA6C,GAAA8C,KAAA+e,gBAAAS,aACYjrB,WAAA,EACJ+F,KAAA,OAGI4C,GAAAsS,WAAA,EACJ/T,GAqbQA,KAEJxG,EAAW2I,YAAY,QAAS,yBAA0B,aAlblE,SAAAC,GACA5I,EAAW2I,YAAA,QAAA,mBAAA,kBAwbfV,IAAG8C,KApbC81N,eAAW,KAqbf54N,GAAG8C,KApbC61N,sBAAM,KAqbV34N,GApbGgmD,gBAqbHhmD,GAAG8C,KApbCo3D,gBAAa,KAqbjBl6D,GAAGm4D,YApbYC,iBAAA,KAqbfp4D,GAAG8C,KApbC05C,YAAM,KAqbVx8C,GAAGm4D,YAAYE,mBAAqB,KAnbpCr4D,GAAAm4D,YAAAoG,iBAAA,KAqbAv+D,GAAGm4D,YApbCK,oBAAa,KAubjBxR,IAEJyyK,IApbmB3jO,GAwbvB,QAAS44G,GApbc5qD,EAAAhuD,GAqbnB,GAAIA,EApbU,CAqbVkxD,KACAhnD,GAAG2uG,QAAUhyG,KAAKC,MAAMoD,GAAG8C,KAAK61N,sBAAsB30K,OACtDhkD,GAAG4uG,YAAc5uG,GAAG2uG,QAAQE,KAC5B,IAAI5zG,IACA6oD,WAAY9jD,GAAG8C,KAAK61N,sBAAsB70K,WAC1ChuD,UAAWkK,GAAG8C,KAAK+e,gBAAgB/rB,UACnCF,OAAQoK,GAAG8C,KAAK81N,eAAe/vM,GAC/B02B,OAAQv/C,GAAG8C,KAAKsgD,aAAarqC,GAIjCwoC,GAAiBonC,iBAAiB1tF,GAAKwD,KAAK,SAASC,GAnbtD,GAAmB,MAAnBA,EAAAlI,OAAmB,CAClB,IAAA,GAAA0E,KAAkBwD,GAAAhJ,KACV,GAAA83L,GAAA9uL,EAAAhJ,KAAAwF,GAAAwE,MAERM,IAAA6vF,gBAAkBlzF,KAAAC,MAAA4wL,GAAAxpI,KACV,KAAA,GAAA9oD,GAAA,EAAAA,EAAA8E,GAAA0hG,kBAAAvmG,OAAAD,IACT,IAAA,GAAAiP,GAAA,EAAAA,EAAAnK,GAAA6vF,gBAAA10F,OAAAgP,IACC,IAAkB,GAAA6rB,GAAA,EAAAA,EAAAh2B,GAAA6vF,gBAAA1lF,GAAA28C,OAAA3rD,OAAA66B,IACV,IAAA,GAAA2jM,GAAA,EAAAA,EAAA35N,GAAA0hG,kBAAAxmG,GAAA4hB,OAAA,GAAApnB,KAAAyF,OAAAw+N,IAqbqB35N,GAAG6vF,gBAAgB1lF,GAAG28C,OAAO9wB,GAAG+wB,QAAU/mD,GAAG0hG,kBAAkBxmG,GAAG4hB,OAAO,GAAGpnB,KAAKikO,GAAG5yK,QAAY/mD,GAAG0hG,kBAAkBxmG,GAAG+7B,SAAWj3B,GAAG8C,KAAKsgD,aAAarqC,IAnbpKqtH,EAAApmI,GAAA6vF,gBAAA1lF,GAAA28C,OAAA,SAAA9mD,GAAA6vF,gBAAA1lF,GAAA28C,OAAA9wB,GAAA+wB,OAMlB,IAAAK,KACC5sD,GAAAqI,QAAgB7C,GAAA6vF,gBAAA,SAAAhpC,GACR,GAAA/N,IACTuO,KAAAR,EAAAQ,KACiBI,SAAAZ,EAAAH,OACRI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAERM,GAAgBvvD,KAAAihD,KAsbR94C,GAAG4mD,YAAcQ,EAnblBpnD,GAAAsS,WAAY,MAsbXva,GAAW2I,YAAY,QAAS,yBAA0B,eAlbtE,SAAeC,GACP5I,EAAI2I,YAAgB,QAAA,mBAAA,iBA4bhC,QAAS0lI,GAAc1oI,EAAOo3G,EAAUzpG,GACpC3N,EApbGmF,QAAS,SAAKnD,EAAA0V,GACb1V,EAAWo1G,KAAYzpG,GAsbnB3N,EAAM43B,OAAOlgB,EAAO,KAKhC,QApbIgxC,GAAWc,GAqbX,GApbIA,EAAKo6C,kBAAA,CAqbL,GApbI96C,GAAG,QAAcC,EAAQS,EAAQO,UAAQ,GACzCd,EAAAnsD,EAAA6P,KAAArK,GAAA6vF,iBACJnpC,OAAKF,GAEDhsD,GAAAgnG,MAAAxhG,GAAA6vF,gBAAA,SAAAhpC,GACJ,MAAKJ,GAAAI,EAAAH,SAsbLlsD,GApbIqI,QAAA7C,GAAA4mD,YAAA,SAAAC,GACJ,GAAKA,EAAAY,WAAAjB,EAAA,CAED,GAAAi7C,GAAAjnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SACCz6C,GAAAC,OAAAu6C,EAAA7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GACE,MAAArsD,GAAc3F,SAAA4sG,EAAA56C,EAAAvrB,oBA8crB0rB,MAKR,QAASP,GApbMc,GAqbX,MAAO3gD,UApbK2gD,EAAWjkC,UAAA,IAub3B,QAAS+9E,GAAgBj6C,GA1arB,MA4aIA,IApbGA,EAAAjsD,OAAA,GACHX,EAAGqI,QAAAukD,EAAsB,SAACP,GACtB,GAAc,GAAdA,EAAAvrB,SAAmB,CACnB,GAAM2mE,GAAQznG,EAAA6P,KAAgBw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IAqb1BR,GAAEoG,WAAa,MAAQg1C,KAhbhC76C,EAubP,QApbOwyK,GAAYr7N,GAqbf,GAAItD,IACA6oD,WAAY9jD,GAAG8C,KAAK61N,sBAAsB70K,WAnblDhuD,UAASkK,GAAA8C,KAAA+e,gBAAiC/rB,UAClCw6G,UAAWtwG,GAAA8C,KAAA81N,eAAA/vM,GACXoO,QAAQj3B,GAAA8C,KAAAsgD,aAAArqC,GACRqe,WAAAp3B,GAAAo3B,WAsbJ2jB,GApbOorB,UAAelrE,GAAAwD,KAAA,SAAAC,GAqblB,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,GAAG65N,QAAUn7N,EAAIhJ,IAnblB,KAAK,GAAAwF,KAAA8E,IAAA65N,QACL75N,GAAA85N,IAAY95N,GAAA65N,QAAA3+N,GAAA6+N,aAwbX,OAtbIx7N,IACAA,IACIyB,GAAG,IAsbXjI,EAAW2I,YApbY,QAAA,yBAAA,aA0bnC,QAASs5N,KAGL,GAAIC,GAAep0G,EAAErkB,MAAMxhG,GAAG4mD,YAAa,SAASC,GAChD,MApbGjgD,UAASigD,EAAKY,SAAAnkC,UAAA,MAubjB5jB,IACJA,GApbOkiG,mBAAK5hG,GAAkB8C,KAAA61N,sBAAA/lM,aAub9B,IApbIsnM,KA0bJ,OALA1/N,GApbOqI,QAAKo3N,EAAA34H,kBAAkB,SAAAz6C,GAC1BqzK,EAAGriO,KAAAsiO,EAA+BtzK,MAsbtCnnD,EApbOhK,KAAAwkO,EAEAx6N,EAubX,QApbQy6N,GAAQxrH,GAqbZ,GApbIjvG,KAUJ,OA2aAA,GAAOg1B,OAASi6E,EAAQj6E,OACxBh1B,EAAOqnD,OAAS4nD,EAAQ5nD,OACxBrnD,EAAOstD,WAlbX2hD,EAASzM,YAAiB1nG,EAAA4/N,OAAAzrH,EAAAzM,YAAA,UACtB1nG,EAAAqI,QAAA8rG,EAAAzM,YAAA,SAAAr7C,GACInnD,EAAAstD,QAASnG,EAAAoG,WAAApG,EAAAQ,OAGN3nD,EAubX,QApbQ26N,KAqbJ,IAAK,GAAIn/N,KAAK8E,IAAG8C,KAAKsgD,aAAc,CAnbhCpjD,GAAGs6N,gBAAK39N,KAAeC,MAASoD,GAAA8C,KAAAsgD,aAAAwyF,gBAChC,KAAI,GAAA5/G,KAAUh2B,IAAAs6N,gBACXt6N,GAAA8C,KAAAy3N,wBAAAlyM,MAAA2N,GACW,MAAVA,IACAh2B,GAAAw6N,aAAoBx6N,GAAAs6N,gBAAet6N,GAAA8C,KAAAy3N,wBAAAlyM,QA0b/C,QAASoyM,KACLJ,GACA,IAAIvyL,GACA4yL,EAAUlgO,EAAO6P,KAAKrK,GAAG0hG,mBACzBzqE,QAAWj3B,GAAG8C,KAAKsgD,aAAarqC,IAEpC,IApbY,GAobR/Y,GAAG8C,KApbK81N,eAAA/vM,GAAA,CAqbR,GApbI8xM,IAqbA1jM,QApbGj3B,GAAA8C,KAAAsgD,aAAArqC,GACHs6F,UAAWrzG,GAAA8C,KAAAsgD,aAAqB/6B,KAAA,IAAAroB,GAAA8C,KAAAy3N,wBAA0BlyM,KAqb1DuyM,aAAc56N,GAAGw6N,aAnbtBvhL,SAAcj5C,GAAA8C,KAAA+7C,iBAAA5F,SACbj5B,OAAWhgB,GAAA8C,KAAA+7C,iBAAqB7+B,OAqb5BuS,SAAUvyB,GAAG8C,KAAKsgD,aAAa7wB,SAnb/BsoM,YAAA76N,GAAc66N,YACnBx9M,OAAYrd,GAAA86N,SACZC,UAAY/6N,GAAA8C,KAAAy3N,wBAAmBlyM,KAsbP,OAAnBroB,GAAGw6N,cAA2C7kO,QAAnBqK,GAAGw6N,cAC9Bx6N,GAAG0hG,kBAAkB7pG,KAAKzD,QAAQ8e,KAAKynN,IAnb1C36N,GAAA8C,KAAA+7C,iBAA0B,KAC/B7+C,GAAAu8C,gBAqbQv8C,GAAG8C,KAAKiuI,wBAA0B,KAnbtC/wI,GAAA8C,KAAYy3N,wBAAA,KACZv6N,GAAA8C,KAAQsgD,aAAA,KAqbJpjD,GAAG8zF,aAlbP/7F,EAAe2I,YAAK,QAAgB,+BAAAV,GAAA8C,KAAAy3N,wBAAA7B,UAAA,mBAAA,eAwbxC,GApbIgC,EAAA,CAqbA5yL,EAAQ4yL,CAnbR,IAAGM,GAAKhB,IACJiB,EAAUzgO,EAAA6P,KAAAy9B,EAAAhrB,QACX8kF,mBAAAo5H,EAAAp5H,oBAECq5H,GAqbAA,EAAWvlO,KAAO8E,EAAO4yD,OAAO6tK,EAAWvlO,KAAMslO,EAAQtlO,MAlbzDoyC,EAAIhrB,OAAAjlB,KAAWmjO,GAsbnBlzL,EApbIzqB,OAAI7iB,EAAAy2B,MAAAgqM,EAAAvlO,KAAA,cAqbL,CACHoyC,GACI7Q,QApbGj3B,GAAA8C,KAAAsgD,aAAArqC,GACHs6F,UAAWrzG,GAAA8C,KAAAsgD,aAAqB/6B,KAAA,IAAAroB,GAAA8C,KAAAy3N,wBAA0BlyM,KAqb1DuyM,aAAc56N,GAAGw6N,aAnbtBvhL,SAAcj5C,GAAA8C,KAAA+7C,iBAAA5F,SACbj5B,OAAWhgB,GAAA8C,KAAA+7C,iBAAqB7+B,OAqb5BuS,SAAUvyB,GAAG8C,KAAKsgD,aAAa7wB,SAC/BsoM,YAAa76N,GAAG66N,YAChBE,UAAW/6N,GAAG8C,KAAKy3N,wBAAwBlyM,KAnb9CvL,UAsbD,IAAIk+M,GAAUhB,GAnbdlyL,GAAAhrB,OAAajlB,KAAAmjO,GAqbblzL,EAAMzqB,OAAS7iB,EAAOy2B,MAAM+pM,EAAQtlO,KAAM,UACnB,MAAnBsK,GAAGw6N,cAA2C7kO,QAAnBqK,GAAGw6N,cAnblCx6N,GAAA0hG,kBAAoB7pG,KAAAzD,QAAgB8e,KAAA40B,IACjC9nC,GAAA8C,KAAA+7C,iBAAW,KACd7+C,GAAAu8C,gBACGv8C,GAAA8C,KAAAiuI,wBAAA,KACH/wI,GAAA8C,KAAAy3N,wBAAa,KAqbTv6N,GAAG8C,KAAKsgD,aAAe,KAnbxBpjD,GAAA8zF,YACC9sC,MAEAjvD,EAAU2I,YAAA,QAAA,+BAAAV,GAAA8C,KAAAy3N,wBAAA7B,UAAA,mBAAA,eAKP,GAobP14N,GAAG+S,WApbI/S,GAAkBo4N,SAAItwL,GAAA,MAAA9nC,GAAAw6N,cAqb7B1yL,EApbIn0B,WAAIoB,GAAA1U,OAqbRynC,EAAMqpB,MApbEnxD,GAAAo4N,QAAAjnK,MAqbRrpB,EApbIhrB,OAAGo+M,EAAYpzL,GAqbnBuvB,EApbO+sB,QAAAt8C,GAAArpC,KAAA,SAAAC,GACQ,MAAXA,EAAAlI,QAqbIwJ,GAAG8C,KAAK+7C,iBAAmB,KAnb3B7+C,GAAAu8C,gBACRv8C,GAAW8C,KAAAiuI,wBAAqB,KAqbxB/wI,GAAG8C,KAAKy3N,wBAA0B,KAClCv6N,GAAG8C,KAAKsgD,aAAe,KACvBpjD,GAAG8zF,YAnbV9sC,KAGDjvD,EAAgB2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,qBAsbR9b,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,uBAjb7C,MAAb7T,GAAAw6N,cAqbAziO,EApbG2I,YAAA,QAAA,gCAAAV,GAAA8C,KAAAy3N,wBAAA7B,UAAA,oBAAA,eAsbPU,EAAkCp5N,GAAG8C,KAAK+6C,oBAAoBhsB,eAnb9DspM,IAucJ,QAASn+M,GAAMlK,GAlbX,GADJ9S,GAAAid,WAAS,EACqB,GAAtBjd,GAAA8C,KAAA81N,eAAsB/vM,GAElBlzB,QAAAmd,EAAAoK,UAAqBvnB,QAAAmd,EAAAqK,IAAAA,MAEtBrK,EAAAxC,OAAAwC,EAAA,SAAA,IAAAA,EAAAqK,IAAA,IAAA,EAAA,KAAA,SAsbA,IApbOxnB,QAANmd,EAAMoK,UAAAvnB,QAAAmd,EAAAqK,IAAAA,KAAAxnB,QAAAmd,EAAAuK,OAAA,CAqbV,GAAID,GAAgBtK,EAAIuK,MAnbxBvK,GAAIxC,OAAG,EAAwB,IAAKwC,EAAA,SAAkB,IAAAA,EAAAqK,IAAA,IAAA,EAAA,KAAA,IAsb1D,IAAK,GApbGjiB,KAAA8E,IAAA0hG,kBAA0B,CAqb9B,GAAIpkF,GAAYtd,GAAG0hG,kBAAkBxmG,GAAGoV,KACxCtQ,IAAGid,YAAcK,GAKzB,QAAS49M,GAAyBR,GAnblC,GAAAU,GAAS,EAybL,OAxbA5gO,GAAAqI,QAAA63N,EAAA59M,OAAA,SAAAwmF,GAqbI,GAAI+3H,GAAU7gO,EAAO8xB,IAAIg3E,EAAI5tG,KAAM,UAAUg+B,KAAK,IAnblD0nM,IAAYC,EAAK,MAsbdD,EAAU93M,UAAU,EAAG83M,EAAUjgO,OAAS,GAGrD,QApbQ81E,GAAGn+D,GAqbP,GApbI9S,GAAAo4N,QAAA,CAqbA,GApbGzlN,GAAAtY,EAAAsY,QAAA,UACH,4CAqbQtb,WAAW,EAnbX+F,KAAA,MAsbRuV,GApbGjT,OAAAjB,KAAA,WACC,GAAAxD,IACAk2D,MAAAnxD,GAAYo4N,QAAQjnK,MAqbhBl6B,QAASnkB,EAAImkB,QAlbjBogC,GAAI5K,WAAgBxxD,GAAAwD,KAAA,SAAAC,GACF,MAAfA,EAAAlI,QACAwJ,GAAA0hG,kBAAYhjG,EAAAhJ,KACZ2+O,KACHt8O,EAAW2I,YAAY,UAAS,qBAA0B,sBAEtD3I,EAAK2I,YAAA,QAAA,yBAAA,6BAybbV,IAAG0hG,kBAAkBpsE,OAAOxiB,EAAK,GAIzC,QApbQ+oN,GAAGt9N,GAqbPyB,GAAGm6D,mBACHn6D,GAAGm4D,YAAYK,oBAAsB,IACrC,IAAIv9D,IACAg/D,YAAaj6D,GAAG8C,KAAKo3D,gBAAgB7xC,KACrCG,OAAQxoB,GAAGm4D,YAAYC,iBAAiB5vC,OAnbxCG,OAAI3oB,GAAMm4D,YAAAE,mBAAA1vC,OAqbVw1C,iBApben+D,GAAAm4D,YAAAoG,iBAAAxlD,GAqbf2iC,sBApbkC/lD,QAAbqK,GAAA8C,KAAA05C,YAAax8C,GAAA8C,KAAA05C,YAAAd,sBAAA,KAqblCt7C,SAAU2U,GAAc1U,OAlba,KAArCL,GAAAm4D,YAAYC,iBAAe5vC,SAqb3BvtB,EApbIihD,WAAuCvmD,QAAnCqK,GAAY8C,KAAG66C,iBAAoB39C,GAAA8C,KAAA66C,iBAAAzB,WAAA,MAsbA,IAA3Cl8C,GAAGm4D,YAAYC,iBAAiB5vC,SAChCvtB,EApbIihD,WAAqBvmD,QAArBqK,GAAA8C,KAAqB66C,iBAA2B39C,GAAA8C,KAAe66C,iBAAezB,WAAW,KAqb7FjhD,EAAI42B,cApb4Bl8B,QAAhBqK,GAAA8C,KAAW+6C,oBAAK79C,GAAA8C,KAAA+6C,oBAAAhsB,cAAA,MAsbpCqlC,EApbgB4C,gBAAO7+D,GAAawD,KAAS,SAAGC,GAC5B,MAobZA,EAAIlI,SACJwJ,GAAGm6D,gBApbaz7D,EAAAhJ,KAqbZ6I,GACAA,IACJyB,GAAGsS,WAAY,IAEpB,SAAS3R,GACR5I,EAAW2I,YApbK,QAAA,mBAAA,kBAybxB,QAAS25D,GApbOthD,GAqbZq+C,EAA0B0uB,iBAAiB/sE,GAAIta,KAAK,SAASC,GAnblD,MAobHA,EApbGlI,SACHwJ,GAAAy5D,YAAA/6D,EAAqBhJ,KAAAomO,iBAqbrB97N,GAAG8uD,aApbSpwD,EAAAhJ,KAAWqmO,mBAsb5B,SAASp7N,GACR5I,EAAW2I,YApbK,QAAe,mBAAW,6BAwblD,QAASy6N,GAAsB58N,GAE3ByB,GAAG0sD,aAEH,KAAK,GAAIxxD,KAAK8E,IAAG0hG,kBApbE,CAqbf1hG,GAAGsoD,OACHtoD,GAAGsoD,IAAItoC,OAAShgB,GAAG0hG,kBAAkBxmG,GAAG8kB,MACxC,IAAIktC,GApbG1yD,EAAS3F,SAAK2F,EAAA8xB,IAAAtsB,GAAA0sD,WAAA,UAAA1sD,GAAAsoD,IAAAtoC,OAqbhBktC,IACDltD,GAAG0sD,WAAW70D,KAAKmI,GAAGsoD,IAAItoC,QAIlChgB,GAAGggB,OApbShgB,GAAA0sD,WAAAh5B,KAAA,IAqbZ,IApbIz4B,IACA+gO,QAAQh8N,GAAA8C,KAAAo3D,gBAAkB7xC,KAC1B1U,WAAGoB,GAAY1U,OACf2f,OAAQhgB,GAAAggB,OAsbZq3C,GApbOutB,mBAAY3pF,GAAAwD,KAAmB,SAAAC,GACnB,MAAZA,EAAAlI,QAqbCwJ,GAAGqoD,eAAiB3pD,EAAIhJ,KAlb5B6I,KAEJxG,EAAA2I,YAAsB,QAAA,yBAAA,eAubnB,SAASC,GAnbhB5I,EAAS2I,YAAc,QAAY,mBAAW,gBAyb9C,QApbQ+4N,IAAU6B,EAAA/8N,GAqbd6uE,EApboBiB,sBAAQitJ,GAAA78N,KAAsB,SAAAC,GAqb9C,GApbkB,MAAdA,EAAAlI,OAAmB,CACnBwJ,GAAAstI,gBAAgB5uI,EAAAhJ,IAChB,KAAA,GAAQwF,KAAG8E,IAAKstI,gBAqbZttI,GAAGstI,gBAAgBpyI,GAAGy9C,YAAc34C,GAAGstI,gBAAgBpyI,GAAGykI,YAAc,IACpE3/H,GAAGstI,gBAAgBpyI,GAAGmuL,YAAc,IAAMrpL,GAAGstI,gBAAgBpyI,GAAGouL,mBAAqB,IAAMtpL,GAAGstI,gBAAgBpyI,GAAGusD,SAAW,IAC5HznD,GAAGstI,gBAAgBpyI,GAAGkxE,aAAe,OAAmBpsE,GAAGstI,gBAAgBpyI,GAAGquL,eAGtFhrL,SAEAxG,GAAW2I,YAAY,QAAS,IAnb5BrJ,WAAG,EACH+F,KAAK,QAubd,SAASuD,GACR5I,EAAW2I,YAAY,QApbS,IAqb5BrJ,WAAW,EACX+F,KAAM,SAalB,QAASk3O,MACL,GAAKt0O,GAAG+S,UAMD,CACH/S,GAAG0wD,WAnbAhR,KAAA1/C,GAAAo0G,aAqbCv/E,SAAU70B,GAAGo0G,aAAa33G,KAE9B,IAAI2B,GAAW,GAAIH,SACnBG,GAASF,OAAO,aAAc8B,GAAG0wD,UAAUhR,MAC3Cj4B,EAAqB2/D,iBAAiBhpF,EAAU4B,GAAGo4N,QAAQjnK,MAAOnxD,GAAG87D,mBAAmBxkC,cAAc74B,KAAK,SAASC,GAnb9F,MAArBA,EAAclI,QACLuB,EAAS2I,YAAe,UAAA,wBAAA,qBACvBV,GAAAu0O,UAAc,EAqbbv0O,GAAGsS,WAAY,EAnbjBtS,GAAA0wD,WAAc77B,SAAAn2B,EAAAhJ,OAsbZqC,EAAW2I,YAAY,QAAS,yBAA0B,sBAjbrE,SAAYC,GACR5I,EAAA2I,YAAmB,QAAA,mBAAA,2BA6ZxBV,IAAG0wD,WACChR,KAAM1/C,GApbCo0G,aAqbPv/E,SApbI70B,GAAAo0G,aAAW33G,MAsbnBuD,GApbGu0O,UAAS,EA6cpB,QAASC,MACL,IAAK,GAAIt5O,KAAK8E,IAAGw7N,mBAAoB,CAnbjCx7N,GAAAiV,QAqbAjV,GAAGiV,KApbK0jC,YAAE34C,GAAaw7N,mBAAUtgO,GAAAy9C,YAqb7B34C,GAAGiV,KAAKw3K,SAAWzsL,GAAGw7N,mBAAmBtgO,GAAGuxL,SAC5CzsL,GAAGiV,KApbK04D,aAAY3tE,GAAAw7N,mBAAgBtgO,GAAAyyE,YAqbxC,IAAIzgB,GApbM1yD,EAAS3F,SAAA2F,EAAgB8xB,IAAAtsB,GAAOy7N,qBAAsB,gBAAiBz7N,GAAGiV,KAAA04D,aAqb/EzgB,KACDltD,GAAGy7N,qBAAqB5jO,KAAKmI,GAAGiV,MAChCjV,GAAG07N,eAAe7jO,KAAKmI,GAAGiV,KAAK04D,eAIvC3tE,GAAGw7N,mBAAqB,KACxBx7N,GAAGstI,mBACHmsF,GAAsBz5N,GAAG8C,KAAK+e,gBAAgB/rB,WAIlD,QAAS6lO,IAAY7oN,GACjB,GAAIre,GAAMsD,EAAW8D,SAAW,iBAAmBiX,EAAI25K,QACvDhyL,GAAQ4E,KAAK5K,EAAK,UAGtB,QAASsvH,MACL/jH,GAAGu0O,UAAW,EACdv0O,GAAG+S,WAAY,EACf/S,GAAGyxD,QAAS,EACmB,MAA3BzxD,GAAGy7N,uBACHz7N,GAAGg9N,KAAO,KAGlB,QAAS35F,IApbEvwH,GAsbP,GAAIre,GAAM,EACV,IAAIuL,GAAGyxD,QAAUzxD,GAAG+S,UAChBte,EAAMsD,EAAW8D,SAAW,oCAAsCiX,MAC/D,CAnbX,GAASlV,GAAU,GAAAC,OAAAiV,EAAY4sC,OACpB3hD,KAAAiC,GAASo0G,aAAWr2G,MAsbvBtJ,IAAOC,OAAOwlB,KAAOxlB,OAAO4uI,WAAWnpH,gBAAgBvc,GAE3DnD,EAAQ4E,KAAK5K,EAAK,UAGtB,QAAS+oO,IApbS1qN,GAqbd,GAAI1T,GApbY7E,EAAa8E,MAqbzBhI,WApbU,EAqbViI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAAa,0DAnbjBE,WAAO,qBAqbHC,aAAc,KACd+H,KAAM,KAnbdoC,SAAS,SACDC,UAAM,EACNyQ,SACA3N,MAAW,WACX,MAAcuQ,MAyblB1T,GApbYM,OAAAjB,KAAW,SAAKq1D,GAqbxBhhD,EApbI+nN,YAAa/mK,GAqblB,cAGP,QAAS2gL,IApbO3hO,GAqbZ,GAAIH,GApbQtY,EAAAsY,QAAA,UAqbR,sDACItb,WApbG,EACH+F,KAAA,MAsbRuV,GAAQjT,OAAOjB,KAAK,WAEhBuB,GAAGy7N,qBAAqBnmM,OAAOxiB,EAAK,IAerC,cAGP,QAASwpM,MAnbLt8M,GAAAgT,YAAO,EAqbPhT,GAAG6xD,OAAQ,EACX7xD,GAAG8C,QAaP,QAAS4xO,MAML,GALA10O,GAAG2tE,aAAe3tE,GAAG07N,eAAehoM,KAAK,KAnb7C1zB,GAAAk8N,oBACIl8N,GAAAkjJ,cAqbAljJ,GAAGkjJ,WApbI5rH,aAAkBt3B,GAAK87D,mBAAcxkC,aAqb5Ct3B,GAAGk8N,iBApberkO,KAAGmI,GAAAkjJ,YAqbhBljJ,GApbG+S,UA8fD,CAEH,GApbIgmD,KAsbJ,KAAK,GAAI79D,KAAK8E,IAAG8uD,aACbiK,EAAOlhE,MACHqhE,WAAYl5D,GAAG8uD,aAAa5zD,GAAGg+D,WAnbpCM,eAAqBx5D,GAAG8uD,aAAW5zD,GAAAs+D,eAChC1S,OAAA9mD,GAAa8uD,aAAA5zD,GAAc4rD,QAwbjC,KApbI,GAAI5rD,KAAI8E,IAAA0hG,kBAqbR1hG,GAAG0hG,kBApbSxmG,GAAAiiB,IAAAnd,GAAmB0hG,kBAAAxmG,GAAAiiB,IAAAA,GAubnC,IAAIliB,IACAi6F,YApbYl1F,GAAAo4N,QAAAljI,YAqbZ3lC,MApbOvvD,GAAAuvD,MAqbPyzC,SApbIhjG,GAAAgjG,SAqbJgB,aAAkCruG,QAAnBqK,GAAGgkG,aAA6BhkG,GAAGgkG,aAAe,EACjED,UAAWl4E,WAAW7rB,GAAG+jG,WACzBnP,qBApbe50F,GAAAid,WAqbf6mF,IAAK9jG,GApbE8jG,IAqbPn7E,OApbI3oB,GAAAm4D,YAAWE,mBAAyB1vC,OAqbxC2zM,WAAYt8N,GAAGs8N,WACfC,WAAYv8N,GAAGu8N,WAnbhBoY,WAAO30O,GAAAu4B,KACVikM,SAAWx8N,GAAA2tE,aAqbP+uJ,mBAnbR1jK,aAAAD,EACAM,UAAAr5D,GAAAm4D,YAAAK,oBAAAc,WAsbQjR,gBACI8zK,SAAYn8N,GAAGk8N,kBAEnBr/M,eAAgB7c,GAAG0hG,kBACnBrhG,OAAQ0U,GAAc1U,OAI1Bkc,GAAuBg3N,uBAAuBt4O,GAAKwD,KAAK,SAASC,GAC1C,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,uBAAwB,qBAC1DV,GAAG+S,WAAY,EACf/S,GAAGyxD,QAAS,EACZzxD,GAAG28N,SAAU,IAEb5kO,EAAW2I,YAAY,QAAS,kCAC5BrJ,WAAW,EAnbX+F,KAAA,OAEJ4C,GAAA28N,SAAA,IAER,SAAQh8N,GAqbJ5I,EAAW2I,YAAY,QAAS,kCAnb5BrJ,WAAW,EAqbX+F,KAAM,aAvjBF,CAsbZ,IAAK,GAAIlC,KApbG8E,IAAG0hG,kBAqbX1hG,GAAG0hG,kBAAkBxmG,GAAG4hB,OAASo+M,EAAyBl7N,GAAG0hG,kBAAkBxmG,GAGnF,KAAK,GAAIA,KAAK8E,IAAG0hG,kBACb1hG,GAAG0hG,kBAAkBxmG,GAAGiiB,IAAMnd,GAAG0hG,kBAAkBxmG,GAAGiiB,IAAIA,GAlblE,IAAA47C,KAEI,KAAA,GAAA79D,KAAU8E,IAAO8uD,aACjBiK,EAAWlhE,MAqbHqhE,WAAYl5D,GAAG8uD,aAAa5zD,GAAGg+D,WAnb/BM,eAAex5D,GAAA8uD,aAAS5zD,GAAAs+D,eAC5B1S,OAAS9mD,GAAA8uD,aAAA5zD,GAAA4rD,QAybb,IApbI7rD,IACAnF,UAAUkK,GAAG8C,KAAK+e,gBAAa/rB,UAC/By5D,MAAAvvD,GAAAuvD,MACAyzC,SAAQhjG,GAAGgjG,SACXw5H,SAAAx8N,GAAW2tE,aAqbXq2B,aAAkCruG,QAAnBqK,GAAGgkG,aAA6BhkG,GAAGgkG,aAAe,EAnbjED,UAAG/jG,GAAA+jG,UACHp7E,OAAG3oB,GAAAm4D,YAAkBE,mBAAkB1vC,OACvCm7E,IAAG9jG,GAAK8jG,IACRw4H,WAAGt8N,GAAAs8N,WACHC,WAAQv8N,GAAAu8N,WACRhkM,KAAGv4B,GAAKu4B,KACRq8D,qBAAQ50F,GAAeid,WACvBo8C,UAAGr5D,GAAWm4D,YAAAK,oBAAAc,UAqbdtsC,SApbGhtB,GAAA8C,KAAAo3D,gBAAA7xC,KACHw0M,MAAA78N,GAAA8C,KAAW81N,eAAY/vM,GAqbvBi0M,qBACIrjK,YAAez5D,GAAGy5D,aAlb1BijK,mBACQ1jK,aAAAD,EACJM,UAAUr5D,GAAAm4D,YAAAK,oBAAAc,WAubVz8C,eAAgB7c,GAAG0hG,kBAlbnBr5C,gBAqbI8zK,SAAYn8N,GAAGk8N,kBAEnB77N,OAAQ0U,GAAc1U,QAjb1BjC,EAAQ,GAAAH,SAqbRG,GApbIF,OAAY,aAAK8B,GAAAo0G,cAqbrBh2G,EApbIF,OAAW,OAAQvB,KAAAqkB,UAAa/lB;AAqbpCshB,EApbqB+2N,oBAAAl1O,GAAAK,KAAA,SAAAC,GACC,MAAlBA,EAAAlI,QACAuB,EAAW2I,YAAK,UAAiB,qBAAA,cACjCV,GAAA+S,WAAkB,EAClB/S,GAAA28N,SAAgB,EAChB38N,GAAAyxD,QAAc,IAsbV15D,EAAW2I,YAAY,QAAS,4BAnbpCrJ,WAAU,EACR+F,KAAY,OAEX4C,GAAA28N,SAAA,IAsbJ,SApbSh8N,GACR5I,EAAG2I,YAAe,QAAA,4BACfrJ,WAAK,EACL+F,KAAK,UAufpB,QApbQg3O,MAqbJ73N,EAAuBC,cAAcxc,GAAGo4N,QAAQjnK,OAAO1yD,KAAK,SAASC,GAC9C,MAAfA,EAAIlI,QACJwJ,GAAGwiG,YAAc9jG,EAAIhJ,KAAKinB,YAC1B3c,GAAG0hG,kBAAoB1hG,GAAGwiG,YAAY3lF,eAnbzC7c,GAAA4c,mBAAyB5c,GAAAwiG,YAAS5lF,mBACnC5c,GAAA40O,WAAYl2O,EAAAhJ,KAAAk/O,WACT50O,GAAQyxD,UAAQ,GACf4iL,KACJr0O,GAAAsS,WAAa,GAEVva,EAAU2I,YAAa,QAAU,yBAAS,YAsb9C,SAASC,GAnbhB5I,EAAgB2I,YAAK,QAAA,mBAAA,aAwbrB,QAAS2zO,MACLr0O,GAAGu0O,UApbS,EAqbZv0O,GAAGid,WAAa,CAChB,KApbI,GAAA/hB,KAAQ8E,IAAAqS,YACJrS,GAAAqS,YAAUnX,GAAAiX,WAAAnS,GAAAo4N,QAAAjmN,YAqbVnS,GAAG8C,KApbCqQ,gBAAkBnT,GAAAqS,YAAAnX,GAwb9B+0G,GApboBjwG,GAAAo4N,QAAWjmN,UAAK,WAqbhC,IAAK,GAAIjX,KApbG8E,IAAG2hB,YAqbP3hB,GAAG2hB,YApbCzmB,GAAApF,WAAAkK,GAAAo4N,QAAAtiO,YAqbJkK,GAAG8C,KApbC+e,gBAAW7hB,GAAY2hB,YAAWzmB,GAwb9Cu+N,IAAsBz5N,GAAGo4N,QAAQtiO,UAAW,WACxC,GAAIutD,GAAOrjD,GAAG40O,WAAW,SAAU55O,MAAM,IAnb1C,KAAA,GAAAE,KAAA8E,IAAAstI,gBACA,IAAA,GAAAnjI,KAAkBk5C,GAAA,CAqbT,GAAIonI,GAAY7jL,SAASy8C,EAAIl5C,GACzBnK,IAAGstI,gBAAgBpyI,GAAGyyE,eAAiB88G,IACvCzqL,GAAG07N,eAAe7jO,KAAKmI,GAAGstI,gBAAgBpyI,GAAGyyE,cAnb7C3tE,GAAAy7N,qBAAU5jO,KAAAmI,GAAAstI,gBAAApyI,OAM1B,KAAA,GAAQA,KAAG8E,IAAAu4N,YACXv4N,GAAAu4N,YAAqBr9N,GAAA2tB,IAAA7oB,GAAY40O,WAAA/X,QACjC78N,GAAA8C,KAAA81N,eAAgC54N,GAAAu4N,YAAer9N,GAI/C,KAAI,GAAAA,KAAA8E,IAAa0hG,kBAAS,CAGtB,GAkbA1hG,GAAG0hG,kBAAkBxmG,GAAG4hB,OAASngB,KAAKC,MAAMoD,GAAG0hG,kBAAkBxmG,GAAG4hB,QAlb9CnnB,QAAtBqK,GAAA0hG,kBAAsBxmG,GAAAgiB,UAA0DvnB,QAAtCqK,GAAa0hG,kBAAQxmG,GAAAiiB,KAA8Bnd,GAAA0hG,kBAAAxmG,GAAAmiB,OAAA,EAAA,CAC7F,GAAAD,GAAoBpd,GAAK0hG,kBAAAxmG,GAAuBmiB,MAqb5Crd,IAAG0hG,kBAAkBxmG,GAAGoV,OAAW,EAAkB,IAAOtQ,GAAG0hG,kBAAkBxmG,GAAG,SAAY,IAAS8E,GAAG0hG,kBAAkBxmG,GAAG,IAAO,EAAA,KAAc,GAlbtJ,KAAA,GAAA2c,KAAW7X,IAAK0/N,QACjB1/N,GAAA0/N,QAAkB7nN,GAAIsF,MAAAnd,GAAA0hG,kBAAAxmG,GAAAiiB,MACrBnd,GAAA0hG,kBAAAxmG,GAAAiiB,IAAAnd,GAAA0/N,QAAA7nN,QAubG,IAAwCliB,QAApCqK,GAAG0hG,kBAAkBxmG,GAAGgiB,UAAwDvnB,QAA/BqK,GAAG0hG,kBAAkBxmG,GAAGiiB,IAAkB,CAnblGnd,GAAA0hG,kBAAKxmG,GAAAoV,OAAAtQ,GAAA0hG,kBAAAxmG,GAAA,SAAA,IAAA8E,GAAA0hG,kBAAAxmG,GAAA,IAAA,EAAA,KAAA,GAsbL,KAAK,GAAI2c,KAAK7X,IAAG0/N,QACT1/N,GAAG0/N,QAAQ7nN,GAAGsF,MAAQnd,GAAG0hG,kBAAkBxmG,GAAGiiB,MAC9Cnd,GAAG0hG,kBAAkBxmG,GAAGiiB,IAAMnd,GAAG0/N,QAAQ7nN,IA/arD,IAAG,GAAA1N,KAAAnK,IAAc8c,OACd9c,GAAAknD,KAAAlnD,GAAA8c,OAAmB3S,GAAK48C,MAElB,KAAL/mD,GAAAknD,KACRlnD,GAAW2/N,QAAA,EAsbH3/N,GAAG2/N,QAAS,EAlb5B,IAAS,GAAA3pM,KAAAh2B,IAAA0hG,kBAAgC,CACrC,GAAApkF,GAAAtd,GAAA0hG,kBAAA1rE,GAAA1lB,KACGtQ,IAAAid,YAAaK,EAEhB,IAAS,GAAApiB,KAAQ8E,IAAAkoB,YACVloB,GAAMkoB,YAAAhtB,GAAAmtB,MAAAroB,GAAA40O,WAAA5nN,WACFhtB,GAAA8C,KAASo3D,gBAAGl6D,GAAkBkoB,YAAGhtB,GA0bxC,KAAK,GAAIA,KAAK8E,IAAGsoB,gBAnbTtoB,GAAGsoB,gBAAgBptB,GAAAstB,QAAAxoB,GAAA40O,WAAApsN,SACrBxoB,GAAAm4D,YAAAC,iBAAAp4D,GAAAsoB,gBAAAptB,GAwbN29N,GAAO,WAnbX,IAAW,GAAA39N,KAAA8E,IAAAk7C,QACCl7C,GAAAk7C,QAAWhgD,GAAKwgD,uBAAA17C,GAAA40O,WAAAl5L,wBACjB17C,GAAA8C,KAAA05C,YAAqBx8C,GAAAk7C,QAAAhgD,GAIxB89N,GAAuBh5N,GAAA8C,KAAS+e,gBAAAxL,UAA0BrW,GAAA40O,WAAAl5L,sBAAA,WAqbtD,GAAI17C,GAAG40O,WAAW14L,YAAcl8C,GAAG40O,WAAW/iN,cAAe,CACzD,IAAK,GAAI32B,KAAK8E,IAAG47C,aAnbhB57C,GAAA47C,aAAA1gD,GAAAghD,YAAAl8C,GAAA40O,WAAA14L,aACFl8C,GAAY8C,KAAA66C,iBAAS39C,GAAA47C,aAAoB1gD,GAwbxCg+N,GAAoCl5N,GAAG40O,WAAW14L,WAAY,WAnbzE,GAAAl8C,GAAsB40O,WAAO/iN,cAAU,CACxB,IAAA,GAAA32B,KAAA8E,IAAAo8C,gBACQp8C,GAAAo8C,gBAAAlhD,GAAA22B,eAAA7xB,GAAA40O,WAAA/iN,gBACC7xB,GAAI8C,KAAA+6C,oBAAA79C,GAAAo8C,gBAAAlhD,GAGdk+N,GAAuCp5N,GAAG40O,WAAA/iN,oBA6brD,KAAK,GAAI32B,KAAK8E,IAAGyoB,eACTzoB,GAAGyoB,eAAevtB,GAAGytB,QAAU3oB,GAAG40O,WAAWjsN,SAnbjD3oB,GAAKm4D,YAAAE,mBAAAr4D,GAAAyoB,eAAAvtB,GAwbT,KAAK,GAAIA,KAAK8E,IAAGgoB,mBACThoB,GAAGgoB,mBAAmB9sB,GAAG6d,IAAM/Y,GAAG40O,WAAW9nN,iBAC7C9sB,GAAGm4D,YAAYoG,iBAAmBv+D,GAAGgoB,mBAAmB9sB,GAIhEigO,GAAsB,WAnb3B,IAAc,GAAAjgO,KAAS8E,IAAAqoD,eACtBroD,GAAAqoD,eAAAntD,GAAAo8B,cAAAt3B,GAAAwiG,YAAAlrE,eACGt3B,GAAe87D,mBAAmB97D,GAAAqoD,eAAAntD,MAMjC2gO,EAAS,WACT,IAAA,GAAa3gO,KAAA8E,IAAAm6D,gBAqbDn6D,GAAGm6D,gBAAgBj/D,GAAGo+D,WAAat5D,GAAG40O,WAAWv7K,YAnbnDr5D,GAAAm4D,YAAAK,oBAAAx4D,GAAAm6D,gBAAAj/D,GAOd8E,IAASy5D,YAAOz5D,GAAA4c,kBAChB,IAAAi4N,GAAqBl4O,KAAAC,MAAAoD,GAAA40O,WAA2BE,kBAkfxC,OAjfA90O,IAAA8uD,aAAQ+lL,EAAgB77K,aAqbxBh5D,GAAG0wD,UApbY1wD,GAAAwiG,YAAY/yC,cA2b3BzvD,GAAGijG,YAAcjjG,GAAGo4N,QAAQn1H,YAnbhCjjG,GAAAuvD,MAAcvvD,GAAAo4N,QAAA7oK,MACVvvD,GAAAgjG,SAAWhjG,GAAAo4N,QAAYp1H,SAqbWrtG,QAA9BqK,GAAG40O,WAAW5wI,eACdhkG,GAAG69N,IAAM,IACT79N,GAAGgkG,aAAehkG,GAAG40O,WAAW5wI,cAjb3ChkG,GAAA+jG,UAAiB/jG,GAAA40O,WAAA7wI,UACR/jG,GAAG8jG,IAAA9jG,GAAA40O,WAAoB9wI,IACvB9jG,GAAAs8N,WAAAt8N,GAAA40O,WAAAtY,WACFt8N,GAAAu8N,WAAiBv8N,GAAA40O,WAAArY,WACbv8N,GAAAu4B,KAAAv4B,GAAWo4N,QAAG7/L,KAgBpB/9B,EAAAqI,QAAW7C,GAAA0hG,kBAAW,SAAuB9sE,GAC1C,GAAKuoM,GAAAvoM,EAAA9X,OAqbEsgN,IACJ5iO,GAAOqI,QAAQs6N,EAAc,SAAS75H,GAnb1C,GAAAqL,GAAAn0G,EAAA6P,KAAA+yN,GACEx7H,mBAAA0B,EAAA1B,qBAEFq5H,IACL,IAAAtsH,EACOA,EAAA/M,mBAAA0B,EAAA1B,mBAqbU+M,EAAQj5G,KAAO8E,EAAO4yD,OAAOuhD,EAAQj5G,KAAMykO,EAAoB72H,QAC5D,CAnbR,GAAA23H,KACnBA,GAAAr5H,mBAAA0B,EAAA1B,mBACUq5H,EAAAvlO,QACUulO,EAAWvlO,KAAAmC,KAAAsiO,EAAA72H,IACV85H,EAAWvlO,KAAAojO,MAGlBrmM,EAAG9X,OAAasgN,IA0bVp9N,GAAG,wBAS3B,QApbQkkB,MAqbJlqB,EApbI8F,GAAA/H,EAAUyE,eAublB,QAASgtE,MACL,GAAIvuE,IACAi6F,YAAal1F,GAAGo4N,QAAQljI,YACxBt/F,OAAQoK,GAAGs4N,WAEXl5N,EAAgB7E,EAAU8E,MAnb9BhI,WAAc,EACViI,eAAI,cACLC,gBAAW,aAqbVrK,YAAa,yDACbE,WAAY,oBAnbpBC,aAAS,KACD+H,KAAA,KACAoC,SAAA,SAqbAC,UApbI,EAqbJyQ,SACI3N,MAAO,WAnbP,MAAOtH,MAybfmE,GAAcM,OAAOjB,KAAK,aAAe,cAG7C,QAASrG,MACL,GAAI6C,IACAi6F,YAAal1F,GAAGo4N,QAAQljI,YACxBt/F,OAAQoK,GAAGs4N,UACXyc,SAAS,GAGT31O,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EAnbZiI,eAAW,cAqbVC,gBAAiB,aACjBrK,YAAa,yDAnbrBE,WAAkB,oBACXC,aAAa,KACb+H,KAAA,KACAoC,SAAO,SAqbNC,UAAU,EACVyQ,SAnbL3N,MAAA,WACW,MAAMtH,MAybhBmE,GApbOM,OAAAjB,KAAe,aAAA,cAub1B,QAASqlB,MAnbT,GAAA7oB,IACOi6F,YAAAl1F,GAAeo4N,QAAGljI,YAClBt/F,OAAAoK,GAAAs4N,UACAyc,SAAA,GAEA31O,EAAiB7E,EAAQ8E,MACxBhI,WAAI,EAqbJiI,eAAgB,cAnbhBC,gBAAiB,aAqbjBrK,YApbO,yDAqbPE,WAAY,oBACZC,aAAc,KAnbd+H,KAAK,KAqbLoC,SApbO,SAqbPC,UAAU,EAnbVyQ,SAqbI3N,MAAO,WAnbN,MAAStH,MAyblBmE,GAAcM,OAAOjB,KAAK,aAAe,cAG7C,QAAS0yE,MACL,GApbIl2E,IAqbAi6F,YApbIl1F,GAAWo4N,QAAQljI,YAqbvBt/F,OApbIoK,GAAOs4N,WAsbXl5N,EApbc7E,EAAG8E,MAqbjBhI,WApbI,EAqbJiI,eApbe,cAqbfC,gBApbe,aAqbfrK,YApbY,yDAqbZE,WApbI,oBAqbJC,aApbI,KAqbJ+H,KApbI,KAqbJoC,SApbI,SAqbJC,UApbI,EAqbJyQ,SAnbI3N,MAAO,WACP,MAAAtH,MAybRmE,GApbYM,OAAAjB,KAAc,aAAY,cAub1C,QAASyyE,MACL,GAAIj2E,IACAi6F,YApbIl1F,GAAAo4N,QAAgBljI,YAqbpBt/F,OApbQoK,GAAAs4N,WAsbRl5N,EApbY7E,EAAc8E,MAqb1BhI,WAAW,EACXiI,eAAgB,cAnbhBC,gBAAe,aACfrK,YAAS,yDACTE,WAAS,oBACTC,aAAA,KAqbA+H,KApbI,KAqbJoC,SApbQ,SAqbRC,UApbQ,EAqbRyQ,SACI3N,MApbO,WAqbH,MApbGtH,MAybfmE,GApbYM,OAAGjB,KAAU,aAAA,cAub7B,QAASiT,MACL,GAAK1R,GAAG+S,UAuBD,CACH,GApbIJ,GAAAtY,EAAkBsY,QAAA,eAClB,yFAGAtb,WAAW,EACX+F,KAAA,MAsbJuV,GApbIjT,OAAAjB,KAAe,WACfuB,GAAAyxD,QAAU,EACVzxD,GAAA+S,WAAA,EAsbAmB,KACAmgO,WAxdI,CAqbR,GAAI1hO,GApbUtY,EAAAsY,QAAA,eAqbV,yFAGItb,WAAW,EAnbf+F,KAAS,MAubbuV,GApbIjT,OAAOjB,KAAK,WAqbZuB,GAAG8C,QACH9C,GAAG0hG,qBACH1hG,GAAGm4D,eACHn4D,GAAGi8N,kBACHj8N,GAAGgT,YAAa,EAChBkB,KAnbJlU,GAAK29C,iBAAY,KACb39C,GAAG69C,oBAAqB,KAqbxB79C,GAAG6+C,iBAAmB,KACtB7+C,GAAG8C,KAAK26N,uBAnbRz9N,GAAA+wI,wBAAM,KACN/2I,EAAA8F,GAAA/H,EAAgByE,kBAwc5B,QAASwqD,MACLxsD,EAAOqI,QAAQ7C,GAAG4mD,YAAa,SAASM,GACpCA,EAAKo6C,kBAAoB,KACzBp6C,EAAKJ,YAIb,QAASpB,MACL1lD,GAAG8C,KAAK61N,sBApbgB,KAqbxB34N,GAAGgmD,gBACHgB,KACAhnD,GAAG8C,KAAKsgD,aApbe,KAqbvBpjD,GAAG8zF,YAGP,QAAStuC,MACLE,KACA1lD,GAAG8C,KApbI+7C,iBAAc,KAqbrB7+C,GAAG8C,KApbKiuI,wBAAuB,KAqb/B/wI,GAAGu8C,gBAGP,QAAS2N,MACL1E,KACAE,KACA1lD,GAAG8C,KAAK+6C,oBAAsB,KAC9B79C,GAAGo8C,mBAGP,QApbQ6N,MAqbJC,KACA1E,KACAE,KACA1lD,GAAG8C,KApbK66C,iBAAgB,KAqbxB39C,GAAG47C,gBAIP,QAAS+I,MACLsF,KACAC,KACA1E,KACAE,KACA1lD,GAAGm4D,YAAYE,mBAAqB,KACpCr4D,GAAG8C,KAAK05C,YAAc,KAnb1Bx8C,GAAAk7C,WAubA,QApbShnC,MAqbLlU,GAAGg1O,aApbQ5gO,gBA50Cf,GAjbIpU,IAAIC,IAkbRD,IAAGqU,kBACChJ,MAjbI,IAmbJA,MAjbI,KAmbJA,MAAS,KAETA,MAAS,KAETA,MAjbQ,MAmbZrL,GAAGsU,SAjbStU,GAAIqU,gBAAc,GAkb9BrU,GAAGuU,YAjba,EAkbhBvU,GAAGwU,qBAjbgB,SAAAC,GAkbfzU,GAAGuU,YAjbYE,GAmbnBzU,GAAGgT,YAAa,EAChBhT,GAAG+S,WAAY,EACf/S,GAAGyxD,QAAS,CACZ,IAAIqnK,KAjbW,CAkbf94N,IAAG6xD,OAAQ,EACX7xD,GAAGsS,WAAY,EACftS,GAAGu0O,UAjbI,EAkbPv0O,GAAGs8N,WAjbK,GAkbRt8N,GAAGu8N,WAAa,CAChB,IAAIxnN,IAAgB5a,EAAsBgG,uBACtCgS,GAAY4C,GAAcJ,gBAAgBxC,SAC9Cpa,GAAW2c,SAAU,EA/arB1U,GAAAiwG,sBAAwBA,EAkbxBjwG,GAAGivI,uBAjbsBA,EAkbzBjvI,GAAG0uG,cAjbeA,EAkblB1uG,GAAGomD,YAjbSA,EAkbZpmD,GAAG64N,OAjbSA,EAkbZ74N,GAAGg5N,0BAjbmBA,EAkbtBh5N,GAAGs5N,4BAjb8BA,EAkbjCt5N,GAAGu5N,gCAAkCA,EACrCv5N,GAAGk5N,oCAAsCA,EACzCl5N,GAAGo5N,kCAjbmCA,EAkbtCp5N,GAAGutI,gBAjbSA,EAkbZvtI,GAAGq6D,cAjbSA,EAkbZr6D,GAAG67N,eAjbSA,EAkbZ77N,GAAGs0O,aAjbSA,GAkbZt0O,GAAGy5N,sBAjbqBA,GAkbxBz5N,GAAGm7N,sBAjbuBA,EAkb1Bn7N,GAAG45N,UAjbSA,EAkbZ55N,GAAGy6N,SAjbSA,EAkbZz6N,GAAGixE,OAjbSA,EAkbZjxE,GAAGg5G,QAjbSA,EAkbZh5G,GAAGw0O,eAjbaA,GAkbhBx0O,GAAG27N,YAAcA,GACjB37N,GAAGqjI,SAAWA,GACdrjI,GAAGw9N,SAAWA,GACdx9N,GAAGq0O,cAAgBA,GACnBr0O,GAAGy0O,kBAjbmBA,GAkbtBz0O,GAAG0R,OAASA,GACZ1R,GAAGs8M,OAjbQA,GAkbXt8M,GAAG00O,cAjbeA,GAkblB10O,GAAGwpE,gBAjbgBA,GAkbnBxpE,GAAG5H,OAjbSA,GAkbZ4H,GAAG+jH,KAAOA,GACV/jH,GAAGkkB,KAAOA,GACVlkB,GAAGmxE,SAjbKA,GAkbRnxE,GAAG8jB,QAjbSA,GAkbZ9jB,GAAGkU,UAAYA,GACflU,GAAGkxE,MAAQA,GACXlxE,GAAGgd,MAAQA,EACXhd,GAAGstI,mBACHttI,GAAG07N,kBACH17N,GAAG8C,QACH9C,GAAGm4D,eAEHn4D,GAAGy7N,wBACHz7N,GAAG0hG,qBACH1hG,GAAG8zB,SAjbQ/e,GAAcoqC,UAkbzBjtC,IAEAlS,GAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAC3GkP,aAAc,iCAAkClP,GAAI,IAI1D/Y,GAAG0/N,UAjbYviN,IAAG,IAAAA,IAAW,IAAAA,IAAA,KAAAA,IAAA,KAi3C7B1S,EAAOuqG,YAAc,SApbS74G,GAqbtBA,IACA6D,GAAGo0G,aApbaj4G,EAAQsN,OAAGiE,MAAA,KA2jBnC1N,GAAG49N,kBApbiB,SAAQC,IACxBA,EAAO,IAASA,EAAA,KAChBxjO,EAAO8C,OAAU,eAAA,2EAqbT9F,WAAW,EAnbX+F,KAAA,OAEJ4C,GAAAgkG,aAAiB,sdArvB7B5vG,QACKC,OAAO,yBACPe,WAAW,sBAAuB++O,MA0wD3C,WACI,YAOA,SAASc,GApbqBl9O,EAAWyC,EAAUH,EAAMN,EAAAC,EAAAG,EAqbrDsQ,EAAQxQ,EApbSQ,EAAS8hB,EAAoBvK,EAAAJ,EAAAylD,GAud9C,QAASnlD,KACLlS,EAAGshB,eAAkBC,SAAU,QAASC,SAAU,IAAOD,SAAU,sCAAuCC,SAAU,IAAOD,SAAU,gCAAiCC,SAAU,IAAOD,SAAU,WAAYC,SAAU,IACjND,SAAU,UAAWC,SAAU,IAAOD,SAAU,sBAAuBC,SAAU,IAEvFxP,EApbaI,mBAAoBD,GAAA1T,KAAA,SAAAC,GACX,MAobdA,EApbIlI,QAqbJwJ,EAAGqS,YAAc3T,EAAIhJ,KAnbrBsK,EAAAsS,WAAe,GAsbfva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAASC,GAnbR5I,EAAS2I,YAAQ,QAAA,mBAAmB,aAyb5C,QAASuvG,GApbsB99F,EAAW5T,GAqblC4T,GACAnS,EAAG8C,KAAK+e,gBAAkB,KAC1B7hB,EAAGsS,WAAY,EACfV,EAAuB8P,eAAevP,GAAW1T,KAAK,SAASC,GACxC,MAAfA,EAAIlI,QACJwJ,EAAG2hB,YAAcjjB,EAAIhJ,KAnbpBsK,EAAK2hB,YAAGxmB,OAAiB,GACvBd,EAAA8C,OAAgB,UAAG,4BAAgC6C,EAAA8C,KAAAqQ,gBAAA84B,aACnD50C,WAAY,EAqbP+F,KAAM,OAjbf4C,EAAAsS,WAAW,EACT/T,GACGA,KAsbJxG,EAAW2I,YAAY,QAAS,yBAA0B,aAE/D,SAASC,GAnbR5I,EAAA2I,YAAA,QAA6B,mBAAqB,gBAubtDV,EAAG8C,KAAK+e,gBApbe,KAqbvB7hB,EAAG2hB,gBAKX,QAASuzN,GApbsBp/O,GAqbvBA,IACoB,IAAhBkK,EAAGwhB,SACHjF,EAAuBi3N,YApbS19O,GAAA2I,KAAA,SAAyBC,GAqb9B,MAAfA,EAAIlI,QACJwJ,EAAGm1O,cAAgBz2O,EAAIhJ,MAnbnBsK,EAAAm1O,cAAAh6O,OAAA,GAqbAd,EAAQ8C,OAAO,UAAW,0CAA4C6C,EAAG8C,KAAK+e,gBAAgBS,aAC1FjrB,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,qBAGlE,SApbOC,GAqbH5I,EAAW2I,YAAY,QAAS,mBAAoB,sBAErC,IAAhBV,EAAGwhB,SAnbVjF,EAAiBk3N,UAAA39O,GAAoB2I,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,QACAwJ,EAAAkiB,KAAA,EAqbCliB,EAAGmiB,YAAc3nB,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,IACrDoK,EAAGoiB,gBAAkB5nB,EAAOyC,OAAOyB,EAAIhJ,MAAQE,OAAU,IACzDoK,EAAGsS,WAAY,GAQfva,EAAW2I,YAAY,QAAS,yBAA0B,oCAjblE,SAASC,GACL5I,EAAO2I,YAAgB,QAAG,mBAAgB,qCAsb3B,IAAhBV,EAAGwhB,SACVjF,EAAuBm3N,eAAe59O,GAAW2I,KAAK,SAASC,GACpC,MAAfA,EAAIlI,QACJwJ,EAAGm1O,cAAgBz2O,EAAIhJ,KACvBsK,EAAGsS,WAAY,GACVtS,EAAGm1O,cAAch6O,OAAS,GAnbpCd,EAAiB8C,OAAA,UAAA,0CAAA6C,EAAA8C,KAAA+e,gBAAAS,aACLjrB,WAAW,EACvB+F,KAAe,QAwbVrF,EAAW2I,YAAY,QAAS,yBAA0B,wBAGlE,SAASC,GAnbN5I,EAAA2I,YAAiB,QAAQ,mBAAA,yBAEX,IAAdV,EAAAwhB,SAqbPjF,EApbsBo3N,YAAA79O,GAAgB2I,KAAW,SAAAC,GAChC,MAANA,EAAAlI,QACAwJ,EAAAm1O,cAAkBz2O,EAAAhJ,KAqbjBsK,EAAGsS,WAAY,GACVtS,EAAGm1O,cAAch6O,OAAS,GAnbpCd,EAAe8C,OAAA,UAAW,0CAAA6C,EAAA8C,KAAA+e,gBAAAS,aACbjrB,WAAW,EACpB+F,KAAa,QAwbZrF,EAAW2I,YAAY,QAAS,yBAA0B,uBAGlE,SAASC,GACL5I,EAAW2I,YAAY,QAAS,mBAAoB,wBAErC,IAAhBV,EAAGwhB,UACVjF,EAAuBq3N,UAAU99O,GAAW2I,KAAK,SAASC,GAC/B,MAAfA,EAAIlI,QACJwJ,EAAGm1O,cAAgBz2O,EAAIhJ,KACvBsK,EAAGsS,WAAY,GACVtS,EAAGm1O,cAAch6O,OAAS,GAC3Bd,EAAQ8C,OAAO,UAAW,0CAA4C6C,EAAG8C,KAAK+e,gBAAgBS,aAC1FjrB,WAAW,EAnbZ+F,KAAG,QAIVrF,EAAI2I,YAAiB,QAAK,yBAA4B,mCAub9D,SApbQC,GAqbJ5I,EApbQ2I,YAAS,QAAA,mBAAA,qCA2brC,QAAS09N,GAAQtrN,GACb,GApbwB,OAobpBA,EAAIsiO,cApbgB,CAqbpB,GAAI1/O,IACAqd,WAAW,EACXslN,QApbQvlN,EAqbR2+C,QAAQ,EAGZz3D,GAAO8F,GAAG,mBACNpK,KAAMA,QAEP,CACH,GAAIA,IACAqd,WAAW,EACXslN,QAASvlN,EACT2+C,QAAQ,EAGZz3D,GAAO8F,GAAG,wBAnbTpK,KAAOA,KA0bhB,QApbQitB,KAqbJ3iB,EAAGkiB,KApbC,EAqbJliB,EAAGwhB,SAAW,EAnbdxhB,EAAAm1O,cAAIn1O,EAAgBmiB,YAubxB,QApbQS,KAqbJ5iB,EAAGkiB,KApbC,EAqbJliB,EAAGwhB,SApbC,EAqbJxhB,EAAGm1O,cApben1O,EAAAoiB,gBA0btB,QAAS8xN,GApbOphO,GAqbZ,GAAIH,GAAUtY,EAAQsY,QAAQ,eAC1B,mDACItb,WAAW,EACX+F,KAAM,MAGduV,GAAQjT,OAAOjB,KAAK,WAnbxB8d,EAAkB23N,SAAAphO,EAAAoiF,aAAAz2F,KAAA,SAAAC,GACJ,MAAAA,EAAAlI,QACNuB,EAAgB2I,YAAQ,UAAA,uBAAA,cAChBw0O,EAAGl1O,EAAA8C,KAAA+e,gBAAA/rB,YAsbHiC,EAAW2I,YAAY,QAAS,yBAA0B,kBAxO1E,GAAIV,GAAKC,IAETD,GAAGqU,kBACChJ,MAAS,IAETA,MAAS,KAETA,MAAS,KAETA,MAAS,KAETA,MApbQ,MAsbZrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GAnb3BzU,EAAAuU,YAAiBE,GAubzBzU,EAAGsS,WApbS,EAqbZtS,EAAGgT,YApba,EAqbhBjb,EAAW2c,SApbQ,CAqbnB,IAAIK,GAAgB5a,EAAsBgG,uBACtCgS,EApbY4C,EAAcJ,gBAAYxC,SAqb1CnS,GAAGo+N,QAAUA,EACbp+N,EAAGk0O,SAAWA,EACdl0O,EAAG2iB,UAAYA,EACf3iB,EAAGk1O,wBAA0BA,EAC7Bl1O,EAAGiwG,sBApbuBA,EAqb1BjwG,EAAG4iB,sBApbgBA,EAqbnB5iB,EAAGwhB,SAAWxnB,EAAOvE,OAAOG,OAE5Bsc,IAuLAlS,EAAGkkB,KApbK,WAqbJlkB,EAAGkiB,KApbC,qMAqNZ9tB,QACKC,OAAO,yBACPe,WAAW,2BAA4B6/O,MAuPhD,WACI,YAOA,SAASI,GAAmB5qO,EAAQxQ,EAASF,EAAOhC,EAAYwK,EAAO/H,EAAQ8hB,EAAmBjiB,EAASL,EAAQG,GAC/G,GApbI6F,GAAAC,IAqbJD,GAAGsU,SAAW,KACdtU,EAAGgT,YAAa,EAnbhBhT,EAAA+S,WAAS,EAqbT/S,EAAGsS,WApbW,EAqbdva,EApbQ2c,SAAa,CACLva,GAAGgG,sBAsbnBH,GAAG+9N,gBAAkB,WAnbbx7N,IACAA,EAAAy7N,aAAWh+N,EAAAs1O,IAAAtX,cAsbf1hN,EApbIrN,MAAiB1M,EAAAy7N,eAwbzBh+N,EAAG0R,OApbK,WAqbJ4K,EApbciB,QAAA,+IA6ZtBnpB,QACKC,OAAO,yBACPe,WAAW,qBAAsBigP,MA0B1C,WACI,YAOA,SApbQE,GAAU9qO,EAAAxQ,EAAAF,EAAAhC,EAAAwK,EAAA/H,EAAA8hB,EAAAjiB,EAAAL,EAAAuiB,EAqbdpiB,GACA,GAAI6F,GApbIC,IAqbRD,GAAGsU,SAAW,KACdtU,EAAGgT,YApbK,EAqbRhT,EAAG+S,WApbK,EAqbR/S,EAAGsS,WApbK,EAqbRva,EApbQ2c,SAAA,CACAva,GAAagG,sBAsbrBH,GAAGw1O,eApbK,WAqbJ,GApbIv6O,IACAi6F,YAAU3yF,EAAA2yF,YACV0O,YAAU5jG,EAAA4jG,YAEC,KAobXrhG,EApbI3M,OAqbJ2mB,EApbes3N,kBAAA54O,GAAAwD,KAAA,SAAAC,GAqbQ,MAAfA,EAAIlI,QACJuB,EAAW2I,YAAY,UAAW,mBAAoB,cACtD4b,EAAkBrN,QAClBjV,EAAO8F,GAAG,uBAEV/H,EAAW2I,YAAY,QAAS,YAAa,eAlbpD,SAAQC,GACT5I,EAAM2I,YAAA,QAAA,yBAAA,gBAubiB,IAAjB6B,EAAM3M,QAAiC,IAAjB2M,EAAM3M,QAAkC,GAAjB2M,EAAMwyO,QAmBlC,IAAjBxyO,EAAM3M,QAAiC,IAAjB2M,EAAM3M,QAAkC,GAAjB2M,EAAMwyO,QAva3C,IAAVxyO,EAAG3M,OAqbP2mB,EApbOw3N,WAAoB94O,GAAAwD,KAAA,SAAAC,GACN,MAAdA,EAAAlI,QACAuB,EAAA2I,YAAiB,UAAA,cAAA,cACjB4b,EAAarN,QAChBjV,EAAA8F,GAAA,uBAEG/H,EAAA2I,YAAsB,QAAA,YAAA,eAsb1B,SApbSC,GACR5I,EAAG2I,YAAA,QAA0B,yBAAA,gBAG9B,IAAA6B,EAAA3M,QACH2mB,EAAsB03N,QAAQh5O,GAAAwD,KAAA,SAAAC,GAC1B,MAAAA,EAAAlI,QAqbIuB,EAAW2I,YAAY,UAAW,UAAW,cAnbjD4b,EAAArN,QACIjV,EAAA8F,GAAA,yBAsbA/H,EAAW2I,YAAY,QAAS,YAAa,eAElD,SApbIC,GACH5I,EAAG2I,YAAY,QAAA,yBAAA,gBAiZnB6b,EAAuBy3N,SAAS/4O,GAAKwD,KAAK,SAAUC,GAnb1C,MAATA,EAASlI,QACNuB,EAAW2I,YAAA,UAAA,WAAA,cACX4b,EAAkBrN,QAClBjV,EAAA8F,GAAA,uBAEA/H,EAAA2I,YAAA,QAAA,YAAA,eAsbD,SApbKC,GAqbJ5I,EAAW2I,YAAY,QAAS,yBAA0B,gBAhd9D6b,EAAgBu3N,UAAe74O,GAAAwD,KAAA,SAAAC,GAC/B,GAAAA,EAAWhJ,KAAAke,aAAA,EACX7b,EAAgB2I,YAAA,UAAA,WAAA,cAChB4b,EAAiBrN,QACjBjV,EAAa8F,GAAA,8BACb,IAAYpB,EAAAhJ,KAAAke,aAAA,GAAAje,QAAA+I,EAAAhJ,KAAAo8B,KAAA,CACZ/5B,EAAc2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,aACR,IAAAlf,GAAA,EACN,KAAU,GAAAuG,KAAAwD,GAAAhJ,KAAAo8B,KACAn9B,EAAAA,EAAA+J,EAAAhJ,KAAAo8B,KAAA52B,GAAA23B,UAAA,MAEYx4B,GAAA8C,OAAAuB,EAAAhJ,KAAAme,QAAAlf,GAAA0C,WAAA,EAAA+F,KAAA,MACdD,QAAOuC,OAAAjB,KAAA,gBAsbZ,SAAUkC,GACT5I,EAAW2I,YAAY,QAAS,yBAA0B,iBArYtEV,EAAA0R,OAAS,WACL4K,EAAkBiB,QAAA,wKAmV1BnpB,QACKC,OApbG,yBAqbHe,WAAW,oBAAqBmgP,MAoGzC,WACI,YAOA,SAASE,GAAyB17O,EAAOU,EAASF,EAAWP,EAAQjC,EAAYyC,EAAQH,EAASkiB,EAAwBkyE,EAAkBhnE,EAAsB2lD,GAhY9J,QAAGu/C,KAmBH,GAjBG3yH,EAAAvE,OAAAC,MACCsK,EAAAgT,YAAS,EACVhT,EAAA+S,WAAA,EACC/S,EAAAyxD,OAASz3D,EAAAvE,OAAAC,KAAA+7D,OACVzxD,EAAA6xD,OAAA7xD,EAAAyxD,OACCzxD,EAAAo4N,QAASp+N,EAAAvE,OAAAC,KAAA2iO,QACVr4N,EAAAs4N,UAAA1xN,SAAA5M,EAAAvE,OAAAC,KAAA2iO,QAAAziO,QACC4mB,EAASxc,EAAAo4N,QAAAjnK,OAsbLnxD,EAAGwhB,SAAWxhB,EAAGs4N,WAnbtBt4N,EAAA6xD,OAAc,EAwbb7xD,EAAGshB,eAAkBC,SAAU,QAASC,SAAU,IAAOD,SAAU,sCAAuCC,SAAU,IAAOD,SAAU,gCAAiCC,SAAU,IAAOD,SAAU,WAAYC,SAAU,IACjND,SAAU,UAAWC,SAAU,IAAOD,SAAU,sBAAuBC,SAAU,IAnbxFq3F,IACkBljH,QAArBqE,EAAWvE,OAAUC,KAAA,CACjB,GAAAszB,GAAgB,GAChB5oB,EAAYrI,EAAcuK,MAC3BmlB,GAAUy+D,gBAAA9lF,EAAA4oB,GAAAvqB,KAAA,SAAAC,GACV,GAAW,MAAAA,EAAAlI,OACC,GAAAkI,EAAAhJ,KAAAyF,OAAA,EAAA,CACZuD,EAAAhJ,KAA0B8E,EAAA83B,QAAA5zB,EAAAhJ,KAAA,cAE1B,KAAA,GAAwBqxB,KAAAroB,GAAAhJ,KACNgJ,EAAOhJ,KAAAqxB,GAAAvsB,EAAA83B,QAAA5zB,EAAAhJ,KAAAqxB,GAAA,cAwbR/mB,GAAG01O,wBAA0Bh3O,EAAIhJ,KApbrCsK,EAAAsS,WAAA,MAEIjY,GAAA8C,OAAW,UAAe,qCAAmC9F,WAAU,EAAA+F,KAAA,OAsbvEpD,EAAO8F,GAAG/H,EAAWyE,mBAjb1BzE,GAAY2I,YAAA,QAAA,yBAAA,eAubhB,SArbCC,GAsbA5I,EAAW2I,YAAY,QAAS,mBAAoB,gBAG5DV,EAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAC3GkP,aAAc,iCAAkClP,GAAI,IAK1D/Y,EAAGkoB,cApbIC,YAAY,cACfC,UAAA,EACIC,KAAI,MAubJF,YArbW,sBAsbXC,UArbQ,EAsbRC,KAAM,OAENF,YAAa,uBACbC,UAAW,EACXC,KArbI,OAwbJF,YArbO,iCAsbPC,UArbI,EAsbJC,KAAM,OAnbNF,YAAW,6CAsbXC,UAAW,EApbZC,KAAA,OAEAF,YAAc,mBAsbbC,UAAW,EACXC,KAAM,OAlblBroB,EAAAsoB,kBACQC,iBAAW,wBACXC,OAAO,IAubPD,iBArbgB,iBAsbhBC,OAAQ,IAERD,iBAAkB,oBAClBC,OAAQ,IAEZxoB,EAAGyoB,iBACCC,eAAgB,SAChBC,OAAQ,IAERD,eArbgB,UAsbhBC,OAAQ,IAERD,eArbQ,WAsbRC,OAAQ,IAERD,eArbc,qBAsbdC,OArbI,IAubJD,eArbgB,QAsbhBC,OAAQ,IAKhB,QAASnM,GAAcioE,GACnBzkF,EAAGsS,WAAY,EACfiK,EAAuBC,cAAcioE,GAAOhmF,KAAK,SAASC,GACtD,GAAmB,MAAfA,EAAIlI,OAAgB,CACpBwJ,EAAGyc,UArbY/d,EAAAhJ,KAsbfsK,EAAGsS,WArbS,EAsbZtS,EAAG0c,8BAAgC1c,EAAGyc,UAAUE,YAAYC,mBAC5D5c,EAAGynN,IAAIt2J,MAAQnxD,EAAGyc,UAAUE,YAAYw0C,KACxC,KArbI,GAAAj2D,KAAS8E,GAAAyc,UAAKE,YAAAE,eAsbd7c,EAAGyc,UArbCE,YAAWE,eAAqB3hB,GAAA4hB,OAAAngB,KAAoBC,MAAAoD,EAAAyc,UAAAE,YAAAE,eAAA3hB,GAAA4hB,QAsbxD9c,EAAG+c,sBAAsB7hB,GAAK8E,EAAGyc,UAAUE,YAAYE,eAAe3hB,GApbvE8E,EAAIgd,MAAGhd,EAAA+c,sBAAgB7hB,GAub1B,KAAK,GArbGA,KAAI8E,GAAIkoB,YAsbRloB,EAAGkoB,YArbIhtB,GAAAmtB,MAAgBroB,EAAIyc,UAAAm4N,WAAA5nN,WAsb3BhtB,EAAGynN,IArbIt/L,YAAYnoB,EAAAkoB,YAAAhtB,GAAAitB,YAwb3BnoB,GAAGynN,IAAIj/L,OAASxoB,EAAGyc,UArbCm4N,WAAWpsN,MAsb/B,KAAK,GAAIttB,KAAK8E,GAAGsoB,gBACTtoB,EAAGsoB,gBAAgBptB,GAAGstB,SAAWxoB,EAAGyc,UAAUm4N,WAAWpsN,SACzDxoB,EAAGynN,IAAIl/L,iBAAmBvoB,EAAGsoB,gBAAgBptB,GAAGqtB,iBAGxDvoB,GAAGynN,IAAI9+L,OAAS3oB,EAAGyc,UAAUm4N,WAAWjsN,MACxC,KAAK,GAAIztB,KAAK8E,GAAGyoB,eApbbzoB,EAAAyoB,eAAcvtB,GAAAytB,SAAA3oB,EAAAyc,UAAAm4N,WAAAjsN,SACV3oB,EAAAynN,IAAA/+L,eAAuB1oB,EAAAyoB,eAASvtB,GAAAwtB,eAGxC1oB,GAAAynN,IAAAnpJ,eAAuBt+D,EAAAyc,UAAYm4N,WAAW9nN,cAsb9C,KAAK,GArbG5xB,KAAI8E,GAAIgoB,mBAsbRhoB,EAAGgoB,mBArbI9sB,GAAgB6d,KAAI/Y,EAAAyc,UAAAm4N,WAAA9nN,iBAsb3B9sB,EAAGynN,IArbIkuB,mBAAY31O,EAAAgoB,mBAAA9sB,GAAA+sB,aAwb3BjoB,GAAGynN,IAAIgV,YArba,GAAAhjN,MAAAzZ,EAAWyc,UAAAm4N,WAAAnY,aAsb/Bz8N,EAAGynN,IAAIyV,MAAQl9N,EAAGyc,UArbQm4N,WAAA1X,MAub1Bl9N,EAAGynN,IAAIl4J,MAAQvvD,EAAGyc,UAAUm4N,WAAWrlL,MACvCvvD,EAAGynN,IAAIzjH,aArbQhkG,EAAAyc,UAAAm4N,WAAA5wI,aAsbXhkG,EAAGynN,IAAI1jH,UArbY/jG,EAAAyc,UAAYm4N,WAAS7wI,UAsbxC/jG,EAAGynN,IAAI3jH,IAAM9jG,EAAGyc,UAAUm4N,WAAW9wI,IACrC9jG,EAAGynN,IAAIl4J,MAAQvvD,EAAGyc,UAAUm4N,WAAWrlL,MAC3CvvD,EAAGynN,IArbCzkH,SAAchjG,EAAAyc,UAAAm4N,WAAA5xI,SAsblBhjG,EAAGynN,IAAI6U,WArbYt8N,EAAAyc,UAAYm4N,WAAStY,WAsbpCt8N,EAAGynN,IAAI8U,WAAav8N,EAAGyc,UAAUm4N,WAAWrY,WApb7Cv8N,EAAIynN,IAAGlvL,KAAAv4B,EAAAo4N,QAAgB7/L,KAC1Bv4B,EAAAynN,IAAA5kK,eAAuB7iD,EAAAyc,UAAUE,YAAgBkmC,eAsbjD7iD,EAAGynN,IAAInwL,aArbSt3B,EAAAyc,UAAgBE,YAAA2a,aAEL3hC,QAqbvB+I,EAAIhJ,KArbIinB,YAAG8yC,eAAY,IAAA/wD,EAAAhJ,KAAAinB,YAAA8yC,gBAsbvBzvD,EAAG4/N,WArbU/nO,MAAGg9B,SAAcn2B,EAAAhJ,KAASinB,YAAG8yC,gBAsb1CzvD,EAAG6/N,cArbShoO,MAAQg9B,SAAOn2B,EAAWhJ,KAAAinB,YAAAmjN,kBAwb1CrG,EAAsBz5N,EAAGo4N,QAAQtiO,UAAW,WACpC,GAAIutD,GAAOrjD,EAAGyc,UAAUm4N,WAAW,SAAU55O,MAAM,IACnD,KAAK,GArbEE,KAAA8E,GAAAstI,gBACH,IAAA,GAAAnjI,KAAWk5C,GAAA,CAsbP,GAAIonI,GAAY7jL,SAASy8C,EAAIl5C,GACzBnK,GAAGstI,gBAAgBpyI,GAAGyyE,eAAiB88G,IApbzCzqL,EAAA07N,eAAA7jO,KAAAmI,EAAAstI,gBAAApyI,GAAAyyE,cACC3tE,EAAAy7N,qBAAqB5jO,KAAAmI,EAAAstI,gBAAoBpyI,YAO/DnD,GAAa2I,YAAA,QAAA,yBAAA,eAubf,SArbKC,GAsbJ5I,EArbI2I,YAAW,QAAA,mBAAA,gBAybvB,QAASk1O,GAAiB9iO,GACtB9S,EAAGgT,YArbW,EAsbdhT,EAAGynN,IAAIt2J,MArbOr+C,EAAAq+C,MAsbdnxD,EAAGynN,IAAIxtJ,YAAcnnD,EAAImnD,YACzBj6D,EAAGynN,IArbInlM,YAAAxP,EAAAwP,YAsbPtiB,EAAGynN,IArbC3xN,UAAWgd,EAAAhd,SAsbf,KAAK,GArbGoF,KAAA8E,GAAAkoB,YACAloB,EAAAkoB,YAAShtB,GAAAmtB,MAAAvV,EAAAmnD,cACTj6D,EAAAynN,IAAAt/L,YAAQnoB,EAAAkoB,YAAAhtB,GAAAitB,YAybhBnoB,GAAGynN,IAAIj/L,OArbO1V,EAAA0V,MAsbd,KAAK,GAAIttB,KAAK8E,GAAGsoB,gBACTtoB,EAAGsoB,gBAAgBptB,GAAGstB,SAAW1V,EAAI0V,SACrCxoB,EAAGynN,IAAIl/L,iBAAmBvoB,EAAGsoB,gBAAgBptB,GAAGqtB,iBAlb5DvoB,GAAAynN,IAAS9+L,OAAA7V,EAAY6V,MACjB,KAAG,GAAMztB,KAAA8E,GAAAyoB,eACNzoB,EAAAyoB,eAAWvtB,GAAAytB,SAAA7V,EAAA6V,SACX3oB,EAAAynN,IAAA/+L,eAAmB1oB,EAAAyoB,eAAAvtB,GAAAwtB,eAG1B1oB,GAAAynN,IAASnpJ,eAAAxrD,EAAAwrD,cACL,KAAG,GAAMpjE,KAAA8E,GAAAgoB,mBACNhoB,EAAAgoB,mBAAW9sB,GAAA6d,KAAAjG,EAAAwrD,iBACXt+D,EAAAynN,IAAAkuB,mBAAmB31O,EAAAgoB,mBAAA9sB,GAAA+sB,aAGtBjoB,GAAGynN,IAAAgV,YAAM,GAAAhjN,MAAA3G,EAAA2pN,aAsbTz8N,EAAGynN,IAAIyV,MAAQpqN,EAAIoqN,MACnBl9N,EAAGynN,IAAIzkH,SAAWlwF,EAAIkwF,SApb1BhjG,EAAAynN,IAASl4J,MAASz8C,EAAKy8C,MACnBvvD,EAAAynN,IAAIzjH,aAAkBlxF,EAAAkxF,aAsbtBhkG,EAAGynN,IArbC3jH,IAAAhxF,EAAAgxF,IAsbJ9jG,EAAGynN,IAAI1jH,UArbYjxF,EAAAixF,UAsbnB/jG,EAAGynN,IAAI6U,WArbOxpN,EAAAwpN,WAsbdt8N,EAAGynN,IAAI8U,WAAazpN,EAAIypN,WACxBv8N,EAAGynN,IAAIouB,oBAAsB/iO,EAAI+iO,oBApbjC71O,EAAAynN,IAAA5kK,eAAoB/vC,EAAA+vC,cAubpB,IAAI4hC,GArbQ3xE,EAAIq+C,MAsbZnoC,EArbQlW,EAAW+iO,mBAsbvBpuN,GArbY4+D,mBAA2B5B,EAAKz7D,GAAgBvqB,KAAA,SAAAC,GAsbpD,GArbO,MAqbHA,EArbGlI,OAAA,CACHwJ,EAAA+c,sBAAuBre,EAAAhJ,KAASmnB,cAsbhC,KAAK,GAAI3hB,KAAK8E,GAAG+c,sBACb/c,EAAG+c,sBAAsB7hB,GAAG4hB,OAASngB,KAAKC,MAAMoD,EAAG+c,sBAAsB7hB,GAAG4hB,QAC5E9c,EAAGgd,MAAMhd,EAAG+c,sBAAsB7hB,GAERvF,SAA1B+I,EAAIhJ,KAAK+5D,eAAwD,IAA1B/wD,EAAIhJ,KAAK+5D,gBAChDzvD,EAAG4/N,WAAW/nO,MAAOg9B,SAAUn2B,EAAIhJ,KAAK+5D,gBACxCzvD,EAAG6/N,cAAchoO,MAAOg9B,SAAUn2B,EAAIhJ,KAAKoqO,kBAE/C9/N,EAAG0c,8BAAgChe,EAAIhJ,KAAKknB,kBApbvD,KAAA,GAAA1hB,KAAA8E,GAAA0c,8BACT1c,EAAA0c,8BAAAxhB,GAAA6kO,OAAA3rO,QAAA8e,KAAAlT,EAAA0c,8BAAAxhB,GAAA6kO,OAIgB//N,GAAAsS,WAAA,MAwbIva,GAAW2I,YAAY,QAAS,yBAA0B,QAnbvE,SAAWC,GACX5I,EAAa2I,YAAA,QAAA,mBAAA,SAGhB+4N,EAAqBz5N,EAAAynN,IAAA3xN,WAGrB,QAAG2jO,GAAkB6B,EAAY/8N,GAC7B6uE,EAAWiB,sBAAAitJ,GAAA78N,KAAA,SAAAC,GACP,GAAM,MAANA,EAAMlI,OAAkB,CAubpBwJ,EAAGstI,gBAAkB5uI,EAAIhJ,IArbjC,KAAA,GAAAwF,KAAkB8E,GAAMstI,gBAubZttI,EAAGstI,gBAAgBpyI,GAAGy9C,YAAc34C,EAAGstI,gBAAgBpyI,GAAGykI,YAAc,IACpE3/H,EAAGstI,gBAAgBpyI,GAAGmuL,YAAc,IAAMrpL,EAAGstI,gBAAgBpyI,GAAG46O,mBAAqB,IAAM91O,EAAGstI,gBAAgBpyI,GAAGusD,SAAW,IAC5HznD,EAAGstI,gBAAgBpyI,GAAGkxE,aAAe,OAAmBpsE,EAAGstI,gBAAgBpyI,GAAGquL,oBAGtFxxL,GAAW2I,YAAY,QAAS,IAC5BrJ,WAAW,EACX+F,KAAM,MAnb1BmB,IAubgBA,KArbhB,SAAAoC,GACY5I,EAAA2I,YAAA,QAAA,IACIrJ,WAAA,EAwbA+F,KAAM,SAlblB,QAAG4f,GAAWlK,GAEX,GADA9S,EAAAid,WAAa,EACDtnB,QAAZmd,EAAAoK,UAAYvnB,QAAAmd,EAAAqK,IAAA,CACZ,GAAAC,GAAYtK,EAAAuK,MACfvK,GAAWxC,OAAU,EAAA,IAAAwC,EAAA,SAAA,IAAAA,EAAA,IAAA,EAAA,KAAA,IAybjB,IAAK,GAAI5X,KAAK8E,GAAG+c,sBAAuB,CAtbzC,GAAAO,GAAiBtd,EAAA+c,sBAAY7hB,GAAAoV,KACxBtQ,GAAAid,YAAMK,GA4bd,QAvbQu7F,KAwbJ,OAvbQ74G,EAAAs4N,WAwbJ,IAAK,GACDt4N,EAAG+4G,YAvbC,OAAkB,OAAA,OAAA,OAAA,SAwbtB,MACJ,KAAK,GACD/4G,EAAG+4G,YAvbY,OAAA,OAAY,OAAS,SAAa,UAAA,SAwbjD,MACJ,KAvbG,GACC/4G,EAAA+4G,YAAW,OAAY,OAAS,OAAA,SAAA,UAA0B,SAwb1D,MACJ,KAAK,GAtbJ/4G,EAAK+4G,YAAM,OAAgB,QAC5B,MAwbA,KAvbI,GAwbA/4G,EAAG+4G,YAvbY,OAwbf,MACJ,KAAK,GACD/4G,EAAG+4G,YAvbY,OAAK,OAAA,OAAc,WAAkB,WA6bhE,QAASrnG,KACL,GAAIiB,GAvbQtY,EAAOsY,QAAO,eAwbtB,yFAGItb,WAAW,EACX+F,KAAM,MAGduV,GAvbQjT,OAAIjB,KAAI,WAwbZzE,EAAO8F,GAvbC,yBA2bhB,QAASk5G,GAvbOC,GAwbZ,MAAOz+G,GAAO3F,SAASmL,EAAG+4G,WAAYE,GAG1C,QAASsiH,KAGL,IAvbI,GAAArgO,KAAA8E,GAAAw7N,mBAAuB,CAwbvBx7N,EAAGiV,QACHjV,EAAGiV,KAvbK0jC,YAAW34C,EAAAw7N,mBAAuBtgO,GAAAy9C,YAwbtC34C,EAAGiV,KAvbCw3K,SAAAzsL,EAAkBw7N,mBAAAtgO,GAAAuxL,SAwbtBzsL,EAAGiV,KAvbC04D,aAAU3tE,EAAAw7N,mBAAAtgO,GAAAyyE,YAwblB,IAAIzgB,GAvbO1yD,EAAA3F,SAAA2F,EAAA8xB,IAAAtsB,EAAAy7N,qBAAA,gBAAAz7N,EAAAiV,KAAA04D,aAwbNzgB,KACDltD,EAAGy7N,qBAAqB5jO,KAAKmI,EAAGiV,MAtbjCjV,EAAA07N,eAAe7jO,KAAAmI,EAAAiV,KAAA04D,gBA8b1B,QAASguJ,GAvbO7oN,GAwbZ,GAAIre,GAAM,EAEVA,GAAMsD,EAvbS8D,SAAA,iBAAAiX,EAAA25K,SA8bfhyL,EAAQ4E,KAAK5K,EAAK,UAGtB,QAASmnO,GAAc9oN,GACnB,GAAIH,GAAUtY,EAAQsY,QAAQ,UAtb/B,sDACCtb,WAAkB,EAwbV+F,KAAM,MAEduV,GAAQjT,OAAOjB,KAAK,WArbpBuB,EAAAy7N,qBAAAnmM,OAAAxiB,EAAA,IAcD,cAcH,QAAGixG,KACC/jH,EAAG+S,WAAA,EAybH/S,EAAGyxD,QAAS,EAxahB,QAAG+wD,KACAxiH,EAAA2tE,aAAU3tE,EAAA07N,eAAAhoM,KAAA,IACV,IAAAz4B,IACAk2D,MAAAnxD,EAAAynN,IAAkBt2J,MAClB54B,KAASv4B,EAAAynN,IAAAlvL,KAybJq8D,qBAAsB50F,EAAGid,WAvb9Bu/M,SAAWx8N,EAAA2tE,aAGX3tE,GAAO+S,WAcF9X,EAAGi6F,YAAYl1F,EAAAo4N,QAASljI,YACxBzG,EAAiBG,gBAAQ3zF,GAAAwD,KAAA,SAAAC,GACtBA,EAAAhJ,KAAcke,aAAA,GACd7b,EAAA2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,cACA84G,IAybK3sH,EAAGkkB,QAtbZnsB,EAAkB2I,YAAU,QAAShC,EAAAhJ,KAAUme,QAAO,eAGzD,SAAAlT,GACI5I,EAAc2I,YAAQ,kCAxB3B+tF,EAASC,aAAAzzF,GAAAwD,KAAA,SAAAC,GACEA,EAAAhJ,KAAAke,aAAA,GAybE7b,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,cAvbpE84G,IAybgB3sH,EAAGkkB,QAtbfnsB,EAAA2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,eAGO,SAAAlT,GACA5I,EAAS2I,YAAc,iCA4clC,QAAS8oE,KACL,GAAIvuE,IACAi6F,YAxbYl1F,EAAAo4N,QAASljI,YAybrBt/F,OAAQoK,EAAGs4N,WAEXl5N,EAAgB7E,EAAU8E,MAC1BhI,WAAW,EACXiI,eAxbe,cAybfC,gBAxbe,aAybfrK,YAxbY,yDAybZE,WAxbY,oBAybZC,aAAc,KACd+H,KAAM,KACNoC,SAAU,SACVC,UAxbQ,EAybRyQ,SAvbG3N,MAAA,WACC,MAAWtH,MA6bnBmE,GAAcM,OAAOjB,KAAK,aAAe,cAG7C,QAASrG,KAvbL,GAAG6C,IAybCi6F,YAxbIl1F,EAAAo4N,QAAaljI,YAybjBt/F,OAxbIoK,EAAAs4N,UAybJyc,SAxbI,GA2bJ31O,EAxbe7E,EAAA8E,MAybfhI,WAxbU,EAybViI,eAxbG,cAybHC,gBAxbiB,aAybjBrK,YAxbI,yDAybJE,WAxbU,oBAybVC,aAAc,KAvbd+H,KAAA,KAybAoC,SAxbI,SAybJC,UAxbI,EAybJyQ,SAvbG3N,MAAA,WACC,MAAAtH,MA6bRmE,GAxbQM,OAAWjB,KAAA,aAAA,cA2bvB,QAASqlB,KAvbL,GAAG7oB,IACCi6F,YAAAl1F,EAAAo4N,QAAkBljI,YAClBt/F,OAAQoK,EAAAs4N,UACTyc,SAAA,GAEC31O,EAAQ7E,EAAA8E,MACThI,WAAA,EACCiI,eAAA,cACAC,gBAAQ,aAybRrK,YAAa,yDAvbdE,WAAA,oBACCC,aAAA,KACA+H,KAAA,KACDoC,SAAA,SACCC,UAAA,EACAyQ,SACD3N,MAAA,WACC,MAAAtH,MA6bJmE,GAxbGM,OAAAjB,KAAA,aAAA,cA2bP,QAAS0yE,KACL,GAAIl2E,IACAi6F,YAAal1F,EAAGo4N,QAAQljI,YACxBt/F,OAAQoK,EAAGs4N,WAtbZl5N,EAAY7E,EAAA8E,MACfhI,WAAA,EACIiI,eAAQ,cAybRC,gBAxbO,aAybPrK,YAxbO,yDAybPE,WAxbO,oBAybPC,aAxbW,KAybX+H,KAxbI,KAybJoC,SAxbQ,SAybRC,UAxbQ,EAybRyQ,SACI3N,MAAO,WAvbP,MAAStH,MA6bjBmE,GAxbWM,OAAIjB,KAAS,aAAa,cA2bzC,QAASyyE,KACL,GAAIj2E,IACAi6F,YAAal1F,EAAGo4N,QAAQljI,YACxBt/F,OAxbOoK,EAAIs4N,WA0bXl5N,EAxbe7E,EAAA8E,MAybfhI,WAAW,EACXiI,eAAgB,cAChBC,gBAAiB,aACjBrK,YAxbW,yDAybXE,WAxbS,oBAybTC,aAxbY,KAybZ+H,KAAM,KACNoC,SAAU,SACVC,UAAU,EACVyQ,SAvbI3N,MAAO,WAybH,MAAOtH,MAKnBmE,GAxbYM,OAAOjB,KAAA,aAAqB,cA9nB5C,GAAAuB,GAASC,IAqbTD,GAAGqU,kBAnbChJ,MAAQ,IAERA,MAAG,KAsbHA,MAAS,KAlbTA,MAAA,KAEAA,MAAQ,MAsbZrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GACjCrU,EAAGuU,YAAc,EAnbjBvU,EAAAwU,qBAAyB,SAAAC,GACrBzU,EAAAuU,YAAAE,GAsbJzU,EAAG+1O,cApbC/1O,EAAAqU,gBAAA,GAqbJrU,EAAGg2O,gBApbS,EAqbZh2O,EAAGi2O,0BApbmB,SAAAxhO,GAqblBzU,EAAGg2O,gBAAkBvhO,GAEzBzU,EAAGsS,WAAY,EAnbftS,EAAAgT,YAAS,EAqbThT,EAAG+S,WApbC,EAqbJ/S,EAAG41O,iBApbCA,EAqbJ51O,EAAGgd,MApbCA,EAqbJhd,EAAGynN,OACHznN,EAAG4/N,cACH5/N,EAAG6/N,iBACH7/N,EAAGstI,mBACHttI,EAAGy7N,wBACHz7N,EAAGu7N,aAAeA,EAnblBv7N,EAAA07N,kBAqbA17N,EAAG+c,yBACH/c,EAAG47N,cAAgBA,EACnB57N,EAAG27N,YAAcA,EACjB37N,EAAGwiH,KAAOA,EACVxiH,EAAGg5G,QAAUA,EAnbpBh5G,EAAA6xD,OAAW,EACR7xD,EAAAwpE,gBAAAA,EAqbIxpE,EAAG5H,OAASA,EAnbhB4H,EAAAmxE,SAAAA,EAsbInxE,EArbCkxE,MAAOA,EAsbRlxE,EArbC8jB,QAAWA,EAsbZ9jB,EAAG+jH,KAAOA,EACV/jH,EAAG0R,OAASA,EApbhB1R,EAAAu0O,UAAS,EAEL5nH,IAk0BA3sH,EAxbGkkB,KAAA,WACClkB,EAAA+S,UA2bI/Y,EAAO8F,GAAG/H,EAAWyE,eA1b1BwD,EAAAgT,YAAA,GA8bHhT,EAAGk2O,MAxbI,WAybHl8O,EAAO8F,GAAG/H,EAAWyE,4LA9c7BpI,QACKC,OApbG,yBAqbHe,WApbW,2BAAeqgP,OA+jClC,SAAS5tN,GAAGA,EAAEqR,GAAGg9D,QAxbK,SAAI1oF,GAAA,GAAAyyB,GAAiBhgC,KAAG/E,EAAA2sB,EAAAve,QAAUilB,SAAY,IAAAsY,MAAA,IAAAj/B,MAAA,SAAA4F,GAAAq5C,EAAA3rD,EAAAqzB,SAAA1W,EAAA3c,EAAA2rC,MAAApgC,EAAAvL,EAAA0M,KAAAq4B,GAAA/2B,SAAA,SAAAzC,EAAA,QAAA,OAAAA,EAAA,MAAA,SAAAA,EAAA,QAAA,SAAAw5B,EAAAsF,KAAA4wM,MAAA,GAAAC,OAAA,GAAA7nN,SAAA,UAAA1G,EAAA/wB,UAAAu/O,OAAA,WAAA,GAAA7oO,GAAAqa,EAAAnzB,QAAAsZ,WAAAR,IAAAq5C,EAAA5mB,EAAAq2M,OAAAz+N,GAAAooB,EAAAs2M,QAAA1+N,KAAAooB,EAAAQ,MAAA,WAAA5Y,EAAA,cAAA2uN,SAAAxoO,UAAA,IAAA1W,SAAA,WAAAkpC,QAybrE,WACI,YAOA,SAASi2M,GAxbehsO,EAAWhQ,EAAGR,EAAUM,EAAWR,EAAUwiB,EAAMxkB,EAAAy9B,EAAAhO,EAAAhtB,EAAAH,EAAAL,EAybvEG,GA4BA,QAAS+X,KACLsV,EAAei8C,uCAAuCtxD,GAAW1T,KAAK,SAASC,GAC3E,GAAmB,MAAfA,EAAIlI,OAtbP,GAAIkI,EAAKhJ,KAAGyF,OAAA,EAAA,CACNuD,EAAAhJ,KAAA8E,EAAmB83B,QAAA5zB,EAAWhJ,KAAI,cA0bjC,KAAK,GAAIqxB,KAAOroB,GAAIhJ,KAChBgJ,EAAIhJ,KAAKqxB,GAAOvsB,EAAO83B,QAAQ5zB,EAAIhJ,KAAKqxB,GAAM,cArbnD/mB,GAAA8/F,yBAA6BphG,EAAIhJ,KACjCsK,EAAIsS,WAAA,MA0bHtS,GAAG8/F,yBAA2BphG,EAAIhJ,SArbtCqC,GAAG2I,YAAmB,QAAU,yBAAoB,aA0bzD,SAASC,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,cAtbxDV,EAAGkoB,cACIC,YAAW,cACXC,UAAY,EACZC,KAAA,MAEAF,YAAY,sBACZC,UAAA,EACAC,KAAA,OAEAF,YAAA,uBAybCC,UAAW,EAvbfC,KAAQ,OAGJF,YAAQ,iCAybRC,UAxbO,EAybPC,KAxbI,OA0bJF,YAxbW,6CAybXC,UAAW,EACXC,KAxbI,OA0bJF,YAxbW,mBAybXC,UAAW,EACXC,KAxbI,OA2bZroB,EAAGyoB,iBACKC,eAAgB,SAChBC,OAAQ,IAERD,eAxbO,UAybPC,OAxbO,IA0bPD,eAAgB,WAChBC,OAAQ,IAtbRD,eAAW,qBAybXC,OAAQ,IAGRD,eAAgB,QAChBC,OAAQ,IAGhBnB,EAxbYm9C,qBAAgBlmE,KAAA,SAAAC,GACjB,MAAHA,EAAGlI,OACHwJ,EAAA+mG,gBAAiBroG,EAAAhJ,KA0bjBqC,EAxbW2I,YAAA,QAAmB,yBAAuB,aA0b1D,SAASC,GACR5I,EAxbO2I,YAAA,QAAA,mBAAA,cA6bXV,EAAGgoB,qBAAwBC,aAAc,qBAAsBlP,GAAI,IAAOkP,aAAc,oBAAqBlP,GAAI,IAvb7GkP,aAAc,iCAAAlP,GAAA,IAksBtB,QAASyD,GAAcioE,GAEnB,GAAIrlF,GAAgB7E,EAAU8E,MAC1BhI,WAAW,EAvbnBiI,eAAoB,cACZC,gBAAM,aACNrK,YAAa;AACbE,WAAW,uBAybXC,aAAc,KAvbd+H,KAAA,KAEAqC,UAAA,EACAyQ,SACA3N,MAAA,WACA,MAAYkiF,MA4bhBrlF,GAxbcM,OAAAjB,KAAA,aA0bX,cA1XP,QAAG2a,GAAA1jB,GACA,GAAA2jB,GAAA3jB,EAAe2jB,KACf9iB,EAAAb,EAAgBa,IA0bf,OAAgB,QAATA,IAAqC,IAAlB8iB,EAAKC,UAAoC,IAAlBD,EAAKC,UAiE1D,QAASC,GAzbG7jB,GA0bR,GAAI2jB,GAzbI3jB,EAAQ2jB,KA0bZ9iB,EAzbGb,EAAAa,IA0bP,IAzbQ,QAybJA,EAtbA,IAAA,GAFIijB,GAAQ,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAEZxe,EAAA,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACI,GAAA0e,GAAgB,GAAAH,MAAAzZ,EAAA2Z,OAAAze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EA2bhB,IAAIF,IAAeI,EACf,MAAO5Z,GAAG2Z,OAAOze,GAAG1E,OAIhC,MAAO,GA1hBX,GAAIwJ,GAAKC,IAETD,GAAGqU,kBAAqBhJ,MAxbQ,IAAGA,MAAA,KAAmBA,MAAA,KAAiBA,MAAW,KAAAA,MAAA,MAyblFrL,EAAGsU,SAAWtU,EAAGqU,gBAxbe,GA0bhCrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAASC,GAC3BzU,EAAGuU,YAAcE,GAGzBzU,EAAGgT,YAxbY,EAybfhT,EAAG+S,WAxbS,EAybZ/S,EAAGsS,WAAY,EACftS,EAAG0mG,QAxbI,EAybP3uG,EAxbQ2c,SAAW,EAybnB1U,EAAG6iG,kBAAmB,EACtB7iG,EAAGonG,cAAe,EAClBpnG,EAAGipG,eAAgB,EAEnBjpG,EAAGwc,cAxbIA,EAybPxc,EAAG+c,yBACH/c,EAAGq1F,KACH,IAxbIn1F,GAAO/F,EAAkBgG,uBACzBgS,EAAOhY,EAAgBgG,uBAAAwU,gBAAAxC,SA0b3BD,KAsFAlS,EAAG+iG,OAxbK,SAAWjwF,GAybf9S,EAAG6iG,kBAxbgB,EAybnB7iG,EAAGq1F,GAxbKjhG,QAAM8e,KAAAJ,GAybd9S,EAAGq1F,GAAG9lC,MAAQn7D,QAAQ8e,KAAKJ,EAAIy8C,OAC/BvvD,EAAGq1F,GAAG2N,SAAW5uG,QAAQ8e,KAAKJ,EAAIkwF,UAClChjG,EAAGq1F,GAAG4N,YAAc7uG,QAAQ8e,KAAKJ,EAAImwF,aACrCjjG,EAAGq1F,GAAGtoE,SAAW34B,QAAQ8e,KAAKJ,EAAIia,UAvbtC/sB,EAAAq1F,GAASxyC,eAAWzuD,QAAA8e,KAAAJ,EAAA+vC,gBAChB7iD,EAAGq1F,GAAAH,YAAa9gG,QAAA8e,KAAAJ,EAAAoiF,aAChBl1F,EAAAq1F,GAAIv/F,UAAI1B,QAAY8e,KAAAJ,EAAahd,WAybjCkK,EAAGq1F,GAxbC8W,mBAAoB/3G,QAAI8e,KAAAJ,EAAAq5F,mBA0b5B,IAvbAxX,IAub2BvgG,QAAQ8e,KAAKJ,EAAI8hF,sBAvb9B/oE,WAAG7rB,EAAAq1F,GAAAT,sBAAuB9oE,QAAA,GA4bxC9rB,GAAGq1F,GAAGqhJ,cAAgB,GAAItnN,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAO84E,GACpG30F,EAAGq1F,GAAG2O,aAAe5vG,QAAQ8e,KAAKJ,EAAIkxF,aAtb1C,IAAA2yI,GAAS9qN,WAAgB7rB,EAAAq1F,GAAA2O,cAAA,IACrB4yI,EAAW/qN,WAAA7rB,EAAAq1F,GAAAT,sBAAA/oE,WAAA8qN,EAybX32O,GAAGq1F,GAxbCwhJ,WAAK,GAAAznN,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAA+6N,GA0bT52O,EAAGq1F,GAAGuhJ,mBAxbE,OAAAA,EAAA/qN,WAAA+qN,GAAA9qN,QAAA,GAAA,EAybR9rB,EAAGq1F,GAxbCuQ,gBAAK5lG,EAAAq1F,GAAAuhJ,kBAybT,IAAIE,GAxbqBjrN,WAAQ7rB,EAAAq1F,GAAQuhJ,oBAAkB/qN,WAAW7rB,EAAAq1F,GAAAuQ,gBAybtE5lG,GAAGq1F,GAAGyhJ,mBAxbEA,EAAAhrN,QAAA,EAybR,KAxbI,GAAK5wB,KAAA8E,GAAAkoB,YACDloB,EAAGkoB,YAAAhtB,GAAcmtB,MAAQvV,EAAAka,WACzBhtB,EAAAq1F,GAAA6N,SAAAljG,EAAAkoB,YAAAhtB,GAAAitB,YA4bR,KAxbI,GAAKjtB,KAAA8E,GAAAgoB,mBACDhoB,EAAGgoB,mBAAc9sB,GAAA6d,IAAAjG,EAAAga,iBACjB9sB,EAAAq1F,GAAAvoE,eAAA9sB,EAAAgoB,mBAAA9sB,GAAA+sB,aA6bR,IAAkB,GAAdnV,EAAI6V,OAAa,CACjB,GAAItP,GAAO,GAAII,MACXgzF,EAAW,GAAIhzF,MAAKJ,EAAK66B,cAAe76B,EAAK83B,WAAY,GAvb5Du7D,EAAS,GAAAjzF,MAAAJ,EAAA66B,cAAA76B,EAAA83B,WAAA,EAAA,EACVnxC,GAAAq1F,GAAAx0F,UAAkB4rG,EAClBzsG,EAAAq1F,GAAAv0F,QAAA4rG,IA4bR1sG,EAAGsnG,aAxbe,SAAAjS,GAybd,GAAIxpE,WAAWwpE,EAAGuQ,kBAAoB/5E,WAAWwpE,EAAGuhJ,qBAAuB/qN,WAAWwpE,EAAGuhJ,oBAAsB,EAAG,CAC9G52O,EAAGq1F,GAAGuQ,gBAAkBvQ,EAAGuQ,eAvb/B,IAAQkxI,GAAYjrN,WAAWwpE,EAAAuhJ,oBAAA/qN,WAAA7rB,EAAAq1F,GAAAuQ,gBAC3B5lG,GAAAq1F,GAAAyhJ,mBAAUA,EAAAhrN,QAAA,OA0bVzxB,GAAQ8C,OAAO,UAAW,+BAAiC0uB,WAAWwpE,EAAGuhJ,qBAAuBv/O,WAAW,EAAM+F,KAAM,OACvH4C,EAAGq1F,GAAGuQ,gBAAkB,KAvbhC5lG,EAASq1F,GAAAyhJ,mBAAiB,MA2b1B92O,EAAG+2O,eAAiB,WAvbpB,GAAA/2O,EAASq1F,GAAAoS,oBAAe,CAybhBznG,EAAGg3O,YACHh3O,EAAGq1F,GAAG4hJ,aAAe,IAtbrB,IAAGh8O,IACAi6F,YAAKl1F,EAAAq1F,GAAcH,YAClBp/F,UAAQkK,EAAAq1F,GAAAv/F,UACRsK,SAAQF,EAAAG,OAEZmnB,GAAa0+C,eAAAjrE,GAAAwD,KAAA,SAAAC,GACN,MAAAA,EAAAlI,QACAwJ,EAAAg3O,SAAet4O,EAAAhJ,KAybd8E,EAAO8xB,IAAItsB,EAAGg3O,SAAU,SAASxpO,GAC7B,MAAOA,GAAE0pO,QAAU,GAAIz9N,QAE3Bjf,EAAO8xB,IAAItsB,EAAGg3O,SAAU,SAASxpO,GAC7B,MAAOA,GAAE2pO,QAAU,GAAI/nN,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAOrO,EAAE2pO,WAtb9G38O,EAAY8xB,IAAKtsB,EAAAg3O,SAAA,SAAAxpO,GACZ,MAAAA,GAAA4pO,QAAA,GAAAhoN,MAAAC,aAAA,SAAApV,MAAA,WAAA2Q,SAAA,QAAA/O,OAAArO,EAAA4pO,WAEJ58O,EAAW8xB,IAAAtsB,EAAAg3O,SAAW,SAAAxpO,GAybZ,MAAOA,GAAE0pH,QAAUv6H,KAAKC,MAAM4Q,EAAE0pH,WAEpC18H,EAAOqI,QAAQ7C,EAAGg3O,SAAU,SAASxpO,GACjChT,EAAO8xB,IAAI9e,EAAE0pH,QAAS,SAASj8H,GAC3B,MAAOA,GAAIo8O,IAAM,GAAIjoN,MAAKC,aAAa,SAAWpV,MAAO,WAAY2Q,SAAU,QAAS/O,OAAO5gB,EAAIo8O,UAI3Gt/O,EAAW2I,YAAY,QAAS,yBAA0B,iBAtblE,SAAUC,GACV5I,EAAA2I,YAAA,QAAA,mBAAsD,oBA8b9DV,EAAGs3O,oBAxbQ,SAAqBjiJ,GA0b5Br1F,EAAGsS,WAAY,EACftS,EAAG0mG,QAAS,CACZ,IAAIzrG,IACAi6F,YAAaG,EAAGH,YAChBgY,cAAe7X,EAAGuQ,gBAClBiH,eAAgBxX,EAAGyhJ,mBACnBhqI,gBAAiB,EACjBv0E,KAAM88D,EAAG5yE,MACT7sB,OAAQ,EACRu3G,UAAW,EACXE,YAAa,EACb9E,cAAevoG,EAAGq1F,GAAGoS,oBAAoBC,kBAG7C,IAAqD,UAAjD1nG,EAAGq1F,GAAGoS,oBAAoBE,oBAAiC,CAvbhE,GAAOt1E,IACEklN,OAAAv3O,EAAWq1F,GAAA4hJ,aAAAM,OACZ3vI,SAAA5nG,EAAaq1F,GAAA4hJ,aAAArvI,SACbC,WAAA7nG,EAAAq1F,GAAA4hJ,aAAAztF,OACH1hD,UAAU9nG,EAAAq1F,GAAW4hJ,aAAA3tF,KAybjBvhD,SAAU/nG,EAAGq1F,GAAG0S,SAEpB9sG,GAAI+sG,cAAgBrrG,KAAKqkB,UAAUqR,OAvbhC,IAAW,QAAXryB,EAAAq1F,GAAAoS,oBAAWE,qBAAA,QAAA3nG,EAAAq1F,GAAAoS,oBAAAE,oBAAA,CAClB,GAAOt1E,IAybCklN,OAAQv3O,EAAGq1F,GAAG4hJ,aAAaM,OAC3B3vI,SAAU5nG,EAAGq1F,GAAG4hJ,aAAarvI,SAvbhCC,WAAO7nG,EAAAq1F,GAAA4hJ,aAAAztF,OACT1hD,UAAY9nG,EAAAq1F,GAAA4hJ,aAAA3tF,KA0bXruJ,GAAI+sG,cAAgBrrG,KAAKqkB,UAAUqR,OAtb3Cp3B,GAAS+sG,cAAc,IA2bnBxgF,GAxbUs9C,kBAAsB7pE,GAAAwD,KAAA,SAAAC,GACzB,IAAAA,EAAAhJ,KAAAuyG,UAAA,GAAAC,aACCnwG,EAAW2I,YAAU,UAAOhC,EAAAhJ,KAAAuyG,UAAA,GAAAp0F,QAAA,iBAC5B7T,EAAAsS,WAAS,EAybTtS,EAAG0mG,QAAS,EAIZ1mG,EAAGonG,cAAe,EAClBpnG,EAAGmoG,OAASzpG,EAAIhJ,KAAKk4G,UAAU,GAvblC5tG,EAAAq1F,GAAOiT,UAAAl0G,QAAA8e,KAAAlT,EAAAmoG,OAAAG,WACTtoG,EAAAq1F,GAAA6T,UAAkB90G,QAAA8e,KAAelT,EAAKmoG,OAAAe,WACrClpG,EAAMq1F,GAAAptE,aAAA7zB,QAAA8e,KAAAlT,EAAAmoG,OAAAtlD,gBACN7iD,EAAOq1F,GAAG4N,YAAI7uG,QAAA8e,KAAAlT,EAAAmoG,OAAAlF,aACdjjG,EAAMq1F,GAAGsS,oBAAIvzG,QAAA8e,KAAAlT,EAAAmoG,OAAAR,qBACb3nG,EAAAq1F,GAAAkT,cAAyBn0G,QAAA8e,KAAAlT,EAAAmoG,OAAAI,eACzBvoG,EAAAq1F,GAAU2S,cAAG5zG,QAAA8e,KAAAlT,EAAAmoG,OAAAH,eAybThoG,EAAGq1F,GAAG6O,QAAU9vG,QAAQ8e,KAAKlT,EAAGmoG,OAAOjE,SACvClkG,EAAGq1F,GAAG98D,KAAOnkC,QAAQ8e,KAAKlT,EAAGmoG,OAAO5vE,MAvbpCv4B,EAAAq1F,GAAAppD,YAAW73C,QAAA8e,KAAAlT,EAAAmoG,OAAAl8D,aACoB,UAAnCjsC,EAAAq1F,GAAAsS,qBACQ3nG,EAAAyoG,UAAS9rG,KAAAC,MAAcoD,EAAMq1F,GAAA2S,eAC7BhoG,EAAAq1F,GAAAuS,SAAW5nG,EAAAyoG,UAAYb,SACvB5nG,EAAAq1F,GAAAwS,WAAA7nG,EAAAyoG,UAAAZ,WACA7nG,EAAGq1F,GAAAyS,UAAA9nG,EAAAyoG,UAAAX,UAybH9nG,EAxbGq1F,GAAA0S,SAAA/nG,EAAAyoG,UAAAV,UACiC,QAApC/nG,EAAAq1F,GAAWsS,qBAAuC,QAAT3nG,EAAAq1F,GAASsS,sBAyblD3nG,EAAGyoG,UAAY9rG,KAAKC,MAAMoD,EAAGq1F,GAAG2S,eAChChoG,EAAGq1F,GAAGuS,SAAW5nG,EAAGyoG,UAAUb,SAvbnC5nG,EAAAq1F,GAASwS,WAAK7nG,EAAAyoG,UAAAZ,WACb7nG,EAAAq1F,GAAAyS,UAAW9nG,EAAYyoG,UAAAX,YAKvB/vG,EAAQ2I,YAAK,UAAoB,gBAAA,yBA0btC,SAxbSC,GAybR5I,EAxbW2I,YAAA,kCA6bnBV,EAAGglE,WAxbQ,SAAcqwB,GAybrB,GAAIp6F,IACAytG,UAAWrT,EAAGqT,UACdC,YAAa1uG,EAAQ,QAAQo7F,EAAGsT,YAAa,cAGnB,WAA1BtT,EAAGsS,qBAA6D,QAA1BtS,EAAGsS,oBAvbjD1sG,EAAS2tG,aAAkB5oG,EAAAq1F,GAAAuT,aACb,QAAAvT,EAAAsS,qBAAA,QAAAtS,EAAAsS,sBACN1sG,EAAA4tG,cAAgB7oG,EAAAq1F,GAAQwT,cAG5B,IAAIC,IACAC,eAAWpsG,KAAAqkB,UAAA/lB,GACXi6F,YAAAG,EAAgBH,YAChBgU,UAAA7T,EAAA6T,UA2bJ1hF,GAxbIw9C,WAAc8jC,GAAArqG,KAAA,SAAAC,GACdA,EAAMhJ,KAAAke,aAAA,GACN7b,EAAU2I,YAAA,UAAAhC,EAAAhJ,KAAAme,QAAA,iBACV7T,EAAAipG,eAAU,GA8bNlxG,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,kBAtb1D,SAAAlT,GAybI5I,EAAW2I,YAAY,kCAK/BV,EAAGulE,YAxba,SAAG8vB,GAybf,GAxbIp6F,IAybAiuG,UAAWlpG,EAAGq1F,GAAG6T,UACjBhU,YAAal1F,EAAGq1F,GAAGH,YAvbnBjpD,YAAAjsC,EAAgBq1F,GAAAppD,YAChB3pB,YAAWtiB,EAAAq1F,GAAA/yE,YACX4hC,QAAA,UACApwB,SAAA5zB,EAAiBi/C,UA2brB33B,GAxbI+9C,YAActqE,GAAAwD,KAAA,SAAAC,GACd,GAAM,MAANA,EAAMlI,OAAA,CACN,GAAAyf,GAAUnf,SAAAijB,cAAA,IACVjjB,UAAUC,KAAAijB,YAAA/D,GACVA,EAAAgE,MAAS,eACL,IAAArc,GAAO,GAAAC,OAAWa,EAAAhJ,OACdqI,KAAO,oBA0bPtJ,EAAMC,OAAOwlB,IAAIC,gBAAgBvc,EACrCnD,GAAQ4E,KAAK5K,EAAK,UAClBsD,EAAW2I,YAAY,UAAW,iBAAkB,mBAvb5DV,EAAAipG,eAA0B,EAyblBjpG,EAAG+xB,OACH7f,IAvbHlS,EAAA6iG,kBAAU,EACX7iG,EAAMonG,cAAA,MAGNrvG,GAAS2I,YAAA,QAAAhC,EAAAhJ,KAAAme,QAAA,kBAEb,SAAIlT,GACA5I,EAAW2I,YAAA,kCA8bnBV,EAAG+xB,KAxbK,WAybJ7f,IACAlS,EAAG6iG,kBAxbW,EAybd7iG,EAAGq1F,MACHr1F,EAAGonG,cAxbY,EAybfpnG,EAAGipG,eAxbgB,GAufvBjpG,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAzbCqa,QA2bDra,EAAG0X,MAAQ,WACP1X,EAAGsa,GAAK,MAtbZta,EAAAua,eA0bIC,YAAajB,EAxbdkB,QAAA,GAAAhB,MACAiB,WAAW,GAGd1a,EAAG2a,aA0bCC,aAzbOxB,EA0bPyB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IAC3BgB,QAAS,GAAIhB,MAxbdqB,YAAa,GAWhB9a,EAAG+a,UAAK,WACJ/a,EAAAua,cAAaE,QAAAza,EAAAua,cAAsBE,QAAA,KAAA,GAAAhB,MACnCzZ,EAAA2a,YAAYF,QAAAza,EAAAua,cAAsBE,SA4btCza,EAAG+a,YAEH/a,EAAGgb,MAzbC,WA0bAhb,EAAGib,OAzbKpM,QAAI,GA4bhB7O,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CAxbP,IAAA4K,OA6bhBzZ,EAAGob,MAAQ,WACPpb,EAAGqb,OAAOxM,QAzbK,GA4bnB7O,EAAGsb,MAAQ,WACPtb,EAAGub,OAAO1M,QAzbC,GA4bf7O,EAAGwb,QAzbI,SAAcC,EAAAC,EAAAC,GA0bjB3b,EAAGsa,GAzbC,GAAAb,MAAWgC,EAAAC,EAAYC,IA4b/B3b,EAAG4b,SAzbS,eAAa,aAAA,aAAA,YAAA,QA0bzB5b,EAAG6b,OAzbS7b,EAAA4b,QAAW,GA2bvB5b,EAAG8b,iBAzbQ,cA2bX9b,EAAGib,QACCpM,QAzbQ,GA4bZ7O,EAAGmb,QACCtM,QAzbQ,GA2bZ7O,EAAGqb,QACCxM,QAzbQ,GA4bZ7O,EAAGub,QACC1M,QAzbQ,EA6bZ,IAAIkN,GAzbQ,GAAAtC,KA0bZsC,GAASP,QAzbGO,EAAWC,UAAA,EA0bvB,IAAIC,GAzbc,GAAAxC,KA0blBwC,GAAcT,QAAQO,EAASC,UAAY,GAC3Chc,EAAG2Z,SAxbCN,KAAG0C,EA0bHvlB,OAzbQ,SA2bR6iB,KAAM4C,EACNzlB,OAzbQ,cA8cZwJ,EAAG0iG,MAzbK,WA0bJ1iG,EAAGq1F,GAAGoS,oBAAsB,KAC5BznG,EAAG+mG,mBACH/mG,EAAGq1F,GAAG4hJ,aAAe,KACrB/kO,mMAziBR9d,QACKC,OAAO,uBACPe,WAAW,oBAAqBqhP,MA8iBzC,WACI,YAMA,SAzbQe,GAAMz/O,EAAsB0C,EAASF,EAAAF,EAAAG,EAAAg7B,EAAAhO,EAAAxV,EAAAJ,EAAAzX,GAikBzC,QAAS+X,KACDC,GACAH,EAzbOI,mBAAeD,GAAA1T,KAAA,SAAAC,GACF,MAAbA,EAAAlI,SACAwJ,EAAGqS,YAAY3T,EAAAhJ,KACf8/B,EAAey4D,aAAgBxvF,KAAO,SAAAC,GACpB,MAAfA,EAAAlI,SACAwJ,EAAAg3B,YAAsBt4B,EAAKhJ,KAC3BsK,EAAAsS,WAAA,IAEA,SAAA3R,GACA5I,EAAU2I,YAAa,QAAU,mBAAA,oBAEpCV,EAAGsS,WAAA,IA2bP,SAzbQ3R,GA0bP5I,EAzbU2I,YAAW,QAAG,mBAAU,oBAgc9C,QAAS+gB,GAzbatP,GA0bdA,GACAu5N,IACA95N,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GACzC,MAAfA,EAAIlI,QAxbLwJ,EAAA2hB,YAAAjjB,EAAAhJ,KACHsK,EAAW2hB,YAAYxmB,OAAA,GA0bfd,EAAQ8C,OAAO,UAAW,4CAA8C9F,WAAW,EAAM+F,KAAM,OAvb3G4C,EAAWsS,WAAY,GA2bfva,EAAW2I,YAAY,QAAS,yBAA0B,mBAE/D,SAAUC,GAxblB5I,EAAa2I,YAAa,QAAA,mBAAA,qBA6brBgrO,IAIR,QAASl3I,GAzbS1+F,GACVA,GA0bA61O,IACAn2M,EAAoBg4D,4BAA4B13F,GAAW2I,KAAK,SAAUC,GAxbhE,MAAVA,EAAUlI,QACVwJ,EAAAs0F,uBAA+B51F,EAAAhJ,KAC/BsK,EAAas0F,uBAAGn5F,OAAA,GACLd,EAAG8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OA0bN4C,EAAGsS,WAAY,GAvb3Bva,EAAe2I,YAAoB,QAAK,yBAAc,mBA2b/C,SAzbCC,GACA5I,EAAG2I,YAAgB,QAAA,mBAAA,qBA6bvBirO,IAKR,QAzbQl3I,GAAuB3+F,EAAAomD,GA0b3B,GAAIA,EAAY,CACZqtD,GACA,IAAItuG,IACAnF,UAAWA,EAxbpBomD,WAAcA,EACT2vL,aAAM7rO,EAAAq0F,KAAAu3I,qBAAAp2I,WAENhgE,GAAmBi4D,yBAAAxyF,GAAAwD,KAAA,SAAAC,GACA,MAAnBA,EAAAlI,QACAwJ,EAAAqoD,eAAmB3pD,EAAAhJ,KACVsK,EAAAqoD,eAAAltD,OAAA,GACCd,EAAA8C,OAAW,UAAA,gDAAA9F,WAAA,EAAA+F,KAAA,OA0bb4C,EAAGsS,WAAY,GAvb3Bva,EAAe2I,YAAiB,QAAK,yBAAc,eA2b5C,SAzbSC,GACR5I,EAAS2I,YAAK,QAAY,mBAAA,oBA6b9B6oG,KAKR,QAAS7U,GAzbM5+F,EAAAwhC,GA0bPA,GACAiyE,IACA/zE,EAzbOo4D,qCAAe93F,EAAAwhC,GAAA74B,KAAA,SAAAC,GA0bC,MAAfA,EAAIlI,QAxbLwJ,EAAAu0F,cAAA71F,EAAAhJ,KACHsK,EAAWu0F,cAAYp5F,OAAS,GA0bxBd,EAAQ8C,OAAO,UAAW,kDAAoD9F,WAAW,EAAM+F,KAAM,OAxbzG4C,EAAAsS,WAAK,GA2bLva,EAAW2I,YAAY,QAAS,yBAA0B,eAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,iBArbzD6oG,IA6bP,QAASxJ,GAA2B9kG,GAChC,GAAI+E,EAAGq0F,KAAKiX,kBAAmB,CAC3BtL,GAxbR,IAASn8B,GAAA7jE,EAAAq0F,KAAciX,kBAAOpW,YA0blB/wB,EAAgD,MAAhCnkE,EAAGq0F,KAAKu3I,qBAAgC5rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAAa,EAxbtGpxB,EAA+B,MAAfpkE,EAAAq0F,KAAUy3I,uBAAK9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,CAC/Bz9D,GAAW0uC,2BAAAL,EAAAM,EAAAC,GAAA3lE,KAAA,SAAAC,GACK,MAAhBA,EAAAlI,QACAwJ,EAAAigG,sBAAiBvhG,EAAAhJ,KACjBsK,EAAaigG,sBAAA9kG,OAAA,GACDd,EAAA8C,OAAA,UAAA,2DAAA9F,WAAA,EAAA+F,KAAA,OACZ4C,EAAAsS,WAAc,GA2bNva,EAAW2I,YAAY,QAAS,yBAA0B,uBAvblE,SAASC,GACL5I,EAAO2I,YAAW,QAAA,mBAAA,4BA6btBs/F,IAEJy3I,GAAqBx8O,GAIzB,QAASw8O,GAAqBx8O,GAC1B+E,EAAGq0F,KAAK4O,YAAc7uG,QAAQ8e,KAAKjY,EAAIgoG,YACvC,KAAK,GAAI/nG,KAAK8E,GAAGkoB,YACTloB,EAAGkoB,YAAYhtB,GAAGmtB,MAAQptB,EAAIg/D,cAC9Bj6D,EAAGq0F,KAAK6O,SAAWljG,EAAGkoB,YAAYhtB,GAAGitB,YAI7C,KAAK,GAAIjtB,KAAK8E,GAAGgoB,mBACThoB,EAAGgoB,mBAAmB9sB,GAAG6d,KAAO9d,EAAIqjE,iBACpCt+D,EAAGq0F,KAAK/1B,eAAiBt+D,EAAGgoB,mBAAmB9sB,GAAG+sB,aAI1D,KAAK,GAAI/sB,KAAK8E,GAAGyoB,eACTzoB,EAAGyoB,eAAevtB,GAAGytB,QAAU1tB,EAAI0tB,SACnC3oB,EAAGq0F,KAAKqjJ,WAAa13O,EAAGyoB,eAAevtB,GAAGwtB,eAOlD,IAJA1oB,EAAGq0F,KAAKioI,WAAarhO,EAAIqhO,WACzBt8N,EAAGq0F,KAAKkoI,WAAathO,EAAIshO,WACzBv8N,EAAGq0F,KAAKO,qBAAuB35F,EAAI25F,qBACnC50F,EAAGq0F,KAAKsjJ,mBAAqB18O,EAAI08O,mBACf,GAAd18O,EAAI0tB,OAAa,CACjB,GAAItP,GAAO,GAAII,MACXgzF,EAAW,GAAIhzF,MAAKJ,EAAK66B,cAAe76B,EAAK83B,WAAY,GACzDu7D,EAAU,GAAIjzF,MAAKJ,EAAK66B,cAAe76B,EAAK83B,WAAa,EAAG,EAChEnxC,GAAGq0F,KAAKxzF,UAAY4rG,EACpBzsG,EAAGq0F,KAAKvzF,QAAU4rG,EAEtB1sG,EAAGq0F,KAAKujJ,iBAAmB/rN,WAAYjlB,SAAS3L,EAAI25F,sBAAwB,IAAO/oE,WAAW7rB,EAAGq0F,KAAKkoI,aACtGv8N,EAAGq0F,KAAKwjJ,iBAAmBhsN,WAAYjlB,SAAS3L,EAAI25F,sBAAwB,IAAO/oE,WAAW7rB,EAAGq0F,KAAKioI,aA8B1G,QAzbQp8H,KA0bJ,GAzbIlgG,EAAAmgG,mBAAY,CAChBC,GA0bI,IAAI/tE,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGmgG,mBAxbtB9tE,EAAYx6B,KAAAmI,EAAAmgG,mBAAWjlG,GAAAghD,WAEnBl8C,GAAAyjD,SAAYpxB,EAAAqB,MA0bX,IAAIz4B,IACAolG,eAAgBrgG,EAAGyjD,SAxb5ByxC,YAAAl1F,EAAAq0F,KAAAiX,kBAAApW,YA0bS62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAxb9C+3B,WAAW53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,EA2bdz9D,GAAoB6uC,8BAA8BppE,GAAKwD,KAAK,SAAUC,GAC/C,MAAfA,EAAIlI,QAxbTwJ,EAAAsgG,yBAAW5hG,EAAAhJ,KACRsK,EAAAsS,WAAS,GA2bPva,EAAW2I,YAAY,QAAS,yBAA0B,uBAE/D,SAAUC,GAxbV5I,EAAW2I,YAAA,QAAA,mBAAA,4BAInB0/F,KA8bH,QAzbOG,KA0bH,GAAIvgG,EAAGwgG,sBAAuB,CAC1BC,GAxbL,IAAApuE,KACA,KAAS,GAAGn3B,KAAA8E,GAAQwgG,sBA0bXnuE,EAAIx6B,KAAKmI,EAAGwgG,sBAAsBtlG,GAAG22B,cAEzC7xB,GAAGwjD,YAAcnxB,EAAIqB,MAxb1B,IAASz4B,IACAylG,kBAAA1gG,EAAAwjD,YA0bA0xC,YAAal1F,EAAGq0F,KAAKiX,kBAAkBpW,YACvC62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAxb7C+3B,WAAA53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,KA2bJz9D,GAAoB8uC,uBAAuBrpE,GAAKwD,KAAK,SAAUC,GAxb3D,MAAAA,EAAAlI,QACAwJ,EAAA2gG,kBAAAjiG,EAAAhJ,KA0bQsK,EAAG2gG,kBAAkBxlG,OAAS,GAC9Bd,EAAQ8C,OAAO,UAAW,wDAA0D9F,WAAW,EAAM+F,KAAM,OAxbnH4C,EAAAsS,WAAA,GA2bIva,EAAW2I,YAAY,QAAS,yBAA0B,2BAE/D,SAAUC,GAxbjB5I,EAAe2I,YAAA,QAAA,mBAAA,gCAIhB+/F,KA8bH,QAzbIG,KA0bA,GAAI5gG,EAAG6gG,eAAgB,CACnBC,GAxbR,IAASzuE,KACD,KAAA,GAAOn3B,KAAK8E,GAAA6gG,eACZxuE,EAAOx6B,KAAKmI,EAAA6gG,eAAA3lG,GAAA8kB,OAEZhgB,GAAAggB,OAAIqS,EAAAqB,MA0bJ,IAAIz4B,IAxbJyxD,WAAgB1sD,EAAAggB,OACZk1E,YAAIl1F,EAAAq0F,KAAiBiX,kBAAkBpW,YA0bvC62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAxb7C+3B,WAA+B53H,QAA3BqK,EAAAq0F,KAAey3I,uBAAY9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,KA2bnCz9D,GAAoB+uC,sBAAsBtpE,GAAKwD,KAAK,SAAUC,GACvC,MAAfA,EAAIlI,QACJwJ,EAAG+gG,kBAAoBriG,EAAIhJ,KAxbhCsK,EAAA+gG,kBAAA5lG,OAAA,GA0bSd,EAAQ8C,OAAO,UAAW,iDAAmD9F,WAAW,EAAM+F,KAAM,OACxG4C,EAAGsS,WAAY,GAvbpBva,EAAW2I,YAAA,QAAA,yBAAA,2BAEf,SAAAC,GACG5I,EAAA2I,YAAe,QAAA,mBAAA,gCA6bjBogG,KArbf,QAAYE,KACT,GAAAhhG,EAAAihG,eAAA,CA0bYC,GACA,IAAI7uE,KAzbhB,KAAA,GAAAn3B,KAAA8E,GAAAihG,eAAA,CACY5uE,EAAAx6B,KAAAmI,EAAAihG,eAAA/lG,GAAA6d,IA4bI/Y,EAAGi4B,OAAS5F,EAAIqB,MAzbvB,IAAAz4B,IACIkmG,WAAAnhG,EAAAi4B,OA2bOi9D,YAAal1F,EAAGq0F,KAAKiX,kBAAkBpW,YAzbpD62I,eAAqB/rO,EAASq0F,KAAOu3I,qBAAiBp2I,WAC3C+3B,WAAmB53H,QAAhBqK,EAAAq0F,KAAgBy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,KAE9Bz9D,GAAcgvC,2BAAAvpE,GAAAwD,KAAA,SAAAC,GACS,MAAvBA,EAAAlI,QACIwJ,EAAcgmD,aAAAtnD,EAAAhJ,KA2bGsK,EAAGgmD,aAAa7qD,OAAS,GACzBd,EAAQ8C,OAAO,UAAW,0CAA4C9F,WAAW,EAAM+F,KAAM,OAzbrG4C,EAAAsS,WAAA,GAEDva,EAAA2I,YAAA,QAAA,yBAAA,2BAEZ,SAAsBC,GACtB5I,EAAA2I,YAA8B,QAAA,mBAAA,iCAK9BwgG,KAKH,QAAGE,KACA,GAAAphG,EAAA+jD,iBAAY,CACZioL,GACA,IAAA35M,KACA,KAAA,GAAAn3B,KAAA8E,GAAAihG,eACA5uE,EAAAx6B,KAAAmI,EAAoBihG,eAAA/lG,GAAA6d,GAEpB/Y,GAAOi4B,OAAA5F,EAAAqB,MACV,IAAWz4B,IACXkmG,WAAAnhG,EAAAi4B,OA2bY6rB,WAAY9jD,EAAG+jD,iBAAiBD,WAzbzCoxC,YAAgBl1F,EAAAq0F,KAAAiX,kBAAApW,YACf62I,eAAc/rO,EAAAq0F,KAAAu3I,qBAAAp2I,WACR+3B,WAAA53H,QAAAqK,EAAAq0F,KAAAy3I,uBAAA9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,KAENz9D,GAAcivC,2BAAAxpE,GAAAwD,KAAA,SAAAC,GACR,GAAA,MAAAA,EAAAlI,OAAA,CA2bMwJ,EAAGq+C,OAAS1hD,KAAKC,MAAM8B,EAAIhJ,MAAMsuD,KACjC,IAAIoD,KAzbjB5sD,GAAAqI,QAAwB7C,EAAAq+C,OAAc,SAAAwI,GACzB,GAAA/N,IA2bQuO,KAAMR,EAAEQ,KAzbdI,SAAAZ,EAAAH,OACDI,OAAA,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEPM,GAAAvvD,KAAAihD,KAEN94C,EAAa4mD,YAAAQ,MAGdrvD,GAAA2I,YAAA,QAAA,yBAAA,2BAEC,SAAWC,GACL5I,EAAA2I,YAAA,QAAA,mBAAA,gCAKNsrO,KA+bJ,QA1bG5lL,GAAAc,GAEC,GAAAA,EAAAo6C,kBAAW,CACX,GAAM96C,GAAA,QAAAC,EAAAS,EAAAO,UAAA,GA2bEd,EAAiBnsD,EAAO6P,KAAKrK,EAAGq+C,QAChCqI,OAAUF,IAxblB+6C,EAAkB/mG,EAAAgnG,MAAAxhG,EAAAq+C,OAAA,SAAAwI,GACV,MAAAJ,GAAAI,EAAAH,SAERlsD,GAAAqI,QAAkB7C,EAAA4mD,YAAA,SAAAC,GACV,GAAAA,EAAAY,WAAAjB,EAAA,CAER,GAAAi7C,GAAkBjnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SACVz6C,GAAAC,OAAAu6C,EAAA7mG,EAAAyC,OAAA0pD,EAAAG,OAAA,SAAAD,GA2bQ,MAAOrsD,GAAO3F,SAAS4sG,EAAW56C,EAAEvrB,aArbpD,GAAAurB,EAAAY,WAAgB85C,EAAA76C,OAAA,CACR,GAAA9xB,GAAAp6B,EAAA6P,KAAArK,EAAA0hG,mBACTzqE,QAAAj3B,EAAAihG,eAAAloF,IAES,IAAA6b,EAAA,CACT,GAAA+sE,GAAAnnG,EAAA6P,KAAAuqB,EAAA9X,QACiB8kF,mBAAA5hG,EAAA+jD,iBAAAnxB,eA4bA,IAAI+uE,EAAY,CAzbpC,GAAAE,GAAArnG,EAAA8xB,IAAAq1E,EAAAjsG,KAAA,SACoB8E,GAAAqI,QAAA0+F,EAAAz6C,OAAA,SAAAg7C,GACRtnG,EAAA3F,SAAAgtG,EAAAC,EAAA/6C,SA2boBvsD,EAAOy2E,OAAOswB,EAAQz6C,OAAQ,SAAUi7C,GACpC,MAAOA,GAAGh7C,SAAW+6C,EAAG/6C,aApbxD/mD,EAAAgiG,UAAY96C,EAAAo6C,qBAkchB,QA1bI76C,GAAcc,GA2bd,MAAO3gD,UAAS2gD,EAAWjkC,UAAU,IAGzC,QA1bI+9E,GAAcj6C,GAocd,MARIA,IAAYA,EAASjsD,OAAS,GAzbnCX,EAAAqI,QAAmBukD,EAAA,SAAAP,GAClB,GAAW,GAAAA,EAAAvrB,SAAA,CACX,GAAa2mE,GAAAznG,EAAA6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IA2bDR,GAAEoG,WAAa,MAAQg1C,KAI5B76C,EAGX,QA1bIxxB,KA2bA51B,EAAGsS,WAAY,EACf6vF,GAzbJ,IAAA9vE,KACI,KAAI,GAAAn3B,KAAA8E,GAAWgiG,UACX3vE,EAAAx6B,KAAAmI,EAAAgiG,UAAe9mG,GAAA6rD,OA4bnB/mD,GAAGoiG,QA1bS/vE,EAAGqB,MA2bf,IAAIz4B,IACAonG,eA1bgBriG,EAAAoiG,QA2bhBjB,WAAYnhG,EAAGi4B,OACfi9D,YAAal1F,EA1bGq0F,KAAGiX,kBAAYpW,YA2b/B62I,eAAgB/rO,EAAGq0F,KAAKu3I,qBAAqBp2I,WAC7C+3B,WA1b0B53H,QAAfqK,EAAAq0F,KAAUy3I,uBAAK9rO,EAAAq0F,KAAAy3I,uBAAA74I,aAAA,KA2b1B6kJ,cA1bY,EA4bhBtiN,GA1beq4D,4BAAY5yF,GAAAwD,KAAA,SAAAC,GA2bvB,GAAmB,MAAfA,EAAIlI,OAAgB,CAzbrBwJ,EAAA+1B,gBAAer3B,EAAAhJ,IACd,KAAA,GAAAwF,KAAW8E,GAAA+1B,gBA2bP,IAAK,GAAI5rB,KAAKnK,GAAG+1B,gBAAgB76B,GAAGg5B,aAChC,IAAK,GAAI8B,KAAKh2B,GAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAS,CAzbxEj0B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAC,IAAAt5B,KAAAC,MAAAoD,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAE,SA2bel2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGG,OAASx5B,KAAKC,MAAMoD,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAGE,SACtHl2B,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAGm4F,WAAaz2E,WAAW,GAC9D7rB,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAG67B,OAAQ,CAzbxE,IAAAv7B,GAAoB,CACV97B,GAAA+7B,MAAAv2B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAC,IAAAO,UAAA,SAAAnrB,EAAA0b,GACXuP,GAAAjrB,IAGWrL,EAAA+1B,gBAAkB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cACdz2B,EAAA+1B,gBAAqB76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAA8B,cAAA93B,EAAA+1B,gBAAA76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAS,cAAAH,GAAAxK,QAAA,GA4bhB9rB,EAAG+1B,gBAAgB76B,GAAGg5B,aAAa/pB,GAAG8pB,QAAQ+B,GAAG8B,aAAe,EAAOhM,QAAQ,GAI/F,IAAK,GAAI5wB,KAAK8E,GAAG+1B,gBAzblB,IAAU,GAAA5rB,KAAKnK,GAAAg3B,YACd,GAAWh3B,EAAA+1B,gBAAY76B,GAAS6d,KAAA/Y,EAAAg3B,YAAoB7sB,GAAA8sB,QAAA,CA2bxC,GAAIh8B,IACAg8B,QAASj3B,EAAGg3B,YAAY7sB,GAAG8sB,QAxb/Cj3B,GAAA+1B,gBAAA76B,GAAAg8B,aAAA18B,EAAAyC,OAAA+C,EAAAg3B,YAAA/7B,GAKA+E,EAAAsS,WAAW,MAEXva,GAAA2I,YAAoB,QAAA,yBAAuC,eA4b5D,SA1bSC,GA2bR5I,EA1bQ2I,YAAO,QAAA,mBAAgC,eAsfvD,QA1bQq3O,KA4bJ,GAAI1lN,IACA2lN,kBAIJ,KA1bI,GAAI98O,KAAA8E,GAAO+1B,gBACX,IAAI,GAAA5rB,KAAAnK,GAAA+1B,gBAAwB76B,GAAAg5B,aACxB,IAAA,GAAA8B,KAAch2B,GAAG+1B,gBAAK76B,GAAAg5B,aAA0B/pB,GAAA8pB,QACe,GAAnEj0B,EAAA+1B,gBAAoB76B,GAAAg5B,aAA2B/pB,GAAA8pB,QAAM+B,GAAAlS,SACzCuO,EAAA2lN,eAAgBngP,MACjBm9B,MAAAh1B,EAAA+1B,gBAA4B76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAhB,MACxBytE,YAAAziG,EAAA+1B,gBAA+B76B,GAAAg5B,aAAA/pB,GAAA8pB,QAAA+B,GAAAu9B,YAiclD,IAAIt4D,IACA+8O,eAAgB3lN,EAAI2lN,eACpB9iJ,YAAal1F,EAAGq0F,KAAKiX,kBAAkBpW,YACvC+iJ,cA1bCj4O,EAAAk4O,mBACD5uI,YAAAtpG,EAAAm4O,gBAAA9uI,UA2bA+uI,YAAap4O,EAAGq0F,KAAK+jJ,YAGzB5wN,GAAeq9C,gBAAgB5pE,GAAKwD,KAAK,SAAUC,GAC3CA,EAAIhJ,KAAKke,aAAc,GAzb1B7b,EAAA2I,YAA0B,UAAAhC,EAAAhJ,KAAAme,QAAA,gBACvBxZ,EAAA8C,OAAc,UAAQuB,EAAKhJ,KAAIme,QAAA,mBAAAnV,EAAAhJ,KAAA2iP,WAAAhhP,WAAA,EAAA+F,KAAA,OAClC4C,EAAIq0F,KAAKikJ,UAAG55O,EAAahJ,KAAA2iP,UACtBziN,KA6bA79B,EAAW2I,YAAY,QAAShC,EAAIhJ,KAAKme,QAAS,iBAxb1D,SAASlT,GACL5I,EAAO2I,YAAA,iCAgcf,QA1bQgrO,KA2bJ1rO,EAAGq0F,KA1bKxyE,gBAAQ,KA2bhB7hB,EAAG2hB,eACH3hB,EAAGq0F,KAAKu3I,qBAAuB,KAzb/B5rO,EAAGq0F,KAAKy3I,uBAAiB,KACzB9rO,EAAGq0F,KAAKtyC,2BAAiB,KACzB/hD,EAAGs0F,0BACHt0F,EAAGq0F,KAAKv4B,mBAAqB,KAC7B97D,EAAAqoD,kBA2bAroD,EAAGq0F,KA1bKiX,kBAAW,KA2bnBtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBA1bqB,KA2bxBngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAzb3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BA2bHtgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBAzbJ7gG,EAAA2gG,qBACC3gG,EAAAihG,kBACAjhG,EAAAihG,eAAoB,KA2bpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBAAmB,KACtB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBA8BP,QAAS41M,KACL3rO,EAAGq0F,KA1bKu3I,qBAAmB,KA2b3B5rO,EAAGq0F,KA1bKy3I,uBAAqB,KA2b7B9rO,EAAGq0F,KAAKtyC,2BAA6B,KACrC/hD,EAAGs0F,0BACHt0F,EAAGq0F,KA1bKv4B,mBAAmB,KA2b3B97D,EAAGqoD,kBACHroD,EAAGq0F,KAAKiX,kBA1bmB,KA2b3BtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBAAqB,KACxBngG,EAAGigG,yBACHjgG,EAAGwgG,sBA1bgB,KA2bnBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eA1bE,KA2bL7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eAAiB,KACpBjhG,EAAG+gG,qBAzbP/gG,EAAA+jD,iBAAS,KACL/jD,EAAAgmD,gBA4bAhmD,EAAG+1B,mBAGP,QAASwzE,KACLvpG,EAAGq0F,KA1bIiX,kBAAkB,KA2bzBtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBA1bqB,KA2bxBngG,EAAGigG,yBACHjgG,EAAGwgG,sBA1bqB,KA2bxBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eA1ba,KA2bhB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eA1bY,KA2bfjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBA1bS,KA2bZ/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QA1bSiqE,KA2bLhgG,EAAGmgG,mBA1bC,KA2bJngG,EAAGmgG,sBACHngG,EAAGigG,yBACHjgG,EAAGwgG,sBAAwB,KAC3BxgG,EAAGwgG,yBAzbPxgG,EAAAsgG,4BACItgG,EAAA6gG,eAAO,KA2bP7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eA1biB,KA2bpBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBA1biB,KA2bpB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASqqE,KACLpgG,EAAGwgG,sBA1bqB,KA2bxBxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eA1bgB,KA2bnB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eA1bS,KA2bZjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBA1bmB,KA2btB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS0qE,KACLzgG,EAAG6gG,eAAiB,KACpB7gG,EAAG6gG,kBAzbP7gG,EAAA2gG,qBACI3gG,EAAAihG,kBA2bAjhG,EAAGihG,eA1bC,KA2bJjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBA1bkB,KA2brB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAAS+qE,KACL9gG,EAAGihG,kBACHjhG,EAAGihG,eA1bS,KA2bZjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBA1bK,KA2bR/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASmrE,KACLlhG,EAAG+jD,iBA1ba,KA2bhB/jD,EAAGgmD,gBAEHhmD,EAAG+1B,mBAGP,QAASi2M,KAELhsO,EAAG+1B,mBAGP,QAASosE,KACLniG,EAAG+1B,mBA54BP,GAzbI/1B,GAAGC,IA2bPD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAzbKtU,EAAAqU,gBAAuB,GA2b/BrU,EAAGuU,YAAc,EACjBvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YAAcE,GAGrBzU,EAAGgT,YAzbC,EA0bJhT,EAAG+S,WAzbK,EA0bR/S,EAAGsS,WAzbK,CA0bR,IAzbIH,GAAMhY,EAAsBgG,uBAAwBwU,gBAAmBxC,SA0b3EnS,GAAGyhB,oBAAsBA,EACzBzhB,EAAGw0F,4BAzb6BA,EA0bhCx0F,EAAGy0F,yBAzbyBA,EA0b5Bz0F,EAAG00F,2BAzb0BA,EA0b7B10F,EAAG+/F,2BAzb4BA,EA0b/B//F,EAAGkgG,8BAzb+BA,EA0blClgG,EAAGugG,uBAzbwBA,EA0b3BvgG,EAAG4gG,sBAzbeA,EA0blB5gG,EAAGghG,2BAA6BA,EAChChhG,EAAGohG,2BAA6BA,EAChCphG,EAAG41B,kBAAoBA,EACvB51B,EAAGomD,YAzbUA,EA0bbpmD,EAAGymD,UAzbYA,EA0bfzmD,EAAG+3O,gBAzbeA,EA0blB/3O,EAAGigG,yBACHjgG,EAAGsgG,4BACHtgG,EAAG2gG,qBACH3gG,EAAG+gG,qBACH/gG,EAAGq0F,QACHt8F,EAzbQ2c,SAAW,EA0bnBxC,IAEAlS,EAAGu7C,eACCC,aAzbU,UA0bVnzB,KAAM,MAENmzB,aAAc,WAxbfnzB,KAAA,MA4bHroB,EAAGgoB,qBAzbSC,aAAqB,qBAAclP,GAAA,IAAsBkP,aAAiB,oBAAAlP,GAAA,IA0bpFkP,aAzbY,iCAAqBlP,GAAmB,IA2btD/Y,EAAGkoB,cACCC,YAzbU,cA0bVC,UAzbU,EA0bVC,KAAM,MAvbPF,YAAA,sBACCC,UAAU,EA0bVC,KAzbI,OA2bJF,YAAa,uBACbC,UAzbQ,EA0bRC,KAAM,OAGNF,YAAa,iCACbC,UAzbI,EA0bJC,KAAM,OAENF,YAzbY,6CA0bZC,UAAW,EACXC,KAAM,OAENF,YAAa,mBACbC,UAAW,EACXC,KAAM,OAGVroB,EAAGsoB,kBACCC,iBAzbgB,wBA0bhBC,OAAQ,IAERD,iBAzbgB,iBA0bhBC,OAAQ,IAERD,iBAAkB,oBAClBC,OAAQ,IAEZxoB,EAAGyoB,iBACCC,eAzbgB,SA0bhBC,OAzbQ,IA2bRD,eAAgB,UAChBC,OAAQ,IAERD,eAAgB,WAxbjBC,OAAA,IAECD,eAAe,qBACfC,OAAG,IA4bHD,eAzbI,QA0bJC,OAzbI,IA4bR3oB,EAAGs1F,mBACCC,aAzbI,wBA0bJC,YAzbI,IA2bJD,aAAc,0BACdC,YAAY,IAGhBx1F,EAAG+yF,iBACCC,eAzbQ,UA0bRC,aAzbQ,MA2bRD,eAzbQ,QA0bRC,aAAc,MAGdD,eAzbc,UA0bdC,aAzbQ,MA4bZjzF,EAAGopG,kBACCC,UAAW,EACXC,YAzbQ,0BA4bRD,UAAW,EACXC,YAAa,qBAGbD,UAzbQ,EA0bRC,YAzbW,wBA2mBftpG,EAAGu4O,YAAc,SAAUN,GAvbxBA,EAAmBj4O,EAAAq0F,KAAAujJ,kBAAAK,EAAAj4O,EAAAq0F,KAAAwjJ,iBACf73O,EAAAk4O,mBAASD,GA4bR59O,EAAQ8C,OAAO,UAAW,kCAAoC6C,EAAGq0F,KAAKwjJ,iBAAmB,OAAS73O,EAAGq0F,KAAKujJ,kBAAoBvgP,WAAW,EAAM+F,KAAM,OAxb1J4C,EAAQq0F,KAAA4jJ,cAAW,OA8btBj4O,EAAGw4O,mBAzbc,SAAAntO,GAEbwgB,WAAWxgB,GAAArL,EAAAq0F,KAAAkoI,YAAA1wM,WAAAxgB,GAAArL,EAAAq0F,KAAAioI,YA0bPt8N,EAAGq0F,KAAK6jJ,mBAAqBrsN,WAAYjlB,SAAS5G,EAAGq0F,KAAKO,sBAAwB,IAAO/oE,WAAWxgB,IACpGrL,EAAGk4O,mBAAqBl4O,EAAGq0F,KAAK6jJ,qBAtbpC79O,EAAS8C,OAAS,UAAS,iCAAA6C,EAAAq0F,KAAAioI,WAAA,OAAAt8N,EAAAq0F,KAAAkoI,YAAAllO,WAAA,EAAA+F,KAAA,OAC3B4C,EAAAq0F,KAAS6jJ,mBAAI,OAuuBjBl4O,EAAGuL,OAAS,SA1bI0oB,EAAWqvE,EAAAxwF,GA4bvB,GAAIywF,GA1bG,CA2bHD,GA1bIzqE,YA2bJyqE,EAAIzqE,aAAc,EAvblByqE,EAAAzqE,aAAA,CA4bJ,KAAK,GAAI39B,KAAK+4B,GAvblB,GAwbQA,EAAQ/4B,GAAG4oB,QAAUw/E,EAAIzqE,YAxbC,GAAzB5E,EAAA/4B,GAAA4oB,SACD,GAAY,GAAZmQ,EAAY/4B,GAAA22D,MAAA,CACZ,GAAA0B,GAAA1nC,WAAAoI,EAAA/4B,GAAA48B,cAAAjM,WAAA/Y,EAAAoK,SACI+W,GAAM/4B,GAAAq4D,WAAA1nC,WAAA0nC,GAAAznC,QAAA,GACNy3E,EAAWtvE,EAAA/4B,GAAAq4D,UACX,IAAA+uC,GAAYz2E,WAAAy3E,EAAAhB,YAAAz2E,WAAA03E,EACZD,GAAAhB,WAAiBz2E,WAAKy2E,GAAqBx2E,QAAA,GA2bvCmI,EAAQ/4B,GAAG22D,OAAQ,OAtbnBhmC,YAAOy3E,EAAAhB,YAAez2E,WAASoI,EAAA/4B,GAAAq4D,YA2b/B+vC,EA1bIhB,WAAQz2E,WAAOy3E,EAAWhB,YAAAz2E,WAAAoI,EAAA/4B,GAAAq4D,YA4b9B+vC,EA1bGhB,WAAAz2E,WAAAoI,EAAA/4B,GAAAq4D,YAAA1nC,WAAAy3E,EAAAhB,YA2bPruE,EA1bI/4B,GAAAq4D,WAAW1nC,WAAY,GAASC,QAAA,GA2bpCmI,EAAQ/4B,GAAG22D,OAAQ,GAI/B7xD,EAAG82B,SAAW,SAAUlC,EAAM0uE,EAAKxwF,GAC/B,GAAI+jB,GA1bC,CA2bL,IA1bIjC,EAAA9Q,QAAA,CA2bA,GAAIyvC,GAAa1nC,WAAW+I,EAAKkD,cAAgBjM,WAAW/Y,EAAIoK,SAChE0X,GAAK2+B,WAAa1nC,WAAW0nC,GAAYznC,QAAQ,GACjD+K,EAAQjC,EAAK2+B,UACb,IAAI+uC,GAAaz2E,WAAWy3E,EAAIhB,YAAcz2E,WAAWgL,EAzbjEysE,GAAShB,WAAAz2E,WAA2By2E,GAAWx2E,QAAA,GACvC8I,EAAAi9B,OAAA,EACAyxC,EAAAzqE,aAAA,MA6bIhN,YA1bOy3E,EAAAhB,YAAoBz2E,WAAA+I,EAAA2+B,YA2b3B+vC,EA1bIhB,WAAOz2E,WAAcy3E,EAAAhB,YAASz2E,WAAA+I,EAAA2+B,YA4blC+vC,EA1bIhB,WAAGz2E,WAAY+I,EAAA2+B,YAAA1nC,WAAAy3E,EAAAhB,YA2bvB1tE,EAAK2+B,WA1bM1nC,WAAA,GAAAC,QAAA,GA2bX8I,EAAKi9B,OA1bG,EA2bRyxC,EAAIzqE,aAAc,GAsO1B74B,EAAG0iG,MA1bK,WA2bJ1iG,EAAGq0F,KA1bClhF,gBAAiB,KA2brBnT,EAAGq0F,KA1bKxyE,gBAAY,KA2bpB7hB,EAAG2hB,eACH3hB,EAAGq0F,KA1bIu3I,qBAAa,KA2bpB5rO,EAAGq0F,KA1bKy3I,uBAAM,KA2bd9rO,EAAGq0F,KA1bKtyC,2BAAe,KA2bvB/hD,EAAGs0F,0BACHt0F,EAAGq0F,KA1bKv4B,mBAAqB,KA2b7B97D,EAAGqoD,kBACHroD,EAAGq0F,KA1bKiX,kBAAgB,KA2bxBtrG,EAAGu0F,iBACHv0F,EAAGmgG,sBACHngG,EAAGmgG,mBA1ba,KA2bhBngG,EAAGigG,yBACHjgG,EAAGwgG,sBA1bwB,KA2b3BxgG,EAAGwgG,yBACHxgG,EAAGsgG,4BACHtgG,EAAG6gG,eA1biB,KA2bpB7gG,EAAG6gG,kBACH7gG,EAAG2gG,qBACH3gG,EAAGihG,kBACHjhG,EAAGihG,eA1ba,KA2bhBjhG,EAAG+gG,qBACH/gG,EAAG+jD,iBA1bY,KA2bf/jD,EAAGgmD,gBAEHhmD,EAAG+1B,+LAh7BX3hC,QACKC,OAzbM,uBA0bNe,WAzbS,mBAAmBoiP,MA62CrC,WACI,YAOA,SAASiB,GAAe1gP,EAAYyC,EAAQH,EAASN,EAAOI,EAAuBqnD,EAAmB5G,EAAsBhpC,EACxH8oC,EA1ba6G,EAAmBvvC,EAAAvH,GAqfhC,QA1bIyH,KA2bAF,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GACrC,MAAfA,EAAIlI,QAzbPwJ,EAAAqS,YAAoB3T,EAAAhJ,KACtBsK,EAAAsS,WAAY,GAEXva,EAAM2I,YAAA,QAAA,yBAAA,YAIP,SAAUC,GACT5I,EAAM2I,YAAA,QAAA,mBAAA,aA8bd,QA1bQuvG,GAAmB99F,EAAK5T,GAic5B,GANAyB,EAAG8C,KA1bC61N,sBAAqB,KA2bzB3xK,IACArC,IAzbA3kD,EAAA8C,KAAA+e,gBAAoB,KA2bpB7hB,EAAGgmD,gBACHhmD,EAAG8C,KA1bK81N,eAAG,KA2bPzmN,EA1bS,CA2bT,GAAIupE,IA1ba,CA2bjB17E,GAAGsS,WA1bS,EA2bZV,EA1bmB6pE,sBAAmBtpE,EAAgBupE,GAAWj9E,KAAM,SAAWC,GAC/D,MA0bXA,EAAIlI,QACJwJ,EAAG2hB,YA1bQjjB,EAAAhJ,KA2bPsK,EAAG2hB,YA1bIxmB,OAAgB,GA2bvBd,EA1bQ8C,OAAO,UAAA,4BAAA6C,EAAA8C,KAAAqQ,gBAAA84B,aAAA50C,WAAA,EAAA+F,KAAA,OA4bnB4C,EAAGsS,WA1bS,EA2bR/T,GACAA,KAEJxG,EAAW2I,YA1bI,QAAgB,yBAA2B,aA4b/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,eAOhE,QAASsmD,KACLxsD,EAAOqI,QAAQ7C,EAAG4mD,YAAa,SAAUM,GACrCA,EAAK47C,kBA1bc,OA+b3B,QAASmsC,GA1bkBn5I,EAAAyI,GA8bvB,GAHAyoD,IACAhnD,EAAG8C,KA1bK61N,sBAAuB,KA2b/Bh0K,IAzbG7uD,EAAU,CACT,GAAA+yB,IA2bI/yB,UAAWkK,EAAG8C,KAAK+e,gBAAgB/rB,UACnCw6G,UAAWtwG,EAAG8C,KAAK81N,eAAe/vM,GAxb3C+xB,GAAmBy8B,qBAAmBxuD,GAAApqB,KAAA,SAAAC,GACrC,MAAAA,EAAAlI,QACYwJ,EAAAgmD,aAAAtnD,EAAAhJ,KACJsK,EAAAgmD,aAAa7qD,OAAA,GACbd,EAAc8C,OAAA,UAAA,6BAAA6C,EAAA8C,KAAA+e,gBAAAS,aAAAjrB,WAAA,EAAA+F,KAAA,OAEf4C,EAAAsS,WAAA,EACC/T,GA2bQA,KAxbJxG,EAAG2I,YAAc,QAAA,yBAAA,aAEzB,SAAYC,GACR5I,EAAI2I,YAAW,QAAgB,mBAAA,eA+b3C,QAASguG,GA1bW5qD,EAAahuD,EAAWyI,GA8bxC,GAHAyB,EAAGsS,WA1bS,EA2bZ00C,IACArC,IACI7uD,EA1bK,CA2bLkK,EAAG2uG,QA1bKhyG,KAAAC,MAAeoD,EAAA8C,KAAA61N,sBAAyB30K,OA2bhDhkD,EAAG4uG,YA1bS5uG,EAAA2uG,QAAaE,KA2bzB,IAAI5zG,IACA6oD,WA1bQ9jD,EAAA8C,KAAA61N,sBAAgC70K,WACxChuD,UAAWkK,EAAA8C,KAAA+e,gBAAwB/rB,UACnCF,OAAQoK,EAAG8C,KAAA81N,eAAQ/vM,GA4bvB24B,GAAkB6wB,iBAAiBp3E,GAAKwD,KAAK,SAAUC,GACnD,GAAmB,MAAfA,EAAIlI,OAAgB,CAzbtBwJ,EAAA6vF,gBAAqBlzF,KAAKC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,MACxBhkD,EAAAsS,WAAA,CACH,IAAA80C,KACD5sD,GAAAqI,QAAa7C,EAAA6vF,gBAAgB,SAAgBhpC,GAC5C,GAAA/N,IACQuO,KAAAR,EAAAQ,KACTI,SAAaZ,EAAWY,SACxBX,OAAoC,UAAvBD,EAAAY,SAA+BZ,EAAAC,UAE5CM,GAAcvvD,KAAAihD,KAEjB94C,EAAA4mD,YAAAQ,MAEOrvD,GAAA2I,YAAa,QAAe,yBAA8B,eA4b/D,SA1bKC,GACR5I,EAAK2I,YAAa,QAAiB,mBAAQ,iBAgcnD,QAAS0lD,GAAYc,GACjB,GAAIA,EAAK47C,kBAAmB,CAzbhC,GAASt8C,GAAA,QAAkBC,EAAAS,EAAAO,UAAA,GACvBd,EAAAnsD,EAAA6P,KAAArK,EAAA6vF,iBAAApoC,SAAAjB,GACIhsD,GAAMqI,QAAA7C,EAAA4mD,YAAA,SAAAC,GACNA,EAAAY,WAAgBjB,IA2bRK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QAAUxrB,SAAY4rB,EAAK47C,kBAAkB/7C,YAtb7F/mD,EAAAqyB,KACIp1B,UA4bJ,KAAK,GAAI/B,KA1bG8E,GAAI4mD,YA2bR5mD,EAAG4mD,YA1bY1rD,GAAG4nG,oBA2blB9iG,EAAGqyB,IAAIp1B,OA1bC+C,EAAA4mD,YAAgB1rD,GAAAusD,UAAmBznD,EAAA4mD,YAAgB1rD,GAAA4nG,kBAAW/7C,OA8b9E2xL,GAAkB14O,EAAGqyB,SAErB20B,KAKR,QA1bQP,GAAAc,GA2bJ,MA1bI3gD,UAAA2gD,EAAqBjkC,UAAA,IA6b7B,QA1bIo1N,GAAe3xL,GA4bf,GADApC,IACIoC,EA1bI,CA2bJ,GA1bI9rD,IACA6oD,WAAQ9jD,EAAA8C,KAAY61N,sBAAS70K,WAC7BhuD,UAAAkK,EAAA8C,KAAA+e,gBAAA/rB,UA2bAF,OAAQoK,EAAG8C,KAAK81N,eAAe/vM,GAC/Bm7B,MA1bGrnD,KAAAqkB,UAAAhhB,EAAAqyB,KAGRmvB,GAAesD,UAAA7pD,GAAAwD,KAAA,SAAAC,GACS,MAAvBA,EAAWlI,QA2bHwJ,EAAGk7C,QAAUx8C,EAAIhJ,KACjBsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAxbjE,SAAAC,GACG5I,EAAA2I,YAAkB,QAAA,mBAAA,4BA+b9B,QA1bOs4N,GAAyB3iN,EAAA0mC,GAE5B,GADAkN,IACG5zC,GAAA0mC,EAAiB,CACjB,GAAK9/C,IACLoZ,UAAgBA,EAChB2mC,MAAAD,GAEA9hD,GACA6oD,WAAA9jD,EAAA8C,KAAwB61N,sBAAA70K,WACxBhuD,UAAAkK,EAAA8C,KAAwB+e,gBAAA/rB,UACxBF,OAAAoK,EAAA8C,KAAA81N,eAA2B/vM,GAC3Bm7B,MAAArnD,KAAiBqkB,UAAAhhB,EAAAqyB,KACjB6yB,UAAAvoD,KAAiBqkB,UAAA/jB,GAEjBukD,GAAiB2D,eAAAlqD,GAAAwD,KAAA,SAAAC,GACA,MAAjBA,EAAAlI,QACAwJ,EAAA47C,aAAoBl9C,EAAAhJ,KACpBsK,EAAAsS,WAAmB,GA4bVva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAKhE,QA1bOw4N,GAAyBh9K,GAE5B,GADAgO,IACGhO,EAAA,CACA,GAAKj/C,IACLoZ,UAAgBrW,EAAA8C,KAAA+e,gBAAAxL,UAChB6lC,WAAAA,GAEAjhD,GACA6oD,WAAA9jD,EAAA8C,KAAwB61N,sBAAA70K,WACxBhuD,UAAAkK,EAAA8C,KAAwB+e,gBAAA/rB,UACxBF,OAAAoK,EAAA8C,KAAA81N,eAA2B/vM,GAC3Bm7B,MAAArnD,KAAiBqkB,UAAAhhB,EAAAqyB,KACjB6yB,UAAAvoD,KAAiBqkB,UAAA/jB,GAEjBukD,GAAiB+D,kBAAAtqD,GAAAwD,KAAA,SAAAC,GACA,MAAjBA,EAAAlI,QACAwJ,EAAAo8C,gBAAoB19C,EAAAhJ,KACpBsK,EAAAsS,WAAmB,GA4bVva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cAKhE,QA1bO04N,GAAyBvnM,GAE5B,GADA2zB,IACG3zB,EAAA,CACA,GAAK50B,IACLoZ,UAAgBrW,EAAA8C,KAAA+e,gBAAAxL,UAChB6lC,WAAAl8C,EAAA8C,KAAqB66C,iBAAAzB,WACrBrqB,cAAAA,GAGA52B,GACA6oD,WAAA9jD,EAAA8C,KAAA61N,sBAA2B70K,WAC3BhuD,UAAAkK,EAAiB8C,KAAA+e,gBAAA/rB,UACjBF,OAAAoK,EAAA8C,KAAiB81N,eAAA/vM,GACjBm7B,MAAArnD,KAAAqkB,UAAoBhhB,EAAAqyB,KACpB6yB,UAAAvoD,KAAiBqkB,UAAA/jB,GAEjBukD,GAAAiE,WAAoBxqD,GAAAwD,KAAA,SAAAC,GACD,MAAnBA,EAAAlI,QACAwJ,EAAAu8C,aAAe79C,EAAAhJ,KA2bNsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,SAxbjE,SAAAC,GACG5I,EAAA2I,YAAoB,QAAA,mBAAA,WA+bhC,QA1bO44N,GAAwBt5M,GACxBA,GACAhgB,EAAA+5H,uBACA/5H,EAAA8C,KAAAiuI,wBAAiB,KACjB/wI,EAAA8zF,YACA9zF,EAAA8C,KAAAsgD,aAAoB,KACpBztD,SAAAqqB,IACAhgB,EAAA+5H;AAAiBC,oBAAA,UAAA3xG,KAAA,MAAA2xG,oBAAA,WAAA3xG,KAAA,MACjBroB,EAAAsS,WAAoB,KA6bnBtS,EAAG+5H,uBAzbJ/5H,EAAA8C,KAAAiuI,wBAAkB,KA2bjB/wI,EAAG8zF,YACH9zF,EAAG8C,KAAKsgD,aAAe,MAI/B,QA1bOm2K,GAAwBlxM,GAE3B,GADAq9B,IACGr9B,EAAA,CACA,GAAAprB,IACAoZ,UAAArW,EAAiB8C,KAAA+e,gBAAAxL,UACjB6lC,WAAiBl8C,EAAA8C,KAAA66C,iBAAAzB,WACjBrqB,cAAoB7xB,EAAA8C,KAAA+6C,oBAAAhsB,cACpB7R,OAAAhgB,EAAA8C,KAAiB+7C,iBAAA7+B,OACjB++B,SAAA/+C,EAAiB8C,KAAAiuI,wBAAA1oH,MAGjBptB,GA2bK6oD,WAAY9jD,EAAG8C,KAAK61N,sBAAsB70K,WAzb/ChuD,UAAAkK,EAAkB8C,KAAA+e,gBAAA/rB,UA2bbF,OAAQoK,EAAG8C,KAAK81N,eAAe/vM,GAC/Bm7B,MAAOrnD,KAAKqkB,UAAUhhB,EAAGqyB,KAzb5B6yB,UAAAvoD,KAAkBqkB,UAAA/jB,GAEpBukD,GAAAoE,WAAwB3qD,GAAAwD,KAAA,SAAAC,GACxB,MAAAA,EAAAlI,QACAwJ,EAAA8zF,SAAiBp1F,EAAAhJ,KACjBsK,EAAAsS,WAAiB,EACjB4/F,EAAoBlyG,EAAA8C,KAAA+e,gBAAA/rB,YAEpBiC,EAAiB2I,YAAA,QAAA,yBAAA,YAEjB,SAAAC,GACA5I,EAAe2I,YAAA,QAAA,mBAAA,cAKtB,QAASwxG,GAAAhqD,GAEL,GADAywL,IACGzwL,EAAA,CACA,GAAAwzB,IAAA,CACAhhC,GAAiBmQ,iBAAA3C,EAAAwzB,GAAAj9E,KAAA,SAAAC,GACA,MAAjBA,EAAAlI,QACAwJ,EAAA44O,WAAoBl6O,EAAAhJ,KACpBsK,EAAA64O,SAAmB,EACnB74O,EAAAsS,WAAe,EA2bNtS,EAAGgT,YAAa,GAEhBjb,EAAW2I,YAAY,QAAS,yBAA0B,0BAxbjE,SAAAC,GACF5I,EAAA2I,YAAiB,QAAA,mBAAA,4BAgcxB,QA1bOi7C,GAAkBtlC,EAAAvgB,EAAAinD,EAAAx+C,GA4brB,GADAu6O,IACIziO,GAAavgB,GAAainD,EAAO,CAzbzC,GAAS9hD,IACFob,UAAAA,EACAvgB,UAAeA,EA2bVknD,MAAOD,EAzbZE,aAAkB,EA4bjBvC,GAAmBwC,sBAAsBjiD,GAAKwD,KAAK,SAAUC,GAzb/C,MAAbA,EAAAlI,SA2bOwJ,EAAG+4O,gBAAkBr6O,EAAIhJ,KAzblCsK,EAAA64O,SAAkB,EA2bL74O,EAAG+4O,gBAAgB59O,OAAS,GAC5Bd,EAAQ8C,OAAO,UAAW,6BAA+B6C,EAAGyW,gBAAgBC,aAAerf,WAAW,EAAM+F,KAAM,OAxb/H4C,EAAAsS,WAAkB,EA4bL/T,GACAA,IAzbTyB,EAAAgT,YAAY,MAicvB,QA1bOipC,GAAyBnmD,EAAAomD,EAAA39C,GAE5B,GADAy6O,IACG98L,EAAiB,CACjB,GAAKjhD,IACLnF,UAAgBA,EAChBomD,WAAAA,EACAe,aAAA,EAEAvC,GAAA2C,yBAAwBpiD,GAAAwD,KAAA,SAAAC,GACA,MAAxBA,EAAAlI,SACAwJ,EAAAi5O,mBAA2Bv6O,EAAAhJ,KAC3BsK,EAAA64O,SAAiB,EACjB74O,EAAAi5O,mBAAiB99O,OAAA,GACjBd,EAAoB8C,OAAA,UAAA,gCAAA6C,EAAAk5O,oBAAAr9L,cAAAxkD,WAAA,EAAA+F,KAAA,OAEpB4C,EAAAsS,WAAiB,EACjBtS,EAAAgT,YAAoB,EACpBzU,GACAA,QAicP,QAAS89C,GAA+BvmD,EAAWomD,EAAYrqB,EAAetzB,GAxblF,GADH46O,IACGrjP,GAAAomD,GAAArqB,EAAA,CA2bY,GAAI52B,IACAnF,UAAWA,EA1b3BomD,WAAAA,EACYrqB,cAAAA,EACIorB,aAAA,EA6bkBtnD,UAAlBk8B,GA1bP6oB,EAAe6C,0BAAoCtiD,GAAAwD,KAAA,SAAAC,GACpC,MAAAA,EAAAlI,SACXwJ,EAAAo5O,gBAAA16O,EAAAhJ,KA4bWsK,EAAG64O,SAAU,EA1bT74O,EAAAo5O,gBAAgBj+O,OAAS,GAChCd,EAAA8C,OAAgB,UAAA,+BAAA6C,EAAA69C,oBAAAlsB,iBAAAt6B,WAAA,EAAA+F,KAAA,OAEhB4C,EAAAsS,WAAA,EACdtS,EAAAgT,YAAiC,EACfzU,GA4bGA,QAnbxB,QAAG86O,GAAkBr5N,GA4bbA,IA1bLhgB,EAAA8C,KAAY26N,uBACZz9N,EAAOs5O,2BAAA,KACG3jP,SAAVqqB,GA4bShgB,EAAGu5O,yBAA4Bv/G,oBAAqB,UAAW3xG,KAAM,MAAS2xG,oBAAqB,WAAY3xG,KAAM,MACrHroB,EAAGgT,YAAa,EAChBhT,EAAG64O,SAAU,IAzbtB74O,EAAAw5O,mBACAx5O,EAAA8C,KAAA26N,uBACAz9N,EAAAs5O,2BAAgB,OAoBnB,QAAGG,KACH,GAAAC,GAAAl/O,EAAA+wD,KAAAvrD,EAAA4mD,aAAAk8C,kBAAA/7C,OACI9rD,GACAnF,UAAYkK,EAAA8C,KAAA+e,gBAAc/rB,UAC9BkqB,OAAAhgB,EAAA25O,oBAAA35N,OA4bQw8D,WAAYx8E,EAAG8C,KAAKsgD,aAAansB,QACjC8nB,SAAU/+C,EAAGs5O,2BAA2BjxN,KA1b7C+O,WAAiBsiN,EA4bZ51L,WAAY9jD,EAAG8C,KAAK61N,sBAAsB70K,WA1bhD1jD,SAAQ2U,EAAqB1U,OA4bvB48C,aAAa,EAzbjBvC,GAAe4hC,0BAA8BrhF,GAAKwD,KAAA,SAAeC,GAC1C,MAAfA,EAAIlI,QACJwJ,EAAGw5O,gBAAkB96O,EAAAhJ,OAClBsK,EAAA8C,KAAA26N,qBAAYz9N,EAAA8C,KAAA26N,oBAAAtiO,OAAA,GAAA6E,EAAAw5O,gBAAAr+O,OAAA,KACZ6E,EAAA64O,SAAA,EACH9gP,EAAW2I,YAAY,OAAS,8CAA0B,cA8b1DV,EAAGtJ,MAAO,EA1bdsJ,EAAA64O,SAAe,EACX9gP,EAAW2I,YAAY,QAAS,mCAAoB,YA6bzD,SAAUC,MAGjB,QA3bOi5O,KACH55O,EAAA8C,KAAA26N,qBAAA,IAAAz9N,EAAA8C,KAAA26N,oBAAAtiO,OAMI6E,EAAAgT,YAAI,GALRhT,EAAA65O,eACG75O,EAAAgT,YAAK,EACLhT,EAAA64O,SAAA,GAkcP,QAASiB,GA3bUh3O,GA4bf,GAAI42O,GA3bYl/O,EAAG+wD,KAAAvrD,EAAY4mD,aAAYk8C,kBAAA/7C,OA4bvC9rD,GACA6oD,WAAY9jD,EAAG8C,KAAK61N,sBAAsB70K,WAC1ChuD,UA3bWkK,EAAA8C,KAAA+e,gBAAY/rB,UA4bvBshC,WA3bYsiN,EA4bZp2L,cA3bYtjD,EAAA8C,KAAAsgD,aAAAE,cA4bZrsB,QAASj3B,EA3bE8C,KAAAsgD,aAAAnsB,QA6bfuqB,GAAkB0wB,cAAcj3E,GAAKwD,KAAK,SAAUC,GAChD,GA3bkB,MAAfA,EAAAlI,OAAe,CACdwJ,EAAA65O,YAAWn7O,EAAAhJ,KA4bXsK,EAAGgT,YAAa,EAChBhT,EAAG64O,SAAU,CAGb,KAAK,GADDkB,GAAa/5O,EAAG65O,YAAY1+O,OACvBkW,EAAQ,EAAGA,EAAQ0oO,EAAY1oO,IAAS,CAC7C,GAAIpW,GAAM0B,KAAKC,MAAMoD,EAAG65O,YAAYxoO,GAAOuhG,WAzbhD5yG,GAAQ65O,YAAGxoO,GAAauhG,WAAgB33G,EA8bvC,IAAK,GAAIC,GAAI,EAAGA,EAAI6+O,EAAY7+O,IAAK,CACjC,GAAI60F,GAAOpzF,KAAKC,MAAMoD,EAAG65O,YAAY3+O,GAAG23G,eACxC7yG,GAAG65O,YAAY3+O,GAAG23G,eAAiB9iB,EAzb/C/vF,EAAAsS,WAAA,MAGItS,GAAA64O,SAAW,EACP74O,EAAAgT,YAAK,IAgcjB,QAASgnO,KACLh6O,EAAGsS,WA3bS,CA4bZ,IAAIonO,GA3bYl/O,EAAG+wD,KAAAvrD,EAAa4mD,aAAYk8C,kBAAA/7C,OA4bxCkzL,GA3bY97L,aA4bZ+7L,GAAa,CA7ajB,IA8aA1/O,EAAOqI,QA3bQ7C,EAAA8C,KAAA26N,oBAAY,SAAA7oM,GA4bnB50B,EAAG8C,KA3bKsgD,aAAAovC,SAAA59D,EAAA49D,QA4bRxyF,EAAG8C,KA3bKsgD,aAAA2nC,mBAAAn2D,EAAAm2D,iBA4bRmvJ,GA3bO,EA6bPniP,EAAW2I,YAAY,QAAS,4BAA6B,SAEjE,IA3bIo4C,IA4bAwK,cAAiB1uB,EAAK0uB,cACtBrrB,OAAUrD,EAAK7b,GAEnBkhO,GAAS97L,SAAStmD,KAAKihD,KAzbxBohM,GAAW,EAAA,CACd,GAAAj/O,IACA6oD,WAAA9jD,EAAA8C,KAAA61N,sBAAA70K,WACIhuD,UAAWkK,EAAA8C,KAAA+e,gBAAA/rB,UACRshC,WAAUsiN,EACVp2L,cAActjD,EAAG8C,KAAAsgD,aAAQE,cACxBrsB,QAAMj3B,EAAA8C,KAAAsgD,aAAAnsB,QACNnjB,UAAAiB,EAAoB1U,OACpB85O,cAAcx9O,KAAKqkB,UAAAi5N,GA6bvBz4L,GAAkB4wB,cAAcn3E,GAAKwD,KAAK,SAAUC,GA1bpD,GAAkB,MAAlBA,EAAAlI,OAAkB,CACVwJ,EAAA65O,YAAen7O,EAAKhJ,IAEpB,KAAG,GADAqkP,GAAA/5O,EAAA65O,YAA6B1+O,OAC7BkW,EAAY,EAAAA,EAAA0oO,EAAA1oO,IAAA,CACX,GAAApW,GAAA0B,KAAWC,MAAAoD,EAAA65O,YAAAxoO,GAAAuhG,WACf5yG,GAAO65O,YAAWxoO,GAAAuhG,WAAiB33G,EA6bnC,IAAK,GA3bGC,GAAA,EAAQA,EAAA6+O,EAAA7+O,IAAA,CA4bZ,GA3bI60F,GAAApzF,KAAYC,MAAAoD,EAAA65O,YAAA3+O,GAAA23G,eA4bhB7yG,GAAG65O,YA3bY3+O,GAAA23G,eAAa9iB,EA6bhC/vF,EAAGgT,YA3bU,EA4bbhT,EAAGsS,WAAW,EA1bdtS,EAAG64O,SAAA,EA4bH9gP,EA3bG2I,YAAA,UAAA,yBAAA,OACHgR,QAGJ1R,GAAA64O,SAAW,EA4bP74O,EAAGsS,WAAW,EACdva,EAAW2I,YAAY,QAAS,oBAAqB,UAMrE,QA3bQgR,KA4bJ1R,EAAG8C,QACH9C,EAAGgT,YA3bQ,EA4bX2xC,IACAg0L,IACAzmO,IAGJ,QA3bQwzC,KA4bJ1lD,EAAG8zF,YACH9zF,EAAG8C,KAAKsgD,aAAe,KACvBpjD,EAAG64O,SA3bU,EA4bb74O,EAAGgT,YA3bY,EA4bf2lO,IAEJ,QAASnzL,KACLxlD,EAAGu8C,gBACHv8C,EAAG8C,KA3bCiuI,wBAAqB,KA4bzB/wI,EAAG8C,KA3bI+7C,iBAAA,KA4bP6G,IAEJ,QAASwE,KACLlqD,EAAGo8C,mBACHp8C,EAAG8C,KAAK+6C,oBAAsB,KA1blC2H,IA6bA,QAASyE,KACLjqD,EAAG47C,gBA1bP57C,EAAA8C,KAAS66C,iBAAkB,KACvBuM,IA6bJ,QA3bQvF,KA4bJ3kD,EAAGk7C,WACHl7C,EAAG8C,KA3bK05C,YAAc,KA4btByN,IAGJ,QAASmwL,KACLp6O,EAAG8C,KA3bC26N,uBA4bJz9N,EAAGw5O,mBACHx5O,EAAG64O,SA3bS,EA6bhB,QAASM,KACLn5O,EAAG25O,oBA3boB,KA4bvB35O,EAAGs5O,2BAA6B,KAChCt5O,EAAGo5O,mBACHgB,IAEJ,QAASpB,KACLh5O,EAAGi5O,sBACHj5O,EAAGq6O,uBAAyB,KA1bhClB,IA6bA,QA3bQL,KA4bJ94O,EAAG+4O,mBACH/4O,EAAGk5O,oBA3bgB,KA4bnBF,IAEJ,QA3bQL,KA4bJ34O,EAAGs6O,eA3biB,KA4bpBt6O,EAAG44O,cACHE,IAvqBJ,GAAI94O,GA1bIC,IA4bRD,GAAGqU,kBA1bmBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA2btBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA1bS,EA2bZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YA1bQE,GA8bfzU,EAAGsS,WAAY,EACftS,EAAGgT,YAAa,EAChBjb,EAAW2c,SAAU,EACrB1U,EAAG8C,QAEH9C,EAAGw5O,mBAEHx5O,EAAG+S,WAAY,EACf/S,EAAGtJ,MAAO,EACVsJ,EAAG64O,SAAU,EAKb74O,EAAGiwG,sBA1bqBA,EA2bxBjwG,EAAGivI,uBA1byBA,EA2b5BjvI,EAAG0uG,cAAgBA,EACnB1uG,EAAGomD,YAAcA,EACjBpmD,EAAG04O,kBAAoBA,EACvB14O,EAAGg5N,0BAA4BA,EAC/Bh5N,EAAGs5N,4BAA8BA,EACjCt5N,EAAGu5N,gCAAkCA,EACrCv5N,EAAGk5N,oCAAsCA,EACzCl5N,EAAGo5N,kCAAoCA,EAGvCp5N,EAAGkyG,cAAgBA,EACnBlyG,EAAG27C,uBA1bQA,EA2bX37C,EAAGi8C,iCAAmCA,EACtCj8C,EAAGq8C,+BAAiCA,EACpCr8C,EAAGq5O,yBAA2BA,EAE9Br5O,EAAG85O,YAAcA,EAzbjB95O,EAAAg6O,YAASA,EA2bTh6O,EAAG45O,SA1bQA,EA2bX55O,EAAG0R,OAASA,EACZ1R,EAAGy5O,6BAA+BA,EAzblCzyL,GA2bA,IAAIjyC,GAAgB5a,EAAsBgG,uBAzbtCgS,EAAI4C,EAAqBJ,gBAAYxC,SA2bzCD,KAGAlS,EAAGu4N,cA1be3iO,OAAA,QAAaizB,GAAQ,IA4brCjzB,OAAQ,gBAAiBizB,GAAI,sNA/DnCz0B,QACKC,OAAO,2BACPe,WAAW,iBAAkBqjP,MAgrBtC,WACI,YAOA,SAAS8B,GA3bkBxgP,EAAYhC,EAASyC,EAAAH,EAAoBF,EA4bhE6X,EAAgBJ,EAAwBgpC,EAAsB4G,EAAmB/2C,GAqEjF,QAASyH,KACLF,EA3bOI,mBAAAD,GAAA1T,KAAA,SAAAC,GACA,MAAAA,EAAAlI,QACAwJ,EAAAqS,YAAK3T,EAAAhJ,KACLsK,EAAAsS,WAAW,GA6bVva,EAAW2I,YAAY,QAAS,yBAA0B,YAE/D,SAAUC,GA1bjB5I,EAAS2I,YAAA,QAAA,mBAAsC,aA+b/C,QAASuvG,GA3bsB99F,EAAA5T,GA4b3B,GAAI4T,EA3bI,CA4bJnS,EAAGsjG,IA3bCzhF,gBAAkB,KA4btB7hB,EAAG2hB,eACH3hB,EAAGsjG,IA3bCq1H,sBAAkB,KA4btB34N,EAAGgmD,gBACFhmD,EAAGsjG,IAAIs1H,eAAiB,KA1bzB5xK,GA4bA,IA3bI00B,IAAY,CA4bhB17E,GAAGsS,WA3bY,EA4bfV,EA3boB6pE,sBAAetpE,EAAAupE,GAAAj9E,KAAA,SAAAC,GACnB,MAAZA,EAAOlI,QACPwJ,EAAA2hB,YAAgBjjB,EAAAhJ,KA4bRsK,EAAG2hB,YAAYxmB,OAAS,GA1bpCd,EAAkB8C,OAAA,UAAgB,4BAAoB6C,EAAAsjG,IAAAnwF,gBAAA84B,aAC1C50C,WAAW,EACZ+F,KAAW,OA8bd4C,EA3bGsS,WAAA,EACH/T,GA4bIA,KAzbRxG,EAAW2I,YAAY,QAAS,yBAAoB,aA6brD,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,kBAxb5DV,GAAAsjG,IAAAzhF,gBAAA,KACI7hB,EAAA2hB,eACA3hB,EAAAsjG,IAAIq1H,sBAAY,KAChB34N,EAAAgmD,gBA4bChmD,EA3bGsjG,IAAIs1H,eAAe,KA6bvB54N,EAAGw6O,YA3bQ13I,kBAAU,KA6brB9iG,EAAGw8C,YA3bQ,KA6bXwK,IAKR,QAASA,KACLxsD,EAAOqI,QAAQ7C,EAAGumD,aAAc,SAAUW,GACtCA,EAAKy+D,kBAAoB,KACzBz+D,EAAKZ,sBAAwB,OAIrC,QA3bQ2oF,GAAUn5I,EAAAyI,GA4bd,GAAIzI,EA3bI,CA4bJkK,EAAGsjG,IA3bCq1H,sBAAW,KA4bf34N,EAAGw6O,YA3bQ13I,kBAAA,KA6bX9iG,EAAGgmD,gBAEHgB,GAEA,IAAIn+B,IACA/yB,UA3bWA,EA4bXw6G,UA3bQtwG,EAAAsjG,IAAQs1H,eAAO/vM,GA6b3B+xB,GA3bWy8B,qBAAYxuD,GAAApqB,KAAA,SAAAC,GA4bA,MAAfA,EAAIlI,QA1bJwJ,EAAAgmD,aAAItnD,EAAAhJ,KACAsK,EAAAgmD,aAAA7qD,OAAA,GACDd,EAAA8C,OAAa,UAAA,6BAAA6C,EAAAsjG,IAAAzhF,gBAAAS,aA4bRjrB,WAAW,EACX+F,KAAM,OAGd4C,EAAGsS,WAAY,EACX/T,GA1bXA,KAEDxG,EAAW2I,YAAY,QAAA,yBAAA,aA6bpB,SA3bCC,GACA5I,EAAA2I,YAAY,QAAA,mBAAA,kBAGhBV,GAAAsjG,IAAAq1H,sBAAmB,KA4bnB34N,EAAGgmD,gBACHhmD,EAAGw6O,YA3bQ13I,kBAAqB,KA4bhC97C,IAOR,QAAS0nD,GA3bW5qD,EAAAhuD,EAAAyI,GA6bhB,GADAyB,EAAGsS,WAAY,EACXwxC,GAAchuD,EAAW,CACzBkxD,IACAhnD,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAGsjG,IAAIq1H,sBAAsB30K,OACrDhkD,EAAG4uG,YAAc5uG,EAAG2uG,QAAQE,KAC5B,IAAI5zG,IA1bH6oD,WAAA9jD,EAAAsjG,IAAAq1H,sBAA0C70K,WAC/ChuD,UAAAkK,EAAAsjG,IAAAzhF,gBAAA/rB,UACIF,OAAAoK,EAAasjG,IAAAs1H,eAAc/vM,GA6b3B24B,GA3be6wB,iBAAAp3E,GAAAwD,KAAA,SAAAC,GACX,GAAY,MAAZA,EAAAlI,OAAY,CACZwJ,EAAA6vF,gBAAelzF,KAAAC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,MACfhkD,EAAAsS,WAAa,CA4bT,IAAI80C,KA1bR5sD,GAAAqI,QAAkB7C,EAAA6vF,gBAAW,SAAAhpC,GAC7B,GAAA/N,IACYuO,KAAAR,EAAAQ,KACDI,SAAAZ,EAAAY,SACAX,OAAU,UAAAD,EAAAY,SAAAZ,EAAAC,UA6bbM,GA3bIvvD,KAAQihD,KA6bhB94C,EAAG4mD,YA3bIQ,MA8bPrvD,GA3bQ2I,YAAA,QAAA,yBAAA,cA4bRV,EAAGsS,WAAY,GAEpB,SAAU3R,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,cACpDV,EAAGsS,WAAY,QAxb3B00C,IA6bIhnD,GAAGw6O,YA3bS13I,kBAAsB,KA+btC,QAAS18C,GA3bMc,GA4bX,GAAIA,EA3bI47C,kBAAa,CA4bjB,GAAIt8C,GA3bG,QAAAC,EAAAS,EAAA47C,kBAAAr7C,UAAA,GACHd,EAAGnsD,EAAkB6P,KAAArK,EAAA6vF,iBACrBpoC,SAAQjB,GA6bZhsD,GAAOqI,QAAQ7C,EAAG4mD,YAAa,SAAUC,GACjCA,EAAEY,WAAajB,IACfK,EAAEC,OAAStsD,EAAOyC,OAAO0pD,EAAeG,QACpCxrB,SAAY4rB,EAAK47C,kBAAkB/7C,YAK/C/mD,EAAG4mL,UAAY1/H,EAAK47C,kBAEpB9iG,EAAGqyB,KACCp1B,UAEJ,KAAK,GAAI/B,KAAK8E,GAAG4mD,YACT5mD,EAAG4mD,YAAY1rD,GAAG4nG,oBAClB9iG,EAAGqyB,IAAIp1B,OAAO+C,EAAG4mD,YAAY1rD,GAAGusD,UAAYznD,EAAG4mD,YAAY1rD,GAAG4nG,kBAAkB/7C,OAvbhG2xL,GAAS14O,EAAA4mL,eAGD5/H,IA6bJhnD,GAAGw8C,YA3ba,KA4bhBx8C,EAAGk7C,WAGP,QA3bQuL,GAAUc,GA4bd,MA3bI3gD,UAAA2gD,EAAajkC,UAAA,IA+brB,QAASo1N,GA3bMxxL,GA4bX,GAAIA,EA3bI,CA6bJlnD,EAAGsjG,IAAI3lD,iBA3bY,KA4bnB39C,EAAG47C,gBACH57C,EAAGsjG,IA3bIzlD,oBAAA,KA4bP79C,EAAGo8C,mBACHp8C,EAAGsjG,IA3bIzkD,iBAAU,KA4bjB7+C,EAAGu8C,gBACHv8C,EAAGsjG,IAAIytC,wBAA0B,KA1blC/wI,EAAA8zF,YA4bC9zF,EAAGsjG,IAAIlgD,aAAe,IACtB,IAAInoD,IA1bH6oD,WAAW9jD,EAAAsjG,IAAAq1H,sBAAA70K,WACRhuD,UAAKkK,EAAAsjG,IAAAzhF,gBAA0B/rB,UAChCF,OAAAoK,EAAAsjG,IAAcs1H,eAAA/vM,GACdm7B,MAAArnD,KAAaqkB,UAAAhhB,EAAAqyB,KA6bhBmvB,GAAkBsD,UAAU7pD,GAAKwD,KAAK,SAAUC,GA1b/C,MAAAA,EAAAlI,QACEwJ,EAAAk7C,QAAax8C,EAAAhJ,KA4bRsK,EAAGsS,WAAY,GAEfva,EAAW2I,YAAY,QAAS,yBAA0B,0BAzblE,SAAaC,GACb5I,EAAM2I,YAAA,QAAA,mBAAA,+BAycNV,GAAGw8C,YA3bU,KA4bbx8C,EAAGk7C,WAGHl7C,EAAGsjG,IAAI3lD,iBAAmB,KAC1B39C,EAAG47C,gBACH57C,EAAGsjG,IA3bCzlD,oBAAoB,KA4bxB79C,EAAGo8C,mBACHp8C,EAAGsjG,IAAIzkD,iBA3bmB,KA4b1B7+C,EAAGu8C,gBACHv8C,EAAGsjG,IA3bIytC,wBAAY,KA4bnB/wI,EAAG8zF,YACH9zF,EAAGsjG,IA3bElgD,aAAA,KAgcb,QAAS41K,GAA0B3iN,EAAW0mC,GAC1C,GAAI1mC,EAAW,CA1bnBrW,EAAS47C,gBACF57C,EAAAsjG,IAAA3lD,iBAAW,KACV39C,EAAA47C,gBACA57C,EAAAsjG,IAAAzlD,oBAAyB,KACzB79C,EAAAo8C,mBACJp8C,EAAOsjG,IAAAzkD,iBAAgB,KACnB7+C,EAAAu8C,gBA4bAv8C,EAAGsjG,IA3bIytC,wBAAkB,KA4bzB/wI,EAAG8zF,YACH9zF,EAAGsjG,IA3bIlgD,aAAA,IA4bP,IA3bInmD,IA4bAoZ,UAAWA,EA1bX2mC,MAAOD,GAEP9hD,GA4bA6oD,WAAY9jD,EAAGsjG,IAAIq1H,sBAAsB70K,WA1b7ChuD,UAASkK,EAASsjG,IAAAzhF,gBAAK/rB,UA4bnBF,OAAQoK,EAAGsjG,IAAIs1H,eAAe/vM,GA1blCm7B,MAAArnD,KAAaqkB,UAAMhhB,EAAAqyB,KACf6yB,UAAMvoD,KAAAqkB,UAAA/jB,GA6bVukD,GA3bkB2D,eAAKlqD,GAAAwD,KAAgB,SAAAC,GACvB,MAAZA,EAAAlI,QACAwJ,EAAA47C,aAAkBl9C,EAAKhJ,KACvBsK,EAAAsS,WAAiB,GAEjBva,EAAe2I,YAAK,QAAU,yBAAA,aAElC,SAAAC,GACI5I,EAAQ2I,YAAW,QAAK,mBAAA,kBA8b5BV,GAAG47C,gBACH57C,EAAGsjG,IAAI3lD,iBA3be,KA4btB39C,EAAG47C,gBACH57C,EAAGsjG,IAAIzlD,oBAAsB,KAC7B79C,EAAGo8C,mBACHp8C,EAAGsjG,IAAIzkD,iBA3bgB,KA4bvB7+C,EAAGu8C,gBACHv8C,EAAGsjG,IAAIytC,wBAA0B,KACjC/wI,EAAG8zF,YACH9zF,EAAGsjG,IAAIlgD,aA3be,KA+b9B,QAAS81K,GAAoCh9K,GACzC,GAAIA,EA3bS,CA4bTl8C,EAAGsjG,IAAIzlD,oBA3bc,KA4brB79C,EAAGo8C,mBACHp8C,EAAGsjG,IAAIzkD,iBA3bY,KA4bnB7+C,EAAGu8C,gBACHv8C,EAAGsjG,IAAIytC,wBAA0B,KACjC/wI,EAAG8zF,YACH9zF,EAAGsjG,IAAIlgD,aAAe,IACtB,IAAInmD,IA1bHi/C,WAASA,GAGdjhD,GACA6oD,WAAA9jD,EAAAsjG,IAAAq1H,sBAAA70K,WACAhuD,UAAAkK,EAAAsjG,IAAAzhF,gBAAA/rB,UA4bQF,OAAQoK,EAAGsjG,IAAIs1H,eAAe/vM,GAC9Bm7B,MAAOrnD,KAAKqkB,UAAUhhB,EAAGqyB,KA1b5B6yB,UAAYvoD,KAAAqkB,UAAA/jB,GAEdukD,GAAK+D,kBAAetqD,GAAAwD,KAAA,SAAAC,GACV,MAAVA,EAAUlI,QACVwJ,EAAAo8C,gBAAa19C,EAAAhJ,KAChBsK,EAAAsS,WAAA,GAEKva,EAAY2I,YAAA,QAAA,yBAAA,gBAEd,SAAKC,GACA5I,EAAA2I,YAAmB,QAAA,mBAAA,qBAG/BV,GAASsjG,IAAAzlD,oBAAmB,KACrB79C,EAAAo8C,mBACAp8C,EAAAsjG,IAAKzkD,iBAAsB,KAC9B7+C,EAAAu8C,gBA4bIv8C,EAAGsjG,IAAIytC,wBAA0B,KA1bzC/wI,EAAS8zF,YACF9zF,EAAAsjG,IAAAlgD,aAAe,KAItB,QAASg2K,GAAWvnM,GAChB,GAAGA,EAAU,CACV7xB,EAAAsjG,IAAKzkD,iBAAc,KACtB7+C,EAAAu8C,gBA4bIv8C,EAAGsjG,IAAIytC,wBAA0B,KACjC/wI,EAAG8zF,YA1bX9zF,EAASsjG,IAAAlgD,aAAe,IACjB,IAAKnmD,IACL40B,cAAkBA,GAGhB52B,GACF6oD,WAAA9jD,EAAAsjG,IAAsBq1H,sBAAA70K,WACtBhuD,UAAAkK,EAAAsjG,IAAAzhF,gBAA6B/rB,UAC7BF,OAAAoK,EAAAsjG,IAAkBs1H,eAAA/vM,GACrBm7B,MAAArnD,KAAAqkB,UAAAhhB,EAAAqyB,KA4bQ6yB,UAAWvoD,KAAKqkB,UAAU/jB,GAzb/BukD,GAAAiE,WAAqBxqD,GAAAwD,KAAA,SAAAC,GACrB,MAAAA,EAAAlI,QACHwJ,EAAAu8C,aAAA79C,EAAAhJ,KA4bYsK,EAAGsS,WAAY,GAzbxBva,EAAkB2I,YAAA,QAAA,yBAAA,SAErB,SAAAC,GA4bQ5I,EAAW2I,YAAY,QAAS,mBAAoB,cAvb5DV,GAAAsjG,IAAAzkD,iBAAA,KA4bI7+C,EAAGu8C,gBACHv8C,EAAGsjG,IAAIytC,wBAA0B,KACjC/wI,EAAG8zF,YA1bN9zF,EAAAsjG,IAAAlgD,aAAA,KAGT,QAAAk2K,GAAAt5M,GACYA,GACPhgB,EAAAsjG,IAAWytC,wBAA0B,KA6b9B/wI,EAAG8zF,YACH9zF,EAAGsjG,IAAIlgD,aAAe,KA3bzBztD,SAAAqqB,IACLhgB,EAAA+5H,sBACSC,oBAAA,UA6bO3xG,KAAM,MA1bT2xG,oBAAA,WACV3xG,KAAA,SAIAroB,EAAAsjG,IAAAytC,wBAAA,KACC/wI,EAAA8zF,YACD9zF,EAAAsjG,IAAAlgD,aAAA,MAgcH,QAASm2K,GAAgClxM,GA3btC,GAAAA,EAAA,CACAroB,EAAA8zF,YACI9zF,EAAAsjG,IAAAlgD,aAAc,IA6bb,IAAInmD,IACAoZ,UAAWrW,EAAGsjG,IAAIzhF,gBAAgBxL,UA3b3C6lC,WAAYl8C,EAAAsjG,IAAA3lD,iBAAAzB,WACZrqB,cAAa7xB,EAAAsjG,IAAAzlD,oBAAAhsB,cACL7R,OAAAhgB,EAAUsjG,IAAAzkD,iBAAA7+B,OAClB++B,SAAY/+C,EAAAsjG,IAAAytC,wBAAA1oH,MAGZptB,GACC6oD,WAAS9jD,EAAAsjG,IAAAq1H,sBAAA70K,WA6bDhuD,UAAWkK,EAAGsjG,IAAIzhF,gBAAgB/rB,UA3b3CF,OAAUoK,EAAAsjG,IAAAs1H,eAAA/vM,GACDm7B,MAAArnD,KAAAqkB,UAAAhhB,EAAAqyB,KA6bA6yB,UAAWvoD,KAAKqkB,UAAU/jB,GA1bnCukD,GAAAoE,WAAwB3qD,GAAAwD,KAAA,SAAAC,GACC,MAAzBA,EAAAlI,QAEAwJ,EAAc8zF,SAAAp1F,EAAAhJ,KACdsK,EAAA8zF,SAAoB34F,OAAA,GACpBd,EAAA8C,OAA4B,UAAA,yBAAA6C,EAAAsjG,IAAAytC,wBAAA/W,qBAC5B3iI,WAAA,EACA+F,KAAA,OAGA4C,EAAAsS,WAAmB,GAEnBva,EAAsB2I,YAAA,QAAA,yBAAA,SAEtB,SAAaC,GACb5I,EAAW2I,YAAA,QAAA,mBAAA,cAIdV,GAAA8zF,YA6bQ9zF,EAAGsjG,IAAIlgD,aAAe,KAI9B,QA5bQq3L,KA6bJz6O,EAAGsS,WAAY,CACLtS,GAAG4mL,SAEb5mL,GAAGumD,eACH,IAAItrD,IA3bR6oD,WAAA9jD,EAAAsjG,IAAAq1H,sBAAA70K,WACIhuD,UAAQkK,EAAAsjG,IAAAzhF,gBAAA/rB,UACJF,OAAAoK,EAAAsjG,IAAAs1H,eAAA/vM,GA6bAy6B,cAAetjD,EAAGsjG,IAAIlgD,aAAaE,cA1b3C9B,GAAgB6wB,iBAAAp3E,GAAAwD,KAAA,SAAAC,GACZ,GAAe,MAAfA,EAAAlI,OAAe,CACPwJ,EAAA06O,YAAe/9O,KAAKC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,MACpBhkD,EAAGsS,WAAA,CACAm0C,GAAYzmD,EAAA4mL,UAAAn/H,SA6bf,KA5bG,GAAAvsD,KAAA8E,GAAA06O,YACHj0L,EAAWzmD,EAAA06O,YAAqBx/O,GAAAusD,WAAAhB,EAA0BzmD,EAAA4mL,UAAAn/H,WA6blDznD,EAAGumD,aAAa1uD,KAAKmI,EAAG06O,YAAYx/O,GAG5C,IAAIksD,KACJ5sD,GAAOqI,QAAQ7C,EAAGumD,aAAc,SAAUM,GACtC,GAAI/N,IA3bXuO,KAAAR,EAAAQ,KACUI,SAAAZ,EAAAY,SACJX,OAAkB,UAAlBD,EAAAY,SAAkBZ,EAAAC,UAElBM,GAAAvvD,KAAAihD,KAEH94C,EAAAumD,aAAIa,KAmchB,QAASo+D,GA5bct+D,GA8bnB,GAAIA,EAAKu+D,kBA5bW,CA6bhB,GAAIj/D,GAAW,QA5bOC,EAAAS,EAAAO,UAAA,GA6blBd,EAAiBnsD,EAAO6P,KAAKrK,EAAG06O,aAChCjzL,SAAYjB,GAEhBhsD,GAAOqI,QA5bK7C,EAAAumD,aAAA,SAAAM,GA6bJA,EAAEY,WA5bEjB,IA6bJK,EAAEC,OA5bCtsD,EAAAyC,OAAA0pD,EAAAG,QACHxrB,SAAW4rB,EAAAu+D,kBAAqB1+D,YAicxC/mD,EA5bGqyB,KACAp1B,UAEH,KAAG,GAAI/B,KAAA8E,GAAAumD,aACJvmD,EAAAumD,aAAerrD,GAAAuqH,oBACVzlH,EAAAqyB,IAAAp1B,OAAA+C,EAAiBumD,aAAArrD,GAAAusD,UAAAznD,EAAAumD,aAAArrD,GAAAuqH,kBAAA1+D,OA+bzB/mD,GAAG0wK,WAAaxpH,EAAKu+D,kBAAkB1+D,WAzbvCC,IA+bJ2zL,GAAwBzzL,GAG5B,QA5bIyzL,GAAkBzzL,GA6blBlnD,EAAGsS,WA5bM,EA6bT00C,GACA,IAAI/rD,IACAnF,UAAWkK,EAAGsjG,IAAIzhF,gBAAgB/rB,UAClCguD,WAAY9jD,EAAGsjG,IAAIq1H,sBAAsB70K,WA3bjD7rB,OAASj4B,EAAAsjG,IAAAlgD,aAAuBnsB,QACxBwwB,SAAAznD,EAAWw6O,YAAA13I,kBAAAz7C,KA8bf7F,GA5bO6J,iBAAYpwD,GAAmBwD,KAAA,SAAAC,GA6blC,GAAmB,MAAfA,EAAIlI,OAAgB,CA3brBwJ,EAAAq+C,OAAA1hD,KAAeC,MAAA8B,EAAAhJ,KAAAgK,QA6bdM,EAAGsS,WAAY,EA3bnBtS,EAAA+lD,uBAESmB,GAAAu+D,kBAAA1+D,MACL,KAAA,GAAA7rD,KAAW8E,GAAAq+C,OAAA2F,MACXyC,EAAkBzmD,EAAAq+C,OAAA2F,MAAe9oD,GAAAwrD,SAAAD,EAAAzmD,EAAA4mL,UAAAn/H,WA6bzBznD,EAAG+lD,qBAAqBluD,KAAKmI,EAAGq+C,OAAO2F,MAAM9oD,GAGrD,IA5bIksD,KA6bJ5sD,GA5bIqI,QAAO7C,EAAA+lD,qBAAyB,SAAAc,GA6bhC,GA5bY,UAARA,EAAAH,QAA0B,UAAX1mD,EAAW4mL,UAAAn/H,SAA+B,CA6bzD,GA5bImzL,GAAWpgP,EAAA6P,KAAArK,EAAAumD,cACXkB,SAAMZ,EAAAH,QAGXlsD,GAAAqI,QAAY+3O,EAAA9zL,OAAA,SAAAm/D,GACXzrH,EAAAy2E,OAAApqB,EAAAC,OAAA,SAAAI,GACA,MAAAA,GAAAH,SAAAk/D,EAAAl/D,WAIT,GAAAjO,IACCuO,KAAWR,EAAAQ,KA6bHX,OAAQG,EAAEH,OA3bnBI,OAAA,UAAAD,EAAAH,OAAAG,EAAAC,UAEAM,GAAAvvD,KAAeihD,KAElB94C,EAAA+lD,qBAAAqB,MA8bIrvD,GAAW2I,YAAY,QAAS,yBAA0B,SAG9D,SAAUC,GACN5I,EAAW2I,YAAY,QAAS,mBAAoB,UA1b5DV,EAAG+sI,QAAA9zG,QAAYiuB,EAAAO,UAAAP,EAAAu+D,kBAAA1+D,OACf/mD,EAAAo3B,WAAI8vB,EAAcu+D,kBAAW1+D,OAkejC,QAAS6+D,GAAW1+D,EAAMR,GA3b1B1mD,EAAA66O,kBAA2B3zL,EAAAZ,sBACvBtmD,EAAA86O,WAASp0L,EA6bT1mD,EAAG+6O,iBA5bgB,EA+bvB,QAASxoK,KACLvyE,EAAGg7O,KA5bCh7O,EAAO66O,iBA6bX,IAAIxoN,KACJ,KAAK,GAAIn3B,KA5bK8E,GAAAg7O,KA6bV3oN,EAAIx6B,KAAKmI,EA5bGg7O,KAAA9/O,GAAA6rD,OA8bhB/mD,GAAGi7O,cAAgB5oN,EAAIqB,MACvB,IAAIz4B,IACAnF,UAAWkK,EAAGsjG,IAAIzhF,gBAAgB/rB,UA3blCguD,WAAG9jD,EAAYsjG,IAAAq1H,sBAAK70K,WA6bpBo3L,UAAWl7O,EAAGo3B,WA3bd+jN,YAASn7O,EAAAi7O,cA8bbz5L,GAAkB+wB,cAAct3E,GAAKwD,KAAK,SAAUC,GA3b/B,MAAjBA,EAAKlI,QACDwJ,EAAA6T,QAAOnV,EAAAhJ,KACc,GAAjBsK,EAAG6T,QAAIunO,QA6bP/gP,EAAQ8C,OAAO,UAAW6C,EAAG6T,QAAQwnO,KACjChkP,WAAW,EACX+F,KAAM,OAGV4C,EAAGs7O,cAAe,GAzb3BvjP,EAAa2I,YAAA,QAAA,yBAAA,YA8bb,SAAUC,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,aAI5D,QAAS6gF,KA1bTvhF,EAAAg7O,KAASh7O,EAAA66O,iBACL,KAAI,GAAA3/O,KAAM8E,GAAAg7O,KA6bNh7O,EAAGg7O,KAAK9/O,GAAGwrD,OAAS1mD,EAAG86O,UAE3B,IA5bIhiM,KA6bJ,KA5bI,GAAG59C,KAAI8E,GAAAg7O,KACPliM,EAAG94C,EAAAg7O,KAAA9/O,GAAAwrD,QAAkB1mD,EAAAg7O,KAAA9/O,GAAA6rD,MA8bzB,IA5bIw0L,IACAzlP,UAAOkK,EAAAsjG,IAAAzhF,gBAA0B/rB,UACjCguD,WAAG9jD,EAAWsjG,IAAAq1H,sBAAA70K,WACdR,cAAOtjD,EAAAsjG,IAAelgD,aAAAE,cACtBotH,WAAU1wK,EAAAo3B,WA6bV4sB,MA5bIrnD,KAAAqkB,UAAe83B,GA8bvB0I,GA5bgBgxB,eAAO+oK,GAAe98O,KAAA,SAAAC,GA6blC,GA5bgB,MAAZA,EAAAlI,OAAY,CA6bZwJ,EAAGw7O,gBAAkB98O,EAAIhJ,KA3b7BsK,EAAAy7O,YAAkB,CA8bd,KA5bI,GADA1B,GAAI/5O,EAAWw7O,gBAAKrgP,OACjBkW,EAAU,EAAAA,EAAI0oO,EAAA1oO,IAAA,CACjB,GAAGpW,GAAA0B,KAAYC,MAAAoD,EAAAw7O,gBAAAnqO,GAAAuhG,WA6bf5yG,GA5bGw7O,gBAAAnqO,GAAAuhG,WAAA33G,EAGR,IAAA,GAAUC,GAAA,EAAKA,EAAA6+O,EAAA7+O,IAAA,CACd,GAAA60F,GAAWpzF,KAAAC,MAAYoD,EAAAw7O,gBAAStgP,GAAA23G,eA6b5B7yG,GAAGw7O,gBAAgBtgP,GAAG23G,eAAiB9iB,EAE3C/vF,EAAGsS,WAAY,MAGfva,GAAW2I,YAAY,QAAS,yBAA0B,wBAC1DV,EAAGy7O,YAAa,GAErB,SAAU96O,GACT5I,EAAW2I,YAAY,QAAS,mBAAoB,wBACpDV,EAAGy7O,YAAa,IAIxB,QA5bQC,KA6bJ17O,EAAGsS,WAAY,EACftS,EAAGg7O,KAAOh7O,EAAG66O,iBACb,IA5bIxoN,KA6bJ,KA5bI,GAAGn3B,KAAA8E,GAAAg7O,KACH3oN,EAAGx6B,KAAImI,EAAAg7O,KAAA9/O,GAAA6rD,OA8bX/mD,GAAGi7O,cA5bQ5oN,EAAAqB,OA6bX1zB,EAAG27O,SA5bIl1L,EAAezmD,EAAA4mL,UAAAn/H,SA6btB,IA5bIm0L,IACA9lP,UAAGkK,EAAWsjG,IAAAzhF,gBAAA/rB,UACdguD,WAAO9jD,EAAAsjG,IAAAq1H,sBAAe70K,WA6btB+3L,WAAY9jP,EAAWuK,OACvB0hD,MAAOrnD,KAAKqkB,UAAUhhB,EAAG+sI,SACzBzpF,cAAetjD,EAAGsjG,IAAIlgD,aAAaE,cACnC63L,YAAan7O,EAAGi7O,cA3bxBvqE,WAAS1wK,EAAA0wK,WA8bLlvH,GA5bOixB,0BAAempK,GAAAn9O,KAAA,SAAAC,GAClB,GAAO,MAAJA,EAAIlI,OAAA,CACJwJ,EAAAw7O,gBAAe98O,EAAAhJ,IAEf,KAAA,GADIqkP,GAAA/5O,EAAAw7O,gBAAsBrgP,OAC1BkW,EAAkB,EAAAA,EAAA0oO,EAAA1oO,IAAA,CACd,GAAApW,GAAA0B,KAAAC,MAAmBoD,EAAAw7O,gBAAAnqO,GAAAuhG,WACvB5yG,GAAAw7O,gBAAenqO,GAAAuhG,WAAA33G,EAGf,IAAI,GAAAC,GAAA,EAAAA,EAAe6+O,EAAA7+O,IAAA,CAClB,GAAA60F,GAASpzF,KAAAC,MAAAoD,EAAAw7O,gBAAAtgP,GAAA23G,eACT7yG,GAAAw7O,gBAAWtgP,GAAA23G,eAAA9iB,EA8bX/oC,IA3bAhnD,EAAAsS,WAAM,EACNtS,EAAAy7O,YAAe,EACf1jP,EAAW2I,YAAO,UAAgB,sDAAA,WAElC3I,GAAO2I,YAAe,QAAG,uCACzBrJ,WAAW,EA6bP+F,KAAM,OA1bV4C,EAAAsS,WAAQ,EA6bRtS,EAAGy7O,YA5bI,GA8bZ,SAAU96O,GACT5I,EA5bQ2I,YAAW,QAAY,uCA6b3BrJ,WAAW,EA3bZ+F,KAAA,OA8bH4C,EAAGy7O,YAAa,IAEpB/pO,IAGJ,QA5bQA,KA6bJ1R,EAAGsjG,OACHtjG,EAAGy7O,YA5bQ,EA6bXz0L,IA3xBJ,GAAIhnD,GAAKC,IAETD,GAAGqU,kBA1bHhJ,MAAS,IAELA,MAAI,KA6bJA,MA3bQ,KA6bRA,MAAS,KAETA,MA3bQ,MA6bZrL,EAAGsU,SA3bStU,EAAAqU,gBAAgB,GA6b5BrU,EAAGuU,YA3bS,EA4bZvU,EAAGwU,qBAAuB,SAAUC,GAChCzU,EAAGuU,YA3bCE,GA8bRzU,EAAGsS,WAAY,EACftS,EAAGy7O,YAAa,EAChB1jP,EAAW2c,SA3bK,EA4bhB1U,EAAG4mL,aACH5mL,EAAGs7O,cA3bQ,EA4bXt7O,EAAG+6O,iBA3bS,EA4bZ/6O,EAAG+sI,SACC9zG,YAEJj5B,EAAG87O,WA1bH97O,EAAA8mD,UA6bA9mD,EAAG+S,WA3bK,EA4bR/S,EAAGiwG,sBA3bkBA,EA4brBjwG,EAAGivI,uBA3buBA,EA4b1BjvI,EAAG0uG,cA3bSA,EA4bZ1uG,EAAGomD,YA3bSA,EA4bZpmD,EAAG04O,kBAAoBA,EACvB14O,EAAGg5N,0BAA4BA,EAC/Bh5N,EAAGk5N,oCA3beA,EA4blBl5N,EAAGo5N,kCA3b6BA,EA4bhCp5N,EAAGs5N,4BA3b4BA,EA4b/Bt5N,EAAGu5N,gCA3byBA,EA4b5Bv5N,EAAGy6O,iBA3bgBA,EA4bnBz6O,EAAG26O,wBA3byBA,EA4b5B36O,EAAGwlH,oBAAsBA,EACzBxlH,EAAGuyE,cA3bKA,EA4bRvyE,EAAG4lH,WA3baA,EA4bhB5lH,EAAGuhF,SAAWA,EACdvhF,EAAG07O,SAAWA,EACd17O,EAAG0R,OAASA,CACZ,IAAIS,GA3bYhY,EAAWgG,uBAAqBwU,gBAA0BxC,SA4b1ED,KAGAlS,EAAGu4N,cACC3iO,OAAQ,QACRizB,GAAI,IAOJjzB,OA3bO,gBA4bPizB,GA3bI,IA2+BR7oB,EAAGsnD,iBA5bS,SAAmBJ,EAAAb,GA6b3B,GAAIa,EA5bIZ,sBAAkB,CA6btBtmD,EAAGumD,aACHvmD,EAAG+lD,oBA3bH,IAAAS,GAAA,QAAkBC,EAAiBJ,EAAKK,QAAK,GACzCC,EAAQnsD,EAAgB6P,KAAArK,EAAAq+C,OAAA2F,OA6bxB0C,OA5bOF,GA8bXhsD,GAAOqI,QA5bK7C,EAAA+lD,qBAAW,SAAAc,GA6bnB,GA5bIA,EAAAH,SAAOF,IA6bPK,EAAEC,OA5bMtsD,EAAOyC,OAAA0pD,EAAAG,QA6bXxrB,SA5bY4rB,EAAAZ,sBAAAS,SA8bZF,EAAEH,SA5bW1mD,EAAE4mL,UAAAn/H,UAAa,CA6b5B,GAAImzL,GAAiBpgP,EAAO6P,KAAKrK,EAAGumD,cA3bpCkB,SAAcZ,EAAAH,QAEflsD,GAAAqI,QAAc+3O,EAAA9zL,OAAA,SAAAm/D,GA6bTzrH,EAAOy2E,OAAOpqB,EAAEC,OAAQ,SAAUD,GA3bvC,MAAAA,GAAAE,SAAAk/D,EAAAl/D,kBASXC,gLAxNZ5yD,QACKC,OAAO,2BACPe,WAAW,yBA3bemlP,MA+tCnC,WACI,YAOA,SAASwB,GA5bqB5hP,EAAA6X,EAAAxX,EAAAR,EAAA4X,EAAA+uE,EAAA5oF,EAAAsC,GA2e1B,QA5bQ6X,KA6bJlS,EAAGsS,WA5bK,EA6bRN,EA5bQI,mBAAkBD,GAAgB1T,KAAA,SAAAC,GACnB,MAAfA,EAAAlI,SACAwJ,EAAAqS,YAAY3T,EAAAhJ,KACZsK,EAAAg8O,uBAA0BjjO,GAAA,EAAAkgC,SAAA,2CAAAlgC,GAAA,EAAAkgC,SAAA,wCA6b1Bj5C,EAAGi8O,gBAAmBljO,GAAI,EAAGkgC,SAAU,cAAiBlgC,GAAI,EAAGkgC,SAAU,kBA3b7Ej5C,EAAA+5H,sBACQC,oBAAoB,MACpB3xG,KAAG,MA8bH2xG,oBA5bG,UACH3xG,KAAA,MAEL2xG,oBAAe,WACd3xG,KAAA,MA+bAroB,EAAGsS,WAAY,IAEpB,SA5bI3R,GACH5I,EAAO2I,YAAA,QAAA,mBAA0B,oBAgczC,QAASw7O,GAAoBjhN,GACrBA,GA3bRwyK,IACQ77L,EAAQ8P,eAAAvP,GAAA1T,KAAA,SAAAC,GACD,MAAAA,EAAAlI,SACJwJ,EAAA2hB,YAAWjjB,EAAAhJ,OAEd,SAAIiL,GACA5I,EAAG2I,YAAA,QAAuB,mBAAA,qBA+b9B+sM,IAKR,QAAS/7K,KACL,GA5bI1xB,EAAGm8O,IAAIC,gBAAA,CACPC,GACA,IAAGphP,IA6bKkX,UAAWnS,EAAGm8O,IAAIhpO,gBAAgBhB,UAClCrc,UAAWkK,EAAGm8O,IAAIt6N,gBAAgB/rB,UAClCwmP,UAAWt8O,EAAGm8O,IAAIC,gBAAgBrjO,GA3bzC3Y,SAAA2U,EAAA1U,OAGDsgF,GAAsBC,kBAAA3lF,GAAAwD,KAAA,SAAAC,GACT,MAATA,EAAAlI,SACAwJ,EAAAgmD,aAAkBtnD,EAAAhJ,OA8bnB,SA5bCiL,GACA5I,EAAW2I,YAAI,QAAiB,mBAAA,yBA+bpC27O,KAKR,QAAS3tI,KACL,GA5bkC/4G,QA4b9BqK,EAAGm8O,IA5bCI,qBAA0B,CA6b9BC,IA3bAx8O,EAAA2uG,QAAAhyG,KAAkBC,MAAAoD,EAAAm8O,IAAWI,qBAAoBv4L,OA6bjDhkD,EAAG4uG,YA5bS5uG,EAAA2uG,QAAgBE,KA6b5B,IAAI5zG,IACAnF,UA5bOkK,EAAAm8O,IAAWt6N,gBAAI/rB,UA6btBguD,WA5bU9jD,EAAAm8O,IAASI,qBAAWz4L,WA6b9Bw4L,UA5bQt8O,EAAAm8O,IAAQC,gBAAkBrjO,GA6blC3Y,SAAU2U,EA5ba1U,OA8b3BsgF,GAAwBE,iBAAiB5lF,GAAKwD,KAAK,SAASC,GACxD,GAAmB,MAAfA,EAAIlI,OAAgB,CA3bpBwJ,EAAGq+C,OAAA1hD,KAAYC,MAAA8B,EAAAhJ,KAAAgK,QAAAskD,KA6bf,IA5bGoD,KACH5sD,GAAAqI,QAAW7C,EAAAq+C,OAAY,SAASwI,GA6b5B,GAAI/N,IA3bHuO,KAAKR,EAAAQ,KACHI,SAAAZ,EAAYH,OA6bXI,OAAsB,UAAbD,EAAEH,QAAsBG,EAAEC,OAAUu6C,EAAgBx6C,EAAEC,WAEnEM,GAASvvD,KAAKihD,KA1bnB94C,EAAA4mD,YAAeQ,EA6bdpnD,EAAGsS,WAAY,MAzbtBva,GAAA2I,YAAmB,QAAA,yBAAA,eAEpB,SAASC,GA6bL5I,EAAW2I,YAAY,QAAS,mBAAoB,oBAxbxD87O,KAgcR,QA5bIp2L,GAAAc,GA8bA,GAAIA,EA5bIo6C,kBAAiB,CA6brBm7I,GACA,IA5bIj2L,GAAI,QAASC,EAAaS,EAAUO,UAAA,GACpCd,EAAiBnsD,EAAA6P,KAAArK,EAAaq+C,QA6b9BqI,OA5bQF,GA8bEhsD,GAAOgnG,MAAMxhG,EAAGq+C,OAAQ,SAASwI,GAC3C,MAAOJ,GAAUI,EAAEH,SAEvBlsD,GA5bIqI,QAAO7C,EAAA4mD,YAAW,SAAcC,GA6bhC,GA5bIA,EAAAY,WAAWjB,EAAA,CA8bX,GA5bIi7C,GAAYjnG,EAAA8xB,IAAA46B,EAAAo6C,kBAAA,SA6bhBz6C,GAAEC,OA5bEu6C,EAAW7mG,EAAayC,OAAa0pD,EAASG,OAAA,SAAAD,GA6b9C,MAAOrsD,GAAO3F,SAAS4sG,EAAW56C,EAAEvrB,aAzb5Ct7B,EAAGgiG,UAAA96C,EAAeo6C,iBA6blB,IAAIjvE,KACJ,KAAK,GAAIn3B,KAAK8E,GAAGgiG,UACb3vE,EAAIx6B,KAAKmI,EAAGgiG,UAAU9mG,GAAG6rD,OAE7B/mD,GAAG+mD,OAAS10B,EAAIqB,OAxbpB1zB,EAAK08O,cACDliP,EAAAqI,QAAWqkD,EAAAo6C,kBAAyB,SAAY9zF,GAChDhT,EAAAmiP,aAAwBnvO,EAAA00F,YAAQ,SAAajnG,GAC7C+E,EAAA08O,WAAY7kP,MA6bA4vD,SAAUxsD,EAAIwsD,SA3bfV,OAAG9rD,EAAA8rD,YAicd,IAAI10B,GAAM73B,EAAO83B,QAAQtyB,EAAG08O,WAAY,YAEpC5tI,GA3bL7xG,UAGHzC,GAAS8xB,IAAK+F,EAAG,SAAAhnB,EAAc0b,GACpB+nF,EAAA7xG,OAAa8pB,GAAGvsB,EAAA8xB,IAAA9xB,EAAmB++C,OAAAluC,EAAA,UAAA,SAAAmC,GAAA,MAAAA,GAAAu5C,SAAArzB,SA+b1C1zB,EAAGgkD,MAAQ,gBAEPhkD,EAAGgjB,UA3bV89D,IA8bOG,UArbZw7J,KAicJ,QA5bQp7I,GAAaj6C,GAucjB,MApcIA,IAAQA,EAAWjsD,OAAK,GA6bxBX,EA5bOqI,QAAAukD,EAAc,SAAUP,GAC3B,GAAe,GAAZA,EAAAvrB,SAAY,CACZ,GAAA2mE,GAAAznG,EAAuB6P,KAAAw8C,EAAAq7C,aAAAn7C,OAAAF,EAAAvrB,WAAA+rB,IA6btBR,GAAEoG,UAAYpG,EAAEm0D,QAAU,MAAQ/Y,KAIvC76C,EAGX,QAASX,GA5bOc,GA6bZ,MAAO3gD,UA5bQ2gD,EAAWjkC,UAAA,IAuc9B,QAASw9D,KACL87J,GACA,IAAIC,IACAxmO,UAAW,GAEXpb,GACAnF,UA5bQkK,EAAAm8O,IAASt6N,gBAAK/rB,UA6btBguD,WAAY9jD,EAAGm8O,IAAII,qBAAqBz4L,WACxCw4L,UA5bOt8O,EAAAm8O,IAAAC,gBAAuBrjO,GA6b9BirC,MA5bOhkD,EAAAgkD,MA6bP64L,OA5bIlgP,KAAAqkB,UAAW67N,GA6bfz8O,SAAU2U,EAAc1U,OACxBu5G,WAAY,MAEhBj5B,GA5bmBG,cAAY7lF,GAASwD,KAAA,SAAAC,GA6bjB,MAAfA,EAAIlI,SA3bTwJ,EAAQ88O,QAAQp+O,EAAKhJ,OA8brB,SAASiL,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,qBAI5D,QA5bQqgF,KA6bJ,GA5bI/gF,EAAGm8O,IAAA3/L,YAAArhD,OAAA,EAAA,CACH4hP,GACA,IAAIF,IACAxmO,UAAA,EACA2mC,MAAAxiD,EAAU8xB,IAAAtsB,EAAAm8O,IAAA3/L,YAAA,SAAAhvC,GAAA,MAAAA,GAAAkuC,wBAAAhoB,QAEdz4B,GACInF,UAAMkK,EAAAm8O,IAAWt6N,gBAAU/rB,UA6b3BguD,WA5bM9jD,EAASm8O,IAAAI,qBAAcz4L,WA6b7Bw4L,UA5bQt8O,EAAAm8O,IAAAC,gBAAiBrjO,GA6bzBirC,MAAOhkD,EAAGgkD,MACV64L,OA5bQlgP,KAAEqkB,UAAW67N,GA6brBz8O,SA5bQ2U,EAAI1U,OA6bZu5G,WA5bY,WA8bhBj5B,GA5bmBI,mBAAuB9lF,GAAAwD,KAAQ,SAAUC,GACrC,MA4bfA,EAAIlI,SACJwJ,EAAG47C,aA5bSl9C,EAAShJ,OA8b1B,SAASiL,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAGxDq8O,KAKR,QAAS/7J,KACL,GAAIhhF,EAAGm8O,IAAIx+L,iBAAiBxiD,OAAS,EAAG,CACpC6hP,GA3bR,IAASH,IACFxmO,UAAA,EACA2mC,MAAAxiD,EAAa8xB,IAAAtsB,EAAAm8O,IAAA3/L,YAAA,SAAAhvC,GAAA,MAAAA,GAAAkuC,wBAAAhoB,OACbwoB,WAAA1hD,EAAkB8xB,IAAAtsB,EAAAm8O,IAAAx+L,iBAAA,SAAAnwC,GAAA,MAAAA,GAAA0uC,aAAAxoB,QA8bbz4B,GA3bHnF,UAAAkK,EAAgBm8O,IAAAt6N,gBAAA/rB,UAClBguD,WAAU9jD,EAAAm8O,IAAAI,qBAAAz4L,WACTw4L,UAAMt8O,EAAAm8O,IAAAC,gBAAArjO,GACLirC,MAAShkD,EAAGgkD,MACT64L,OAAQlgP,KAAKqkB,UAAG67N,GA6bhBz8O,SAAU2U,EAAc1U,OA3b7Bu5G,WAAgB,cAEfj5B,GAAkBK,sBAAgB/lF,GAAAwD,KAAA,SAAAC,GACf,MAAnBA,EAAYlI,SACZwJ,EAAWo8C,gBAAG19C,EAAAhJ,OA8bX,SAASiL,GA3bhB5I,EAAkB2I,YAAA,QAAmB,mBAAoB,yBA+brDs8O,KAIR,QAAS/7J,KACL,GAAKjhF,EAAG,UA5bOA,EAAAm8O,IAAAt+L,oBAAA1iD,OAAA,EAAA6E,EAAAgkD,MAAA,CA8bX,GADAwB,IACIxlD,EAAGgjB,UACH,GA5bG65N,IACHxmO,UAAW,EA6bP2mC,MAAOxiD,EAAO8xB,IAAItsB,EAAGm8O,IAAI3/L,YAAa,SAAShvC,GAAK,MAAOA,GAAEkuC,wBAAyBhoB,OA3b/FwoB,WAAe1hD,EAAA8xB,IAAAtsB,EAAAm8O,IAAAx+L,iBAAA,SAAAnwC,GAAA,MAAAA,GAAA0uC,aAAAxoB,OACd7B,cAAuBr3B,EAAA8xB,IAAStsB,EAAAm8O,IAAAt+L,oBAAoB,SAAArwC,GAAA,MAAAA,GAAAqkB,gBAAA6B,YA+bhD,IAAImpN,GAAS,EAEjB,IAAI5hP,IA3bLnF,UAAUkK,EAAAm8O,IAAAt6N,gBAAA/rB,UACRguD,WAAY9jD,EAAMm8O,IAAAI,qBAAAz4L,WAChBw4L,UAAQt8O,EAAAm8O,IAASC,gBAAGrjO,GA6bnBirC,MAAOhkD,EAAGgkD,MA3bd64L,OAAOlgP,KAAAqkB,UAAA67N,GACNz8O,SAAY2U,EAAM1U,OACnBu5G,WAAgB55G,EAAA,UAAa,iBAAQ,OAErC2gF,GAAcM,mBAAAhmF,GAAAwD,KAAA,SAAAC,GACI,MAAlBA,EAAWlI,SACXwJ,EAAAizB,SAAmBv0B,EAAAhJ,OAEnB,SAAYiL,GACZ5I,EAAY2I,YAAU,QAAA,mBAAA,yBAGtB8kD,KAicR,QAASy3L,KACL,GAAIj9O,EAAGm8O,IAAIrlM,aA5bI37C,OAAgB,EAAA,CA8b3B,GADA+hP,IACIl9O,EAAGgjB,UA3bH,GAAA65N,IACIxmO,UAAW,EACX2mC,MAAGxiD,EAAA8xB,IAAAtsB,EAAgBm8O,IAAG3/L,YAAA,SAAiBhvC,GAAA,MAAAA,GAAAkuC,wBAAAhoB,OA6bvCwoB,WAAY1hD,EAAO8xB,IAAItsB,EAAGm8O,IAAIx+L,iBAAkB,SAASnwC,GAAK,MAAOA,GAAE0uC,aAAcxoB,OA3btF7B,cAAYr3B,EAAA8xB,IAAAtsB,EAAAm8O,IAAAt+L,oBAAA,SAAArwC,GAAA,MAAAA,GAAAqkB,gBAAA6B,OA6bXqrB,SAAU/+C,EAAGm8O,IAAIprG,wBAAwB1oH,KA3b1CrI,OAAAxlB,EAAA8xB,IAAAtsB,EAAAm8O,IAAArlM,aAAA,SAAAtpC,GAAA,MAAAA,GAAAwS,SAAA0T,YA+bH,IAAImpN,IA3bT99L,SAAe/+C,EAAAm8O,IAAAprG,wBAAA1oH,KACdrI,OAAWxlB,EAAY8xB,IAAAtsB,EAAAm8O,IAASrlM,aAAA,SAAoBtpC,GAAA,MAAAA,GAAAwS,SAAA0T,OA+bpD,IAAIz4B,IACAnF,UAAWkK,EAAGm8O,IAAIt6N,gBAAgB/rB,UA3brCguD,WAAW9jD,EAAAm8O,IAAAI,qBAAAz4L,WACbw4L,UAAYt8O,EAAAm8O,IAAAC,gBAAArjO,GACZirC,MAAUhkD,EAAAgkD,MACT64L,OAAMlgP,KAAAqkB,UAAA67N,GACLz8O,SAAY2U,EAAM1U,OACfu5G,WAAa55G,EAAG,UAAA,OAAA,OAErB2gF,GAAoBO,eAAAjmF,GAAAwD,KAAA,SAAAC,GACI,MAAxBA,EAAWlI,SAEVwJ,EAAW8zF,SAAOp1F,EAAAhJ,OAElB,SAAYiL,GACZ5I,EAAY2I,YAAa,QAAA,mBAAA,yBAGzBw8O,KAkcR,QAAS/7J,KACL,GA5b2B,MA4bvBnhF,EAAGm8O,IAAItqI,aACP,GAAI7xG,EAAGm8O,IA5bItqI,aAAA12G,OAAgB,EAAO,CA6b9BgiP,GACA,IAAIliP,IA3bJmiP,YAAgBp9O,EAAIm8O,IAAAhpO,gBAAiBhB,UACjCkrO,WAAWr9O,EAAAm8O,IAAKmB,oBAASvkO,GACzBwkO,YAAGv9O,EAAAm8O,IAAgBt6N,gBAAG/rB,UA6btBsK,SAAU2U,EAAc1U,OA1b5BsgF,GAAeQ,qBAAAlmF,GAAAwD,KAAA,SAAAC,GACC,MAAbA,EAAAlI,SACHwJ,EAAWw9O,cAAY9+O,EAAAhJ,OAEvB,SAAWiL,GACP5I,EAAW2I,YAAA,QAAA,mBAAA,yBAGfy8O,KAgcZ,QA5bQM,KA6bJ,GAAIz9O,EAAGm8O,IA5bCuB,kBAAW,CA6bfC,GACA,IAAI1iP,IA3bDmiP,YAAap9O,EAAAm8O,IAAAhpO,gBAAAhB,UA6bZkrO,WAAYr9O,EAAGm8O,IAAImB,oBAAoBvkO,GA3b/CwkO,YAAAv9O,EAAAm8O,IAAAt6N,gBAAA/rB,UA6bQ8nP,YAAa59O,EAAGm8O,IAAIuB,kBAAkB5nP,UACtCsK,SAAU2U,EAAc1U,OA1b7BsgF,GAAMS,qBAAAnmF,GAAAwD,KAAA,SAAAC,GACO,MAAbA,EAAalI,SAChBwJ,EAAA69O,eAAAn/O,EAAAhJ,OA8bO,SAASiL,GACR5I,EAAW2I,YAAY,QAAS,mBAAoB,yBAGxDi9O,KAKR,QAASt8J,KA3bb,GAA8B1rF,QAArBqK,EAAAm8O,IAAA2B,uBAA4C,CAC7C99O,EAAK+9O,iBA8bD/9O,EAAGkoG,YAAc,EACjBloG,EAAG2uG,QAAUhyG,KAAKC,MAAMoD,EAAGm8O,IAAI2B,uBAAuB95L,OACtDhkD,EAAG4uG,YAAc5uG,EAAG2uG,QAAQE,KA5bjC,IAAA5zG,IACAoiP,WAAcr9O,EAAAm8O,IAAAmB,oBAAgBvkO,GA8brBwkO,YAAav9O,EAAGm8O,IAAIt6N,gBAAgB/rB,UA5b7C8nP,YAAc59O,EAAAm8O,IAAAuB,kBAAA5nP,UACdkoP,aAAuBh+O,EAAAm8O,IAAAI,qBAAcz4L,WAC7Bm6L,aAAcj+O,EAAAm8O,IAAA2B,uBAAAh6L,WA8bbw4L,UAAWt8O,EAAGm8O,IAAIC,gBAAgBrjO,GAClC3Y,SAAU2U,EAAc1U,OA3bhCsgF,GAAYU,oBAAsBpmF,GAAAwD,KAAuB,SAAAC,GACzD,GAAgB,MAAhBA,EAAgBlI,OAAA,CA8bJwJ,EAAGk+O,SAAWvhP,KAAKC,MAAM8B,EAAIhJ,KAAKgK,QAAQskD,KA5bvD,IAAAoD,KACA5sD,GAAAqI,QAAqB7C,EAAAk+O,SAAA,SAAAr3L,GACL,GAAA/N,IACFuO,KAAAR,EAAAQ,KACOI,SAAAZ,EAAAH,OACrBI,OAAwB,UAAAD,EAAAH,QAAAG,EAAAC,OAAAu6C,EAAAx6C,EAAAC,WAEPM,GAAAvvD,KAAAihD,KAEjB94C,EAAA+9O,cAAuB32L,EACvBpnD,EAAAsS,WAAwB,MAGZva,GAAA2I,YAAA,QAAA,yBAAA,eAEZ,SAAcC,GA8bL5I,EAAW2I,YAAY,QAAS,mBAAoB,iBAvbhE,QAAGy9O,GAAej3L,GAEf,GAAAA,EAAAk3L,oBAAW,CACX,GAAA53L,GAAW,QAAAC,EAAAS,EAAAO,UAAA,GA8bFd,EAAiBnsD,EAAO6P,KAAKrK,EAAGk+O,UA5b5Cx3L,OAAAF,GA+bsBhsD,GAAOgnG,MAAMxhG,EAAGk+O,SAAU,SAASr3L,GA5bhD,MAAOJ,GAAAI,EAAAH,SAEZlsD,GAAAqI,QAAe7C,EAAA+9O,cAAmB,SAAWl3L,GACrC,GAAIA,EAAAY,WAAWjB,EAAK,CAEjB,GAAAi7C,GAAAjnG,EAAwB8xB,IAAE46B,EAAOk3L,oBAAU,SAC3Cv3L,GAAAC,OAAAu6C,EAA0B7mG,EAAAyC,OAAU0pD,EAAqBG,OAAG,SAAUD,GACtE,MAAArsD,GAAA3F,SAAuB4sG,EAAA56C,EAAAvrB,aAgc1Bt7B,EA7bGgiG,UAAA96C,EAAAk3L,mBA8bH,IA7bI/rN,KA8bJ,KA7bI,GAAAn3B,KAAM8E,GAAAgiG,UACP3vE,EAAAx6B,KAAAmI,EAAAgiG,UAAA9mG,GAAA6rD,OA+bH/mD,GAAG+mD,OA7bO10B,EAAAqB,UAoctB,QAAS2qN,KACL,GAAIpjP,IACAoiP,WAAYr9O,EAAGm8O,IAAImB,oBAAoBvkO,GA5b/CwkO,YAASv9O,EAAAm8O,IAAAt6N,gBAA+B/rB,UAChC8nP,YAAW59O,EAAAm8O,IAAAuB,kBAAA5nP,UACXkoP,aAAAh+O,EAAAm8O,IAAAI,qBAAAz4L,WACAm6L,aAAAj+O,EAAAm8O,IAAA2B,uBAAsCh6L,WA8btCw4L,UA7bQt8O,EAAIm8O,IAAAC,gBAAgBrjO,GA8b5B3Y,SA7bQ2U,EAAG1U,OA+bfsgF,GA7bqBW,iBAAArmF,GAAAwD,KAAA,SAAAC,GACF,MAAXA,EAAAlI,SA8bAwJ,EAAGkoG,YAAcxpG,EAAIhJ,KAAKwyG,YA5b3B,IAAAloG,EAAAkoG,YACH7tG,EAAA8C,OAAA,UAAA,6CAAA9F,WAAA,EAAA+F,KAAA,OA+bQ/C,EAAQ8C,OAAO,UAAW,gDAAkD9F,WAAW,EAAM+F,KAAM,SAE5G,SAASuD,GA5bhB5I,EAAS2I,YAAqB,QAAA,mBAAA,gBAkc9B,QAAS6gF,KAELvhF,EAAGsS,WA7bS,CA8bZ,IAAIrX,IACAoiP,WAAYr9O,EAAGm8O,IAAImB,oBAAoBvkO,GA5bvCwkO,YAAAv9O,EAAAm8O,IAAAt6N,gBAAwB/rB,UA8bxB8nP,YA7bY59O,EAAAm8O,IAAAuB,kBAAgB5nP,UA8b5BkoP,aA7bWh+O,EAAAm8O,IAAAI,qBAAmBz4L,WA8b9Bm6L,aAAcj+O,EAAGm8O,IAAI2B,uBAAuBh6L,WAC5Cw4L,UA7bGt8O,EAASm8O,IAAKC,gBAAArjO,GA8bjBirC,MA7bIhkD,EAAAgkD,MA8bJs6L,SAAU9jP,EAAO8xB,IAAItsB,EAAGm8O,IAAItqI,aAAc,SAASrkG,GAAK,MAAOA,GAAEypB,UAAWvD,OAC5EtzB,SA7bG2U,EAAA1U,OA+bPsgF,GAAwBY,SAAStmF,GAAKwD,KAAK,SAASC,GAC7B,MAAfA,EAAIlI,SACJwJ,EAAGu+O,aAAe7/O,EAAIhJ,KACtBsK,EAAGsS,WAAY,IA3bvB,SAAW3R,GACP5I,EAAA2I,YAAA,QAAA,mBAAA,gBAkcR,QAAS8gF,KACL,GAAIvmF,IACAoiP,WA7bIr9O,EAAUm8O,IAAAmB,oBAAcvkO,GA8b5BwkO,YAAav9O,EAAGm8O,IAAIt6N,gBAAgB/rB,UA5bpC8nP,YAAA59O,EAAAm8O,IAAAuB,kBAAwB5nP,UA8bxBkoP,aA7bYh+O,EAAAm8O,IAAAI,qBAAgBz4L,WA8b5Bm6L,aA7bWj+O,EAAAm8O,IAAS2B,uBAAoBh6L,WA8bxCw4L,UA7bQt8O,EAAIm8O,IAAAC,gBAAWrjO,GA8bvBirC,MAAOhkD,EA7bCgkD,MA8bR5jD,SAAU2U,EA7ba1U,OA+b3BsgF,GA7boBa,YAAYvmF,GAAAwD,KAAA,SAAAC,GACZ,MA6bZA,EAAIlI,SACJuB,EAAW2I,YAAY,UAAWhC,EAAIhJ,KAAKme,QAAS,+BACpD7Z,EAAOg/I,WAEZ,SA7bSr4I,GA8bR5I,EA7bW2I,YAAY,QAAA,mBAAA,gBAkc/B,QAAS+sM,KACLztM,EAAGm8O,IAAIt6N,gBA7bY,KA8bnB7hB,EAAG2hB,eACH3hB,EAAGm8O,IAAImB,oBAAsB,KAC7Bt9O,EAAGm8O,IA7bIC,gBAAA,KA8bPp8O,EAAGm8O,IA7bCI,qBAAA,KA8bJv8O,EAAGgmD,gBACHhmD,EAAG4mD,eACH5mD,EAAGm8O,IAAI3/L,eA5bXx8C,EAAAm8O,IAAS3/L,YAAY,KACjBx8C,EAAA88O,WACA98O,EAAAm8O,IAAIx+L,iBAAK,KA8bT39C,EAAGm8O,IA7bCx+L,oBA8bJ39C,EAAG47C,gBACH57C,EAAGm8O,IA7bCt+L,uBA8bJ79C,EAAGm8O,IAAIt+L,oBA7bW,KA8blB79C,EAAGo8C,mBACHp8C,EAAGm8O,IA7bCrlM,aAAc,KA8blB92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IA7bCprG,wBAAkB,KA8btB/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aAAe,KACtB7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBA7bgB,KA8bvB19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBAAyB;AAChC99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YA7bS,EA8bZloG,EAAGu+O,gBAGP,QAASC,KACLx+O,EAAGm8O,IAAImB,oBAAsB,KAC7Bt9O,EAAGm8O,IAAIC,gBAAkB,KACzBp8O,EAAGm8O,IAAII,qBAAuB,KAC9Bv8O,EAAGgmD,gBACHhmD,EAAG4mD,eACH5mD,EAAGm8O,IAAI3/L,eACPx8C,EAAGm8O,IAAI3/L,YA7bY,KA8bnBx8C,EAAG88O,WACH98O,EAAGm8O,IAAIx+L,iBA7ba,KA8bpB39C,EAAGm8O,IAAIx+L,oBACP39C,EAAG47C,gBACH57C,EAAGm8O,IAAIt+L,uBACP79C,EAAGm8O,IAAIt+L,oBAAsB,KAC7B79C,EAAGo8C,mBACHp8C,EAAGm8O,IAAIrlM,aAAe,KACtB92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBAA0B,KACjC/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aA7bY,KA8bnB7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBAAoB,KAC3B19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBA7bY,KA8bnB99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YA7bS,EA8bZloG,EAAGu+O,gBAGP,QAASE,KACLz+O,EAAGm8O,IAAIC,gBAAkB,KACzBp8O,EAAGm8O,IAAII,qBAAuB,KAC9Bv8O,EAAGgmD,gBACHhmD,EAAG4mD,eACH5mD,EAAGm8O,IA7bC3/L,eA8bJx8C,EAAGm8O,IAAI3/L,YAAc,KACrBx8C,EAAG88O,WACH98O,EAAGm8O,IAAIx+L,iBAAmB,KAC1B39C,EAAGm8O,IAAIx+L,oBA5bX39C,EAAA47C,gBACI57C,EAAAm8O,IAAAt+L,uBA8bA79C,EAAGm8O,IAAIt+L,oBAAsB,KA5b7B79C,EAAAo8C,mBA8bAp8C,EAAGm8O,IA7bCrlM,aAAe,KA8bnB92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBA7bqB,KA8b5B/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aAAe,KACtB7xG,EAAG8zF,YA5bH9zF,EAAAm8O,IAAOuB,kBAAA,KA8bP19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBAAyB,KA5bpC99O,EAAA69O,kBACI79O,EAAA+9O,iBA8bA/9O,EAAGkoG,YAAc,EACjBloG,EAAGu+O,gBAGP,QA7bQlC,KA8bJr8O,EAAGm8O,IA7bCI,qBAAA,KA8bJv8O,EAAGgmD,gBACHhmD,EAAG4mD,eACH5mD,EAAGm8O,IAAI3/L,eACPx8C,EAAGm8O,IAAI3/L,YAAc,KA5bzBx8C,EAAA88O,WACI98O,EAAAm8O,IAAAx+L,iBAAA,KACA39C,EAAAm8O,IAAIx+L,oBA8bJ39C,EAAG47C,gBACH57C,EAAGm8O,IAAIt+L,uBA5bP79C,EAAAm8O,IAAIt+L,oBAAM,KA8bV79C,EAAGo8C,mBACHp8C,EAAGm8O,IA7bCrlM,aAAe,KA8bnB92C,EAAGm8O,IA7bCrlM,gBA8bJ92C,EAAGizB,YACHjzB,EAAGm8O,IA7bCprG,wBAAuB,KA8b3B/wI,EAAGm8O,IA7bCtqI,gBA8bJ7xG,EAAGm8O,IA7bCtqI,aAAY,KA8bhB7xG,EAAG8zF,YA5bH9zF,EAAAm8O,IAAAuB,kBAAwB,KA8bxB19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBA7bkB,KA8bzB99O,EAAG69O,kBACH79O,EA7bG+9O,iBA8bH/9O,EAAGkoG,YA7bY,EA8bfloG,EAAGu+O,gBA1bP,QAAS/B,KACLx8O,EAAA4mD,eA8bA5mD,EAAGm8O,IA7bC3/L,eA8bJx8C,EAAGm8O,IA7bC3/L,YAAa,KA8bjBx8C,EAAG88O,WACH98O,EAAGm8O,IAAIx+L,iBA7bmB,KA8b1B39C,EAAGm8O,IAAIx+L,oBACP39C,EAAG47C,gBACH57C,EAAGm8O,IAAIt+L,uBACP79C,EAAGm8O,IAAIt+L,oBA7boB,KA8b3B79C,EAAGo8C,mBACHp8C,EAAGm8O,IAAIrlM,aA7bW,KA8blB92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBA7ba,KA8bpB/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IA7bCtqI,aAAA,KA8bJ7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBA7bQ,KA8bf19O,EAAGw9O,iBACHx9O,EAAGm8O,IA7bI2B,uBAAc,KA8brB99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YA7bI,EA8bPloG,EAAGu+O,gBAGP,QAAS9B,KACLz8O,EAAGm8O,IAAI3/L,eA5bXx8C,EAAAm8O,IAAS3/L,YAAA,KACLx8C,EAAA88O,WA8bA98O,EAAGm8O,IA7bCx+L,iBAAA,KA8bJ39C,EAAGm8O,IA7bCx+L,oBA8bJ39C,EAAG47C,gBACH57C,EAAGm8O,IAAIt+L,uBACP79C,EAAGm8O,IAAIt+L,oBA7boB,KA8b3B79C,EAAGo8C,mBACHp8C,EAAGm8O,IA7bCrlM,aAAU,KA8bd92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBA7bmB,KA8b1B/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aA7bc,KA8brB7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBA7ba,KA8bpB19O,EAAGw9O,iBACHx9O,EAAGm8O,IA7bC2B,uBAAwB,KA8b5B99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YAAc,EACjBloG,EAAGu+O,gBAGP,QAAS3B,KACL58O,EAAGm8O,IA7bCx+L,iBAAA,KA8bJ39C,EAAGm8O,IAAIx+L,oBACP39C,EAAG47C,gBACH57C,EAAGm8O,IAAIt+L,uBA5bX79C,EAAAm8O,IAASt+L,oBAAqB,KAC1B79C,EAAAo8C,mBA8bAp8C,EAAGm8O,IA7bCrlM,aAAA,KA8bJ92C,EAAGm8O,IA7bCrlM,gBA8bJ92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBA7bgB,KA8bvB/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aA7bK,KA8bZ7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBAAoB,KAC3B19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBA7bc,KA8brB99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YA7bK,EA8bRloG,EAAGu+O,gBAGP,QAASxB,KACL/8O,EAAGm8O,IAAIt+L,uBACP79C,EAAGm8O,IAAIt+L,oBA7biB,KA8bxB79C,EAAGo8C,mBACHp8C,EAAGm8O,IA7bCrlM,aAAA,KA8bJ92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBAA0B,KACjC/wI,EAAGm8O,IA7bItqI,gBA8bP7xG,EAAGm8O,IAAItqI,aA7bY,KA8bnB7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBAAoB,KAC3B19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBAAyB,KAChC99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YAAc,EA5brBloG,EAAAu+O,gBAgcA,QA7bQvB,KA8bJh9O,EAAGm8O,IAAIrlM,aA7bc,KA8brB92C,EAAGm8O,IAAIrlM,gBACP92C,EAAGizB,YACHjzB,EAAGm8O,IAAIprG,wBA7bwB,KA8b/B/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aA7be,KA8btB7xG,EAAG8zF,YACH9zF,EAAGm8O,IAAIuB,kBAAoB,KAC3B19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBA7bc,KA8brB99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YAAc,EACjBloG,EAAGu+O,gBAGP,QAAS/4L,KACLxlD,EAAGm8O,IAAIprG,wBA7bmB,KA8b1B/wI,EAAGm8O,IAAItqI,gBACP7xG,EAAGm8O,IAAItqI,aA7bc,KA+brB7xG,EAAGm8O,IAAIuB,kBA7biB,KA8bxB19O,EAAGw9O,iBACHx9O,EAAGm8O,IA7bC2B,uBAAwB,KA8b5B99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YA7bY,EA8bfloG,EAAGu+O,gBAgBP,QAASrB,KACLl9O,EAAGm8O,IAAIuB,kBA7boB,KA8b3B19O,EAAGw9O,iBACHx9O,EAAGm8O,IAAI2B,uBA7be,KA8btB99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YA7ba,EA8bhBloG,EAAGu+O,gBAGP,QAASpB,KACLn9O,EAAGm8O,IAAI2B,uBAAyB,KAChC99O,EAAG69O,kBACH79O,EAAG+9O,iBACH/9O,EAAGkoG,YAAc,EACjBloG,EAAGu+O,gBAGP,QA7bQZ,KA8bJ39O,EAAG+9O,iBACH/9O,EAAGkoG,YA7bW,EA8bdloG,EAAGu+O,gBAp2BP,GAAIv+O,GA5bIC,IAgcRD,GAAGqU,kBA5bqBhJ,MAAA,IAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,KAAAA,MAAA,MA6bxBrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GAEjCrU,EAAGuU,YA5bS,EA6bZvU,EAAGwU,qBA5bqB,SAAOC,GA6bvBzU,EAAGuU,YA5bYE,EAgcvB,IAAItC,GAAYhY,EAAsBgG,uBAAuBwU,gBAAgBxC,UACzE4C,EA5bI5a,EAAkBgG,sBA8b1BH,GAAGk8O,oBA5bgBA,EA6bnBl8O,EAAG0xB,mBA5bgBA,EA6bnB1xB,EAAG0uG,cA5bgBA,EA6bnB1uG,EAAGomD,YA5baA,EA6bhBpmD,EAAG+gF,mBAAqBA,EACxB/gF,EAAGghF,sBA5buBA,EA6b1BhhF,EAAGihF,mBA5boBA,EA6bvBjhF,EAAGi9O,eAAiBA,EAEpBj9O,EAAGmhF,qBA5bYA,EA6bfnhF,EAAGy9O,sBA5bQA,EA6bXz9O,EAAGqhF,oBA5bYA,EA6bfrhF,EAAGm+O,cA5bQA,EA6bXn+O,EAAGq+O,UA5bYA,EA6bfr+O,EAAGuhF,SA5bQA,EA6bXvhF,EAAGwhF,YA5bYA,EA8bfxhF,EAAGw+O,eAAiBA,EACpBx+O,EAAGy+O,aAAeA,EAElBz+O,EAAGgjB,WA5bK,EA6bRhjB,EAAG88O,WACH98O,EAAG47C,gBACH57C,EAAGo8C,mBACHp8C,EAAGizB,YACHjzB,EAAG8zF,YAEH5hF,IA6LAlS,EAAGs0D,MAAQ,WACHt0D,EAAGgjB,UACH89D,IAEAG,sJAlPZ7sF,QACKC,OA5bO,2BA6bPe,WA5bU,uBAAI2mP,MAyyCvB,WACI,YAOA,SAAS2C,GAAsB3kP,EAAOS,EAAQP,EAASlC,EAAYsC,EAASF,EAAuB6X,EAAgBJ,EAAwBy7L,EAA2BC,EAA6BzlH,GA6B/L,QAAS31E,KACDC,GACAH,EAAeI,mBAAmBD,GAAW1T,KAAK,SAAUC,GA5bvC,MA6bbA,EA7bIlI,SA8bJwJ,EAAGqS,YAAc3T,EAAIhJ,OAE1B,SA7bQiL,GA8bP5I,EAAW2I,YAAY,QAAS,mBAAoB,mBAG5D,IAAIzF,IACA6Y,UA7bGJ,EAAcrT,OA+brBgtM,GAA0BE,YAAYtyM,GAAKwD,KAAK,SAAUC,GACnC,MAAfA,EAAIlI,QACJwJ,EAAGwtM,UAAY9uM,EAAIhJ,KACnBsK,EAAGsS,WAAY,GA1bvBjY,EAAAwH,MAAA,QAAA,yBAAA,cA+bG,SA7bKlB,GACJ5I,EAAI2I,YAAiB,QAAO,mBAAkB,eAkctD,QAAS+gB,GAAoBtP,GA5brBA,GA8bAs7L,IACA77L,EAAuB8P,eAAevP,GAAW1T,KAAK,SAAUC,GA5bpD,MAAJA,EAAIlI,QACJwJ,EAAE2hB,YAASjjB,EAAAhJ,MACPsK,EAAA2hB,YAAcxmB,OAAS,GA8bvBd,EAAQ8C,OAAO,UAAW,oDACtB9F,WAAW,EA5bpB+F,KAAY,OAGX4C,EAAAsS,WAAY,GAEbjY,EAASwH,MAAI,QAAA,yBAAA,mBAEjB,SAAAlB,GA8bCtG,EAAQwH,MAAM,QAAS,mBAAoB,qBAzbvD4rM,IAicA,QA7bQC,GAAav7L,GA8bjB,GA7bIA,EAAA,CACA,GAAAuB,GAAiBvZ,EAAIgG,uBAErBlF,GA8bIkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UA5b5C2B,UAAAJ,EAAwBrT,OAEhB8R,IACAm7L,EAA0BI,aAAAzyM,GAAAwD,KAAA,SAAAC,GACP,MAAfA,EAAQlI,QA8bJwJ,EAAG4tM,cAAgBlvM,EAAIhJ,MA5bnBsK,EAAA4tM,cAAkBzyM,OAAA,GA8blBd,EAAQ8C,OAAO,UAAW,sDA5b7B9F,WAAA,EACF+F,KAAY,OAgcX4C,EAAGsS,WAAY,GA1b/BjY,EAAAwH,MAAA,QAAA,yBAAA,cAEU,SAAAlB,GACN5I,EAAmB2I,YAAA,QAAoB,mBAAA,gBAoc/C,QA7bQmtM,GAAU17L,EAAW27L,GA8bzB,GA7bIA,EAAU,CA8bVC,GA5bJ,IAAAr6L,GAAAvZ,EAA2CgG,uBACnClF,GACAkX,UAAGnS,EAAA2tM,MAAex6L,gBAAIhB,UA+btB27L,YAAa9tM,EAAG2tM,MAAMK,kBAAkBF,YA5b7Ch6L,UAAcJ,EAAArT,OA+bbitM,GAA4BO,WAAW5yM,GAAKwD,KAAK,SAAUC,GACpC,MAAfA,EAAIlI,QACJwJ,EAAGiuM,YAAcvvM,EAAIhJ,MAChBsK,EAAGiuM,YAAY9yM,OAAS,GA5bpCd,EAAc8C,OAAA,UAAA,sDACT9F,WAAA,EACS+F,KAAI,OAGnB4C,EAAAsS,WAAqB,GAGdjY,EAAGwH,MAAA,QAAA,yBAAA,YA+bP,SAAUlB,GA5bjB5I,EAAA2I,YAAwB,QAAY,mBAAwB,iBAicxDqtM,KAKR,QAASwK,GAAmB3J,GACpBA,GA5bR4J,IACOx4M,EAAI2vM,gBAAkBx3J,SAAA,IAAAc,SAAA,QAAA0M,KAAA,QAAAxN,SAAA,IAAAc,SAAA,SAAA0M,KAAA,SAAAxN,SAAA,IAAAc,SAAA,UAAA0M,KAAA,UAAAxN,SAAA,IAAAc,SAAA,YAAA0M,KAAA,iBAAAxN,SAAA,KAAAc,SAAA,cAAA0M,KAAA,cAAAxN,SAAA,IAAAc,SAAA,SAAA0M,KAAA,UAGtB6yJ,IAgcP,QA7bO1wH,KACH9nF,EAAG2tM,MAAIhwJ,iBAAc,KACrB39C,EAAGkuM,iBACHluM,EAAG2tM,MAAA9vJ,oBAAU,KACb79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAI72J,aAAA,KACP92C,EAAGouM,aACHpuM,EAAG2tM,MAAIU,cAAA,KACPruM,EAAG2tM,MAAIW,cAAA,KACPtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAI,EACPzxD,EAAGuuM,mBACH,IAAGtzM,IACAkX,UAAInS,EAAA2tM,MAAAx6L,gBAA0BhB,UAC9Bq8L,UAAIxuM,EAAA2tM,MAAec,gBAAAC,QACnB54M,UAAmBH,QAAfqK,EAAA2tM,MAAe9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACnBg4M,YAAW9tM,EAAA2tM,MAAAK,kBAAAF,YACX5B,QAAIlsM,EAAA2tM,MAAAgB,gBAAoBC,cACxBl/J,SAAAz1C,EAAgB,QAAA+F,EAAA2tM,MAAA3qJ,KAAA,cAChBrT,OAAI11C,EAAA,QAAA+F,EAAA2tM,MAAyB1qJ,GAAA,cAC7BnvC,UAAAJ,EAAiBrT,OAEpBwnF,GAAiBC,eAAA7sF,GAAAwD,KAAA,SAAAC,GACC,MAAfA,EAAAlI,QA8bKwJ,EAAGk8G,QAAUx9G,EAAIhJ,MACZsK,EAAGk8G,QAAQ/gH,OAAS,IA5b5Bd,EAAA8C,OAAiB,UAAA,0DACf9F,WAAA,EACA+F,KAAA,OAEJ4C,EAAA2tM,MAAe3qJ,KAAA,KACfhjD,EAAA2tM,MAAc1qJ,GAAA,MAEVjjD,EAAAsS,WAAc,GAGdjY,EAAAwH,MAAA,QAAmB,yBAAA,cAEvB,SAAIlB,GACJ5I,EAAI2I,YAAA,QAAsB,mBAAA,eAicjC,QA7bOqnF,KACH/nF,EAAG2tM,MAAIU,cAAA,KACPruM,EAAGk8G,WACHl8G,EAAG2tM,MAAIhwJ,iBAAe,KACtB39C,EAAGkuM,iBACHluM,EAAG2tM,MAAI9vJ,oBAAoB,KAC3B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAI72J,aAAA,KACP92C,EAAGouM,aACHpuM,EAAG2tM,MAAAW,cAAgB,KACnBtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAA,EA8bHzxD,EAAGuuM,mBACH,IAAItzM,IA5bRkX,UAASnS,EAAA2tM,MAAex6L,gBAAAhB,UACjBq8L,UAAIxuM,EAAA2tM,MAAAc,gBAAkBC,QACtB54M,UAA2BH,QAAvBqK,EAAA2tM,MAAA9rL,gBAAuB7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EAC3Bg4M,YAAA9tM,EAAe2tM,MAAAK,kBAAAF,YACf5B,QAAAlsM,EAAA2tM,MAAcgB,gBAAAC,cACdl/J,SAAIz1C,EAAc,QAAA+F,EAAA2tM,MAAA3qJ,KAAA,cAClBrT,OAAI11C,EAAA,QAAc+F,EAAA2tM,MAAA1qJ,GAAA,cAClBnvC,UAAUJ,EAAArT,OAEbwnF,GAAOE,gBAAmB9sF,GAAAwD,KAAA,SAAAC,GACR,MAAfA,EAAAlI,QACIwJ,EAAAkuM,cAAAxvM,EAAsBhJ,MACtBsK,EAAAkuM,cAAsB/yM,OAAA,IAC1Bd,EAAA8C,OAAkB,UAAA,8DACd9F,WAAe,EACf+F,KAAe,OAEf4C,EAAA2tM,MAAA3qJ,KAAA,KACAhjD,EAAA2tM,MAAA1qJ,GAAe,OAInB5oD,EAAAwH,MAAgB,QAAA,yBAAA,mBAEhB,SAAAlB,GACA5I,EAAA2I,YAAgB,QAAA,mBAAA,oBAicvB,QAASsnF,KA5bT,GAAAhoF,EAAS2tM,MAAAhwJ,iBAAiB,CACnB39C,EAAI2tM,MAAA9vJ,oBAAuB,KAC3B79C,EAAAmuM,oBACAnuM,EAAA2tM,MAAA72J,aAAc,KACd92C,EAAIouM,aACJpuM,EAAI2tM,MAAAW,cAAc,KAClBtuM,EAAAk8G,WACAl8G,EAAIyxD,QAAA,EACJzxD,EAAIuuM,mBACJ,IAAAtzM,IACIkX,UAAAnS,EAAA2tM,MAAAx6L,gBAAsBhB,UACtBq8L,UAAAxuM,EAAA2tM,MAAAc,gBAAsBC,QAC1B54M,UAAkBH,QAAlBqK,EAAkB2tM,MAAA9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACdg4M,YAAA9tM,EAAe2tM,MAAAK,kBAAAF,YACf5B,QAAAlsM,EAAA2tM,MAAegB,gBAAAC,cACnBl/J,SAAWz1C,EAAA,QAAA+F,EAAA2tM,MAAA3qJ,KAAA,cACPrT,OAAA11C,EAAA,QAAA+F,EAA0B2tM,MAAA1qJ,GAAA,cAC1B4rJ,OAAA7uM,EAAA2tM,MAAehwJ,iBAAAkxJ,OACf/6L,UAAAJ,EAAerT,OAEnBwnF,GAAwBG,mBAAA/sF,GAAAwD,KAAA,SAAAC,GACR,MAAhBA,EAAAlI,QACIwJ,EAAAmuM,iBAAyBzvM,EAAAhJ,MAC7BsK,EAAiBmuM,iBAAAhzM,OAAA,GACjBd,EAAgB8C,OAAA,UAAA,qEACF9F,WAAA,EACC+F,KAAA,QAKX/C,EAAAwH,MAAc,QAAA,yBAAA,sBAElB,SAAUlB,GACN5I,EAAA2I,YAAmB,QAAA,mBAAA,2BAIvBV,GAAI2tM,MAAA9vJ,oBAAsB,KAC1B79C,EAAAmuM,oBACAnuM,EAAI2tM,MAAA72J,aAAe,KACnB92C,EAAIouM,aACJpuM,EAAA2tM,MAAAW,cAAW,KACXtuM,EAAIk8G,WACJl8G,EAAIyxD,QAAA,EACJzxD,EAAIuuM,oBAkcX,QA7bOtmH,KACH,GAAGjoF,EAAA2tM,MAAA9vJ,oBAAgB,CAChB79C,EAAA2tM,MAAA72J,aAAc,KACd92C,EAAAouM,aA8bCpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WA5bXl8G,EAASyxD,QAAA,EACFzxD,EAAIuuM,mBACJ,IAAItzM,IACJkX,UAAUnS,EAAA2tM,MAAAx6L,gBAAAhB,UACNq8L,UAAAxuM,EAAA2tM,MAAmBc,gBAAAC,QACnB54M,UAAmBH,QAAnBqK,EAAA2tM,MAAmB9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACvBg4M,YAAe9tM,EAAA2tM,MAAAK,kBAAAF,YACX5B,QAAAlsM,EAAA2tM,MAAAgB,gBAAsBC,cACtBl/J,SAAAz1C,EAAA,QAAsB+F,EAAA2tM,MAAA3qJ,KAAA,cAC1BrT,OAAA11C,EAAkB,QAAA+F,EAAA2tM,MAAA1qJ,GAAA,cACd6rJ,UAAA9uM,EAAe2tM,MAAA9vJ,oBAAAixJ,UACfh7L,UAAAJ,EAAerT,OAGnBwnF,GAAmBI,iBAAAhtF,GAAAwD,KAAA,SAAAC,GACA,MAAfA,EAAAlI,QACJwJ,EAAWouM,UAAA1vM,EAAAhJ,MACPsK,EAAAouM,UAAoBjzM,OAAA,GACxBd,EAAgB8C,OAAA,UAAA,iEACZ9F,WAAA,EACa+F,KAAA,QAkcR/C,EAAQwH,MAAM,QAAS,yBAA0B,eA3btD,SAAAlB,GACA5I,EAAA2I,YAAmB,QAAA,mBAAA,oBAIvBV,GAAA2tM,MAAA72J,aAAkB,KAClB92C,EAAIouM,aACJpuM,EAAI2tM,MAAAW,cAAe,KACnBtuM,EAAAk8G,WACAl8G,EAAIyxD,QAAA,EACJzxD,EAAIuuM,oBAkcX,QA7bOrmH,KACH,GAAGloF,EAAA2tM,MAAA72J,aAAiB,CACjB92C,EAAAk8G,WACAl8G,EAAAyxD,QAAA,EACAzxD,EAAAuuM,mBA8bC,IAAItzM,IACAkX,UAAWnS,EAAG2tM,MAAMx6L,gBAAgBhB,UA5bvCq8L,UAAAxuM,EAAgB2tM,MAAAc,gBAAAC,QACd54M,UAAsBH,QAAtBqK,EAAA2tM,MAAsB9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EACtBg4M,YAAA9tM,EAAA2tM,MAAsBK,kBAAAF,YAC1B5B,QAAAlsM,EAAA2tM,MAAkBgB,gBAAAC,cACdl/J,SAAAz1C,EAAe,QAAA+F,EAAA2tM,MAAA3qJ,KAAA,cACfrT,OAAA11C,EAAe,QAAA+F,EAAA2tM,MAAA1qJ,GAAA,cACnB8rJ,QAAW/uM,EAAA2tM,MAAA72J,aAAAi4J,QACPj7L,UAAAJ,EAAArT,OAGJwnF,GAAWK,uBAAAjtF,GAAAwD,KAAA,SAAAC,GACa,MAApBA,EAAAlI,QACJwJ,EAAAk8G,QAAgBx9G,EAAAhJ,MACZsK,EAAAk8G,QAAA/gH,OAAyB,GAC7Bd,EAAiB8C,OAAA,UAAA,0DACD9F,WAAA,EACF+F,KAAA,QAKV/C,EAAAwH,MAAe,QAAA,yBAAA,iBAEnB,SAAWlB,GACP5I,EAAA2I,YAAA,QAA0B,mBAAA,sBAI9BV,GAAIk8G,WACJl8G,EAAAyxD,QAAA,EACAzxD,EAAIuuM,oBAkcX,QAASpmH,KACLnoF,EAAGsS,WAAY,CA5bnB,IAAArX,IACOkX,UAAInS,EAAA2tM,MAAAx6L,gBAA0BhB,UAC9Bq8L,UAAIxuM,EAAA2tM,MAAec,gBAAAC,QACnB54M,UAAmBH,QAAfqK,EAAA2tM,MAAe9rL,gBAAA7hB,EAAA2tM,MAAA9rL,gBAAA/rB,UAAA,EA8blBg4M,YAAa9tM,EAAG2tM,MAAMK,kBAAkBF,YA5bzC5B,QAAIlsM,EAAA2tM,MAAAgB,gBAAoBC,cACxBl/J,SAAAz1C,EAAgB,QAAA+F,EAAA2tM,MAAA3qJ,KAAA,cAChBrT,OAAI11C,EAAA,QAAA+F,EAAA2tM,MAAyB1qJ,GAAA,cAC7BuO,OAAiB,cAAjBxxD,EAAA2tM,MAAiByB,OAAApvM,EAAA2tM,MAAAU,cAAA78I,OAAAxxD,EAAA2tM,MAAAW,cAAA98I,OACjB19C,UAAAJ,EAAgBrT,OAgcnBwnF,GAAyBM,uBAAuBltF,GAAKwD,KAAK,SAAUC,GAChE,GAAmB,MAAfA,EAAIlI,OAAgB,CA1brB,GAFFwJ,EAAAuuM,iBAAiB7vM,EAAAhJ,MAEfsK,EAAAuuM,iBAAepzM,OAAA,EA8bVd,EAAQ8C,OAAO,UAAW,sDA5b/B9F,WAAoB,EACxB+F,KAAgB,WAGhB,CACA,GAAAi1B,GAAcryB,EAAAuuM,iBAAAjiL,IAAA,SAAArxB,EAAAw9M,GA+bD,MA9bbx9M,GAAeg1H,IAAArpH,SAAA6xM,EAAA,GA8bKx9M,GA3blBk3B,SAAYC,IAAAC,GAEdryB,EAAgBuuM,iBAAApzM,OAAA,EACZ6E,EAAAyxD,QAAA,EAEJzxD,EAAgByxD,QAAA,EAgcXzxD,EAAGsS,WAAY,MAzbpBjY,GAAAwH,MAAiB,QAAA,yBAAA,eAEjB,SAAAlB,GACA5I,EAAA2I,YAAe,QAAA,mBAAA,gBAkctB,QA7bOgiG,KACH1iG,EAAG2tM,MAAAx6L,gBAAe,KA8blBnT,EAAG2tM,MAAMc,gBAAkB,KAC3BzuM,EAAG2tM,MAAM9rL,gBAAkB,KAC3B7hB,EAAG2hB,eACH3hB,EAAG2tM,MAAMK,kBAAoB,KA5bxChuM,EAAY4tM,iBACT5tM,EAAA2tM,MAAAgB,gBAAA,KA8bQ3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBAAoB,KA7brC1vM,EAAA2vM,iBACK3vM,EAAA2tM,MAAO3qJ,KAAA,KACPhjD,EAAA2tM,MAAW1qJ,GAAA,KA+bRjjD,EAAG2tM,MAAMyB,OAAS,KAClBpvM,EAAG2tM,MAAMU,cAAgB,KA7bjCruM,EAASk8G,WACDl8G,EAAA2tM,MAAKhwJ,iBAAA,KA+bL39C,EAAGkuM,iBA7bJluM,EAAA2tM,MAAA9vJ,oBAA8B,KAC9B79C,EAAAmuM,oBA+bCnuM,EAAG2tM,MAAM72J,aAAe,KA7bzB92C,EAAAouM,aACApuM,EAAA2tM,MAAAW,cAAuB,KACtBtuM,EAAGk8G,WA+bHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBA3bP,QAAGd,KACAztM,EAAA2tM,MAAAc,gBAAe,KACfzuM,EAAA2tM,MAAA9rL,gBAAa,KACb7hB,EAAA2hB,eACA3hB,EAAA2tM,MAAAK,kBAAiB,KACjBhuM,EAAA4tM,iBACA5tM,EAAA2tM,MAAAgB,gBAAqB,KACrB3uM,EAAAiuM,eACAjuM,EAAA2tM,MAAA+B,kBAAyB,KACzB1vM,EAAA2vM,iBACA3vM,EAAA2tM,MAAQ3qJ,KAAA,KACRhjD,EAAA2tM,MAAA1qJ,GAAe,KACfjjD,EAAA2tM,MAAAyB,OAAe,KACfpvM,EAAA2tM,MAASU,cAAA,KACZruM,EAAAk8G,WA+bIl8G,EAAG2tM,MAAMhwJ,iBAAmB,KA7bhC39C,EAAAkuM,iBACIluM,EAAA2tM,MAAI9vJ,oBAAW,KA+bf79C,EAAGmuM,oBACHnuM,EAAG2tM,MA9bK72J,aAAQ,KA+bhB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WACHl8G,EAAGyxD,QA9bK,EA+bRzxD,EAAGuuM,oBAGP,QA9bQqB,KA+bJ5vM,EAAG2tM,MAAM9rL,gBAAkB,KA7b3B7hB,EAAA2tM,MAAAK,kBAA0B,KA+b1BhuM,EAAG2tM,MA9bKgB,gBAAe,KA+bvB3uM,EAAGiuM,eACHjuM,EAAG2tM,MA9bK+B,kBAAe,KA+bvB1vM,EAAG2vM,iBACH3vM,EAAG2tM,MA9bM3qJ,KAAA,KA+bThjD,EAAG2tM,MA9bK1qJ,GAAA,KA+bRjjD,EAAG2tM,MAAMyB,OAAS,KAClBpvM,EA9bG2tM,MAAAU,cAAe,KA+blBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBAAsB,KAC/B79C,EAAGmuM,oBA7bPnuM,EAAA2tM,MAAS72J,aAAA,KACL92C,EAAAouM,aA+bApuM,EAAG2tM,MA9bCW,cAAA,KA+bJtuM,EAAGk8G,WACHl8G,EAAGyxD,QA9bS,EA+bZzxD,EAAGuuM,oBAGP,QAASsB,KACL7vM,EAAG2tM,MAAMK,kBA9biB,KA+b1BhuM,EAAG2tM,MAAMgB,gBAAkB,KAC3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MAAM+B,kBA9bkB,KA+b3B1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAAM3qJ,KA9bG,KA+bZhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MA9bIyB,OAAU,KA+bjBpvM,EAAG2tM,MA9bKU,cAAc,KA+btBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MA9bC9vJ,oBAAA,KA+bJ79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aA7bPpuM,EAAA2tM,MAASW,cAAa,KAClBtuM,EAAAk8G,WA+bAl8G,EAAGyxD,QA9bK,EA+bRzxD,EAAGuuM,oBAGP,QAASR,KACL/tM,EAAG2tM,MAAMgB,gBAAkB,KAC3B3uM,EAAGiuM,eACHjuM,EAAG2tM,MA9bK+B,kBAAA,KA+bR1vM,EAAG2vM,iBACH3vM,EAAG2tM,MAAM3qJ,KA9bO,KA+bhBhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MAAMyB,OAAS,KAClBpvM,EAAG2tM,MAAMU,cA9be,KA+bxBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBAAmB,KAC5B39C,EAAGkuM,iBACHluM,EAAG2tM,MAAM9vJ,oBA9bsB,KA+b/B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aA9bQ,KA+bjB92C,EAAGouM,aACHpuM,EAAG2tM,MAAMW,cAAgB,KACzBtuM,EAAGk8G,WACHl8G,EAAGyxD,QA9bS,EA+bZzxD,EAAGuuM,oBAGP,QAASiK,KACLx4M,EAAG2tM,MAAM+B,kBAAoB,KAC7B1vM,EAAG2vM,iBA7bP3vM,EAAA2tM,MAAS3qJ,KAAW,KAChBhjD,EAAA2tM,MAAI1qJ,GAAA,KA+bJjjD,EAAG2tM,MA9bCyB,OAAA,KA+bJpvM,EAAG2tM,MA9bKU,cAAc,KA+btBruM,EAAGk8G,WACHl8G,EAAG2tM,MA9bKhwJ,iBAAoB,KA+b5B39C,EAAGkuM,iBACHluM,EAAG2tM,MA9bK9vJ,oBAAsB,KA+b9B79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MA9bKW,cAAQ,KA+bhBtuM,EAAGk8G,WACHl8G,EAAGyxD,QA9bS,EA+bZzxD,EAAGuuM,oBAEP,QAASrlJ,KACLlpD,EAAG2tM,MAAM3qJ,KAAO,KAChBhjD,EAAG2tM,MAAM1qJ,GAAK,KACdjjD,EAAG2tM,MAAMyB,OA9bM,KA+bfpvM,EAAG2tM,MAAMU,cAAgB,KACzBruM,EAAGk8G,WACHl8G,EAAG2tM,MAAMhwJ,iBA9biB,KA+b1B39C,EAAGkuM,iBACHluM,EAAG2tM,MA9bI9vJ,oBAAe,KA+btB79C,EAAGmuM,oBACHnuM,EAAG2tM,MAAM72J,aAAe,KACxB92C,EAAGouM,aACHpuM,EAAG2tM,MA9bEW,cAAA,KA+bLtuM,EAAGk8G,WACHl8G,EAAGyxD,QAAS,EACZzxD,EAAGuuM,oBA0JP,QA9bQn1L,GAAG1jB,GA+bP,GA9bI2jB,GAAG3jB,EAAS2jB,KACZ9iB,EAAGb,EAAAa,IA+bP,OA9bc,QAAVA,IAAU,IAAA8iB,EAAAC,UAAA,IAAAD,EAAAC,UAqelB,QAASC,GAAY7jB,GA7brB,GAAA2jB,GAAS3jB,EAAA2jB,KACD9iB,EAAGb,EAAMa,IA+bb,IA9bO,QAAHA,EAGA,IAAI,GAFDijB,GAAS,GAAAC,MAAAJ,GAAAK,SAAA,EAAA,EAAA,EAAA,GAERxe,EAAM,EAAAA,EAAA8E,EAAA2Z,OAAAxe,OAAAD,IAAA,CACN,GAAA0e,GAAc,GAAMH,MAAAzZ,EAAA2Z,OAAgBze,GAAAme,MAAAK,SAAA,EAAA,EAAA,EAAA,EAEpC,IAAAF,IAAeI,EACf,MAAA5Z,GAAa2Z,OAAGze,GAAM1E,OAkc9B,MAAO,GA9xBX,GAAIwJ,GA7bIC,IA+bRD,GAAGqU,kBAAqBhJ,MAAS,IAAOA,MAAS,KAAQA,MAAS,KAAQA,MAAS,KAAQA,MAAS,MACpGrL,EAAGsU,SAAWtU,EAAGqU,gBAAgB,GA3bjCrU,EAAAuU,YAAS,EA8bTvU,EAAGwU,qBAAuB,SAAUC,GA5bhCzU,EAAAuU,YAAWE,EAgcf,IAAItC,GA7bOhY,EAAwBgG,uBAAIwU,gBAAuBxC,UA8b1DuB,EA7bOvZ,EAAyBgG,sBA8bpCH,GAAGyhB,oBA7beA,EA8blBzhB,EAAG0tM,aA7bSA,EA8bZ1tM,EAAG6tM,WA7bSA,EA8bZ7tM,EAAGu4M,mBA7bSA,EA8bZv4M,EAAG8nF,eA7bSA,EA8bZ9nF,EAAG+nF,gBA7bSA,EA8bZ/nF,EAAGgoF,mBA7boBA,EA8bvBhoF,EAAGioF,iBA7bmBA,EA8btBjoF,EAAGkoF,uBAAyBA,EAC5BloF,EAAGmoF,uBA7bKA,EA8bRnoF,EAAG0iG,MAAQA,EACX1iG,EAAG4vM,aA7baA,EA8bhB5vM,EAAG6vM,aA7baA,EA8bhB7vM,EAAGyxD,QAAS,EACZv/C,IAuHAlS,EAAAi5M,kBAAS,WACLj5M,EAAAyxD,QAAI,EA+bJzxD,EAAGuuM,qBAMPvuM,EAAGkpD,UAAY,WA7bWvzD,QAA1BqK,EAAS2tM,MAAA+B,mBACFxmJ,IACgB,KAAhBlpD,EAAA2tM,MAAA+B,kBAAgBv3J,UAChBn4C,EAAM2tM,MAAA3qJ,KAAA,GAAAvpC,MACNzZ,EAAA2tM,MAAA3qJ,KAAmB5uD,QAAA8e,KAAAlT,EAAA2tM,MAAA3qJ,MACnBhjD,EAAM2tM,MAAA1qJ,GAAA7uD,QAAe8e,KAAAlT,EAAA2tM,MAAA3qJ,MACT,iBAAZhjD,EAAY2tM,MAAAyB,OACNrnH,KAEN/nF,EAAU2tM,MAAAyB,OAAA,aACDtnH,MAG4B,KAApC9nF,EAAW2tM,MAAG+B,kBAAsBv3J,UACpCn4C,EAAA2tM,MAAW3qJ,KAAS,KACpBhjD,EAAA2tM,MAAY1qJ,GAAG,OAGfjjD,EAAA2tM,MAAU3qJ,KAAQ,KAClBhjD,EAAA2tM,MAAQ1qJ,GAAQ,OAmchBiG,KAIRlpD,EAAGgc,QAAU,WACkC,KAAvChc,EAAG2tM,MAAM+B,kBAAkBv3J,WAC3Bn4C,EAAG2tM,MA9bK3qJ,KAAG5uD,QAAa8e,KAAAlT,EAAA2tM,MAAA3qJ,MA+bxBhjD,EAAG2tM,MA9bK1qJ,GAAG7uD,QAAW8e,KAAAlT,EAAA2tM,MAAA3qJ,MA+bC,iBAAnBhjD,EAAG2tM,MAAMyB,OA7bTrnH,KAgcA/nF,EA9bC2tM,MAAAyB,OAAA,aACDtnH,OAmcZ9nF,EAAGk8M,WAAa,WACZ,GAA2C,KAAvCl8M,EAAG2tM,MAAM+B,kBAAkBv3J,SAAiB,CA7bpDn4C,EAAS2tM,MAAA1qJ,GAAA7uD,QAAkB8e,KAAAlT,EAAA2tM,MAAA3qJ,KACpB,IAAA4E,GAAsB,CACtB5nD,GAAA2tM,MAAU1qJ,GAAAznC,QAAAxb,EAAA2tM,MAAA1qJ,GAAAjnC,UAAA4rC,OAGV5nD,GAAA2tM,MAAM3qJ,KAAA,GACNhjD,EAAA2tM,MAAA1qJ,GAAA,EAEY,kBAAZjjD,EAAA2tM,MAAAyB,OACArnH,KAEA/nF,EAAA2tM,MAASyB,OAAA,aACTtnH,MAmcP9nF,EAAGgoD,gBA9bkB,WAgcjB,GA9buC,KAAnChoD,EAAA2tM,MAAA+B,kBAA0Bv3J,SAAe,CACzCn4C,EAAA2tM,MAAQ1qJ,GAAA7uD,QAAQ8e,KAAWlT,EAAA2tM,MAAM3qJ,KACjC,IAAA8E,GAAuB,CA+bvB9nD,GAAG2tM,MAAM1qJ,GAAG8E,SAAS/nD,EAAG2tM,MAAM1qJ,GAAG9R,WAAa2W,GA7blD9nD,EAAA2tM,MAAA1qJ,GAAAznC,QAAAxb,EAAyB2tM,MAAA1qJ,GAAAjnC,UAAqB,GACvB,iBAAfhc,EAAA2tM,MAAIyB,OACJrnH,KAgcA/nF,EAAG2tM,MA9bCyB,OAAQ,aA+bZtnH,SAGH,IA9buB,KA8bnB9nF,EA9bG2tM,MAAG+B,kBAAav3J,SAAA,CA+bxBn4C,EAAG2tM,MA9bK1qJ,GAAG7uD,QAAW8e,KAAAlT,EAAA2tM,MAAA3qJ,KA+btB,IAAI8E,GAAqB,CACzB9nD,GAAG2tM,MAAM1qJ,GAAG8E,SAAS/nD,EAAG2tM,MAAM1qJ,GAAG9R,WAAa2W,GAC9C9nD,EAAG2tM,MA9bE1qJ,GAAAznC,QAAAxb,EAAA2tM,MAAA1qJ,GAAAjnC,UAAA,GACa,iBAAdhc,EAAA2tM,MAAQyB,OA+bRrnH,KA5bJ/nF,EAAA2tM,MAAWyB,OAAA,aA+bPtnH,SA3bH,IAAqB,MAArB9nF,EAAA2tM,MAAA+B,kBAAqBv3J,SAAA,CACtBn4C,EAAG2tM,MAAM1qJ,GAAA7uD,QAAA8e,KAAkBlT,EAAA2tM,MAAA3qJ,KAC3B,IAAG8E,GAAM,CACT9nD,GAAG2tM,MAAA1qJ,GAAA8E,SAAA/nD,EAAmB2tM,MAAA1qJ,GAAA9R,WAAA2W,GACtB9nD,EAAG2tM,MAAM1qJ,GAAAznC,QAAAxb,EAAA2tM,MAAe1qJ,GAAAjnC,UAAA,GACT,iBAAZhc,EAAA2tM,MAAAyB,OACArnH,KAEA/nF,EAAA2tM,MAASyB,OAAA,aACTtnH,OAocX9nF,EAAGk5M,eA9bS,WAEiC,KA8brCl5M,EAAG2tM,MA9bC+B,kBAAgBv3J,WA+bpBn4C,EAAG2tM,MA9bC3qJ,KAAW,GAAAvpC,MAAM,QAAA,GAAiBA,OAAAy6B,eA+btCl0C,EAAG2tM,MA9bC1qJ,GAAA,GAAWxpC,MAAA,UAAY,GAAAA,OAAAy6B,eA+bJ,iBAAnBl0C,EAAG2tM,MAAMyB,OA7bbrnH,KAgcI/nF,EAAG2tM,MA9bIyB,OAAA,aA+bPtnH,OAQZ9nF,EAAGqa,MAAQ,WACPra,EAAGsa,GAAK,GAAIb,OAEhBzZ,EAAGqa,QAEHra,EAAG0X,MAAQ,WACP1X,EAAGsa,GA9bE,MAicTta,EAAGua,eACCC,YA9bOjB,EA+bPkB,QA9bO,GAAMhB,MA+bbiB,WA9bO,GAicX1a,EAAG2a,aACCC,aAAcxB,EACd+C,WAAY,KACZtB,QAAS,GAAIpB,MAAK,KAAM,EAAG,IA7b/BgB,QAAS,GAAAhB,MACLqB,YAAa,GAwcjB9a,EAAG+a,UA9bS,WA+bR/a,EAAGua,cA9bKE,QAAgBza,EAAMua,cAAAE,QAAkB,KAAA,GAAAhB,MA+bhDzZ,EAAG2a,YA9bKF,QAAYza,EAAMua,cAAgBE,SAic9Cza,EAAG+a,YAEH/a,EAAGkb,MAAQ,WACPlb,EAAGmb,OAAOtM,QAAS,CA7bf,IAAA4K,OAkcRzZ,EAAGgb,MAAQ,WACPhb,EAAGib,OAAOpM,QAAS,CACP,IAAI4K,OAGpBzZ,EAAGwb,QAAU,SAAUC,EAAMC,EAAOC,GAChC3b,EAAGsa,GAAK,GAAIb,MA9bCgC,EAAAC,EAAAC,IAicjB3b,EAAG4b,SA9bQ,eAAe,aAAA,aAAA,aA+b1B5b,EAAG6b,OA9bS7b,EAAA4b,QAAW,GA+bvB5b,EAAG8b,iBAAmB,cAGtB9b,EAAGmb,QACCtM,QA9bO,GAicX7O,EAAGib,QACCpM,QA9bO,wNApVfza,QACKC,OAAO,kCACPe,WA7bU,wBAAcspP,MAsuCjC,WACI,YAOA,SAASC,GA9bWnkP,EAAcwkC,EAAAjnC,EAAS0S,EAAAxQ,EAA0BsI,EAAA+Z,GAqcjE,QA9bQqwG,KA+bJ3sH,EAAG2lD,KA9bIpjD,EAASxE,KAubpB,GAAIiC,GAAKC,IAET0sH,KAQA3sH,EAAGsrO,GAAK,WACJhvN,EAAkBrN,MAAMjP,EAAG4jG,cAG/B5jG,EAAG0R,OA9bI,WACH4K,EAAUiB,QAAA,mGAyalBnpB,QACKC,OAAO,+BACPe,WAAW,oBAAqBupP,MAuBzC,WACI,YAOA,SA9bQC,GAAApkP,EAAyBH,EAAA2kC,EAAAjnC,EAAiC0S,EAAAgd,EAAextB,EAAAD,EAAA2kI,EAAApkI,GAkd7E,QAASoyH,KACD3yH,EAAOvE,OAAOC,MAEdsK,EAAG0+N,aA9bI1kO,EAAYvE,OAAAC,KAAAopO,aA+bnB9+N,EAAG2+N,SAAW3kO,EAAOvE,OAAOC,KAAKipO,SACjC3+N,EAAG6+O,SAAW7kP,EAAOvE,OAAOc,KAC5ByJ,EAAG8+O,mBA9bE9kP,EAAAvE,OAAAC,KAAAopO,aAAAj8K,eACa,UAAd7iD,EAAA6+O,WA+bAE,IA7bU,wBAAfhnP,EAAeyE,eAgcyB,qCAAxBxC,EAAOmiG,QAAQ1/F,MAES,oCAAxBzC,EAAOmiG,QAAQ1/F,MA5brB,2BAAAzC,EAAAmiG,QAAA1/F,MAEc,0BAAlBzC,EAAAmiG,QAAkB1/F,QAKxBpC,EAAM8C,OAAA,UAAkB,uBACxB9F,WAAc,EACd+F,KAAM,OAENpD,EAAM8F,GAAA,mBAkcb,QA9bOi/O,KACHvkP,EAAGqI,QAAM7C,EAAA2+N,SAAmB,SAAAqgB,GACzBp4O,SAAAq4O,EAAgBD,MAAAh/O,EAAA0+N,aAAApnM,eAChBt3B,EAAM87D,mBAAsBkjL,KAE/Bh/O,EAAGk/O,YAAMl/O,EAAA0+N,aAAenmM,KAic5B,QA9bO4mN,KAEA,SAAAn/O,EAAA6+O,SA+bC7+O,EAAG6+O,SAAW,QA5btBE,IACO/+O,EAAA6+O,SAAM,QAkcb,QA9bOO,GAAgBC,GACnB,GAAGA,EAAM,CACN,GAAAhhM,GAAcghM,EAAArkP,MAAA,IACd,OAAM,QAANqjD,EAAM,GACNA,EAAgB,GAELghM,GAkclB,QA9bOJ,GAAMh8O,GACT,GAAGo7C,GAAAp7C,EAAAjI,MAAgB,IACnB,OAAGqjD,GAAM,GAicb,QA9bOihM,KAEH,GAAGt/O,EAAA87D,oBACA,GAAS,SAAT97D,EAAA6+O,SAAS,CACT,GAAA5jP,IA+bSk2D,MAAOnxD,EAAG0+N,aAAavtK,MACvB75B,aAAc2nN,EAAgBj/O,EAAG87D,oBA7bxCvjC,KAAAv4B,EAAek/O,YAGjBz3N,GAAwB++D,yBAAAvrF,GAAAwD,KAAA,SAAAC,GACV,MAAdA,EAAclI,SACRuB,EAAA2I,YAAoB,UAAA,4CAAA,mBAC1BwjB,MAEM,SAAKvjB,GACL5I,EAAS2I,YAAA,QAAA,0BACTrJ,WAAgB,EACZ+F,KAAA,aAGJ,IAAsB,WAAtB4C,EAAA6+O,SAAsB,CAC5B,GAAA5jP,IACMk2D,MAAAnxD,EAAA0+N,aAAevtK,MACrB75B,aAAY2nN,EAAAj/O,EAAA87D,oBACNvjC,KAAAv4B,EAAAk/O,YAGNz3N,GAAmBg/D,0BAAAxrF,GAAAwD,KAAA,SAAAC,GA+bS,MAAfA,EAAIlI,SACJuB,EAAW2I,YAAY,UAAW,0CAA2C,mBA7bxFwjB,MAEI,SAAAvjB,GACN5I,EAAc2I,YAAA,QAAA,0BACRrJ,WAAA,EACN+F,KAAgB,cAKhB/C,GAAA8C,OAAU,UAAA,gCACV9F,WAAM,EACN+F,KAAA,OAmcP,QA9bOosE,KACH,GAAGvuE,IACAk2D,MAAAnxD,EAAS0+N,aAAAvtK,MACT54B,KAAAv4B,EAAAk/O,YAGPz3N,GAASi/D,2BAAiBzrF,GAAAwD,KAAA,SAAAC,GACb,MAANA,EAAMlI,SACNuB,EAAc2I,YAAA,UAAA,kCAAA,mBACdwjB,MAEA,SAAMvjB,GACN5I,EAAW2I,YAAA,QAAA,0BACXrJ,WAAe,EACf+F,KAAM,SAmcb,QA9bOhF,KACH,GAAG6C,IACAk2D,MAAAnxD,EAAA0+N,aAAYvtK,OAGZ/xD,EAAS7E,EAAA8E,MACThI,WAAA,EA+bCnC,YAAa,gEACbE,WAAY,oBA7bpBC,aAAS,KACF+H,KAAM,KACN8S,SACA3N,MAAM,WACA,OACAxE,KAAS,aAMlBqB,GAAGM,OAAAjB,KAAmB,SAAAq1D,GACnB74D,EAAAs9B,KAAMu7B,EAENrsC,EAAsBk/D,kBAAA1rF,GAAAwD,KAAA,SAAAC,GACZ,MAAVA,EAAUlI,SACDuB,EAAA2I,YAAA,UAAA,yBAAA,mBACTwjB,MAEE,SAAYvjB,GACd5I,EAAa2I,YAAA,QAAA,0BACPrJ,WAAK,EACL+F,KAAS,WAoctB,QA9bOypF,KACH,GAAG5rF,IACAk2D,MAAAnxD,EAAA0+N,aAAYvtK,MACZ54B,KAAMv4B,EAAAk/O,aAGN9/O,EAAA7E,EAAmB8E,MA+blBhI,WAAW,EACXnC,YAAa,gEA7blBE,WAAA,oBACIC,aAAS,KACT+H,KAAA,KA+bC8S,SACI3N,MAAO,WACH,OACIxE,KAAM,cAMtBqB,GA9bWM,OAAMjB,KAAO,SAAIq1D,GA+bxB74D,EA9bIs9B,KAAGu7B,EAgcPrsC,EA9biBo/D,mBAAU5rF,GAAAwD,KAAA,SAAAC,GACnB,MAAAA,EAAAlI,SA+bAuB,EA9bC2I,YAAA,UAAA,yBAAA,mBACDwjB,MAgcL,SAAUvjB,GACT5I,EAAW2I,YAAY,QAAS,0BA7b/BrJ,WAAa,EACX+F,KAAM,WAocrB,QAAS+zE,KACL,GAAIl2E,IACAk2D,MAAOnxD,EAAG0+N,aAAavtK,MACvB54B,KA9bCv4B,EAAAk/O,YACD5nN,aAAA2nN,EAAAj/O,EAAA87D,oBAicJr0C,GAAqBm/D,oBAAoB3rF,GAAKwD,KAAK,SAAUC,GA7bxC,MAAtBA,EAAUlI,SACFuB,EAAM2I,YAAkB,UAAA,4BAAiB,mBACzCwjB,MAgcJ,SA9bQvjB,GA+bP5I,EA9bI2I,YAAA,QAAA,0BA+bArJ,WA9bC,EACD+F,KAAG,SAmcf,QAAS8zE,KA7bN,GAAAj2E,IACKk2D,MAAGnxD,EAAM0+N,aAAAvtK,MACT54B,KAAGv4B,EAAMk/O,YAicbz3N,GAAqBq/D,iBAAiB7rF,GAAKwD,KAAK,SAAUC,GA7brD,MAAAA,EAAAlI,SACEuB,EAAM2I,YAAO,UAAA,wBAAA,mBACbwjB,MAEP,SAAavjB,GACT5I,EAAA2I,YAAA,QAAA,0BACCrJ,WAAA,EACE+F,KAAM,SAmcjB,QAAS8mB,KA7bNlqB,EAAA8F,GAAA/H,EAAkByE,eAsLrB,GAAIwD,GA9bIC,IAgcRD,GAAG6+O,SAAW,OACd7+O,EAAGk+N,WAGHl+N,EAAGo/O,qBA9buBA,EA+b1Bp/O,EAAGs/O,gBAAkBA,EACrBt/O,EAAGm/O,eAAiBA,EACpBn/O,EAAGwpE,gBA9bcA,EA+bjBxpE,EAAG5H,OAASA,EACZ4H,EAAG6mF,mBA9bqBA,EA+bxB7mF,EAAGmxE,SAAWA,EACdnxE,EAAGkxE,MAAQA,EACXlxE,EAAGkkB,KAAOA,EAEVyoG,qIAtBJv4H,QACKC,OA9bO,+BA+bPe,WA9bO,yBAAuBwpP,MA8sBvC,WACI,YAOA,SAASW,GAAa/kP,EAAQH,EAAS2kC,EAAMjnC,EAAY0S,EAAQgd,EAAsBttB,EAAuBF,EAASD,EAAQ2kI,GA3Y3H,QAAGhS,KAgc6B,wBAAxB3yH,EAAOmiG,QAAQ1/F,KACfgrB,EAAqBs/D,uBAAuB50E,GAAW1T,KAAK,SAASC,GA7b1E8gP,EAAgB9gP,EAAAhJ,OACf,SAAaiL,MACA,qCAAJ3G,EAAImiG,QAAA1/F,KACbgrB,EAAWu/D,oCAAA70E,GAAA1T,KAAA,SAAAC,GA+bH8gP,EAAW9gP,EAAIhJ,OAChB,SAASiL,MA7bH,oCAAd3G,EAAcmiG,QAAA1/F,KACbgrB,EAAcw/D,mCAAA90E,GAAA1T,KAAA,SAAAC,GACd8gP,EAAY9gP,EAAAhJ,OACZ,SAAaiL,MACA,2BAAJ3G,EAAImiG,QAAA1/F,KACbgrB,EAAay/D,0BAAA/0E,GAAA1T,KAAA,SAAAC,GA+bL8gP,EAAW9gP,EAAIhJ,OAChB,SAASiL,MACmB,0BAAxB3G,EAAOmiG,QAAQ1/F,MA7b9BgrB,EAAwB0/D,yBAAAh1E,GAAA1T,KAAA,SAAAC,GAChB8gP,EAAY9gP,EAAAhJ,OACZ,SAAYiL,MAIpB,QAAG6+O,GAAY9pP,IACRA,EAAAyF,OAAc,GACdd,EAAA8C,OAAY,UAAa,oBA+bpB9F,WAAW,EACX+F,KAAM,OA3bf5C,EAAQqI,QAAAnN,EAAY,SAAA+xN,GAChBA,EAAAz6L,SAAgBxyB,EAAA6P,KAAArK,EAAAkoB,aACfG,KAAYo/L,EAAAz6L,WA+bT7E,YACHs/L,EAAI36L,eAAiBtyB,EAAO6P,KAAKrK,EAAGgoB,oBAChCjP,GAAM0uM,EAAI36L,iBA7bX7E,eAicPvyB,EAAO8E,EAAO83B,QAAQ58B,EAAM,cAC5B,KAAK,GAAIqxB,KAAOrxB,GA7bjBA,EAAUqxB,GAAAvsB,EAAU83B,QAAM58B,EAAOqxB,GAAK,cAicrC/mB,GAAGk+N,QAAUxoO,EAKjB,QAAS+pP,GAAkBh4B,GA7bxBznN,EAAA0+N,aAASjX,EAgcRhgM,EAAqB8+D,uBAAuBkhI,EAAIt2J,OAAO1yD,KAAK,SAASC,GACjE,GAAmB,MAAfA,EAAIlI,OAAgB,CA7bpBwJ,EAAA0+N,aAAA7hN,eAAAlgB,KAAAC,MAAA8B,EAAAhJ,KACA,IAAAojD,KA+bA94C,GAAG2+N,YACHnkO,EAAO+7B,MAAMv2B,EAAG0+N,aAAa7hN,eAAe,GAAI,SAAS/S,EAAK80N,GAC1D,GAAIvgL,GAASugL,EAAI5jO,MAAM,IA7b9B,IAAkB,QAAlBqjD,EAAkB,GAAA,CACP,GAAAwgL,GAAArkO,EAAAy2B,MAAAjxB,EAAA0+N,aAAA7hN,eAAA+hN,EACA9lL,GAAA8lL,GAAA,WAAA3kO,EAAA,UAAA4kO,EAAA,GAAA,YACH7+N,EAAA2+N,SAAO9mO,KAAA+mO,OACZ,IAAsB,kBAATA,EAA2B,CA+bhC,GAAIC,GAAMrkO,EAAOy2B,MAAMjxB,EAAG0+N,aAAa7hN,eAAgB+hN,EA7b1D9lL,GAAO8lL,GAAO,WAAO3kO,EAAa,UAAA4kO,EAAA,GAAA,YACnC7+N,EAAA2+N,SAAa9mO,KAAI+mO,OAEjB9lL,GAAA8lL,GAAe,KAkcnB5+N,EAAG0+N,aAAa7hN,eAAehlB,KAAKihD,GA7brC9+C,EAAA8F,GAAA,sBA+bKpK,MACIopO,aAAc9+N,EAAG0+N,aACjBC,SAAU3+N,EAAG2+N,UAEjBpoO,KAAM,WA3b1B,SAAAoK,MAyTI,GAAIX,GAAKC,IAGTD,GAAGk+N,UACH,IAAInpN,GA9bgB5a,EAAqBgG,uBA+brCgS,EA9bO4C,EAAiBJ,gBAAYxC,SAgcxCnS,GAAGgoB,qBACCC,aA9bS,qBA+bTlP,GAAI,IAEJkP,aAAc,oBACdlP,GAAI,IAEJkP,aA9ba,iCA+bblP,GA9bI,IAicR/Y,EAAGkoB,cACCC,YA9bQ,cA+bRC,UA9bS,EA+bTC,KAAM,MAENF,YAAa,sBACbC,UAAW,EACXC,KAAM,OAENF,YAAa,uBA7bdC,UAAA,EACCC,KAAA,OAgcAF,YA9ba,iCA+bbC,UA9bO,EA+bPC,KA9bI,OAgcJF,YA9bS,6CA+bTC,UA9bW,EA+bXC,KAAM,OAENF,YAAa,mBACbC,UAAW,EACXC,KAAM,OA1bVroB,EAAGy/O,kBAAoBA,EAgcvB9yH,iJArDJv4H,QACKC,OAAO,+BACPe,WAAW,eA9bCmqP,MA2kBrBnrP,QAAQC,OA/bC,SAAOwF,KAAA,iBAAA,SAAA6lP,GAAAA,EAAA14K,IAAA,2DAAA;AAgchB04K,EA/bS14K,IAAA,2BAAgC,41UAgczC04K,EAAe14K,IAAI,8CAA8C,2oDACjE04K,EAAe14K,IAAI,0CAA0C,8rFAC7D04K,EA/ba14K,IAAA,2BAAgC,2hLAgc7C04K,EA/bY14K,IAAK,iCAAA;AAgcjB04K,EAAe14K,IAAI,yDAAyD,g1OAC5E04K,EA/bQ14K,IAAA,2DAAA,yxBAgcR04K,EAAe14K,IAAI,8CAA8C,u0IACjE04K,EAAe14K,IAAI,iCAAiC,oqNACpD04K,EAAe14K,IAAI,qCAAqC,0uRACxD04K,EA/bQ14K,IAAS,4CAAO;AAgcxB04K,EA/be14K,IAAA,wCAAa,myEAgc5B04K,EAAe14K,IAAI,wCAAwC,i+HAC3D04K,EAAe14K,IAAI,wDAAwD,+8BAC3E04K,EA/bW14K,IAAK,0CAAY,gjMAgc5B04K,EA/bY14K,IAAA,4DAA2B,wkDAgcvC04K,EAAe14K,IAAI,uCAAuC,gmCAC1D04K,EAAe14K,IAAI,+CAA+C,ykFAClE04K,EA/bW14K,IAAA,sCAAqB,oxIAgchC04K,EA/bY14K,IAAA,uCAA0B,05MAgctC04K,EAAe14K,IAAI,yCAAyC;AAC5D04K,EAAe14K,IAAI,6CAA6C,84BAChE04K,EAAe14K,IAAI,mCAAmC;AA9btD04K,EAAa14K,IAAA,6CAAA,y0DAgcb04K,EA/bI14K,IAAA,qDAAA,k0KAgcJ04K,EAAe14K,IAAI,kDAAkD,4sIACrE04K,EAAe14K,IAAI,6CAA6C,+gOAChE04K,EAhcI14K,IAAA,8CAAA,oiMAicJ04K,EAhcS14K,IAAO,uCAAA;AAichB04K,EAhcS14K,IAAA,2CAAqC,ihKAic9C04K,EAAe14K,IAAI,qDAAqD,oxEACxE04K,EAAe14K,IAAI,0DAA0D,swDAC7E04K,EAhca14K,IAAA,mCAAwC,yrHAicrD04K,EAhcY14K,IAAK,+CAAA;AAicjB04K,EAAe14K,IAAI,6DAA6D,25gBAChF04K,EAhcW14K,IAAA,qEAAW,wpLAictB04K,EAhcW14K,IAAA,6CAAU;AAicrB04K,EAAe14K,IAAI,wCAAwC,6zHAC3D04K,EAAe14K,IAAI,iDAAiD,g/HACpE04K,EAhcW14K,IAAA,wCAAuB;AAiclC04K,EAhcW14K,IAAA,kDAAkB,i6HAic7B04K,EAhcW14K,IAAA,wCAAiB,kmBAic5B04K,EAhcW14K,IAAA,+CAAkB,uhGAic7B04K,EAhcW14K,IAAA,8CAAS,q4HAicpB04K,EAhcW14K,IAAA,sCAAqB,IAichC04K,EAhcW14K,IAAA,kDAAW,6qeAictB04K,EAhcW14K,IAAQ,0CAAA;AAicnB04K,EAhcW14K,IAAO,2BAAA,k5IAiclB04K,EAAe14K,IAAI,6BAA6B,ojJAChD04K,EAhcQ14K,IAAA,4CAAA,6kpBAicR04K,EAAe14K,IAAI,sCAAsC;AACzD04K,EAAe14K,IAAI,uCAAuC,0kpBAC1D04K,EAhcQ14K,IAAS,qCAAO,20HAicxB04K,EAhcY14K,IAAI,8CAAoB,8uIAicpC04K,EAAe14K,IAhcC,6CAAA;AAichB04K,EAAe14K,IAhcI,iDAAkC,+8BAicrD04K,EAAe14K,IAhcI,2CAA8B,ssXAicjD04K,EAAe14K,IAhcI,qDAAyB,6kDAic5C04K,EAAe14K,IAhcI,+CAAwC,2cAic3D04K,EAAe14K,IAhcC,2CAA6B,ojJAic7C04K,EAAe14K,IAAI,6DAhcC,+6UAicpB04K,EAAe14K,IAAI,qDAhckC;AAicrD04K,EAAe14K,IAAI,qEAAqE,2hmBACxF04K,EAAe14K,IAAI,6CAhcoC;AAicvD04K,EAAe14K,IAAI,iDAAiD,mvLACpE04K,EAAe14K,IAAI,uDAhcoC,yzKAicvD04K,EAAe14K,IAAI,uDAAuD,s+eAC1E04K,EAAe14K,IAAI,uCAhcoC;AAicvD04K,EAAe14K,IAAI,2CAA2C,qsPAC9D04K,EAAe14K,IAAI,yDAhcoC,gqKAicvD04K,EAAe14K,IAAI,4DAA4D,urSAC/E04K,EAAe14K,IAAI,4DAA4D,m6NAC/E04K,EAAe14K,IAAI,wDAAwD;AAC3E04K,EAAe14K,IAhcI,8DAAA,wyBAicnB04K,EAAe14K,IAhcC,wEAAiD,8iWAicjE04K,EAAe14K,IAAI,0FAhcY,k6aAic/B04K,EAAe14K,IAAI,4FAhcO;AAic1B04K,EAAe14K,IAAI,0DAA0D,kgsBAC7E04K,EAAe14K,IAhcC,2EAAU,+0IAic1B04K,EAAe14K,IAAI,oFAAoF;AACvG04K,EAAe14K,IAAI,gDAAgD,k6rBACnE04K,EAAe14K,IAAI,gEAAgE,umRACnF04K,EAhcQ14K,IAAS,wDAAa;AAic9B04K,EAhcY14K,IAAO,0DAAqC,+xfAicxD04K,EAAe14K,IAhcC,4DAAwD,2oGAicxE04K,EAAe14K,IAAI,8EAhcyB,09GAic5C04K,EAAe14K,IAAI,6DAA6D;AAChF04K,EAhce14K,IAAA,kEAA8B,g7NAic7C04K,EAAe14K,IAAI,2DAA2D,0yBAC9E04K,EAAe14K,IAAI,0DAA0D,kjaAC7E04K,EAhcQ14K,IAAS,sEAAiB,s3KAiclC04K,EAhcY14K,IAAA,4EAAA;AAicZ04K,EAhcY14K,IAAO,wDAAa;AAichC04K,EAAe14K,IAhcI,4DAAW,4vBAic9B04K,EAAe14K,IAhcE,6DAAA,6uMAicjB04K,EAAe14K,IAhcC,sEAAA,gpNAichB04K,EAAe14K,IAhcI,gFAAW,ugPAic9B04K,EAAe14K,IAAI,oFAAoF;AACvG04K,EAAe14K,IAAI,sFAAsF,uxkBACzG04K,EAAe14K,IAAI,oFAAoF;AACvG04K,EAhcQ14K,IAAS,gFAA6B,8v3BAic9C04K,EAhcY14K,IAAI,8EAAQ;AAicxB04K,EAAe14K,IAhcC,mEAA0B,i+WAic1C04K,EAAe14K,IAhcC,qEAAkB,uglBAiclC04K,EAAe14K,IAAI,yEAhce;AAiclC04K,EAAe14K,IAAI,mEAAmE,g8CACtF04K,EAAe14K,IAAI,0EAhcQ;AAic3B04K,EAAe14K,IAAI,0EAA0E;AAC7F04K,EAAe14K,IAAI,2EAA2E,uyBAC9F04K,EAAe14K,IAAI,8EAA8E,ysHACjG04K,EAhcQ14K,IAAS,gEAAsB,+6XAicvC04K,EAhcY14K,IAAI,oEAAoB;AAicpC04K,EAhcY14K,IAAO,gEAAO,izhBAic1B04K,EAAe14K,IAAI,8DAA8D,gnMACjF04K,EAAe14K,IAAI,+EAA+E;AAClG04K,EAhcQ14K,IAAS,uEAAkB,44fAicnC04K,EAhcY14K,IAAA,wEAAA,yxJAicZ04K,EAhcY14K,IAAO,oEAAoB;AAicvC04K,EAAe14K,IAhcC,8CAA4B,82EAic5C04K,EAAe14K,IAAI,gFAhcW,67EAic9B04K,EAAe14K,IAAI,4EAhc4B,mpHAic/C04K,EAAe14K,IAAI,2DAhcsC,6yFAiczD04K,EAAe14K,IAAI,gEAhcc;AAicjC04K,EAAe14K,IAAI,oEAAoE;AACvF04K,EAAe14K,IAAI,qDAAqD,uyBACxE04K,EAAe14K,IAAI,oEAhcmE;AAictF04K,EAAe14K,IAAI,6CAhc6B,+xjBAichD04K,EAAe14K,IAAI,qEAhc2C,smXAic9D04K,EAAe14K,IAAI,6EAhcS;AAic5B04K,EAAe14K,IAAI,+DAA+D,kgkBAClF04K,EAAe14K,IAAI,sEAhcmB,89SAictC04K,EAAe14K,IAAI,4DAhcqC;AAicxD04K,EAAe14K,IAAI,0EAhcoB,whKAicvC04K,EAAe14K,IAAI,iFAhce,83uBAiclC04K,EAAe14K,IAAI,6EAA6E;AAChG04K,EAAe14K,IAAI,qFAAqF,2vmBACxG04K,EAAe14K,IAAI,kEAhckC,omQAicrD04K,EAAe14K,IAAI,2EAhcW,oyBAic9B04K,EAAe14K,IAAI,6DAhc4B;AAic/C04K,EAAe14K,IAAI,2EAhcsC,moJAiczD04K,EAAe14K,IAAI,mFAhcc,+2vBAicjC04K,EAAe14K,IAAI,iEAAiE,2yDACpF04K,EAAe14K,IAAI,6DAA6D;AAChF04K,EAAe14K,IAAI,iDAhcgD,IAicnE04K,EAAe14K,IAAI,mDAhc6B,mjKAichD04K,EAAe14K,IAAI,qEAhc2C,6+LAic9D04K,EAAe14K,IAAI,gFAhcS,qkMAic5B04K,EAAe14K,IAAI,uEAAuE,sxJAC1F04K,EAAe14K,IAAI,+EAhcmB;AAictC04K,EAAe14K,IAAI,mEAhc+D,k+WAiclF04K,EAAe14K,IAAI,2EAhcoB,0jlBAicvC04K,EAAe14K,IAAI,2EAhce;AAiclC04K,EAAe14K,IAAI,yEAAyE,+oGAC5F04K,EAAe14K,IAAI,mEAAmE,spkBACtF04K,EAAe14K,IAAI,iEAAiE;AACpF04K,EAAe14K,IAhcI,2EAAA,o8CAicnB04K,EAAe14K,IAhcC,+EAA0D,0rQAic1E04K,EAAe14K,IAAI,iFAhcY,4uDAic/B04K,EAAe14K,IAAI,qEAhcO,qgNAic1B04K,EAAe14K,IAAI,uFAAuF,q1MAC1G04K,EAAe14K,IAAI,6EAA6E;AAChG04K,EAAe14K,IAAI,qEAAqE,urXACxF04K,EAAe14K,IAAI,6EAA6E,qulBAChG04K,EAhcQ14K,IAAS,6EAAkB;AAicnC04K,EAhcY14K,IAAI,yEAAM,g5HAictB04K,EAAe14K,IAhcC,6DAAuB,0uLAicvC04K,EAAe14K,IAhcC,uCAAS,4oCAiczB04K,EAAe14K,IAAI,mEAAmE,0wIACtF04K,EAAe14K,IAAI,+DAA+D,22GAClF04K,EAhcY14K,IAAA,uDAA0D,s+FAictE04K,EAAe14K,IAhcC,iEAAwB,kyGAicxC04K,EAAe14K,IAAI,+DAhcmC;AAictD04K,EAAe14K,IAAI,+DAhcC,i9IAicpB04K,EAAe14K,IAAI,uDAAuD,orKAC1E04K,EAhce14K,IAAA,6DAAe;AAic9B04K,EAAe14K,IAhcC,+DAA0D,g5IAic1E04K,EAAe14K,IAAI,uDAhcY,m0KAic/B04K,EAAe14K,IAAI,mEAhcO,quJAic1B04K,EAAe14K,IAAI,6EAA6E,s8cAChG04K,EAAe14K,IAAI,qDAAqD;AACxE04K,EAAe14K,IAAI,yDAAyD,i8HAC5E04K,EAAe14K,IAAI,2DAA2D,88UAC9E04K,EAhcQ14K,IAAS,qEAAS,4yBAic1B04K,EAhcY14K,IAAI,sEAAM,80BAictB04K,EAAe14K,IAhcC,uDAAuB,21IAicvC04K,EAAe14K,IAAI,qEAAqE;AACxF04K,EAAe14K,IAAI,sEAAsE,wuJACzF04K,EAhcY14K,IAAI,+EAA+B,qxBAic/C04K,EAAe14K,IAhcC,wFAAW,mzJAic3B04K,EAAe14K,IAhcC,sGAAa,k0JAic7B04K,EAAe14K,IAhcC,4FAAY,gyJAic5B04K,EAAe14K,IAhcC,sEAAc,05KAic9B04K,EAAe14K,IAhcC,4EAAM;AAictB04K,EAAe14K,IAhcC,kFAAS,6/OAiczB04K,EAAe14K,IAAI,8EAhcoB,64QAicvC04K,EAAe14K,IAAI,8EAhcY,kzIAic/B04K,EAAe14K,IAAI,wEAhce,6+CAiclC04K,EAAe14K,IAAI,sEAAsE,s3KACzF04K,EAAe14K,IAAI,gDAAgD;AACnE04K,EAAe14K,IAAI,gEAAgE,4oPACnF04K,GAAe14K,IAAI,8DAA8D,y/JACjF04K,EAAe14K,IAAI,wDAAwD,oqKAC3E04K,EAhcY14K,IAAA,kDAA0C,i9HAictD04K,EAAe14K,IAhcC,4DAAW,qnHAic3B04K,EAAe14K,IAAI,oEAAoE;AACvF04K,EAAe14K,IAhcC,gEAAgE,0vNAichF04K,EAAe14K,IAAI,sDAhcyB,46LAic5C04K,EAAe14K,IAAI,gDAhcuC,2gPAic1D04K,EAAe14K,IAAI,8DAhcK,uhJAicxB04K,EAAe14K,IAAI,4DAA4D,8lJAC/E04K,EAAe14K,IAhcI,oDAAe;AAiclC04K,EAAe14K,IAAI,yEAhc2D,kuQAic9E04K,EAAe14K,IAAI,iEAhcgB,k6YAicnC04K,EAAe14K,IAAI,2DAhcW,0+HAic9B04K,EAAe14K,IAAI,uEAAuE;AAC1F04K,EAAe14K,IAAI,2EAA2E,48TAC9F04K,EAAe14K,IAAI,6DAA6D,s4WAChF04K,EAAe14K,IAAI,4DAA4D,qgSAC/E04K,EAAe14K,IAAI,8DAA8D;AACjF04K,EAhcQ14K,IAAS,+DAAqB,qoTAictC04K,EAhcY14K,IAAI,qDAAM,k2gBAictB04K,EAAe14K,IAhcC,4DAAuB;AAicvC04K,EAAe14K,IAhcC,kFAAS,87WAiczB04K,EAAe14K,IAAI,gEAAgE,yqcACnF04K,EAAe14K,IAAI,kEAAkE;AACrF04K,EAhcY14K,IAAI,qEAA+B,0mPAic/C04K,EAAe14K,IAhcC,8EAAW,+vRAic3B04K,EAAe14K,IAhcC,0DAAa,ovSAic7B04K,EAAe14K,IAhcC,8DAAY;AAic5B04K,EAAe14K,IAhcC,wDAAc,g1IAic9B04K,EAAe14K,IAhcC,kEAAM,wlQAictB04K,EAAe14K,IAhcC,wEAAS,+9TAiczB04K,EAAe14K,IAAI,0DAhcoB;AAicvC04K,EAAe14K,IAAI,0DAhcY,kuSAic/B04K,EAAe14K,IAAI,qEAhce,yxIAiclC04K,EAAe14K,IAAI,uEAAuE,qyBAC1F04K,EAAe14K,IAAI,2EAA2E,ytEAC9F04K,EAAe14K,IAAI,oFAAoF,8jGACvG04K,EAAe14K,IAAI,yEAAyE,6wFAC5F04K,EAAe14K,IAAI,+EAA+E;AAClG04K,EAhcY14K,IAAA,mFAA0C,snFAictD04K,EAAe14K,IAhcC,uEAAW,qoQAic3B04K,EAAe14K,IAAI,6EAA6E,4nRAChG04K,EAAe14K,IAhcC,iEAAiE,kjXAicjF04K,EAAe14K,IAAI,0DAhcyB;AAic5C04K,EAAe14K,IAAI,iFAhciE,utyBAicpF04K,EAAe14K,IAAI,yEAhcK;AAicxB04K,EAAe14K,IAAI,mFAAmF;AACtG04K,EAAe14K,IAhcI,mDAAe,+6DAiclC04K,EAAe14K,IAAI,kEAhc2D,khkBAic9E04K,EAAe14K,IAAI,kDAhcgB,uxBAicnC04K,EAAe14K,IAAI,iDAhcW;AAic9B04K,EAAe14K,IAAI,8CAA8C,wyBACjE04K,EAAe14K,IAAI,mDAAmD;AACtE04K,EAAe14K,IAAI,mDAAmD,mxBACtE04K,EAAe14K,IAAI,6CAA6C,woMAChE04K,EAAe14K,IAAI,sDAAsD,kmHACzE04K,EAhcQ14K,IAAS,yDAAW,u2DAic5B04K,EAhcY14K,IAAI,iEAAM,mtHAictB04K,EAAe14K,IAhcC,iEAAuB,80HAicvC04K,EAAe14K,IAhcC,0DAAS,u0MAiczB04K,EAAe14K,IAhcC,0DAAiC;AAicjD04K,EAAe14K,IAAI,yDAAyD,8zJAC5E04K,EAAe14K,IAAI,qEAAqE,6ySACxF04K,EAhcY14K,IAAA,yEAAkE,o7OAic9E04K,EAAe14K,IAhcC,uEAAwB,k4HAicxC04K,EAAe14K,IAAI,uDAhcmC,8nHAictD04K,EAAe14K,IAAI,6DAhcC;AAicpB04K,EAAe14K,IAAI,kCAAkC,k1DACrD04K,EAhce14K,IAAA,8CAAe,yrXAic9B04K,EAAe14K,IAhcC,sDAAgC,uxHAichD04K,EAAe14K,IAAI,oDAhcY,yiCAic/B04K,EAAe14K,IAAI,oDAhcO,yiCAic1B04K,EAAe14K,IAAI,4DAA4D;AAC/E04K,EAAe14K,IAAI,wDAAwD,+xZAC3E04K,EAAe14K,IAAI,0DAA0D;AAC7E04K,EAAe14K,IAAI,wDAAwD,w6sBAC3E04K,EAhcQ14K,IAAS,mDAAQ,usJAiczB04K,EAhcY14K,IAAI,sDAAM,0mCAictB04K,EAAe14K,IAhcC,4DAAuB,y1BAicvC04K,EAAe14K,IAhcC,mDAAS;AAiczB04K,EAAe14K,IAAI,wDAAwD,kjQAC3E04K,EAAe14K,IAAI,uDAAuD,wzJAC1E04K,EAhcY14K,IAAA,6DAA+D,u+WAic3E04K,EAAe14K,IAhcC,2DAAwB;AAicxC04K,EAAe14K,IAAI,gEAhc4D,k7LAic/E04K,EAAe14K,IAAI,0DAhcC,0xBAicpB04K,EAAe14K,IAAI,yDAAyD,kxBAC5E04K,EAhce14K,IAAA,qEAAe,q1XAic9B04K,EAAe14K,IAhcC,4CAAgC,4EAichD04K,EAAe14K,IAAI,iDAhcY,84FAic/B04K,EAAe14K,IAAI,oDAhcO,y6FAic1B04K,EAAe14K,IAAI,8CAA8C,kgCACjE04K,EAAe14K,IAAI,kDAAkD,wEACrE04K,EAAe14K,IAAI,kDAAkD,yNACrE04K,EAAe14K,IAAI,gDAAgD,m6CACnE04K,EAhcQ14K,IAAS,4CAAO,4oEAicxB04K,EAhcY14K,IAAO,8DAAc;AAicjC04K,EAAe14K,IAAI,4CAA4C,kdAC/D04K,EAAe14K,IAAI,8CAA8C,ySACjE04K,EAAe14K,IAAI,yEAAyE,05kBA/b5F04K,EAAY14K,IAAA,2EAAA,IAicZ04K,EAhcI14K,IAAA,yEAAA,IAicJ04K,EAAe14K,IAAI,uEAAuE;AAC1F04K,EAAe14K,IAAI,wEAAwE,+kpBAC3F04K,EAjcI14K,IAAA,wFAAA;AAkcJ04K,EAjcS14K,IAAO,oFAAA,4vbAkchB04K,EAjcS14K,IAAA,8EAA2B,0tgBAkcpC04K,EAAe14K,IAAI,gEAAgE,gsBACnF04K,EAAe14K,IAAI,oEAAoE;AACvF04K,EAjca14K,IAAA,sDAAwD","file":"scripts/app-70664bc933.js","sourcesContent":["(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme', [\r\n 'toastr',\r\n 'chart.js',\r\n 'angular-chartist',\r\n 'angular.morris-chart',\r\n 'textAngular',\r\n 'KPMES.theme.components',\r\n 'KPMES.theme.inputs',\r\n 'ngSanitize'\r\n ]);\r\n\r\n})();\r\n\n\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages', [\r\n 'ui.router',\r\n\r\n 'KPMES.pages.services',\r\n 'KPMES.pages.dashboard',\r\n 'KPMES.pages.user',\r\n 'KPMES.pages.role',\r\n 'KPMES.pages.designation',\r\n 'KPMES.pages.city',\r\n 'KPMES.pages.state',\r\n 'KPMES.pages.company',\r\n 'KPMES.pages.country',\r\n 'KPMES.pages.overhead',\r\n 'KPMES.pages.state',\r\n 'KPMES.pages.organization',\r\n 'KPMES.pages.area',\r\n 'KPMES.pages.department',\r\n 'KPMES.pages.consumableMaster',\r\n 'KPMES.pages.materialMaster',\r\n 'KPMES.pages.machineryMaster',\r\n 'KPMES.pages.constructionActivity',\r\n 'KPMES.pages.projectInit',\r\n 'KPMES.pages.employee',\r\n 'KPMES.pages.unitOfMeasurement',\r\n 'KPMES.pages.employeeChart',\r\n 'KPMES.pages.unitOfMeasurement',\r\n 'KPMES.pages.uomParameters',\r\n 'KPMES.pages.labourMaster',\r\n 'KPMES.pages.projectMgtandApp',\r\n 'KPMES.pages.listOfIoca',\r\n 'KPMES.pages.DrawingMaster',\r\n 'KPMES.pages.contractor',\r\n 'KPMES.pages.privilege',\r\n 'KPMES.pages.rfq',\r\n 'KPMES.pages.planningReport',\r\n 'KPMES.pages.CRM_projectDetailsSetup',\r\n 'KPMES.pages.CRM_ProjectLocationSetup',\r\n 'KPMES.pages.CRM_projectinitiation',\r\n 'KPMES.pages.CRM_projectTierSetup',\r\n 'KPMES.pages.CRM_parkingLocationSetup',\r\n 'KPMES.pages.CRM_parkingTierSetup',\r\n 'KPMES.pages.CRM_ProjectDetailsApproval',\r\n 'KPMES.pages.CRM_ProjectRateApproval',\r\n 'KPMES.pages.CRM_ProjectDetailsPriceSetup',\r\n 'KPMES.pages.CRM_ProjectDetailsPriceSetup_New',\r\n 'KPMES.pages.CRM_RepeatedTaskMaster',\r\n 'KPMES.pages.CRM_ModifyProjectPrice',\r\n 'KPMES.pages.CRM_ApprovedProjectPrice',\r\n 'KPMES.pages.CRM_ModifyProjectDetails',\r\n 'KPMES.pages.CRM_ApprovedProjectDetails',\r\n 'KPMES.pages.CRM_EmployeeTaskActivity',\r\n 'KPMES.pages.CRM_TaskApprovedList',\r\n 'KPMES.pages.CRM_ProjectPropertypriceTiles',\r\n 'KPMES.pages.CRM_dashboard',\r\n 'KPMES.pages.CRM_projectInitiationTiles',\r\n 'KPMES.pages.CRM_TaskSubjectMaster',\r\n 'KPMES.pages.CRM_TaskActivityMaster',\r\n 'KPMES.pages.CRM_ProjectPropertyInfoTiles',\r\n 'KPMES.pages.CRM_ProjectPropertyView',\r\n 'KPMES.pages.CRM_ProjectPropertyView_New',\r\n 'KPMES.pages.CRM_Task',\r\n 'KPMES.pages.CRM_StatutoryMaster',\r\n 'KPMES.pages.CRM_ProjectStatutorySetting',\r\n 'KPMES.pages.CRMLocationPropertyTypeSetup',\r\n 'KPMES.pages.CRMProjectDetailsApproval_New',\r\n 'KPMES.pages.CRM_ModifyProjectDetails_New',\r\n 'KPMES.pages.CRM_ApprovedProjectDetails_New',\r\n 'KPMES.pages.CRM_ProjectRateApproval_New',\r\n 'KPMES.pages.CRM_ModifyProjectPrice_New',\r\n 'KPMES.pages.CRMApprovedProjectPrice_New',\r\n 'KPMES.pages.projectStatus',\r\n 'KPMES.pages.CRM_CopyAreaDetails',\r\n\r\n // 'KPMES.pages.CRMProjectDetailsRejection',\r\n\r\n\r\n 'KPMES.pages.CRMProjectDetailsRejection',\r\n 'KPMES.pages.CRM_BuyerEnquiryTiles',\r\n 'KPMES.pages.CRM_AddBuyerEnquiry',\r\n 'KPMES.pages.CRM_ViewBuyerEnquiry',\r\n 'KPMES.pages.CRM_PaymentScheduleMaster',\r\n 'KPMES.pages.CRM_PaymentScheduleMapping',\r\n 'KPMES.pages.CRM_GstSetting',\r\n 'KPMES.pages.CRM_SalesActivityCategory',\r\n 'KPMES.pages.CRM_ItemofSalesActivity',\r\n 'KPMES.pages.Task_ActivityMaster',\r\n 'KPMES.pages.Task_SubjectMaster',\r\n // 'KPMES.pages.Task_RepeatedActivityMaster',\r\n 'KPMES.pages.Task_RepeatedSubjectMaster',\r\n 'KPMES.pages.CRM_projectPropertyView_Modified',\r\n // 'KPMES.pages.TaskActivity',\r\n // 'KPMES.pages.Task_EmployeeActivity',\r\n 'KPMES.pages.Task_EmployeeRepeatedActivity',\r\n 'KPMES.pages.Task_EmployeeTaskActivity',\r\n 'KPMES.pages.Task_TaskApprovedList',\r\n 'KPMES.pages.sequence',\r\n 'KPMES.pages.holiday',\r\n 'KPMES.pages.contractorPayment',\r\n 'KPMES.pages.LeaveMaster',\r\n 'KPMES.pages.accountMaster',\r\n 'KPMES.pages.accountTransaction',\r\n 'KPMES.pages.employeeSalary',\r\n 'KPMES.pages.SalaryComponents',\r\n 'KPMES.pages.EmployeeComponent',\r\n 'KPMES.pages.attendenceDetails',\r\n 'KPMES.pages.tenderMaster',\r\n 'KPMES.pages.workOrder',\r\n 'KPMES.pages.RFQTemplates',\r\n 'KPMES.pages.generateKpostCode',\r\n 'KPMES.pages.workApproval',\r\n 'KPMES.pages.ProjectResourceAllocation',\r\n 'KPMES.pages.approvalOfCompletedWork',\r\n 'KPMES.pages.projectTeam',\r\n 'KPMES.pages.billing',\r\n 'KPMES.pages.workStatusReport',\r\n 'KPMES.pages.TaskReport',\r\n 'KPMES.pages.BudgetReport',\r\n 'KPMES.pages.procurement',\r\n 'KPMES.pages.kpostBox',\r\n 'KPMES.pages.materialManagement',\r\n 'KPMES.pages.PO',\r\n 'KPMES.pages.costvariationReport', \r\n\r\n /// PWD\r\n\r\n // 'KPMES.pages.PWD',\r\n // 'KPMES.pages.clientDep'\r\n\r\n ]).config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($urlRouterProvider, baSidebarServiceProvider) {\r\n\r\n var url = (window.location.href);\r\n var isQryChecked = url.includes(\"&isCheked=true\");\r\n\r\n if (!isQryChecked)\r\n $urlRouterProvider.otherwise('/');\r\n else {\r\n // $state.go('dashboard', {\r\n // data: data\r\n // }) \r\n $urlRouterProvider.otherwise('/logIn');\r\n }\r\n\r\n\r\n // baSidebarServiceProvider.addStaticItem({\r\n // title: 'Pages',\r\n // icon: 'ion-document',\r\n // subMenu: [{\r\n // title: 'Sign In',\r\n // fixedHref: 'auth.html',\r\n // blank: true\r\n // }\r\n // , {\r\n // title: 'Sign Up',\r\n // fixedHref: 'reg.html',\r\n // blank: true\r\n // }, {\r\n // title: 'User Profile',\r\n // stateRef: 'profile'\r\n // }, {\r\n // title: '404 Page',\r\n // fixedHref: '404.html',\r\n // blank: true\r\n // }\r\n // ]\r\n\r\n // });\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components', []);\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 10.12.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.inputs', []);\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.approvalOfCompletedWork',[])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('approvalOfCompletedWork', {\r\n url: '/approval-Of-Completed-Work',\r\n templateUrl: 'app/pages/approvalOfCmpltdWork/approvalOfCmpltdWork.html',\r\n title: 'Approval of Completed Work',\r\n controller: 'ApprovalOfCompletedWorkCtrl',\r\n controllerAs: 'vm', \r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.area',[])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('area', {\r\n url: '/area',\r\n templateUrl: 'app/pages/area/area.html',\r\n title: 'Area',\r\n controller: 'AreaCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-area-chart'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.attendenceDetails',[])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('attendenceDetails', {\r\n url: '/attendence-Details',\r\n templateUrl: 'app/pages/attendenceDetails/attendence.html',\r\n title: 'AttendenceDetails',\r\n controller: 'AttendenceCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-area-chart'\r\n },\r\n });\r\n }\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.billing', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('approveBilling', {\r\n url: '/billing-Approval',\r\n templateUrl: 'app/pages/billing/approveForBilling/approveForBilling.html',\r\n title: 'Approve For Billing',\r\n controller: 'ApproveForBillingCtrl',\r\n controllerAs: 'vm'\r\n }).state('draftPenaltyNote', {\r\n url: '/draft-Penalty',\r\n templateUrl: 'app/pages/billing/penaltyNote/draftPenaltyNote/draftPenaltyNote.html',\r\n title: 'Raise Draft Penalty Note',\r\n controller: 'DraftPenaltyCtrl',\r\n controllerAs: 'vm',\r\n }).state('draftBill', {\r\n url: '/draft-Bill',\r\n templateUrl: 'app/pages/billing/draftBill/draftBill.html',\r\n title: 'Draft Bill',\r\n controller: 'DraftBillCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n }\r\n }).state('mobilizationAdvance', {\r\n url: '/mobilization-Advance',\r\n templateUrl: 'app/pages/billing/MobilizationAdvance/accountVocher/accountVocher.html',\r\n title: 'Mobilization Advance',\r\n controller: 'AccountVocherCtrl',\r\n controllerAs: 'vm',\r\n }).state('interimAdvance', {\r\n url: '/interim-Advance',\r\n templateUrl: 'app/pages/billing/InterimAdvance/interimAdvance.html',\r\n title: 'Recommend Interim Advance',\r\n controller: 'InterimAdvanceCtrl',\r\n controllerAs: 'vm',\r\n }).state('interimPayment', {\r\n url: '/interim-Payment',\r\n templateUrl: 'app/pages/billing/InterimAdvance/interimPayment.html',\r\n title: 'Interim Payment',\r\n controller: 'InterimPaymentCtrl',\r\n controllerAs: 'vm',\r\n }).state('raBill', {\r\n url: '/ra-Bill',\r\n templateUrl: 'app/pages/billing/raBill/raBill.html',\r\n title: 'RA Bill',\r\n controller: 'RABillCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n }\r\n }).state('approveRABill', {\r\n url: '/approve-RABill',\r\n templateUrl: 'app/pages/billing/approveRABill/approveRABill.html',\r\n title: 'Approve RA Bill',\r\n controller: 'ApproveRABillCtrl',\r\n controllerAs: 'vm'\r\n }).state('contractorBillPayment', {\r\n url: '/contractor-BillPayment',\r\n templateUrl: 'app/pages/billing/contractorBillPayment/contractorBillPayment.html',\r\n title: 'Approved Contractor RA Bill',\r\n controller: 'ContractorBillPaymentCtrl',\r\n controllerAs: 'vm'\r\n }).state('viewDraftBill', {\r\n url: '/view-DraftBill',\r\n templateUrl: 'app/pages/billing/draftBill/viewDraftBill.html',\r\n title: 'Contractor Bill Report',\r\n controller: 'ViewDraftBillCtrl',\r\n controllerAs: 'vm'\r\n }).state('viewRABill', {\r\n url: '/view-RABill',\r\n templateUrl: 'app/pages/billing/raBill/viewRABill.html',\r\n title: 'Contractor RA Bill Report',\r\n controller: 'ViewRABillCtrl',\r\n controllerAs: 'vm'\r\n }).state('statementReport', {\r\n url: '/view-Statement',\r\n templateUrl: 'app/pages/billing/statementOfBill/statementOfBill.html',\r\n title: 'Statement Of Bill',\r\n controller: 'StatementOfBillCtrl',\r\n controllerAs: 'vm'\r\n })\r\n .state('supplier_reg', {\r\n\r\n controller: 'supOfBillCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.city', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('city', {\r\n url: '/city',\r\n templateUrl: 'app/pages/city/City.html',\r\n title: 'City',\r\n controller: 'CityCtrl',\r\n controllerAs: 'vm',\r\n \r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.company', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('company', {\r\n url: '/company',\r\n templateUrl: 'app/pages/company/company.html',\r\n title: 'Company Initiation',\r\n controller: 'CompanyCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-globe'\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.projectInit', [\r\n 'KPMES.pages.projectInitiation.planning'\r\n ])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('tierSetup', {\r\n url: '/tier-setup',\r\n templateUrl: 'app/pages/constructionProjectSetup/tierSetup/tierSetup.html',\r\n title: 'Location Variable Setup',\r\n controller: 'TierSetupCtrl',\r\n controllerAs: 'vm',\r\n }).state('locationSetup', {\r\n url: '/location-Setup',\r\n templateUrl: 'app/pages/constructionProjectSetup/locationSetup/locationSetup.html',\r\n title: 'Location Attribute setup',\r\n controller: 'LocationSetupCtrl',\r\n controllerAs: 'vm',\r\n\r\n }).state('initiation', {\r\n url: '/initiation',\r\n templateUrl: 'app/pages/constructionProjectSetup/projectInitiation/projectInitiation.html',\r\n title: ' Initiate Project',\r\n controller: 'projectInitiationCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('approvalOfProjectInitiation', {\r\n url: '/approvalOfProjectInitiation',\r\n templateUrl: 'app/pages/constructionProjectSetup/approvalOfProjectInitiation/approvalOfProjectInitiation.html',\r\n title: 'approvalOfProjectInitiation',\r\n controller: 'ApprovalofProjectInitCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('projectCreation', {\r\n url: '/projectCreation-master',\r\n templateUrl: 'app/pages/constructionProjectSetup/projectCreation/projectCreation.html',\r\n title: 'Project Creation',\r\n controller: 'ProjectCreationCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n\r\n }).state('pendingforApproval', {\r\n url: '/pendingforApproval',\r\n templateUrl: 'app/pages/constructionProjectSetup/pendingForApproval/pendingforApproval.html',\r\n title: 'Pending For Approval',\r\n controller: 'PendingForApprovalCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('backforCorrection', {\r\n url: '/backforCorrection',\r\n templateUrl: 'app/pages/constructionProjectSetup/backForCorrection/backForCorrection.html',\r\n title: 'Back For Correction',\r\n controller: 'BackForCorrectionCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('approved', {\r\n url: '/approved',\r\n templateUrl: 'app/pages/constructionProjectSetup/approved/approved.html',\r\n title: 'View Approved Project',\r\n controller: 'ApprovedCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('Indent', {\r\n url: '/indent',\r\n templateUrl: 'app/pages/constructionProjectSetup/Indent/indentTable.html',\r\n title: 'Raise Draft Indent',\r\n controller: 'IndentTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 1\r\n }\r\n }).state('viewIndent', {\r\n url: '/viewindent',\r\n templateUrl: 'app/pages/constructionProjectSetup/Indent/indent.html',\r\n title: 'view Indent',\r\n controller: 'IndentCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n //Status: 1\r\n }\r\n })\r\n .state('indentPendingForApproval', {\r\n url: '/indentPendingForApproval',\r\n templateUrl: 'app/pages/constructionProjectSetup/Indent/indentTable.html',\r\n title: 'Pending For Approval',\r\n controller: 'IndentTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 3\r\n }\r\n }).state('indentApproval', {\r\n url: '/indentApproval',\r\n templateUrl: 'app/pages/constructionProjectSetup/Indent/indentTable.html',\r\n title: 'Approved Indents',\r\n controller: 'IndentTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 4\r\n }\r\n }).state('indentBackForCorrection', {\r\n url: '/indentBackForCorrection',\r\n templateUrl: 'app/pages/constructionProjectSetup/Indent/indentTable.html',\r\n title: 'Back For Correction',\r\n controller: 'IndentTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 7\r\n }\r\n })\r\n\r\n .state('selectIoca', {\r\n url: '/select-ioca',\r\n templateUrl: 'app/pages/constructionProjectSetup/selectIoca/selectIoca.html',\r\n title: 'Selection of IOCA',\r\n controller: 'SelectIocaCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('billofQuantity', {\r\n url: '/billofQuantity',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantity.html',\r\n title: 'BOQ Entry',\r\n controller: 'billOfQuntityCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 8,\r\n Mode: \"Manual\"\r\n }\r\n }).state('viewBillofQuantity', {\r\n url: '/View-bill-of-Quantity',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantity.html',\r\n title: 'View Bill Of Quantity',\r\n controller: 'billOfQuntityCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: undefined,\r\n // Mode: \"Manual\"\r\n }\r\n }).state('itemToItem', {\r\n url: '/item_to_item',\r\n templateUrl: 'app/pages/constructionProjectSetup/copyBoQ/itemToItem/itemToItem.html',\r\n title: 'Item to Item',\r\n controller: 'ItemToItemCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('boqInitiation', {\r\n url: '/boqInitiation',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQInitiation/boQInitiation.html',\r\n title: 'BOQ Initiation',\r\n controller: 'boQInitiationCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('boqPendingforApproval', {\r\n url: '/boqPendingforApproval',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantityTable.html',\r\n title: 'Pending For Approval',\r\n controller: 'BillOfQuantityTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 3\r\n }\r\n }).state('boqDraft', {\r\n url: '/boq-Draft',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantityTable.html',\r\n title: 'Draft BOQ ',\r\n controller: 'BillOfQuantityTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 1\r\n }\r\n }).state('boqBackForCorrection', {\r\n url: '/boq-BackForCorrection',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantityTable.html',\r\n title: 'Back For Correction',\r\n controller: 'BillOfQuantityTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 6\r\n }\r\n }).state('boqApproved', {\r\n url: '/boq-Approved',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantityTable.html',\r\n title: 'View Approved BOQ',\r\n controller: 'BillOfQuantityTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 4\r\n }\r\n }).state('boqBlocked', {\r\n url: '/boq-Blocked',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantityTable.html',\r\n title: 'Block BOQ',\r\n controller: 'BillOfQuantityTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 5\r\n }\r\n })\r\n .state('locationtoLocation', {\r\n url: '/locationtoLocation',\r\n templateUrl: 'app/pages/constructionProjectSetup/copyBoQ/locationToLocation/locationToLocation.html',\r\n title: 'Location to Location',\r\n controller: 'locationToLocationCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('boqUpload', {\r\n url: '/boqUpload',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/billofQuantity.html',\r\n title: 'BOQ Upload',\r\n controller: 'billOfQuntityCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: true,\r\n Status: 8,\r\n Mode: \"Upload\"\r\n\r\n }\r\n }).state('projectConstant', {\r\n url: '/projectConstant',\r\n templateUrl: 'app/pages/constructionProjectSetup/projectConstant/projectConstant.html',\r\n title: 'Company IOCA Constant',\r\n controller: 'projectConstantCtrl',\r\n controllerAs: 'vm',\r\n }).state('ratesofInput', {\r\n url: '/ratesofInput',\r\n templateUrl: 'app/pages/constructionProjectSetup/ratesofInput/ratesofInput.html',\r\n title: 'Rates Of Input',\r\n controller: 'ratesofInputCtrl',\r\n controllerAs: 'vm',\r\n })\r\n\r\n //Modified Approved BoQ\r\n .state('modifiedBoQ', {\r\n url: '/approvedBoq',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/modifiedBoQ.html',\r\n title: 'Modify Approved BoQ',\r\n controller: 'modifiedBoQCtrl',\r\n controllerAs: 'vm',\r\n })\r\n //Ioca Rate \r\n .state('assumptionRate', {\r\n url: '/ioca-rate',\r\n templateUrl: 'app/pages/constructionProjectSetup/ratesofInput/iocaRate.html',\r\n title: 'Assumption Rate',\r\n controller: 'IOCARateCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('viewFinalPlanning', {\r\n url: '/view-FinalisedPlanning',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/viewFinalisedPlanning.html',\r\n title: 'View Final Planning',\r\n controller: 'ViewFinalisedPlanningCtrl',\r\n controllerAs: 'vm',\r\n }).state('prjToprjCopy', {\r\n url: '/projecttoProject',\r\n templateUrl: 'app/pages/constructionProjectSetup/copyBoQ/projectToProject/projectToProject.html',\r\n title: 'Project to Project',\r\n controller: 'projectToProjectCtrl',\r\n controllerAs: 'vm'\r\n }).state('prilimaryEstimates', {\r\n url: '/boq-priliminaryEstimates',\r\n templateUrl: 'app/pages/constructionProjectSetup/priliminaryEstimates/priliminaryEstimates.html',\r\n title: 'priliminary Estimates',\r\n controller: 'PriliminaryEstimatesCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 5\r\n }\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.constructionActivity', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('categoryCA', {\r\n url: '/category-CA',\r\n templateUrl: 'app/pages/constructionActivity/categoryCA/categoryCA.html',\r\n controller: 'CA_CategoryCtrl',\r\n title: 'Category Of CA',\r\n controllerAs: 'vm'\r\n }).state('subCategoryCA', {\r\n url: '/sub-category-CA',\r\n templateUrl: 'app/pages/constructionActivity/subCategory/subCategoryCA.html',\r\n controller: 'CASubCategoryCtrl',\r\n title: 'Subcategory Of CA',\r\n controllerAs: 'vm'\r\n }).state('typeOfCA', {\r\n url: '/type-Of-CA',\r\n templateUrl: 'app/pages/constructionActivity/typeOfCA/typeOfCA.html',\r\n controller: 'TypeOfCACtrl',\r\n title: 'Type Of CA',\r\n controllerAs: 'vm'\r\n\r\n }).state('attributeCA', {\r\n url: '/attribute-CA',\r\n templateUrl: 'app/pages/constructionActivity/attribute/attributeCA.html',\r\n controller: 'AttributeCtrl',\r\n title: 'Attribute Of CA',\r\n controllerAs: 'vm'\r\n }).state('variableCA', {\r\n url: '/variable-CA',\r\n templateUrl: 'app/pages/constructionActivity/variable/variableCA.html',\r\n controller: 'VariableCtrl',\r\n title: 'Variable Of CA',\r\n controllerAs: 'vm'\r\n\r\n }).state('constant', {\r\n url: '/Constant',\r\n templateUrl: 'app/pages/constructionActivity/Constant/constant.html',\r\n controller: 'ConstantCtrl',\r\n title: 'Preparation Of Constant',\r\n controllerAs: 'vm'\r\n }).state('constantpendingforApproval', {\r\n url: '/constantpendingforApproval',\r\n templateUrl: 'app/pages/constructionActivity/constantPendingForApproval/constantpendingforApproval.html',\r\n controller: 'ConstantPendingForApprovalCtrl',\r\n title: ' Pending For Approval',\r\n controllerAs: 'vm'\r\n }).state('constantbackForCorrection', {\r\n url: '/constantbackForCorrection',\r\n templateUrl: 'app/pages/constructionActivity/constantBackForCorrection/constantBackForCorrection.html',\r\n controller: 'ConstantBackForCorrectionCtrl',\r\n title: 'Back For Correction',\r\n controllerAs: 'vm'\r\n }).state('constantApproved', {\r\n url: '/constantApproved',\r\n templateUrl: 'app/pages/constructionActivity/constantApproval/constantApproval.html',\r\n controller: 'ConstantApprovedCtrl',\r\n title: 'View Approved Constant ',\r\n controllerAs: 'vm'\r\n }).state('ioCA', {\r\n url: '/ioca',\r\n templateUrl: 'app/pages/constructionActivity/ioca/ioca.html',\r\n controller: 'IocaCtrl',\r\n title: 'IOCA',\r\n controllerAs: 'vm'\r\n }).state('cpwdioCA', {\r\n url: '/cpwd_ioca',\r\n templateUrl: 'app/pages/constructionActivity/cpwd_ioca/cpwd_ioca.html',\r\n controller: 'CPWDIocaCtrl',\r\n title: 'IO-CA',\r\n controllerAs: 'vm'\r\n }).state('fieldofConstruction', {\r\n url: '/field-of-construction',\r\n templateUrl: 'app/pages/constructionActivity/fieldofConstruct/fieldofConstruction.html',\r\n controller: 'FieldofConstructionCtrl',\r\n title: 'Field of Construction',\r\n controllerAs: 'vm'\r\n }).state('icanTypicalDescription', {\r\n url: '/ican-TypicalDescription',\r\n templateUrl: 'app/pages/constructionActivity/ICANTypicalDescription/ICANTypicalDescription.html',\r\n controller: 'ICANTypicalDescriptionCtrl',\r\n title: ' Typical Description',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.projectTeam', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('createProjectTeam', {\r\n url: '/projectTeam-Create',\r\n templateUrl: 'app/pages/constructionProjectTeam/projectTeamCreation/projectTeamCreate.html',\r\n title: 'Create Project Team',\r\n controller: 'ProjectTeamCreationCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n //Status:1\r\n }\r\n }).state('homeProjectTeam', {\r\n url: '/projectTeam-Home',\r\n templateUrl: 'app/pages/constructionProjectTeam/projectTeamHome.html',\r\n title: 'Create Project Team',\r\n controller: 'ProjectTeamHomeCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 1\r\n }\r\n\r\n }).state('pendingForApprovalProjectTeam', {\r\n url: '/projectTeam-PendingForApproval',\r\n templateUrl: 'app/pages/constructionProjectTeam/projectTeamHome.html',\r\n title: 'Pending For Approval',\r\n controller: 'ProjectTeamHomeCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 3\r\n }\r\n\r\n }).state('backForCorrectionProjectTeam', {\r\n url: '/projectTeam-backForCorrection',\r\n templateUrl: 'app/pages/constructionProjectTeam/projectTeamHome.html',\r\n title: 'Back For Correction',\r\n controller: 'ProjectTeamHomeCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 6\r\n }\r\n\r\n }).state('approvedProjectTeam', {\r\n url: '/projectTeam-approve',\r\n templateUrl: 'app/pages/constructionProjectTeam/projectTeamHome.html',\r\n title: 'View Approved Project Team',\r\n controller: 'ProjectTeamHomeCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 4\r\n }\r\n\r\n }).state('workAllocation', {\r\n url: '/workAllocation',\r\n templateUrl: 'app/pages/constructionProjectTeam/workAllocation/workAllocation.html',\r\n title: 'Project Work Allocation',\r\n controller: 'WorkAllocationCtrl',\r\n controllerAs: 'vm',\r\n\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.consumableMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('consumableCategory', {\r\n url: '/consumableCategory',\r\n templateUrl: 'app/pages/consumableMaster/consumableCatagory/consumableCatagory.html',\r\n title: 'Catagory Of Consumable ',\r\n controller: 'ConsumableCatagoryCtrl',\r\n controllerAs: 'vm',\r\n }).state('typeOfConsumable', {\r\n url: '/typeOfConsumable',\r\n templateUrl: 'app/pages/consumableMaster/typeOfConsumable/typeOfConsumable.html',\r\n title: 'Type Of Consumable',\r\n controller: 'TypeOfConsumableCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.contractorPayment', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('contractorPayment', {\r\n url: '/Contractor-Payment',\r\n templateUrl: 'app/pages/contractorPayment/contractor.html',\r\n title: 'Contractor Payment',\r\n controller: 'ContractorPaymentCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.contractor', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('contractorRegistration', {\r\n url: '/contractor-registration-grid',\r\n templateUrl: 'app/pages/contractor/registration/contractorRegGrid.html',\r\n title: 'Contractor Registration',\r\n controller: 'GridContractorRegCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('contractorRegForm', {\r\n url: '/contractor-registration-add',\r\n templateUrl: 'app/pages/contractor/registration/contractorRegistration.html',\r\n title: 'Contractor Registration',\r\n controller: 'ContractorRegCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('contractorRegEdit', {\r\n url: '/contractor-registration',\r\n templateUrl: 'app/pages/contractor/registration/editContractorRegistration.html',\r\n title: 'Contractor Registration',\r\n controller: 'EditContractorRegCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n .state('con_pendingForApproval', {\r\n url: '/con-pendingForApproval',\r\n templateUrl: 'app/pages/contractor/pendingForApproval/contractorpendingForApproval.html',\r\n title: ' Pending for Approval',\r\n controller: 'ContractorpendingForApprovalCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n .state('con_backForCorrection', {\r\n url: '/con-backForCorrection',\r\n templateUrl: 'app/pages/contractor/BlockandBackforCorrection/blockandBackForCorrection.html',\r\n title: 'Back for Correction',\r\n controller: 'BlockandBackforCorrectionCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n .state('con_Approved', {\r\n url: '/con-Approved',\r\n templateUrl: 'app/pages/contractor/Approval/approval.html',\r\n title: 'View Approved Contractor',\r\n controller: 'ApprovalCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n .state('contractorview', {\r\n url: '/con-View',\r\n templateUrl: 'app/pages/contractor/registration/viewContractorRegistration.html',\r\n title: 'View Contractor',\r\n controller: 'EditContractorRegCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.country', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('country', {\r\n url: '/country',\r\n templateUrl: 'app/pages/country/country.html',\r\n title: 'Country',\r\n controller: 'CountryCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.dashboard', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('dashboard', {\r\n url: '/home',\r\n templateUrl: 'app/pages/dashboard/dashboard.html',\r\n title: 'Home',\r\n controller: 'DashboardCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n }).state('supervisor', {\r\n url: '/Supervisor_todaytask',\r\n templateUrl: 'app/pages/dashboard/supervisorTask.html',\r\n title: 'Supervisor Today Task',\r\n controller: 'SupervisorTaskCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n }).state('dashboardDetails', {\r\n url: '/dashboard-Details',\r\n templateUrl: 'app/pages/dashboard/DashboardDetails.html',\r\n title: 'Details',\r\n controller: 'DashBoardDetails',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n }).state('workReport', {\r\n url: '/work-Report',\r\n templateUrl: 'app/pages/dashboard/workReport.html',\r\n title: 'Work Report',\r\n controller: 'WorkReportCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n }).state('subCategoryCost', {\r\n url: '/subCategoryCost-Details',\r\n templateUrl: 'app/pages/dashboard/locationDtls.html',\r\n title: 'SubCategory Cost',\r\n controller: 'LocationDtlsCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n }).state('dbmgrtdytask', {\r\n url: '/db-mgrtdytask',\r\n templateUrl: 'app/pages/dashboard/mgrTodaytask.html',\r\n title: 'Manager Daily Task Details',\r\n controller: 'MgrtdytaskCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.department', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('department', {\r\n url: '/department',\r\n templateUrl: 'app/pages/department/department.html',\r\n title: 'Department',\r\n controller: 'DepartmentCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.designation', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('designation', {\r\n url: '/designation',\r\n templateUrl: 'app/pages/designation/Designation.html',\r\n title: 'Designation',\r\n controller: 'DesignationCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-cog'\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.DrawingMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('drawingType', {\r\n url: '/drawingType',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingType/drawingType.html',\r\n title: 'Drawing Type',\r\n controller: 'DrawingTypeCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n .state('drawingSubject', {\r\n url: '/drawing-sub',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingSub/drawingSub.html',\r\n title: ' Drawing Subject',\r\n controller: 'DrawingSubCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 10,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n .state('drawingUpload', {\r\n url: '/drawingupload',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingUpload/drawingUpload.html',\r\n title: 'Drawing Upload',\r\n controller: 'DrawingUpoadCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 10,\r\n icon: 'fa fa-flag-o'\r\n },\r\n params: {\r\n data: undefined\r\n }\r\n })\r\n .state('drawingTitle', {\r\n url: '/drawingTitle',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingTitle/drawingTitle.html',\r\n title: 'Drawing Title',\r\n controller: 'DrawingTitleCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 10,\r\n icon: 'fa fa-flag-o'\r\n },\r\n\r\n }).state('ProjectDrawingApproved', {\r\n url: '/drawingapproved',\r\n templateUrl: 'app/pages/DrawingMaster/ProjectDrawingApproved/drawingapproved.html',\r\n title: ' Approved Construction Project Drawing',\r\n controller: 'DrawingApprovedCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('ProjectDrawingbackforCorrection', {\r\n url: '/DrawingbackforCorrection',\r\n templateUrl: 'app/pages/DrawingMaster/ProjectDrawingbackforCorrection/drawingbackForCorrection.html',\r\n title: ' Back For Correction',\r\n controller: 'DrawingBackForCorrectionCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('RevisedProjectDrawingbackforCorrection', {\r\n url: '/RevisedDrawingbackforCorrection',\r\n templateUrl: 'app/pages/DrawingMaster/RevisedProjectDrawingbackforCorrection/ReviseddrawingbackForCorrection.html',\r\n title: 'Revised Drawing Back For Correction',\r\n controller: 'RevisedDrawingBackForCorrectionCtrl',\r\n controllerAs: 'vm'\r\n\r\n\r\n }).state('ViewGoodForConstructionDrawing', {\r\n url: '/History',\r\n templateUrl: 'app/pages/DrawingMaster/ViewGoodForConstructionDrawing/History.html',\r\n title: 'View Good For Construction Drawing',\r\n controller: 'HistoryCtrl',\r\n controllerAs: 'vm'\r\n\r\n\r\n }).state('PendingforApprovalDraftConstructionDrawing', {\r\n url: '/DrawingpendingforApproval',\r\n templateUrl: 'app/pages/DrawingMaster/PendingforApprovalDraftConstructionDrawing/drawingpendingforApproval.html',\r\n title: ' Drawing Pending For Approval',\r\n controller: 'DrawingPendingForApprovalCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('DrawingInitiation', {\r\n url: '/drawinginitiation',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingInitiation/drawinginitiation.html',\r\n title: 'Upload Draft Construction Project Drawing',\r\n controller: 'DrawingInitiationCtrl',\r\n controllerAs: 'vm'\r\n\r\n\r\n }).state('DrawingSendForApproval', {\r\n url: '/DrawingSendForApproval',\r\n templateUrl: 'app/pages/DrawingMaster/drawingSendForApproval/drawingSendForApproval.html',\r\n title: 'Pending For Approval',\r\n controller: 'DrawingSendForApprovalCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('mapDrawingwithIOCA', {\r\n url: '/Mapdrawingwithioca',\r\n templateUrl: 'app/pages/DrawingMaster/MapDrawingwithIOCA/mapDrawingWithIOCA.html',\r\n title: 'Map Drawing With IOCA',\r\n controller: 'MapDrawingWithIOCACtrl',\r\n controllerAs: 'vm'\r\n\r\n\r\n }).state('UploadRevisedConstructionProjectDrawing', {\r\n url: '/RevisedDraft',\r\n templateUrl: 'app/pages/DrawingMaster/UploadRevisedConstructionProjectDrawing/UploadRevisedDrawing.html',\r\n title: 'Upload Revised Construction Project Drawing',\r\n controller: 'UploadRevisedProjectDrawingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 10,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.employee', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('employee', {\r\n url: '/employee',\r\n templateUrl: 'app/pages/employee/employee.html',\r\n title: 'Employee ',\r\n controller: 'EmployeeCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'icon icons8-Org-Unit'\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.employeeChart', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('employeeChart', {\r\n url: '/employeeChart',\r\n templateUrl: 'app/pages/employeeChart/employeeChart.html',\r\n title: 'Organization Chart',\r\n controller: 'EmployeeChartCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'icon icons8-Org-Unit'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.generateKpostCode', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('generateKpostCode', {\r\n url: '/kpost-Ucode',\r\n templateUrl: 'app/pages/GenerateKpostCode/generateKpostCode.html',\r\n title: 'Generate Kpost Code',\r\n controller: 'GenerateKpostCodeCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('mapkpostCode', {\r\n url: '/post-boxcode',\r\n templateUrl: 'app/pages/GenerateKpostCode/mappostboxcode.html',\r\n title: 'Map Post Box Code',\r\n controller: 'MapPostBoxCodeCtrl',\r\n controllerAs: 'vm', \r\n })\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.holiday', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('holidayMaster', {\r\n url: '/holiday-Master',\r\n templateUrl: 'app/pages/holidayMaster/holidayMaster.html',\r\n title: 'Holiday Library',\r\n controller: 'HolidayMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('projectholiday', {\r\n url: '/project-Holiday',\r\n templateUrl: 'app/pages/holidayMaster/projectHoliday.html',\r\n title: 'Project Holiday',\r\n controller: 'ProjectHolidayCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.kpostBox', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('kpostBoxIdCreation', {\r\n url: '/kpostBox-IdCreation',\r\n templateUrl: 'app/pages/KPostBox/KPostBoxIdCreation/kpostBoxIdCreation.html',\r\n title: ' Creation',\r\n controller: 'KPostBoxIdCreationCtrl',\r\n controllerAs: 'vm',\r\n }) .state('kpostBoxIdAllocation', {\r\n url: '/kpostBox-IdAllocation',\r\n templateUrl: 'app/pages/KPostBox/KPostBoxIdAllocation/kpostBoxIdAllocation.html',\r\n title: ' Allocation',\r\n controller: 'KPostBoxIdAllocationCtrl',\r\n controllerAs: 'vm',\r\n }).state('kpostBoxContacts', {\r\n url: '/kpostBox-Contacts',\r\n templateUrl: 'app/pages/KPostBox/KpostContacts/kpostContacts.html',\r\n title: 'KPOST Contact',\r\n controller: 'KPostBoxIdContactsCtrl',\r\n controllerAs: 'vm',\r\n }).state('kpostBoxGroup', {\r\n url: '/kpostBox-Group',\r\n templateUrl: 'app/pages/KPostBox/KpostGroup/kpostGroup.html',\r\n title: 'KPOST Group',\r\n controller: 'KPostGroupCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.labourMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('labourCategory', {\r\n url: '/labourCategory',\r\n templateUrl: 'app/pages/labourMaster/labourCategory/labourCategory.html',\r\n title: 'Category of Labour',\r\n controller: 'LabourCategoryCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n .state('labourType', {\r\n url: '/labourType',\r\n templateUrl: 'app/pages/labourMaster/labourType/labourType.html', \r\n title: 'Type of Labour', \r\n controller: 'LabourTypeCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.listOfIoca', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('listOfIoca', {\r\n url: '/listOfIoca',\r\n templateUrl: 'app/pages/listofIOCA/listOfIoca.html',\r\n title: 'IOCA Report',\r\n controller: 'ListOfIOCACtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.machineryMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('categoryOfMachinery', {\r\n url: '/category-of-machinery',\r\n templateUrl: 'app/pages/machineryMaster/categoryOfMachinery/categoryofmachinery.html',\r\n title: 'Category Of Machinery',\r\n controller: 'CategoryOfMachineryCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('subcategoryOfMachinery', {\r\n url: '/machinery-SubCategory',\r\n templateUrl: 'app/pages/machineryMaster/machinerySubCategory/machinerySubCategory.html',\r\n controller: 'MachinerySubCategoryCtrl',\r\n title: 'Subcategory Of Machinery',\r\n controllerAs: 'vm',\r\n })\r\n .state('attribute_Machinery', {\r\n url: '/machinery-attribute',\r\n templateUrl: 'app/pages/machineryMaster/machineryAttribute/machineryattribute.html',\r\n controller: 'MachineryAttributeCtrl',\r\n title: 'Attribute Of Machinery',\r\n controllerAs: 'vm',\r\n })\r\n\r\n .state('machineryVariable', {\r\n url: '/machinery_variable',\r\n templateUrl: 'app/pages/machineryMaster/variable/machineryVariable.html',\r\n controller: 'MachineryVariableCtrl',\r\n title: 'Variable Of Machinery ',\r\n controllerAs: 'vm',\r\n })\r\n\r\n .state('itemOfMachinery', {\r\n url: '/item-of-machinery',\r\n templateUrl: 'app/pages/machineryMaster/ItemofMachinery/itemofmachinery.html',\r\n controller: 'ItemOfMachineryCtrl',\r\n title: 'Item of machinery',\r\n controllerAs: 'vm',\r\n })\r\n\r\n .state('typeOfMachinery', {\r\n url: '/machinery-type',\r\n templateUrl: 'app/pages/machineryMaster/machineryType/machineryType.html',\r\n controller: 'MachineryTypeCtrl',\r\n title: 'Type Of Machinery ',\r\n controllerAs: 'vm',\r\n })\r\n\r\n .state('lobMachinery', {\r\n url: '/lob-machinery',\r\n templateUrl: 'app/pages/machineryMaster/lobMachinery/lobMachinery.html',\r\n controller: 'LOBMachineryCtrl',\r\n title: 'LOB Machinery',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.materialManagement', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('StoreLocationSetup', {\r\n url: '/StoreLocationSetup',\r\n templateUrl: 'app/pages/materialManagement/storeLocation/StoreLocationSetup.html',\r\n title: 'Store Setup',\r\n controller: 'StoreLocationSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n }\r\n }).state('StoreStaffAllocation', {\r\n url: '/storestaffallocation',\r\n templateUrl: 'app/pages/materialManagement/StoreStaffAllocation/StoreStaffAllocation.html',\r\n title: 'StoreStaffAllocation',\r\n controller: 'StoreStaffAllocationCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 1,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('MaterialAcceptanceNote', {\r\n url: '/man',\r\n templateUrl: 'app/pages/materialManagement/MaterialAcceptanceNote/MAN.html',\r\n title: 'Material Acceptance Note',\r\n controller: 'MANCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 2,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('MaterialIssue', {\r\n url: '/mi',\r\n templateUrl: 'app/pages/materialManagement/MaterialIssue/MI.html',\r\n title: 'Material Issue Voucher',\r\n controller: 'MICtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 2,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('MaterialReceiptNote', {\r\n url: '/mrn',\r\n templateUrl: 'app/pages/materialManagement/MaterialReceiptNote/MRN.html',\r\n title: 'MaterialReceiptNote',\r\n controller: 'MRNCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 2,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('MaterialRequirementSlip', {\r\n url: '/mrs',\r\n templateUrl: 'app/pages/materialManagement/MaterialRequirementSlip/MRS.html',\r\n title: 'MaterialRequirementSlip',\r\n controller: 'MRSCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 2,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n .state('stockRegistration', {\r\n url: '/stock-Registration',\r\n templateUrl: 'app/pages/materialManagement/stock/StockRegistration/stockRegistration.html',\r\n title: 'Stock Registration',\r\n controller: 'StockRegistrationCtrl',\r\n controllerAs: 'vm'\r\n }).state('InitialStock', {\r\n url: '/Initial-Stock',\r\n templateUrl: 'app/pages/materialManagement/InitialStock/initialstock.html',\r\n title: 'InitialStock',\r\n controller: 'initialstockCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 2,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('materialReconciliation', {\r\n url: '/material-Reconciliation',\r\n templateUrl: 'app/pages/materialManagement/MaterialReconciliation/materialReconciliation.html',\r\n title: 'Material Reconciliation',\r\n controller: 'MaterialReconciliationCtrl',\r\n controllerAs: 'vm'\r\n })\r\n .state('StockStatement', {\r\n url: '/Stock-Statement',\r\n templateUrl: 'app/pages/materialManagement/StockStatement/StockStatement.html',\r\n title: 'StockStatement',\r\n controller: 'StockStatementCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: { order: 2, icon: 'fa fa-flag-o' },\r\n })\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.materialMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('materialcategory', {\r\n url: '/material-category',\r\n templateUrl: 'app/pages/materialMaster/materialCategory/materialcategory.html',\r\n controller: 'MaterialCategoryCtrl',\r\n title: 'Category Of Material',\r\n controllerAs: 'vm',\r\n })\r\n .state('materialSubCategory', {\r\n url: '/material-SubCategory',\r\n templateUrl: 'app/pages/materialMaster/materialSubCategory/materialSubCategory.html',\r\n controller: 'MaterialSubCategoryCtrl',\r\n title: 'SubCategory Of Material',\r\n controllerAs: 'vm',\r\n })\r\n .state('materialType', {\r\n url: '/material-type',\r\n templateUrl: 'app/pages/materialMaster/materialType/materialtype.html',\r\n controller: 'MaterialTypeCtrl',\r\n title: 'Type Of Material',\r\n controllerAs: 'vm',\r\n })\r\n .state('attributeMat', {\r\n url: '/material-attribute',\r\n templateUrl: 'app/pages/materialMaster/attributeMat/attributeMat.html',\r\n controller: 'MaterialAttributeCtrl',\r\n title: 'Attribute Of Material',\r\n controllerAs: 'vm',\r\n })\r\n .state('itemOfMaterial', {\r\n url: '/item-of-Material',\r\n templateUrl: 'app/pages/materialMaster/itemofMaterial/itemofmaterial.html',\r\n controller: 'ItemOfMaterialCtrl',\r\n title: 'Item Of Material',\r\n controllerAs: 'vm',\r\n })\r\n .state('materialVariable', {\r\n url: '/material-variable',\r\n templateUrl: 'app/pages/materialMaster/variable/materialvariable.html',\r\n controller: 'MaterialVariableCtrl',\r\n title: 'Variable Of Material',\r\n controllerAs: 'vm',\r\n\r\n }) \r\n .state('lobMaterial', {\r\n url: '/lob-Material',\r\n templateUrl: 'app/pages/materialMaster/lobMaterial/lobMaterial.html',\r\n controller: 'LobMaterialCtrl',\r\n title: 'LOB Material',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.organization', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('organization', {\r\n url: '/organization',\r\n templateUrl: 'app/pages/organization/organization.html',\r\n title: 'Organization',\r\n controller: 'OrganizationCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'icon icons8-Org-Unit'\r\n },\r\n })\r\n .state('organizationChart', {\r\n url: '/organization-Chart',\r\n templateUrl: 'app/pages/organizationChart/organizationChart.html',\r\n title: 'Organization Chart',\r\n controller: 'OrganizationChartCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'icon icons8-Org-Unit'\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.overhead', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('overHead', {\r\n url: '/overhead',\r\n templateUrl: 'app/pages/overhead/overhead.html',\r\n title: 'OverHead',\r\n controller: 'overheadCtrl',\r\n controllerAs: 'vm',\r\n\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.planningReport', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('planning', {\r\n url: '/planning-report',\r\n templateUrl: 'app/pages/PlanningReport/planningReport.html',\r\n title: 'Planning Report',\r\n controller: 'PlanningReportCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.procurement', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('rfqTermsAndCondition', {\r\n url: '/rfq-TermsAndCondition',\r\n templateUrl: 'app/pages/Procurement/RfqTermsAndCondition/rfqTermsAndCondition.html',\r\n title: ' Terms And Condition',\r\n controller: 'RfqTermsAndConditionCtrl',\r\n controllerAs: 'vm',\r\n }).state('preparatonofRfqMaterial', {\r\n url: '/rfq-prepationofRfqMaterial',\r\n templateUrl: 'app/pages/Procurement/PreparationofRfqMaterial/preparationofRfqMaterial.html',\r\n title: 'Preparation of Rfq Material',\r\n controller: 'PreparationofRfqMaterialCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n },\r\n }).state('draftPreparatonofRfqMaterial', {\r\n url: '/draft-RfqMaterial',\r\n templateUrl: 'app/pages/Procurement/PreparationofRfqMaterial/draftPreparationofRfqMaterial.html',\r\n title: 'Preparation Draft of RFQ Material',\r\n controller: 'DraftPreparationofRfqMaterialCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 1\r\n },\r\n }).state('pendingForApprovalRfqMaterial', {\r\n url: '/pendingForApproval-RfqMaterial',\r\n templateUrl: 'app/pages/Procurement/PreparationofRfqMaterial/PendingForApproval.html',\r\n title: 'Pending For Approval',\r\n controller: 'PendingForApprovalRfqMaterialCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 3\r\n },\r\n }).state('approvedPreparatonofRfqMaterial', {\r\n url: '/approved-RfqMaterial',\r\n templateUrl: 'app/pages/Procurement/PreparationofRfqMaterial/viewPreparationofRfqMaterial.html',\r\n title: 'Approved Rfq',\r\n controller: 'ViewPreparationRfqMaterialCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 4\r\n },\r\n }).state('cancelledPreparatonofRfqMaterial', {\r\n url: '/cancelled-RfqMaterial',\r\n templateUrl: 'app/pages/Procurement/PreparationofRfqMaterial/cancelledRfqMaterial.html',\r\n title: 'Cancelled Rfq',\r\n controller: 'CancelledPreparationRfqMaterialCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 5\r\n },\r\n }).state('supplierRateQuote', {\r\n url: '/supplierRateQuote',\r\n templateUrl: 'app/pages/Procurement/SupplierRateQuote/supplierRateQuote.html',\r\n title: 'Supplier Rate Quote',\r\n controller: 'SupplierRateQuoteCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n },\r\n }).state('supplierRateComparision', {\r\n url: '/supplierRateComparision',\r\n templateUrl: 'app/pages/Procurement/supplierRateComparision/supplierRateComparision.html',\r\n title: 'Supplier Rate Comparision',\r\n controller: 'SupplierRateComparisionCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n },\r\n }).state('poTermsAndCondition', {\r\n url: '/PO-TermsAndCondition',\r\n templateUrl: 'app/pages/Procurement/PoTermsAndCondition/poTermsAndCondition.html',\r\n title: 'P.O Terms And Condition',\r\n controller: 'POTermsAndConditionCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.privilege', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('projectLevelPrivilege', {\r\n url: '/project-level-privilege',\r\n templateUrl: 'app/pages/projectLevelPrivilege/projectLevelPrivilege.html',\r\n title: 'Project Level Privilege',\r\n controller: 'ProjectLevelPrivilegeCtrl',\r\n controllerAs: 'vm', \r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.projectMgtandApp', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('estimationReport', {\r\n url: '/estimationReport',\r\n templateUrl: 'app/pages/projectManagementandAppraisal/estimationReport/estimationReport.html',\r\n title: 'Estimation Report',\r\n controller: 'EstimationReportCtrl',\r\n controllerAs: 'vm',\r\n }).state('rateAnalysis', {\r\n url: '/rate-analysis',\r\n templateUrl: 'app/pages/projectManagementandAppraisal/rateAnalysis/rateAnalysis.html',\r\n title: 'Rate Analysis',\r\n controller: 'RateAnalysisCtrl',\r\n controllerAs: 'vm',\r\n }).state('requirementReport', {\r\n url: '/requirement-report',\r\n templateUrl: 'app/pages/projectManagementandAppraisal/RequirementReport/requirementReport.html',\r\n title: 'Requirement Report',\r\n controller: 'RequirementReportCtrl',\r\n controllerAs: 'vm',\r\n })\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.ProjectResourceAllocation', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('ProjectResourceAllocation', {\r\n url:'/projectresourceallocation',\r\n templateUrl: 'app/pages/ProjectResourceAllocation/projectResourceAllocation.html',\r\n title: 'Project Resource Allocation',\r\n controller: 'ProjectResourceAllocationCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.PO', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Draft_PO', {\r\n url: '/Draft_PO',\r\n templateUrl: 'app/pages/PurchaseOrder/Draft_PO.html',\r\n title: 'Preparation of Draft P.O',\r\n controller: 'Draft_POCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n params: {\r\n data: undefined\r\n }\r\n }).state('PendingForApproval_PO', {\r\n url: '/PendingForApproval_PO',\r\n templateUrl: 'app/pages/PurchaseOrder/PendingForApproval.html',\r\n title: 'Pending For Approval ',\r\n controller: 'PendingForApproval_POCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('BackForCorrection_PO', {\r\n url: '/BackForCorrection_PO',\r\n templateUrl: 'app/pages/PurchaseOrder/BackForCorrection.html',\r\n title: 'Back For Correction',\r\n controller: 'BackForCorrection_POCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n }).state('Approved_PO', {\r\n url: '/Approved_PO',\r\n templateUrl: 'app/pages/PurchaseOrder/Approved.html',\r\n title: 'Approved PO',\r\n controller: 'Approved_POCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.projectStatus', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('projectStatus', {\r\n url: '/projectStatus',\r\n templateUrl: 'app/pages/projectStatus/projectStatus.html',\r\n title: 'Project Status',\r\n controller: 'ProjectStatusCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n })();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.rfq', [\r\n 'KPMES.pages.rfq.comparision'\r\n ]).config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider.state('rfqPreparation', {\r\n url: '/rfq-Preparation',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqPreparation.html',\r\n title: ' Preparation of Draft RFQ',\r\n controller: 'RfqPreparationCtrl',\r\n controllerAs: 'vm',\r\n\r\n }).state('savedRfq', {\r\n url: '/rfq-Draft',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqTable.html',\r\n title: 'View Saved Draft RFQ',\r\n controller: 'DraftRfqCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 1\r\n }\r\n })\r\n .state('pendingForApprovalRfq', {\r\n url: '/rfq-pendingForApproval',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqTable.html',\r\n title: 'Pending For Approval ',\r\n controller: 'DraftRfqCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 3\r\n }\r\n }).state('backForCorrectionRfq', {\r\n url: '/rfq-backForCorrection',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqTable.html',\r\n title: 'Back For Correction',\r\n controller: 'DraftRfqCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 6\r\n }\r\n }).state('viewRfq', {\r\n url: '/rfq-view',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqPreparation.html',\r\n title: 'RFQ Preparation',\r\n controller: 'RfqPreparationCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 2\r\n }\r\n }).state('viewApprovedRfq', {\r\n url: '/rfq-viewApproved',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqTable.html',\r\n title: 'View Approved Rfq',\r\n controller: 'DraftRfqCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 4\r\n }\r\n }).state('CancelRfq', {\r\n url: '/rfq-cancellation',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqTable.html',\r\n title: 'Cancellation of RFQ',\r\n controller: 'DraftRfqCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 5\r\n }\r\n }).state('rfqContractor', {\r\n url: '/rfq-Contractor',\r\n templateUrl: 'app/pages/RFQ/rfqContractor/rfqContractor.html',\r\n title: 'RFQ Contractor',\r\n controller: 'RfqContractorCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.RFQTemplates', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('RFQTemplates', {\r\n url: '/RFQ-Template',\r\n templateUrl: 'app/pages/RFQTemplates/rfqTemplate.html',\r\n title: 'RFQ T&C of CA',\r\n controller: 'RFQTemplateCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-user'\r\n },\r\n }).state('RFQGenerateTemplates', {\r\n url: '/RFQ-GenerateTemplate',\r\n templateUrl: 'app/pages/RFQTemplates/rfqGenerateTemplate.html',\r\n title: 'RFQ GenerateTemplates',\r\n controller: 'RFQGenerateTemplateCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-user'\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.role', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('role', {\r\n url: '/role-master',\r\n templateUrl: 'app/pages/role/role.html',\r\n title: 'Creating Of Role',\r\n controller: 'RoleCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-user'\r\n },\r\n }).state('roleMenuMapping', {\r\n url: '/role-menu-mapping',\r\n templateUrl: 'app/pages/role/roleMenuMapping/roleMenuMapping.html',\r\n title: 'Role Menu Privilege',\r\n controller: 'RoleMenuMappingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 112,\r\n icon: ''\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.sequence', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('sequence', {\r\n url: '/general-sequence',\r\n templateUrl: 'app/pages/sequence/generalSequence/generalSequence.html',\r\n title: 'General Sequence',\r\n controller: 'GeneralSequenceCtrl',\r\n controllerAs: 'vm'\r\n }).state('projectSequence', {\r\n url: '/project-sequence',\r\n templateUrl: 'app/pages/sequence/projectSequence/projectSequence.html',\r\n title: 'Project Sequence of Type of CA',\r\n controller: 'ProjectSequenceCtrl',\r\n controllerAs: 'vm'\r\n }).state('tierSequence', {\r\n url: '/tier-sequence',\r\n templateUrl: 'app/pages/sequence/BillOfQuantitySequence/boqTierSequence.html',\r\n title: 'Sequence of Location and Tier',\r\n controller: 'boqTierSequenceCtrl',\r\n controllerAs: 'vm'\r\n }).state('iocaSequence', {\r\n url: '/ioca-sequence',\r\n templateUrl: 'app/pages/sequence/BillOfQuantitySequence/boqIocaSequence.html',\r\n title: 'Sequence of IOCA',\r\n controller: 'boqIocaSequenceCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.state', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('state', {\r\n url: '/state',\r\n templateUrl: 'app/pages/state/state.html',\r\n title: 'State',\r\n controller: 'StateCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-location-arrow'\r\n },\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.services', []);\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.TaskReport', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task', {\r\n url: '/Task-report',\r\n templateUrl: 'app/pages/TaskReport/TaskReport.html',\r\n title: 'Task Report',\r\n controller: 'TaskReportCtrl',\r\n controllerAs: 'vm',\r\n }).state('DPR', {\r\n url: '/Dpr-report',\r\n templateUrl: 'app/pages/TaskReport/DprReport.html',\r\n title: 'Daily Process Report',\r\n controller: 'DprReportCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('Appraisal', {\r\n url: '/appraisal-report',\r\n templateUrl: 'app/pages/TaskReport/AppraisalReport.html',\r\n title: 'Appraisal Report',\r\n controller: 'AppraisalReportCtrl',\r\n controllerAs: 'vm',\r\n })\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.tenderMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('tenderMaster', {\r\n url: '/tender-Master',\r\n templateUrl: 'app/pages/tenderMaster/tender.html',\r\n title: 'Tender Master',\r\n controller: 'TenderMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.unitOfMeasurement', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('nonStdUnits', {\r\n url: '/non-std-units',\r\n templateUrl: 'app/pages/unitOfMeasurement/nonStdUnit.html',\r\n title: 'Non Standard Units',\r\n controller: 'NonStdUnitCtrl',\r\n controllerAs: 'vm' \r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.uomParameters', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('uomParameter', {\r\n url: '/uom_Parameters',\r\n templateUrl: 'app/pages/uomParameters/uomParameters.html',\r\n title: 'UOM Parameters',\r\n controller: 'UOMParametersCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.user', [\r\n 'KPMES.pages.user.login'\r\n ]).config(routeConfig);\r\n\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('userMenuMapping', {\r\n url: '/user-menu-mapping',\r\n templateUrl: 'app/pages/user/userMenuMapping/userMenuMapping.html',\r\n title: 'User Menu Privilege',\r\n controller: 'UserMenuMappingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 122,\r\n icon: ''\r\n },\r\n }).state('createUser', {\r\n url: '/create-user',\r\n templateUrl: 'app/pages/user/userCreation/createUser.html',\r\n title: 'Creating User Account',\r\n controller: 'CreateUserCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 122,\r\n icon: ''\r\n },\r\n }).state('userPrivilege', {\r\n url: '/user-privilege',\r\n templateUrl: 'app/pages/user/userPrivilege/userPrivilege.html',\r\n title: 'Project Level Privilege',\r\n controller: 'UserPrivilegeCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.workApproval', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('workApproval', {\r\n url: '/work-Approval',\r\n templateUrl: 'app/pages/WorkApproval/workapproval.html',\r\n title: 'Work Approval',\r\n controller: 'WorkApprovalCtrl',\r\n controllerAs: 'vm'\r\n }).state('approvalofwork', {\r\n url: '/approvalOf-Work',\r\n templateUrl: 'app/pages/WorkApproval/ApprovalOfWork/approvalOfWork.html',\r\n title: 'Approval Of Work Completed',\r\n controller: 'ApprovalOfWorkCtrl',\r\n controllerAs: 'vm'\r\n }).state('Defectofwork', {\r\n url: '/defectof-Work',\r\n templateUrl: 'app/pages/WorkApproval/DefectOfWork/defectOfWork.html',\r\n title: 'Approval Of Defective Work',\r\n controller: 'DefectOfWorkCtrl',\r\n controllerAs: 'vm'\r\n }).state('workApprovalGallery', {\r\n url: '/approval-Gallery',\r\n templateUrl: 'app/pages/WorkApproval/Gallery/approvalWorkGallery.html',\r\n title: ' Approved Work',\r\n controller: 'ApprovalWorkGalleryCtrl',\r\n controllerAs: 'vm'\r\n }).state('defectWorkGallery', {\r\n url: '/defect-Gallery',\r\n templateUrl: 'app/pages/WorkApproval/Gallery/defectWorkGallery.html',\r\n title: ' Defective Work',\r\n controller: 'DefectWorkGalleryCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.workOrder', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('directWorkOrder', {\r\n url: '/direct-work-order',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/directWorkOrder.html',\r\n title: 'Work Order WithOut RFQ',\r\n controller: 'DirectWorkOrderCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n // Status: 1\r\n }\r\n })\r\n .state('directWorkOrderDraft', {\r\n url: '/direct-work-order-for-draft',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/directWorkOrderTable.html',\r\n title: 'View Saved Draft Work Order',\r\n controller: 'DirectWorkOrderTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 1\r\n }\r\n })\r\n .state('directWorkOrderPfA', {\r\n url: '/direct-work-order-for-pending-for-Approval',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/directWorkOrderTable.html',\r\n title: 'Pending for Approval',\r\n controller: 'DirectWorkOrderTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 3\r\n }\r\n })\r\n .state('directWorkOrderBfC', {\r\n url: '/direct-work-order-for-back for correction',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/directWorkOrderTable.html',\r\n title: 'Back for Correction',\r\n controller: 'DirectWorkOrderTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 6\r\n }\r\n })\r\n .state('directWorkOrderApprove', {\r\n url: '/direct-work-order-for-Approve',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/directWorkOrderTable.html',\r\n title: 'View Approved W.O',\r\n controller: 'DirectWorkOrderTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 4\r\n }\r\n })\r\n .state('directWorkOrderBlock', {\r\n url: '/direct-work-order-for-Block',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/directWorkOrderTable.html',\r\n title: 'Blocked Work Order',\r\n controller: 'DirectWorkOrderTableCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n Status: 5\r\n }\r\n\r\n }).state('preparationofWOHome', {\r\n url: '/prepationofWO-Home',\r\n templateUrl: 'app/pages/workOrder/preparationofWOHome.html',\r\n title: 'Preparation of Draft W.O',\r\n controller: 'PreparationofWOHomeCtrl',\r\n controllerAs: 'vm'\r\n\r\n }).state('preparationofDraftWO', {\r\n url: '/prepationofWO-Draft',\r\n templateUrl: 'app/pages/workOrder/preparationofDraftWO/preparationofDraftWO.html',\r\n title: 'Preparation of Draft WO',\r\n controller: 'PreparationofDraftWOCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n // Status: 4\r\n }\r\n }).state('workOrderReport', {\r\n url: '/report-WorkOrder',\r\n templateUrl: 'app/pages/workOrder/workOrderReport.html',\r\n title: 'Work Order Report',\r\n controller: 'WorkOrderReportCtrl',\r\n controllerAs: 'vm'\r\n }).state('CancellationofWO', {\r\n url: '/Cancel-WO',\r\n templateUrl: 'app/pages/workOrder/CancellationofWO/CancellationofWO.html',\r\n title: 'Cancellation of WO',\r\n controller: 'CancellationofWOCtrl',\r\n controllerAs: 'vm'\r\n }).state('amendmentWO', {\r\n url: '/amendment-WO',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/amendmentWO.html',\r\n title: 'Amendment of WO',\r\n controller: 'AmendmentofWOCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined\r\n }\r\n }).state('viewAmendmentWO', {\r\n url: '/viewAmendment-WO',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/viewAmendmentWO.html',\r\n title: 'View Amendment of WO',\r\n controller: 'ViewAmendmentWOCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.costvariationReport', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('costvariationReport', {\r\n url: '/costvari-report',\r\n templateUrl: 'app/pages/constructionProjectSetup/costvariation/costvariationReport.html',\r\n title: 'Cost Variation Report',\r\n controller: 'costvariationReportCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n\r\n\r\n angular.module('KPMES.pages.projectInitiation.planning', ['gantt', 'gantt.sortable',\r\n 'gantt.movable',\r\n 'gantt.drawtask',\r\n 'gantt.tooltips',\r\n 'gantt.bounds',\r\n 'gantt.progress',\r\n 'gantt.table',\r\n 'gantt.tree',\r\n 'gantt.groups',\r\n 'gantt.resizeSensor',\r\n 'gantt.overlap',\r\n\r\n 'gantt.dependencies'\r\n ]).config(routeConfig);\r\n\r\n // 'gantt.dependencies'\r\n // ]).config(routeConfig);\r\n\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('projectPlanning', {\r\n url: '/project-planning',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/projectPlanning.html',\r\n title: 'PSB Planning (Draft BOQ)',\r\n controller: 'ProjectPlanningCtrl',\r\n controllerAs: 'vm',\r\n }).state('projectScheduling', {\r\n url: '/project-Scheduling',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/projectScheduling.html',\r\n title: 'PSB Planning(Draft BOQ)', \r\n controller: 'ProjectSchedulingCtrl',\r\n controllerAs: 'vm',\r\n }).state('projectFinalisedScheduling', {\r\n url: '/projectScheduling-Finalised',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/projectFinalisedScheduling.html',\r\n title: 'PSB Planning(Final BOQ) ',\r\n controller: 'projectFinalisedSchedulingCtrl',\r\n controllerAs: 'vm',\r\n }).state('projectFinalisedManualScheduling', {\r\n url: '/projectManualScheduling-Finalised',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/projectFinalisedManualScheduling.html',\r\n title: 'Project Finalised Manual Scheduling',\r\n controller: 'projectFinalisedManualSchedulingCtrl',\r\n controllerAs: 'vm',\r\n }).state('projectFinalisedManualReScheduling', {\r\n url: '/projectManualReScheduling-Finalised',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/projectFinalisedManualReScheduling.html',\r\n title: 'Project Finalised Manual ReScheduling',\r\n controller: 'projectFinalisedManualReSchedulingCtrl',\r\n controllerAs: 'vm',\r\n })\r\n .state('reScheduling', {\r\n url: '/rescheduling-FinalisedPlanning',\r\n templateUrl: 'app/pages/constructionProjectSetup/planning/projectFinalisedReScheduling.html',\r\n title: 'PSB Rescheduling',\r\n controller: 'ProjectFinalisedReSchedulingCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ApprovedProjectPrice', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ApprovedProjectPrice', {\r\n url: '/CRM_ApprovedProjectPrice',\r\n templateUrl: 'app/pages/CRM/CRMApprovedProjectPrice/CRMApprovedProjectPrice.html',\r\n title: ' Approved Price',\r\n controller: 'CRMApprovedProjectPriceCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n \r\nparams: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRMApprovedProjectPrice_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRMApprovedProjectPrice_New', {\r\n url: '/CRMApprovedProjectPrice_New',\r\n templateUrl: 'app/pages/CRM/CRMApprovedProjectPrice_New/CRMApprovedProjectPrice_New.html',\r\n title: ' Approved Price',\r\n controller: 'CRMApprovedProjectPrice_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n \r\nparams: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_EmployeeTaskActivity', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_EmployeeTaskActivity', {\r\n url: '/CRM_EmployeeTaskActivity',\r\n templateUrl: 'app/pages/CRM/CRMEmployeeTaskActivity/CRM_EmployeeTaskActivity.html',\r\n title: 'Employee Task Activity',\r\n controller: 'CRM_EmployeeTaskActivityCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectDetailsApproval', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectDetailsApproval', {\r\n url: '/CRM_ProjectDetailsApproval',\r\n templateUrl: 'app/pages/CRM/CRMProjectDetailsApproval/CRM_ProjectDetailsApproval.html',\r\n // title: 'Project Property Approval',\r\n title: 'Apartment Approval',\r\n controller: 'CRM_ProjectDetailsApprovalCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRMProjectDetailsApproval_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRMProjectDetailsApproval_New', {\r\n url: '/CRMProjectDetailsApproval_New',\r\n templateUrl: 'app/pages/CRM/CRMProjectDetailsApproval_New/CRMProjectDetailsApproval_New.html',\r\n // title: 'Project Property Approval',\r\n title: 'Apartment Approval',\r\n controller: 'CRMProjectDetailsApproval_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_ProjectDetailsPriceSetup', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectDetailsPriceSetup_Old', {\r\n url: '/CRM_ProjectDetailsPriceSetup_Old',\r\n templateUrl: 'app/pages/CRM/CRMProjectDetailsPriceSetup/CRMProjectDetailsPriceSetup.html',\r\n title: ' Price setup',\r\n controller: 'CRMProjectDetailsPriceSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null}\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_ProjectDetailsPriceSetup_New', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectDetailsPriceSetup_New', {\r\n url: '/CRM_ProjectDetailsPriceSetup_New',\r\n templateUrl: 'app/pages/CRM/CRMProjectDetailsPriceSetup_New/CRMProjectDetailsPriceSetup_New.html',\r\n title: ' Price setup',\r\n controller: 'CRMProjectDetailsPriceSetup_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null,CopyFor:null}\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRMProjectDetailsRejection', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRMProjectDetailsRejection', {\r\n url: '/CRMProjectDetailsRejection',\r\n templateUrl: 'app/pages/CRM/CRMProjectDetailsRejection/CRMProjectDetailsRejection.html',\r\n // title: 'Project Property Approval',\r\n title: 'CRMProject Details Rejection',\r\n controller: 'CRMProjectDetailsRejectionCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_RepeatedTaskMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_RepeatedTaskMaster', {\r\n url: '/CRM_RepeatedTaskMaster',\r\n templateUrl: 'app/pages/CRM/CRMRepeatedTaskMaster/CRM_RepeatedTaskMaster.html',\r\n title: 'Repeated Activity',\r\n controller: 'CRM_RepeatedTaskMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_AddBuyerEnquiry', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_AddBuyerEnquiry', {\r\n url: '/CRM_AddBuyerEnquiry',\r\n templateUrl: 'app/pages/CRM/CRM_AddBuyerEnquiry/CRM_AddBuyerEnquiry.html',\r\n title: 'Add Buyer Enquiry',\r\n controller: 'CRM_AddBuyerEnquiryCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ApprovedProjectDetails', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ApprovedProjectDetails', {\r\n url: '/CRM_ApprovedProjectDetails',\r\n templateUrl: 'app/pages/CRM/CRM_ApprovedProjectDetails/CRM_ApprovedProjectDetails.html',\r\n // title: 'Approved Project Property',\r\n title: 'Approved Apartment',\r\n controller: 'CRM_ApprovedProjectDetailsCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_BuyerEnquiryTiles', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_BuyerEnquiryTiles', {\r\n url: '/CRM_BuyerEnquiryTiles',\r\n templateUrl: 'app/pages/CRM/CRM_BuyerEnquiryTiles/CRM_BuyerEnquiryTiles.html',\r\n title: 'Buyer Enquiry Data',\r\n controller: 'CRM_BuyerEnquiryTilesCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_CopyAreaDetails', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CopyAreaDetails', {\r\n url: '/CopyAreaDetails',\r\n templateUrl: 'app/pages/CRM/CRM_CopyAreaDetails/CRM_CopyAreaDetails.html',\r\n // title: 'Project Property Initiation',\r\n title: ' Copy Area Details',\r\n controller: 'CRM_CopyAreaPriceDetailsCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null, Header: null ,CopyFor:null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ApprovedProjectDetails_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ApprovedProjectDetails_New', {\r\n url: '/CRM_ApprovedProjectDetails_New',\r\n templateUrl: 'app/pages/CRM/CRM_ApprovedProjectDetails_New/CRM_ApprovedProjectDetails_New.html',\r\n // title: 'Project Property Approval',\r\n title: 'Approved Apartment',\r\n controller: 'CRM_ApprovedProjectDetails_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_dashboard', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_dashboard', {\r\n url: '/CRMhome',\r\n templateUrl: 'app/pages/CRM/CRM_dashboard/CRM_dashboard.html',\r\n title: 'Home',\r\n controller: 'CRM_DashboardCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-home'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ItemofSalesActivity', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ItemofSalesActivity', {\r\n url: '/CRM_ItemofSalesActivity',\r\n templateUrl: 'app/pages/CRM/CRM_ItemofSalesActivity/CRM_ItemofSalesActivity.html',\r\n title: 'Item of Sales Activity',\r\n controller: 'CRM_ItemofSalesActivityCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_GstSetting', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_GstSetting', {\r\n url: '/CRM_GstSetting',\r\n templateUrl: 'app/pages/CRM/CRM_GstSetting/CRM_GstSetting.html',\r\n title: 'Gst Setting',\r\n controller: 'CRM_GstSettingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n\r\n params: { ProjectId: null, Header: null }\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ModifyProjectDetails', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ModifyProjectDetails', {\r\n url: '/CRM_ModifyProjectDetails',\r\n templateUrl: 'app/pages/CRM/CRM_ModifyProjectDetails/CRM_ModifyProjectDetails.html',\r\n title: 'Back For Correction',\r\n controller: 'CRM_ModifyProjectDetailsCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ModifyProjectDetails_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ModifyProjectDetails_New', {\r\n url: '/CRM_ModifyProjectDetails_New',\r\n templateUrl: 'app/pages/CRM/CRM_ModifyProjectDetails_New/CRM_ModifyProjectDetails_New.html',\r\n // title: 'Project Property Approval',\r\n title: 'Apartment Approval',\r\n controller: 'CRM_ModifyProjectDetails_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRMLocationPropertyTypeSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRMLocationPropertyTypeSetup', {\r\n url: '/CRMLocationPropertyTypeSetup',\r\n templateUrl: 'app/pages/CRM/CRM_LocationPropertyTypeSetup/CRMLocationPropertyTypeSetup.html',\r\n title: ' Property Type Setup',\r\n controller: 'CRMLocationPropertyTypeSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n \r\nparams: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ModifyProjectPrice', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ModifyProjectPrice', {\r\n url: '/CRM_ModifyProjectPrice',\r\n templateUrl: 'app/pages/CRM/CRM_ModifyProjectPrice/CRM_ModifyProjectPrice.html',\r\n title: 'Back For Correction',\r\n controller: 'CRM_ModifyProjectPriceCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n \r\nparams: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_PaymentScheduleMapping', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_PaymentScheduleMapping', {\r\n url: '/CRM_PaymentScheduleMapping',\r\n templateUrl: 'app/pages/CRM/CRM_PaymentScheduleMapping/CRM_PaymentScheduleMapping.html',\r\n title: 'Payment Schedule Mapping',\r\n controller: 'CRM_PaymentScheduleMappingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n\r\n params: { ProjectId: null, Header: null }\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ModifyProjectPrice_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ModifyProjectPrice_New', {\r\n url: '/CRM_ModifyProjectPrice_New',\r\n templateUrl: 'app/pages/CRM/CRM_ModifyProjectPrice_New/CRM_ModifyProjectPrice_New.html',\r\n title: ' Price setup',\r\n controller: 'CRM_ModifyProjectPrice_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_projectinitiation', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_projectinitiation', {\r\n url: '/CRM_projectinitiation',\r\n templateUrl: 'app/pages/CRM/CRM_projectInitiation/CRM_projectInitiation.html',\r\n title: 'Project Initiation',\r\n controller: 'CRM_ProjectInitiationCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n\r\n .state('CRM_pendingforapproval', {\r\n url: '/CRM_pendingforApproval',\r\n templateUrl: 'app/pages/CRM/CRM_pendingforapproval/CRM_pendingforapproval.html',\r\n title: 'Project Approval',\r\n controller: 'CRM_PendingforApprovalCtrl',\r\n controllerAs: 'vm'\r\n\r\n })\r\n\r\n .state('CRMProjectCreation', {\r\n url: '/CRM_ProjectCreation',\r\n templateUrl: 'app/pages/CRM/CRMProjectCreation/CRM_projectcreation.html',\r\n title: 'CRMProjectCreation',\r\n controller: 'CRM_ProjectCreationCtrl',\r\n controllerAs: 'vm'\r\n })\r\n\r\n\r\n .state('CRMApproved', {\r\n url: '/CRM_approved',\r\n templateUrl: 'app/pages/CRM/CRMApproved/CRMapproved.html',\r\n title: 'Approved Project',\r\n controller: 'CRMApprovedCtrl',\r\n controllerAs: 'vm'\r\n })\r\n\r\n\r\n .state('CRMbackforCorrection', {\r\n url: '/CRM_backforCorrection',\r\n templateUrl: 'app/pages/CRM/CRMbackforCorrection/CRMbackforCorrection.html',\r\n title: 'Back For Correction',\r\n controller: 'CRMBackForCorrectionCtrl',\r\n controllerAs: 'vm'\r\n })\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_PaymentScheduleMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_PaymentScheduleMaster', {\r\n url: '/CRM_PaymentScheduleMaster',\r\n templateUrl: 'app/pages/CRM/CRM_PaymentScheduleMaster/CRM_PaymentScheduleMaster.html',\r\n title: 'Payment Schedule Master ',\r\n controller: 'CRM_PaymentScheduleMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_projectInitiationTiles', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_projectInitiationTiles', {\r\n url: '/CRM_projectInitiationTiles',\r\n templateUrl: 'app/pages/CRM/CRM_projectInitiationTiles/CRM_projectInitiationTiles.html',\r\n title: 'Project Initiation',\r\n controller: 'CRM_projectInitiationTilesCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectPropertyView', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectPropertyViewOld', {\r\n url: '/CRM_ProjectPropertyViewOld',\r\n templateUrl: 'app/pages/CRM/CRM_projectPropertyView/CRM_ProjectPropertyView.html',\r\n title: 'Project Property View',\r\n controller: 'CRM_ProjectPropertyViewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_ProjectPropertyInfoTiles', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectPropertyInfoTiles', {\r\n url: '/CRM_ProjectPropertyInfoTiles',\r\n templateUrl: 'app/pages/CRM/CRM_ProjectPropertyInfoTiles/CRM_ProjectPropertyInfoTiles.html',\r\n title: 'Project Property Info',\r\n controller: 'CRM_ProjectPropertyInfoTilesCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null, Header: null, TileId: null, SetupType: null }\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectPropertypriceTiles', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectPropertyPricesTies', {\r\n url: '/CRM_ProjectPropertyPricesTies',\r\n templateUrl: 'app/pages/CRM/CRM_ProjectPropertyPricesTies/CRM_ProjectPropertyPricesTies.html',\r\n title: 'Project Property Info',\r\n controller: 'CRM_ProjectPropertyPricesTiesCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n params: {ProjectId: null, Header: null,LastTierName: null }\r\n })\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_projectPropertyView_Modified', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectPropertyView', {\r\n url: '/CRM_ProjectPropertyView',\r\n templateUrl: 'app/pages/CRM/CRM_projectPropertyView_Modified/CRM_projectPropertyView_Modified.html',\r\n title: 'Project Property View',\r\n controller: 'CRM_projectPropertyView_ModifiedCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectPropertyView_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectPropertyViewOld1', {\r\n url: '/CRM_ProjectPropertyViewOld1',\r\n templateUrl: 'app/pages/CRM/CRM_projectPropertyView_New/CRM_projectPropertyView_New.html',\r\n title: 'Reports',\r\n controller: 'CRM_projectPropertyView_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectRateApproval', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectRateApproval', {\r\n url: '/CRM_ProjectRateApproval',\r\n templateUrl: 'app/pages/CRM/CRM_ProjectRateApproval/CRM_ProjectRateApproval.html',\r\n title: ' Price Approval',\r\n controller: 'CRM_ProjectRateApprovalCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n \r\nparams: {ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectRateApproval_New', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectRateApproval_New', {\r\n url: '/CRM_ProjectRateApproval_New',\r\n templateUrl: 'app/pages/CRM/CRM_ProjectRateApproval_New/CRM_ProjectRateApproval_New.html',\r\n title: ' Price setup',\r\n controller: 'CRM_ProjectRateApproval_NewCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: {ProjectId: null, Header: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_ProjectStatutorySetting', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ProjectStatutorySetting', {\r\n url: '/CRM_ProjectStatutorySetting',\r\n templateUrl: 'app/pages/CRM/CRM_ProjectStatutorySetting/CRM_ProjectStatutorySetting.html',\r\n title: 'Project Statutory Mapping',\r\n controller: 'CRM_ProjectStatutorySettingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n\r\n params: { ProjectId: null, Header: null }\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_SalesActivityCategory', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_SalesActivityCategory', {\r\n url: '/CRM_SalesActivityCategory',\r\n templateUrl: 'app/pages/CRM/CRM_SalesActivityCategory/CRM_SalesActivityCategory.html',\r\n title: 'Category of Sales Activity',\r\n controller: 'CRM_SalesActivityCategoryCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.CRM_StatutoryMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_StatutoryMaster', {\r\n url: '/CRM_StatutoryMaster',\r\n templateUrl: 'app/pages/CRM/CRM_StatutoryMaster/CRM_StatutoryMaster.html',\r\n title: 'Statutory Master',\r\n controller: 'CRM_StatutoryMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_TaskActivityMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_TaskActivityMaster', {\r\n url: '/CRM_TaskActivitytMaster',\r\n templateUrl: 'app/pages/CRM/CRM_TaskActivityMaster/CRM_TaskActivityMaster.html',\r\n title: 'Activity Master',\r\n controller: 'CRM_TaskActivityMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_Task', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_Task', {\r\n url: '/CRM_Task',\r\n templateUrl: 'app/pages/CRM/CRM_Task/CRM_Task.html',\r\n title: 'Task',\r\n controller: 'CRM_TaskCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_TaskApprovedList', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_TaskApprovedList', {\r\n url: '/CRM_TaskApprovedList',\r\n templateUrl: 'app/pages/CRM/CRM_TaskApprovedList/CRM_TaskApprovedList.html',\r\n title: 'Task Appraisal Report',\r\n controller: 'CRM_TaskApprovedListCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_TaskPlanning', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_TaskPlanning', {\r\n url: '/CRM_TaskPlanning',\r\n templateUrl: 'app/pages/CRM/CRM_TaskPlanning/CRM_TaskPlanning.html',\r\n title: 'Task Planning',\r\n controller: 'CRM_TaskPlanningCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_TaskSubjectMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_TaskSubjectMaster', {\r\n url: '/CRM_TaskSubjectMaster',\r\n templateUrl: 'app/pages/CRM/CRM_TaskSubjectMaster/CRM_TaskSubjectMaster.html',\r\n title: 'Subject of Activity',\r\n controller: 'CRM_TaskSubjectMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ViewBuyerEnquiry', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_ViewBuyerEnquiry', {\r\n url: '/CRM_ViewBuyerEnquiry',\r\n templateUrl: 'app/pages/CRM/CRM_ViewBuyerEnquiry/CRM_ViewBuyerEnquiry.html',\r\n title: 'View Buyer Enquiry',\r\n controller: 'CRM_ViewBuyerEnquiryCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n })\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_parkingLocationSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('parkingLocationSetup', {\r\n url: '/parkingLocationSetup',\r\n templateUrl: 'app/pages/CRM/parkingLocationSetup/parkingLocationSetup.html',\r\n title: ' Tier Setup',\r\n controller: 'parkingLocationSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_parkingTierSetup', [])\r\n\r\n\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('parkingTierSetup', {\r\n url: '/parkingTierSetupCtrl',\r\n templateUrl: 'app/pages/CRM/parkingTierSetup/parkingTierSetup.html',\r\n title: ' Location Setup',\r\n controller: 'parkingTierSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_projectDetailsSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('CRM_projectDetailsSetup', {\r\n url: '/CRM_projectDetailsSetup',\r\n templateUrl: 'app/pages/CRM/projectDetailsSetup/projectDetailsSetup.html',\r\n // title: 'Project Property Initiation',\r\n title: ' Apartment Setup',\r\n controller: 'projectDetailsSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_ProjectLocationSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('projectLocationSetup', {\r\n url: '/projectLocationSetup',\r\n templateUrl: 'app/pages/CRM/projectLocationSetup/projectLocationSetup.html',\r\n title: 'Tier Setup',\r\n controller: 'projectLocationSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.CRM_projectTierSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('projectTierSetup', {\r\n url: '/projectTierSetup',\r\n templateUrl: 'app/pages/CRM/projectTierSetup/projectTierSetup.html',\r\n title: ' Location Setup',\r\n controller: 'projectTierSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Enterprise_DetailsSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Enterprise_DetailsSetup', {\r\n url: '/Enterprise_DetailsSetup',\r\n templateUrl: 'app/pages/Enterprise/Enterprise_DetailsSetup/Enterprise_DetailsSetup.html',\r\n // title: 'Project Property Initiation',\r\n title: 'KPost ID ',\r\n controller: 'Enterprise_DetailsSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Enterprise_EmployeeMapping', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Enterprise_EmployeeMapping', {\r\n url: '/Enterprise_EmployeeMapping',\r\n templateUrl: 'app/pages/Enterprise/Enterprise_EmployeeMapping/Enterprise_EmployeeMapping.html',\r\n // title: 'Project Property Initiation',\r\n title: 'Employee Mapping',\r\n controller: 'Enterprise_EmployeeMappingCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null, Header: null }\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.Enterprise_GroupCreation', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Enterprise_GroupCreation', {\r\n url: '/Enterprise_GroupCreation',\r\n templateUrl: 'app/pages/Enterprise/Enterprise_GroupCreation/Enterprise_GroupCreation.html',\r\n title: 'Group Creation',\r\n controller: 'Enterprise_GroupCreationCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null,isProjectTile:null, isItemTile: null,isButtonShow:null}\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Enterprise_LocationSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Enterprise_LocationSetup', {\r\n url: '/Enterprise_LocationSetup',\r\n templateUrl: 'app/pages/Enterprise/Enterprise_LocationSetup/Enterprise_LocationSetup.html',\r\n title: ' Organisation Tiers Setup',\r\n controller: 'Enterprise_LocationSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.Enterprise_SetupTiles', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Enterprise_SetupTiles', {\r\n url: '/Enterprise_SetupTiles',\r\n templateUrl: 'app/pages/Enterprise/Enterprise_SetupTiles/Enterprise_SetupTiles.html',\r\n title: 'Organisation KPost ID',\r\n controller: 'Enterprise_SetupTilesCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null,isProjectTile:null, isItemTile: null,isButtonShow:null}\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Enterprise_TierSetup', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Enterprise_TierSetup', {\r\n url: '/Enterprise_TierSetup',\r\n templateUrl: 'app/pages/Enterprise/Enterprise_TierSetup/Enterprise_TierSetup.html',\r\n title: ' Organisation Variable Setup',\r\n controller: 'Enterprise_TierSetupCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null,Header: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.accountMaster', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('accountMaster', {\r\n url: '/account-Master',\r\n templateUrl: 'app/pages/hrModule/accountMaster/account.html',\r\n title: 'Account Master',\r\n controller: 'AccountMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.EmployeeComponent', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('EmployeeComponent', {\r\n url: '/EmployeeComponent',\r\n templateUrl: 'app/pages/hrModule/employeeComponent/employeeComponent.html',\r\n title: 'EmployeeComponent',\r\n controller: 'EmployeeComponentCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.accountTransaction', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('accountTransaction', {\r\n url: '/account-Transaction',\r\n templateUrl: 'app/pages/hrModule/accountTransaction/accountTransaction.html',\r\n title: 'Account Transaction',\r\n controller: 'AccountTransactionCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.employeeSalary', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('employeeSalary', {\r\n url: '/employee-Salary',\r\n templateUrl: 'app/pages/hrModule/employeeSalary/employeeSalary.html',\r\n title: 'Employee Salary',\r\n controller: 'EmployeeSalaryCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.LeaveMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('LeaveMaster', {\r\n url: '/LeaveMaster',\r\n templateUrl: 'app/pages/hrModule/leaveMaster/leaveMaster.html',\r\n title: 'LeaveMaster',\r\n controller: 'LeaveMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.SalaryComponents', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('SalaryComponents', {\r\n url: '/SalaryComponents',\r\n templateUrl: 'app/pages/hrModule/salaryComponents/salaryComponents.html',\r\n title: 'SalaryComponents',\r\n controller: 'SalaryComponentsCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-flag-o'\r\n },\r\n \r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.BudgetReport', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('BudgetReport', {\r\n url: '/Budget-report',\r\n templateUrl: 'app/pages/PlanningReport/BudgetReport/BudgetReport.html',\r\n title: 'Budget Report',\r\n controller: 'BudgetReportCtrl',\r\n controllerAs: 'vm',\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.workStatusReport', [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('workstatus', {\r\n url: '/workstatus-report',\r\n templateUrl: 'app/pages/Report/WorkApprovedStatusReport/workStatusReport.html',\r\n title: 'View Approved Completed Work ',\r\n controller: 'WorkStatusReportCtrl',\r\n controllerAs: 'vm',\r\n })\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.rfq.comparision', []).config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider.state('rfqComparision', {\r\n url: '/rfq-comparision',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/rfqComparision.html',\r\n title: 'View Draft Quotation Comparison',\r\n controller: 'RfqComparisionCtrl',\r\n controllerAs: 'vm'\r\n }).state('newRfqComparision', {\r\n url: '/rfq-comparision-new',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/comparisionForm/comparisionForm.html',\r\n title: 'RFQ Comparision',\r\n controller: 'RfqComparisionFormCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n mode: 0,\r\n status: 0\r\n }\r\n }).state('viewRfqComparision', {\r\n url: '/rfq-comparision-view',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/comparisionForm/comparisionForm.html',\r\n title: 'RFQ Comparision',\r\n controller: 'RfqComparisionFormCtrl',\r\n controllerAs: 'vm',\r\n params: {\r\n data: undefined,\r\n mode: 0,\r\n status: 0\r\n }\r\n }).state('draftRfqComparision', {\r\n url: '/draft-rfq-comparision',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/listView/listView.html',\r\n title: 'View Saved Quotation Comparison',\r\n controller: 'ListViewCtrl',\r\n controllerAs: 'vm'\r\n }).state('waitingForApprovalRfqComparision', {\r\n url: '/wfa-rfq-comparision',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/listView/listView.html',\r\n title: 'Pending for approval',\r\n controller: 'ListViewCtrl',\r\n controllerAs: 'vm'\r\n }).state('backForCorrectionRfqComparision', {\r\n url: '/bfc-rfq-comparision',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/listView/listView.html',\r\n title: 'Back of correction',\r\n controller: 'ListViewCtrl',\r\n controllerAs: 'vm'\r\n }).state('approvedRfqComparision', {\r\n url: '/approved-rfq-comparision',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/listView/listView.html',\r\n title: 'View Approved RFQ Comparision',\r\n controller: 'ListViewCtrl',\r\n controllerAs: 'vm'\r\n }).state('blockedRfqComparision', {\r\n url: '/blocked-rfq-comparision',\r\n templateUrl: 'app/pages/RFQ/rfqComparision/listView/listView.html',\r\n title: 'Blocked RFQ Comparision',\r\n controller: 'ListViewCtrl',\r\n controllerAs: 'vm'\r\n });\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Task_ActivityMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task_ActivityMaster', {\r\n url: '/Task_ActivityMaster',\r\n templateUrl: 'app/pages/Task/ActivityMaster/Task_ActivityMaster.html',\r\n title: 'Activity Master',\r\n controller: 'Task_ActivityMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Task_EmployeeRepeatedActivity', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task_RepeatedActivityMaster', {\r\n url: '/Task_RepeatedActivityMaster',\r\n templateUrl: 'app/pages/Task/RepeatedActivityMaster/Task_RepeatedActivityMaster.html',\r\n title: 'Activity Master',\r\n controller: 'Task_RepeatedActivityMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Task_EmployeeTaskActivity', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task_EmployeeTaskActivity', {\r\n url: '/Task_EmployeeTaskActivity',\r\n templateUrl: 'app/pages/Task/EmployeeTaskActivity/Task_EmployeeTaskActivity.html',\r\n title: 'Employee Task Activity',\r\n controller: 'Task_EmployeeTaskActivityCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Task_SubjectMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task_SubjectMaster', {\r\n url: '/Task_SubjectMaster',\r\n templateUrl: 'app/pages/Task/SubjectMaster/Task_SubjectMaster.html',\r\n title: 'Task',\r\n controller: 'Task_SubjectMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Task_RepeatedSubjectMaster', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task_RepeatedSubjectMaster', {\r\n url: '/Task_RepeatedSubjectMaster',\r\n templateUrl: 'app/pages/Task/RepeatedSubjectMaster/Task_RepeatedSubjectMaster.html',\r\n title: 'Task',\r\n controller: 'Task_RepeatedSubjectMasterCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n \r\n angular.module('KPMES.pages.Task_TaskApprovedList', [])\r\n .config(routeConfig);\r\n \r\n /** @ngInject */\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('Task_TaskApprovedList', {\r\n url: '/Task_TaskApprovedList',\r\n templateUrl: 'app/pages/Task/TaskApprovedList/Task_TaskApprovedList.html',\r\n title: 'Task Appraisal Report',\r\n controller: 'Task_TaskApprovedListCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-industry'\r\n },\r\n params: { ProjectId: null}\r\n });\r\n }\r\n })();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.user.login', [])\r\n .config(routeConfig);\r\n\r\n function routeConfig($stateProvider) {\r\n $stateProvider\r\n .state('login', {\r\n url: '/',\r\n templateUrl: 'app/pages/user/login/login.html',\r\n title: 'Login',\r\n controller: 'LoginCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-login'\r\n },\r\n }).state('logIn', {\r\n url: '/logIn',\r\n templateUrl: 'app/pages/user/login/login.html',\r\n title: 'Login',\r\n controller: 'LoginCtrl',\r\n controllerAs: 'vm',\r\n sidebarMeta: {\r\n order: 0,\r\n icon: 'fa fa-login'\r\n },\r\n });\r\n }\r\n})();\n'use strict';\r\ngoogle.load('visualization', '1', {\r\n packages: ['orgchart']\r\n});\r\ngoogle.setOnLoadCallback(function() {\r\n angular.bootstrap(document.body, ['KPMES']);\r\n});\r\nangular.module('KPMES', [\r\n 'ngAnimate',\r\n 'ui.bootstrap',\r\n 'ui.sortable',\r\n 'ui.router',\r\n 'ui.bootstrap.tpls',\r\n 'ngTouch',\r\n 'toastr',\r\n 'smart-table',\r\n \"xeditable\",\r\n 'ui.slimscroll',\r\n 'ngJsTree',\r\n 'angular-progress-button-styles',\r\n 'ngLodash',\r\n 'dialogs.main',\r\n 'ui.select',\r\n 'ui.multiselect',\r\n 'chart.js',\r\n 'ui.tree',\r\n 'ui.grid',\r\n 'ui.grid.grouping',\r\n 'pascalprecht.translate',\r\n 'googlechart',\r\n 'gm',\r\n 'KPMES.theme',\r\n 'KPMES.pages',\r\n 'ui.toggle',\r\n 'angular.filter',\r\n 'rzModule',\r\n 'angularFileUpload',\r\n 'gantt.tree',\r\n // 'nvd3'\r\n ])\r\n // .service('authInterceptor',['$q','$state', function ($q, $state) {\r\n // var service = this;\r\n\r\n// service.responseError = function (response) {\r\n// if (response.status == 401) {\r\n// $rootScope.logout();\r\n// }\r\n// return $q.reject(response);\r\n// };\r\n// }])\r\n// .config(['$httpProvider', function ($httpProvi`der) {\r\n// $httpProvider.interceptors.push('authInterceptor');\r\n// }])\r\n///\r\n\r\n\r\n//Baskar\r\n.config(['ChartJsProvider', function(ChartJsProvider) {\r\n // Configure all charts\r\n ChartJsProvider.setOptions({\r\n //chartColors: ['#98FB98', '#F08080', '#2dacd1', '#dfb81c'],\r\n chartColors: ['#70E168', '#FF594F', '#00A6D3', '#EAE700'],\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: {\r\n duration: 2500\r\n },\r\n });\r\n // Configure all line charts\r\n ChartJsProvider.setOptions('pie', {\r\n showLines: false\r\n });\r\n}])\r\n\r\n\r\n.config([\"$locationProvider\", \"$translateProvider\", \"dialogsProvider\", \"$httpProvider\", function($locationProvider, $translateProvider, dialogsProvider, $httpProvider) {\r\n $httpProvider.interceptors.push('httpRequestInterceptor');\r\n $httpProvider.interceptors.push(function($q, $rootScope) {\r\n return {\r\n 'responseError': function(rejection) {\r\n var defer = $q.defer();\r\n if (rejection.status === 401) {\r\n $rootScope.logout();\r\n }\r\n defer.reject(rejection);\r\n return defer.promise;\r\n }\r\n };\r\n });\r\n dialogsProvider.useBackdrop('static');\r\n dialogsProvider.useEscClose(false);\r\n dialogsProvider.useCopy(false);\r\n dialogsProvider.setSize('sm');\r\n\r\n $translateProvider.translations('en-US', {\r\n DIALOGS_ERROR: \"Error\",\r\n DIALOGS_ERROR_MSG: \"An unknown error has occurred.\",\r\n DIALOGS_CLOSE: \"Close\",\r\n DIALOGS_PLEASE_WAIT: \"Please wait\",\r\n DIALOGS_PLEASE_WAIT_ELIPS: \"Please wait...\",\r\n DIALOGS_PLEASE_WAIT_MSG: \"Waiting for the operation to complete.\",\r\n DIALOGS_PERCENT_COMPLETE: \"% Completed\",\r\n DIALOGS_NOTIFICATION: \"Notification\",\r\n DIALOGS_NOTIFICATION_MSG: \"Notification of application Unknown.\",\r\n DIALOGS_CONFIRMATION: \"Confirmation\",\r\n DIALOGS_CONFIRMATION_MSG: \"Confirmation required.\",\r\n DIALOGS_OK: \"Ok\",\r\n DIALOGS_YES: \"Yes\",\r\n DIALOGS_NO: \"No\"\r\n });\r\n\r\n $translateProvider.preferredLanguage('en-US');\r\n $locationProvider.html5Mode({\r\n enabled: true,\r\n requireBase: true\r\n });\r\n}])\r\n\r\n.run(['$rootScope', 'toastr', '$http', '$state', '$filter', '$location', 'AuthenticationService', 'UserService', 'dialogs', '$translate', '$uibModal', 'lodash', '$window', '$timeout', 'KPostBoxService',\r\n function($rootScope, toastr, $http, $state, $filter, $location, AuthenticationService, UserService, dialogs, $translate, $uibModal, lodash, $window, $timeout, KPostBoxService, $sce) {\r\n\r\n // $rootScope.endPoint = \"http://localhost:61350/\";\r\n $rootScope.endPoint = \"http://api.projectsoft.in/\";\r\n // $rootScope.endPoint = \"http://api3.projectsoft.in/\";\r\n // $rootScope.endPoint = \"http://49.207.184.116:1204/\";\r\n // $rootScope.endPoint = \"http://192.168.2.202:1204/\";\r\n $rootScope.kpostEndPoint = \"https://smaccapi1.kpostindia.com/KPOSTWebServiceCMS/\";\r\n // $rootScope.kpostEndPoint = \"http://49.249.243.234:9090/KPOSTWebService_cms/\";\r\n $rootScope.UiPoint = \"http://kpmes.projectsoft.in/\";\r\n // $rootScope.UiPoint = \"http://localhost:61350/\";\r\n\r\n $translate.use('en-US');\r\n $rootScope.iskpostCallChecked = false;\r\n\r\n var url = (window.location.href).replace($rootScope.UiPoint, \"\");\r\n var isQryChecked = url.includes(\"&isCheked=true\");\r\n\r\n function UrlCall() {\r\n $rootScope.iskpostCallChecked = true;\r\n var vars = url.split('&');\r\n var obj = {}\r\n for (var i = 0; i < vars.length; i++) {\r\n Ok\r\n var pair = vars[i].split('=');\r\n obj[pair[0]] = pair[1]\r\n }\r\n $rootScope.KpostDetails = obj\r\n $location.path('/logIn');\r\n // $state.go('logIn')\r\n }\r\n\r\n $rootScope.$on(\"$stateChangeStart\", function(event, toState, toParams, fromState, fromParams) {\r\n $rootScope.previousState = fromState.name;\r\n if (toState.name == \"logIn\") {\r\n UrlCall();\r\n } else {\r\n if (!$rootScope.isAuth && toState.name != 'login') {\r\n // User isn’t authenticated\r\n dialogs.notify('Invalid Access', 'Either your session expired or you are logged out.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n $rootScope.logout();\r\n event.preventDefault();\r\n } else {\r\n // If user authenticated\r\n // for each state retrive permitted action list of the user.\r\n //$timeout(function() {\r\n $rootScope.menuList = JSON.parse($window.localStorage.getItem('userMenus'));\r\n var menuList = flatten($rootScope.menuList);\r\n $rootScope.ActiveMenu = lodash.head(lodash.filter(menuList, {\r\n 'MenuUrl': toState.name\r\n }));\r\n //}, 60);\r\n }\r\n }\r\n\r\n });\r\n\r\n $rootScope.dataURItoBlob = function(dataURI) {\r\n var binary = window.atob(dataURI.split(',')[1]);\r\n var array = [];\r\n for (var i = 0; i < binary.length; i++) {\r\n array.push(binary.charCodeAt(i));\r\n }\r\n var blob = new Blob([new Uint8Array(array)], {\r\n type: 'image/jpeg'\r\n });\r\n var imageUploadkpost = new FormData();\r\n imageUploadkpost.append('uploadedfile', blob, 'KpostTestImage.jpeg');\r\n return imageUploadkpost;\r\n }\r\n\r\n\r\n $rootScope.fileUpload = function(formData, sender, receiver, callback) {\r\n KPostBoxService.UploadFile(formData, sender, receiver).then(function(res) {\r\n setTimeout(4000);\r\n if (res.status === 200) {\r\n $rootScope.UserSendKpost = false;\r\n $rootScope.file = false;\r\n $rootScope.path = res.data.slice(21, res.data.length)\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n // $rootScope.shareFile = function (sharefile, sender, receiver) {\r\n // var blob = dataURItoBlob('data:image/jpeg;charset=utf-8;base64,'+sharefile);\r\n // var date =new Date();\r\n // var file = new File([blob], 'KpostTestImage.jpeg', { type: \"image/jpeg;charset=utf-8\", lastModified: date.getTime() });\r\n\r\n // var pdfUploadkpost = new FormData();\r\n\r\n // pdfUploadkpost.append('uploadedfile', file)\r\n // var xhttp = new XMLHttpRequest();\r\n // xhttp.onreadystatechange = function () {\r\n // if (this.readyState == 4 && this.status == 200) {\r\n // var path = this.responseText.slice(21, this.responseText.length)\r\n // $rootScope.path = path;\r\n // }\r\n // };\r\n // xhttp.open('POST', 'https://kpost.in:8282/PhPweBaCcEsS/katchup/katchupfileupload.php?sender=' + sender + '&receiver=' + receiver, false);// LINE ADDED\r\n // xhttp.send(pdfUploadkpost);\r\n // };\r\n\r\n $rootScope.checkPermission = function(actionName) {\r\n var res = lodash.filter($rootScope.ActiveMenu.MenuAction, {\r\n 'ActionName': actionName\r\n })\r\n if (res.length > 0)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n function flatten(menuList) {\r\n return lodash.flatMap(menuList, function(menu) {\r\n return menu.SubMenuItems.length > 0 ? flatten(menu.SubMenuItems) : menu;\r\n });\r\n }\r\n\r\n $rootScope.openSelectCompanyModal = function() {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'Select Company',\r\n ariaDescribedBy: 'Select Company',\r\n templateUrl: 'app/pages/user/userModals/selectCompanyModal.html',\r\n controller: 'SelectCompanyModalCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false\r\n // resolve: {\r\n // items: function () {\r\n // return $ctrl.items;\r\n // }\r\n // }\r\n });\r\n modalInstance.result.then(function(selectedItem) {\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n $rootScope.openSelectProjectModal = function() {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'Select Project',\r\n ariaDescribedBy: 'Select Project',\r\n templateUrl: 'app/pages/user/userModals/selectProjectModal.html',\r\n controller: 'SelectProjectModalCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false\r\n // resolve: {\r\n // items: function () {\r\n // return $ctrl.items;\r\n // }\r\n // }\r\n });\r\n modalInstance.result.then(function(selectedItem) {\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n $rootScope.logout = function() {\r\n AuthenticationService.logout();\r\n $rootScope.iskpostCallChecked = false;\r\n $rootScope.IsVisible = false;\r\n $state.go('login');\r\n }\r\n $rootScope.IsVisible = false;\r\n\r\n\r\n\r\n // Kpost New Tab Open Code - 1//\r\n\r\n $rootScope.GetKpost = function($sce) {\r\n debugger;\r\n var vm = this;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var ActionBy = vm.loggedUser.UserId\r\n UserService.GetKpostLogin(ActionBy).then(function(res) {\r\n if (res.status === 200) {\r\n vm.KpostDetail = res.data;\r\n\r\n if (vm.KpostDetail != null) {\r\n\r\n $rootScope.IsVisible = $rootScope.IsVisible ? false : true;\r\n\r\n // $window.open('http://192.168.2.24:4113/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password, '_blank');\r\n $window.open('http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password, '_blank');\r\n //$window.location = 'http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password\r\n //console.log( $rootScope.kpostUrl );\r\n\r\n } else {\r\n dialogs.notify('Info', 'KpostId is not generated', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"User\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Try Again', \"User\");\r\n });\r\n }\r\n\r\n\r\n //** End -1 **/\r\n\r\n // Kpost New Dev Iframe ** //\r\n\r\n // $rootScope.GetKpost = function ($sce) {\r\n // debugger;\r\n // var vm = this;\r\n // vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n // var ActionBy = vm.loggedUser.UserId\r\n // UserService.GetKpostLogin(ActionBy).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.KpostDetail = res.data;\r\n\r\n // if (vm.KpostDetail != null) {\r\n\r\n // $rootScope.IsVisible = $rootScope.IsVisible ? false : true;\r\n\r\n // $rootScope.UserKpost = vm.KpostDetail.KpostId;\r\n\r\n // $rootScope.PassKpost = vm.KpostDetail.Password;\r\n\r\n\r\n\r\n // $rootScope.kpostUrl = $sce.trustAsResourceUrl('http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password)\r\n\r\n\r\n // //http://cms.indiakpost.com/login?username=hopgchecvlq01&password=123456\r\n // // $window.open('http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password, '_blank');\r\n // //$window.location = 'http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password\r\n // //$rootScope.kpostUrl= $sce.trustAsResourceUrl('http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password)\r\n // //$rootScope.kpostUrl = 'http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password;\r\n // //console.log( $rootScope.kpostUrl );\r\n\r\n // } else {\r\n // dialogs.notify('Info', 'KpostId is not generated', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"User\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Try Again', \"User\");\r\n // });\r\n // }\r\n\r\n //**** End Iframe */\r\n\r\n $rootScope.differenceInDays = function(startDate, endDate) {\r\n return (endDate - startDate) / (1000 * 60 * 60 * 24);\r\n }\r\n\r\n $rootScope.showToaster = function(type, msg, title) {\r\n var toastConfig = {\r\n \"autoDismiss\": true,\r\n \"positionClass\": \"toast-top-right\",\r\n \"type\": \"\",\r\n \"timeOut\": \"3000\",\r\n \"extendedTimeOut\": \"1000\",\r\n \"allowHtml\": true,\r\n \"closeButton\": true,\r\n \"tapToDismiss\": true,\r\n \"progressBar\": false,\r\n \"newestOnTop\": true,\r\n \"maxOpened\": 0,\r\n \"preventDuplicates\": true,\r\n \"preventOpenDuplicates\": true\r\n };\r\n\r\n switch (type) {\r\n case 'error':\r\n toastConfig.type = 'error';\r\n toastr.error(msg, title, toastConfig);\r\n break;\r\n case 'info':\r\n toastConfig.type = 'error';\r\n toastr.info(msg, title, toastConfig);\r\n break;\r\n case 'success':\r\n toastConfig.type = 'success';\r\n toastr.success(msg, title, toastConfig);\r\n break;\r\n case 'warning':\r\n toastConfig.type = 'warning';\r\n toastr.warning(msg, title, toastConfig);\r\n break;\r\n default:\r\n toastConfig.type = 'info';\r\n toastr.info(msg, title, toastConfig);\r\n break;\r\n }\r\n }\r\n }\r\n ])\r\n // /** @ngInject */\r\n // .factory('httpRequestInterceptor', ['$rootScope', function ($rootScope) {\r\n // return {\r\n // request: function (config) {\r\n // config.headers[\"Token\"] = $rootScope.token;\r\n // if ($rootScope.ActiveMenu)\r\n // config.headers[\"MenuId\"] = $rootScope.ActiveMenu.MenuId;\r\n // config.headers[\"UserId\"] = $rootScope.userId;\r\n // return config;\r\n // }\r\n // };\r\n // }])\r\n\r\n/** @ngInject */\r\n.factory('httpRequestInterceptor', ['$rootScope', function($rootScope) {\r\n return {\r\n request: function(config) {\r\n if ($rootScope.UserSendKpost != undefined && $rootScope.UserSendKpost == true) {\r\n if ($rootScope.file) {\r\n config.headers = {};\r\n }\r\n // $rootScope.UserSendKpost = false;\r\n } else {\r\n\r\n config.headers[\"Token\"] = $rootScope.token;\r\n if ($rootScope.ActiveMenu)\r\n config.headers[\"MenuId\"] = $rootScope.ActiveMenu.MenuId;\r\n config.headers[\"UserId\"] = $rootScope.userId;\r\n }\r\n // console.log(\"config\"+JSON.stringify(config));\r\n return config;\r\n }\r\n };\r\n}])\r\n\r\n.filter('propsFilter', function() {\r\n return function(items, props) {\r\n var out = [];\r\n\r\n if (angular.isArray(items)) {\r\n var keys = Object.keys(props);\r\n\r\n items.forEach(function(item) {\r\n var itemMatches = false;\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var prop = keys[i];\r\n var text = props[prop].toLowerCase();\r\n if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {\r\n itemMatches = true;\r\n break;\r\n }\r\n }\r\n if (itemMatches) {\r\n out.push(item);\r\n }\r\n });\r\n } else {\r\n // Let the output be the input untouched\r\n out = items;\r\n }\r\n return out;\r\n };\r\n});\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .config(config);\r\n\r\n /** @ngInject */\r\n function config(baConfigProvider, colorHelper, $provide) {\r\n $provide.decorator('$uiViewScroll', uiViewScrollDecorator);\r\n //baConfigProvider.changeTheme({blur: true});\r\n //\r\n //baConfigProvider.changeColors({\r\n // default: 'rgba(#000000, 0.2)',\r\n // defaultText: '#ffffff',\r\n // dashboard: {\r\n // white: '#ffffff',\r\n // },\r\n //});\r\n }\r\n\r\n /** @ngInject */\r\n function uiViewScrollDecorator($delegate, $anchorScroll, baUtil) {\r\n return function (uiViewElement) {\r\n if (baUtil.hasAttr(uiViewElement, \"autoscroll-body-top\")) {\r\n $anchorScroll();\r\n } else {\r\n $delegate(uiViewElement);\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n var basic = {\r\n default: '#ffffff',\r\n defaultText: '#666666',\r\n border: '#dddddd',\r\n borderDark: '#aaaaaa',\r\n };\r\n\r\n // main functional color scheme\r\n var colorScheme = {\r\n primary: '#209e91',\r\n info: '#2dacd1',\r\n success: '#90b900',\r\n warning: '#dfb81c',\r\n danger: '#e85656',\r\n };\r\n\r\n // dashboard colors for charts\r\n var dashboardColors = {\r\n blueStone: '#005562',\r\n surfieGreen: '#0e8174',\r\n silverTree: '#6eba8c',\r\n gossip: '#b9f2a1',\r\n white: '#10c4b5',\r\n };\r\n\r\n angular.module('KPMES.theme')\r\n .provider('baConfig', configProvider);\r\n\r\n /** @ngInject */\r\n function configProvider(colorHelper) {\r\n var conf = {\r\n theme: {\r\n blur: false,\r\n },\r\n colors: {\r\n default: basic.default,\r\n defaultText: basic.defaultText,\r\n border: basic.border,\r\n borderDark: basic.borderDark,\r\n\r\n primary: colorScheme.primary,\r\n info: colorScheme.info,\r\n success: colorScheme.success,\r\n warning: colorScheme.warning,\r\n danger: colorScheme.danger,\r\n\r\n primaryLight: colorHelper.tint(colorScheme.primary, 30),\r\n infoLight: colorHelper.tint(colorScheme.info, 30),\r\n successLight: colorHelper.tint(colorScheme.success, 30),\r\n warningLight: colorHelper.tint(colorScheme.warning, 30),\r\n dangerLight: colorHelper.tint(colorScheme.danger, 30),\r\n\r\n primaryDark: colorHelper.shade(colorScheme.primary, 15),\r\n infoDark: colorHelper.shade(colorScheme.info, 15),\r\n successDark: colorHelper.shade(colorScheme.success, 15),\r\n warningDark: colorHelper.shade(colorScheme.warning, 15),\r\n dangerDark: colorHelper.shade(colorScheme.danger, 15),\r\n\r\n dashboard: {\r\n blueStone: dashboardColors.blueStone,\r\n surfieGreen: dashboardColors.surfieGreen,\r\n silverTree: dashboardColors.silverTree,\r\n gossip: dashboardColors.gossip,\r\n white: dashboardColors.white,\r\n },\r\n }\r\n };\r\n\r\n conf.changeTheme = function(theme) {\r\n angular.merge(conf.theme, theme)\r\n };\r\n\r\n conf.changeColors = function(colors) {\r\n angular.merge(conf.colors, colors)\r\n };\r\n\r\n conf.$get = function () {\r\n delete conf.$get;\r\n return conf;\r\n };\r\n return conf;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n var IMAGES_ROOT = 'assets/img/';\r\n\r\n angular.module('KPMES.theme')\r\n .constant('layoutSizes', {\r\n resWidthCollapseSidebar: 1200,\r\n resWidthHideSidebar: 500\r\n })\r\n .constant('layoutPaths', {\r\n images: {\r\n root: IMAGES_ROOT,\r\n profile: IMAGES_ROOT + 'app/profile/',\r\n amMap: 'assets/img/theme/vendor/ammap//dist/ammap/images/',\r\n amChart: 'assets/img/theme/vendor/amcharts/dist/amcharts/images/'\r\n }\r\n })\r\n .constant('colorHelper', {\r\n tint: function(color, weight) {\r\n return mix('#ffffff', color, weight);\r\n },\r\n shade: function(color, weight) {\r\n return mix('#000000', color, weight);\r\n },\r\n });\r\n\r\n function shade(color, weight) {\r\n return mix('#000000', color, weight);\r\n }\r\n\r\n function tint(color, weight) {\r\n return mix('#ffffff', color, weight);\r\n }\r\n\r\n //SASS mix function\r\n function mix(color1, color2, weight) {\r\n // convert a decimal value to hex\r\n function d2h(d) {\r\n return d.toString(16);\r\n }\r\n // convert a hex value to decimal\r\n function h2d(h) {\r\n return parseInt(h, 16);\r\n }\r\n\r\n var result = \"#\";\r\n for(var i = 1; i < 7; i += 2) {\r\n var color1Part = h2d(color1.substr(i, 2));\r\n var color2Part = h2d(color2.substr(i, 2));\r\n var resultPart = d2h(Math.floor(color2Part + (color1Part - color2Part) * (weight / 100.0)));\r\n result += ('0' + resultPart).slice(-2);\r\n }\r\n return result;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .run(themeRun);\r\n\r\n /** @ngInject */\r\n function themeRun($timeout, $rootScope, layoutPaths, preloader, $q, baSidebarService, themeLayoutSettings) {\r\n var whatToWait = [\r\n preloader.loadAmCharts(),\r\n $timeout(3000)\r\n ];\r\n\r\n var theme = themeLayoutSettings;\r\n if (theme.blur) {\r\n if (theme.mobile) {\r\n whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg-mobile.jpg'));\r\n } else {\r\n whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg.jpg'));\r\n whatToWait.unshift(preloader.loadImg(layoutPaths.images.root + 'blur-bg-blurred.jpg'));\r\n }\r\n }\r\n\r\n $q.all(whatToWait).then(function () {\r\n $rootScope.$pageFinishedLoading = true;\r\n });\r\n\r\n $timeout(function () {\r\n if (!$rootScope.$pageFinishedLoading) {\r\n $rootScope.$pageFinishedLoading = true;\r\n }\r\n }, 7000);\r\n\r\n $rootScope.$baSidebarService = baSidebarService;\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .service('themeLayoutSettings', themeLayoutSettings);\r\n\r\n /** @ngInject */\r\n function themeLayoutSettings(baConfig) {\r\n var isMobile = (/android|webos|iphone|ipad|ipod|blackberry|windows phone/).test(navigator.userAgent.toLowerCase());\r\n var mobileClass = isMobile ? 'mobile' : '';\r\n var blurClass = baConfig.theme.blur ? 'blur-theme' : '';\r\n angular.element(document.body).addClass(mobileClass).addClass(blurClass);\r\n\r\n return {\r\n blur: baConfig.theme.blur,\r\n mobile: isMobile,\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 15.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .config(toastrLibConfig);\r\n\r\n /** @ngInject */\r\n function toastrLibConfig(toastrConfig) {\r\n angular.extend(toastrConfig, {\r\n closeButton: true,\r\n closeHtml: '',\r\n timeOut: 5000,\r\n autoDismiss: false,\r\n containerId: 'toast-container',\r\n maxOpened: 0,\r\n newestOnTop: true,\r\n positionClass: 'toast-top-right',\r\n preventDuplicates: false,\r\n preventOpenDuplicates: false,\r\n target: 'body'\r\n });\r\n }\r\n})();\n/**\r\n * Change top \"Daily Downloads\", \"Active Users\" values with animation effect\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('animatedChange', animatedChange);\r\n\r\n /** @ngInject */\r\n function animatedChange($timeout) {\r\n return {\r\n link: function (scope, element) {\r\n $timeout(function () {\r\n var newValue = element.attr('new-value');\r\n var oldvalue = parseInt(element.html());\r\n\r\n function changeValue(val) {\r\n $timeout(function () {\r\n element.html(val);\r\n }, 30);\r\n }\r\n\r\n if (newValue > oldvalue) {\r\n for (var i = oldvalue; i <= newValue; i++) {\r\n changeValue(i);\r\n }\r\n } else {\r\n for (var j = oldvalue; j >= newValue; j--) {\r\n changeValue(j);\r\n }\r\n }\r\n $timeout(function () {\r\n element.next().find('i').addClass('show-arr');\r\n }, 500);\r\n }, 3500);\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * Auto expand textarea field\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('autoExpand', autoExpand);\r\n\r\n /** @ngInject */\r\n function autoExpand() {\r\n return {\r\n restrict: 'A',\r\n link: function ($scope, elem) {\r\n elem.bind('keydown', function ($event) {\r\n var element = $event.target;\r\n $(element).height(0);\r\n var height = $(element)[0].scrollHeight;\r\n height = (height < 16) ? 16 : height;\r\n $(element).height(height);\r\n });\r\n\r\n // Expand the textarea as soon as it is added to the DOM\r\n setTimeout(function () {\r\n var element = elem;\r\n $(element).height(0);\r\n var height = $(element)[0].scrollHeight;\r\n height = (height < 16) ? 16 : height;\r\n $(element).height(height);\r\n }, 0)\r\n }\r\n };\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('autoFocus', autoFocus);\r\n\r\n /** @ngInject */\r\n function autoFocus($timeout, $parse) {\r\n return {\r\n link: function (scope, element, attrs) {\r\n var model = $parse(attrs.autoFocus);\r\n scope.$watch(model, function (value) {\r\n if (value === true) {\r\n $timeout(function () {\r\n element[0].focus();\r\n element[0].select();\r\n });\r\n }\r\n });\r\n element.bind('blur', function () {\r\n scope.$apply(model.assign(scope, false));\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('includeWithScope', includeWithScope);\r\n\r\n /** @ngInject */\r\n function includeWithScope() {\r\n return {\r\n restrict: 'AE',\r\n templateUrl: function(ele, attrs) {\r\n return attrs.includeWithScope;\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 22.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('ionSlider', ionSlider);\r\n\r\n /** @ngInject */\r\n function ionSlider($timeout) {\r\n return {\r\n restrict: 'EA',\r\n template: '
',\r\n replace: true,\r\n scope: {\r\n min: '=',\r\n max: '=',\r\n type: '@',\r\n prefix: '@',\r\n maxPostfix: '@',\r\n prettify: '=',\r\n prettifySeparator: '@',\r\n grid: '=',\r\n gridMargin: '@',\r\n postfix: '@',\r\n step: '@',\r\n hideMinMax: '@',\r\n hideFromTo: '@',\r\n from: '=',\r\n to: '=',\r\n disable: '=',\r\n onChange: '=',\r\n onFinish: '=',\r\n values: '=',\r\n timeout: '@'\r\n },\r\n link: function ($scope, $element) {\r\n $element.ionRangeSlider({\r\n min: $scope.min,\r\n max: $scope.max,\r\n type: $scope.type,\r\n prefix: $scope.prefix,\r\n maxPostfix: $scope.maxPostfix,\r\n prettify_enabled: $scope.prettify,\r\n prettify_separator: $scope.prettifySeparator,\r\n grid: $scope.grid,\r\n gridMargin: $scope.gridMargin,\r\n postfix: $scope.postfix,\r\n step: $scope.step,\r\n hideMinMax: $scope.hideMinMax,\r\n hideFromTo: $scope.hideFromTo,\r\n from: $scope.from,\r\n to: $scope.to,\r\n disable: $scope.disable,\r\n onChange: $scope.onChange,\r\n onFinish: $scope.onFinish,\r\n values: $scope.values\r\n });\r\n\r\n $scope.$watch('min', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({min: value});\r\n });\r\n }, true);\r\n $scope.$watch('max', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({max: value});\r\n });\r\n });\r\n $scope.$watch('from', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({from: value});\r\n });\r\n });\r\n $scope.$watch('to', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({to: value});\r\n });\r\n });\r\n $scope.$watch('disable', function (value) {\r\n $timeout(function () {\r\n $element.data(\"ionRangeSlider\").update({disable: value});\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n\r\n \r\n\r\n .directive('myDirectory', ['$parse', function ($parse) {\r\n function link(scope, element, attrs) {\r\n var model = $parse(attrs.myDirectory);\r\n element.on('change', function (event) {\r\n scope.data = []; //Clear shared scope in case user reqret on the selection\r\n model(scope, { file: event.target.files });\r\n\r\n });\r\n };\r\n return {\r\n link: link\r\n }\r\n }])\r\n .directive('ngFileSelect', ngFileSelect);\r\n\r\n /** @ngInject */\r\n function ngFileSelect() {\r\n return {\r\n link: function ($scope, el) {\r\n el.bind('change', function (e) {\r\n $scope.file = (e.srcElement || e.target).files[0];\r\n $scope.getFile();\r\n })\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('scrollPosition', scrollPosition);\r\n\r\n /** @ngInject */\r\n function scrollPosition() {\r\n return {\r\n scope: {\r\n scrollPosition: '=',\r\n maxHeight: '='\r\n },\r\n link: function (scope) {\r\n $(window).on('scroll', function() {\r\n var scrollTop = $(window).scrollTop() > scope.maxHeight;\r\n if (scrollTop !== scope.prevScrollTop) {\r\n scope.$apply(function() {\r\n scope.scrollPosition = scrollTop;\r\n });\r\n }\r\n scope.prevScrollTop = scrollTop;\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('trackWidth', trackWidth);\r\n\r\n /** @ngInject */\r\n function trackWidth() {\r\n return {\r\n scope: {\r\n trackWidth: '=',\r\n minWidth: '=',\r\n },\r\n link: function (scope, element) {\r\n scope.trackWidth = $(element).width() < scope.minWidth;\r\n scope.prevTrackWidth = scope.trackWidth;\r\n\r\n $(window).resize(function() {\r\n var trackWidth = $(element).width() < scope.minWidth;\r\n if (trackWidth !== scope.prevTrackWidth) {\r\n scope.$apply(function() {\r\n scope.trackWidth = trackWidth;\r\n });\r\n }\r\n scope.prevTrackWidth = trackWidth;\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * Animated load block\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('zoomIn', zoomIn);\r\n\r\n /** @ngInject */\r\n function zoomIn($timeout, $rootScope) {\r\n return {\r\n restrict: 'A',\r\n link: function ($scope, elem) {\r\n var delay = 1000;\r\n\r\n if ($rootScope.$pageFinishedLoading) {\r\n delay = 100;\r\n }\r\n\r\n $timeout(function () {\r\n elem.removeClass('full-invisible');\r\n elem.addClass('animated zoomIn');\r\n }, delay);\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author n.poltoratsky\r\n * created on 27.06.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .factory('baProgressModal', baProgressModal);\r\n\r\n /** @ngInject */\r\n function baProgressModal($uibModal) {\r\n var methods = {};\r\n var progress = 0;\r\n var max = 100;\r\n var opened = false;\r\n\r\n return {\r\n setProgress: function (value) {\r\n if (value > max) {\r\n throw Error('Progress can\\'t be greater than max');\r\n }\r\n progress = value;\r\n },\r\n getProgress: function () {\r\n return progress;\r\n },\r\n open: function() {\r\n if (!opened) {\r\n methods = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/pages/ui/modals/progressModal/progressModal.html',\r\n size: 'sm',\r\n keyboard: false,\r\n backdrop: 'static'\r\n });\r\n opened = true;\r\n } else {\r\n throw Error('Progress modal opened now');\r\n }\r\n\r\n },\r\n close: function() {\r\n if (opened) {\r\n methods.close();\r\n opened = false;\r\n } else {\r\n throw Error('Progress modal is not active');\r\n }\r\n\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 03.05.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .service('baUtil', baUtil);\r\n\r\n /** @ngInject */\r\n function baUtil() {\r\n\r\n this.isDescendant = function(parent, child) {\r\n var node = child.parentNode;\r\n while (node != null) {\r\n if (node == parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n };\r\n\r\n this.hexToRGB = function(hex, alpha) {\r\n var r = parseInt( hex.slice(1,3), 16 );\r\n var g = parseInt( hex.slice(3,5), 16 );\r\n var b = parseInt( hex.slice(5,7), 16 );\r\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')';\r\n };\r\n\r\n this.hasAttr = function (elem, attrName) {\r\n var attr = $(elem).attr(attrName);\r\n return (typeof attr !== typeof undefined && attr !== false);\r\n }\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .service('fileReader', fileReader);\r\n\r\n /** @ngInject */\r\n function fileReader($q) {\r\n var onLoad = function(reader, deferred, scope) {\r\n return function () {\r\n scope.$apply(function () {\r\n deferred.resolve(reader.result);\r\n });\r\n };\r\n };\r\n\r\n var onError = function (reader, deferred, scope) {\r\n return function () {\r\n scope.$apply(function () {\r\n deferred.reject(reader.result);\r\n });\r\n };\r\n };\r\n\r\n var onProgress = function(reader, scope) {\r\n return function (event) {\r\n scope.$broadcast('fileProgress',\r\n {\r\n total: event.total,\r\n loaded: event.loaded\r\n });\r\n };\r\n };\r\n\r\n var getReader = function(deferred, scope) {\r\n var reader = new FileReader();\r\n reader.onload = onLoad(reader, deferred, scope);\r\n reader.onerror = onError(reader, deferred, scope);\r\n reader.onprogress = onProgress(reader, scope);\r\n return reader;\r\n };\r\n\r\n var readAsDataURL = function (file, scope) {\r\n var deferred = $q.defer();\r\n\r\n var reader = getReader(deferred, scope);\r\n reader.readAsDataURL(file);\r\n\r\n return deferred.promise;\r\n };\r\n\r\n return {\r\n readAsDataUrl: readAsDataURL\r\n };\r\n }\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 3/1/16\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .service('preloader', preloader);\r\n\r\n /** @ngInject */\r\n function preloader($q) {\r\n return {\r\n loadImg: function (src) {\r\n var d = $q.defer();\r\n var img = new Image();\r\n img.src = src;\r\n img.onload = function(){\r\n d.resolve();\r\n };\r\n return d.promise;\r\n },\r\n loadAmCharts : function(){\r\n var d = $q.defer();\r\n AmCharts.ready(function(){\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n }\r\n }\r\n\r\n})();\n/**\r\n * @author a.demeshko\r\n * created on 12/21/15\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .service('stopableInterval', stopableInterval);\r\n\r\n /** @ngInject */\r\n function stopableInterval($window) {\r\n return {\r\n start: function (interval, calback, time) {\r\n function startInterval() {\r\n return interval(calback, time);\r\n }\r\n\r\n var i = startInterval();\r\n\r\n angular.element($window).bind('focus', function () {\r\n if (i) interval.cancel(i);\r\n i = startInterval();\r\n });\r\n\r\n angular.element($window).bind('blur', function () {\r\n if (i) interval.cancel(i);\r\n });\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.accountMaster')\r\n .controller('AccountMasterCtrl', AccountMasterCtrl);\r\n\r\n /** @ngInject */\r\n function AccountMasterCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, projectCreationService, HolidayMasterService, StateService, CountryService, AuthenticationService, CompanyService, AccountMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.Account = {};\r\n\r\n vm.SaveAccountMaster = SaveAccountMaster;\r\n vm.editAccountMaster = editAccountMaster;\r\n\r\n vm.RemoveAccountMaster = RemoveAccountMaster;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n AccountMasterService.getAllAccountMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AccountMaterlist = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n AccountMasterService.getAllCurrency($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.Currencytypelist = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n\r\n\r\n AccountMasterService.getAllTransaction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TransactionTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n\r\n function RemoveAccountMaster(Account) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n AccountMasterService.RemoveAccountMaster(Account.Act_MasterId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete AccountMaster Successfully', \"State\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete AccountMaster \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete State. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function editAccountMaster(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.Account.Balance = row.Balance;\r\n\r\n vm.Account = angular.copy(row);\r\n\r\n // vm.holiday.Date = new Date(vm.holiday.HolidayDate + \"/\" + vm.holiday.HolidayMonth + \"/\" + vm.holiday.HolidayYear);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == vm.Account.CompanyId) {\r\n vm.Account.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n\r\n for (var i in vm.Currencytypelist) {\r\n if (vm.Currencytypelist[i].CurrencyTypeId === vm.Account.CurrencyTypeId) {\r\n vm.Account.CurrencyTypeId = vm.Currencytypelist[i]\r\n }\r\n }\r\n for (var i in vm.TransactionTypeList) {\r\n if (vm.TransactionTypeList[i].TransactionTypeId === vm.Account.TxnType) {\r\n vm.Account.TransactionTypeId = vm.TransactionTypeList[i]\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n function SaveAccountMaster() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Account = {\r\n CompanyId: vm.Account.selectedCompany.CompanyId,\r\n Balance: vm.Account.Balance,\r\n CurrencyTypeId: vm.Account.CurrencyTypeId.CurrencyTypeId,\r\n TransactionTypeId: vm.Account.TransactionTypeId.TransactionTypeId,\r\n }\r\n if (!vm.isEditing) {\r\n Account.CreatedBy = logggedUser.UserId\r\n AccountMasterService.AddAccountMaster(Account).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n Account.ModifiedBy = logggedUser.UserId\r\n Account.Act_MasterId = vm.Account.Act_MasterId\r\n AccountMasterService.editAccountMaster(Account).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n\r\n vm.Account = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }\r\n\r\n function resetForm() {\r\n vm.AccountForm.$setUntouched();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.approvalOfCompletedWork')\r\n .controller('ApprovalOfCompletedWorkCtrl', ApprovalOfCompletedWorkCtrl);\r\n\r\n function ApprovalOfCompletedWorkCtrl($rootScope, $scope, lodash, dialogs, $uibModal, $http, $state, $window, AuthenticationService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n \r\n $scope.photos = [\r\n {src: 'http://farm9.staticflickr.com/8042/7918423710_e6dd168d7c_b.jpg', desc: 'Image 01'},\r\n {src: 'http://farm9.staticflickr.com/8449/7918424278_4835c85e7a_b.jpg', desc: 'Image 02'},\r\n {src: 'http://farm9.staticflickr.com/8457/7918424412_bb641455c7_b.jpg', desc: 'Image 03'},\r\n {src: 'http://farm9.staticflickr.com/8179/7918424842_c79f7e345c_b.jpg', desc: 'Image 04'},\r\n {src: 'http://farm9.staticflickr.com/8315/7918425138_b739f0df53_b.jpg', desc: 'Image 05'},\r\n {src: 'http://farm9.staticflickr.com/8461/7918425364_fe6753aa75_b.jpg', desc: 'Image 06'}\r\n ];\r\n // initial image index\r\n $scope._Index = 0;\r\n // if a current image is the same as requested image\r\n $scope.isActive = function (index) {\r\n return $scope._Index === index;\r\n };\r\n // show prev image\r\n $scope.showPrev = function () {\r\n $scope._Index = ($scope._Index > 0) ? --$scope._Index : $scope.photos.length - 1;\r\n };\r\n // show next image\r\n $scope.showNext = function () {\r\n $scope._Index = ($scope._Index < $scope.photos.length - 1) ? ++$scope._Index : 0;\r\n };\r\n // show a certain image\r\n $scope.showPhoto = function (index) {\r\n $scope._Index = index;\r\n };\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.area')\r\n .controller('AreaCtrl', AreaCtrl);\r\n\r\n /** @ngInject */\r\n function AreaCtrl($rootScope, lodash, dialogs, $http, AreaService, CountryService, StateService, CityService, AuthenticationService, $window) {\r\n var vm = this;\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.AreaList = [];\r\n $rootScope.isLogin = false;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getTalukByCity = getTalukByCity;\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editArea = editArea;\r\n vm.removeArea = removeArea;\r\n vm.SaveArea = SaveArea;\r\n vm.changeActiveArea = changeActiveArea;\r\n // vm.ShowAreaReport = ShowAreaReport;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n vm.IsAdding = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n Init();\r\n ////////////////\r\n\r\n function Init() {\r\n AreaService.getAllArea().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n GetAllTaluk();\r\n vm.isLoading = false;\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Area\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Area\");\r\n });\r\n\r\n }\r\n function GetAllTaluk() {\r\n AreaService.GetAllTaluk().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllTalukList = res.data;\r\n lodash.forEach(vm.AreaList, function (a) {\r\n lodash.forEach(vm.AllTalukList, function (e) {\r\n if (a.TalukId == e.TalukId)\r\n a.TalukName = e.TalukName\r\n })\r\n })\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n function getStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.area.selectedCountry.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.StateList = [];\r\n vm.area.selectedState = null;\r\n\r\n\r\n }\r\n }\r\n\r\n function getCityListByStateId(StateId, callback) {\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.area.selectedState.StateName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.CityList = [];\r\n vm.area.selectedCity = null;\r\n }\r\n }\r\n\r\n function getTalukByCity(callBack) {\r\n var obj = {\r\n CountryId: vm.area.selectedCountry.CountryId,\r\n StateId: vm.area.selectedState.StateId,\r\n CityId: vm.area.selectedCity.CityId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n AreaService.GetAllTalukByCity(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TalukList = res.data;\r\n vm.IsAdding = false;\r\n vm.isLoading = false;\r\n if (callBack)\r\n callBack();\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.area = {};\r\n\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.area = {};\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.areaForm.$setUntouched();\r\n }\r\n\r\n function editArea(area) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.area = angular.copy(area);\r\n vm.area.selectedCity = {};\r\n vm.area.selectedCity.CityId = area.CityId\r\n getStateListByCountryId(area.CountryId, function () {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === area.CountryId) {\r\n vm.area.selectedCountry = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === area.StateId) {\r\n vm.area.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(area.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === area.CityId) {\r\n vm.area.selectedCity = vm.CityList[c];\r\n vm.isAsyn = true;\r\n }\r\n }\r\n });\r\n\r\n getTalukByCity(function (e) {\r\n lodash.forEach(vm.TalukList, function (e) {\r\n if (e.TalukId == area.TalukId)\r\n vm.area.selectedTaluk = e\r\n })\r\n vm.isAsyn = false;\r\n })\r\n });\r\n\r\n }\r\n\r\n function removeArea(area) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n AreaService.removeArea(area.AreaId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Area Successfully', \"Area\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Area\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Area.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.SaveTaluk = function () {\r\n var obj = {\r\n CountryId: vm.area.selectedCountry.CountryId,\r\n StateId: vm.area.selectedState.StateId,\r\n CityId: vm.area.selectedCity.CityId,\r\n TalukName: vm.TalukName,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n AreaService.AddTaluk(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Taluk Master\");\r\n vm.IsAdding = false;\r\n vm.TalukName = null;\r\n getTalukByCity();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Taluk Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n\r\n vm.RemoveTaluk = function (Id) {\r\n\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to Delete this WorkOrder',\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n AreaService.RemoveTaluk(Id).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Taluk Master\");\r\n vm.IsAdding = false;\r\n vm.TalukName = null;\r\n vm.area.selectedTaluk = null;\r\n getTalukByCity();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Taluk Master\");\r\n vm.isFormOpen = true;\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n function SaveArea(area) {\r\n\r\n if (!vm.isEditing) {\r\n var area = {\r\n CountryId: vm.area.selectedCountry.CountryId,\r\n StateId: vm.area.selectedState.StateId,\r\n CityId: vm.area.selectedCity.CityId,\r\n TalukId: vm.area.selectedTaluk.TalukId,\r\n AreaName: vm.area.AreaName,\r\n AreaCode: vm.area.AreaCode,\r\n PinCode: vm.area.Pincode,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n AreaService.AddArea(area).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Area Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Area Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n var area = {\r\n CountryId: vm.area.selectedCountry.CountryId,\r\n StateId: vm.area.selectedState.StateId,\r\n CityId: vm.area.selectedCity.CityId,\r\n TalukId: vm.area.selectedTaluk.TalukId,\r\n AreaName: vm.area.AreaName,\r\n IsActive: vm.area.IsActive,\r\n AreaId: vm.area.AreaId,\r\n PinCode: vm.area.Pincode,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n AreaService.EditArea(area).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Area Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Area Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n function changeActiveArea(area) {\r\n var msg = 'Are sure you want to ' + ((area.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((area.IsActive) ? 'Deactive' : 'Active') + 'Area Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n AreaService.changeActiveArea(area.AreaId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Area\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Change Status Area\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Change Status Area. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n // function ShowAreaReport() {\r\n // vm.isLoading = true;\r\n // AreaService.ShowAreaReport().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ExportPdfData = res.data;\r\n // vm.isLoading = false;\r\n // var a = document.createElement(\"a\");\r\n // document.body.appendChild(a);\r\n // a.style = \"display: none\";\r\n // var blob = new Blob([res.data], {\r\n // type: \"application/pdf\"\r\n // }),\r\n // url = window.URL.createObjectURL(blob);\r\n\r\n // $window.open(url, \"_blank\");\r\n // $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n // Init();\r\n // } else {\r\n // $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n // vm.isLoading = false;\r\n // }\r\n // // vm.isLoading = false;\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n // vm.isLoading = false;\r\n // });\r\n // }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.attendenceDetails')\r\n .controller('AttendenceCtrl', AttendenceCtrl);\r\n\r\n /** @ngInject */\r\n function AttendenceCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, $window,AuthenticationService, AttendenceService) {\r\n var vm = this;\r\n // Pagination code\r\n \r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n // vm.StateList = [];\r\n //Method\r\n\r\n // vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n \r\n vm.attendence = {};\r\n vm.ShowAttendenceDetailsReport = ShowAttendenceDetailsReport;\r\n\r\n vm.attendence.Year = new Date()\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init();\r\n\r\n function Init() {\r\n \r\n }\r\n\r\n \r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.attendence = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.CountryForm.$setUntouched();\r\n }\r\n\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n //Event for Print\r\n function ShowAttendenceDetailsReport() {\r\n\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n AttendenceService.ShowAttendenceDetailsReport().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function ($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function () {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n }\r\n \r\n \r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('WorkOrderDetailsCtrl', WorkOrderDetailsCtrl);\r\n\r\n /** @ngInject */\r\n function WorkOrderDetailsCtrl($http, $rootScope, lodash, dialogs, items, $scope, $uibModalInstance, DirectWorkOrderService) {\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n\r\n $rootScope.isLogin = false;\r\n vm.Total = Total;\r\n vm.ContractorRfqIocaList = [];\r\n // vm.wo = angular.copy(items)\r\n //Method \r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n DirectWorkOrderService.GetRfqDetails(items).then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.WORfqList = res.data;\r\n vm.ContractorRfqTermsandContList = vm.WORfqList.RateDetials.TermsAndConditions;\r\n for (var i in vm.WORfqList.RateDetials.RfqIocaDetails) {\r\n vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl = JSON.parse(vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl)\r\n vm.ContractorRfqIocaList[i] = vm.WORfqList.RateDetials.RfqIocaDetails[i]\r\n vm.Total(vm.ContractorRfqIocaList[i]);\r\n }\r\n // getFinalisedContractor();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n\r\n function Total(row) {\r\n vm.grandTotal = 0;\r\n if (row.UnitRate != undefined && row.Tax != undefined) {\r\n var totalQuantity = row.TotQty;\r\n row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n }\r\n for (var i in vm.ContractorRfqIocaList) {\r\n var totalRate = vm.ContractorRfqIocaList[i].total;\r\n vm.grandTotal += totalRate;\r\n }\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.city')\r\n .controller('CityCtrl', CityCtrl);\r\n\r\n /** @ngInject */\r\n function CityCtrl($rootScope, lodash, dialogs, $http, CityService, CountryService, StateService, AuthenticationService) {\r\n var vm = this;\r\n\r\n \r\n\r\n \r\n \r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.CityList = {};\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.editCity = editCity;\r\n vm.removeCity = removeCity;\r\n vm.SaveCity = SaveCity; \r\n vm.changeActiveCity = changeActiveCity;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n\r\n function Init() {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CityService.getAllCity().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n var objCountry;\r\n CountryService.getActiveCountry(objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"City\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"City\");\r\n });\r\n }\r\n\r\n function getStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data; \r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.city.selectedCountry.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.StateList = [];\r\n vm.city.selectedState = null; \r\n }\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.city = {};\r\n \r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.city = {};\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function editCity(city) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.city = angular.copy(city); \r\n getStateListByCountryId(city.CountryId, function () {\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === city.CountryId) {\r\n vm.city.selectedCountry = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === city.StateId) {\r\n vm.city.selectedState = vm.StateList[c];\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n function removeCity(city) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n CityService.removeCity(city.CityId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete City Successfully', \"City\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete City\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete City. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveCity(city) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.isLoading = true;\r\n if (!vm.isEditing) {\r\n var city = {\r\n CountryId: vm.city.selectedCountry.CountryId,\r\n StateId: vm.city.selectedState.StateId,\r\n CreatedBy: logggedUser.UserId,\r\n CityName: vm.city.CityName\r\n }\r\n CityService.AddCity(city).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"City Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"City Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n var city = {\r\n CountryId: vm.city.selectedCountry.CountryId,\r\n StateId: vm.city.selectedState.StateId,\r\n ModifiedBy: logggedUser.UserId,\r\n CityId: vm.city.CityId,\r\n IsActive: vm.city.IsActive,\r\n CityName: vm.city.CityName\r\n }\r\n CityService.EditCity(city).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"City Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"City Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n\r\n }\r\n vm.isLoading = false;\r\n }\r\n\r\n function changeActiveCity(city) {\r\n var msg = 'Are sure you want to ' + ((city.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((city.IsActive) ? 'Deactive' : 'Active') + 'City Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n CityService.changeActiveCity(city.CityId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"City\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Change Status City\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Change Status City. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () { })\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.company')\r\n .controller('CompanyCtrl', CompanyCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyCtrl($rootScope, lodash, dialogs, $http, CompanyService, CountryService, AuthenticationService,\r\n StateService, CityService, AreaService, OrganizationService, Base64, $scope) {\r\n var vm = this;\r\n\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.company={};\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isEditingLogo = false;\r\n vm.open = false;\r\n vm.eml_add = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/;\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n vm.editLogo = editLogo;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.company.Website = \"https://www.\"\r\n vm.resetForm = resetForm;\r\n vm.editCompany = editCompany;\r\n vm.removeCompany = removeCompany;\r\n vm.SaveCompany = SaveCompany;\r\n vm.changeActiveCompany = changeActiveCompany;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n\r\n // File upload methods\r\n $scope.photoChanged = photoChanged;\r\n Init();\r\n ////////////////\r\n\r\n function editLogo() {\r\n vm.isEditingLogo = true;\r\n vm.open = true;\r\n }\r\n\r\n\r\n function photoChanged(event) {\r\n debugger;\r\n var reader = new FileReader();\r\n if (!vm.isEditingLogo) {\r\n vm.CompanyLogo = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.CompanyLogo);\r\n } else {\r\n vm.CompanyLogo = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.CompanyLogo);\r\n var formData = new FormData();\r\n formData.append('CompanyLogo', vm.CompanyLogo);\r\n formData.append('CompanyId', vm.CompanyId);\r\n CompanyService.updateLogo(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Company Logo changed successfully', \"Success\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n }\r\n }\r\n\r\n function Init() {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CompanyService.getAllCompany().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n var objCountry;\r\n CountryService.getActiveCountry(objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n var objOwner;\r\n CompanyService.getAllOwnerShip(objOwner).then(function (res) {\r\n if (res.status === 200) {\r\n vm.OwnershipTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n var objBusiness;\r\n CompanyService.getAllBusiness(objBusiness).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NatureOfBusinessList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n var objOrg;\r\n OrganizationService.getAllOrganization(objOrg).then(function (res) {\r\n if (res.status === 200) {\r\n vm.OrganizationList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function getStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.company.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.StateList = [];\r\n vm.company.selectedState = null;\r\n vm.CityList = [];\r\n vm.company.selectedCity = null;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n function getCityListByStateId(StateId, callback) {\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.company.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.CityList = [];\r\n vm.company.selectedCity = null;\r\n vm.AreaList = [];\r\n vm.company.selectedArea = null;\r\n }\r\n }\r\n\r\n function getAreaListByCityId(CityId, callback) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.company.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n $scope.imageIsLoaded = function (c) {\r\n $scope.$apply(function () {\r\n vm.logoUrl = c.target.result;\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.company = {};\r\n vm.isEditing = false;\r\n vm.logoUrl = null;\r\n vm.CompanyLogo = null;\r\n angular.element(\"input[type='file']\").val(null);\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.companyForm.$setUntouched();\r\n }\r\n\r\n function editCompany(company) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.open = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.CompanyId = company.CompanyId;\r\n vm.CompanyLogo = vm.logoUrl = $rootScope.endPoint + '/UploadedDocuments/' + company.CompanyLogo;\r\n vm.company = angular.copy(company);\r\n\r\n if (company.ParentCompany === 0)\r\n vm.isNoParent = false;\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === company.ParentCompany) {\r\n vm.company.selectedParent = vm.CompanyList[c];\r\n }\r\n }\r\n\r\n for (var c in vm.OwnershipTypeList) {\r\n if (vm.OwnershipTypeList[c].TypeId === company.TypeId) {\r\n vm.company.selectedOwnershipType = vm.OwnershipTypeList[c];\r\n }\r\n }\r\n for (var c in vm.NatureOfBusinessList) {\r\n if (vm.NatureOfBusinessList[c].BusinessId === company.BusinessId) {\r\n vm.company.selectedNatureOfBusiness = vm.NatureOfBusinessList[c];\r\n }\r\n }\r\n for (var c in vm.OrganizationList) {\r\n if (vm.OrganizationList[c].OrganizationLevelId === company.OrganizationLevelId) {\r\n vm.company.selectedOrganization = vm.OrganizationList[c];\r\n }\r\n }\r\n\r\n getStateListByCountryId(company.CountryId, function () {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === company.CountryId) {\r\n vm.company.selectedCountry = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === company.StateId) {\r\n vm.company.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(company.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === company.CityId) {\r\n vm.company.selectedCity = vm.CityList[c];\r\n }\r\n }\r\n });\r\n getAreaListByCityId(company.CityId, function () {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === company.AreaId) {\r\n vm.company.selectedArea = vm.AreaList[c];\r\n }\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n function removeCompany(company) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n CompanyService.removeCompany(company.CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Company\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function isUrlValid(userInput) {\r\n var res = userInput.match(/(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/g);\r\n if (res == null) {\r\n var confirm = dialogs.notify('In valid Website',\r\n 'Please Enter a valid URL.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n\r\n });\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n \r\n \r\n\r\n function clear(){\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.company = {};\r\n vm.isEditing = false;\r\n vm.logoUrl = null;\r\n vm.CompanyLogo = null;\r\n angular.element(\"input[type='file']\").val(null);\r\n \r\n }\r\n\r\n function SaveCompany(company) {\r\n \r\n if (isUrlValid(company.Website) == true) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getStateByCountryId = function (selectedCountry) {\r\n selectedCountry.CountryId = vm.selectedCountry.CountryId;\r\n }\r\n vm.getCityByStateId = function (selectedState) {\r\n selectedState.StateId = vm.selectedState.StateId;\r\n }\r\n vm.getAreaByCityId = function (selectedCity) {\r\n selectedCity.CityId = vm.selectedCity.CityId;\r\n }\r\n\r\n company.CountryId = vm.company.selectedCountry.CountryId;\r\n company.StateId = vm.company.selectedState.StateId;\r\n company.CityId = vm.company.selectedCity.CityId;\r\n company.AreaId = vm.company.selectedArea.AreaId;\r\n company.BusinessId = vm.company.selectedNatureOfBusiness.BusinessId;\r\n company.TypeId = vm.company.selectedOwnershipType.TypeId;\r\n company.Pincode = vm.company.selectedArea.Pincode;\r\n\r\n if (vm.company.selectedParent === null || vm.company.selectedParent === undefined)\r\n company.ParentCompany = 0;\r\n\r\n\r\n else\r\n company.ParentCompany = vm.company.selectedParent.CompanyId;\r\n\r\n company.OrganizationLevelId = vm.company.selectedOrganization.OrganizationLevelId;\r\n\r\n\r\n\r\n if (!vm.isEditing) {\r\n // File Upload\r\n // var file = vm.company.CompanyLogo;\r\n // vm.company.CompanyLogo = \"\";\r\n company.CreatedBy = logggedUser.UserId;\r\n var formData = new FormData();\r\n formData.append(\"data\", JSON.stringify(company));\r\n formData.append(\"CompanyLogo\", vm.CompanyLogo);\r\n\r\n CompanyService.AddCompany(formData, $http).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Company Master\");\r\n clear()\r\n Init();\r\n vm.isFormOpen = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Company Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n\r\n } else {\r\n company.ModifiedBy = logggedUser.UserId;\r\n CompanyService.EditCompany(company).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Company Master\");\r\n clear()\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Company Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n\r\n });\r\n \r\n }\r\n }\r\n\r\n }\r\n\r\n function changeActiveCompany(company) {\r\n var msg = 'Are sure you want to ' + ((company.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((company.IsActive) ? 'Deactive' : 'Active') + 'Company Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n CompanyService.changeActiveCompany(company.CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Company\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Company\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectTeam')\r\n .controller('ProjectTeamHomeCtrl', ProjectTeamHomeCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectTeamHomeCtrl($http, $state, $rootScope, lodash, dialogs, $uibModal, ProjectTeamService, CompanyService, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.TeamList = [];\r\n vm.StatusId = $state.params.Status;\r\n vm.selectAll = selectAll;\r\n vm.fromDraft = fromDraft;\r\n vm.fromBackforCorrection = fromBackforCorrection;\r\n vm.selectItem = selectItem;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getProjectTeam = getProjectTeam;\r\n Init();\r\n ////////////////////\r\n\r\n function Init() {\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 }, { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 }, { MenuName: 'Waiting for Approval of Draft', StatusId: 3 }, { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 6 }\r\n ]\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.projteam.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.TeamList = [];\r\n }\r\n vm.projteam.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.TeamList = [];\r\n }\r\n\r\n function getProjectTeam(ProjectId) {\r\n if (vm.StatusId === 1) {\r\n ProjectTeamService.GetAllDraft(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TeamList = res.data;\r\n if (!vm.TeamList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project Team available for ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Draft Team\");\r\n });\r\n } else if (vm.StatusId === 3) {\r\n ProjectTeamService.GetAllWaitingForApproval(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n // vm.TeamList = res.data;\r\n vm.wtn = true;\r\n vm.waitingList = lodash.filter(res.data, { 'Status': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'Status': 2 });\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Pending for Approval Team\");\r\n });\r\n } else if (vm.StatusId === 4) {\r\n ProjectTeamService.GetAllApproved(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TeamList = res.data;\r\n if (!vm.TeamList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project Team available for ' + vm.projteam.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Approval Team\");\r\n });\r\n } else if (vm.StatusId === 6) {\r\n ProjectTeamService.GetAllBackForCorrection(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TeamList = res.data;\r\n if (!vm.TeamList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project Team available for ' + vm.projteam.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n for (var i in vm.TeamList) {\r\n vm.TeamList[i].rNotes = {};\r\n vm.TeamList[i].rNotes.Notes = JSON.parse(vm.TeamList[0].RejectNote)\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Back for Correction Team\");\r\n });\r\n }\r\n }\r\n\r\n vm.SendForApproval = function() {\r\n if (vm.allRowSelected === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Send Project Team For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var obj = {\r\n PrvId: selectRow(vm.tableIds),\r\n UserId: loggedUser.UserId\r\n }\r\n ProjectTeamService.SendApproval(obj.PrvId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Approval Successfully', \"Project Initiation\");\r\n getProjectTeam(vm.projteam.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't send Approval for Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't send Approval for Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n }\r\n\r\n\r\n vm.Reject = function() {\r\n if (vm.allRowSelected === true) {\r\n var project = {\r\n PrvId: selectRow(vm.tableIds),\r\n ProjectId: vm.projteam.ProjectId,\r\n Status: vm.StatusId\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/constructionProjectTeam/projectTeamReject.html',\r\n controller: 'ProjectTeamRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return project;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n getProjectTeam(vm.projteam.selectedProject.ProjectId);\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n vm.Approve = function() {\r\n if (vm.allRowSelected === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Approval the Project Team', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var obj = {\r\n PrvId: selectRow(vm.tableIds),\r\n UserId: loggedUser.UserId\r\n }\r\n ProjectTeamService.ApproveProjectTeam(obj.PrvId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Project Team\");\r\n getProjectTeam(vm.projteam.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approved Project Team\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Approved Project Team\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n\r\n vm.Resubmit = function() {\r\n if (vm.allRowSelected === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Resubmit the Project Team', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var obj = {\r\n PrvId: selectRow(vm.tableIds),\r\n UserId: loggedUser.UserId\r\n }\r\n ProjectTeamService.ResubmitProjectTeam(obj.PrvId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Project Team\");\r\n getProjectTeam(vm.projteam.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approved Project Team\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Approved Project Team\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n }\r\n\r\n function fromDraft() {\r\n vm.wtn = false;\r\n vm.StatusId = 3\r\n vm.TeamList = vm.waitingList;\r\n }\r\n\r\n function fromBackforCorrection() {\r\n vm.wtn = false;\r\n vm.StatusId = 2\r\n vm.TeamList = vm.resubmittedList;\r\n }\r\n vm.back = function() {\r\n vm.wtn = true;\r\n }\r\n // vm.Block = function () {\r\n // var confirm = dialogs.confirm('Confirm',\r\n // 'Are you sure want to Block the Project Team', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // confirm.result.then(function () {\r\n // ProjectTeamService.BlockProjectTeam(vm.projteam.PrvId).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Approved Successfully', \"Project Team\");\r\n // // $state.go($rootScope.previousState);\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Approved Project Team\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Can't Approved Project Team\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // }, function () {\r\n\r\n // })\r\n // }\r\n\r\n vm.Create = function() {\r\n //debugger;\r\n var data = {\r\n isEditing: vm.isEditing,\r\n\r\n }\r\n $state.go('createProjectTeam', {\r\n data: data\r\n })\r\n }\r\n\r\n\r\n vm.Editlist = function(row) {\r\n var data = {\r\n isEditing: true,\r\n ProjTeam: row\r\n }\r\n $state.go('createProjectTeam', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.RemoveList = function(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var obj = {\r\n PrvId: selectRow(vm.tableIds),\r\n UserId: loggedUser.UserId\r\n }\r\n ProjectTeamService.RemoveProjectTeam(obj.PrvId).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Team\");\r\n getProjectTeam(vm.projteam.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Team\");\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n function selectRow() {\r\n var tempData = [];\r\n var tempstatus = [];\r\n for (var i in vm.TeamList) {\r\n if (vm.TeamList[i].isChecked) {\r\n if (vm.TeamList[i].PrvId != undefined) {\r\n tempData.push(vm.TeamList[i].PrvId);\r\n tempstatus.push(vm.TeamList[i].StatusName);\r\n }\r\n }\r\n }\r\n var teststring = JSON.stringify(tempData);\r\n vm.tableStatus = JSON.stringify(tempstatus);\r\n vm.tableIds = teststring.substring(1, teststring.length - 1);\r\n return (vm.tableIds);\r\n return (vm.tableStatus);\r\n }\r\n\r\n function selectItem() {\r\n for (var i = 0; i < vm.TeamList.length; i++) {\r\n if (!vm.TeamList[i].isChecked) {\r\n vm.allRowSelected = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected = true;\r\n\r\n };\r\n\r\n function selectAll() {\r\n for (var i = 0; i < vm.TeamList.length; i++) {\r\n vm.TeamList[i].isChecked = vm.allRowSelected;\r\n }\r\n };\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectTeam')\r\n .controller('ProjectTeamRejectionCtrl', ProjectTeamRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectTeamRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, ProjectTeamService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n vm.SaveRejection = function () {\r\n var RejectNotes = {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n \"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n var objReject = {\r\n PrvId: items.PrvId,\r\n Status: items.Status,\r\n ModifiedBy: AuthenticationService.getLoggedUserDetails().UserId,\r\n RejectNotes: JSON.stringify(RejectNotes)\r\n\r\n }\r\n ProjectTeamService.AddRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Project Rejection\");\r\n $uibModalInstance.close();\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractorPayment')\r\n .controller('ContractorPaymentCtrl', ContractorPaymentCtrl);\r\n\r\n /** @ngInject */\r\n function ContractorPaymentCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, projectCreationService, HolidayMasterService, StateService, CountryService, AuthenticationService, ContractorPaymentService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n \r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n // vm.editProjectHolidayMaster = editProjectHolidayMaster;\r\n // vm.SaveProjectHolidayMaster = SaveProjectHolidayMaster;\r\n vm.Contractor = {};\r\n\r\n \r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n function Init() {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n LoadProjectHolidayMaster();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n function LoadProjectHolidayMaster() {\r\n ProjectHolidayMasterService.getAllProjectHolidayMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectHolidayMasterList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Holiday Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Holiday Master\");\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.Contractor = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.ContractorForm.$setUntouched();\r\n }\r\n\r\n function editProjectHolidayMaster(holiday) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n // vm.oldCountry = country.CountryName;\r\n // vm.holiday = HolidayName.ProjectHolidayName;\r\n vm.holiday = holiday.ProjectHolidayName;\r\n\r\n\r\n\r\n vm.holiday = angular.copy(holiday);\r\n\r\n vm.holiday.Date = new Date(vm.holiday.ProjectHolidayYear + \"/\" + vm.holiday.ProjectHolidayMonth + \"/\" + vm.holiday.ProjectHolidayDate);\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === vm.holiday.ProjectId) {\r\n vm.holiday.selectedProject = vm.ProjectList[i]\r\n }\r\n }\r\n\r\n vm.holiday.HolidayName = holiday.ProjectHolidayName;\r\n\r\n // getFocByPrjId(vm.holiday.ProjectId, function () {\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId === vm.holiday.ProjectId) {\r\n // vm.holiday.selectedProject = vm.ProjectList[i]\r\n // }\r\n // }\r\n\r\n // });\r\n\r\n }\r\n\r\n function SaveProjectHolidayMaster(holiday) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n\r\n var holiday = {\r\n CreatedBy: logggedUser.UserId,\r\n ProjectId: vm.holiday.selectedProject.ProjectId,\r\n ProjectHolidayName: vm.holiday.HolidayName,\r\n Date: $filter('date')(vm.holiday.Date, 'yyyy-MM-dd'),\r\n\r\n\r\n\r\n }\r\n ProjectHolidayMasterService.AddProjectHoliday(holiday).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"ProjectHoliday Master\");\r\n Init();\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ProjectHoliday Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n\r\n var holiday = {\r\n ProjectId: vm.holiday.ProjectId,\r\n ModifiedBy: logggedUser.UserId,\r\n\r\n Date: $filter('date')(vm.holiday.Date, 'yyyy-MM-dd'),\r\n\r\n IsActive: vm.holiday.IsActive\r\n\r\n }\r\n ProjectHolidayMasterService.editProjectHolidayMaster(holiday).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"ProjectHoliday Master\");\r\n Init();\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ProjectHoliday Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n vm.RemoveProjectHoliday = function (row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Delete the Project Holiday Master', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n ProjectHolidayMasterService.RemoveProjectHoliday(row.ProjectId).then(function (res) {\r\n $rootScope.showToaster('success', 'ProjectHoliday Master Deleted Successfully', \"ProjectHoliday Master\");\r\n Init()\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n \r\n\r\n \r\n \r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.country')\r\n .controller('CountryCtrl', CountryCtrl);\r\n\r\n /** @ngInject */\r\n function CountryCtrl($http, $rootScope, lodash, dialogs, CountryService, AuthenticationService, $scope) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.CountryList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editCountry = editCountry;\r\n vm.SaveCountryNew = SaveCountryNew;\r\n vm.changeActiveCountry = changeActiveCountry;\r\n // vm.removeCountry = removeCountry;\r\n vm.NewremoveCountry = NewremoveCountry;\r\n vm.SaveCountry = SaveCountry;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n Init();\r\n\r\n //key press event Validation\r\n //NumberOnly\r\n //AlphOnly\r\n //SplChrOnly\r\n //NumberAndSplChar\r\n\r\n $scope.AlphOnly = function(event, myValue) {\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n $scope.NumberOnly = function(event, myValue) {\r\n debugger;\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[0-9]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Please Enter Numbers Only', \"Enter..!\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n $scope.CountryCodeOnly = function(event, myValue) {\r\n debugger;\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[+0-9]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Please Enter Numbers Only', \"Enter..!\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n $scope.SplChrOnly = function(event, myValue) {\r\n debugger;\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");$€£¥₹ [\\u00a4\\u060b\\u0e3f\\u002f\\u002e\\u20bf\\u20b5\\u00a2\\u20a1\\u0024\\u0434\\u0435\\u043d\\u0438\\u043d\\u0024\\u20ab\\u20ac\\u0192\\u002c\\u20b2\\u20b4\\u20ad\\u010d\\u043b\\u0432\\u20ba\\u20a5\\u20a6\\u0024\\u20b1\\u00a3\\u17db\\u20bd\\u20b9\\u20a8\\u20aa\\u09f3\\u20ae\\u20a9\\u00a5\\u0142\\u20b3\\u20a2\\u20b0\\u20bb\\u20af\\u20a0\\u20a4\\u2133\\u20a7\\u211b\\u20b7\\u20b6\\u09f2\\u09f9\\u09fb\\u07fe\\u07ff\\u0bf9\\u0af1\\u0cb0\\u0dbb\\u0dd4\\ua838\\u1e2f\\u0046\\u0061-\\u007a\\u0041-\\u005a\\u0030-\\u0039 \\u2000-\\u200f\\u2028-\\u202f\\u0621-\\u0628\\u062a-\\u063a\\u0641-\\u0642\\u0644-\\u0648\\u064e-\\u0651\\u0655\\u067e\\u0686\\u0698\\u06a9\\u06af\\u06be\\u06cc\\u06f0-\\u06f9\\u0629\\u0643\\u0649-\\u064b\\u064d\\u06d5\\u0660-\\u0669\\u005c]{1,5}\r\n\r\n var regex = new RegExp(\"/^[ A-Za-z0-9()[\\]+-*/%]*$/\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'symbol only', \"Allow..!\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n\r\n\r\n function Init() {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // CountryService.getAllCountry($http, $rootScope).then(function(res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function(err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n\r\n CountryService.GetAllCountry_ByProc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.country = {};\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.country = {};\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n // vm.CountryForm.$setUntouched();\r\n }\r\n\r\n function editCountry(country) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n // vm.oldCountry = country.CountryName;\r\n\r\n vm.country = angular.copy(country);\r\n\r\n }\r\n\r\n function changeActiveCountry(country) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var msg = 'Are sure you want to ' + ((country.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((country.IsActive) ? 'Deactive' : 'Active') + 'Country Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n var inActive = {\r\n CountryId: country.CountryId,\r\n ModifiedBy: logggedUser.UserId\r\n }\r\n CountryService.changeActiveCountry(inActive).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Country\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Deactive Country\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Deactive Country. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n // function removeCountry(country) {\r\n // var confirm = dialogs.confirm('Confirm',\r\n // 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n // confirm.result.then(function() {\r\n // CountryService.removeCountry(country.CountryId).then(function(res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Country Successfully', \"Country\");\r\n // Init();\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Delete Country\", { animation: true, size: 'sm' });\r\n // }\r\n // }, function(err) {\r\n // $rootScope.showToaster('error', \"Can't Delete Country. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n // });\r\n // }, function() {\r\n\r\n // })\r\n // }\r\n function NewremoveCountry(country) {\r\n var inputdata = {\r\n CountryId: country.CountryId,\r\n CountryName: '',\r\n CountryCode: '',\r\n CurrencyName: '',\r\n CurrencyCode: '',\r\n CurrencySymbol: '',\r\n CreatedBy: 0,\r\n Process: 'Delete'\r\n }\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n CountryService.SaveDeleteCountryMaster(inputdata).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Country Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Country\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Country. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n\r\n }\r\n\r\n function SaveCountryNew(country) {\r\n var icountryId = 0;\r\n\r\n if (vm.isEditing)\r\n icountryId = vm.country.CountryId;\r\n\r\n var inputdata = {\r\n CountryId: icountryId,\r\n CountryName: country.CountryName,\r\n CountryCode: country.CountryCode,\r\n CurrencyName: country.CurrencyName,\r\n CurrencyCode: country.CurrencyCode,\r\n CurrencySymbol: country.CurrencySymbol,\r\n CreatedBy: logggedUser.UserId,\r\n Process: 'Save'\r\n }\r\n\r\n CountryService.SaveDeleteCountryMaster(inputdata).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Country Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Country Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n function SaveCountry(country) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var country = {\r\n CreatedBy: logggedUser.UserId,\r\n CountryCode: vm.country.CountryCode,\r\n CountryName: vm.country.CountryName,\r\n }\r\n // CountryService.AddCountry(country).then(function(res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Country Master\");\r\n // Init();\r\n // vm.isFormOpen = false;\r\n // cancel();\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Country Master\");\r\n // vm.isFormOpen = true;\r\n // }\r\n\r\n // }, function(err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n // });\r\n\r\n CountryService.SaveDeleteCountryMaster(country).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Country Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Country Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n\r\n } else {\r\n // if (vm.country.CountryName !== vm.oldCountryName && vm.country.CountryCode !== vm.oldCountryCode) {\r\n var country = {\r\n ModifiedBy: logggedUser.UserId,\r\n CountryCode: vm.country.CountryCode,\r\n CountryName: vm.country.CountryName,\r\n CountryId: vm.country.CountryId,\r\n IsActive: vm.country.IsActive\r\n }\r\n CountryService.EditCountry(country).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Country Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Country Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n vm.select = true;\r\n\r\n }\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('DashboardCtrl', DashboardCtrl)\r\n\r\n\r\n /** @ngInject */\r\n function DashboardCtrl($rootScope, $location, $scope, lodash, dialogs, baConfig, $element, $state, BillingService, layoutPaths,\r\n baSidebarService, AuthenticationService, RfqContractorService, projectCreationService, SupplierRateQuoteService, UserService, SupervisorTaskService, $uibModal) {\r\n var vm = this;\r\n vm.isLoading = false;\r\n $rootScope.isLogin = false;\r\n vm.IsVisible = false;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.fromRFQ = fromRFQ;\r\n vm.viewRfqQuotation = viewRfqQuotation;\r\n vm.viewQuotatioDraft = viewQuotatioDraft;\r\n vm.viewCancelRfq = viewCancelRfq;\r\n vm.viewDraftBill = viewDraftBill;\r\n vm.viewRABill = viewRABill;\r\n vm.clearDashboard = clearDashboard;\r\n vm.ContractorRfqList = [];\r\n vm.UnQuotedCount = 0;\r\n vm.QuotedCount = 0;\r\n vm.QuotedDraft = 0;\r\n vm.CancelledCount = 0;\r\n vm.task = task\r\n vm.getDashBoard = getDashBoard;\r\n // vm.GetProjectSalesDetails = GetProjectSalesDetails;\r\n vm.isSalesView = false;\r\n vm.isProjectStatusView = false;\r\n vm.isCashFlowView = false;\r\n vm.ischeck = false;\r\n\r\n Init();\r\n\r\n if ($rootScope.iskpostCallChecked) {\r\n $location.path('/Supervisor_todaytask');\r\n }\r\n\r\n $scope.datasetOverride = [{\r\n label: \"Bar chart\",\r\n borderWidth: 1,\r\n type: 'bar'\r\n }];\r\n\r\n function shuffle(o) {\r\n for (var j, x, i = o.length; i; j = Math.floor(Math.random() * i),\r\n x = o[--i], o[i] = o[j], o[j] = x) {}\r\n return o;\r\n }\r\n\r\n\r\n //////\r\n var layoutColors = baConfig.colors;\r\n\r\n $scope.Options = {\r\n elements: {\r\n arc: {\r\n borderWidth: 0\r\n }\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom',\r\n labels: {\r\n fontColor: layoutColors.defaultText\r\n\r\n }\r\n },\r\n tooltips: {\r\n enabled: true,\r\n mode: 'single',\r\n callbacks: {\r\n label: function(tooltipItem, data) {\r\n var label = data.labels[tooltipItem.index];\r\n var datasetLabel = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n var formattedNumber = datasetLabel.toLocaleString('en-IN', { style: 'currency', currency: \"INR\", minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n return label + ': ' + formattedNumber;\r\n }\r\n }\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n callback: function(label, index, labels) {\r\n return new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(label);\r\n }\r\n },\r\n }]\r\n }\r\n }\r\n\r\n\r\n $scope.pielabels = [\"Completed \", \"Pending\", \"Balance\", \"InProgress\"];\r\n $scope.piedata = [];\r\n $scope.pieoptions = {\r\n // tooltipEvents: [],\r\n // showTooltips: true,\r\n // tooltipCaretSize: 0,\r\n // animation:{\r\n // onComplete: function () {\r\n // this.showTooltip(this.segments, true);\r\n // }\r\n // },\r\n // options:{\r\n // animation:{\r\n // onComplete : function(){\r\n // this.showTooltip(this.segments, true);\r\n // }\r\n // }\r\n // },\r\n elements: {\r\n arc: {\r\n borderWidth: 0\r\n }\r\n },\r\n legend: {\r\n display: true,\r\n position: 'bottom',\r\n labels: {\r\n fontColor: layoutColors.defaultText\r\n\r\n }\r\n },\r\n\r\n tooltips: {\r\n enabled: true,\r\n mode: 'single',\r\n callbacks: {\r\n label: function(tooltipItem, data) {\r\n var label = data.labels[tooltipItem.index];\r\n var datasetLabel = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n var formattedNumber = datasetLabel.toLocaleString('en-IN', { style: 'currency', currency: \"INR\", minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n // return label + ': ' + formattedNumber + '' + '%';\r\n if (vm.RoleId == 1) {\r\n return label + ': ' + formattedNumber + '' + '%';\r\n } else {\r\n return label + ': ' + formattedNumber + '';\r\n }\r\n\r\n }\r\n }\r\n },\r\n\r\n\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n $scope.piechangeData = function() {\r\n $scope.data = shuffle($scope.data);\r\n };\r\n\r\n function pieshuffle(o) {\r\n for (var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x) {}\r\n return o;\r\n }\r\n\r\n ////\r\n\r\n\r\n function Init() {\r\n // $rootScope.openSelectProjectModal();\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TemplateRfqList = [{\r\n TemplatelistName: 'Field of Construction',\r\n TempId: 1\r\n }, {\r\n TemplatelistName: 'Category of CA',\r\n TempId: 2\r\n }, {\r\n TemplatelistName: 'SubCategory of CA',\r\n TempId: 3\r\n }]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n }, {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n\r\n if (vm.loggedUser.UserType == 'EMP') {\r\n debugger;\r\n // var obj = {\r\n // ProjectId = vm.selectedProjectFilter.ProjectId,\r\n // ActionBy: loggedUser.UserId\r\n // }\r\n // SupplierRateQuoteService.GetRfqForSupplierList(vm.SupplierId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.RoleId = \r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n // }\r\n // },\r\n // function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n // });\r\n\r\n //----------- Must Enable for CMS DB --------------//\r\n\r\n vm.id = vm.loggedUser.Role.RoleId;\r\n debugger;\r\n vm.IsVisible = true;\r\n\r\n //-------- CMS DB End ------------//\r\n\r\n // if (vm.id === 1 || vm.id === 2 || vm.id === 3 || vm.id === 4 || vm.id === 19 || vm.id === 14) { \r\n // } else {\r\n // vm.IsVisible = false;\r\n // }\r\n\r\n }\r\n\r\n\r\n if (vm.loggedUser.UserType == 'CNT') {\r\n vm.contractorId = vm.loggedUser.RefId\r\n RfqContractorService.getCountRfqContractor(vm.contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.UnQuotedCount = res.data.UnQuotedCount;\r\n vm.QuotedCount = res.data.QuotedCount;\r\n vm.QuotedDraft = res.data.QuotedDraft;\r\n vm.CancelledCount = res.data.CancelledCount;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n getBillDetails(vm.contractorId)\r\n } else if (vm.loggedUser.UserType == 'SUP') {\r\n vm.SupplierId = vm.loggedUser.RefId\r\n SupplierRateQuoteService.GetRfqForSupplierList(vm.SupplierId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.Unquoted = lodash.filter(res.data, { 'Status': 1 });\r\n vm.DraftQuoted = lodash.filter(res.data, { 'Status': 2 });\r\n vm.submitted = lodash.filter(res.data, { 'Status': 3 });\r\n vm.cancelled = lodash.filter(res.data, { 'Status': 4 });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n //------------- project CMS EMP DB Area -------------------//\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n var ActionBy = vm.loggedUser.UserId\r\n if (CompanyId > 0) {\r\n UserService.GetAllProjectForDashboard(CompanyId, ActionBy).then(function(res) {\r\n vm.IsVisible = true;\r\n debugger;\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n\r\n if (!vm.ProjectList.length > 0) {\r\n // dialogs.notify('Warning', 'Dashboard Not Available for This User or Change Company..!', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n vm.IsVisible = false;\r\n }\r\n\r\n if (vm.ProjectList.length > 0) {\r\n if ($state.params.data != undefined) {\r\n for (var i in vm.ProjectList) {\r\n if ($state.params.data.ProjectId == vm.ProjectList[i].ProjectId)\r\n vm.id = vm.ProjectList[i].RoleId\r\n }\r\n } else {\r\n vm.id = vm.ProjectList[0].RoleId\r\n }\r\n }\r\n debugger;\r\n if (vm.ProjectList.length > 0 && (vm.id === 1 || vm.id === 2 || vm.id === 3 || vm.id === 19)) {\r\n if ($state.params.data != undefined) {\r\n for (var i in vm.ProjectList) {\r\n if ($state.params.data.ProjectId == vm.ProjectList[i].ProjectId)\r\n vm.selectedProjectFilter = vm.ProjectList[i]\r\n }\r\n } else {\r\n vm.selectedProjectFilter = vm.ProjectList[0]\r\n getDashBoard();\r\n }\r\n\r\n vm.IsVisible = true;\r\n } else {\r\n vm.IsVisible = false;\r\n }\r\n\r\n if ($state.params.data != undefined) {\r\n vm.isLoading = true;\r\n vm.ischeck = true;\r\n for (var i in vm.ProjectList) {\r\n if ($state.params.data.ProjectId == vm.ProjectList[i].ProjectId)\r\n vm.selectedProjectFilter = vm.ProjectList[i]\r\n }\r\n getDashBoard();\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n vm.isLoading = false;\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n //-------- End Project CMS EMP DB area ------------------// \r\n }\r\n\r\n\r\n\r\n //Get DashBoard\r\n function getDashBoard() {\r\n\r\n if (vm.selectedProjectFilter.ProjectId) {\r\n debugger;\r\n vm.isLoading = true;\r\n if (vm.resultData != undefined) {\r\n clearDashboard();\r\n }\r\n vm.id = vm.selectedProjectFilter.RoleId;\r\n vm.ProjectId = vm.selectedProjectFilter.ProjectId\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CompanyId: vm.loggedUser.SelectedCompany.CompanyId,\r\n EmpId: vm.loggedUser.UserId\r\n }\r\n UserService.getDashBoard(obj).then(function(res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.resultData = JSON.parse(res.data.Table[0].result);\r\n if (vm.id != 1 && vm.id != 19) {\r\n vm.raBillCount = vm.resultData[0].raBillCount;\r\n vm.CompletedWork = vm.resultData[0].CompletedWork;\r\n vm.PendingWork = vm.resultData[0].PendingWork;\r\n vm.TotalCost = vm.resultData[0].ProjectTotalCost;\r\n var data = vm.TotalCost\r\n if (data) {\r\n vm.Total = data.toLocaleString('en-IN', { style: 'currency', currency: \"INR\", minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n }\r\n $scope.piedata.push(vm.resultData[0].ProjectCompletedCost);\r\n $scope.piedata.push(vm.resultData[0].ProjectBalanceCost);\r\n vm.TodayTask = vm.resultData[0].TodayTask;\r\n vm.TdypendingTask = vm.resultData[0].TdypendingTask;\r\n vm.TotalWork = vm.resultData[0].TotalWork;\r\n vm.YstrApproveTask = vm.resultData[0].YstrApproveTask;\r\n vm.YstrDefectTask = vm.resultData[0].YstrDefectTask;\r\n vm.YstrPendingTask = vm.resultData[0].YstrPendingTask;\r\n vm.RoleId = vm.resultData[0].RoleId;\r\n $scope.BarLine = [100, 40, 25, 15, 20];\r\n $scope.label = ['Jan', 'Feb', 'Mar', 'Apr', 'May'];\r\n\r\n $scope.Bardata = [\r\n [10, 20, 30, 60, 25],\r\n [30, 20, 10, 45, 55]\r\n ];\r\n $scope.Barlabels = ['Jan', 'Feb', 'Mar', 'Apr', 'May'];\r\n $scope.Barseries = ['Scheduled', 'Completed'];\r\n } else if (vm.id == 1 || vm.id == 19) {\r\n if (vm.id == 1) {\r\n vm.raBillCount = vm.resultData[0].raBillCount;\r\n vm.TodayTask = vm.resultData[0].TodayTask;\r\n vm.TdypendingTask = vm.resultData[0].TdypendingTask;\r\n vm.TotalWork = vm.resultData[0].TotalWork;\r\n vm.YstrApproveTask = vm.resultData[0].YstrApproveTask;\r\n vm.YstrDefectTask = vm.resultData[0].YstrDefectTask;\r\n vm.YstrPendingTask = vm.resultData[0].YstrPendingTask;\r\n vm.RoleId = vm.resultData[0].RoleId;\r\n }\r\n vm.TotalCost = vm.resultData[0].ProjectTotalCost;\r\n var data = vm.TotalCost\r\n vm.Total = data.toLocaleString('en-IN', { style: 'currency', currency: \"INR\", minimumFractionDigits: 2, maximumFractionDigits: 2 })\r\n var ProjectCompletedCost = parseFloat((vm.resultData[0].ProjectCompletedCost / vm.resultData[0].ProjectTotalCost) * 100).toFixed(1);\r\n var ProjectBalanceCost = parseFloat((vm.resultData[0].ProjectBalanceCost / vm.resultData[0].ProjectTotalCost) * 100).toFixed(1);\r\n var ProjectpendingCost = parseFloat((vm.resultData[0].ProjectpendingCost / vm.resultData[0].ProjectTotalCost) * 100).toFixed(1);\r\n var ProjectInprogressCost = parseFloat((vm.resultData[0].ProjectInprogressCost / vm.resultData[0].ProjectTotalCost) * 100).toFixed(1);\r\n\r\n $scope.piedata.push(ProjectCompletedCost);\r\n $scope.piedata.push(ProjectBalanceCost);\r\n $scope.piedata.push(ProjectpendingCost);\r\n $scope.piedata.push(ProjectInprogressCost);\r\n if (vm.resultData[0].ProjectSalesSatus) {\r\n vm.ProjectSalesSatus = JSON.parse(vm.resultData[0].ProjectSalesSatus);\r\n $scope.BarLine = [];\r\n $scope.BarLine.push(parseFloat((vm.ProjectSalesSatus.total / vm.ProjectSalesSatus.total) * 100).toFixed(1));\r\n $scope.BarLine.push(parseFloat((vm.ProjectSalesSatus.booked / vm.ProjectSalesSatus.total) * 100).toFixed(1));\r\n $scope.BarLine.push(parseFloat((vm.ProjectSalesSatus.balance / vm.ProjectSalesSatus.total) * 100).toFixed(1));\r\n $scope.colors = ['#00A6D3', '#70E168', '#FF594F'];\r\n $scope.label = ['TOTAL', 'BOOKED', 'BALANCE'];\r\n }\r\n if (vm.resultData[0].ProjectCashFlow) {\r\n vm.ProjectCashFlow = JSON.parse(vm.resultData[0].ProjectCashFlow);\r\n\r\n lodash.orderBy(vm.ProjectCashFlow, function(obj) {\r\n lodash.map(vm.ProjectCashFlow, function(e) {\r\n return e.monthName = e.MonthInName.substring(0, 3);\r\n })\r\n return obj.months\r\n })\r\n\r\n $scope.Bardata = [\r\n [],\r\n []\r\n ];\r\n $scope.Barlabels = [];\r\n\r\n lodash.forEach(vm.ProjectCashFlow, function(e) {\r\n $scope.Barlabels.push(e.monthName);\r\n $scope.Bardata[0].push(e.INCASH);\r\n $scope.Bardata[1].push(e.OUTCASH);\r\n })\r\n $scope.Barseries = ['CASH INFLOW', 'CASH OUTFLOW'];\r\n }\r\n }\r\n vm.isLoading = false;\r\n vm.ischeck = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"DashBoard\");\r\n vm.isLoading = false;\r\n }\r\n\r\n });\r\n }\r\n /////\r\n }\r\n\r\n $scope.GetProjectSalesDetails = function(points, evt, element) {\r\n if (points.length > 0) {\r\n if (vm.id == 19) {\r\n var data = {\r\n ProjectName: vm.selectedProjectFilter.ProjectName,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CompanyId: vm.loggedUser.SelectedCompany.CompanyId,\r\n Total: vm.Total,\r\n TotalCost: vm.TotalCost,\r\n Status: 1,\r\n }\r\n $state.go('dashboardDetails', {\r\n data: data\r\n })\r\n }\r\n }\r\n }\r\n\r\n $scope.GetSalesStatusDetails = function(points, evt, element) {\r\n if (points.length > 0) {\r\n if (vm.id == 19) {\r\n var data = {\r\n ProjectName: vm.selectedProjectFilter.ProjectName,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CompanyId: vm.loggedUser.SelectedCompany.CompanyId,\r\n Status: 2,\r\n }\r\n $state.go('dashboardDetails', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n $scope.GetCashFlowStatus = function(points, evt, element) {\r\n if (points.length > 0) {\r\n if (vm.id == 19) {\r\n var data = {\r\n ProjectName: vm.selectedProjectFilter.ProjectName,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CompanyId: vm.loggedUser.SelectedCompany.CompanyId,\r\n ProjectCashFlow: vm.ProjectCashFlow,\r\n Status: 3,\r\n\r\n }\r\n $state.go('dashboardDetails', {\r\n data: data\r\n })\r\n }\r\n }\r\n }\r\n\r\n ///// WORK REPORT ////////\r\n vm.ViewWorkReport = function(status, count) {\r\n debugger;\r\n if (count > 0) {\r\n var data = {\r\n Status: status,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CompanyId: vm.loggedUser.SelectedCompany.CompanyId,\r\n\r\n }\r\n $state.go('workReport', {\r\n data: data\r\n })\r\n } else {\r\n if (status == 1)\r\n vm.Message = 'Approved Works'\r\n else if (status == 2)\r\n vm.Message = 'Defect Works'\r\n else if (status == 0)\r\n vm.Message = 'Pending Works'\r\n\r\n dialogs.notify('Warning', '! No ' + vm.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n function getBillDetails(contractorId) {\r\n BillingService.GetBillDetails(contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n for (var i in vm.DraftList) {\r\n for (var j in vm.TypeofContractList) {\r\n if (vm.DraftList[i].TypeOfContract == vm.TypeofContractList[j].Id) {\r\n vm.DraftList[i].ContractName = vm.TypeofContractList[j].ContractName\r\n }\r\n }\r\n for (var j in vm.TypeofBillList) {\r\n if (vm.DraftList[i].BillId == vm.TypeofBillList[j].BillId) {\r\n vm.DraftList[i].BillType = vm.TypeofBillList[j].TypeofBillName\r\n }\r\n }\r\n for (var j in vm.rfqTypeList) {\r\n if (vm.DraftList[i].RfqScope == vm.rfqTypeList[j].Code) {\r\n vm.DraftList[i].RfqScope = vm.rfqTypeList[j].rfqTypeName\r\n }\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n\r\n BillingService.GetRABillDetails(contractorId, 0, 0).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RABillList = res.data;\r\n for (var i in vm.RABillList) {\r\n for (var j in vm.TypeofContractList) {\r\n if (vm.RABillList[i].TypeOfContract == vm.TypeofContractList[j].Id) {\r\n vm.RABillList[i].ContractName = vm.TypeofContractList[j].ContractName\r\n }\r\n }\r\n for (var j in vm.TypeofBillList) {\r\n if (vm.RABillList[i].BillId == vm.TypeofBillList[j].BillId) {\r\n vm.RABillList[i].BillType = vm.TypeofBillList[j].TypeofBillName\r\n }\r\n }\r\n\r\n for (var j in vm.rfqTypeList) {\r\n if (vm.RABillList[i].RfqScope == vm.rfqTypeList[j].Code) {\r\n vm.RABillList[i].RfqScope = vm.rfqTypeList[j].rfqTypeName\r\n }\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n function fromRFQ() {\r\n debugger;\r\n var data = {\r\n Status: 1\r\n };\r\n $state.go('rfqContractor', {\r\n data: data\r\n })\r\n }\r\n vm.SupplierUnQuote = function() {\r\n var data = {\r\n SupplierMaterialList: vm.Unquoted,\r\n Status: 1\r\n };\r\n $state.go('supplierRateQuote', {\r\n data: data\r\n })\r\n }\r\n vm.SupplierDraftQuoted = function() {\r\n\r\n var data = {\r\n SupplierMaterialList: vm.DraftQuoted,\r\n Status: 2\r\n };\r\n $state.go('supplierRateQuote', {\r\n data: data\r\n })\r\n }\r\n vm.SupplierSubmittedQuoted = function() {\r\n\r\n var data = {\r\n SupplierMaterialList: vm.submitted,\r\n Status: 3\r\n };\r\n $state.go('supplierRateQuote', {\r\n data: data\r\n })\r\n }\r\n vm.SupplierCancelRfq = function() {\r\n\r\n var data = {\r\n SupplierMaterialList: vm.cancelled,\r\n Status: 5\r\n };\r\n $state.go('supplierRateQuote', {\r\n data: data\r\n })\r\n }\r\n\r\n function viewRfqQuotation() {\r\n var data = {\r\n Status: 3\r\n };\r\n $state.go('rfqContractor', {\r\n data: data\r\n })\r\n }\r\n\r\n function viewQuotatioDraft() {\r\n var data = {\r\n Status: 2\r\n };\r\n $state.go('rfqContractor', {\r\n data: data\r\n })\r\n }\r\n\r\n function viewCancelRfq() {\r\n var data = {\r\n Status: 5\r\n };\r\n $state.go('rfqContractor', {\r\n data: data\r\n })\r\n }\r\n\r\n function viewDraftBill() {\r\n var data = {\r\n DraftList: vm.DraftList\r\n };\r\n $state.go('draftBill', {\r\n data: data\r\n })\r\n }\r\n\r\n function viewRABill() {\r\n var data = {\r\n RABillList: vm.RABillList\r\n };\r\n $state.go('raBill', {\r\n data: data\r\n })\r\n }\r\n\r\n function task(count) {\r\n // debugger;\r\n // //-- dev test --//\r\n // var count = 1;\r\n // // -- //\r\n debugger;\r\n if (count > 0) {\r\n if (vm.ProjectId != undefined) {\r\n if (vm.RoleId != undefined) {\r\n if (vm.RoleId == 3 || vm.RoleId == 2) {\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n ProjectName: vm.selectedProjectFilter.ProjectName\r\n }\r\n $state.go('supervisor', {\r\n data: obj\r\n });\r\n } else if (vm.RoleId == 1) {\r\n var data = {\r\n ProjectName: vm.selectedProjectFilter.ProjectName,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CompanyId: vm.loggedUser.SelectedCompany.CompanyId,\r\n }\r\n $state.go('dbmgrtdytask', {\r\n data: data\r\n })\r\n }\r\n }\r\n } else {\r\n dialogs.notify('Warning', '!Select Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n dialogs.notify('Warning', '! No Today Task', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n // function showempDashBoard(id) {\r\n // debugger;\r\n // if (id === 8 ||vm.id === 7 ||vm.id === 4) {\r\n // vm.IsVisible = true;\r\n // }\r\n // }\r\n\r\n // #regin ClearDashBoard Old Data\r\n function clearDashboard() {\r\n vm.resultData = null;\r\n vm.raBillCount = null;\r\n vm.CompletedWork = null;\r\n vm.PendingWork = null;\r\n vm.TotalCost = null;\r\n vm.Total = null;\r\n $scope.piedata = [];\r\n vm.TodayTask = null;\r\n vm.TdypendingTask = null;\r\n vm.TotalWork = null;\r\n vm.YstrApproveTask = null;\r\n vm.YstrDefectTask = null;\r\n vm.YstrPendingTask = null;\r\n vm.RoleId = null;\r\n\r\n }\r\n //#endregion\r\n\r\n }\r\n\r\n\r\n // .controller('dashboardCtrl', ['$scope', '$timeout', 'generator','$http',\r\n // function dashboardCtrl1($scope, $timeout, generator, $http) {\r\n // console.log(generator.lineChart.options());\r\n // console.log(generator.lineChart.data());\r\n\r\n // $scope.gridsterOptions = {\r\n // margins: [20, 20],\r\n // columns: 8,\r\n // mobileBreakPoint: 1000,\r\n // mobileModeEnabled: true,\r\n // draggable: {\r\n // handle: 'h3'\r\n // },\r\n // resizable: {\r\n // enabled: true,\r\n // handles: ['n', 'e', 's', 'w', 'ne', 'se', 'sw', 'nw'],\r\n\r\n // // optional callback fired when resize is started\r\n // start: function (event, $element, widget) { },\r\n\r\n // // optional callback fired when item is resized,\r\n // resize: function (event, $element, widget) {\r\n // $(widget).height($(window).height() - 200);\r\n // //widget.chart.api.update();\r\n // if (widget.chart.api) widget.chart.api.update();\r\n // },\r\n\r\n // // optional callback fired when item is finished resizing\r\n // stop: function (event, $element, widget) {\r\n // $timeout(function () {\r\n // if (widget.chart.api) widget.chart.api.update();\r\n // }, 400)\r\n // }\r\n // }\r\n // };\r\n // // $scope.dashboard = {\r\n // // chart: {\r\n // // type: 'discreteBarChart',\r\n // // height: 450,\r\n // // margin: {\r\n // // top: 20,\r\n // // right: 20,\r\n // // bottom: 60,\r\n // // left: 55\r\n // // },\r\n // // x: function (d) { return d.label; },\r\n // // y: function (d) { return d.value; },\r\n // // showValues: true,\r\n // // valueFormat: function (d) {\r\n // // return d3.format(',.4f')(d);\r\n // // },\r\n // // transitionDuration: 500,\r\n // // xAxis: {\r\n // // axisLabel: 'X Axis'\r\n // // },\r\n // // yAxis: {\r\n // // axisLabel: 'Y Axis',\r\n // // axisLabelDistance: 30\r\n // // }\r\n // // }\r\n // $scope.exampleData = [\r\n // {\r\n // \"key\": \"Series 1\",\r\n // \"values\": [ [ 1025409600000 , 0] , [ 1028088000000 , -6.3382185140371] , [ 1030766400000 , -5.9507873460847] , [ 1033358400000 , -11.569146943813] , [ 1036040400000 , -5.4767332317425] , [ 1038632400000 , 0.50794682203014] , [ 1041310800000 , -5.5310285460542] , [ 1043989200000 , -5.7838296963382] , [ 1046408400000 , -7.3249341615649] , [ 1049086800000 , -6.7078630712489] , [ 1051675200000 , 0.44227126150934] , [ 1054353600000 , 7.2481659343222] , [ 1056945600000 , 9.2512381306992] , [ 1059624000000 , 11.341210982529] , [ 1062302400000 , 14.734820409020] , [ 1064894400000 , 12.387148007542] , [ 1067576400000 , 18.436471461827] , [ 1070168400000 , 19.830742266977] , [ 1072846800000 , 22.643205829887] , [ 1075525200000 , 26.743156781239] , [ 1078030800000 , 29.597478802228] , [ 1080709200000 , 30.831697585341] , [ 1083297600000 , 28.054068024708] , [ 1085976000000 , 29.294079423832] , [ 1088568000000 , 30.269264061274] , [ 1091246400000 , 24.934526898906] , [ 1093924800000 , 24.265982759406] , [ 1096516800000 , 27.217794897473] , [ 1099195200000 , 30.802601992077] , [ 1101790800000 , 36.331003758254] , [ 1104469200000 , 43.142498700060] , [ 1107147600000 , 40.558263931958] , [ 1109566800000 , 42.543622385800] , [ 1112245200000 , 41.683584710331] , [ 1114833600000 , 36.375367302328] , [ 1117512000000 , 40.719688980730] , [ 1120104000000 , 43.897963036919] , [ 1122782400000 , 49.797033975368] , [ 1125460800000 , 47.085993935989] , [ 1128052800000 , 46.601972859745] , [ 1130734800000 , 41.567784572762] , [ 1133326800000 , 47.296923737245] , [ 1136005200000 , 47.642969612080] , [ 1138683600000 , 50.781515820954] , [ 1141102800000 , 52.600229204305] , [ 1143781200000 , 55.599684490628] , [ 1146369600000 , 57.920388436633] , [ 1149048000000 , 53.503593218971] , [ 1151640000000 , 53.522973979964] , [ 1154318400000 , 49.846822298548] , [ 1156996800000 , 54.721341614650] , [ 1159588800000 , 58.186236223191] , [ 1162270800000 , 63.908065540997] , [ 1164862800000 , 69.767285129367] , [ 1167541200000 , 72.534013373592] , [ 1170219600000 , 77.991819436573] , [ 1172638800000 , 78.143584404990] , [ 1175313600000 , 83.702398665233] , [ 1177905600000 , 91.140859312418] , [ 1180584000000 , 98.590960607028] , [ 1183176000000 , 96.245634754228] , [ 1185854400000 , 92.326364432615] , [ 1188532800000 , 97.068765332230] , [ 1191124800000 , 105.81025556260] , [ 1193803200000 , 114.38348777791] , [ 1196398800000 , 103.59604949810] , [ 1199077200000 , 101.72488429307] , [ 1201755600000 , 89.840147735028] , [ 1204261200000 , 86.963597532664] , [ 1206936000000 , 84.075505208491] , [ 1209528000000 , 93.170105645831] , [ 1212206400000 , 103.62838083121] , [ 1214798400000 , 87.458241365091] , [ 1217476800000 , 85.808374141319] , [ 1220155200000 , 93.158054469193] , [ 1222747200000 , 65.973252382360] , [ 1225425600000 , 44.580686638224] , [ 1228021200000 , 36.418977140128] , [ 1230699600000 , 38.727678144761] , [ 1233378000000 , 36.692674173387] , [ 1235797200000 , 30.033022809480] , [ 1238472000000 , 36.707532162718] , [ 1241064000000 , 52.191457688389] , [ 1243742400000 , 56.357883979735] , [ 1246334400000 , 57.629002180305] , [ 1249012800000 , 66.650985790166] , [ 1251691200000 , 70.839243432186] , [ 1254283200000 , 78.731998491499] , [ 1256961600000 , 72.375528540349] , [ 1259557200000 , 81.738387881630] , [ 1262235600000 , 87.539792394232] , [ 1264914000000 , 84.320762662273] , [ 1267333200000 , 90.621278391889] , [ 1270008000000 , 102.47144881651] , [ 1272600000000 , 102.79320353429] , [ 1275278400000 , 90.529736050479] , [ 1277870400000 , 76.580859994531] , [ 1280548800000 , 86.548979376972] , [ 1283227200000 , 81.879653334089] , [ 1285819200000 , 101.72550015956] , [ 1288497600000 , 107.97964852260] , [ 1291093200000 , 106.16240630785] , [ 1293771600000 , 114.84268599533] , [ 1296450000000 , 121.60793322282] , [ 1298869200000 , 133.41437346605] , [ 1301544000000 , 125.46646042904] , [ 1304136000000 , 129.76784954301] , [ 1306814400000 , 128.15798861044] , [ 1309406400000 , 121.92388706072] , [ 1312084800000 , 116.70036100870] , [ 1314763200000 , 88.367701837033] , [ 1317355200000 , 59.159665765725] , [ 1320033600000 , 79.793568139753] , [ 1322629200000 , 75.903834028417] , [ 1325307600000 , 72.704218209157] , [ 1327986000000 , 84.936990804097] , [ 1330491600000 , 93.388148670744]]\r\n // }];\r\n // //console.log(generator)\r\n // $scope.dashboard = {\r\n // widgets: [{\r\n // id: \"W4001\",\r\n // col: 0,\r\n // row: 0,\r\n // sizeY: 1,\r\n // sizeX: 2,\r\n // dataLoad: false,\r\n // name: \"Order Volume\",\r\n // type: 'lineChart',\r\n // chart: {\r\n // options: generator.lineChart.options(),\r\n // data: generator.lineChart.data(),\r\n // api: {},\r\n // height: 450\r\n // }\r\n // }]\r\n // };\r\n\r\n\r\n // // widget events\r\n // $scope.events = {\r\n // resize: function (e, scope) {\r\n // $timeout(function () {\r\n // if (scope.api && scope.api.update) scope.api.update();\r\n // }, 10)\r\n // }\r\n // };\r\n\r\n // $scope.config = { visible: true };\r\n\r\n // //make chart visible after grid have been created\r\n // $timeout(function () {\r\n // //alert($scope.widget.name);\r\n // //$scope.widget.dataLoad = true;\r\n\r\n // $scope.config.visible = true;\r\n // }, 200);\r\n\r\n // //subscribe widget on window resize event\r\n // angular.element(window).on('resize', function (e) {\r\n // $scope.$broadcast('resize');\r\n // });\r\n\r\n // // grid manipulation\r\n // $scope.clear = function () {\r\n // // $scope.dashboard.widgets = [];\r\n // };\r\n\r\n\r\n // // loadChart();\r\n // function loadChart() {\r\n // var widgets = $scope.dashboard.widgets;\r\n // angular.forEach(widgets, function (widgets, index) {\r\n\r\n // if ($scope.dashboard.widgets[index].dataType == \"xml\") {\r\n // $http({\r\n // url: $scope.dashboard.widgets[index].url,\r\n // dataType: $scope.dashboard.widgets[index].dataType,\r\n // method: $scope.dashboard.widgets[index].method,\r\n // data: $scope.dashboard.widgets[index].inputParams,\r\n // headers: {\r\n // \"Content-Type\": $scope.dashboard.widgets[index].contentType,\r\n // 'Access-Control-Allow-Origin': '*',\r\n\r\n // }\r\n // }).success(function (response, status, headers, input) {\r\n // //var result = JSON.parse(response)\r\n\r\n // if ($scope.dashboard.widgets[index].type == \"gaugeChart\") {\r\n // //$scope.dashboard.widgets[index].chart.data = [[result.Data]];\r\n // if ($scope.dashboard.widgets[index].dataSource == 'externalAPI') {\r\n // $scope.dashboard.widgets[index].chart.api.updateWithData([[parseInt($(response)\r\n // .find('getProcessCountOutput').find('response').text())]]);\r\n // }\r\n // else {\r\n // $scope.dashboard.widgets[index].chart.api.updateWithData([[result.Data]]);\r\n // }\r\n\r\n // $scope.dashboard.widgets[index].dataLoad = true;\r\n // $scope.$apply();\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n // else {\r\n\r\n\r\n\r\n // $http({\r\n // url: $scope.dashboard.widgets[index].url,\r\n // dataType: $scope.dashboard.widgets[index].dataType,\r\n // method: $scope.dashboard.widgets[index].method,\r\n // // data: $scope.dashboard.widgets[index].dataType == 'json' ? '':$scope.dashboard.widgets[index].inputParams,\r\n // params: $scope.dashboard.widgets[index].inputParams,\r\n // headers: {\r\n // \"Content-Type\": $scope.dashboard.widgets[index].contentType,\r\n // 'Access-Control-Allow-Origin': '*',\r\n\r\n // }\r\n // }).success(function (response, status, headers, input) {\r\n // var result = JSON.parse(response.d)\r\n\r\n // if ($scope.dashboard.widgets[index].type == \"gaugeChart\") {\r\n // //$scope.dashboard.widgets[index].chart.data = [[result.Data]];\r\n // if ($scope.dashboard.widgets[index].dataSource == 'externalAPI') {\r\n // $scope.dashboard.widgets[index].chart.api.updateWithData([[$(response)\r\n // .find('getProcessCountOutput').find('response').text()]]);\r\n // }\r\n // else {\r\n // var displayRes = JSON.parse(response.d);\r\n // var displayTileChartDetails = $scope.$eval(displayRes.Data);\r\n // var data = displayTileChartDetails[0].CHART_DATA;\r\n // var color = displayTileChartDetails[0].THRESHOLD_COLOR;\r\n // var hour = displayTileChartDetails[0].LAST_MODIFIED_DATE;\r\n // $scope.dashboard.widgets[index].chart.api.updateWithData([[data]]);\r\n // // $scope.dashboard.widgets[index].chart.api.updateWithData([[result.Data]]);\r\n // if (color != undefined && color != \"\") {\r\n // $scope.dashboard.widgets[index].backgroundColor = color;\r\n // $scope.dashboard.widgets[index].textColor = \"white\";\r\n // }\r\n // $scope.dashboard.widgets[index].lastModifiedHour = hour;\r\n // }\r\n\r\n // $scope.dashboard.widgets[index].dataLoad = true;\r\n\r\n // $scope.$apply();\r\n // }\r\n\r\n // else if ($scope.dashboard.widgets[index].type == \"lineChart\") {\r\n\r\n // var displayRes = JSON.parse(response.d)\r\n // var displayTileChartDetails = $scope.$eval(displayRes.Data);\r\n // var s1 = $scope.$eval(\"[\" + displayTileChartDetails[0].CHART_DATA + \"]\");\r\n // var ticks = $scope.$eval(\"[\" + displayTileChartDetails[0].X_AXIS + \"]\");\r\n // var total = displayTileChartDetails[0].TOTAL_ORDER;\r\n // var hour = displayTileChartDetails[0].LAST_MODIFIED_DATE;\r\n\r\n // var data = [];\r\n // for (var i = 0; i < s1.length; i++) {\r\n // data.push({ x: ticks[i], y: s1[i] });\r\n\r\n // }\r\n\r\n // var returnVal = [{ values: data, key: 'Orders', color: '#ff7f0e' }];\r\n // //$scope.dashboard.widgets[index].chart.data = [[returnVal]];\r\n // $scope.dashboard.widgets[index].chart.data = returnVal;\r\n // $scope.dashboard.widgets[index].chart.api.updateWithData(returnVal);\r\n // $scope.dashboard.widgets[index].total = \"-\" + total;\r\n // $scope.dashboard.widgets[index].lastModifiedHour = hour;\r\n // $scope.dashboard.widgets[index].dataLoad = true;\r\n // $scope.$apply();\r\n // }\r\n\r\n // else if ($scope.dashboard.widgets[index].type == \"pieChart\") {\r\n\r\n // var displayRes = JSON.parse(response.d)\r\n // var displayTileChartDetails = $scope.$eval(displayRes.Data);\r\n // var dataPoints = $scope.$eval(\"[\" + displayTileChartDetails[0].CHART_DATA + \"]\");\r\n // var ticks = displayTileChartDetails[0].X_AXIS.split(\",\");\r\n // var hour = displayTileChartDetails[0].LAST_MODIFIED_DATE;\r\n\r\n // var returnVal = [];\r\n // for (var i = 0; i < dataPoints.length; i++) {\r\n // data = {};\r\n // data.key = ticks[i];\r\n // data.y = dataPoints[i];\r\n // returnVal.push(data);\r\n\r\n // }\r\n\r\n // // var returnVal = [ data] ];\r\n\r\n\r\n\r\n // $scope.dashboard.widgets[index].chart.data = returnVal;\r\n // $scope.dashboard.widgets[index].chart.api.updateWithData(returnVal);\r\n\r\n // $scope.dashboard.widgets[index].lastModifiedHour = hour;\r\n // $scope.dashboard.widgets[index].dataLoad = true;\r\n // $scope.$apply();\r\n // }\r\n\r\n // else if ($scope.dashboard.widgets[index].type == \"multiBarChart\") {\r\n\r\n // var displayRes = JSON.parse(response.d)\r\n // var displayTileChartDetails = $scope.$eval(displayRes.Data);\r\n // var dataChart1 = $scope.$eval(\"[\" + displayTileChartDetails[0].CHART_DATA1 + \"]\");\r\n // var dataChart2 = $scope.$eval(\"[\" + displayTileChartDetails[0].CHART_DATA2 + \"]\");\r\n // var ticks = displayTileChartDetails[0].X_AXIS.split(\",\");\r\n // var hour = displayTileChartDetails[0].LAST_MODIFIED_DATE;\r\n // var color = displayTileChartDetails[0].THRESHOLD_COLOR;\r\n // var returnVal1 = [];\r\n // var returnVal2 = [];\r\n // for (var i = 0; i < ticks.length; i++) {\r\n // var data1 = {};\r\n // data1.x = ticks[i];\r\n // data1.y = dataChart1[i];\r\n // data1.series = 5;\r\n // returnVal1.push(data1);\r\n\r\n\r\n // var data2 = {};\r\n // data2.x = ticks[i];\r\n // data2.y = dataChart2[i];\r\n\r\n // returnVal2.push(data2);\r\n\r\n // }\r\n\r\n\r\n\r\n // // var returnVal = [ data] ];\r\n\r\n\r\n // if (index == 2)\r\n // $scope.dashboard.widgets[index].chart.data = [{ \"key\": \"Current Week\", \"values\": returnVal1, \"yAxis\": 1, \"type\": \"bar\" }, { \"key\": \" PTD\", \"values\": returnVal2, \"yAxis\": 2, \"type\": \"bar\" }];\r\n // else if (index == 3)\r\n // $scope.dashboard.widgets[index].chart.data = [{ \"key\": \"Fraud Count\", \"values\": returnVal1, \"yAxis\": 1, \"type\": \"bar\" }, { \"key\": \"Age\", \"values\": returnVal2, \"yAxis\": 2, \"type\": \"bar\" }];\r\n\r\n // if (color != undefined && color != \"\") {\r\n // $scope.dashboard.widgets[index].backgroundColor = \"Red\";\r\n // $scope.dashboard.widgets[index].textColor = \"white\";\r\n // }\r\n\r\n // $scope.dashboard.widgets[index].lastModifiedHour = hour;\r\n\r\n // $scope.dashboard.widgets[index].dataLoad = true;\r\n // $scope.$apply();\r\n // }\r\n // else if ($scope.dashboard.widgets[index].type == \"multiBarHorizontalChart\") {\r\n\r\n // var displayRes = JSON.parse(response.d)\r\n // var displayTileChartDetails = $scope.$eval(displayRes.Data);\r\n // var dataChart1 = $scope.$eval(\"[\" + displayTileChartDetails[0].CHART_DATA + \"]\");\r\n // var ticks = displayTileChartDetails[0].X_AXIS.split(\",\");\r\n // var hour = displayTileChartDetails[0].LAST_MODIFIED_DATE;\r\n // var returnVal1 = [];\r\n // var returnVal2 = [];\r\n // for (var i = 0; i < ticks.length; i++) {\r\n // var data1 = {};\r\n // data1.x = ticks[i];\r\n // data1.y = dataChart1[i];\r\n // returnVal1.push(data1);\r\n // }\r\n\r\n // $scope.dashboard.widgets[index].chart.data = [{ \"key\": \"Mobility Order Count\", \"values\": returnVal1 }];\r\n // $scope.dashboard.widgets[index].lastModifiedHour = hour;\r\n // $scope.dashboard.widgets[index].dataLoad = true;\r\n // $scope.$apply();\r\n // }\r\n\r\n\r\n\r\n // });\r\n // }// }\r\n\r\n // });\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n // // $scope.openSettings = function (widget) {\r\n // // $modal.open({\r\n // // scope: $scope,\r\n // // templateUrl: 'pages/gridster/widgetSettings.html',\r\n // // controller: 'WidgetSettingsCtrl',\r\n // // resolve: {\r\n // // widget: function () {\r\n // // return widget;\r\n // // }\r\n // // }\r\n // // });\r\n // // };\r\n\r\n // // }\r\n\r\n\r\n // //.controller('WidgetSettingsCtrl', ['$scope', '$timeout', '$rootScope', '$modalInstance', 'widget', 'generator',\r\n // function WidgetSettingsCtrl($scope, $timeout, $rootScope, $modalInstance, widget, generator) {\r\n // $scope.widget = widget;\r\n // $scope.widgetTypes = Object.keys(generator);\r\n\r\n // $scope.form = {\r\n // name: widget.name,\r\n // sizeX: widget.sizeX,\r\n // sizeY: widget.sizeY,\r\n // col: widget.col,\r\n // row: widget.row,\r\n // type: widget.type\r\n // };\r\n\r\n // $scope.sizeOptions = [{\r\n // id: '1',\r\n // name: '1'\r\n // }, {\r\n // id: '2',\r\n // name: '2'\r\n // }, {\r\n // id: '3',\r\n // name: '3'\r\n // }, {\r\n // id: '4',\r\n // name: '4'\r\n // }];\r\n\r\n // $scope.dismiss = function () {\r\n // $modalInstance.dismiss();\r\n // };\r\n\r\n // $scope.remove = function () {\r\n // $scope.dashboard.widgets.splice($scope.dashboard.widgets.indexOf(widget), 1);\r\n // $modalInstance.close();\r\n // };\r\n\r\n // $scope.submit = function () {\r\n // angular.extend(widget, $scope.form);\r\n\r\n // //update with new options and data\r\n // if (widget.type) {\r\n // widget.chart.options = generator[widget.type].options();\r\n // widget.chart.data = generator[widget.type].data();\r\n // }\r\n // $modalInstance.close(widget);\r\n\r\n // //update new chart\r\n // $timeout(function () {\r\n // widget.chart.api.update();\r\n // }, 600)\r\n // };\r\n\r\n // }\r\n\r\n // //.filter('object2Array', \r\n // function object2Array() {\r\n // return function (input) {\r\n // var out = [];\r\n // for (var i in input) {\r\n // out.push(input[i]);\r\n // }\r\n // return out;\r\n // }\r\n // };\r\n\r\n\r\n // //.factory('externalAPI', function (){\r\n // // return {\r\n // // faultAPI: {\r\n // // url: \"http://zlp07168.vci.att.com:7607/active-bpel/services/ActiveBpelAdmin\",\r\n // // dataType: \"xml\",\r\n // // method: \"POST\",\r\n // // data: '' +\r\n // // '' +\r\n // // '' +\r\n // // '' +\r\n // // ' getProcessProperty(\"State\") = 4 ' +\r\n // // '' +\r\n // // '' +\r\n // // '' +\r\n // // '',\r\n // // params: {\r\n // // widgetID: $scope.dashboard.widgets[i].id,\r\n // // Index: i,\r\n // // Type: $scope.dashboard.widgets[i].type \r\n\r\n // // },\r\n // // headers: {\r\n // // \"Content-Type\": \"text/xml\",\r\n // // 'Access-Control-Allow-Origin': '*',\r\n\r\n // // }\r\n\r\n // // }\r\n // // }\r\n // //})\r\n\r\n // //.factory('generator', \r\n // function generator() {\r\n // return {\r\n // externalApi: {\r\n // options: function () {\r\n // return {\r\n // //url: 'http://zlp07168.vci.att.com:7607/active-bpel/services/ActiveBpelAdmin'\r\n // }\r\n // }\r\n // },\r\n\r\n // lineChart: {\r\n // options: function () {\r\n // return {\r\n // chart: {\r\n // type: 'lineChart',\r\n // margin: {\r\n // top: 20,\r\n // right: 20,\r\n // bottom: 40,\r\n // left: 55\r\n // },\r\n // // width: 300,\r\n // height: 100,\r\n // x: function (d) { return d.x; },\r\n // y: function (d) { return d.y; },\r\n // useInteractiveGuideline: true,\r\n // xAxis: {\r\n // axisLabel: 'Time (Hrs)'\r\n // },\r\n // yAxis: {\r\n // axisLabel: '#Volume',\r\n // tickFormat: function (d) {\r\n // return d3.format('.f')(d);\r\n // },\r\n // axisLabelDistance: -10\r\n // }\r\n // }\r\n // }\r\n // },\r\n // data: lineChartData\r\n // },\r\n // cumulativeLineChart: {\r\n // options: function () {\r\n // return {\r\n // chart: {\r\n // type: 'cumulativeLineChart',\r\n // margin: {\r\n // top: 20,\r\n // right: 20,\r\n // bottom: 40,\r\n // left: 65\r\n // },\r\n // x: function (d) { return d[0]; },\r\n // y: function (d) { return d[1] / 100; },\r\n // average: function (d) { return d.mean / 100; },\r\n // color: d3.scale.category10().range(),\r\n // transitionDuration: 300,\r\n // clipVoronoi: false,\r\n // xAxis: {\r\n // axisLabel: 'X Axis',\r\n // tickFormat: function (d) {\r\n // return d3.time.format('%m/%d/%y')(new Date(d))\r\n // },\r\n // showMaxMin: false\r\n // },\r\n\r\n // yAxis: {\r\n // axisLabel: 'Y Axis',\r\n // tickFormat: function (d) {\r\n // return d3.format(',.1%')(d);\r\n // },\r\n // axisLabelDistance: 0\r\n // }\r\n // }\r\n // }\r\n // },\r\n // data: cumulativeChartData\r\n // },\r\n // sunburstChart: {\r\n // options: function () {\r\n // return {\r\n // chart: {\r\n // type: 'sunburstChart',\r\n // height: 250,\r\n // color: d3.scale.category20c(),\r\n // duration: 250\r\n // }\r\n // }\r\n // },\r\n // data: sunburstChartData\r\n // },\r\n // multiBarChart: {\r\n // options: function () {\r\n // return {\r\n // chart: {\r\n // \"type\": \"multiBarChart\",\r\n // \"height\": 250,\r\n // \"margin\": {\r\n // \"top\": 20,\r\n // \"right\": 20,\r\n // \"bottom\": 45,\r\n // \"left\": 45\r\n // },\r\n // \"rotateLabels\": 45,\r\n // \"clipEdge\": true,\r\n // \"duration\": 500,\r\n // \"stacked\": false,\r\n // \"grouped\": true,\r\n // \"xAxis\": {\r\n // \"axisLabel\": \"\",\r\n // \"showMaxMin\": false\r\n // },\r\n // \"yAxis\": {\r\n // \"axisLabel\": \"\",\r\n // \"axisLabelDistance\": -20\r\n // }\r\n\r\n\r\n // }\r\n // }\r\n // },\r\n // data: multiBarChartData\r\n // },\r\n // pieChart: {\r\n // options: function (width, height) {\r\n // return {\r\n // chart: {\r\n // type: 'pieChart',\r\n // width: width,\r\n // height: height,\r\n // margin: {\r\n // top: 0,\r\n // right: 0,\r\n // bottom: 30,\r\n // left: 0\r\n // },\r\n // x: function (d) { return d.key; },\r\n // y: function (d) { return d.y; },\r\n // showLabels: false,\r\n // labelSunbeamLayout: true,\r\n // donutLabelsOutside: true,\r\n // donutRatio: 0.3,\r\n // donut: true,\r\n // transitionDuration: 500,\r\n // labelThreshold: 0.02,\r\n // legend: {\r\n // margin: {\r\n // top: 5,\r\n // right: 35,\r\n // bottom: 0,\r\n // left: 0\r\n // }\r\n // }\r\n // }\r\n // }\r\n // },\r\n // data: pieChartData\r\n // },\r\n // multiBarHorizontalChart: {\r\n // options: function (color) {\r\n // return {\r\n // chart: {\r\n // \"type\": \"multiBarHorizontalChart\",\r\n // \"height\": 130,\r\n // \"margin\": {\r\n // \"top\": 20,\r\n // \"right\": 20,\r\n // \"bottom\": 45,\r\n // \"left\": 57\r\n // },\r\n // \"clipEdge\": true,\r\n // \"duration\": 500,\r\n // \"xAxis\": {\r\n // \"axisLabel\": \"\",\r\n // \"showMaxMin\": false,\r\n\r\n // //labels: {\r\n // // rotation: -65,\r\n // // style: {\r\n // // fontSize: '13px',\r\n // // fontFamily: 'Verdana, sans-serif'\r\n // // }\r\n // //}\r\n // },\r\n // \"yAxis\": {\r\n // \"axisLabel\": \"\",\r\n // \"axisLabelDistance\": -20\r\n // }\r\n\r\n // }\r\n // }\r\n // },\r\n // data: multiBarChartData\r\n // },\r\n // boxPlotChart: {\r\n // options: function () {\r\n // return {\r\n // chart: {\r\n // type: 'boxPlotChart',\r\n // margin: {\r\n // top: 20,\r\n // right: 20,\r\n // bottom: 20,\r\n // left: 40\r\n // },\r\n // color: ['darkblue', 'darkorange', 'green', 'darkred', 'darkviolet'],\r\n // x: function (d) { return d.label; },\r\n // //y: function(d){return d.values.Q3;},\r\n // maxBoxWidth: 55,\r\n // yDomain: [0, 500]\r\n // }\r\n // }\r\n // },\r\n // data: boxPlotChartData\r\n // },\r\n // gaugeChart: {\r\n // options: function () {\r\n // return {\r\n // chart: {\r\n // type: 'gaugeChart',\r\n // duration: 500,\r\n // min: 0,\r\n // max: 5000,\r\n\r\n // }\r\n // }\r\n // },\r\n // data: gaugeChartData\r\n // }\r\n\r\n // };\r\n\r\n // /*Random Data Generator */\r\n // function lineChartData() {\r\n // var sin = [], sin2 = [],\r\n // cos = [];\r\n\r\n // //Data is represented as an array of {x,y} pairs.\r\n // for (var i = 0; i < 100; i++) {\r\n // sin.push({ x: i, y: Math.sin(i / 10) });\r\n // sin2.push({ x: i, y: i % 10 == 5 ? null : Math.sin(i / 10) * 0.25 + 0.5 });\r\n // cos.push({ x: i, y: .5 * Math.cos(i / 10 + 2) + Math.random() / 10 });\r\n // }\r\n\r\n // //Line chart data should be sent as an array of series objects.\r\n // return [\r\n // {\r\n // values: sin, //values - represents the array of {x,y} data points\r\n // key: 'Sine Wave', //key - the name of the series.\r\n // color: '#ff7f0e' //color - optional: choose your own line color.\r\n // },\r\n // {\r\n // values: cos,\r\n // key: 'Cosine Wave',\r\n // color: '#2ca02c'\r\n // },\r\n // {\r\n // values: sin2,\r\n // key: 'Another sine wave',\r\n // color: '#7777ff',\r\n // area: true //area - set to true if you want this line to turn into a filled area chart.\r\n // }\r\n // ];\r\n // }\r\n // function cumulativeChartData() {\r\n // return [\r\n // {\r\n // key: \"Long\",\r\n // values: [[1083297600000, -2.974623048543], [1085976000000, -1.7740300785979], [1088568000000, 4.4681318138177], [1091246400000, 7.0242541001353], [1093924800000, 7.5709603667586], [1096516800000, 20.612245065736], [1099195200000, 21.698065237316], [1101790800000, 40.501189458018], [1104469200000, 50.464679413194], [1107147600000, 48.917421973355], [1109566800000, 63.750936549160], [1112245200000, 59.072499126460], [1114833600000, 43.373158880492], [1117512000000, 54.490918947556], [1120104000000, 56.661178852079], [1122782400000, 73.450103545496], [1125460800000, 71.714526354907], [1128052800000, 85.221664349607], [1130734800000, 77.769261392481], [1133326800000, 95.966528716500], [1136005200000, 107.59132116397], [1138683600000, 127.25740096723], [1141102800000, 122.13917498830], [1143781200000, 126.53657279774], [1146369600000, 132.39300992970], [1149048000000, 120.11238242904], [1151640000000, 118.41408917750], [1154318400000, 107.92918924621], [1156996800000, 110.28057249569], [1159588800000, 117.20485334692], [1162270800000, 141.33556756948], [1164862800000, 159.59452727893], [1167541200000, 167.09801853304], [1170219600000, 185.46849659215], [1172638800000, 184.82474099990], [1175313600000, 195.63155213887], [1177905600000, 207.40597044171], [1180584000000, 230.55966698196], [1183176000000, 239.55649035292], [1185854400000, 241.35915085208], [1188532800000, 239.89428956243], [1191124800000, 260.47781917715], [1193803200000, 276.39457482225], [1196398800000, 258.66530682672], [1199077200000, 250.98846121893], [1201755600000, 226.89902618127], [1204261200000, 227.29009273807], [1206936000000, 218.66476654350], [1209528000000, 232.46605902918], [1212206400000, 253.25667081117], [1214798400000, 235.82505363925], [1217476800000, 229.70112774254], [1220155200000, 225.18472705952], [1222747200000, 189.13661746552], [1225425600000, 149.46533007301], [1228021200000, 131.00340772114], [1230699600000, 135.18341728866], [1233378000000, 109.15296887173], [1235797200000, 84.614772549760], [1238472000000, 100.60810015326], [1241064000000, 141.50134895610], [1243742400000, 142.50405083675], [1246334400000, 139.81192372672], [1249012800000, 177.78205544583], [1251691200000, 194.73691933074], [1254283200000, 209.00838460225], [1256961600000, 198.19855877420], [1259557200000, 222.37102417812], [1262235600000, 234.24581081250], [1264914000000, 228.26087689346], [1267333200000, 248.81895126250], [1270008000000, 270.57301075186], [1272600000000, 292.64604322550], [1275278400000, 265.94088520518], [1277870400000, 237.82887467569], [1280548800000, 265.55973314204], [1283227200000, 248.30877330928], [1285819200000, 278.14870066912], [1288497600000, 292.69260960288], [1291093200000, 300.84263809599], [1293771600000, 326.17253914628], [1296450000000, 337.69335966505], [1298869200000, 339.73260965121], [1301544000000, 346.87865120765], [1304136000000, 347.92991526628], [1306814400000, 342.04627502669], [1309406400000, 333.45386231233], [1312084800000, 323.15034181243], [1314763200000, 295.66126882331], [1317355200000, 251.48014579253], [1320033600000, 295.15424257905], [1322629200000, 294.54766764397], [1325307600000, 295.72906119051], [1327986000000, 325.73351347613], [1330491600000, 340.16106061186], [1333166400000, 345.15514071490], [1335758400000, 337.10259395679], [1338436800000, 318.68216333837], [1341028800000, 317.03683945246], [1343707200000, 318.53549659997], [1346385600000, 332.85381464104], [1348977600000, 337.36534373477], [1351656000000, 350.27872156161], [1354251600000, 349.45128876100]],\r\n // mean: 250\r\n // },\r\n // {\r\n // key: \"Short\",\r\n // values: [[1083297600000, -0.77078283705125], [1085976000000, -1.8356366650335], [1088568000000, -5.3121322073127], [1091246400000, -4.9320975829662], [1093924800000, -3.9835408823225], [1096516800000, -6.8694685316805], [1099195200000, -8.4854877428545], [1101790800000, -15.933627197384], [1104469200000, -15.920980069544], [1107147600000, -12.478685045651], [1109566800000, -17.297761889305], [1112245200000, -15.247129891020], [1114833600000, -11.336459046839], [1117512000000, -13.298990907415], [1120104000000, -16.360027000056], [1122782400000, -18.527929522030], [1125460800000, -22.176516738685], [1128052800000, -23.309665368330], [1130734800000, -21.629973409748], [1133326800000, -24.186429093486], [1136005200000, -29.116707312531], [1138683600000, -37.188037874864], [1141102800000, -34.689264821198], [1143781200000, -39.505932105359], [1146369600000, -45.339572492759], [1149048000000, -43.849353192764], [1151640000000, -45.418353922571], [1154318400000, -44.579281059919], [1156996800000, -44.027098363370], [1159588800000, -41.261306759439], [1162270800000, -47.446018534027], [1164862800000, -53.413782948909], [1167541200000, -50.700723647419], [1170219600000, -56.374090913296], [1172638800000, -61.754245220322], [1175313600000, -66.246241587629], [1177905600000, -75.351650899999], [1180584000000, -81.699058262032], [1183176000000, -82.487023368081], [1185854400000, -86.230055113277], [1188532800000, -84.746914818507], [1191124800000, -100.77134971977], [1193803200000, -109.95435565947], [1196398800000, -99.605672965057], [1199077200000, -99.607249394382], [1201755600000, -94.874614950188], [1204261200000, -105.35899063105], [1206936000000, -106.01931193802], [1209528000000, -110.28883571771], [1212206400000, -119.60256203030], [1214798400000, -115.62201315802], [1217476800000, -106.63824185202], [1220155200000, -99.848746318951], [1222747200000, -85.631219602987], [1225425600000, -63.547909262067], [1228021200000, -59.753275364457], [1230699600000, -63.874977883542], [1233378000000, -56.865697387488], [1235797200000, -54.285579501988], [1238472000000, -56.474659581885], [1241064000000, -63.847137745644], [1243742400000, -68.754247867325], [1246334400000, -69.474257009155], [1249012800000, -75.084828197067], [1251691200000, -77.101028237237], [1254283200000, -80.454866854387], [1256961600000, -78.984349952220], [1259557200000, -83.041230807854], [1262235600000, -84.529748348935], [1264914000000, -83.837470195508], [1267333200000, -87.174487671969], [1270008000000, -90.342293007487], [1272600000000, -93.550928464991], [1275278400000, -85.833102140765], [1277870400000, -79.326501831592], [1280548800000, -87.986196903537], [1283227200000, -85.397862121771], [1285819200000, -94.738167050020], [1288497600000, -98.661952897151], [1291093200000, -99.609665952708], [1293771600000, -103.57099836183], [1296450000000, -104.04353411322], [1298869200000, -108.21382792587], [1301544000000, -108.74006900920], [1304136000000, -112.07766650960], [1306814400000, -109.63328199118], [1309406400000, -106.53578966772], [1312084800000, -103.16480871469], [1314763200000, -95.945078001828], [1317355200000, -81.226687340874], [1320033600000, -90.782206596168], [1322629200000, -89.484445370113], [1325307600000, -88.514723135326], [1327986000000, -93.381292724320], [1330491600000, -97.529705609172], [1333166400000, -99.520481439189], [1335758400000, -99.430184898669], [1338436800000, -93.349934521973], [1341028800000, -95.858475286491], [1343707200000, -95.522755836605], [1346385600000, -98.503848862036], [1348977600000, -101.49415251896], [1351656000000, -101.50099325672], [1354251600000, -99.487094927489]],\r\n // mean: -60\r\n // },\r\n // {\r\n // key: \"Gross\",\r\n // mean: 125,\r\n // values: [[1083297600000, -3.7454058855943], [1085976000000, -3.6096667436314], [1088568000000, -0.8440003934950], [1091246400000, 2.0921565171691], [1093924800000, 3.5874194844361], [1096516800000, 13.742776534056], [1099195200000, 13.212577494462], [1101790800000, 24.567562260634], [1104469200000, 34.543699343650], [1107147600000, 36.438736927704], [1109566800000, 46.453174659855], [1112245200000, 43.825369235440], [1114833600000, 32.036699833653], [1117512000000, 41.191928040141], [1120104000000, 40.301151852023], [1122782400000, 54.922174023466], [1125460800000, 49.538009616222], [1128052800000, 61.911998981277], [1130734800000, 56.139287982733], [1133326800000, 71.780099623014], [1136005200000, 78.474613851439], [1138683600000, 90.069363092366], [1141102800000, 87.449910167102], [1143781200000, 87.030640692381], [1146369600000, 87.053437436941], [1149048000000, 76.263029236276], [1151640000000, 72.995735254929], [1154318400000, 63.349908186291], [1156996800000, 66.253474132320], [1159588800000, 75.943546587481], [1162270800000, 93.889549035453], [1164862800000, 106.18074433002], [1167541200000, 116.39729488562], [1170219600000, 129.09440567885], [1172638800000, 123.07049577958], [1175313600000, 129.38531055124], [1177905600000, 132.05431954171], [1180584000000, 148.86060871993], [1183176000000, 157.06946698484], [1185854400000, 155.12909573880], [1188532800000, 155.14737474392], [1191124800000, 159.70646945738], [1193803200000, 166.44021916278], [1196398800000, 159.05963386166], [1199077200000, 151.38121182455], [1201755600000, 132.02441123108], [1204261200000, 121.93110210702], [1206936000000, 112.64545460548], [1209528000000, 122.17722331147], [1212206400000, 133.65410878087], [1214798400000, 120.20304048123], [1217476800000, 123.06288589052], [1220155200000, 125.33598074057], [1222747200000, 103.50539786253], [1225425600000, 85.917420810943], [1228021200000, 71.250132356683], [1230699600000, 71.308439405118], [1233378000000, 52.287271484242], [1235797200000, 30.329193047772], [1238472000000, 44.133440571375], [1241064000000, 77.654211210456], [1243742400000, 73.749802969425], [1246334400000, 70.337666717565], [1249012800000, 102.69722724876], [1251691200000, 117.63589109350], [1254283200000, 128.55351774786], [1256961600000, 119.21420882198], [1259557200000, 139.32979337027], [1262235600000, 149.71606246357], [1264914000000, 144.42340669795], [1267333200000, 161.64446359053], [1270008000000, 180.23071774437], [1272600000000, 199.09511476051], [1275278400000, 180.10778306442], [1277870400000, 158.50237284410], [1280548800000, 177.57353623850], [1283227200000, 162.91091118751], [1285819200000, 183.41053361910], [1288497600000, 194.03065670573], [1291093200000, 201.23297214328], [1293771600000, 222.60154078445], [1296450000000, 233.35556801977], [1298869200000, 231.22452435045], [1301544000000, 237.84432503045], [1304136000000, 235.55799131184], [1306814400000, 232.11873570751], [1309406400000, 226.62381538123], [1312084800000, 219.34811113539], [1314763200000, 198.69242285581], [1317355200000, 168.90235629066], [1320033600000, 202.64725756733], [1322629200000, 203.05389378105], [1325307600000, 204.85986680865], [1327986000000, 229.77085616585], [1330491600000, 239.65202435959], [1333166400000, 242.33012622734], [1335758400000, 234.11773262149], [1338436800000, 221.47846307887], [1341028800000, 216.98308827912], [1343707200000, 218.37781386755], [1346385600000, 229.39368622736], [1348977600000, 230.54656412916], [1351656000000, 243.06087025523], [1354251600000, 244.24733578385]]\r\n // },\r\n // {\r\n // key: \"S&P 1500\",\r\n // values: [[1083297600000, -1.7798428181819], [1085976000000, -0.36883324836999], [1088568000000, 1.7312581046040], [1091246400000, -1.8356125950460], [1093924800000, -1.5396564170877], [1096516800000, -0.16867791409247], [1099195200000, 1.3754263993413], [1101790800000, 5.8171640898041], [1104469200000, 9.4350145241608], [1107147600000, 6.7649081510160], [1109566800000, 9.1568499314776], [1112245200000, 7.2485090994419], [1114833600000, 4.8762222306595], [1117512000000, 8.5992339354652], [1120104000000, 9.0896517982086], [1122782400000, 13.394644048577], [1125460800000, 12.311842010760], [1128052800000, 13.221003650717], [1130734800000, 11.218481009206], [1133326800000, 15.565352598445], [1136005200000, 15.623703865926], [1138683600000, 19.275255326383], [1141102800000, 19.432433717836], [1143781200000, 21.232881244655], [1146369600000, 22.798299192958], [1149048000000, 19.006125095476], [1151640000000, 19.151889158536], [1154318400000, 19.340022855452], [1156996800000, 22.027934841859], [1159588800000, 24.903300681329], [1162270800000, 29.146492833877], [1164862800000, 31.781626082589], [1167541200000, 33.358770738428], [1170219600000, 35.622684613497], [1172638800000, 33.332821711366], [1175313600000, 34.878748635832], [1177905600000, 40.582332613844], [1180584000000, 45.719535502920], [1183176000000, 43.239344722386], [1185854400000, 38.550955100342], [1188532800000, 40.585368816283], [1191124800000, 45.601374057981], [1193803200000, 48.051404337892], [1196398800000, 41.582581696032], [1199077200000, 40.650580792748], [1201755600000, 32.252222066493], [1204261200000, 28.106390258553], [1206936000000, 27.532698196687], [1209528000000, 33.986390463852], [1212206400000, 36.302660526438], [1214798400000, 25.015574480172], [1217476800000, 23.989494069029], [1220155200000, 25.934351445531], [1222747200000, 14.627592011699], [1225425600000, -5.2249403809749], [1228021200000, -12.330933408050], [1230699600000, -11.000291508188], [1233378000000, -18.563864948088], [1235797200000, -27.213097001687], [1238472000000, -20.834133840523], [1241064000000, -12.717886701719], [1243742400000, -8.1644613083526], [1246334400000, -7.9108408918201], [1249012800000, -0.77002391591209], [1251691200000, 2.8243816569672], [1254283200000, 6.8761411421070], [1256961600000, 4.5060912230294], [1259557200000, 10.487179794349], [1262235600000, 13.251375597594], [1264914000000, 9.2207594803415], [1267333200000, 12.836276936538], [1270008000000, 19.816793904978], [1272600000000, 22.156787167211], [1275278400000, 12.518039090576], [1277870400000, 6.4253587440854], [1280548800000, 13.847372028409], [1283227200000, 8.5454736090364], [1285819200000, 18.542801953304], [1288497600000, 23.037064683183], [1291093200000, 23.517422401888], [1293771600000, 31.804723416068], [1296450000000, 34.778247386072], [1298869200000, 39.584883855230], [1301544000000, 40.080647664875], [1304136000000, 44.180050667889], [1306814400000, 42.533535927221], [1309406400000, 40.105374449011], [1312084800000, 37.014659267156], [1314763200000, 29.263745084262], [1317355200000, 19.637463417584], [1320033600000, 33.157645345770], [1322629200000, 32.895053150988], [1325307600000, 34.111544824647], [1327986000000, 40.453985817473], [1330491600000, 46.435700783313], [1333166400000, 51.062385488671], [1335758400000, 50.130448220658], [1338436800000, 41.035476682018], [1341028800000, 46.591932296457], [1343707200000, 48.349391180634], [1346385600000, 51.913011286919], [1348977600000, 55.747238313752], [1351656000000, 52.991824077209], [1354251600000, 49.556311883284]]\r\n // }\r\n // ];\r\n // }\r\n // function stackedAreaChartData() {\r\n // return [\r\n // {\r\n // \"key\": \"North America\",\r\n // \"values\": [[1025409600000, 23.041422681023], [1028088000000, 19.854291255832], [1030766400000, 21.02286281168], [1033358400000, 22.093608385173], [1036040400000, 25.108079299458], [1038632400000, 26.982389242348], [1041310800000, 19.828984957662], [1043989200000, 19.914055036294], [1046408400000, 19.436150539916], [1049086800000, 21.558650338602], [1051675200000, 24.395594061773], [1054353600000, 24.747089309384], [1056945600000, 23.491755498807], [1059624000000, 23.376634878164], [1062302400000, 24.581223154533], [1064894400000, 24.922476843538], [1067576400000, 27.357712939042], [1070168400000, 26.503020572593], [1072846800000, 26.658901244878], [1075525200000, 27.065704156445], [1078030800000, 28.735320452588], [1080709200000, 31.572277846319], [1083297600000, 30.932161503638], [1085976000000, 31.627029785554], [1088568000000, 28.728743674232], [1091246400000, 26.858365172675], [1093924800000, 27.279922830032], [1096516800000, 34.408301211324], [1099195200000, 34.794362930439], [1101790800000, 35.609978198951], [1104469200000, 33.574394968037], [1107147600000, 31.979405070598], [1109566800000, 31.19009040297], [1112245200000, 31.083933968994], [1114833600000, 29.668971113185], [1117512000000, 31.490638014379], [1120104000000, 31.818617451128], [1122782400000, 32.960314008183], [1125460800000, 31.313383196209], [1128052800000, 33.125486081852], [1130734800000, 32.791805509149], [1133326800000, 33.506038030366], [1136005200000, 26.96501697216], [1138683600000, 27.38478809681], [1141102800000, 27.371377218209], [1143781200000, 26.309915460827], [1146369600000, 26.425199957518], [1149048000000, 26.823411519396], [1151640000000, 23.850443591587], [1154318400000, 23.158355444054], [1156996800000, 22.998689393695], [1159588800000, 27.9771285113], [1162270800000, 29.073672469719], [1164862800000, 28.587640408904], [1167541200000, 22.788453687637], [1170219600000, 22.429199073597], [1172638800000, 22.324103271052], [1175313600000, 17.558388444187], [1177905600000, 16.769518096208], [1180584000000, 16.214738201301], [1183176000000, 18.729632971229], [1185854400000, 18.814523318847], [1188532800000, 19.789986451358], [1191124800000, 17.070049054933], [1193803200000, 16.121349575716], [1196398800000, 15.141659430091], [1199077200000, 17.175388025297], [1201755600000, 17.286592443522], [1204261200000, 16.323141626568], [1206936000000, 19.231263773952], [1209528000000, 18.446256391095], [1212206400000, 17.822632399764], [1214798400000, 15.53936647598], [1217476800000, 15.255131790217], [1220155200000, 15.660963922592], [1222747200000, 13.254482273698], [1225425600000, 11.920796202299], [1228021200000, 12.122809090924], [1230699600000, 15.691026271393], [1233378000000, 14.720881635107], [1235797200000, 15.387939360044], [1238472000000, 13.765436672228], [1241064000000, 14.631445864799], [1243742400000, 14.292446536221], [1246334400000, 16.170071367017], [1249012800000, 15.948135554337], [1251691200000, 16.612872685134], [1254283200000, 18.778338719091], [1256961600000, 16.756026065421], [1259557200000, 19.385804443146], [1262235600000, 22.950590240168], [1264914000000, 23.61159018141], [1267333200000, 25.708586989581], [1270008000000, 26.883915999885], [1272600000000, 25.893486687065], [1275278400000, 24.678914263176], [1277870400000, 25.937275793024], [1280548800000, 29.461381693838], [1283227200000, 27.357322961861], [1285819200000, 29.057235285673], [1288497600000, 28.549434189386], [1291093200000, 28.506352379724], [1293771600000, 29.449241421598], [1296450000000, 25.796838168807], [1298869200000, 28.740145449188], [1301544000000, 22.091744141872], [1304136000000, 25.07966254541], [1306814400000, 23.674906973064], [1309406400000, 23.418002742929], [1312084800000, 23.24364413887], [1314763200000, 31.591854066817], [1317355200000, 31.497112374114], [1320033600000, 26.67238082043], [1322629200000, 27.297080015495], [1325307600000, 20.174315530051], [1327986000000, 19.631084213898], [1330491600000, 20.366462219461], [1333166400000, 19.284784434185], [1335758400000, 19.157810257624]]\r\n // },\r\n // {\r\n // \"key\": \"Africa\",\r\n // \"values\": [[1025409600000, 7.9356392949025], [1028088000000, 7.4514668527298], [1030766400000, 7.9085410566608], [1033358400000, 5.8996782364764], [1036040400000, 6.0591869346923], [1038632400000, 5.9667815800451], [1041310800000, 8.65528925664], [1043989200000, 8.7690763386254], [1046408400000, 8.6386160387453], [1049086800000, 5.9895557449743], [1051675200000, 6.3840324338159], [1054353600000, 6.5196511461441], [1056945600000, 7.0738618553114], [1059624000000, 6.5745957367133], [1062302400000, 6.4658359184444], [1064894400000, 2.7622758754954], [1067576400000, 2.9794782986241], [1070168400000, 2.8735432712019], [1072846800000, 1.6344817513645], [1075525200000, 1.5869248754883], [1078030800000, 1.7172279157246], [1080709200000, 1.9649927409867], [1083297600000, 2.0261695079196], [1085976000000, 2.0541261923929], [1088568000000, 3.9466318927569], [1091246400000, 3.7826770946089], [1093924800000, 3.9543021004028], [1096516800000, 3.8309891064711], [1099195200000, 3.6340958946166], [1101790800000, 3.5289755762525], [1104469200000, 5.702378559857], [1107147600000, 5.6539569019223], [1109566800000, 5.5449506370392], [1112245200000, 4.7579993280677], [1114833600000, 4.4816139372906], [1117512000000, 4.5965558568606], [1120104000000, 4.3747066116976], [1122782400000, 4.4588822917087], [1125460800000, 4.4460351848286], [1128052800000, 3.7989113035136], [1130734800000, 3.7743883140088], [1133326800000, 3.7727852823828], [1136005200000, 7.2968111448895], [1138683600000, 7.2800122043237], [1141102800000, 7.1187787503354], [1143781200000, 8.351887016482], [1146369600000, 8.4156698763993], [1149048000000, 8.1673298604231], [1151640000000, 5.5132447126042], [1154318400000, 6.1152537710599], [1156996800000, 6.076765091942], [1159588800000, 4.6304473798646], [1162270800000, 4.6301068469402], [1164862800000, 4.3466656309389], [1167541200000, 6.830104897003], [1170219600000, 7.241633040029], [1172638800000, 7.1432372054153], [1175313600000, 10.608942063374], [1177905600000, 10.914964549494], [1180584000000, 10.933223880565], [1183176000000, 8.3457524851265], [1185854400000, 8.1078413081882], [1188532800000, 8.2697185922474], [1191124800000, 8.4742436475968], [1193803200000, 8.4994601179319], [1196398800000, 8.7387319683243], [1199077200000, 6.8829183612895], [1201755600000, 6.984133637885], [1204261200000, 7.0860136043287], [1206936000000, 4.3961787956053], [1209528000000, 3.8699674365231], [1212206400000, 3.6928925238305], [1214798400000, 6.7571718894253], [1217476800000, 6.4367313362344], [1220155200000, 6.4048441521454], [1222747200000, 5.4643833239669], [1225425600000, 5.3150786833374], [1228021200000, 5.3011272612576], [1230699600000, 4.1203601430809], [1233378000000, 4.0881783200525], [1235797200000, 4.1928665957189], [1238472000000, 7.0249415663205], [1241064000000, 7.006530880769], [1243742400000, 6.994835633224], [1246334400000, 6.1220222336254], [1249012800000, 6.1177436137653], [1251691200000, 6.1413396231981], [1254283200000, 4.8046006145874], [1256961600000, 4.6647600660544], [1259557200000, 4.544865006255], [1262235600000, 6.0488249316539], [1264914000000, 6.3188669540206], [1267333200000, 6.5873958262306], [1270008000000, 6.2281189839578], [1272600000000, 5.8948915746059], [1275278400000, 5.5967320482214], [1277870400000, 0.99784432084837], [1280548800000, 1.0950794175359], [1283227200000, 0.94479734407491], [1285819200000, 1.222093988688], [1288497600000, 1.335093106856], [1291093200000, 1.3302565104985], [1293771600000, 1.340824670897], [1296450000000, 0], [1298869200000, 0], [1301544000000, 0], [1304136000000, 0], [1306814400000, 0], [1309406400000, 0], [1312084800000, 0], [1314763200000, 0], [1317355200000, 4.4583692315], [1320033600000, 3.6493043348059], [1322629200000, 3.8610064091761], [1325307600000, 5.5144800685202], [1327986000000, 5.1750695220791], [1330491600000, 5.6710066952691], [1333166400000, 5.5611890039181], [1335758400000, 5.5979368839939]]\r\n // },\r\n // {\r\n // \"key\": \"South America\",\r\n // \"values\": [[1025409600000, 7.9149900245423], [1028088000000, 7.0899888751059], [1030766400000, 7.5996132380614], [1033358400000, 8.2741174301034], [1036040400000, 9.3564460833513], [1038632400000, 9.7066786059904], [1041310800000, 10.213363052343], [1043989200000, 10.285809585273], [1046408400000, 10.222053149228], [1049086800000, 8.6188592137975], [1051675200000, 9.3335447543566], [1054353600000, 8.9312402186628], [1056945600000, 8.1895089343658], [1059624000000, 8.260622135079], [1062302400000, 7.7700786851364], [1064894400000, 7.9907428771318], [1067576400000, 8.7769091865606], [1070168400000, 8.4855077060661], [1072846800000, 9.6277203033655], [1075525200000, 9.9685913452624], [1078030800000, 10.615085181759], [1080709200000, 9.2902488079646], [1083297600000, 8.8610439830061], [1085976000000, 9.1075344931229], [1088568000000, 9.9156737639203], [1091246400000, 9.7826003238782], [1093924800000, 10.55403610555], [1096516800000, 10.926900264097], [1099195200000, 10.903144818736], [1101790800000, 10.862890389067], [1104469200000, 10.64604998964], [1107147600000, 10.042790814087], [1109566800000, 9.7173391591038], [1112245200000, 9.6122415755443], [1114833600000, 9.4337921146562], [1117512000000, 9.814827171183], [1120104000000, 12.059260396788], [1122782400000, 12.139649903873], [1125460800000, 12.281290663822], [1128052800000, 8.8037085409056], [1130734800000, 8.6300618239176], [1133326800000, 9.1225708491432], [1136005200000, 12.988124170836], [1138683600000, 13.356778764353], [1141102800000, 13.611196863271], [1143781200000, 6.8959030061189], [1146369600000, 6.9939633271353], [1149048000000, 6.7241510257676], [1151640000000, 5.5611293669517], [1154318400000, 5.6086488714041], [1156996800000, 5.4962849907033], [1159588800000, 6.9193153169278], [1162270800000, 7.0016334389778], [1164862800000, 6.7865422443273], [1167541200000, 9.0006454225383], [1170219600000, 9.2233916171431], [1172638800000, 8.8929316009479], [1175313600000, 10.345937520404], [1177905600000, 10.075914677026], [1180584000000, 10.089006188111], [1183176000000, 10.598330295008], [1185854400000, 9.9689546533009], [1188532800000, 9.7740580198146], [1191124800000, 10.558483060626], [1193803200000, 9.9314651823603], [1196398800000, 9.3997715873769], [1199077200000, 8.4086493387262], [1201755600000, 8.9698309085926], [1204261200000, 8.2778357995396], [1206936000000, 8.8585045600123], [1209528000000, 8.7013756413322], [1212206400000, 7.7933605469443], [1214798400000, 7.0236183483064], [1217476800000, 6.9873088186829], [1220155200000, 6.8031713070097], [1222747200000, 6.6869531315723], [1225425600000, 6.138256993963], [1228021200000, 5.6434994016354], [1230699600000, 5.495220262512], [1233378000000, 4.6885326869846], [1235797200000, 4.4524349883438], [1238472000000, 5.6766520778185], [1241064000000, 5.7675774480752], [1243742400000, 5.7882863168337], [1246334400000, 7.2666010034924], [1249012800000, 7.5191821322261], [1251691200000, 7.849651451445], [1254283200000, 10.383992037985], [1256961600000, 9.0653691861818], [1259557200000, 9.6705248324159], [1262235600000, 10.856380561349], [1264914000000, 11.27452370892], [1267333200000, 11.754156529088], [1270008000000, 8.2870811422455], [1272600000000, 8.0210264360699], [1275278400000, 7.5375074474865], [1277870400000, 8.3419527338039], [1280548800000, 9.4197471818443], [1283227200000, 8.7321733185797], [1285819200000, 9.6627062648126], [1288497600000, 10.187962234548], [1291093200000, 9.8144201733476], [1293771600000, 10.275723361712], [1296450000000, 16.796066079353], [1298869200000, 17.543254984075], [1301544000000, 16.673660675083], [1304136000000, 17.963944353609], [1306814400000, 16.63774086721], [1309406400000, 15.84857094609], [1312084800000, 14.767303362181], [1314763200000, 24.778452182433], [1317355200000, 18.370353229999], [1320033600000, 15.253137429099], [1322629200000, 14.989600840649], [1325307600000, 16.052539160125], [1327986000000, 16.424390322793], [1330491600000, 17.884020741104], [1333166400000, 18.372698836036], [1335758400000, 18.315881576096]]\r\n // },\r\n // {\r\n // \"key\": \"Asia\",\r\n // \"values\": [[1025409600000, 13.153938631352], [1028088000000, 12.456410521864], [1030766400000, 12.537048663919], [1033358400000, 13.947386398309], [1036040400000, 14.421680682568], [1038632400000, 14.143238262286], [1041310800000, 12.229635347478], [1043989200000, 12.508479916948], [1046408400000, 12.155368409526], [1049086800000, 13.335455563994], [1051675200000, 12.888210138167], [1054353600000, 12.842092790511], [1056945600000, 12.513816474199], [1059624000000, 12.21453674494], [1062302400000, 11.750848343935], [1064894400000, 10.526579636787], [1067576400000, 10.873596086087], [1070168400000, 11.019967131519], [1072846800000, 11.235789380602], [1075525200000, 11.859910850657], [1078030800000, 12.531031616536], [1080709200000, 11.360451067019], [1083297600000, 11.456244780202], [1085976000000, 11.436991407309], [1088568000000, 11.638595744327], [1091246400000, 11.190418301469], [1093924800000, 11.835608007589], [1096516800000, 11.540980244475], [1099195200000, 10.958762325687], [1101790800000, 10.885791159509], [1104469200000, 13.605810720109], [1107147600000, 13.128978067437], [1109566800000, 13.119012086882], [1112245200000, 13.003706129783], [1114833600000, 13.326996807689], [1117512000000, 13.547947991743], [1120104000000, 12.807959646616], [1122782400000, 12.931763821068], [1125460800000, 12.795359993008], [1128052800000, 9.6998935538319], [1130734800000, 9.3473740089131], [1133326800000, 9.36902067716], [1136005200000, 14.258619539875], [1138683600000, 14.21241095603], [1141102800000, 13.973193618249], [1143781200000, 15.218233920664], [1146369600000, 14.382109727451], [1149048000000, 13.894310878491], [1151640000000, 15.593086090031], [1154318400000, 16.244839695189], [1156996800000, 16.017088850647], [1159588800000, 14.183951830057], [1162270800000, 14.148523245696], [1164862800000, 13.424326059971], [1167541200000, 12.974450435754], [1170219600000, 13.232470418021], [1172638800000, 13.318762655574], [1175313600000, 15.961407746104], [1177905600000, 16.287714639805], [1180584000000, 16.24659058389], [1183176000000, 17.564505594808], [1185854400000, 17.872725373164], [1188532800000, 18.018998508756], [1191124800000, 15.584518016602], [1193803200000, 15.480850647182], [1196398800000, 15.699120036985], [1199077200000, 19.184281817226], [1201755600000, 19.691226605205], [1204261200000, 18.982314051293], [1206936000000, 18.707820309008], [1209528000000, 17.459630929759], [1212206400000, 16.500616076782], [1214798400000, 18.086324003978], [1217476800000, 18.929464156259], [1220155200000, 18.233728682084], [1222747200000, 16.315776297325], [1225425600000, 14.632892190251], [1228021200000, 14.667835024479], [1230699600000, 13.946993947309], [1233378000000, 14.394304684398], [1235797200000, 13.724462792967], [1238472000000, 10.930879035807], [1241064000000, 9.8339915513708], [1243742400000, 10.053858541872], [1246334400000, 11.786998438286], [1249012800000, 11.780994901769], [1251691200000, 11.305889670277], [1254283200000, 10.918452290083], [1256961600000, 9.6811395055706], [1259557200000, 10.971529744038], [1262235600000, 13.330210480209], [1264914000000, 14.592637568961], [1267333200000, 14.605329141157], [1270008000000, 13.936853794037], [1272600000000, 12.189480759072], [1275278400000, 11.676151385046], [1277870400000, 13.058852800018], [1280548800000, 13.62891543203], [1283227200000, 13.811107569918], [1285819200000, 13.786494560786], [1288497600000, 14.045162857531], [1291093200000, 13.697412447286], [1293771600000, 13.677681376221], [1296450000000, 19.96151186453], [1298869200000, 21.049198298156], [1301544000000, 22.687631094009], [1304136000000, 25.469010617433], [1306814400000, 24.88379943712], [1309406400000, 24.203843814249], [1312084800000, 22.138760964036], [1314763200000, 16.034636966228], [1317355200000, 15.394958944555], [1320033600000, 12.62564246197], [1322629200000, 12.973735699739], [1325307600000, 15.78601833615], [1327986000000, 15.227368020134], [1330491600000, 15.899752650733], [1333166400000, 15.661317319168], [1335758400000, 15.359891177281]]\r\n // },\r\n // {\r\n // \"key\": \"Europe\",\r\n // \"values\": [[1025409600000, 9.3433263069351], [1028088000000, 8.4583069475546], [1030766400000, 8.0342398154196], [1033358400000, 8.1538966876572], [1036040400000, 10.743604786849], [1038632400000, 12.349366155851], [1041310800000, 10.742682503899], [1043989200000, 11.360983869935], [1046408400000, 11.441336039535], [1049086800000, 10.897508791837], [1051675200000, 11.469101547709], [1054353600000, 12.086311476742], [1056945600000, 8.0697180773504], [1059624000000, 8.2004392233445], [1062302400000, 8.4566434900643], [1064894400000, 7.9565760979059], [1067576400000, 9.3764619255827], [1070168400000, 9.0747664160538], [1072846800000, 10.508939004673], [1075525200000, 10.69936754483], [1078030800000, 10.681562399145], [1080709200000, 13.184786109406], [1083297600000, 12.668213052351], [1085976000000, 13.430509403986], [1088568000000, 12.393086349213], [1091246400000, 11.942374044842], [1093924800000, 12.062227685742], [1096516800000, 11.969974363623], [1099195200000, 12.14374574055], [1101790800000, 12.69422821995], [1104469200000, 9.1235211044692], [1107147600000, 8.758211757584], [1109566800000, 8.8072309258443], [1112245200000, 11.687595946835], [1114833600000, 11.079723082664], [1117512000000, 12.049712896076], [1120104000000, 10.725319428684], [1122782400000, 10.844849996286], [1125460800000, 10.833535488461], [1128052800000, 17.180932407865], [1130734800000, 15.894764896516], [1133326800000, 16.412751299498], [1136005200000, 12.573569093402], [1138683600000, 13.242301508051], [1141102800000, 12.863536342041], [1143781200000, 21.034044171629], [1146369600000, 21.419084618802], [1149048000000, 21.142678863692], [1151640000000, 26.56848967753], [1154318400000, 24.839144939906], [1156996800000, 25.456187462166], [1159588800000, 26.350164502825], [1162270800000, 26.478333205189], [1164862800000, 26.425979547846], [1167541200000, 28.191461582256], [1170219600000, 28.930307448808], [1172638800000, 29.521413891117], [1175313600000, 28.188285966466], [1177905600000, 27.704619625831], [1180584000000, 27.49086242483], [1183176000000, 28.770679721286], [1185854400000, 29.06048067145], [1188532800000, 28.240998844973], [1191124800000, 33.004893194128], [1193803200000, 34.075180359928], [1196398800000, 32.548560664834], [1199077200000, 30.629727432729], [1201755600000, 28.642858788159], [1204261200000, 27.973575227843], [1206936000000, 27.393351882726], [1209528000000, 28.476095288522], [1212206400000, 29.29667866426], [1214798400000, 29.222333802896], [1217476800000, 28.092966093842], [1220155200000, 28.107159262922], [1222747200000, 25.482974832099], [1225425600000, 21.208115993834], [1228021200000, 20.295043095268], [1230699600000, 15.925754618402], [1233378000000, 17.162864628346], [1235797200000, 17.084345773174], [1238472000000, 22.24600710228], [1241064000000, 24.530543998508], [1243742400000, 25.084184918241], [1246334400000, 16.606166527359], [1249012800000, 17.239620011628], [1251691200000, 17.336739127379], [1254283200000, 25.478492475754], [1256961600000, 23.017152085244], [1259557200000, 25.617745423684], [1262235600000, 24.061133998641], [1264914000000, 23.223933318646], [1267333200000, 24.425887263936], [1270008000000, 35.501471156693], [1272600000000, 33.775013878675], [1275278400000, 30.417993630285], [1277870400000, 30.023598978467], [1280548800000, 33.327519522436], [1283227200000, 31.963388450372], [1285819200000, 30.49896723209], [1288497600000, 32.403696817913], [1291093200000, 31.47736071922], [1293771600000, 31.53259666241], [1296450000000, 41.760282761548], [1298869200000, 45.605771243237], [1301544000000, 39.986557966215], [1304136000000, 43.84633051005], [1306814400000, 39.857316881858], [1309406400000, 37.675127768207], [1312084800000, 35.775077970313], [1314763200000, 48.631009702578], [1317355200000, 42.830831754505], [1320033600000, 35.611502589362], [1322629200000, 35.320136981738], [1325307600000, 31.564136901516], [1327986000000, 32.074407502433], [1330491600000, 35.053013769977], [1333166400000, 33.873085184128], [1335758400000, 32.321039427046]]\r\n // },\r\n // {\r\n // \"key\": \"Australia\",\r\n // \"values\": [[1025409600000, 5.1162447683392], [1028088000000, 4.2022848306513], [1030766400000, 4.3543715758736], [1033358400000, 5.4641223667245], [1036040400000, 6.0041275884577], [1038632400000, 6.6050520064486], [1041310800000, 5.0154059912793], [1043989200000, 5.1835708554647], [1046408400000, 5.1142682006164], [1049086800000, 5.0271381717695], [1051675200000, 5.3437782653456], [1054353600000, 5.2105844515767], [1056945600000, 6.552565997799], [1059624000000, 6.9873363581831], [1062302400000, 7.010986789097], [1064894400000, 4.4254242025515], [1067576400000, 4.9613848042174], [1070168400000, 4.8854920484764], [1072846800000, 4.0441111794228], [1075525200000, 4.0219596813179], [1078030800000, 4.3065749225355], [1080709200000, 3.9148434915404], [1083297600000, 3.8659430654512], [1085976000000, 3.9572824600686], [1088568000000, 4.7372190641522], [1091246400000, 4.6871476374455], [1093924800000, 5.0398702564196], [1096516800000, 5.5221787544964], [1099195200000, 5.424646299798], [1101790800000, 5.9240223067349], [1104469200000, 5.9936860983601], [1107147600000, 5.8499523215019], [1109566800000, 6.4149040329325], [1112245200000, 6.4547895561969], [1114833600000, 5.9385382611161], [1117512000000, 6.0486751030592], [1120104000000, 5.23108613838], [1122782400000, 5.5857797121029], [1125460800000, 5.3454665096987], [1128052800000, 5.0439154120119], [1130734800000, 5.054634702913], [1133326800000, 5.3819451380848], [1136005200000, 5.2638869269803], [1138683600000, 5.5806167415681], [1141102800000, 5.4539047069985], [1143781200000, 7.6728842432362], [1146369600000, 7.719946716654], [1149048000000, 8.0144619912942], [1151640000000, 7.942223133434], [1154318400000, 8.3998279827444], [1156996800000, 8.532324572605], [1159588800000, 4.7324285199763], [1162270800000, 4.7402397487697], [1164862800000, 4.9042069355168], [1167541200000, 5.9583963430882], [1170219600000, 6.3693899239171], [1172638800000, 6.261153903813], [1175313600000, 5.3443942184584], [1177905600000, 5.4932111235361], [1180584000000, 5.5747393101109], [1183176000000, 5.3833633060013], [1185854400000, 5.5125898831832], [1188532800000, 5.8116112661327], [1191124800000, 4.3962296939996], [1193803200000, 4.6967663605521], [1196398800000, 4.7963004350914], [1199077200000, 4.1817985183351], [1201755600000, 4.3797643870182], [1204261200000, 4.6966642197965], [1206936000000, 4.3609995132565], [1209528000000, 4.4736290996496], [1212206400000, 4.3749762738128], [1214798400000, 3.3274661194507], [1217476800000, 3.0316184691337], [1220155200000, 2.5718140204728], [1222747200000, 2.7034994044603], [1225425600000, 2.2033786591364], [1228021200000, 1.9850621240805], [1230699600000, 0], [1233378000000, 0], [1235797200000, 0], [1238472000000, 0], [1241064000000, 0], [1243742400000, 0], [1246334400000, 0], [1249012800000, 0], [1251691200000, 0], [1254283200000, 0.44495950017788], [1256961600000, 0.33945469262483], [1259557200000, 0.38348269455195], [1262235600000, 0], [1264914000000, 0], [1267333200000, 0], [1270008000000, 0], [1272600000000, 0], [1275278400000, 0], [1277870400000, 0], [1280548800000, 0], [1283227200000, 0], [1285819200000, 0], [1288497600000, 0], [1291093200000, 0], [1293771600000, 0], [1296450000000, 0.52216435716176], [1298869200000, 0.59275786698454], [1301544000000, 0], [1304136000000, 0], [1306814400000, 0], [1309406400000, 0], [1312084800000, 0], [1314763200000, 0], [1317355200000, 0], [1320033600000, 0], [1322629200000, 0], [1325307600000, 0], [1327986000000, 0], [1330491600000, 0], [1333166400000, 0], [1335758400000, 0]]\r\n // },\r\n // {\r\n // \"key\": \"Antarctica\",\r\n // \"values\": [[1025409600000, 1.3503144674343], [1028088000000, 1.2232741112434], [1030766400000, 1.3930470790784], [1033358400000, 1.2631275030593], [1036040400000, 1.5842699103708], [1038632400000, 1.9546996043116], [1041310800000, 0.8504048300986], [1043989200000, 0.85340686311353], [1046408400000, 0.843061357391], [1049086800000, 2.119846992476], [1051675200000, 2.5285382124858], [1054353600000, 2.5056570712835], [1056945600000, 2.5212789901005], [1059624000000, 2.6192011642534], [1062302400000, 2.5382187823805], [1064894400000, 2.3393223047168], [1067576400000, 2.491219888698], [1070168400000, 2.497555874906], [1072846800000, 1.734018115546], [1075525200000, 1.9307268299646], [1078030800000, 2.2261679836799], [1080709200000, 1.7608893704206], [1083297600000, 1.6242690616808], [1085976000000, 1.7161663801295], [1088568000000, 1.7183554537038], [1091246400000, 1.7179780759145], [1093924800000, 1.7314274801784], [1096516800000, 1.2596883356752], [1099195200000, 1.381177053009], [1101790800000, 1.4408819615814], [1104469200000, 3.4743581836444], [1107147600000, 3.3603749903192], [1109566800000, 3.5350883257893], [1112245200000, 3.0949644237828], [1114833600000, 3.0796455899995], [1117512000000, 3.3441247640644], [1120104000000, 4.0947643978168], [1122782400000, 4.4072631274052], [1125460800000, 4.4870979780825], [1128052800000, 4.8404549457934], [1130734800000, 4.8293016233697], [1133326800000, 5.2238093263952], [1136005200000, 3.382306337815], [1138683600000, 3.7056975170243], [1141102800000, 3.7561118692318], [1143781200000, 2.861913700854], [1146369600000, 2.9933744103381], [1149048000000, 2.7127537218463], [1151640000000, 3.1195497076283], [1154318400000, 3.4066964004508], [1156996800000, 3.3754571113569], [1159588800000, 2.2965579982924], [1162270800000, 2.4486818633018], [1164862800000, 2.4002308848517], [1167541200000, 1.9649579750349], [1170219600000, 1.9385263638056], [1172638800000, 1.9128975336387], [1175313600000, 2.3412869836298], [1177905600000, 2.4337870351445], [1180584000000, 2.62179703171], [1183176000000, 3.2642864957929], [1185854400000, 3.3200396223709], [1188532800000, 3.3934212707572], [1191124800000, 4.2822327088179], [1193803200000, 4.1474964228541], [1196398800000, 4.1477082879801], [1199077200000, 5.2947122916128], [1201755600000, 5.2919843508028], [1204261200000, 5.198978305031], [1206936000000, 3.5603057673513], [1209528000000, 3.3009087690692], [1212206400000, 3.1784852603792], [1214798400000, 4.5889503538868], [1217476800000, 4.401779617494], [1220155200000, 4.2208301828278], [1222747200000, 3.89396671475], [1225425600000, 3.0423832241354], [1228021200000, 3.135520611578], [1230699600000, 1.9631418164089], [1233378000000, 1.8963543874958], [1235797200000, 1.8266636017025], [1238472000000, 0.93136635895188], [1241064000000, 0.92737801918888], [1243742400000, 0.97591889805002], [1246334400000, 2.6841193805515], [1249012800000, 2.5664341140531], [1251691200000, 2.3887523699873], [1254283200000, 1.1737801663681], [1256961600000, 1.0953582317281], [1259557200000, 1.2495674976653], [1262235600000, 0.36607452464754], [1264914000000, 0.3548719047291], [1267333200000, 0.36769242398939], [1270008000000, 0], [1272600000000, 0], [1275278400000, 0], [1277870400000, 0], [1280548800000, 0], [1283227200000, 0], [1285819200000, 0.85450741275337], [1288497600000, 0.91360317921637], [1291093200000, 0.89647678692269], [1293771600000, 0.87800687192639], [1296450000000, 0], [1298869200000, 0], [1301544000000, 0.43668720882994], [1304136000000, 0.4756523602692], [1306814400000, 0.46947368328469], [1309406400000, 0.45138896152316], [1312084800000, 0.43828726648117], [1314763200000, 2.0820861395316], [1317355200000, 0.9364411075395], [1320033600000, 0.60583907839773], [1322629200000, 0.61096950747437], [1325307600000, 0], [1327986000000, 0], [1330491600000, 0], [1333166400000, 0], [1335758400000, 0]]\r\n // }\r\n // ];\r\n // }\r\n\r\n // function mutichart() {\r\n // [{ \"key\": \"Stream0\", \"values\": [{ \"y\": -64.70582767853091, \"x\": 0 }, { \"y\": 57.669995761092984, \"x\": 1 }, { \"y\": 3.2544368313756973, \"x\": 2 }, { \"y\": -44.00258098526602, \"x\": 3 }, { \"y\": 58.64810228584364, \"x\": 4 }, { \"y\": 30.334845822312868, \"x\": 5 }, { \"y\": 41.59282094475828, \"x\": 6 }, { \"y\": -77.41134504856525, \"x\": 7 }, { \"y\": -44.62331380469365, \"x\": 8 }, { \"y\": -7.885791380755943, \"x\": 9 }, { \"y\": 38.43370663547142, \"x\": 10 }] }, { \"key\": \"Stream1\", \"values\": [{ \"y\": -78.69178199209854, \"x\": 0 }, { \"y\": 5.888570339224394, \"x\": 1 }, { \"y\": 53.66447874948275, \"x\": 2 }, { \"y\": 5.753283100515985, \"x\": 3 }, { \"y\": -10.35671625612505, \"x\": 4 }, { \"y\": -88.91677502008964, \"x\": 5 }, { \"y\": 76.6531779504173, \"x\": 6 }, { \"y\": 82.27522297291176, \"x\": 7 }, { \"y\": -82.57143673624968, \"x\": 8 }, { \"y\": 3.174983917755477, \"x\": 9 }, { \"y\": -50.548811843447446, \"x\": 10 }] }, { \"key\": \"Stream2\", \"values\": [{ \"y\": -61.925799278686824, \"x\": 0 }, { \"y\": 13.549138898453968, \"x\": 1 }, { \"y\": 50.68421848996957, \"x\": 2 }, { \"y\": -64.4837294834442, \"x\": 3 }, { \"y\": -65.0984198921422, \"x\": 4 }, { \"y\": -62.72592409498343, \"x\": 5 }, { \"y\": -3.1756049380647226, \"x\": 6 }, { \"y\": -53.90882790469243, \"x\": 7 }, { \"y\": -53.71417274362354, \"x\": 8 }, { \"y\": 2.2690481944519636, \"x\": 9 }, { \"y\": 74.53963178093423, \"x\": 10 }] }];\r\n\r\n // }\r\n // function multiBarChartData() {\r\n // return [{ \"key\": \"Stream0\", \"values\": [{ \"y\": 4.70582767853091, \"x\": 0 }, { \"y\": 57.669995761092984, \"x\": 1 }, { \"y\": 3.2544368313756973, \"x\": 2 }, { \"y\": 44.00258098526602, \"x\": 3 }, { \"y\": 58.64810228584364, \"x\": 4 }, { \"y\": 30.334845822312868, \"x\": 5 }, { \"y\": 41.59282094475828, \"x\": 6 }, { \"y\": 77.41134504856525, \"x\": 7 }, { \"y\": 44.62331380469365, \"x\": 8 }, { \"y\": 7.885791380755943, \"x\": 9 }, { \"y\": 38.43370663547142, \"x\": 10 }] }, { \"key\": \"Stream1\", \"values\": [{ \"y\": 78.69178199209854, \"x\": 0 }, { \"y\": 5.888570339224394, \"x\": 1 }, { \"y\": 53.66447874948275, \"x\": 2 }, { \"y\": 5.753283100515985, \"x\": 3 }, { \"y\": 10.35671625612505, \"x\": 4 }, { \"y\": 88.91677502008964, \"x\": 5 }, { \"y\": 76.6531779504173, \"x\": 6 }, { \"y\": 82.27522297291176, \"x\": 7 }, { \"y\": 82.57143673624968, \"x\": 8 }, { \"y\": 3.174983917755477, \"x\": 9 }, { \"y\": 50.548811843447446, \"x\": 10 }] }];\r\n\r\n\r\n // }\r\n // function pieChartData() {\r\n // return [\r\n // {\r\n // key: \"One\",\r\n // y: 5\r\n // },\r\n // {\r\n // key: \"Two\",\r\n // y: 2\r\n // },\r\n // {\r\n // key: \"Three\",\r\n // y: 9\r\n // },\r\n // {\r\n // key: \"Four\",\r\n // y: 7\r\n // },\r\n // {\r\n // key: \"Five\",\r\n // y: 4\r\n // },\r\n // {\r\n // key: \"Six\",\r\n // y: 3\r\n // },\r\n // {\r\n // key: \"Seven\",\r\n // y: .5\r\n // }\r\n // ];\r\n // }\r\n // function boxPlotChartData() {\r\n // return [\r\n // {\r\n // label: \"A\",\r\n // values: {\r\n // Q1: 180,\r\n // Q2: 200,\r\n // Q3: 250,\r\n // whisker_low: 115,\r\n // whisker_high: 400,\r\n // outliers: [50, 100, 425]\r\n // }\r\n // },\r\n // {\r\n // label: \"B\",\r\n // values: {\r\n // Q1: 300,\r\n // Q2: 350,\r\n // Q3: 400,\r\n // whisker_low: 225,\r\n // whisker_high: 425,\r\n // outliers: [175, 450, 480]\r\n // }\r\n // },\r\n // {\r\n // label: \"C\",\r\n // values: {\r\n // Q1: 100,\r\n // Q2: 200,\r\n // Q3: 300,\r\n // whisker_low: 25,\r\n // whisker_high: 400,\r\n // outliers: [450, 475]\r\n // }\r\n // },\r\n // {\r\n // label: \"D\",\r\n // values: {\r\n // Q1: 75,\r\n // Q2: 100,\r\n // Q3: 125,\r\n // whisker_low: 50,\r\n // whisker_high: 300,\r\n // outliers: [450]\r\n // }\r\n // },\r\n // {\r\n // label: \"E\",\r\n // values: {\r\n // Q1: 325,\r\n // Q2: 400,\r\n // Q3: 425,\r\n // whisker_low: 225,\r\n // whisker_high: 475,\r\n // outliers: [50, 100, 200]\r\n // }\r\n // }\r\n // ];\r\n // }\r\n\r\n // function gaugeChartData() {\r\n // // return [[25]];\r\n\r\n // }\r\n\r\n // function sunburstChartData() {\r\n // return;\r\n // return [];\r\n\r\n // }\r\n // }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('DashBoardDetails', DashBoardDetails);\r\n\r\n /** @ngInject */\r\n function DashBoardDetails($rootScope, AuthenticationService, $state, UserService, lodash) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.ProjectName = $state.params.data.ProjectName;\r\n vm.ProjectId = $state.params.data.ProjectId;\r\n vm.CompanyId = $state.params.data.CompanyId;\r\n vm.Status = $state.params.data.Status;\r\n if (vm.Status == 1) {\r\n vm.Total = $state.params.data.Total;\r\n vm.TotalCost = $state.params.data.TotalCost;\r\n }\r\n vm.ProjectStatusList = [];\r\n vm.SalesStatusList = [];\r\n vm.CashFlowStatusList = [];\r\n vm.isShowComplete = true;\r\n vm.isShowInprogress = true;\r\n vm.isShowPending = true;\r\n vm.isShowBalance = true;\r\n // $(document).keyup(function (e) {\r\n // if (e.key === \"Escape\") { // escape key maps to keycode `27`\r\n // vm.Back();\r\n // }\r\n // });\r\n\r\n Init()\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: vm.ProjectId,\r\n ActionBy: vm.loggedUser.UserId,\r\n CompanyId: vm.CompanyId\r\n }\r\n if ($state.params.data.Status == 1) {\r\n obj.TypeOfChart = 'PS';\r\n UserService.getChartDetails(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.ProjectStatusList = JSON.parse(res.data.result);\r\n lodash.map(vm.ProjectStatusList, function (e) {\r\n return e.ValueIn = (parseFloat((e.TotalBillAmount / vm.TotalCost) * 100).toFixed(2) + ' ' + '%')\r\n });\r\n vm.CompletedList = [];\r\n vm.PendingList = [];\r\n vm.InProgressList = [];\r\n vm.BalanceList = [];\r\n vm.CompletedList = lodash.filter(vm.ProjectStatusList, function (obj) {\r\n return obj.StatusType == 'Completed'\r\n })\r\n vm.PendingList = lodash.filter(vm.ProjectStatusList, function (obj) {\r\n return obj.StatusType == 'Pending'\r\n })\r\n vm.InProgressList = lodash.filter(vm.ProjectStatusList, function (obj) {\r\n return obj.StatusType == 'InProgress'\r\n })\r\n vm.BalanceList = lodash.filter(vm.ProjectStatusList, function (obj) {\r\n return obj.StatusType == 'Balance'\r\n })\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n else if ($state.params.data.Status == 2) {\r\n obj.TypeOfChart = 'SS';\r\n UserService.getChartDetails(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.SalesStatusList = JSON.parse(res.data.result);\r\n lodash.map(vm.SalesStatusList, function (e) {\r\n return e.balance = (e.total - e.booked)\r\n })\r\n var TotalSales = lodash.sumBy(vm.SalesStatusList, function (e) {\r\n return e.total\r\n });\r\n var bookedSales = lodash.sumBy(vm.SalesStatusList, function (e) {\r\n return e.booked\r\n });\r\n var balanceSales = lodash.sumBy(vm.SalesStatusList, function (e) {\r\n return e.balance\r\n })\r\n\r\n vm.Booked = parseFloat((bookedSales / TotalSales) * 100).toFixed(1);\r\n vm.Balance = parseFloat((balanceSales / TotalSales) * 100).toFixed(1);\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n else if ($state.params.data.Status == 3) {\r\n vm.CashFlowStatusList = $state.params.data.ProjectCashFlow\r\n lodash.map(vm.CashFlowStatusList, function (e) {\r\n return e.OUTCASH = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(e.OUTCASH)\r\n })\r\n lodash.map(vm.CashFlowStatusList, function (e) {\r\n return e.INCASH = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(e.INCASH)\r\n })\r\n vm.isLoading = false;\r\n }\r\n }\r\n\r\n vm.GetLocationDetails = function (row) {\r\n var data = {\r\n ProjectId: vm.ProjectId,\r\n SubCategoryName: row.ShortDescription,\r\n SubCategoryId: row.SubCategoryId,\r\n Status: row.StatusType,\r\n ActionBy: vm.loggedUser.UserId,\r\n TotalBillAmount: row.TotalBillAmount,\r\n Data: $state.params.data,\r\n ProjectName: vm.ProjectName\r\n }\r\n $state.go('subCategoryCost', {\r\n data: data\r\n })\r\n }\r\n\r\n\r\n\r\n vm.Back = function () {\r\n var data = {\r\n ProjectId: vm.ProjectId\r\n }\r\n $state.go('dashboard', {\r\n data: data\r\n })\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('LocationDtlsCtrl', LocationDtlsCtrl);\r\n\r\n /** @ngInject */\r\n function LocationDtlsCtrl($rootScope, AuthenticationService, $state, UserService, lodash) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.ProjectId = $state.params.data.ProjectId;\r\n vm.SubCategoryName = $state.params.data.SubCategoryName;\r\n vm.TotalBillAmount = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format($state.params.data.TotalBillAmount);\r\n if ($state.params.data.Status == 'Completed')\r\n vm.Status = 1\r\n else if ($state.params.data.Status == 'Pending')\r\n vm.Status = 0\r\n Init()\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: vm.ProjectId,\r\n SubCategoryId: $state.params.data.SubCategoryId,\r\n Status: vm.Status,\r\n ActionBy: $state.params.data.ActionBy\r\n\r\n }\r\n UserService.GetSubCategoryCost(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryCostList = res.data;\r\n console.log(vm.SubCategoryCostList);\r\n var Arr = [];\r\n vm.SubCategoryCostList = lodash.groupBy(vm.SubCategoryCostList, 'ShortDescription')\r\n lodash.map(vm.SubCategoryCostList, function (value, key) {\r\n Arr.push({\r\n ShortDescription: key,\r\n UnitName: value[0].UnitName,\r\n Code: value[0].Code,\r\n TotPowQty: parseFloat(lodash.sumBy(value, 'PowQty')).toFixed(2),\r\n TotRate: new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(lodash.sumBy(value, 'Rate')),\r\n Loc_Dtls: value\r\n })\r\n })\r\n\r\n lodash.forEach(Arr, function (e) {\r\n lodash.forEach(e.Loc_Dtls, function (obj) {\r\n obj.LocationDtl = obj.BasicLocation + '/' + obj.Locations;\r\n obj.Rate = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(obj.Rate)\r\n })\r\n })\r\n\r\n vm.SubCategoryCostList = Arr\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n vm.Back = function () {\r\n $state.go('dashboardDetails', {\r\n data: $state.params.data.Data\r\n })\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('MgrtdytaskCtrl', MgrtdytaskCtrl);\r\n\r\n /** @ngInject */\r\n function MgrtdytaskCtrl($rootScope, AuthenticationService, $filter, $uibModal, $state, UserService, lodash) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n //vm.Status = $state.params.data.Status;\r\n vm.ProjectId = $state.params.data.ProjectId;\r\n vm.CompanyId = $state.params.data.CompanyId;\r\n vm.UserList = [];\r\n vm.SelectedTypeById = [];\r\n vm.GetAllUserTypeById = GetAllUserTypeById;\r\n vm.getWorkReportImages = getWorkReportImages;\r\n\r\n Init()\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n var obj = {\r\n CompanyId: vm.CompanyId,\r\n ProjectId: vm.ProjectId,\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n UserService.GetAllUserType(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.TypeList = res.data;\r\n vm.SelectedType = vm.TypeList[0];\r\n GetAllUserTypeById(function () {\r\n vm.SelectedTypeById.push(vm.UserList[0])\r\n // lodash.forEach(vm.UserList, function (e) {\r\n // vm.SelectedTypeById.push(e[0])\r\n // })\r\n })\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n\r\n function GetAllUserTypeById(callBack) {\r\n vm.UserList = [];\r\n vm.MediaList = [];\r\n var obj = {\r\n CompanyId: vm.CompanyId,\r\n ProjectId: vm.ProjectId,\r\n Id: vm.SelectedType.Id,\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n UserService.GetAllUserTypeById(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.UserList = res.data;\r\n vm.isLoading = false;\r\n if (callBack)\r\n callBack()\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n\r\n function getWorkReportImages(callBack) {\r\n debugger;\r\n vm.MediaList = [];\r\n vm.isLoading = true;\r\n var Arr = [];\r\n if (vm.SelectedType.Id == 0) {\r\n Arr = lodash.map(vm.SelectedTypeById, function (e) {\r\n return e.UserId\r\n });\r\n }\r\n var PreviousDate = new Date();\r\n PreviousDate.setDate(PreviousDate.getDate() - 1);\r\n var obj = {\r\n UserIds: (vm.SelectedType.Id === 0) ? Arr.join() : vm.SelectedTypeById.UserId,\r\n ProjectId: vm.ProjectId,\r\n ApprovalStaus: vm.Status,\r\n Id: vm.SelectedType.Id,\r\n ActionOn: $filter('date')(PreviousDate, 'yyyy-MM-dd'),\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n if (Arr.length > 0 || vm.SelectedTypeById) {\r\n debugger;\r\n UserService.GetMgrTodayWork(obj).then(function (res) {\r\n //UserService.GetWorkReportImages(obj).then(function (res) {\r\n debugger;\r\n if (res.status == 200) {\r\n vm.MediaList = res.data;\r\n var Arr = [];\r\n vm.MediaList = lodash.groupBy(vm.MediaList, 'UserName')\r\n lodash.map(vm.MediaList, function (value, key) {\r\n Arr.push({\r\n UserName: key,\r\n SE: value[0].SE,\r\n SS: value[0].SS,\r\n PowList: value,\r\n LocationDtls: []\r\n })\r\n })\r\n\r\n lodash.forEach(Arr, function (e) {\r\n var Arr1 = lodash.groupBy(e.PowList, 'Locations')\r\n lodash.map(Arr1, function (value, key) {\r\n //console.log(e)\r\n var Loc = {\r\n Location: key,\r\n IOCA_Dtls: []\r\n }\r\n lodash.map(lodash.groupBy(value, 'ShortDescription'), function (value1, key1) {\r\n Loc.IOCA_Dtls.push({\r\n ShortDescription: key1,\r\n Unit: value1[0].UnitName,\r\n PowQty: lodash.sumBy(value1, 'ActualTotQty'),\r\n PowList: value1,\r\n })\r\n })\r\n e.LocationDtls.push(Loc);\r\n })\r\n })\r\n\r\n vm.MediaList = angular.copy(Arr);\r\n vm.isLoading = false;\r\n if (callBack)\r\n callBack()\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n }\r\n\r\n vm.ViewAttachement = function (ioca, PowList) {\r\n lodash.forEach(PowList, function (e) {\r\n if (e.MediaList != \"\")\r\n e.FileName = JSON.parse(e.MediaList)\r\n })\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/dashboard/viewMgrTask.html',\r\n controller: 'ViewMgrTaskCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return PowList;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.Back = function () {\r\n var data = {\r\n ProjectId: vm.ProjectId\r\n }\r\n $state.go('dashboard', {\r\n data: data\r\n })\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('SupervisorApprovalAttachmentCtrl', SupervisorApprovalAttachmentCtrl);\r\n\r\n /** @ngInject */\r\n function SupervisorApprovalAttachmentCtrl($scope, $filter, SupervisorTaskService, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n debugger;\r\n\r\n vm.FileName = {\r\n FileName: []\r\n }\r\n ;\r\n Init()\r\n\r\n function Init() {\r\n\r\n SupervisorTaskService.GetDefectWorkAttachments(items.PowId).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.AttachmentList = res.data;\r\n for (var i in vm.AttachmentList) {\r\n vm.AttachmentList[i].Files = JSON.parse(vm.AttachmentList[i].MediaList)\r\n for (var j in vm.AttachmentList[i].Files.FileName) {\r\n vm.FileName.FileName.push(vm.AttachmentList[i].Files.FileName[j])\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n\r\n if (items.Attachment) {\r\n if (items.Attachment.Files) {\r\n var obj = JSON.parse(items.Attachment.Files)\r\n for (var i in obj.FileName) {\r\n vm.FileName.FileName.push(obj.FileName[i])\r\n }\r\n\r\n }\r\n }\r\n\r\n // vm.Arr = [];\r\n // for (var i in vm.obj.FileName) {\r\n // vm.Arr.push({\r\n // Url: $rootScope.endPoint + '/UploadedDocuments/ApprovalDocs/' + vm.obj.FileName[i],\r\n // Name: vm.obj.FileName[i]\r\n // })\r\n // }\r\n\r\n \r\n\r\n\r\n\r\n\r\n vm.cancel = function () {\r\n debugger;\r\n $uibModalInstance.close(JSON.stringify(vm.FileName));\r\n }\r\n\r\n vm.RemoveAttachment = function (row, i) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n SupervisorTaskService.RemovePowAttachment(row).then(function (res) {\r\n if (res.data) {\r\n $rootScope.showToaster('success', res.data, \"\");\r\n vm.FileName.FileName.splice(i, 1);\r\n // vm.Arr = [];\r\n // for (var i in vm.obj.FileName) {\r\n // vm.Arr.push({\r\n // Url: $rootScope.endPoint + '/UploadedDocuments/ApprovalDocs/' + vm.obj.FileName[i],\r\n // Name: vm.obj.FileName[i]\r\n // })\r\n // }\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data, \"\");\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('SupervisorTaskCtrl', SupervisorTaskCtrl);\r\n\r\n function SupervisorTaskCtrl($rootScope, $state, $scope, $window, $uibModal, KPostBoxService, dialogs, lodash, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService,\r\n SupervisorTaskService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isLoading = false;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getPowForApproval = getPowForApproval;\r\n vm.inprogress = inprogress;\r\n vm.approve = approve;\r\n vm.defect = defect;\r\n\r\n $rootScope.isLogin = false;\r\n vm.TodayDate = new Date();\r\n //// State params Assign\r\n // if ($state.params.data != undefined) {\r\n // vm.PowApprovalList = $state.params.data;\r\n\r\n\r\n // } else {\r\n // $state.go($rootScope.previousState);\r\n // }\r\n Init();\r\n\r\n debugger;\r\n function Init() {\r\n debugger;\r\n if ($rootScope.iskpostCallChecked) {\r\n vm.ProjectId = parseInt($rootScope.KpostDetails.Prj)\r\n var res = $rootScope.KpostDetails.PrjName.split(\"_\");\r\n vm.ProjectName = res.join(\" \")\r\n GetWorkApprovalTask();\r\n }\r\n else {\r\n vm.ProjectId = $state.params.data.ProjectId\r\n vm.ProjectName = $state.params.data.ProjectName\r\n getPowForApproval();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function getPowForApproval() {\r\n vm.isLoading = true;\r\n if (vm.ProjectId) {\r\n var obj = {\r\n projectId: vm.ProjectId,\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n SupervisorTaskService.GetTaskForApproval(obj).then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.PowApprovalList = res.data;\r\n console.log(vm.PowApprovalList)\r\n if (vm.PowApprovalList.length > 0) {\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DocList = {\r\n FileName: []\r\n };\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].isCheck = false;\r\n\r\n var unit = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim.DimValues, function (value, key) {\r\n unit *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2)\r\n var Total = vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal = ((vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total) * 0.05).toFixed(2)\r\n var TotCal = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal;\r\n\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax = (parseFloat(Total) + parseFloat(TotCal));\r\n var TotMax = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin = (parseFloat(Total) - parseFloat(TotCal));\r\n var TotMin = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin\r\n var unit1 = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct.DimValues, function (value, key) {\r\n unit1 *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit1.toFixed(2);\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].tempTot = 1\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.IOCADocList) {\r\n if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n var obj = {\r\n IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n }\r\n vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n dialogs.notify('warning', \"No Data Found\", { animation: true, size: 'sm' });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n\r\n }\r\n }\r\n\r\n /////// From Kpost\r\n function GetWorkApprovalTask() {\r\n vm.isLoading = true;\r\n var obj = {\r\n IOCA_Id: $rootScope.KpostDetails.IocId,\r\n ProjectId: $rootScope.KpostDetails.Prj,\r\n LastTierId: $rootScope.KpostDetails.Lt,\r\n ContractorId: $rootScope.KpostDetails.CnrtId,\r\n EmployeeId: $rootScope.KpostDetails.EmpId,\r\n TaskDate: new Date(new Date($rootScope.KpostDetails.TskDate.replace(/(\\d{2})-(\\d{2})-(\\d{4})/, \"$2/$1/$3\"))),\r\n }\r\n debugger;\r\n if (vm.ProjectId) {\r\n KPostBoxService.GetAllTaskWorkApproval(obj).then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.PowApprovalList = res.data;\r\n console.log(vm.PowApprovalList)\r\n if (vm.PowApprovalList.length > 0) {\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DocList = {\r\n FileName: []\r\n };\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].isCheck = false;\r\n\r\n var unit = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim.DimValues, function (value, key) {\r\n unit *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2)\r\n var Total = vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal = ((vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total) * 0.05).toFixed(2)\r\n var TotCal = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal;\r\n\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax = (parseFloat(Total) + parseFloat(TotCal));\r\n var TotMax = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin = (parseFloat(Total) - parseFloat(TotCal));\r\n var TotMin = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin\r\n var unit1 = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct.DimValues, function (value, key) {\r\n unit1 *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit1.toFixed(2);\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].tempTot = 1\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.IOCADocList) {\r\n if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n var obj = {\r\n IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n }\r\n vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n dialogs.notify('warning', \"No Data Found\", { animation: true, size: 'sm' });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n\r\n }\r\n }\r\n\r\n vm.TotalAct = function (ioca, row, key1) {\r\n\r\n ioca.DimAct.DimValues[key1] = parseFloat(row);\r\n Calculate(ioca)\r\n var TotalAct = parseFloat(ioca.TotalAct).toFixed(2);\r\n var TotMax = parseFloat(ioca.TotMax).toFixed(2);\r\n var TotMin = parseFloat(ioca.TotMin).toFixed(2);\r\n if (TotalAct <= TotMax && ioca.TotalAct >= TotMin) {\r\n // ioca.tempTot *= row;\r\n\r\n ioca.TotalAct = TotalAct.toFixed(2);\r\n\r\n }\r\n else {\r\n dialogs.notify('warning', \"Total Quantity should be in from \" + ioca.TotMin.toFixed(2) + \" to \" + ioca.TotMax.toFixed(2), { animation: true, size: 'sm' });\r\n ioca.Status = 0;\r\n ioca.TotalAct = ioca.Total\r\n var Arr = [];\r\n for (var key in ioca.Dim.DimValues) {\r\n Arr.push({\r\n label: key,\r\n value: ioca.Dim.DimValues[key]\r\n })\r\n }\r\n\r\n for (var i in Arr) {\r\n if (Arr[i].label == key1) {\r\n ioca.DimAct.DimValues[key1] = parseFloat(Arr[i].value);\r\n }\r\n }\r\n\r\n // ioca.DimAct = ioca.Dim;\r\n ioca.DimAct.DimValues = [];\r\n ioca.DimAct.DimValues = (angular.copy(ioca.Dim.DimValues));\r\n\r\n ioca.Approve = false;\r\n ioca.isCheck = false;\r\n //$scope.$apply();\r\n }\r\n }\r\n\r\n function Calculate(ioca) {\r\n var unit1 = 1;\r\n lodash.forIn(ioca.DimAct.DimValues, function (value, key) {\r\n unit1 *= value;\r\n });\r\n if (ioca.ActivityCount)\r\n ioca.TotalAct = (ioca.ActivityCount * unit1).toFixed(2);\r\n else\r\n ioca.TotalAct = unit1.toFixed(2);\r\n }\r\n\r\n vm.Attachment = function (ioca, Status) {\r\n ioca.status = Status;\r\n if (ioca.status == 2) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/dashboard/SupervisorWorkApprovalAttachment.html',\r\n\r\n controller: 'SupervisorWorkApprovalAttachmentCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return ioca;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (obj) {\r\n ioca.Attachment = obj;\r\n ioca.Status = ioca.status;\r\n if (ioca.Approve)\r\n ioca.Approve = false;\r\n }, function () {\r\n ioca.Defect = false;\r\n if (ioca.Attachment)\r\n ioca.Attachment.Notes = \"\";\r\n ioca.Status = 0;\r\n });\r\n }\r\n else {\r\n ioca.Status = ioca.status\r\n if (ioca.Defect)\r\n ioca.Defect = false;\r\n else if (ioca.Approve == false)\r\n ioca.Status = 0\r\n var TotalAct = parseFloat(ioca.TotalAct).toFixed(2);\r\n var TotMax = parseFloat(ioca.TotMax).toFixed(2);\r\n var TotMin = parseFloat(ioca.TotMin).toFixed(2);\r\n\r\n if (TotalAct <= TotMax && ioca.TotalAct >= TotMin) {\r\n\r\n }\r\n else {\r\n dialogs.notify('warning', \"Total Amount should be in from \" + ioca.TotMin.toFixed(2) + \" to \" + ioca.TotMax.toFixed(2), { animation: true, size: 'sm' });\r\n ioca.Status = 0;\r\n ioca.DimAct.DimValues = angular.copy(ioca.Dim.DimValues)\r\n ioca.TotalAct = ioca.Total\r\n ioca.Approve = false;\r\n ioca.isCheck = true;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n vm.AttachmentMedia = function (ioca) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/dashboard/SupervisorWorkApprovalAttachment.html',\r\n controller: 'SupervisorWorkApprovalAttachmentCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return ioca;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (obj) {\r\n ioca.Attachment = obj;\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n vm.ViewAttachement = function (ioca, Attachment) {\r\n\r\n\r\n var obj = {\r\n PowId: ioca.PowId,\r\n Attachment: Attachment\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/dashboard/SupervisorApprovalAttachment.html',\r\n controller: 'SupervisorApprovalAttachmentCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (obj) {\r\n if (ioca.Attachment)\r\n ioca.Attachment.Files = obj\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.select = function (PowList) {\r\n if (vm.selectedAll) {\r\n vm.selectedAll = true;\r\n\r\n } else {\r\n vm.selectedAll = false;\r\n }\r\n for (var i in PowList) {\r\n if (PowList[i].Defect == undefined || PowList[i].Defect == false) {\r\n PowList[i].Approve = vm.selectedAll;\r\n if (PowList[i].Approve == true) {\r\n PowList[i].Status = 1\r\n }\r\n else {\r\n PowList[i].Status = 0\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n\r\n function approve(row) {\r\n debugger;\r\n vm.isLoading = true;\r\n\r\n var obj = {\r\n ProjectId: vm.ProjectId,\r\n ActionBy: vm.loggedUser.UserId,\r\n PowId: row.PowId,\r\n ActualTotQty: row.TotalAct,\r\n ActualDimValues: row.DimJson,\r\n IOCA_id: row.IocaId,\r\n LastTierId: row.LastTierId,\r\n\r\n }\r\n console.log(obj)\r\n SupervisorTaskService.saveTaskApprovalDtls(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"SupervisorTask Approval\");\r\n getPowForApproval();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"SupervisorTask Approval\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n function inprogress(row) {\r\n debugger;\r\n vm.isLoading = true;\r\n\r\n var obj = {\r\n ProjectId: vm.ProjectId,\r\n ActionBy: vm.loggedUser.UserId,\r\n PowId: row.PowId,\r\n IOCA_id: row.IocaId,\r\n LastTierId: row.LastTierId,\r\n\r\n }\r\n console.log(obj)\r\n SupervisorTaskService.saveTaskInProgressDtls(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"SupervisorTask Inprogress\");\r\n getPowForApproval();\r\n vm.isLoading = false;\r\n }\r\n\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"SupervisorTask Inprogress\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n function defect(row) {\r\n console.log(row)\r\n debugger;\r\n vm.isLoading = true;\r\n var Arr = {\r\n ApprovalDetails: []\r\n };\r\n\r\n var MediaList = [];\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status && (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status === 1 || vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status === 2)) {\r\n Arr.ApprovalDetails.push({\r\n PowId: vm.PowApprovalList[i].LocationDtls[j].PowList[k].PowId,\r\n ActualTotQty: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status == 1) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct : 0,\r\n Note: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment != undefined) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment.Notes : \"\",\r\n MediaList: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment != undefined) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment.Files : \"{}\",\r\n ApprovalStatus: vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status,\r\n ActualDimValues: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status == 1) ? JSON.stringify(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct) : null\r\n });\r\n }\r\n }\r\n }\r\n }\r\n var obj = {\r\n ApprovalDetails: Arr.ApprovalDetails\r\n }\r\n console.log(obj)\r\n if(obj.ApprovalDetails.length > 0){ \r\n SupervisorTaskService.saveTaskDefectDtls(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Defect Task\");\r\n getPowForApproval();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Defect Task\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else{\r\n dialogs.notify('warning', \"Select atleast One POW\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n vm.back = function () {\r\n $rootScope.iskpostCallChecked = false;\r\n var data = {\r\n ProjectId: vm.ProjectId\r\n }\r\n $state.go('dashboard', {\r\n data: data\r\n })\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('SupervisorWorkApprovalAttachmentCtrl', SupervisorWorkApprovalAttachmentCtrl);\r\n\r\n /** @ngInject */\r\n function SupervisorWorkApprovalAttachmentCtrl($scope, FileUploader, $filter, $http, $rootScope, SupervisorTaskService, items, lodash, $uibModalInstance, dialogs, $state, DirectWorkOrderService,\r\n AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var item = [];\r\n var uploader = $scope.uploader = new FileUploader({\r\n });\r\n uploader.filters.push({\r\n name: 'customFilter',\r\n fn: function (item /*{File|FileLikeObject}*/, options) {\r\n return this.queue.length < 10;\r\n $scope.isUpload = true;\r\n }\r\n });\r\n // CALLBACKS\r\n uploader.onAfterAddingFile = function (fileItem) {\r\n // console.info('onAfterAddingFile', fileItem);\r\n\r\n var formData = new FormData();\r\n formData.append('Attachment', fileItem._file)\r\n formData.append('PowId', items.PowId)\r\n debugger;\r\n SupervisorTaskService.InsertWorkApprovalDtls(formData).then(function (res) {\r\n if (res.data) {\r\n var FileName = res.data.result;\r\n items.DocList.FileName.push(FileName)\r\n } else {\r\n $rootScope.showToaster('error', res.data, \"\");\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n item.push(fileItem._file); \r\n };\r\n\r\n vm.SaveAttachmentNote = function () {\r\n var obj = {\r\n Notes: vm.Note,\r\n Files: JSON.stringify(items.DocList)\r\n }\r\n if (items.status == 2) {\r\n if (item.length > 0) {\r\n $uibModalInstance.close(obj);\r\n }\r\n else {\r\n dialogs.notify('Warning', '! Must have Notes and Files for Defect Status', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n $uibModalInstance.close(obj);\r\n }\r\n\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('ViewMgrTaskCtrl', ViewMgrTaskCtrl);\r\n\r\n /** @ngInject */\r\n function ViewMgrTaskCtrl($scope, $filter, $http, $rootScope, items, WorkApprovalService, $uibModalInstance\r\n ) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n console.log(items);\r\n vm.i = 0;\r\n vm.items = items;\r\n vm.viewPow = {};\r\n vm.viewBOQ = angular.copy(vm.items[vm.i]);\r\n vm.viewPow = angular.copy(vm.items);\r\n if (vm.viewPow.FileName)\r\n vm.isNxt = true;\r\n\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('ViewWorkReportImageCtrl', ViewWorkReportImageCtrl);\r\n\r\n /** @ngInject */\r\n function ViewWorkReportImageCtrl($scope, $filter, $http, $rootScope, items, WorkApprovalService, $uibModalInstance\r\n ) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n vm.i = 0;\r\n vm.items = items\r\n vm.viewPow = {};\r\n vm.viewPow = angular.copy(vm.items[vm.i])\r\n if (vm.viewPow.FileName)\r\n vm.isNxt = true;\r\n\r\n $scope._Index = 0;\r\n // if a current image is the same as requested image\r\n $scope.isActive = function (index) {\r\n return $scope._Index === index;\r\n };\r\n // show prev image\r\n $scope.showPrev = function (file) {\r\n $scope._Index = ($scope._Index > 0) ? --$scope._Index : file.length - 1;\r\n };\r\n // show next image\r\n $scope.showNext = function (file) {\r\n $scope._Index = ($scope._Index < file.length - 1) ? ++$scope._Index : 0;\r\n };\r\n // show a certain image\r\n $scope.showPhoto = function (index) {\r\n $scope._Index = index;\r\n };\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n vm.NextPow = function () {\r\n vm.viewPow = {};\r\n vm.i += 1\r\n if (items.length > vm.i) {\r\n vm.viewPow = angular.copy(vm.items[vm.i])\r\n }\r\n\r\n }\r\n\r\n vm.PrePow = function () {\r\n vm.viewPow = {};\r\n vm.i -= 1\r\n vm.viewPow = angular.copy(vm.items[vm.i])\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .controller('WorkReportCtrl', WorkReportCtrl);\r\n\r\n /** @ngInject */\r\n function WorkReportCtrl($rootScope, AuthenticationService, $filter, $uibModal, $state, UserService, lodash) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.Status = $state.params.data.Status;\r\n vm.ProjectId = $state.params.data.ProjectId;\r\n vm.CompanyId = $state.params.data.CompanyId;\r\n vm.UserList = [];\r\n vm.SelectedTypeById = [];\r\n vm.GetAllUserTypeById = GetAllUserTypeById;\r\n vm.getWorkReportImages = getWorkReportImages;\r\n\r\n Init()\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n var obj = {\r\n CompanyId: vm.CompanyId,\r\n ProjectId: vm.ProjectId,\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n UserService.GetAllUserType(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.TypeList = res.data;\r\n vm.SelectedType = vm.TypeList[0];\r\n GetAllUserTypeById(function () {\r\n vm.SelectedTypeById.push(vm.UserList[0])\r\n // lodash.forEach(vm.UserList, function (e) {\r\n // vm.SelectedTypeById.push(e[0])\r\n // })\r\n })\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n\r\n function GetAllUserTypeById(callBack) {\r\n vm.isLoading = true;\r\n vm.UserList = [];\r\n vm.MediaList = [];\r\n var obj = {\r\n CompanyId: vm.CompanyId,\r\n ProjectId: vm.ProjectId,\r\n Id: vm.SelectedType.Id,\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n UserService.GetAllUserTypeById(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.UserList = res.data;\r\n vm.isLoading = false;\r\n if (callBack)\r\n callBack()\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n\r\n function getWorkReportImages(callBack) {\r\n vm.MediaList = [];\r\n vm.isLoading = true;\r\n var Arr = [];\r\n if (vm.SelectedType.Id == 0) {\r\n Arr = lodash.map(vm.SelectedTypeById, function (e) {\r\n return e.UserId\r\n });\r\n }\r\n var PreviousDate = new Date();\r\n PreviousDate.setDate(PreviousDate.getDate() - 1);\r\n var obj = {\r\n UserIds: (vm.SelectedType.Id === 0) ? Arr.join() : vm.SelectedTypeById.UserId,\r\n ProjectId: vm.ProjectId,\r\n ApprovalStaus: vm.Status,\r\n Id: vm.SelectedType.Id,\r\n ActionOn: $filter('date')(PreviousDate, 'yyyy-MM-dd'),\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n if (Arr.length > 0 || vm.SelectedTypeById) {\r\n UserService.GetWorkReportImages(obj).then(function (res) {\r\n debugger;\r\n if (res.status == 200) {\r\n vm.MediaList = res.data;\r\n var Arr = [];\r\n vm.MediaList = lodash.groupBy(vm.MediaList, 'UserName')\r\n lodash.map(vm.MediaList, function (value, key) {\r\n Arr.push({\r\n UserName: key,\r\n SE: value[0].SE,\r\n SS: value[0].SS,\r\n PowList: value,\r\n LocationDtls: []\r\n })\r\n })\r\n\r\n lodash.forEach(Arr, function (e) {\r\n var Arr1 = lodash.groupBy(e.PowList, 'Locations')\r\n lodash.map(Arr1, function (value, key) {\r\n //console.log(e)\r\n var Loc = {\r\n Location: key,\r\n IOCA_Dtls: []\r\n }\r\n lodash.map(lodash.groupBy(value, 'ShortDescription'), function (value1, key1) {\r\n Loc.IOCA_Dtls.push({\r\n ShortDescription: key1,\r\n Unit: value1[0].UnitName,\r\n PowQty: lodash.sumBy(value1, 'ActualTotQty'),\r\n PowList: value1,\r\n })\r\n })\r\n e.LocationDtls.push(Loc);\r\n })\r\n })\r\n\r\n vm.MediaList = angular.copy(Arr);\r\n vm.isLoading = false;\r\n if (callBack)\r\n callBack()\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n }\r\n\r\n vm.ViewAttachement = function (ioca, PowList) {\r\n lodash.forEach(PowList, function (e) {\r\n if (e.MediaList != \"\")\r\n e.FileName = JSON.parse(e.MediaList)\r\n })\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/dashboard/viewWorkReportImage.html',\r\n controller: 'ViewWorkReportImageCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return PowList;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.Back = function () {\r\n var data = {\r\n ProjectId: vm.ProjectId\r\n }\r\n $state.go('dashboard', {\r\n data: data\r\n })\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.department')\r\n .controller('DepartmentCtrl', DepartmentCtrl);\r\n\r\n /** @ngInject */\r\n function DepartmentCtrl($rootScope, lodash, dialogs, $http, DepartmentServices, CompanyService, AuthenticationService) {\r\n var vm = this;\r\n\r\n \r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.DepartmentList = [];\r\n vm.dept = {};\r\n $rootScope.isLogin = false;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = logggedUser.SelectedCompany.CompanyId;\r\n\r\n //Methods\r\n vm.companyChanged = companyChanged;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.CheckDepartmentCode = CheckDepartmentCode;\r\n vm.EditDepartment = EditDepartment;\r\n vm.removeDepartment = removeDepartment;\r\n vm.changeActiveDepartment = changeActiveDepartment;\r\n vm.SaveDepartment = SaveDepartment;\r\n vm.isCheck = false;\r\n // vm.Handsontable = Handsontable;\r\n // vm.bindDumpButton = bindDumpButton;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n ///////////////\r\n Init();\r\n\r\n\r\n // var data = [\r\n // [\"\", \"Tesla\", \"Volvo\", \"Toyota\", \"Honda\"],\r\n // [\"2017\", 10, 11, 12, 13],\r\n // [\"2018\", 20, 11, 14, 13],\r\n // [\"2019\", 30, 15, 12, 13]\r\n // ];\r\n\r\n // var container = document.getElementById('example');\r\n // var hot = new Handsontable(container, {\r\n // data: data,\r\n // rowHeaders: true,\r\n // colHeaders: true\r\n // });\r\n\r\n // var\r\n // myData = Handsontable.helper.createSpreadsheetData(100, 50),\r\n // container = document.getElementById('example1'),\r\n // positions = document.getElementById('positions'),\r\n // hot;\r\n\r\n // hot = new Handsontable(container, {\r\n // data: myData,\r\n // colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47],\r\n // rowHeaders: true,\r\n // colHeaders: true,\r\n // fixedRowsTop: 2,\r\n // fixedColumnsLeft: 2\r\n // });\r\n\r\n // setInterval(function () {\r\n // var str = '';\r\n\r\n // str += 'RowOffset: ' + hot.rowOffset();\r\n\r\n // positions.innerHTML = str;\r\n // }, 100);\r\n document.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n var\r\n myData = Handsontable.helper.createSpreadsheetData(100, 50),\r\n container = document.getElementById('example1'),\r\n positions = document.getElementById('positions'),\r\n hot;\r\n\r\n hot = new Handsontable(container, {\r\n data: myData,\r\n colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47],\r\n rowHeaders: true,\r\n colHeaders: true,\r\n fixedRowsTop: 2,\r\n fixedColumnsLeft: 2\r\n });\r\n\r\n setInterval(function () {\r\n var str = '';\r\n\r\n str += 'RowOffset: ' + hot.rowOffset();\r\n\r\n positions.innerHTML = str;\r\n }, 100);\r\n\r\n function bindDumpButton() {\r\n if (typeof Handsontable === \"undefined\") {\r\n return;\r\n }\r\n\r\n Handsontable.Dom.addEvent(document.body, 'click', function (e) {\r\n\r\n var element = e.target || e.srcElement;\r\n\r\n if (element.nodeName == \"BUTTON\" && element.name == 'dump') {\r\n var name = element.getAttribute('data-dump');\r\n var instance = element.getAttribute('data-instance');\r\n var hot = window[instance];\r\n console.log('data of ' + name, hot.getData());\r\n }\r\n });\r\n }\r\n bindDumpButton();\r\n\r\n });\r\n\r\n\r\n function Init() {\r\n DepartmentServices.getAllDepartments(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Department\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Department\");\r\n });\r\n }\r\n\r\n function companyChanged() {\r\n var obj = {\r\n CompanyId: vm.dept.selectedCompany.CompanyId,\r\n UserCompanyId: logggedUser.Company.CompanyId\r\n };\r\n DepartmentServices.getDepOfParentCompanies(obj).then(function (res) {\r\n if (res.status === 200)\r\n vm.DepartmentActiveList = res.data;\r\n else\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Department\");\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Department\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.code = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n }\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.dept = {};\r\n \r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.dept = {};\r\n \r\n });\r\n\r\n\r\n }\r\n function resetForm() {\r\n vm.departmentForm.$setUntouched();\r\n }\r\n\r\n function CheckDepartmentCode() {\r\n var deptId=0;\r\n var companyId = vm.dept.selectedCompany.CompanyId\r\n if (vm.isEditing == true)\r\n deptId = vm.dept.DepartmentId\r\n DepartmentServices.CheckCode(companyId, vm.dept.Code, deptId).then(function (res) {\r\n if (res.data === false) {\r\n vm.CheckCodeList = res.data;\r\n } \r\n else {\r\n $rootScope.showToaster('warning','The code is Already Exist', \"Department Master\");\r\n vm.isCheck = true; \r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function EditDepartment(dept) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.dept = angular.copy(dept);\r\n\r\n if (dept.ParentId === 0)\r\n vm.isNoParent = false;\r\n\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === dept.CompanyId) {\r\n vm.dept.selectedCompany = vm.CompanyList[c];\r\n }\r\n }\r\n for (var d in vm.DepartmentList) {\r\n if (vm.DepartmentList[d].DepartmentId === dept.ParentId) {\r\n vm.dept.selectedParent = vm.DepartmentList[d];\r\n }\r\n }\r\n\r\n }\r\n function removeDepartment(dept) {\r\n // CreatedBy = logggedUser.UserId;\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n\r\n DepartmentServices.removeDepartment(dept.DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Department Successfully', \"Department\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Parent Department\", { animation: true, size: 'sm' });\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Parent Department.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n\r\n }\r\n function SaveDepartment(dept) {\r\n dept.CompanyId = vm.dept.selectedCompany.CompanyId;\r\n // dept.CompanyId = vm.dept.selectedCompany.CompanyId;\r\n if (vm.dept.selectedParent === null || vm.dept.selectedParent === undefined)\r\n // if ( vm.DepartmentActiveList >= 0)\r\n dept.ParentId = 0;\r\n else\r\n dept.ParentId = vm.dept.selectedParent.DepartmentId;\r\n\r\n if (!vm.isEditing) {\r\n dept.CreatedBy = logggedUser.UserId;\r\n DepartmentServices.AddDepartment(dept).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Department Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Department Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n\r\n } else {\r\n dept.ModifiedBy = logggedUser.UserId;\r\n DepartmentServices.EditDepartment(dept).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Department Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Department Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n\r\n }\r\n }\r\n\r\n function changeActiveDepartment(dept) {\r\n var msg = 'Are sure you want to ' + ((dept.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((dept.IsActive) ? 'Deactive' : 'Active') + 'Department Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n DepartmentServices.changeActiveDepartment(dept.DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Department\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Department\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Department.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n // document.addEventListener(\"DOMContentLoaded\", function() {\r\n\r\n // var\r\n // myData = Handsontable.helper.createSpreadsheetData(100, 50),\r\n // container = document.getElementById('example1'),\r\n // positions = document.getElementById('positions'),\r\n // hot;\r\n\r\n // hot = new Handsontable(container, {\r\n // data: myData,\r\n // colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47],\r\n // rowHeaders: true,\r\n // colHeaders: true,\r\n // fixedRowsTop: 2,\r\n // fixedColumnsLeft: 2\r\n // });\r\n\r\n // setInterval(function () {\r\n // var str = '';\r\n\r\n // str += 'RowOffset: ' + hot.rowOffset();\r\n\r\n // positions.innerHTML = str;\r\n // }, 100);\r\n\r\n // function bindDumpButton() {\r\n // if (typeof Handsontable === \"undefined\") {\r\n // return;\r\n // }\r\n\r\n // Handsontable.Dom.addEvent(document.body, 'click', function (e) {\r\n\r\n // var element = e.target || e.srcElement;\r\n\r\n // if (element.nodeName == \"BUTTON\" && element.name == 'dump') {\r\n // var name = element.getAttribute('data-dump');\r\n // var instance = element.getAttribute('data-instance');\r\n // var hot = window[instance];\r\n // console.log('data of ' + name, hot.getData());\r\n // }\r\n // });\r\n // }\r\n // bindDumpButton();\r\n\r\n // });\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages')\r\n .directive('setFocus', function () {\r\n return {\r\n link: function (scope, element, attrs) {\r\n element.bind('click', function () {\r\n var input = document.querySelector('#' + attrs.setFocus);\r\n alert(input.id);\r\n debugger;\r\n input.focus();\r\n })\r\n }\r\n }\r\n })\r\n .directive('customOnChange', function () {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n var onChangeHandler = scope.$eval(attrs.customOnChange);\r\n element.bind('change', onChangeHandler);\r\n }\r\n };\r\n })\r\n .directive('validFile', function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, el, attrs, ngModel) {\r\n //change event is fired when file is selected\r\n el.bind('change', function () {\r\n scope.$apply(function () {\r\n ngModel.$setViewValue(el.val());\r\n ngModel.$render();\r\n })\r\n })\r\n }\r\n }\r\n })\r\n .directive('onlyDigits', function () {\r\n return {\r\n restrict: 'A',\r\n require: '?ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n if (inputValue == undefined) return '';\r\n var transformedInput = inputValue.replace(/[^0-9]/g, '');\r\n if (transformedInput !== inputValue) {\r\n modelCtrl.$setViewValue(transformedInput);\r\n modelCtrl.$render();\r\n }\r\n return transformedInput;\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive('onlyDigit', function () {\r\n return {\r\n restrict: 'A',\r\n require: '?ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n if (inputValue == undefined) return '';\r\n var transformedInput = inputValue.replace(/[^1-9]/g, '');\r\n if (transformedInput !== inputValue) {\r\n modelCtrl.$setViewValue(transformedInput);\r\n modelCtrl.$render();\r\n }\r\n return transformedInput;\r\n });\r\n }\r\n };\r\n })\r\n\r\n\r\n\r\n .directive(\"limitToMax\", function () {\r\n return {\r\n link: function (scope, element, attributes) {\r\n element.on(\"keydown keyup\", function (e) {\r\n if (Number(element.val()) > Number(attributes.max) &&\r\n e.keyCode != 46 // delete\r\n &&\r\n e.keyCode != 8 // backspace\r\n ) {\r\n e.preventDefault();\r\n element.val(attributes.max);\r\n }\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive(\"compareTo\", function () {\r\n return {\r\n require: \"ngModel\",\r\n scope: {\r\n otherModelValue: \"=compareTo\"\r\n },\r\n link: function (scope, element, attributes, ngModel) {\r\n\r\n ngModel.$validators.compareTo = function (modelValue) {\r\n return modelValue == scope.otherModelValue;\r\n };\r\n\r\n scope.$watch(\"otherModelValue\", function () {\r\n ngModel.$validate();\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive('validNumber', function () {\r\n return {\r\n require: '?ngModel',\r\n link: function (scope, element, attrs, ngModelCtrl) {\r\n if (!ngModelCtrl) {\r\n return;\r\n }\r\n\r\n ngModelCtrl.$parsers.push(function (val) {\r\n if (angular.isUndefined(val)) {\r\n var val = '';\r\n }\r\n var clean = val.replace(/[^0-9\\.]/g, '');\r\n if (val !== clean) {\r\n ngModelCtrl.$setViewValue(clean);\r\n ngModelCtrl.$render();\r\n }\r\n return clean;\r\n });\r\n\r\n element.bind('keypress', function (event) {\r\n if (event.keyCode === 32) {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n };\r\n })\r\n .directive('myMaxlength', ['$compile', '$log', function ($compile, $log) {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elem, attrs, ctrl) {\r\n attrs.$set(\"ngTrim\", \"false\");\r\n var maxlength = parseInt(attrs.myMaxlength, 10);\r\n ctrl.$parsers.push(function (value) {\r\n $log.info(\"In parser function value = [\" + value + \"].\");\r\n if (value.length > maxlength) {\r\n $log.info(\"The value [\" + value + \"] is too long!\");\r\n value = value.substr(0, maxlength);\r\n ctrl.$setViewValue(value);\r\n ctrl.$render();\r\n $log.info(\"The value is now truncated as [\" + value + \"].\");\r\n }\r\n return value;\r\n });\r\n }\r\n };\r\n }])\r\n\r\n .directive('numbersOnly', function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n // this next if is necessary for when using ng-required on your input. \r\n // In such cases, when a letter is typed first, this parser will be called\r\n // again, and the 2nd time, the value will be undefined\r\n if (inputValue == undefined) return ''\r\n var transformedInput = inputValue.replace(/[^0-9]/g, '');\r\n if (transformedInput != inputValue) {\r\n modelCtrl.$setViewValue(transformedInput);\r\n modelCtrl.$render();\r\n }\r\n\r\n return transformedInput;\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive('countrycodeOnly', function ($rootScope) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n var transformedInput = inputValue.replace(/[^0-9+]/g, '');\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (transformedInput != inputValue) {\r\n modelCtrl.$setViewValue(transformedInput);\r\n modelCtrl.$render();\r\n $rootScope.showToaster('info', '\" + \" Symbol Followed By Number', \"Please Enter ..!\");\r\n return transformedInput;\r\n }\r\n return transformedInput;\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive('characterOnly', function ($rootScope) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n var transformedInput = inputValue.replace(/[^a-zA-Z ]/g, '');\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (transformedInput != inputValue) {\r\n modelCtrl.$setViewValue(transformedInput);\r\n modelCtrl.$render();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return transformedInput;\r\n }\r\n return transformedInput;\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive('capitalizeFirst', function ($parse) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n var capitalize = function (inputValue) {\r\n if (inputValue === undefined) { inputValue = ''; }\r\n var capitalized = inputValue.charAt(0).toUpperCase() +\r\n inputValue.substring(1);\r\n if (capitalized !== inputValue) {\r\n modelCtrl.$setViewValue(capitalized);\r\n modelCtrl.$render();\r\n }\r\n return capitalized;\r\n }\r\n modelCtrl.$parsers.push(capitalize);\r\n capitalize($parse(attrs.ngModel)(scope)); // capitalize initial value\r\n }\r\n };\r\n })\r\n\r\n\r\n .directive('rowSelect', function () {\r\n return {\r\n require: '^stTable',\r\n template: '',\r\n scope: {\r\n row: '=rowSelect'\r\n },\r\n link: function (scope, element, attr, ctrl) {\r\n\r\n element.bind('click', function (evt) {\r\n\r\n scope.$apply(function () {\r\n\r\n ctrl.select(scope.row, 'multiple');\r\n\r\n });\r\n\r\n });\r\n\r\n scope.$watch('row.isSelected', function (newValue) {\r\n\r\n if (newValue === true) {\r\n\r\n element.parent().addClass('st-selected');\r\n element.find('input').attr('checked', true);\r\n\r\n } else {\r\n\r\n element.parent().removeClass('st-selected');\r\n element.find('input').attr('checked', false);\r\n\r\n }\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive('rowSelectAll', function () {\r\n\r\n return {\r\n require: '^stTable',\r\n template: '',\r\n scope: {\r\n all: '=rowSelectAll',\r\n selected: '='\r\n },\r\n link: function (scope, element, attr) {\r\n\r\n scope.isAllSelected = false;\r\n\r\n element.bind('click', function (evt) {\r\n\r\n scope.$apply(function () {\r\n\r\n scope.all.forEach(function (val) {\r\n\r\n val.isSelected = scope.isAllSelected;\r\n\r\n });\r\n\r\n });\r\n\r\n });\r\n\r\n scope.$watchCollection('selected', function (newVal) {\r\n\r\n var s = newVal.length;\r\n var a = scope.all.length;\r\n\r\n if ((s == a) && s > 0 && a > 0) {\r\n\r\n element.find('input').attr('checked', true);\r\n scope.isAllSelected = false;\r\n\r\n } else {\r\n\r\n element.find('input').attr('checked', false);\r\n scope.isAllSelected = true;\r\n\r\n }\r\n\r\n });\r\n }\r\n };\r\n })\r\n\r\n .directive(\"marksRegex\", function () {\r\n\r\n var regexp;\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, elem, attrs) {\r\n regexp = /^([0-9]([0-9]([\\.]([0-9]([0-9]?)([0-9]?)([0-9]?)?)?)?)?)?$/;\r\n var char;\r\n elem.bind(\"keypress\", function (event) {\r\n if (event.which == 8) return;\r\n char = String.fromCharCode(event.which);\r\n if (!regexp.test(elem.val() + char))\r\n event.preventDefault();\r\n })\r\n }\r\n }\r\n\r\n })\r\n\r\n .filter('numberFixedLen', function () {\r\n return function (n, len) {\r\n var num = parseInt(n, 10);\r\n len = parseInt(len, 10);\r\n if (isNaN(num) || isNaN(len)) {\r\n return n;\r\n }\r\n num = '' + num;\r\n while (num.length < len) {\r\n num = '0' + num;\r\n }\r\n return num;\r\n };\r\n })\r\n .directive('scrollSpy', function ($timeout) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, elem, attr) {\r\n var offset = parseInt(attr.scrollOffset, 10)\r\n if (!offset) offset = 10;\r\n console.log(\"offset: \" + offset);\r\n elem.scrollspy({ \"offset\": offset });\r\n // $(\"#bs-example-navbar-collapse-1\").scrollspy({ \"offset\" : 12}); \r\n scope.$watch(attr.scrollSpy, function (value) {\r\n $timeout(function () {\r\n elem.scrollspy('refresh', { \"offset\": offset })\r\n }, 1);\r\n }, true);\r\n }\r\n }\r\n }).directive('preventDefault', function () {\r\n return function (scope, element, attrs) {\r\n jQuery(element).click(function (event) {\r\n event.preventDefault();\r\n });\r\n }\r\n }).directive(\"scrollTo\", [\"$window\", function ($window) {\r\n return {\r\n restrict: \"AC\",\r\n compile: function () {\r\n\r\n function scrollInto(elementId) {\r\n if (!elementId) $window.scrollTo(0, 0);\r\n //check if an element can be found with id attribute\r\n var el = document.getElementById(elementId);\r\n if (el) el.scrollIntoView();\r\n }\r\n\r\n return function (scope, element, attr) {\r\n element.bind(\"click\", function (event) {\r\n scrollInto(attr.scrollTo);\r\n });\r\n };\r\n }\r\n };\r\n }])\r\n\r\n .directive('ngMin', function () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elem, attr, ctrl) {\r\n scope.$watch(attr.ngMin, function () {\r\n ctrl.$setViewValue(ctrl.$viewValue);\r\n });\r\n var minValidator = function (value) {\r\n var min = scope.$eval(attr.ngMin) || 0;\r\n if (!isEmpty(value) && value < min) {\r\n ctrl.$setValidity('ngMin', false);\r\n return undefined;\r\n } else {\r\n ctrl.$setValidity('ngMin', true);\r\n return value;\r\n }\r\n };\r\n\r\n ctrl.$parsers.push(minValidator);\r\n ctrl.$formatters.push(minValidator);\r\n }\r\n };\r\n })\r\n .directive('ngMax', function () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elem, attr, ctrl) {\r\n scope.$watch(attr.ngMax, function () {\r\n ctrl.$setViewValue(ctrl.$viewValue);\r\n });\r\n var maxValidator = function (value) {\r\n debugger;\r\n var max = scope.$eval(attr.ngMax) || Infinity;\r\n if (!isEmpty(value) && value > max) {\r\n ctrl.$setValidity('ngMax', false);\r\n return undefined;\r\n } else {\r\n ctrl.$setValidity('ngMax', true);\r\n return value;\r\n }\r\n };\r\n\r\n ctrl.$parsers.push(maxValidator);\r\n ctrl.$formatters.push(maxValidator);\r\n }\r\n };\r\n }).directive('decimalWith2digit', function () {\r\n return {\r\n require: '?ngModel',\r\n link: function (scope, element, attrs, ngModelCtrl) {\r\n if (!ngModelCtrl) {\r\n return;\r\n }\r\n\r\n ngModelCtrl.$parsers.push(function (val) {\r\n if (angular.isUndefined(val)) {\r\n var val = '';\r\n }\r\n\r\n var clean = val.replace(/[^-0-9\\.]/g, '');\r\n var negativeCheck = clean.split('-');\r\n var decimalCheck = clean.split('.');\r\n if (!angular.isUndefined(negativeCheck[1])) {\r\n negativeCheck[1] = negativeCheck[1].slice(0, negativeCheck[1].length);\r\n clean = negativeCheck[0] + '-' + negativeCheck[1];\r\n if (negativeCheck[0].length > 0) {\r\n clean = negativeCheck[0];\r\n }\r\n\r\n }\r\n\r\n if (!angular.isUndefined(decimalCheck[1])) {\r\n decimalCheck[1] = decimalCheck[1].slice(0, 2);\r\n clean = decimalCheck[0] + '.' + decimalCheck[1];\r\n }\r\n\r\n if (val !== clean) {\r\n ngModelCtrl.$setViewValue(clean);\r\n ngModelCtrl.$render();\r\n }\r\n return clean;\r\n });\r\n\r\n element.bind('keypress', function (event) {\r\n if (event.keyCode === 32) {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n };\r\n })\r\n //.directive('number', function () {\r\n // return {\r\n // link: function (scope, el, attr) {\r\n // el.bind(\"keydown keypress\", function (event) {\r\n // //ignore all characters that are not numbers, except backspace, delete, left arrow and right arrow\r\n // if ((event.keyCode < 48 || event.keyCode > 57) || event.keyCode == 102 || event.keyCode === 60 || event.keyCode == 14 || event.keyCode == 15 || event.keyCode == 187 || event.keyCode == 188 || event.keyCode == 189 || event.keyCode == 115 || event.keyCode == 70 || event.keyCode == 83 || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 || event.keyCode == 39) {\r\n // event.preventDefault();\r\n // } \r\n // });\r\n // }\r\n // };\r\n // })\r\n .directive('xyScroll', ['$log', '$document', '$timeout', function ($log, $document, $timeout) {\r\n return {\r\n scope: {\r\n x: '=?',\r\n y: '=?',\r\n dragX: '=?',\r\n dragY: '=?'\r\n },\r\n template: '
'\r\n + '
'\r\n + '
'\r\n + '
'\r\n + '
',\r\n transclude: true,\r\n link: function (scope, element, attrs) {\r\n // ...\r\n var startX = 0,\r\n startY = 0,\r\n x = 0,\r\n y = 0;\r\n\r\n var accelerationTimer = null,\r\n accelerationDelay = null,\r\n speed = 0.5,\r\n speedX = 1,\r\n speedY = 1;\r\n\r\n var content = element.find('.xy-content'),\r\n header = element.find('.xy-header-left'),\r\n top = element.find('.xy-header-top'),\r\n corner = element.find('.xy-corner'),\r\n inner = content.parent(), //element.find('.xy-inner'),\r\n child = content.children();\r\n\r\n scope.dragging = false;\r\n scope.isActive = false;\r\n scope.scrollX = {\r\n left: 0,\r\n width: 100,\r\n // opacity: 1\r\n };\r\n\r\n scope.scrollY = {\r\n top: 0,\r\n height: 30,\r\n // opacity: 1\r\n };\r\n\r\n scope.topOffset = 0;\r\n\r\n $timeout(function () {\r\n setup();\r\n resize();\r\n });\r\n\r\n function setup() {\r\n inner.on('mousewheel wheel', mousewheel);\r\n\r\n if (scope.dragX || scope.dragY) {\r\n content.on('mousedown', mousedown);\r\n }\r\n content.on('mouseover', mouseover);\r\n content.on('mouseout', mouseout);\r\n content.on('touchstart', touchstart); //touch test\r\n\r\n var resizeEvent = attrs[\"resize\"];\r\n if (resizeEvent) { //optional resize via scope.$boardcast\r\n scope.$on(resizeEvent, function () {\r\n $timeout(resize, 0);\r\n });\r\n }\r\n var resetEvent = attrs[\"reset\"];\r\n if (resetEvent) {\r\n scope.$on(resetEvent, function () {\r\n $timeout(restart, 0);\r\n });\r\n }\r\n }\r\n\r\n function resize() {\r\n //top header\r\n scope.topOffset = getTopOffset();\r\n corner.height(scope.topOffset);\r\n top.height(scope.topOffset);\r\n //scrollbar\r\n scope.scrollX.width = getScrollWidth();\r\n scope.scrollY.height = getScrollHeight();\r\n speedX = getRatioX();\r\n speedY = getRatioY();\r\n //set position \r\n scrollX();\r\n scrollY();\r\n }\r\n\r\n function restart() {\r\n x = 0;\r\n y = 0;\r\n scrollX();\r\n scrollY();\r\n update();\r\n }\r\n\r\n function mousewheel(event) {\r\n event.preventDefault();\r\n // support non-webkit browsers\r\n if (event.originalEvent != undefined) {\r\n event = event.originalEvent;\r\n }\r\n var delta = getWheelDelta(event); // event.wheelDeltaY || event.wheelDelta;\r\n delta = Math.floor(delta * accelerate());\r\n // shift or cmd(Mac) is pressed?\r\n if (event.shiftKey || event.metaKey) {\r\n moveX(-delta);\r\n } else {\r\n moveY(-delta);\r\n }\r\n update();\r\n }\r\n\r\n function getWheelDelta(event) {\r\n if (event.type == \"wheel\" || event.deltaY) {\r\n var delta = event.deltaX || event.deltaY;\r\n return (event.deltaMode == 0) ? -delta : -delta * 40; //line mode\r\n }\r\n if (event.type == \"mousewheel\") {\r\n return event.wheelDeltaY || event.wheelDelta;\r\n }\r\n }\r\n\r\n scope.beginDragX = function (event) {\r\n event.preventDefault();\r\n scope.dragging = true;\r\n startX = event.pageX;\r\n $document.on('mousemove', dragX);\r\n $document.one('mouseup', endDragX);\r\n }\r\n\r\n scope.beginDragY = function (event) {\r\n event.preventDefault();\r\n scope.dragging = true;\r\n startY = event.pageY;\r\n $document.on('mousemove', dragY);\r\n $document.one('mouseup', endDragY);\r\n }\r\n\r\n function dragX(event) {\r\n event.preventDefault();\r\n\r\n var delta = event.pageX - startX;\r\n startX += delta;\r\n moveX(delta * speedX);\r\n update();\r\n }\r\n\r\n function dragY(event) {\r\n event.preventDefault();\r\n\r\n var delta = event.pageY - startY;\r\n startY += delta;\r\n moveY(delta * speedY);\r\n update();\r\n }\r\n\r\n function endDragX(e) {\r\n scope.dragging = false;\r\n scope.$apply();\r\n $document.off('mousemove', dragX);\r\n $document.off('mouseup', endDragX);\r\n }\r\n\r\n function endDragY(e) {\r\n scope.dragging = false;\r\n scope.$apply();\r\n $document.off('mousemove', dragY);\r\n $document.off('mouseup', endDragY);\r\n }\r\n\r\n function mousedown(event) {\r\n // Prevent default dragging of selected content\r\n event.preventDefault();\r\n scope.dragging = true;\r\n startX = event.pageX - x;\r\n startY = event.pageY - y;\r\n $document.on('mousemove', mousemove);\r\n $document.one('mouseup', mouseup);\r\n }\r\n\r\n function mousemove(event) {\r\n event.preventDefault();\r\n if (scope.dragX) {\r\n x = limitX(event.pageX - startX);\r\n scrollX();\r\n }\r\n if (scope.dragY) {\r\n y = limitY(event.pageY - startY);\r\n scrollY();\r\n }\r\n update();\r\n }\r\n\r\n function mouseup() {\r\n scope.dragging = false;\r\n scope.$apply();\r\n $document.off('mousemove', mousemove);\r\n $document.off('mouseup', mouseup);\r\n }\r\n\r\n function mouseover(event) {\r\n scope.isActive = true;\r\n scope.$apply();\r\n }\r\n\r\n function mouseout(event) {\r\n scope.isActive = false;\r\n scope.$apply();\r\n }\r\n\r\n function touchstart(event) {\r\n var touch = getTouchEvent(event);\r\n $log.log('touchstart', touch);\r\n startX = touch.pageX - x;\r\n startY = touch.pageY - y;\r\n $document.on('touchmove', touchmove);\r\n $document.on('touchend', touchend);\r\n }\r\n\r\n function touchmove(event) {\r\n event.preventDefault();\r\n var touch = getTouchEvent(event);\r\n x = limitX(touch.pageX - startX);\r\n y = limitY(touch.pageY - startY);\r\n scrollY();\r\n scrollX();\r\n update();\r\n }\r\n\r\n function touchend(event) {\r\n $document.off('touchmove', touchmove);\r\n $document.off('touchend', touchend);\r\n $log.log('touchend.');\r\n }\r\n\r\n function getTouchEvent(event) {\r\n if (event.originalEvent != undefined) {\r\n event = event.originalEvent;\r\n }\r\n if (!event.touches) {\r\n return;\r\n }\r\n return event.touches[0]; //single touch\r\n }\r\n\r\n function moveX(distance) {\r\n x = limitX(x - distance);\r\n scrollX();\r\n }\r\n\r\n function moveY(distance) {\r\n y = limitY(y - distance);\r\n scrollY();\r\n }\r\n\r\n function scrollX() {\r\n var pos = {\r\n left: x + 'px'\r\n };\r\n top.css(pos);\r\n content.css(pos);\r\n }\r\n\r\n function scrollY() {\r\n var yOffset = y + scope.topOffset; //left header\r\n header.css({\r\n top: yOffset + 'px'\r\n });\r\n content.css({\r\n top: y + 'px'\r\n });\r\n }\r\n\r\n function limitX(value) {\r\n //value is negative\r\n var limit = maxX();\r\n return Math.min(0, Math.max(-limit, value));\r\n }\r\n\r\n function limitY(value) {\r\n var limit = maxY();\r\n return Math.min(0, Math.max(-limit, value));\r\n }\r\n\r\n function maxX() {\r\n var limit = actualWidth() - inner.width();\r\n return limit;\r\n }\r\n\r\n function maxY() {\r\n var viewHeight = element.height();\r\n var height = actualHeight();\r\n return height - viewHeight;\r\n }\r\n\r\n function actualHeight() {\r\n var h = child.height();\r\n return h + scope.topOffset;\r\n }\r\n\r\n function actualWidth() {\r\n var h = top.children().width();\r\n var w = child.width();\r\n return Math.max(h, w);\r\n }\r\n\r\n function getTopOffset() {\r\n return Math.max(top.children().height(), corner.height());\r\n }\r\n\r\n function getBarPositionX() {\r\n var viewWidth = inner.width();\r\n var barSize = scope.scrollX.width;\r\n var max = viewWidth - barSize;\r\n var xMax = maxX();\r\n var ratio = -x / xMax;\r\n return Math.floor(ratio * max);\r\n }\r\n\r\n function getBarPositionY() {\r\n var height = element.height();\r\n var barSize = scope.scrollY.height;\r\n var offset = scope.topOffset;\r\n var max = height - barSize - offset;\r\n var yMax = maxY();\r\n var ratio = -y / yMax;\r\n return Math.floor(ratio * max);\r\n }\r\n\r\n function getScrollWidth() {\r\n var w = inner.width(); //.xy-inner width\r\n var len = actualWidth();\r\n return w * w / len;\r\n }\r\n\r\n function getScrollHeight() {\r\n var h = element.height() - top.height();\r\n var len = actualHeight();\r\n return h * h / len;\r\n }\r\n\r\n function getRatioX() {\r\n var viewLength = inner.width();\r\n var actualLength = actualWidth();\r\n return actualLength / viewLength;\r\n }\r\n\r\n function getRatioY() {\r\n var viewLength = element.height() - top.height();\r\n var actualLength = actualHeight();\r\n return actualLength / viewLength;\r\n }\r\n\r\n function update() {\r\n scope.x = x;\r\n scope.y = y;\r\n scope.scrollX.left = getBarPositionX();\r\n scope.scrollY.top = getBarPositionY();\r\n scope.$apply();\r\n }\r\n\r\n /** acceleration effect on mouse wheel */\r\n function accelerate() {\r\n if (accelerationTimer) {\r\n //keep moving state\r\n $timeout.cancel(accelerationTimer);\r\n if (accelerationDelay) {\r\n //keep acceleration\r\n $timeout.cancel(accelerationDelay);\r\n }\r\n accelerationDelay = $timeout(function () {\r\n speed += 0.1; //increase speed every 0.2s\r\n }, 200);\r\n }\r\n accelerationTimer = $timeout(function () {\r\n speed = 0.5;\r\n }, 400);\r\n\r\n return Math.min(speed, 1);\r\n }\r\n\r\n }\r\n };\r\n }])\r\n .filter('setDecimal', function ($filter) {\r\n return function (input, places) {\r\n if (isNaN(input)) return input;\r\n // If we want 1 decimal place, we want to mult/div by 10\r\n // If we want 2 decimal places, we want to mult/div by 100, etc\r\n // So use the following to create that factor\r\n var factor = \"1\" + Array(+(places > 0 && places + 1)).join(\"0\");\r\n return Math.round(input * factor) / factor;\r\n }\r\n })\r\n\r\n .directive('allowDecimalNumbers', function () {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, elm, attrs, ctrl) {\r\n elm.on('keydown', function (event) {\r\n var $input = $(this);\r\n var value = $input.val();\r\n value = value.replace(/[^0-9\\.]/g, '')\r\n $input.val(value);\r\n if (event.which == 64 || event.which == 16) {\r\n // numbers \r\n return false;\r\n } if ([8, 13, 27, 37, 38, 39, 40, 110].indexOf(event.which) > -1) {\r\n // backspace, enter, escape, arrows \r\n return true;\r\n } else if (event.which >= 48 && event.which <= 57) {\r\n // numbers \r\n return true;\r\n } else if (event.which >= 96 && event.which <= 105) {\r\n // numpad number \r\n return true;\r\n } else if ([46, 110, 190].indexOf(event.which) > -1) {\r\n // dot and numpad dot \r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n })\r\n ///Use only Fax and Mobile Number Format(EX-(415) 555-2671)\r\n .controller('ExampleController', ['$scope', function ($scope) {\r\n $scope.regex = /^[^`~!@#$%\\^&*_={}|[\\]\\\\:';\"<>?,./0-9]*$/;\r\n }])\r\n .directive('reGex', function () {\r\n function link(scope, elem, attrs, ngModel) {\r\n ngModel.$parsers.push(function (viewValue) {\r\n var reg = /^[-^`~!@#$%\\^&*_={}|[\\]\\\\:';\"<>?,./0-9]*$/;\r\n // if view values matches regexp, update model value\r\n if (viewValue.match(reg)) {\r\n return viewValue;\r\n }\r\n // keep the model value as it is\r\n var transformedValue = ngModel.$modelValue;\r\n ngModel.$setViewValue(transformedValue);\r\n ngModel.$render();\r\n return transformedValue;\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: link\r\n };\r\n })\r\n ///Use only Blood group Format(EX-A1 +ve,A1 -ve)\r\n .controller('ExampleController', ['$scope', function ($scope) {\r\n $scope.regexs = /^[^`~!@#$%\\^&*_={}|[\\]\\\\:';\"<>?,./]*$/;\r\n }])\r\n .directive('reGexs', function () {\r\n function link(scope, elem, attrs, ngModel) {\r\n ngModel.$parsers.push(function (viewValue) {\r\n var reg = /^[^`~!@#$%\\^&*_={}|[\\]\\\\:';\"<>?,./]*$/;\r\n // if view values matches regexp, update model value\r\n if (viewValue.match(reg)) {\r\n return viewValue;\r\n }\r\n // keep the model value as it is\r\n var transformedValue = ngModel.$modelValue;\r\n ngModel.$setViewValue(transformedValue);\r\n ngModel.$render();\r\n return transformedValue;\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: link\r\n };\r\n })\r\n .directive('expand', function () {\r\n function link(scope, element, attrs) {\r\n scope.$on('onExpandAll', function (event, args) {\r\n scope.expanded = args.expanded;\r\n });\r\n }\r\n return {\r\n link: link\r\n };\r\n })\r\n\r\n // For IOCA Creation Screen smart table filter\r\n \r\n .directive('xdStSearch', ['stConfig', '$timeout', function (stConfig, $timeout) {\r\n return {\r\n require: { table: '^stTable', model: 'ngModel' },\r\n link: function (scope, element, attr, ctrl) {\r\n var tableCtrl = ctrl.table;\r\n var promise = null;\r\n var throttle = attr.stDelay || stConfig.search.delay;\r\n var event = attr.stInputEvent || stConfig.search.inputEvent;\r\n var trimSearch = attr.trimSearch || stConfig.search.trimSearch;\r\n\r\n attr.$observe('xdStSearch', function (newValue, oldValue) {\r\n var input = ctrl.model.$viewValue;\r\n if (newValue !== oldValue && input) {\r\n tableCtrl.tableState().search = {};\r\n input = angular.isString(input) && trimSearch ? input.trim() : input;\r\n tableCtrl.search(input, newValue);\r\n }\r\n });\r\n\r\n // view -> table state\r\n ctrl.model.$parsers.push(throttleSearch);\r\n ctrl.model.$formatters.push(throttleSearch)\r\n\r\n function throttleSearch(value) {\r\n if (promise !== null) {\r\n $timeout.cancel(promise);\r\n }\r\n promise = $timeout(function () {\r\n var input = angular.isString(value) && trimSearch ? value.trim() : value;\r\n tableCtrl.search(input, attr.xdStSearch || '');\r\n promise = null;\r\n }, throttle);\r\n return value;\r\n }\r\n }\r\n };\r\n }]);\r\n\r\n function isEmpty(value) {\r\n return angular.isUndefined(value) || value === '' || value === null || value !== value;\r\n }\r\n\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n // angular\r\n // .module('KPMES.pages')\r\n angular.module('ui.multiselect', []);\r\n angular.module('ui.multiselect')\r\n .factory('optionParser', ['$parse', function ($parse) {\r\n \r\n var TYPEAHEAD_REGEXP = /^\\s*(.*?)(?:\\s+as\\s+(.*?))?\\s+for\\s+(?:([\\$\\w][\\$\\w\\d]*))\\s+in\\s+(.*)$/;\r\n\r\n return {\r\n parse: function (input) {\r\n\r\n var match = input.match(TYPEAHEAD_REGEXP), modelMapper, viewMapper, source;\r\n if (!match) {\r\n throw new Error(\r\n \"Expected typeahead specification in form of '_modelValue_ (as _label_)? for _item_ in _collection_'\" +\r\n \" but got '\" + input + \"'.\");\r\n }\r\n\r\n return {\r\n itemName: match[3],\r\n source: $parse(match[4]),\r\n viewMapper: $parse(match[2] || match[1]),\r\n modelMapper: $parse(match[1])\r\n };\r\n }\r\n };\r\n }])\r\n\r\n .directive('multiselect', ['$parse', '$document', '$compile', 'optionParser',\r\n\r\n function ($parse, $document, $compile, optionParser) {\r\n return {\r\n restrict: 'E',\r\n require: 'ngModel',\r\n link: function (originalScope, element, attrs, modelCtrl) {\r\n\r\n var exp = attrs.options,\r\n parsedResult = optionParser.parse(exp),\r\n isMultiple = attrs.multiple ? true : false,\r\n required = false,\r\n // var isClearAll = true;\r\n scope = originalScope.$new(),\r\n changeHandler = attrs.change || angular.noop;\r\n\r\n scope.items = [];\r\n scope.header = 'Select';\r\n scope.multiple = isMultiple;\r\n scope.disabled = false;\r\n scope.valid = validModel;\r\n\r\n\r\n originalScope.$on('$destroy', function () {\r\n scope.$destroy();\r\n });\r\n\r\n var popUpEl = angular.element('');\r\n\r\n //required validator\r\n if (attrs.required || attrs.ngRequired) {\r\n required = true;\r\n }\r\n attrs.$observe('required', function (newVal) {\r\n required = newVal;\r\n });\r\n\r\n //watch disabled state\r\n scope.$watch(function () {\r\n return $parse(attrs.disabled)(originalScope);\r\n }, function (newVal) {\r\n scope.disabled = newVal;\r\n });\r\n\r\n //watch single/multiple state for dynamically change single to multiple\r\n scope.$watch(function () {\r\n return $parse(attrs.multiple)(originalScope);\r\n }, function (newVal) {\r\n isMultiple = newVal || false;\r\n });\r\n\r\n //watch option changes for options that are populated dynamically\r\n scope.$watch(function () {\r\n return parsedResult.source(originalScope);\r\n }, function (newVal) {\r\n if (angular.isDefined(newVal))\r\n parseModel();\r\n });\r\n\r\n //watch model change\r\n scope.$watch(function () {\r\n return modelCtrl.$modelValue;\r\n }, function (newVal, oldVal) {\r\n //when directive initialize, newVal usually undefined. Also, if model value already set in the controller\r\n //for preselected list then we need to mark checked in our scope item. But we don't want to do this every time\r\n //model changes. We need to do this only if it is done outside directive scope, from controller, for example.\r\n if (angular.isDefined(newVal)) {\r\n markChecked(newVal);\r\n scope.$eval(changeHandler);\r\n }\r\n getHeaderText();\r\n modelCtrl.$setValidity('required', scope.valid());\r\n }, true);\r\n\r\n function parseModel() {\r\n scope.items.length = 0;\r\n var model = parsedResult.source(originalScope);\r\n for (var i = 0; i < model.length; i++) {\r\n var local = {};\r\n local[parsedResult.itemName] = model[i];\r\n scope.items.push({\r\n label: parsedResult.viewMapper(local),\r\n model: model[i],\r\n checked: false\r\n });\r\n }\r\n }\r\n\r\n parseModel();\r\n\r\n element.append($compile(popUpEl)(scope));\r\n\r\n function getHeaderText() {\r\n if (!modelCtrl.$modelValue || !modelCtrl.$modelValue.length) return scope.header = 'Select';\r\n if (isMultiple) {\r\n scope.header = modelCtrl.$modelValue.length + ' ' + 'selected';\r\n } else {\r\n var local = {};\r\n local[parsedResult.itemName] = modelCtrl.$modelValue;\r\n scope.header = parsedResult.viewMapper(local);\r\n }\r\n }\r\n\r\n function validModel() {\r\n if (!required) return true;\r\n var value = modelCtrl.$modelValue;\r\n return (angular.isArray(value) && value.length > 0) || (!angular.isArray(value) && value != null);\r\n };\r\n\r\n function selectSingle(item) {\r\n if (item.checked) {\r\n scope.uncheckAll();\r\n } else {\r\n scope.uncheckAll();\r\n item.checked = !item.checked;\r\n }\r\n setModelValue(false);\r\n }\r\n\r\n function selectMultiple(item) { \r\n item.checked = !item.checked;\r\n setModelValue(true);\r\n }\r\n\r\n function setModelValue(isMultiple) {\r\n var value;\r\n if (isMultiple) {\r\n value = [];\r\n angular.forEach(scope.items, function (item) {\r\n if (item.checked) value.push(item.model);\r\n })\r\n } else {\r\n angular.forEach(scope.items, function (item) {\r\n if (item.checked) {\r\n value = item.model;\r\n return false;\r\n }\r\n })\r\n }\r\n modelCtrl.$setViewValue(value);\r\n }\r\n\r\n function markChecked(newVal) {\r\n if (!angular.isArray(newVal)) {\r\n angular.forEach(scope.items, function (item) {\r\n if (angular.equals(item.model, newVal)) {\r\n item.checked = true;\r\n return false;\r\n }\r\n });\r\n } else {\r\n angular.forEach(newVal, function (i) {\r\n angular.forEach(scope.items, function (item) {\r\n if (angular.equals(item.model, i)) {\r\n item.checked = true;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n scope.checkAll = function () {\r\n if (!isMultiple) return;\r\n angular.forEach(scope.items, function (item) {\r\n item.checked = true;\r\n });\r\n setModelValue(true);\r\n };\r\n\r\n scope.uncheckAll = function () {\r\n angular.forEach(scope.items, function (item) {\r\n item.checked = false;\r\n });\r\n setModelValue(true);\r\n };\r\n \r\n scope.select = function (item) { \r\n // if(isClearAll) \r\n // scope.uncheckAll();\r\n // isClearAll = false;\r\n if (isMultiple === false) {\r\n selectSingle(item);\r\n scope.toggleSelect();\r\n } else {\r\n selectMultiple(item);\r\n }\r\n }\r\n }\r\n };\r\n }])\r\n\r\n .directive('multiselectPopup', ['$document', function ($document) {\r\n return {\r\n restrict: 'E',\r\n scope: false,\r\n replace: true,\r\n templateUrl: 'app/pages/directives/multiselect.tmpl.html',\r\n link: function (scope, element, attrs) {\r\n\r\n scope.isVisible = false;\r\n\r\n scope.toggleSelect = function () {\r\n if (element.hasClass('open')) {\r\n element.removeClass('open');\r\n $document.unbind('click', clickHandler);\r\n } else {\r\n element.addClass('open');\r\n scope.focus();\r\n $document.bind('click', clickHandler);\r\n }\r\n };\r\n\r\n function clickHandler(event) {\r\n if (elementMatchesAnyInArray(event.target, element.find(event.target.tagName)))\r\n return;\r\n element.removeClass('open');\r\n $document.unbind('click', clickHandler);\r\n scope.$digest();\r\n }\r\n\r\n scope.focus = function focus() {\r\n var searchBox = element.find('input')[0];\r\n searchBox.focus();\r\n }\r\n\r\n var elementMatchesAnyInArray = function (element, elementArray) {\r\n for (var i = 0; i < elementArray.length; i++)\r\n if (element == elementArray[i])\r\n return true;\r\n return false;\r\n }\r\n }\r\n }\r\n }])\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.designation')\r\n .controller('DesignationCtrl', DesignationCtrl);\r\n\r\n /** @ngInject */\r\n function DesignationCtrl($rootScope, lodash, dialogs, $http, DesignationService, DepartmentServices, AuthenticationService, CompanyService) {\r\n var vm = this;\r\n\r\n\r\n \r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.DesignationList = [];\r\n vm.desig = {};\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n $rootScope.isLogin = false;\r\n // Methods\r\n vm.departmentSelectionChanged = departmentSelectionChanged;\r\n vm.getDepartmentListByCompanyId = getDepartmentListByCompanyId;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editDesignation = editDesignation;\r\n vm.removeDesignation = removeDesignation;\r\n vm.SaveDesignation = SaveDesignation;\r\n vm.changeActiveDesignation = changeActiveDesignation;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n //////////////////\r\n\r\n function Init() {\r\n\r\n DesignationService.getAllDesignation(loggedUser.SelectedCompany.CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n //vm.DesignationActiveList = lodash.filter(vm.DesignationList, { 'IsActive': true }); \r\n CompanyService.getSubCompByCompId(loggedUser.SelectedCompany.CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation\");\r\n });\r\n }\r\n\r\n function getDepartmentListByCompanyId(CompanyId, callback) {\r\n if(CompanyId){\r\n vm.DepartmentList=[];\r\n vm.desig.selectedDepartment=null;\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n if (vm.DepartmentList.length < 1) {\r\n dialogs.notify('Warning', 'No department available for ' + vm.desig.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n \r\n // Temp solution \r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n function departmentSelectionChanged(ParentId, callback) {\r\n if(vm.desig.selectedDepartment){ \r\n DesignationService.getRepToDesig(vm.desig.selectedDepartment.DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationActiveList = res.data;\r\n if (vm.DesignationActiveList.length < 1) {\r\n dialogs.notify('Warning', 'No department available for ' + vm.desig.selectedDepartment.ParentName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n // Temp solution \r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n // function departmentSelectionChanged() {\r\n // var obj = {\r\n // DepartmentId: vm.desig.selectedDepartment.DepartmentId\r\n // };\r\n // DepartmentServices.GetDesigByDepId(obj).then(function(res) {\r\n // if (res.status === 200)\r\n // vm.DesignationActiveList = res.data;\r\n // else\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Department\");\r\n // }, function(err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Department\");\r\n // });\r\n // }\r\n\r\n function Create() {\r\n vm.code = true;\r\n vm.isFormOpen = true;\r\n vm.desig = {};\r\n \r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.desig = {};\r\n \r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.desig = {};\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.desigForm.$setUntouched();\r\n }\r\n\r\n function editDesignation(desig) {\r\n debugger;\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.desig = angular.copy(desig);\r\n if (desig.Superior === 0)\r\n vm.isNoSuperior = false;\r\n\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === desig.CompanyId) {\r\n vm.desig.selectedCompany = vm.CompanyList[c];\r\n }\r\n }\r\n getDepartmentListByCompanyId(desig.CompanyId, function () {\r\n for (var d in vm.DepartmentList) {\r\n if (vm.DepartmentList[d].DepartmentId === desig.DepartmentId) {\r\n vm.desig.selectedDepartment = vm.DepartmentList[d];\r\n }\r\n }\r\n\r\n for (var d in vm.DesignationList) {\r\n if (vm.DesignationList[d].DesignationId === desig.Superior) {\r\n vm.desig.selectedSuperior = vm.DesignationList[d];\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n function removeDesignation(desig) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DesignationService.removeDesignation(desig.DesignationId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Designation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Designation\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Designation. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveDesignation(desig) {\r\n // CreatedBy = loggedUser.UserId;\r\n // debugger;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getDepartmentListByCompanyId = function (selectedCompany) {\r\n selectedCompany.CompanyId = vm.selectedCompany.CompanyId;\r\n }\r\n desig.CompanyId = vm.desig.selectedCompany.CompanyId;\r\n desig.DepartmentId = vm.desig.selectedDepartment.DepartmentId;\r\n\r\n desig.Superior = (vm.desig.selectedSuperior) ? vm.desig.selectedSuperior.DesignationId : desig.Superior = 0;\r\n\r\n if (!vm.isEditing) {\r\n desig.CreatedBy = loggedUser.UserId;\r\n DesignationService.AddDesignation(desig).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Designation Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Designation Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n\r\n } else {\r\n desig.ModifiedBy = loggedUser.UserId;\r\n DesignationService.EditDesignation(desig).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Designation Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Designation Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n\r\n }\r\n }\r\n\r\n function changeActiveDesignation(desig) {\r\n var msg = 'Are sure you want to ' + ((desig.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((desig.IsActive) ? 'Deactive' : 'Active') + 'Designation Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DesignationService.changeActiveDesignation(desig.DesignationId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Designation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Designation\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Designation. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.employee')\r\n .controller('EmployeeCtrl', EmployeeCtrl);\r\n /** @ngInject */\r\n function EmployeeCtrl($http, $rootScope, lodash, dialogs, $filter, EmployeeService, DepartmentServices, DesignationService, AuthenticationService, $scope, $timeout) {\r\n var vm = this;\r\n\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n\r\n vm.isReporingToRequried = false;\r\n vm.EmployeeList = [];\r\n vm.EmployeeExperienceList = [];\r\n vm.EmployeeAcademicList = [];\r\n vm.eml_add = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/;\r\n // vm.EmployeeDocumentList = [];\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.emp = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} };\r\n vm.checkErr = false;\r\n vm.errMessage = '';\r\n vm.isEditingProPic = false;\r\n\r\n // Methods\r\n vm.GetDesignationByDepartmentId = GetDesignationByDepartmentId;\r\n // vm.GetDepartmentByCompanyId = GetDepartmentByCompanyId;\r\n vm.getReportingToList = getReportingToList;\r\n vm.editProPic = editProPic;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n\r\n // File upload methods\r\n $scope.photoChanged = photoChanged;\r\n $scope.getGraduationFiles = getGraduationFiles;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n ////////////////////\r\n\r\n function editProPic() {\r\n vm.isEditingProPic = true;\r\n }\r\n\r\n $scope.AlphOnly = function(event, myValue) {\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n\r\n function photoChanged(event) {\r\n\r\n var reader = new FileReader();\r\n if (!vm.isEditingProPic) {\r\n vm.empProfilePic = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.empProfilePic);\r\n } else {\r\n vm.empProfilePic = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.empProfilePic);\r\n var formData = new FormData();\r\n formData.append('profilePic', vm.empProfilePic);\r\n formData.append('employeeId', vm.empId);\r\n EmployeeService.updateProfilePic(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Profile picture changed succussfully', \"Success\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n }\r\n }\r\n\r\n function getGraduationFiles(event) {\r\n\r\n if (event)\r\n vm.empGraduationDocs = event.target.files;\r\n }\r\n\r\n $scope.imageIsLoaded = function(e) {\r\n $scope.$apply(function() {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n\r\n function Init() {\r\n var objGetEmpDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n }\r\n //var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // vm.emp.Gender = false;\r\n // vm.emp.MaritalStatus = false;\r\n EmployeeService.getAllEmployees(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n\r\n function getReportingToList(callback) {\r\n var desigId = vm.emp.selectedDesignation.Superior;\r\n\r\n if (desigId) {\r\n EmployeeService.getAllCompanyEmployees(desigId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ReportingtoList = res.data;\r\n vm.isReporingToRequried = true;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n } else {\r\n vm.isReporingToRequried = false;\r\n }\r\n\r\n }\r\n\r\n vm.AddEmployeeExperience = function() {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n EmployeeId: vm.empId,\r\n Organization: vm.emp2.Organization,\r\n Department: vm.emp2.Department,\r\n Designation: vm.emp2.Designation,\r\n FromDate: vm.emp2.FromDate,\r\n ToDate: vm.emp2.ToDate,\r\n YearsofExperience: vm.emp2.YearsofExperience,\r\n Remarks: vm.emp2.Remarks\r\n }\r\n EmployeeService.addNewEmpExperience(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Experience detail added successfully\", \"Success\");\r\n getAllEmpExperienceDetails(vm.empId);\r\n vm.emp2 = {};\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n\r\n vm.RemoveEmployeeExp = function(expId) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function() {\r\n EmployeeService.removeEmpExpInfo(expId).then(function(res) {\r\n if (res.status === 200 && res.data) {\r\n $rootScope.showToaster('success', 'Experience detail deleted successfully.', \"Success\");\r\n getAllEmpExperienceDetails(vm.empId);\r\n } else {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n });\r\n });\r\n }\r\n\r\n vm.AddEmployeeAcademic = function(empacademic) {\r\n var bool = false;\r\n if (vm.EmployeeAcademicList && (vm.emp1.Graduation == '10' || vm.emp1.Graduation == '12')) {\r\n for (var i = 0; i < vm.EmployeeAcademicList.length; i++) {\r\n if (vm.EmployeeAcademicList[i][\"Graduation\"] == vm.emp1.Graduation) {\r\n bool = true;\r\n }\r\n }\r\n }\r\n\r\n if (!bool) {\r\n\r\n var obj = {\r\n CompanyId: CompanyId,\r\n EmployeeId: vm.empId,\r\n Graduation: vm.emp1.Graduation,\r\n Degree: vm.emp1.Degree,\r\n Specialization: vm.emp1.Specialization,\r\n University: vm.emp1.University,\r\n Percentage: vm.emp1.Percentage,\r\n YearofPassing: vm.emp1.YearsofPassing,\r\n Remarks: vm.emp1.Remarks\r\n };\r\n var formData = new FormData();\r\n for (var i in vm.empGraduationDocs) {\r\n formData.append('file' + i, vm.empGraduationDocs[i]);\r\n }\r\n\r\n formData.append('data', JSON.stringify(obj));\r\n EmployeeService.addNewEmpAcademicInfo(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Academic detail added successfully\", \"Success\");\r\n getAllEmpAcademicDetails(vm.empId);\r\n vm.empGraduationDocs = null;\r\n vm.emp1 = {};\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n } else {\r\n $rootScope.showToaster(\"error\", \"That detail already exist!\", \"Error\");\r\n }\r\n }\r\n\r\n vm.RemoveEmployeeAcademic = function(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function() {\r\n EmployeeService.removeEmpAcademyInfo(row.AcademyId).then(function(res) {\r\n if (res.status === 200 && res.data) {\r\n $rootScope.showToaster('success', 'Academic detail deleted successfully.', \"Success\");\r\n getAllEmpAcademicDetails(vm.empId);\r\n } else {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n });\r\n });\r\n }\r\n\r\n vm.checkErr = function(startDate, endDate) {\r\n vm.errMessage = '';\r\n if (startDate > endDate) {\r\n vm.errMessage = 'End Date should be greate than start date';\r\n vm.emp2.ToDate = '';\r\n return false;\r\n } else {\r\n vm.emp2.YearsofExperience = '';\r\n var Years = (endDate.getYear() - startDate.getYear());\r\n var Months = endDate.getMonth() - startDate.getMonth();\r\n\r\n var totalmonths = (Years * 12) + Months;\r\n var totalexp = (totalmonths / 12);\r\n vm.emp2.YearsofExperience = totalexp;\r\n return true;\r\n }\r\n\r\n }\r\n\r\n function GetDesignationByDepartmentId(DepartmentId, callback) {\r\n vm.DesignationList = [];\r\n\r\n DesignationService.GetDesigByDepId(DepartmentId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n vm.emp.selectedDesignation = null;\r\n }\r\n\r\n function getAllEmpAcademicDetails(empId) {\r\n EmployeeService.getAllEmpAcademyInfo(empId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeAcademicList = res.data;\r\n } else {\r\n vm.EmployeeAcademicList = [];\r\n }\r\n }, function(err) {\r\n vm.EmployeeAcademicList = [];\r\n });\r\n }\r\n\r\n function getAllEmpExperienceDetails(empId) {\r\n EmployeeService.getAllEmpExpInfo(empId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeExperienceList = res.data;\r\n } else {\r\n vm.EmployeeExperienceList = [];\r\n }\r\n }, function(err) {\r\n vm.EmployeeExperienceList = [];\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.emp = {};\r\n vm.emp1 = {};\r\n vm.emp2 = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} }\r\n vm.empProfilePic = null;\r\n vm.profilePicUrl = null;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.emp.selectedDepartment = null;\r\n vm.emp.selectedDesignation = null;\r\n vm.emp.selectedReportingTo = null;\r\n vm.isEditing = false;\r\n vm.isReporingToRequried = false;\r\n\r\n Init();\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will lose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.emp = {};\r\n vm.emp1 = {};\r\n vm.emp2 = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} }\r\n vm.empProfilePic = null;\r\n vm.profilePicUrl = null;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.emp.selectedDepartment = null;\r\n vm.emp.selectedDesignation = null;\r\n vm.emp.selectedReportingTo = null;\r\n vm.isEditing = false;\r\n vm.isReporingToRequried = false;\r\n\r\n Init();\r\n });\r\n\r\n\r\n }\r\n\r\n vm.update = function() {\r\n debugger;\r\n if (vm.isComAddSameAsPerAdd) {\r\n vm.empCom.EmpAddress = angular.copy(vm.empPer.EmpAddress);\r\n } else {\r\n vm.empCom.EmpAddress = {};\r\n }\r\n };\r\n\r\n vm.resetForm = function() {\r\n vm.EmployeeForm.$setUntouched();\r\n vm.AddressForm.$setUntouched();\r\n }\r\n\r\n vm.EditEmployee = function(emp) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.emp = angular.copy(emp);\r\n vm.emp.DOJ = new Date(emp.DOJ);\r\n vm.emp.DOB = new Date(emp.DOB);\r\n vm.empId = emp.EmployeeId;\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/EmployeeProfilePictures/' + emp.ProfilePhoto;\r\n vm.empPer.EmpAddress.Address1 = emp.EmpAddress.PerAddress1;\r\n vm.empCom.EmpAddress.Address1 = emp.EmpAddress.CommAddress1;\r\n vm.empPer.EmpAddress.Address2 = emp.EmpAddress.PerAddress2;\r\n vm.empCom.EmpAddress.Address2 = emp.EmpAddress.CommAddress2;\r\n vm.empPer.EmpAddress.Area = emp.EmpAddress.PerArea;\r\n vm.empCom.EmpAddress.Area = emp.EmpAddress.CommArea;\r\n vm.empPer.EmpAddress.City = emp.EmpAddress.PerCity;\r\n vm.empCom.EmpAddress.City = emp.EmpAddress.CommCity;\r\n vm.empPer.EmpAddress.State = emp.EmpAddress.PerState;\r\n vm.empCom.EmpAddress.State = emp.EmpAddress.CommState;\r\n vm.empPer.EmpAddress.Country = emp.EmpAddress.PerCountry;\r\n vm.empCom.EmpAddress.Country = emp.EmpAddress.CommCountry;\r\n vm.empPer.EmpAddress.PinCode = emp.EmpAddress.PerPincode;\r\n vm.empCom.EmpAddress.PinCode = emp.EmpAddress.CommPincode;\r\n vm.empPer.EmpAddress.EmailId = emp.EmpAddress.PerEmailId;\r\n vm.empCom.EmpAddress.EmailId = emp.EmpAddress.CommEmailId;\r\n vm.empPer.EmpAddress.MobileNo = parseInt(emp.EmpAddress.PerMobile);\r\n vm.empCom.EmpAddress.MobileNo = parseInt(emp.EmpAddress.CommMobile);\r\n vm.empPer.EmpAddress.LandlineNo = parseInt(emp.EmpAddress.PerLandline);\r\n vm.empCom.EmpAddress.LandlineNo = parseInt(emp.EmpAddress.CommLandline);\r\n vm.EmployeeAcademicList = emp.EmpAcademy;\r\n vm.EmployeeExperienceList = emp.EmpExperience;\r\n\r\n for (var d in vm.DepartmentList) {\r\n if (vm.DepartmentList[d].DepartmentId === emp.DepartmentId) {\r\n vm.emp.selectedDepartment = vm.DepartmentList[d];\r\n }\r\n }\r\n\r\n GetDesignationByDepartmentId(emp.DepartmentId, function() {\r\n for (var d in vm.DesignationList) {\r\n if (vm.DesignationList[d].DesignationId === emp.DesignationId) {\r\n vm.emp.selectedDesignation = vm.DesignationList[d];\r\n }\r\n }\r\n getReportingToList(function() {\r\n\r\n for (var d in vm.ReportingtoList) {\r\n if (vm.ReportingtoList[d].EmployeeId === emp.ReportingTo) {\r\n vm.emp.selectedReportingTo = vm.ReportingtoList[d];\r\n }\r\n }\r\n });\r\n vm.emp.ModifiedBy = $rootScope.loggedUserId;\r\n });\r\n }\r\n\r\n vm.RemoveEmployee = function(emp) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current Employee.', { animation: true, size: 'sm' });\r\n confirm.result.then(function() {\r\n EmployeeService.RemoveEmployee(emp.EmployeeId).then(function(res) {\r\n if (res.data) {\r\n $rootScope.showToaster('success', 'Employee deleted successfully', \"Employee Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster(\"Employee Removal Status\", \"Dependent Employee Cannot be deleted\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Employee Master\");\r\n });\r\n }, function() {});\r\n }\r\n\r\n vm.changeActiveEmployee = function(emp) {\r\n var msg = 'Are sure you want to ' + ((emp.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((emp.IsActive) ? 'Deactive' : 'Active') + 'Employee Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n EmployeeService.changeActiveEmployee(emp.EmployeeId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Employee\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't InActive Employee\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't InActive Employee. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n vm.SaveEmployee = function(emp) {\r\n vm.isLoading = true;\r\n emp.CompanyId = CompanyId;\r\n emp.DepartmentId = vm.emp.selectedDepartment.DepartmentId;\r\n emp.DesignationId = vm.emp.selectedDesignation.DesignationId;\r\n emp.DOJ = $filter('date')(emp.DOJ, \"yyyy-MM-dd\");\r\n emp.DOB = $filter('date')(emp.DOB, \"yyyy-MM-dd\");\r\n if (vm.emp.selectedReportingTo === null || vm.emp.selectedReportingTo === undefined)\r\n emp.ReportingTo = 0;\r\n else\r\n emp.ReportingTo = vm.emp.selectedReportingTo.EmployeeId;\r\n\r\n emp.Gender = vm.emp.Gender;\r\n emp.MaritalStatus = vm.emp.MaritalStatus;\r\n\r\n // emp.ReportingTo = vm.emp.selectedReportingTo.EmployeeId;\r\n emp.EmpAcademy = vm.EmployeeAcademicList;\r\n emp.EmpExperience = vm.EmployeeExperienceList;\r\n\r\n emp.EmpAddress = {};\r\n emp.EmpAddress.PerAddress1 = vm.empPer.EmpAddress.Address1;\r\n emp.EmpAddress.CommAddress1 = vm.empCom.EmpAddress.Address1;\r\n emp.EmpAddress.PerAddress2 = vm.empPer.EmpAddress.Address2;\r\n emp.EmpAddress.CommAddress2 = vm.empCom.EmpAddress.Address2;\r\n emp.EmpAddress.PerArea = vm.empPer.EmpAddress.Area;\r\n emp.EmpAddress.CommArea = vm.empCom.EmpAddress.Area;\r\n emp.EmpAddress.PerCity = vm.empPer.EmpAddress.City;\r\n emp.EmpAddress.CommCity = vm.empCom.EmpAddress.City;\r\n emp.EmpAddress.PerState = vm.empPer.EmpAddress.State;\r\n emp.EmpAddress.CommState = vm.empCom.EmpAddress.State;\r\n emp.EmpAddress.PerCountry = vm.empPer.EmpAddress.Country;\r\n emp.EmpAddress.CommCountry = vm.empCom.EmpAddress.Country;\r\n emp.EmpAddress.PerPincode = vm.empPer.EmpAddress.PinCode;\r\n emp.EmpAddress.CommPincode = vm.empCom.EmpAddress.PinCode;\r\n emp.EmpAddress.PerEmailId = vm.empPer.EmpAddress.EmailId;\r\n emp.EmpAddress.CommEmailId = vm.empCom.EmpAddress.EmailId;\r\n emp.EmpAddress.PerMobile = vm.empPer.EmpAddress.MobileNo;\r\n emp.EmpAddress.CommMobile = vm.empCom.EmpAddress.MobileNo;\r\n emp.EmpAddress.PerLandline = vm.empPer.EmpAddress.LandlineNo;\r\n emp.EmpAddress.CommLandline = vm.empCom.EmpAddress.LandlineNo;\r\n\r\n var formData = new FormData();\r\n formData.append('data', JSON.stringify(emp));\r\n formData.append('profilePic', vm.empProfilePic);\r\n if (!vm.isEditing) {\r\n EmployeeService.AddEmployee(formData).then(function(res) {\r\n $rootScope.showToaster('success', 'Employee added successfully', \"success\");\r\n Init();\r\n clear();\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.isLoading = false;\r\n vm.isReporingToRequried = false;\r\n\r\n\r\n } else {\r\n EmployeeService.EditEmployee(emp).then(function(res) {\r\n $rootScope.showToaster('success', 'Employee updated successfully', \"Success\");\r\n Init();\r\n clear();\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.emp = {};\r\n vm.emp1 = {};\r\n vm.isLoading = false;\r\n\r\n\r\n }\r\n }\r\n\r\n vm.RemoveEmployee = function(emp) {\r\n EmployeeService.RemoveEmployee(emp.EmployeeId).then(function(res) {\r\n $rootScope.showToaster('success', 'Employee deleted successfully', \"Employee Master\");\r\n Init();\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(vm.dt.getMonth() - 3),\r\n showWeeks: true\r\n };\r\n\r\n // vm.dateOptions = {\r\n // dateDisabled: disabled,\r\n // formatYear: 'yy',\r\n // maxDate: new Date(2020, 5, 22),\r\n // minDate: new Date(),\r\n // startingDay: 1\r\n // };\r\n\r\n //Date of Joining\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(vm.dt.getFullYear(), vm.dt.getMonth() + 3, vm.dt.getDate()),\r\n minDate: new Date(vm.dt.getFullYear(), vm.dt.getMonth() - 3, vm.dt.getDate()),\r\n startingDay: 1\r\n };\r\n\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n // vm.toggleMin = function () {\r\n // vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n // vm.dateOptions.minDate = vm.inlineOptions.minDate - vm.dt - 90 ;\r\n // };\r\n\r\n // vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate()),\r\n minDate: new Date(today.getFullYear() - 80, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n // vm.open1 = function () {\r\n // vm.popup1.opened = true;\r\n // var date= new Date();\r\n // var minimummonth = -3;\r\n // var maximummonth = +3;\r\n // vm.options = {\r\n // maxDate: new Date(date.getFullYear() -minimummonth & maximummonth, date.getMonth(), date.getDate())\r\n // }\r\n\r\n // };\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.employeeChart')\r\n .controller('EmployeeChartCtrl', EmployeeChartCtrl);\r\n\r\n function EmployeeChartCtrl($http, $rootScope,$scope, lodash, dialogs, EmployeeChartService, DepartmentServices, DesignationService,AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.convertImage = convertImage;\r\n \r\n Init();\r\n function convertImage()\r\n { \r\n var chartView = document.getElementById('chartView');\r\n var imageView = document.getElementById('imageView');\r\n html2canvas(chartView, {\r\n onrendered: function(canvas) {\r\n imageView.appendChild(canvas);\r\n }\r\n });\r\n }\r\n function Init() {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId; \r\n debugger;\r\n EmployeeChartService.getEmployeesChart(companyId).then(function (res) {\r\n if (res.status === 200) {\r\n //vm.chart = JSON.parse(res.data);\r\n vm.chart = {\r\n type: \"OrgChart\",\r\n data: JSON.parse(res.data),\r\n options: {allowHtml:true,allowCollapse:true}\r\n };\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Area\");\r\n }\r\n },\r\n function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Area\");\r\n });\r\n }\r\n\r\n // Create the chart.\r\n var chart = new google.visualization.OrgChart(document.getElementById('chartView'));\r\n \r\n // selection\r\n google.visualization.events.addListener(chart, 'select', function () {\r\n // get the row of the node clicked\r\n var selection = chart.getSelection();\r\n var row = selection[0].row;\r\n // get a list of all collapsed nodes\r\n var collapsed = chart.getCollapsedNodes();\r\n // if the node is collapsed, we want to expand it\r\n // if it is not collapsed, we want to collapse it\r\n var collapse = (collapsed.indexOf(row) == -1);\r\n chart.collapse(row, collapse);\r\n // clear the selection so the next click will work properly\r\n chart.setSelection();\r\n });\r\n \r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.generateKpostCode')\r\n .controller('GenerateKpostCodeCtrl', GenerateKpostCodeCtrl);\r\n\r\n /** @ngInject */\r\n function GenerateKpostCodeCtrl($rootScope, lodash, dialogs, $http, generateKpostCodeService, CompanyService, projectCreationService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getDepartmentListByProject = getDepartmentListByProject;\r\n vm.getDesignationListByDepartment = getDesignationListByDepartment;\r\n vm.getEmployeeListByDesignation = getEmployeeListByDesignation;\r\n vm.getGenerateKpostCode = getGenerateKpostCode;\r\n vm.saveGenerateCode = saveGenerateCode;\r\n vm.savePostBoxCode = savePostBoxCode;\r\n vm.getPostBoxCodeList = getPostBoxCodeList;\r\n vm.cancel = cancel;\r\n vm.isCode = false;\r\n var kcode = 'M';\r\n //vm.generateCode = generateCode;\r\n //var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n vm.GenerateTypeList = [{ GenerateTypeName: 'Single User', Code: 'S' }, { GenerateTypeName: 'Multi User', Code: 'M' }];\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n //#region Init\r\n function Init() {\r\n generateKpostCodeService.getAllCompany().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n //Clear\r\n vm.selectedEmployee = null;\r\n vm.selectedDesignation = null;\r\n vm.selectedDepartment = null;\r\n vm.selectedProject = null;\r\n vm.EmployeeList = [];\r\n vm.DesignationList = [];\r\n vm.DepartmentList = [];\r\n vm.EmployeeCode = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Department\r\n function getDepartmentListByProject() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n ProjectId: 0\r\n }\r\n\r\n generateKpostCodeService.GetDepartmentListByProject(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n // Clear\r\n vm.selectedEmployee = null;\r\n vm.selectedDesignation = null;\r\n vm.selectedDepartment = null;\r\n vm.EmployeeCode = null;\r\n vm.EmployeeList = [];\r\n vm.DesignationList = [];\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Department\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Department\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Designation\r\n function getDesignationListByDepartment() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n // ProjectId: vm.selectedProject.ProjectId,\r\n DepartmentId: vm.selectedDepartment.DepartmentId\r\n }\r\n generateKpostCodeService.GetDesignationListByDepartment(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n vm.isLoading = false;\r\n //Clear\r\n vm.selectedEmployee = null;\r\n vm.selectedDesignation = null;\r\n vm.EmployeeList = [];\r\n vm.EmployeeCode = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation\");\r\n });\r\n }\r\n //#endregion\r\n\r\n\r\n //#region Load Employee\r\n function getEmployeeListByDesignation() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n ProjectId: 1,\r\n DepartmentId: vm.selectedDepartment.DepartmentId,\r\n DesignationId: vm.selectedDesignation.DesignationId\r\n }\r\n generateKpostCodeService.GetEmployeeListByDesignation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n\r\n vm.isLoading = false;\r\n //clear\r\n vm.selectedEmployee = null;\r\n vm.EmployeeCode = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"EmployeeList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"EmployeeList\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Employee\r\n // function getGenerateKpostCode() {\r\n // var obj = {\r\n // CompanyId: vm.selectedCompany.CompanyId,\r\n // // ProjectId: vm.selectedProject.ProjectId,\r\n // DepartmentId: vm.selectedDepartment.DepartmentId,\r\n // DesignationId: vm.selectedDesignation.DesignationId,\r\n // EmployeeId: vm.selectedEmployee.EmployeeId\r\n // }\r\n // generateKpostCodeService.GetGenerateKpostCode(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.EmployeeCodeList = res.data;\r\n // for (var i in vm.EmployeeCodeList) {\r\n // vm.EmployeeCode = vm.EmployeeCodeList[i].KpostUcode;\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"EmployeeList\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"EmployeeList\");\r\n // });\r\n // }\r\n //#endregion\r\n\r\n\r\n //#region Load Employee Code Multi User\r\n function getGenerateKpostCode() {\r\n\r\n\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n ProjectId: 1,\r\n DepartmentId: vm.selectedDepartment.DepartmentId,\r\n DesignationId: vm.selectedDesignation.DesignationId\r\n }\r\n\r\n\r\n // if (kcode == \"S\") {\r\n // obj.EmployeeIds = vm.selectedEmployee.EmployeeId\r\n // }\r\n // else if (kcode == \"M\") { //Table Emp list\r\n var Arr = [];\r\n\r\n for (var i in vm.EmployeeList) {\r\n if (vm.EmployeeList[i].Ischeck) {\r\n Arr.push(vm.EmployeeList[i].EmployeeId)\r\n // $scope.actions.data.push(vm.EmployeeList[i].EmployeeId);\r\n }\r\n obj.EmployeeIds = Arr.join(',');\r\n }\r\n //}\r\n generateKpostCodeService.GetGenerateKpostCode(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n // if (kcode == \"S\") {\r\n // for (var i in vm.EmployeeList) {\r\n // vm.EmployeeCode = vm.EmployeeList[i].KpostUcode;\r\n // }\r\n // }\r\n // if (kcode === 'M') {\r\n // vm.isCode = true;\r\n // }\r\n vm.isCode = true;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"EmployeeList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"EmployeeList\");\r\n });\r\n }\r\n //#endregion\r\n\r\n\r\n\r\n //#region Load Save Employee Code\r\n function saveGenerateCode() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Arr = [];\r\n if (kcode === 'S') {\r\n var obj = {\r\n KpostUcode: vm.EmployeeCode,\r\n EmployeeId: vm.selectedEmployee.EmployeeId\r\n }\r\n Arr.push(obj);\r\n } else if (kcode === 'M') {\r\n debugger;\r\n for (var i in vm.EmployeeList) {\r\n var Code = {}\r\n if (vm.EmployeeList != undefined) {\r\n Code.EmployeeId = vm.EmployeeList[i].EmployeeId;\r\n Code.KpostUcode = vm.EmployeeList[i].KpostUcode;\r\n }\r\n Arr.push(Code);\r\n }\r\n }\r\n var obj = {\r\n 'CodeDetails': JSON.stringify(Arr)\r\n };\r\n\r\n generateKpostCodeService.SaveGenerateCode(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Employee Code\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n vm.isCode = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Employee Code\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n }\r\n //#endregion\r\n\r\n\r\n //#region Load Save Employee Code\r\n function savePostBoxCode() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n DepartmentId: vm.selectedDepartment.DepartmentId,\r\n DesignationId: vm.selectedDesignation.DesignationId\r\n }\r\n\r\n\r\n generateKpostCodeService.savePostBoxCode(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Post-Box Code\");\r\n Init();\r\n getPostBoxCodeList();\r\n vm.isFormOpen = false;\r\n cancel();\r\n vm.isCode = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Post-Box Code\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n }\r\n //#endregion\r\n\r\n function cancel() {\r\n vm.selectedEmployee = null;\r\n vm.selectedDesignation = null;\r\n vm.selectedDepartment = null;\r\n vm.selectedProject = null;\r\n vm.selectedCompany = null;\r\n vm.EmployeeCode = null;\r\n vm.selectedType = null;\r\n\r\n vm.EmployeeList = [];\r\n vm.DesignationList = [];\r\n vm.DepartmentList = [];\r\n vm.ProjectList = [];\r\n vm.table = false;\r\n vm.isFormOpen = false;\r\n }\r\n\r\n //#region Load PostBox List for Table\r\n function getPostBoxCodeList() {\r\n var obj = {\r\n DesignationId: vm.selectedDesignation.DesignationId\r\n }\r\n generateKpostCodeService.getPostBoxCodeList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PostBoxCodeList = res.data;\r\n vm.isLoading = false;\r\n //Clear\r\n // vm.selectedEmployee = null;\r\n // vm.selectedDesignation = null;\r\n // vm.EmployeeList = [];\r\n // vm.EmployeeCode = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"PostBox List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"PostBox List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.generateKpostCode')\r\n .controller('MapPostBoxCodeCtrl', MapPostBoxCodeCtrl);\r\n\r\n /** @ngInject */\r\n function MapPostBoxCodeCtrl($rootScope, lodash, dialogs, $http, generateKpostCodeService, CompanyService, projectCreationService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.getEmployeeListByCmp = getEmployeeListByCmp;\r\n vm.getPostBoxcodeByEmp = getPostBoxcodeByEmp;\r\n vm.saveMapPostBoxCode = saveMapPostBoxCode;\r\n vm.getMapPostBoxCodeList = getMapPostBoxCodeList;\r\n // vm.cancel = cancel;\r\n //vm.isCode = false;\r\n\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n //#region Init\r\n function Init() {\r\n generateKpostCodeService.getAllCompany().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Master\");\r\n });\r\n }\r\n //#endregion \r\n\r\n //#region Load Employee\r\n function getEmployeeListByCmp() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId\r\n }\r\n generateKpostCodeService.getEmployeeListByCmp(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n //clear \r\n vm.selectedEmployee = null;\r\n vm.selectedPostBoxCode = null;\r\n vm.PostBoxcodeList = [];\r\n getMapPostBoxCodeList(); \r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"EmployeeList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"EmployeeList\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Employee\r\n function getPostBoxcodeByEmp() {\r\n var obj = {\r\n // CompanyId: vm.selectedCompany.CompanyId,\r\n DesignationId: vm.selectedEmployee.DesignationId\r\n }\r\n generateKpostCodeService.getPostBoxCodeList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PostBoxcodeList = res.data;\r\n vm.isLoading = false;\r\n //Clear \r\n vm.selectedPostBoxCode = null; \r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"PostBoxcode\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"PostBoxcode\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Map Post Box Code\r\n function saveMapPostBoxCode() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n EmployeeId: vm.selectedEmployee.EmployeeId,\r\n PostBoxID: vm.selectedPostBoxCode.PostBoxID\r\n }\r\n generateKpostCodeService.saveMapPostBoxCode(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Post-Box Code\");\r\n Init();\r\n getMapPostBoxCodeList();\r\n vm.isFormOpen = false;\r\n cancel();\r\n vm.isCode = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Post-Box Code\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n }\r\n //#endregion\r\n\r\n //#region Load PostBox List for Table\r\n function getMapPostBoxCodeList() {\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId\r\n }\r\n generateKpostCodeService.getMapPostBoxCodeList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MapPostBoxCodeList = res.data;\r\n vm.isLoading = false;\r\n //Clear\r\n // vm.selectedEmployee = null;\r\n // vm.selectedDesignation = null;\r\n // vm.EmployeeList = [];\r\n // vm.EmployeeCode = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"PostBox List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"PostBox List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //Clear \r\n function cancel() {\r\n vm.selectedEmployee = null; \r\n vm.selectedCompany = null;\r\n vm.selectedPostBoxCode = null;\r\n vm.EmployeeList = []; \r\n vm.CompanyList = []; \r\n vm.PostBoxcodeList = []; \r\n vm.table = false;\r\n vm.isFormOpen = false;\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.holiday')\r\n .controller('HolidayMasterCtrl', HolidayMasterCtrl);\r\n\r\n /** @ngInject */\r\n function HolidayMasterCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, HolidayMasterService, StateService, CountryService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.StateList = [];\r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n // vm.resetForm = resetForm;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.editHolidayMaster = editHolidayMaster;\r\n vm.SaveHolidayMaster = SaveHolidayMaster;\r\n vm.holiday = {};\r\n\r\n vm.holiday.Year = new Date()\r\n\r\n vm.TypeList = [{\r\n 'TypeName': 'National Holiday',\r\n 'TypeCode': 'N'\r\n }, {\r\n 'TypeName': 'Regional Holiday',\r\n 'TypeCode': 'R'\r\n }]\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n\r\n function Init() {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CountryService.getAllCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n LoadHolidayMaster();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function LoadHolidayMaster() {\r\n HolidayMasterService.getAllHolidayMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n\r\n function getStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.city.selectedCountry.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.StateList = [];\r\n vm.city.selectedState = null;\r\n }\r\n\r\n }\r\n\r\n vm.clearState = function () {\r\n vm.StateList = [];\r\n vm.holiday.selectedState = null;\r\n vm.holiday.selectedCountry = null;\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n //resetForm();\r\n vm.holiday = {};\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n //resetForm();\r\n vm.holiday = {};\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n // function resetForm() {\r\n // vm.CountryForm.$setUntouched();\r\n // }\r\n\r\n function editHolidayMaster(holiday) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n // vm.oldCountry = country.CountryName;\r\n\r\n vm.holiday = angular.copy(holiday);\r\n\r\n vm.holiday.Date = new Date(vm.holiday.HolidayDate);\r\n\r\n for (var i in vm.TypeList) {\r\n if (vm.TypeList[i].TypeCode == vm.holiday.HolidayType) {\r\n vm.holiday.selectedType = vm.TypeList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.holiday.CountryId) {\r\n vm.holiday.selectedCountry = vm.CountryList[i]\r\n }\r\n }\r\n\r\n getStateListByCountryId(vm.holiday.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.holiday.StateId) {\r\n vm.holiday.selectedState = vm.StateList[i]\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n vm.checkDate = function (date) {\r\n debugger;\r\n var currentSelectionDate = datecheck(date)\r\n for (var i in vm.HolidayMasterList) {\r\n if (datecheck(vm.HolidayMasterList[i].HolidayDate) == currentSelectionDate) {\r\n vm.holiday.Date = null;\r\n dialogs.notify('Warning', 'Already Exist', { animation: true, size: 'sm' });\r\n return;\r\n }\r\n }\r\n\r\n }\r\n\r\n function datecheck(date) {\r\n var dateObj = new Date(date);\r\n var month = dateObj.getUTCMonth() + 1; //months from 1-12\r\n var day = dateObj.getDate();\r\n var newdate = month + \"/\" + day;\r\n return newdate\r\n\r\n }\r\n\r\n\r\n\r\n\r\n function SaveHolidayMaster(holiday) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var temp = [];\r\n\r\n var tempData = [];\r\n for (var i in vm.holiday.selectedState) {\r\n if (vm.holiday.selectedState[i].StateId != undefined) {\r\n tempData.push(vm.holiday.selectedState[i].StateId);\r\n }\r\n }\r\n temp = tempData;\r\n var teststring = JSON.stringify(temp)\r\n var StateIds = teststring.substring(1, teststring.length - 1)\r\n console.log(StateIds);\r\n var holiday = {\r\n CreatedBy: loggedUser.UserId,\r\n CountryId: vm.holiday.selectedCountry.CountryId,\r\n StateId: StateIds,\r\n HolidayType: vm.holiday.selectedType.TypeCode,\r\n Date: $filter('date')(vm.holiday.Date, 'yyyy-MM-dd'),\r\n Description: vm.holiday.Description,\r\n IsFixed: vm.holiday.IsFixed\r\n\r\n }\r\n HolidayMasterService.AddHoliday(holiday).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Holiday Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"Holiday Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n\r\n var holiday = {\r\n HolidayId: vm.holiday.HolidayId,\r\n ModifiedBy: loggedUser.UserId,\r\n CountryId: vm.holiday.selectedCountry.CountryId,\r\n StateId: (vm.holiday.selectedState != undefined || vm.holiday.selectedState != null) ? vm.holiday.selectedState.StateId : null,\r\n HolidayType: vm.holiday.selectedType.TypeCode,\r\n Date: $filter('date')(vm.holiday.Date, 'yyyy-MM-dd'),\r\n Description: vm.holiday.Description,\r\n IsFixed: vm.holiday.IsFixed,\r\n IsActive: vm.holiday.IsActive\r\n\r\n }\r\n HolidayMasterService.EditHoliday(holiday).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Holiday Master\");\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Holiday Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n vm.RemoveHoliday = function (row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Delete the Holiday Master', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n HolidayMasterService.RemoveHoliday(row.HolidayId).then(function (res) {\r\n $rootScope.showToaster('success', 'Holiday Master Deleted Successfully', \"Holiday Master\");\r\n Init()\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function ($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function () {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.holiday')\r\n .controller('ProjectHolidayCtrl', ProjectHolidayCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectHolidayCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, projectCreationService, HolidayMasterService, CompanyService, StateService, CountryService, AuthenticationService, ProjectHolidayMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.StateList = [];\r\n vm.HolidayMasterList = [];\r\n vm.ProjectHolidayMasterList = [];\r\n vm.ProjectList = [];\r\n vm.WeekOffList = [];\r\n //Method\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editProjectHolidayMaster = editProjectHolidayMaster;\r\n vm.SaveProjectHolidayMaster = SaveProjectHolidayMaster;\r\n vm.holiday = {};\r\n \r\n vm.holiday.Year = new Date();\r\n vm.holiday.selectedHoliday = [];\r\n vm.holiday.selectedDays = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.LoadHolidayMaster = LoadHolidayMaster;\r\n \r\n\r\n Init();\r\n ////////////////////\r\n\r\n //vm.check = false;\r\n\r\n function Init(callback) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n LoadProjectHolidayMaster();\r\n\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n vm.HolidayMasterList = [];\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n // debugger;\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n\r\n }\r\n }\r\n ////////////////\r\n function LoadHolidayMaster(callback) {\r\n vm.HolidayMasterList = [];\r\n if (vm.holiday.selectedProject != undefined)\r\n\r\n HolidayMasterService.getAllHolidayMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.HolidayMasterList = lodash.uniqBy(vm.HolidayMasterList, 'HolidayDate')\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n \r\n vm.WeekOffList = [{\r\n WeekOffId: 0,\r\n WeekOffDay: \"Sunday\"\r\n },\r\n {\r\n WeekOffId: 1,\r\n WeekOffDay: \"Monday\"\r\n },\r\n {\r\n WeekOffId: 2,\r\n WeekOffDay: \"Tuesday\"\r\n },\r\n {\r\n WeekOffId: 3,\r\n WeekOffDay: \"Wednesday\"\r\n },\r\n {\r\n WeekOffId: 4,\r\n WeekOffDay: \"Thursday\"\r\n },\r\n {\r\n WeekOffId: 5,\r\n WeekOffDay: \"Friday\"\r\n },\r\n {\r\n WeekOffId: 6,\r\n WeekOffDay: \"saturday\"\r\n },\r\n\r\n ];\r\n }\r\n\r\n\r\n\r\n\r\n ///////\r\n // vm.checkDate = function () {\r\n // if (vm.holiday.selectedHoliday.length < 1 || vm.holiday.selectedDays.length < 1) {\r\n // vm.check = true;\r\n // }\r\n // else\r\n // vm.check = false\r\n\r\n\r\n // }\r\n\r\n ////////////////\r\n\r\n\r\n\r\n // function Init() {\r\n // projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectList = res.data;\r\n // LoadProjectHolidayMaster();\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n // });\r\n // }\r\n\r\n\r\n function LoadProjectHolidayMaster() {\r\n ProjectHolidayMasterService.getAllProjectHolidayMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectHolidayMasterList = res.data;\r\n for (var i in vm.ProjectHolidayMasterList) {\r\n vm.ProjectHolidayMasterList[i].HolidaysList = JSON.parse(vm.ProjectHolidayMasterList[i].Holidays)\r\n vm.ProjectHolidayMasterList[i].WeekOffList = JSON.parse(vm.ProjectHolidayMasterList[i].WeekOff)\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Holiday Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Holiday Master\");\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n vm.holiday.selectedHoliday = [];\r\n vm.holiday.selectedDays = [];\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.holiday = {};\r\n vm.holiday.selectedCompany = null;\r\n vm.holiday.selectedProject = null;\r\n vm.holiday.selectedHoliday = null;\r\n vm.holiday.selectedDays = null;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.holiday = {};\r\n vm.holiday.selectedCompany = null;\r\n vm.holiday.selectedProject = null;\r\n vm.holiday.selectedHoliday = null;\r\n vm.holiday.selectedDays = null;\r\n }\r\n\r\n function resetForm() {\r\n //vm.CountryForm.$setUntouched();\r\n }\r\n\r\n // function editProjectHolidayMaster(holiday) {\r\n // vm.isEditing = true;\r\n // vm.isFormOpen = true;\r\n // // vm.oldCountry = country.CountryName;\r\n // // vm.holiday = HolidayName.ProjectHolidayName;\r\n // vm.holiday = holiday.ProjectHolidayName;\r\n\r\n\r\n\r\n // vm.holiday = angular.copy(holiday);\r\n\r\n // vm.holiday.Date = new Date(vm.holiday.ProjectHolidayYear + \"/\" + vm.holiday.ProjectHolidayMonth + \"/\" + vm.holiday.ProjectHolidayDate);\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId === vm.holiday.ProjectId) {\r\n // vm.holiday.selectedProject = vm.ProjectList[i]\r\n // }\r\n // }\r\n\r\n // vm.holiday.HolidayName = holiday.ProjectHolidayName;\r\n\r\n // // getFocByPrjId(vm.holiday.ProjectId, function () {\r\n // // for (var i in vm.ProjectList) {\r\n // // if (vm.ProjectList[i].ProjectId === vm.holiday.ProjectId) {\r\n // // vm.holiday.selectedProject = vm.ProjectList[i]\r\n // // }\r\n // // }\r\n\r\n // // });\r\n\r\n // }\r\n function editProjectHolidayMaster(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n\r\n\r\n vm.holiday = angular.copy(row);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId === vm.holiday.CompanyId) {\r\n vm.holiday.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n getProjectByCompany(vm.holiday.CompanyId, function () {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === vm.holiday.ProjectId) {\r\n vm.holiday.selectedProject = vm.ProjectList[i]\r\n }\r\n }\r\n\r\n LoadHolidayMaster(function () {\r\n vm.holiday.selectedHoliday = [];\r\n for (var i in vm.HolidayMasterList) {\r\n for (var j in vm.holiday.HolidaysList.Holidays) {\r\n //($filter('date')(vm.HolidayMasterList[i].HolidayDate, 'yyyy/MM/dd')) == ($filter('date')(vm.ProjectHoliday.HolidayDate.Holidays[j]), 'yyyy/MM/dd')\r\n if ((new Date(vm.HolidayMasterList[i].HolidayDate)).toLocaleDateString() === (new Date(vm.holiday.HolidaysList.Holidays[j]).toLocaleDateString())) {\r\n vm.holiday.selectedHoliday.push(vm.HolidayMasterList[i])\r\n // vm.schedule.selectedHoliday[i].checked = true;\r\n }\r\n }\r\n }\r\n\r\n vm.holiday.selectedDays = [];\r\n for (var i in vm.WeekOffList) {\r\n for (var j in vm.holiday.WeekOffList.weekOff)\r\n if (vm.WeekOffList[i].WeekOffDay == vm.holiday.WeekOffList.weekOff[j]) {\r\n vm.holiday.selectedDays.push(vm.WeekOffList[i])\r\n // vm.schedule.selectedDays[i].checked = true;\r\n }\r\n }\r\n\r\n })\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n function SaveProjectHolidayMaster(holiday) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var objHoliday = {\r\n \"Holidays\": [],\r\n }\r\n for (var i in vm.holiday.selectedHoliday) {\r\n objHoliday.Holidays.push($filter('date')(vm.holiday.selectedHoliday[i].HolidayDate, 'yyyy/MM/dd'));\r\n }\r\n var objWeekOff = {\r\n \"weekOff\": []\r\n }\r\n for (var i in vm.holiday.selectedDays) {\r\n objWeekOff.weekOff.push(vm.holiday.selectedDays[i].WeekOffDay);\r\n }\r\n if (!vm.isEditing) {\r\n var holiday = {\r\n CreatedBy: logggedUser.UserId,\r\n CompanyId: vm.holiday.selectedCompany.CompanyId,\r\n ProjectId: vm.holiday.selectedProject.ProjectId,\r\n Holidays: JSON.stringify(objHoliday),\r\n WeekOff: JSON.stringify(objWeekOff),\r\n }\r\n ProjectHolidayMasterService.AddProjectHoliday(holiday).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"ProjectHoliday Master\");\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ProjectHoliday Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n else {\r\n var holiday = {\r\n CreatedBy: logggedUser.UserId,\r\n CompanyId: vm.holiday.selectedCompany.CompanyId,\r\n ProjectId: vm.holiday.selectedProject.ProjectId,\r\n Holidays: JSON.stringify(objHoliday),\r\n WeekOff: JSON.stringify(objWeekOff),\r\n }\r\n ProjectHolidayMasterService.editProjectHolidayMaster(holiday).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"ProjectHoliday Master\");\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ProjectHoliday Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n }\r\n\r\n }\r\n // function SaveProjectHolidayMaster(holiday) {\r\n // var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n // if (!vm.isEditing) {\r\n\r\n // var holiday = {\r\n // CreatedBy: logggedUser.UserId,\r\n // ProjectId: vm.holiday.selectedProject.ProjectId,\r\n // ProjectHolidayName: vm.holiday.HolidayName,\r\n // Date: $filter('date')(vm.holiday.Date, 'yyyy-MM-dd'),\r\n\r\n\r\n\r\n // }\r\n // ProjectHolidayMasterService.AddProjectHoliday(holiday).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"ProjectHoliday Master\");\r\n // Init();\r\n // cancel();\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"ProjectHoliday Master\");\r\n // vm.isFormOpen = true;\r\n // }\r\n\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n // });\r\n\r\n // } else {\r\n\r\n // var holiday = {\r\n // ProjectId: vm.holiday.ProjectId,\r\n // ModifiedBy: logggedUser.UserId,\r\n\r\n // Date: $filter('date')(vm.holiday.Date, 'yyyy-MM-dd'),\r\n\r\n // IsActive: vm.holiday.IsActive\r\n\r\n // }\r\n // ProjectHolidayMasterService.editProjectHolidayMaster(holiday).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"ProjectHoliday Master\");\r\n // Init();\r\n // cancel();\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"ProjectHoliday Master\");\r\n // vm.isFormOpen = true;\r\n // }\r\n\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n\r\n\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n // });\r\n\r\n // }\r\n // }\r\n\r\n vm.RemoveProjectHoliday = function (row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Delete the Project Holiday Master', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n ProjectHolidayMasterService.RemoveProjectHoliday(row.ProjectId).then(function (res) {\r\n $rootScope.showToaster('success', 'ProjectHoliday Master Deleted Successfully', \"ProjectHoliday Master\");\r\n Init()\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function ($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function () {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.listOfIoca')\r\n .controller('ListOfIOCACtrl', ListOfIOCACtrl);\r\n\r\n /** @ngInject */\r\n function ListOfIOCACtrl($window, $rootScope, lodash, dialogs, $uibModal, $http, IocaService, listOfIocaService, CountryService,\r\n ProjectIocaService, CompanyService, projectCreationService, AuthenticationService, CategoryofCAService, LocationSetupService,\r\n FieldofConstructionService, SubCategoryofCAService, BillOfQuntityService, TypeOfCAService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.listOfIOcaList = [];\r\n vm.CompanyList = [];\r\n vm.library = {};\r\n vm.listofioca = {};\r\n vm.GetCategoryByCountryId = getCategoryByCountryId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getSubCategoryCAListByCategoryId = getSubCategoryCAListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.GetIOCA = GetIOCA;\r\n vm.loadIocaList = loadIocaList;\r\n vm.clear = clear;\r\n vm.cancel = cancel;\r\n vm.getDescriptionBySelectedIOCA = getDescriptionBySelectedIOCA;\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n //vm.getCategoryofCA = getCategoryofCA;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.ShowListofIOCAReport = ShowListofIOCAReport;\r\n vm.ShareListofIOCAReport = ShareListofIOCAReport;\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n\r\n\r\n function Init() {\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n vm.ReportList = [{\r\n ReportId: 1,\r\n ReportCode: \"Category\",\r\n ReportName: \"Category Of Work\"\r\n\r\n },\r\n {\r\n ReportId: 2,\r\n ReportCode: \"SubCategory\",\r\n ReportName: \"Subcategory Of Work\"\r\n\r\n\r\n }, {\r\n ReportId: 3,\r\n ReportCode: \"Type\",\r\n ReportName: \"Type Of Work\"\r\n },\r\n {\r\n ReportId: 4,\r\n ReportCode: \"Ioca\",\r\n ReportName: \" Item Of Work\"\r\n }\r\n ];\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n\r\n\r\n function Lib() {\r\n vm.CategoryList = [];\r\n }\r\n\r\n function Proj() {\r\n vm.CategoryList = [];\r\n }\r\n\r\n\r\n // var obj = {\r\n // ProjectId: vm.listofioca.selectedProject.ProjectId,\r\n // LocationId: vm.listofioca.selectedLocation.LocationId,\r\n // CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n // SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n // TypeIds: (vm.Type != undefined) ? vm.Type : \"\",\r\n // ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n // // ProjectIocaId: vm.estimationreport.selectedIOCA.ProjectIocaId,\r\n // Tiers: JSON.stringify(tiers),\r\n // GroupCompanyName: vm.listofioca.selectedCompany.CompanyName,\r\n // CompanyName: vm.listofioca.selectedCompany.CompanyName,\r\n // ProjectName: vm.listofioca.selectedProject.ProjectName,\r\n // listofiocaFor: vm.listofioca.selectedlistofiocaform.listofiocaform,\r\n // Duration: \"\",\r\n // Heading: strHeading,\r\n // DescType: strcondition,\r\n // ReportFor: vm.listofioca.selectedmethod.MethodName,\r\n // // TypeofQuantityName : strHeading,\r\n // Createdby: loggedUser.UserId,\r\n // ReportType: vm.listofioca.selectedestreport.listofiocaReportbased,\r\n // CostType: vm.listofioca.selectedlistofioca.listofiocaId,\r\n // p_BOQStatus: vm.listofioca.selectedlistofioca.formid,\r\n // //EstimationType: vm.estimationreport.selectedestimation.EstimationId\r\n // }\r\n\r\n\r\n\r\n\r\n function getCategoryByCountryId(FieldofConstructionId, CountryId) {\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n //project\r\n if (res.data.length > 0) {\r\n vm.CategoryList = [{\r\n CategoryName: 'All',\r\n All: true\r\n }];\r\n }\r\n for (var i in res.data) {\r\n vm.CategoryList.push(res.data[i]);\r\n }\r\n //console.log(JSON.stringify(vm.SubCategoryList))\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category\");\r\n });\r\n } else {\r\n vm.listofioca.selectedReport=null;\r\n vm.ReportList= [];\r\n\r\n }\r\n }\r\n\r\n function getSubCategoryCAListByCategoryId(CategoryId) {\r\n if (CategoryId !== undefined) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n\r\n if (SubCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n }\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Project available selected Company', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n \r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.listofioca.selectedProject= null;\r\n vm.selectedFOC= null;\r\n vm.listofioca.selectedCountryName= null;\r\n vm.listofioca.selectedReport= null;\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n ProjectIocaService.getAllProjectCountry(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n if (CountryId && ProjectId && focId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId,\r\n isworkAlloc: 1\r\n }\r\n ProjectIocaService.getAllProjectCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length > 0) {\r\n vm.AllCategoryList = [{\r\n CategoryName: 'All',\r\n All: true\r\n }];\r\n }\r\n for (var i in res.data) {\r\n vm.AllCategoryList.push(res.data[i]);\r\n }\r\n //console.log(JSON.stringify(vm.SubCategoryList))\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {}\r\n\r\n }\r\n\r\n function getSubcategoryByCategory(CategoryId) {\r\n ProjectIocaService.getAllProjectSubcategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n debugger;\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n isworkAlloc: 1\r\n }\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n function loadIocaList() {\r\n\r\n var obj = {\r\n CountryId: vm.listofioca.selectedCountryName.CountryId,\r\n ProjectId: vm.listofioca.selectedProject.ProjectId,\r\n CA_CategoryId: vm.listofioca.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.listofioca.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.listofioca.selectedTypeofCA.TypeId,\r\n Spectype: vm.listofioca.selectedSpecType.Code,\r\n isworkAlloc: 1\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0)\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n function getDescriptionBySelectedIOCA(obj) {\r\n if (obj != undefined) {\r\n var strArr = obj.IocaParameters.Parameters.split(\",\");\r\n vm.Parameters = [];\r\n for (var i in strArr) {\r\n var temp = {\r\n \"ParameterName\": strArr[i]\r\n }\r\n vm.Parameters.push(temp);\r\n }\r\n } else {\r\n vm.Parameters = {};\r\n }\r\n }\r\n\r\n // getCategoryofCA();\r\n\r\n\r\n // function getCategoryofCA(CountryId, FieldofConstructionId, callback) {\r\n // vm.subcategory.selectedCategoryName = null;\r\n // vm.CategoryList = [];\r\n // if (CountryId && FieldofConstructionId) {\r\n // var obj = {\r\n // FieldofConstructionId: FieldofConstructionId,\r\n // CountryId: CountryId\r\n // }\r\n // CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CategoryList = res.data;\r\n // if (vm.CategoryList.length < 1) {\r\n // dialogs.notify('Warning', 'No Category Name available for ' + vm.subcategory.selectedCountryName.CountryName || vm.subcategory.selectedFOC.FieldofConstructionName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n\r\n // }\r\n // });\r\n // } else {\r\n // vm.subcategory.selectedCategoryName = null;\r\n // vm.CategoryList = [];\r\n // }\r\n // }\r\n // }\r\n function getSubCategoryListByCategoryId(CategoryId, callback) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.listofioca.selectedCategory.CategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n\r\n }\r\n\r\n function IocaList() {\r\n var obj = {\r\n CountryId: vm.boq.selectedCountry.CountryId,\r\n ProjectId: vm.boq.selectedProject.ProjectId,\r\n CA_CategoryId: vm.boq.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.boq.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.boq.selectedTypeOfCA.TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n\r\n }\r\n\r\n\r\n //Library //\r\n // function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n // if (FieldofConstructionId && CountryId) {\r\n // var obj = {\r\n\r\n // FieldofConstructionId: FieldofConstructionId,\r\n // CountryId: CountryId\r\n // }\r\n // CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // if (res.data.length > 0) {\r\n // vm.CategoryList = [{\r\n // CategoryName: 'All',\r\n // All: true\r\n // }];\r\n // }\r\n // for (var i in res.data) {\r\n // vm.CategoryList.push(res.data[i]);\r\n // }\r\n // //console.log(JSON.stringify(vm.SubCategoryList))\r\n // vm.isLoading = false;\r\n // }\r\n // });\r\n // } else {\r\n // }\r\n // }\r\n\r\n\r\n\r\n\r\n function loadGrid() {\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.selectedTypeOfAttribute.Code,\r\n }\r\n IocaService.getAllIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n function getSubCategoryCAListByCategoryId(CategoryId) {\r\n if (CategoryId !== undefined) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n debugger\r\n if (res.data.length > 0) {\r\n vm.SubCategoryList = [{\r\n SubCategoryName: 'All',\r\n All: true\r\n }];\r\n }\r\n for (var i in res.data) {\r\n vm.SubCategoryList.push(res.data[i]);\r\n }\r\n //console.log(JSON.stringify(vm.SubCategoryList))\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n debugger;\r\n if (SubCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length > 0) {\r\n vm.TypeOfCAList = [{\r\n CA_TypeName: 'All',\r\n All: true\r\n }];\r\n }\r\n for (var i in res.data) {\r\n vm.TypeOfCAList.push(res.data[i]);\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n function GetIOCA() {\r\n debugger;\r\n var obj = {\r\n CA_CategoryId: vm.library.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.library.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.library.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.library.selectedSpecType.Code\r\n }\r\n IocaService.getAllIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n\r\n function ShowListofIOCAReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n\r\n FieldofConstructionId: (vm.selectedFOC != undefined) ? vm.selectedFOC.FieldofConstructionId : null,\r\n CountryId: (vm.listofioca.selectedCountryName != undefined) ? vm.listofioca.selectedCountryName.CountryId : null,\r\n TypeOfList: (vm.listofioca.selectedReport != undefined) ? vm.listofioca.selectedReport.ReportCode : null,\r\n ProjectName: (vm.listofioca.selectedProject != undefined) ? vm.listofioca.selectedProject.ProjectName : null,\r\n UserName: loggedUser.FirstName,\r\n GroupCompanyName: (vm.listofioca.selectedCompany != undefined) ? vm.listofioca.selectedCompany.CompanyName : null,\r\n Wise: vm.listofioca.subMenu\r\n }\r\n\r\n if (vm.listofioca.subMenu == 'library') {\r\n if (vm.library.selectedCategory != undefined || (vm.library.selectedCategory.All != undefined && vm.library.selectedCategory.All == true) &&\r\n vm.library.selectedSubCategory == undefined ||\r\n (vm.library.selectedSubCategory.All != undefined && vm.library.selectedSubCategory.All == true) &&\r\n vm.library.selectedTypeOfCA == undefined || (vm.library.selectedTypeOfCA.All != undefined && vm.library.selectedTypeOfCA.All == true)) {\r\n obj.CategoryId = (vm.library.selectedCategory != undefined) ? vm.library.selectedCategory.CategoryId : null,\r\n obj.SubCategoryId = (vm.library.selectedSubCategory) ? vm.library.selectedSubCategory.SubCategoryId : null,\r\n obj.TypeId = (vm.library.selectedTypeOfCA != undefined) ? vm.library.selectedTypeOfCA.CA_TypeId : null,\r\n obj.IOCAId = (vm.library.SelectedIOCA != undefined) ? vm.library.SelectedIOCA.Id : null\r\n obj.Spectype = (vm.listofioca.selectedSpecType != undefined) ? vm.library.selectedSpecType.Code : null;\r\n\r\n }\r\n\r\n } else if (vm.listofioca.subMenu == 'project') {\r\n obj.ProjectId = (vm.listofioca.selectedProject != undefined) ? vm.listofioca.selectedProject.ProjectId : null;\r\n\r\n obj.CategoryId = (vm.listofioca.selectedCategory != undefined) ? vm.listofioca.selectedCategory.CategoryId : null;\r\n obj.SubCategoryId = (vm.listofioca.selectedSubCategory != undefined) ? vm.listofioca.selectedSubCategory.SubCategoryId : null;\r\n obj.TypeId = (vm.listofioca.selectedTypeofCA != undefined) ? vm.listofioca.selectedTypeofCA.TypeId : null;\r\n obj.IOCAId = (vm.listofioca.SelectedIOCA != undefined) ? vm.listofioca.SelectedIOCA.Id : null;\r\n obj.Spectype = (vm.listofioca.selectedSpecType != undefined) ? vm.listofioca.selectedSpecType.Code : null;\r\n }\r\n\r\n\r\n\r\n // var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n listOfIocaService.ShowListofIOCAReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n\r\n // url = window.URL.createObjectURL(blob);\r\n // a.href = url;\r\n // a.download = 'report.pdf';\r\n // a.click();\r\n // window.URL.revokeObjectURL(url);\r\n // $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function ShareListofIOCAReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n\r\n FieldofConstructionId: (vm.selectedFOC != undefined) ? vm.selectedFOC.FieldofConstructionId : null,\r\n CountryId: (vm.listofioca.selectedCountryName != undefined) ? vm.listofioca.selectedCountryName.CountryId : null,\r\n TypeOfList: (vm.listofioca.selectedReport != undefined) ? vm.listofioca.selectedReport.ReportCode : null,\r\n ProjectName: (vm.listofioca.selectedProject != undefined) ? vm.listofioca.selectedProject.ProjectName : null,\r\n UserName: loggedUser.FirstName,\r\n GroupCompanyName: (vm.listofioca.selectedCompany != undefined) ? vm.listofioca.selectedCompany.CompanyName : null,\r\n Wise: vm.listofioca.subMenu\r\n }\r\n\r\n if (vm.listofioca.subMenu == 'library') {\r\n if (vm.library.selectedCategory != undefined || (vm.library.selectedCategory.All != undefined && vm.library.selectedCategory.All == true) &&\r\n vm.library.selectedSubCategory == undefined ||\r\n (vm.library.selectedSubCategory.All != undefined && vm.library.selectedSubCategory.All == true) &&\r\n vm.library.selectedTypeOfCA == undefined || (vm.library.selectedTypeOfCA.All != undefined && vm.library.selectedTypeOfCA.All == true)) {\r\n obj.CategoryId = (vm.library.selectedCategory != undefined) ? vm.library.selectedCategory.CategoryId : null,\r\n obj.SubCategoryId = (vm.library.selectedSubCategory) ? vm.library.selectedSubCategory.SubCategoryId : null,\r\n obj.TypeId = (vm.library.selectedTypeOfCA != undefined) ? vm.library.selectedTypeOfCA.CA_TypeId : null,\r\n obj.IOCAId = (vm.library.SelectedIOCA != undefined) ? vm.library.SelectedIOCA.Id : null\r\n obj.Spectype = (vm.listofioca.selectedSpecType != undefined) ? vm.library.selectedSpecType.Code : null;\r\n\r\n }\r\n\r\n } else if (vm.listofioca.subMenu == 'project') {\r\n obj.ProjectId = (vm.listofioca.selectedProject != undefined) ? vm.listofioca.selectedProject.ProjectId : null;\r\n\r\n obj.CategoryId = (vm.listofioca.selectedCategory != undefined) ? vm.listofioca.selectedCategory.CategoryId : null;\r\n obj.SubCategoryId = (vm.listofioca.selectedSubCategory != undefined) ? vm.listofioca.selectedSubCategory.SubCategoryId : null;\r\n obj.TypeId = (vm.listofioca.selectedTypeofCA != undefined) ? vm.listofioca.selectedTypeofCA.TypeId : null;\r\n obj.IOCAId = (vm.listofioca.SelectedIOCA != undefined) ? vm.listofioca.SelectedIOCA.Id : null;\r\n obj.Spectype = (vm.listofioca.selectedSpecType != undefined) ? vm.listofioca.selectedSpecType.Code : null;\r\n }\r\n\r\n\r\n listOfIocaService.ShowListofIOCAReport(obj).then(function(res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n\r\n } else {\r\n vm.isLoading = false;\r\n dialogs.error('error', \"Something Went to Wrong Check Your Selected Data\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function clear() {\r\n vm.listofioca.selectedCompany = null;\r\n vm.CompanyList = [];\r\n vm.listofioca.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.selectedFOC = null;\r\n vm.focList = [];\r\n vm.listofioca.selectedCountryName = null;\r\n vm.CountryList = [];\r\n vm.listofioca.selectedReport = null;\r\n vm.library.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.library.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.library.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.library.selectedSpecType = null;\r\n vm.library.SelectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.listofioca.selectedCategory = null;\r\n vm.AllCategoryList = [];\r\n vm.listofioca.selectedSubCategory = null;\r\n vm.listofioca.selectedTypeofCA = null;\r\n vm.listofioca.selectedSpecType = null;\r\n vm.listofioca.SelectedIOCA = null;\r\n vm.IocaList = [];\r\n Init();\r\n }\r\n\r\n function cancel() {\r\n vm.listofioca.subMenu = null;\r\n vm.listofioca = {};\r\n vm.selectedFOC = null;\r\n vm.library = {};\r\n Init();\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.organization')\r\n .controller('OrganizationCtrl', OrganizationCtrl);\r\n\r\n /** @ngInject */\r\n function OrganizationCtrl($http, $rootScope, lodash, dialogs, OrganizationService) {\r\n var vm = this;\r\n\r\n \r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OrganizationList = [];\r\n $rootScope.isLogin = false;\r\n //METHODS\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editOrganization = editOrganization;\r\n vm.removeOrganization = removeOrganization;\r\n vm.SaveOrganization = SaveOrganization;\r\n vm.changeActiveOrganization = changeActiveOrganization;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n\r\n function Init() {\r\n OrganizationService.getAllOrganization().then(function (res) {\r\n if (res.status === 200) {\r\n vm.OrganizationList = res.data;\r\n vm.OrganizationActiveList = lodash.filter(vm.OrganizationList, { 'IsActive': true });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Organization\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Organization\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.org = {};\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n }\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.isEditing = false;\r\n vm.org = {};\r\n \r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.isEditing = false;\r\n vm.org = {};\r\n \r\n });\r\n\r\n\r\n }\r\n function resetForm() {\r\n vm.organizationForm.$setUntouched();\r\n }\r\n\r\n function editOrganization(org) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.org = angular.copy(org);\r\n\r\n if (org.Parent === 0)\r\n vm.isNoParent = false;\r\n\r\n for (var c in vm.OrganizationList) {\r\n if (vm.OrganizationList[c].OrganizationLevelId === org.Parent) {\r\n vm.org.selectedOrganization = vm.OrganizationList[c];\r\n }\r\n }\r\n\r\n\r\n }\r\n function removeOrganization(org) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n OrganizationService.removeOrganization(org.OrganizationLevelId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Organization Successfully', \"Organization\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Organization\", { animation: true, size: 'sm' });\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Organization. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveOrganization(org) {\r\n if (vm.org.selectedOrganization === null || vm.org.selectedOrganization === undefined) {\r\n org.Parent = 0;\r\n } else {\r\n // if (vm.OrganizationActiveList >= 0)\r\n // org.Parent = 0;\r\n // else\r\n org.Parent = vm.org.selectedOrganization.OrganizationLevelId;\r\n }\r\n\r\n if (!vm.isEditing) {\r\n OrganizationService.AddOrganization(org).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Organization Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Organization Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n\r\n } else {\r\n OrganizationService.EditOrganization(org).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Organization Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Organization Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n \r\n\r\n }\r\n }\r\n\r\n function changeActiveOrganization(org) {\r\n var msg = 'Are sure you want to ' + ((org.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((org.IsActive) ? 'Deactive' : 'Active') + 'Organization Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n OrganizationService.changeActiveOrganization(org.OrganizationLevelId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Organization\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Organization\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Organization. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n }\r\n})();\n// (function () {\r\n// 'use strict';\r\n\r\n// angular\r\n// .module('KPMES.pages.organization')\r\n// .controller('OrganizationChartCtrl', OrganizationChartCtrl);\r\n\r\n// /** @ngInject */\r\n// function OrganizationChartCtrl($http, $rootScope, lodash, dialogs) {\r\n// var vm = this;\r\n// // Pagination code \r\n// vm.noOfRows = vm.rowCountOptions[1];\r\n// vm.currentPage = 1;\r\n// vm.rembemberCurrentPage = function (num) {\r\n// vm.currentPage = num;\r\n// }\r\n// // End of Pagination code\r\n// vm.isFormOpen = false;\r\n// vm.isEditing = false;\r\n// vm.isLoading = true;\r\n// $rootScope.isLogin = false;\r\n// //METHODS \r\n// Init();\r\n\r\n\r\n// import OrgChart from '../js/orgchart-webcomponents.min.js';\r\n// bindEventHandler('.node', 'click', clickNode, '#chart-container');\r\n// bindEventHandler('org-chart', 'click', clickChart, '#chart-container');\r\n// bindEventHandler('input[name=\"chart-state\"]', 'click', toggleViewState);\r\n// bindEventHandler('input[name=\"node-type\"]', 'click', toggleNodeType);\r\n// document.getElementById('btn-add-input').addEventListener('click', addInputs);\r\n// document.getElementById('btn-remove-input').addEventListener('click', removeInputs);\r\n// document.getElementById('btn-add-nodes').addEventListener('click', () => addNodes(orgchart));\r\n// document.getElementById('btn-delete-nodes').addEventListener('click', () => deleteNodes(orgchart));\r\n// document.getElementById('btn-reset').addEventListener('click', resetPanel);\r\n// function closest(el, fn) {\r\n// return el && ((fn(el) && el !== document.querySelector('org-chart')) ? el : closest(el.parentNode, fn));\r\n// return el && (fn(el) && el.id !== 'chart-container' ? el : closest(el.parentNode, fn));\r\n// }\r\n\r\n \r\n// function initOrgchart(rootClass) {\r\n// let orgchart = new OrgChart({\r\n// 'chartClass': rootClass,\r\n// 'data' : '/orgchart/' + rootClass,\r\n// 'nodeContent': 'dept',\r\n// 'createNode': function(node, data) {\r\n// let chartContainer = document.querySelector('#chart-container');\r\n \r\n// if (node.classList.contains('drill-down')) {\r\n// let drillDownIcon = document.createElement('i'),\r\n// assoClass = data.className.match(/asso-\\w+/)[0];\r\n \r\n// drillDownIcon.setAttribute('class', 'fa fa-arrow-circle-down drill-icon');\r\n// drillDownIcon.addEventListener('click', function() {\r\n// chartContainer.querySelector('org-chart:not(.hidden)').classList.add('hidden');\r\n// let assoChart = chartContainer.querySelector('org-chart.' + assoClass);\r\n \r\n// if (!assoChart) {\r\n// initOrgchart(assoClass);\r\n// } else {\r\n// assoChart.classList.remove('hidden');\r\n// }\r\n// });\r\n// node.appendChild(drillDownIcon);\r\n// } else if (node.classList.contains('drill-up')) {\r\n// let drillUpIcon = document.createElement('i'),\r\n// assoClass = data.className.match(/asso-\\w+/)[0];\r\n \r\n// drillUpIcon.setAttribute('class', 'fa fa-arrow-circle-up drill-icon');\r\n// drillUpIcon.addEventListener('click', function() {\r\n// chartContainer.querySelector('org-chart:not(.hidden)').classList.add('hidden');\r\n// closest(chartContainer.querySelector('.drill-down.' + assoClass), (el) => {\r\n// return el.nodeName === 'ORG-CHART';\r\n// }).classList.remove('hidden');\r\n// });\r\n// node.appendChild(drillUpIcon);\r\n// }\r\n// }\r\n// });\r\n// document.querySelector('#chart-container').appendChild(orgchart);\r\n// }\r\n\r\n// function addClass(elements, classNames) {\r\n// elements.forEach((el) => {\r\n// if (classNames.includes(' ')) {\r\n// classNames.split(' ').forEach((className) => el.classList.add(className));\r\n// } else {\r\n// el.classList.add(classNames);\r\n// }\r\n// });\r\n// }\r\n\r\n// function removeClass(elements, classNames) {\r\n// elements.forEach((el) => {\r\n// if (classNames.includes(' ')) {\r\n// classNames.split(' ').forEach((className) => el.classList.remove(className));\r\n// } else {\r\n// el.classList.remove(classNames);\r\n// }\r\n// });\r\n// }\r\n\r\n// function bindEventHandler(selector, type, fn, parentSelector) {\r\n// if (parentSelector) {\r\n// document.querySelector(parentSelector).addEventListener(type, function (event) {\r\n// if ((event.target.classList && event.target.classList.contains(selector.slice(1))) ||\r\n// closest(event.target, el => el.classList && el.classList.contains(selector.slice(1)))) {\r\n// fn(event);\r\n// }\r\n// });\r\n// } else {\r\n// document.querySelectorAll(selector).forEach(element => {\r\n// element.addEventListener(type, fn);\r\n// });\r\n// }\r\n// }\r\n\r\n// function clickNode(event) {\r\n// let sNode = closest(event.target, el => el.classList && el.classList.contains('node')),\r\n// sNodeInput = document.getElementById('selected-node');\r\n\r\n// sNodeInput.value = sNode.querySelector('.title').textContent;\r\n// sNodeInput.dataset.node = sNode.id;\r\n// }\r\n\r\n// function clickChart(event) {\r\n// if (!closest(event.target, el => el.classList && el.classList.contains('node'))) {\r\n// document.getElementById('selected-node').textContent = '';\r\n// }\r\n// }\r\n\r\n// function toggleViewState() {\r\n// let chart = document.querySelector('org-chart');\r\n// chart.classList.toggle('view-state', this.value !== 'view');\r\n// document.getElementById('edit-panel').classList.toggle('view-state', this.value === 'view');\r\n// if (this.value === 'edit') {\r\n// removeClass(Array.from(chart.querySelectorAll('tr')), 'hidden');\r\n// removeClass(Array.from(chart.querySelectorAll('td')), 'hidden');\r\n// removeClass(Array.from(chart.querySelectorAll('.node')), 'slide-up slide-down slide-right slide-left');\r\n// } else {\r\n// document.getElementById('btn-reset').click();\r\n// }\r\n// }\r\n\r\n// function toggleNodeType() {\r\n// if (this.value === 'parent') {\r\n// document.getElementById('edit-panel').classList.add('edit-parent-node');\r\n// Array.from(document.getElementById('new-nodelist').children)\r\n// .slice(1).forEach(newNode => newNode.remove());\r\n// } else {\r\n// document.getElementById('edit-panel').classList.remove('edit-parent-node');\r\n// }\r\n// }\r\n\r\n// function addInputs() {\r\n// let newNode = document.createElement('li');\r\n\r\n// newNode.innerHTML = ``;\r\n// document.getElementById('new-nodelist').appendChild(newNode);\r\n// }\r\n\r\n// function removeInputs() {\r\n// let inputs = Array.from(document.getElementById('new-nodelist').children);\r\n\r\n// if (inputs.length > 1) {\r\n// inputs.pop().remove();\r\n// }\r\n// }\r\n\r\n// function addNodes(orgchart) {\r\n// let nodeVals = [];\r\n\r\n// Array.from(document.getElementById('new-nodelist').querySelectorAll('.new-node'))\r\n// .forEach(item => {\r\n// let validVal = item.value.trim();\r\n\r\n// if (validVal) {\r\n// nodeVals.push(validVal);\r\n// }\r\n// });\r\n// let selectedNode = document.getElementById(document.getElementById('selected-node').dataset.node);\r\n\r\n// if (!nodeVals.length) {\r\n// alert('Please input value for new node');\r\n// return;\r\n// }\r\n// let nodeType = document.querySelector('input[name=\"node-type\"]:checked');\r\n\r\n// if (!nodeType) {\r\n// alert('Please select a node type');\r\n// return;\r\n// }\r\n// if (nodeType.value !== 'parent' && !document.querySelector('.orgchart')) {\r\n// alert('Please creat the root node firstly when you want to build up the orgchart from the scratch');\r\n// return;\r\n// }\r\n// if (nodeType.value !== 'parent' && !selectedNode) {\r\n// alert('Please select one node in orgchart');\r\n// return;\r\n// }\r\n\r\n// if (nodeType.value === 'parent') {\r\n// if (!document.querySelector('#chart-container').children.length) {// if the original chart has been deleted\r\n// orgchart = new OrgChart({\r\n// 'data': { 'name': nodeVals[0] },\r\n// 'exportButton': true,\r\n// 'exportFilename': 'SportsChart',\r\n// 'parentNodeSymbol': 'fa-th-large',\r\n// 'createNode': function (node, data) {\r\n// node.id = getId();\r\n// }\r\n// });\r\n// orgchart.chart.classList.add('view-state');\r\n// } else {\r\n// orgchart.addParent(orgchart.querySelector('.node'), { 'name': nodeVals[0], 'Id': getId() });\r\n// }\r\n// } else if (nodeType.value === 'siblings') {\r\n// orgchart.addSiblings(selectedNode, {\r\n// 'siblings': nodeVals.map(item => {\r\n// return { 'name': item, 'relationship': '110', 'Id': getId() };\r\n// })\r\n// });\r\n// } else {\r\n// let hasChild = selectedNode.parentNode.colSpan > 1;\r\n\r\n// if (!hasChild) {\r\n// let rel = nodeVals.length > 1 ? '110' : '100';\r\n\r\n// orgchart.addChildren(selectedNode, {\r\n// 'children': nodeVals.map(item => {\r\n// return { 'name': item, 'relationship': rel, 'Id': getId() };\r\n// })\r\n// });\r\n// } else {\r\n// orgchart.addSiblings(closest(selectedNode, el => el.nodeName === 'TABLE').querySelector('.nodes').querySelector('.node'),\r\n// {\r\n// 'siblings': nodeVals.map(function (item) { return { 'name': item, 'relationship': '110', 'Id': getId() }; })\r\n// });\r\n// }\r\n// }\r\n// }\r\n\r\n// function deleteNodes(orgchart) {\r\n// let sNodeInput = document.getElementById('selected-node'),\r\n// sNode = document.getElementById(sNodeInput.dataset.node);\r\n\r\n// if (!sNode) {\r\n// alert('Please select one node in orgchart');\r\n// return;\r\n// } else if (sNode === document.querySelector('.orgchart').querySelector('.node')) {\r\n// if (!window.confirm('Are you sure you want to delete the whole chart?')) {\r\n// return;\r\n// }\r\n// }\r\n// orgchart.removeNodes(sNode);\r\n// sNodeInput.value = '';\r\n// sNodeInput.dataset.node = '';\r\n// }\r\n\r\n// function resetPanel() {\r\n// let fNode = document.querySelector('.orgchart').querySelector('.focused');\r\n\r\n// if (fNode) {\r\n// fNode.classList.remove('focused');\r\n// }\r\n// document.getElementById('selected-node').value = '';\r\n// document.getElementById('new-nodelist').querySelector('input').value = '';\r\n// Array.from(document.getElementById('new-nodelist').children).slice(1).forEach(item => item.remove());\r\n// document.getElementById('node-type-panel').querySelectorAll('input').forEach(item => {\r\n// item.checked = false;\r\n// });\r\n// }\r\n\r\n// function getId() {\r\n// return (new Date().getTime()) * 1000 + Math.floor(Math.random() * 1001);\r\n// }\r\n\r\n\r\n// document.addEventListener('DOMContentLoaded', function () {\r\n\r\n// let map = new ol.Map({\r\n// layers: [\r\n// new ol.layer.Tile({\r\n// source: new ol.source.Stamen({\r\n// layer: 'watercolor'\r\n// }),\r\n// preload: 4\r\n// }),\r\n// new ol.layer.Tile({\r\n// source: new ol.source.Stamen({\r\n// layer: 'terrain-labels'\r\n// }),\r\n// preload: 1\r\n// })\r\n// ],\r\n// target: 'pageBody',\r\n// view: new ol.View({\r\n// center: ol.proj.transform([-87.6297980, 41.8781140], 'EPSG:4326', 'EPSG:3857'),\r\n// zoom: 10\r\n// })\r\n// });\r\n\r\n// document.body.insertBefore(document.querySelector('#chart-container'), map.getViewport());\r\n\r\n// //UL Data\r\n\r\n// document.querySelector('#chart-container').appendChild(orgchart);\r\n// chartContainer.appendChild(orgchart);\r\n// // append the export button to the chart-container\r\n// let exportBtn = document.createElement('button'),\r\n// downloadBtn = document.createElement('a');\r\n\r\n// exportBtn.setAttribute('class', 'oc-export-btn');\r\n// exportBtn.innerHTML = 'Export';\r\n// exportBtn.addEventListener('click', clickExportButton);\r\n// downloadBtn.setAttribute('class', 'oc-download-btn');\r\n// downloadBtn.setAttribute('download', 'MyOrgChart.png');\r\n// chartContainer.appendChild(exportBtn);\r\n// chartContainer.appendChild(downloadBtn);\r\n\r\n\r\n// let orgchart = new OrgChart({\r\n// 'data': '#ul-data'\r\n// });\r\n\r\n// // Data Source\r\n// // let datascource = {\r\n// // 'name': 'Rajini',\r\n// // 'title': 'general manager',\r\n// // 'children': [\r\n// // { 'name': 'Bo Miao', 'title': 'department manager' },\r\n// // {\r\n// // 'name': 'Su Miao', 'title': 'department manager',\r\n// // 'children': [\r\n// // { 'name': 'Tie Hua', 'title': 'senior engineer' },\r\n// // {\r\n// // 'name': 'Hei Hei', 'title': 'senior engineer',\r\n// // 'children': [\r\n// // { 'name': 'Pang Pang', 'title': 'engineer' },\r\n// // { 'name': 'Xiang Xiang', 'title': 'UE engineer' }\r\n// // ]\r\n// // }\r\n// // ]\r\n// // },\r\n// // { 'name': 'Yu Jie', 'title': 'department manager' },\r\n// // { 'name': 'Yu Li', 'title': 'department manager' },\r\n// // { 'name': 'Hong Miao', 'title': 'department manager' },\r\n// // { 'name': 'Yu Wei', 'title': 'department manager' },\r\n// // { 'name': 'Chun Miao', 'title': 'department manager' },\r\n// // { 'name': 'Yu Tie', 'title': 'department manager' }\r\n// // ]\r\n// // },\r\n\r\n\r\n// //Ajax\r\n// Mock.mock('/orgchart/children/3', {\r\n// 'children': [\r\n// { 'id': '4', 'name': 'Pang Pang', 'title': 'engineer', 'relationship': '110' },\r\n// { 'id': '5', 'name': 'Xiang Xiang', 'title': 'UE engineer', 'relationship': '110' }\r\n// ]\r\n// });\r\n\r\n// Mock.mock('/orgchart/parent/1', { 'id': '6', 'name': 'Lao Lao', 'title': 'general manager', 'relationship': '001' });\r\n\r\n// Mock.mock('/orgchart/siblings/1', {\r\n// 'siblings': [\r\n// { 'id': '7', 'name': 'Bo Miao', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '8', 'name': 'Yu Jie', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '9', 'name': 'Yu Li', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '10', 'name': 'Hong Miao', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '11', 'name': 'Yu Wei', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '12', 'name': 'Chun Miao', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '13', 'name': 'Yu Tie', 'title': 'department engineer', 'relationship': '110' }\r\n// ]\r\n// });\r\n\r\n// Mock.mock('/orgchart/families/1', {\r\n// 'id': '6',\r\n// 'name': 'Lao Lao',\r\n// 'title': 'general manager',\r\n// 'relationship': '001',\r\n// 'children': [\r\n// { 'id': '7', 'name': 'Bo Miao', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '8', 'name': 'Yu Jie', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '9', 'name': 'Yu Li', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '10', 'name': 'Hong Miao', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '11', 'name': 'Yu Wei', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '12', 'name': 'Chun Miao', 'title': 'department engineer', 'relationship': '110' },\r\n// { 'id': '13', 'name': 'Yu Tie', 'title': 'department engineer', 'relationship': '110' }\r\n// ]\r\n// });\r\n// ajaxURLs = {\r\n// 'children': '/orgchart/children/',\r\n// 'parent': '/orgchart/parent/',\r\n// 'siblings': function (nodeData) {\r\n// return '/orgchart/siblings/' + nodeData.id;\r\n// },\r\n// 'families': function (nodeData) {\r\n// return '/orgchart/families/' + nodeData.id;\r\n// }\r\n// },\r\n\r\n// function clickExportButton() {\r\n// let chartContainer = document.querySelector('#chart-container'),\r\n// mask = chartContainer.querySelector(':scope > .mask'),\r\n// sourceChart = chartContainer.querySelector('org-chart:not(.hidden)'),\r\n// flag = sourceChart.classList.contains('l2r') || sourceChart.classList.contains('r2l');\r\n\r\n// if (!mask) {\r\n// mask = document.createElement('div');\r\n// mask.setAttribute('class', 'mask');\r\n// mask.innerHTML = ``;\r\n// chartContainer.appendChild(mask);\r\n// } else {\r\n// mask.classList.remove('hidden');\r\n// }\r\n// chartContainer.classList.add('canvasContainer');\r\n// window.html2canvas(sourceChart, {\r\n// 'width': flag ? sourceChart.clientHeight : sourceChart.clientWidth,\r\n// 'height': flag ? sourceChart.clientWidth : sourceChart.clientHeight,\r\n// 'onclone': function (cloneDoc) {\r\n// let canvasContainer = cloneDoc.querySelector('.canvasContainer');\r\n\r\n// canvasContainer.style.overflow = 'visible';\r\n// canvasContainer.querySelector('org-chart:not(.hidden)').transform = '';\r\n// }\r\n// })\r\n// .then((canvas) => {\r\n// let downloadBtn = chartContainer.querySelector('.oc-download-btn');\r\n\r\n// chartContainer.querySelector('.mask').classList.add('hidden');\r\n// downloadBtn.setAttribute('href', canvas.toDataURL());\r\n// downloadBtn.click();\r\n// })\r\n// .catch((err) => {\r\n// console.error('Failed to export the curent orgchart!', err);\r\n// })\r\n// .finally(() => {\r\n// chartContainer.classList.remove('canvasContainer');\r\n// });\r\n// }\r\n// orgchart = new OrgChart({\r\n// 'data': datascource,\r\n// 'depth': 2,\r\n// 'nodeContent': 'title',\r\n// 'pan': true,\r\n// 'zoom': true,\r\n// 'ajaxURL': ajaxURLs,\r\n// 'chartContainer': '#chart-container',\r\n// 'direction': 'b2t',\r\n// 'direction': 'l2r',\r\n// 'direction': 'r2l',\r\n// 'toggleSiblingsResp': true,\r\n// 'nodeId': 'id',\r\n// 'exportButton': true,\r\n// 'exportFilename': 'SportsChart',\r\n// 'parentNodeSymbol': 'fa-th-large',\r\n// 'draggable': true,\r\n// 'dropCriteria': function (draggedNode, dragZone, dropZone) {\r\n// if (draggedNode.querySelector(':scope > .content').textContent.includes('manager') &&\r\n// dropZone.querySelector(':scope > .content').textContent.includes('engineer')) {\r\n// return false;\r\n// }\r\n// return true;\r\n// },\r\n\r\n// 'createNode': function (node, data) {\r\n// node.id = getId();\r\n// let secondMenuIcon = document.createElement('i'),\r\n// secondMenu = document.createElement('div');\r\n\r\n// secondMenuIcon.setAttribute('class', 'fa fa-info-circle second-menu-icon');\r\n// secondMenuIcon.addEventListener('click', (event) => {\r\n// event.target.nextElementSibling.classList.toggle('hidden');\r\n// });\r\n// secondMenu.setAttribute('class', 'second-menu hidden');\r\n// secondMenu.innerHTML = ``;\r\n// node.appendChild(secondMenuIcon)\r\n// node.appendChild(secondMenu);\r\n\r\n// node.addEventListener('click', () => {\r\n// let view = map.getView(),\r\n// duration = 2000,\r\n// start = +new Date(),\r\n// pan = ol.animation.pan({\r\n// 'duration': duration,\r\n// 'source': view.getCenter(),\r\n// 'start': start\r\n// }),\r\n// bounce = ol.animation.bounce({\r\n// 'duration': duration,\r\n// 'resolution': 4 * view.getResolution(),\r\n// 'start': start\r\n// });\r\n\r\n// map.beforeRender(pan, bounce);\r\n// view.setCenter(ol.proj.transform(data.position, 'EPSG:4326', 'EPSG:3857'));\r\n// });\r\n// }\r\n// });\r\n// orgchart.addEventListener('nodedropped.orgchart', function (event) {\r\n// console.log('draggedNode:' + event.detail.draggedNode.querySelector(':scope > .title').textContent\r\n// + ', dragZone:' + event.detail.dragZone.querySelector(':scope > .title').textContent\r\n// + ', dropZone:' + event.detail.dropZone.querySelector(':scope > .title').textContent\r\n// );\r\n// });\r\n\r\n// document.querySelector('#btn-export-hier').addEventListener('click', () => {\r\n// if (!document.querySelector('pre')) {\r\n// let pre = document.createElement('pre'),\r\n// hierarchy = orgchart.getHierarchy();\r\n\r\n// pre.innerHTML = JSON.stringify(hierarchy, null, 2);\r\n// document.querySelector('body').insertBefore(pre, document.querySelector('.home-link'));\r\n// }\r\n// });\r\n\r\n// });\r\n// }\r\n\r\n// })();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.overhead')\r\n .controller('overheadCtrl', overheadCtrl);\r\n\r\n /** @ngInject */\r\n function overheadCtrl($rootScope, lodash, dialogs, $http, overheadService, AuthenticationService,$scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = [];\r\n $rootScope.isLogin = false;\r\n //Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editOverhead = editOverhead;\r\n vm.removeOverhead = removeOverhead;\r\n vm.changeActiveOverhead = changeActiveOverhead;\r\n vm.SaveOverHead = SaveOverHead;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n function Init() {\r\n overheadService.getAllOverhead().then(function (res) {\r\n if (res.status === 200) {\r\n vm.OverheadList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Overhead\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Overhead\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n // vm.Overhead = {}; \r\n vm.code = true;\r\n // vm.category.CreatedBy = \"1\";\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n }\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.OverHead = {};\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.OverHead = {};\r\n \r\n });\r\n\r\n\r\n }\r\n function resetForm() {\r\n vm.OverHeadForm.$setUntouched();\r\n }\r\n\r\n function editOverhead(Overhead) {\r\n vm.labelCreate =false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.OverHead = angular.copy(Overhead);\r\n\r\n }\r\n function removeOverhead(Overhead) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n overheadService.removeOverhead(Overhead.OverHeadId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Overhead Successfully', \"Overhead\");\r\n Init();\r\n } else {\r\n dialogs.error('error', \"Can't Delete Overhead\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n };\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveOverhead(Overhead) {\r\n var msg = 'Are sure you want to ' + ((Overhead.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((Overhead.IsActive) ? 'Deactive' : 'Active') + 'Designation Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n overheadService.changeActiveOverhead(Overhead.OverHeadId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Overhead\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Overhead\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Overhead. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveOverHead(Overhead) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n Overhead.CreatedBy = logggedUser.UserId;\r\n overheadService.AddOverhead(Overhead).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Overhead\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Overhead\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n dialogs.error(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n Overhead.ModifiedBy = logggedUser.UserId;\r\n overheadService.EditOverhead(Overhead).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Overhead\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Overhead\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n dialogs.error(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.planningReport')\r\n .controller('PlanningReportCtrl', PlanningReportCtrl);\r\n\r\n /** @ngInject */\r\n function PlanningReportCtrl($rootScope, $filter, $state, lodash, $uibModal, dialogs, $http, planningReportService, CompanyService, projectCreationService, ProjectIocaService,\r\n LocationSetupService, TierSetupService, ItemToItemService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.focList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.selectedReportFor = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowPlanningReport = ShowPlanningReport;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n vm.getProjectByCompany = getProjectByCompany;\r\n // vm.getFocByPrjId = getFocByPrjId;\r\n vm.getFocByPeriod = getFocByPeriod\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n vm.getReportMethod = getReportMethod;\r\n vm.cancel= cancel;\r\n // vm.ClearForm = ClearForm;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n $rootScope.isLogin = false;\r\n vm.plan = {};\r\n\r\n\r\n\r\n Init();\r\n\r\n // Init DDL Datas \r\n vm.SpecTypeList = [{ SpecTypeName: 'All', Code: 'A' }, { SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n\r\n //vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }, { ReportTypeName: 'Consolidated', ReportTypeId: '2' }];\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Weekly', Code: 'W' }, { PeriodTypeName: 'Monthly', Code: 'M' },\r\n { PeriodTypeName: 'Quarterly', Code: 'Q' }, { PeriodTypeName: 'Periodic', Code: 'P' }];\r\n\r\n vm.RequirementList = [\r\n //{ RequirementName: 'Draft Planning', Id: 1, ReportType: 'Draft' }, \r\n { RequirementName: 'Finalized Planning', Id: 4, ReportType: 'Finalized' }\r\n ];\r\n vm.basedOnRequirementList = [{ RequirementBasedName: 'Construction Activity Wise', Id: 1 }\r\n , { RequirementBasedName: 'Location Wise', Id: 2 }\r\n ];\r\n // Attribute();\r\n //#region Attribute\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n clearCompany();\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n clearProject();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Event for Print \r\n function cancel() {\r\n // vm.plannigReportForm.$setUntouched();\r\n vm.selectedCompany= null;\r\n vm.selectedProject= null;\r\n vm.selectedRequirement= null;\r\n vm.selectedRequirementBased= null;\r\n vm.selectedReportFor= null;\r\n vm.selectedContractorCategory= null;\r\n vm.selectedEmpName= null;\r\n vm.selectedContName= null;\r\n vm.selectedPeriod= null;\r\n \r\n }\r\n \r\n\r\n function ShowPlanningReport() {\r\n\r\n vm.isLoading = true;\r\n var strHr = null;\r\n var mReportTask = null;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var headerstr = null;\r\n\r\n //Header\r\n if (vm.selectedRequirement.Id === 1) {\r\n strHr = -1\r\n } else if (vm.selectedRequirement.Id > 1) {\r\n strHr = vm.selectedReportFor.DesignationId\r\n }\r\n debugger;\r\n //Finalized and Draft\r\n if (vm.selectedRequirement.Id === 4) {\r\n headerstr = \"Schedule \";\r\n } else {\r\n headerstr = vm.selectedRequirement.RequirementName;\r\n }\r\n\r\n //var strHr = vm.selectedReportFor.DesignationId;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + headerstr + \" of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 0) {\r\n strHeading = vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + headerstr + \" of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n } else if (strHr == -1) {\r\n strHeading = vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + headerstr + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n var strHeading1 = null;\r\n\r\n strHeading1 = \" Construction Manager : Muruganatham Site Engineer : Sudhakar Site Supervisor : Sathish\";\r\n // strHeading1 = \"Contractor : C.Kaviarasu Site Engineer : Sudhakar Site Supervisor : Sathish\";\r\n // strHeading1 = \"Construction Manager : Muruganatham Site Engineer : Sudhakar Site Contractor : C.Kaviarasu\";\r\n\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n if (vm.selectedRequirement.Id === 1) {\r\n mReportTask = 0\r\n } else if (vm.selectedRequirement.Id > 1) {\r\n mReportTask = vm.selectedReportFor.DesignationId\r\n }\r\n\r\n\r\n\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: vm.selectedRequirement.Id,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n // EmpId: (vm.selectedEmpName != undefined) ? vm.selectedEmpName : \"\",\r\n // DesignationId: (vm.selectedReportFor != undefined) ? vm.selectedReportFor : \"\",\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n WiseID: vm.selectedRequirementBased.Id,\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: vm.selectedRequirement.ReportType,\r\n ReportTask: mReportTask,\r\n Heading1: strHeading1\r\n }\r\n\r\n if (vm.selectedRequirement.Id === 1) {\r\n obj.EmpId = \"\"\r\n } else if (vm.selectedRequirement.Id === 4) {\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n }\r\n\r\n // console.log(obj);\r\n\r\n\r\n\r\n\r\n planningReportService.ShowPlanningReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n // $state.reload();\r\n // ClearForm();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n //#endregion\r\n\r\n /////// Share Report /////////////\r\n vm.ShareKpost = function () {\r\n vm.isLoading = true;\r\n var strHr = null;\r\n var mReportTask = null;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var headerstr = null;\r\n\r\n //Header\r\n if (vm.selectedRequirement.Id === 1) {\r\n strHr = -1\r\n } else if (vm.selectedRequirement.Id > 1) {\r\n strHr = vm.selectedReportFor.DesignationId\r\n }\r\n debugger;\r\n //Finalized and Draft\r\n if (vm.selectedRequirement.Id === 4) {\r\n headerstr = \"Schedule \";\r\n } else {\r\n headerstr = vm.selectedRequirement.RequirementName;\r\n }\r\n\r\n //var strHr = vm.selectedReportFor.DesignationId;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + headerstr + \" of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 0) {\r\n strHeading = vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + headerstr + \" of \" + vm.selectedReportFor.DesignationName + \" - \" + \"
\" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n } else if (strHr == -1) {\r\n strHeading = vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + headerstr + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n var strHeading1 = null;\r\n\r\n strHeading1 = \" Construction Manager : Muruganatham Site Engineer : Sudhakar Site Supervisor : Sathish\";\r\n // strHeading1 = \"Contractor : C.Kaviarasu Site Engineer : Sudhakar Site Supervisor : Sathish\";\r\n // strHeading1 = \"Construction Manager : Muruganatham Site Engineer : Sudhakar Site Contractor : C.Kaviarasu\";\r\n\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n if (vm.selectedRequirement.Id === 1) {\r\n mReportTask = 0\r\n } else if (vm.selectedRequirement.Id > 1) {\r\n mReportTask = vm.selectedReportFor.DesignationId\r\n }\r\n\r\n\r\n\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: vm.selectedRequirement.Id,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n // EmpId: (vm.selectedEmpName != undefined) ? vm.selectedEmpName : \"\",\r\n // DesignationId: (vm.selectedReportFor != undefined) ? vm.selectedReportFor : \"\",\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n WiseID: vm.selectedRequirementBased.Id,\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: vm.selectedRequirement.ReportType,\r\n ReportTask: mReportTask,\r\n Heading1: strHeading1\r\n }\r\n\r\n if (vm.selectedRequirement.Id === 1) {\r\n obj.EmpId = \"\"\r\n } else if (vm.selectedRequirement.Id === 4) {\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n }\r\n\r\n // console.log(obj);\r\n\r\n\r\n\r\n\r\n planningReportService.ShowPlanningReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n\r\n }, function () { });\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n //#region Load Construction Activity\r\n\r\n function getFocByPeriod() {\r\n debugger;\r\n clearFoc();\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n }\r\n\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n\r\n\r\n planningReportService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n if (vm.focList.length < 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n // GetReportFor(vm.selectedProject.ProjectId);\r\n // getReportMethod(vm.selectedRequirementBased.Id);\r\n }\r\n\r\n\r\n\r\n // function getFocByPrjId(prjId) {\r\n // clearFoc();\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: prjId,\r\n // Status: vm.selectedRequirement.Id\r\n // }\r\n\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // planningReportService.getBoQFoc(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.focList = res.data;\r\n // if (vm.focList.length < 0) {\r\n // dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n // });\r\n // GetReportFor(vm.selectedProject.ProjectId);\r\n // getReportMethod(vm.selectedRequirementBased.Id);\r\n // }\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n Status: vm.selectedRequirement.Id\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n vm.isLoading = true;\r\n if (CountryId && ProjectId && vm.selectedfoc != null && vm.selectedReportFor != null) {\r\n clearCat();\r\n var Arr = [];\r\n for (var i in vm.selectedfoc) {\r\n Arr.push(vm.selectedfoc[i].FieldofConstructionId)\r\n }\r\n\r\n vm.focId = Arr.join();\r\n\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: vm.focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n //#region old\r\n // function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // if (ProjectId && CategoryId) {\r\n // var filter = {\r\n // FocId: vm.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.selectedCountry.CountryId,\r\n // CategoryId: CategoryId\r\n // };\r\n\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // ItemToItemService.getBoQSubCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SubCategoryList = res.data;\r\n // if (!vm.SubCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n\r\n //#end region\r\n\r\n\r\n function getSubcategoryByCategory() {\r\n clearSub();\r\n debugger;\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n clearType();\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadIocaList() {\r\n clearIoca();\r\n vm.isLoading = true;\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQIOCA(obj).then(function (res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) { vm.isLoading = false; }\r\n );\r\n }\r\n }\r\n\r\n function getLocationByProject(Id) {\r\n vm.ProjectIOCATiersList = [];\r\n vm.LocationList = [];\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n\r\n if (vm.selectedRequirementBased.Id == 1 && vm.selectedReportFor != null) {\r\n obj.ReportForId = vm.selectedReportFor.DesignationId\r\n obj.EmployeeId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId\r\n obj.ContractorCategoryId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0\r\n obj.FromDate = $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd')\r\n obj.ToDate = $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n var Arr = [];\r\n for (var i in vm.selectedIoca) {\r\n Arr.push(vm.selectedIoca[i].IOCA_Id)\r\n }\r\n obj.IOCA_Id = Arr.join();\r\n }\r\n else{\r\n obj.FromDate = $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd')\r\n obj.ToDate = $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n }\r\n clearLoc(); \r\n LocationSetupService.getPlannedLocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n }); \r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n // function filterTiers(IocaTier) {\r\n\r\n // if (IocaTier.selectedIocatireValue) {\r\n // var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n // var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n // lodash.forEach(vm.allTierData, function (t) {\r\n // if (t.TierName === tempTier) {\r\n // t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n // }\r\n // });\r\n\r\n // // var maxTier = lodash.maxBy(vm.allTierData, function (t) {\r\n // // return getTierNo(t.TierNo);\r\n // // });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.allTierData) {\r\n // if (vm.allTierData[i].selectedIocatireValue) {\r\n // vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n // }\r\n // }\r\n\r\n // //getCountryByTiers(vm.Arr);\r\n // } else { \r\n // vm.Arr=null; \r\n // vm.Arr = {\r\n // filter: {}\r\n // } \r\n // clearTierSelection();\r\n // }\r\n // }\r\n\r\n\r\n function filterTiers(IocaTier) { \r\n if (IocaTier.selectedIocatireValue) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n // var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n // var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n // \"TierNo\": tempTier\r\n // });\r\n // lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n // if (t.TierNo === tempTier) {\r\n // t.Values = lodash.filter(currentTierDtl.Values, {\r\n // 'ParentId': tier.selectedIocatireValue.TierId\r\n // });\r\n // }\r\n // }); \r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, { \"TierNo\": tempTier });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n // console.log(vm.Arr)\r\n } else {\r\n vm.Arr = null;\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n clearTierSelection();\r\n }\r\n }\r\n\r\n\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection();\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n FromDate : $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n }\r\n vm.isLoading = true;\r\n ItemToItemService.GetTiersForPlanningReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n\r\n //vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n vm.isLoading = false;\r\n });\r\n if (vm.selectedRequirementBased.Id === 2)\r\n getFocByPeriod();\r\n\r\n }\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n debugger;\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n debugger;\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n debugger;\r\n vm.Arr = null;\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n lodash.forEach(vm.ProjectIOCATiersList, function (IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n IocaTier.selectedIocatireValue = [];\r\n }\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n vm.ClearDate = function () {\r\n debugger;\r\n if (vm.plan != undefined) {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n\r\n }\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n getFocByPeriod();\r\n } else {\r\n getLocationByProject(vm.selectedProject.ProjectId);\r\n }\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n function GetQuarterly() {\r\n if (vm.selectedPeriod.Code == 'Q') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n getFocByPeriod();\r\n } else {\r\n getLocationByProject(vm.selectedProject.ProjectId);\r\n }\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n\r\n\r\n vm.getCALoc = function () {\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n getFocByPeriod();\r\n } else {\r\n getLocationByProject(vm.selectedProject.ProjectId);\r\n }\r\n }\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n getFocByPeriod();\r\n } else {\r\n getLocationByProject(vm.selectedProject.ProjectId);\r\n }\r\n\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n\r\n //****** Finalized Planning *******/\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId, callback) {\r\n debugger;\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n vm.selectedReportFor = null;\r\n vm.basedOnReportForList = [];\r\n vm.selectedContractorCategory = null;\r\n vm.ContractorCateList = [];\r\n vm.selectedEmpName = null;\r\n vm.EmployeeList = [];\r\n vm.selectedContName = null;\r\n vm.ContractorList = [];\r\n vm.selectedPeriod = null;\r\n vm.plan.From = '';\r\n vm.plan.To = '';\r\n vm.selectedfoc = null;\r\n vm.selectedfoc = [];\r\n vm.focList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.selectedType = [];\r\n vm.TypeList = [];\r\n vm.selectedCASpecType = null;\r\n vm.selectedIoca = null;\r\n vm.IocaList = [];\r\n vm.selectedReportType = null;\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.length > 0) {\r\n vm.basedOnReportForList = res.data;\r\n }\r\n else {\r\n var con = {\r\n \"DesignationName\": 'Contractor',\r\n \"DesignationId\": 0\r\n }\r\n vm.basedOnReportForList.push(con);\r\n }\r\n\r\n if (callback);\r\n //callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n getReportMethod(vm.selectedRequirementBased.Id);\r\n // if(vm.selectedRequirementBased.Id == 2) \r\n // {\r\n // getLocationByProject(vm.selectedProject.ProjectId)\r\n // } \r\n\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy(callback) {\r\n\r\n vm.selectedPeriod = null;\r\n vm.plan.From = '';\r\n vm.plan.To = '';\r\n vm.selectedfoc = null;\r\n vm.selectedfoc = [];\r\n vm.focList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.selectedType = [];\r\n vm.TypeList = [];\r\n vm.selectedCASpecType = null;\r\n vm.selectedIoca = null;\r\n vm.IocaList = [];\r\n vm.selectedReportType = null;\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ContractorCateList = res.data;\r\n // console.log(\"res.data\" + JSON.stringify(res.data));\r\n if (callback);\r\n //callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n\r\n vm.selectedContractorCategory = null;\r\n vm.ContractorCateList = [];\r\n vm.selectedEmpName = null;\r\n vm.EmployeeList = [];\r\n vm.selectedContName = null;\r\n vm.ContractorList = [];\r\n vm.selectedPeriod = null;\r\n vm.plan.From = '';\r\n vm.plan.To = '';\r\n vm.selectedfoc = null;\r\n vm.selectedfoc = [];\r\n vm.focList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.selectedType = [];\r\n vm.TypeList = [];\r\n vm.selectedCASpecType = null;\r\n vm.selectedIoca = null;\r\n vm.IocaList = [];\r\n vm.selectedReportType = null;\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n else {\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n planningReportService.getEmpList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */\r\n function getReportMethod(ReportTypeId) {\r\n if (ReportTypeId == 1) {\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }];\r\n }\r\n else {\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }, { ReportTypeName: 'Consolidated', ReportTypeId: '2' }];\r\n }\r\n }\r\n\r\n // function ClearForm() {\r\n // vm.CompanyList = [];\r\n // vm.selectedCompany = null;\r\n // vm.ProjectList = [];\r\n // vm.selectedProject = null;\r\n // vm.selectedRequirement = null;\r\n // vm.selectedRequirementBased = null;\r\n // vm.selectedReportFor = null;\r\n // vm.basedOnReportForList = [];\r\n // vm.selectedContractorCategory = null;\r\n // vm.ContractorCateList = [];\r\n // vm.selectedEmpName = null;\r\n // vm.EmployeeList = [];\r\n // vm.ContractorList = [];\r\n // vm.selectedContName = null;\r\n // vm.plan.From = null;\r\n // vm.selectedfoc = null\r\n // vm.focList = [];\r\n // vm.selectedCategory = null;\r\n // vm.CategoryList = [];\r\n // vm.selectedSubCategory = null;\r\n // vm.SubCategoryList = [];\r\n // vm.selectedType = null;\r\n // vm.TypeList = [];\r\n // vm.IocaList = [];\r\n // vm.selectedIoca = null;\r\n // // vm.ReportTypeList = [];\r\n // vm.selectedPeriod = null;\r\n // //vm.resetForm();\r\n // Init();\r\n // }\r\n\r\n function clearLoc() {\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n clearTierSelection();\r\n }\r\n\r\n function clearIoca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n // clearLoc();\r\n }\r\n function clearType() {\r\n vm.TypeList = [];\r\n vm.selectedType = null;\r\n clearIoca();\r\n }\r\n\r\n function clearSub() {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n clearType();\r\n }\r\n\r\n function clearCat() {\r\n vm.CategoryList = [];\r\n vm.selectedCategory = null;\r\n clearSub();\r\n }\r\n function clearFoc() {\r\n vm.selectedfoc = null\r\n vm.focList = [];\r\n clearCat();\r\n }\r\n function clearCompany() {\r\n vm.selectedCompany = null;\r\n vm.CompanyList = [];\r\n clearProject();\r\n }\r\n function clearProject() {\r\n vm.selectedProject = null;\r\n vm.ProjectList = [];\r\n clearReport();\r\n }\r\n function clearReport() {\r\n vm.selectedReportFor = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedRequirement = null;\r\n clearFoc();\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.privilege')\r\n .controller('ProjectLevelPrivilegeCtrl', ProjectLevelPrivilegeCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectLevelPrivilegeCtrl($http, $rootScope, lodash, dialogs, OrganizationService, CompanyService, DepartmentServices, DesignationService,\r\n EmployeeService, CategoryofCAService, SubCategoryofCAService, TypeOfCAService, CountryService, FieldofConstructionService, projectCreationService,\r\n LocationSetupService, ProjectLevelPrivilegeService, ProjectIocaService, ItemToItemService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.privilege = {};\r\n\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n $rootScope.isLogin = false;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.TypeOfCAList = [];\r\n vm.UserPrivilegeLocList = [];\r\n vm.UserPrivilegeIocaList = [];\r\n //Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.getCompanyByOrglvl = getCompanyByOrglvl;\r\n vm.getDeptByCompany = getDeptByCompany;\r\n vm.getDesignationByDept = getDesignationByDept;\r\n vm.getEmpwithUserAc = getEmpwithUserAc;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getAllPrivilegeMenuByEmp = getAllPrivilegeMenuByEmp;\r\n vm.getFoc = getFoc;\r\n vm.getCountry = getCountry;\r\n vm.getCategoryByCountry = getCategoryByCountry;\r\n vm.getSubCategoryByCategory = getSubCategoryByCategory;\r\n vm.getTypeBySubcategory = getTypeBySubcategory;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.savePrivilege = savePrivilege;\r\n vm.AddIocaDtls = AddIocaDtls;\r\n vm.AddLocDtls = AddLocDtls;\r\n vm.getAllPrivilegeMenu = getAllPrivilegeMenu;\r\n vm.removeIoca = removeIoca;\r\n vm.removeLoc = removeLoc;\r\n vm.getStdIocaPrivilege = getStdIocaPrivilege;\r\n vm.typeOfPrivilegeChanged = typeOfPrivilegeChanged;\r\n Init();\r\n\r\n\r\n vm.PrivilegeList = [{\r\n 'PrivilegeName': 'STD',\r\n Id: 1\r\n }, {\r\n 'PrivilegeName': 'PRJ',\r\n Id: 2\r\n }]\r\n\r\n function Init() {\r\n OrganizationService.getAllOrganization().then(function (res) {\r\n if (res.status === 200) {\r\n vm.OrganizationList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Organization\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Organization\");\r\n });\r\n }\r\n\r\n function typeOfPrivilegeChanged(privilegeTypeId) {\r\n clearPrivilegeDtls();\r\n if (privilegeTypeId === 1) {\r\n vm.UserPrivilegeLocList = [];\r\n getFoc();\r\n } else {\r\n getProjectByCompany(vm.privilege.selectedCompany.CompanyId);\r\n vm.UserPrivilegeIocaList = [];\r\n }\r\n }\r\n\r\n function clearPrivilegeDtls() {\r\n vm.PrivilegeId = null;\r\n vm.privilege.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.EffectiveFrom = null;\r\n clearfoc();\r\n clearCountry();\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearType() {\r\n vm.privilege.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n }\r\n\r\n function clearSubcategory() {\r\n vm.privilege.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n clearType();\r\n }\r\n\r\n function clearCategory() {\r\n vm.privilege.selectedCategory = null;\r\n vm.CategoryList = [];\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearCountry() {\r\n vm.privilege.selectedCountry = null;\r\n vm.CountryList = [];\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearfoc() {\r\n vm.privilege.selectedfoc = null;\r\n vm.focList = null;\r\n clearCountry();\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function (IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n function getCompanyByOrglvl(OrganizationLevelId, callback) {\r\n if (OrganizationLevelId) {\r\n vm.privilege.selectedCompany = null;\r\n vm.privilege.selectedDepartment = null;\r\n vm.DepartmentList = [];\r\n vm.privilege.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n CompanyService.getCompanyByOrgId(OrganizationLevelId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n vm.privilege.selectedCompany = null;\r\n vm.CompanyList = [];\r\n vm.privilege.selectedDepartment = null;\r\n vm.DepartmentList = [];\r\n vm.privilege.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n }\r\n\r\n function getDeptByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.privilege.selectedDepartment = null;\r\n vm.privilege.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Department\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Department\");\r\n });\r\n }\r\n else {\r\n vm.privilege.selectedDepartment = null;\r\n vm.DepartmentList = [];\r\n vm.privilege.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n }\r\n }\r\n\r\n function getDesignationByDept(DepartmentId, callback) {\r\n if (DepartmentId) {\r\n vm.privilege.selectedDesignation = null;\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n\r\n DesignationService.GetDesigByDepId(DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation\");\r\n });\r\n }\r\n else {\r\n vm.privilege.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n }\r\n }\r\n\r\n function getEmpwithUserAc(DesignationId, callback) {\r\n if (DesignationId) {\r\n vm.privilege.selectedEmployee = null;\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n EmployeeService.GetEmpwithUserAc(DesignationId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n vm.privilege.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n }\r\n }\r\n\r\n function getAllPrivilegeMenuByEmp(UserId, callback) {\r\n if (UserId) {\r\n vm.privilege.selectedMenu = null;\r\n ProjectLevelPrivilegeService.GetAllPrivilgedMenu(UserId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MenuList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n vm.privilege.selectedMenu = null;\r\n vm.MenuList = [];\r\n }\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n vm.privilege.selectedProject = null;\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.privilege.selectedProject = null;\r\n vm.ProjectList = [];\r\n clearfoc();\r\n }\r\n }\r\n\r\n\r\n //CONSTRUCTION ACTIVITY BASED ON LIBRARY AND PROJECT\r\n\r\n function getFoc(ProjectId, callback) {\r\n clearfoc()\r\n if (ProjectId) {\r\n ProjectIocaService.getAllProjectFoc(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n } else {\r\n FieldofConstructionService.getActiveFoc().then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n getLocationByProject(ProjectId);\r\n getAllPrivilegeMenu(ProjectId);\r\n }\r\n\r\n function getCountry(ProjectId, callback) {\r\n clearCountry();\r\n if (ProjectId) {\r\n ProjectIocaService.getAllProjectCountry(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n } else {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n function getCategoryByCountry(focId, CountryId, ProjectId, callback) {\r\n clearCategory();\r\n if (ProjectId) {\r\n var obj = {\r\n FocId: focId,\r\n CountryId: CountryId,\r\n ProjectId: ProjectId\r\n }\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category available for ' + vm.privilege.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n } else {\r\n var obj = {\r\n FieldofConstructionId: focId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.privilege.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getSubCategoryByCategory(CategoryId, ProjectId, callback) {\r\n clearSubcategory();\r\n if (ProjectId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.privilege.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.privilege.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getTypeBySubcategory(CategoryId, SubCategoryId, ProjectId, callback) {\r\n clearType();\r\n if (ProjectId) {\r\n var obj = {\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n ProjectId: ProjectId\r\n }\r\n if (SubCategoryId !== undefined) {\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.privilege.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n for (var c in vm.TypeOfCAList) {\r\n vm.TypeOfCAList[c].CA_TypeName = vm.TypeOfCAList[c].TypeName;\r\n vm.TypeOfCAList[c].CA_TypeId = vm.TypeOfCAList[c].TypeId;\r\n }\r\n angular.forEach(vm.UserPrivilegeIocaList, function (value1, key1) {\r\n angular.forEach(vm.TypeOfCAList, function (value2, key2) {\r\n if (value1.TypeName === value2.CA_TypeName) {\r\n vm.TypeOfCAList.splice(key2, 1);\r\n }\r\n });\r\n })\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'All Type Of CA Already Added for ' + vm.privilege.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n } else {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.privilege.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n angular.forEach(vm.UserPrivilegeIocaList, function (value1, key1) {\r\n angular.forEach(vm.TypeOfCAList, function (value2, key2) {\r\n if (value1.TypeName === value2.CA_TypeName) {\r\n vm.TypeOfCAList.splice(key2, 1);\r\n }\r\n });\r\n })\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'All Type Of CA Already Added for ' + vm.privilege.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n //END CONSTRUCTION ACTIVITY BASED ON LIBRARY AND PROJECT\r\n\r\n function getLocationByProject(ProjectId) {\r\n\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n if (ProjectId) {\r\n vm.privilege.selectedLocation = null;\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Location\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Location\");\r\n })\r\n }\r\n else {\r\n vm.privilege.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection()\r\n var obj = {\r\n ProjectId: vm.privilege.selectedLocation.ProjectId,\r\n LocationId: vm.privilege.selectedLocation.LocationId\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n\r\n }\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n \r\n });\r\n // checkLastTier();\r\n }\r\n\r\n // function checkLastTier(){\r\n // angular.forEach(vm.UserPrivilegeLocList, function (value1, key1) {\r\n // angular.forEach(vm.ProjectIOCATiersList, function (value2, key2) {\r\n // if (value1.TierId === value2.TierId) {\r\n // if(value1.TierName === value2.TierName)\r\n // vm.ProjectIOCATiersList.splice(key2, 1);\r\n // }\r\n // });\r\n // })\r\n // if (vm.ProjectIOCATiersList.length < 1) {\r\n // dialogs.notify('Warning', 'All'+ +' Already Added for ','Tier' , {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.privilege = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.ProjectLevelPrivilegeForm.$setUntouched();\r\n }\r\n\r\n function getStdIocaPrivilege() {\r\n var obj = {\r\n UserId: vm.privilege.selectedEmployee.UserId,\r\n MenuId: vm.privilege.selectedMenu.MenuId\r\n }\r\n ProjectLevelPrivilegeService.getAllPrivilegeStd(obj).then(function (res) {\r\n vm.PrivilegeId = res.data.Id;\r\n vm.UserPrivilegeIocaList = res.data.UserPrivilegeIOCADtls;\r\n });\r\n }\r\n\r\n function getPrjLocPrivilege() {\r\n var obj = {\r\n UserId: vm.privilege.selectedEmployee.UserId,\r\n MenuId: vm.privilege.selectedMenu.MenuId,\r\n ProjectId: vm.privilege.selectedProject.ProjectId\r\n }\r\n ProjectLevelPrivilegeService.getPrjLocPrvlDtl(obj).then(function (res) {\r\n vm.PrivilegeId = res.data.Id;\r\n\r\n vm.UserPrivilegeLocList = res.data.UserPrivilegeLocDtls\r\n });\r\n }\r\n\r\n function getPrjIocaPrivilege() {\r\n var obj = {\r\n UserId: vm.privilege.selectedEmployee.UserId,\r\n MenuId: vm.privilege.selectedMenu.MenuId,\r\n ProjectId: vm.privilege.selectedProject.ProjectId\r\n }\r\n ProjectLevelPrivilegeService.getPrjIocaPrvlDtl(obj).then(function (res) {\r\n vm.PrivilegeId = res.data.Id;\r\n vm.UserPrivilegeIocaList = res.data.UserPrivilegeIOCADtls;\r\n });\r\n }\r\n\r\n\r\n function getAllPrivilegeMenu() {\r\n var menuTypeP = vm.privilege.selectedMenu.ProcessPrivilege === \"P\";\r\n var obj = {\r\n UserId: vm.privilege.selectedEmployee.UserId,\r\n MenuId: vm.privilege.selectedMenu.MenuId,\r\n ProjectId: vm.privilege.selectedProject.ProjectId\r\n }\r\n if (menuTypeP && vm.privilege.selectedProject) {\r\n ProjectLevelPrivilegeService.getAllPrivilegeDtl(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PrivilegeId = res.data.Id;\r\n // for (var i in res.data.UserPrivilegeIOCADtls) {\r\n // var name = res.data.UserPrivilegeIOCADtls[i].TypeName;\r\n // }\r\n vm.UserPrivilegeIocaList = res.data.UserPrivilegeIOCADtls\r\n vm.UserPrivilegeLocList = res.data.UserPrivilegeLocDtls\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n }\r\n else if (menuTypeP) {\r\n getPrjIocaPrivilege();\r\n }\r\n else {\r\n getStdIocaPrivilege();\r\n }\r\n\r\n }\r\n\r\n function AddIocaDtls() {\r\n var typeList = [];\r\n lodash.forEach(vm.privilege.selectedTypeOfCA, function (t) {\r\n var iocaObject = {\r\n TypeId: t.CA_TypeId,\r\n EffectiveFrom: vm.privilege.EffectiveFrom,\r\n TypeName: t.CA_TypeName,\r\n FocId: vm.privilege.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.privilege.selectedCountry.CountryId,\r\n CategoryId: vm.privilege.selectedCategory.CategoryId,\r\n SubCategoryId: vm.privilege.selectedSubCategory.SubCategoryId\r\n }\r\n typeList.push(iocaObject);\r\n\r\n\r\n });\r\n // for (var i in vm.privilege.selectedTypeOfCA) {\r\n // typeList.push(vm.privilege.selectedTypeOfCA[i].CA_TypeId)\r\n // } \r\n\r\n // var iocaObject = {\r\n // TypeId:typeList.join(','),\r\n // EffectiveFrom: vm.privilege.EffectiveFrom, \r\n // FocId: vm.privilege.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.privilege.selectedCountry.CountryId,\r\n // CategoryId: vm.privilege.selectedCategory.CategoryId,\r\n // SubCategoryId: vm.privilege.selectedSubCategory.SubCategoryId\r\n // }\r\n\r\n // for (var i in vm.privilege.selectedTypeOfCA) {\r\n // iocaObject.TypeName = vm.privilege.selectedTypeOfCA[i].CA_TypeName\r\n // }\r\n\r\n if (vm.PrivilegeId) {\r\n var obj = {\r\n PrivilegeId: vm.PrivilegeId,\r\n Types: typeList\r\n };\r\n ProjectLevelPrivilegeService.AddPrjIocaDts(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Level Privilege\");\r\n getPrjIocaPrivilege();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n\r\n }\r\n else {\r\n\r\n lodash.forEach(vm.privilege.selectedTypeOfCA, function (t) {\r\n var iocaObject = {\r\n TypeId: t.CA_TypeId,\r\n EffectiveFrom: vm.privilege.EffectiveFrom,\r\n TypeName: t.CA_TypeName,\r\n FocId: vm.privilege.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.privilege.selectedCountry.CountryId,\r\n CategoryId: vm.privilege.selectedCategory.CategoryId,\r\n SubCategoryId: vm.privilege.selectedSubCategory.SubCategoryId\r\n }\r\n vm.UserPrivilegeIocaList.push(iocaObject);\r\n });\r\n\r\n }\r\n }\r\n\r\n function removeIoca(row) {\r\n var PrivilegeId = row.PrivilegeId;\r\n // var selectType = row.data;\r\n // for (var i in selectType.UserPrivilegeIOCADtls) {\r\n // var TypeId = selectType.UserPrivilegeIOCADtls[i].TypeId\r\n // }\r\n if (PrivilegeId) {\r\n var obj = {\r\n PrivilegeId: PrivilegeId,\r\n TypeIdList: row.TypeId\r\n };\r\n ProjectLevelPrivilegeService.removeIocaDts(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Level Privilege\");\r\n if (vm.privilege.selectedProject != undefined) {\r\n getPrjIocaPrivilege();\r\n }\r\n else {\r\n getStdIocaPrivilege();\r\n }\r\n\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n }\r\n else {\r\n vm.UserPrivilegeIocaList.splice(row, 1);\r\n }\r\n\r\n }\r\n\r\n function AddLocDtls() {\r\n var tempList = [];\r\n var tierDtls = vm.privilege.selectedLocation.BasicLocation + ' - ';\r\n lodash.forEach(vm.ProjectIOCATiersList, function (tier) {\r\n if (tier.TierNo === vm.lastTierNo) {\r\n lodash.forEach(tier.selectedIocatireValue, function (t) {\r\n vm.locObject = {\r\n LocationId: vm.privilege.selectedLocation.LocationId,\r\n TierId: t.TierId,\r\n LocDtls: tierDtls + t.TierValue\r\n } \r\n \r\n });\r\n var except = lodash.includes(lodash.map(vm.UserPrivilegeLocList, \"TierId\"), vm.locObject.TierId);\r\n if (!except) {\r\n tempList.push( vm.locObject); \r\n } \r\n \r\n } else if (tier.TierNo < vm.lastTierNo) {\r\n tierDtls += tier.selectedIocatireValue.TierValue + ' / ';\r\n }\r\n });\r\n if (vm.PrivilegeId && tempList.length > 0) { \r\n var obj = {\r\n PrivilegeId: vm.PrivilegeId,\r\n Locations: tempList\r\n }\r\n ProjectLevelPrivilegeService.AddPrjLocDts(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Level Privilege\");\r\n vm.UserPrivilegeLocList = res.data;\r\n getPrjLocPrivilege();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n\r\n\r\n }\r\n else if (tempList.length > 0){\r\n vm.UserPrivilegeLocList = vm.UserPrivilegeLocList.concat(tempList);\r\n\r\n }\r\n else{\r\n $rootScope.showToaster('error', 'Your selected Locations are already Added ', \"Project Level Privilege\");\r\n }\r\n }\r\n function removeLoc(row) {\r\n if (row.PrivilegeId) {\r\n var obj = {\r\n PrivilegeId: row.PrivilegeId,\r\n LocationList: row.TierId\r\n };\r\n ProjectLevelPrivilegeService.removeLocDts(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Level Privilege\");\r\n getPrjLocPrivilege();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n } else {\r\n vm.UserPrivilegeLocList.splice(row, 1);\r\n }\r\n\r\n }\r\n\r\n function savePrivilege() {\r\n for (var i = 0, len = vm.UserPrivilegeIocaList.length; i < len; i++) {\r\n delete vm.UserPrivilegeIocaList[i].TypeName;\r\n delete vm.UserPrivilegeIocaList[i].EffectiveFrom;\r\n delete vm.UserPrivilegeIocaList[i].PrivilegeType;\r\n }\r\n\r\n var obj = {\r\n UserId: vm.privilege.selectedEmployee.UserId,\r\n EmpId: vm.privilege.selectedEmployee.EmployeeId,\r\n MenuId: vm.privilege.selectedMenu.MenuId,\r\n EffectiveFrom: vm.privilege.EffectiveFrom,\r\n UserPrivilegeIOCADtls: { Types: vm.UserPrivilegeIocaList }\r\n }\r\n if (vm.privilege.selectedProject) {\r\n obj.ProjectId = vm.privilege.selectedProject.ProjectId;\r\n obj.PrivilegeType = 'PRJ';\r\n obj.UserPrivilegeLocDtls = { Locations: vm.UserPrivilegeLocList };\r\n ProjectLevelPrivilegeService.AddNewUserPrvilegeDtls(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Level Privilege\");\r\n vm.UserPrivilegeIocaList = res.data.UserPrivilegeIOCADtls;\r\n vm.UserPrivilegeLocList = res.data.UserPrivilegeLocDtls\r\n\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n }\r\n else {\r\n obj.PrivilegeType = 'STD';\r\n ProjectLevelPrivilegeService.AddNewUserPrvilegeDtls(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Level Privilege\");\r\n vm.UserPrivilegeIocaList = res.data.UserPrivilegeIOCADtls;\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Level Privilege\");\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.ProjectResourceAllocation')\r\n .controller('ProjectResourceAllocationCtrl', ProjectResourceAllocationCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectResourceAllocationCtrl($rootScope, lodash, dialogs, $http, ProjectResourceAllocationService, DesignationService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.ResourceAllocationList = [];\r\n vm.Resource = {};\r\n $rootScope.isLogin = false;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n // Methods\r\n \r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.SaveProjectAllocation = SaveProjectAllocation;\r\n vm.EditResourceAllocation = EditResourceAllocation;\r\n vm.RemoveResource = RemoveResource;\r\n\r\n\r\n ///////////////\r\n Init();\r\n\r\n function Init() {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n \r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n }\r\n\r\n \r\n ProjectResourceAllocationService.getEmployeeListByCompnayId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n \r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n \r\n\r\n // DesignationService.getAllDesignation(loggedUser.SelectedCompany.CompanyId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DesignationList = res.data;\r\n\r\n\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Designation\");\r\n // });\r\n\r\n ProjectResourceAllocationService.getAllResourceAllocation().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ResourceAllocationList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Resource Allocation\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Resource Allocation\");\r\n });\r\n \r\n\r\n\r\n function SaveProjectAllocation() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Resource = {\r\n CompanyId: vm.Resource.selectedCompany.CompanyId,\r\n ProjectId: vm.Resource.selectedProject.ProjectId,\r\n DesignationId: vm.Resource.selectedDesignation.DesignationId,\r\n EmployeeId: vm.Resource.selectedEmployee.EmployeeId,\r\n }\r\n if (!vm.isEditing) {\r\n Account.CreatedBy = logggedUser.UserId\r\n ProjectResourceAllocationService.AddResourceAllocation(Resource).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Resource Allocation\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Resource Allocation\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n Resource.ModifiedBy = logggedUser.UserId\r\n Resource.ResourceId = vm.Resource.ResourceId\r\n ProjectResourceAllocationService.EditResourceAllocation(Resource).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Resource Allocation\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Resource Allocation\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n function RemoveResource(Resource) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n \r\n confirm.result.then(function () {\r\n ProjectResourceAllocationService.removeResourceAllocation(Resource.ResourceId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Project Resource Allocation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Project Resource Allocation \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Account. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function EditResourceAllocation(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.Account.Balance = row.Balance;\r\n\r\n vm.Account = angular.copy(row);\r\n\r\n // vm.holiday.Date = new Date(vm.holiday.HolidayDate + \"/\" + vm.holiday.HolidayMonth + \"/\" + vm.holiday.HolidayYear);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == vm.Account.CompanyId) {\r\n vm.Account.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.Currencytypelist) {\r\n if (vm.Currencytypelist[i].CurrencyTypeId === vm.Account.CurrencyTypeId) {\r\n vm.Account.CurrencyTypeId = vm.Currencytypelist[i]\r\n }\r\n }\r\n for (var i in vm.TransactionTypeList) {\r\n if (vm.TransactionTypeList[i].TransactionTypeId === vm.Account.TxnType) {\r\n vm.Account.TransactionTypeId = vm.TransactionTypeList[i]\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n\r\n\r\n }\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n //vm.dept = {};\r\n }\r\n function resetForm() {\r\n vm.ResourceAllocationForm.$setUntouched();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('Approved_POCtrl', Approved_POCtrl);\r\n\r\n /** @ngInject */\r\n function Approved_POCtrl($http, $filter, $scope, $rootScope, $uibModal, lodash, $state, dialogs, AuthenticationService, CompanyService,\r\n Draft_POService, projectCreationService, POTermsAndConditionService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.getProjectbyCompany = getProjectbyCompany\r\n vm.getDraftPO = getDraftPO\r\n Init();\r\n\r\n function Init() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n getGetAllPOTemplate();\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n\r\n\r\n }\r\n function getGetAllPOTemplate() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n var obj = {\r\n CompanyId: CompanyId,\r\n ActionBy: logggedUser.UserId\r\n }\r\n POTermsAndConditionService.GetAllPOTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TemplateList = res.data;\r\n console.log(vm.TemplateList)\r\n for (var i in vm.TemplateList) {\r\n vm.TemplateList[i].selectTemplate = false\r\n vm.TemplateList[i].Id = vm.TemplateList[i].PO_termsId\r\n vm.PO_termsId = vm.TemplateList[i].Id\r\n console.log(vm.PO_termsId)\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"POTermsAndCondition\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"POTermsAndCondition\");\r\n });\r\n }\r\n vm.selectTemplate = function (Row) {\r\n debugger\r\n\r\n if (Row.selectTemplate) {\r\n for (var i in vm.TemplateList) {\r\n if (vm.TemplateList[i].Title == Row.Title) {\r\n vm.Template = vm.TemplateList[i].Title\r\n vm.url = vm.TemplateList[i].AttachmentUrl\r\n // vm.PO_termsId = vm.TemplateList[i].PO_termsId\r\n }\r\n console.log(vm.Template)\r\n console.log(vm.url)\r\n console.log(vm.PO_termsId)\r\n }\r\n }\r\n else {\r\n vm.Template = null\r\n vm.url = null\r\n }\r\n }\r\n function getProjectbyCompany(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.SelectProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.selectedProjectFilter=null;\r\n }\r\n }\r\n function getDraftPO(ProjectId, callback) {\r\n debugger;\r\n if (ProjectId) {\r\n Draft_POService.GetDraftPO(ProjectId, 4).then(function (res) {\r\n if (res.status === 200) {\r\n vm.Draft_POList = res.data;\r\n console.log(vm.Draft_POList)\r\n if (!vm.Draft_POList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Draft_PO available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n vm.ViewPurchaseOrder = function (row) {\r\n var data = {\r\n po: row\r\n }\r\n $state.go('Draft_PO', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('BackForCorrection_POCtrl', BackForCorrection_POCtrl);\r\n\r\n /** @ngInject */\r\n function BackForCorrection_POCtrl($http, $filter, $scope, $rootScope, $uibModal, $state, lodash, dialogs, AuthenticationService, CompanyService,\r\n Draft_POService, projectCreationService, POTermsAndConditionService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.getProjectbyCompany = getProjectbyCompany\r\n vm.getDraftPO = getDraftPO\r\n Init();\r\n\r\n function Init() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n getGetAllPOTemplate();\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n\r\n\r\n }\r\n function getGetAllPOTemplate() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n var obj = {\r\n CompanyId: CompanyId,\r\n ActionBy: logggedUser.UserId\r\n }\r\n POTermsAndConditionService.GetAllPOTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TemplateList = res.data;\r\n console.log(vm.TemplateList)\r\n for (var i in vm.TemplateList) {\r\n vm.TemplateList[i].selectTemplate = false\r\n vm.TemplateList[i].Id = vm.TemplateList[i].PO_termsId\r\n vm.PO_termsId = vm.TemplateList[i].Id\r\n console.log(vm.PO_termsId)\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"POTermsAndCondition\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"POTermsAndCondition\");\r\n });\r\n }\r\n vm.selectTemplate = function (Row) {\r\n debugger\r\n\r\n if (Row.selectTemplate) {\r\n for (var i in vm.TemplateList) {\r\n if (vm.TemplateList[i].Title == Row.Title) {\r\n vm.Template = vm.TemplateList[i].Title\r\n vm.url = vm.TemplateList[i].AttachmentUrl\r\n // vm.PO_termsId = vm.TemplateList[i].PO_termsId\r\n }\r\n console.log(vm.Template)\r\n console.log(vm.url)\r\n console.log(vm.PO_termsId)\r\n }\r\n }\r\n else {\r\n vm.Template = null\r\n vm.url = null\r\n }\r\n }\r\n function getProjectbyCompany(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.SelectProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.selectedProjectFilter=null;\r\n }\r\n }\r\n function getDraftPO(ProjectId, callback) {\r\n debugger;\r\n if (ProjectId) {\r\n Draft_POService.GetDraftPO(ProjectId, 7).then(function (res) {\r\n if (res.status === 200) {\r\n vm.Draft_POList = res.data;\r\n console.log(vm.Draft_POList)\r\n if (!vm.Draft_POList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Draft_PO available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n vm.ViewPurchaseOrder = function (row) {\r\n var data = {\r\n po: row\r\n }\r\n $state.go('Draft_PO', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('Draft_POCtrl', Draft_PO);\r\n\r\n /** @ngInject */\r\n function Draft_PO($http, $filter, $scope, $state, $rootScope, $uibModal, lodash, dialogs, PreparationofRfqMaterialService, AuthenticationService, CompanyService,\r\n Draft_POService, projectCreationService, POTermsAndConditionService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.noOfRowstable1 = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage1 = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n\r\n $rootScope.isLogin = false;\r\n vm.IOMForPOList = [];\r\n\r\n //Method\r\n vm.po = {};\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel\r\n vm.clear = clear\r\n vm.ViewPurchaseHistory = ViewPurchaseHistory\r\n vm.ViewSelectLocation = ViewSelectLocation\r\n vm.getProjectbyCompany = getProjectbyCompany\r\n vm.getProjectByRfqMateraial = getProjectByRfqMateraial\r\n vm.getDraftPO = getDraftPO\r\n vm.GetSupplierForPO = GetSupplierForPO\r\n vm.GetQuotationNoForPO = GetQuotationNoForPO\r\n vm.GetListOfPendingMaterial = GetListOfPendingMaterial\r\n vm.AddToPurchase = AddToPurchase\r\n vm.RemoveSelectPendingMaterial = RemoveSelectPendingMaterial\r\n vm.SavePO = SavePO\r\n vm.getIOMbyrfq = getIOMbyrfq;\r\n vm.RemovePurchaseOrder = RemovePurchaseOrder\r\n vm.check = check\r\n vm.SendforApproval = SendforApproval\r\n vm.ViewPurchaseOrder = ViewPurchaseOrder\r\n /////\r\n\r\n vm.isView = false;\r\n vm.isAdd = true;\r\n vm.Total = 0;\r\n vm.TempTotal = 0;\r\n vm.Status = 1;\r\n vm.po.SelectedIOM = [];\r\n // vm.SendApprove = SendApprove\r\n\r\n ////// State params Assign\r\n if ($state.params.data != undefined) {\r\n debugger;\r\n vm.ViewPurchaseOrder($state.params.data.po)\r\n\r\n } else {\r\n //$state.go($rootScope.previousState);\r\n }\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n ////////////////\r\n\r\n Init();\r\n getAllPaymentType();\r\n function Init() {\r\n vm.status = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n //getGetAllPOTemplate();\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getAllPaymentType(callback) {\r\n vm.PaymentTypeList = [{\r\n PaymentTypeName: 'Credit Basis',\r\n PaymentTypeId: 1\r\n }, {\r\n PaymentTypeName: '100% Advance Payment',\r\n PaymentTypeId: 2\r\n }\r\n , {\r\n PaymentTypeName: '50% advance against P.O & Balance 50% against Delivery',\r\n PaymentTypeId: 3\r\n },\r\n {\r\n PaymentTypeName: '100% against Delivery',\r\n PaymentTypeId: 4\r\n }\r\n ];\r\n if (callback)\r\n callback()\r\n }\r\n\r\n\r\n function getAllCompanyByRfqMaterial() {\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var ActionBy = logggedUser.UserId\r\n\r\n PreparationofRfqMaterialService.GetAllCompanyByRfqMaterial(CompanyId, ActionBy).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyMaterialList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByRfqMateraial(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n var ActionBy = logggedUser.UserId;\r\n PreparationofRfqMaterialService.GetAllProjectByRfqMaterial(CompanyId, ActionBy).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectMaterialList = res.data;\r\n getGetAllPOTemplate();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.po.selectedProject=null;\r\n vm.po.selectedSupplier=null;\r\n vm.po.Quotation=null;\r\n vm.po.SelectedIOM=null;\r\n vm.po.title=null;\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n function getGetAllPOTemplate() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n // var obj = {\r\n // CompanyId: CompanyId,\r\n // ActionBy: logggedUser.UserId\r\n // }\r\n if ($state.params.data != undefined) {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n PO_termsId: $state.params.data.po.PO_termsId,\r\n ActionBy: logggedUser.UserId\r\n }\r\n }\r\n else {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n ActionBy: logggedUser.UserId\r\n }\r\n }\r\n\r\n POTermsAndConditionService.GetAllPOTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.TemplateList = res.data;\r\n for (var i in vm.TemplateList) {\r\n vm.TemplateList[i].selectTemplate = false\r\n vm.TemplateList[i].selectTitle = false\r\n vm.TemplateList[i].Id = vm.TemplateList[i].PO_termsId\r\n // vm.PO_termsId = vm.TemplateList[i].Id\r\n //console.log(vm.PO_termsId)\r\n }\r\n if (!vm.TemplateList.length > 0) {\r\n dialogs.notify('Warning', '! There are no terms and conditions for the company you ve selected.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } \r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"POTermsAndCondition\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"POTermsAndCondition\");\r\n });\r\n }\r\n vm.selectTemplate = function (Row) {\r\n // if (Row.selectTitle) { \r\n\r\n for (var i in vm.TemplateList) {\r\n if (vm.TemplateList[i].Title == Row.Title) {\r\n vm.Template = vm.TemplateList[i].Title\r\n vm.url = vm.TemplateList[i].AttachmentUrl\r\n vm.PO_termsId = vm.TemplateList[i].PO_termsId\r\n }\r\n }\r\n // }\r\n // else {\r\n // vm.Template = null\r\n // vm.url = null\r\n // }\r\n }\r\n function getProjectbyCompany(CompanyId, callback) {\r\n debugger;\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.SelectProjectList = res.data; \r\n //console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n \r\n }\r\n vm.isLoading = false;\r\n // getGetAllPOTemplate();\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.po.selectedProjectFilter=null;\r\n }\r\n }\r\n function getDraftPO(ProjectId, callback) {\r\n\r\n if (ProjectId) {\r\n Draft_POService.GetDraftPO(ProjectId, '1').then(function (res) {\r\n if (res.status === 200) {\r\n vm.Draft_POList = res.data;\r\n if (!vm.Draft_POList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Draft_PO available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n else {\r\n\r\n }\r\n }\r\n function GetSupplierForPO(ProjectId, callback) {\r\n if (ProjectId) {\r\n Draft_POService.GetSupplierForPO(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SupplierPOList = res.data;\r\n if (!vm.SupplierPOList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Supplier available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n else {\r\n vm.po.selectedSupplier=null;\r\n vm.po.Quotation=null;\r\n vm.po.SelectedIOM=null;\r\n vm.po.title=null;\r\n\r\n }\r\n }\r\n function GetQuotationNoForPO(SupplierId, callback) {\r\n debugger;\r\n if (SupplierId) {\r\n Draft_POService.GetQuotationNoForPO(SupplierId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.QuotationNoList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.QuotationNoList.length > 0) {\r\n dialogs.notify('Warning', '! There is no QuotationNo available selected Supplier', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n else {\r\n vm.po.Quotation=null;\r\n vm.po.SelectedIOM=null;\r\n vm.po.title=null;\r\n\r\n }\r\n }\r\n\r\n function getIOMbyrfq() {\r\n Draft_POService.GetIOMForPO(vm.po.selectedSupplier.SupplierId, vm.po.Quotation.RfqId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMForPOList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.IOMForPOList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOM available selected Supplier', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n })\r\n }\r\n\r\n function GetListOfPendingMaterial(callback) {\r\n vm.SelectPendingMaterialList = [];\r\n vm.PendingMaterialList = [];\r\n vm.Total = 0.0;\r\n var Arr = [];\r\n\r\n for (var i in vm.po.SelectedIOM) {\r\n Arr.push(vm.po.SelectedIOM[i].IOM_Id);\r\n\r\n }\r\n vm.IOM_Id = Arr.join();\r\n\r\n var obj = {\r\n SupplierId: vm.po.selectedSupplier.SupplierId,\r\n RfqId: vm.po.Quotation.RfqId,\r\n ProjectId: vm.po.selectedProject.ProjectId,\r\n IOM_Id: (vm.po.SelectedIOM.length > 0) ? vm.IOM_Id : null\r\n }\r\n if (vm.isView)\r\n obj.PurchaseOrderId = vm.PurchaseOrderId\r\n Draft_POService.GetListOfPendingMaterial(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PendingMaterialList = res.data;\r\n for (var i in vm.PendingMaterialList) {\r\n // vm.PendingMaterialList[i].isSelectedrow = false\r\n vm.PendingMaterialList[i].tempQty = vm.PendingMaterialList[i].BalanceQty\r\n vm.temp = vm.PendingMaterialList[i].tempQty\r\n\r\n }\r\n\r\n if (callback)\r\n callback()\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"IOM\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOM\");\r\n })\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.isView = false;\r\n vm.isAdd = true;\r\n Init();\r\n getAllCompanyByRfqMaterial();\r\n vm.po = {}\r\n vm.PendingMaterialList = []\r\n vm.SelectPendingMaterialList = [];\r\n vm.TempTotal = [];\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.po = {};\r\n vm.PendingMaterialList = []\r\n vm.SelectPendingMaterialList = [];\r\n vm.TempTotal = [];\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n function clear() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n vm.po = {};\r\n vm.PendingMaterialList = []\r\n vm.SelectPendingMaterialList = [];\r\n vm.TempTotal = [];\r\n }\r\n\r\n\r\n // vm.changeStatus = function () {\r\n // vm.status = !vm.status;\r\n // }\r\n\r\n\r\n function ViewPurchaseHistory(row) {\r\n // debugger;\r\n // var Arr = [];\r\n\r\n // for (var i in vm.po.SelectedIOM) {\r\n // Arr.push(vm.po.SelectedIOM[i].IOM_Id);\r\n\r\n // }\r\n // vm.IOM_Id = Arr.join();\r\n\r\n var obj = {\r\n SupplierId: vm.po.selectedSupplier.SupplierId,\r\n ProjectId: vm.po.selectedProject.ProjectId,\r\n IOM_Id: row.IOM_Id,\r\n row: row\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/PurchaseOrder/PurchaseHistory.html',\r\n controller: 'PurchaseHistoryCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n // row.SpecialNote = note;\r\n }, function () { });\r\n }\r\n function ViewSelectLocation(row) {\r\n\r\n var Arr = [];\r\n\r\n for (var i in vm.po.SelectedIOM) {\r\n Arr.push(vm.po.SelectedIOM[i].IOM_Id);\r\n\r\n }\r\n vm.IOM_Id = Arr.join();\r\n\r\n if (row.SelectedItem == undefined) {\r\n row.SelectedItem = {};\r\n }\r\n\r\n var obj = {\r\n RfqId: vm.po.Quotation.RfqId,\r\n IOM_Id: row.IOM_Id,\r\n row: row,\r\n InitialBalanceQty: row.BalanceQty,\r\n // QtySelectedList: vm.QtySelectedList,\r\n SelectedLocation: (row.SelectedItem.SelectedLocation != undefined) ? row.SelectedItem.SelectedLocation : row.SelectedItem.SelectedLocation = [],\r\n isSelectAllOrderQty: (row.SelectedItem.isSelectAllOrderQty != undefined) ? row.SelectedItem.isSelectAllOrderQty : row.SelectedItem.isSelectAllOrderQty = false,\r\n TotalOrderQty: (row.SelectedItem.PurchaseQty != undefined) ? row.SelectedItem.PurchaseQty : row.SelectedItem.PurchaseQty = 0.00,\r\n }\r\n vm.InitialBalance = row.BalanceQty\r\n vm.InitialDiscount = row.DisCount\r\n vm.InitialUnitRate = row.UnitRate\r\n vm.InitialCGST = row.CGST\r\n vm.InitialSGST = row.SGST\r\n vm.InitialIGST = row.IGST\r\n console.log(vm.Balance)\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/PurchaseOrder/SelectLocation.html',\r\n controller: 'SelectLocationCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n\r\n return obj;\r\n\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (items) {\r\n\r\n\r\n //selected Checkbox\r\n // if (items.selectedItem != undefined || (items.selectedItem.LastTierIds.length > 0)) {\r\n // vm.QtySelectedList = items.selectedItem;\r\n // }\r\n vm.IOCA_Id = items.selectedItem.IOCA_Id\r\n vm.LastTierId = items.selectedItem.LastTierId\r\n row.SelectedQty = parseFloat(items.selectedItem.PurchaseQty).toFixed(2);\r\n // vm.SelectedQty = TotalOrderQty\r\n vm.BalanceQty = vm.InitialBalance - parseFloat(row.SelectedQty).toFixed(2);\r\n row.BalanceQty = vm.BalanceQty\r\n\r\n vm.DiscountInRupees = ((parseFloat(row.SelectedQty).toFixed(2) * vm.InitialDiscount * vm.InitialUnitRate) / 100)\r\n row.DiscountInRupees = vm.DiscountInRupees\r\n\r\n vm.TaxValue = ((vm.InitialUnitRate * parseFloat(row.SelectedQty).toFixed(2)) - row.DiscountInRupees)\r\n row.TaxValue = vm.TaxValue\r\n\r\n vm.CGSTValue = ((row.TaxValue * vm.InitialCGST) / 100)\r\n row.CGSTValue = vm.CGSTValue\r\n\r\n vm.SGSTValue = ((row.TaxValue * vm.InitialSGST) / 100)\r\n row.SGSTValue = vm.SGSTValue\r\n\r\n vm.IGSTValue = ((row.TaxValue * vm.InitialIGST) / 100)\r\n row.IGSTValue = vm.IGSTValue\r\n\r\n vm.TotalValue = (row.TaxValue + row.CGSTValue + row.SGSTValue)\r\n row.TotalValue = vm.TotalValue\r\n\r\n row.SelectedItem = items.selectedItem\r\n }, function () { });\r\n }\r\n vm.Total = 0.0;\r\n vm.TempTotal = 0.0;\r\n vm.isSelectAll = false;\r\n vm.select = function (row) {\r\n // vm.isSelectAll = false;\r\n //Start My Code \r\n\r\n vm.Total = lodash.sumBy(lodash.filter(vm.PendingMaterialList, function (obj) {\r\n return obj.isSelectedrow\r\n }), function (e) {\r\n return e.TotalValue\r\n });\r\n // for (var i in vm.PendingMaterialList) {\r\n // if (vm.PendingMaterialList[i].IOM_Id == row.IOM_Id) {\r\n // if (vm.PendingMaterialList[i].isSelectedrow == true) {\r\n // vm.Total = vm.Total + parseFloat(row.TotalValue);\r\n // } else {\r\n // vm.Total = vm.Total - parseFloat(row.TotalValue);\r\n // }\r\n // }\r\n // }\r\n //End Code\r\n\r\n var Arr = lodash.filter(vm.PendingMaterialList, function (e) {\r\n return e.isSelectedrow\r\n })\r\n\r\n if (Arr.length > 0) {\r\n vm.isSelectAll = true;\r\n }\r\n else {\r\n vm.isSelectAll = false;\r\n }\r\n\r\n };\r\n vm.selectAll = function () {\r\n\r\n lodash.forEach(vm.PendingMaterialList, function (e) {\r\n if (e.SelectedQty != 0.0 && e.SelectedQty != undefined)\r\n e.isSelectedrow = vm.isSelectAll\r\n })\r\n\r\n vm.Total = lodash.sumBy(lodash.filter(vm.PendingMaterialList, function (obj) {\r\n return obj.isSelectedrow\r\n }), function (e) {\r\n return e.TotalValue\r\n });\r\n }\r\n function AddToPurchase() {\r\n //vm.SelectPendingMaterialList = [];\r\n lodash.forEach(vm.PendingMaterialList, function (e) {\r\n if (e.isSelectedrow) {\r\n if (vm.SelectPendingMaterialList.length > 0) {\r\n var Arr = lodash.filter(vm.SelectPendingMaterialList,function(f){\r\n return f.IOM_Id == e.IOM_Id\r\n })\r\n if(Arr.length > 0){\r\n\r\n }\r\n lodash.forEach(vm.SelectPendingMaterialList, function (obj) {\r\n if (obj.IOM_Id == e.IOM_Id) {\r\n obj.SelectedQty = angular.copy(e.SelectedQty),\r\n obj.DiscountInRupees = angular.copy(e.DiscountInRupees),\r\n obj.TaxValue = angular.copy(e.TaxValue),\r\n obj.CGSTValue = angular.copy(e.CGSTValue),\r\n obj.SGSTValue = angular.copy(e.SGSTValue),\r\n obj.IGSTValue = angular.copy(e.IGSTValue),\r\n obj.TotalValue = angular.copy(e.TotalValue)\r\n }\r\n else\r\n vm.SelectPendingMaterialList.push(angular.copy(e));\r\n })\r\n }\r\n else\r\n vm.SelectPendingMaterialList.push(angular.copy(e));\r\n }\r\n })\r\n vm.SelectPendingMaterialList = lodash.uniqBy(vm.SelectPendingMaterialList, 'IOM_Id');\r\n vm.TempTotal = 0.0\r\n lodash.forEach(vm.PendingMaterialList, function (e) {\r\n if (e.isSelectedrow) {\r\n e.SelectedQty = 0;\r\n e.DiscountInRupees = null;\r\n e.TaxValue = null;\r\n e.CGSTValue = null;\r\n e.SGSTValue = null;\r\n e.IGSTValue = null;\r\n e.TotalValue = null;\r\n e.isSelectedrow = false;\r\n }\r\n })\r\n\r\n vm.TempTotal = lodash.sumBy(vm.SelectPendingMaterialList, function (e) {\r\n return e.TotalValue\r\n });\r\n\r\n vm.Total = lodash.sumBy(lodash.filter(vm.PendingMaterialList, function (obj) {\r\n return obj.isSelectedrow\r\n }), function (e) {\r\n return e.TotalValue\r\n });\r\n\r\n var Arr = lodash.filter(vm.PendingMaterialList, function (e) {\r\n return e.isSelectedrow\r\n });\r\n\r\n if (Arr.length > 0) {\r\n vm.isSelectAll = true;\r\n }\r\n else\r\n vm.isSelectAll = false;\r\n\r\n // for (var i in vm.PendingMaterialList) {\r\n // vm.PendingMaterialList[i].SelectedQty = 0;\r\n // vm.PendingMaterialList[i].DiscountInRupees = [];\r\n // vm.PendingMaterialList[i].TaxValue = [];\r\n // vm.PendingMaterialList[i].CGSTValue = [];\r\n // vm.PendingMaterialList[i].SGSTValue = [];\r\n // vm.PendingMaterialList[i].IGSTValue = [];\r\n // vm.PendingMaterialList[i].TotalValue = [];\r\n // vm.PendingMaterialList[i].isSelectedrow = false;\r\n // }\r\n }\r\n\r\n function RemoveSelectPendingMaterial(row, i) {\r\n\r\n // lodash.forEach(vm.PendingMaterialList, function (e) {\r\n // if (e.IOM_Id == row.IOM_Id) {\r\n // lodash.forEach(e.SelectedItem.SelectedLocation, function (obj) {\r\n // obj.isQtySelectedrow = false;\r\n // })\r\n // }\r\n // })\r\n\r\n lodash.forEach(vm.PendingMaterialList, function (e) {\r\n if (e.IOM_Id == row.IOM_Id) {\r\n e.SelectedQty = angular.copy(row.SelectedQty),\r\n e.DiscountInRupees = angular.copy(row.DiscountInRupees),\r\n e.TaxValue = angular.copy(row.TaxValue),\r\n e.CGSTValue = angular.copy(row.CGSTValue),\r\n e.SGSTValue = angular.copy(row.SGSTValue),\r\n e.IGSTValue = angular.copy(row.IGSTValue),\r\n e.TotalValue = angular.copy(row.TotalValue)\r\n }\r\n })\r\n\r\n\r\n vm.SelectPendingMaterialList.splice(i, 1);\r\n\r\n vm.TempTotal = lodash.sumBy(vm.SelectPendingMaterialList, function (e) {\r\n return e.TotalValue\r\n });\r\n\r\n\r\n // for (var i in vm.PendingMaterialList) {\r\n // vm.PendingMaterialList[i] = angular.copy(row)\r\n // vm.PendingMaterialList[i].BalanceQty = vm.PendingMaterialList[i].BalanceQty + vm.PendingMaterialList[i].SelectedQty\r\n // vm.TempTotal = vm.TempTotal - vm.PendingMaterialList[i].TotalValue\r\n // vm.PendingMaterialList[i].isSelectedrow = false;\r\n // vm.PendingMaterialList[i].SelectedQty = 0;\r\n // }\r\n\r\n // vm.SelectPendingMaterialList = []\r\n }\r\n function SavePO() {\r\n var Arr = [];\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n for (var i in vm.SelectPendingMaterialList) {\r\n for (var j in vm.SelectPendingMaterialList[i].SelectedItem.SelectedLocation) {\r\n Arr.push(vm.SelectPendingMaterialList[i].SelectedItem.SelectedLocation[j])\r\n }\r\n\r\n }\r\n debugger;\r\n console.log(Arr)\r\n var obj = {\r\n RfqId: vm.po.Quotation.RfqId,\r\n ProjectId: vm.po.selectedProject.ProjectId,\r\n Note: vm.po.note,\r\n Locations: vm.po.location,\r\n NoOfDays: vm.po.credit,\r\n Title: vm.po.title,\r\n PaymentType: vm.po.selectedPayment.PaymentTypeId,\r\n PO_termsId: vm.PO_termsId,\r\n SupplierId: vm.po.selectedSupplier.SupplierId,\r\n PurchaseOrderDetails: JSON.stringify(Arr),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n Draft_POService.SavePO(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'inserted successfully', \"Draft_PO\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', '!Load failed ..try again', \"Draft_PO\");\r\n vm.isFormOpen = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n function RemovePurchaseOrder(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n // var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n PurchaseOrderId: row.PurchaseOrderId,\r\n // CreatedBy: logggedUser.UserId\r\n }\r\n Draft_POService.DeletePurchaseOrder(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete State Successfully', \"Draft_PO\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Draft_PO\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n })\r\n }\r\n function check() {\r\n if (!vm.po.SelectedIOM.length > 0) {\r\n vm.PendingMaterialList = []\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n function ViewPurchaseOrder(row) {\r\n debugger;\r\n vm.isView = true;\r\n vm.isAdd = false;\r\n vm.Status = angular.copy(row.PO_Status);\r\n vm.CompanyName = angular.copy(row.CompanyName);\r\n vm.ProjectName = angular.copy(row.ProjectName);\r\n vm.ProjectId = angular.copy(row.ProjectId)\r\n vm.Note = angular.copy(row.Note);\r\n vm.PurchaseOrderNo = angular.copy(row.PurchaseOrderNo);\r\n vm.PO_Title = angular.copy(row.PO_Title);\r\n vm.AttachementUrl = angular.copy(row.AttachmentUrl);\r\n vm.PaymentType = angular.copy(row.PaymentType);\r\n vm.locations = angular.copy(row.locations);\r\n vm.SupplierId = angular.copy(row.SupplierId);\r\n vm.SupplierName = angular.copy(row.SupplierName);\r\n vm.Title = angular.copy(row.Title);\r\n vm.PurchaseOrderId = angular.copy(row.PurchaseOrderId);\r\n\r\n GetQuotationNoForPO(vm.SupplierId, function () {\r\n for (var i in vm.QuotationNoList) {\r\n if (vm.QuotationNoList[i].QuotationNo == row.QuotationNo) {\r\n vm.po.Quotation = vm.QuotationNoList[i]\r\n vm.Quotation = vm.po.Quotation.QuotationNo\r\n if (vm.po.Quotation.RfqId) {\r\n vm.po.SelectedIOM = [];\r\n // vm.RfqId = vm.RfqId\r\n vm.po.selectedSupplier = {};\r\n vm.po.selectedSupplier.SupplierId = vm.SupplierId;\r\n vm.po.selectedProject = {};\r\n vm.po.selectedProject.ProjectId = angular.copy(row.ProjectId)\r\n GetListOfPendingMaterial(function () {\r\n for (var i in vm.PendingMaterialList) {\r\n\r\n vm.DiscountInRupees = ((vm.PendingMaterialList[i].OrderedQty * vm.PendingMaterialList[i].DisCount * vm.PendingMaterialList[i].UnitRate) / 100)\r\n vm.PendingMaterialList[i].DiscountInRupees = vm.DiscountInRupees\r\n\r\n vm.TaxValue = ((vm.PendingMaterialList[i].UnitRate * vm.PendingMaterialList[i].OrderedQty) - vm.PendingMaterialList[i].DiscountInRupees)\r\n vm.PendingMaterialList[i].TaxValue = vm.TaxValue\r\n\r\n vm.CGSTValue = ((vm.TaxValue * vm.PendingMaterialList[i].CGST) / 100)\r\n vm.PendingMaterialList[i].CGSTValue = vm.CGSTValue\r\n\r\n vm.SGSTValue = ((vm.TaxValue * vm.PendingMaterialList[i].SGST) / 100)\r\n vm.PendingMaterialList[i].SGSTValue = vm.SGSTValue\r\n\r\n vm.IGSTValue = ((vm.TaxValue * vm.PendingMaterialList[i].IGST) / 100)\r\n vm.PendingMaterialList[i].IGSTValue = vm.IGSTValue\r\n\r\n vm.TotalValue = (vm.TaxValue + vm.PendingMaterialList[i].CGSTValue + vm.PendingMaterialList[i].SGSTValue + vm.PendingMaterialList[i].IGSTValue)\r\n vm.PendingMaterialList[i].TotalValue = vm.TotalValue\r\n\r\n vm.Total += vm.PendingMaterialList[i].TotalValue;\r\n }\r\n\r\n })\r\n }\r\n }\r\n }\r\n })\r\n\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n getAllPaymentType(function () {\r\n for (var i in vm.PaymentTypeList) {\r\n if (vm.PaymentTypeList[i].PaymentTypeId === row.PaymentType) {\r\n vm.PaymentType = vm.PaymentTypeList[i].PaymentTypeName\r\n }\r\n }\r\n })\r\n }\r\n\r\n function SendforApproval() {\r\n\r\n\r\n var obj = {\r\n Status: vm.Status,\r\n PurchaseOrderId: vm.PurchaseOrderId,\r\n type: 1\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/PurchaseOrder/POStatus.html',\r\n controller: 'POStatusCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.po = {};\r\n vm.PendingMaterialList = []\r\n vm.SelectPendingMaterialList = [];\r\n vm.TempTotal = [];\r\n getDraftPO(vm.ProjectId)\r\n\r\n }, function () { });\r\n }\r\n\r\n vm.Approve = function () {\r\n var obj = {\r\n Status: vm.Status,\r\n PurchaseOrderId: vm.PurchaseOrderId,\r\n type: 2\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/PurchaseOrder/POStatus.html',\r\n controller: 'POStatusCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n $state.go($rootScope.previousState);\r\n }, function () { });\r\n }\r\n\r\n vm.Reject = function () {\r\n var obj = {\r\n Status: vm.Status,\r\n PurchaseOrderId: vm.PurchaseOrderId,\r\n type: 3\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/PurchaseOrder/POStatus.html',\r\n controller: 'POStatusCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n $state.go($rootScope.previousState);\r\n }, function () { });\r\n }\r\n vm.Resubmit = function () {\r\n var obj = {\r\n Status: vm.Status,\r\n PurchaseOrderId: vm.PurchaseOrderId,\r\n type: 4\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/PurchaseOrder/POStatus.html',\r\n controller: 'POStatusCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n $state.go($rootScope.previousState);\r\n }, function () { });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('PendingForApproval_POCtrl', PendingForApproval_POCtrl);\r\n\r\n /** @ngInject */\r\n function PendingForApproval_POCtrl($http, $filter, $scope, $rootScope, $state, $uibModal, lodash, dialogs, AuthenticationService, CompanyService,\r\n Draft_POService, projectCreationService, POTermsAndConditionService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.getProjectbyCompany = getProjectbyCompany\r\n vm.getDraftPO = getDraftPO\r\n Init();\r\n\r\n function Init() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n getGetAllPOTemplate();\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n\r\n\r\n }\r\n function getGetAllPOTemplate() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n var obj = {\r\n CompanyId: CompanyId,\r\n ActionBy: logggedUser.UserId\r\n }\r\n POTermsAndConditionService.GetAllPOTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TemplateList = res.data;\r\n console.log(vm.TemplateList)\r\n for (var i in vm.TemplateList) {\r\n vm.TemplateList[i].selectTemplate = false\r\n vm.TemplateList[i].Id = vm.TemplateList[i].PO_termsId\r\n vm.PO_termsId = vm.TemplateList[i].Id\r\n console.log(vm.PO_termsId)\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"POTermsAndCondition\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"POTermsAndCondition\");\r\n });\r\n }\r\n vm.selectTemplate = function (Row) {\r\n debugger\r\n\r\n if (Row.selectTemplate) {\r\n for (var i in vm.TemplateList) {\r\n if (vm.TemplateList[i].Title == Row.Title) {\r\n vm.Template = vm.TemplateList[i].Title\r\n vm.url = vm.TemplateList[i].AttachmentUrl\r\n // vm.PO_termsId = vm.TemplateList[i].PO_termsId\r\n }\r\n console.log(vm.Template)\r\n console.log(vm.url)\r\n console.log(vm.PO_termsId)\r\n }\r\n }\r\n else {\r\n vm.Template = null\r\n vm.url = null\r\n }\r\n }\r\n function getProjectbyCompany(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.SelectProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.selectedProjectFilter=null;\r\n }\r\n }\r\n function getDraftPO(ProjectId, callback) {\r\n debugger;\r\n if (ProjectId) {\r\n Draft_POService.GetDraftPO(ProjectId, '2,3').then(function (res) {\r\n if (res.status === 200) {\r\n vm.Draft_POList = res.data;\r\n console.log(vm.Draft_POList)\r\n if (!vm.Draft_POList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Draft_PO available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n vm.ViewPurchaseOrder = function (row) {\r\n var data = {\r\n po: row\r\n }\r\n $state.go('Draft_PO', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('POStatusCtrl', POStatusCtrl);\r\n\r\n /** @ngInject */\r\n function POStatusCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, Draft_POService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n // vm.SaveSpecialNote = function () {\r\n // if (items) {\r\n // items.SpecialNotes = vm.rfq.SpecialNotes\r\n // }\r\n // $uibModalInstance.close(items.SpecialNotes);\r\n // // $state.go('rfqPreparation');\r\n // }\r\n\r\n vm.SaveNote = function () {\r\n var obj = {\r\n Notes: vm.Notes,\r\n PurchaseOrderId: items.PurchaseOrderId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n if (items.type === 1) {\r\n obj.Status = 3;\r\n Draft_POService.SendForApproval(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send For Approval Successfully', \"Draft_PO\");\r\n $uibModalInstance.close();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else if (items.type === 2) {\r\n obj.Status = 4;\r\n Draft_POService.Approved(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Draft_PO\");\r\n $uibModalInstance.close();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else if (items.type === 3) {\r\n obj.Status = 7;\r\n Draft_POService.Reject(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Reject Successfully', \"Draft_PO\");\r\n $uibModalInstance.close();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else if (items.type === 4) {\r\n obj.Status = 2;\r\n Draft_POService.Resubmit(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Resubmitted Successfully', \"Draft_PO\");\r\n $uibModalInstance.close();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('PurchaseHistoryCtrl', PurchaseHistoryCtrl);\r\n\r\n /** @ngInject */\r\n function PurchaseHistoryCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state,\r\n AuthenticationService,Draft_POService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n console.log(items)\r\n vm.Code = items.row.Code\r\n vm.ShortDescription = items.row.ShortDescription\r\n vm.Unit = items.row.Unit\r\n vm.RFQQty = items.row.RFQQty\r\n vm.BalanceQty = items.row.BalanceQty\r\n vm.Total = 0.0\r\n Init();\r\n function Init() {\r\n debugger;\r\n if (items) {\r\n var obj={\r\n IOM_Id:items.IOM_Id,\r\n SupplierId:items.SupplierId,\r\n ProjectId:items.ProjectId\r\n }\r\n Draft_POService.GetPOHistory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.HistoryList = res.data;\r\n console.log(vm.HistoryList)\r\n for(var i in vm.HistoryList){\r\n vm.HistoryList[i].tempQty = vm.HistoryList[i].PurchaseQty\r\n vm.temp = vm.HistoryList[i].tempQty\r\n console.log(vm.temp)\r\n vm.Total += vm.temp\r\n console.log(vm.Total)\r\n }\r\n \r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n\r\n\r\n }\r\n // vm.SaveSpecialNote = function () {\r\n // if (items) {\r\n // items.SpecialNotes = vm.rfq.SpecialNotes\r\n // }\r\n // $uibModalInstance.close(items.SpecialNotes);\r\n // // $state.go('rfqPreparation');\r\n // }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n \r\n vm.viewPicture= function() {\r\n dialogs.notify('Warning', '! There is no picture available ', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n }\r\n vm.SaveHistory = function(){\r\n \r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .controller('SelectLocationCtrl', SelectLocationCtrl);\r\n\r\n /** @ngInject */\r\n function SelectLocationCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, Draft_POService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n console.log(items)\r\n vm.Code = items.row.Code\r\n vm.ShortDescription = items.row.ShortDescription\r\n vm.Unit = items.row.Unit\r\n vm.RFQQty = items.row.RFQQty\r\n // vm.BalanceQty = items.InitialBalanceQty\r\n vm.SelectedLocation = items.SelectedLocation;\r\n vm.isSelectAllOrderQty = items.isSelectAllOrderQty\r\n // vm.TotalOrderQty = items.TotalOrderQty\r\n Init();\r\n function Init() {\r\n if (items) {\r\n Draft_POService.GetOrderQty(items.IOM_Id, items.RfqId).then(function (res) {\r\n if (res.status === 200) {\r\n var NewIOCAList = [];\r\n vm.OldIOCAList = res.data;\r\n lodash.forEach(vm.OldIOCAList, function (e) {\r\n e.isQtySelectedrow = false;\r\n })\r\n for (var j in vm.SelectedLocation) {\r\n for (var i in vm.OldIOCAList) {\r\n if (vm.OldIOCAList[i].LastTierId == vm.SelectedLocation[j].LastTierId) {\r\n vm.OldIOCAList[i].isQtySelectedrow = vm.SelectedLocation[j].isQtySelectedrow;\r\n }\r\n }\r\n }\r\n for (var i in vm.OldIOCAList) {\r\n vm.OldIOCAList[i].IOM_Id = parseInt(items.IOM_Id)\r\n }\r\n var Arr = lodash.filter(vm.OldIOCAList, function (e) {\r\n return e.isQtySelectedrow\r\n });\r\n if (Arr.length > 0) {\r\n vm.isSelectAllOrderQty = true;\r\n }\r\n else\r\n vm.isSelectAllOrderQty = false;\r\n\r\n vm.BalanceQty = lodash.sumBy(lodash.filter(vm.OldIOCAList, function (obj) {\r\n return !obj.isQtySelectedrow\r\n }), function (e) {\r\n return e.MaterialQty\r\n })\r\n\r\n vm.TotalOrderQty = lodash.sumBy(lodash.filter(vm.OldIOCAList, function (obj) {\r\n return obj.isQtySelectedrow\r\n }), function (e) {\r\n return e.MaterialQty\r\n })\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Draft_PO\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Draft_PO\");\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n vm.select = function (row, value) {\r\n\r\n if (row.isQtySelectedrow) {\r\n vm.TotalOrderQty += row.MaterialQty\r\n vm.BalanceQty = (parseFloat(vm.BalanceQty) > parseFloat(row.MaterialQty)) ? parseFloat(vm.BalanceQty) - parseFloat(row.MaterialQty) : parseFloat(row.MaterialQty) - parseFloat(vm.BalanceQty);\r\n }\r\n else {\r\n vm.TotalOrderQty = (parseFloat(vm.TotalOrderQty) > parseFloat(row.MaterialQty)) ? parseFloat(vm.TotalOrderQty) - parseFloat(row.MaterialQty) : parseFloat(row.MaterialQty) - parseFloat(vm.TotalOrderQty);\r\n vm.BalanceQty += row.MaterialQty\r\n }\r\n\r\n var Arr = lodash.filter(value, function (e) {\r\n return e.isQtySelectedrow\r\n })\r\n\r\n if (Arr.length > 0) {\r\n vm.isSelectAllOrderQty = true;\r\n }\r\n else {\r\n vm.isSelectAllOrderQty = false;\r\n }\r\n\r\n };\r\n vm.selectAll = function () {\r\n if (vm.isSelectAllOrderQty) {\r\n vm.TotalOrderQty = 0.0;\r\n for (var i in vm.OldIOCAList) {\r\n vm.OldIOCAList[i].isQtySelectedrow = vm.isSelectAllOrderQty\r\n vm.TotalOrderQty += vm.OldIOCAList[i].MaterialQty\r\n vm.BalanceQty = (parseFloat(vm.BalanceQty) > parseFloat(vm.OldIOCAList[i].MaterialQty)) ? parseFloat(vm.BalanceQty) - parseFloat(vm.OldIOCAList[i].MaterialQty) : parseFloat(vm.OldIOCAList[i].MaterialQty) - parseFloat(vm.BalanceQty);\r\n }\r\n }\r\n else {\r\n vm.BalanceQty = 0.0;\r\n for (var i in vm.OldIOCAList) {\r\n vm.OldIOCAList[i].isQtySelectedrow = false\r\n vm.TotalOrderQty = (parseFloat(vm.TotalOrderQty) > parseFloat(vm.OldIOCAList[i].MaterialQty)) ? parseFloat(vm.TotalOrderQty) - parseFloat(vm.OldIOCAList[i].MaterialQty) : parseFloat(vm.OldIOCAList[i].MaterialQty) - parseFloat(vm.TotalOrderQty);\r\n vm.BalanceQty += vm.OldIOCAList[i].MaterialQty\r\n }\r\n\r\n }\r\n }\r\n vm.AddtoPurchase = function () {\r\n var Arr = [];\r\n\r\n for (var i in vm.OldIOCAList) {\r\n if (vm.OldIOCAList[i].isQtySelectedrow) {\r\n Arr.push({\r\n IOCA_Id: vm.OldIOCAList[i].IOCA_Id,\r\n LastTierId: vm.OldIOCAList[i].LastTierId,\r\n IOM_Id: vm.OldIOCAList[i].IOM_Id,\r\n PurchaseQty: vm.OldIOCAList[i].MaterialQty,\r\n isQtySelectedrow: vm.OldIOCAList[i].isQtySelectedrow,\r\n IndentId: vm.OldIOCAList[i].IndentId\r\n })\r\n }\r\n }\r\n\r\n var selectedItem = {\r\n PurchaseQty: vm.TotalOrderQty,\r\n SelectedLocation: Arr,\r\n isSelectAllOrderQty: (vm.isSelectAllOrderQty == undefined) ? false : vm.isSelectAllOrderQty\r\n }\r\n if (items) {\r\n items.selectedItem = selectedItem\r\n }\r\n $uibModalInstance.close(items);\r\n $state.go('Draft_PO');\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n vm.viewPicture = function () {\r\n dialogs.notify('Warning', '! There is no picture available ', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n }\r\n\r\n }\r\n})();\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectStatus')\r\n .controller('ProjectStatusCtrl', ProjectStatusCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectStatusCtrl($http, $rootScope, lodash, dialogs, AuthenticationService, $scope, ProjectStatusService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = logggedUser.SelectedCompany.CompanyId;\r\n vm.getAllConsolidateProjectStatus = getAllConsolidateProjectStatus;\r\n Init()\r\n\r\n function Init() {\r\n vm.TypeofWorkList = [{ TypeofWorkName: 'CONSTRUCTION' }, { TypeofWorkName: 'MAINTENTANCE' }]\r\n }\r\n\r\n\r\n getAllConsolidateProjectStatus();\r\n\r\n\r\n function getAllConsolidateProjectStatus() {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n ActionBy: logggedUser.UserId\r\n }\r\n ProjectStatusService.getAllConsolidateProjectStatus(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectStatusList = JSON.parse(res.data.ProjectCost);\r\n\r\n lodash.forEach(vm.ProjectStatusList, function (e) {\r\n e.BalanceWork = parseFloat(e.TotalWork - e.CompletedWork).toFixed(2)\r\n })\r\n var temp = [];\r\n var temp = lodash.groupBy(vm.ProjectStatusList, 'City')\r\n\r\n var temp1 = [];\r\n lodash.map(temp, function (key, value) {\r\n temp1.push({\r\n Circle: value,\r\n CompletedWork: lodash.sumBy(key, 'CompletedWork'),\r\n BalanceWork: lodash.sumBy(key, 'BalanceWork'),\r\n TotalWork: lodash.sumBy(key, 'TotalWork'),\r\n Taluk: lodash.groupBy(key, 'Taluk'),\r\n Divison: []\r\n })\r\n })\r\n\r\n lodash.forEach(temp1, function (e) {\r\n lodash.map(e.Taluk, function (key, value) {\r\n e.Divison.push({\r\n Divison: value,\r\n CompletedWork: lodash.sumBy(key, 'CompletedWork'),\r\n BalanceWork: lodash.sumBy(key, 'BalanceWork'),\r\n TotalWork: lodash.sumBy(key, 'TotalWork'),\r\n Area: lodash.groupBy(key, 'Area'),\r\n SubDivison: []\r\n })\r\n })\r\n })\r\n\r\n lodash.forEach(temp1, function (e) {\r\n lodash.forEach(e.Divison, function (o) {\r\n lodash.map(o.Area, function (key, value) {\r\n o.SubDivison.push({\r\n SubDivison: value,\r\n CompletedWork: lodash.sumBy(key, 'CompletedWork'),\r\n BalanceWork: lodash.sumBy(key, 'BalanceWork'),\r\n TotalWork: lodash.sumBy(key, 'TotalWork'),\r\n ProjectList: key\r\n })\r\n })\r\n })\r\n })\r\n\r\n vm.ConsolidateList = temp1;\r\n\r\n console.log(temp1)\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Status\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Status\");\r\n });\r\n }\r\n\r\n\r\n // vm.ProjectStatusList = [{\r\n // ProjectName: 'Marketing Office & Mock up Flat', ProjectId: 1, CompletedWork: 25000.0, BalanceWork: 25000.00, TotalWork: 50000.00,\r\n // City: 'Chennai', Taluk: 'Guindy', Area: 'Saidapet'\r\n // }, {\r\n // ProjectName: 'RAO RESIDNETS', ProjectId: 2, CompletedWork: 24500.0, BalanceWork: 30000.00, TotalWork: 54500.00,\r\n // City: 'Chennai', Taluk: 'Guindy', Area: 'Saidapet'\r\n // }, {\r\n // ProjectName: 'SRI HARI Multistorey Building', ProjectId: 3, CompletedWork: 50000.0, BalanceWork: 20000.00, TotalWork: 70000.00,\r\n // City: 'Chennai', Taluk: 'Guindy', Area: 'T.Nagar'\r\n // }, {\r\n // ProjectName: 'Green Acres - Test project', ProjectId: 4, CompletedWork: 75000.0, BalanceWork: 25000.00, TotalWork: 100000.00,\r\n // City: 'Chennai', Taluk: 'KK Nager', Area: 'Ekkatuthangal'\r\n // }, {\r\n // ProjectName: 'SKYWALK Apartments', ProjectId: 5, CompletedWork: 30000.0, BalanceWork: 25000.00, TotalWork: 55000.00,\r\n // City: 'Chennai', Taluk: 'Velachery', Area: 'VijayaNagar'\r\n // }, {\r\n // ProjectName: 'Sarojini Green Park -Phase 1', ProjectId: 6, CompletedWork: 55000.0, BalanceWork: 25000.00, TotalWork: 80000.00,\r\n // City: 'Chennai', Taluk: 'Velachery', Area: 'VijayaNagar'\r\n // }, {\r\n // ProjectName: 'VG APARTMENT TEST PROJECTS', ProjectId: 7, CompletedWork: 55000.0, BalanceWork: 25000.00, TotalWork: 80000.00,\r\n // City: 'Trichy', Taluk: 'Srirangam', Area: 'Alundur'\r\n // }, {\r\n // ProjectName: 'ABC Green Park', ProjectId: 8, CompletedWork: 55000.0, BalanceWork: 25000.00, TotalWork: 80000.00,\r\n // City: 'Trichy', Taluk: 'Srirangam', Area: 'Adavathur'\r\n // }, {\r\n // ProjectName: 'Sri Devi Villa Test Project', ProjectId: 9, CompletedWork: 55000.0, BalanceWork: 25000.00, TotalWork: 80000.00,\r\n // City: 'Trichy', Taluk: 'Srirangam', Area: 'Allur'\r\n // }]\r\n\r\n\r\n\r\n\r\n\r\n vm.expandAll = function (expanded) {\r\n // $scope is required here, hence the injection above, even though we're using \"controller as\" syntax\r\n $scope.$broadcast('onExpandAll', {\r\n expanded: expanded\r\n });\r\n };\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.RFQTemplates')\r\n .controller('RFQGenerateTemplateCtrl', RFQGenerateTemplateCtrl);\r\n\r\n /** @ngInject */\r\n function RFQGenerateTemplateCtrl($rootScope, lodash, dialogs, $http, AuthenticationService, CountryService, RFQTemplateService, RFQRequiredTemplateService, RFQContentTemplateService, FieldofConstructionService, CategoryofCAService, SubCategoryofCAService, $scope, RFQService,\r\n projectCreationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n // Pagination code For Require\r\n vm.rowCountOptionsRequire = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRowsRequire = vm.rowCountOptionsRequire[0];\r\n\r\n vm.currentPageRequire = 1;\r\n vm.rembemberCurrentPageRequire = function (num) {\r\n vm.currentPageRequire = num;\r\n }\r\n // End of Pagination code\r\n // Pagination code For Require\r\n vm.rowCountOptionsRequireContent = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRowsContent = vm.rowCountOptionsRequireContent[0];\r\n\r\n vm.currentPageContent = 1;\r\n vm.rembemberCurrentPageContent = function (num) {\r\n vm.currentPageContent = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isConEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //Method\r\n $scope.photoChanged = photoChanged;\r\n vm.Create = Create;\r\n vm.AddTemplate = AddTemplate;\r\n vm.ExitTemplate = ExitTemplate;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.rfqTemplate = {};\r\n vm.SaveRFQTemplate = SaveRFQTemplate;\r\n $scope.formData = new FormData();\r\n var rfqTemplate = 4\r\n vm.isAddTemplate = false;\r\n vm.RequiredTemplateList = [];\r\n vm.ContentList = [];\r\n\r\n vm.isGridEdit = false;\r\n vm.isReqEdit = false;\r\n vm.isContentEdit = false;\r\n vm.getRFQByProject = getRFQByProject;\r\n vm.GetallContent = GetallContent;\r\n vm.getCopyTemplate = getCopyTemplate;\r\n vm.getCopyAllTemplate = getCopyAllTemplate;\r\n vm.getCopyTypeBill = getCopyTypeBill;\r\n vm.getCopyCountry = getCopyCountry;\r\n vm.getCopyActiveFoc = getCopyActiveFoc;\r\n // vm.RemoveContentTemplate = RemoveContentTemplate; \r\n vm.getCopyCategoryListByFoc = getCopyCategoryListByFoc;\r\n vm.getcopySubCategoryListByCategory = getcopySubCategoryListByCategory;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n // vm.RFQTemplateList = [{ RFQTemplateName: 'Template1', TemplateId: 1 }, { RFQTemplateName: 'Template2', TemplateId: 2 }, { RFQTemplateName: 'Template3', TemplateId: 3 }, { RFQTemplateName: 'Template4', TemplateId: 4 }]\r\n\r\n function Init() {\r\n GetProject();\r\n getCopyRfqType();\r\n getAllRFQTemplate();\r\n getCopyAllTemplate();\r\n getCopyTypeBill();\r\n getCopyCountry();\r\n getCopyActiveFoc();\r\n }\r\n\r\n function GetProject() {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n function getRFQByProject(ProjectId, callBack) {\r\n RFQTemplateService.getRfqByProject(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfQMasterList = res.data;\r\n vm.isLoading = false;\r\n }\r\n\r\n if (callBack) {\r\n callBack();\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n\r\n }\r\n\r\n function getAllRFQTemplate(callBack) {\r\n RFQTemplateService.GetAllRfqGenerateTemplate().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllTemplateList = res.data;\r\n cancel();\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n function getCopyRfqType() {\r\n vm.CopyrfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.rfqTemplate.selectedTemplate = null;\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.rfqTemplate.selectedCountry = null;\r\n vm.rfqTemplate.selectedFOC = null;\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n }\r\n function getCopyAllTemplate() {\r\n vm.CopyTemplateList = [{ TemplatelistName: 'Field of Construction', TempId: 1 }, { TemplatelistName: 'Category of CA', TempId: 2 }, { TemplatelistName: 'SubCategory of CA', TempId: 3 }]\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.rfqTemplate.selectedCountry = null;\r\n vm.rfqTemplate.selectedFOC = null;\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n }\r\n function getCopyTypeBill() {\r\n vm.CopyTypeofBillist = [{ TypeofBillName: 'Weekly', BillId: 1 }, { TypeofBillName: 'Monthly', BillId: 2 }, { TypeofBillName: 'FortNight', BillId: 3 }, { TypeofBillName: 'Stage Wise Payment', BillId: 4 }, { TypeofBillName: 'Daily', BillId: 5 }]\r\n vm.rfqTemplate.selectedCountry = null;\r\n vm.rfqTemplate.selectedFOC = null;\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n }\r\n function getCopyActiveFoc() {\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopyfocList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n function getCopyCountry() {\r\n vm.rfqTemplate.selectedFOC = null;\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n CountryService.getAllCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopyCountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n vm.getTemplate = function (TemplateId, callBack) {\r\n RFQTemplateService.getAllRFQTemplate(TemplateId).then(function (res) {\r\n if (res.status === 200) { \r\n vm.RFQexistTemplatelist = res.data;\r\n vm.ContentList = vm.RFQexistTemplatelist.ContentEntity;\r\n vm.RequiredTemplateList = vm.RFQexistTemplatelist.RequiredValue;\r\n for (var i in vm.ContentList) {\r\n vm.ContentList[i].isAdd = true;\r\n }\r\n\r\n vm.isLoading = false;\r\n vm.isAddTemplate = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n\r\n vm.getGenTemplate = function (GenId, callBack) {\r\n RFQTemplateService.GetGenerateTemplateByRfqGenId(GenId).then(function (res) {\r\n if (res.status === 200) { \r\n vm.RFQexistTemplatelist = res.data;\r\n vm.ContentList = vm.RFQexistTemplatelist.ContentList;\r\n vm.RequiredList = JSON.parse(vm.RFQexistTemplatelist.RFQGenerateTemplate.TemplateValues);\r\n vm.isAddTemplate = true;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n function photoChanged(event) {\r\n vm.Templatefiles = [];\r\n vm.Templatefiles = event.target.files[0];\r\n $scope.formData.append('WordDoc', event.target.files[0]);\r\n }\r\n function SaveRFQTemplate() {\r\n\r\n var ReqArr = {\r\n \"RequiredList\": []\r\n }\r\n\r\n for (var i in vm.RequiredTemplateList) {\r\n ReqArr.RequiredList.push(\r\n {\r\n RequiredId: vm.RequiredTemplateList[i].RequiredId,\r\n TemplateValue: vm.RequiredTemplateList[i].TemplateValue,\r\n Values: vm.RequiredTemplateList[i].Values\r\n }\r\n )\r\n }\r\n\r\n var rfqTemplate = {\r\n ProjectId: vm.rfqTemplate.selectedProject.ProjectId,\r\n RfqId: vm.rfqTemplate.selectedRFQ.RfqId,\r\n RfqTempId: vm.rfqTemplate.selectedRFQTemplate.RfQTempId,\r\n DocumentPath: \"\",\r\n TemplateValues: JSON.stringify(ReqArr),\r\n CreatedBy: loggedUser.UserId\r\n }\r\n\r\n rfqTemplate.ContentList = vm.ContentList;\r\n RFQTemplateService.AddRFQGenerateTemplate(rfqTemplate).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Rfq Generate Template\");\r\n getAllRFQTemplate()\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Rfq Generate Template\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n function getCopyCategoryListByFoc(CountryId, FieldofConstructionId) {\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 2 || vm.rfqTemplate.selectedTemplate.TempId === 3) {\r\n if (FieldofConstructionId) {\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n var obj = {\r\n CountryId: CountryId,\r\n FieldofConstructionId: FieldofConstructionId\r\n }\r\n RFQTemplateService.getCatgeoryListByFieldofCostructionId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopyCategoryList = res.data;\r\n if (vm.CopyCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category available for ' + vm.rfqTemplate.selectedFOC.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n getCopyTemplate();\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n else {\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n\r\n }\r\n }\r\n else {\r\n getCopyTemplate();\r\n }\r\n }\r\n function getcopySubCategoryListByCategory(CategoryId) {\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 3) {\r\n if (CategoryId) {\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n\r\n RFQTemplateService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopySubCategoryList = res.data;\r\n if (vm.CopySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Sub Category available for ' + vm.rfqTemplate.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n getCopyTemplate();\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n else {\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n\r\n }\r\n }\r\n else {\r\n getCopyTemplate();\r\n }\r\n\r\n }\r\n vm.clear = function () {\r\n vm.rfqTemplate.selectedContractor = null;\r\n vm.rfqTemplate.TitleName = null;\r\n vm.Note = null;\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n\r\n\r\n vm.rfqTemplate.selectedFOC = null;\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n }\r\n function getCopyTemplate(obj, callBack) {\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n if (!vm.isGridEdit) {\r\n var obj = {\r\n RfqTypeCode: vm.rfqTemplate.selectedRFQType.Code,\r\n TempId: vm.rfqTemplate.selectedTemplate.TempId,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n FieldofConstructionId: (vm.rfqTemplate.selectedFOC != undefined) ? vm.rfqTemplate.selectedFOC.FieldofConstructionId : null,\r\n CategoryId: (vm.rfqTemplate.selectedCategory != undefined) ? vm.rfqTemplate.selectedCategory.CategoryId : null,\r\n SubCategoryId: (vm.rfqTemplate.selectedSubCategory != undefined) ? vm.rfqTemplate.selectedSubCategory.SubCategoryId : null,\r\n ActionBy: 1\r\n }\r\n }\r\n else {\r\n var obj = obj;\r\n // var obj = {\r\n // RfqTypeId: rfqTypeId,\r\n // TempId: TempId,\r\n // BillId: BillId,\r\n // FieldofConstructionId: (FieldofConstructionId != 0) ? FieldofConstructionId : null,\r\n // CategoryId: (CategoryId != undefined) ? CategoryId : null,\r\n // SubCategoryId: (SubCategoryId != undefined) ? SubCategoryId : null,\r\n // ActionBy: 1\r\n // }\r\n\r\n }\r\n RFQTemplateService.getCopyTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RFQTemplateList = res.data;\r\n vm.isAddTemplate = true;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n\r\n }\r\n function GetallContent(rfqTemplate) {\r\n RFQContentTemplateService.getAllContentTemplate(rfqTemplate).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContentList = res.data;\r\n if (vm.isGridEdit) {\r\n for (var i in vm.ContentList) {\r\n vm.ContentList[i].isEdit = true;\r\n }\r\n }\r\n vm.isLoading = false;\r\n // getAllRequiredTemplate();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n function getAllRequiredTemplate(rfqTemplate) {\r\n RFQRequiredTemplateService.getAllRequiredTemplate(rfqTemplate).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RequiredTemplateList = res.data;\r\n if (vm.isGridEdit) {\r\n for (var i in vm.RequiredTemplateList) {\r\n vm.RequiredTemplateList[i].isEdit = true;\r\n }\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n\r\n vm.UpdateRequireTemplate = function () {\r\n var ReqArr = {\r\n \"RequiredList\": []\r\n }\r\n for (var i in vm.RequiredTemplateList) {\r\n ReqArr.RequiredList.push(\r\n {\r\n RequiredId: vm.RequiredTemplateList[i].RequiredId,\r\n TemplateValue: vm.RequiredTemplateList[i].TemplateValue,\r\n Values: vm.RequiredTemplateList[i].Values\r\n }\r\n )\r\n }\r\n var obj = {\r\n RfqGenId: vm.rfqTemplate.RfqGenId,\r\n TemplateValues: JSON.stringify(ReqArr),\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n RFQTemplateService.UpdateRequireTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Required Generate Template\", \"Success\");\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.editContentTemplate = function (row) {\r\n debugger;\r\n vm.rfqTemplate.ContentTitle = row.ContentTitle\r\n vm.rfqTemplate.ContentDescription = row.Description\r\n vm.rfqTemplate.RfqConId = row.RfqConId\r\n vm.isContentEdit = true;\r\n vm.isAddTemplate = false;\r\n }\r\n vm.ModifyContentTemplate = function () {\r\n var obj = {\r\n RfqConId: vm.rfqTemplate.RfqConId,\r\n Description: vm.rfqTemplate.ContentDescription,\r\n ContentTitle: vm.rfqTemplate.ContentTitle,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n RFQTemplateService.UpdateContentTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Content Template Updated successfully\", \"Success\");\r\n GetallContent(vm.rfqTemplate.RfQTempId);\r\n vm.isContentEdit = false;\r\n obj = {};\r\n\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n\r\n vm.removeContentTemplate = function (item) {\r\n if (!vm.isGridEdit) {\r\n var index = vm.ContentList.indexOf(item);\r\n vm.ContentList.splice(index, 1);\r\n }\r\n else {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n RFQTemplateService.removeGenContentTemplate(item.RfqConId).then(function (res) {\r\n if (res.status === 200 && res.data) {\r\n $rootScope.showToaster('success', 'Content detail deleted successfully.', \"Success\");\r\n GetallContent(item.RfQTempId);\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n });\r\n });\r\n }\r\n }\r\n vm.AddContentTemplate = function () {\r\n if (!vm.isGridEdit) {\r\n var obj = {\r\n ContentTitle: vm.rfqTemplate.ContentTitle,\r\n Description: vm.rfqTemplate.ContentDescription\r\n }\r\n\r\n vm.ContentList.push(obj)\r\n vm.rfqTemplate.ContentTitle = null;\r\n vm.rfqTemplate.ContentTitle = [];\r\n vm.rfqTemplate.ContentDescription = null;\r\n vm.rfqTemplate.ContentDescription = [];\r\n }\r\n else {\r\n var obj = {\r\n RfQTempId: vm.rfqTemplate.RfQTempId,\r\n Description: vm.rfqTemplate.ContentDescription,\r\n ContentTitle: vm.rfqTemplate.ContentTitle,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n RFQContentTemplateService.AddContentTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Required Template added successfully\", \"Success\");\r\n GetallContent(obj.RfQTempId);\r\n obj = {};\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n }\r\n vm.editRFQGenerateTemplate = function (row) {\r\n vm.isFormOpen = true;\r\n vm.isGridEdit = true;\r\n vm.rfqTemplate.RfqGenId = row.RfqGenId;\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === row.ProjectId) {\r\n vm.rfqTemplate.selectedProject = vm.ProjectList[i]\r\n }\r\n }\r\n getRFQByProject(row.ProjectId, function () {\r\n for (var i in vm.RfQMasterList) {\r\n if (vm.RfQMasterList[i].RfqId === row.RfqId) {\r\n vm.rfqTemplate.selectedRFQ = vm.RfQMasterList[i]\r\n }\r\n }\r\n });\r\n\r\n for (var i in vm.CopyCountryList) {\r\n if (vm.CopyCountryList[i].CountryId === 5) {\r\n vm.rfqTemplate.selectedCountry = vm.CopyCountryList[i];\r\n }\r\n }\r\n\r\n\r\n for (var i in vm.CopyrfqTypeList) {\r\n if (vm.CopyrfqTypeList[i].Code === row.RfqTypeCode) {\r\n vm.rfqTemplate.selectedRFQType = vm.CopyrfqTypeList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.CopyTemplateList) {\r\n if (vm.CopyTemplateList[i].TempId === row.TempId) {\r\n vm.rfqTemplate.selectedTemplate = vm.CopyTemplateList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.CopyTypeofBillist) {\r\n if (vm.CopyTypeofBillist[i].BillId === row.BillId) {\r\n vm.rfqTemplate.selectedTypeofbill = vm.CopyTypeofBillist[i]\r\n }\r\n }\r\n\r\n for (var i in vm.CopyfocList) {\r\n if (vm.CopyfocList[i].FieldofConstructionId === row.FieldofConstructionId) {\r\n vm.rfqTemplate.selectedFOC = vm.CopyfocList[i];\r\n }\r\n }\r\n\r\n\r\n if (row.TempId === 2 || row.TempId === 3) {\r\n getCopyCategoryListByFoc(5, row.FieldofConstructionId, function () {\r\n for (var i in vm.CopyCategoryList) {\r\n if (vm.CopyCategoryList[i].CategoryId === row.CategoryId) {\r\n vm.rfqTemplate.selectedCategory = vm.CopyCategoryList[i];\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (row.TempId === 3) {\r\n getcopySubCategoryListByCategory(row.CategoryId, function () {\r\n for (var i in vm.CopySubCategoryList) {\r\n if (vm.CopySubCategoryList[i].SubCategoryId === row.SubCategoryId) {\r\n vm.rfqTemplate.selectedSubCategory = vm.CopySubCategoryList[i]\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.getGenTemplate(row.RfqGenId, function () {\r\n vm.ContentList = vm.ContentList\r\n vm.RequiredTemplateList = vm.RequiredList.RequiredList\r\n\r\n });\r\n\r\n var obj = {\r\n RfqTypeCode: row.RfqTypeCode,\r\n TempId: row.TempId,\r\n BillId: row.BillId,\r\n FieldofConstructionId: (row.FieldofConstructionId != null) ? row.FieldofConstructionId : null,\r\n CategoryId: (row.CategoryId != null) ? row.CategoryId : null,\r\n SubCategoryId: (row.SubCategoryId != null) ? row.SubCategoryId : null,\r\n ActionBy:loggedUser.UserId\r\n }\r\n\r\n getCopyTemplate(obj, function () {\r\n for (var i in vm.RFQTemplateList) {\r\n if (vm.RFQTemplateList[i].RfQTempId === row.RfqTempId) {\r\n vm.rfqTemplate.selectedRFQTemplate = vm.RFQTemplateList[i]\r\n }\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.CancelContentTemplate = function () {\r\n vm.rfqTemplate.ContentTitle = null;\r\n vm.rfqTemplate.ContentDescription = null;\r\n vm.isContentEdit = false;\r\n vm.isAddTemplate = true;\r\n }\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.isGridEdit = false;\r\n vm.isAddTemplate = true;\r\n vm.rfqTemplate = {};\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n }\r\n function AddTemplate() {\r\n vm.isAddTemplate = false;\r\n\r\n }\r\n function ExitTemplate() {\r\n vm.isAddTemplate = true;\r\n\r\n }\r\n function cancel() {\r\n\r\n vm.Account = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isGridEdit = false;\r\n vm.isAddTemplate = false;\r\n vm.rfqTemplate = {};\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n }\r\n function resetForm() {\r\n vm.AccountForm.$setUntouched();\r\n }\r\n }\r\n\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.RFQTemplates')\r\n .controller('RFQTemplateCtrl', RFQTemplateCtrl);\r\n\r\n /** @ngInject */\r\n function RFQTemplateCtrl($rootScope, lodash, dialogs, $http, AuthenticationService, CountryService, RFQTemplateService, RFQRequiredTemplateService, RFQContentTemplateService, FieldofConstructionService, CategoryofCAService, SubCategoryofCAService, $scope, RFQService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n // Pagination code For Require \r\n vm.noOfRowsRequire = vm.rowCountOptions[0];\r\n\r\n vm.currentPageRequire = 1;\r\n vm.rembemberCurrentPageRequire = function (num) {\r\n vm.currentPageRequire = num;\r\n }\r\n // End of Pagination code\r\n // Pagination code For Require \r\n vm.noOfRowsContent = vm.rowCountOptions[0];\r\n vm.currentPageContent = 1;\r\n vm.rembemberCurrentPageContent = function (num) {\r\n vm.currentPageContent = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isConEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //Method\r\n $scope.photoChanged = photoChanged;\r\n vm.Create = Create;\r\n vm.AddTemplate = AddTemplate;\r\n vm.cancel = cancel;\r\n vm.back = back;\r\n vm.resetForm = resetForm;\r\n vm.getTemplate = getTemplate;\r\n vm.AddContentTemplate = AddContentTemplate;\r\n vm.rfqTemplate = {};\r\n vm.SaveRFQTemplate = SaveRFQTemplate;\r\n $scope.formData = new FormData();\r\n var rfqTemplate = 4\r\n vm.isAddTemplate = true;\r\n vm.RequiredTemplateList = [];\r\n vm.ContentList = [];\r\n\r\n vm.isGridEdit = false;\r\n vm.isReqEdit = false;\r\n vm.isContentEdit = false;\r\n\r\n vm.GetallContent = GetallContent;\r\n vm.getCopyTemplate = getCopyTemplate;\r\n vm.getCopyAllTemplate = getCopyAllTemplate;\r\n vm.getCopyTypeBill = getCopyTypeBill;\r\n vm.getCopyCountry = getCopyCountry;\r\n vm.getCopyRfqType = getCopyRfqType;\r\n vm.getCopyActiveFoc = getCopyActiveFoc;\r\n vm.EditRequiredTemplate = EditRequiredTemplate;\r\n vm.ModifyRequiredTemplate = ModifyRequiredTemplate;\r\n vm.removeContentTemplate = removeContentTemplate;\r\n vm.RemoveRequiredTemplate = RemoveRequiredTemplate;\r\n // vm.RemoveContentTemplate = RemoveContentTemplate;\r\n vm.GetRfqType = GetRfqType;\r\n vm.getCopyTypeofContract = getCopyTypeofContract;\r\n vm.AddRequiredTemplate = AddRequiredTemplate;\r\n // vm.getAllTemplate = getAllTemplate;\r\n vm.getTypeBill = getTypeBill;\r\n vm.getActiveFoc = getActiveFoc;\r\n vm.ModifyContentTemplate = ModifyContentTemplate;\r\n vm.getAllCountry = getAllCountry;\r\n vm.editContentTemplate = editContentTemplate;\r\n vm.editRFQTemplate = editRFQTemplate;\r\n vm.getSubcategorylistbyCategoryId = getSubcategorylistbyCategoryId;\r\n vm.getCatgeoryListByFieldofCostructionId = getCatgeoryListByFieldofCostructionId;\r\n vm.getAllRequiredTemplate = getAllRequiredTemplate;\r\n vm.getCopyCategoryListByFoc = getCopyCategoryListByFoc;\r\n vm.RemoveRFQTemplate = RemoveRFQTemplate;\r\n vm.getcopySubCategoryListByCategory = getcopySubCategoryListByCategory;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init();\r\n\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }];\r\n\r\n function Init(callback) {\r\n RFQTemplateService.getAllTemplate().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllTemplateList = res.data;\r\n for (var i in vm.AllTemplateList) {\r\n for (var j in vm.rfqTypeList) {\r\n if (vm.AllTemplateList[i].rfqTypeCode == vm.rfqTypeList[j].Code) {\r\n vm.AllTemplateList[i].rfqTypeName = vm.rfqTypeList[j].rfqTypeName\r\n }\r\n }\r\n }\r\n for (var i in vm.AllTemplateList) {\r\n for (var j in vm.TemplateList) {\r\n if (vm.AllTemplateList[i].TempId == 1) {\r\n if (vm.AllTemplateList[i].TempId == vm.TemplateList[j].TempId) {\r\n vm.AllTemplateList[i].TemplatelistName = vm.TemplateList[j].TemplatelistName + '/' + vm.AllTemplateList[i].FieldofConstructionName\r\n }\r\n } else if (vm.AllTemplateList[i].TempId == 2) {\r\n if (vm.AllTemplateList[i].TempId == vm.TemplateList[j].TempId) {\r\n vm.AllTemplateList[i].TemplatelistName = vm.TemplateList[j].TemplatelistName + '/' + vm.AllTemplateList[i].CategoryName\r\n }\r\n }\r\n else {\r\n if (vm.AllTemplateList[i].TempId == vm.TemplateList[j].TempId) {\r\n vm.AllTemplateList[i].TemplatelistName = vm.TemplateList[j].TemplatelistName + '/' + vm.AllTemplateList[i].SubCategoryName\r\n }\r\n }\r\n\r\n }\r\n }\r\n for (var i in vm.AllTemplateList) {\r\n for (var j in vm.TypeofBillist) {\r\n if (vm.AllTemplateList[i].BillId == vm.TypeofBillist[j].BillId) {\r\n vm.AllTemplateList[i].TypeofBillName = vm.TypeofBillist[j].TypeofBillName\r\n }\r\n }\r\n }\r\n back();\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Template Master\");\r\n });\r\n getAllCountry();\r\n getCopyCountry();\r\n\r\n }\r\n\r\n function getAllCountry() {\r\n clearCountry();\r\n CountryService.getActiveCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n // if(callback);\r\n // callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n GetRfqType();\r\n }\r\n function GetRfqType() {\r\n clearRfqType();\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n getAllTemplate();\r\n }\r\n\r\n function getAllTemplate() {\r\n clearTemplateFor();\r\n vm.TemplateList = [{ TemplatelistName: 'Field of Construction', TempId: 1 }, { TemplatelistName: 'Category of CA', TempId: 2 }, { TemplatelistName: 'SubCategory of CA', TempId: 3 }]\r\n getTypeBill();\r\n }\r\n\r\n function getTypeBill() {\r\n clearBill();\r\n vm.TypeofBillist = [{ TypeofBillName: 'Weekly', BillId: 1 }, { TypeofBillName: 'Monthly', BillId: 2 }, { TypeofBillName: 'Periodic', BillId: 3 }, { TypeofBillName: 'Stage Wise Payment', BillId: 4 }, { TypeofBillName: 'Daily', BillId: 5 }]\r\n\r\n }\r\n\r\n function getActiveFoc(callback) {\r\n clearFoc();\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n if (callback);\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n function getCatgeoryListByFieldofCostructionId(CountryId, FieldofConstructionId, callBack) {\r\n clearCategory();\r\n if (vm.rfqTemplate.selectedTemplateName.TempId === 2 || vm.rfqTemplate.selectedTemplateName.TempId === 3) {\r\n if (FieldofConstructionId) {\r\n\r\n vm.Note = null;\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n var obj = {\r\n CountryId: CountryId,\r\n FieldofConstructionId: FieldofConstructionId\r\n }\r\n RFQTemplateService.getCatgeoryListByFieldofCostructionId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category available for ' + vm.rfqTemplate.selectedFOCName.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n else {\r\n\r\n vm.Note = null;\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n function getSubcategorylistbyCategoryId(CategoryId, callBack) {\r\n clearSubcategory();\r\n if (vm.rfqTemplate.selectedTemplateName.TempId == 3) {\r\n if (CategoryId) {\r\n\r\n vm.Note = null;\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n RFQTemplateService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Sub Category available for ' + vm.rfqTemplate.selectedCategoryName.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n\r\n }\r\n else {\r\n vm.Note = null;\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n }\r\n }\r\n }\r\n\r\n function getTemplate(TemplateId, callBack) {\r\n RFQTemplateService.getAllRFQTemplate(TemplateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RFQexistTemplatelist = res.data;\r\n vm.ContentList = vm.RFQexistTemplatelist.ContentEntity;\r\n vm.RequiredTemplateList = vm.RFQexistTemplatelist.RequiredValue;\r\n vm.isLoading = false;\r\n vm.isAddTemplate = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Template\");\r\n });\r\n }\r\n\r\n function getCopyCountry() {\r\n clearCopyCountry();\r\n CountryService.getActiveCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopyCountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function getCopyRfqType() {\r\n clearCopyRfqType();\r\n vm.CopyrfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'All of the above',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n\r\n }\r\n\r\n function getCopyAllTemplate() {\r\n clearCopyTemplateFor();\r\n vm.CopyTemplateList = [{ TemplatelistName: 'Field of Construction', TempId: 1 }, { TemplatelistName: 'Category of CA', TempId: 2 }, { TemplatelistName: 'SubCategory of CA', TempId: 3 }]\r\n // getCopyTypeBill();\r\n }\r\n\r\n function getCopyTypeBill() {\r\n clearCopyBill();\r\n vm.CopyTypeofBillist = [{ TypeofBillName: 'Weekly', BillId: 1 }, { TypeofBillName: 'Monthly', BillId: 2 }, { TypeofBillName: 'Periodic', BillId: 3 }, { TypeofBillName: 'Stage Wise Payment', BillId: 4 }]\r\n // getCopyActiveFoc(); \r\n }\r\n\r\n function getCopyActiveFoc() {\r\n clearCopyFoc();\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopyfocList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n getCopyTypeofContract();\r\n }\r\n\r\n function getCopyCategoryListByFoc(CountryId, FieldofConstructionId) {\r\n clearCopyCategory();\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 2 || vm.rfqTemplate.selectedTemplate.TempId === 3) {\r\n if (FieldofConstructionId) {\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n var obj = {\r\n CountryId: CountryId,\r\n FieldofConstructionId: FieldofConstructionId\r\n }\r\n RFQTemplateService.getCatgeoryListByFieldofCostructionId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopyCategoryList = res.data;\r\n if (vm.CopyCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category available for ' + vm.rfqTemplate.selectedFOC.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n // getCopyTemplate();\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n else {\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n }\r\n }\r\n else {\r\n getCopyTypeofContract();\r\n }\r\n }\r\n\r\n function getcopySubCategoryListByCategory(CategoryId) {\r\n clearCopySubcategory();\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 3) {\r\n if (CategoryId) {\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n RFQTemplateService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CopySubCategoryList = res.data;\r\n if (vm.CopySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Sub Category available for ' + vm.rfqTemplate.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n // getCopyTemplate();\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n else {\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.isAddTemplate = true;\r\n }\r\n }\r\n else {\r\n getCopyTypeofContract();\r\n }\r\n\r\n }\r\n\r\n function getCopyTypeofContract() {\r\n vm.CopyTypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }];\r\n }\r\n\r\n function getCopyTemplate() {\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n var obj = {\r\n RfqTypeCode: vm.rfqTemplate.selectedRFQType.Code,\r\n TempId: vm.rfqTemplate.selectedTemplate.TempId,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n TypeofContractId: vm.rfqTemplate.selectedCopyTypeOfContract.Id,\r\n FieldofConstructionId: (vm.rfqTemplate.selectedFOC != undefined) ? vm.rfqTemplate.selectedFOC.FieldofConstructionId : null,\r\n CategoryId: (vm.rfqTemplate.selectedCategory != undefined) ? vm.rfqTemplate.selectedCategory.CategoryId : null,\r\n SubCategoryId: (vm.rfqTemplate.selectedSubCategory != undefined) ? vm.rfqTemplate.selectedSubCategory.SubCategoryId : null,\r\n ActionBy: vm.loggedUser.UserId\r\n }\r\n\r\n RFQTemplateService.getCopyTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RFQTemplateList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Template\");\r\n });\r\n\r\n }\r\n\r\n\r\n function photoChanged(event) {\r\n vm.Templatefiles = [];\r\n vm.Templatefiles = event.target.files[0];\r\n $scope.formData.append('WordDoc', event.target.files[0]);\r\n }\r\n\r\n function SaveRFQTemplate() {\r\n var rfqTemplate = {\r\n rfqTypeCode: vm.rfqTemplate.selectedRFQTypeName.Code,\r\n TypeofContract: vm.rfqTemplate.selectedContract.Id,\r\n TempId: vm.rfqTemplate.selectedTemplateName.TempId,\r\n BillId: vm.rfqTemplate.selectedTypeofbillName.BillId,\r\n CountryId: vm.rfqTemplate.selectedCountryName.CountryId,\r\n FieldofConstructionId: (vm.rfqTemplate.selectedFOCName != undefined) ? vm.rfqTemplate.selectedFOCName.FieldofConstructionId : 0,\r\n CategoryId: (vm.rfqTemplate.selectedCategoryName != undefined) ? vm.rfqTemplate.selectedCategoryName.CategoryId : 0,\r\n SubCategoryId: (vm.rfqTemplate.selectedSubCategoryName != undefined) ? vm.rfqTemplate.selectedSubCategoryName.SubCategoryId : 0,\r\n TitleName: vm.rfqTemplate.TitleName,\r\n CreatedBy: vm.loggedUser.UserId\r\n }\r\n\r\n if (vm.Note == 'Y' && vm.Note == null) {\r\n rfqTemplate.TemplateId = vm.rfqTemplate.selectedRFQTemplate.TemplateId\r\n }\r\n vm.Arr = {};\r\n vm.Arr.RFQTemplate = rfqTemplate;\r\n vm.Arr.ContentEntity = vm.ContentList;\r\n vm.Arr.RequiredValue = vm.RequiredTemplateList;\r\n\r\n\r\n RFQTemplateService.AddRFQTemplate(vm.Arr).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Rfq Template Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Rfq Template Master\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n function GetallContent(rfqTemplate) {\r\n RFQContentTemplateService.getAllContentTemplate(rfqTemplate).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContentList = res.data;\r\n if (vm.isGridEdit) {\r\n for (var i in vm.ContentList) {\r\n vm.ContentList[i].isEdit = true;\r\n }\r\n }\r\n vm.isLoading = false;\r\n // getAllRequiredTemplate();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Content Template\");\r\n });\r\n }\r\n\r\n function getAllRequiredTemplate(rfqTemplate) {\r\n\r\n RFQRequiredTemplateService.getAllRequiredTemplate(rfqTemplate).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RequiredTemplateList = res.data;\r\n if (vm.isGridEdit) {\r\n for (var i in vm.RequiredTemplateList) {\r\n vm.RequiredTemplateList[i].isEdit = true;\r\n }\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Required Template\");\r\n });\r\n }\r\n\r\n function AddRequiredTemplate() {\r\n if (vm.rfqTemplate.TemplateValue == null || vm.rfqTemplate.TemplateValue == undefined) {\r\n $rootScope.showToaster(\"warning\", \"Please Entered Required Value\", \"Warning\");\r\n }\r\n else {\r\n if (vm.isGridEdit) {\r\n var obj = {\r\n RfQTempId: vm.rfqTemplate.RfQTempId,\r\n TemplateValue: vm.rfqTemplate.TemplateValue,\r\n CreatedBy: vm.loggedUser.UserId\r\n }\r\n RFQRequiredTemplateService.AddRequiredTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Required Template added successfully\", \"Success\");\r\n getAllRequiredTemplate(obj.RfQTempId);\r\n vm.rfqTemplate.TemplateValue = null;\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n else {\r\n var obj = {\r\n TemplateValue: vm.rfqTemplate.TemplateValue\r\n }\r\n vm.RequiredTemplateList.push(obj)\r\n vm.rfqTemplate.TemplateValue = null;\r\n vm.rfqTemplate.TemplateValue = [];\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function EditRequiredTemplate(row) {\r\n vm.rfqTemplate.TemplateValue = row.TemplateValue\r\n vm.rfqTemplate.RequiredId = row.RequiredId\r\n vm.rfqTemplate.RfQTempId = row.RfQTempId\r\n vm.isReqEdit = true;\r\n }\r\n\r\n function ModifyRequiredTemplate() {\r\n if (vm.rfqTemplate.TemplateValue == null || vm.rfqTemplate.TemplateValue == undefined) {\r\n $rootScope.showToaster(\"warning\", \"Please Entered Required Value\", \"Warning\");\r\n }\r\n else {\r\n var obj = {\r\n RequiredId: vm.rfqTemplate.RequiredId,\r\n TemplateValue: vm.rfqTemplate.TemplateValue,\r\n ModifiedBy: vm.loggedUser.UserId\r\n }\r\n RFQRequiredTemplateService.editRequiredTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Required Template Updated successfully\", \"Success\");\r\n getAllRequiredTemplate(vm.rfqTemplate.RfQTempId);\r\n vm.rfqTemplate.TemplateValue = null;\r\n vm.isReqEdit = false;\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n function editContentTemplate(row) {\r\n\r\n vm.rfqTemplate.ContentTitle = row.ContentTitle\r\n vm.rfqTemplate.ContentDescription = row.Description\r\n vm.rfqTemplate.ContentId = row.ContentId\r\n vm.rfqTemplate.RfQTempId = row.RfQTempId\r\n vm.isContentEdit = true;\r\n }\r\n\r\n\r\n function ModifyContentTemplate() {\r\n if (vm.rfqTemplate.ContentDescription == null || vm.rfqTemplate.ContentDescription == undefined) {\r\n $rootScope.showToaster('warning', 'Please Entered Content', \"Warning\");\r\n }\r\n else {\r\n var obj = {\r\n ContentId: vm.rfqTemplate.ContentId,\r\n Description: vm.rfqTemplate.ContentDescription,\r\n ContentTitle: vm.rfqTemplate.ContentTitle,\r\n ModifiedBy: vm.loggedUser.UserId\r\n }\r\n RFQContentTemplateService.editContentTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Content Template Updated successfully\", \"Success\");\r\n GetallContent(vm.rfqTemplate.RfQTempId);\r\n vm.isContentEdit = false;\r\n vm.rfqTemplate.ContentTitle = null;\r\n vm.rfqTemplate.ContentDescription = null;\r\n\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n function RemoveRequiredTemplate(item) {\r\n\r\n if (!vm.isGridEdit) {\r\n var index = vm.RequiredTemplateList.indexOf(item);\r\n vm.RequiredTemplateList.splice(index, 1);\r\n }\r\n else {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n RFQRequiredTemplateService.RemoveRequiredTemplate(item.RequiredId).then(function (res) {\r\n if (res.status === 200 && res.data) {\r\n $rootScope.showToaster('success', ' Required Template deleted successfully.', \"Success\");\r\n getAllRequiredTemplate(item.RfQTempId);\r\n } else {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n });\r\n });\r\n }\r\n }\r\n\r\n function removeContentTemplate(item) {\r\n if (!vm.isGridEdit) {\r\n var index = vm.ContentList.indexOf(item);\r\n vm.ContentList.splice(index, 1);\r\n }\r\n else {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n\r\n\r\n RFQContentTemplateService.removeContentTemplate(item.ContentId).then(function (res) {\r\n if (res.status === 200 && res.data) {\r\n $rootScope.showToaster('success', 'Content detail deleted successfully.', \"Success\");\r\n GetallContent(item.RfQTempId);\r\n } else {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something wrong, Try again!\", \"Error\");\r\n });\r\n });\r\n }\r\n }\r\n\r\n function AddContentTemplate() {\r\n if (vm.rfqTemplate.ContentDescription == null || vm.rfqTemplate.ContentDescription == undefined) {\r\n $rootScope.showToaster('warning', 'Please Entered Content', \"Warning\");\r\n }\r\n else {\r\n if (!vm.isGridEdit) {\r\n var obj = {\r\n ContentTitle: vm.rfqTemplate.ContentTitle,\r\n Description: vm.rfqTemplate.ContentDescription\r\n }\r\n\r\n vm.ContentList.push(obj)\r\n vm.rfqTemplate.ContentTitle = null;\r\n vm.rfqTemplate.ContentTitle = [];\r\n vm.rfqTemplate.ContentDescription = null;\r\n vm.rfqTemplate.ContentDescription = [];\r\n }\r\n else {\r\n var obj = {\r\n RfQTempId: vm.rfqTemplate.RfQTempId,\r\n Description: vm.rfqTemplate.ContentDescription,\r\n ContentTitle: vm.rfqTemplate.ContentTitle,\r\n CreatedBy: vm.loggedUser.UserId\r\n }\r\n RFQContentTemplateService.AddContentTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Content Template added successfully\", \"Success\");\r\n GetallContent(obj.RfQTempId);\r\n vm.rfqTemplate.ContentTitle = null;\r\n vm.rfqTemplate.ContentDescription = null;\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n function RemoveRFQTemplate(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n debugger;\r\n RFQTemplateService.removeRfqTemplate(row.RfQTempId).then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"error\", \"Content Template successfully Deleted\", \"Error\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Something wrong, Try Again!\", \"Error\");\r\n });\r\n });\r\n }\r\n\r\n function editRFQTemplate(row) {\r\n vm.isFormOpen = true;\r\n vm.isGridEdit = true;\r\n vm.rfqTemplate.TitleName = row.TitleName;\r\n vm.rfqTemplate.TemplateValue = row.TemplateValue;\r\n vm.rfqTemplate.RfQTempId = row.RfQTempId;\r\n\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === row.CountryId) {\r\n vm.rfqTemplate.selectedCountryName = vm.CountryList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code === row.rfqTypeCode) {\r\n vm.rfqTemplate.selectedRFQTypeName = vm.rfqTypeList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.TemplateList) {\r\n if (vm.TemplateList[i].TempId === row.TempId) {\r\n vm.rfqTemplate.selectedTemplateName = vm.TemplateList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofBillist) {\r\n if (vm.TypeofBillist[i].BillId === row.BillId) {\r\n vm.rfqTemplate.selectedTypeofbillName = vm.TypeofBillist[i]\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === row.TypeofContract) {\r\n vm.rfqTemplate.selectedContract = vm.TypeofContractList[i]\r\n }\r\n }\r\n\r\n getActiveFoc(function () {\r\n for (var i in vm.focList) {\r\n if (vm.focList[i].FieldofConstructionId === row.FieldofConstructionId) {\r\n vm.rfqTemplate.selectedFOCName = vm.focList[i];\r\n }\r\n }\r\n })\r\n\r\n if (row.TempId === 2 || row.TempId === 3) {\r\n getCatgeoryListByFieldofCostructionId(row.CountryId, row.FieldofConstructionId, function () {\r\n for (var i in vm.CategoryList) {\r\n if (vm.CategoryList[i].CategoryId === row.CategoryId) {\r\n vm.rfqTemplate.selectedCategoryName = vm.CategoryList[i];\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (row.TempId === 3) {\r\n getSubcategorylistbyCategoryId(row.CategoryId, function () {\r\n for (var i in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[i].SubCategoryId === row.SubCategoryId) {\r\n vm.rfqTemplate.selectedSubCategoryName = vm.SubCategoryList[i]\r\n }\r\n }\r\n });\r\n }\r\n\r\n getTemplate(row.RfQTempId, function () {\r\n vm.ContentList = vm.ContentList;\r\n for (var i in vm.ContentList) {\r\n vm.ContentList[i].isEdit = true;\r\n }\r\n vm.RequiredTemplateList = vm.RequiredTemplateList;\r\n\r\n for (var i in vm.RequiredTemplateList) {\r\n vm.RequiredTemplateList[i].isEdit = true;\r\n }\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.isGridEdit = false;\r\n vm.isAddTemplate = true;\r\n vm.rfqTemplate = {};\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.Note = null;\r\n }\r\n\r\n function AddTemplate() {\r\n vm.isAddTemplate = false;\r\n\r\n }\r\n\r\n function back() {\r\n vm.Account = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isGridEdit = false;\r\n vm.isAddTemplate = true;\r\n vm.rfqTemplate = {};\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.Note = null;\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.Account = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isGridEdit = false;\r\n vm.isAddTemplate = true;\r\n vm.rfqTemplate = {};\r\n vm.ContentList = [];\r\n vm.RequiredTemplateList = [];\r\n vm.Note = null;\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.AccountForm.$setUntouched();\r\n }\r\n\r\n function clearCountry() {\r\n vm.rfqTemplate.selectedCountryName = null;\r\n vm.CountryList = [];\r\n clearRfqType();\r\n }\r\n\r\n function clearRfqType() {\r\n vm.rfqTemplate.selectedRFQTypeName = null;\r\n clearTemplateFor();\r\n }\r\n\r\n function clearTemplateFor() {\r\n vm.rfqTemplate.selectedTemplateName = null;\r\n clearBill();\r\n }\r\n\r\n function clearBill() {\r\n vm.rfqTemplate.selectedTypeofbillName = null;\r\n clearFoc();\r\n }\r\n\r\n function clearFoc() {\r\n vm.rfqTemplate.selectedFOCName = null;\r\n vm.focList = [];\r\n clearCategory();\r\n }\r\n\r\n function clearCategory() {\r\n vm.rfqTemplate.selectedCategoryName = null;\r\n vm.CategoryList = [];\r\n clearSubcategory()\r\n }\r\n\r\n function clearSubcategory() {\r\n vm.rfqTemplate.selectedSubCategoryName = null;\r\n vm.SubCategoryList = [];\r\n\r\n }\r\n\r\n function clearCopyCountry() {\r\n vm.rfqTemplate.selectedCountry = null;\r\n vm.CopyCountryList = [];\r\n clearCopyRfqType();\r\n }\r\n\r\n function clearCopyRfqType() {\r\n vm.rfqTemplate.selectedRFQType = null;\r\n clearCopyTemplateFor();\r\n }\r\n\r\n function clearCopyTemplateFor() {\r\n vm.rfqTemplate.selectedTemplate = null;\r\n clearCopyBill();\r\n }\r\n\r\n function clearCopyBill() {\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n clearCopyFoc();\r\n }\r\n\r\n function clearCopyFoc() {\r\n vm.rfqTemplate.selectedFOC = null;\r\n vm.rfqTemplate.selectedCopyTypeOfContract = null;\r\n vm.CopyfocList = [];\r\n clearCopyCategory();\r\n }\r\n\r\n function clearCopyCategory() {\r\n vm.rfqTemplate.selectedCategory = null;\r\n vm.CopyCategoryList = [];\r\n clearCopySubcategory()\r\n }\r\n\r\n function clearCopySubcategory() {\r\n vm.rfqTemplate.selectedSubCategory = null;\r\n vm.CopySubCategoryList = [];\r\n vm.rfqTemplate.selectedCopyTypeOfContract = null;\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n vm.RFQTemplateList = [];\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.role')\r\n .controller('RoleCtrl', RoleCtrl);\r\n\r\n /** @ngInject */\r\n function RoleCtrl($http, $rootScope, lodash, $scope, dialogs, RoleService, OrganizationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n\r\n vm.RoleList = [];\r\n vm.role = {};\r\n $rootScope.isLogin = false;\r\n //METHODS\r\n vm.changeActiveRole = changeActiveRole;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n\r\n vm.resetForm = resetForm;\r\n vm.editRole = editRole;\r\n vm.removeRole = removeRole;\r\n vm.SaveRole = SaveRole;\r\n\r\n\r\n Init();\r\n\r\n $scope.AlphOnly = function(event, myValue) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n\r\n }\r\n\r\n function Init() {\r\n RoleService.getAllRole().then(function(res) {\r\n if (res.status === 200) {\r\n vm.RoleList = res.data;\r\n OrganizationService.getAllOrganization().then(function(res) {\r\n if (res.status === 200) {\r\n vm.OrganizationList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n }\r\n }, function(err) {\r\n\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Role\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n // vm.role.CreatedBy = \"1\";\r\n }\r\n\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.role = {};\r\n }\r\n\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.role = {};\r\n\r\n });\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.roleForm.$setUntouched();\r\n }\r\n\r\n function editRole(role) {\r\n\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n\r\n vm.role = angular.copy(role);\r\n for (var c in vm.OrganizationList) {\r\n if (vm.OrganizationList[c].OrganizationLevelId === role.OrganizationLevelId) {\r\n vm.role.selectedOrganization = vm.OrganizationList[c];\r\n }\r\n }\r\n\r\n }\r\n\r\n function removeRole(role) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n RoleService.removeRole(role.RoleId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Role Successfully', \"Role\");\r\n Init();\r\n } else {\r\n dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveRole(role) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n role.OrganizationLevelId = vm.role.selectedOrganization.OrganizationLevelId;\r\n if (!vm.isEditing) {\r\n role.CreatedBy = loggedUser.UserId;\r\n RoleService.AddRole(role).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Role Master\");\r\n clear();\r\n Init();\r\n vm.isFormOpen = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Role Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n role.ModifiedBy = loggedUser.UserId;\r\n RoleService.EditRole(role).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Role Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Role Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n function changeActiveRole(role) {\r\n var msg = 'Are sure you want to ' + ((role.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((role.IsActive) ? 'Deactive' : 'Active') + 'Role Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n RoleService.changeActiveRole(role.RoleId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Active Role Successfully', \"Role\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Active Role\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Active Role. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.state')\r\n .controller('StateCtrl', StateCtrl);\r\n\r\n /** @ngInject */\r\n function StateCtrl($http, $rootScope, lodash, dialogs, StateService, CountryService, $scope, AuthenticationService) {\r\n\r\n var vm = this;\r\n\r\n\r\n \r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.stateList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editState = editState;\r\n vm.changeActiveState = changeActiveState;\r\n vm.removeState = removeState;\r\n vm.SaveState = SaveState;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n\r\n function Init() {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n StateService.getAllState($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"State\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"State\");\r\n // dialogs.error('error', 'Error! Try Again', \"State\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.state = {};\r\n \r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.state = {};\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.stateForm.$setUntouched();\r\n }\r\n\r\n function editState(state) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.state = angular.copy(state);\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === state.CountryId) {\r\n vm.state.selectedCountry = vm.CountryList[c];\r\n }\r\n }\r\n //console.log(\"check\"+vm.state.selectedCountry);\r\n\r\n }\r\n\r\n function changeActiveState(state) {\r\n var msg = 'Are sure you want to ' + ((state.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((state.IsActive) ? 'Deactive' : 'Active') + 'State Successfully.'\r\n var confirm = dialogs.confirm('Confirm', msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n StateService.changeActiveState(state.StateId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"State\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Change Status State\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Change Status State.If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function removeState(state) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n StateService.removeState(state.StateId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete State Successfully', \"State\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete State\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete State. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveState() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var state = {\r\n CountryId: vm.state.selectedCountry.CountryId,\r\n StateName: vm.state.StateName,\r\n CraetedBy: logggedUser.UserId\r\n }\r\n StateService.AddState(state).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n \r\n \r\n } else {\r\n var state = {\r\n CountryId: vm.state.selectedCountry.CountryId,\r\n StateName: vm.state.StateName,\r\n StateId: vm.state.StateId,\r\n IsActive: vm.state.IsActive,\r\n ModifiedBy: logggedUser.UserId\r\n }\r\n StateService.EditState(state).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n } \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n \r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .service('AmendmentWOService', AmendmentWOService);\r\n\r\n AmendmentWOService.$inject = ['$http', '$rootScope'];\r\n\r\n function AmendmentWOService($http, $rootScope) {\r\n this.GetAllApprovedWO = GetAllApprovedWO;\r\n this.GetAllWorkOrderIocaDtls = GetAllWorkOrderIocaDtls;\r\n this.GetAllPowForApprovedWOIOCA = GetAllPowForApprovedWOIOCA;\r\n this.InsertAmendmentWO = InsertAmendmentWO;\r\n this.UpdateWOStatus = UpdateWOStatus\r\n\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function GetAllApprovedWO(obj) {\r\n return $http.post($rootScope.endPoint + 'AmendmentWO/GetAllApprovedWO', obj, config);\r\n }\r\n function GetAllWorkOrderIocaDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'AmendmentWO/GetAllWorkOrderIocaDtls', obj, config);\r\n }\r\n function GetAllPowForApprovedWOIOCA(obj) {\r\n return $http.post($rootScope.endPoint + 'AmendmentWO/GetAllPowForApprovedWOIOCA', obj, config);\r\n }\r\n\r\n function InsertAmendmentWO(obj) {\r\n return $http.post($rootScope.endPoint + 'AmendmentWO/InsertAmendmentWO', obj, config);\r\n }\r\n\r\n function UpdateWOStatus(obj) {\r\n return $http.post($rootScope.endPoint + 'AmendmentWO/UpdateAmendmentWOStatus', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.attendenceDetails')\r\n .service('AttendenceService', AttendenceService);\r\n\r\n AttendenceService.$inject = ['$http', '$rootScope'];\r\n\r\n function AttendenceService($http, $rootScope) {\r\n this.ShowAttendenceDetailsReport = ShowAttendenceDetailsReport;\r\n \r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function ShowAttendenceDetailsReport() {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'AttendenceDetails/ShowAttendenceDetailsReport',config);\r\n }\r\n\r\n \r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.services')\r\n .service('AuthenticationService', AuthenticationService);\r\n\r\n AuthenticationService.inject = ['Base64', '$http', '$window', '$rootScope', 'dialogs'];\r\n\r\n function AuthenticationService(Base64, $http, $window, $rootScope, dialogs) {\r\n var isAuth = false;\r\n var token = \"\";\r\n var userId = 0;\r\n var userName = \"\";\r\n var loggedUser = {};\r\n\r\n this.login = login;\r\n this.changePswd = changePswd;\r\n this.logout = logout;\r\n this.getLoggedUserDetails = getLoggedUserDetails;\r\n this.setLoggedUserDetails = setLoggedUserDetails;\r\n\r\n Init();\r\n ////////////////\r\n function Init() {\r\n $rootScope.isAuth = isAuth = $window.sessionStorage.getItem('isAuth') || $window.localStorage.getItem('isAuth');\r\n $rootScope.token = token = $window.sessionStorage.getItem('token') || $window.localStorage.getItem('token');\r\n $rootScope.userId = userId = $window.sessionStorage.getItem('userId') || $window.localStorage.getItem('userId');\r\n loggedUser = JSON.parse($window.sessionStorage.getItem('loggedUserDetails')) || JSON.parse($window.localStorage.getItem('loggedUserDetails'));\r\n $rootScope.userName = userName = (loggedUser) ? loggedUser.FirstName : \"\";\r\n if (loggedUser) {\r\n $rootScope.selectedCompanyName = (loggedUser.SelectedCompany !== null && loggedUser.SelectedCompany !== undefined) ?\r\n loggedUser.SelectedCompany.CompanyName : \"\";\r\n\r\n $rootScope.selectedCompanyId = (loggedUser.SelectedCompany !== null && loggedUser.SelectedCompany !== undefined) ?\r\n loggedUser.SelectedCompany.CompanyId : \"\";\r\n }\r\n }\r\n\r\n function login(username, password, callback) {\r\n var authdata = Base64.encode(username + ':' + password);\r\n\r\n $http.defaults.headers.common.Authorization = 'Basic ' + authdata;\r\n // debugger;\r\n $http.post($rootScope.endPoint + 'login')\r\n .then(function(response) {\r\n // debugger;\r\n $rootScope.token = token = response.headers(\"Token\");\r\n $rootScope.userId = userId = response.headers(\"UserId\");\r\n $rootScope.isAuth = isAuth = true;\r\n\r\n $window.sessionStorage.setItem(\"token\", token);\r\n $window.sessionStorage.setItem(\"isAuth\", isAuth);\r\n $window.sessionStorage.setItem(\"userId\", userId);\r\n\r\n $window.localStorage.setItem(\"token\", token);\r\n $window.localStorage.setItem(\"isAuth\", isAuth);\r\n $window.localStorage.setItem(\"userId\", userId);\r\n callback(response);\r\n }, function(err) {\r\n callback(err);\r\n })\r\n }\r\n\r\n function changePswd(username, password) {\r\n return $http.post($rootScope.endPoint + 'changePswd' + username + '?password=' + password);\r\n }\r\n\r\n function logout() {\r\n $rootScope.token = token = \"\";\r\n $rootScope.isAuth = isAuth = false;\r\n $rootScope.userId = userId = 0;\r\n\r\n $window.sessionStorage.clear();\r\n $window.localStorage.clear();\r\n }\r\n\r\n function getLoggedUserDetails() {\r\n return loggedUser;\r\n }\r\n\r\n function setLoggedUserDetails(userDetails) {\r\n loggedUser = userDetails;\r\n $rootScope.userName = loggedUser.FirstName;\r\n\r\n if (loggedUser.SelectedCompany !== null && loggedUser.SelectedCompany !== undefined)\r\n $rootScope.selectedCompanyName = loggedUser.SelectedCompany.CompanyName;\r\n else\r\n $rootScope.selectedCompanyName = null;\r\n\r\n $window.sessionStorage.setItem(\"loggedUserDetails\", JSON.stringify(userDetails));\r\n $window.localStorage.setItem(\"loggedUserDetails\", JSON.stringify(userDetails));\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.services')\r\n .factory('Base64', function() {\r\n /* jshint ignore:start */\r\n\r\n var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n\r\n return {\r\n encode: function(input) {\r\n var output = \"\";\r\n var chr1, chr2, chr3 = \"\";\r\n var enc1, enc2, enc3, enc4 = \"\";\r\n var i = 0;\r\n\r\n do {\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n\r\n output = output +\r\n keyStr.charAt(enc1) +\r\n keyStr.charAt(enc2) +\r\n keyStr.charAt(enc3) +\r\n keyStr.charAt(enc4);\r\n chr1 = chr2 = chr3 = \"\";\r\n enc1 = enc2 = enc3 = enc4 = \"\";\r\n } while (i < input.length);\r\n\r\n return output;\r\n },\r\n\r\n decode: function(input) {\r\n var output = \"\";\r\n var chr1, chr2, chr3 = \"\";\r\n var enc1, enc2, enc3, enc4 = \"\";\r\n var i = 0;\r\n\r\n // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\r\n var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\r\n if (base64test.exec(input)) {\r\n window.alert(\"There were invalid base64 characters in the input text.\\n\" +\r\n \"Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\\n\" +\r\n \"Expect errors in decoding.\");\r\n }\r\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n\r\n do {\r\n enc1 = keyStr.indexOf(input.charAt(i++));\r\n enc2 = keyStr.indexOf(input.charAt(i++));\r\n enc3 = keyStr.indexOf(input.charAt(i++));\r\n enc4 = keyStr.indexOf(input.charAt(i++));\r\n\r\n chr1 = (enc1 << 2) | (enc2 >> 4);\r\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n chr3 = ((enc3 & 3) << 6) | enc4;\r\n\r\n output = output + String.fromCharCode(chr1);\r\n\r\n if (enc3 != 64) {\r\n output = output + String.fromCharCode(chr2);\r\n }\r\n if (enc4 != 64) {\r\n output = output + String.fromCharCode(chr3);\r\n }\r\n\r\n chr1 = chr2 = chr3 = \"\";\r\n enc1 = enc2 = enc3 = enc4 = \"\";\r\n\r\n } while (i < input.length);\r\n\r\n return output;\r\n }\r\n };\r\n })\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .service('BillingService', BillingService);\r\n\r\n BillingService.$inject = ['$http', '$rootScope'];\r\n\r\n function BillingService($http, $rootScope) {\r\n this.GetApprovedWorkApproval = GetApprovedWorkApproval;\r\n this.GetCategoryByWorkOrderIoca = GetCategoryByWorkOrderIoca;\r\n this.GetSubCategoryByWorkOrderIoca = GetSubCategoryByWorkOrderIoca;\r\n this.GetTypeByWorkOrderIoca = GetTypeByWorkOrderIoca;\r\n this.GetIocaByWorkOderIoca = GetIocaByWorkOderIoca;\r\n this.GetLocationByWorkOrderIoca = GetLocationByWorkOrderIoca;\r\n this.GetTierDtlsByWorkOrderIoca = GetTierDtlsByWorkOrderIoca;\r\n this.GetPowForApproval = GetPowForApproval;\r\n this.saveBillApprovalDtls = saveBillApprovalDtls;\r\n this.savePenaltyDtls = savePenaltyDtls;\r\n this.GetBillDetails = GetBillDetails;\r\n this.GetRABillDetails = GetRABillDetails\r\n this.GetGenerateBill = GetGenerateBill;\r\n this.GetGenerateRABill = GetGenerateRABill;\r\n this.GetGenerateRABillApproval = GetGenerateRABillApproval;\r\n this.GetApprovedWorkApprovalForMobilization = GetApprovedWorkApprovalForMobilization;\r\n this.GetApprovedWorkApprovalForInteriam = GetApprovedWorkApprovalForInteriam;\r\n this.SaveAdvanceAmount = SaveAdvanceAmount;\r\n this.SaveInterimAmount = SaveInterimAmount;\r\n this.GetAdvanceAmount = GetAdvanceAmount;\r\n this.GetTransactionList = GetTransactionList;\r\n this.SaveVocher = SaveVocher;\r\n this.GetPaymentForInterim = GetPaymentForInterim;\r\n this.SaveInterimPayment = SaveInterimPayment;\r\n this.PrintVocher = PrintVocher;\r\n this.SaveDraftBill = SaveDraftBill;\r\n this.SaveRABill = SaveRABill;\r\n this.SaveApproveRABill = SaveApproveRABill;\r\n this.SaveContractorBillPayment = SaveContractorBillPayment;\r\n this.SaveContVocher = SaveContVocher;\r\n this.PrintPaymentVocher = PrintPaymentVocher;\r\n this.getBillHistory = getBillHistory;\r\n this.GetPenaltyBillHistory = GetPenaltyBillHistory;\r\n this.ShowDraftBillReport = ShowDraftBillReport;\r\n this.ShowRABillReport = ShowRABillReport;\r\n\r\n this.GetContractorByCategory = GetContractorByCategory;\r\n this.GetWorkOrder = GetWorkOrder;\r\n this.GetAllBill = GetAllBill;\r\n this.ShowWorkOrderReport = ShowWorkOrderReport;\r\n\r\n\r\n this.GetAllRABill = GetAllRABill;\r\n this.ShowStatementReport = ShowStatementReport;\r\n\r\n this.GetBankDetails = GetBankDetails;\r\n\r\n ///////////// \r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetApprovedWorkApproval(id, companyId) {\r\n return $http.get($rootScope.endPoint + 'Billing/getApprovedWorkApproval/' + id + '?companyId=' + companyId, config);\r\n }\r\n\r\n function getBillHistory(id) {\r\n return $http.get($rootScope.endPoint + 'Billing/getBillHistory/' + id, config);\r\n }\r\n\r\n function GetPenaltyBillHistory(id) {\r\n return $http.get($rootScope.endPoint + 'Billing/getPenaltyBillForDraft/' + id, config);\r\n }\r\n\r\n function GetApprovedWorkApprovalForMobilization(companyId) {\r\n return $http.get($rootScope.endPoint + 'Billing/GetApprovedWorkApprovalForMobilization/' + companyId, config);\r\n }\r\n\r\n function GetApprovedWorkApprovalForInteriam(companyId) {\r\n return $http.get($rootScope.endPoint + 'Billing/GetApprovedWorkApprovalForInteriam/' + companyId, config);\r\n }\r\n\r\n function GetPaymentForInterim(companyId) {\r\n return $http.get($rootScope.endPoint + 'Billing/GetPaymentForInterim/' + companyId, config);\r\n }\r\n\r\n function GetAdvanceAmount(woId) {\r\n return $http.get($rootScope.endPoint + 'Billing/GetAdvanceAmount/' + woId, config);\r\n }\r\n\r\n function GetBillDetails(contractorId) {\r\n return $http.get($rootScope.endPoint + 'Billing/getDraftBill/' + contractorId, config);\r\n }\r\n\r\n function GetRABillDetails(contractorId, Status, companyId) {\r\n return $http.get($rootScope.endPoint + 'Billing/getRABillForContractor/' + contractorId + '?Status=' + Status + '&companyId=' + companyId, config);\r\n }\r\n\r\n function GetGenerateBill(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/getGenerateBill', obj, config);\r\n }\r\n\r\n function GetGenerateRABill(BillIdentityNumber) {\r\n return $http.get($rootScope.endPoint + 'Billing/getGenerateRABill/' + BillIdentityNumber, config);\r\n }\r\n\r\n function GetGenerateRABillApproval(BillIdentityNumber) {\r\n return $http.get($rootScope.endPoint + 'Billing/getGenerateRABillApproval/' + BillIdentityNumber, config);\r\n }\r\n\r\n function GetCategoryByWorkOrderIoca(woId, fromPlanning, workStatus) {\r\n return $http.get($rootScope.endPoint + 'Billing/getCategoryByWorkOrderIoca/' + woId, config);\r\n }\r\n\r\n function GetSubCategoryByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/GetSubCategoryByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetTypeByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/GetTypeByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetIocaByWorkOderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/GetIocaByWorkOderIoca', obj, config);\r\n }\r\n\r\n function GetLocationByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/GetLocationByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetTierDtlsByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/GetTierDtlsByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetPowForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/getPowForApproval', obj, config);\r\n }\r\n\r\n function GetTransactionList() {\r\n return $http.get($rootScope.endPoint + 'Billing/getTransactionType', config);\r\n }\r\n\r\n function saveBillApprovalDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/saveWorkApprovalDtls', obj, config);\r\n }\r\n\r\n function savePenaltyDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/savePenaltyDtls', obj, config);\r\n }\r\n\r\n function SaveAdvanceAmount(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveAdvanceAmount', obj, config);\r\n }\r\n\r\n function SaveInterimAmount(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveInterimAmount', obj, config);\r\n }\r\n\r\n function SaveVocher(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveVocher', obj, config);\r\n }\r\n\r\n function SaveInterimPayment(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveInterimPayment', obj, config);\r\n }\r\n\r\n function SaveDraftBill(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveDraft', obj, config);\r\n }\r\n\r\n function SaveRABill(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveRABill', obj, config);\r\n }\r\n\r\n function SaveApproveRABill(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveApproveRABill', obj, config);\r\n }\r\n\r\n function SaveContractorBillPayment(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveContractorBillPayment', obj, config);\r\n }\r\n\r\n function SaveContVocher(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/SaveContVocher', obj, config);\r\n }\r\n\r\n function PrintVocher(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'VohcerReport/ShowVouhcerReport', obj, config);\r\n }\r\n\r\n function PrintPaymentVocher(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'VohcerReport/ShowPaymentVouhcerReport', obj, config);\r\n }\r\n\r\n function ShowDraftBillReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'BoQReport/ShowDraftBillReport', obj, config);\r\n }\r\n\r\n function ShowRABillReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'BoQReport/ShowRABillReport', obj, config);\r\n }\r\n\r\n function ShowWorkOrderReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RFQ/ShowWorkOrderReport', obj, config);\r\n }\r\n\r\n function ShowStatementReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RFQ/ShowStatementReport', obj, config);\r\n }\r\n\r\n\r\n function GetContractorByCategory(projectId, CategoryId) {\r\n return $http.get($rootScope.endPoint + 'Billing/getContractorByCategory/' + projectId + '?CategoryId=' + CategoryId, config);\r\n }\r\n\r\n\r\n function GetWorkOrder(projectId, ContractorId) {\r\n return $http.get($rootScope.endPoint + 'Billing/getWorkOrder/' + projectId + '?ContractorId=' + ContractorId, config);\r\n }\r\n\r\n function GetAllBill(workOrderId, type) {\r\n return $http.get($rootScope.endPoint + 'Billing/getAllBill/' + workOrderId + '?type=' + type, config);\r\n }\r\n //Statement of Bill\r\n function GetAllRABill(workOrderId, type) {\r\n return $http.get($rootScope.endPoint + 'Billing/getAllRABill/' + workOrderId + '?type=' + type, config);\r\n }\r\n\r\n function GetBankDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'Billing/GetBankDetails', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('BillOfQuntityService', BillOfQuntityService);\r\n\r\n BillOfQuntityService.$inject = ['$http', '$rootScope'];\r\n\r\n function BillOfQuntityService($http, $rootScope) {\r\n this.GetAllDrafts = GetAllDrafts;\r\n this.GetAllWaitingForApproval = GetAllWaitingForApproval;\r\n this.GetAllbackFromCorrection = GetAllbackFromCorrection;\r\n this.GetAllResubmitted =GetAllResubmitted;\r\n this.GetAllBlockandBack = GetAllBack;\r\n this.getAllBOQApproved = getAllBOQApproved;\r\n this.UpdateBillOfQuantity = UpdateBillOfQuantity;\r\n this.SendForApproval = SendForApproval;\r\n this.AddRejectionNotes = AddRejectionNotes;\r\n this.Block = Block;\r\n this.Resubmit = Resubmit;\r\n this.Approved = Approved;\r\n this.removeBOQ = removeBOQ;\r\n this.getAllFilterBOQApproved = getAllFilterBOQApproved;\r\n // this.Reject = Reject;\r\n this.ShowReport = ShowReport;\r\n this.boqPowQty=boqPowQty;\r\n this.GetAllBlock =GetAllBlock;\r\n this.checkWO =checkWO;\r\n this.LabourCostEstimation = LabourCostEstimation;\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function boqPowQty(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_BoQPowQty', obj, config);\r\n }\r\n\r\n function GetAllDrafts(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllDraft/', obj, config);\r\n }\r\n\r\n function checkWO(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/checkWorkOrder/', obj, config);\r\n }\r\n\r\n function GetAllResubmitted(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllReSubmited/', obj, config);\r\n }\r\n function GetAllBlock(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllBlock/', obj, config);\r\n }\r\n\r\n\r\n function GetAllWaitingForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllWaitingForApproval', obj, config);\r\n }\r\n\r\n function GetAllbackFromCorrection(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllReSubmited', obj, config);\r\n }\r\n\r\n function GetAllBack(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllBack', obj, config);\r\n }\r\n\r\n function getAllBOQApproved(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllApproved', obj, config);\r\n }\r\n \r\n function AddRejectionNotes(objDTO) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/Reject', objDTO, config);\r\n }\r\n\r\n function SendForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/SendforApproval', obj, config);\r\n }\r\n\r\n function Block(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/Block', obj, config);\r\n }\r\n\r\n function Resubmit(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/Resubmit', obj, config);\r\n }\r\n\r\n // function Reject(obj) {\r\n // return $http.post($rootScope.endPoint + 'BillOfQuantity/Reject', obj, config);\r\n // }\r\n\r\n function Approved(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/Approved', obj, config);\r\n }\r\n\r\n function removeBOQ(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/Delete' , obj, config);\r\n }\r\n\r\n function UpdateBillOfQuantity(boq) {\r\n return $http.put($rootScope.endPoint + 'BillOfQuantity/Update', boq, config);\r\n }\r\n\r\n function ShowReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'BoQReport/ShowBOQReport',obj, config);\r\n }\r\n\r\n // Modified BoQ Filter unplaned Date only\r\n function getAllFilterBOQApproved(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllApprovedUnPlanBoQ', obj, config);\r\n }\r\n function LabourCostEstimation(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'BoQReport/ShowLabourCostEstimationReport',obj, config);\r\n }\r\n \r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .service('BoqSequenceService', BoqSequenceService);\r\n\r\n BoqSequenceService.$inject = ['$http', '$rootScope'];\r\n\r\n function BoqSequenceService($http, $rootScope) {\r\n\r\n this.getSequenceForTiers = getSequenceForTiers;\r\n this.CreateSequenceTiers = CreateSequenceTiers;\r\n this.GetAllBoqTierSequence = GetAllBoqTierSequence;\r\n this.getSequenceForIOCA = getSequenceForIOCA;\r\n this.CreateSequenceBoq = CreateSequenceBoq;\r\n this.GetAllBoqIOCASequence = GetAllBoqIOCASequence;\r\n this.RemoveIOCASequence = RemoveIOCASequence;\r\n this.RemoveTiersSequence = RemoveTiersSequence;\r\n this.UpdateIOCASequence = UpdateIOCASequence;\r\n this.UpdateTiersSequence = UpdateTiersSequence;\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getSequenceForTiers(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/GetSequenceForTiers', obj, config);\r\n }\r\n\r\n function GetAllBoqTierSequence(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/GetAllBoqTierSequence', obj, config);\r\n }\r\n\r\n function CreateSequenceTiers(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/Create', obj, config);\r\n }\r\n\r\n function CreateSequenceBoq(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/CreateIocaSequence', obj, config);\r\n }\r\n\r\n function UpdateIOCASequence(obj) {\r\n return $http.put($rootScope.endPoint + 'BillOfQuantitySequence/UpdateIOCA', obj, config);\r\n }\r\n\r\n function UpdateTiersSequence(obj) {\r\n return $http.put($rootScope.endPoint + 'BillOfQuantitySequence/UpdateTier', obj, config);\r\n }\r\n\r\n function RemoveIOCASequence(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/DeleteIOCA', obj, config);\r\n }\r\n\r\n function RemoveTiersSequence(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/DeleteTiers', obj, config);\r\n }\r\n\r\n function getSequenceForIOCA(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/GetSequenceForIOCA', obj, config);\r\n }\r\n\r\n function GetAllBoqIOCASequence(obj) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantitySequence/GetAllBoqIOCASequence', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.BudgetReport')\r\n .service('budgetReportService', budgetReportService);\r\n\r\n budgetReportService.$inject = ['$rootScope', '$http'];\r\n\r\n function budgetReportService($rootScope, $http) {\r\n \r\n this.getBoQFoc = getBoQFoc;\r\n this.getBoQCountry = getBoQCountry;\r\n this.getBoQCategory = getBoQCategory;\r\n this.getBoQSubCategory = getBoQSubCategory;\r\n this.getBoQType = getBoQType;\r\n this.getBoQIOCA = getBoQIOCA;\r\n \r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n \r\n\r\n //Get Budget Planned CA only\r\n function getBoQFoc(boq) {\r\n // return $http.post($rootScope.endPoint + 'PlanningReport/getBoqFoc', boq, config);\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBudgetFoc', boq, config);\r\n }\r\n function getBoQCountry(boq) {\r\n // return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQCountries', boq, config);\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBudgetCountries', boq, config);\r\n }\r\n function getBoQCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBudgetCategory', boq, config);\r\n // return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQCategory', boq, config);\r\n }\r\n\r\n function getBoQSubCategory(boq) {\r\n // return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQSubCategory', boq, config);\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBudgetSubCategory', boq, config);\r\n }\r\n\r\n function getBoQType(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBudgetType', boq, config);\r\n // return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQType', boq, config);\r\n }\r\n\r\n function getBoQIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBudgetIOCA', boq, config);\r\n // return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQIOCA', boq, config);\r\n\r\n }\r\n\r\n \r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.company')\r\n .service('CompanyService', CompanyService);\r\n\r\n CompanyService.$inject = ['$http', '$rootScope'];\r\n\r\n function CompanyService($http, $rootScope) {\r\n this.AddCompany = AddCompany;\r\n this.EditCompany = EditCompany;\r\n this.removeCompany = removeCompany;\r\n this.getAllCompany = getAllCompany;\r\n this.getActiveCompany = getActiveCompany;\r\n this.getAllOwnerShip = getAllOwnerShip;\r\n this.getAllBusiness = getAllBusiness;\r\n this.changeActiveCompany = changeActiveCompany;\r\n this.getSubCompByCompId = getSubCompByCompId;\r\n this.updateLogo = updateLogo;\r\n this.getCompanyByOrgId=getCompanyByOrgId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function updateLogo(data) {\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Company/uploadLogo/', data, config);\r\n }\r\n\r\n function getAllCompany(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Company/AllCompany', config);\r\n }\r\n\r\n function getAllOwnerShip(objOwner) {\r\n return $http.get($rootScope.endPoint + 'Company/AllOwnerShip', config);\r\n }\r\n\r\n function getAllBusiness(objBusiness) {\r\n return $http.get($rootScope.endPoint + 'Company/AllNatureOfBusiness', config);\r\n }\r\n\r\n function getActiveCompany() {\r\n return $http.get($rootScope.endPoint + 'Company/GetActiveCompanyById', config);\r\n }\r\n\r\n function getCompanyByOrgId(id) {\r\n return $http.get($rootScope.endPoint + 'Company/GetByOrgId/'+ id, config);\r\n }\r\n\r\n\r\n function AddCompany(company) {\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Company/Create', company, config);\r\n }\r\n\r\n function EditCompany(company) {\r\n return $http.put($rootScope.endPoint + 'Company/Modify', company,{}, config);\r\n }\r\n\r\n function removeCompany(id) {\r\n return $http.delete($rootScope.endPoint + 'Company/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveCompany(id) {\r\n return $http.post($rootScope.endPoint + 'Company/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getSubCompByCompId(companyId) {\r\n // config.headers[\"Token\"] = $rootScope.token;\r\n\r\n // return $http.get($rootScope.endPoint + 'Company/GetSubCompByCompId/' + companyId, config);\r\n return $http.get($rootScope.endPoint + 'Company/GetSubCompByCompId/' + companyId);\r\n }\r\n }\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.consumableMaster')\r\n .service('ConsumableCatagoryService', ConsumableCatagoryService);\r\n\r\n ConsumableCatagoryService.$inject = ['$http', '$rootScope'];\r\n\r\n function ConsumableCatagoryService($http, $rootScope) {\r\n this.AddConsumableCatagory = AddConsumableCatagory;\r\n this.EditConsumableCatagory = EditConsumableCatagory;\r\n this.removeConsumableCategory = removeConsumableCategory;\r\n this.getAllConsumableCatagory = getAllConsumableCatagory;\r\n this.getConsumableCatagoryById = getConsumableCatagoryById;\r\n this.getActiveConsumableCatagory = getActiveConsumableCatagory;\r\n this.changeActiveConsumableCatagory = changeActiveConsumableCatagory;\r\n this.ShowConsumableCategoryReport = ShowConsumableCategoryReport ;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllConsumableCatagory(objconsumable) {\r\n return $http.get($rootScope.endPoint + 'ConsumableCategory/AllConsumableCategory', config);\r\n }\r\n\r\n function getActiveConsumableCatagory(objconsumable) {\r\n return $http.get($rootScope.endPoint + 'ConsumableCategory/GetActiveConsumableCatagoryById', config);\r\n }\r\n\r\n function AddConsumableCatagory(consumable) {\r\n return $http.post($rootScope.endPoint + 'ConsumableCategory/Create', consumable, config);\r\n }\r\n\r\n function EditConsumableCatagory(consumable) {\r\n return $http.put($rootScope.endPoint + 'ConsumableCategory/Modify', consumable, config);\r\n }\r\n\r\n function removeConsumableCategory(id) {\r\n return $http.delete($rootScope.endPoint + 'ConsumableCategory/Delete/' + id, config);\r\n }\r\n\r\n function getConsumableCatagoryById(consumable) {\r\n return $http.delete($rootScope.endPoint + 'ConsumableCategory/GetConsumableCategoryId/', config);\r\n }\r\n\r\n function changeActiveConsumableCatagory(id) {\r\n return $http.post($rootScope.endPoint + 'ConsumableCategory/ChangeActive/' + id, config);\r\n }\r\n\r\n function ShowConsumableCategoryReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'ConsumableReport/ShowConsumableCategoryReport', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .service('ContractorRegService', ContractorRegService);\r\n\r\n ContractorRegService.$inject = ['$http', '$rootScope'];\r\n\r\n function ContractorRegService($http, $rootScope) {\r\n this.AddContractor = AddContractor;\r\n\r\n this.removeContractor = removeContractor;\r\n this.getAllOwnerShip = getAllOwnerShip;\r\n this.changeActiveContractor = changeActiveContractor;\r\n this.getAllContractorType = getAllContractorType;\r\n this.getAllDraftContractor = getAllDraftContractor;\r\n this.UpdateGSTFile = UpdateGSTFile;\r\n this.getContractorByContractorId = getContractorByContractorId;\r\n this.UpdateLicenceRegNoFile = UpdateLicenceRegNoFile;\r\n this.UpdatePFRegNoFile = UpdatePFRegNoFile;\r\n this.UpdateEsiFile = UpdateEsiFile;\r\n this.UpdateAffidavitFile = UpdateAffidavitFile;\r\n 8\r\n this.UpdateTradeLicenceFile = UpdateTradeLicenceFile;\r\n this.UpdatePartnershipFile = UpdatePartnershipFile;\r\n this.UpdateMemorandumFile = UpdateMemorandumFile;\r\n this.UpdateArticleFile = UpdateArticleFile;\r\n this.UpdateCertificateFile = UpdateCertificateFile;\r\n this.UpdateAggrementFile = UpdateAggrementFile;\r\n this.UpdateBalanceFile = UpdateBalanceFile;\r\n this.UpdateCanceledCheckFile = UpdateCanceledCheckFile;\r\n this.getIOMHById = getIOMHById;\r\n this.checkContractorCode = checkContractorCode;\r\n this.UpdateContractor = UpdateContractor;\r\n this.getAllPendingForApprovalContractor = getAllPendingForApprovalContractor;\r\n this.getAllApprovalContractor = getAllApprovalContractor;\r\n this.getAllBlockContractor = getAllBlockContractor;\r\n this.sendForApproval = sendForApproval;\r\n this.Block = Block;\r\n this.Approve = Approve;\r\n this.ReSubmit = ReSubmit;\r\n this.AddRejectionNotes = AddRejectionNotes;\r\n // this.updateLogo = updateLogo;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n // function updateLogo(data) { \r\n // config.headers[\"Content-Type\"] = undefined;\r\n // return $http.post($rootScope.endPoint + 'Contractor/uploadLogo/', data, config);\r\n // }\r\n\r\n function getAllOwnerShip() {\r\n return $http.get($rootScope.endPoint + 'Contractor/AllOwnerShip', config);\r\n }\r\n\r\n function getContractorByContractorId(contractorId) {\r\n return $http.get($rootScope.endPoint + 'Contractor/ContractorByContractorId/' + contractorId, config);\r\n }\r\n\r\n function checkContractorCode(contractorCode) {\r\n return $http.get($rootScope.endPoint + 'Contractor/CheckContractorCode/' + contractorCode, config);\r\n }\r\n\r\n function getIOMHById(id) {\r\n return $http.get($rootScope.endPoint + 'ItemOfMachinery/GetIOMHById/' + id, config);\r\n }\r\n\r\n function getAllDraftContractor() {\r\n return $http.get($rootScope.endPoint + 'Contractor/GetAllDraft', config);\r\n }\r\n\r\n function getAllPendingForApprovalContractor() {\r\n return $http.get($rootScope.endPoint + 'Contractor/GetAllWaitingForApproval', config);\r\n }\r\n\r\n function getAllBlockContractor() {\r\n return $http.get($rootScope.endPoint + 'Contractor/GetAllBlockandBack', config);\r\n }\r\n\r\n function getAllApprovalContractor() {\r\n return $http.get($rootScope.endPoint + 'Contractor/GetAllApproved', config);\r\n }\r\n\r\n function sendForApproval(id) {\r\n return $http.put($rootScope.endPoint + 'Contractor/SendforApproval/' + id, config);\r\n }\r\n\r\n function Block(id) {\r\n return $http.put($rootScope.endPoint + 'Contractor/Block/' + id, config);\r\n }\r\n\r\n function ReSubmit(id) {\r\n return $http.put($rootScope.endPoint + 'Contractor/Resubmit/' + id, config);\r\n }\r\n\r\n function Approve(id) {\r\n return $http.put($rootScope.endPoint + 'Contractor/Approved/' + id, config);\r\n }\r\n\r\n function AddRejectionNotes(reject) {\r\n return $http.put($rootScope.endPoint + 'Contractor/Reject', reject, config);\r\n }\r\n\r\n\r\n function getAllContractorType() {\r\n return $http.get($rootScope.endPoint + 'Contractor/AllContractorType', config);\r\n }\r\n\r\n function AddContractor(Contractor) {\r\n var config = {\r\n headers: {\r\n\r\n \"Token\": $rootScope.token\r\n }\r\n // {\r\n // // withCredentials: true,\r\n // // headers:{ 'Authorization': 'Basic' + token} //you add all your headers\r\n // }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/CreateContract', Contractor, config);\r\n }\r\n\r\n function UpdateGSTFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/uploadGSTFile', Contractor, config);\r\n }\r\n\r\n function UpdateLicenceRegNoFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateLicenceRegNoAttachment', Contractor, config);\r\n }\r\n\r\n function UpdatePFRegNoFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdatePFRegNoAttachment', Contractor, config);\r\n }\r\n\r\n function UpdateEsiFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateEsiAttachment', Contractor, config);\r\n }\r\n\r\n\r\n function UpdateAffidavitFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateAffidavitAttachment', Contractor, config);\r\n }\r\n\r\n\r\n function UpdateTradeLicenceFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateTradeLicenceAttachment', Contractor, config);\r\n }\r\n\r\n function UpdatePartnershipFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdatePartnershipAttachment', Contractor, config);\r\n }\r\n\r\n\r\n function UpdateMemorandumFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateMemorandumAttachment', Contractor, config);\r\n }\r\n\r\n function UpdateMemorandumFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateMemorandumAttachment', Contractor, config);\r\n }\r\n\r\n function UpdateArticleFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateArticleAttachment', Contractor, config);\r\n }\r\n\r\n function UpdateCertificateFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateCertificateAttachment', Contractor, config);\r\n }\r\n\r\n function UpdateAggrementFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateAggrementAttachment', Contractor, config);\r\n }\r\n\r\n\r\n function UpdateBalanceFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateBalanceAttachment', Contractor, config);\r\n }\r\n\r\n function UpdateCanceledCheckFile(Contractor) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Contractor/UpdateCanceledCheckAttachment', Contractor, config);\r\n }\r\n\r\n\r\n function UpdateContractor(Contractor) {\r\n return $http.put($rootScope.endPoint + 'Contractor/Update', Contractor, config);\r\n }\r\n\r\n function removeContractor(id) {\r\n return $http.delete($rootScope.endPoint + 'Contractor/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveContractor(id) {\r\n return $http.post($rootScope.endPoint + 'Contractor/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractorPayment')\r\n .service('ContractorPaymentService', ContractorPaymentService);\r\n\r\n ContractorPaymentService.$inject = ['$http', '$rootScope'];\r\n\r\n function ContractorPaymentService($http, $rootScope) {\r\n\r\n // this.AddProjectHoliday = AddProjectHoliday;\r\n // this.editProjectHolidayMaster = editProjectHolidayMaster;\r\n // this.getAllProjectHolidayMaster = getAllProjectHolidayMaster;\r\n // this.RemoveProjectHoliday = RemoveProjectHoliday;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n // function AddProjectHoliday(holiday) {\r\n // return $http.post($rootScope.endPoint + 'ProjectHolidayMaster/Create', holiday, config);\r\n // }\r\n\r\n // function editProjectHolidayMaster(holiday) {\r\n // return $http.put($rootScope.endPoint + 'ProjectHolidayMaster/Update', holiday, config);\r\n // }\r\n\r\n // function RemoveProjectHoliday(id) {\r\n // return $http.delete($rootScope.endPoint + 'ProjectHolidayMaster/Delete/' + id, config);\r\n // }\r\n\r\n // function getAllProjectHolidayMaster() {\r\n // return $http.get($rootScope.endPoint + 'ProjectHolidayMaster/GetAllProjectHolidays', config);\r\n // }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .service('CRM_projectInitiationService', CRM_projectInitiationService);\r\n\r\n CRM_projectInitiationService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_projectInitiationService($http, $rootScope) {\r\n this.GetAllKPMESProjects = GetAllKPMESProjects;\r\n this.GetAllProjects = GetAllProjects;\r\n this.ApprovedProjects = ApprovedProjects;\r\n this.AddProjects = AddProjects;\r\n // this.GetAllPendingList = GetAllPendingList;\r\n this.EditProjects = EditProjects;\r\n this.updateProjectImage = updateProjectImage\r\n this.AllPropertyProjectsRead = AllPropertyProjectsRead; \r\n // this.getAllApproved = getAllApproved;\r\n // this.getAllBackForCorrection = getAllBackForCorrection;\r\n this.DeleteProjectid=DeleteProjectid;\r\n\r\n // /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function updateProjectImage(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/updateProjectImage/', data, config);\r\n }\r\n\r\n // function GetAllPendingList(CompanyId) {\r\n // return $http.get($rootScope.endPoint + 'CRMProjectMaster/GetPendingList/' + CompanyId, config);\r\n // }\r\n\r\n // function GetAllPendingList(project) {\r\n // return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllProjects/' + project, config);\r\n // }\r\n\r\n function GetAllKPMESProjects() {\r\n return $http.get($rootScope.endPoint + 'CRMProjectMaster/AllKPMESProjects', config);\r\n }\r\n\r\n function GetAllProjects(project) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllProjects', project, config);\r\n }\r\n\r\n function ApprovedProjects(project) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/ApprovedProjects', project, config);\r\n }\r\n\r\n function AddProjects(project) {\r\n\r\n var configNew = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n configNew.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/SaveProjectMaster', project, configNew);\r\n }\r\n\r\n function EditProjects(project) {\r\n return $http.put($rootScope.endPoint + 'CRMProjectMaster/Update', project, config);\r\n }\r\n\r\n function AllPropertyProjectsRead(project) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllPropertyandProjectRead', project, config);\r\n }\r\n\r\n // function GetAllWaitingForApproval(CompanyId) {\r\n // return $http.get($rootScope.endPoint + 'CRMProjectMaster/GetAllWaitingForApproval/' + CompanyId, config);\r\n // }\r\n\r\n // function GetAllbackFromCorrection(CompanyId) {\r\n // return $http.get($rootScope.endPoint + 'CRMProjectMaster/GetAllReSubmited/' + CompanyId, config);\r\n // }\r\n\r\n\r\n // function getAllApproved(CompanyId) {\r\n // return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllApproved/' + CompanyId, config);\r\n // }\r\n // function getAllBackForCorrection(CompanyId) {\r\n // return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllBlockandBack/' + CompanyId, config);\r\n // }\r\n\r\n \r\n function DeleteProjectid(ProjectId) {\r\n return $http.delete($rootScope.endPoint + 'CRMProjectMaster/DeleteProject/' + ProjectId, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.department')\r\n .service('DepartmentServices', DepartmentServices);\r\n\r\n DepartmentServices.$inject = ['$http', '$rootScope'];\r\n\r\n function DepartmentServices($http, $rootScope) {\r\n this.AddDepartment = AddDepartment;\r\n this.EditDepartment = EditDepartment;\r\n this.removeDepartment = removeDepartment;\r\n this.getAllDepartments = getAllDepartments;\r\n this.getDepartmentById = getDepartmentById;\r\n this.getCompanyById = getCompanyById;\r\n this.getActiveDepartments = getActiveDepartments;\r\n this.changeActiveDepartment = changeActiveDepartment;\r\n this.GetDepartmentByCompanyId = GetDepartmentByCompanyId;\r\n this.getDepOfParentCompanies = getDepOfParentCompanies;\r\n this.CheckCode = CheckCode;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllDepartments(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'Department/AllDepartments/' + CompanyId, config);\r\n }\r\n\r\n function getActiveDepartments(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Department/GetActiveDepartments', config);\r\n }\r\n\r\n function getCompanyById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Company/GetById', config);\r\n }\r\n\r\n function getDepartmentById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Department/GetById', config);\r\n }\r\n\r\n function CheckCode(companyId,code,id) {\r\n return $http.get($rootScope.endPoint + 'Department/isCodeExist/'+ companyId + '?code=' + code +'&id=' + id , config);\r\n }\r\n\r\n function AddDepartment(Department) {\r\n return $http.post($rootScope.endPoint + 'Department/Create', Department, {}, config);\r\n }\r\n\r\n function EditDepartment(Department) {\r\n return $http.put($rootScope.endPoint + 'Department/Modify', Department, config);\r\n }\r\n\r\n function removeDepartment(id) {\r\n return $http.delete($rootScope.endPoint + 'Department/Delete/' + id, config);\r\n }\r\n\r\n function GetDepartmentByCompanyId(id) {\r\n return $http.get($rootScope.endPoint + 'Department/GetDepartmentByCompanyId/' + id, config);\r\n }\r\n\r\n function changeActiveDepartment(id) {\r\n return $http.post($rootScope.endPoint + 'Department/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getDepOfParentCompanies(obj) {\r\n return $http.post($rootScope.endPoint + 'Department/GetDepOfParentCompanies', obj, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.designation')\r\n .service('DesignationService', DesignationService);\r\n\r\n DesignationService.$inject = ['$http', '$rootScope'];\r\n\r\n function DesignationService($http, $rootScope) {\r\n //this.GetDesinationbyDepartmentid = GetDesinationbyDepartmentid;\r\n this.AddDesignation = AddDesignation;\r\n this.EditDesignation = EditDesignation;\r\n this.removeDesignation = removeDesignation;\r\n this.getAllDesignation = getAllDesignation; \r\n // this.getReportingDesignation = getReportingDesignation;\r\n // this.getAllDepartment = getAllDepartment;\r\n // this.getAllRoleById = getAllRoleById;\r\n this.changeActiveDesignation = changeActiveDesignation;\r\n this.GetDesigByDepId = GetDesigByDepId;\r\n this.getRepToDesig = getRepToDesig;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n // function getReportingDesignation(DesignationId) {\r\n // return $http.get($rootScope.endPoint + 'Designation/GetDesigByDepId/' + DesignationId);\r\n // }\r\n\r\n // function GetDesinationbyDepartmentid(departmentid) {\r\n // return $http.get($rootScope.endPoint + 'Designation/GetDesignationbyId/' + departmentid);\r\n // }\r\n\r\n function GetDesigByDepId(id) {\r\n return $http.get($rootScope.endPoint + 'Designation/GetDesigByDepId/' + id, config);\r\n }\r\n\r\n function getAllDesignation(companyId) {\r\n return $http.get($rootScope.endPoint + 'Designation/AllDesignations/' + companyId, config);\r\n }\r\n\r\n function getRepToDesig(depId) {\r\n return $http.get($rootScope.endPoint + 'Designation/getRepToDesig/' + depId, config);\r\n }\r\n\r\n function AddDesignation(Designation) {\r\n return $http.post($rootScope.endPoint + 'Designation/Create', Designation, config);\r\n }\r\n\r\n function EditDesignation(Designation) {\r\n return $http.put($rootScope.endPoint + 'Designation/Modify', Designation, config);\r\n }\r\n\r\n function removeDesignation(id) {\r\n return $http.delete($rootScope.endPoint + 'Designation/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveDesignation(id) {\r\n return $http.post($rootScope.endPoint + 'Designation/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .service('DrawingSubService', DrawingSubService);\r\n\r\n DrawingSubService.$inject = ['$http', '$rootScope'];\r\n\r\n function DrawingSubService($http, $rootScope) {\r\n //Declcure Function //\r\n this.AddDrawingSub = AddDrawingSub;\r\n this.editDrawingSub = editDrawingSub;\r\n this.removeDrawingSub = removeDrawingSub;\r\n this.changeActiveDrawingSub = changeActiveDrawingSub;\r\n this.getAllDrawingSub = getAllDrawingSub;\r\n this.GetDrawingSubByDrawingId = GetDrawingSubByDrawingId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function AddDrawingSub(DrawingSub) {\r\n return $http.post($rootScope.endPoint + 'SubjectDrawingMaster/Create', DrawingSub, config);\r\n }\r\n function editDrawingSub(DrawingSub) {\r\n return $http.put($rootScope.endPoint + 'SubjectDrawingMaster/Modify', DrawingSub, config);\r\n }\r\n\r\n function removeDrawingSub(id) {\r\n return $http.delete($rootScope.endPoint + 'SubjectDrawingMaster/Delete/' + id, config);\r\n }\r\n\r\n function getAllDrawingSub() {\r\n return $http.get($rootScope.endPoint + 'SubjectDrawingMaster/GetAllDrawingSub', config);\r\n }\r\n\r\n function changeActiveDrawingSub(id) {\r\n return $http.post($rootScope.endPoint + 'SubjectDrawingMaster/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function GetDrawingSubByDrawingId(obj) {\r\n return $http.post($rootScope.endPoint + 'SubjectDrawingMaster/GetDrawingSubByDrawingId/', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .service('DrawingTitleService', DrawingTitleService);\r\n\r\n DrawingTitleService.$inject = ['$http', '$rootScope'];\r\n\r\n function DrawingTitleService($http, $rootScope) {\r\n //Declcure Function //\r\n this.AddDrawingTitle = AddDrawingTitle;\r\n this.editDrawingTitle = editDrawingTitle;\r\n this.removeDrawingTitle = removeDrawingTitle;\r\n this.changeActiveDrawingTitle = changeActiveDrawingTitle;\r\n this.getAllDrawingTitle = getAllDrawingTitle;\r\n this.getAllDrawingTitleForUpload = getAllDrawingTitleForUpload;\r\n\r\n this.GetMapDrawingType = GetMapDrawingType;\r\n this.GetMapDrawingSubject = GetMapDrawingSubject;\r\n this.GetMapDrawingTitle = GetMapDrawingTitle;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function AddDrawingTitle(DrawingTitle) {\r\n return $http.post($rootScope.endPoint + 'DrawingTitle/Create', DrawingTitle, config);\r\n }\r\n function editDrawingTitle(DrawingTitle) {\r\n return $http.put($rootScope.endPoint + 'DrawingTitle/Modify', DrawingTitle, config);\r\n }\r\n\r\n function removeDrawingTitle(id) {\r\n return $http.delete($rootScope.endPoint + 'DrawingTitle/Delete/' + id, config);\r\n }\r\n\r\n function getAllDrawingTitle() {\r\n return $http.get($rootScope.endPoint + 'DrawingTitle/GetAllDrawingTitle', config);\r\n }\r\n\r\n function getAllDrawingTitleForUpload(obj) {\r\n return $http.post($rootScope.endPoint + 'DrawingTitle/getAllDrawingTitleForUpload', obj, config);\r\n }\r\n\r\n ////\r\n\r\n function GetMapDrawingType(obj){\r\n return $http.post($rootScope.endPoint + 'DrawingTitle/GetMapDrawingType', obj, config);\r\n }\r\n\r\n function GetMapDrawingSubject(obj){\r\n return $http.post($rootScope.endPoint + 'DrawingTitle/GetMapDrawingSubject', obj, config);\r\n }\r\n\r\n function GetMapDrawingTitle(obj){\r\n return $http.post($rootScope.endPoint + 'DrawingTitle/GetMapDrawingTitle', obj, config);\r\n }\r\n\r\n function changeActiveDrawingTitle(id) {\r\n return $http.post($rootScope.endPoint + 'DrawingTitle/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .service('DrawingTypeService', DrawingTypeService);\r\n\r\n DrawingTypeService.$inject = ['$http', '$rootScope'];\r\n\r\n function DrawingTypeService($http, $rootScope) {\r\n //Declcure Function //\r\n this.AddDrawingType = AddDrawingType;\r\n this.editDrawingType = editDrawingType;\r\n this.removeDrawingType = removeDrawingType;\r\n this.changeActiveDrawingType = changeActiveDrawingType;\r\n this.getAllDrawingTypes = getAllDrawingTypes;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function AddDrawingType(DrawingType) {\r\n return $http.post($rootScope.endPoint + 'DrawingMaster/Create', DrawingType, config);\r\n }\r\n function editDrawingType(DrawingType) {\r\n return $http.put($rootScope.endPoint + 'DrawingMaster/Modify', DrawingType, config);\r\n }\r\n\r\n function removeDrawingType(id) {\r\n return $http.delete($rootScope.endPoint + 'DrawingMaster/Delete/' + id, config);\r\n }\r\n\r\n function getAllDrawingTypes() {\r\n return $http.get($rootScope.endPoint + 'DrawingMaster/GetAllDrawingType', config);\r\n }\r\n\r\n function changeActiveDrawingType(id) {\r\n return $http.post($rootScope.endPoint + 'DrawingMaster/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .service('DrawingUpoadService', DrawingUpoadService);\r\n\r\n DrawingUpoadService.$inject = ['$http', '$rootScope'];\r\n\r\n function DrawingUpoadService($http, $rootScope) {\r\n //Declcure Function //\r\n this.AddDrawingUpload = AddDrawingUpload;\r\n this.editDrawingUpload = editDrawingUpload;\r\n this.removeDrawingUpload = removeDrawingUpload;\r\n this.removeRevisionDrawing = removeRevisionDrawing;\r\n this.changeActiveDrawingUpload = changeActiveDrawingUpload;\r\n // this.GetAllDrawingUpload = GetAllDrawingUpload;\r\n this.getDrawingUploadByProjectId = getDrawingUploadByProjectId;\r\n this.GetAllDrawingDrafts = GetAllDrawingDrafts;\r\n this.GetAllDrawingWaitingForApproval = GetAllDrawingWaitingForApproval;\r\n this.GetAllDrawingbackFromCorrection = GetAllDrawingbackFromCorrection;\r\n this.GetAllDrawingRevisionbackFromCorrection = GetAllDrawingRevisionbackFromCorrection;\r\n this.getAllDrawingApproved = getAllDrawingApproved;\r\n this.getAllProjectdrawingBackForCorrection = getAllProjectdrawingBackForCorrection;\r\n this.AddDrawingRejectionNotes = AddDrawingRejectionNotes;\r\n this.DrawingSendApproval = DrawingSendApproval;\r\n this.ApprovedDrawingProject = ApprovedDrawingProject;\r\n this.ReSubmittedDrawingProject = ReSubmittedDrawingProject;\r\n this.BlockedDrawingProject = BlockedDrawingProject;\r\n this.GetAllDrawingRevision = GetAllDrawingRevision;\r\n this.DrawingRevisionSendApproval = DrawingRevisionSendApproval;\r\n this.GetAllDrawingRevisionWaitingForApproval = GetAllDrawingRevisionWaitingForApproval;\r\n this.RevisedDrawingProject = RevisedDrawingProject;\r\n this.AddRevisionNotes = AddRevisionNotes;\r\n this.RevisionReSubmittedDrawingProject = RevisionReSubmittedDrawingProject;\r\n this.getAllRevisionDrawingUpload = getAllRevisionDrawingUpload;\r\n this.AddRevisionDrawingRejectionNotes = AddRevisionDrawingRejectionNotes;\r\n this.getAllRevisiondrawingBackForCorrection = getAllRevisiondrawingBackForCorrection;\r\n this.RevisedApprovedDrawingProject = RevisedApprovedDrawingProject;\r\n this.getAllDrawingbyDocId = getAllDrawingbyDocId;\r\n this.UpdateDrawingDoc = UpdateDrawingDoc;\r\n\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddDrawingUpload(DrawingSub) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/Create', DrawingSub, config);\r\n }\r\n\r\n function UpdateDrawingDoc(DrawingSub) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/updateDrawingDoc', DrawingSub, config);\r\n }\r\n function editDrawingUpload(drawing) {\r\n return $http.put($rootScope.endPoint + 'DrawingUpload/UpdateRevision', drawing, config);\r\n }\r\n\r\n function removeDrawingUpload(id) {\r\n return $http.delete($rootScope.endPoint + 'DrawingUpload/Delete/' + id, config);\r\n }\r\n function removeRevisionDrawing(DrawingDocId, RevisionNo) {\r\n return $http.delete($rootScope.endPoint + 'DrawingUpload/RevisionDelete/' + DrawingDocId + '?RevisionNo=' + RevisionNo, config);\r\n }\r\n // function GetAllDrawingUpload(id) {\r\n // return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingUpload/'+id ,config);\r\n // }\r\n function GetAllDrawingRevision(DrawingDocId) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingRevision/' + DrawingDocId, config);\r\n }\r\n\r\n\r\n function getDrawingUploadByProjectId(obj) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/GetDrawingUploadByProjectId/', obj, config);\r\n }\r\n function changeActiveDrawingUpload(id) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function GetAllDrawingDrafts(ProjectId) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingDrafts/' + ProjectId, config);\r\n }\r\n function GetAllDrawingRevisedDrafts(DrawingDocId) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllRevisionDrafts/' + DrawingDocId, config);\r\n }\r\n\r\n function GetAllDrawingWaitingForApproval(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingWaitingForApproval/' + id, {}, config);\r\n }\r\n function GetAllDrawingRevisionWaitingForApproval(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllRevisedDrawingWaitingForApproval/' + id, {}, config);\r\n }\r\n\r\n function GetAllDrawingbackFromCorrection(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingReSubmited/' + id, {}, config);\r\n }\r\n function GetAllDrawingRevisionbackFromCorrection(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllRevisionDrawingReSubmited/' + id, {}, config);\r\n }\r\n function getAllDrawingApproved(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingApproved/' + id, {}, config);\r\n }\r\n\r\n function getAllDrawingbyDocId(docId) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingByDocId/' + docId, {}, config);\r\n }\r\n\r\n function getAllDrawingRevised(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingRevised/' + id, {}, config);\r\n }\r\n\r\n function getAllProjectdrawingBackForCorrection(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/GetAllDrawingBlockandBack/' + id, config);\r\n }\r\n function getAllRevisiondrawingBackForCorrection(id) {\r\n return $http.get($rootScope.endPoint + 'DrawingUpload/getAllRevisiondrawingBackForCorrectionBlockandback/' + id, config);\r\n }\r\n\r\n function getAllRevisionDrawingUpload(obj) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/getAllRevisionDrawingUpload/', obj, config);\r\n }\r\n\r\n\r\n\r\n function AddDrawingRejectionNotes(objDTO) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/Reject', objDTO, config);\r\n }\r\n\r\n function AddRevisionNotes(objDTO) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/Notes', objDTO, config);\r\n }\r\n\r\n function AddRevisionDrawingRejectionNotes(objDTO) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/RevisionReject', objDTO, config);\r\n }\r\n\r\n function DrawingSendApproval(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/DrawingSendforApproval/' + DrawingDocId + '?Note=' + Note, config);\r\n }\r\n\r\n function DrawingRevisionSendApproval(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/DrawingRevisionSendforApproval/' + DrawingDocId + '?Note=' + Note, config);\r\n }\r\n // function DrawingRevisionSendApproval(obj) {\r\n // return $http.put($rootScope.endPoint + 'DrawingUpload/UpdateRevision/', obj, config);\r\n // }\r\n\r\n function ApprovedDrawingProject(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/DrawingApproved/' + DrawingDocId + '?Note=' + Note, {}, config);\r\n }\r\n function RevisedApprovedDrawingProject(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/DrawingRevised/' + DrawingDocId + '?Note=' + Note, {}, config);\r\n }\r\n\r\n\r\n\r\n // \r\n function RevisedDrawingProject(obj) {\r\n return $http.put($rootScope.endPoint + 'DrawingUpload/UpdateRevision/', obj, config);\r\n }\r\n\r\n function ReSubmittedDrawingProject(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/DrawingResubmit/' + DrawingDocId + '?Note=' + Note, config);\r\n }\r\n\r\n function RevisionReSubmittedDrawingProject(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/RevisionReSubmittedDrawingProject/' + DrawingDocId + '?Note=' + Note, config);\r\n }\r\n\r\n function BlockedDrawingProject(DrawingDocId, Note) {\r\n return $http.post($rootScope.endPoint + 'DrawingUpload/DrawingBlock/' + DrawingDocId + '?Note=' + Note, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.employee')\r\n .service('EmployeeService', EmployeeService);\r\n\r\n EmployeeService.$inject = ['$http', '$rootScope'];\r\n\r\n function EmployeeService($http, $rootScope) {\r\n this.AddEmployee = AddEmployee;\r\n this.EditEmployee = EditEmployee;\r\n this.RemoveEmployee = RemoveEmployee;\r\n this.changeActiveEmployee = changeActiveEmployee;\r\n this.getAllEmployees = getAllEmployees;\r\n this.getAllCompanyEmployees = getAllCompanyEmployees;\r\n this.UploadFiles = UploadFiles;\r\n this.updateProfilePic = updateProfilePic;\r\n this.getAllEmpAcademyInfo = getAllEmpAcademyInfo;\r\n this.getAllEmployeesforTeam =getAllEmployeesforTeam;\r\n this.addNewEmpAcademicInfo = addNewEmpAcademicInfo;\r\n this.removeEmpAcademyInfo = removeEmpAcademyInfo;\r\n this.getAllEmpExpInfo = getAllEmpExpInfo;\r\n this.addNewEmpExperience = addNewEmpExperience;\r\n this.removeEmpExpInfo = removeEmpExpInfo;\r\n this.GetEmpwithUserAc=GetEmpwithUserAc;\r\n this.GetAllEmployeesByCompanyId =GetAllEmployeesByCompanyId;\r\n\r\n //////////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function updateProfilePic(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Employee/uploadProfilePic/', data, config);\r\n }\r\n\r\n function getAllEmployees(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'Employee/AllEmployees/' + CompanyId, config);\r\n }\r\n function GetAllEmployeesByCompanyId(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'Employee/GetAllEmployeesByCompanyId/' + CompanyId, config);\r\n }\r\n function getAllEmployeesforTeam(id) {\r\n return $http.get($rootScope.endPoint + 'Employee/getAllEmployeesforTeam/' + id, config);\r\n }\r\n function getAllCompanyEmployees(DesignationId) {\r\n return $http.get($rootScope.endPoint + 'Employee/AllCompanyEmployees/' + DesignationId, config);\r\n }\r\n\r\n function AddEmployee(emp) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Employee/createDoc', emp, config);\r\n }\r\n\r\n function EditEmployee(employee) {\r\n return $http.put($rootScope.endPoint + 'Employee/Modify', employee, config);\r\n }\r\n\r\n function GetEmpwithUserAc(id) {\r\n return $http.get($rootScope.endPoint + 'Employee/GetEmpWithUserAcc/'+id, config);\r\n }\r\n function RemoveEmployee(EmployeeId) {\r\n return $http.delete($rootScope.endPoint + 'Employee/Delete/' + EmployeeId, config);\r\n }\r\n\r\n function changeActiveEmployee(EmployeeId) {\r\n return $http.post($rootScope.endPoint + 'Employee/ChangeActive/' + EmployeeId, {}, config);\r\n }\r\n\r\n function UploadFiles($scope, $http, $rootScope, data) {\r\n var config = {\r\n headers: {\r\n 'Content-Type': undefined\r\n }\r\n };\r\n return $http.post($rootScope.endpoint + 'api/variableupload/upload/', data, config);\r\n }\r\n\r\n function getEmployeesChart(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'EmployeeChart/View/' + CompanyId, config);\r\n }\r\n\r\n function getAllEmpAcademyInfo(empId) {\r\n return $http.get($rootScope.endPoint + 'EmployeeAcademy/getAllEmpAcademicInfo/' + empId, config);\r\n }\r\n\r\n function addNewEmpAcademicInfo(data) {\r\n var config = {\r\n headers: {\r\n 'Content-Type': undefined\r\n }\r\n };\r\n return $http.post($rootScope.endPoint + 'EmployeeAcademy/createEmpAcademyInfo/', data, config);\r\n }\r\n\r\n function removeEmpAcademyInfo(id) {\r\n return $http.delete($rootScope.endPoint + 'EmployeeAcademy/removeEmpAcademyInfo/' + id, config);\r\n }\r\n\r\n function getAllEmpExpInfo(empId) {\r\n return $http.get($rootScope.endPoint + 'EmpExperience/getAllEmpExpInfo/' + empId, config);\r\n }\r\n\r\n function addNewEmpExperience(data) {\r\n return $http.post($rootScope.endPoint + 'EmpExperience/createEmpExpInfo', data, config);\r\n }\r\n\r\n function removeEmpExpInfo(id) {\r\n return $http.delete($rootScope.endPoint + 'EmpExperience/removeEmpExpInfo/' + id, config);\r\n }\r\n }\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.employeeChart')\r\n .service('EmployeeChartService', EmployeeChartService);\r\n\r\n EmployeeChartService.$inject = ['$http', '$rootScope'];\r\n\r\n function EmployeeChartService($http, $rootScope) {\r\n // this.AddEmployee = AddEmployee;\r\n // this.EditEmployee = EditEmployee;\r\n // this.RemoveEmployee = RemoveEmployee;\r\n // this.getAllEmployees = getAllEmployees;\r\n // this.GetDepartmentByCompanyId = GetDepartmentByCompanyId;\r\n // this.GetDesignationByDepartmentId = GetDesignationByDepartmentId;\r\n\r\n this.getEmployeesChart = getEmployeesChart;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getEmployeesChart(companyId){\r\n return $http.get($rootScope.endPoint + 'EmployeeChart/View/' + companyId, config);\r\n }\r\n\r\n \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.projectMgtandApp')\r\n .service('estimationReportaService', estimationReportaService);\r\n\r\n estimationReportaService.$inject = ['$http', '$rootScope'];\r\n\r\n function estimationReportaService($http, $rootScope) {\r\n this.getAllProjectIoca = getAllProjectIoca;\r\n this.insertManyProjectIoca = insertManyProjectIoca;\r\n this.removeProjectIocaById = removeProjectIocaById;\r\n this.getAllProjectCountry = getAllProjectCountry;\r\n this.getAllProjectCategory = getAllProjectCategory;\r\n this.getAllProjectSubcategory = getAllProjectSubcategory;\r\n this.getAllProjectCategoryType = getAllProjectCategoryType;\r\n this.LabourCostEstimation = LabourCostEstimation;\r\n this.ShowBudgetReport = ShowBudgetReport;\r\n this.ShowCostVariationReport = ShowCostVariationReport;\r\n this.getBoQFoc = getBoQFoc;\r\n this.getBoQCategory = getBoQCategory;\r\n this.getBoQSubCategory = getBoQSubCategory;\r\n this.getBoQType = getBoQType;\r\n this.getBoQIOCA = getBoQIOCA;\r\n this.ShowAllPrjCostReport = ShowAllPrjCostReport;\r\n\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function insertManyProjectIoca(iocaList) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/insertManyProjectIoca', iocaList, config);\r\n }\r\n\r\n function removeProjectIocaById(projectId, iocaId) {\r\n return $http.delete($rootScope.endPoint + 'ProjectIoca/removeProjectIocaById/' + projectId + '/' + iocaId, config);\r\n }\r\n\r\n function getAllProjectCountry(projectId) {\r\n return $http.get($rootScope.endPoint + 'ProjectIoca/getcountry/' + projectId, config);\r\n }\r\n\r\n function getAllProjectCategory(projectId, CountryId) {\r\n return $http.get($rootScope.endPoint + 'ProjectIoca/getcategory/' + projectId + '/' + CountryId, config);\r\n }\r\n\r\n function getAllProjectSubcategory(category) {\r\n return $http.post($rootScope.endPoint + 'CommonReport/GetSubCategory', category, config);\r\n }\r\n\r\n function getAllProjectCategoryType(SubCategory) {\r\n return $http.post($rootScope.endPoint + 'CommonReport/GetType', SubCategory, config);\r\n }\r\n\r\n function getAllProjectIoca(IOCA) {\r\n return $http.post($rootScope.endPoint + 'CommonReport/GetIOCA', IOCA, config);\r\n }\r\n\r\n function LabourCostEstimation(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'Reports/ShowLabourCostEstimationReport', obj, config);\r\n }\r\n\r\n \r\n function ShowBudgetReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowBudgetReport', obj, config);\r\n }\r\n\r\n function ShowCostVariationReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowCostVariationReport', obj, config);\r\n }\r\n\r\n // function MaterialCostEstimation(obj) {\r\n // config['responseType'] = 'arraybuffer';\r\n // return $http.post($rootScope.endPoint + 'Reports/ShowMaterialCostEstimationReport', obj, config);\r\n // }\r\n // function MachineryCostEstimation(obj) {\r\n // config['responseType'] = 'arraybuffer';\r\n // return $http.post($rootScope.endPoint + 'Reports/ShowMachineryCostEstimationReport', obj, config);\r\n // }\r\n // function ConsumablesCostEstimation(obj) {\r\n // config['responseType'] = 'arraybuffer';\r\n // var config = {\r\n // headers: {\r\n // \"Token\": $rootScope.token,\r\n // \"responseType\": 'arraybuffer'\r\n // }\r\n // }\r\n // return $http.post($rootScope.endPoint + 'Reports/ShowMaterialCostEstimationReport', obj, config);\r\n // }\r\n // function MachineryCostEstimation(obj) {\r\n // var config = {\r\n // headers: {\r\n // \"Token\": $rootScope.token,\r\n // \"responseType\": 'arraybuffer'\r\n // }\r\n // }\r\n // return $http.post($rootScope.endPoint + 'Reports/ShowMachineryCostEstimationReport', obj, config);\r\n // }\r\n // function ConsumablesCostEstimation(obj) {\r\n // var config = {\r\n // headers: {\r\n // \"Token\": $rootScope.token,\r\n // \"responseType\": 'arraybuffer'\r\n // }\r\n // }\r\n // return $http.post($rootScope.endPoint + 'Reports/ShowConsumableCostEstimationReport', obj, config);\r\n // }\r\n function ShowAllPrjCostReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowAllPrjCostReport', obj, config);\r\n }\r\n\r\n\r\n function getBoQFoc(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getRPTBoqFoc', boq, config);\r\n }\r\n\r\n function getBoQCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPTBoQCategory', boq, config);\r\n }\r\n\r\n function getBoQSubCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPTBoQSubCategory', boq, config);\r\n }\r\n\r\n function getBoQType(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPTBoQType', boq, config);\r\n }\r\n\r\n function getBoQIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPTBoQIOCA', boq, config);\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .service('GeneralSequenceService', GeneralSequenceService);\r\n\r\n GeneralSequenceService.$inject = ['$http', '$rootScope'];\r\n\r\n function GeneralSequenceService($http, $rootScope) {\r\n\r\n this.AddGeneralSequence = AddGeneralSequence;\r\n this.getAllGeneralSequence = getAllGeneralSequence;\r\n this.UpdateGeneralSequence = UpdateGeneralSequence;\r\n this.RemoveGeneralSequence = RemoveGeneralSequence;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddGeneralSequence(obj) {\r\n return $http.post($rootScope.endPoint + 'GeneralSequence/CreateSequence', obj, config);\r\n }\r\n\r\n function UpdateGeneralSequence(obj) {\r\n return $http.put($rootScope.endPoint + 'GeneralSequence/UpdateSequence', obj, config);\r\n }\r\n\r\n function RemoveGeneralSequence(obj) {\r\n return $http.post($rootScope.endPoint + 'GeneralSequence/RemoveSequence', obj, config);\r\n }\r\n\r\n function getAllGeneralSequence(id) {\r\n return $http.get($rootScope.endPoint + 'GeneralSequence/GetAllGeneralSequence/' + id, config);\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.generateKpostCode')\r\n .service('generateKpostCodeService', generateKpostCodeService);\r\n\r\n\r\n generateKpostCodeService.$inject = ['$rootScope', '$http'];\r\n function generateKpostCodeService($rootScope, $http) {\r\n //Decl\r\n this.getAllCompany = getAllCompany;\r\n this.getSubCompByCompId = getSubCompByCompId;\r\n this.GetDepartmentListByProject = GetDepartmentListByProject;\r\n this.GetDesignationListByDepartment = GetDesignationListByDepartment;\r\n this.GetEmployeeListByDesignation = GetEmployeeListByDesignation;\r\n this.GetGenerateKpostCode = GetGenerateKpostCode;\r\n this.savePostBoxCode = savePostBoxCode;\r\n this.SaveGenerateCode = SaveGenerateCode;\r\n this.getPostBoxCodeList = getPostBoxCodeList;\r\n this.getEmployeeListByCmp = getEmployeeListByCmp;\r\n this.getPostBoxcodeByEmp = getPostBoxcodeByEmp;\r\n this.saveMapPostBoxCode = saveMapPostBoxCode;\r\n this.getMapPostBoxCodeList = getMapPostBoxCodeList;\r\n\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n // Fuction\r\n function getAllCompany() {\r\n return $http.get($rootScope.endPoint + 'KpostCodeGenerate/GetCompanyListByEmp', config);\r\n }\r\n function getSubCompByCompId(companyId) {\r\n return $http.get($rootScope.endPoint + 'Company/GetSubCompByCompId/' + companyId);\r\n }\r\n\r\n function GetDepartmentListByProject(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/GetDepartmentListByProject', obj, config);\r\n }\r\n\r\n function GetDesignationListByDepartment(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/GetDesignationListByDepartment', obj, config);\r\n }\r\n\r\n function GetEmployeeListByDesignation(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/GetEmployeeListByDesignation', obj, config);\r\n }\r\n\r\n function GetGenerateKpostCode(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/GetGenerateKpostCode', obj, config);\r\n }\r\n\r\n function SaveGenerateCode(obj) {\r\n return $http.put($rootScope.endPoint + 'KpostCodeGenerate/SaveGenerateKpostCode', obj, config);\r\n }\r\n\r\n function savePostBoxCode(obj) {\r\n return $http.put($rootScope.endPoint + 'KpostCodeGenerate/SavePostBoxCode', obj, config);\r\n }\r\n\r\n function getPostBoxCodeList(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/getPostBoxCodeList', obj, config);\r\n }\r\n\r\n function getEmployeeListByCmp(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/getAllEmployee', obj, config);\r\n }\r\n\r\n function getPostBoxcodeByEmp(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/getPostBoxcodeByEmpList', obj, config);\r\n }\r\n function getMapPostBoxCodeList(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostCodeGenerate/getMapPostBoxCodeList', obj, config);\r\n }\r\n function saveMapPostBoxCode(obj) {\r\n return $http.put($rootScope.endPoint + 'KpostCodeGenerate/saveMapPostBoxCode', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.holiday')\r\n .service('HolidayMasterService', HolidayMasterService);\r\n\r\n HolidayMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function HolidayMasterService($http, $rootScope) {\r\n\r\n this.AddHoliday = AddHoliday;\r\n this.EditHoliday = EditHoliday;\r\n this.getAllHolidayMaster = getAllHolidayMaster;\r\n this.RemoveHoliday = RemoveHoliday;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddHoliday(holiday) {\r\n return $http.post($rootScope.endPoint + 'HolidayMaster/Create', holiday, config);\r\n }\r\n\r\n function EditHoliday(holiday) {\r\n return $http.put($rootScope.endPoint + 'HolidayMaster/Update', holiday, config);\r\n }\r\n\r\n function RemoveHoliday(id) { \r\n return $http.delete($rootScope.endPoint + 'HolidayMaster/Delete/' + id, config);\r\n }\r\n\r\n function getAllHolidayMaster() {\r\n return $http.get($rootScope.endPoint + 'HolidayMaster/GetAllHolidays', config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('IndentService', IndentService);\r\n\r\n IndentService.$inject = ['$http', '$rootScope'];\r\n\r\n function IndentService($http, $rootScope) {\r\n this.getIoca = getIoca;\r\n this.getLocation = getLocation;\r\n this.getTier = getTier;\r\n this.getMaterialItems = getMaterialItems;\r\n this.CreateIndent = CreateIndent;\r\n this.getIndentByStatus = getIndentByStatus;\r\n this.sendForApproval = sendForApproval;\r\n this.Approval = Approval;\r\n this.getMachineryItems = getMachineryItems;\r\n this.getConsumableItems = getConsumableItems;\r\n this.getMachineryIndentByStatus = getMachineryIndentByStatus;\r\n this.getConsumableIndentByStatus = getConsumableIndentByStatus;\r\n this.reject = reject;\r\n this.resubmit = resubmit;\r\n this.block = block;\r\n this.remove = remove;\r\n this.getCount = getCount;\r\n this.getDraft = getDraft;\r\n this.getCategoryofCA = getCategoryofCA;\r\n this.getSubCategoryofCA = getSubCategoryofCA;\r\n this.getTypeofCA = getTypeofCA;\r\n\r\n this.DeleteIndentDetails = DeleteIndentDetails;\r\n this.GetIndentDtlsForUpdate = GetIndentDtlsForUpdate;\r\n this.UpdateIndent = UpdateIndent;\r\n\r\n\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getCategoryofCA(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetCAItemsforIndent\", obj, config);\r\n }\r\n function getSubCategoryofCA(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetCAItemsforIndent\", obj, config);\r\n }\r\n function getTypeofCA(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetCAItemsforIndent\", obj, config);\r\n }\r\n function getIoca(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetCAItemsforIndent\", obj, config);\r\n }\r\n function getDraft(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetDraftIndent\", obj, config);\r\n }\r\n function getCount(str, ProjectId) {\r\n return $http.get($rootScope.endPoint + \"Indent/GetCount/\" + str + '?ProjectId=' + ProjectId, config);\r\n }\r\n function remove(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/remove\", obj, config);\r\n }\r\n function block(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/Block\", obj, config);\r\n }\r\n function resubmit(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/Resubmit\", obj, config);\r\n }\r\n function reject(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/Reject\", obj, config);\r\n }\r\n function getConsumableIndentByStatus(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetConsumableIndentByStatus\", obj, config);\r\n }\r\n function getMachineryIndentByStatus(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetMachineryIndentByStatus\", obj, config);\r\n }\r\n function getIndentByStatus(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetMaterialforIndentByStatus\", obj, config);\r\n }\r\n function sendForApproval(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/sendForApproval\", obj, config);\r\n }\r\n function Approval(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/Approval\", obj, config);\r\n }\r\n function CreateIndent(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/CreateIndent\", obj, config);\r\n }\r\n\r\n function UpdateIndent(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/UpdateIndent\", obj, config);\r\n }\r\n\r\n function getMaterialItems(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetMaterialforIndent\", obj, config);\r\n }\r\n function getMachineryItems(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetMachineryforIndent\", obj, config);\r\n }\r\n function getConsumableItems(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetConsumableforIndent\", obj, config);\r\n }\r\n function getLocation(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetLocationforIndent\", obj, config);\r\n }\r\n function getTier(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetTierforIndent\", obj, config);\r\n }\r\n\r\n function DeleteIndentDetails(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/DeleteIndentDetails\", obj, config);\r\n }\r\n\r\n function GetIndentDtlsForUpdate(obj) {\r\n return $http.post($rootScope.endPoint + \"Indent/GetIndentDtlsForUpdate\", obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('ItemToItemService', ItemToItemService);\r\n\r\n ItemToItemService.$inject = ['$http', '$rootScope'];\r\n\r\n function ItemToItemService($http, $rootScope) {\r\n this.getAllCopyBoQ = getAllCopyBoQ;\r\n this.getAllTiersByBoQ = getAllTiersByBoQ;\r\n this.getBoQCountry = getBoQCountry;\r\n this.getBoQCategory = getBoQCategory;\r\n this.getBoQSubCategory = getBoQSubCategory;\r\n this.getBoQType = getBoQType;\r\n this.getBoQIOCA = getBoQIOCA;\r\n this.getAllBoQItem = getAllBoQItem;\r\n this.getTiersFromIOCA = getTiersFromIOCA;\r\n this.GetTiersForPlanningReport = GetTiersForPlanningReport;\r\n this.CheckLocation = CheckLocation;\r\n this.getBoQLoctoLoc = getBoQLoctoLoc;\r\n this.CopyBoQLocationToLocation = CopyBoQLocationToLocation;\r\n this.getBoQFoc = getBoQFoc;\r\n this.GetBoqItemandLoc = GetBoqItemandLoc;\r\n this.getAllBilledTiersByBoQ = getAllBilledTiersByBoQ;\r\n this.getGetWrkApvdTier = getGetWrkApvdTier;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function GetBoqItemandLoc(id, Status) {\r\n return $http.get($rootScope.endPoint + \"BoQ/GetBoqItemandLoc/\" + id + '?Status=' + Status, config);\r\n }\r\n\r\n function getAllBoQItem(boqItem) {\r\n return $http.post($rootScope.endPoint + \"BoQ/Get_BoQItem\", boqItem, config);\r\n }\r\n\r\n function getAllCopyBoQ(boqItem) {\r\n return $http.post($rootScope.endPoint + \"BoQ/GetCopyBoQ\", boqItem, config);\r\n }\r\n\r\n function getAllTiersByBoQ(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetTiersByBoQ', boq, config);\r\n }\r\n\r\n\r\n //Get Tiers List for RA Bill Screen\r\n function getAllBilledTiersByBoQ(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetBilledTiersByBoQ', boq, config);\r\n }\r\n\r\n function getBoQCountry(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_BoQCountries', boq, config);\r\n }\r\n\r\n function getBoQFoc(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getBoqFoc', boq, config);\r\n }\r\n\r\n function getBoQCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_BoQCategory', boq, config);\r\n }\r\n\r\n function getBoQSubCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_BoQSubCategory', boq, config);\r\n }\r\n\r\n function getBoQType(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_BoQType', boq, config);\r\n }\r\n\r\n function getBoQIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_BoQIOCA', boq, config);\r\n }\r\n\r\n function getTiersFromIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetTierFromIOCA', boq, config);\r\n }\r\n\r\n function GetTiersForPlanningReport(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetTiersForPlanningReport', boq, config);\r\n }\r\n\r\n\r\n function CheckLocation(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/CheckLocation', boq, config);\r\n }\r\n\r\n function getBoQLoctoLoc(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetBoQLocToLoc', boq, config);\r\n }\r\n\r\n function CopyBoQLocationToLocation(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/CopyBoqLocToLoc', boq, config);\r\n }\r\n //Work Approval Report Screen\r\n function getGetWrkApvdTier(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getGetWrkApvdTier', boq, config);\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.kpostBox')\r\n .service('KPostBoxService', KPostBoxService);\r\n\r\n KPostBoxService.$inject = ['$http', '$rootScope'];\r\n\r\n function KPostBoxService($http, $rootScope) {\r\n this.SaveKpostBoxId = SaveKpostBoxId;\r\n this.GetAllKpostBoxId = GetAllKpostBoxId;\r\n this.UpdateKpostBoxId = UpdateKpostBoxId;\r\n this.GetAllEmployeeAllocation = GetAllEmployeeAllocation;\r\n this.GetAllEmployee = GetAllEmployee;\r\n this.AllocateIdtoEmployee = AllocateIdtoEmployee;\r\n this.GetAllKpostBoxIdForAllocate = GetAllKpostBoxIdForAllocate;\r\n this.removeAllocatedEmployee = removeAllocatedEmployee;\r\n this.removeKpostBoxId = removeKpostBoxId;\r\n this.CreateKpostId = CreateKpostId;\r\n this.GetKpostEmployees = GetKpostEmployees;\r\n this.getAllCompany = getAllCompany;\r\n this.GetAllEmployeeRole = GetAllEmployeeRole;\r\n this.getContactsByKpostId = getContactsByKpostId;\r\n this.Add_to_Contact_Kpost = Add_to_Contact_Kpost;\r\n this.Add_to_Contact_Cms = Add_to_Contact_Cms;\r\n this.Remove_to_Contact_Kpost = Remove_to_Contact_Kpost;\r\n this.Remove_to_Contact_Cms = Remove_to_Contact_Cms;\r\n this.SaveKPostGroup = SaveKPostGroup;\r\n this.GetAllGroupCount = GetAllGroupCount;\r\n this.ReadKPostGroup_Consolidated_Contacts = ReadKPostGroup_Consolidated_Contacts;\r\n this.AddGroupMember_Kpost = AddGroupMember_Kpost;\r\n this.UpdateGroupMember_Cms = UpdateGroupMember_Cms;\r\n this.getGroupExistingContact = getGroupExistingContact;\r\n this.RemoveGroupMember_Cms = RemoveGroupMember_Cms;\r\n this.RemoveGroupMember_Kpost = RemoveGroupMember_Kpost;\r\n this.UpdateGroupMember_Kpost = UpdateGroupMember_Kpost;\r\n this.getContactByKpostId = getContactByKpostId;\r\n this.UploadFile = UploadFile;\r\n this.shareFile = shareFile;\r\n\r\n this.GetAllTaskWorkApproval = GetAllTaskWorkApproval;\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token,\r\n 'Access-Control-Allow-Origin': \"*\"\r\n }\r\n }\r\n\r\n function shareFile(kpost) {\r\n $rootScope.UserSendKpost = true;\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n return $http.post($rootScope.kpostEndPoint + 'katchup/sendKatchupMessage/', kpost, confignew);\r\n\r\n }\r\n\r\n function getContactByKpostId(id) {\r\n return $http.get($rootScope.endPoint + 'KPostBox/GetKpostContactByKpostId/' + id, config);\r\n }\r\n\r\n function getGroupExistingContact(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/GetGroupCount', kpost, config);\r\n }\r\n\r\n function ReadKPostGroup_Consolidated_Contacts(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/selectGroupContact', kpost, {}, config);\r\n }\r\n\r\n function getContactsByKpostId(KpostId) {\r\n return $http.get($rootScope.endPoint + 'KPostBox/GetKpostContactbyId/' + KpostId, config);\r\n }\r\n\r\n function GetKpostEmployees(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/GetKpostContact', kpost, {}, config);\r\n }\r\n\r\n function SaveKpostBoxId(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/CreateKPostBoxId', kpost, config);\r\n }\r\n\r\n function AllocateIdtoEmployee(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/AllocateIdtoEmployee', kpost, config);\r\n }\r\n\r\n function UpdateKpostBoxId(kpost) {\r\n return $http.put($rootScope.endPoint + 'KPostBox/UpdateKpostBoxId', kpost, config);\r\n }\r\n\r\n function GetAllKpostBoxId() {\r\n return $http.get($rootScope.endPoint + 'KPostBox/AllKPostBoxId', config);\r\n }\r\n\r\n function GetAllKpostBoxIdForAllocate() {\r\n return $http.get($rootScope.endPoint + 'KPostBox/GetAllKpostBoxIdForAllocate', config);\r\n }\r\n\r\n function GetAllEmployeeAllocation() {\r\n return $http.get($rootScope.endPoint + 'KPostBox/GetAllEmployeeAllocation', config);\r\n }\r\n\r\n function GetAllEmployee(obj) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/AllEmployee', obj, config);\r\n }\r\n\r\n function removeAllocatedEmployee(id) {\r\n return $http.delete($rootScope.endPoint + 'KPostBox/RemoveAllocatedEmployee/' + id, config);\r\n }\r\n\r\n function removeKpostBoxId(id) {\r\n return $http.delete($rootScope.endPoint + 'KPostBox/RemoveKpostBoxId/' + id, config);\r\n }\r\n\r\n function CreateKpostId(kpost) {\r\n $rootScope.UserSendKpost = true;\r\n\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n\r\n // var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8', 'Accept': 'application/json' } }\r\n //return $http.post($rootScope.kpostEndPoint + 'webAccess/userRegister1/', kpost, confignew);\r\n //return $http.post($rootScope.kpostEndPoint + 'webAccess/userRegister1/', kpost, confignew);\r\n\r\n return $http.post($rootScope.kpostEndPoint + 'user/enterPriseNewUser/', kpost, confignew);\r\n\r\n // var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n // // return $http.post('http://192.168.2.213:9090/KPOSTWebServicePioneer/user/enterPriseNewUser/', data, confignew);\r\n // // return $http.post('http://192.168.2.51:8084/KPOSTWebService_free/user/enterPriseNewUser/', data, confignew);\r\n // return $http.post($rootScope.KpostendPoint + 'KPOSTWebServicePioneer/user/enterPriseNewUser/', data, confignew);\r\n\r\n }\r\n\r\n function Add_to_Contact_Kpost(kpost) {\r\n $rootScope.UserSendKpost = true;\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n return $http.post($rootScope.kpostEndPoint + 'user/saveEnterPriseUserContact/', kpost, confignew);\r\n }\r\n\r\n function UploadFile(file, sender, receiver) {\r\n debugger;\r\n $rootScope.UserSendKpost = true;\r\n // $rootScope.file = true;\r\n //return $http.post('http://108.170.56.202:8282/PhPweBaCcEsSMecc/katchup/katchupfileupload.php?sender=' + sender + '&receiver=' + receiver,file,{ headers: {'content-type':undefined}} );//,{ headers: {}} \r\n // return $http.post('http://35.154.11.127:8282/PhPweBaCcEsSMecc/katchup/katchupfileupload.php?sender=' + sender + '&receiver=' + receiver, file, { headers: { 'content-type': undefined } }); //,{ headers: {}} \r\n ///\r\n // AWS.config.region = 'us-east-1';\r\n AWS.config.update({\r\n accessKeyId: 'AKIAX2Q7RHVT73C52UMW',\r\n secretAccessKey: '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',\r\n region: 'ap-south-1',\r\n signatureVersion: 'v4'\r\n });\r\n\r\n var bucket = new AWS.S3({ params: { Bucket: 'kpostcms', maxRetries: 10 }, httpOptions: { timeout: 360000 } });\r\n var path = sender + '/katchup/' + receiver + '/';\r\n this.Progress = 0;\r\n // this.Upload = function (file) {\r\n\r\n var params = { Bucket: 'kpostcms', Key: path + file.name, ContentType: file.type, Body: file };\r\n var options = {\r\n // Part Size of 10mb\r\n partSize: 10 * 1024 * 1024,\r\n queueSize: 1,\r\n // Give the owner of the bucket full control\r\n ACL: 'public-read'\r\n };\r\n bucket.upload(params, options, function(err, data) {\r\n if (err) {\r\n // deferred.reject(err);\r\n console.log(err);\r\n }\r\n console.log(data)\r\n // deferred.resolve();\r\n return data;\r\n });\r\n\r\n // };\r\n\r\n }\r\n\r\n\r\n\r\n\r\n //////\r\n\r\n function AddGroupMember_Kpost(kpost) {\r\n $rootScope.UserSendKpost = true;\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n return $http.post($rootScope.kpostEndPoint + 'group/createusergroup/', kpost, confignew);\r\n }\r\n\r\n function UpdateGroupMember_Cms(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/UpdateGroupMembers/', kpost, config);\r\n }\r\n\r\n function Add_to_Contact_Cms(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/AddToContact/', kpost, config);\r\n }\r\n\r\n function Remove_to_Contact_Kpost(data) {\r\n $rootScope.UserSendKpost = true;\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n return $http.post($rootScope.kpostEndPoint + 'profile/deleteContact/', data, confignew);\r\n }\r\n\r\n function Remove_to_Contact_Cms(data) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/RemoveToContact/', data, config);\r\n }\r\n\r\n function RemoveGroupMember_Kpost(data) {\r\n $rootScope.UserSendKpost = true;\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n return $http.post($rootScope.kpostEndPoint + 'group/deleteUserFromgroup/', data, confignew);\r\n }\r\n\r\n function UpdateGroupMember_Kpost(data) {\r\n $rootScope.UserSendKpost = true;\r\n var confignew = { headers: { 'Authorization': 'Basic a3Bvc3Q6a3Bvc3RAMTIz', 'Content-Type': 'application/json;charset=UTF-8' } }\r\n return $http.post($rootScope.kpostEndPoint + 'group/addusertogroup/', data, confignew);\r\n }\r\n\r\n function RemoveGroupMember_Cms(data) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/RemoveToGroupMember/', data, config);\r\n }\r\n\r\n function SaveKPostGroup(kpost) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'KPostBox/AddToGroup/', kpost, config);\r\n }\r\n\r\n function GetAllGroupCount(kpost) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/GetGroupCount', kpost, config);\r\n }\r\n //////\r\n function getAllCompany(OrgLvlId) {\r\n return $http.get($rootScope.endPoint + 'KPostBox/GetAllCompany/' + OrgLvlId, config);\r\n }\r\n\r\n function GetAllEmployeeRole(obj) {\r\n return $http.post($rootScope.endPoint + 'KPostBox/GetAllEmployeeRole', obj, config);\r\n }\r\n\r\n function GetAllTaskWorkApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'KpostTask/GetWorkApprovalTask', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.labourMaster')\r\n .service('LabourCategoryService', LabourCategoryService);\r\n\r\n LabourCategoryService.$inject = ['$http', '$rootScope'];\r\n\r\n function LabourCategoryService($http, $rootScope) {\r\n this.AddLabourCategory = AddLabourCategory;\r\n this.EditLabourCategory = EditLabourCategory;\r\n this.removeLabourCategory = removeLabourCategory;\r\n this.getAllLabourCategorys = getAllLabourCategorys;\r\n // this.getLabourCategoryById = getLabourCategoryById;\r\n this.getActiveLabourCategory = getActiveLabourCategory;\r\n this.changeActiveLabourCategory = changeActiveLabourCategory;\r\n this.ShowLaborCatgeoryReport = ShowLaborCatgeoryReport;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllLabourCategorys(objlabour) {\r\n return $http.get($rootScope.endPoint + 'LabourCategory/AllLabourCategorys', config);\r\n }\r\n\r\n function getActiveLabourCategory(objlabour) {\r\n return $http.get($rootScope.endPoint + 'LabourCategory/GetActiveLabourCategoryById', config);\r\n }\r\n\r\n function AddLabourCategory(labour) {\r\n return $http.post($rootScope.endPoint + 'LabourCategory/Create', labour, config);\r\n }\r\n\r\n function EditLabourCategory(labour) {\r\n return $http.put($rootScope.endPoint + 'LabourCategory/Modify', labour, config);\r\n }\r\n\r\n function removeLabourCategory(id) {\r\n return $http.delete($rootScope.endPoint + 'LabourCategory/Delete/' + id, config);\r\n }\r\n\r\n // function getLabourCategoryById(labour) {\r\n // return $http.delete($rootScope.endPoint + 'LabourCategory/GetLabourCategoryId/', config);\r\n // }\r\n\r\n function changeActiveLabourCategory(id) {\r\n return $http.post($rootScope.endPoint + 'LabourCategory/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n \r\n function ShowLaborCatgeoryReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'LabourReport/ShowLaborCatgeoryReport', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.labourMaster')\r\n .service('LabourTypeService', LabourTypeService);\r\n\r\n LabourTypeService.$inject = ['$http', '$rootScope'];\r\n\r\n function LabourTypeService($http, $rootScope) {\r\n this.AddLabourType = AddLabourType;\r\n this.EditLabourType = EditLabourType;\r\n this.removeLabourType = removeLabourType;\r\n this.getAllLabourTypes = getAllLabourTypes;\r\n this.getLabourTypeById = getLabourTypeById;\r\n this.getActiveLabourType = getActiveLabourType;\r\n this.changeActiveLabourType = changeActiveLabourType;\r\n this.getLabourTypeByLabourCategoryId = getLabourTypeByLabourCategoryId;\r\n this.ShowLabourReport =ShowLabourReport;\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function getLabourTypeByLabourCategoryId(id) {\r\n return $http.get($rootScope.endPoint + 'LabourType/GetLabourTypeByLabourCategoryId/' +id, config);\r\n }\r\n function getAllLabourTypes(objlabour) {\r\n return $http.get($rootScope.endPoint + 'LabourType/AllLabourTypes', config);\r\n }\r\n\r\n function getActiveLabourType(objlabour) {\r\n return $http.get($rootScope.endPoint + 'LabourType/GetActiveLabourTypeById', config);\r\n }\r\n\r\n function AddLabourType(labour) {\r\n return $http.post($rootScope.endPoint + 'LabourType/Create', labour, config);\r\n }\r\n\r\n function EditLabourType(labour) {\r\n return $http.put($rootScope.endPoint + 'LabourType/Modify', labour, config);\r\n }\r\n\r\n function removeLabourType(id) {\r\n return $http.delete($rootScope.endPoint + 'LabourType/Delete/' + id, config);\r\n }\r\n\r\n function getLabourTypeById(labour) {\r\n return $http.delete($rootScope.endPoint + 'LabourType/GetLabourTypeId/', config);\r\n }\r\n\r\n function changeActiveLabourType(id) {\r\n return $http.post($rootScope.endPoint + 'LabourType/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function ShowLabourReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'LabourReport/ShowLabourReport', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.listOfIoca')\r\n .service('listOfIocaService', listOfIocaService);\r\n\r\n listOfIocaService.$inject = ['$http', '$rootScope'];\r\n\r\n function listOfIocaService($http, $rootScope) {\r\n this.AddListofIOCA = AddListofIOCA;\r\n this.EditListofIOCA = EditListofIOCA;\r\n this.removeListofIOCA = removeListofIOCA;\r\n this.getAllListofIOCA = getAllListofIOCA;\r\n this.ShowListofIOCAReport = ShowListofIOCAReport;\r\n // this.getAllLocationSetupById = getAllLocationSetupById;\r\n // this.getAllLocationMaster = getAllLocationMaster;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getAllListofIOCA() {\r\n return $http.get($rootScope.endPoint + 'LocationSetup/AllLocationSetup', config);\r\n }\r\n\r\n\r\n function AddListofIOCA(location) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/Create', location, config);\r\n }\r\n\r\n function EditListofIOCA(location) {\r\n return $http.put($rootScope.endPoint + 'LocationSetup/Modify', location, config);\r\n }\r\n\r\n function removeListofIOCA(id) {\r\n return $http.delete($rootScope.endPoint + 'LocationSetup/Delete/' + id, config);\r\n }\r\n function ShowListofIOCAReport(obj) {\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'ListofIOCAReport/ShowListofIOCaReport', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('LocationSetupService', LocationSetupService);\r\n\r\n LocationSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function LocationSetupService($http, $rootScope) {\r\n this.AddLocationSetup = AddLocationSetup;\r\n this.EditLocationSetup = EditLocationSetup;\r\n this.removeLocationSetup = removeLocationSetup;\r\n this.getAllLocationSetup = getAllLocationSetup;\r\n this.getAllLocationSetupById = getAllLocationSetupById;\r\n this.getAllLocationMaster = getAllLocationMaster;\r\n this.getLocationByBoQIoca = getLocationByBoQIoca;\r\n this.getLocationByPrivilege = getLocationByPrivilege;\r\n this.getAllBilledLocationMaster = getAllBilledLocationMaster;\r\n this.getPlannedLocation = getPlannedLocation;\r\n this.getWrkApvdLocation = getWrkApvdLocation;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getLocationByBoQIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/getLocationByBoq', obj, config);\r\n }\r\n\r\n function getAllLocationSetup(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'LocationSetup/AllLocationSetup/' + CompanyId, config);\r\n }\r\n\r\n function getAllLocationSetupById(id) {\r\n return $http.get($rootScope.endPoint + 'LocationSetup/GetLocationsetupId/' + id, config);\r\n }\r\n\r\n function AddLocationSetup(location) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/Create', location, config);\r\n }\r\n\r\n function EditLocationSetup(location) {\r\n return $http.put($rootScope.endPoint + 'LocationSetup/Modify', location, config);\r\n }\r\n\r\n function removeLocationSetup(id) {\r\n return $http.delete($rootScope.endPoint + 'LocationSetup/Delete/' + id, config);\r\n }\r\n\r\n function getAllLocationMaster(location) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/AllLocationMaster', location, config);\r\n }\r\n\r\n //Planning Report Screen\r\n function getPlannedLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/AllPlannedLocation', obj, config);\r\n }\r\n\r\n function getAllBilledLocationMaster(location) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/AllBillLocationMaster', location, config);\r\n }\r\n\r\n function getLocationByPrivilege(ProjectId,IOCA_Id,FromBoq,powStatus,isWorkAlloc) {\r\n return $http.get($rootScope.endPoint + 'LocationSetup/getLocationByPrivilege/' + ProjectId + '?IOCA_Id=' + IOCA_Id +\r\n '&FromBoq=' + FromBoq + '&powStatus=' + powStatus + '&isWorkAlloc=' + isWorkAlloc, config);\r\n }\r\n\r\n\r\n // Work Approval Screen Location\r\n\r\n function getWrkApvdLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'LocationSetup/getWrkApvdLocation', obj, config);\r\n }\r\n\r\n // End Work Approval Screen Location\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .service('IOCAMappingService', IOCAMappingService);\r\n\r\n IOCAMappingService.$inject = ['$http', '$rootScope'];\r\n\r\n function IOCAMappingService($http, $rootScope) {\r\n //Declcure Function //\r\n this.AddIOCADrawingMapping = AddIOCADrawingMapping;\r\n this.editIOCADrawingMapping = editIOCADrawingMapping;\r\n this.removeIOCADrawingMapping = removeIOCADrawingMapping;\r\n this.getAllIOCADrawingMapping = getAllIOCADrawingMapping;\r\n this.getAllIOCADrawingType = getAllIOCADrawingType;\r\n this.GetDrawingSubByDrawingId = GetDrawingSubByDrawingId;\r\n this.GetDrawingTitleBySubjectDrawingId = GetDrawingTitleBySubjectDrawingId;\r\n this.GetDrawingTypeByLocations = GetDrawingTypeByLocations;\r\n this.GetTierDrawingByBoqIoca = GetTierDrawingByBoqIoca;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function AddIOCADrawingMapping(objMapdrawing) {\r\n return $http.post($rootScope.endPoint + 'ProjectIOCAMappingdrawing/Create', objMapdrawing, config);\r\n }\r\n function editIOCADrawingMapping(objMapdrawing) {\r\n return $http.put($rootScope.endPoint + 'ProjectIOCAMappingdrawing/Modify', objMapdrawing, config);\r\n }\r\n\r\n\r\n function removeIOCADrawingMapping(id) {\r\n return $http.delete($rootScope.endPoint + 'ProjectIOCAMappingdrawing/Delete/' + id, config);\r\n }\r\n\r\n\r\n function getAllIOCADrawingMapping(projectId) {\r\n return $http.get($rootScope.endPoint + 'ProjectIOCAMappingdrawing/GetAllIOCAMappingDrawing/' + projectId, config);\r\n }\r\n\r\n\r\n function getAllIOCADrawingType() {\r\n return $http.get($rootScope.endPoint + 'ProjectIOCAMappingdrawing/GetAllIOCADrawingType', config);\r\n }\r\n\r\n function GetDrawingTypeByLocations(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectIOCAMappingdrawing/GetDrawingTypeByLocations', obj, config);\r\n }\r\n\r\n\r\n function GetDrawingSubByDrawingId(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectIOCAMappingdrawing/GetDrawingSubByDrawingId/' + id, config);\r\n }\r\n function GetDrawingTitleBySubjectDrawingId(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectIOCAMappingdrawing/GetDrawingSubByDrawingId/' + id, config);\r\n }\r\n\r\n function GetTierDrawingByBoqIoca(objMapdrawing) {\r\n return $http.post($rootScope.endPoint + 'ProjectIOCAMappingdrawing/GetTierDrawingByBoqIoca', objMapdrawing, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.organization')\r\n .service('OrganizationService', OrganizationService);\r\n\r\n OrganizationService.$inject = ['$rootScope', '$http'];\r\n\r\n function OrganizationService($rootScope, $http) {\r\n this.AddOrganization = AddOrganization;\r\n this.EditOrganization = EditOrganization;\r\n this.removeOrganization = removeOrganization;\r\n this.getAllOrganization = getAllOrganization;\r\n this.changeActiveOrganization = changeActiveOrganization;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n // this.getAllRoleById = getAllRoleById;\r\n\r\n /////////////\r\n\r\n function getAllOrganization(objOrganization) {\r\n return $http.get($rootScope.endPoint + 'OrganizationLevel/AllOrganizationLevel', config);\r\n }\r\n\r\n // function getAllRoleById($scope, $rootScope, $http, objGetEmpDTO) {\r\n // return $http.get($rootScope.endPoint + 'Role/GetById');\r\n // }\r\n\r\n function AddOrganization(org) {\r\n return $http.post($rootScope.endPoint + 'OrganizationLevel/Create', org, config);\r\n }\r\n\r\n function EditOrganization(org) {\r\n return $http.put($rootScope.endPoint + 'OrganizationLevel/Modify', org, config);\r\n }\r\n\r\n function removeOrganization(id) {\r\n return $http.delete($rootScope.endPoint + 'OrganizationLevel/Delete/' + id, config);\r\n }\r\n function changeActiveOrganization(id) {\r\n return $http.post($rootScope.endPoint + 'OrganizationLevel/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.overhead')\r\n .service('overheadService', overheadService);\r\n\r\n overheadService.$inject = ['$http', '$rootScope'];\r\n\r\n function overheadService($http, $rootScope) {\r\n this.AddOverhead = AddOverhead;\r\n this.EditOverhead = EditOverhead;\r\n this.removeOverhead = removeOverhead;\r\n this.getAllOverhead = getAllOverhead;\r\n this.getOverheadById = getOverheadById;\r\n this.GetActiveOverheadById = GetActiveOverheadById;\r\n this.changeActiveOverhead = changeActiveOverhead;\r\n\r\n // this.GetCityByStateId=GetCityByStateId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getAllOverhead(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Overheads/AllOverhead', config);\r\n }\r\n\r\n function getOverheadById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Overheads/GetOverheadId/', config);\r\n }\r\n\r\n function AddOverhead(Overhead) {\r\n return $http.post($rootScope.endPoint + 'Overheads/Create', Overhead, config);\r\n }\r\n\r\n function EditOverhead(Overhead) {\r\n return $http.put($rootScope.endPoint + 'Overheads/Modify', Overhead, config);\r\n }\r\n\r\n function GetActiveOverheadById(Overhead) { \r\n return $http.get($rootScope.endPoint + 'Overheads/GetActiveOverheadById', config);\r\n }\r\n\r\n function removeOverhead(id) {\r\n return $http.delete($rootScope.endPoint + 'Overheads/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveOverhead(id) {\r\n return $http.post($rootScope.endPoint + 'Overheads/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.planningReport')\r\n .service('planningReportService', planningReportService);\r\n\r\n planningReportService.$inject = ['$rootScope', '$http'];\r\n\r\n function planningReportService($rootScope, $http) {\r\n this.ShowPlanningReport = ShowPlanningReport;\r\n this.ShowReport = ShowReport;\r\n this.GetReportFor = GetReportFor;\r\n this.getEmpList = getEmpList;\r\n this.getContCatgy = getContCatgy;\r\n this.getContList = getContList;\r\n this.ShowPlanningTaskReport = ShowPlanningTaskReport;\r\n this.getBoQFoc = getBoQFoc;\r\n this.getBoQCountry = getBoQCountry;\r\n this.getBoQCategory = getBoQCategory;\r\n this.getBoQSubCategory = getBoQSubCategory;\r\n this.getBoQType = getBoQType;\r\n this.getBoQIOCA = getBoQIOCA;\r\n this.ShowDPRReport = ShowDPRReport;\r\n this.ShowAppraisalReport = ShowAppraisalReport; \r\n this.getLoadBudgetForList = getLoadBudgetForList;\r\n this.getPlanType = getPlanType;\r\n this.getselectedPeriodType = getselectedPeriodType;\r\n this.getselectedviewType = getselectedviewType;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetReportFor(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/GetReportFor', obj, config);\r\n }\r\n function getEmpList(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getEmpList', obj, config);\r\n }\r\n function getContCatgy(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getContCatgy', obj, config);\r\n }\r\n function getContList(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getContList', obj, config);\r\n }\r\n\r\n function ShowPlanningReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowPlanReport', obj, config);\r\n }\r\n function ShowReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowReport', obj, config);\r\n }\r\n\r\n function ShowPlanningTaskReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowPlanningTaskReport', obj, config);\r\n }\r\n\r\n\r\n //Get Finilized Planned CA only\r\n function getBoQFoc(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getBoqFoc', boq, config);\r\n }\r\n function getBoQCountry(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQCountries', boq, config);\r\n }\r\n function getBoQCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQCategory', boq, config);\r\n }\r\n\r\n function getBoQSubCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQSubCategory', boq, config);\r\n }\r\n\r\n function getBoQType(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQType', boq, config);\r\n }\r\n\r\n function getBoQIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/Get_BoQIOCA', boq, config);\r\n }\r\n\r\n function ShowDPRReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowDPRReport', obj, config);\r\n }\r\n\r\n function ShowAppraisalReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'PlanningReport/ShowAppraisalReport', obj, config);\r\n }\r\n //#region budget report\r\n function getLoadBudgetForList(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getLoadBudgetForList', obj, config);\r\n }\r\n function getPlanType(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getPlanType', obj, config);\r\n }\r\n\r\n function getselectedPeriodType(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getselectedPeriodType', obj, config);\r\n }\r\n function getselectedviewType(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getselectedviewType', obj, config);\r\n }\r\n //#endregion\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('PriliminaryEstimatesService', PriliminaryEstimatesService);\r\n\r\n PriliminaryEstimatesService.$inject = ['$http', '$rootScope'];\r\n\r\n function PriliminaryEstimatesService($http, $rootScope) {\r\n\r\n\r\n this.getPriliItem = getPriliItem;\r\n this.SavePrilimary = SavePrilimary;\r\n this.getPriliminaryEstimatesByProject = getPriliminaryEstimatesByProject;\r\n this.FreezePriliminaryEstimates = FreezePriliminaryEstimates;\r\n this.getAllPriliminaryEstimates = getAllPriliminaryEstimates;\r\n this.showReport = showReport;\r\n this.getAllPriliminaryBudgetByProject = getAllPriliminaryBudgetByProject;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getPriliItem(obj) {\r\n return $http.post($rootScope.endPoint + 'PriliminaryEstimates/getPriliItem', obj, config);\r\n }\r\n\r\n function SavePrilimary(obj) {\r\n return $http.post($rootScope.endPoint + 'PriliminaryEstimates/SavePrilimary', obj, config);\r\n }\r\n\r\n function getPriliminaryEstimatesByProject(projectId, ActionBy) {\r\n return $http.get($rootScope.endPoint + 'PriliminaryEstimates/getPriliminaryEstimatesByProject/' + projectId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n function FreezePriliminaryEstimates(projectId, ActionBy) {\r\n return $http.get($rootScope.endPoint + 'PriliminaryEstimates/FreezePriliminaryEstimates/' + projectId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n function getAllPriliminaryEstimates() {\r\n return $http.get($rootScope.endPoint + 'PriliminaryEstimates/getAllPriliminaryEstimates', config);\r\n }\r\n function showReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'PriliminaryEstimates/getAllPriliminaryEstimatesReport', obj, config);\r\n }\r\n\r\n function getAllPriliminaryBudgetByProject(obj) {\r\n return $http.post($rootScope.endPoint + 'PriliminaryEstimates/getAllPriliminaryBudgetByProject', obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('ProjectConstantService', ProjectConstantService);\r\n\r\n ProjectConstantService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectConstantService($http, $rootScope) {\r\n this.getLabourTypeByLabrCategoryId = getLabourTypeByLabrCategoryId;\r\n this.AddProjectConstant = AddProjectConstant;\r\n this.UpdateProjectConstant = UpdateProjectConstant;\r\n this.DeleteProjectConstant = DeleteProjectConstant;\r\n this.getAllConstant = getAllConstant;\r\n this.getAllMaterialAttributes = getAllMaterialAttributes;\r\n this.getAllIOCAProjectConstant = getAllIOCAProjectConstant;\r\n this.AddLabourProjectConstant = AddLabourProjectConstant;\r\n this.AddMaterialProjectConstant = AddMaterialProjectConstant;\r\n this.AddMachineryProjectConstant = AddMachineryProjectConstant;\r\n this.AddConsumableProjectConstant = AddConsumableProjectConstant;\r\n this.GetLabourProjectConstant = GetLabourProjectConstant;\r\n this.GetMaterialProjectConstant = GetMaterialProjectConstant;\r\n this.GetMachineryProjectConstant = GetMachineryProjectConstant;\r\n this.GetConsumableProjectConstant = GetConsumableProjectConstant;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddLabourProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/CreateLabour', obj, config);\r\n }\r\n\r\n function AddMaterialProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/CreateMaterial', obj, config);\r\n }\r\n\r\n function AddMachineryProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/CreateMachinery', obj, config);\r\n }\r\n\r\n function AddConsumableProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/CreateConsumable', obj, config);\r\n }\r\n\r\n function getAllMaterialAttributes(objMaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/getAllMaterialAttributes', objMaterialAttribute, config);\r\n }\r\n\r\n function getAllConstant(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function getLabourTypeByLabrCategoryId(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function getAllIOCAProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/GetAllIOCAProjectConstant', obj, config);\r\n }\r\n\r\n function GetLabourProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/GetLabourProjectConstant', obj, config);\r\n }\r\n\r\n function GetMaterialProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/GetMaterialProjectConstant', obj, config);\r\n }\r\n\r\n function GetMachineryProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/GetMachineryProjectConstant', obj, config);\r\n }\r\n\r\n function GetConsumableProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/GetConsumableProjectConstant', obj, config);\r\n }\r\n\r\n function AddProjectConstant(categoryofCA) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/Create', categoryofCA, config);\r\n }\r\n\r\n function UpdateProjectConstant(obj) {\r\n return $http.put($rootScope.endPoint + 'ProjectConstant/Modify', obj, config);\r\n }\r\n\r\n function DeleteProjectConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectConstant/Delete', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('projectCreationService', projectCreationService);\r\n\r\n projectCreationService.$inject = ['$http', '$rootScope'];\r\n\r\n function projectCreationService($http, $rootScope) {\r\n this.GetAllProjectCategory = GetAllProjectCategory;\r\n this.GetProjectTypeByCategory = GetProjectTypeByCategory;\r\n this.GetUnitByUOM = GetUnitByUOM;\r\n this.GetAllDrafts = GetAllDrafts;\r\n this.GetAllWaitingForApproval = GetAllWaitingForApproval;\r\n this.GetAllbackFromCorrection = GetAllbackFromCorrection;\r\n this.getAllApproved = getAllApproved;\r\n this.getAllBackForCorrection = getAllBackForCorrection;\r\n this.AddProjectDetails = AddProjectDetails;\r\n this.UploadDrawing = UploadDrawing;\r\n this.RemoveDrawing = RemoveDrawing;\r\n this.UpdateProjectDetails = UpdateProjectDetails;\r\n this.AddRejectionNotes = AddRejectionNotes;\r\n this.getProjectforTeam =getProjectforTeam;\r\n this.SendApproval = SendApproval;\r\n this.removeProject = removeProject;\r\n this.ApprovedProject = ApprovedProject;\r\n this.ReSubmittedProject = ReSubmittedProject;\r\n this.BlockedProject = BlockedProject;\r\n this.checkProjectName = checkProjectName;\r\n this.checkProjectCode = checkProjectCode;\r\n this.GetAllCurrency = GetAllCurrency;\r\n this.getRole =getRole;\r\n this.getAllApprovedProject =getAllApprovedProject;\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddProjectDetails(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/Create', data, config);\r\n }\r\n\r\n function getProjectforTeam(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/getProjectforTeam', obj, config);\r\n }\r\n\r\n function getRole(obj) {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/getProjectRole', obj, config);\r\n }\r\n\r\n function UpdateProjectDetails(objDTO) {\r\n return $http.put($rootScope.endPoint + 'ProjectMaster/Modify', objDTO, config);\r\n }\r\n\r\n function UploadDrawing(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/uploadDocument', data, config);\r\n }\r\n\r\n function GetAllProjectCategory(objGetDTO) {\r\n return $http.get($rootScope.endPoint + 'ProjectCategory/AllProjectCategory', config);\r\n }\r\n\r\n function GetAllCurrency() {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllCurrency', config);\r\n }\r\n\r\n function GetUnitByUOM(objGetDTO) {\r\n return $http.post($rootScope.endPoint + 'UOM_Master/getAllUnits', objGetDTO, config);\r\n }\r\n\r\n function GetProjectTypeByCategory(CategoryId) {\r\n return $http.get($rootScope.endPoint + 'ProjectType/GetPrjTypeByCatId/' + CategoryId, config);\r\n }\r\n\r\n function GetAllDrafts(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllDraft/' + CompanyId, config);\r\n }\r\n\r\n function GetAllWaitingForApproval(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllWaitingForApproval/' + CompanyId, config);\r\n }\r\n\r\n function GetAllbackFromCorrection(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllReSubmited/' + CompanyId, config);\r\n }\r\n\r\n function getAllApproved(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllApproved/' + CompanyId, config);\r\n }\r\n \r\n function getAllApprovedProject(CompanyId,isWrkAlloc) { \r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllApprovedProject/' + CompanyId + '?isWrkAlloc=' + isWrkAlloc, config);\r\n }\r\n\r\n function getAllBackForCorrection(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectMaster/GetAllBlockandBack/' + CompanyId, config);\r\n }\r\n\r\n function RemoveDrawing(objDeleteDTO) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/removeDocument', objDeleteDTO, config);\r\n }\r\n\r\n function AddRejectionNotes(objDTO) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/Reject', objDTO, config);\r\n }\r\n\r\n function SendApproval(ProjectId) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/SendforApproval/' + ProjectId, {}, config);\r\n }\r\n\r\n function removeProject(ProjectId) {\r\n return $http.delete($rootScope.endPoint + 'ProjectMaster/Delete/' + ProjectId, config);\r\n }\r\n\r\n function ApprovedProject(ProjectId) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/Approved/' + ProjectId, {}, config);\r\n }\r\n\r\n function ReSubmittedProject(ProjectId) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/Resubmit/' + ProjectId, {}, config);\r\n }\r\n\r\n function BlockedProject(ProjectId) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/Block/' + ProjectId, {}, config);\r\n }\r\n\r\n function checkProjectName(project) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/IfExistProjectName', project, config);\r\n }\r\n function checkProjectCode(project) {\r\n return $http.post($rootScope.endPoint + 'ProjectMaster/IfExistProjectCode', project, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.holiday')\r\n .service('ProjectHolidayMasterService', ProjectHolidayMasterService);\r\n\r\n ProjectHolidayMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectHolidayMasterService($http, $rootScope) {\r\n\r\n this.AddProjectHoliday = AddProjectHoliday;\r\n this.editProjectHolidayMaster = editProjectHolidayMaster;\r\n this.getAllProjectHolidayMaster = getAllProjectHolidayMaster;\r\n this.RemoveProjectHoliday = RemoveProjectHoliday;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddProjectHoliday(holiday) {\r\n return $http.post($rootScope.endPoint + 'ProjectHolidayMaster/Create', holiday, config);\r\n }\r\n\r\n function editProjectHolidayMaster(holiday) {\r\n return $http.put($rootScope.endPoint + 'ProjectHolidayMaster/Update', holiday, config);\r\n }\r\n\r\n function RemoveProjectHoliday(ProjectId) {\r\n return $http.delete($rootScope.endPoint + 'ProjectHolidayMaster/Delete/' + ProjectId, config);\r\n }\r\n\r\n function getAllProjectHolidayMaster() {\r\n return $http.get($rootScope.endPoint + 'ProjectHolidayMaster/GetAllProjectHolidays', config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('projectInitiationService', projectInitiationService);\r\n\r\n projectInitiationService.$inject = ['$http', '$rootScope'];\r\n\r\n function projectInitiationService($http, $rootScope) {\r\n this.GetAllDrafts = GetAllDrafts; \r\n /////////////\r\n function GetAllDrafts(objGetDraft) {\r\n return $http.post($rootScope.endPoint + 'ProjectInitiation/Create', objGetDraft);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.services')\r\n .service('ProjectIocaService', ProjectIocaService);\r\n\r\n ProjectIocaService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectIocaService($http, $rootScope) {\r\n this.getAllProjectIoca = getAllProjectIoca;\r\n this.insertManyProjectIoca = insertManyProjectIoca;\r\n this.removeProjectIocaById = removeProjectIocaById;\r\n this.getAllProjectCountry = getAllProjectCountry;\r\n this.getAllProjectFoc = getAllProjectFoc;\r\n this.getAllProjectCategory = getAllProjectCategory;\r\n this.getAllProjectSubcategory = getAllProjectSubcategory;\r\n this.getAllProjectCategoryType = getAllProjectCategoryType;\r\n this.getAllForExport = getAllForExport;\r\n this.InsertBillOfQuantity = InsertBillOfQuantity;\r\n this.ImportBoq = ImportBoq;\r\n this.GetProjectIocaFilterByBoQ = GetProjectIocaFilterByBoQ;\r\n\r\n this.GetTypeofCAByProjectForSelectIOCA = GetTypeofCAByProjectForSelectIOCA;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetProjectIocaFilterByBoQ(inputObj) {\r\n var url = 'ProjectIoca/GetProjectIocaByBoQ?projectId=' + inputObj.ProjectId\r\n + '&typeId=' + inputObj.TypeId\r\n + '&fromIocaId=' + inputObj.FromIocaId\r\n + '&specType=' + inputObj.SpecType\r\n + '&LocationId=' + inputObj.LocationId\r\n + '&LastTierId=' + inputObj.LastTierId\r\n + '&ActionBy=' + inputObj.ActionBy\r\n + '&isworkAlloc=' + inputObj.isworkAlloc\r\n\r\n return $http.get($rootScope.endPoint + url, config);\r\n }\r\n\r\n // function getAllProjectIoca(projectId) {\r\n // return $http.get($rootScope.endPoint + 'ProjectIoca/getAllProjectIoca/' + projectId, config);\r\n // }\r\n\r\n function getAllProjectIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/GetProjectIocaFilteredByBoQDTO', obj, config);\r\n }\r\n\r\n function GetTypeofCAByProjectForSelectIOCA(projectId, ActionBy) {\r\n return $http.get($rootScope.endPoint + 'ProjectIoca/GetTypeofCAByProjectForSelectIOCA/' + projectId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n\r\n function insertManyProjectIoca(iocaList) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/insertManyProjectIoca', iocaList, config);\r\n }\r\n\r\n function removeProjectIocaById(projectId, iocaId) {\r\n return $http.delete($rootScope.endPoint + 'ProjectIoca/removeProjectIocaById/' + projectId + '/' + iocaId, config);\r\n }\r\n\r\n function getAllProjectCountry(projectId) {\r\n return $http.get($rootScope.endPoint + 'ProjectIoca/getcountry/' + projectId, config);\r\n }\r\n\r\n function getAllProjectFoc(projectId, isworkAlloc) {\r\n return $http.get($rootScope.endPoint + 'ProjectIoca/getPrjFoc/' + projectId + '?isworkAlloc=' + isworkAlloc, config);\r\n }\r\n\r\n function getAllProjectCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/getcategory', obj, config);\r\n }\r\n\r\n function getAllProjectSubcategory(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/getsubcategory/', obj, config);\r\n }\r\n\r\n function getAllProjectCategoryType(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/GetCategoryType/', obj, config);\r\n }\r\n\r\n function getAllForExport(objTier) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n //config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/GetAllTiresForExport/', objTier, config);\r\n }\r\n\r\n function InsertBillOfQuantity(boq) {\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/Create', boq, config);\r\n }\r\n\r\n function ImportBoq(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'BillOfQuantity/uploadBOq', data, config);\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.privilege')\r\n .service('ProjectLevelPrivilegeService', ProjectLevelPrivilegeService);\r\n\r\n ProjectLevelPrivilegeService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectLevelPrivilegeService($http, $rootScope) {\r\n this.GetAllPrivilgedMenu = GetAllPrivilgedMenu;\r\n this.AddPrjIocaDts = AddPrjIocaDts;\r\n this.AddPrjLocDts = AddPrjLocDts;\r\n this.AddNewUserPrvilegeDtls = AddNewUserPrvilegeDtls;\r\n this.getAllPrivilegeStd = getAllPrivilegeStd;\r\n this.removeLocDts = removeLocDts;\r\n this.removeIocaDts = removeIocaDts;\r\n this.getPrjIocaPrvlDtl = getPrjIocaPrvlDtl;\r\n this.getPrjLocPrvlDtl = getPrjLocPrvlDtl;\r\n this.getAllPrivilegeDtl=getAllPrivilegeDtl;\r\n\r\n /////////////\r\n var config = { \r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function GetAllPrivilgedMenu(id) {\r\n return $http.get($rootScope.endPoint + 'Menu/getAllPrivilegedMenus/' + id, config);\r\n }\r\n function AddPrjIocaDts(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/insertPrlgIoca', obj, config);\r\n }\r\n function AddPrjLocDts(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/insertPrlgLoc', obj, config);\r\n }\r\n function AddNewUserPrvilegeDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/Create', obj, config);\r\n }\r\n function getAllPrivilegeStd(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/getStdPrivilegeDtls', obj, config);\r\n }\r\n function removeLocDts(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/removePrlgLoc', obj, config);\r\n }\r\n function removeIocaDts(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/removePrlgIocaType', obj, config);\r\n }\r\n function getPrjLocPrvlDtl(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/getPrjLocPrivilegeDtls', obj, config);\r\n }\r\n function getPrjIocaPrvlDtl(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/getPrjIocaPrivilegeDtls', obj, config);\r\n }\r\n function getAllPrivilegeDtl(obj) {\r\n return $http.post($rootScope.endPoint + 'UserPrivilege/GetAllPrjPrivilegeDtls', obj, config);\r\n }\r\n\r\n\r\n \r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.ProjectResourceAllocation')\r\n .service('ProjectResourceAllocationService', ProjectResourceAllocationService);\r\n\r\n ProjectResourceAllocationService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectResourceAllocationService($http, $rootScope) {\r\n this.AddResourceAllocation = AddResourceAllocation;\r\n this.EditResourceAllocation = EditResourceAllocation;\r\n this.removeResourceAllocation = removeResourceAllocation;\r\n this.getAllResourceAllocation = getAllResourceAllocation;\r\n this.getEmployeeListByCompnayId = getEmployeeListByCompnayId;\r\n this.getDesignationListByCompanyId = getDesignationListByCompanyId;\r\n \r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllResourceAllocation() {\r\n return $http.get($rootScope.endPoint + 'ProjectResourceAllocation/GetAllResourceAllocation', config);\r\n }\r\n\r\n \r\n function AddResourceAllocation(Resource) {\r\n return $http.post($rootScope.endPoint + 'ProjectResourceAllocation/Create', Resource, {}, config);\r\n }\r\n\r\n // function EditResourceAllocation(Department) {\r\n // return $http.put($rootScope.endPoint + 'ProjectResourceAllocation/Modify', Department, config);\r\n // }\r\n\r\n function removeResourceAllocation(id) {\r\n return $http.delete($rootScope.endPoint + 'Department/Delete/' + id, config);\r\n }\r\n\r\n \r\n function getEmployeeListByCompnayId(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectResourceAllocation/getEmployeeListByCompnayId/' + CompanyId, config);\r\n }\r\n\r\n \r\n function getDesignationListByCompanyId(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'ProjectResourceAllocation/getDesignationListByCompanyId/' + CompanyId, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .service('ProjectSchedulingService', ProjectSchedulingService);\r\n\r\n ProjectSchedulingService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectSchedulingService($http, $rootScope) {\r\n this.getAllTaskByProject = getAllTaskByProject;\r\n this.AddProjectPlanning = AddProjectPlanning;\r\n this.AddFinalisedPlanning = AddFinalisedPlanning;\r\n this.GetAllProjectPlanning = GetAllProjectPlanning;\r\n this.GetAllProjectPlanningByPrjSchList = GetAllProjectPlanningByPrjSchList;\r\n this.getBOQForSchedule = getBOQForSchedule;\r\n this.getFinalisedBOQForSchedule = getFinalisedBOQForSchedule;\r\n this.getAllProjectSchedule = getAllProjectSchedule;\r\n this.GetAllPOWPlanning = GetAllPOWPlanning;\r\n this.GetAllFinalisedPOWPlanning = GetAllFinalisedPOWPlanning;\r\n this.getFinalPlanning = getFinalPlanning;\r\n this.revisedFinalisedPlanning = revisedFinalisedPlanning;\r\n ///////\r\n\r\n this.GetLocationForFinalPlanning = GetLocationForFinalPlanning;\r\n this.GetTiersForFinalPlanning = GetTiersForFinalPlanning;\r\n this.GetCategoryForFinalPlanning = GetCategoryForFinalPlanning;\r\n this.GetSubCategoryForFinalPlanning = GetSubCategoryForFinalPlanning;\r\n this.GetTypeForFinalPlanning = GetTypeForFinalPlanning;\r\n this.GetIocaForFinalPlanning = GetIocaForFinalPlanning;\r\n this.UpdatePlanSequence = UpdatePlanSequence;\r\n this.UpdatePlanFreeze = UpdatePlanFreeze;\r\n this.UpdateRePlanFreeze = UpdateRePlanFreeze;\r\n this.ResetScheduleIOCA = ResetScheduleIOCA;\r\n this.GetIOCAForRelease = GetIOCAForRelease;\r\n\r\n //////\r\n\r\n this.GetFinalScheduledProject = GetFinalScheduledProject;\r\n this.GetTempSchedule = GetTempSchedule;\r\n this.GetAllFinalizedSchedule = GetAllFinalizedSchedule;\r\n\r\n this.GetAllScheduling = GetAllScheduling;\r\n this.GetAllManualScheduling = GetAllManualScheduling;\r\n this.GetAllReScheduling = GetAllReScheduling;\r\n\r\n this.GetAllFinalizedPlan = GetAllFinalizedPlan;\r\n this.GetAllFinalizedRePlan = GetAllFinalizedRePlan;\r\n\r\n /////////////\r\n this.getFinalisedBOQForReSchedule = getFinalisedBOQForReSchedule;\r\n this.getRevScheduleNo = getRevScheduleNo;\r\n this.getFinalizedPow = getFinalizedPow;\r\n\r\n /////////////\r\n\r\n this.AddFinalisedManualPlanning = AddFinalisedManualPlanning\r\n\r\n /////\r\n this.GetAllProjectManualReSchedule = GetAllProjectManualReSchedule\r\n this.GetTempScheduleForManualReSchedule = GetTempScheduleForManualReSchedule\r\n this.GetFinalisedBOQForManualReSchedule = GetFinalisedBOQForManualReSchedule\r\n this.UpdateManualPlanSequence = UpdateManualPlanSequence\r\n this.UpdateManualPlanFreeze = UpdateManualPlanFreeze\r\n this.CreateFinalisedProjectManualRePlanning = CreateFinalisedProjectManualRePlanning\r\n this.GetAllRevisonByPlanId = GetAllRevisonByPlanId\r\n this.FreezeManualSchedule = FreezeManualSchedule\r\n this.getAllPowByPlanId = getAllPowByPlanId\r\n /////\r\n\r\n this.InsertDraftPlanning = InsertDraftPlanning\r\n\r\n this.GetDate = GetDate\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getFinalPlanning() {\r\n return $http.get($rootScope.endPoint + 'TaskList/GetFinalPlanning', config);\r\n }\r\n\r\n function getAllTaskByProject(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetTasksByProject/' + id, config);\r\n }\r\n\r\n function getBOQForSchedule(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetBOQForSchedule', obj, config);\r\n }\r\n\r\n function revisedFinalisedPlanning(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/RevisedFinalPlanning', obj, config);\r\n }\r\n\r\n\r\n function getFinalisedBOQForSchedule(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/getFinalisedBOQForSchedule', obj, config);\r\n }\r\n\r\n function getAllProjectSchedule(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/getAllProjectSchedule', obj, config);\r\n }\r\n\r\n function GetAllProjectPlanningByPrjSchList(str) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetProjectPlanningByPrjSchList/' + str, config);\r\n }\r\n\r\n ////////////\r\n\r\n function GetLocationForFinalPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetLocationForFinalPlanning', obj, config);\r\n }\r\n\r\n function GetTiersForFinalPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetTiersForFinalPlanning', obj, config);\r\n }\r\n\r\n function GetCategoryForFinalPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetCategoryForFinalPlanning', obj, config);\r\n }\r\n\r\n function GetSubCategoryForFinalPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetSubCategoryForFinalPlanning', obj, config);\r\n }\r\n\r\n function GetTypeForFinalPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetTypeForFinalPlanning', obj, config);\r\n }\r\n\r\n function GetIocaForFinalPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetIocaForFinalPlanning', obj, config);\r\n }\r\n\r\n function UpdatePlanSequence(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'TaskList/UpdatePlanSequence', obj, config);\r\n }\r\n\r\n function UpdatePlanFreeze(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'TaskList/UpdatePlanFreeze', obj, config);\r\n }\r\n\r\n function UpdateRePlanFreeze(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'TaskList/UpdateRePlanFreeze', obj, config);\r\n }\r\n\r\n function ResetScheduleIOCA(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/ResetScheduleIOCA', obj, config);\r\n }\r\n\r\n function GetIOCAForRelease(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/GetIOCAForRelease', obj, config);\r\n }\r\n\r\n ////////////////\r\n\r\n function GetFinalScheduledProject(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetFinalScheduledProject/' + id, config);\r\n }\r\n\r\n function GetTempSchedule(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetTempSchedule/' + id, config);\r\n }\r\n\r\n function GetAllFinalizedSchedule(id, revison,RType) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllFinalizedSchedule/' + id + '?revison=' + revison +'&RType=' + RType, config);\r\n }\r\n\r\n function GetAllScheduling(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllScheduling/' + id, config);\r\n }\r\n\r\n function GetAllManualScheduling(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllManualScheduling/' + id, config);\r\n }\r\n\r\n function GetAllReScheduling(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllReScheduling/' + id, config);\r\n }\r\n\r\n function GetAllFinalizedPlan(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'TaskList/GetAllFinalizedPlan', obj, config);\r\n }\r\n\r\n function GetAllFinalizedRePlan(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'TaskList/GetAllFinalizedRePlan', obj, config);\r\n }\r\n\r\n\r\n ///////////////\r\n function GetAllProjectPlanning(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetProjectPlanning/' + id, config);\r\n }\r\n\r\n function GetAllPOWPlanning(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllPOWPlanning/' + id, config);\r\n }\r\n\r\n function GetAllFinalisedPOWPlanning(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllFinalisedPOWPlanning/' + id, config);\r\n }\r\n\r\n function AddProjectPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/CreateProjectPlanning', obj, config);\r\n }\r\n function AddFinalisedPlanning(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/CreateFinalisedProjectPlanning', obj, config);\r\n }\r\n\r\n function AddFinalisedManualPlanning(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/CreateFinalisedProjectManualPlanning', obj, config);\r\n }\r\n\r\n ////////////////\r\n\r\n function getFinalisedBOQForReSchedule(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'TaskList/getFinalisedBOQForReSchedule', obj, config);\r\n }\r\n function getRevScheduleNo(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/getRevScheduleNo', obj, config);\r\n }\r\n function getFinalizedPow(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'TaskList/GetFinalizedPow/' + id, config);\r\n }\r\n\r\n ////\r\n\r\n function GetAllProjectManualReSchedule(id) {\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllProjectManualReSchedule/' + id, config);\r\n }\r\n\r\n function GetTempScheduleForManualReSchedule(id) {\r\n return $http.get($rootScope.endPoint + 'TaskList/GetTempScheduleForManualReSchedule/' + id, config);\r\n }\r\n\r\n function GetFinalisedBOQForManualReSchedule(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/GetFinalisedBOQForManualReSchedule', obj, config);\r\n }\r\n\r\n function UpdateManualPlanSequence(obj) {\r\n return $http.put($rootScope.endPoint + 'TaskList/UpdateManualPlanSequence', obj, config);\r\n }\r\n\r\n function UpdateManualPlanFreeze(obj) {\r\n return $http.put($rootScope.endPoint + 'TaskList/UpdateManualPlanFreeze', obj, config);\r\n }\r\n\r\n function CreateFinalisedProjectManualRePlanning(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/CreateFinalisedProjectManualRePlanning', obj, config);\r\n }\r\n\r\n function GetAllRevisonByPlanId(PlanId) {\r\n return $http.get($rootScope.endPoint + 'TaskList/GetAllRevisonByPlanId/' + PlanId, config);\r\n }\r\n\r\n function FreezeManualSchedule(ProjectScheduleId) {\r\n return $http.post($rootScope.endPoint + 'TaskList/FreezeManualSchedule/' + ProjectScheduleId, config);\r\n }\r\n\r\n function getAllPowByPlanId(Id) {\r\n return $http.get($rootScope.endPoint + 'TaskList/getAllPowByPlanId/' + Id, config);\r\n }\r\n //////////\r\n function InsertDraftPlanning(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/InsertDraftPlanning', obj, config);\r\n }\r\n\r\n function GetDate(obj) {\r\n return $http.post($rootScope.endPoint + 'TaskList/GetDate', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .service('ProjectSequenceService', ProjectSequenceService);\r\n\r\n ProjectSequenceService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectSequenceService($http, $rootScope) {\r\n\r\n this.AddProjectSequence = AddProjectSequence;\r\n this.getAllProjectSequence = getAllProjectSequence;\r\n this.UpdateProjectSequence = UpdateProjectSequence;\r\n this.RemoveProjectSequence = RemoveProjectSequence;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddProjectSequence(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectSequence/CreateSequence', obj, config);\r\n }\r\n\r\n function UpdateProjectSequence(obj) {\r\n return $http.put($rootScope.endPoint + 'ProjectSequence/UpdateSequence', obj, config);\r\n }\r\n\r\n function RemoveProjectSequence(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectSequence/RemoveSequence', obj, config);\r\n }\r\n\r\n function getAllProjectSequence(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectSequence/GetAllProjectSequence/' + id, config);\r\n }\r\n\r\n \r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectStatus')\r\n .service('ProjectStatusService', ProjectStatusService);\r\n\r\n ProjectStatusService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectStatusService($http, $rootScope) {\r\n this.getAllConsolidateProjectStatus = getAllConsolidateProjectStatus;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllConsolidateProjectStatus(obj) {\r\n debugger;\r\n return $http.post($rootScope.endPoint + 'ProjectStatus/getAllConsolidateProjectStatus', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectTeam')\r\n .service('ProjectTeamService', ProjectTeamService);\r\n\r\n ProjectTeamService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectTeamService($http, $rootScope) {\r\n this.SaveUpdateDelete = SaveUpdateDelete;\r\n this.GetAllDraft = GetAllDraft;\r\n this.GetAllWaitingForApproval = GetAllWaitingForApproval;\r\n this.GetAllBackForCorrection = GetAllBackForCorrection;\r\n this.GetEmpByProject = GetEmpByProject;\r\n this.GetAllApproved = GetAllApproved;\r\n this.SendApproval = SendApproval;\r\n this.ApproveProjectTeam = ApproveProjectTeam;\r\n this.ResubmitProjectTeam = ResubmitProjectTeam;\r\n this.BlockProjectTeam = BlockProjectTeam;\r\n this.AddRejectionNotes = AddRejectionNotes;\r\n this.RemoveProjectTeam = RemoveProjectTeam;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function SaveUpdateDelete(ProTeam) {\r\n return $http.post($rootScope.endPoint + 'ProjectTeam/SaveUpdateDeleteProjectTeam', ProTeam, config);\r\n }\r\n\r\n function GetAllDraft(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectTeam/GetAllDraft/' + id, config);\r\n }\r\n\r\n function GetAllWaitingForApproval(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectTeam/GetAllWaitingForApproval/' + id, config);\r\n }\r\n\r\n function GetAllBackForCorrection(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectTeam/GetAllBlockandBack/' + id, config);\r\n }\r\n\r\n function GetAllApproved(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectTeam/GetAllApproved/' + id, config);\r\n }\r\n\r\n function GetEmpByProject(id) {\r\n return $http.get($rootScope.endPoint + 'ProjectTeam/GetEmployeeTeamByProject/' + id, config);\r\n }\r\n\r\n function SendApproval(id) {\r\n return $http.post($rootScope.endPoint + 'ProjectTeam/SendforApproval/' + id, config);\r\n }\r\n\r\n function AddRejectionNotes(obj) {\r\n return $http.post($rootScope.endPoint + 'ProjectTeam/AddRejectionNotes', obj, config);\r\n }\r\n\r\n function RemoveProjectTeam(id) {\r\n return $http.delete($rootScope.endPoint + 'ProjectTeam/RemoveProjectTeam/' + id, config);\r\n }\r\n\r\n function ApproveProjectTeam(id) {\r\n return $http.post($rootScope.endPoint + 'ProjectTeam/Approved/' + id, config);\r\n }\r\n\r\n function ResubmitProjectTeam(id) {\r\n return $http.post($rootScope.endPoint + 'ProjectTeam/Resubmit/' + id, config);\r\n }\r\n function BlockProjectTeam(id) {\r\n return $http.post($rootScope.endPoint + 'ProjectTeam/Block/' + id, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('projectToProjectService', projectToProjectService);\r\n\r\n projectToProjectService.$inject = ['$http', '$rootScope'];\r\n\r\n function projectToProjectService($http, $rootScope) {\r\n\r\n /// COPY FROM\r\n this.getTypeofLocation = getTypeofLocation;\r\n this.getLocationTiers = getLocationTiers;\r\n this.getFocDetails = getFocDetails;\r\n this.getCategoryDetails = getCategoryDetails;\r\n this.getSubCategoryDetails = getSubCategoryDetails;\r\n this.getTypeofCADetails = getTypeofCADetails;\r\n this.getIocaDetails = getIocaDetails;\r\n\r\n /// COPY TO\r\n this.getTo_ProjectDetails = getTo_ProjectDetails;\r\n this.getTo_TypeofLocation = getTo_TypeofLocation;\r\n this.getTo_LocationTiers = getTo_LocationTiers;\r\n this.checkCopyProject = checkCopyProject;\r\n this.LoadData = LoadData;\r\n this.SaveCopyBoQ = SaveCopyBoQ;\r\n\r\n /////////////\r\n function getTypeofLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getTypeOfLocation', obj);\r\n }\r\n\r\n function getLocationTiers(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getLocationTiers', obj);\r\n }\r\n\r\n function getFocDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetFOCDetails', obj);\r\n }\r\n\r\n function getCategoryDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetCategoryDetails', obj);\r\n }\r\n\r\n function getSubCategoryDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetSubCategoryDetails', obj);\r\n }\r\n function getTypeofCADetails(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetTypeofCADetails', obj);\r\n }\r\n function getIocaDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/GetIOCADetails', obj);\r\n }\r\n\r\n ///// COPY TO\r\n function getTo_ProjectDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getTo_ProjectDetails', obj);\r\n }\r\n\r\n function getTo_TypeofLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getTo_TypeofLocation', obj);\r\n }\r\n\r\n function getTo_LocationTiers(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getTo_LocationTiers', obj);\r\n }\r\n\r\n function checkCopyProject(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/checkCopyProject', obj);\r\n }\r\n\r\n function LoadData(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/getLoadCopyBoQ', obj);\r\n }\r\n\r\n function SaveCopyBoQ(obj) {\r\n return $http.post($rootScope.endPoint + 'BoQ/SaveCopyBoQ', obj);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectMgtandApp')\r\n .service('RateAnalysisService', RateAnalysisService);\r\n\r\n RateAnalysisService.$inject = ['$rootScope', '$http'];\r\n\r\n function RateAnalysisService($rootScope, $http) {\r\n this.getScopeBasedContractorName = getScopeBasedContractorName;\r\n this.getContractorBasedWorkOrderNo = getContractorBasedWorkOrderNo;\r\n this.ShowRateReport = ShowRateReport;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function ShowRateReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RateReport/ShowRateReport', obj, config);\r\n }\r\n \r\n function getScopeBasedContractorName(obj) {\r\n return $http.post($rootScope.endPoint + 'RateReport/ContractorNameList', obj, config);\r\n }\r\n\r\n function getContractorBasedWorkOrderNo(obj) {\r\n return $http.post($rootScope.endPoint + 'RateReport/WorkOrderList', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('RateofInputService', RateofInputService);\r\n\r\n RateofInputService.$inject = ['$http', '$rootScope'];\r\n\r\n function RateofInputService($http, $rootScope) {\r\n this.getLabourTypeByLabrCategoryId = getLabourTypeByLabrCategoryId;\r\n this.AddRate = AddRate;\r\n this.UpdateRate = UpdateRate;\r\n this.DeleteRate = DeleteRate;\r\n this.getAllRate = getAllRate;\r\n this.getAllMaterialAttributes = getAllMaterialAttributes;\r\n this.AddLabourRate = AddLabourRate;\r\n this.AddMaterialRate = AddMaterialRate;\r\n this.AddMachineryRate = AddMachineryRate;\r\n this.AddConsumableRate = AddConsumableRate;\r\n this.AddIocaRate = AddIocaRate;\r\n this.GetLabourRate = GetLabourRate;\r\n this.GetMaterialRate = GetMaterialRate;\r\n this.GetMachineryRate = GetMachineryRate;\r\n this.GetConsumableRate = GetConsumableRate;\r\n this.GetIocaRate = GetIocaRate;\r\n this.getLabourCategory = getLabourCategory;\r\n this.getLabourType = getLabourType;\r\n this.getMaterialLOB = getMaterialLOB;\r\n this.getMaterialCountry = getMaterialCountry;\r\n this.getMaterialCategory = getMaterialCategory;\r\n this.getMaterialSubCategory = getMaterialSubCategory;\r\n this.getMaterialType = getMaterialType;\r\n this.getMaterialIOM = getMaterialIOM;\r\n this.getMachineryLOB = getMachineryLOB;\r\n this.getMachineryCountry = getMachineryCountry;\r\n this.getMachineryCategory = getMachineryCategory;\r\n this.getMachinerySubCategory = getMachinerySubCategory;\r\n this.getMachineryType = getMachineryType;\r\n this.getMachineryIOM = getMachineryIOM;\r\n this.getConsumableCategory = getConsumableCategory;\r\n this.getConsumableType = getConsumableType;\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddLabourRate(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/CreateLabour', obj, config);\r\n }\r\n\r\n function AddMaterialRate(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/CreateMaterial', obj, config);\r\n }\r\n\r\n function AddMachineryRate(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/CreateMachinery', obj, config);\r\n }\r\n\r\n function AddConsumableRate(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/CreateConsumable', obj, config);\r\n }\r\n\r\n function AddIocaRate(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/CreateIoca', obj, config);\r\n }\r\n\r\n function getAllMaterialAttributes(objMaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/getAllMaterialAttributes', objMaterialAttribute, config);\r\n }\r\n\r\n function getAllRate(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function getLabourTypeByLabrCategoryId(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function GetLabourRate(Id) {\r\n return $http.get($rootScope.endPoint + 'RateofInput/GetLabourRate/' + Id, config);\r\n }\r\n\r\n function GetMaterialRate(Id) {\r\n return $http.get($rootScope.endPoint + 'RateofInput/GetMaterialRate/' + Id, config);\r\n }\r\n\r\n function GetMachineryRate(Id) {\r\n return $http.get($rootScope.endPoint + 'RateofInput/GetMachineryRate/' + Id, config);\r\n }\r\n\r\n function GetConsumableRate(Id) {\r\n return $http.get($rootScope.endPoint + 'RateofInput/GetConsumableRate/' + Id, config);\r\n }\r\n\r\n function GetIocaRate(Id) {\r\n return $http.get($rootScope.endPoint + 'RateofInput/GetIocaRate/' + Id, config);\r\n }\r\n\r\n function AddRate(categoryofCA) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/Create', categoryofCA, config);\r\n }\r\n\r\n function UpdateRate(obj) {\r\n return $http.put($rootScope.endPoint + 'RateofInput/Modify', obj, config);\r\n }\r\n\r\n function DeleteRate(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/Delete', obj, config);\r\n }\r\n\r\n function getLabourCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetLabourCategory', obj, config);\r\n }\r\n\r\n function getLabourType(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetLabourType', obj, config);\r\n }\r\n\r\n function getMaterialLOB(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMaterialLOB', obj, config);\r\n }\r\n\r\n function getMaterialCountry(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMaterialCountry', obj, config);\r\n }\r\n\r\n function getMaterialCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMaterialCategory', obj, config);\r\n }\r\n\r\n function getMaterialSubCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMaterialSubCategory', obj, config);\r\n }\r\n\r\n function getMaterialType(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMaterialType', obj, config);\r\n }\r\n\r\n function getMaterialIOM(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMaterialIOM', obj, config);\r\n }\r\n\r\n function getMachineryLOB(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMachineryLOB', obj, config);\r\n }\r\n\r\n function getMachineryCountry(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMachineryCountry', obj, config);\r\n }\r\n\r\n function getMachineryCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMachineryCategory', obj, config);\r\n }\r\n\r\n function getMachinerySubCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMachinerySubCategory', obj, config);\r\n }\r\n\r\n function getMachineryType(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMachineryType', obj, config);\r\n }\r\n\r\n function getMachineryIOM(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetMachineryIOM', obj, config);\r\n }\r\n\r\n function getConsumableCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetConsumableCategory', obj, config);\r\n }\r\n\r\n function getConsumableType(obj) {\r\n return $http.post($rootScope.endPoint + 'RateofInput/GetConsumableType', obj, config);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n})();\n\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectMgtandApp')\r\n .service('RequirementReportService', RequirementReportService);\r\n\r\n RequirementReportService.$inject = ['$http', '$rootScope'];\r\n\r\n function RequirementReportService($http, $rootScope) {\r\n this.ShowRequirementReport = ShowRequirementReport;\r\n this.ShowRequirementMaterialDetailsReport = ShowRequirementMaterialDetailsReport;\r\n this.getBoQFoc = getBoQFoc;\r\n this.getBoQCategory = getBoQCategory;\r\n this.getBoQSubCategory = getBoQSubCategory;\r\n this.getBoQType = getBoQType;\r\n this.getBoQIOCA = getBoQIOCA;\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function ShowRequirementReport(obj, requmtObj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RequirementReport/ShowRequirementLabourDetailsReport', obj, config);\r\n }\r\n\r\n\r\n function ShowRequirementMaterialDetailsReport() {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RequirementReport/ShowRequirementMaterialDetailsReport', {}, config);\r\n }\r\n function getBoQFoc(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPT_Req_BoqFoc', boq, config);\r\n }\r\n function getBoQCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPT_Req_BoQCategory', boq, config);\r\n }\r\n \r\n function getBoQSubCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPT_Req_BoQSubCategory', boq, config);\r\n }\r\n \r\n function getBoQType(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPT_Req_BoQType', boq, config);\r\n }\r\n \r\n function getBoQIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'BoQ/Get_RPT_Req_BoQIOCA', boq, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .service('RFQService', RFQService);\r\n\r\n RFQService.$inject = ['$http', '$rootScope'];\r\n\r\n function RFQService($http, $rootScope) {\r\n\r\n this.AddRFQMaster = AddRFQMaster;\r\n this.GetAllRFQMaster = GetAllRFQMaster;\r\n this.AddRFQContract = AddRFQContract;\r\n this.GetRFQContractByContractor = GetRFQContractByContractor;\r\n this.AddRFQPrice = AddRFQPrice;\r\n this.GetRFQForWorkOrder = GetRFQForWorkOrder;\r\n this.RFQApproval = RFQApproval;\r\n // this.ShowRFQReport = ShowRFQReport;\r\n this.ShowRFQCompareReport = ShowRFQCompareReport;\r\n this.GetAllWorkOrder = GetAllWorkOrder;\r\n this.GetAllStatus = GetAllStatus;\r\n this.UpdateWorkorderStatus = UpdateWorkorderStatus;\r\n this.GetAllApprovedWorkOrder = GetAllApprovedWorkOrder;\r\n this.UpdateWorkorderPayment = UpdateWorkorderPayment;\r\n this.GetAllLetterOfIntent = GetAllLetterOfIntent;\r\n this.UpdateLetterofIntentStatus = UpdateLetterofIntentStatus;\r\n this.GetAllRFQForLetterofIntent = GetAllRFQForLetterofIntent;\r\n this.CreateWorkOrder = CreateWorkOrder;\r\n // this.getCountryByRfq = getCountryByRfq;\r\n this.AddRFQDetails = AddRFQDetails;\r\n this.GetContractorByRfq = GetContractorByRfq;\r\n this.getAllRfq = getAllRfq;\r\n this.getViewRfq = getViewRfq;\r\n this.GetRfqDetails = GetRfqDetails;\r\n this.addIoca = addIoca;\r\n this.removeIoca = removeIoca;\r\n this.removeContractor = removeContractor;\r\n this.addContractor = addContractor;\r\n this.sendForApproval = sendForApproval;\r\n this.rejectRfq = rejectRfq;\r\n this.ApproveRfq = ApproveRfq;\r\n this.resubmitRfq = resubmitRfq;\r\n this.blockRfq = blockRfq;\r\n this.updateRfq = updateRfq;\r\n this.DeleteRfq = DeleteRfq;\r\n this.showReport = showReport;\r\n // this.uploadDrawing = uploadDrawing;\r\n // this.removeDrawing = removeDrawing;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function AddRFQDetails(obj) {\r\n // var config = {\r\n // headers: {\r\n // \"Token\": $rootScope.token\r\n // }\r\n // }\r\n // config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'RFQ/createRfq', obj, config);\r\n }\r\n\r\n function updateRfq(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/UpdateRfq', obj, config);\r\n }\r\n\r\n function DeleteRfq(id) {\r\n return $http.delete($rootScope.endPoint + 'RFQ/Delete/' + id, config);\r\n }\r\n\r\n // function uploadDrawing (rfqId, formData) {\r\n // var config = {\r\n // headers: {\r\n // \"Token\": $rootScope.token\r\n // }\r\n // }\r\n // config.headers[\"Content-Type\"] = undefined;\r\n // return $http.post($rootScope.endPoint + 'RFQ/uploadRfqDrawing/' + rfqId, formData, config);\r\n // }\r\n\r\n // function removeDrawing (rfqId, drawingName) {\r\n // return $http.delete($rootScope.endPoint + 'RFQ/removeDrawing/' + rfqId + '?drawingName=' + drawingName, config);\r\n // }\r\n\r\n function removeIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/DeleteIoca', obj, config);\r\n }\r\n function removeContractor(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/DeleteContractor', obj, config);\r\n }\r\n function addContractor(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/AddContractorByRfq', obj, config);\r\n }\r\n function addIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/CreateRfqIocaDtl', obj, config);\r\n }\r\n function getViewRfq(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/getViewRfq', obj, config);\r\n }\r\n function blockRfq(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/Blocked', obj, config);\r\n }\r\n function rejectRfq(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/Rejection', obj, config);\r\n }\r\n function ApproveRfq(rfqId) {\r\n return $http.get($rootScope.endPoint + 'RFQ/Approved/' + rfqId, config);\r\n }\r\n function resubmitRfq(rfqId) {\r\n return $http.get($rootScope.endPoint + 'RFQ/Resubmitted/' + rfqId, config);\r\n }\r\n function sendForApproval(rfqId) {\r\n return $http.get($rootScope.endPoint + 'RFQ/SendforApproval/' + rfqId, config);\r\n }\r\n\r\n function GetRfqDetails(rfqId) {\r\n return $http.get($rootScope.endPoint + 'RFQ/getRfqDetails/' + rfqId, config);\r\n }\r\n\r\n function getAllRfq(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQ/getAllRfq', obj, config);\r\n }\r\n\r\n function GetContractorByRfq(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'RFQ/GetContractorByRfq', obj, config);\r\n }\r\n\r\n // function getCountryByRfq(obj) {\r\n\r\n // return $http.post($rootScope.endPoint + 'RFQ/getAllCountry', obj, config);\r\n // }\r\n\r\n function AddRFQMaster(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'RFQ/CreateRFQMaster', obj, config);\r\n }\r\n\r\n function AddRFQPrice(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'RFQ/CreateRFQPrice', obj, config);\r\n }\r\n\r\n function CreateWorkOrder(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'RFQ/CreateWorkOrder', obj, config);\r\n }\r\n\r\n function UpdateWorkorderStatus(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'RFQ/UpdateWorkorderStatus', obj, config);\r\n }\r\n\r\n function UpdateWorkorderPayment(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'RFQ/UpdateWorkorderPayment', obj, config);\r\n }\r\n\r\n function UpdateLetterofIntentStatus(obj) {\r\n\r\n return $http.put($rootScope.endPoint + 'RFQ/UpdateLetterofIntentStatus', obj, config);\r\n }\r\n\r\n function GetAllRFQMaster() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetAllRFQMaster', config);\r\n }\r\n\r\n function GetAllWorkOrder() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetAllWorkOrder', config);\r\n }\r\n\r\n function GetAllApprovedWorkOrder() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetAllApprovedWorkOrder', config);\r\n }\r\n\r\n function GetAllStatus() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetAllStatus', config);\r\n }\r\n\r\n function GetRFQContractByContractor(id) {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetRFQByContractor/' + id, config);\r\n }\r\n\r\n function GetAllRFQForLetterofIntent() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetAllRFQForLetterofIntent', config);\r\n }\r\n\r\n function GetRFQForWorkOrder() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetRFQForWorkOrder', config);\r\n }\r\n\r\n function GetAllLetterOfIntent() {\r\n return $http.get($rootScope.endPoint + 'RFQ/GetAllLetterOfIntent', config);\r\n }\r\n\r\n function AddRFQContract(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'RFQ/CreateRFQContract', obj, config);\r\n }\r\n\r\n function RFQApproval(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'RFQ/RFQApproval', obj, config);\r\n }\r\n\r\n //Rfq Report\r\n function showReport(obj) {\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RFQ/ShowRFQReport', obj, config);\r\n }\r\n\r\n function ShowRFQCompareReport(obj) {\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RFQ/ShowRFQCompareReport', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.RFQTemplates')\r\n .service('RFQContentTemplateService', RFQContentTemplateService);\r\n\r\n RFQContentTemplateService.$inject = ['$http', '$rootScope'];\r\n\r\n function RFQContentTemplateService($http, $rootScope) {\r\n\r\n this.AddContentTemplate = AddContentTemplate;\r\n this.removeContentTemplate = removeContentTemplate;\r\n this.editContentTemplate = editContentTemplate;\r\n this.getAllContentTemplate = getAllContentTemplate;\r\n this.getcontentforRFQ = getcontentforRFQ;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n \r\n function getAllContentTemplate(RfQTempId) {\r\n return $http.get($rootScope.endPoint + 'RFQContentTemplate/AllContentTemplate/' + RfQTempId, config);\r\n }\r\n\r\n \r\n\r\n function getcontentforRFQ(id) {\r\n return $http.get($rootScope.endPoint + 'RFQContentTemplate/getContentforRFQ/'+ id, config);\r\n }\r\n\r\n function AddContentTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQContentTemplate/Create', obj, config);\r\n }\r\n\r\n \r\n\r\n function editContentTemplate(Template) {\r\n return $http.put($rootScope.endPoint + 'RFQContentTemplate/Modify', Template, config);\r\n }\r\n\r\n function removeContentTemplate(id) {\r\n return $http.delete($rootScope.endPoint + 'RFQContentTemplate/Delete/' + id, config);\r\n }\r\n\r\n \r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .service('RfqContractorService', RfqContractorService);\r\n\r\n RfqContractorService.$inject = ['$http', '$rootScope'];\r\n\r\n function RfqContractorService($http, $rootScope) {\r\n\r\n this.getCountRfqContractor = getCountRfqContractor;\r\n this.getRfqByContractor = getRfqByContractor;\r\n this.getContRfqIocaDtls = getContRfqIocaDtls;\r\n this.addContractorRateAndDtl = addContractorRateAndDtl;\r\n this.submitContRfq = submitContRfq;\r\n this.updateAttachment = updateAttachment;\r\n this.updateSign = updateSign;\r\n this.getAllFinalised = getAllFinalised;\r\n this.getAllApprovedRfq = getAllApprovedRfq;\r\n this.getRfqQuotationDetails = getRfqQuotationDetails;\r\n\r\n this.saveRfqComparisionAsDraft = saveRfqComparisionAsDraft;\r\n this.sendComparisionForApproval = sendComparisionForApproval;\r\n this.rejectComparision = rejectComparision;\r\n this.resubmitComparision = resubmitComparision;\r\n this.approveComparision = approveComparision;\r\n this.blockComparision = blockComparision;\r\n this.getDraftRfqComparision = getDraftRfqComparision;\r\n this.getWaitingForApprovalRfqComparision = getWaitingForApprovalRfqComparision;\r\n this.getBackForCorrectionRfqComparision = getBackForCorrectionRfqComparision;\r\n this.getApprovedRfqComparision = getApprovedRfqComparision;\r\n this.getBlockedRfqComparision = getBlockedRfqComparision;\r\n this.modifyRfqComparisionDtls = modifyRfqComparisionDtls;\r\n this.showContractorRfqReport = showContractorRfqReport;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function addContractorRateAndDtl(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'RfqContractor/saveRfqContDtls', obj, config);\r\n }\r\n function getCountRfqContractor(contId) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getCountOfContRfq/' + contId, config);\r\n }\r\n\r\n function getRfqByContractor(contId) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getRfqByContId/' + contId, config);\r\n }\r\n\r\n function getAllFinalised(Id,ContId) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getAllFinalisedContract/' + Id + '?ContId=' + ContId, config);\r\n }\r\n\r\n function submitContRfq(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/submitContRfqDetails', obj, config);\r\n }\r\n\r\n function getContRfqIocaDtls(rfqId, ContId) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getContRfqDetials/' + rfqId + '?ContId=' + ContId, config);\r\n }\r\n\r\n function getAllApprovedRfq(id) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getAllApprovedRfq/'+id, config);\r\n }\r\n\r\n // API calls for Comparision\r\n\r\n function getRfqQuotationDetails(rfqId) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getRfqQuotationDetails/' + rfqId, config);\r\n }\r\n\r\n function modifyRfqComparisionDtls(obj) {\r\n return $http.put($rootScope.endPoint + 'RfqContractor/modifyRfqComparisionDtls/', obj, config);\r\n }\r\n\r\n function saveRfqComparisionAsDraft(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/saveRfqComparisionAsDraft', obj, config);\r\n }\r\n\r\n function sendComparisionForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/sendComparisionForApproval', obj, config);\r\n }\r\n\r\n function rejectComparision(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/rejectComparision', obj, config);\r\n }\r\n\r\n function resubmitComparision(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/resubmitComparision', obj, config);\r\n }\r\n\r\n function approveComparision(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/approveComparision', obj, config);\r\n }\r\n\r\n function blockComparision(obj) {\r\n return $http.post($rootScope.endPoint + 'RfqContractor/blockComparision', obj, config);\r\n }\r\n\r\n function getDraftRfqComparision(id) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getDraftRfqComparision/'+ id, config);\r\n }\r\n\r\n function getWaitingForApprovalRfqComparision(id) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getWaitingForApprovalRfqComparision/'+ id, config);\r\n }\r\n\r\n function getBackForCorrectionRfqComparision(id) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getBackForCorrectionRfqComparision/'+ id, config);\r\n }\r\n\r\n function getApprovedRfqComparision(id) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getApprovedRfqComparision/'+ id, config);\r\n }\r\n\r\n function getBlockedRfqComparision(id) {\r\n return $http.get($rootScope.endPoint + 'RfqContractor/getBlockedRfqComparision/'+ id, config);\r\n }\r\n // API calls for Comparision\r\n \r\n function updateAttachment(formData, rfqId, contId) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'RfqContractor/updateAttachment/' + rfqId + '?contId=' + contId, formData, config);\r\n }\r\n\r\n function updateSign(formData, rfqId, contId) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'RfqContractor/updateSign/' + rfqId + '?contId=' + contId, formData, config);\r\n }\r\n\r\n function showContractorRfqReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'RFQ/ShowContractorRfqReport', obj, config);\r\n }\r\n\r\n\r\n }\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.RFQTemplates')\r\n .service('RFQRequiredTemplateService', RFQRequiredTemplateService);\r\n\r\n RFQRequiredTemplateService.$inject = ['$http', '$rootScope'];\r\n\r\n function RFQRequiredTemplateService($http, $rootScope) {\r\n \r\n this.AddRequiredTemplate = AddRequiredTemplate;\r\n this.RemoveRequiredTemplate = RemoveRequiredTemplate;\r\n this.editRequiredTemplate = editRequiredTemplate;\r\n \r\n this.getAllRequiredTemplate = getAllRequiredTemplate; \r\n \r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n \r\n\r\n function getAllRequiredTemplate(RFQTempId) {\r\n return $http.get($rootScope.endPoint + 'RFQRequiredTemplate/AllRequiredTemplate/' + RFQTempId, config);\r\n }\r\n\r\n \r\n function AddRequiredTemplate(Template) {\r\n return $http.post($rootScope.endPoint + 'RFQRequiredTemplate/Create', Template, config);\r\n }\r\n\r\n function editRequiredTemplate(Template) {\r\n return $http.put($rootScope.endPoint + 'RFQRequiredTemplate/Modify', Template, config);\r\n }\r\n\r\n function RemoveRequiredTemplate(id) {\r\n return $http.delete($rootScope.endPoint + 'RFQRequiredTemplate/Delete/' + id, config);\r\n }\r\n\r\n \r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.RFQTemplates')\r\n .service('RFQTemplateService', RFQTemplateService);\r\n\r\n RFQTemplateService.$inject = ['$http', '$rootScope'];\r\n\r\n function RFQTemplateService($http, $rootScope) {\r\n\r\n this.AddRFQTemplate = AddRFQTemplate;\r\n this.editRFQTemplate = editRFQTemplate;\r\n this.getAllRFQTemplate = getAllRFQTemplate;\r\n // this.RemoveRFQTemplate = RemoveRFQTemplate;\r\n this.getCopyTemplate = getCopyTemplate;\r\n this.GetSubCategoryByCategory = GetSubCategoryByCategory;\r\n this.getCatgeoryListByFieldofCostructionId = getCatgeoryListByFieldofCostructionId;\r\n this.getAllTemplate = getAllTemplate;\r\n this.getRfqByProject = getRfqByProject;\r\n this.AddRFQGenerateTemplate = AddRFQGenerateTemplate;\r\n this.GetAllRfqGenerateTemplate = GetAllRfqGenerateTemplate;\r\n this.GetGenerateTemplateByRfqGenId = GetGenerateTemplateByRfqGenId;\r\n this.UpdateRequireTemplate = UpdateRequireTemplate;\r\n this.UpdateContentTemplate = UpdateContentTemplate;\r\n this.removeGenContentTemplate = removeGenContentTemplate;\r\n this.removeRfqTemplate = removeRfqTemplate;\r\n\r\n // this.existTemplate = existTemplate;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddRFQTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQTemplate/Create', obj, config);\r\n }\r\n\r\n function AddRFQGenerateTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQGenerateTemplate/Create', obj, config);\r\n }\r\n\r\n function UpdateRequireTemplate(obj) {\r\n return $http.put($rootScope.endPoint + 'RFQGenerateTemplate/UpdateRequire', obj, config);\r\n }\r\n function UpdateContentTemplate(obj) {\r\n return $http.put($rootScope.endPoint + 'RFQGenerateTemplate/UpdateContent', obj, config);\r\n }\r\n\r\n function editRFQTemplate(obj) {\r\n return $http.put($rootScope.endPoint + 'RFQTemplate/Modify', obj, config);\r\n }\r\n\r\n // function RemoveRFQTemplate(id) {\r\n // return $http.delete($rootScope.endPoint + 'RFQTemplate/Delete/' + id, config);\r\n // }\r\n\r\n function removeRfqTemplate(id) {\r\n return $http.delete($rootScope.endPoint + 'RFQTemplate/Delete/' + id, config);\r\n }\r\n\r\n function removeGenContentTemplate(id) {\r\n return $http.delete($rootScope.endPoint + 'RFQTemplate/DeleteContent/' + id, config);\r\n }\r\n\r\n function getAllRFQTemplate(Id) {\r\n return $http.get($rootScope.endPoint + 'RFQTemplate/AllRFQTemplate/' + Id, config);\r\n }\r\n\r\n function GetAllRfqGenerateTemplate() {\r\n return $http.get($rootScope.endPoint + 'RFQGenerateTemplate/GetAllRfqGenerateTemplate', config);\r\n }\r\n\r\n function GetGenerateTemplateByRfqGenId(id) {\r\n return $http.get($rootScope.endPoint + 'RFQGenerateTemplate/GetGenerateTemplateByRfqGenId/' + id, config);\r\n }\r\n\r\n\r\n function getRfqByProject(id) {\r\n return $http.get($rootScope.endPoint + 'RFQGenerateTemplate/GetRfqByProject/' + id, config);\r\n }\r\n\r\n function getCopyTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'RFQTemplate/getCopyTemplate', obj, config);\r\n }\r\n\r\n function getAllTemplate() {\r\n return $http.get($rootScope.endPoint + 'RFQTemplate/getAllTemplate', config);\r\n }\r\n\r\n function GetSubCategoryByCategory(CategoryId) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/GetSubCategoryByCategoryId/' + CategoryId, config);\r\n }\r\n\r\n function getCatgeoryListByFieldofCostructionId(obj) {\r\n return $http.post($rootScope.endPoint + 'Category/GetCategoryByCountryId', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.role')\r\n .service('RoleService', RoleService);\r\n\r\n RoleService.$inject = ['$rootScope', '$http'];\r\n\r\n function RoleService($rootScope, $http) {\r\n this.AddRole = AddRole;\r\n this.EditRole = EditRole;\r\n this.removeRole = removeRole;\r\n this.getAllRole = getAllRole;\r\n this.getRoleMenuMapping = getRoleMenuMapping;\r\n this.saveRoleMenuMapping = saveRoleMenuMapping;\r\n this.changeActiveRole = changeActiveRole;\r\n this.GetActiveRole = GetActiveRole;\r\n // this.getAllRoleById = getAllRoleById;\r\n\r\n /////////////\r\n\r\n function getConfig() {\r\n return {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n }\r\n\r\n function getAllRole() {\r\n // debugger;\r\n return $http.get($rootScope.endPoint + 'Role/AllRoles', getConfig());\r\n }\r\n\r\n function getRoleMenuMapping(roleId) {\r\n return $http.get($rootScope.endPoint + 'RoleMenuMapping/GetMenuMappingByRoleId/' + roleId, getConfig());\r\n }\r\n\r\n function saveRoleMenuMapping(roleId, menuList) {\r\n return $http.post($rootScope.endPoint + 'RoleMenuMapping/Save/' + roleId, menuList, getConfig());\r\n }\r\n\r\n // function getAllRoleById($scope, $rootScope, $http, objGetEmpDTO) {\r\n // return $http.get($rootScope.endPoint + 'Role/GetById');\r\n // }\r\n\r\n function AddRole(role) {\r\n return $http.post($rootScope.endPoint + 'Role/Create', role, getConfig());\r\n }\r\n\r\n function EditRole(role) {\r\n return $http.put($rootScope.endPoint + 'Role/Modify', role, getConfig());\r\n }\r\n\r\n function removeRole(id) {\r\n return $http.delete($rootScope.endPoint + 'Role/Delete/' + id, getConfig());\r\n }\r\n function changeActiveRole(id) {\r\n return $http.post($rootScope.endPoint + 'Role/ChangeActive/' + id, {}, getConfig());\r\n }\r\n function GetActiveRole() {\r\n return $http.get($rootScope.endPoint + 'Role/GetActiveRole', getConfig());\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('StockRegistrationService', StockRegistrationService);\r\n\r\n StockRegistrationService.$inject = ['$http', '$rootScope'];\r\n\r\n function StockRegistrationService($http, $rootScope) {\r\n this.getStockRegIOM = getStockRegIOM;\r\n this.getStockRegmCat = getStockRegmCat;\r\n this.getStockRegmSubCat = getStockRegmSubCat;\r\n this.getStockRegmType = getStockRegmType;\r\n this.getStockRegIOMByTypeId = getStockRegIOMByTypeId;\r\n this.getStockDetailsByIOMId = getStockDetailsByIOMId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getStockRegIOM(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockRegIOM', obj, config);\r\n }\r\n\r\n function getStockRegmCat(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockRegmCat', obj, config);\r\n }\r\n\r\n function getStockRegmSubCat(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockRegmSubCat', obj, config);\r\n }\r\n\r\n function getStockRegmType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockRegmType', obj, config);\r\n }\r\n\r\n function getStockRegIOMByTypeId(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockRegIOMByTypeId', obj, config);\r\n }\r\n\r\n function getStockDetailsByIOMId(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockDetailsByIOMId', obj, config);\r\n }\r\n\r\n\r\n /*Initial Stock Service Start */\r\n this.getInitStockRegIOM = getInitStockRegIOM\r\n this.getInitStockRegmCat = getInitStockRegmCat\r\n this.getInitStockRegmSubCat = getInitStockRegmSubCat\r\n this.getInitStockRegmType = getInitStockRegmType\r\n this.getInitStockRegIOMByTypeId = getInitStockRegIOMByTypeId\r\n this.getSaveInitialStock = getSaveInitialStock\r\n\r\n function getInitStockRegIOM(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getInitStockRegIOM', obj, config)\r\n }\r\n\r\n function getInitStockRegmCat(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getInitStockRegmCat', obj, config)\r\n }\r\n\r\n function getInitStockRegmSubCat(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getInitStockRegmSubCat', obj, config)\r\n }\r\n\r\n function getInitStockRegmType(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getInitStockRegmType', obj, config)\r\n }\r\n\r\n function getInitStockRegIOMByTypeId(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getInitStockRegIOMByTypeId', obj, config)\r\n }\r\n function getSaveInitialStock(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getSaveInitialStock', obj, config)\r\n }\r\n\r\n /*End Service */\r\n\r\n /*Stock Statement Service Start */\r\n this.getStockStatement = getStockStatement\r\n\r\n function getStockStatement(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStockStatement', obj, config)\r\n }\r\n /*End Service */\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('TierSetupService', TierSetupService);\r\n\r\n TierSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function TierSetupService($http, $rootScope) {\r\n this.AddTierSetup = AddTierSetup;\r\n this.updateTierSetup = updateTierSetup;\r\n this.removeTierSetup = removeTierSetup;\r\n this.getAllTierSetup = getAllTierSetup;\r\n this.getTierByBoQIoca = getTierByBoQIoca;\r\n this.GetTierByPrivilege = GetTierByPrivilege;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getTierByBoQIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'TierSetup/GetTierByBoQIoca', obj, config);\r\n }\r\n\r\n function getAllTierSetup(LocationId) {\r\n return $http.get($rootScope.endPoint + 'TierSetup/AllTierMaster/' + LocationId, config);\r\n }\r\n \r\n function GetTierByPrivilege(LocationId, ProjectId, IOCA_Id, ProjectIocaId, FromBoq, Status) {\r\n return $http.get($rootScope.endPoint + 'TierSetup/Get_TierByPrivilege/' + LocationId + '?ProjectId=' + ProjectId + '&IOCA_Id=' + IOCA_Id + '&ProjectIocaId=' + ProjectIocaId + '&FromBoq=' + FromBoq + '&Status=' + Status, config);\r\n }\r\n \r\n function AddTierSetup(tier) {\r\n return $http.post($rootScope.endPoint + 'TierSetup/Create', tier, config);\r\n }\r\n\r\n function updateTierSetup(tier) {\r\n return $http.put($rootScope.endPoint + 'TierSetup/Modify', tier, config);\r\n }\r\n\r\n function removeTierSetup(id) {\r\n return $http.delete($rootScope.endPoint + 'TierSetup/Delete/' + id, config);\r\n }\r\n\r\n function ShowTestReport(CompanyId) {\r\n return $http.post($rootScope.endPoint + 'TierSetup/ShowReport/', + CompanyId, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.consumableMaster')\r\n .service('TypeOfConsumableServices', TypeOfConsumableServices);\r\n\r\n TypeOfConsumableServices.$inject = ['$http', '$rootScope'];\r\n\r\n function TypeOfConsumableServices($http, $rootScope) {\r\n this.AddTypeOfConsumable = AddTypeOfConsumable;\r\n this.EditTypeOfConsumable = EditTypeOfConsumable;\r\n this.removeConsumableType = removeConsumableType;\r\n this.getAllTypeOfConsumable = getAllTypeOfConsumable;\r\n this.getTypeOfConsumableId = getTypeOfConsumableById;\r\n this.GetTypeOfCAByCategoryId = GetTypeOfCAByCategoryId;\r\n this.GetActiveConsumableTypeById = GetActiveConsumableTypeById;\r\n this.changeActiveConsumableType = changeActiveConsumableType;\r\n this.ShowConsumbaleTypeReport = ShowConsumbaleTypeReport ;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllTypeOfConsumable(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'ConsumableType/AllConsumableTypes', config);\r\n }\r\n\r\n function getTypeOfConsumableById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'ConsumableType/GetConsumableTypeById/' + id, config);\r\n }\r\n\r\n function AddTypeOfConsumable(typeofConsumable) {\r\n return $http.post($rootScope.endPoint + 'ConsumableType/Create', typeofConsumable, config);\r\n }\r\n\r\n function EditTypeOfConsumable(typeofConsumable) {\r\n return $http.put($rootScope.endPoint + 'ConsumableType/Modify', typeofConsumable, config);\r\n }\r\n\r\n function removeConsumableType(id) {\r\n return $http.delete($rootScope.endPoint + 'ConsumableType/Delete/' + id, config);\r\n }\r\n\r\n function GetTypeOfCAByCategoryId(id) {\r\n return $http.get($rootScope.endPoint + 'ConsumableType/GetConsumableTypeByCategoryId/' + id, config);\r\n }\r\n\r\n function GetActiveConsumableTypeById(id) {\r\n return $http.get($rootScope.endPoint + 'ConsumableType/GetActiveConsumableTypeById/', config);\r\n }\r\n\r\n function changeActiveConsumableType(id) {\r\n return $http.post($rootScope.endPoint + 'ConsumableType/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function ShowConsumbaleTypeReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'ConsumableReport/ShowConsumbaleTypeReport', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.services')\r\n .service('UnitOfMeasurementService', UnitOfMeasurementService);\r\n\r\n UnitOfMeasurementService.$inject = ['$http', '$rootScope'];\r\n\r\n function UnitOfMeasurementService($http, $rootScope) {\r\n this.AddUnitconversion = AddUnitconversion;\r\n this.EditUnitconversion = EditUnitconversion;\r\n this.removeUnitconversion = removeUnitconversion;\r\n this.getAllUnits = getAllUnits;\r\n this.GetAllStdUOM = GetAllStdUOM;\r\n this.changeActiveUnitconversion = changeActiveUnitconversion;\r\n this.getActiveUnits = getActiveUnits;\r\n this.getAllUnitByUnitType = getAllUnitByUnitType;\r\n this.getAllNonStdUnits = getAllNonStdUnits;\r\n // this.ShowUnitReport = ShowUnitReport;\r\n this.ShowNonStdUnitReport = ShowNonStdUnitReport;\r\n \r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllUnits(obj) {\r\n return $http.post($rootScope.endPoint + 'UOM_Master/getAllUnits', obj, config);\r\n }\r\n\r\n function getAllNonStdUnits() {\r\n return $http.get($rootScope.endPoint + 'UOM_Master/getAllNonStdUnit', config);\r\n }\r\n \r\n \r\n\r\n function getActiveUnits() {\r\n return $http.get($rootScope.endPoint + 'UOM_Master/GetActiveUOMsById', config);\r\n }\r\n\r\n function GetAllStdUOM(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'UOM_Master/getAllStdUOM', config);\r\n }\r\n\r\n function AddUnitconversion(state) {\r\n return $http.post($rootScope.endPoint + 'UOM_Master/Create', state, config);\r\n }\r\n\r\n function EditUnitconversion(state) {\r\n return $http.put($rootScope.endPoint + 'UOM_Master/Modify', state, config);\r\n }\r\n\r\n function removeUnitconversion(id) {\r\n return $http.delete($rootScope.endPoint + 'UOM_Master/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveUnitconversion(id) {\r\n return $http.post($rootScope.endPoint + 'UOM_Master/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getAllUnitByUnitType(input, id) {\r\n return $http.post($rootScope.endPoint + 'UOM_Master/getAllUnitByUnitType/' + input + '?id=' + id, {}, config);\r\n }\r\n\r\n function ShowNonStdUnitReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'UnitReport/ShowNonStdUnitReport', obj, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.services')\r\n .service('UomParametersService', UomParametersService);\r\n\r\n UomParametersService.$inject = ['$http', '$rootScope'];\r\n\r\n function UomParametersService($http, $rootScope) {\r\n this.getAllUomParameters = getAllUomParameters;\r\n this.AddUOMParameters = AddUOMParameters;\r\n this.EditUOMParameters = EditUOMParameters;\r\n this.RemoveUOMParameters = RemoveUOMParameters;\r\n this.getUOmParametersById = getUOmParametersById\r\n this.getUOMParameterByUOmId = getUOMParameterByUOmId;\r\n this.ShowUnitReport = ShowUnitReport;\r\n this.getAllUnitByUnitType = getAllUnitByUnitType;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllUnitByUnitType(input,id) {\r\n return $http.post($rootScope.endPoint + 'UOM_Master/getAllUnitByUnitType/'+ input + '?id='+ id, config);\r\n }\r\n\r\n function getAllUomParameters() {\r\n return $http.get($rootScope.endPoint + 'UomParameters/getAllUomParameters', config);\r\n }\r\n\r\n function EditUOMParameters(UomParameters) {\r\n return $http.put($rootScope.endPoint + 'UomParameters/Modify', UomParameters, config);\r\n }\r\n\r\n function AddUOMParameters(UomParameters) {\r\n return $http.post($rootScope.endPoint + 'UomParameters/Create', UomParameters, config);\r\n }\r\n\r\n function RemoveUOMParameters(id) {\r\n return $http.delete($rootScope.endPoint + 'UomParameters/Delete/' + id, config);\r\n }\r\n\r\n function getUOmParametersById(UOM_ParametersId) {\r\n return $http.get($rootScope.endPoint + 'UomParameters/GetUOM_ParametersById/' + id, config);\r\n }\r\n\r\n function getUOMParameterByUOmId(UOM_Id) {\r\n return $http.get($rootScope.endPoint + 'UomParameters/GetUOM_ParametersByUOMId/' + UOM_Id, config);\r\n }\r\n\r\n\r\n function ShowUnitReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'UnitReport/ShowUnitReport', obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.services')\r\n .service('UserService', UserService);\r\n\r\n UserService.$inject = ['$http', '$rootScope'];\r\n\r\n function UserService($http, $rootScope) {\r\n this.getAllUsers = getAllUsers;\r\n this.getUserMenuMapping = getUserMenuMapping;\r\n this.saveUserMenuMapping = saveUserMenuMapping;\r\n this.getUserCompanies = getUserCompanies;\r\n this.getUserById = getUserById;\r\n this.UpdateSelectedCompany = UpdateSelectedCompany;\r\n this.checkUserEmail = checkUserEmail;\r\n this.checkUsername = checkUsername;\r\n this.createUser = createUser;\r\n this.getUsersByCompanyId = getUsersByCompanyId;\r\n this.removeUser = removeUser;\r\n this.UpdateUser = UpdateUser;\r\n this.CheckUserAccount = CheckUserAccount;\r\n this.getAllApprovedContractor = getAllApprovedContractor;\r\n this.createUserContractor = createUserContractor;\r\n this.CreateSupplier = CreateSupplier;\r\n this.getDashBoard = getDashBoard;\r\n this.getChartDetails = getChartDetails;\r\n this.GetKpostLogin = GetKpostLogin;\r\n this.KpostLogin = KpostLogin;\r\n this.GetAllProjectForDashboard = GetAllProjectForDashboard;\r\n this.GetAllUserType = GetAllUserType;\r\n this.GetAllUserTypeById = GetAllUserTypeById;\r\n this.GetWorkReportImages= GetWorkReportImages;\r\n this.GetSubCategoryCost = GetSubCategoryCost;\r\n this.GetMgrTodayWork= GetMgrTodayWork;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n /////////////\r\n\r\n function getDashBoard(obj) {\r\n return $http.post($rootScope.endPoint + 'User/DashBoard/', obj, config);\r\n }\r\n\r\n function getChartDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'User/DashBoardChartDetails/', obj, config);\r\n }\r\n\r\n function getUserById(userId) {\r\n return $http.get($rootScope.endPoint + 'User/GetUserById/' + userId);\r\n }\r\n\r\n function getAllApprovedContractor(userId) {\r\n return $http.get($rootScope.endPoint + 'User/GetApproveContractor/' + userId, config);\r\n }\r\n\r\n\r\n function getAllUsers() {\r\n return $http.get($rootScope.endPoint + 'User/AllUsers');\r\n }\r\n\r\n function getUsersByCompanyId(compId) {\r\n return $http.get($rootScope.endPoint + 'User/GetUsersByCompId/' + compId);\r\n }\r\n\r\n function getUserCompanies(userId) {\r\n return $http.get($rootScope.endPoint + 'User/GetUserCompanies/' + userId);\r\n }\r\n\r\n function getUserMenuMapping(userId) {\r\n return $http.get($rootScope.endPoint + 'UserMenuMapping/GetMenuMappingByUserId/' + userId, config);\r\n }\r\n\r\n function saveUserMenuMapping(userId, menuList) {\r\n return $http.post($rootScope.endPoint + 'UserMenuMapping/Save/' + userId, menuList, config);\r\n }\r\n\r\n function UpdateSelectedCompany(userDtlObj) {\r\n return $http.post($rootScope.endPoint + 'User/UpdateSelectedCompany', userDtlObj, config);\r\n }\r\n\r\n function UpdateUser(user) {\r\n return $http.put($rootScope.endPoint + 'User/Modify', user, config);\r\n }\r\n\r\n function createUser(user) {\r\n return $http.post($rootScope.endPoint + 'User/Create', user, config);\r\n }\r\n\r\n function createUserContractor(user) {\r\n return $http.post($rootScope.endPoint + 'User/CreateContractor', user, config);\r\n }\r\n function CreateSupplier(user) {\r\n return $http.post($rootScope.endPoint + 'User/CreateSupplier', user, config);\r\n }\r\n\r\n function removeUser(id) {\r\n return $http.delete($rootScope.endPoint + 'User/Delete/' + id, config);\r\n }\r\n\r\n function CheckUserAccount(user) {\r\n return $http.post($rootScope.endPoint + 'User/CheckUserAccount', user, config);\r\n }\r\n\r\n function checkUserEmail(email) {\r\n var obj = {\r\n EmailId: email\r\n }\r\n return $http.post($rootScope.endPoint + 'User/CheckUserEmailId', obj, config);\r\n }\r\n\r\n function checkUsername(username) {\r\n var obj = {\r\n Username: username\r\n }\r\n return $http.post($rootScope.endPoint + 'User/CheckUsername', obj, config);\r\n }\r\n\r\n function GetKpostLogin(ActionBy) {\r\n return $http.get($rootScope.endPoint + 'User/GetKpostLogin/' + ActionBy, config);\r\n }\r\n\r\n function KpostLogin(obj) {\r\n console.log($rootScope.CmsKpostEndPoint + 'login/?username= ' + obj.KpostId + '&password=' + obj.Password)\r\n // return $http.get($rootScope.CmsKpostEndPoint + 'login/?username= ' + obj.KpostId + '&password=' + obj.Password, config);\r\n }\r\n\r\n function GetAllProjectForDashboard(CompanyId, ActionBy) {\r\n return $http.get($rootScope.endPoint + 'User/GetAllProjectForDashboard/' + CompanyId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n function GetAllUserType(obj) {\r\n return $http.post($rootScope.endPoint + 'User/GetAllUserType', obj, config);\r\n }\r\n\r\n function GetAllUserTypeById(obj) {\r\n return $http.post($rootScope.endPoint + 'User/GetAllUserTypeById', obj, config);\r\n }\r\n\r\n function GetWorkReportImages(obj) {\r\n return $http.post($rootScope.endPoint + 'User/GetWorkReportImages', obj, config);\r\n }\r\n \r\n function GetSubCategoryCost(obj){\r\n return $http.post($rootScope.endPoint + 'User/GetSubCategoryCost', obj, config);\r\n }\r\n\r\n function GetMgrTodayWork(obj) {\r\n return $http.post($rootScope.endPoint + 'User/GetMgrTodayWork', obj, config);\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectTeam')\r\n .service('WorkAllocationService', WorkAllocationService);\r\n\r\n WorkAllocationService.$inject = ['$http', '$rootScope'];\r\n\r\n function WorkAllocationService($http, $rootScope) {\r\n this.SaveWorkAllocation = SaveWorkAllocation;\r\n this.GetWorkAllocationByEmp = GetWorkAllocationByEmp;\r\n this.GetAllWorkAllocation = GetAllWorkAllocation;\r\n this.RemoveWorkAllocation = RemoveWorkAllocation;\r\n this.SaveIOCAWorkAllocation = SaveIOCAWorkAllocation;\r\n this.SaveLocationWorkAllocation = SaveLocationWorkAllocation;\r\n this.getIOCAWorkAllocation = getIOCAWorkAllocation;\r\n this.getCAItemsForWorkAllocation = getCAItemsForWorkAllocation;\r\n this.getLocationWorkAllocation =getLocationWorkAllocation;\r\n this.removeIOCAWorkallocation =removeIOCAWorkallocation;\r\n this.removeLocationWorkallocation =removeLocationWorkallocation;\r\n this.getTiersByMappingIOCA = getTiersByMappingIOCA;\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function removeIOCAWorkallocation(Id) {\r\n return $http.delete($rootScope.endPoint + 'WorkAllocation/removeAllocatedIOCA/'+ Id, config);\r\n }\r\n function removeLocationWorkallocation(Id) {\r\n return $http.delete($rootScope.endPoint + 'WorkAllocation/removeAllocatedLocation/'+ Id, config);\r\n }\r\n function SaveWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/SaveWorkAllocation', obj, config);\r\n }\r\n\r\n function SaveIOCAWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/SaveIocaWorkAllocation', obj, config);\r\n }\r\n\r\n function SaveLocationWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/SaveLocationWorkAllocation', obj, config);\r\n }\r\n\r\n function getCAItemsForWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'Category/getCAItemsForWorkAllocation', obj, config);\r\n }\r\n function RemoveWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/RemoveWorkAllocation', obj, config);\r\n }\r\n\r\n function GetWorkAllocationByEmp(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/GetAllWorkAllocationByEmployee', obj, config);\r\n }\r\n function getIOCAWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/GetIOCAWorkAllocationByEmployee', obj, config);\r\n }\r\n function getLocationWorkAllocation(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/GetLocationWorkAllocationByEmployee', obj, config);\r\n }\r\n function GetAllWorkAllocation() {\r\n return $http.get($rootScope.endPoint + 'WorkAllocation/SaveWorkAllocation', config);\r\n }\r\n function getTiersByMappingIOCA(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkAllocation/getTiersByMappingIOCA', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .service('WorkApprovalService', WorkApprovalService);\r\n\r\n WorkApprovalService.$inject = ['$http', '$rootScope'];\r\n function WorkApprovalService($http, $rootScope) {\r\n\r\n this.GetCategoryForPrjContractor = GetCategoryForPrjContractor;\r\n this.GetContractorByWorkOrder = GetContractorByWorkOrder;\r\n this.GetApprovedWorkOrderByCont = GetApprovedWorkOrderByCont;\r\n this.GetApprovedWorkOrderByContractor = GetApprovedWorkOrderByContractor;\r\n this.GetApprovedWorkOrderByContForPenalty = GetApprovedWorkOrderByContForPenalty;\r\n this.GetCategoryByWorkOrderIoca = GetCategoryByWorkOrderIoca;\r\n this.GetSubCategoryByWorkOrderIoca = GetSubCategoryByWorkOrderIoca;\r\n this.GetTypeByWorkOrderIoca = GetTypeByWorkOrderIoca;\r\n this.GetIocaByWorkOderIoca = GetIocaByWorkOderIoca;\r\n this.GetLocationByWorkOrderIoca = GetLocationByWorkOrderIoca;\r\n this.GetTierDtlsByWorkOrderIoca = GetTierDtlsByWorkOrderIoca;\r\n this.GetPowForApproval = GetPowForApproval;\r\n this.InsertWorkApprovalDtls = InsertWorkApprovalDtls;\r\n this.saveWorkApprovalDtls = saveWorkApprovalDtls;\r\n this.GetPowDefectHistory = GetPowDefectHistory;\r\n this.GetIocaDoc = GetIocaDoc;\r\n this.RemovePowAttachment = RemovePowAttachment;\r\n this.GetDefectWorkAttachments = GetDefectWorkAttachments;\r\n this.GetPowForApprovalForPenalty = GetPowForApprovalForPenalty;\r\n this.getFileFromPath =getFileFromPath;\r\n ///////\r\n\r\n this.getAllProject = getAllProject;\r\n this.getAllCategory = getAllCategory;\r\n this.getAllSubCategory = getAllSubCategory;\r\n this.getAllType = getAllType;\r\n this.getAllIoca = getAllIoca;\r\n this.getAllLocation = getAllLocation;\r\n this.GetAllTiers = GetAllTiers;\r\n this.GetAllMediaList = GetAllMediaList;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token,\r\n 'Access-Control-Allow-Origin': \"*\"\r\n }\r\n }\r\n\r\n\r\n function getFileFromPath(obj) { \r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/GetFileFromPath/', obj, config);\r\n }\r\n\r\n function GetCategoryForPrjContractor(projectId) {\r\n return $http.get($rootScope.endPoint + 'WorkApproval/getCategoryForPrjContractor/' + projectId, config);\r\n }\r\n\r\n function GetContractorByWorkOrder(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/getContractorByWorkOrder', obj, config);\r\n }\r\n\r\n function GetApprovedWorkOrderByCont(projectId, contractorId) {\r\n return $http.get($rootScope.endPoint + 'WorkApproval/getApprovedWorkOrderByCont/' + projectId + '?contId=' + contractorId, config);\r\n }\r\n\r\n function GetApprovedWorkOrderByContractor(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/getApprovedWorkOrderByContractor', obj, config);\r\n }\r\n\r\n function GetApprovedWorkOrderByContForPenalty(projectId, contractorId) {\r\n return $http.get($rootScope.endPoint + 'WorkApproval/getApprovedWorkOrderByContForPenalty/' + projectId + '?contId=' + contractorId, config);\r\n }\r\n\r\n function GetCategoryByWorkOrderIoca(woId, fromPlanning, workStatus) {\r\n return $http.get($rootScope.endPoint + 'WorkApproval/getCategoryByWorkOrderIoca/' + woId + '?fromPlanning=' + fromPlanning + '&workStatus=' + workStatus, config);\r\n }\r\n\r\n function GetSubCategoryByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/GetSubCategoryByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetTypeByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/GetTypeByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetIocaByWorkOderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/GetIocaByWorkOderIoca', obj, config);\r\n }\r\n\r\n function GetLocationByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/GetLocationByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetTierDtlsByWorkOrderIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/GetTierDtlsByWorkOrderIoca', obj, config);\r\n }\r\n\r\n function GetPowForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/getPowForApproval', obj, config);\r\n }\r\n\r\n function GetPowForApprovalForPenalty(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/GetPowForApprovalForPenalty', obj, config);\r\n }\r\n\r\n function saveWorkApprovalDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApproval/saveWorkApprovalDtls', obj, config);\r\n }\r\n\r\n function RemovePowAttachment(str) {\r\n return $http.delete($rootScope.endPoint + 'WorkApproval/removeDocument/' + str, config);\r\n }\r\n\r\n function InsertWorkApprovalDtls(formData) {\r\n // debugger;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'WorkApproval/InsertWorkApprovalDtls', formData, config);\r\n }\r\n\r\n function GetPowDefectHistory(powId) {\r\n return $http.get($rootScope.endPoint + 'WorkApproval/getWorkHistory/' + powId, config);\r\n }\r\n function GetIocaDoc() {\r\n return $http.get($rootScope.endPoint + 'ioca/getIocaDoc', config);\r\n }\r\n function GetDefectWorkAttachments(powId) {\r\n return $http.get($rootScope.endPoint + 'WorkApproval/GetDefectWorkAttachments/' + powId, config);\r\n }\r\n\r\n ///////////\r\n\r\n function getAllProject(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/getAllProject', obj, config);\r\n }\r\n\r\n function getAllCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/getAllCategory', obj, config);\r\n }\r\n\r\n function getAllSubCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/getAllSubCategory', obj, config);\r\n }\r\n\r\n function getAllType(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/getAllType', obj, config);\r\n }\r\n\r\n function getAllIoca(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/getAllIoca', obj, config);\r\n }\r\n\r\n\r\n function getAllLocation(obj) {\r\n // debugger;\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/getAllLocation', obj, config);\r\n }\r\n\r\n function GetAllTiers(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/GetTiersByLocation', obj, config);\r\n }\r\n\r\n function GetAllMediaList(obj) {\r\n return $http.post($rootScope.endPoint + 'WorkApprovalGallery/GetAllMediaList', obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .service('WorkOrderService', WorkOrderService);\r\n\r\n WorkOrderService.$inject = ['$http', '$rootScope'];\r\n\r\n function WorkOrderService($http, $rootScope) {\r\n\r\n this.AddWorkOrder = AddWorkOrder;\r\n this.UpdateWorkOrder = UpdateWorkOrder;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddWorkOrder(workOrder) {\r\n return $http.post($rootScope.endPoint + 'workorder/create', workOrder, config);\r\n }\r\n\r\n function UpdateWorkOrder(obj) {\r\n return $http.put($rootScope.endPoint + 'workorder/modify', obj, config);\r\n }\r\n \r\n }\r\n\r\n \r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .service('WorkOrderCancellationService', WorkOrderCancellationService);\r\n\r\n WorkOrderCancellationService.$inject = ['$http', '$rootScope'];\r\n\r\n function WorkOrderCancellationService($http, $rootScope) {\r\n\r\n this.GetApprovedWorkOrder = GetApprovedWorkOrder;\r\n this.GetWorkOrderByWoId = GetWorkOrderByWoId;\r\n this.SaveWoCancel = SaveWoCancel\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function GetApprovedWorkOrder(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'workorder/GetApprovedWorkOrder', obj, config);\r\n }\r\n function GetWorkOrderByWoId(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'workorder/GetWorkOrderByWoId', obj, config);\r\n }\r\n function SaveWoCancel(obj) {\r\n return $http.post($rootScope.endPoint + 'workorder/SaveWoCancel', obj, config);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workStatusReport')\r\n .service('workStatusReportService', workStatusReportService);\r\n\r\n workStatusReportService.$inject = ['$rootScope', '$http'];\r\n\r\n function workStatusReportService($rootScope, $http) {\r\n this.ShowWorkApprovelReport = ShowWorkApprovelReport ;\r\n this.GetReportFor = GetReportFor;\r\n this.getWrkApvdFoc = getWrkApvdFoc;\r\n //this.getBoQCountry = getBoQCountry;\r\n this.getWrkApvdCategory = getWrkApvdCategory;\r\n this.getWrkApvdSubCategory = getWrkApvdSubCategory;\r\n this.getWrkApvdType = getWrkApvdType;\r\n this.getWrkApvdIOCA = getWrkApvdIOCA;\r\n \r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetReportFor(obj) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/GetReportFor', obj, config);\r\n } \r\n\r\n function ShowWorkApprovelReport(obj) {\r\n config['responseType'] = 'arraybuffer';\r\n return $http.post($rootScope.endPoint + 'BoQReport/ShowWorkApprovelReport', obj, config);\r\n }\r\n function getWrkApvdFoc(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getWrkApvdFoc', boq, config);\r\n } \r\n function getWrkApvdCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getWrkApvdCategory', boq, config);\r\n }\r\n\r\n function getWrkApvdSubCategory(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getWrkApvdSubCategory', boq, config);\r\n }\r\n\r\n function getWrkApvdType(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getWrkApvdType', boq, config);\r\n }\r\n\r\n function getWrkApvdIOCA(boq) {\r\n return $http.post($rootScope.endPoint + 'PlanningReport/getWrkApvdIOCA', boq, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.TaskReport')\r\n .controller('AppraisalReportCtrl', AppraisalReportCtrl);\r\n\r\n /** @ngInject */\r\n function AppraisalReportCtrl($rootScope, $filter, lodash, dialogs, $uibModal, $http, CompanyService, projectCreationService, planningReportService,\r\n LocationSetupService, ItemToItemService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.focList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowPlanningReport = ShowPlanningReport;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n // vm.getFocByPrjId = getFocByPrjId;\r\n vm.getFocByPeriod = getFocByPeriod;\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n // vm.GetQuarterly = GetQuarterly;\r\n vm.ReportType = ReportType;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n vm.plan = {};\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n // Init DDL Datas\r\n vm.SpecTypeList = [{ SpecTypeName: 'All', Code: 'A' }, { SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Daily', Code: 'D', PeriodTypeNameId: 1 },\r\n { PeriodTypeName: 'Weekly', Code: 'W', PeriodTypeNameId: 2 },\r\n { PeriodTypeName: 'Monthly', Code: 'M', PeriodTypeNameId: 3 },\r\n // { PeriodTypeName: 'Quarterly Report', Code: 'Q' }, { PeriodTypeName: 'Periodic Report', Code: 'P' }\r\n ];\r\n\r\n vm.RequirementList = [{ RequirementName: 'Draft Planning', Id: 1, ReportType: 'Draft' }, { RequirementName: 'Finalized Planning', Id: 4, ReportType: 'Finalized' }];\r\n vm.basedOnRequirementList = [\r\n // { RequirementBasedName: 'Construction Activity Wise', Id: 1 }, \r\n { RequirementBasedName: 'Location Wise', Id: 2 }\r\n ];\r\n\r\n\r\n //#region Attribute\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n vm.selectedProject = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedReportFor = null;\r\n vm.selectedContractorCategory = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedContName = null;\r\n vm.selectedPeriod = null;\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Event for Print \r\n function ShowPlanningReport() {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var strHr = vm.selectedPeriod.PeriodTypeNameId;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of - \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 1) {\r\n if (vm.selectedReportFor.DesignationId === 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n } else if (strHr == 1) {\r\n if (vm.selectedReportFor.DesignationId === 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n } else {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: 4,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: \"Draft\",\r\n ReportTask: vm.selectedReportFor.DesignationId,\r\n WiseID: vm.selectedRequirementBased.Id\r\n }\r\n\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n } else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n planningReportService.ShowAppraisalReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n //#endregion\r\n\r\n //////// Share Report ////////////\r\n\r\n vm.ShareReport = function() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var strHr = vm.selectedPeriod.PeriodTypeNameId;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of - \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 1) {\r\n if (vm.selectedReportFor.DesignationId === 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n } else if (strHr == 1) {\r\n if (vm.selectedReportFor.DesignationId === 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n } else {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Appraisal Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: 4,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: \"Draft\",\r\n ReportTask: vm.selectedReportFor.DesignationId,\r\n WiseID: vm.selectedRequirementBased.Id\r\n }\r\n\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n } else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n planningReportService.ShowAppraisalReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n //#region Clear\r\n //#endregion\r\n\r\n //#region Load Construction Activity\r\n // function getFocByPrjId(prjId) {\r\n // ReportType();\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: prjId,\r\n // //Status: vm.selectedRequirement.Id\r\n // Status: 4\r\n // }\r\n // GetReportFor(prjId);\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // planningReportService.getBoQFoc(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.focList = res.data;\r\n // vm.selectedReportFor = null;\r\n // if (vm.focList.length < 0) {\r\n // dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n // });\r\n // }\r\n\r\n function getFocByPeriod() {\r\n debugger;\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.selectedRequirement.Id\r\n Status: 4,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n\r\n }\r\n // GetReportFor(prjId);\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQFoc(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n // vm.selectedReportFor = null;\r\n if (vm.focList.length < 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n\r\n function ReportType() {\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }];\r\n } else {\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }, { ReportTypeName: 'Consolidated', ReportTypeId: '2' }];\r\n }\r\n\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id\r\n Status: 4\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n\r\n if (CountryId && ProjectId && vm.selectedfoc != null && vm.selectedReportFor != null) {\r\n var Arr = [];\r\n for (var i in vm.selectedfoc) {\r\n Arr.push(vm.selectedfoc[i].FieldofConstructionId)\r\n }\r\n\r\n vm.focId = Arr.join();\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: vm.focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n //#region old\r\n // function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // if (ProjectId && CategoryId) {\r\n // var filter = {\r\n // FocId: vm.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.selectedCountry.CountryId,\r\n // CategoryId: CategoryId\r\n // };\r\n\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // ItemToItemService.getBoQSubCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SubCategoryList = res.data;\r\n // if (!vm.SubCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n\r\n //#end region\r\n\r\n\r\n function getSubcategoryByCategory() {\r\n //clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.RequirementList[0].Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n //Status: vm.RequirementList[0].Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(Id) {\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n }\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n obj.ReportForId = vm.selectedReportFor.DesignationId,\r\n obj.EmployeeId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n obj.ContractorCategoryId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n obj.FromDate = $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n obj.ToDate = (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd');\r\n var Arr = [];\r\n for (var i in vm.selectedIoca) {\r\n Arr.push(vm.selectedIoca[i].IOCA_Id)\r\n }\r\n obj.IOCA_Id = Arr.join();\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n function filterTiers(IocaTier) {\r\n debugger;\r\n if (IocaTier.selectedIocatireValue) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, { \"TierNo\": tempTier });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n console.log(vm.Arr)\r\n } else {\r\n vm.Arr = null;\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n clearTierSelection();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection()\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n getFocByPeriod();\r\n\r\n }\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function(IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function() {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n debugger;\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n } else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n } else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n\r\n vm.getDate = function() {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n }\r\n }\r\n\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n // function GetQuarterly() { \r\n // if (vm.selectedPeriod.Code == 'Q') {\r\n // vm.plan.To = angular.copy(vm.plan.From);\r\n // var numberOfMonthToAdd = 3;\r\n // vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n // vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n // }\r\n // else if (vm.selectedPeriod.Code == 'P') {\r\n // vm.plan.To = \"\"\r\n // }\r\n // }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Daily Report \r\n\r\n\r\n //****** Finalized Planning *******/\r\n\r\n //#region Load GetReportFor \r\n function GetReportFor(prjId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n //vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n getLocationByProject()\r\n }\r\n ReportType();\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */ \r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.TaskReport')\r\n .controller('DprReportCtrl', DprReportCtrl);\r\n\r\n /** @ngInject */\r\n function DprReportCtrl($rootScope, $filter, lodash, dialogs, $http, $uibModal, CompanyService, projectCreationService, planningReportService,\r\n LocationSetupService, ItemToItemService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.focList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowPlanningReport = ShowPlanningReport;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n // vm.getFocByPrjId = getFocByPrjId;\r\n vm.getFocByPeriod = getFocByPeriod;\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n // vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n vm.plan = {};\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n // Init DDL Datas\r\n vm.SpecTypeList = [{ SpecTypeName: 'All', Code: 'A' }, { SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }, { ReportTypeName: 'Consolidated', ReportTypeId: '2' }];\r\n\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Daily', Code: 'D', PeriodTypeNameId: 1 },\r\n { PeriodTypeName: 'Weekly', Code: 'W', PeriodTypeNameId: 2 },\r\n { PeriodTypeName: 'Monthly', Code: 'M', PeriodTypeNameId: 3 },\r\n // { PeriodTypeName: 'Quarterly Report', Code: 'Q' }, { PeriodTypeName: 'Periodic Report', Code: 'P' }\r\n ];\r\n\r\n vm.RequirementList = [{ RequirementName: 'Draft Planning', Id: 1, ReportType: 'Draft' }, { RequirementName: 'Finalized Planning', Id: 4, ReportType: 'Finalized' }];\r\n vm.basedOnRequirementList = [{ RequirementBasedName: 'Construction Activity Wise', Id: 1 }, { RequirementBasedName: 'Location Wise', Id: 2 }];\r\n\r\n //#region Attribute\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.selectedProject = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedReportFor = null;\r\n vm.selectedContName = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedPeriod = null;\r\n }\r\n //#endregion\r\n\r\n //#region Event for Print \r\n function ShowPlanningReport() {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var strHr = vm.selectedPeriod.PeriodTypeNameId;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Work Progress Report of - \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Work Progress Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr == 1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Work Progress Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: 4,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: \"Draft\",\r\n ReportTask: (vm.ReportFor != undefined) ? vm.ReportFor : \" \",\r\n WiseID: vm.selectedRequirementBased.Id\r\n }\r\n\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n } else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n planningReportService.ShowDPRReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n //#endregion\r\n\r\n ////////// Share Report //////////\r\n\r\n vm.ShareReport = function() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var strHr = vm.selectedPeriod.PeriodTypeNameId;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Work Progress Report of - \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Work Progress Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr == 1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Work Progress Report of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: 4,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: \"Draft\",\r\n ReportTask: (vm.ReportFor != undefined) ? vm.ReportFor : \" \",\r\n WiseID: vm.selectedRequirementBased.Id\r\n }\r\n\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n } else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n planningReportService.ShowDPRReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n //#region Clear\r\n //#endregion\r\n\r\n //#region Load Construction Activity\r\n // function getFocByPrjId(prjId) {\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: prjId,\r\n // //Status: vm.selectedRequirement.Id\r\n // Status: 4\r\n // }\r\n // GetReportFor(prjId);\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // planningReportService.getBoQFoc(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.focList = res.data;\r\n // vm.selectedReportFor = null;\r\n // if (vm.focList.length < 0) {\r\n // dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n // });\r\n // }\r\n\r\n function getFocByPeriod() {\r\n debugger;\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.selectedRequirement.Id\r\n Status: 4,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n\r\n }\r\n // GetReportFor(prjId);\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQFoc(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n // vm.selectedReportFor = null;\r\n if (!vm.focList.length > 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available for ' + vm.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id\r\n Status: 4\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n\r\n if (CountryId && ProjectId && vm.selectedfoc != null && vm.selectedReportFor != null) {\r\n var Arr = [];\r\n for (var i in vm.selectedfoc) {\r\n Arr.push(vm.selectedfoc[i].FieldofConstructionId)\r\n }\r\n\r\n vm.focId = Arr.join();\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: vm.focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n //#region old\r\n // function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // if (ProjectId && CategoryId) {\r\n // var filter = {\r\n // FocId: vm.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.selectedCountry.CountryId,\r\n // CategoryId: CategoryId\r\n // };\r\n\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // ItemToItemService.getBoQSubCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SubCategoryList = res.data;\r\n // if (!vm.SubCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n\r\n //#end region\r\n\r\n\r\n function getSubcategoryByCategory() {\r\n //clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.RequirementList[0].Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.RequirementList[0].Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(Id) {\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n obj.ReportForId = vm.selectedReportFor.DesignationId,\r\n obj.EmployeeId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n obj.ContractorCategoryId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n obj.FromDate = $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n obj.ToDate = (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd');\r\n var Arr = [];\r\n for (var i in vm.selectedIoca) {\r\n Arr.push(vm.selectedIoca[i].IOCA_Id)\r\n }\r\n obj.IOCA_Id = Arr.join();\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n function filterTiers(IocaTier) {\r\n if (IocaTier.selectedIocatireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n // var maxTier = lodash.maxBy(vm.allTierData, function (t) {\r\n // return getTierNo(t.TierNo);\r\n // });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n\r\n //getCountryByTiers(vm.Arr);\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection()\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n getFocByPeriod();\r\n\r\n }\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function(IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function() {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n debugger;\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n } else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n } else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n\r\n vm.getDate = function() {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n }\r\n\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n // function GetQuarterly() { \r\n // if (vm.selectedPeriod.Code == 'Q') {\r\n // vm.plan.To = angular.copy(vm.plan.From);\r\n // var numberOfMonthToAdd = 3;\r\n // vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n // vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n // }\r\n // else if (vm.selectedPeriod.Code == 'P') {\r\n // vm.plan.To = \"\"\r\n // }\r\n // }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Daily Report \r\n\r\n\r\n //****** Finalized Planning *******/\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n //vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n vm.selectedReportFor = null;\r\n vm.selectedContractorCategory = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedContName = null;\r\n vm.selectedPeriod = null;\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n getLocationByProject()\r\n }\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n // vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedContName = null;\r\n vm.selectedPeriod = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n vm.selectedPeriod = null;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */ \r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.TaskReport')\r\n .controller('TaskReportCtrl', TaskReportCtrl);\r\n\r\n /** @ngInject */\r\n function TaskReportCtrl($rootScope, $filter, lodash, dialogs, $uibModal, $http, CompanyService, projectCreationService, planningReportService,\r\n LocationSetupService, TierSetupService, ItemToItemService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.focList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowPlanningReport = ShowPlanningReport;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n // vm.getFocByPrjId = getFocByPrjId;\r\n vm.getFocByPeriod = getFocByPeriod\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n // vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n // vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n vm.plan = {};\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n // Init DDL Datas\r\n vm.SpecTypeList = [{ SpecTypeName: 'All', Code: 'A' }, { SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }, { ReportTypeName: 'Consolidated', ReportTypeId: '2' }];\r\n\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Daily ', Code: 'D', PeriodTypeNameId: 1 },\r\n { PeriodTypeName: 'Weekly ', Code: 'W', PeriodTypeNameId: 2 },\r\n { PeriodTypeName: 'Monthly ', Code: 'M', PeriodTypeNameId: 3 }\r\n // ,{ PeriodTypeName: 'Quarterly Report', Code: 'Q' }, { PeriodTypeName: 'Periodic Report', Code: 'P' }\r\n ];\r\n\r\n vm.RequirementList = [{ RequirementName: 'Draft Planning', Id: 1, ReportType: 'Draft' }, { RequirementName: 'Finalized Planning', Id: 4, ReportType: 'Finalized' }];\r\n vm.basedOnRequirementList = [{ RequirementBasedName: 'Construction Activity Wise', Id: 1 }, { RequirementBasedName: 'Location Wise', Id: 2 }];\r\n\r\n //#region Attribute\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.selectedProject = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedReportFor = null;\r\n vm.selectedContName = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedPeriod = null;\r\n }\r\n //#endregion\r\n\r\n //#region Event for Print \r\n function ShowPlanningReport() {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var obj1 = {\r\n strHr: vm.selectedPeriod.PeriodTypeNameId,\r\n stremp: vm.selectedReportFor.DesignationId\r\n }\r\n\r\n var strHeading = null;\r\n if (obj1.stremp == 0 && obj1.strHr > 1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of - \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (obj1.strHr == 1 && obj1.stremp == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n } else if (obj1.strHr == 2 || obj1.strHr == 3 && obj1.stremp != 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (obj1.strHr == 1 && obj1.stremp != 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: 4,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: vm.selectedReportType.ReportTypeId,\r\n //ReportTask: (vm.ReportFor != undefined) ? vm.ReportFor : \" \",\r\n ReportTask: vm.selectedReportFor.DesignationId,\r\n WiseID: vm.selectedRequirementBased.Id\r\n }\r\n\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n } else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n planningReportService.ShowPlanningTaskReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n //#endregion\r\n\r\n /////// Share Report ////////////\r\n\r\n vm.ShareReport = function() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var obj1 = {\r\n strHr: vm.selectedPeriod.PeriodTypeNameId,\r\n stremp: vm.selectedReportFor.DesignationId\r\n }\r\n\r\n var strHeading = null;\r\n if (obj1.stremp == 0 && obj1.strHr > 1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of - \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (obj1.strHr == 1 && obj1.stremp == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n } else if (obj1.strHr == 2 || obj1.strHr == 3 && obj1.stremp != 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (obj1.strHr == 1 && obj1.stremp != 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" Task of \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n //+ \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: 4,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TypeofDescription: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportFor: vm.selectedReportType.ReportTypeId,\r\n //ReportTask: (vm.ReportFor != undefined) ? vm.ReportFor : \" \",\r\n ReportTask: vm.selectedReportFor.DesignationId,\r\n WiseID: vm.selectedRequirementBased.Id\r\n }\r\n\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmpId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n } else {\r\n obj.EmpId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n planningReportService.ShowPlanningTaskReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n //#region Clear\r\n //#endregion\r\n\r\n //#region Load Construction Activity\r\n // function getFocByPrjId(prjId) {\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: prjId,\r\n // //Status: vm.selectedRequirement.Id\r\n // Status: 4\r\n // }\r\n // GetReportFor(prjId);\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // planningReportService.getBoQFoc(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.focList = res.data;\r\n // vm.selectedReportFor = null;\r\n // if (vm.focList.length < 0) {\r\n // dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n // });\r\n // }\r\n\r\n function getFocByPeriod() {\r\n debugger;\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.selectedRequirement.Id\r\n Status: 4,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd')\r\n\r\n }\r\n // GetReportFor(prjId);\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQFoc(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n // vm.selectedReportFor = null;\r\n if (!vm.focList.length > 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available ' + vm.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id\r\n Status: 4\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n\r\n if (CountryId && ProjectId && vm.selectedfoc != null && vm.selectedReportFor != null) {\r\n var Arr = [];\r\n for (var i in vm.selectedfoc) {\r\n Arr.push(vm.selectedfoc[i].FieldofConstructionId)\r\n }\r\n\r\n vm.focId = Arr.join();\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: vm.focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n Status: 4,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n //#region old\r\n // function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // if (ProjectId && CategoryId) {\r\n // var filter = {\r\n // FocId: vm.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.selectedCountry.CountryId,\r\n // CategoryId: CategoryId\r\n // };\r\n\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // ItemToItemService.getBoQSubCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SubCategoryList = res.data;\r\n // if (!vm.SubCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n\r\n //#end region\r\n\r\n\r\n function getSubcategoryByCategory() {\r\n //clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.RequirementList[0].Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n //Status: vm.RequirementList[0].Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.focId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n ReportForId: vm.selectedReportFor.DesignationId,\r\n EmployeeId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n ContractorCategoryId: (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n FromDate: $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n ToDate: (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd'),\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n planningReportService.getBoQIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(Id) {\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (vm.selectedRequirementBased.Id === 1) {\r\n obj.ReportForId = vm.selectedReportFor.DesignationId,\r\n obj.EmployeeId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContName.ContractorId : vm.selectedEmpName.EmployeeId,\r\n obj.ContractorCategoryId = (vm.selectedReportFor.DesignationId === 0) ? vm.selectedContractorCategory.CategoryId : 0,\r\n obj.FromDate = $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd'),\r\n obj.ToDate = (vm.selectedPeriod.Code == 'D') ? $filter('date')(new Date(vm.plan.From), 'yyyy-MM-dd') : $filter('date')(new Date(vm.plan.To), 'yyyy-MM-dd');\r\n var Arr = [];\r\n for (var i in vm.selectedIoca) {\r\n Arr.push(vm.selectedIoca[i].IOCA_Id)\r\n }\r\n obj.IOCA_Id = Arr.join();\r\n }\r\n debugger;\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n function filterTiers(IocaTier) {\r\n debugger;\r\n if (IocaTier.selectedIocatireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, { \"TierNo\": tempTier });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n // var maxTier = lodash.maxBy(vm.allTierData, function (t) {\r\n // return getTierNo(t.TierNo);\r\n // });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n console.log(vm.Arr)\r\n //getCountryByTiers(vm.Arr);\r\n } else {\r\n vm.Arr = null;\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n function getTiersByLocation(tier) {\r\n debugger;\r\n clearTierSelection()\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n //vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n getFocByPeriod();\r\n }\r\n\r\n // function FilterTireCopyTo(tier, IocaTier) {\r\n // debugger;\r\n // vm.CopyTierList;\r\n // vm.ProjectIOCATiersList;\r\n\r\n // var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n // var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n // \"TierNo\": tempTier\r\n // });\r\n // lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n // if (t.TierNo === tempTier) {\r\n // t.Values = lodash.filter(currentTierDtl.Values, {\r\n // 'ParentId': tier.selectedIocatireValue.TierId\r\n // });\r\n // }\r\n // });\r\n\r\n // }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n debugger\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n console.log(vm.ReportType)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n debugger;\r\n lodash.forEach(vm.ProjectIOCATiersList, function(IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function() {\r\n if (vm.plan != undefined) {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n getFocByPeriod();\r\n } else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n } else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n }\r\n vm.getDate = function() {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n getFocByPeriod()\r\n }\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n // function GetQuarterly() { \r\n // if (vm.selectedPeriod.Code == 'Q') {\r\n // vm.plan.To = angular.copy(vm.plan.From);\r\n // var numberOfMonthToAdd = 3;\r\n // vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n // vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n // }\r\n // else if (vm.selectedPeriod.Code == 'P') {\r\n // vm.plan.To = \"\"\r\n // }\r\n // }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n if (vm.selectedRequirementBased.Id === 1)\r\n getFocByPeriod();\r\n\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Daily Report \r\n\r\n\r\n //****** Finalized Planning *******/\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n //vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n\r\n vm.selectedReportFor = null;\r\n vm.selectedContractorCategory = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedContName = null;\r\n vm.selectedPeriod = null;\r\n\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n getLocationByProject()\r\n }\r\n\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n\r\n vm.selectedContractorCategory = null;\r\n vm.selectedEmpName = null;\r\n vm.selectedContName = null;\r\n vm.selectedPeriod = null;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n vm.selectedPeriod = null;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */ \r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.tenderMaster')\r\n .controller('TenderMasterCtrl', TenderMasterCtrl);\r\n\r\n /** @ngInject */\r\n function TenderMasterCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, CompanyService, tenderMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.tender = {};\r\n\r\n vm.SaveTenderMaster = SaveTenderMaster;\r\n vm.editTenderMaster = editTenderMaster;\r\n // vm.getAllCategoryofCA =getAllCategoryofCA;\r\n vm.RemoveTenderMaster = RemoveTenderMaster;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n tenderMasterService.getAllCategoryofCA().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tender Master\");\r\n });\r\n\r\n tenderMasterService.getAllTenderMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.tenderMasterlist = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tender Master\");\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n function RemoveTenderMaster(tender) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n tenderMasterService.RemoveTenderMaster(tender.TenderId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Tender Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Tender Master \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Account. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function editTenderMaster(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.tender.tendername = row.TenderName;\r\n\r\n vm.tender = angular.copy(row);\r\n\r\n for (var i in vm.CategoryList) {\r\n if (vm.CategoryList[i].CategoryId == vm.tender.CategoryId) {\r\n vm.tender.selectedCategory = vm.CategoryList[i]\r\n }\r\n }\r\n\r\n }\r\n\r\n function SaveTenderMaster(tender) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var tender = {\r\n TenderId: 0,\r\n CategoryId: vm.tender.selectedCategory.CategoryId,\r\n // CategoryName: vm.tender.CategoryId.CategoryName,\r\n TenderFile: '',\r\n TenderName: vm.tender.tendername,\r\n\r\n }\r\n if (!vm.isEditing) {\r\n tender.CreatedBy = logggedUser.UserId;\r\n var formData = new FormData();\r\n formData.append(\"data\", JSON.stringify(tender));\r\n // formData.append(\"CompanyLogo\", vm.CompanyLogo);\r\n\r\n tenderMasterService.AddtenderMaster(tender, $http).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Tender Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Tender Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n tender.ModifiedBy = logggedUser.UserId\r\n tender.TenderId = vm.tender.TenderId\r\n tenderMasterService.editTenderMaster(tender).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n\r\n vm.tender = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }\r\n\r\n function resetForm() {\r\n vm.TenderForm.$setUntouched();\r\n }\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.unitOfMeasurement')\r\n .controller('NonStdUnitCtrl', NonStdUnitCtrl);\r\n\r\n /** @ngInject */\r\n function NonStdUnitCtrl($http, $rootScope, lodash, dialogs, UnitOfMeasurementService, AuthenticationService,$window,$scope) {\r\n var vm = this;\r\n\r\n \r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.NonStdUnitList = [];\r\n $rootScope.isLogin = false;\r\n //Methods\r\n vm.Create = Create;\r\n \r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.EditUnitconversion = EditUnitconversion;\r\n vm.removeUnitconversion = removeUnitconversion;\r\n vm.SaveUnitConversion = SaveUnitConversion;\r\n vm.changeActiveUnitconversion = changeActiveUnitconversion;\r\n vm.ShowNonStdUnitReport = ShowNonStdUnitReport;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n\r\n\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n\r\n function Init() {\r\n\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function(res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Non Std Units\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Non Std Units\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.unitconversion.Name = '';\r\n \r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.unitconversion.Name = '';\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.unitconversionForm.$setUntouched();\r\n }\r\n\r\n function EditUnitconversion(unitconversion) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.unitconversion = angular.copy(unitconversion);\r\n //console.log(\"check\"+vm.state.selectedCountry);\r\n\r\n }\r\n\r\n function removeUnitconversion(unitconversion) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n UnitOfMeasurementService.removeUnitconversion(unitconversion.UOM_Id).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Non Std Units Successfully', \"Unit\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Non Std Units\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Non Std Units. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveUnitConversion(unitconversion) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n unitconversion.CreatedBy = loggedUser.UserId;\r\n UnitOfMeasurementService.AddUnitconversion(unitconversion).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Non Std Units\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Non Std Units\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n } else {\r\n unitconversion.ModifiedBy = loggedUser.UserId;\r\n UnitOfMeasurementService.EditUnitconversion(unitconversion).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Non Std Units\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Non Std Units\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n }\r\n }\r\n\r\n function changeActiveUnitconversion(unitconversion) {\r\n var msg = 'Are sure you want to ' + ((unitconversion.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((unitconversion.IsActive) ? 'Deactive' : 'Active') + 'Non Std Units Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n UnitOfMeasurementService.changeActiveUnitconversion(unitconversion.UOM_Id).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Unit\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Unit\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Unit.If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function ShowNonStdUnitReport() {\r\n\r\n console.log(\"test\");\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n UnitOfMeasurementService.ShowNonStdUnitReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.uomParameters')\r\n .controller('UOMParametersCtrl', UOMParametersCtrl);\r\n\r\n /** @ngInject */\r\n function UOMParametersCtrl($http, $rootScope, $window, lodash, dialogs, UnitOfMeasurementService, UomParametersService, $scope, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.uomParameterList = [];\r\n vm.parameters = [];\r\n $rootScope.isLogin = false;\r\n //Methods\r\n vm.generate = generate;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.getUnitListByUnitType = getUnitListByUnitType;\r\n vm.editUOMParameters = editUOMParameters;\r\n vm.RemoveUOMParameters = RemoveUOMParameters;\r\n vm.saveUomParameters = saveUomParameters;\r\n vm.ShowUnitReport = ShowUnitReport\r\n Init();\r\n\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n\r\n function Init() {\r\n UomParametersService.getAllUomParameters().then(function (res) {\r\n if (res.status === 200) {\r\n vm.uomParameterList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"UOM Parameters\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"UOM Parameters\");\r\n });\r\n getAllStdUom();\r\n }\r\n\r\n function getAllStdUom() { \r\n UnitOfMeasurementService.GetAllStdUOM().then(function (res) {\r\n if (res.status === 200) {\r\n vm.UOM_MasterList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n );\r\n }\r\n\r\n function getUnitListByUnitType(UnitType, UOM_Id, callback) {\r\n if (UnitType) {\r\n clearUnits(); \r\n UomParametersService.getAllUnitByUnitType(UnitType, UOM_Id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n for (var i in vm.UnitList) {\r\n vm.UnitList[i].Description = vm.UnitList[i].Description + '-' + vm.UnitList[i].UnitName\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Units\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function generate(NoOfInputs, parameters) {\r\n clearTypeofDim(); \r\n vm.parameters = [];\r\n for (var i = 0; i < NoOfInputs; i++) {\r\n if (!parameters) {\r\n vm.parameters.push({});\r\n } else {\r\n vm.parameters.push({\r\n dimensionName: parameters[i]\r\n })\r\n }\r\n }\r\n }\r\n\r\n function clearTypeofDim() {\r\n vm.UnitType = null;\r\n vm.selectedUnits = null;\r\n vm.UnitList = []; \r\n vm.Abbreviation = null;\r\n }\r\n\r\n function clearUnits(){\r\n vm.selectedUnits = null;\r\n vm.UnitList = []; \r\n vm.Abbreviation = null;\r\n \r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n Init();\r\n }\r\n\r\n function clear() {\r\n vm.UOM_MasterList = [];\r\n vm.selectedUnits = null;\r\n vm.UnitList = [];\r\n vm.selectedUom = null;\r\n vm.Abbreviation = '';\r\n vm.UnitType = null;\r\n vm.dimensionName = '';\r\n resetForm();\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n\r\n function resetForm() {\r\n vm.UOMParametersForm.$setUntouched();\r\n }\r\n\r\n function editUOMParameters(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.UOM_ParametersId = angular.copy(row.UOM_ParametersId);\r\n vm.Abbreviation = angular.copy(row.Abbreviation);\r\n\r\n for (var c in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[c].UOM_Id === row.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[c];\r\n generate(vm.selectedUom.NoOfInputs, row.Parameters.split(\",\"));\r\n }\r\n }\r\n if (row.Unit != null) {\r\n vm.UnitType = row.Unit.UnitType;\r\n getUnitListByUnitType(row.Unit.UnitType, row.UOM_Id, function () {\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId === row.UnitId)\r\n vm.selectedUnits = vm.UnitList[i];\r\n }\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.UOM_MasterList = [];\r\n vm.selectedUnits = null;\r\n vm.UnitList = [];\r\n vm.selectedUom = null;\r\n vm.Abbreviation = '';\r\n vm.UnitType = null;\r\n vm.dimensionName = '';\r\n resetForm();\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n });\r\n\r\n\r\n }\r\n function RemoveUOMParameters(uomparameters) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n UomParametersService.RemoveUOMParameters(uomparameters.UOM_ParametersId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"UOM Parameters\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete UOM Parameters\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete UOM Parameters. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function saveUomParameters() {\r\n var obj = {\r\n UOM_Id: vm.selectedUom.UOM_Id,\r\n Abbreviation: vm.Abbreviation,\r\n UnitId: vm.selectedUnits.UnitId\r\n }\r\n\r\n var text = \"\";\r\n for (var i in vm.parameters) {\r\n text += vm.parameters[i].dimensionName\r\n if ((vm.parameters.length - 1) != i)\r\n text += \",\";\r\n }\r\n\r\n obj.Parameters = text;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n obj.CreatedBy = loggedUser.UserId;\r\n UomParametersService.AddUOMParameters(obj).then(function (res) {\r\n if (res.data.IsSuccess == true) {\r\n $rootScope.showToaster('success', res.data.Message, \"UOM Parameters\");\r\n clear();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"UOM Parameters\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n obj.UOM_ParametersId = vm.UOM_ParametersId\r\n obj.ModifiedBy = loggedUser.UserId;\r\n UomParametersService.EditUOMParameters(obj).then(function (res) {\r\n if (res.data.IsSuccess == true) {\r\n $rootScope.showToaster('success', res.data.Message, \"UOM Parameters\");\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"UOM Parameters\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n function ShowUnitReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputdata = {\r\n CompanyName: 'PIONEER GROUP',\r\n\r\n }\r\n\r\n UomParametersService.ShowUnitReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('approvalAttachmentCtrl', approvalAttachmentCtrl);\r\n\r\n /** @ngInject */\r\n function approvalAttachmentCtrl($scope, $filter, WorkApprovalService, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n debugger;\r\n\r\n vm.FileName = {\r\n FileName: []\r\n }\r\n ;\r\n Init()\r\n\r\n function Init() {\r\n\r\n WorkApprovalService.GetDefectWorkAttachments(items.PowId).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.AttachmentList = res.data;\r\n for (var i in vm.AttachmentList) {\r\n vm.AttachmentList[i].Files = JSON.parse(vm.AttachmentList[i].MediaList)\r\n for (var j in vm.AttachmentList[i].Files.FileName) {\r\n vm.FileName.FileName.push(vm.AttachmentList[i].Files.FileName[j])\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n\r\n if (items.Attachment) {\r\n if (items.Attachment.Files) {\r\n var obj = JSON.parse(items.Attachment.Files)\r\n for (var i in obj.FileName) {\r\n vm.FileName.FileName.push(obj.FileName[i])\r\n }\r\n\r\n }\r\n }\r\n\r\n // vm.Arr = [];\r\n // for (var i in vm.obj.FileName) {\r\n // vm.Arr.push({\r\n // Url: $rootScope.endPoint + '/UploadedDocuments/ApprovalDocs/' + vm.obj.FileName[i],\r\n // Name: vm.obj.FileName[i]\r\n // })\r\n // }\r\n\r\n \r\n\r\n\r\n\r\n\r\n vm.cancel = function () {\r\n debugger;\r\n $uibModalInstance.close(JSON.stringify(vm.FileName));\r\n }\r\n\r\n vm.RemoveAttachment = function (row, i) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n WorkApprovalService.RemovePowAttachment(row).then(function (res) {\r\n if (res.data) {\r\n $rootScope.showToaster('success', res.data, \"\");\r\n vm.FileName.FileName.splice(i, 1);\r\n // vm.Arr = [];\r\n // for (var i in vm.obj.FileName) {\r\n // vm.Arr.push({\r\n // Url: $rootScope.endPoint + '/UploadedDocuments/ApprovalDocs/' + vm.obj.FileName[i],\r\n // Name: vm.obj.FileName[i]\r\n // })\r\n // }\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data, \"\");\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('WorkApprovalAttachementCtrl', WorkApprovalAttachementCtrl);\r\n\r\n /** @ngInject */\r\n function WorkApprovalAttachementCtrl($scope, FileUploader, $filter, $http, $rootScope, WorkApprovalService, items, lodash, $uibModalInstance, dialogs, $state, DirectWorkOrderService,\r\n AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var item = [];\r\n\r\n var uploader = $scope.uploader = new FileUploader({});\r\n uploader.filters.push({\r\n name: 'customFilter',\r\n fn: function(item /*{File|FileLikeObject}*/ , options) {\r\n return this.queue.length < 10;\r\n $scope.isUpload = true;\r\n }\r\n });\r\n\r\n // CALLBACKS\r\n uploader.onAfterAddingFile = function(fileItem) {\r\n debugger;\r\n console.info('onAfterAddingFile', fileItem);\r\n debugger;\r\n var formData = new FormData();\r\n formData.append('Attachment', fileItem._file)\r\n formData.append('PowId', items.PowId)\r\n debugger;\r\n WorkApprovalService.InsertWorkApprovalDtls(formData).then(function(res) {\r\n if (res.data) {\r\n vm.FileName = res.data.result;\r\n items.DocList.FileName.push(vm.FileName)\r\n } else {\r\n $rootScope.showToaster('error', res.data, \"\");\r\n\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n item.push(fileItem._file);\r\n };\r\n\r\n vm.SaveAttachmentNote = function() {\r\n debugger;\r\n var obj = {\r\n Notes: vm.Note,\r\n Files: JSON.stringify(items.DocList)\r\n }\r\n if (items.status == 2) {\r\n if (item.length > 0) {\r\n $uibModalInstance.close(obj);\r\n } else {\r\n dialogs.notify('Warning', '! Must have Notes and Files for Defect Status', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $uibModalInstance.close(obj);\r\n }\r\n\r\n }\r\n\r\n vm.cancel = function() {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('WorkApprovalCtrl', WorkApprovalCtrl);\r\n\r\n function WorkApprovalCtrl($rootScope, $window, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.RequirementList = [{\r\n RequirementName: 'From BOQ',\r\n RequirementId: '1'\r\n }, {\r\n RequirementName: 'From Scheduing',\r\n RequirementId: '2'\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Today Work',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Pending Work',\r\n ApproveForId: '2'\r\n }\r\n , {\r\n ApproveForName: 'Feature Work',\r\n ApproveForId: '3'\r\n }];\r\n\r\n vm.ContractorCateNameList = [{\r\n ContractorCateName: 'Civil Work',\r\n ContractorCateId: '1'\r\n // }, {\r\n // ContractorCateName: 'Pending Work',\r\n // ContractorCateId: '2'\r\n // }, {\r\n // ContractorCateName: 'Feature Work',\r\n // ContractorCateId: '3' \r\n } ];\r\n\r\n vm.ContractorNameList = [{\r\n ContractorName: 'Mr.RambabuSingh',\r\n ContractorId: '1' \r\n } ];\r\n\r\n vm.ContractorNameList = [{\r\n ContractorName: 'Mr.RambabuSingh',\r\n ContractorId: '1' \r\n } ];\r\n\r\n vm.TypeWorkList = [{\r\n TypeWorkName: 'Main Building',\r\n TypeWorkId: '1' \r\n } ];\r\n\r\n vm.TierList = [{\r\n TierName: 'Block',\r\n TierId: '1' \r\n },\r\n {\r\n TierName: 'Floor',\r\n TierId: '2' \r\n } ];\r\n\r\n vm.BlockList = [{\r\n BlockListName: 'Block A',\r\n BlockListId: '1' \r\n },\r\n {\r\n BlockListName: 'Block B',\r\n BlockListId: '2' \r\n } ];\r\n\r\n vm.TypeList = [{\r\n TypeName: 'Pipe Fixing',\r\n TypeNameId: '1' \r\n },\r\n {\r\n TypeName: ' Earthwork Excavation in Soft Soil-Mechanical Metho',\r\n TypeNameId: '2' \r\n } ];\r\n\r\n vm.IOCAList = [{\r\n IOCAName: 'Excavator Excavation 0-3m Depth -STP',\r\n IOCANameId: '1' \r\n },\r\n {\r\n IOCAName: ' Excavator Excavation 0-3m Depth -STP',\r\n IOCANameId: '2' \r\n } ];\r\n\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n //#endregion\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n)();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('PreparationofWOHomeCtrl', PreparationofWOHomeCtrl);\r\n\r\n /** @ngInject */\r\n function PreparationofWOHomeCtrl($state, $http, $rootScope, lodash, dialogs) {\r\n var vm = this;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n\r\n vm.ApprovedContractor = function () { \r\n $state.go('preparationofDraftWO');\r\n\r\n }\r\n\r\n vm.workOrderWithOutRfq = function () {\r\n $state.go('directWorkOrder');\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n})(); \n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('WorkOrderReportCtrl', WorkOrderReportCtrl);\r\n\r\n function WorkOrderReportCtrl($rootScope, $filter, $scope, $window, $http, $uibModal, BillingService, dialogs, lodash, KPostBoxService, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n vm.getBillByWorkOrder = getBillByWorkOrder;\r\n vm.wo = {};\r\n vm.work = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: '2'\r\n }, {\r\n ApproveForName: 'Balance',\r\n ApproveForId: '3'\r\n }];\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n }\r\n\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.WorkOrderList = [];\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.WorkOrderList = [];\r\n }\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n\r\n BillingService.GetContractorByCategory(ProjectId, CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n } else {\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.WorkOrderList = [];\r\n }\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n vm.WorkOrderList = [];\r\n BillingService.GetWorkOrder(ProjectId, ContractorId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n for (var i in vm.WorkOrderList) {\r\n var MoneyConv = parseFloat(vm.WorkOrderList[i].TotalWorkOrderAmount).toFixed(2)\r\n\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n vm.WorkOrderList[i].Amount = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree + afterPoint;\r\n ////////////////////\r\n\r\n }\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getBillByWorkOrder(WorkOrderId) {\r\n if (WorkOrderId) {\r\n BillingService.GetAllBill(WorkOrderId, 1).then(function(res) {\r\n if (res.status === 200) {\r\n vm.BillList = res.data;\r\n for (var i in vm.BillList) {\r\n vm.BillList[i].BillAmount = parseFloat(vm.BillList[i].BillAmount).toFixed(2)\r\n }\r\n if (vm.BillList.length < 1) {\r\n dialogs.notify('warning', \"No Draft Bill Found\", { animation: true, size: 'sm' });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n /////////////////////\r\n vm.BillTypeList = [{\r\n BillTypeName: \"Detailed\"\r\n }, {\r\n BillTypeName: \"Consolidate\"\r\n }]\r\n\r\n vm.BaseOnList = [{\r\n BillBased: \"Construction Activity\",\r\n BillBasedId: 1\r\n },\r\n {\r\n BillBased: \"Location of Work\",\r\n BillBasedId: 2\r\n }\r\n ]\r\n\r\n\r\n vm.shareKpost = function(row) {\r\n debugger;\r\n vm.isLoading = true;\r\n vm.reportobj = {\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n ContractorId: vm.work.selectedContractor.ContractorId,\r\n WorkOrderId: row.WorkOrderId,\r\n ActionBy: loggedUser.UserId,\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n ProjectName: \" Proposed \" + vm.work.selectedProject.ProjectName + \" Project at \" + vm.work.selectedProject.AreaName + \", \" + vm.work.selectedProject.CityName,\r\n Heading: \"\"\r\n }\r\n BillingService.ShowWorkOrderReport(vm.reportobj).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.reportFile = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.reportFile,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n\r\n modalInstance.result.then(function(res) {}, function() {});\r\n }\r\n });\r\n }\r\n\r\n vm.viewReport = function(row) {\r\n\r\n vm.isLoading = true;\r\n\r\n\r\n var obj = {\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n ContractorId: vm.work.selectedContractor.ContractorId,\r\n WorkOrderId: row.WorkOrderId,\r\n ActionBy: loggedUser.UserId,\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n ProjectName: \" Proposed \" + vm.work.selectedProject.ProjectName + \" Project at \" + vm.work.selectedProject.AreaName + \", \" + vm.work.selectedProject.CityName,\r\n Heading: \"\"\r\n }\r\n\r\n BillingService.ShowWorkOrderReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n\r\n\r\n var blob = new Blob([res.data], { type: \"application/pdf\" }),\r\n url = window.URL.createObjectURL(blob);\r\n ///Kpost sharing\r\n // var file = new File([blob], 'KpostTestPdf.pdf', { type: \"application/pdf\", lastModified: new Date() });\r\n\r\n // var pdfUploadkpost = new FormData();\r\n // pdfUploadkpost.append('uploadedfile', file)\r\n // console.log(file);\r\n // console.log(pdfUploadkpost);\r\n\r\n\r\n // var xhttp = new XMLHttpRequest();\r\n // xhttp.onreadystatechange = function () {\r\n // if (this.readyState == 4 && this.status == 200) {\r\n // alert(this.responseText);\r\n\r\n // }\r\n // };\r\n // xhttp.open('POST', 'https://kpost.in:8282/PhPweBaCcEsS/katchup/katchupfileupload.php?sender=hocheadmmd01&receiver=hochecivilse02', false);// LINE ADDED\r\n // xhttp.send(pdfUploadkpost);\r\n // var fileList = [];\r\n\r\n // fileList.push('hocheadmmd01/katchup/hochecivilse02/2019-03-26/KpostTestPdf.pdf');\r\n // var attachementPath = '{\"attachmentList\":' + JSON.stringify(fileList) + ',\"captionlist\": []}';\r\n // var temp = {\r\n // 'sender': 'hocheadmmd01',\r\n // 'receiver': 'hochecivilse02',\r\n // 'messageType': 0,\r\n // 'subject': 'Report',\r\n // 'actualMessage': 'WorkOrder Report',\r\n // 'attachementPath': attachementPath,\r\n // 'messageTime': $filter('date')(new Date(), 'yyyy-MM-dd'),\r\n // 'serverTime': $filter('date')(new Date(), 'yyyy-MM-dd'),\r\n // 'status': '0',\r\n // 'sessionID': 'Web-Ang5',\r\n // 'referenceMessage': null,\r\n // 'groupFlag': false\r\n\r\n // };\r\n // KPostBoxService.shareFile(temp).then(function (res) {\r\n // if (res.status === 200) {\r\n // alert(res.data.resultList[0].displayMessageStatus);\r\n // }\r\n // });\r\n ///Kpost sharing\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('backTop', backTop);\r\n\r\n /** @ngInject */\r\n function backTop() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/backTop/backTop.html',\r\n controller: function () {\r\n $('#backTop').backTop({\r\n 'position': 200,\r\n 'speed': 100\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n /**\r\n * Includes basic panel layout inside of current element.\r\n */\r\n angular.module('KPMES.theme')\r\n .directive('baPanel', baPanel);\r\n\r\n /** @ngInject */\r\n function baPanel(baPanel, baConfig) {\r\n return angular.extend({}, baPanel, {\r\n template: function(el, attrs) {\r\n var res = '
';\r\n res += baPanel.template(el, attrs);\r\n res += '
';\r\n return res;\r\n }\r\n });\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .factory('baPanel', baPanel);\r\n\r\n /** @ngInject */\r\n function baPanel() {\r\n\r\n /** Base baPanel directive */\r\n return {\r\n restrict: 'A',\r\n transclude: true,\r\n template: function(elem, attrs) {\r\n var res = '
';\r\n if (attrs.baPanelTitle) {\r\n var titleTpl = '

' + attrs.baPanelTitle + '

';\r\n res = titleTpl + res; // title should be before\r\n }\r\n\r\n return res;\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 15.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .directive('baPanelBlur', baPanelBlur);\r\n\r\n /** @ngInject */\r\n function baPanelBlur(baPanelBlurHelper, $window, $rootScope) {\r\n var bodyBgSize;\r\n\r\n baPanelBlurHelper.bodyBgLoad().then(function() {\r\n bodyBgSize = baPanelBlurHelper.getBodyBgImageSizes();\r\n });\r\n\r\n $window.addEventListener('resize', function() {\r\n bodyBgSize = baPanelBlurHelper.getBodyBgImageSizes();\r\n });\r\n\r\n return {\r\n restrict: 'A',\r\n link: function($scope, elem) {\r\n if(!$rootScope.$isMobile) {\r\n baPanelBlurHelper.bodyBgLoad().then(function () {\r\n setTimeout(recalculatePanelStyle);\r\n });\r\n $window.addEventListener('resize', recalculatePanelStyle);\r\n\r\n $scope.$on('$destroy', function () {\r\n $window.removeEventListener('resize', recalculatePanelStyle);\r\n });\r\n }\r\n\r\n function recalculatePanelStyle() {\r\n if (!bodyBgSize) {\r\n return;\r\n }\r\n elem.css({\r\n backgroundSize: Math.round(bodyBgSize.width) + 'px ' + Math.round(bodyBgSize.height) + 'px',\r\n backgroundPosition: Math.floor(bodyBgSize.positionX) + 'px ' + Math.floor(bodyBgSize.positionY) + 'px'\r\n });\r\n }\r\n\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 15.01.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .service('baPanelBlurHelper', baPanelBlurHelper);\r\n\r\n /** @ngInject */\r\n function baPanelBlurHelper($q) {\r\n var res = $q.defer();\r\n var computedStyle = getComputedStyle(document.body, ':before');\r\n var image = new Image();\r\n image.src = computedStyle.backgroundImage.replace(/url\\((['\"])?(.*?)\\1\\)/gi, '$2');\r\n image.onerror = function() {\r\n res.reject();\r\n };\r\n image.onload = function() {\r\n res.resolve();\r\n };\r\n\r\n this.bodyBgLoad = function() {\r\n return res.promise;\r\n };\r\n\r\n this.getBodyBgImageSizes = function() {\r\n var elemW = document.documentElement.clientWidth;\r\n var elemH = document.documentElement.clientHeight;\r\n if(elemW <= 640) return;\r\n var imgRatio = (image.height / image.width); // original img ratio\r\n var containerRatio = (elemH / elemW); // container ratio\r\n\r\n var finalHeight, finalWidth;\r\n if (containerRatio > imgRatio) {\r\n finalHeight = elemH;\r\n finalWidth = (elemH / imgRatio);\r\n } else {\r\n finalWidth = elemW;\r\n finalHeight = (elemW * imgRatio);\r\n }\r\n return { width: finalWidth, height: finalHeight, positionX: (elemW - finalWidth)/2, positionY: (elemH - finalHeight)/2};\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n /**\r\n * Represents current element as panel, adding all necessary classes.\r\n */\r\n angular.module('KPMES.theme')\r\n .directive('baPanelSelf', baPanelSelf);\r\n\r\n /** @ngInject */\r\n function baPanelSelf(baPanel) {\r\n return angular.extend({}, baPanel, {\r\n link: function(scope, el, attrs) {\r\n el.addClass('panel panel-white');\r\n if (attrs.baPanelClass) {\r\n el.addClass(attrs.baPanelClass);\r\n }\r\n }\r\n });\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('baSidebar', baSidebar);\r\n\r\n /** @ngInject */\r\n function baSidebar($timeout, baSidebarService, baUtil, layoutSizes) {\r\n var jqWindow = $(window);\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/baSidebar/ba-sidebar.html',\r\n controller: 'BaSidebarCtrl',\r\n link: function (scope, el) {\r\n\r\n scope.menuHeight = el[0].childNodes[0].clientHeight - 84;\r\n jqWindow.on('click', _onWindowClick);\r\n jqWindow.on('resize', _onWindowResize);\r\n\r\n scope.$on('$destroy', function () {\r\n jqWindow.off('click', _onWindowClick);\r\n jqWindow.off('resize', _onWindowResize);\r\n });\r\n\r\n function _onWindowClick($evt) {\r\n if (!baUtil.isDescendant(el[0], $evt.target) &&\r\n !$evt.originalEvent.$sidebarEventProcessed &&\r\n !baSidebarService.isMenuCollapsed() &&\r\n baSidebarService.canSidebarBeHidden()) {\r\n $evt.originalEvent.$sidebarEventProcessed = true;\r\n $timeout(function () {\r\n baSidebarService.setMenuCollapsed(true);\r\n }, 10);\r\n }\r\n }\r\n\r\n // watch window resize to change menu collapsed state if needed\r\n function _onWindowResize() {\r\n var newMenuCollapsed = baSidebarService.shouldMenuBeCollapsed();\r\n var newMenuHeight = _calculateMenuHeight();\r\n if (newMenuCollapsed != baSidebarService.isMenuCollapsed() || scope.menuHeight != newMenuHeight) {\r\n scope.$apply(function () {\r\n scope.menuHeight = newMenuHeight;\r\n baSidebarService.setMenuCollapsed(newMenuCollapsed)\r\n });\r\n }\r\n }\r\n\r\n function _calculateMenuHeight() {\r\n return el[0].childNodes[0].clientHeight - 84;\r\n }\r\n }\r\n };\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .provider('baSidebarService', baSidebarServiceProvider);\r\n\r\n /** @ngInject */\r\n function baSidebarServiceProvider() {\r\n var staticMenuItems = [];\r\n\r\n this.addStaticItem = function() {\r\n staticMenuItems.push.apply(staticMenuItems, arguments);\r\n };\r\n\r\n /** @ngInject */\r\n this.$get = function($state, layoutSizes) {\r\n return new _factory();\r\n\r\n function _factory() {\r\n var isMenuCollapsed = shouldMenuBeCollapsed();\r\n\r\n this.getMenuItems = function() { \r\n var states = defineMenuItemStates();\r\n var menuItems = states.filter(function(item) {\r\n return item.level == 0;\r\n });\r\n\r\n menuItems.forEach(function(item) {\r\n var children = states.filter(function(child) {\r\n return child.level == 1 && child.name.indexOf(item.name) === 0;\r\n });\r\n item.subMenu = children.length ? children : null;\r\n });\r\n\r\n return menuItems.concat(staticMenuItems);\r\n };\r\n\r\n this.shouldMenuBeCollapsed = shouldMenuBeCollapsed;\r\n this.canSidebarBeHidden = canSidebarBeHidden;\r\n\r\n this.setMenuCollapsed = function(isCollapsed) {\r\n isMenuCollapsed = isCollapsed;\r\n };\r\n\r\n this.isMenuCollapsed = function() {\r\n return isMenuCollapsed;\r\n };\r\n\r\n this.toggleMenuCollapsed = function() {\r\n isMenuCollapsed = !isMenuCollapsed;\r\n };\r\n\r\n this.getAllStateRefsRecursive = function(item) {\r\n var result = [];\r\n _iterateSubItems(item);\r\n return result;\r\n\r\n function _iterateSubItems(currentItem) {\r\n currentItem.subMenu && currentItem.subMenu.forEach(function(subItem) {\r\n subItem.stateRef && result.push(subItem.stateRef);\r\n _iterateSubItems(subItem);\r\n });\r\n }\r\n };\r\n\r\n function defineMenuItemStates() {\r\n return $state.get()\r\n .filter(function(s) {\r\n return s.sidebarMeta;\r\n })\r\n .map(function(s) {\r\n var meta = s.sidebarMeta;\r\n return {\r\n name: s.name,\r\n title: s.title,\r\n level: (s.name.match(/\\./g) || []).length,\r\n order: meta.order,\r\n icon: meta.icon,\r\n stateRef: s.name,\r\n };\r\n })\r\n .sort(function(a, b) {\r\n return (a.level - b.level) * 100 + a.order - b.order;\r\n });\r\n }\r\n\r\n function shouldMenuBeCollapsed() {\r\n return window.innerWidth <= layoutSizes.resWidthCollapseSidebar;\r\n }\r\n\r\n function canSidebarBeHidden() {\r\n return window.innerWidth <= layoutSizes.resWidthHideSidebar;\r\n }\r\n }\r\n };\r\n }\r\n})();\r\n\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .controller('BaSidebarCtrl', BaSidebarCtrl);\r\n\r\n /** @ngInject */\r\n function BaSidebarCtrl($rootScope, $scope, $http, $window, dialogs, lodash, baSidebarService) {\r\n \r\n //$scope.menuItems = baSidebarService.getMenuItems();\r\n //$scope.defaultSidebarState = $scope.menuItems[0].stateRef;\r\n getMenuItems(); \r\n\r\n $scope.hoverItem = function ($event) {\r\n $scope.showHoverElem = true;\r\n $scope.hoverElemHeight = $event.currentTarget.clientHeight;\r\n var menuTopValue = 50;\r\n $scope.hoverElemTop = $event.currentTarget.getBoundingClientRect().top - menuTopValue;\r\n };\r\n\r\n $scope.$on('$stateChangeSuccess', function () {\r\n \r\n if (baSidebarService.canSidebarBeHidden()) {\r\n baSidebarService.setMenuCollapsed(true);\r\n }\r\n });\r\n\r\n function getMenuItems() {\r\n var menuList;\r\n\r\n $http.get($rootScope.endPoint + 'User/GetUserMenuByUserId/' + $rootScope.userId).then(\r\n function (res) {\r\n if (res.status === 200) { \r\n if (res.data.length < 1) {\r\n dialogs.notify('Info', 'You have not given access to any menu
Contact Your Admin!
Logging out.', '');\r\n $rootScope.logout();\r\n } \r\n $window.localStorage.setItem(\"userMenus\", JSON.stringify(res.data));\r\n var menuList = getSubMenus(res.data); \r\n $scope.menuItems = menuList;\r\n console.log($scope.menuItems)\r\n $scope.defaultSidebarState = $scope.menuItems[0].stateRef;\r\n }\r\n }, function (err) {\r\n }\r\n );\r\n }\r\n\r\n function getSubMenus(menuList) {\r\n var subMenuList = [];\r\n for (var i in menuList) {\r\n var temp = {\r\n title: menuList[i].MenuName,\r\n name: menuList[i].MenuName,\r\n icon: menuList[i].MenuIcon,\r\n stateRef: menuList[i].MenuUrl,\r\n order: menuList[i].MenuOrder\r\n };\r\n if(menuList[i].SubMenuItems.length > 0) {\r\n temp.subMenu = getSubMenus(menuList[i].SubMenuItems);\r\n } else {\r\n temp.subMenu = null;\r\n }\r\n subMenuList.push(temp);\r\n }\r\n\r\n return subMenuList;\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 03.05.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('baSidebarToggleMenu', baSidebarToggleMenu)\r\n .directive('baSidebarCollapseMenu', baSidebarCollapseMenu)\r\n .directive('baSidebarTogglingItem', baSidebarTogglingItem)\r\n .controller('BaSidebarTogglingItemCtrl', BaSidebarTogglingItemCtrl)\r\n .directive('baUiSrefTogglingSubmenu', baUiSrefTogglingSubmenu)\r\n .directive('baUiSrefToggler', baUiSrefToggler);\r\n\r\n /** @ngInject */\r\n function baSidebarToggleMenu(baSidebarService) {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, elem) {\r\n elem.on('click', function($evt) {\r\n $evt.originalEvent.$sidebarEventProcessed = true;\r\n scope.$apply(function() {\r\n baSidebarService.toggleMenuCollapsed();\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function baSidebarCollapseMenu(baSidebarService) {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, elem) {\r\n elem.on('click', function($evt) {\r\n $evt.originalEvent.$sidebarEventProcessed = true;\r\n if (!baSidebarService.isMenuCollapsed()) {\r\n scope.$apply(function() {\r\n baSidebarService.setMenuCollapsed(true);\r\n });\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function baSidebarTogglingItem() {\r\n return {\r\n restrict: 'A',\r\n controller: 'BaSidebarTogglingItemCtrl'\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function BaSidebarTogglingItemCtrl($scope, $element, $attrs, $state, baSidebarService) {\r\n var vm = this;\r\n var menuItem = vm.$$menuItem = $scope.$eval($attrs.baSidebarTogglingItem);\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length) {\r\n vm.$$expandSubmenu = function() { console.warn('$$expandMenu should be overwritten by baUiSrefTogglingSubmenu') };\r\n vm.$$collapseSubmenu = function() { console.warn('$$collapseSubmenu should be overwritten by baUiSrefTogglingSubmenu') };\r\n\r\n var subItemsStateRefs = baSidebarService.getAllStateRefsRecursive(menuItem);\r\n\r\n vm.$expand = function() {\r\n vm.$$expandSubmenu();\r\n $element.addClass('ba-sidebar-item-expanded');\r\n };\r\n\r\n vm.$collapse = function() {\r\n vm.$$collapseSubmenu();\r\n $element.removeClass('ba-sidebar-item-expanded');\r\n };\r\n\r\n vm.$toggle = function() {\r\n $element.hasClass('ba-sidebar-item-expanded') ?\r\n vm.$collapse() :\r\n vm.$expand();\r\n };\r\n\r\n if (_isState($state.current)) {\r\n $element.addClass('ba-sidebar-item-expanded');\r\n }\r\n\r\n $scope.$on('$stateChangeStart', function (event, toState) {\r\n if (!_isState(toState) && $element.hasClass('ba-sidebar-item-expanded')) {\r\n vm.$collapse();\r\n $element.removeClass('ba-sidebar-item-expanded');\r\n }\r\n });\r\n\r\n $scope.$on('$stateChangeSuccess', function (event, toState) {\r\n if (_isState(toState) && !$element.hasClass('ba-sidebar-item-expanded')) {\r\n vm.$expand();\r\n $element.addClass('ba-sidebar-item-expanded');\r\n }\r\n });\r\n }\r\n\r\n function _isState(state) {\r\n return state && subItemsStateRefs.some(function(subItemState) {\r\n return state.name.indexOf(subItemState) == 0;\r\n });\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function baUiSrefTogglingSubmenu($state) {\r\n return {\r\n restrict: 'A',\r\n require: '^baSidebarTogglingItem',\r\n link: function(scope, el, attrs, baSidebarTogglingItem) {\r\n baSidebarTogglingItem.$$expandSubmenu = function() { el.slideDown(); };\r\n baSidebarTogglingItem.$$collapseSubmenu = function() { el.slideUp(); };\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function baUiSrefToggler(baSidebarService) {\r\n return {\r\n restrict: 'A',\r\n require: '^baSidebarTogglingItem',\r\n link: function(scope, el, attrs, baSidebarTogglingItem) {\r\n el.on('click', function() {\r\n if (baSidebarService.isMenuCollapsed()) {\r\n // If the whole sidebar is collapsed and this item has submenu. We need to open sidebar.\r\n // This should not affect mobiles, because on mobiles sidebar should be hidden at all\r\n scope.$apply(function() {\r\n baSidebarService.setMenuCollapsed(false);\r\n });\r\n baSidebarTogglingItem.$expand();\r\n } else {\r\n baSidebarTogglingItem.$toggle();\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('baWizard', baWizard);\r\n\r\n /** @ngInject */\r\n function baWizard() {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n templateUrl: 'app/theme/components/baWizard/baWizard.html',\r\n controllerAs: '$baWizardController',\r\n controller: 'baWizardCtrl'\r\n }\r\n }\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .controller('baWizardCtrl', baWizardCtrl);\r\n\r\n /** @ngInject */\r\n function baWizardCtrl($scope) {\r\n var vm = this;\r\n vm.tabs = [];\r\n\r\n vm.tabNum = 0;\r\n vm.progress = 0;\r\n\r\n vm.addTab = function(tab) {\r\n tab.setPrev(vm.tabs[vm.tabs.length - 1]);\r\n vm.tabs.push(tab);\r\n vm.selectTab(0);\r\n };\r\n\r\n $scope.$watch(angular.bind(vm, function () {return vm.tabNum;}), calcProgress);\r\n\r\n vm.selectTab = function (tabNum) { \r\n vm.tabs[vm.tabNum].submit();\r\n if (vm.tabs[tabNum].isAvailiable()) {\r\n vm.tabNum = tabNum;\r\n vm.tabs.forEach(function (t, tIndex) {\r\n tIndex == vm.tabNum ? t.select(true) : t.select(false);\r\n });\r\n }\r\n };\r\n\r\n vm.isFirstTab = function () {\r\n return vm.tabNum == 0;\r\n };\r\n\r\n vm.isLastTab = function () {\r\n return vm.tabNum == vm.tabs.length - 1 ;\r\n };\r\n\r\n vm.nextTab = function () {\r\n vm.selectTab(vm.tabNum + 1)\r\n };\r\n\r\n vm.previousTab = function () {\r\n vm.selectTab(vm.tabNum - 1)\r\n };\r\n\r\n function calcProgress() {\r\n vm.progress = ((vm.tabNum + 1) / vm.tabs.length) * 100;\r\n }\r\n }\r\n})();\r\n\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('baWizardStep', baWizardStep);\r\n\r\n /** @ngInject */\r\n function baWizardStep() {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n require: '^baWizard',\r\n scope: {\r\n form: '='\r\n },\r\n templateUrl: 'app/theme/components/baWizard/baWizardStep.html',\r\n link: function($scope, $element, $attrs, wizard) {\r\n $scope.selected = true;\r\n\r\n var tab = {\r\n title: $attrs.title,\r\n select: select,\r\n submit: submit,\r\n isComplete: isComplete,\r\n isAvailiable: isAvailiable,\r\n prevTab: undefined,\r\n setPrev: setPrev\r\n };\r\n\r\n wizard.addTab(tab);\r\n\r\n function select(isSelected) {\r\n if (isSelected) {\r\n $scope.selected = true;\r\n } else {\r\n $scope.selected = false;\r\n }\r\n }\r\n\r\n function submit() {\r\n $scope.form && $scope.form.$setSubmitted(true);\r\n }\r\n\r\n function isComplete() {\r\n return $scope.form ? $scope.form.$valid : true;\r\n }\r\n\r\n function isAvailiable() {\r\n return tab.prevTab ? tab.prevTab.isComplete() : true;\r\n }\r\n\r\n function setPrev(pTab) {\r\n tab.prevTab = pTab;\r\n }\r\n }\r\n };\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('contentTop', contentTop);\r\n\r\n /** @ngInject */\r\n function contentTop($location, $state) {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/contentTop/contentTop.html',\r\n link: function($scope) {\r\n $scope.$watch(function () {\r\n $scope.activePageTitle = $state.current.title;\r\n });\r\n }\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('msgCenter', msgCenter);\r\n\r\n /** @ngInject */\r\n function msgCenter() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/msgCenter/msgCenter.html',\r\n controller: 'MsgCenterCtrl'\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .controller('MsgCenterCtrl', MsgCenterCtrl);\r\n\r\n /** @ngInject */\r\n function MsgCenterCtrl($scope, $rootScope, $sce, dialogs, $window, AuthenticationService, UserService) {\r\n var vm = this;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n $scope.users = {\r\n 0: {\r\n name: 'Vlad',\r\n },\r\n 1: {\r\n name: 'Kostya',\r\n },\r\n 2: {\r\n name: 'Andrey',\r\n },\r\n 3: {\r\n name: 'Nasta',\r\n }\r\n };\r\n\r\n $scope.notifications = [\r\n {\r\n userId: 0,\r\n template: '&name posted a new article.',\r\n time: '1 min ago'\r\n },\r\n {\r\n userId: 1,\r\n template: '&name changed his contact information.',\r\n time: '2 hrs ago'\r\n },\r\n {\r\n image: 'assets/img/shopping-cart.svg',\r\n template: 'New orders received.',\r\n time: '5 hrs ago'\r\n },\r\n {\r\n userId: 2,\r\n template: '&name replied to your comment.',\r\n time: '1 day ago'\r\n },\r\n {\r\n userId: 3,\r\n template: 'Today is &name\\'s birthday.',\r\n time: '2 days ago'\r\n },\r\n {\r\n image: 'assets/img/comments.svg',\r\n template: 'New comments on your post.',\r\n time: '3 days ago'\r\n },\r\n {\r\n userId: 1,\r\n template: '&name invited you to join the event.',\r\n time: '1 week ago'\r\n }\r\n ];\r\n\r\n $scope.messages = [\r\n {\r\n userId: 3,\r\n text: 'After you get up and running, you can place Font Awesome icons just about...',\r\n time: '1 min ago'\r\n },\r\n {\r\n userId: 0,\r\n text: 'You asked, Font Awesome delivers with 40 shiny new icons in version 4.2.',\r\n time: '2 hrs ago'\r\n },\r\n {\r\n userId: 1,\r\n text: 'Want to request new icons? Here\\'s how. Need vectors or want to use on the...',\r\n time: '10 hrs ago'\r\n },\r\n {\r\n userId: 2,\r\n text: 'Explore your passions and discover new ones by getting involved. Stretch your...',\r\n time: '1 day ago'\r\n },\r\n {\r\n userId: 3,\r\n text: 'Get to know who we are - from the inside out. From our history and culture, to the...',\r\n time: '1 day ago'\r\n },\r\n {\r\n userId: 1,\r\n text: 'Need some support to reach your goals? Apply for scholarships across a variety of...',\r\n time: '2 days ago'\r\n },\r\n {\r\n userId: 0,\r\n text: 'Wrap the dropdown\\'s trigger and the dropdown menu within .dropdown, or...',\r\n time: '1 week ago'\r\n }\r\n ];\r\n\r\n $scope.getMessage = function (msg) {\r\n var text = msg.template;\r\n if (msg.userId || msg.userId === 0) {\r\n text = text.replace('&name', '' + $scope.users[msg.userId].name + '');\r\n }\r\n return $sce.trustAsHtml(text);\r\n };\r\n\r\n $rootScope.GetKpost = function () {\r\n debugger;\r\n var ActionBy = vm.loggedUser.UserId\r\n UserService.GetKpostLogin(ActionBy).then(function (res) {\r\n if (res.status === 200) {\r\n vm.KpostDetail = res.data;\r\n if (vm.KpostDetail != null)\r\n $window.open('http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password, '_blank');\r\n //$window.location = 'http://cms.indiakpost.com/login?username=' + vm.KpostDetail.KpostId + '&password=' + vm.KpostDetail.Password\r\n else\r\n dialogs.notify('Info', 'KpostId is not generated', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"User\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Try Again', \"User\");\r\n });\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('pageTop', pageTop);\r\n\r\n /** @ngInject */\r\n function pageTop() {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/pageTop/pageTop.html'\r\n };\r\n }\r\n\r\n\r\n})();\n/**\r\n * Created by n.poltoratsky\r\n * on 28.06.2016.\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('progressBarRound', progressBarRound);\r\n\r\n /** @ngInject */\r\n function progressBarRound(baProgressModal) {\r\n return {\r\n restrict: 'E',\r\n templateUrl: 'app/theme/components/progressBarRound/progressBarRound.html',\r\n link:function($scope, element, attrs) {\r\n $scope.baProgressDialog = baProgressModal;\r\n $scope.$watch(function () {\r\n return baProgressModal.getProgress();\r\n }, animateBar);\r\n\r\n function animateBar() {\r\n var circle = element.find('#loader')[0];\r\n circle.setAttribute(\"stroke-dasharray\", baProgressModal.getProgress() * 180 * Math.PI / 100 + \", 20000\");\r\n $scope.progress = baProgressModal.getProgress();\r\n }\r\n }\r\n }\r\n }\r\n})();\n/**\r\n * @author v.lugovksy\r\n * created on 16.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.components')\r\n .directive('widgets', widgets);\r\n\r\n /** @ngInject */\r\n function widgets() {\r\n return {\r\n restrict: 'EA',\r\n scope: {\r\n ngModel: '='\r\n },\r\n templateUrl: 'app/theme/components/widgets/widgets.html',\r\n replace: true\r\n };\r\n }\r\n\r\n})();\n/**\r\n * @author v.lugovsky\r\n * created on 17.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .filter('appImage', appImage);\r\n\r\n /** @ngInject */\r\n function appImage(layoutPaths) {\r\n return function(input) {\r\n return layoutPaths.images.root + input;\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 17.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .filter('kameleonImg', kameleonImg);\r\n\r\n /** @ngInject */\r\n function kameleonImg(layoutPaths) {\r\n return function(input) {\r\n return layoutPaths.images.root + 'theme/icon/kameleon/' + input + '.svg';\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 17.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .filter('profilePicture', profilePicture);\r\n\r\n /** @ngInject */\r\n function profilePicture(layoutPaths) {\r\n return function(input, ext) {\r\n ext = ext || 'png';\r\n return layoutPaths.images.profile + input + '.' + ext;\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author a.demeshko\r\n * created on 23.12.2015\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme')\r\n .filter('plainText', plainText);\r\n\r\n /** @ngInject */\r\n function plainText() {\r\n return function(text) {\r\n return text ? String(text).replace(/<[^>]+>/gm, '') : '';\r\n };\r\n }\r\n\r\n})();\r\n\n/**\r\n * @author v.lugovsky\r\n * created on 10.12.2016\r\n */\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.theme.inputs')\r\n .directive('baSwitcher', baSwitcher);\r\n\r\n /** @ngInject */\r\n function baSwitcher() {\r\n return {\r\n templateUrl: 'app/theme/inputs/baSwitcher/baSwitcher.html',\r\n scope: {\r\n switcherStyle: '@',\r\n switcherValue: '='\r\n }\r\n };\r\n }\r\n\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('ApproveForBillingCtrl', ApproveForBillingCtrl);\r\n\r\n /** @ngInject */\r\n function ApproveForBillingCtrl($scope, $filter, $http, $rootScope, WorkApprovalService, BillingService, lodash, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isApprove = false;\r\n vm.isApproveList = false;\r\n vm.isViewApprovalWO = false;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.ApprovedWorkApprovalList = [];\r\n vm.wo = {};\r\n vm.getCategoryByWorkOrderIoca = getCategoryByWorkOrderIoca;\r\n vm.getSubCategoryByWorkOrderIoca = getSubCategoryByWorkOrderIoca;\r\n vm.getTypeByWorkOrderIoca = getTypeByWorkOrderIoca;\r\n vm.getIocaByWorkOderIoca = getIocaByWorkOderIoca;\r\n vm.getLocationByWorkOrderIoca = getLocationByWorkOrderIoca;\r\n vm.getTierDtlsByWorkOrderIoca = getTierDtlsByWorkOrderIoca;\r\n vm.filterTiers = filterTiers;\r\n vm.getPowForApproval = getPowForApproval;\r\n vm.SaveBillApproval = SaveBillApproval;\r\n vm.Reset = Reset;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init()\r\n\r\n function Init() {\r\n var ActionBy = $rootScope.userId\r\n BillingService.GetApprovedWorkApproval(ActionBy, CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n if (res.data.length > 0) {\r\n res.data = lodash.groupBy(res.data, 'CompanyName');\r\n\r\n for (var key in res.data) {\r\n res.data[key] = lodash.groupBy(res.data[key], 'ProjectName');\r\n }\r\n\r\n vm.ApprovedWorkApprovalList = res.data;\r\n vm.isLoading = false;\r\n WorkApprovalService.GetIocaDoc().then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n }\r\n\r\n\r\n vm.viewWO = function(row) {\r\n vm.isApproveList = true;\r\n vm.wo = angular.copy(row);\r\n vm.wo.Title = angular.copy(row.Title);\r\n vm.wo.Subjects = angular.copy(row.Subjects);\r\n vm.wo.WorkOrderNo = angular.copy(row.WorkOrderNo);\r\n vm.wo.BillType = angular.copy(row.BillType);\r\n vm.wo.ContractorName = angular.copy(row.ContractorName);\r\n vm.wo.WorkOrderId = angular.copy(row.WorkOrderId);\r\n vm.wo.ProjectId = angular.copy(row.ProjectId);\r\n\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == row.RfqScope) {\r\n vm.wo.TypeofWO = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === row.TypeOfContract) {\r\n vm.wo.ContractName = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n\r\n if (vm.wo.BillId == 2) {\r\n debugger;\r\n\r\n var date = new Date();\r\n vm.wo.monthStartDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n vm.wo.monthEndDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n\r\n // vm.wo.monthEndDay = new Date();\r\n // vm.wo.monthEndDay.setDate(0);\r\n // vm.wo.monthStartDay = new Date(vm.wo.monthEndDay);\r\n // vm.wo.monthStartDay.setDate(1);\r\n\r\n // var date = new Date();\r\n // var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n // var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0); \r\n // vm.wo.monthStartDay = firstDay;\r\n // vm.wo.monthEndDay = lastDay;\r\n } else if (vm.wo.BillId == 1) {\r\n\r\n var d = new Date();\r\n var n = d.getDay()\r\n\r\n switch (n) {\r\n case 0:\r\n {\r\n var now = new Date();\r\n now.setDate(now.getDate() + 4)\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 2)\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n case 1:\r\n {\r\n var now = new Date();\r\n now.setDate(now.getDate() + 3)\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 3)\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n case 2:\r\n {\r\n var now = new Date();\r\n now.setDate(now.getDate() + 2)\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 4)\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n case 3:\r\n {\r\n var now = new Date();\r\n now.setDate(now.getDate() + 1)\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 5)\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n case 4:\r\n {\r\n var now = new Date();\r\n now.setDate(now.getDate())\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n case 5:\r\n {\r\n var now = new Date();\r\n now.setDate(now.getDate() + 6)\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate())\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n case 6:\r\n {\r\n debugger\r\n var now = new Date();\r\n now.setDate(now.getDate() + 5)\r\n vm.wo.monthEndDay = now;\r\n\r\n var now = new Date();\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.monthStartDay = now;\r\n\r\n }\r\n break;\r\n default:\r\n // console.log(\"Check\");\r\n }\r\n } else if (vm.wo.BillId == 5) {\r\n\r\n\r\n vm.wo.monthStartDay = new Date();\r\n vm.wo.monthEndDay = new Date();\r\n }\r\n\r\n getCategoryByWorkOrderIoca(vm.wo.WorkOrderId)\r\n\r\n }\r\n\r\n function getCategoryByWorkOrderIoca(WorkOrderId) {\r\n if (WorkOrderId) {\r\n ClearByWO()\r\n BillingService.GetCategoryByWorkOrderIoca(WorkOrderId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n // if (vm.WorkOrderCategoryList.length < 1)\r\n // dialogs.notify('Warning', 'No Category Type available for this Work Order', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n } else {\r\n ClearByWO()\r\n }\r\n }\r\n\r\n function getSubCategoryByWorkOrderIoca() {\r\n if (vm.selectedWoCategory) {\r\n ClearByCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryIdList: vm.Category,\r\n WorkOrderId: vm.wo.WorkOrderId\r\n }\r\n BillingService.GetSubCategoryByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n // if (vm.WorkOrderSubCategoryList.length < 1)\r\n // dialogs.notify('Warning', 'No Sub Category Type available for this Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n } else {\r\n ClearByCategory();\r\n }\r\n\r\n }\r\n\r\n function getTypeByWorkOrderIoca() {\r\n if (vm.selectedWoSubCategory) {\r\n ClearBySubCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n SubCategoryIdList: vm.SubCategory,\r\n WorkOrderId: vm.wo.WorkOrderId\r\n }\r\n BillingService.GetTypeByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n // if (vm.WorkOrderTypeList.length < 1)\r\n // dialogs.notify('Warning', 'No Type of CA available for this SubCategory', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n } else {\r\n ClearBySubCategory()\r\n }\r\n\r\n }\r\n\r\n function getIocaByWorkOderIoca() {\r\n if (vm.selectedWoType) {\r\n ClearByType();\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n var obj = {\r\n TypeIdList: vm.TypeId,\r\n WorkOrderId: vm.wo.WorkOrderId\r\n }\r\n BillingService.GetIocaByWorkOderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n // if (vm.WorkOrderIOCAList.length < 1)\r\n // dialogs.notify('Warning', 'No IOCA available for this Type', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n } else {\r\n ClearByType()\r\n }\r\n }\r\n\r\n function getLocationByWorkOrderIoca() {\r\n if (vm.selectedWoIOCA) {\r\n ClearByIOCA()\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.wo.WorkOrderId\r\n }\r\n BillingService.GetLocationByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n // if (vm.LocationList.length < 1)\r\n // dialogs.notify('Warning', 'No Locations available for this IOCA', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n } else {\r\n ClearByIOCA()\r\n }\r\n\r\n }\r\n\r\n function getTierDtlsByWorkOrderIoca() {\r\n if (vm.selectedLocation) {\r\n clearTierSelection();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n ProjectId: vm.wo.ProjectId\r\n }\r\n BillingService.GetTierDtlsByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n } else {\r\n clearTierSelection\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTireValue) {\r\n clearTierSelection()\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n if (t.TierName === maxTier.TierNo) {\r\n var ioca = lodash.find(vm.workOrderIocaList, {\r\n 'IOCA_Id': vm.selectedWoIOCA.Id\r\n })\r\n if (ioca) {\r\n var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n })\r\n if (tmpWorkLoc) {\r\n var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n lodash.forEach(maxTier.Values, function(t1) {\r\n if (lodash.includes(tmpTierIdList, t1.TierId))\r\n lodash.remove(maxTier.Values, function(t2) {\r\n return t2.TierId === t1.TierId;\r\n });\r\n })\r\n }\r\n }\r\n }\r\n vm.LastTiers = tier.selectedTireValue;\r\n });\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getPowForApproval() {\r\n vm.isLoading = true;\r\n ClearByTier();\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierIds = Arr.join();\r\n var obj = {\r\n LastTierIdList: vm.TierIds,\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.wo.WorkOrderId\r\n }\r\n BillingService.GetPowForApproval(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PowApprovalList = res.data;\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActualDimValues = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActualDimValues)\r\n vm.PowApprovalList[i].LocationDtls[j].GrandTotal = parseFloat(0.00).toFixed(2);\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].isAdd = false;\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalValue = parseFloat(0.00).toFixed(2);\r\n var unit = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim.DimValues, function(value, key) {\r\n unit *= value;\r\n });\r\n\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit;\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit;\r\n }\r\n }\r\n }\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.IOCADocList) {\r\n if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n var obj = {\r\n IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n }\r\n vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n }\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder\");\r\n });\r\n }\r\n\r\n vm.select = function(PowList, loc, row) {\r\n debugger;\r\n var unit2 = 0;\r\n if (loc.selectedAll) {\r\n loc.selectedAll = true;\r\n\r\n } else {\r\n loc.selectedAll = false;\r\n }\r\n for (var i in PowList) {\r\n PowList[i].Approve = loc.selectedAll;\r\n debugger;\r\n if (PowList[i].Approve == true) {\r\n if (PowList[i].isAdd == false) {\r\n var TotalValue = parseFloat(PowList[i].ActualTotQty) * parseFloat(row.UnitRate);\r\n PowList[i].TotalValue = parseFloat(TotalValue).toFixed(2)\r\n unit2 = PowList[i].TotalValue;\r\n var GrandTotal = parseFloat(loc.GrandTotal) + parseFloat(unit2)\r\n loc.GrandTotal = parseFloat(GrandTotal).toFixed(2)\r\n PowList[i].isAdd = true;\r\n }\r\n } else {\r\n if (parseFloat(loc.GrandTotal) > parseFloat(PowList[i].TotalValue))\r\n loc.GrandTotal = parseFloat(loc.GrandTotal) - parseFloat(PowList[i].TotalValue)\r\n else\r\n loc.GrandTotal = parseFloat(PowList[i].TotalValue) - parseFloat(loc.GrandTotal)\r\n PowList[i].TotalValue = parseFloat(0.00).toFixed(2);\r\n PowList[i].isAdd = false;\r\n }\r\n }\r\n }\r\n vm.TotalAct = function(ioca, loc, row) {\r\n var unit1 = 0;\r\n if (ioca.Approve) {\r\n var TotalValue = parseFloat(ioca.ActualTotQty) * parseFloat(row.UnitRate);\r\n ioca.TotalValue = parseFloat(TotalValue).toFixed(2)\r\n unit1 = ioca.TotalValue;\r\n var GrandTotal = parseFloat(loc.GrandTotal) + parseFloat(unit1)\r\n loc.GrandTotal = parseFloat(GrandTotal).toFixed(2)\r\n ioca.isAdd = true;\r\n loc.selectedAll = false;\r\n } else {\r\n if (parseFloat(loc.GrandTotal) > parseFloat(ioca.TotalValue))\r\n loc.GrandTotal = parseFloat(loc.GrandTotal) - parseFloat(ioca.TotalValue)\r\n else\r\n loc.GrandTotal = parseFloat(ioca.TotalValue) - parseFloat(loc.GrandTotal)\r\n ioca.TotalValue = parseFloat(0.00).toFixed(2);\r\n ioca.isAdd = false;\r\n loc.selectedAll = false;\r\n }\r\n }\r\n\r\n\r\n function SaveBillApproval() {\r\n debugger;\r\n var Arr = {\r\n RateDetails: []\r\n };\r\n\r\n var MediaList = [];\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Approve == true) {\r\n Arr.RateDetails.push({\r\n PowId: vm.PowApprovalList[i].LocationDtls[j].PowList[k].PowId,\r\n TotalAmount: vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalValue\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n var obj = {\r\n RateDetails: Arr.RateDetails\r\n }\r\n\r\n BillingService.saveBillApprovalDtls(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Bill Approval\");\r\n Reset();\r\n Init();\r\n vm.isApproveList = false;\r\n vm.isApprove = false;\r\n vm.isViewApprovalWO = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Bill Approval\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n function ClearByWO() {\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoCategory = [];\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategory() {\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearBySubCategory() {\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByType() {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByIOCA() {\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByLoc() {\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByTier() {\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.allTierData, function(tier) {\r\n tier.selectedTierValue = null;\r\n // tier.Values = [];\r\n })\r\n }\r\n\r\n function Reset() {\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n vm.Back = function() {\r\n Reset();\r\n Init();\r\n vm.isApproveList = false;\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('ApproveRABillCtrl', ApproveRABillCtrl);\r\n\r\n /** @ngInject */\r\n function ApproveRABillCtrl($rootScope, lodash, BillingService, dialogs, $http, $state, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n // vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }];\r\n // vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n // vm.currentPage = 1;\r\n // vm.rembemberCurrentPage = function (num) {\r\n // vm.currentPage = num;\r\n // }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isTile = false;\r\n vm.isBillList = false;\r\n vm.isLoading = true;\r\n vm.isSave = false;\r\n vm.viewBill = viewBill;\r\n vm.GenerateBill = {};\r\n $rootScope.isLogin = false;\r\n vm.wo = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }];\r\n\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n },\r\n {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n BillingService.GetRABillDetails(0, 1, CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RABillList = res.data;\r\n for (var i in vm.RABillList) {\r\n for (var j in vm.TypeofContractList) {\r\n if (vm.RABillList[i].TypeOfContract == vm.TypeofContractList[j].Id) {\r\n vm.RABillList[i].ContractName = vm.TypeofContractList[j].ContractName\r\n }\r\n }\r\n for (var j in vm.TypeofBillList) {\r\n if (vm.RABillList[i].BillId == vm.TypeofBillList[j].BillId) {\r\n vm.RABillList[i].BillType = vm.TypeofBillList[j].TypeofBillName\r\n }\r\n }\r\n for (var j in vm.rfqTypeList) {\r\n if (vm.RABillList[i].RfqScope == vm.rfqTypeList[j].Code) {\r\n vm.RABillList[i].RfqScope = vm.rfqTypeList[j].rfqTypeName\r\n }\r\n }\r\n }\r\n vm.isTile = true;\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n vm.viewRABill = function () {\r\n if (vm.RABillList.length > 0) {\r\n vm.RABillList = lodash.groupBy(vm.RABillList, 'CompanyName');\r\n\r\n for (var key in vm.RABillList) {\r\n vm.RABillList[key] = lodash.groupBy(vm.RABillList[key], 'ProjectName');\r\n }\r\n vm.LoadDraftList = vm.RABillList;\r\n vm.isTile = false;\r\n vm.isBillList = false;\r\n\r\n\r\n }\r\n else {\r\n dialogs.notify('warning', \"There is no RA Bill\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n function viewBill(row) {\r\n\r\n vm.GenerateBill.SenderNotes = null;\r\n vm.GenerateBill.RABillApprovalNotes = null;\r\n\r\n vm.isFormOpen = true;\r\n vm.wo = angular.copy(row)\r\n var MoneyConv = parseFloat(vm.wo.TotalWorkOrderAmount).toFixed(2)\r\n\r\n //////////////////\r\n vm.wo.TotalWorkOrderAmount = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(MoneyConv) \r\n ////////////////////\r\n vm.wo.RfqScope = vm.wo.RfqScope\r\n vm.wo.CGST = parseFloat(vm.wo.CGST).toFixed(2)\r\n vm.wo.SGST = parseFloat(vm.wo.SGST).toFixed(2)\r\n vm.wo.IGST = parseFloat(vm.wo.IGST).toFixed(2)\r\n vm.wo.Tax = parseFloat(vm.wo.Tax).toFixed(2)\r\n vm.wo.TDS = parseFloat(vm.wo.TDS).toFixed(2)\r\n vm.wo.Retention = parseFloat(vm.wo.Retention).toFixed(2)\r\n vm.wo.Mobilization = parseFloat(vm.wo.Mobilization).toFixed(2)\r\n\r\n\r\n\r\n GetGenerateBill(vm.wo.BillIdentityNumber)\r\n vm.isBillList = true;\r\n vm.isTile = false;\r\n }\r\n\r\n function GetGenerateBill(BillIdentityNumber) {\r\n BillingService.GetGenerateRABillApproval(BillIdentityNumber).then(function (res) {\r\n if (res.status === 200) {\r\n vm.GenerateBill = res.data;\r\n vm.GenerateBill.PaidAmt = parseFloat(vm.GenerateBill.PaidAmt).toFixed(2);\r\n vm.GenerateBill.PaidAmtForm = ConvertMoney(vm.GenerateBill.PaidAmt)\r\n\r\n vm.GenerateBill.GrossValueUpToLastBill = parseFloat(vm.GenerateBill.GrossValueUpToLastBill).toFixed(2)\r\n vm.GenerateBill.GrossValueUpToLastBillForm = ConvertMoney(vm.GenerateBill.GrossValueUpToLastBill)\r\n\r\n vm.GenerateBill.TotalValue = parseFloat(vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.TotalValueForm = ConvertMoney(vm.GenerateBill.TotalValue)\r\n\r\n vm.GenerateBill.GrossValue = parseFloat(vm.GenerateBill.GrossValue).toFixed(2);\r\n vm.GenerateBill.GrossValueForm = ConvertMoney(vm.GenerateBill.GrossValue)\r\n\r\n vm.GenerateBill.Penalty = parseFloat(vm.GenerateBill.Penalty).toFixed(2);\r\n vm.GenerateBill.PenaltyForm = ConvertMoney(vm.GenerateBill.Penalty)\r\n\r\n vm.GenerateBill.NetAmount = parseFloat(vm.GenerateBill.NetAmount).toFixed(2);\r\n vm.GenerateBill.NetAmountForm = ConvertMoney(vm.GenerateBill.NetAmount)\r\n\r\n vm.GenerateBill.Retention = parseFloat(vm.GenerateBill.Retention).toFixed(2);\r\n vm.GenerateBill.RetentionForm = ConvertMoney(vm.GenerateBill.Retention)\r\n\r\n vm.GenerateBill.TaxableAmount = parseFloat(vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TaxableAmountForm = ConvertMoney(vm.GenerateBill.TaxableAmount)\r\n\r\n vm.GenerateBill.CGSTAmount = parseFloat(vm.GenerateBill.CGSTAmount).toFixed(2);\r\n vm.GenerateBill.CGSTAmountForm = ConvertMoney(vm.GenerateBill.CGSTAmount)\r\n\r\n vm.GenerateBill.SGSTAmount = parseFloat(vm.GenerateBill.SGSTAmount).toFixed(2);\r\n vm.GenerateBill.SGSTAmountForm = ConvertMoney(vm.GenerateBill.SGSTAmount)\r\n\r\n vm.GenerateBill.IGSTAmount = parseFloat(vm.GenerateBill.IGSTAmount).toFixed(2);\r\n vm.GenerateBill.IGSTAmountForm = ConvertMoney(vm.GenerateBill.IGSTAmount)\r\n\r\n vm.GenerateBill.TaxAmount = parseFloat(vm.GenerateBill.TaxAmount).toFixed(2);\r\n vm.GenerateBill.TaxAmountForm = ConvertMoney(vm.GenerateBill.TaxAmount)\r\n\r\n vm.GenerateBill.TotalBillAmount = parseFloat(vm.GenerateBill.TotalBillAmount).toFixed(2);\r\n vm.GenerateBill.TotalBillAmountForm = ConvertMoney(vm.GenerateBill.TotalBillAmount)\r\n\r\n vm.GenerateBill.TDSValue = parseFloat(vm.GenerateBill.TDSValue).toFixed(2);\r\n vm.GenerateBill.TDSValueFrom = ConvertMoney(vm.GenerateBill.TDSValue)\r\n\r\n vm.GenerateBill.MobilizationAdv = parseFloat(vm.GenerateBill.MobilizationAdv).toFixed(2);\r\n vm.GenerateBill.MobilizationAdvForm = ConvertMoney(vm.GenerateBill.MobilizationAdv)\r\n\r\n vm.GenerateBill.InteriamAdvance = parseFloat(vm.GenerateBill.InteriamAdvance).toFixed(2);\r\n vm.GenerateBill.InteriamAdvanceForm = ConvertMoney(vm.GenerateBill.InteriamAdvance)\r\n\r\n vm.GenerateBill.OtherDeduction = parseFloat(vm.GenerateBill.OtherDeduction).toFixed(2);\r\n vm.GenerateBill.OtherDeductionForm = ConvertMoney(vm.GenerateBill.OtherDeduction)\r\n\r\n vm.GenerateBill.TotalDeduction = parseFloat(vm.GenerateBill.TotalDeduction).toFixed(2);\r\n vm.GenerateBill.TotalDeductionForm = ConvertMoney(vm.GenerateBill.TotalDeduction)\r\n\r\n vm.GenerateBill.FinalBillAmt = parseFloat(vm.GenerateBill.FinalBillAmt).toFixed(2);\r\n vm.GenerateBill.FinalBillAmtForm = ConvertMoney(vm.GenerateBill.FinalBillAmt)\r\n vm.GenerateBill.CGST = ((vm.GenerateBill.CGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.SGST = ((vm.GenerateBill.SGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.IGST = ((vm.GenerateBill.IGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.Tax = ((vm.GenerateBill.TaxAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.SenderNotes = vm.GenerateBill.SenderNotes\r\n vm.GenerateBill.RetentionPer = (vm.GenerateBill.Retention / vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.RetentionPer = parseFloat((vm.GenerateBill.RetentionPer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.TDSValuePer = (vm.GenerateBill.TDSValue / vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TDSValuePer = parseFloat((vm.GenerateBill.TDSValuePer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.MobilizationPer = (vm.GenerateBill.MobilizationAdv / vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.MobilizationPer = parseFloat((vm.GenerateBill.MobilizationPer) * 100).toFixed(2);\r\n\r\n vm.isLoading = false;\r\n if (vm.wo.BillId == 2) {\r\n vm.wo.endDate = new Date(vm.GenerateBill.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n }\r\n else if (vm.wo.BillId == 1) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n }\r\n else if (vm.wo.BillId == 5) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n function ConvertMoney(value) {\r\n var MoneyConv = parseFloat(value).toFixed(2)\r\n\r\n vm.wo.TotalWorkOrderAmount = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(MoneyConv)\r\n //////////////////\r\n return vm.wo.TotalWorkOrderAmount;\r\n }\r\n\r\n\r\n\r\n vm.submitBill = function () {\r\n var obj = {\r\n BillID: vm.wo.BillIdentityNumber,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n RABillApprovalNotes: vm.GenerateBill.RABillApprovalNotes\r\n }\r\n vm.isLoading = true;\r\n vm.isSave = true;\r\n\r\n BillingService.SaveApproveRABill(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"RA Bill\");\r\n vm.wo = {};\r\n vm.isLoading = false;\r\n vm.isSave = false;\r\n Init();\r\n vm.isTile = true;\r\n // $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"RA Bill\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.Back = function () {\r\n vm.cancel();\r\n }\r\n\r\n vm.cancel = function () {\r\n vm.wo = {};\r\n vm.isFormOpen = false;\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('ContractorBillPaymentCtrl', ContractorBillPaymentCtrl);\r\n\r\n /** @ngInject */\r\n function ContractorBillPaymentCtrl($rootScope, $filter, lodash, $window, AuthenticationService, BillingService, dialogs, $http, $state) {\r\n var vm = this;\r\n // Pagination code\r\n // vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }];\r\n // vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n // vm.currentPage = 1;\r\n // vm.rembemberCurrentPage = function (num) {\r\n // vm.currentPage = num;\r\n // }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isTile = false;\r\n vm.isBillList = false;\r\n vm.isLoading = true;\r\n vm.isViewBill = false;\r\n vm.viewBill = viewBill;\r\n vm.isViewVocher = false;\r\n $rootScope.isLogin = false;\r\n vm.isAddTemplate = false;\r\n vm.wo = {};\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n function Init() {\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n },\r\n {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }\r\n ]\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n BillingService.GetRABillDetails(0, 4, CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RABillList = res.data;\r\n for (var i in vm.RABillList) {\r\n for (var j in vm.TypeofContractList) {\r\n if (vm.RABillList[i].TypeOfContract == vm.TypeofContractList[j].Id) {\r\n vm.RABillList[i].ContractName = vm.TypeofContractList[j].ContractName\r\n }\r\n }\r\n for (var j in vm.TypeofBillList) {\r\n if (vm.RABillList[i].BillId == vm.TypeofBillList[j].BillId) {\r\n vm.RABillList[i].BillType = vm.TypeofBillList[j].TypeofBillName\r\n }\r\n }\r\n for (var j in vm.rfqTypeList) {\r\n if (vm.RABillList[i].RfqScope == vm.rfqTypeList[j].Code) {\r\n vm.RABillList[i].RfqScope = vm.rfqTypeList[j].rfqTypeName\r\n }\r\n }\r\n }\r\n vm.isTile = true;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n BillingService.GetTransactionList().then(function(res) {\r\n if (res.status === 200) {\r\n vm.PaymentmodeList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n\r\n vm.view = function() {\r\n if (vm.isViewBill) {\r\n vm.isViewBill = false;\r\n } else\r\n vm.isViewBill = true;\r\n\r\n }\r\n\r\n vm.viewRABill = function() {\r\n debugger;\r\n if (vm.RABillList.length > 0) {\r\n vm.RABillList = lodash.groupBy(vm.RABillList, 'CompanyName');\r\n\r\n for (var key in vm.RABillList) {\r\n vm.RABillList[key] = lodash.groupBy(vm.RABillList[key], 'ProjectName');\r\n }\r\n vm.LoadDraftList = vm.RABillList;\r\n vm.isTile = false;\r\n vm.isBillList = false;\r\n vm.isFormOpen = false;\r\n\r\n } else {\r\n dialogs.notify('warning', \"There is no RA Bill\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n function viewBill(row) {\r\n debugger;\r\n vm.isFormOpen = true;\r\n vm.wo = angular.copy(row)\r\n var MoneyConv = parseFloat(vm.wo.TotalWorkOrderAmount).toFixed(2)\r\n\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n vm.wo.TotalWorkOrderAmount = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree + afterPoint;\r\n ////////////////////\r\n vm.wo.RfqScope = vm.wo.RfqScope\r\n vm.wo.CGST = parseFloat(vm.wo.CGST).toFixed(2)\r\n vm.wo.SGST = parseFloat(vm.wo.SGST).toFixed(2)\r\n vm.wo.IGST = parseFloat(vm.wo.IGST).toFixed(2)\r\n vm.wo.Tax = parseFloat(vm.wo.Tax).toFixed(2)\r\n vm.wo.TDS = parseFloat(vm.wo.TDS).toFixed(2)\r\n vm.wo.Retention = parseFloat(vm.wo.Retention).toFixed(2)\r\n vm.wo.Mobilization = parseFloat(vm.wo.Mobilization).toFixed(2)\r\n\r\n GetGenerateBill(vm.wo.BillIdentityNumber)\r\n vm.isBillList = true;\r\n vm.isTile = false;\r\n }\r\n\r\n function GetGenerateBill(BillIdentityNumber) {\r\n debugger;\r\n var obj = {\r\n BillIdentityId: BillIdentityNumber,\r\n StatusId: 0\r\n }\r\n BillingService.GetGenerateBill(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.GenerateBill = res.data;\r\n vm.GenerateBill.PaidAmt = parseFloat(vm.GenerateBill.PaidAmt).toFixed(2);\r\n vm.GenerateBill.PaidAmtForm = ConvertMoney(vm.GenerateBill.PaidAmt)\r\n\r\n vm.GenerateBill.GrossValue = parseFloat(vm.GenerateBill.GrossValue).toFixed(2);\r\n vm.GenerateBill.GrossValueForm = ConvertMoney(vm.GenerateBill.GrossValue)\r\n\r\n vm.GenerateBill.TotalValue = parseFloat(vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.TotalValueForm = ConvertMoney(vm.GenerateBill.TotalValue)\r\n\r\n vm.GenerateBill.Penalty = parseFloat(vm.GenerateBill.Penalty).toFixed(2);\r\n vm.GenerateBill.PenaltyForm = ConvertMoney(vm.GenerateBill.Penalty)\r\n\r\n vm.GenerateBill.NetAmount = parseFloat(vm.GenerateBill.NetAmount).toFixed(2);\r\n vm.GenerateBill.NetAmountForm = ConvertMoney(vm.GenerateBill.NetAmount)\r\n\r\n vm.GenerateBill.Retention = parseFloat(vm.GenerateBill.Retention).toFixed(2);\r\n vm.GenerateBill.RetentionForm = ConvertMoney(vm.GenerateBill.Retention)\r\n\r\n vm.GenerateBill.TaxableAmount = parseFloat(vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TaxableAmountForm = ConvertMoney(vm.GenerateBill.TaxableAmount)\r\n\r\n vm.GenerateBill.CGSTAmount = parseFloat(vm.GenerateBill.CGSTAmount).toFixed(2);\r\n vm.GenerateBill.CGSTAmountForm = ConvertMoney(vm.GenerateBill.CGSTAmount)\r\n\r\n vm.GenerateBill.SGSTAmount = parseFloat(vm.GenerateBill.SGSTAmount).toFixed(2);\r\n vm.GenerateBill.SGSTAmountForm = ConvertMoney(vm.GenerateBill.SGSTAmount)\r\n\r\n vm.GenerateBill.IGSTAmount = parseFloat(vm.GenerateBill.IGSTAmount).toFixed(2);\r\n vm.GenerateBill.IGSTAmountForm = ConvertMoney(vm.GenerateBill.IGSTAmount)\r\n\r\n vm.GenerateBill.TaxAmount = parseFloat(vm.GenerateBill.TaxAmount).toFixed(2);\r\n vm.GenerateBill.TaxAmountForm = ConvertMoney(vm.GenerateBill.TaxAmount)\r\n\r\n vm.GenerateBill.TotalBillAmount = parseFloat(vm.GenerateBill.TotalBillAmount).toFixed(2);\r\n vm.GenerateBill.TotalBillAmountForm = ConvertMoney(vm.GenerateBill.TotalBillAmount)\r\n\r\n vm.GenerateBill.TDSValue = parseFloat(vm.GenerateBill.TDSValue).toFixed(2);\r\n vm.GenerateBill.TDSValueFrom = ConvertMoney(vm.GenerateBill.TDSValue)\r\n\r\n vm.GenerateBill.MobilizationAdv = parseFloat(vm.GenerateBill.MobilizationAdv).toFixed(2);\r\n vm.GenerateBill.MobilizationAdvForm = ConvertMoney(vm.GenerateBill.MobilizationAdv)\r\n\r\n vm.GenerateBill.InteriamAdvance = parseFloat(vm.GenerateBill.InteriamAdvance).toFixed(2);\r\n vm.GenerateBill.InteriamAdvanceForm = ConvertMoney(vm.GenerateBill.InteriamAdvance)\r\n\r\n vm.GenerateBill.OtherDeduction = parseFloat(vm.GenerateBill.OtherDeduction).toFixed(2);\r\n vm.GenerateBill.OtherDeductionForm = ConvertMoney(vm.GenerateBill.OtherDeduction)\r\n\r\n vm.GenerateBill.TotalDeduction = parseFloat(vm.GenerateBill.TotalDeduction).toFixed(2);\r\n vm.GenerateBill.TotalDeductionForm = ConvertMoney(vm.GenerateBill.TotalDeduction)\r\n\r\n vm.GenerateBill.FinalBillAmt = parseFloat(vm.GenerateBill.FinalBillAmt).toFixed(2);\r\n vm.GenerateBill.FinalBillAmtForm = ConvertMoney(vm.GenerateBill.FinalBillAmt)\r\n\r\n vm.GenerateBill.CGST = ((vm.GenerateBill.CGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.SGST = ((vm.GenerateBill.SGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.IGST = ((vm.GenerateBill.IGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.Tax = ((vm.GenerateBill.TaxAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.PayAmount = vm.GenerateBill.FinalBillAmt\r\n vm.GenerateBill.BalanceAmount = 0.00\r\n\r\n vm.GenerateBill.RetentionPer = (vm.GenerateBill.Retention / vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.RetentionPer = parseFloat((vm.GenerateBill.RetentionPer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.TDSValuePer = (vm.GenerateBill.TDSValue / vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TDSValuePer = parseFloat((vm.GenerateBill.TDSValuePer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.MobilizationPer = (vm.GenerateBill.MobilizationAdv / vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.MobilizationPer = parseFloat((vm.GenerateBill.MobilizationPer) * 100).toFixed(2);\r\n\r\n\r\n vm.isLoading = false;\r\n\r\n if (vm.wo.BillId == 2) {\r\n vm.wo.endDate = new Date(vm.GenerateBill.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n } else if (vm.wo.BillId == 1) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n } else if (vm.wo.BillId == 5) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n }\r\n\r\n // console.log(vm.GenerateBill);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n\r\n function ConvertMoney(value) {\r\n var MoneyConv = parseFloat(value).toFixed(2)\r\n\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n value = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree + afterPoint;\r\n\r\n return value\r\n }\r\n\r\n\r\n vm.checkAdvance = function() {\r\n debugger;\r\n if (parseFloat(vm.GenerateBill.PayAmount) <= parseFloat(vm.GenerateBill.FinalBillAmt)) {\r\n vm.GenerateBill.BalanceAmount = (parseFloat(vm.GenerateBill.FinalBillAmt) - parseFloat(vm.GenerateBill.PayAmount)).toFixed(2)\r\n } else {\r\n vm.GenerateBill.PayAmount = vm.GenerateBill.FinalBillAmt\r\n vm.GenerateBill.BalanceAmount = 0.00\r\n dialogs.notify('warning', \"Advance Amount should be in \" + parseFloat(vm.GenerateBill.PayAmount), { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n\r\n vm.submitBill = function() {\r\n vm.isLoading = true;\r\n vm.isSave = true;\r\n var obj = {\r\n BillID: vm.wo.BillIdentityNumber,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n ContractorId: vm.wo.ContractorId,\r\n ContractorPaidAmt: vm.GenerateBill.PayAmount,\r\n TypeOfPayment: vm.wo.selectedPaymentmode.TranscationTypeId,\r\n Note: vm.wo.Notes,\r\n Status: 1\r\n }\r\n\r\n if (vm.wo.selectedPaymentmode.TransactionTypeName == 'Cheque') {\r\n var Arr = {\r\n BankName: vm.wo.BankName,\r\n BranchName: vm.wo.BranchName,\r\n AccountNo: vm.wo.AccountNo,\r\n ChequeNo: vm.wo.ChequeNo\r\n }\r\n obj.PaymentDetail = JSON.stringify(Arr);\r\n } else if (vm.wo.selectedPaymentmode.TransactionTypeName == 'NEFT' || vm.wo.selectedPaymentmode.TransactionTypeName == 'RTGS') {\r\n var Arr = {\r\n BankName: vm.wo.BankName,\r\n BranchName: vm.wo.BranchName,\r\n AccountNo: vm.wo.AccountNo\r\n }\r\n obj.PaymentDetail = JSON.stringify(Arr);\r\n } else {\r\n obj.PaymentDetail = null\r\n }\r\n\r\n BillingService.SaveContractorBillPayment(obj).then(function(res) {\r\n if (res.data.resultMsg[0].MessageCode === 1) {\r\n $rootScope.showToaster('success', res.data.resultMsg[0].Message, \"Contractor Payment\");\r\n vm.isLoading = false;\r\n vm.isSave = false;\r\n // vm.Back();\r\n // Init();\r\n // vm.isViewApprovalWO = false;\r\n vm.isViewVocher = true;\r\n vm.Vocher = res.data.ContVoucher[0]\r\n vm.wo.ContVoucherNo = angular.copy(vm.Vocher.ContVoucherNo);\r\n vm.wo.Id = angular.copy(vm.Vocher.Id);\r\n vm.wo.VoucherNo = angular.copy(vm.Vocher.Id);\r\n vm.wo.ContractName = angular.copy(vm.Vocher.ContractorName);\r\n vm.wo.WorkOrderNo = angular.copy(vm.Vocher.WorkOrderNo);\r\n vm.wo.TransactionTypeName = angular.copy(vm.Vocher.TransactionTypeName);\r\n vm.wo.TypeofPayment = angular.copy(vm.Vocher.TypeofPayment);\r\n vm.wo.PaymentDetail = angular.copy(vm.Vocher.PaymentDetail);\r\n vm.wo.ContPaidAmt = angular.copy(vm.Vocher.ContPaidAmt);\r\n vm.wo.Note = angular.copy(vm.Vocher.Notes)\r\n if (vm.wo.TransactionTypeName == 'Cheque') {\r\n vm.AccDetail = JSON.parse(vm.wo.PaymentDetail)\r\n vm.wo.BankName = vm.AccDetail.BankName\r\n vm.wo.BranchName = vm.AccDetail.BranchName\r\n vm.wo.AccountNo = vm.AccDetail.AccountNo\r\n vm.wo.ChequeNo = vm.AccDetail.ChequeNo\r\n } else if (vm.wo.TransactionTypeName == 'NEFT' || vm.wo.TransactionTypeName == 'RTGS') {\r\n vm.AccDetail = JSON.parse(vm.wo.PaymentDetail)\r\n vm.wo.BankName = vm.AccDetail.BankName\r\n vm.wo.BranchName = vm.AccDetail.BranchName\r\n vm.wo.AccountNo = vm.AccDetail.AccountNo\r\n }\r\n\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('warning', \"Already Exist\", \"Contractor Payment\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.SaveVocher = function(wo) {\r\n var obj = {\r\n Narration: wo.Narration,\r\n RecieveDate: $filter('date')(wo.RecieveDate, 'yyyy/MM/dd')\r\n }\r\n\r\n if (wo.TransactionTypeName == 'Cheque' || wo.TransactionTypeName == 'Cash') {\r\n obj.RecieverName = vm.wo.RecieverName\r\n } else if (wo.TransactionTypeName == 'NEFT' || wo.TransactionTypeName == 'RTGS') {\r\n obj.TransactionId = vm.wo.TransactionId\r\n }\r\n\r\n var tempObj = {\r\n ReceivedDetail: JSON.stringify(obj),\r\n WorkOrderId: wo.WorkOrderId,\r\n ContractorPaymentId: wo.Id\r\n }\r\n\r\n BillingService.SaveContVocher(tempObj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Contractor Payment\");\r\n vm.isPrintVocher = true;\r\n // vm.Back();\r\n // Init();\r\n // vm.isViewApprovalWO = false;\r\n // vm.isViewVocher = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Contractor Payment\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n vm.PrintVocher = function(wo) {\r\n var obj = {\r\n VoucherId: vm.wo.Id,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n CompanyName: vm.wo.CompanyName,\r\n ProjectName: vm.wo.ProjectName,\r\n Heading: \"Heading\",\r\n UserName: loggedUser.FirstName,\r\n }\r\n\r\n BillingService.PrintPaymentVocher(obj).then(function(res) {\r\n if (res.status === 200) {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n vm.isPrintVocher = false;\r\n // vm.Back();\r\n Init();\r\n vm.isTile = true;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Bill Approval\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n vm.Back = function() {\r\n vm.isTile = false;\r\n vm.isViewVocher = false;\r\n vm.isFormOpen = false;\r\n vm.isViewBill = false;\r\n // Init();\r\n }\r\n\r\n vm.cancel = function() {\r\n vm.wo = {};\r\n vm.isViewVocher = false;\r\n vm.isTile = true;\r\n Init();\r\n }\r\n\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('DraftBillCtrl', DraftBillCtrl);\r\n\r\n /** @ngInject */\r\n function DraftBillCtrl($rootScope, lodash, $filter, BillingService, dialogs, $http, $window, $state, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }];\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.isSave = false;\r\n vm.viewBill = viewBill;\r\n $rootScope.isLogin = false;\r\n vm.wo = {};\r\n vm.GetReport = GetReport;\r\n\r\n vm.data = $state.params.data\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init();\r\n\r\n function Init() {\r\n if (vm.data.DraftList.length > 0) {\r\n vm.data.DraftList = lodash.groupBy(vm.data.DraftList, 'CompanyName');\r\n\r\n for (var key in vm.data.DraftList) {\r\n vm.data.DraftList[key] = lodash.groupBy(vm.data.DraftList[key], 'ProjectName');\r\n }\r\n\r\n vm.LoadDraftList = vm.data.DraftList;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.notify('warning', \"There is no Draft Bill\", { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n vm.BillTypeList = [{\r\n BillTypeName: \"Detailed\"\r\n }, {\r\n BillTypeName: \"Consolidate\"\r\n }]\r\n\r\n\r\n vm.PenaltyTypeList = [{\r\n PenaltyId: 1,\r\n PenaltyType: \"Delay in Construction\"\r\n },\r\n {\r\n PenaltyId: 2,\r\n PenaltyType: \"Poor Workmanship\"\r\n },\r\n {\r\n PenaltyId: 3,\r\n PenaltyType: \"Wastage of Material\"\r\n }]\r\n\r\n // vm.draftBillList = [{ \"CompanyName\": 'Sarojini Green Park', \"billNo\": '06', \"woNo\": 'WFP/SRP/WO/2018-09/001', \"TypeofBill\": 'Monthly Billing' }]\r\n\r\n // vm.WONo = 'WFP/SRP/WO/2018-09/001';\r\n // vm.typeOfContract = 'Item Rate Contract';\r\n // vm.billPeriod = '1 to 31 March 2018';\r\n // vm.valueOfWO = 'Rs.50,00,000';\r\n // vm.typeOfBill = 'Monthly Billing';\r\n // vm.billNo = '08';\r\n // vm.billDate = '28/02/2018';\r\n // vm.typeOfWorkOrder = 'Labour & Material';\r\n }\r\n\r\n\r\n vm.BaseOnList = [{\r\n BillBased: \"Construction Activity\",\r\n BillBasedId: 1\r\n },\r\n {\r\n BillBased: \"Location of Work\",\r\n BillBasedId: 2\r\n }]\r\n\r\n\r\n function viewBill(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.wo = angular.copy(row)\r\n vm.wo.WorkOrderId = vm.wo.WorkOrderId\r\n\r\n vm.wo.TotalWorkOrderAmount = ConvertMoney(vm.wo.TotalWorkOrderAmount)\r\n ////////////////////\r\n vm.wo.RfqScope = vm.wo.RfqScope\r\n vm.wo.CGST = parseFloat(vm.wo.CGST).toFixed(2)\r\n vm.wo.SGST = parseFloat(vm.wo.SGST).toFixed(2)\r\n vm.wo.IGST = parseFloat(vm.wo.IGST).toFixed(2)\r\n vm.wo.Tax = parseFloat(vm.wo.Tax).toFixed(2)\r\n vm.wo.TDS = parseFloat(vm.wo.TDS).toFixed(2)\r\n vm.wo.Retention = parseFloat(vm.wo.Retention).toFixed(2)\r\n vm.wo.Mobilization = parseFloat(vm.wo.Mobilization).toFixed(2)\r\n GetGenerateBill(vm.wo.BillIdentityNumber)\r\n\r\n }\r\n\r\n function getBillByWorkOrder(WorkOrderId) {\r\n if (WorkOrderId) {\r\n BillingService.GetAllBill(WorkOrderId, 3, 1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BillList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n else {\r\n ClearByCategoryWO();\r\n }\r\n }\r\n\r\n\r\n // vm.BillList = [{ \"BillNumber\": \"WFPH / SGP / 2017-19 / 001\" },\r\n // { \"BillNumber\": \"WFPH / SGP / 2017-19 / 002\" }]\r\n\r\n function GetReport(row) {\r\n\r\n if (row.BillMode == 2) {\r\n vm.wo.endDate = new Date(row.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n }\r\n else if (row.BillMode == 1) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n }\r\n else if (row.BillMode == 5) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n\r\n }\r\n\r\n // var Heading = \"
\" + vm.wo.BillType + \" bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + vm.wo.ContractorName + \" Contractor \" + \" Vide Work Order No \" + vm.wo.WorkOrderNo + \" - \" + \"
\" +\r\n // \" Bill No - \" + vm.wo.BillNumber + \" and bill period \"\r\n // //+ \" and bill period - \" \r\n // + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" and to \" +\r\n // $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"<\\center>\"\r\n\r\n // console.log(Heading)\r\n\r\n if (vm.wo.selectedBillType) {\r\n var obj = {\r\n GroupCompanyName: vm.wo.CompanyName,\r\n Heading: \"\",\r\n ProjectName: vm.wo.ProjectName,\r\n ReportFor: vm.wo.selectedBillType.BillTypeName,\r\n BillBasedOn: vm.wo.selectedBasedOn.BillBasedId,\r\n ProjectId: vm.wo.ProjectId,\r\n BillId: row.BillId,\r\n p_BOQStatus: 1,\r\n UserName: loggedUser.FirstName,\r\n UserId: loggedUser.UserId\r\n }\r\n BillingService.ShowDraftBillReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n else {\r\n dialogs.notify('warning', \"Select Bill Type!\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n\r\n function ConvertMoney(value) {\r\n var MoneyConv = parseFloat(value).toFixed(2)\r\n\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n vm.wo.TotalWorkOrderAmount = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree + afterPoint;\r\n\r\n return vm.wo.TotalWorkOrderAmount;\r\n }\r\n\r\n\r\n function GetGenerateBill(BillIdentityNumber) {\r\n var obj = {\r\n BillIdentityId: BillIdentityNumber,\r\n StatusId: 1\r\n }\r\n BillingService.GetGenerateBill(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.GenerateBill = res.data;\r\n vm.GenerateBill.GrossValue = parseFloat(vm.GenerateBill.GrossValue).toFixed(2);\r\n vm.GenerateBill.GrossValueForm = ConvertMoney(vm.GenerateBill.GrossValue)\r\n\r\n vm.GenerateBill.Penalty = parseFloat(vm.GenerateBill.Penalty).toFixed(2);\r\n // vm.GenerateBill.M_Penalty = ConvertMoney(vm.GenerateBill.Penalty);\r\n vm.GenerateBill.NetAmount = parseFloat(vm.GenerateBill.NetAmount).toFixed(2);\r\n vm.GenerateBill.Retention = parseFloat(vm.GenerateBill.Retention).toFixed(2);\r\n vm.GenerateBill.TaxableAmount = parseFloat(vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.CGSTAmount = parseFloat(vm.GenerateBill.CGSTAmount).toFixed(2);\r\n vm.GenerateBill.SGSTAmount = parseFloat(vm.GenerateBill.SGSTAmount).toFixed(2);\r\n vm.GenerateBill.IGSTAmount = parseFloat(vm.GenerateBill.IGSTAmount).toFixed(2);\r\n vm.GenerateBill.TaxAmount = parseFloat(vm.GenerateBill.TaxAmount).toFixed(2);\r\n vm.GenerateBill.TotalBillAmount = parseFloat(vm.GenerateBill.TotalBillAmount).toFixed(2);\r\n vm.GenerateBill.TDSValue = parseFloat(vm.GenerateBill.TDSValue).toFixed(2);\r\n vm.GenerateBill.MobilizationAdv = parseFloat(vm.GenerateBill.MobilizationAdv).toFixed(2);\r\n vm.GenerateBill.InteriamAdvance = parseFloat(vm.GenerateBill.InteriamAdvance).toFixed(2);\r\n vm.GenerateBill.OtherDeduction = parseFloat(vm.GenerateBill.OtherDeduction).toFixed(2);\r\n vm.GenerateBill.TotalDeduction = parseFloat(vm.GenerateBill.TotalDeduction).toFixed(2);\r\n vm.GenerateBill.FinalBillAmt = parseFloat(vm.GenerateBill.FinalBillAmt).toFixed(2)\r\n vm.GenerateBill.CGST = ((vm.GenerateBill.CGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.SGST = ((vm.GenerateBill.SGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.IGST = ((vm.GenerateBill.IGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.Tax = ((vm.GenerateBill.TaxAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.RetentionPer = (vm.GenerateBill.Retention / vm.GenerateBill.GrossValue).toFixed(2);\r\n vm.GenerateBill.RetentionPer = parseFloat((vm.GenerateBill.RetentionPer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.TDSValuePer = (vm.GenerateBill.TDSValue / vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TDSValuePer = parseFloat((vm.GenerateBill.TDSValuePer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.MobilizationPer = (vm.GenerateBill.MobilizationAdv / vm.GenerateBill.NetAmount).toFixed(2);\r\n vm.GenerateBill.MobilizationPer = parseFloat((vm.GenerateBill.MobilizationPer) * 100).toFixed(2);\r\n\r\n vm.isLoading = false;\r\n if (vm.wo.BillId == 2) {\r\n vm.wo.endDate = new Date(vm.GenerateBill.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n }\r\n else if (vm.wo.BillId == 1) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n }\r\n else if (vm.wo.BillId == 5) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n }\r\n\r\n getBillByWorkOrder(vm.wo.WorkOrderId)\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n function getBillHistory(WorkOrderId) {\r\n BillingService.getBillHistory(WorkOrderId).then(function (res) {\r\n if (res.status === 200) {\r\n debugger\r\n vm.BillHistory = res.data;\r\n for (var i in vm.BillHistory) {\r\n vm.BillHistory[i].PaidAmt = parseFloat(vm.BillHistory[i].PaidAmt).toFixed(2);\r\n vm.BillHistory[i].GrossValue = parseFloat(vm.BillHistory[i].GrossValue).toFixed(2);\r\n vm.BillHistory[i].Penalty = parseFloat(vm.BillHistory[i].Penalty).toFixed(2);\r\n vm.BillHistory[i].Retention = parseFloat(vm.BillHistory[i].Retention).toFixed(2);\r\n vm.BillHistory[i].CGSTAmount = parseFloat(vm.BillHistory[i].CGSTAmount).toFixed(2);\r\n vm.BillHistory[i].SGSTAmount = parseFloat(vm.BillHistory[i].SGSTAmount).toFixed(2);\r\n vm.BillHistory[i].IGSTAmount = parseFloat(vm.BillHistory[i].IGSTAmount).toFixed(2);\r\n vm.BillHistory[i].TDSValue = parseFloat(vm.BillHistory[i].TDSValue).toFixed(2);\r\n vm.BillHistory[i].MobilizationAdv = parseFloat(vm.BillHistory[i].MobilizationAdv).toFixed(2);\r\n vm.BillHistory[i].InteriamAdvance = parseFloat(vm.BillHistory[i].InteriamAdvance).toFixed(2);\r\n vm.BillHistory[i].OtherDeduction = parseFloat(vm.BillHistory[i].OtherDeduction).toFixed(2);\r\n vm.BillHistory[i].TotalDeduction = parseFloat(vm.BillHistory[i].TotalDeduction).toFixed(2);\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n vm.viewPenaltyAmt = function () {\r\n vm.BillHistory = [];\r\n BillingService.GetPenaltyBillHistory(vm.wo.WorkOrderId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PenaltyBill = res.data;\r\n for (var i in vm.PenaltyTypeList) {\r\n if (vm.PenaltyTypeList[i].PenaltyId === vm.PenaltyBill[0].TypeOFPenalty) {\r\n vm.PenaltyBill[0].PenaltyType = vm.PenaltyTypeList[i].PenaltyType\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n vm.submitBill = function () {\r\n var obj = {\r\n BillID: vm.wo.BillIdentityNumber,\r\n WorkOrderId: vm.wo.WorkOrderId\r\n }\r\n vm.isLoading = true;\r\n vm.isSave = true;\r\n\r\n BillingService.SaveDraftBill(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Draft Bill\");\r\n vm.wo = {};\r\n vm.isLoading = false;\r\n vm.isSave = false;\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Draft Bill\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.viewRetentionAmt = function () {\r\n vm.PenaltyBill = [];\r\n vm.isRetention = true;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewTDSAmt = function () {\r\n vm.PenaltyBill = [];\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = true;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewMobAmt = function () {\r\n vm.PenaltyBill = [];\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = true;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n vm.viewInterimAmt = function () {\r\n vm.PenaltyBill = [];\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = true;\r\n vm.isOtherDeduction = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewOtherDedAmt = function () {\r\n vm.PenaltyBill = [];\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = true;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewTotDedAmt = function () {\r\n vm.PenaltyBill = [];\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isTotalDeduction = true;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.Back = function () {\r\n vm.cancel();\r\n }\r\n\r\n vm.cancel = function () {\r\n vm.wo = {};\r\n vm.isFormOpen = false;\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('ViewDraftBillCtrl', ViewDraftBillCtrl);\r\n\r\n function ViewDraftBillCtrl($rootScope, $filter, $scope, $window, $uibModal, BillingService, dialogs, lodash, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n vm.clearWOSelect = clearWOSelect;\r\n vm.clearReportBasedSelect = clearReportBasedSelect;\r\n vm.clearDescTypeSelect = clearDescTypeSelect;\r\n vm.ClearBasicType = ClearBasicType;\r\n vm.clearReportBasedSelect = clearReportBasedSelect;\r\n vm.clearDescTypeSelect = clearDescTypeSelect\r\n\r\n vm.getBillByWorkOrder = getBillByWorkOrder;\r\n vm.wo = {};\r\n vm.work = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: '2'\r\n }\r\n , {\r\n ApproveForName: 'Balance',\r\n ApproveForId: '3'\r\n }];\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) { \r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n clearCompanySelect();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n \r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n clearProjectSelect();\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n\r\n }\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n \r\n BillingService.GetContractorByCategory(ProjectId, CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n clearCASelect();\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n else {\r\n\r\n }\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n\r\n BillingService.GetWorkOrder(ProjectId, ContractorId).then(function (res) {\r\n if (res.status === 200) {\r\n clearContNameSelect();\r\n vm.WorkOrderList = res.data;\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n function getBillByWorkOrder(WorkOrderId) {\r\n if (WorkOrderId) {\r\n BillingService.GetAllBill(WorkOrderId, 1).then(function (res) {\r\n if (res.status === 200) { \r\n vm.BillList = res.data;\r\n for (var i in vm.BillList) {\r\n vm.BillList[i].BillAmount = parseFloat(vm.BillList[i].BillAmount).toFixed(2)\r\n }\r\n if (vm.BillList.length < 1) {\r\n dialogs.notify('warning', \"No Draft Bill Found\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n /////////////////////\r\n vm.BillTypeList = [{\r\n BillTypeName: \"Detailed\",\r\n BillTypeNameId:1\r\n }, {\r\n BillTypeName: \"Consolidate\",\r\n BillTypeNameId:2\r\n }]\r\n\r\n vm.BaseOnList = [{\r\n BillBased: \"Construction Activity\",\r\n BillBasedId: 1\r\n },\r\n {\r\n BillBased: \"Location of Work\",\r\n BillBasedId: 2\r\n }]\r\n\r\n //////// Share Report ///////////\r\n\r\n vm.shareReport = function(row){\r\n debugger;\r\n vm.isLoading = true; \r\n if (row.BillMode == 2) {\r\n vm.wo.endDate = new Date(row.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n vm.wo.BillType = \"Monthly\"\r\n }\r\n else if (row.BillMode == 1) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Weekly\"\r\n }\r\n else if (row.BillMode == 5) {\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Daily\"\r\n }\r\n\r\n if (vm.wo.BillType == 'Daily') {\r\n \r\n var Heading1 = \"
\" + \" bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \"\" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
\" +\r\n \" Bill No - \" + row.BillNumber + \" date \"\r\n //+ \" and bill period - \" \r\n + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \"<\\center>\"\r\n\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done On \" + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" For bill no \" + row.BillNumber + \"
for Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" of \" + vm.work.selectedContractor.ContractorName + \" Contractor \"\r\n \"<\\center>\"\r\n\r\n }\r\n else {\r\n \r\n var Heading1 = \"
\" + \" bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \"\" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
\" +\r\n \" Bill No - \" + row.BillNumber + \" and bill period \"\r\n //+ \" and bill period - \" \r\n + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" and to \" +\r\n $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"<\\center>\"\r\n\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done From \" + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" and to \" + $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"
For bill no \" + row.BillNumber + \" for Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" of \" + vm.work.selectedContractor.ContractorName + \" Contractor \"\r\n \"<\\center>\"\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n if (vm.wo.selectedBillType) {\r\n var obj = {\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n Heading1: Heading1,\r\n Heading2: Heading2,\r\n ProjectName: vm.work.selectedProject.ProjectName,\r\n ReportFor: vm.wo.selectedBillType.BillTypeName,\r\n BillBasedOn: vm.wo.selectedBasedOn.BillBasedId,\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n BillId: row.BillId,\r\n p_BOQStatus: 1,\r\n UserName: loggedUser.FirstName,\r\n UserId: loggedUser.UserId\r\n }\r\n debugger;\r\n BillingService.ShowDraftBillReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data; \r\n vm.isLoading = false; \r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload:true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n \r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n \r\n }, function () { });\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n else {\r\n dialogs.notify('warning', \"Select Bill Type!\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n vm.viewReport = function (row) {\r\n\r\n vm.isLoading = true;\r\n\r\n if (row.BillMode == 2) {\r\n vm.wo.endDate = new Date(row.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n vm.wo.BillType = \"Monthly\"\r\n }\r\n else if (row.BillMode == 1) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Weekly\"\r\n }\r\n else if (row.BillMode == 5) {\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Daily\"\r\n }\r\n\r\n if (vm.wo.BillType == 'Daily') {\r\n \r\n var Heading1 = \"
\" + \" bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \"\" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
\" +\r\n \" Bill No - \" + row.BillNumber + \" date \"\r\n //+ \" and bill period - \" \r\n + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \"<\\center>\"\r\n\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done On \" + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" For bill no \" + row.BillNumber + \"
for Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" of \" + vm.work.selectedContractor.ContractorName + \" Contractor \"\r\n \"<\\center>\"\r\n\r\n }\r\n else {\r\n \r\n var Heading1 = \"
\" + \" bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \"\" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
\" +\r\n \" Bill No - \" + row.BillNumber + \" and bill period \"\r\n //+ \" and bill period - \" \r\n + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" and to \" +\r\n $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"<\\center>\"\r\n\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done From \" + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" and to \" + $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"
For bill no \" + row.BillNumber + \" for Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" of \" + vm.work.selectedContractor.ContractorName + \" Contractor \"\r\n \"<\\center>\"\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n if (vm.wo.selectedBillType) {\r\n var obj = {\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n Heading1: Heading1,\r\n Heading2: Heading2,\r\n ProjectName: vm.work.selectedProject.ProjectName,\r\n ReportFor: vm.wo.selectedBillType.BillTypeName,\r\n BillBasedOn: vm.wo.selectedBasedOn.BillBasedId,\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n BillId: row.BillId,\r\n p_BOQStatus: 1,\r\n UserName: loggedUser.FirstName,\r\n UserId: loggedUser.UserId\r\n }\r\n debugger;\r\n BillingService.ShowDraftBillReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n else {\r\n dialogs.notify('warning', \"Select Bill Type!\", { animation: true, size: 'sm' });\r\n }\r\n\r\n }\r\n\r\n // Clear Function\r\n\r\n function clearCompanySelect() { \r\n vm.work.selectedProject = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null; \r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null; \r\n }\r\n function clearProjectSelect() { \r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null; \r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null; \r\n }\r\n function clearCASelect() { \r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null; \r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null; \r\n }\r\n function clearContNameSelect() { \r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null; \r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null; \r\n }\r\n function clearWOSelect() { \r\n vm.wo.selectedBasedOn = null; \r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null; \r\n }\r\n\r\n function clearReportBasedSelect() { \r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null; \r\n }\r\n function clearDescTypeSelect() { \r\n vm.wo.selectedBillType = null; \r\n }\r\n function ClearBasicType(){\r\n vm.wo.Tier = null;\r\n }\r\n\r\n }\r\n}\r\n)();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('InterimAdvanceCtrl', InterimAdvanceCtrl);\r\n\r\n /** @ngInject */\r\n function InterimAdvanceCtrl($scope, $filter, $http, $rootScope, WorkApprovalService, BillingService, lodash, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.ApprovedWorkApprovalList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isViewApprovalWO = false;\r\n vm.wo = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init()\r\n\r\n function Init() {\r\n BillingService.GetApprovedWorkApprovalForInteriam(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n if (res.data.length > 0) {\r\n res.data = lodash.groupBy(res.data, 'CompanyName');\r\n\r\n for (var key in res.data) {\r\n res.data[key] = lodash.groupBy(res.data[key], 'ProjectName');\r\n }\r\n\r\n vm.ApprovedWorkApprovalList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.ApprovedWorkApprovalList = res.data;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n },\r\n {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }];\r\n\r\n vm.InstalmentList = [{ No: 1 }, { No: 2 }, { No: 3 }, { No: 4 }, { No: 5 }]\r\n }\r\n\r\n\r\n vm.viewWO = function (row) {\r\n vm.isViewApprovalWO = true;\r\n vm.wo = angular.copy(row);\r\n vm.wo.Title = angular.copy(row.Title);\r\n vm.wo.Subjects = angular.copy(row.Subjects);\r\n vm.wo.WorkOrderNo = angular.copy(row.WorkOrderNo);\r\n vm.wo.BillType = angular.copy(row.BillType);\r\n vm.wo.ContractorName = angular.copy(row.ContractorName);\r\n vm.wo.WorkOrderId = angular.copy(row.WorkOrderId);\r\n vm.wo.ProjectId = angular.copy(row.ProjectId);\r\n vm.wo.ContractorTypeName = angular.copy(row.ContractorTypeName);\r\n var TotalWorkOrderAmount = angular.copy(row.TotalWorkOrderAmount);\r\n vm.wo.TotalWorkOrderAmount = parseFloat(TotalWorkOrderAmount).toFixed(2);\r\n vm.wo.MaxInteriam = (vm.wo.TotalWorkOrderAmount * 0.10).toFixed(2);\r\n vm.wo.MinInteriam = 100\r\n // vm.wo.PaidAmt = angular.copy(row.PaidAmt)\r\n // vm.wo.BalanceAmount = parseFloat(vm.wo.TotalWorkOrderAmount - vm.wo.PaidAmt).toFixed(2)\r\n vm.wo.instalAmt = 0.00\r\n\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == row.RfqScope) {\r\n vm.wo.TypeofWO = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id == row.TypeOfContract) {\r\n vm.wo.TypeOfContract = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n\r\n if (row.RfqScope == 'L') {\r\n vm.ScopeList = [{ 'Id': 2, 'Scope': 'Labour' },\r\n {\r\n 'Id': 1,\r\n 'Scope': 'Festival'\r\n }]\r\n }\r\n else if (row.RfqScope == 'C1') {\r\n vm.ScopeList = [{ 'Id': 2, 'Scope': 'Labour' },\r\n { 'Id': 3, 'Scope': 'Material' },\r\n { 'Id': 1, 'Scope': 'Festival' }]\r\n }\r\n else if (row.RfqScope == 'C2') {\r\n vm.ScopeList = [{ 'Id': 2, 'Scope': 'Labour' },\r\n { 'Id': 4, 'Scope': 'Machinery' },\r\n { 'Id': 1, 'Scope': 'Festival' }]\r\n }\r\n\r\n else if (row.RfqScope == 'C3') {\r\n vm.ScopeList = [{ 'Id': 2, 'Scope': 'Labour' },\r\n { 'Id': 3, 'Scope': 'Material' },\r\n { 'Id': 4, 'Scope': 'Machinery' },\r\n { 'Id': 1, 'Scope': 'Festival' }]\r\n }\r\n else if (row.RfqScope == 'C4') {\r\n vm.ScopeList = [{ 'Id': 2, 'Scope': 'Labour' },\r\n { 'Id': 3, 'Scope': 'Material' },\r\n { 'Id': 4, 'Scope': 'Machinery' },\r\n { 'Id': 5, 'Scope': 'Consumable' },\r\n { 'Id': 1, 'Scope': 'Festival' }]\r\n }\r\n else {\r\n vm.ScopeList = [{ 'Scope': 'Prime Contractor' },\r\n { 'Scope': 'Festival' }]\r\n }\r\n\r\n debugger;\r\n if (row.BillId == 2) {\r\n var date = new Date();\r\n var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n vm.wo.startDate = firstDay\r\n vm.wo.endDate = lastDay\r\n }\r\n else if (vm.wo.BillId == 1) {\r\n var t = new Date().getDate() + (6 - new Date().getDay() - 1) - 7;\r\n var lf = new Date();\r\n lf.setDate(t);\r\n vm.wo.startDate = lf;\r\n\r\n\r\n var now = vm.wo.startDate.getDate() + 7;\r\n var d = new Date()\r\n d.setDate(now);\r\n vm.wo.endDate = d;\r\n\r\n }\r\n\r\n }\r\n\r\n vm.checkAdvance = function (wo) {\r\n if (parseFloat(wo.interimAdvance) <= parseFloat(vm.wo.MaxInteriam) && parseFloat(wo.interimAdvance) >= parseFloat(vm.wo.MinInteriam)) {\r\n var interimAdvance = wo.interimAdvance\r\n vm.wo.interimAdvance = parseFloat(interimAdvance).toFixed(2)\r\n vm.wo.AdvanceBalance = vm.wo.MaxInteriam - vm.wo.interimAdvance\r\n }\r\n else {\r\n dialogs.notify('warning', \"Advance Amount should be in From \" + parseFloat(vm.wo.MinInteriam) + \" to \" + parseFloat(vm.wo.MaxInteriam), { animation: true, size: 'sm' });\r\n vm.wo.interimAdvance = null;\r\n vm.wo.NoOfInstallment = null;\r\n vm.wo.Notes = null;\r\n vm.wo.AdvanceBalance = null;\r\n vm.wo.selectedInstalment = null;\r\n vm.wo.instalAmt = 0.00\r\n }\r\n }\r\n\r\n vm.getInstalAmt = function () {\r\n if (vm.wo.selectedInstalment)\r\n vm.wo.instalAmt = (vm.wo.interimAdvance / vm.wo.selectedInstalment.No).toFixed(2)\r\n else\r\n vm.wo.instalAmt = 0\r\n }\r\n\r\n\r\n vm.SaveInterimAdv = function (wo) {\r\n var obj = {\r\n WorkOrderId: wo.WorkOrderId,\r\n AdvanceAmount: wo.interimAdvance,\r\n AdvanceBalance: parseFloat(vm.wo.AdvanceBalance).toFixed(2),\r\n NoOfInstallment: wo.selectedInstalment.No,\r\n Note: wo.Notes,\r\n Status: 4,\r\n ScopeType: vm.wo.selectedScope.Id,\r\n AdvanceType: 2\r\n }\r\n\r\n BillingService.SaveInterimAmount(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Interim Advance\");\r\n vm.Back();\r\n Init();\r\n vm.isViewApprovalWO = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Interim Advance\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.Back = function () {\r\n Init();\r\n vm.isViewApprovalWO = false;\r\n vm.wo = {};\r\n }\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('InterimPaymentCtrl', InterimPaymentCtrl);\r\n\r\n /** @ngInject */\r\n function InterimPaymentCtrl($scope, $window, $filter, DirectWorkOrderService, $http, $uibModal, $rootScope, WorkApprovalService, BillingService, lodash, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isViewApprovalWO = false;\r\n vm.isViewVocher = false;\r\n vm.isPrintVocher = false;\r\n // vm.Total = Total;\r\n vm.GetRfqDetails = GetRfqDetails;\r\n vm.ContractorRfqIocaList = [];\r\n vm.wo = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init()\r\n\r\n function Init() {\r\n BillingService.GetPaymentForInterim(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n if (res.data.length > 0) {\r\n res.data = lodash.groupBy(res.data, 'CompanyName');\r\n\r\n for (var key in res.data) {\r\n res.data[key] = lodash.groupBy(res.data[key], 'ProjectName');\r\n }\r\n\r\n vm.ApprovedWorkApprovalList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n vm.ApprovedWorkApprovalList = res.data;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n },\r\n {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }\r\n ]\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n // vm.PaymentmodeList = [{ Payment: 'Cheque' }, { Payment: 'Demand Draft' }, { Payment: 'NEFT' }, { Payment: 'RTGS' }]\r\n BillingService.GetTransactionList().then(function(res) {\r\n if (res.status === 200) {\r\n vm.PaymentmodeList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n }\r\n\r\n vm.viewWO = function(row) {\r\n vm.isViewApprovalWO = true;\r\n BillingService.GetAdvanceAmount(row.WorkOrderId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AdvanceAmountDetail = res.data.AdvanceAmount\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n vm.wo = angular.copy(row);\r\n vm.wo.AdvAmtId = angular.copy(row.AdvAmtId);\r\n vm.wo.Title = angular.copy(row.Title);\r\n vm.wo.Subjects = angular.copy(row.Subjects);\r\n vm.wo.WorkOrderNo = angular.copy(row.WorkOrderNo);\r\n vm.wo.BillType = angular.copy(row.BillType);\r\n vm.wo.ContractorName = angular.copy(row.ContractorName);\r\n vm.wo.WorkOrderId = angular.copy(row.WorkOrderId);\r\n vm.wo.ProjectId = angular.copy(row.ProjectId);\r\n vm.wo.ContractorTypeName = angular.copy(row.ContractorTypeName);\r\n vm.wo.ScopeType = angular.copy(row.ScopeType);\r\n vm.wo.AdvAmt = angular.copy(row.AdvAmt);\r\n var TotalWorkOrderAmount = angular.copy(row.TotalWorkOrderAmount);\r\n vm.wo.TotalWorkOrderAmount = parseFloat(TotalWorkOrderAmount).toFixed(2);\r\n vm.wo.PaidAmt = angular.copy(row.PaidAmt)\r\n vm.wo.BalanceAmount = parseFloat(vm.wo.TotalWorkOrderAmount - vm.wo.PaidAmt).toFixed(2)\r\n vm.wo.instalAmt = 0.00;\r\n vm.wo.interimAdvance = vm.wo.AdvAmt;\r\n vm.wo.interimBal = parseFloat(vm.wo.AdvAmt - vm.wo.interimAdvance).toFixed(2);\r\n vm.wo.NoofInst = angular.copy(row.NoofInst);\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == row.RfqScope) {\r\n vm.wo.TypeofWO = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id == row.TypeOfContract) {\r\n vm.wo.TypeOfContract = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n\r\n debugger;\r\n if (row.BillId == 2) {\r\n var date = new Date();\r\n var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n vm.wo.startDate = firstDay\r\n vm.wo.endDate = lastDay\r\n }\r\n }\r\n\r\n vm.checkAdvance = function(wo) {\r\n if (parseFloat(wo.interimAdvance) <= parseFloat(vm.wo.AdvAmt) && parseFloat(wo.interimAdvance) > 0) {\r\n var interimAdvance = wo.interimAdvance\r\n vm.wo.interimAdvance = parseFloat(interimAdvance).toFixed(2)\r\n vm.wo.interimBal = parseFloat(vm.wo.AdvAmt - vm.wo.interimAdvance).toFixed(2);\r\n } else {\r\n dialogs.notify('warning', \"Advance Amount should be in \" + parseFloat(vm.wo.AdvAmt), { animation: true, size: 'sm' });\r\n vm.wo.interimAdvance = null;\r\n vm.wo.Notes = null;\r\n vm.wo.interimBal = null;\r\n\r\n }\r\n }\r\n\r\n vm.getInstalAmt = function() {\r\n if (vm.wo.selectedInstalment)\r\n vm.wo.instalAmt = (vm.wo.interimAdvance / vm.wo.selectedInstalment.No).toFixed(2)\r\n else\r\n vm.wo.instalAmt = 0\r\n }\r\n\r\n\r\n vm.SaveInterimAdv = function(wo) {\r\n var obj = {\r\n AdvAmtId: vm.wo.AdvAmtId,\r\n WorkOrderId: wo.WorkOrderId,\r\n AdvanceAmount: wo.interimAdvance,\r\n AdvanceBalance: vm.wo.interimBal,\r\n NoOfInstallment: vm.wo.NoofInst,\r\n Note: wo.Notes,\r\n Status: 4,\r\n ScopeType: vm.wo.ScopeType,\r\n AdvanceType: 2,\r\n TypeofPayment: vm.wo.selectedPaymentmode.TranscationTypeId\r\n }\r\n\r\n if (vm.wo.selectedPaymentmode.TransactionTypeName == 'Cheque') {\r\n var Arr = {\r\n BankName: vm.wo.BankName,\r\n BranchName: vm.wo.BranchName,\r\n AccountNo: vm.wo.AccountNo,\r\n ChequeNo: vm.wo.ChequeNo\r\n }\r\n obj.PaymentDetail = JSON.stringify(Arr);\r\n } else if (vm.wo.selectedPaymentmode.TransactionTypeName == 'NEFT' || vm.wo.selectedPaymentmode.TransactionTypeName == 'RTGS') {\r\n var Arr = {\r\n BankName: vm.wo.BankName,\r\n BranchName: vm.wo.BranchName,\r\n AccountNo: vm.wo.AccountNo\r\n }\r\n obj.PaymentDetail = JSON.stringify(Arr);\r\n } else {\r\n obj.PaymentDetail = null\r\n }\r\n\r\n\r\n BillingService.SaveInterimPayment(obj).then(function(res) {\r\n if (res.data.resultMsg[0].MessageCode === 1) {\r\n $rootScope.showToaster('success', res.data.resultMsg[0].Message, \"Bill Approval\");\r\n // vm.Back();\r\n // Init();\r\n // vm.isViewApprovalWO = false;\r\n vm.isViewVocher = true;\r\n vm.Vocher = res.data.MobVocher[0]\r\n vm.wo.VoucherNo = angular.copy(vm.Vocher.VoucherNo);\r\n vm.wo.VoucherId = angular.copy(vm.Vocher.VoucherId);\r\n vm.wo.ContractName = angular.copy(vm.Vocher.ContractorName);\r\n vm.wo.WorkOrderNo = angular.copy(vm.Vocher.WorkOrderNo);\r\n vm.wo.TransactionTypeName = angular.copy(vm.Vocher.TransactionTypeName);\r\n vm.wo.TypeofPayment = angular.copy(vm.Vocher.TypeofPayment);\r\n vm.wo.PaymentDetail = angular.copy(vm.Vocher.PaymentDetail);\r\n vm.wo.PaidAmt = angular.copy(vm.Vocher.PaidAmt);\r\n vm.wo.Note = angular.copy(vm.Vocher.Note)\r\n vm.wo.CompanyName = angular.copy(vm.Vocher.CompanyName);\r\n if (vm.wo.TransactionTypeName == 'Cheque') {\r\n vm.AccDetail = JSON.parse(vm.wo.PaymentDetail)\r\n vm.wo.BankName = vm.AccDetail.BankName\r\n vm.wo.BranchName = vm.AccDetail.BranchName\r\n vm.wo.AccountNo = vm.AccDetail.AccountNo\r\n vm.wo.ChequeNo = vm.AccDetail.ChequeNo\r\n } else if (vm.wo.TransactionTypeName == 'NEFT' || vm.wo.TransactionTypeName == 'RTGS') {\r\n vm.AccDetail = JSON.parse(vm.wo.PaymentDetail)\r\n vm.wo.BankName = vm.AccDetail.BankName\r\n vm.wo.BranchName = vm.AccDetail.BranchName\r\n vm.wo.AccountNo = vm.AccDetail.AccountNo\r\n }\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Bill Approval\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n vm.SaveVocher = function(wo) {\r\n var obj = {\r\n Narration: wo.Narration,\r\n RecieveDate: $filter('date')(wo.RecieveDate, 'yyyy/MM/dd')\r\n }\r\n\r\n if (wo.TransactionTypeName == 'Cheque' || wo.TransactionTypeName == 'Cash') {\r\n obj.RecieverName = vm.wo.RecieverName\r\n } else if (wo.TransactionTypeName == 'NEFT' || wo.TransactionTypeName == 'RTGS') {\r\n obj.TransactionId = vm.wo.TransactionId\r\n }\r\n\r\n var tempObj = {\r\n ReceivedDetail: JSON.stringify(obj),\r\n WorkOrderId: wo.WorkOrderId,\r\n VoucherId: wo.VoucherId\r\n }\r\n\r\n BillingService.SaveVocher(tempObj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Interim Payment\");\r\n vm.isPrintVocher = true;\r\n // vm.Back();\r\n // Init();\r\n // vm.isViewApprovalWO = false;\r\n // vm.isViewVocher = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Interim Payment\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n vm.PrintVocher = function(wo) {\r\n var obj = {\r\n VoucherId: vm.wo.VoucherId,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n CompanyName: vm.wo.CompanyName,\r\n ProjectName: vm.wo.ProjectName,\r\n Heading: \"Heading\",\r\n UserName: loggedUser.FirstName\r\n }\r\n\r\n BillingService.PrintVocher(obj).then(function(res) {\r\n if (res.status === 200) {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n vm.isPrintVocher = false;\r\n vm.Back();\r\n Init();\r\n vm.isViewApprovalWO = false;\r\n vm.isViewVocher = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Interim Payment\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n vm.Back = function() {\r\n Init();\r\n vm.isViewApprovalWO = false;\r\n vm.wo = {};\r\n }\r\n\r\n\r\n function GetRfqDetails(rfqId) {\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/billing/workOrderDetails.html',\r\n controller: 'WorkOrderDetailsCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n // backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return rfqId;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n // function GetRfqDetails(rfqId) {\r\n // DirectWorkOrderService.GetRfqDetails(rfqId).then(function (res) {\r\n // debugger;\r\n // if (res.status === 200) {\r\n // vm.WORfqList = res.data;\r\n // vm.ContractorRfqTermsandContList = vm.WORfqList.RateDetials.TermsAndConditions;\r\n // for (var i in vm.WORfqList.RateDetials.RfqIocaDetails) {\r\n // vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl = JSON.parse(vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl)\r\n // vm.ContractorRfqIocaList[i] = vm.WORfqList.RateDetials.RfqIocaDetails[i]\r\n // vm.Total(vm.ContractorRfqIocaList[i]);\r\n // }\r\n // // getFinalisedContractor();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n // });\r\n // }\r\n\r\n // function Total(row) {\r\n // vm.grandTotal = 0;\r\n // if (row.UnitRate != undefined && row.Tax != undefined) {\r\n // var totalQuantity = row.TotQty;\r\n // row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n // }\r\n // for (var i in vm.ContractorRfqIocaList) {\r\n // var totalRate = vm.ContractorRfqIocaList[i].total;\r\n // vm.grandTotal += totalRate;\r\n // }\r\n\r\n // }\r\n\r\n\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // arr: any[];\r\n // isCheck: boolean = false;\r\n\r\n // checkData(row)\r\n // {\r\n // for (var i in this.arr) {\r\n // if (this.arr[i].Name == row.Name && this.arr[i].ClassRoom == row.ClassRoom && this.arr[i].Section == row.Section) {\r\n // alert('already Exist')\r\n // this.isCheck = true\r\n // }\r\n // }\r\n\r\n // if (!this.isCheck) {\r\n // this.arr.push(row)\r\n // this.isCheck = false;\r\n\r\n // }\r\n // else {\r\n // this.isCheck = false\r\n // }\r\n // }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('RABillCtrl', RABillCtrl);\r\n\r\n /** @ngInject */\r\n function RABillCtrl($rootScope, lodash, BillingService, dialogs, $http, $state) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isSave = false;\r\n vm.viewBill = viewBill;\r\n $rootScope.isLogin = false;\r\n vm.wo = {};\r\n vm.data = $state.params.data\r\n\r\n Init();\r\n\r\n function Init() {\r\n if (vm.data.RABillList.length > 0) {\r\n vm.data.RABillList = lodash.groupBy(vm.data.RABillList, 'CompanyName');\r\n\r\n for (var key in vm.data.RABillList) {\r\n vm.data.RABillList[key] = lodash.groupBy(vm.data.RABillList[key], 'ProjectName');\r\n }\r\n\r\n vm.LoadDraftList = vm.data.RABillList;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.notify('warning', \"There is no RA Bill\", { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n // vm.draftBillList = [{ \"CompanyName\": 'Sarojini Green Park', \"billNo\": '06', \"woNo\": 'WFP/SRP/WO/2018-09/001', \"TypeofBill\": 'Monthly Billing' }]\r\n\r\n // vm.WONo = 'WFP/SRP/WO/2018-09/001';\r\n // vm.typeOfContract = 'Item Rate Contract';\r\n // vm.billPeriod = '1 to 31 March 2018';\r\n // vm.valueOfWO = 'Rs.50,00,000';\r\n // vm.typeOfBill = 'Monthly Billing';\r\n // vm.billNo = '08';\r\n // vm.billDate = '28/02/2018';\r\n // vm.typeOfWorkOrder = 'Labour & Material';\r\n }\r\n\r\n\r\n function getBillHistory(WorkOrderId) {\r\n BillingService.getBillHistory(WorkOrderId).then(function (res) {\r\n if (res.status === 200) {\r\n debugger\r\n vm.BillHistory = res.data;\r\n for (var i in vm.BillHistory) {\r\n vm.BillHistory[i].GrossValueUpToLastBill = parseFloat(vm.BillHistory[i].GrossValueUpToLastBill).toFixed(2);\r\n vm.BillHistory[i].PaidAmt = parseFloat(vm.BillHistory[i].PaidAmt).toFixed(2);\r\n vm.BillHistory[i].PaidAmtForm = ConvertMoney(vm.BillHistory[i].PaidAmt)\r\n \r\n vm.BillHistory[i].GrossValue = parseFloat(vm.BillHistory[i].GrossValue).toFixed(2);\r\n vm.BillHistory[i].GrossValueForm = ConvertMoney(vm.BillHistory[i].GrossValue)\r\n\r\n vm.BillHistory[i].Penalty = parseFloat(vm.BillHistory[i].Penalty).toFixed(2);\r\n vm.BillHistory[i].PenaltyForm = ConvertMoney(vm.BillHistory[i].Penalty)\r\n\r\n vm.BillHistory[i].Retention = parseFloat(vm.BillHistory[i].Retention).toFixed(2);\r\n vm.BillHistory[i].RetentionForm = ConvertMoney(vm.BillHistory[i].Retention)\r\n\r\n vm.BillHistory[i].CGSTAmount = parseFloat(vm.BillHistory[i].CGSTAmount).toFixed(2);\r\n vm.BillHistory[i].CGSTAmountForm = ConvertMoney(vm.BillHistory[i].CGSTAmount)\r\n\r\n vm.BillHistory[i].SGSTAmount = parseFloat(vm.BillHistory[i].SGSTAmount).toFixed(2);\r\n vm.BillHistory[i].SGSTAmountForm = ConvertMoney(vm.BillHistory[i].SGSTAmount)\r\n\r\n vm.BillHistory[i].IGSTAmount = parseFloat(vm.BillHistory[i].IGSTAmount).toFixed(2);\r\n vm.BillHistory[i].IGSTAmountForm = ConvertMoney(vm.BillHistory[i].IGSTAmount)\r\n\r\n vm.BillHistory[i].TDSValue = parseFloat(vm.BillHistory[i].TDSValue).toFixed(2);\r\n vm.BillHistory[i].TDSValueForm = ConvertMoney(vm.BillHistory[i].TDSValue)\r\n\r\n vm.BillHistory[i].MobilizationAdv = parseFloat(vm.BillHistory[i].MobilizationAdv).toFixed(2);\r\n vm.BillHistory[i].MobilizationAdvForm = ConvertMoney(vm.BillHistory[i].MobilizationAdv)\r\n \r\n vm.BillHistory[i].InteriamAdvance = parseFloat(vm.BillHistory[i].InteriamAdvance).toFixed(2);\r\n vm.BillHistory[i].InteriamAdvanceForm = ConvertMoney(vm.BillHistory[i].InteriamAdvance)\r\n\r\n vm.BillHistory[i].OtherDeduction = parseFloat(vm.BillHistory[i].OtherDeduction).toFixed(2);\r\n vm.BillHistory[i].OtherDeductionForm = ConvertMoney(vm.BillHistory[i].OtherDeduction)\r\n\r\n vm.BillHistory[i].TotalDeduction = parseFloat(vm.BillHistory[i].TotalDeduction).toFixed(2);\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n\r\n function viewBill(row) {\r\n vm.isFormOpen = true;\r\n vm.wo = angular.copy(row)\r\n var MoneyConv = parseFloat(vm.wo.TotalWorkOrderAmount).toFixed(2)\r\n\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n vm.wo.TotalWorkOrderAmount = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree + afterPoint;\r\n ////////////////////\r\n vm.wo.RfqScope = vm.wo.RfqScope\r\n vm.wo.CGST = parseFloat(vm.wo.CGST).toFixed(2)\r\n vm.wo.SGST = parseFloat(vm.wo.SGST).toFixed(2)\r\n vm.wo.IGST = parseFloat(vm.wo.IGST).toFixed(2)\r\n vm.wo.Tax = parseFloat(vm.wo.Tax).toFixed(2)\r\n vm.wo.TDS = parseFloat(vm.wo.TDS).toFixed(2)\r\n vm.wo.Retention = parseFloat(vm.wo.Retention).toFixed(2)\r\n vm.wo.Mobilization = parseFloat(vm.wo.Mobilization).toFixed(2)\r\n vm.wo.WorkOrderId = vm.wo.WorkOrderId\r\n GetGenerateBill(vm.wo.BillIdentityNumber)\r\n }\r\n\r\n function GetGenerateBill(BillIdentityNumber) {\r\n\r\n BillingService.GetGenerateRABill(BillIdentityNumber).then(function (res) {\r\n if (res.status === 200) {\r\n vm.GenerateBill = res.data;\r\n vm.GenerateBill.PaidAmt = parseFloat(vm.GenerateBill.PaidAmt).toFixed(2);\r\n vm.GenerateBill.PaidAmtForm = ConvertMoney(vm.GenerateBill.PaidAmt)\r\n\r\n vm.GenerateBill.GrossValueUpToLastBill = parseFloat(vm.GenerateBill.GrossValueUpToLastBill).toFixed(2)\r\n vm.GenerateBill.GrossValueUpToLastBillForm = ConvertMoney(vm.GenerateBill.GrossValueUpToLastBill)\r\n\r\n vm.GenerateBill.TotalValue = parseFloat(vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.TotalValueForm = ConvertMoney(vm.GenerateBill.TotalValue)\r\n\r\n vm.GenerateBill.GrossValue = parseFloat(vm.GenerateBill.GrossValue).toFixed(2);\r\n vm.GenerateBill.GrossValueForm = ConvertMoney(vm.GenerateBill.GrossValue)\r\n\r\n vm.GenerateBill.Penalty = parseFloat(vm.GenerateBill.Penalty).toFixed(2);\r\n vm.GenerateBill.PenaltyForm = ConvertMoney(vm.GenerateBill.Penalty)\r\n\r\n vm.GenerateBill.NetAmount = parseFloat(vm.GenerateBill.NetAmount).toFixed(2);\r\n vm.GenerateBill.NetAmountForm = ConvertMoney(vm.GenerateBill.NetAmount)\r\n\r\n vm.GenerateBill.Retention = parseFloat(vm.GenerateBill.Retention).toFixed(2);\r\n vm.GenerateBill.RetentionForm = ConvertMoney(vm.GenerateBill.Retention)\r\n\r\n vm.GenerateBill.TaxableAmount = parseFloat(vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TaxableAmountForm = ConvertMoney(vm.GenerateBill.TaxableAmount)\r\n\r\n vm.GenerateBill.CGSTAmount = parseFloat(vm.GenerateBill.CGSTAmount).toFixed(2);\r\n vm.GenerateBill.CGSTAmountForm = ConvertMoney(vm.GenerateBill.CGSTAmount)\r\n\r\n vm.GenerateBill.SGSTAmount = parseFloat(vm.GenerateBill.SGSTAmount).toFixed(2);\r\n vm.GenerateBill.SGSTAmountForm = ConvertMoney(vm.GenerateBill.SGSTAmount)\r\n\r\n vm.GenerateBill.IGSTAmount = parseFloat(vm.GenerateBill.IGSTAmount).toFixed(2);\r\n vm.GenerateBill.IGSTAmountForm = ConvertMoney(vm.GenerateBill.IGSTAmount)\r\n\r\n vm.GenerateBill.TaxAmount = parseFloat(vm.GenerateBill.TaxAmount).toFixed(2);\r\n vm.GenerateBill.TaxAmountForm = ConvertMoney(vm.GenerateBill.TaxAmount)\r\n\r\n vm.GenerateBill.TotalBillAmount = parseFloat(vm.GenerateBill.TotalBillAmount).toFixed(2);\r\n vm.GenerateBill.TotalBillAmountForm = ConvertMoney(vm.GenerateBill.TotalBillAmount)\r\n\r\n vm.GenerateBill.TDSValue = parseFloat(vm.GenerateBill.TDSValue).toFixed(2);\r\n vm.GenerateBill.TDSValueFrom = ConvertMoney(vm.GenerateBill.TDSValue)\r\n\r\n vm.GenerateBill.MobilizationAdv = parseFloat(vm.GenerateBill.MobilizationAdv).toFixed(2);\r\n vm.GenerateBill.MobilizationAdvForm = ConvertMoney(vm.GenerateBill.MobilizationAdv)\r\n\r\n vm.GenerateBill.InteriamAdvance = parseFloat(vm.GenerateBill.InteriamAdvance).toFixed(2);\r\n vm.GenerateBill.InteriamAdvanceForm = ConvertMoney(vm.GenerateBill.InteriamAdvance)\r\n\r\n vm.GenerateBill.OtherDeduction = parseFloat(vm.GenerateBill.OtherDeduction).toFixed(2);\r\n vm.GenerateBill.OtherDeductionForm = ConvertMoney(vm.GenerateBill.OtherDeduction)\r\n\r\n vm.GenerateBill.TotalDeduction = parseFloat(vm.GenerateBill.TotalDeduction).toFixed(2);\r\n vm.GenerateBill.TotalDeductionForm = ConvertMoney(vm.GenerateBill.TotalDeduction)\r\n\r\n vm.GenerateBill.FinalBillAmt = parseFloat(vm.GenerateBill.FinalBillAmt).toFixed(2);\r\n vm.GenerateBill.FinalBillAmtForm = ConvertMoney(vm.GenerateBill.FinalBillAmt)\r\n\r\n vm.GenerateBill.CGST = ((vm.GenerateBill.CGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.SGST = ((vm.GenerateBill.SGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.IGST = ((vm.GenerateBill.IGSTAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.Tax = ((vm.GenerateBill.TaxAmount / vm.GenerateBill.TaxableAmount) * 100).toFixed(2);\r\n vm.GenerateBill.RetentionPer = (vm.GenerateBill.Retention / vm.GenerateBill.TotalValue).toFixed(2);\r\n vm.GenerateBill.RetentionPer = parseFloat((vm.GenerateBill.RetentionPer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.TDSValuePer = (vm.GenerateBill.TDSValue / vm.GenerateBill.TaxableAmount).toFixed(2);\r\n vm.GenerateBill.TDSValuePer = parseFloat((vm.GenerateBill.TDSValuePer) * 100).toFixed(2);\r\n\r\n vm.GenerateBill.MobilizationPer = (vm.GenerateBill.MobilizationAdv / vm.GenerateBill.NetAmount).toFixed(2);\r\n vm.GenerateBill.MobilizationPer = parseFloat((vm.GenerateBill.MobilizationPer) * 100).toFixed(2);\r\n vm.isLoading = false;\r\n if (vm.wo.BillId == 2) {\r\n vm.wo.endDate = new Date(vm.GenerateBill.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n }\r\n else if (vm.wo.BillId == 1) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n }\r\n else if (vm.wo.BillId == 5) {\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n\r\n var now = new Date(vm.GenerateBill.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n function ConvertMoney(value) {\r\n var MoneyConv = parseFloat(value).toFixed(2)\r\n\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n vm.wo.TotalWorkOrderAmount = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree + afterPoint;\r\n\r\n return vm.wo.TotalWorkOrderAmount;\r\n }\r\n\r\n vm.submitBill = function () {\r\n var obj = {\r\n BillID: vm.wo.BillIdentityNumber,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n GrossValueUpToLastBill: vm.GenerateBill.GrossValueUpToLastBill,\r\n GrossValue: vm.GenerateBill.GrossValue,\r\n TotalValue: vm.GenerateBill.TotalValue,\r\n Penalty: vm.GenerateBill.Penalty,\r\n NetAmount: vm.GenerateBill.NetAmount,\r\n Retention: vm.GenerateBill.Retention,\r\n TaxableAmount: vm.GenerateBill.TaxableAmount,\r\n CGSTAmount: vm.GenerateBill.CGSTAmount,\r\n SGSTAmount: vm.GenerateBill.SGSTAmount,\r\n IGSTAmount: vm.GenerateBill.IGSTAmount,\r\n TaxAmount: vm.GenerateBill.TaxAmount,\r\n TotalBillAmount: vm.GenerateBill.TotalBillAmount,\r\n TDSValue: vm.GenerateBill.TDSValue,\r\n Mobilization: vm.GenerateBill.MobilizationAdv,\r\n Interiam: vm.GenerateBill.InteriamAdvance,\r\n OtherDeduction: vm.GenerateBill.OtherDeduction,\r\n PaidAmt: vm.GenerateBill.PaidAmt,\r\n TotalDeduction: vm.GenerateBill.TotalDeduction,\r\n FinalBillAmt: vm.GenerateBill.FinalBillAmt,\r\n Notes: vm.GenerateBill.Notes\r\n }\r\n vm.isLoading = true;\r\n vm.isSave = true;\r\n\r\n BillingService.SaveRABill(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"RA Bill\");\r\n vm.wo = {};\r\n vm.isLoading = false;\r\n vm.isSave = false;\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"RA Bill\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.Back = function () {\r\n vm.cancel();\r\n }\r\n\r\n vm.cancel = function () {\r\n vm.wo = {};\r\n vm.isFormOpen = false;\r\n }\r\n\r\n vm.viewPaidAmt = function () {\r\n vm.isPaidAmt = true;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewGrossAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = true;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewPenaltyAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = true;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewRetentionAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = true;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewCGSTAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = true;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewSGSTAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = true;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewIGSTAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = true;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewTDSAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = true;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewMobAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = true;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n vm.viewInterimAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = true;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewOtherDedAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = true;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.viewTotDedAmt = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = false;\r\n vm.isTotalDeduction = true;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n vm.isPaymentTillDate = function () {\r\n vm.isPaidAmt = false;\r\n vm.isGrossValue = false;\r\n vm.isPenalty = false;\r\n vm.isRetention = false;\r\n vm.isCGSTAmount = false;\r\n vm.isSGSTAmount = false;\r\n vm.isIGSTAmount = false;\r\n vm.isTDSValue = false;\r\n vm.isMobilizationAdv = false;\r\n vm.isInteriamAdvance = false;\r\n vm.isOtherDeduction = false;\r\n vm.isPaymentTillDate = true;\r\n vm.isTotalDeduction = false;\r\n getBillHistory(vm.wo.WorkOrderId)\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('ViewRABillCtrl', ViewRABillCtrl);\r\n\r\n function ViewRABillCtrl($rootScope, $scope, $window, $filter, $uibModal, BillingService, dialogs, lodash, ItemToItemService, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService, LocationSetupService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n vm.getBillByWorkOrder = getBillByWorkOrder;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n var tier = {};\r\n vm.filter = {};\r\n vm.clearWOSelect = clearWOSelect;\r\n vm.clearReportBasedSelect = clearReportBasedSelect;\r\n vm.clearDescTypeSelect = clearDescTypeSelect;\r\n vm.ClearBasicType = ClearBasicType;\r\n vm.clearReportBasedSelect = clearReportBasedSelect;\r\n vm.clearDescTypeSelect = clearDescTypeSelect;\r\n\r\n\r\n\r\n vm.work = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.wo = {};\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: '2'\r\n }, {\r\n ApproveForName: 'Balance',\r\n ApproveForId: '3'\r\n }];\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n clearCompanySelect();\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n clearProjectSelect();\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {}\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n BillingService.GetContractorByCategory(ProjectId, CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n clearCASelect();\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n } else {}\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n\r\n BillingService.GetWorkOrder(ProjectId, ContractorId).then(function(res) {\r\n if (res.status === 200) {\r\n clearContNameSelect();\r\n vm.WorkOrderList = res.data;\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getBillByWorkOrder(WorkOrderId) {\r\n if (WorkOrderId) {\r\n BillingService.GetAllBill(WorkOrderId, 2).then(function(res) {\r\n if (res.status === 200) {\r\n // clearWOSelect();\r\n vm.BillList = res.data;\r\n for (var i in vm.BillList) {\r\n vm.BillList[i].BillAmount = parseFloat(vm.BillList[i].BillAmount).toFixed(2)\r\n }\r\n if (vm.BillList.length < 1) {\r\n dialogs.notify('warning', \"No RA Bill Found\", { animation: true, size: 'sm' });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {}\r\n }\r\n\r\n\r\n\r\n //////\r\n\r\n function getLocationByProject() {\r\n //clearLocation();\r\n var obj = {\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId\r\n }\r\n LocationSetupService.getAllBilledLocationMaster(obj).then(function(res) {\r\n\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n $rootScope.showToaster('info', 'There is no work Location available selected Project', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n }\r\n\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n debugger;\r\n if (LocationId && ProjectId) {\r\n ClearBasicType();\r\n vm.tierObj = JSON.parse(vm.wo.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.wo.selectedLocation.LocationId,\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n Status: 4,\r\n }\r\n ItemToItemService.getAllBilledTiersByBoQ(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.rawTierListData = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierName,\r\n Values: (t.TierName === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n //clearTierSelection();\r\n }\r\n }\r\n\r\n\r\n function buildFilterString() {\r\n var tiers = {\r\n filter: {}\r\n };\r\n lodash.forEach(vm.tierList, function(tier) {\r\n if (tier.selectedTierValue)\r\n tiers.filter[tier.TierType] = tier.selectedTierValue.TierId;\r\n });\r\n return JSON.stringify(tiers);\r\n }\r\n\r\n /////////////////////\r\n vm.BillTypeList = [{\r\n BillTypeName: \"Detailed\",\r\n BillTypeId: 1\r\n }, {\r\n BillTypeName: \"Consolidated\",\r\n BillTypeId: 2\r\n }]\r\n\r\n vm.ReportDescriptionTypeList = [{\r\n ReportDescriptionTypeName: \"Short Description\",\r\n ReportDescriptionTypeId: 1\r\n }, {\r\n ReportDescriptionTypeName: \"Detailed Description\",\r\n ReportDescriptionTypeId: 2\r\n }]\r\n\r\n vm.BaseOnList = [{\r\n BillBased: \"Construction Activity\",\r\n BillBasedId: 1\r\n },\r\n {\r\n BillBased: \"Location of Work\",\r\n BillBasedId: 2\r\n }\r\n ]\r\n\r\n\r\n vm.shareKpost = function(row) {\r\n vm.isLoading = true;\r\n var tiers = buildFilterString();\r\n\r\n if (row.BillMode == 2) {\r\n vm.wo.endDate = new Date(row.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n vm.wo.BillType = \"Monthly\"\r\n } else if (row.BillMode == 1) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Weekly\"\r\n } else if (row.BillMode == 5) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Daily\"\r\n }\r\n\r\n if (vm.wo.BillType == 'Daily') {\r\n var Heading1 = \"
\" + \"Running Account bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \" \" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" - \" +\r\n \"
RA Bill No - \" + row.BillNumber + \" date \" +\r\n $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \"
\"\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done up to \" + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" For \" + vm.work.selectedContractor.ContractorName + \" Contractor Vide work order no \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
R.A.Bill No \" + row.BillNumber + \"
\"\r\n var PeriodicDate = $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\")\r\n\r\n } else {\r\n var Heading1 = \"
\" + \"Running Account bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \"\" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" - \" + \"
\" +\r\n \" RA Bill No - \" + row.BillNumber + \" and bill period \" +\r\n $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" to \" +\r\n $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"
\"\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done up to \" + $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \" \" + \"For \" + vm.work.selectedContractor.ContractorName + \" Contractor Vide work order no \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
R.A.Bill No \" + row.BillNumber + \"
\"\r\n var PeriodicDate = $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" to \" + $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\")\r\n }\r\n\r\n\r\n\r\n\r\n debugger;\r\n var obj = {\r\n\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n Heading1: Heading1,\r\n Heading2: Heading2,\r\n Tiers: tiers,\r\n PeriodicDate: PeriodicDate,\r\n ProjectName: vm.work.selectedProject.ProjectName,\r\n ReportFor: vm.wo.selectedBillType.BillTypeName,\r\n DescType: vm.work.selectedDescriptionTypeName.ReportDescriptionTypeId,\r\n BillBasedOn: vm.wo.selectedBasedOn.BillBasedId,\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n BillId: row.BillId,\r\n p_BOQStatus: 1,\r\n UserName: loggedUser.FirstName,\r\n UserId: loggedUser.UserId\r\n }\r\n\r\n\r\n if (vm.wo.selectedBillType.BillTypeId === 2) {\r\n obj.TierType = vm.wo.Tier.TierName\r\n }\r\n // console.log(vm.wo.Tier);\r\n\r\n //PeriodicDate: $filter('date')(vm.wo.startDate, \"dd-MM-yyyy\") + \" To \" + $filter('date')(vm.wo.endDate, \"dd-MM-yyyy\")\r\n\r\n debugger;\r\n BillingService.ShowRABillReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n vm.viewReport = function(row) {\r\n\r\n vm.isLoading = true;\r\n var tiers = buildFilterString();\r\n\r\n if (row.BillMode == 2) {\r\n vm.wo.endDate = new Date(row.BillDate);\r\n vm.wo.endDate.setDate(0);\r\n vm.wo.startDate = new Date(vm.wo.endDate);\r\n vm.wo.startDate.setDate(1);\r\n vm.wo.BillType = \"Monthly\"\r\n } else if (row.BillMode == 1) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(vm.wo.endDate);\r\n now.setDate(now.getDate() - 6)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Weekly\"\r\n } else if (row.BillMode == 5) {\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.endDate = now;\r\n\r\n var now = new Date(row.BillDate);\r\n now.setDate(now.getDate() - 1)\r\n vm.wo.startDate = now;\r\n vm.wo.BillType = \"Daily\"\r\n }\r\n\r\n if (vm.wo.BillType == 'Daily') {\r\n\r\n var Heading1 = \"
\" + \"Running Account bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \" \" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" - \" +\r\n \"
RA Bill No - \" + row.BillNumber + \" date \" +\r\n $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \"
\"\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done up to \" + $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" For \" + vm.work.selectedContractor.ContractorName + \" Contractor Vide work order no \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
R.A.Bill No \" + row.BillNumber + \"
\"\r\n var PeriodicDate = $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\")\r\n\r\n } else {\r\n var Heading1 = \"
\" + \"Running Account bill for \" + vm.work.selectedContractorCategory.CategoryName + \" of \" + \"\" + vm.work.selectedContractor.ContractorName + \"\" + \" Contractor \" + \" Vide Work Order No \" + vm.work.selectedWorkOrder.WorkOrderNo + \" - \" + \"
\" +\r\n \" RA Bill No - \" + row.BillNumber + \" and bill period \" +\r\n $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" to \" +\r\n $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \"
\"\r\n var Heading2 = \"
\" + vm.wo.selectedBillType.BillTypeName + \" statement of work done up to \" + $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\") + \" \" + \"For \" + vm.work.selectedContractor.ContractorName + \" Contractor Vide work order no \" + vm.work.selectedWorkOrder.WorkOrderNo + \"
R.A.Bill No \" + row.BillNumber + \"
\"\r\n var PeriodicDate = $filter('date')(vm.wo.startDate, \"dd/MM/yyyy\") + \" to \" + $filter('date')(vm.wo.endDate, \"dd/MM/yyyy\")\r\n }\r\n\r\n\r\n\r\n\r\n debugger;\r\n var obj = {\r\n\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n Heading1: Heading1,\r\n Heading2: Heading2,\r\n Tiers: tiers,\r\n PeriodicDate: PeriodicDate,\r\n ProjectName: vm.work.selectedProject.ProjectName,\r\n ReportFor: vm.wo.selectedBillType.BillTypeName,\r\n DescType: vm.work.selectedDescriptionTypeName.ReportDescriptionTypeId,\r\n BillBasedOn: vm.wo.selectedBasedOn.BillBasedId,\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n BillId: row.BillId,\r\n p_BOQStatus: 1,\r\n UserName: loggedUser.FirstName,\r\n UserId: loggedUser.UserId\r\n }\r\n\r\n\r\n if (vm.wo.selectedBillType.BillTypeId === 2) {\r\n obj.TierType = vm.wo.Tier.TierName\r\n }\r\n // console.log(vm.wo.Tier);\r\n\r\n //PeriodicDate: $filter('date')(vm.wo.startDate, \"dd-MM-yyyy\") + \" To \" + $filter('date')(vm.wo.endDate, \"dd-MM-yyyy\")\r\n\r\n debugger;\r\n BillingService.ShowRABillReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n function clearCompanySelect() {\r\n vm.work.selectedProject = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null;\r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null;\r\n }\r\n\r\n function clearProjectSelect() {\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null;\r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null;\r\n }\r\n\r\n function clearCASelect() {\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null;\r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null;\r\n }\r\n\r\n function clearContNameSelect() {\r\n vm.work.selectedWorkOrder = null;\r\n vm.wo.selectedBasedOn = null;\r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null;\r\n }\r\n\r\n function clearWOSelect() {\r\n debugger;\r\n vm.wo.selectedBasedOn = null;\r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null;\r\n getLocationByProject();\r\n }\r\n\r\n function clearReportBasedSelect() {\r\n vm.work.selectedDescriptionTypeName = null;\r\n vm.wo.selectedBillType = null;\r\n }\r\n\r\n function clearDescTypeSelect() {\r\n vm.wo.selectedBillType = null;\r\n }\r\n\r\n function ClearBasicType() {\r\n vm.wo.Tier = null;\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('StatementOfBillCtrl', StatementOfBillCtrl);\r\n\r\n function StatementOfBillCtrl($rootScope, $filter, $scope, $window, $uibModal, BillingService, dialogs, lodash, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n\r\n vm.getBillByWorkOrder = getBillByWorkOrder;\r\n vm.wo = {};\r\n vm.work = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: '2'\r\n }, {\r\n ApproveForName: 'Balance',\r\n ApproveForId: '3'\r\n }];\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.work.selectedProject = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n }\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n\r\n BillingService.GetContractorByCategory(ProjectId, CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n } else {\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n }\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n vm.work.selectedWorkOrder = '';\r\n BillingService.GetWorkOrder(ProjectId, ContractorId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {\r\n vm.work.selectedWorkOrder = null;\r\n }\r\n }\r\n\r\n function getBillByWorkOrder(WorkOrderId) {\r\n if (WorkOrderId) {\r\n BillingService.GetAllRABill(WorkOrderId, 1).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RABillList = res.data;\r\n for (var i in vm.RABillList) {\r\n var MoneyConv = parseFloat(vm.RABillList[i].BalanceAmt).toFixed(2)\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n vm.RABillList[i].BalanceAmt = parseFloat(vm.RABillList[i].BalanceAmt).toFixed(2);\r\n vm.RABillList[i].PaidAmt = parseFloat(vm.RABillList[i].PaidAmt).toFixed(2)\r\n\r\n\r\n ////////////////////\r\n\r\n }\r\n for (var i in vm.RABillList) {\r\n vm.RABillList[i].BalanceAmt = parseFloat(vm.RABillList[i].BalanceAmt).toFixed(2)\r\n }\r\n if (vm.RABillList.length < 1) {\r\n dialogs.notify('warning', \"No Draft Bill Found\", { animation: true, size: 'sm' });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n vm.viewReport = function(row) {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n ContractorId: vm.work.selectedContractor.ContractorId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n ActionBy: loggedUser.UserId,\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n ProjectName: vm.work.selectedProject.ProjectName,\r\n Heading: \" Contractor \" + vm.work.selectedContractor.ContractorName + \" Statement of Account of Based On Work Order - \" + vm.work.selectedWorkOrder.WorkOrderNo\r\n }\r\n debugger;\r\n BillingService.ShowStatementReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n vm.ShareReport = function(row) {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: vm.work.selectedProject.ProjectId,\r\n ContractorId: vm.work.selectedContractor.ContractorId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n ActionBy: loggedUser.UserId,\r\n GroupCompanyName: vm.work.selectedCompany.CompanyName,\r\n ProjectName: vm.work.selectedProject.ProjectName,\r\n Heading: \" Contractor \" + vm.work.selectedContractor.ContractorName + \" Statement of Account of Based On Work Order - \" + vm.work.selectedWorkOrder.WorkOrderNo\r\n }\r\n debugger;\r\n\r\n\r\n BillingService.ShowStatementReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n\r\n } else {\r\n vm.isLoading = false;\r\n dialogs.error('error', \"Something Went to Wrong Check Your Selected Data\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n vm.cancel = function() {\r\n vm.work.selectedCompany = null;\r\n vm.work.selectedProject = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.work.selectedWorkOrder = null;\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('supOfBillCtrl', supOfBillCtrl);\r\n\r\n function supOfBillCtrl($rootScope,$window,AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n \r\n $rootScope.isLogin = false;\r\n Init();\r\n function Init() {\r\n $window.location.href = 'http://supplier.projectsoft.in/supplier_reg'\r\n }\r\n\r\n \r\n\r\n }\r\n}\r\n)();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('ApprovedCtrl', ApprovedCtrl);\r\n\r\n /** @ngInject */\r\n function ApprovedCtrl($scope, $http, $rootScope, lodash, dialogs, $state, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n \r\n \r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n function Init() {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovedList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n StatesId: 2,\r\n project: row,\r\n isView: true\r\n };\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('BackForCorrectionCtrl', BackForCorrectionCtrl);\r\n\r\n /** @ngInject */\r\n function BackForCorrectionCtrl($scope, $http, $rootScope, lodash, dialogs, $state, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n \r\n \r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n projectCreationService.getAllBackForCorrection(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BloackandCorrectionList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"ProjectInitiation\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"ProjectInitiation\");\r\n });\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row\r\n }\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n StatesId: 2,\r\n project: row,\r\n isView: true\r\n };\r\n\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('BillOfQuantityTableCtrl', BillOfQuantityTableCtrl)\r\n\r\n /** @ngInject */\r\n function BillOfQuantityTableCtrl($rootScope, lodash, dialogs, $state, $http, AuthenticationService, CompanyService, projectCreationService, ItemToItemService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n $rootScope.isLogin = false;\r\n vm.StatusId = $state.params.Status;\r\n //Method\r\n vm.waitingList = [];\r\n vm.resubmittedList = [];\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.fromDraft = fromDraft;\r\n vm.fromBackforCorrection = fromBackforCorrection;\r\n vm.viewPointOfWork = viewPointOfWork;\r\n vm.fromBlocked = fromBlocked;\r\n vm.fromApproved = fromApproved;\r\n vm.getAllBoq = getAllBoq;\r\n vm.groupBy = groupBy;\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 }, { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 }, { MenuName: 'Waiting for Approval of Draft', StatusId: 3 }, { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 6 }\r\n ]\r\n\r\n CompanyService.getSubCompByCompId(companyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n vm.isLoading = true;\r\n if (CompanyId) {\r\n vm.boq.selectedProject = null;\r\n var isWrkAlloc = true;\r\n projectCreationService.getAllApprovedProject(CompanyId, isWrkAlloc).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.boq.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.boq.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n\r\n }\r\n\r\n function groupBy(array, f) {\r\n var groups = {};\r\n array.forEach(function(o) {\r\n var group = JSON.stringify(f(o));\r\n groups[group] = groups[group] || [];\r\n groups[group].push(o);\r\n });\r\n return Object.keys(groups).map(function(group) {\r\n return groups[group];\r\n })\r\n }\r\n\r\n function getAllBoq(ProjectId) {\r\n vm.isLoading = true;\r\n vm.BOQList = [];\r\n ItemToItemService.GetBoqItemandLoc(ProjectId, vm.StatusId).then(function(res) {\r\n if (res.status === 200) {\r\n if (vm.StatusId === 3) {\r\n vm.wtn = true;\r\n vm.waitingList = lodash.filter(res.data, { 'PowStatus': 3 });\r\n var result = groupBy(vm.waitingList, function(item) {\r\n return [item.IOCA_ShortDescription, item.LastTierId];\r\n });\r\n vm.draftCount = 0;\r\n vm.draftCount = result.length;\r\n for (var i = 0; i < result.length; i++) {\r\n var boqfilterList = result[i]\r\n for (var j in boqfilterList) {\r\n if (j === \"0\")\r\n vm.BOQList.push(boqfilterList[0]);\r\n }\r\n }\r\n for (var j = 0; j < vm.BOQList.length; j++) {\r\n if (vm.BOQList[j].EntryFrom === \"\")\r\n vm.BOQList[j].EntryFrom = 'Copy(Loc)'\r\n }\r\n\r\n vm.resubmittedList = lodash.filter(res.data, { 'PowStatus': 2 });\r\n var result = groupBy(vm.resubmittedList, function(item) {\r\n return [item.IOCA_ShortDescription, item.LastTierId];\r\n });\r\n vm.resubmitCount = 0;\r\n vm.resubmitCount = result.length;\r\n for (var i = 0; i < result.length; i++) {\r\n var boqfilterList = result[i]\r\n for (var j in boqfilterList) {\r\n if (j === \"0\")\r\n vm.BOQList.push(boqfilterList[0]);\r\n }\r\n }\r\n for (var j = 0; j < vm.BOQList.length; j++) {\r\n if (vm.BOQList[j].EntryFrom === \"\")\r\n vm.BOQList[j].EntryFrom = 'Copy(Loc)'\r\n }\r\n\r\n } else if (vm.StatusId === 5) {\r\n vm.block = true;\r\n vm.blockedList = lodash.filter(res.data, { 'PowStatus': 5 });\r\n var result = groupBy(vm.blockedList, function(item) {\r\n return [item.IOCA_ShortDescription, item.LastTierId];\r\n });\r\n vm.blockCount = 0;\r\n vm.blockCount = result.length;\r\n for (var i = 0; i < result.length; i++) {\r\n var boqfilterList = result[i]\r\n for (var j in boqfilterList) {\r\n if (j === \"0\")\r\n vm.BOQList.push(boqfilterList[0]);\r\n }\r\n }\r\n for (var j = 0; j < vm.BOQList.length; j++) {\r\n if (vm.BOQList[j].EntryFrom === \"\")\r\n vm.BOQList[j].EntryFrom = 'Copy(Loc)'\r\n }\r\n //vm.blockedList = vm.BOQList; \r\n vm.approvedList = lodash.filter(res.data, { 'PowStatus': 4 });\r\n var result = groupBy(vm.approvedList, function(item) {\r\n return [item.IOCA_ShortDescription, item.LastTierId];\r\n });\r\n vm.approvedCount = 0;\r\n vm.approvedCount = result.length;\r\n for (var i = 0; i < result.length; i++) {\r\n var boqfilterList = result[i]\r\n for (var j in boqfilterList) {\r\n if (j === \"0\")\r\n vm.BOQList.push(boqfilterList[0]);\r\n }\r\n }\r\n\r\n for (var j = 0; j < vm.BOQList.length; j++) {\r\n if (vm.BOQList[j].EntryFrom === \"\")\r\n vm.BOQList[j].EntryFrom = 'Copy(Loc)'\r\n }\r\n //vm.approvedList = vm.BOQList;\r\n } else {\r\n groupbyBoqList(res.data);\r\n }\r\n\r\n if (vm.BOQList.length <= 0) {\r\n dialogs.notify('Warning', 'No Bill of Quantity available for ' + vm.boq.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"BOQ\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"BOQ\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function groupbyBoqList(boq) {\r\n var result = groupBy(boq, function(item) {\r\n return [item.IOCA_ShortDescription, item.LastTierId];\r\n });\r\n for (var i = 0; i < result.length; i++) {\r\n var boqfilterList = result[i]\r\n for (var j in boqfilterList) {\r\n if (j === \"0\")\r\n vm.BOQList.push(boqfilterList[0]);\r\n }\r\n }\r\n for (var j = 0; j < vm.BOQList.length; j++) {\r\n if (vm.BOQList[j].EntryFrom === \"\")\r\n vm.BOQList[j].EntryFrom = 'Copy(Loc)'\r\n }\r\n }\r\n\r\n function fromDraft() {\r\n vm.wtn = false;\r\n vm.StatusId = 3;\r\n vm.BOQList = lodash.filter(vm.BOQList, { 'PowStatus': 3 });\r\n }\r\n\r\n function fromBackforCorrection() {\r\n vm.wtn = false;\r\n vm.StatusId = 2;\r\n vm.BOQList = lodash.filter(vm.BOQList, { 'PowStatus': 2 });\r\n\r\n }\r\n\r\n function fromBlocked() {\r\n debugger;\r\n vm.block = false;\r\n vm.StatusId = 5;\r\n vm.BOQList = lodash.filter(vm.BOQList, { 'PowStatus': 5 });\r\n\r\n }\r\n\r\n function fromApproved() {\r\n debugger;\r\n vm.block = false;\r\n vm.StatusId = 4;\r\n vm.BOQList = lodash.filter(vm.BOQList, { 'PowStatus': 4 });\r\n }\r\n\r\n vm.back = function() {\r\n debugger\r\n if (vm.StatusId === 3 || vm.StatusId ===2) {\r\n vm.wtn = true;\r\n } else if (vm.StatusId === 4 || vm.StatusId === 5 ) {\r\n vm.block = true;\r\n }\r\n\r\n }\r\n vm.frombackforApproval = function () {\r\n LoadFromCorrection();\r\n vm.isFormOpen = true;\r\n vm.isCorrection = true;\r\n vm.isDraft = false;\r\n }\r\n\r\n // vm.Back = function () {\r\n // vm.isFormOpen = false;\r\n // }\r\n\r\n function viewPointOfWork(row) {\r\n var data = {\r\n BoqData: row,\r\n isView: true\r\n };\r\n if (vm.StatusId == 4 && vm.block == false) {\r\n data.fromBlock = true;\r\n }\r\n\r\n $state.go('viewBillofQuantity', {\r\n data: data,\r\n //Mode: \"Manual\",\r\n Status: vm.StatusId\r\n\r\n })\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('billOfQuntityCtrl', billOfQuntityCtrl);\r\n\r\n /** @ngInject */\r\n function billOfQuntityCtrl($scope, $rootScope, $state, lodash, dialogs, $http, $location, $anchorScroll, AuthenticationService, ProjectIocaService, CompanyService, projectCreationService,\r\n IocaService, LocationSetupService, TierSetupService, BillOfQuntityService, FieldofConstructionService, CategoryofCAService,\r\n SubCategoryofCAService, TypeOfCAService, $uibModal) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.showBtn = true;\r\n vm.filter = {};\r\n vm.con = {};\r\n vm.PowList = [];\r\n\r\n $rootScope.isLogin = false;\r\n vm.FilterCountry = false;\r\n vm.allRowSelected = false;\r\n vm.workLocation = false;\r\n vm.isView = false;\r\n vm.woResult = false;\r\n vm.BoqEntryStatus = false;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.filterTiers = filterTiers;\r\n vm.getDescriptionBySelectedIOCA = getDescriptionBySelectedIOCA;\r\n vm.ExportData = ExportData;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.updateBillOfQuantity = updateBillOfQuantity;\r\n vm.calTotQty = calTotQty;\r\n vm.calTotQtyForGrid = calTotQtyForGrid;\r\n vm.clearIoca = clearIoca;\r\n vm.selectAll = selectAll;\r\n vm.selectItem = selectItem;\r\n vm.ImportData = ImportData;\r\n vm.saveBOQ = saveBOQ;\r\n // vm.viewItems = viewItems;\r\n vm.SendForApproval = SendForApproval;\r\n vm.RemoveBOQ = RemoveBOQ;\r\n vm.Reject = Reject;\r\n vm.Approve = Approve;\r\n vm.Block = Block;\r\n vm.Resubmit = Resubmit;\r\n clearTierSelection();\r\n vm.boq = {};\r\n vm.loadPowByLocation = loadPowByLocation;\r\n\r\n vm.cancel = cancel;\r\n\r\n var tier = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n if ($state.params.data != undefined) {\r\n vm.BoqEntryStatus = true;\r\n }\r\n vm.stateId = $state.params.Status;\r\n if(vm.stateId == 4){\r\n if($state.params.data.fromBlock == true) {\r\n vm.fromBlock =true;\r\n }\r\n } \r\n \r\n if (vm.stateId === 6) {\r\n var DimentionsBack = JSON.parse($state.params.data.BoqData.Dimentions)\r\n\r\n vm.Parameters = []\r\n for (var property in DimentionsBack.DimValues) {\r\n if (DimentionsBack.DimValues.hasOwnProperty(property)) {\r\n vm.Parameters.push({\r\n ParameterName: property\r\n });\r\n }\r\n }\r\n vm.LocationDetail = $state.params.data.BoqData.LocDtls\r\n }\r\n vm.Mode = $state.params.Mode;\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n getCompany();\r\n Init();\r\n ////////////////////\r\n\r\n function Init() {\r\n if (vm.stateId != 8) {\r\n if ($state.params.data.isView === true) {\r\n vm.BoqData = $state.params.data.BoqData;\r\n vm.Lastid = vm.BoqData.LastTierId;\r\n vm.boq.selectedProject = {};\r\n vm.boq.selectedProject.ProjectId = vm.BoqData.ProjectId;\r\n vm.boq.selectedLocation = {};\r\n vm.boq.selectedLocation.LocationId = vm.BoqData.LocationId;\r\n vm.boq.selectedIOCA = {};\r\n vm.boq.selectedIOCA.ProjectIocaId = vm.BoqData.ProjectIocaId;\r\n vm.filterObj = {\r\n \"filter\": {}\r\n };\r\n vm.filterObj.filter = JSON.parse(vm.BoqData.LocDtls);\r\n loadPowByLocation();\r\n // viewItems();\r\n vm.isView = true;\r\n if (vm.BoqData.SpecType === 'G') {\r\n vm.BoqData.SpecType = 'Generic'\r\n }\r\n else {\r\n vm.BoqData.SpecType = 'Specific'\r\n }\r\n }\r\n }\r\n else {\r\n vm.isView = false;\r\n }\r\n\r\n }\r\n\r\n function getCompany(callback) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n function selectRow() {\r\n var tempData = [];\r\n var tempstatus = [];\r\n for (var i in vm.PowList) {\r\n if (vm.PowList[i].isChecked) {\r\n if (vm.PowList[i].PowId != undefined) {\r\n tempData.push(vm.PowList[i].PowId);\r\n tempstatus.push(vm.PowList[i].StatusName);\r\n }\r\n }\r\n }\r\n var teststring = JSON.stringify(tempData);\r\n vm.tableStatus = JSON.stringify(tempstatus);\r\n vm.tableIds = teststring.substring(1, teststring.length - 1);\r\n return (vm.tableIds);\r\n return (vm.tableStatus);\r\n }\r\n\r\n function selectItem() {\r\n for (var i = 0; i < vm.PowList.length; i++) {\r\n if (!vm.PowList[i].isChecked) {\r\n vm.allRowSelected = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected = true;\r\n\r\n };\r\n function selectAll() {\r\n for (var i = 0; i < vm.PowList.length; i++) {\r\n vm.PowList[i].isChecked = vm.allRowSelected;\r\n }\r\n };\r\n // function viewItems() {\r\n // vm.isView = true;\r\n // vm.isLoading = true;\r\n // getCompany(function () {\r\n // for (var c in vm.CompanyList) {\r\n // if (vm.CompanyList[c].CompanyId === vm.BoqData.CompanyId) {\r\n // vm.boq.selectedCompany = vm.CompanyList[c];\r\n // }\r\n // }\r\n // getProjectByCompany(vm.BoqData.CompanyId, function () {\r\n // for (var c in vm.ProjectList) {\r\n // if (vm.ProjectList[c].ProjectId === vm.BoqData.ProjectId) {\r\n // vm.boq.selectedProject = vm.ProjectList[c];\r\n // }\r\n // }\r\n // getFocByPrjId(vm.BoqData.ProjectId, function () {\r\n // for (var c in vm.focList) {\r\n // if (vm.focList[c].FieldofConstructionId === vm.BoqData.FieldofConstructionId) {\r\n // vm.con.selectedFOC = vm.focList[c];\r\n // }\r\n // }\r\n // getCategoryByProject(vm.BoqData.ProjectId, vm.boq.selectedProject.CountryId, vm.BoqData.FieldofConstructionId, function () {\r\n // for (var c in vm.CategoryList) {\r\n // if (vm.CategoryList[c].CategoryId === vm.BoqData.CA_CategoryId) {\r\n // vm.boq.selectedCategory = vm.CategoryList[c];\r\n // }\r\n // }\r\n // getSubcategoryByCategory(vm.BoqData.ProjectId, vm.BoqData.CA_CategoryId, function () {\r\n // for (var c in vm.SubCategoryList) {\r\n // if (vm.SubCategoryList[c].SubCategoryId === vm.BoqData.CA_SubCategoryId) {\r\n // vm.boq.selectedSubCategory = vm.SubCategoryList[c];\r\n // }\r\n // }\r\n\r\n // getTypeofCABySubCategory(vm.BoqData.ProjectId, vm.BoqData.CA_CategoryId, vm.BoqData.CA_SubCategoryId, function () {\r\n // for (var c in vm.TypeofCAList) {\r\n // if (vm.TypeofCAList[c].TypeId === vm.BoqData.TypeOfCAId) {\r\n // vm.boq.selectedTypeOfCA = vm.TypeofCAList[c];\r\n // }\r\n // }\r\n // for (var c in vm.SpecTypeList) {\r\n // if (vm.SpecTypeList[c].Code === vm.BoqData.SpecType) {\r\n // vm.selectedSpecType = vm.SpecTypeList[c];\r\n // }\r\n // }\r\n // loadIocaList(function () {\r\n // for (var c in vm.IocaList) {\r\n // if (vm.IocaList[c].Id === vm.BoqData.IOCA_Id) {\r\n // vm.boq.selectedIOCA = vm.IocaList[c];\r\n // }\r\n // }\r\n\r\n // getLocationByProject(function () {\r\n // for (var c in vm.LocationMaster) {\r\n // if (vm.LocationMaster[c].LocationId === vm.BoqData.LocationId) {\r\n // vm.boq.selectedLocation = vm.LocationMaster[c];\r\n // }\r\n // }\r\n // loadPowByLocation();\r\n // });\r\n // });\r\n\r\n // });\r\n // });\r\n // });\r\n\r\n // });\r\n // });\r\n\r\n // });\r\n\r\n\r\n // }\r\n function checkrow() {\r\n var check = false;\r\n for (var i in vm.PowList) {\r\n if (vm.PowList[i].isChecked === true) {\r\n check = true;\r\n return check;\r\n }\r\n else {\r\n check = false;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n vm.isLoading = true;\r\n if (CompanyId) {\r\n var isWrkAlloc = true;\r\n projectCreationService.getAllApprovedProject(CompanyId, isWrkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.FilterCountry = false;\r\n // vm.boq.selectedProject = null;\r\n // vm.CountryList = [];\r\n vm.PowList = [];\r\n\r\n } else {\r\n vm.FilterCountry = false;\r\n vm.boq.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.PowList = [];\r\n\r\n }\r\n }\r\n\r\n\r\n function getFocByPrjId(prjId, callback) {\r\n vm.isLoading = true;\r\n clearFoc();\r\n if ($state.params.Status === 8) {\r\n var FromBoq = false\r\n }\r\n else {\r\n FromBoq = true\r\n var PowStatus = $state.params.Status\r\n }\r\n FieldofConstructionService.getFocByPrivilege(prjId, FromBoq, PowStatus).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n vm.isLoading = true;\r\n clearCountry();\r\n if (ProjectId) {\r\n ProjectIocaService.getAllProjectCountry(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId, callback) {\r\n vm.isLoading = true;\r\n clearCategory();\r\n if (CountryId && ProjectId && focId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId\r\n }\r\n if ($state.params.Status === 8) {\r\n var FromBoq = false\r\n }\r\n else {\r\n FromBoq = true\r\n var PowStatus = $state.params.Status\r\n }\r\n // ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n CategoryofCAService.getCategoryByPrivilege(obj.ProjectId, obj.FocId, obj.CountryId, FromBoq, PowStatus).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n function getSubcategoryByCategory(ProjectId, CategoryId, callback) {\r\n vm.isLoading = true;\r\n clearSubcategory();\r\n if (ProjectId && CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n if ($state.params.Status === 8) {\r\n var FromBoq = false\r\n }\r\n else {\r\n FromBoq = true\r\n var PowStatus = $state.params.Status\r\n }\r\n // ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n SubCategoryofCAService.GetSubCategoryByPrivilege(obj.ProjectId, obj.CategoryId, FromBoq, PowStatus).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Subcategory of CA\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Subcategory of CA\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId, callback) {\r\n vm.isLoading = true;\r\n clearType();\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId\r\n }\r\n if ($state.params.Status === 8) {\r\n var FromBoq = false\r\n }\r\n else {\r\n FromBoq = true\r\n var PowStatus = $state.params.Status\r\n }\r\n // ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n TypeOfCAService.getTypeByPrivilege(obj.ProjectId, obj.CategoryId, obj.SubCategoryId, FromBoq, PowStatus).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n function loadIocaList(callback) {\r\n vm.isLoading = true;\r\n clearIoca();\r\n var obj = {\r\n CountryId: vm.boq.selectedProject.CountryId,\r\n ProjectId: vm.boq.selectedProject.ProjectId,\r\n CA_CategoryId: vm.boq.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.boq.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.boq.selectedTypeOfCA.TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n isworkAlloc: false\r\n }\r\n if ($state.params.Status === 8) {\r\n obj.FromBoq = false\r\n }\r\n else {\r\n obj.FromBoq = true,\r\n obj.PowStatus = $state.params.Status,\r\n obj.UserId = loggedUser.UserId\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n\r\n\r\n }\r\n\r\n function getLocationByProject(callback) {\r\n vm.isLoading = true;\r\n clearTierSelection();\r\n var obj = {\r\n ProjectId: vm.boq.selectedProject.ProjectId\r\n }\r\n if ($state.params.Status === 8) {\r\n var FromBoq = false;\r\n var IOCA_Id = vm.boq.selectedIOCA.Id;\r\n }\r\n else {\r\n FromBoq = true\r\n var IOCA_Id = vm.boq.selectedIOCA.Id\r\n var PowStatus = $state.params.Status\r\n var isWorkAlloc = true\r\n }\r\n // LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n LocationSetupService.getLocationByPrivilege(obj.ProjectId, IOCA_Id, FromBoq, PowStatus, isWorkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Location\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Location\");\r\n });\r\n }\r\n\r\n function getDescriptionBySelectedIOCA(obj) {\r\n if (obj != undefined) {\r\n var strArr = obj.IocaParameters.Parameters.split(\",\");\r\n vm.Parameters = [];\r\n for (var i in strArr) {\r\n var temp = {\r\n \"ParameterName\": strArr[i]\r\n }\r\n vm.Parameters.push(temp);\r\n }\r\n } else {\r\n vm.Parameters = {};\r\n vm.workLocation = false;\r\n }\r\n getLocationByProject();\r\n }\r\n\r\n function getMaxTier(tierArr) {\r\n var maxTier = tierArr[0];\r\n lodash.forEach(tierArr, function (t) {\r\n if (getTierNo(t) > getTierNo(maxTier))\r\n maxTier = t;\r\n });\r\n return maxTier;\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTiersByLocationId(LocationId, ProjectId, callback) {\r\n vm.isLoading = true;\r\n clearTierSelection();\r\n if (LocationId) {\r\n vm.tierObj = JSON.parse(vm.boq.selectedLocation.Tiers);\r\n var tierArr = lodash.keys(vm.tierObj);\r\n vm.maxTier = getMaxTier(tierArr);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n // TierSetupService.getAllTierSetup(LocationId).then(function (res) {\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n ProjectIocaId: vm.boq.selectedIOCA.ProjectIocaId,\r\n IOCA_Id: vm.boq.selectedIOCA.Id\r\n }\r\n if ($state.params.Status === 8) {\r\n var FromBoq = false\r\n }\r\n else {\r\n FromBoq = true\r\n var PowStatus = $state.params.Status\r\n }\r\n TierSetupService.GetTierByPrivilege(obj.LocationId, obj.ProjectId, obj.IOCA_Id, obj.ProjectIocaId, FromBoq, PowStatus).then(function (res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.rawTierListData = JSON.parse(res.data[i].result).Tiers;\r\n }\r\n\r\n vm.tierList = [];\r\n lodash.forEach(vm.rawTierListData, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierName,\r\n Values: (t.TierName === \"Tier1\") ? t.Values : []\r\n };\r\n vm.tierList.push(temp);\r\n })\r\n // vm.tierList = [];\r\n // for (var properties in vm.tierObj) {\r\n // var temp = {\r\n // TierName: vm.tierObj[properties],\r\n // IsAdding: false,\r\n // TierType: properties\r\n // }\r\n // if (properties === 'Tier1') {\r\n // temp.Values = lodash.filter(vm.allTierData, {\r\n // 'TierName': vm.tierObj[properties]\r\n // });\r\n // }\r\n // vm.tierList.push(temp)\r\n // }\r\n // vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n // 'TierName': vm.currentTier\r\n // });\r\n //--loadPowByLocation();\r\n vm.allTierData = vm.tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n vm.PowList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadPowByLocation() {\r\n vm.isLoading = true;\r\n vm.PowList = [];\r\n if ($state.params.Status === 8) {\r\n vm.filterObj = {\r\n \"filter\": {}\r\n };\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (tier.selectedTierValue) {\r\n vm.filterObj.filter[tier.TierName] = tier.selectedTierValue.TierId\r\n }\r\n });\r\n }\r\n var obj = {\r\n \"ProjectId\": vm.boq.selectedProject.ProjectId,\r\n \"LocationId\": vm.boq.selectedLocation.LocationId,\r\n \"ProjectIocaId\": vm.boq.selectedIOCA.ProjectIocaId,\r\n \"TiersFilter\": JSON.stringify(vm.filterObj)\r\n }\r\n if ($state.params.Status === 1 || $state.params.Status === 8) {\r\n BillOfQuntityService.GetAllDrafts(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n debugger;\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n }\r\n \r\n }\r\n vm.isLoading = false;\r\n $state.params.data.isView = false;\r\n // Init();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n if ($state.params.Status === 3) {\r\n BillOfQuntityService.GetAllWaitingForApproval(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n }\r\n vm.PowList = lodash.filter(vm.PowList, { 'PowStatus': 3 });\r\n }\r\n vm.isLoading = false;\r\n $state.params.data.isView = false;\r\n Init();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n if ($state.params.Status === 5) {\r\n BillOfQuntityService.GetAllBlock(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n }\r\n vm.PowList = lodash.filter(vm.PowList, { 'PowStatus': 5 }); \r\n }\r\n vm.isLoading = false;\r\n $state.params.data.isView = false;\r\n Init();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n if ($state.params.Status === 2) {\r\n BillOfQuntityService.GetAllResubmitted(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n }\r\n vm.PowList = lodash.filter(vm.PowList, { 'PowStatus': 2 });\r\n }\r\n vm.isLoading = false;\r\n $state.params.data.isView = false;\r\n Init();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n if ($state.params.Status === 6) {\r\n BillOfQuntityService.GetAllBlockandBack(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n if (vm.PowList[i].PowStatus === 7) {\r\n vm.rNotes = JSON.parse(vm.PowList[i].RejectionNotes)\r\n }\r\n }\r\n \r\n }\r\n vm.isLoading = false;\r\n $state.params.data.isView = false;\r\n Init();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n if ($state.params.Status === 4) {\r\n BillOfQuntityService.getAllBOQApproved(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n }\r\n vm.PowList = lodash.filter(vm.PowList, { 'PowStatus': 4 });\r\n }\r\n vm.isLoading = false;\r\n $state.params.data.isView = false;\r\n Init();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n vm.isLoading = true;\r\n if (tier.selectedTierValue) { \r\n // var tempTier = \"Tier\" + (parseInt(tier.TierName.substring(4)) + 1);\r\n // vm.currentTier = vm.tierObj[tempTier];\r\n // vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n // 'TierName': vm.currentTier,\r\n // 'ParentTierId': tier.selectedTierValue.TierId\r\n // });\r\n // lodash.forEach(vm.tierList, function (t) {\r\n // if (t.TierName === tempTier) {\r\n // t.Values = vm.TierSetupList;\r\n // }\r\n // });\r\n // if (tier.TierName === vm.maxTier)\r\n // loadPowByLocation();\r\n // vm.Lastid = tier.selectedTierValue.TierId;\r\n // vm.tiers = {}\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTierValue.TierId });\r\n }\r\n });\r\n if (tier.TierName === vm.maxTier)\r\n loadPowByLocation();\r\n vm.Lastid = tier.selectedTierValue.TierId;\r\n\r\n vm.isLoading = false;\r\n }\r\n else {\r\n clearTierSelection();\r\n }\r\n }\r\n // function checkWorkOrder(Lastid, callback) {\r\n // vm.isLoading = true;\r\n // var obj = {\r\n // LastTierId: Lastid,\r\n // IOCA_Id: vm.boq.selectedIOCA.Id,\r\n // LocationId: vm.boq.selectedLocation.LocationId,\r\n // ProjectId: vm.boq.selectedProject.ProjectId\r\n // }\r\n // BillOfQuntityService.checkWO(obj).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // dialogs.notify('Warning', res.data.Message, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // vm.woResult = true;\r\n // vm.isLoading = false;\r\n // if (callback);\r\n // callback();\r\n // }\r\n // else {\r\n // vm.woResult = false;\r\n // }\r\n // });\r\n // }\r\n\r\n $scope.fileChanged = function (event) {\r\n if (event)\r\n if (event.target.files.length > 0) {\r\n vm.selectedFile = event.target.files[0];\r\n vm.IsFile = 1;\r\n } else {\r\n vm.IsFile = 0;\r\n }\r\n\r\n }\r\n\r\n function ExportData(tier) {\r\n vm.isLoading = true;\r\n var Filter = {}\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (tier.selectedTierValue != undefined || tier.selectedTierValue != null) {\r\n Filter[\"TireId\"] = tier.selectedTierValue.TierId;\r\n }\r\n });\r\n var objData = {\r\n CompanyName: vm.boq.selectedCompany.CompanyName,\r\n CompanyId: vm.boq.selectedCompany.CompanyId,\r\n ProjectName: vm.boq.selectedProject.ProjectName,\r\n ProjectId: vm.boq.selectedProject.ProjectId,\r\n BasicLocation: vm.boq.selectedLocation.BasicLocation,\r\n LocationId: vm.boq.selectedLocation.LocationId,\r\n ProjectIocaId: vm.boq.selectedIOCA.ProjectIocaId,\r\n TierId: Filter.TireId,\r\n IOCA_Id: vm.boq.selectedIOCA.Id,\r\n IOCA_Code: vm.boq.selectedIOCA.Code,\r\n UnitName: vm.boq.selectedIOCA.IocaUnit.UnitName,\r\n Unit_Id: vm.boq.selectedIOCA.IocaUnit.UnitId,\r\n Parameters: vm.boq.selectedIOCA.IocaParameters.Parameters.split(\",\")\r\n }\r\n ProjectIocaService.getAllForExport(objData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportExcelData = res.data;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/ms-excel\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = 'data.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.notify('Warning', '! No Data', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n if (err.status === 400) {\r\n dialogs.notify('Warning', '! No Data Found For Selected Tiers', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Boq Export\");\r\n }\r\n });\r\n }\r\n\r\n function updateBillOfQuantity(pow) {\r\n // debugger;\r\n // for (var i in pow.Dimentions) {\r\n // strArr.DimValues[pow.Dimentions[i].name] = pow.Dimentions[i].selectedValues\r\n // }\r\n //vm.Dimentions = JSON.stringify(strArr);\r\n var obj = {\r\n PowName: pow.PowName,\r\n PowQty: pow.PowQty,\r\n Dimentions: JSON.stringify(pow.Dimentions),\r\n PowId: pow.PowId,\r\n ActivityCount: pow.ActivityCount,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n\r\n BillOfQuntityService.UpdateBillOfQuantity(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess)\r\n $rootScope.showToaster('success', res.Message, \"Bill Of Quantity\");\r\n else\r\n $rootScope.showToaster('error', res.Message, \"Bill Of Quantity\");\r\n pow.isEdit = false;\r\n loadPowByLocation();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n function calTotQty() {\r\n var unit = 1;\r\n\r\n lodash.forEach(vm.Parameters, function (p) {\r\n if (p.selectedValue != undefined) {\r\n vm.showBtn = false;\r\n\r\n unit *= p.selectedValue\r\n } else {\r\n\r\n vm.showBtn = true;\r\n }\r\n\r\n })\r\n // if (vm.boq.ActivityCount > 0) {\r\n // vm.boq.PowQty = vm.boq.ActivityCount * unit;\r\n // }\r\n // else\r\n // vm.boq.PowQty = unit;\r\n \r\n if (vm.boq.ActivityCount > 0) {\r\n vm.boq.PowQty = vm.boq.ActivityCount * unit;\r\n }\r\n else {\r\n dialogs.notify('Warning', 'kindly enter a value greater than zero.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function calTotQtyForGrid(pow) {\r\n var unit = 1;\r\n lodash.forIn(pow.Dimentions.DimValues, function (value, key) {\r\n unit *= value;\r\n });\r\n\r\n if (pow.ActivityCount)\r\n pow.PowQty = pow.ActivityCount * unit;\r\n else\r\n pow.PowQty = unit;\r\n }\r\n\r\n function ImportData() {\r\n debugger;\r\n if (vm.IsFile === 1) {\r\n var formData = new FormData();\r\n formData.append('file', vm.selectedFile)\r\n\r\n ProjectIocaService.ImportBoq(formData).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'Bill of Quantity inserted Successfully', \"Bill Of Quantity\");\r\n vm.type = '';\r\n } else {\r\n dialogs.notify('Warning', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.type = '';\r\n }\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n if (err.status === 500) {\r\n dialogs.notify('error', 'Something went wrong! The file or file name already exists when imported', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Select File', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n function checkAnyParameterEntered() {\r\n if (vm.Parameters != undefined) {\r\n for (var i in vm.Parameters) {\r\n if (vm.Parameters[i].selectedValue) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (vm.boq.ActivityCount) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function saveBOQ() {\r\n debugger;\r\n vm.isLoading = true;\r\n // if (vm.Lastid != null || vm.Lastid != undefined) {\r\n // checkWorkOrder(vm.Lastid)\r\n // }\r\n if (vm.Parameters != undefined) {\r\n var dimentions = {\r\n DimValues: {}\r\n }\r\n for (var i in vm.Parameters) {\r\n if (vm.Parameters[i].selectedValue) {\r\n dimentions.DimValues[vm.Parameters[i].ParameterName] = vm.Parameters[i].selectedValue;\r\n } else {\r\n if (checkAnyParameterEntered()) {\r\n dialogs.notify('Warning', 'Invalid parameter values entered', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (vm.tierList != undefined) {\r\n var LocationDetail = {}\r\n\r\n for (var i in vm.tierList) {\r\n if (vm.tierList[i].selectedTierValue) {\r\n LocationDetail[vm.tierList[i].TierName] = vm.tierList[i].selectedTierValue.TierId;\r\n } else {\r\n // check validation\r\n dialogs.notify('Warning', 'Please select a ' + vm.tierList[i].Tier, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (vm.Lastid) {\r\n var objbOQ = {\r\n ProjectId: vm.boq.selectedProject.ProjectId,\r\n LocationId: vm.boq.selectedLocation.LocationId,\r\n IOCA_Id: vm.boq.selectedIOCA.Id,\r\n ProjectIocaId: vm.boq.selectedIOCA.ProjectIocaId,\r\n LastTierId: vm.Lastid,\r\n ActivityCount: vm.boq.ActivityCount,\r\n PowName: vm.boq.PowName,\r\n Dimentions: JSON.stringify(dimentions),\r\n PowQty: vm.boq.PowQty,\r\n LocationDetail: (vm.stateId != 6) ? JSON.stringify(LocationDetail) : vm.LocationDetail,\r\n CreatedBy: $rootScope.userId,\r\n StatusId: (vm.stateId == 6) ? 6 : 1\r\n }\r\n var check_wo_obj = {\r\n LastTierId: vm.Lastid,\r\n IOCA_Id: vm.boq.selectedIOCA.Id,\r\n LocationId: vm.boq.selectedLocation.LocationId,\r\n ProjectId: vm.boq.selectedProject.ProjectId\r\n }\r\n objbOQ.wo = check_wo_obj;\r\n ProjectIocaService.InsertBillOfQuantity(objbOQ).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Bill Of Quantity\");\r\n loadPowByLocation();\r\n cancel();\r\n // $state.go('boqDraft');\r\n\r\n } else {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('error', res.data.Message, \"Bill of Quantity\");\r\n }\r\n // vm.boq = {};\r\n // vm.selectedSpecType = null;\r\n },\r\n\r\n function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Select Location/Tier', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function SendForApproval() {\r\n if (checkrow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to Send Bill Of Quantity For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n PowId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n BillOfQuntityService.SendForApproval(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send BoQ Successfully', \"Bill Of Quantity\");\r\n loadPowByLocation();\r\n vm.allRowSelected = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Send Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Send Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n else {\r\n dialogs.notify('select',\r\n 'Please select at least one Point of work.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n function RemoveBOQ() {\r\n if (checkrow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n PowId: selectRow()\r\n }\r\n BillOfQuntityService.removeBOQ(obj).then(function (res) {\r\n if (res.data.IsSuccess == true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Bill Of Quantity\");\r\n loadPowByLocation();\r\n vm.allRowSelected = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Bill Of Quantity\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Internel Server Error\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n else {\r\n dialogs.notify('select',\r\n 'Please select at least one Point of work.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function Reject() {\r\n if (checkrow() === true) {\r\n var boq = {\r\n PowId: selectRow(vm.tableIds),\r\n Status: selectRow(vm.tableStatus)\r\n\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/constructionProjectSetup/boQ/boqRejection.html',\r\n controller: 'BoQRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return boq;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n loadPowByLocation();\r\n vm.allRowSelected = false;\r\n }, function () {\r\n });\r\n }\r\n else {\r\n dialogs.notify('select',\r\n 'Please select at least one Point of work.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function Approve() {\r\n if (checkrow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Approve the Bill Of Quantity', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n PowId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n BillOfQuntityService.Approved(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Bill Of Quantity\");\r\n loadPowByLocation();\r\n vm.allRowSelected = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Bill Of Quantity Approve\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Bill Of Quantity Approve\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n else {\r\n dialogs.notify('select',\r\n 'Please select at least one Point of work.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n function Block() {\r\n if (checkrow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Block the Bill Of Quantity', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n PowId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n BillOfQuntityService.Block(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Blocked Successfully', \"Bill Of Quantity\");\r\n loadPowByLocation();\r\n vm.allRowSelected = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Bill Of Quantity Blocked\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Bill Of Quantity Blocked\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n else {\r\n dialogs.notify('select',\r\n 'Please select at least one Point of work.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function Resubmit() {\r\n if (checkrow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Resubmit the Bill Of Quantity', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n PowId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n BillOfQuntityService.Resubmit(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Resubmit Successfully', \"Bill Of Quantity\");\r\n loadPowByLocation();\r\n vm.allRowSelected = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Bill Of Quantity Resubmit\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Bill Of Quantity Resubmit\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n });\r\n\r\n }\r\n else {\r\n dialogs.notify('select',\r\n 'Please select at least one Point of work.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n function cancel() {\r\n\r\n vm.boq.PowName = '';\r\n vm.boq.ActivityCount = '';\r\n vm.boq.PowQty = '';\r\n for (var i in vm.Parameters) {\r\n if (vm.Parameters[i].selectedValue) {\r\n vm.Parameters[i].selectedValue = '';\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.back = function () {\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n tier.selectedTierValue = null;\r\n // tier.Values = [];\r\n })\r\n }\r\n\r\n function clearIoca() {\r\n vm.boq.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n clearTierSelection();\r\n vm.boq.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.boq.PowName = null;\r\n vm.boq.ActivityCount = null;\r\n vm.boq.PowQty = null;\r\n }\r\n\r\n function clearType() {\r\n clearIoca();\r\n vm.selectedSpecType = null;\r\n vm.boq.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n }\r\n\r\n function clearSubcategory() {\r\n clearType();\r\n clearIoca();\r\n vm.boq.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n }\r\n\r\n function clearCategory() {\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n vm.boq.selectedCategory = null;\r\n vm.CategoryList = [];\r\n }\r\n\r\n function clearCountry() {\r\n clearCategory()\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n // vm.boq.selectedProject = null;\r\n // vm.CountryList = [];\r\n }\r\n\r\n function clearFoc() {\r\n clearCountry()\r\n clearCategory()\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n vm.con.selectedFOC = null;\r\n vm.focList = [];\r\n vm.FilterCountry = true;\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('BoQRejectionCtrl', BoQRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function BoQRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state,\r\n AuthenticationService, BillOfQuntityService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser=AuthenticationService.getLoggedUserDetails();\r\n vm.SaveRejection = function () {\r\n var obj= {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n \"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n\r\n var objReject = { \r\n PowId: items.PowId, \r\n RejectionNotes:JSON.stringify(obj),\r\n ModifiedBy : loggedUser.UserId\r\n }\r\n \r\n BillOfQuntityService.AddRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"BoQ Rejection\");\r\n $uibModalInstance.close(); \r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject BoQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('modifiedBoQCtrl', modifiedBoQCtrl);\r\n\r\n /** @ngInject */\r\n function modifiedBoQCtrl($scope, $rootScope, $state, lodash, dialogs, $http, $location, $anchorScroll, AuthenticationService, ProjectIocaService, CompanyService, projectCreationService,\r\n IocaService, LocationSetupService, TierSetupService, BillOfQuntityService, $uibModal,ItemToItemService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.filter = {};\r\n vm.con = {}; \r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeList = [];\r\n vm.IocaList = [];\r\n vm.PowList = [];\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getMaxTier = getMaxTier;\r\n vm.getTierNo = getTierNo;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.filterTiers = filterTiers;\r\n vm.updateBillOfQuantity = updateBillOfQuantity;\r\n vm.calTotQtyForGrid = calTotQtyForGrid;\r\n var BoQStatus = 4;\r\n vm.loadPowByLocation = loadPowByLocation;\r\n\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n /////\r\n function Init() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.FilterCountry = false;\r\n vm.PowList = [];\r\n\r\n } else {\r\n vm.FilterCountry = false;\r\n vm.boq.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.PowList = [];\r\n \r\n }\r\n vm.selectedProject=null;\r\n \r\n }\r\n\r\n\r\n function getFocByPrjId(prjId) {\r\n //clearFoc();\r\n // ProjectIocaService.getAllProjectFoc(prjId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.focList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n // });\r\n\r\n var obj = {\r\n LocationId: \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: 4\r\n } \r\n ItemToItemService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n // clearCategory();\r\n // if (CountryId && ProjectId && focId) {\r\n // var obj = {\r\n // ProjectId: ProjectId,\r\n // CountryId: CountryId,\r\n // FocId: focId\r\n // }\r\n // ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CategoryList = res.data;\r\n // if (!vm.CategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n // }\r\n\r\n if (CountryId && ProjectId && focId) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: \"\",\r\n ProjectId: ProjectId,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n } \r\n ItemToItemService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category Master\");\r\n });\r\n vm.boq.selectedCategory= null;\r\n vm.boq.selectedSubCategory= null;\r\n vm.boq.selectedTypeOfCA= null;\r\n vm.selectedCASpecType=null;\r\n vm.boq.selectedIOCA= null;\r\n \r\n }\r\n \r\n }\r\n\r\n // function getCategoryByProject(ProjectId, CountryId, focId) {\r\n // //clearCategory();\r\n // if (CountryId && ProjectId && focId) {\r\n // var obj = {\r\n // ProjectId: ProjectId,\r\n // CountryId: CountryId,\r\n // FocId: focId\r\n // }\r\n // ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CategoryList = res.data;\r\n // if (!vm.CategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n // }\r\n // }\r\n\r\n function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // clearSubcategory();\r\n debugger;\r\n if (ProjectId && CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n // clearType();\r\n debugger;\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId\r\n }\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function loadIocaList() {\r\n // clearIoca();\r\n debugger;\r\n var obj = {\r\n CountryId: vm.selectedProject.CountryId,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CA_CategoryId: vm.boq.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.boq.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.boq.selectedTypeOfCA.TypeId,\r\n SpecType: vm.selectedCASpecType.Code,\r\n isworkAlloc:false\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n\r\n function getDescriptionBySelectedIOCA(obj) {\r\n if (obj != undefined) {\r\n var strArr = obj.IocaParameters.Parameters.split(\",\");\r\n vm.Parameters = [];\r\n for (var i in strArr) {\r\n var temp = {\r\n \"ParameterName\": strArr[i]\r\n }\r\n vm.Parameters.push(temp);\r\n }\r\n } else {\r\n vm.Parameters = {};\r\n vm.workLocation = false;\r\n }\r\n }\r\n\r\n\r\n // ***** Location Code **** //\r\n\r\n function getLocationByProject() {\r\n //clearTierSelection();\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Location\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Location\");\r\n });\r\n }\r\n\r\n\r\n function getMaxTier(tierArr) {\r\n var maxTier = tierArr[0];\r\n lodash.forEach(tierArr, function (t) {\r\n if (getTierNo(t) > getTierNo(maxTier))\r\n maxTier = t;\r\n });\r\n return maxTier;\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTiersByLocationId(LocationId, ProjectId, callback) {\r\n //clearTierSelection();\r\n debugger;\r\n if (LocationId) {\r\n vm.tierObj = JSON.parse(vm.boq.selectedLocation.Tiers);\r\n var tierArr = lodash.keys(vm.tierObj);\r\n vm.maxTier = getMaxTier(tierArr);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n TierSetupService.getAllTierSetup(LocationId).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.tierObj[properties]\r\n });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier\r\n });\r\n loadPowByLocation();\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n vm.PowList = [];\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n debugger;\r\n if (tier.selectedTierValue) {\r\n var tempTier = \"Tier\" + (parseInt(tier.TierType.substring(4)) + 1);\r\n vm.currentTier = vm.tierObj[tempTier];\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier,\r\n 'ParentTierId': tier.selectedTierValue.TierId\r\n });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === tempTier) {\r\n t.Values = vm.TierSetupList;\r\n }\r\n });\r\n if (tier.TierType === vm.maxTier)\r\n loadPowByLocation();\r\n vm.Lastid = tier.selectedTierValue.TierId;\r\n vm.tiers = {}\r\n }\r\n else {\r\n clearTierSelection();\r\n }\r\n }\r\n\r\n\r\n //Get all Selection in Table\r\n\r\n function selectRow() {\r\n var tempData = [];\r\n var tempstatus = [];\r\n for (var i in vm.PowList) {\r\n if (vm.PowList[i].isChecked) {\r\n if (vm.PowList[i].PowId != undefined) {\r\n tempData.push(vm.PowList[i].PowId);\r\n tempstatus.push(vm.PowList[i].StatusName);\r\n }\r\n }\r\n }\r\n var teststring = JSON.stringify(tempData);\r\n vm.tableStatus = JSON.stringify(tempstatus);\r\n vm.tableIds = teststring.substring(1, teststring.length - 1)\r\n return (vm.tableIds);\r\n return (vm.tableStatus);\r\n }\r\n function selectItem() {\r\n for (var i = 0; i < vm.PowList.length; i++) {\r\n if (!vm.PowList[i].isChecked) {\r\n vm.allRowSelected = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected = true;\r\n\r\n };\r\n function selectAll() {\r\n for (var i = 0; i < vm.PowList.length; i++) {\r\n vm.PowList[i].isChecked = vm.allRowSelected;\r\n }\r\n };\r\n\r\n function loadPowByLocation() {\r\n debugger;\r\n vm.isLoading = true;\r\n vm.PowList = [];\r\n var filterObj = {\r\n \"filter\": {}\r\n };\r\n lodash.forEach(vm.tierList, function (tier) {\r\n\r\n if (tier.selectedTierValue) {\r\n filterObj.filter[tier.TierType] = tier.selectedTierValue.TierId\r\n }\r\n });\r\n var obj = {\r\n \"ProjectId\": vm.selectedProject.ProjectId,\r\n \"LocationId\": vm.boq.selectedLocation.LocationId,\r\n \"ProjectIocaId\": vm.boq.selectedIOCA.ProjectIocaId,\r\n \"TiersFilter\": JSON.stringify(filterObj)\r\n } \r\n if (BoQStatus === 4) {\r\n BillOfQuntityService.getAllFilterBOQApproved(obj).then(function (res) {\r\n if (res.status === 200) {\r\n lodash.forEach(res.data, function (pow) {\r\n pow.Dimentions = JSON.parse(pow.Dimentions);\r\n pow.LocationDetail = JSON.parse(pow.LocationDetail);\r\n pow.TierDetail = JSON.parse(pow.TierDetail);\r\n });\r\n vm.PowList = res.data;\r\n vm.powCount = vm.PowList.length;\r\n\r\n vm.myTotal = 0;\r\n for (var i = 0; i < vm.powCount; i++) {\r\n vm.myTotal += parseFloat(vm.PowList[i].PowQty);\r\n }\r\n }\r\n vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n function updateBillOfQuantity(pow) {\r\n // debugger;\r\n // for (var i in pow.Dimentions) {\r\n // strArr.DimValues[pow.Dimentions[i].name] = pow.Dimentions[i].selectedValues\r\n // }\r\n //vm.Dimentions = JSON.stringify(strArr);\r\n var obj = {\r\n PowName: pow.PowName,\r\n PowQty: pow.PowQty,\r\n Dimentions: JSON.stringify(pow.Dimentions),\r\n PowId: pow.PowId,\r\n ActivityCount: pow.ActivityCount,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n\r\n BillOfQuntityService.UpdateBillOfQuantity(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess)\r\n $rootScope.showToaster('success', res.Message, \"Bill Of Quantity\");\r\n else\r\n $rootScope.showToaster('error', res.Message, \"Bill Of Quantity\");\r\n pow.isEdit = false;\r\n loadPowByLocation();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n // function calTotQty() {\r\n // var unit = 1;\r\n // lodash.forEach(vm.Parameters, function (p) {\r\n // if (p.selectedValue)\r\n // unit *= p.selectedValue\r\n // })\r\n // if (vm.boq.ActivityCount)\r\n // vm.boq.PowQty = vm.boq.ActivityCount * unit;\r\n // else\r\n // vm.boq.PowQty = unit;\r\n // }\r\n\r\n function calTotQtyForGrid(pow) {\r\n var unit = 1;\r\n lodash.forIn(pow.Dimentions.DimValues, function (value, key) {\r\n unit *= value;\r\n });\r\n\r\n if (pow.ActivityCount)\r\n pow.PowQty = pow.ActivityCount * unit;\r\n else\r\n pow.PowQty = unit;\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('boQInitiationCtrl', boQInitiationCtrl);\r\n\r\n /** @ngInject */\r\n function boQInitiationCtrl($scope, $http, $rootScope, lodash, dialogs, $state, BillOfQuntityService, AuthenticationService, CompanyService,\r\n projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getDrafts = getDrafts;\r\n\r\n vm.updateBillOfQuantity = updateBillOfQuantity;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n //////////////\r\n\r\n //// Draft All List\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n debugger;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Project available selected Company', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function getDrafts(ProjectId) {\r\n BillOfQuntityService.GetAllDrafts(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n for (var i in vm.DraftList) {\r\n\r\n var dim = JSON.parse(vm.DraftList[i].Dimentions);\r\n debugger;\r\n vm.Dimentions = [];\r\n for (var property in dim.DimValues) {\r\n if (dim.DimValues.hasOwnProperty(property)) {\r\n vm.Dimentions.push({\r\n name: property,\r\n selectedValues: dim.DimValues[property]\r\n });\r\n }\r\n }\r\n vm.DraftList[i].Dimentions = vm.Dimentions;\r\n\r\n var loc = JSON.parse(vm.DraftList[i].LocationDetail);\r\n vm.LocationDetail = [];\r\n for (var property in loc) {\r\n if (loc.hasOwnProperty(property)) {\r\n vm.LocationDetail.push({\r\n TierName: property,\r\n TierValue: loc[property]\r\n })\r\n }\r\n }\r\n vm.DraftList[i].LocationDetail = vm.LocationDetail;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Bill Of Quantity\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Bill Of Quantity\");\r\n });\r\n }\r\n\r\n function Create() {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: true\r\n }\r\n $state.go('billofQuantity', {\r\n data: data\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n vm.viewProject = function(row) {\r\n var data = {\r\n isEditing: true,\r\n StatesId: 2,\r\n project: row,\r\n isView: true\r\n };\r\n\r\n $state.go('billofQuantity', {\r\n data: data\r\n })\r\n }\r\n\r\n function updateBillOfQuantity(row) {\r\n var strArr = {\r\n DimValues: {}\r\n };\r\n debugger;\r\n for (var i in row.Dimentions) {\r\n strArr.DimValues[row.Dimentions[i].name] = row.Dimentions[i].selectedValues\r\n }\r\n vm.Dimentions = JSON.stringify(strArr);\r\n var obj = {\r\n PowName: row.PowName,\r\n PowQty: row.PowQty,\r\n Dimentions: vm.Dimentions,\r\n PowId: row.PowId,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n BillOfQuntityService.UpdateBillOfQuantity(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Bill Of Quantity Updated Successfully', \"Bill Of Quantity\");\r\n row.isEdit = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.costvariationReport')\r\n .controller('costvariationReportCtrl', costvariationReportCtrl);\r\n\r\n /** @ngInject */\r\n function costvariationReportCtrl($rootScope, $filter, lodash, dialogs, $http, budgetReportService, projectCreationService, planningReportService,\r\n LocationSetupService, estimationReportaService, TierSetupService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowCostVariReport = ShowCostVariReport;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n vm.LoadBudgetForList = LoadBudgetForList;\r\n vm.getPlanType = getPlanType;\r\n vm.getselectedPeriodType = getselectedPeriodType;\r\n vm.getselectedviewType = getselectedviewType;\r\n vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n //vm.RateBasedOn = RateBasedOn;\r\n vm.plan = {};\r\n vm.ClearDWProject = ClearDWProject;\r\n vm.ClearDWBudgetFor = ClearDWBudgetFor;\r\n vm.ClearDWSelectFor = ClearDWSelectFor;\r\n vm.ClearDWReportType = ClearDWReportType;\r\n vm.ClearDWLocCA = ClearDWLocCA;\r\n //vm.ClearDWReportViewType = ClearDWReportViewType;\r\n vm.cancel = cancel;\r\n\r\n\r\n\r\n\r\n vm.selectedRequirementBased = [{ Id: 2 }]\r\n vm.basedOnRequirementList = [{ Id: 2 }]\r\n\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n // Init DDL Datas\r\n vm.SpecTypeList = [{ SpecTypeName: 'All', Code: '' }, { SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n // vm.ReportTypeList = [{ ReportTypeName: 'Category', ReportTypeId: '1' },\r\n // { ReportTypeName: 'Sub-Category', ReportTypeId: '2' },\r\n // { ReportTypeName: 'Type', ReportTypeId: '3' },\r\n // { ReportTypeName: 'IOCA', ReportTypeId: '4' }\r\n // // , { ReportTypeName: 'Consolidated', ReportTypeId: '2' }\r\n // ];\r\n\r\n vm.ReportList = [ //{ ReportListName: 'Detail', ReportListId: '1' },\r\n { ReportListName: 'Consolidated', ReportListId: '2' }\r\n ];\r\n\r\n // vm.selectedRateForList = [{ RateForName: 'Initial Rate', RateForId: '0' },\r\n // { RateForName: 'Current Rate', RateForId: '1' },\r\n // { RateForName: 'Rate On', RateForId: '2' },\r\n // // , { ReportTypeName: 'Consolidated', ReportTypeId: '2' }\r\n // ];\r\n\r\n // Need To remove\r\n vm.VariTypeList = [\r\n //{ VariTypeName: 'Total Work', Code: '1' }, \r\n { VariTypeName: 'Completed Work', Code: '2' }\r\n //, { VariTypeName: 'Balance Work', Code: '3' }\r\n ];\r\n vm.ReportBasedOnList = [{ ReportBasedOnName: 'Estimated Qty To Actual Qty', ReportBasedOnId: '1' }];\r\n vm.RateBasedOnList = [ //{ RateBasedonName: 'Basic Rate', RateBasedonId: 1 },{ RateBasedonName: 'Schedule of Rate', RateBasedonId: 2 },\r\n { RateBasedonName: 'Work Order', RateBasedonId: 3 }\r\n ];\r\n vm.ReportViewBasedOnList = [{ ReportViewName: 'Construction Activity Wise', ReportViewId: 1 }, { ReportViewName: 'Location Wise', ReportViewId: 2 }];\r\n\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n getProjectByCompany(CompanyId)\r\n } else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Budget For\r\n function LoadBudgetForList() {\r\n debugger;\r\n //ClearDWProject();\r\n planningReportService.getLoadBudgetForList().then(function(res) {\r\n if (res.status === 200) {\r\n vm.BudgetForList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Budget For List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Budget For List\");\r\n });\r\n }\r\n\r\n function getPlanType() {\r\n debugger;\r\n ClearDWBudgetFor();\r\n planningReportService.getPlanType().then(function(res) {\r\n if (res.status === 200) {\r\n vm.PlanForList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Select For List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Select For List\");\r\n });\r\n }\r\n\r\n function getselectedPeriodType() {\r\n debugger;\r\n ClearDWSelectFor();\r\n planningReportService.getselectedPeriodType().then(function(res) {\r\n if (res.status === 200) {\r\n vm.PeriodList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Select For List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Select For List\");\r\n });\r\n }\r\n\r\n function getselectedviewType() {\r\n debugger;\r\n var obj = {\r\n p_Code: vm.selectedPeriod.Code\r\n }\r\n ClearDWTypeofBudget();\r\n planningReportService.getselectedviewType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PeriodTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Select For List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Select For List\");\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region Event for Print \r\n function ShowCostVariReport() {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var tiers = buildFilterString();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n //var strHr = vm.selectedPeriod.Code;\r\n var strHeading = null;\r\n var strheadertype = null;\r\n //vm.selectedReportViewBasedOn.ReportViewName\r\n //var strtype = (vm.selectedBudgetFor.BudgetTypeId === 0) ? 'Total Budget' : vm.selectedBudgetFor.BudgetType + ' Budget'\r\n\r\n\r\n\r\n if (vm.selectedReportViewBasedOn.ReportViewId === 1) {\r\n if (vm.selectedLocation.length === 1) {\r\n strheadertype = ' Item of Construction Activity And ' + vm.CostVariReport.Tier.TierName + ' Wise';\r\n } else {\r\n strheadertype = ' Item of Construction Activity And All Location Wise';\r\n }\r\n }\r\n if (vm.selectedReportViewBasedOn.ReportViewId === 2) {\r\n if (vm.selectedLocation.length === 1) {\r\n strheadertype = vm.CostVariReport.Tier.TierName + ' Wise';\r\n } else {\r\n strheadertype = ' All Location Wise';\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n strHeading = ' Cost Variation Report Between Estimated Qty And Actual Completed Qty of Work Rate Based on ' + vm.selectedRateBasedOn.RateBasedonName + ' - ' + ' ' + strheadertype;\r\n\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n var ReportTierType = null;\r\n if (vm.CostVariReport != undefined) {\r\n ReportTierType = vm.CostVariReport.Tier.TierType\r\n }\r\n\r\n //Location\r\n var Arr1 = [];\r\n for (var i in vm.selectedLocation) {\r\n Arr1.push(vm.selectedLocation[i].LocationId);\r\n }\r\n vm.LocationId = Arr1.join();\r\n\r\n\r\n\r\n debugger;\r\n\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n LocationId: vm.LocationId,\r\n Tiers: tiers,\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n TierType: ReportTierType,\r\n ReportTypeId: vm.selectedReportViewBasedOn.ReportViewId,\r\n\r\n }\r\n\r\n // console.log(obj);\r\n if (vm.selectedLocation.length === 1) {\r\n obj.ReportFor = 2\r\n } else {\r\n obj.ReportFor = 1\r\n }\r\n\r\n\r\n\r\n estimationReportaService.ShowCostVariationReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Something when to wrong', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Clear\r\n //#endregion\r\n\r\n //#region Load Construction Activity\r\n function getFocByPrjId(prjId) {\r\n debugger;\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: prjId,\r\n Status: 4\r\n }\r\n GetReportFor(prjId);\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n estimationReportaService.getBoQFoc(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.selectedReportFor = null;\r\n if (vm.focList.length < 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id\r\n Status: 4\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n //getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n\r\n if (CountryId && ProjectId && focId) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n // ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n // Status: vm.selectedRequirement.Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n estimationReportaService.getBoQCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n function getSubcategoryByCategory() {\r\n //clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n // ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n //Status: vm.RequirementList[0].Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n // ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n // //Status: vm.RequirementList[0].Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n // ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n // Status: vm.selectedRequirement.Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n }\r\n\r\n // function getLocationByProject(Id) {\r\n // var obj = {\r\n // ProjectId: Id\r\n // }\r\n // debugger;\r\n // LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationList = res.data;\r\n // getFocByPrjId(Id)\r\n // if (!vm.LocationList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // } else {\r\n // vm.FilterCountry = true;\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n // }\r\n\r\n function getLocationByProject(Id) {\r\n debugger;\r\n var obj = {\r\n ProjectId: Id\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n $rootScope.showToaster('info', 'There is no work Location available selected Project', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n // getFocByPrjId(vm.selectedProject.ProjectId);\r\n vm.selectedVariFor=null;\r\n vm.selectedReportBasedOn= null;\r\n vm.selectedRateBasedOn= null;\r\n vm.selectedReportViewBasedOn= null;\r\n\r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n // function filterTiers(IocaTier) {\r\n // debugger;\r\n // if (IocaTier.selectedIocatireValue) {\r\n // var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n // var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n // lodash.forEach(vm.allTierData, function (t) {\r\n // if (t.TierName === tempTier) {\r\n // t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n // }\r\n // });\r\n\r\n // // var maxTier = lodash.maxBy(vm.allTierData, function (t) {\r\n // // return getTierNo(t.TierNo);\r\n // // });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.allTierData) {\r\n // if (vm.allTierData[i].selectedIocatireValue) {\r\n // vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n // }\r\n // }\r\n\r\n // //getCountryByTiers(vm.Arr);\r\n // } else {\r\n // clearTierSelection();\r\n // }\r\n\r\n // }\r\n function filterTiers(tier) {\r\n var tempTier = \"Tier\" + (parseInt(tier.TierType.substring(4)) + 1);\r\n vm.currentTier = vm.tierObj[tempTier];\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier,\r\n 'ParentTierId': tier.selectedTierValue.TierId\r\n });\r\n lodash.forEach(vm.tierList, function(t) {\r\n if (t.TierType === tempTier) {\r\n t.Values = vm.TierSetupList;\r\n }\r\n\r\n });\r\n\r\n if (vm.selectedReportViewBasedOn.ReportViewId === 2) {\r\n getFocByPrjId(vm.selectedProject.ProjectId);\r\n // getCountryByProject();\r\n }\r\n\r\n }\r\n\r\n function buildFilterString() {\r\n var tiers = {\r\n filter: {}\r\n };\r\n lodash.forEach(vm.tierList, function(tier) {\r\n if (tier.selectedTierValue)\r\n tiers.filter[tier.TierType] = tier.selectedTierValue.TierId;\r\n });\r\n return JSON.stringify(tiers);\r\n }\r\n\r\n\r\n // function getTiersByLocation(tier) {\r\n // debugger;\r\n // clearTierSelection()\r\n // var obj = {\r\n // ProjectId: vm.selectedProject.ProjectId,\r\n // LocationId: vm.selectedLocation.LocationId\r\n // }\r\n // ItemToItemService.getTiersFromIOCA(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.strArr = JSON.parse(res.data.result);\r\n // vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n // vm.ProjectIOCATiersList = [];\r\n // var tierList = [];\r\n // lodash.forEach(vm.strArr.Tiers, function (t) {\r\n // var temp = {\r\n // Tier: t.Tier,\r\n // TierNo: t.TierNo,\r\n // Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n // };\r\n // tierList.push(temp);\r\n // vm.allTierData = tierList;\r\n // })\r\n // vm.ProjectIOCATiersList = tierList;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n // }\r\n // },\r\n // function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n // });\r\n // getFocByPrjId();\r\n // }\r\n\r\n\r\n function getTiersByLocation(ProjectId, callback) {\r\n //ClearMethod();\r\n debugger;\r\n if (vm.selectedLocation != undefined) {\r\n if (vm.selectedLocation.length == 1) {\r\n vm.tierObj = JSON.parse(vm.selectedLocation[0].Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n\r\n TierSetupService.getAllTierSetup(vm.selectedLocation[0].LocationId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n TierHeaderName: vm.tierObj[properties] + ' ' + 'Wise',\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.tierObj[properties]\r\n });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier\r\n });\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n getFocByPrjId(vm.selectedProject.ProjectId);\r\n }\r\n }\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function(IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function() {\r\n\r\n getselectedviewType();\r\n\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n } else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n } else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n vm.getDate = function() {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n }\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n function GetQuarterly() {\r\n debugger;\r\n if (vm.selectedPeriod.Code == 'Q') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Daily Report \r\n\r\n\r\n //****** Finalized Planning *******/\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n //vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */ \r\n\r\n //#region Clear\r\n function ClearDWProject() {\r\n vm.selectedVariFor = null;\r\n ClearDWBudgetFor();\r\n }\r\n\r\n function ClearDWBudgetFor() {\r\n vm.selectedReportBasedOn = null;\r\n //vm.PlanForList = [];\r\n ClearDWSelectFor();\r\n }\r\n\r\n function ClearDWSelectFor() {\r\n vm.selectedRateBasedOn = null;\r\n //ClearDWReportViewType();\r\n }\r\n\r\n function ClearDWReportType() {\r\n vm.selectedRateBasedOn = null;\r\n //ClearDWReportViewType();\r\n }\r\n\r\n // function ClearDWReportViewType() {\r\n // vm.selectedReportList = null;\r\n // //vm.PeriodTypeList = [];\r\n // }\r\n\r\n function ClearDWLocCA() {\r\n vm.selectedLocation = null;\r\n tier.selectedTierValue = null;\r\n vm.CostVariReport.Tier = null;\r\n vm.selectedfoc = null;\r\n //vm.PeriodTypeList = [];\r\n }\r\n\r\n\r\n vm.resetForm = function() {\r\n vm.CostVariationReportForm.$setUntouched();\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.CostVariationReportForm = {};\r\n vm.selectedProject= null;\r\n vm.selectedVariFor= null;\r\n vm.selectedReportBasedOn= null;\r\n vm.selectedRateBasedOn= null;\r\n vm.selectedReportViewBasedOn= null;\r\n }\r\n //#endregion\r\n //******** */ \r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('IndentCtrl', IndentCtrl);\r\n\r\n /** @ngInject */\r\n function IndentCtrl($rootScope, lodash, $scope, dialogs, $state, $http, CompanyService,\r\n projectCreationService, AuthenticationService, IndentService, $filter, $uibModal) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n vm.tableShow = false;\r\n $rootScope.isLogin = false;\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeList = [];\r\n vm.IocaList = [];\r\n vm.LocationList = [];\r\n vm.IOMList = [];\r\n vm.CategoryMaterialList = [];\r\n vm.SubCategoryMaterialList = [];\r\n vm.TypeofMaterialList = [];\r\n vm.CategoryMachinaryList = [];\r\n vm.SubCategoryMachinaryList = [];\r\n vm.TypeofMachinaryList = [];\r\n vm.CategoryConsumableList = [];\r\n vm.tempIoca = [];\r\n vm.indent = {};\r\n var viewData = {};\r\n // Properties \r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n vm.isEditing = false;\r\n vm.isAdding = false;\r\n vm.isFormOpen = true;\r\n vm.isView = false;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n // Construction Activity Methods\r\n vm.getCategoryofCA = getCategoryofCA;\r\n vm.getSubcategoryofCA = getSubcategoryofCA;\r\n vm.getTypeofCA = getTypeofCA;\r\n vm.getioca = getioca;\r\n //Location Methods \r\n vm.getTier = getTier;\r\n vm.filterTiers = filterTiers;\r\n vm.getLocation = getLocation;\r\n //Material Methods\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.getSubcategoryofMaterial = getSubcategoryofMaterial;\r\n vm.getTypeofMaterial = getTypeofMaterial;\r\n vm.getIOM = getIOM;\r\n vm.getIndentByStatus = getIndentByStatus;\r\n //Machinery Methods\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.getSubcategoryofMachinary = getSubcategoryofMachinary;\r\n vm.getTypeofMachinary = getTypeofMachinary;\r\n vm.getIOMH = getIOMH;\r\n vm.getMachineryIndentByStatus = getMachineryIndentByStatus;\r\n //Consumable Methods\r\n vm.getCategoryofConsumable = getCategoryofConsumable;\r\n vm.getTypeofConsumable = getTypeofConsumable;\r\n vm.getConsumableIndentByStatus = getConsumableIndentByStatus;\r\n //Indent Methods\r\n vm.selectRow = selectRow;\r\n vm.selectIomItem = selectIomItem;\r\n vm.IndentStatus = $state.params.data.IndentStatus;\r\n vm.saveIndent = saveIndent;\r\n vm.sendNote = sendNote;\r\n // vm.Approval = Approval;\r\n vm.selectPowItem = selectPowItem;\r\n vm.selectIndentPowItem = selectIndentPowItem;\r\n vm.selectIomAll = selectIomAll;\r\n vm.canShow = canShow;\r\n vm.LoadItemBasedOnIndent = LoadItemBasedOnIndent;\r\n vm.selectIocaItem = selectIocaItem;\r\n vm.remove = remove;\r\n vm.setPlanDate = setPlanDate;\r\n vm.indentBased = indentBased;\r\n vm.selectIndentIomItem = selectIndentIomItem;\r\n vm.selectIndentIomAll = selectIndentIomAll;\r\n vm.selectIndentRow = selectIndentRow;\r\n\r\n Init();\r\n filterButtons();\r\n ////////////////////\r\n\r\n vm.indentForList = [{ Name: 'Material/Product', Code: 'M' }, { Name: 'Machinery', Code: 'MH' }, { Name: 'Consumables', Code: 'C' }];\r\n vm.indentFromList = [{ Name: 'Planning', Id: 9 }, { Name: 'Finalized Boq', Id: 4 }\r\n // , { Name: 'Manual Entry', Id: 8 }\r\n ];\r\n vm.PeriodList = [{ PeriodName: 'Monthly', Id: 'M' }, { PeriodName: 'Periodic', Id: 'P' }, { PeriodName: 'Quarterly', Id: 'Q' }];\r\n\r\n\r\n function Init() {\r\n vm.isFormOpen = false;\r\n debugger;\r\n if ($state.params.data.IndentFor) {\r\n debugger;\r\n if ($state.params.data.isEdit) {\r\n vm.isEditing = true;\r\n vm.isView = false;\r\n }\r\n if ($state.params.data.isView) {\r\n vm.isEditing = false;\r\n vm.isView = true;\r\n }\r\n vm.indentFor = {};\r\n vm.selectedProject = {};\r\n vm.indentFor.Code = $state.params.data.IndentFor;\r\n vm.selectedProject.ProjectId = $state.params.data.ProjectId;\r\n viewData = $state.params.data.Indentview;\r\n vm.indent.IndentNo = viewData.IndentNo;\r\n vm.indentNo = viewData.IndentNo\r\n vm.indent.IndentId = viewData.IndentId\r\n vm.indent.RaisedOn = viewData.RaisedOn;\r\n vm.indent.RaisedBy = viewData.RaisedBy;\r\n if (viewData.Note != \"\") {\r\n vm.NoteList = JSON.parse(viewData.Note);\r\n for (var i in vm.NoteList) {\r\n if (i >= 1) {\r\n for (var j in vm.NoteList[i]) {\r\n var arr = vm.NoteList[i]\r\n vm.indent.Note = arr[j].SentNotes.Notes\r\n }\r\n } else {\r\n vm.indent.Note = vm.NoteList[i].SentNotes.Notes\r\n\r\n }\r\n }\r\n }\r\n\r\n if (vm.indentFor.Code == 'M') {\r\n if ($state.params.data.isEdit) {\r\n vm.indentUpdate = {};\r\n GetIndentDtlsForUpdate($state.params.data)\r\n }\r\n if ($state.params.data.isView)\r\n getIndentByStatus($state.params.data);\r\n } else if (vm.indentFor.Code == 'MH') {\r\n getMachineryIndentByStatus($state.params.data);\r\n } else {\r\n getConsumableIndentByStatus($state.params.data);\r\n }\r\n }\r\n vm.isLoading = true;\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 },\r\n { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 },\r\n { MenuName: 'Waiting for Approval of Draft', StatusId: 3 },\r\n { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 7 }\r\n ]\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n vm.isLoading = false;\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n function indentBased(callBack) {\r\n if (vm.indentFor.Code == 'M') {\r\n vm.indentBasedList = [{ Name: 'Construction Activity', Id: 'C' }, { Name: 'Material', Id: 'M' }, { Name: 'Location', Id: 'L' }];\r\n } else if (vm.indentFor.Code == 'MH') {\r\n vm.indentBasedList = [{ Name: 'Construction Activity', Id: 'C' }, { Name: 'Machinery', Id: 'M' }, { Name: 'Location', Id: 'L' }];\r\n } else {\r\n vm.indentBasedList = [{ Name: 'Construction Activity', Id: 'C' }, { Name: 'Consumable', Id: 'M' }, { Name: 'Location', Id: 'L' }];\r\n }\r\n if (callBack)\r\n callBack();\r\n }\r\n\r\n\r\n function filterButtons() {\r\n switch (vm.IndentStatus) {\r\n case 1:\r\n vm.btnsToShow = ['save', 'send', 'remove'];\r\n break;\r\n case 2:\r\n vm.btnsToShow = ['save', 'reject', 'approve'];\r\n break;\r\n case 3:\r\n vm.btnsToShow = ['reject', 'approve'];\r\n break;\r\n case 4:\r\n vm.btnsToShow = ['block', 'report'];\r\n break;\r\n case 5:\r\n vm.btnsToShow = ['back'];\r\n break;\r\n case 7:\r\n vm.btnsToShow = ['remove', 'resubmit'];\r\n break;\r\n }\r\n }\r\n\r\n function canShow(btnName) {\r\n return lodash.includes(vm.btnsToShow, btnName);\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.selectedProject = null;\r\n vm.indentFor = null;\r\n vm.indentFrom = null;\r\n vm.indentBasedOn = null;\r\n }\r\n\r\n }\r\n\r\n vm.expandAll = function(expanded) {\r\n // $scope is required here, hence the injection above, even though we're using \"controller as\" syntax\r\n $scope.$broadcast('onExpandAll', {\r\n expanded: expanded\r\n });\r\n };\r\n\r\n function LoadItemBasedOnIndent() {\r\n if (vm.indentBasedOn.Id == 'L') {\r\n getLocation();\r\n } else if (vm.indentBasedOn.Id == 'M') {\r\n if (vm.indentFor.Code == 'M')\r\n getCategoryofMaterial();\r\n if (vm.indentFor.Code == 'MH')\r\n getCategoryofMachinery();\r\n if (vm.indentFor.Code == 'C')\r\n getCategoryofConsumable();\r\n } else {\r\n getCategoryofCA()\r\n }\r\n }\r\n\r\n vm.clearDate = function() {\r\n vm.ToDate = null;\r\n vm.FromDate = null;\r\n vm.Selectedmonth = null;\r\n vm.indentBasedOn = null;\r\n }\r\n\r\n function setPlanDate() {\r\n if (vm.selectedPeriod.Id == 'M') {\r\n if (vm.Selectedmonth != undefined) {\r\n vm.FromDate = $filter('date')(vm.Selectedmonth, 'yyyy-MM-dd');\r\n vm.ToDate = angular.copy(vm.Selectedmonth);\r\n var numberOfMonthToAdd = 1;\r\n vm.ToDate.setMonth(vm.ToDate.getMonth() + numberOfMonthToAdd);\r\n vm.ToDate.setDate(vm.ToDate.getDate() - 1);\r\n vm.ToDate = $filter('date')(vm.ToDate, 'yyyy-MM-dd')\r\n }\r\n }\r\n if (vm.selectedPeriod.Id == 'Q') {\r\n if (vm.FromDate != undefined) {\r\n vm.ToDate = angular.copy(vm.FromDate);\r\n var numberOfMonthToAdd = 3;\r\n vm.ToDate.setMonth(vm.ToDate.getMonth() + numberOfMonthToAdd);\r\n vm.ToDate.setDate(vm.ToDate.getDate() - 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n //Start Construction Activities\r\n function getCategoryofCA() {\r\n clearCategoryOfCA();\r\n vm.isLoading = true;\r\n var arr = [];\r\n var tempLoc = [];\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TypeofLoad: 'Category'\r\n }\r\n if (vm.indentBasedOn.Id == 'L') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n }\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getCategoryofCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length == 0) {\r\n dialogs.notify('warning', 'No category of CA available', 'Construction Activity');\r\n }\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getSubcategoryofCA() {\r\n if (vm.selectedCategory != null) {\r\n clearSubcategoryCA();\r\n vm.isLoading = true;\r\n var tempcat = [];\r\n var arr = [];\r\n var tempLoc = [];\r\n for (var i in vm.selectedCategory) {\r\n tempcat.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // LastTierId: , \r\n CategoryIds: tempcat.join(','),\r\n TypeofLoad: 'SubCategory'\r\n }\r\n if (vm.indentBasedOn.Id == 'L') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList;\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n }\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getSubCategoryofCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length == 0) {\r\n dialogs.notify('warning', 'No Subcategory of CA available', 'Construction Activity');\r\n }\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n function getTypeofCA() {\r\n if (vm.selectedSubCategory != null) {\r\n clearTypeofCA();\r\n vm.isLoading = true;\r\n var tempSubcat = [];\r\n var arr = [];\r\n var tempLoc = [];\r\n for (var i in vm.selectedSubCategory) {\r\n tempSubcat.push(vm.selectedSubCategory[i].subcategoryid)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n SubCategoryIds: tempSubcat.join(','),\r\n TypeofLoad: 'Type'\r\n }\r\n if (vm.indentBasedOn.Id == 'L') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList;\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n\r\n }\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getTypeofCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length == 0) {\r\n dialogs.notify('warning', 'No Type of CA available', 'Construction Activity');\r\n }\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"TypeOfCA\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"TypeOfCA\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n function getioca() {\r\n if (vm.selectedTypeOfCA != null) {\r\n clearIoca();\r\n vm.isLoading = true;\r\n var temptype = [];\r\n var arr = [];\r\n var tempLoc = [];\r\n for (var i in vm.selectedTypeOfCA) {\r\n temptype.push(vm.selectedTypeOfCA[i].typeid)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // LastTierId: , \r\n TypeIds: temptype.join(','),\r\n TypeofLoad: 'Ioca'\r\n }\r\n if (vm.indentBasedOn.Id == 'L') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList;\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n }\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (res.data.length == 0) {\r\n dialogs.notify('warning', 'No IOCA available', 'Construction Activity');\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Ioca\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Ioca\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n // end Construction Activities\r\n\r\n\r\n\r\n\r\n //Start Location\r\n function getLocation() {\r\n if (vm.selectedIOCA != null || vm.indentBasedOn.Id == 'L') {\r\n vm.isLoading = true;\r\n vm.tempIoca = [];\r\n for (var i in vm.selectedIOCA) {\r\n vm.tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n }\r\n if (vm.indentBasedOn.Id == 'C' || vm.indentBasedOn.Id == 'M') {\r\n obj.IocaIds = vm.tempIoca.join(',');\r\n } else {\r\n obj.IocaIds = -1;\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (res.data.length == 0) {\r\n dialogs.notify('warning', 'No Location available', 'Location');\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n function getTier() {\r\n clearTierSelection();\r\n vm.isLoading = true;\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (vm.selectedLocation.length == 1) {\r\n for (var i in vm.selectedLocation) {\r\n obj.LocationId = vm.selectedLocation[i].LocationId\r\n }\r\n } else {\r\n var tempLocation = [];\r\n for (var i in vm.selectedLocation) {\r\n tempLocation.push(vm.selectedLocation[i].LocationId)\r\n }\r\n obj.MultiLocationIds = tempLocation.join(',');\r\n }\r\n if (vm.indentBasedOn.Id == 'L') {\r\n obj.IocaIds = -1;\r\n } else {\r\n obj.IocaIds = vm.tempIoca.join(',');\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getTier(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data[0].result != null) {\r\n vm.rawTierListData = JSON.parse(res.data[0].result).Tiers;\r\n } else {\r\n vm.LastTierIdList = res.data[0].LastTierId;\r\n if ((vm.indentBasedOn.Id == 'C') && vm.LastTierIdList != null) {\r\n if (vm.indentFor.Code == 'M')\r\n getCategoryofMaterial();\r\n if (vm.indentFor.Code == 'MH')\r\n getCategoryofMachinery();\r\n if (vm.indentFor.Code == 'C')\r\n getCategoryofConsumable();\r\n } else if (vm.indentBasedOn.Id == 'L' && vm.LastTierIdList != null) {\r\n getCategoryofCA();\r\n } else {\r\n if (vm.indentFor.Code == 'M')\r\n getIOM();\r\n if (vm.indentFor.Code == 'MH')\r\n getIOMH();\r\n if (vm.indentFor.Code == 'C')\r\n getTypeofConsumable();\r\n\r\n }\r\n }\r\n\r\n\r\n // for (var i = 0; i < vm.RFQList.length; i++) {\r\n // for (var j = 0; j < vm.rawTierListData.length; j++) {\r\n // for (var k = 0; k < vm.rawTierListData[j].Values.length; k++) {\r\n // for (var m = 0; m < vm.RFQList[i].LocDtl[0].data.length; m++) {\r\n // if ((vm.rawTierListData[j].Values[k].TierId == vm.RFQList[i].LocDtl[0].data[m].TierId) && (vm.RFQList[i].IOCA_Id == vm.item.selectedIoca.Id)) {\r\n // findAndRemove(vm.rawTierListData[j].Values, 'TierId', vm.rawTierListData[j].Values[k].TierId)\r\n // }\r\n // }\r\n // }\r\n // }\r\n // }\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n if (tier.selectedTierValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.rawTierListData, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTierValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n });\r\n } else {\r\n clearTierSelection();\r\n }\r\n vm.finalTier = tier.selectedTierValue;\r\n if ((vm.indentBasedOn.Id == 'C') && vm.finalTier != null) {\r\n if (vm.indentFor.Code == 'M')\r\n getCategoryofMaterial();\r\n if (vm.indentFor.Code == 'MH')\r\n getCategoryofMachinery();\r\n if (vm.indentFor.Code == 'C')\r\n getCategoryofConsumable();\r\n } else if (vm.indentBasedOn.Id == 'L' && vm.finalTier != null) {\r\n getCategoryofCA();\r\n } else {\r\n if (vm.indentFor.Code == 'M')\r\n getIOM();\r\n if (vm.indentFor.Code == 'MH')\r\n getIOMH();\r\n if (vm.indentFor.Code == 'C')\r\n getTypeofConsumable();\r\n\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.allTierData, function(tier) {\r\n tier.selectedTireValue = null;\r\n tier.Values = [];\r\n })\r\n }\r\n vm.LoadCategory = function() {\r\n if (vm.indentFor.Code == 'M')\r\n getCategoryofMaterial();\r\n if (vm.indentFor.Code == 'MH')\r\n getCategoryofMachinery();\r\n if (vm.indentFor.Code == 'C')\r\n getCategoryofConsumable();\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue = t.TierVal + ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n //End Location\r\n\r\n\r\n\r\n //Start Material Functions\r\n function getCategoryofMaterial() {\r\n clearMat_Category();\r\n vm.isLoading = true;\r\n var arr = [];\r\n var tempIoca = [];\r\n var tempLoc = [];\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TypeofLoad: 'Category'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList;\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n\r\n }\r\n\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getMaterialItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of Material\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Material\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getSubcategoryofMaterial() {\r\n if (vm.selectedMaterialCategory != null) {\r\n clearMat_SubCategory();\r\n vm.isLoading = true;\r\n var tempcatMat = [];\r\n var arr = [];\r\n var tempIoca = [];\r\n var tempLoc = [];\r\n for (var i in vm.selectedMaterialCategory) {\r\n tempcatMat.push(vm.selectedMaterialCategory[i].MaterialCategoryId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: tempcatMat.join(','),\r\n TypeofLoad: 'SubCategory'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList;\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n\r\n }\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getMaterialItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of Material\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of Material\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n function getTypeofMaterial() {\r\n if (vm.selectedMaterialSubCategory != null) {\r\n clearMat_Type();\r\n vm.isLoading = true;\r\n var tempSubcatMat = [];\r\n var arr = [];\r\n var tempIoca = [];\r\n var tempLoc = [];\r\n for (var i in vm.selectedMaterialSubCategory) {\r\n tempSubcatMat.push(vm.selectedMaterialSubCategory[i].MaterialSubCategoryId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n SubCategoryIds: tempSubcatMat.join(','),\r\n TypeofLoad: 'Type'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n if (vm.selectedLocation.length > 1) {\r\n for (var i in vm.selectedLocation) {\r\n tempLoc.push(vm.selectedLocation.LocationId)\r\n }\r\n obj.locationId = tempLoc.join(',');\r\n obj.LastTierId = vm.LastTierIdList;\r\n } else {\r\n obj.locationId = (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\"\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n\r\n }\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getMaterialItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeofMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of Material\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of Material\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n function getIOM() {\r\n\r\n if (vm.selectedTypeOfMaterial != null) {\r\n clearMat_Ioca();\r\n vm.IOMList = [];\r\n vm.isLoading = true;\r\n var tempTypeMat = [];\r\n var arr = [];\r\n vm.locArr = [];\r\n var tempIoca = [];\r\n for (var i in vm.selectedTypeOfMaterial) {\r\n tempTypeMat.push(vm.selectedTypeOfMaterial[i].MaterialTypeId)\r\n }\r\n for (var i in vm.selectedLocation) {\r\n vm.locArr.push(vm.selectedLocation[i].LocationId)\r\n }\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: vm.locArr.join(','),\r\n TypeIds: tempTypeMat.join(','),\r\n TypeofLoad: 'IOM',\r\n LastTierId: arr.join(','),\r\n Ioca_Id: tempIoca.join(',')\r\n }\r\n if (vm.selectedPeriod != undefined) {\r\n obj.indentPeriod = vm.selectedPeriod.Id\r\n }\r\n IndentService.getMaterialItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.IOMList = res.data;\r\n vm.IOMList[i].IOCA_Dtls = (JSON.parse(vm.IOMList[i].IOCA_Dtls));\r\n vm.IOMList[i].POwDtls = (JSON.parse(vm.IOMList[i].POwDtls));\r\n for (var j = 0; j < vm.IOMList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.IOMList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.IOMList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.IOMList[i].POwDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.IOMList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n vm.isLoading = false;\r\n if (vm.IndentStatus == 3) {\r\n IndentService.getCount(vm.indentFor.Code).then(function(res) {\r\n if (res.status === 200) {\r\n vm.waitingList = lodash.filter(res.data, { 'IndentStatus': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'IndentStatus': 2 });\r\n }\r\n })\r\n } else {\r\n getIndentByStatus();\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"IOM\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOM\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n ////// Indent Update ////////\r\n\r\n function GetIndentDtlsForUpdate(row, callBack) {\r\n debugger;\r\n vm.IndentList = [];\r\n vm.isLoading = true;\r\n var tempTypeMat = [];\r\n var arr = [];\r\n for (var i in vm.selectedTypeOfMaterial) {\r\n tempTypeMat.push(vm.selectedTypeOfMaterial[i].MaterialTypeId)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n LastTierId: arr.join(','),\r\n Type_Id: tempTypeMat.join(','),\r\n Ioca_Id: vm.tempIoca.join(','),\r\n IndentStatus: vm.IndentStatus,\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (row != undefined) {\r\n obj.IndentId = row.IndentId;\r\n } else {\r\n obj.IndentId = vm.IndentId;\r\n }\r\n\r\n IndentService.GetIndentDtlsForUpdate(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.IndentList = res.data;\r\n vm.IndentList[i].IOCA_Dtls = (JSON.parse(vm.IndentList[i].IOCA_Dtls));\r\n vm.IndentList[i].PowDtls = (JSON.parse(vm.IndentList[i].POwDtls));\r\n for (var j = 0; j < vm.IndentList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.IndentList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.IndentList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.IndentList[i].PowDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.IndentList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n vm.indentUpdate.ProjectId = vm.IndentList[0].ProjectId;\r\n vm.indentUpdate.CompanyId = vm.IndentList[0].CompanyId;\r\n vm.indentUpdate.IndentFromId = vm.IndentList[0].IndentFromId;\r\n if ($state.params.data.IndentFor != undefined) {\r\n if (vm.IndentList.length == 0) {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n lodash.forEach(vm.CompanyList, function(e) {\r\n if (e.CompanyId == vm.indentUpdate.CompanyId)\r\n vm.selectedCompany = angular.copy(e)\r\n })\r\n\r\n getProjectByCompanyId(vm.indentUpdate.CompanyId, function(obj) {\r\n lodash.forEach(vm.ProjectList, function(e) {\r\n if (e.ProjectId == vm.indentUpdate.ProjectId)\r\n vm.selectedProject = angular.copy(e)\r\n })\r\n })\r\n\r\n lodash.forEach(vm.indentForList, function(e) {\r\n if (e.Code == vm.indentFor.Code) {\r\n vm.indentFor = angular.copy(e)\r\n }\r\n })\r\n\r\n lodash.forEach(vm.indentFromList, function(e) {\r\n if (e.Id == vm.indentUpdate.IndentFromId)\r\n vm.indentFrom = angular.copy(e)\r\n })\r\n indentBased();\r\n\r\n if (callBack)\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n ////////////////////////\r\n\r\n\r\n\r\n function getIndentByStatus(row) {\r\n vm.IndentList = [];\r\n vm.isLoading = true;\r\n var tempTypeMat = [];\r\n var arr = [];\r\n for (var i in vm.selectedTypeOfMaterial) {\r\n tempTypeMat.push(vm.selectedTypeOfMaterial[i].MaterialTypeId)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n LastTierId: arr.join(','),\r\n Type_Id: tempTypeMat.join(','),\r\n Ioca_Id: vm.tempIoca.join(','),\r\n IndentStatus: vm.IndentStatus,\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (row != undefined) {\r\n obj.IndentId = row.IndentId;\r\n } else {\r\n obj.IndentId = vm.IndentId;\r\n }\r\n\r\n IndentService.getIndentByStatus(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.IndentList = res.data;\r\n console.log(vm.IndentList)\r\n vm.IndentList[i].IOCA_Dtls = (JSON.parse(vm.IndentList[i].IOCA_Dtls));\r\n vm.IndentList[i].PowDtls = (JSON.parse(vm.IndentList[i].POwDtls));\r\n for (var j = 0; j < vm.IndentList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.IndentList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.IndentList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.IndentList[i].PowDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.IndentList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n if ($state.params.data.IndentFor != undefined) {\r\n if (vm.IndentList.length == 0) {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n //End Material Functions\r\n\r\n\r\n\r\n\r\n //Start Machinery Functions\r\n function getCategoryofMachinery() {\r\n clearMach_Cat();\r\n vm.isLoading = true;\r\n var arr = [];\r\n var tempIoca = [];\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n TypeofLoad: 'Category'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n IndentService.getMachineryItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryMachinaryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of Machinery\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Machinery\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getSubcategoryofMachinary() {\r\n clearMach_Sub();\r\n vm.isLoading = true;\r\n var tempcatMach = [];\r\n var arr = [];\r\n var tempIoca = [];\r\n for (var i in vm.selectedMachinaryCategory) {\r\n tempcatMach.push(vm.selectedMachinaryCategory[i].COM_Id)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n // Ioca_Id: vm.tempIoca.join(','),\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // LastTierId: , \r\n CategoryIds: tempcatMach.join(','),\r\n TypeofLoad: 'SubCategory'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n IndentService.getMachineryItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryMachinaryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of Machinary\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of Machinary\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getTypeofMachinary() {\r\n clearMach_Type();\r\n vm.isLoading = true;\r\n var tempSubcatMach = [];\r\n var arr = [];\r\n var tempIoca = [];\r\n for (var i in vm.selectedMachinarySubCategory) {\r\n tempSubcatMach.push(vm.selectedMachinarySubCategory[i].MachSubCategoryId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n\r\n // Ioca_Id: vm.tempIoca.join(','),\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // LastTierId: , \r\n SubCategoryIds: tempSubcatMach.join(','),\r\n TypeofLoad: 'Type'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n IndentService.getMachineryItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeofMachinaryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of Machinery\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of Machinery\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getIOMH() {\r\n clearIOMH();\r\n vm.isLoading = true;\r\n var tempTypeMach = [];\r\n var arr = [];\r\n vm.locArr = [];\r\n var tempIoca = [];\r\n for (var i in vm.selectedTypeOfMachinary) {\r\n tempTypeMach.push(vm.selectedTypeOfMachinary[i].MachTypeId)\r\n }\r\n for (var i in vm.selectedLocation) {\r\n vm.locArr.push(vm.selectedLocation[i].LocationId)\r\n }\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: vm.locArr.join(','),\r\n TypeIds: tempTypeMach.join(','),\r\n TypeofLoad: 'IOMH',\r\n LastTierId: arr.join(','),\r\n Ioca_Id: tempIoca.join(',')\r\n }\r\n IndentService.getMachineryItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.IOMHList = res.data;\r\n vm.IOMHList[i].IOCA_Dtls = (JSON.parse(vm.IOMHList[i].IOCA_Dtls));\r\n vm.IOMHList[i].POwDtls = (JSON.parse(vm.IOMHList[i].POwDtls));\r\n for (var j = 0; j < vm.IOMHList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.IOMHList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.IOMHList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.IOMHList[i].POwDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.IOMHList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n vm.isLoading = false;\r\n if (vm.IndentStatus == 3) {\r\n IndentService.getCount(vm.indentFor.Code).then(function(res) {\r\n if (res.status === 200) {\r\n vm.waitingList = lodash.filter(res.data, { 'IndentStatus': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'IndentStatus': 2 });\r\n }\r\n })\r\n } else {\r\n getMachineryIndentByStatus();\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"IOMH\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOMH\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getMachineryIndentByStatus(row) {\r\n vm.MachineryIndentList = [];\r\n vm.isLoading = true;\r\n var tempTypeMach = [];\r\n var arr = [];\r\n for (var i in vm.selectedTypeOfMachinary) {\r\n tempTypeMach.push(vm.selectedTypeOfMachinary[i].MachTypeId)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n LastTierId: arr.join(','),\r\n Type_Id: tempTypeMach.join(','),\r\n Ioca_Id: vm.tempIoca.join(','),\r\n IndentStatus: vm.IndentStatus,\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (row != undefined) {\r\n obj.IndentNo = row.IndentNo\r\n }\r\n IndentService.getMachineryIndentByStatus(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.MachineryIndentList = res.data;\r\n vm.MachineryIndentList[i].IOCA_Dtls = (JSON.parse(vm.MachineryIndentList[i].IOCA_Dtls));\r\n vm.MachineryIndentList[i].PowDtls = (JSON.parse(vm.MachineryIndentList[i].POwDtls));\r\n for (var j = 0; j < vm.MachineryIndentList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.MachineryIndentList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.MachineryIndentList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.MachineryIndentList[i].PowDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n if ($state.params.data.IndentFor != undefined) {\r\n if (vm.MachineryIndentList.length == 0) {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n // End Machinery Functions\r\n\r\n\r\n\r\n //Start Consumable Functions\r\n function getCategoryofConsumable() {\r\n clearConsume_Cat();\r\n vm.isLoading = true;\r\n var arr = [];\r\n var tempIoca = [];\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n TypeofLoad: 'Category'\r\n }\r\n if (vm.indentBasedOn.Id == 'L' || vm.indentBasedOn.Id == 'C') {\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n obj.LastTierId = arr.join(',');\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n obj.Ioca_Id = tempIoca.join(',');\r\n } else {\r\n obj.Ioca_Id = '-1';\r\n obj.LastTierId = \"\";\r\n }\r\n IndentService.getConsumableItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryConsumableList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of Consumable\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Consumable\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getTypeofConsumable() {\r\n vm.isLoading = true;\r\n vm.TypeofConsumableList = [];\r\n var tempCatConsume = [];\r\n var arr = [];\r\n vm.locArr = [];\r\n var tempIoca = [];\r\n for (var i in vm.selectedConsumableCategory) {\r\n tempCatConsume.push(vm.selectedConsumableCategory[i].ConsumableCategoryId)\r\n }\r\n for (var i in vm.selectedLocation) {\r\n vm.locArr.push(vm.selectedLocation[i].LocationId)\r\n }\r\n for (var i in vm.selectedIOCA) {\r\n tempIoca.push(vm.selectedIOCA[i].Id)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n indentBased: vm.indentBasedOn.Id,\r\n startDate: $filter('date')(vm.FromDate, 'yyyy-MM-dd') ? vm.FromDate : \"\", //new Date(vm.FromDate != undefined) ? vm.FromDate : \"\",\r\n endDate: $filter('date')(vm.ToDate, 'yyyy-MM-dd') ? vm.ToDate : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n locationId: vm.locArr.join(','),\r\n CategoryIds: tempCatConsume.join(','),\r\n TypeofLoad: 'Type',\r\n LastTierId: arr.join(','),\r\n Ioca_Id: tempIoca.join(',')\r\n }\r\n IndentService.getConsumableItems(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.TypeofConsumableList = res.data;\r\n vm.TypeofConsumableList[i].IOCA_Dtls = (JSON.parse(vm.TypeofConsumableList[i].IOCA_Dtls));\r\n vm.TypeofConsumableList[i].POwDtls = (JSON.parse(vm.TypeofConsumableList[i].POwDtls));\r\n for (var j = 0; j < vm.TypeofConsumableList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.TypeofConsumableList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.TypeofConsumableList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.TypeofConsumableList[i].POwDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n vm.isLoading = false;\r\n if (vm.IndentStatus == 3) {\r\n IndentService.getCount(vm.indentFor.Code).then(function(res) {\r\n if (res.status === 200) {\r\n vm.waitingList = lodash.filter(res.data, { 'IndentStatus': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'IndentStatus': 2 });\r\n }\r\n })\r\n } else {\r\n getConsumableIndentByStatus();\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Consumable\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Consumable\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getConsumableIndentByStatus(row) {\r\n vm.ConsumableIndentList = [];\r\n if (row != undefined) {\r\n vm.isFormOpen = false;\r\n }\r\n vm.isLoading = true;\r\n var tempCat = [];\r\n var arr = [];\r\n for (var i in vm.selectedConsumableCategory) {\r\n tempCat.push(vm.selectedConsumableCategory[i].ConsumableCategoryId)\r\n }\r\n for (var i in vm.finalTier) {\r\n arr.push(vm.finalTier[i].TierId)\r\n }\r\n var obj = {\r\n LastTierId: arr.join(','),\r\n Type_Id: tempCat.join(','),\r\n Ioca_Id: vm.tempIoca.join(','),\r\n IndentStatus: vm.IndentStatus,\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n if (row != undefined) {\r\n obj.IndentNo = row.IndentNo\r\n }\r\n IndentService.getConsumableIndentByStatus(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n vm.ConsumableIndentList = res.data;\r\n vm.ConsumableIndentList[i].IOCA_Dtls = (JSON.parse(vm.ConsumableIndentList[i].IOCA_Dtls));\r\n vm.ConsumableIndentList[i].PowDtls = (JSON.parse(vm.ConsumableIndentList[i].POwDtls));\r\n for (var j = 0; j < vm.ConsumableIndentList[i].IOCA_Dtls.length; j++) {\r\n var ioca = vm.ConsumableIndentList[i].IOCA_Dtls[j].IOCA_Id;\r\n var lasttier = vm.ConsumableIndentList[i].IOCA_Dtls[j].LastTierId;\r\n vm.powiocafilterlist = lodash.filter(vm.ConsumableIndentList[i].PowDtls, { 'IOCA_Id': ioca });\r\n vm.powlastTierfilterlist = lodash.filter(vm.powiocafilterlist, { 'LastTierId': lasttier });\r\n vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls = vm.powlastTierfilterlist;\r\n }\r\n }\r\n if ($state.params.data.IndentFor != undefined) {\r\n if (vm.ConsumableIndentList.length == 0) {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n // End Consumable Functions\r\n\r\n\r\n\r\n\r\n\r\n\r\n // check ioca\r\n function selectRow() {\r\n var tempIOM = [];\r\n var tempIOCA = [];\r\n var tempIOMH = [];\r\n var IndentQty = [];\r\n var tempLastTier = [];\r\n var tempPow = [];\r\n var tempConsume = [];\r\n var tempobj = {};\r\n if (vm.indentFor.Code == 'M') {\r\n for (var i in vm.IOMList) {\r\n if (vm.IOMList[i].isChecked) {\r\n if (vm.IOMList[i].IOM_Id != undefined) {\r\n tempIOM.push(vm.IOMList[i].IOM_Id);\r\n }\r\n for (var j in vm.IOMList[i].IOCA_Dtls) {\r\n if (vm.IOMList[i].IOCA_Dtls[j].isChecked) {\r\n tempIOCA.push(vm.IOMList[i].IOCA_Dtls[j].IOCA_Id);\r\n tempLastTier.push(vm.IOMList[i].IOCA_Dtls[j].LastTierId);\r\n }\r\n for (var k in vm.IOMList[i].IOCA_Dtls[j].PowDtls) {\r\n if (vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n tempobj.IOCA_Id = (vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].IOCA_Id);\r\n tempobj.IOM_Id = (vm.IOMList[i].IOM_Id);\r\n tempobj.LastTierId = (vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].LastTierId);\r\n tempobj.PowId = (vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].PowId);\r\n tempobj.PowQty = (vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].PowQty_Updated);\r\n tempPow.push(tempobj);\r\n tempobj = {};\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else if (vm.indentFor.Code == 'MH') {\r\n for (var i in vm.IOMHList) {\r\n if (vm.IOMHList[i].isChecked) {\r\n if (vm.IOMHList[i].IOMH_Id != undefined) {\r\n tempIOMH.push(vm.IOMHList[i].IOMH_Id);\r\n }\r\n for (var j in vm.IOMHList[i].IOCA_Dtls) {\r\n if (vm.IOMHList[i].IOCA_Dtls[j].isChecked) {\r\n tempIOCA.push(vm.IOMHList[i].IOCA_Dtls[j].IOCA_Id);\r\n tempLastTier.push(vm.IOMHList[i].IOCA_Dtls[j].LastTierId);\r\n }\r\n for (var k in vm.IOMHList[i].IOCA_Dtls[j].PowDtls) {\r\n if (vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n tempobj.IOMH_Id = (vm.IOMHList[i].IOMH_Id)\r\n tempobj.PowId = (vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k].PowId);\r\n tempobj.PowQty = (vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k].PowQty_Updated);\r\n tempPow.push(tempobj);\r\n tempobj = {};\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (var i in vm.TypeofConsumableList) {\r\n if (vm.TypeofConsumableList[i].isChecked) {\r\n if (vm.TypeofConsumableList[i].ConsumableTypeId != undefined) {\r\n tempConsume.push(vm.TypeofConsumableList[i].ConsumableTypeId);\r\n }\r\n for (var j in vm.TypeofConsumableList[i].IOCA_Dtls) {\r\n if (vm.TypeofConsumableList[i].IOCA_Dtls[j].isChecked) {\r\n tempIOCA.push(vm.TypeofConsumableList[i].IOCA_Dtls[j].IOCA_Id);\r\n tempLastTier.push(vm.TypeofConsumableList[i].IOCA_Dtls[j].LastTierId);\r\n }\r\n for (var k in vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls) {\r\n if (vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n tempobj.ConsumableTypeId = (vm.TypeofConsumableList[i].ConsumableTypeId)\r\n tempobj.PowId = (vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k].PowId);\r\n tempobj.PowQty = (vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k].PowQty_Updated);\r\n tempPow.push(tempobj);\r\n tempobj = {};\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var obj = {\r\n iomString: tempIOM.join(','),\r\n iocaString: tempIOCA.join(','),\r\n tierString: tempLastTier.join(','),\r\n powString: JSON.stringify(tempPow),\r\n // powQtyString: IndentQty.join(','),\r\n iomhString: tempIOMH.join(','),\r\n consumeString: tempConsume.join(',')\r\n }\r\n return (obj);\r\n }\r\n\r\n function selectIomItem(row) {\r\n if (row.isChecked == true) {\r\n for (var j = 0; j < row.IOCA_Dtls.length; j++) {\r\n row.IOCA_Dtls[j].isChecked = true;\r\n for (var k = 0; k < row.IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (row.IOCA_Dtls[j].isChecked) {\r\n row.IOCA_Dtls[j].PowDtls[k].isChecked = true;\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n for (var j = 0; j < row.IOCA_Dtls.length; j++) {\r\n row.IOCA_Dtls[j].isChecked = false;\r\n for (var k = 0; k < row.IOCA_Dtls[j].PowDtls.length; k++) {\r\n row.IOCA_Dtls[j].PowDtls[k].isChecked = false;\r\n }\r\n }\r\n }\r\n };\r\n\r\n function selectIocaItem(row, iom) {\r\n if (row.isChecked) {\r\n for (var i in row.PowDtls) {\r\n row.PowDtls[i].isChecked = true;\r\n }\r\n } else {\r\n for (var i in row.PowDtls) {\r\n row.PowDtls[i].isChecked = false;\r\n }\r\n }\r\n\r\n var Arr = lodash.filter(iom.IOCA_Dtls, function(e) {\r\n return e.isChecked\r\n })\r\n if (Arr.length > 0) {\r\n iom.isChecked = true;\r\n } else\r\n iom.isChecked = false;\r\n\r\n }\r\n\r\n function selectPowItem(row, iom) {\r\n\r\n\r\n\r\n vm.checkarr = [];\r\n vm.checkarr1 = [];\r\n if (vm.indentFor.Code == 'M') {\r\n for (var i = 0; i < vm.IOMList.length; i++) {\r\n for (var j = 0; j < vm.IOMList[i].IOCA_Dtls.length; j++) {\r\n for (var k = 0; k < vm.IOMList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr.push(vm.IOMList[i].IOCA_Dtls[j].PowDtls[k])\r\n vm.IOMList[i].IOCA_Dtls[j].isChecked = true;\r\n vm.IOMList[i].isChecked = true;\r\n } else if (!vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].isChecked && vm.checkarr.length == 0) {\r\n vm.IOMList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.IOMList[i].isChecked = false;\r\n } else {\r\n if (!vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr1.push(vm.IOMList[i].IOCA_Dtls[j].PowDtls[k])\r\n if (vm.IOMList[i].IOCA_Dtls[j].PowDtls.length == vm.checkarr1.length) {\r\n vm.IOMList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.IOMList[i].isChecked = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else if (vm.indentFor.Code == 'MH') {\r\n for (var i = 0; i < vm.IOMHList.length; i++) {\r\n for (var j = 0; j < vm.IOMHList[i].IOCA_Dtls.length; j++) {\r\n for (var k = 0; k < vm.IOMHList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr.push(vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k])\r\n vm.IOMHList[i].IOCA_Dtls[j].isChecked = true;\r\n vm.IOMHList[i].isChecked = true;\r\n } else if (!vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k].isChecked && vm.checkarr.length == 0) {\r\n vm.IOMHList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.IOMHList[i].isChecked = false;\r\n } else {\r\n if (!vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr1.push(vm.IOMHList[i].IOCA_Dtls[j].PowDtls[k])\r\n if (vm.IOMHList[i].IOCA_Dtls[j].PowDtls.length == vm.checkarr1.length) {\r\n vm.IOMHList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.IOMHList[i].isChecked = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (var i = 0; i < vm.TypeofConsumableList.length; i++) {\r\n for (var j = 0; j < vm.TypeofConsumableList[i].IOCA_Dtls.length; j++) {\r\n for (var k = 0; k < vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr.push(vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k])\r\n vm.TypeofConsumableList[i].IOCA_Dtls[j].isChecked = true;\r\n vm.TypeofConsumableList[i].isChecked = true;\r\n } else if (!vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k].isChecked && vm.checkarr.length == 0) {\r\n vm.TypeofConsumableList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.TypeofConsumableList[i].isChecked = false;\r\n } else {\r\n if (!vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr1.push(vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls[k])\r\n if (vm.TypeofConsumableList[i].IOCA_Dtls[j].PowDtls.length == vm.checkarr1.length) {\r\n vm.TypeofConsumableList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.TypeofConsumableList[i].isChecked = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var Arr = lodash.filter(row.PowDtls, function(e) {\r\n return e.isChecked\r\n })\r\n if (Arr.length > 0) {\r\n row.isChecked = true;\r\n } else\r\n row.isChecked = false;\r\n\r\n var Arr1 = lodash.filter(iom.IOCA_Dtls, function(e) {\r\n return e.isChecked\r\n })\r\n if (Arr1.length > 0) {\r\n iom.isChecked = true;\r\n } else\r\n iom.isChecked = false;\r\n\r\n }\r\n\r\n function selectIndentPowItem() {\r\n vm.checkIndentarr = [];\r\n vm.checkarr2 = [];\r\n if (vm.indentFor.Code == 'M') {\r\n for (var i = 0; i < vm.IndentList.length; i++) {\r\n for (var j = 0; j < vm.IndentList[i].IOCA_Dtls.length; j++) {\r\n for (var k = 0; k < vm.IndentList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkIndentarr.push(vm.IndentList[i].IOCA_Dtls[j].PowDtls[k])\r\n vm.IndentList[i].IOCA_Dtls[j].isChecked = true;\r\n vm.IndentList[i].isChecked = true;\r\n } else if (!vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked && vm.checkIndentarr.length == 0) {\r\n vm.IndentList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.IndentList[i].isChecked = false;\r\n } else {\r\n if (!vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr2.push(vm.IndentList[i].IOCA_Dtls[j].PowDtls[k])\r\n if (vm.IndentList[i].IOCA_Dtls[j].PowDtls.length == vm.checkarr2.length) {\r\n vm.IndentList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.IndentList[i].isChecked = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else if (vm.indentFor.Code == 'MH') {\r\n for (var i = 0; i < vm.MachineryIndentList.length; i++) {\r\n for (var j = 0; j < vm.MachineryIndentList[i].IOCA_Dtls.length; j++) {\r\n for (var k = 0; k < vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkIndentarr.push(vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls[k])\r\n vm.MachineryIndentList[i].IOCA_Dtls[j].isChecked = true;\r\n vm.MachineryIndentList[i].isChecked = true;\r\n } else if (!vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked && vm.checkIndentarr.length == 0) {\r\n vm.MachineryIndentList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.MachineryIndentList[i].isChecked = false;\r\n } else {\r\n if (!vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr2.push(vm.MachineryIndentList[i].MachineryIndentList[j].PowDtls[k])\r\n if (vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls.length == vm.checkarr2.length) {\r\n vm.MachineryIndentList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.MachineryIndentList[i].isChecked = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (var i = 0; i < vm.ConsumableIndentList.length; i++) {\r\n for (var j = 0; j < vm.ConsumableIndentList[i].IOCA_Dtls.length; j++) {\r\n for (var k = 0; k < vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkIndentarr.push(vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls[k])\r\n vm.ConsumableIndentList[i].IOCA_Dtls[j].isChecked = true;\r\n vm.ConsumableIndentList[i].isChecked = true;\r\n } else if (!vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked && vm.checkIndentarr.length == 0) {\r\n vm.ConsumableIndentList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.ConsumableIndentList[i].isChecked = false;\r\n } else {\r\n if (!vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n vm.checkarr2.push(vm.ConsumableIndentList[i].ConsumableIndentList[j].PowDtls[k])\r\n if (vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls.length == vm.checkarr2.length) {\r\n vm.ConsumableIndentList[i].IOCA_Dtls[j].isChecked = false;\r\n vm.ConsumableIndentList[i].isChecked = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function selectIomAll() {\r\n if (vm.allMaterialRowSelected) {\r\n for (var i = 0; i < vm.IOMList.length; i++) {\r\n vm.IOMList[i].isChecked = vm.allMaterialRowSelected;\r\n for (var j in vm.IOMList[i].IOCA_Dtls) {\r\n vm.IOMList[i].IOCA_Dtls[j].isChecked = true;\r\n for (var k = 0; k < vm.IOMList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n if (vm.IOMList[i].IOCA_Dtls[j].isChecked) {\r\n vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].isChecked = true;\r\n }\r\n }\r\n }\r\n }\r\n vm.allIocaRowSelected = true;\r\n } else {\r\n for (var i = 0; i < vm.IOMList.length; i++) {\r\n vm.IOMList[i].isChecked = false;\r\n for (var j in vm.IOMList[i].IOCA_Dtls) {\r\n vm.IOMList[i].IOCA_Dtls[j].isChecked = false;\r\n for (var k = 0; k < vm.IOMList[i].IOCA_Dtls[j].PowDtls.length; k++) {\r\n vm.IOMList[i].IOCA_Dtls[j].PowDtls[k].isChecked = false;\r\n }\r\n }\r\n }\r\n vm.allIocaRowSelected = false;\r\n }\r\n };\r\n //end\r\n\r\n //select saved Indent row\r\n function selectIndentRow() {\r\n var tempIndentIOM = [];\r\n var tempIndentIOCA = [];\r\n var tempIndentConsume = [];\r\n var tempIndentLastTier = [];\r\n var tempIndentPow = [];\r\n var tempIndentIOMH = [];\r\n var tempIndentId = [];\r\n if (vm.indentFor.Code == 'M') {\r\n for (var i in vm.IndentList) {\r\n if (vm.IndentList[i].isChecked) {\r\n if (vm.IndentList[i].IOM_Id != undefined) {\r\n tempIndentId.push(vm.IndentList[i].IndentId);\r\n tempIndentIOM.push(vm.IndentList[i].IOM_Id);\r\n }\r\n for (var j in vm.IndentList[i].IOCA_Dtls) {\r\n if (vm.IndentList[i].IOCA_Dtls[j].isChecked) {\r\n tempIndentIOCA.push(vm.IndentList[i].IOCA_Dtls[j].IOCA_Id);\r\n tempIndentLastTier.push(vm.IndentList[i].IOCA_Dtls[j].LastTierId);\r\n }\r\n for (var k in vm.IndentList[i].IOCA_Dtls[j].PowDtls) {\r\n if (vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n tempIndentPow.push(vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].PowId);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (vm.indentFor.Code == 'MH') {\r\n for (var i in vm.MachineryIndentList) {\r\n if (vm.MachineryIndentList[i].isChecked) {\r\n if (vm.MachineryIndentList[i].IOMH_Id != undefined) {\r\n tempIndentIOMH.push(vm.MachineryIndentList[i].IOMH_Id);\r\n }\r\n for (var j in vm.MachineryIndentList[i].IOCA_Dtls) {\r\n if (vm.MachineryIndentList[i].IOCA_Dtls[j].isChecked) {\r\n tempIndentIOCA.push(vm.MachineryIndentList[i].IOCA_Dtls[j].IOCA_Id);\r\n tempIndentLastTier.push(vm.MachineryIndentList[i].IOCA_Dtls[j].LastTierId);\r\n }\r\n for (var k in vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls) {\r\n if (vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n tempIndentPow.push(vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls[k].PowId);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (var i in vm.ConsumableIndentList) {\r\n if (vm.ConsumableIndentList[i].isChecked) {\r\n if (vm.ConsumableIndentList[i].ConsumableTypeId != undefined) {\r\n tempIndentConsume.push(vm.ConsumableIndentList[i].ConsumableTypeId);\r\n }\r\n for (var j in vm.ConsumableIndentList[i].IOCA_Dtls) {\r\n if (vm.ConsumableIndentList[i].IOCA_Dtls[j].isChecked) {\r\n tempIndentIOCA.push(vm.ConsumableIndentList[i].IOCA_Dtls[j].IOCA_Id);\r\n tempIndentLastTier.push(vm.ConsumableIndentList[i].IOCA_Dtls[j].LastTierId);\r\n }\r\n for (var k in vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls) {\r\n if (vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked) {\r\n tempIndentPow.push(vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls[k].PowId);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var obj = {\r\n iomString: tempIndentIOM.join(','),\r\n iomhString: tempIndentIOMH.join(','),\r\n indentIdString: (lodash.uniq(tempIndentId)).join(','),\r\n iocaString: tempIndentIOCA.join(','),\r\n tierString: tempIndentLastTier.join(','),\r\n powString: tempIndentPow.join(','),\r\n consumeString: tempIndentConsume.join(',')\r\n }\r\n return (obj);\r\n }\r\n\r\n function selectIndentIomItem(row) {\r\n if (row.isChecked) {\r\n for (var j = 0; j < row.IOCA_Dtls.length; j++) {\r\n row.IOCA_Dtls[j].isChecked = true;\r\n for (var k = 0; k < row.IOCA_Dtls[j].PowDtls.length; k++) {\r\n row.IOCA_Dtls[j].PowDtls[k].isChecked = true;\r\n }\r\n }\r\n\r\n } else {\r\n for (var j = 0; j < row.IOCA_Dtls.length; j++) {\r\n row.IOCA_Dtls[j].isChecked = false;\r\n for (var k = 0; k < row.IOCA_Dtls[j].PowDtls.length; k++) {\r\n row.IOCA_Dtls[j].PowDtls[k].isChecked = false;\r\n }\r\n }\r\n\r\n }\r\n };\r\n\r\n function selectIndentIomAll() {\r\n if (vm.allMaterialIndentRowSelected) {\r\n for (var i = 0; i < vm.IndentList.length; i++) {\r\n vm.IndentList[i].isChecked = vm.allMaterialIndentRowSelected;\r\n for (var j in vm.IndentList[i].IOCA_Dtls) {\r\n vm.IndentList[i].IOCA_Dtls[j].isChecked = true;\r\n for (var k in vm.IndentList[i].IOCA_Dtls[j].PowDtls) {\r\n vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked = true;\r\n }\r\n }\r\n }\r\n // vm.allIocaRowSelected = true;\r\n } else {\r\n for (var i = 0; i < vm.IndentList.length; i++) {\r\n vm.IndentList[i].isChecked = vm.allMaterialIndentRowSelected;\r\n for (var j in vm.IndentList[i].IOCA_Dtls) {\r\n vm.IndentList[i].IOCA_Dtls[j].isChecked = false;\r\n for (var k in vm.IndentList[i].IOCA_Dtls[j].PowDtls) {\r\n vm.IndentList[i].IOCA_Dtls[j].PowDtls[k].isChecked = false;\r\n }\r\n }\r\n }\r\n // vm.allIocaRowSelected = false;\r\n }\r\n };\r\n //end\r\n function saveIndent() {\r\n vm.isLoading = true;\r\n var result = selectRow();\r\n if (vm.indentFor.Code == 'M') {\r\n for (var i in vm.selectedMaterialSubCategory) {\r\n if (i == 0) {\r\n var title = vm.selectedMaterialSubCategory[i].MaterialSubCategoryName;\r\n title = title + '+' + (vm.selectedMaterialSubCategory.length - 1);\r\n }\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n LocationId: vm.locArr.join(','),\r\n // LastTierIds: result.tierString,\r\n // IOM_Ids: result.iomString,\r\n IndentTitle: title,\r\n indentFor: vm.indentFor.Code,\r\n indentFrom: vm.indentFrom.Id,\r\n // Qty: result.powQtyString,\r\n // IocaIds: result.iocaString,\r\n // PowIds: result.powString\r\n IndentDtlJson: result.powString,\r\n IndentPowDtlJson: result.powString\r\n }\r\n var Arr = lodash.filter(vm.IOMList, function(obj) {\r\n return obj.isChecked\r\n })\r\n if (Arr.length > 0) {\r\n if (!vm.isEditing) {\r\n IndentService.CreateIndent(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IndentId = res.data;\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', 'Save Successfully', \"Material Indent\");\r\n vm.allMaterialRowSelected = false;\r\n getIOM();\r\n } else {\r\n $rootScope.showToaster('error', 'Save Failed! Try Again', \"Material Indent\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Indent\");\r\n });\r\n } else {\r\n obj.IndentId = vm.indent.IndentId,\r\n obj.CreatedBy = loggedUserDtl.UserId\r\n IndentService.UpdateIndent(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', 'Save Successfully', \"Material Indent\");\r\n vm.allMaterialRowSelected = false;\r\n GetIndentDtlsForUpdate($state.params.data);\r\n getIOM();\r\n } else {\r\n $rootScope.showToaster('error', 'Save Failed! Try Again', \"Material Indent\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Indent\");\r\n });\r\n }\r\n\r\n } else {\r\n dialogs.notify('warning', 'Select atleast One', 'Material Indent');\r\n }\r\n\r\n } else if (vm.indentFor.Code == 'MH') {\r\n for (var i in vm.selectedMachinarySubCategory) {\r\n if (i == 0) {\r\n var title = vm.selectedMachinarySubCategory[i].SubCategoryName;\r\n title = title + '+' + (vm.selectedMachinarySubCategory.length - 1);\r\n }\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n LocationId: vm.locArr.join(','),\r\n LastTierIds: result.tierString,\r\n IOMH_Ids: result.iomhString,\r\n IndentTitle: title,\r\n // Qty: result.powQtyString,\r\n indentFor: vm.indentFor.Code,\r\n IocaIds: result.iocaString,\r\n PowIds: result.powString\r\n }\r\n var Arr = lodash.filter(vm.IOMHList, function(obj) {\r\n return obj.isChecked\r\n })\r\n if (Arr.length > 0) {\r\n if (!vm.isEditing) {\r\n IndentService.CreateIndent(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', 'Save Successfully', \"Machinery Indent\");\r\n vm.allMachineryRowSelected = false;\r\n getIOMH();\r\n } else {\r\n $rootScope.showToaster('error', 'Save Failed! Try Again', \"Machinery Indent\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Indent\");\r\n });\r\n } else {\r\n obj.IndentId = vm.indent.IndentId,\r\n obj.CreatedBy = loggedUserDtl.UserId\r\n }\r\n } else {\r\n dialogs.notify('warning', 'Select atleast One', 'Machinery Indent');\r\n }\r\n } else {\r\n for (var i in vm.selectedConsumableCategory) {\r\n if (i == 0) {\r\n var title = vm.selectedConsumableCategory[i].CategoryOfWork;\r\n title = title + '+' + (vm.selectedConsumableCategory.length - 1);\r\n }\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n LocationId: vm.locArr.join(','),\r\n LastTierIds: result.tierString,\r\n ConsumableType_Ids: result.consumeString,\r\n IocaIds: result.iocaString,\r\n IndentTitle: title,\r\n // Qty: result.powQtyString,\r\n indentFor: vm.indentFor.Code,\r\n PowIds: result.powString\r\n }\r\n var Arr = lodash.filter(vm.TypeofConsumableList, function(obj) {\r\n return obj.isChecked\r\n })\r\n if (Arr.length > 0) {\r\n IndentService.CreateIndent(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', 'Save Successfully', \"Consumable Indent\");\r\n vm.allConsumableRowSelected = false;\r\n getTypeofConsumable();\r\n } else {\r\n $rootScope.showToaster('error', 'Save Failed! Try Again', \"Consumable Indent\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Consumable Indent\");\r\n });\r\n } else {\r\n dialogs.notify('warning', 'Select atleast One', 'Machinery Indent');\r\n }\r\n }\r\n\r\n }\r\n //send for Approval\r\n function sendNote(name) {\r\n debugger;\r\n var result = selectIndentRow();\r\n var obj = {\r\n IndentId: result.indentIdString,\r\n indentFor: vm.indentFor.Code,\r\n Status: vm.IndentStatus,\r\n btnName: name,\r\n ProjectId: vm.selectedProject.ProjectId\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/constructionProjectSetup/Indent/indentNote.html',\r\n controller: 'IndentNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n\r\n }\r\n //End\r\n\r\n vm.Back = function() {\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n\r\n //Remove Indent\r\n function remove(row) {\r\n // var result = selectIndentRow();\r\n var Arr = [];\r\n\r\n if (vm.indentFor.Code == 'M') {\r\n for (var i in vm.IndentList) {\r\n if (vm.IndentList[i].isChecked) {\r\n for (var j in vm.IndentList[i].IOCA_Dtls) {\r\n if (vm.IndentList[i].IOCA_Dtls[j].isChecked) {\r\n vm.IndentId = vm.IndentList[i].IOCA_Dtls[j].IndentId\r\n Arr.push({\r\n LastTierId: vm.IndentList[i].IOCA_Dtls[j].LastTierId,\r\n IOCA_Id: vm.IndentList[i].IOCA_Dtls[j].IOCA_Id,\r\n IOM_Id: vm.IndentList[i].IOCA_Dtls[j].IOM_Id,\r\n PowDtls: lodash.map(lodash.filter(vm.IndentList[i].IOCA_Dtls[j].PowDtls, function(e) {\r\n return e.isChecked\r\n }), function(obj) {\r\n return obj.PowId\r\n }).join()\r\n })\r\n }\r\n }\r\n }\r\n }\r\n } else if (vm.indentFor.Code == 'MH') {\r\n for (var i in vm.MachineryIndentList) {\r\n vm.IndentId = vm.MachineryIndentList[0].IndentId\r\n if (vm.MachineryIndentList[i].isChecked) {\r\n for (var j in vm.MachineryIndentList[i].IOCA_Dtls) {\r\n if (vm.MachineryIndentList[i].IOCA_Dtls[j].isChecked) {\r\n vm.IndentId = vm.MachineryIndentList[i].IOCA_Dtls[j].IndentId\r\n Arr.push({\r\n LastTierId: vm.MachineryIndentList[i].IOCA_Dtls[j].LastTierId,\r\n IOCA_Id: vm.MachineryIndentList[i].IOCA_Dtls[j].IOCA_Id,\r\n IOM_Id: vm.MachineryIndentList[i].IOCA_Dtls[j].IOM_Id,\r\n PowDtls: lodash.map(lodash.filter(vm.MachineryIndentList[i].IOCA_Dtls[j].PowDtls, function(e) {\r\n return e.isChecked\r\n }), function(obj) {\r\n return obj.PowId\r\n }).join()\r\n })\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n for (var i in vm.ConsumableIndentList) {\r\n vm.IndentId = vm.MachineryIndentList[0].IndentId\r\n if (vm.ConsumableIndentList[i].isChecked) {\r\n for (var j in vm.ConsumableIndentList[i].IOCA_Dtls) {\r\n if (vm.ConsumableIndentList[i].IOCA_Dtls[j].isChecked) {\r\n vm.IndentId = vm.ConsumableIndentList[i].IOCA_Dtls[j].IndentId\r\n Arr.push({\r\n LastTierId: vm.ConsumableIndentList[i].IOCA_Dtls[j].LastTierId,\r\n IOCA_Id: vm.ConsumableIndentList[i].IOCA_Dtls[j].IOCA_Id,\r\n IOM_Id: vm.ConsumableIndentList[i].IOCA_Dtls[j].IOM_Id,\r\n PowDtls: lodash.map(lodash.filter(vm.ConsumableIndentList[i].IOCA_Dtls[j].PowDtls, function(e) {\r\n return e.isChecked\r\n }), function(obj) {\r\n return obj.PowId\r\n }).join()\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var obj = {\r\n IndentId: vm.IndentId,\r\n IndentFor: vm.indentFor.Code,\r\n IndentDtls: JSON.stringify(Arr),\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n\r\n\r\n IndentService.DeleteIndentDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', 'Removed Successfully', \"Indent\");\r\n if (vm.indentFor.Code == 'M') {\r\n vm.allMaterialIndentRowSelected = false;\r\n if ($state.params.data.IndentFor != undefined)\r\n getIndentByStatus($state.params.data);\r\n else\r\n getIOM()\r\n\r\n } else if (vm.indentFor.Code == 'MH') {\r\n vm.allMachineryRowSelected = false;\r\n if ($state.params.data.IndentFor != undefined)\r\n getMachineryIndentByStatus($state.params.data);\r\n else\r\n getIOMH()\r\n\r\n } else {\r\n vm.allConsumableRowSelected = false;\r\n if ($state.params.data.IndentFor != undefined)\r\n getConsumableIndentByStatus($state.params.data);\r\n else\r\n getTypeofConsumable();\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Removed Failed! Try Again', \"Indent\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n });\r\n }\r\n //\r\n function clearCategoryOfCA() {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n clearSubcategoryCA();\r\n }\r\n\r\n function clearSubcategoryCA() {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n clearTypeofCA();\r\n }\r\n\r\n function clearTypeofCA() {\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeList = [];\r\n clearIoca();\r\n }\r\n\r\n function clearIoca() {\r\n vm.selectedIOCA = null;\r\n vm.IocaList = [];\r\n }\r\n\r\n function clearMat_Category() {\r\n vm.selectedMaterialCategory = null;\r\n vm.CategoryMaterialList = [];\r\n clearMat_SubCategory();\r\n }\r\n\r\n function clearMat_SubCategory() {\r\n vm.selectedMaterialSubCategory = null;\r\n vm.SubCategoryMaterialList = [];\r\n clearMat_Type();\r\n }\r\n\r\n function clearMat_Type() {\r\n vm.selectedTypeOfMaterial = null;\r\n vm.TypeofMaterialList = [];\r\n clearMat_Ioca();\r\n }\r\n\r\n function clearMat_Ioca() {\r\n vm.IOMList = [];\r\n }\r\n\r\n function clearMach_Cat() {\r\n vm.selectedMachinaryCategory = null;\r\n vm.CategoryMachinaryList = [];\r\n clearMach_Sub()\r\n }\r\n\r\n function clearMach_Sub() {\r\n vm.selectedMachinarySubCategory = null;\r\n vm.SubCategoryMachinaryList = [];\r\n clearMach_Type()\r\n }\r\n\r\n function clearMach_Type() {\r\n vm.selectedTypeOfMachinary = null;\r\n vm.TypeofMachinaryList = [];\r\n clearIOMH()\r\n }\r\n\r\n function clearIOMH() {\r\n vm.IOMHList = [];\r\n }\r\n\r\n function clearConsume_Cat() {\r\n vm.selectedConsumableCategory = null;\r\n vm.CategoryConsumableList = [];\r\n clearConsume_Type();\r\n }\r\n\r\n function clearConsume_Type() {\r\n vm.TypeofConsumableList = [];\r\n }\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('IndentNoteCtrl', IndentNoteCtrl);\r\n\r\n /** @ngInject */\r\n function IndentNoteCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance,\r\n dialogs, $state, AuthenticationService, IndentService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.Save = function () {\r\n var arr =[];\r\n var obj = {\r\n SentNotes: {\r\n \"Notes\": vm.Note,\r\n \"SentBy\": loggedUser.UserId,\r\n \"SentOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n arr.push(obj);\r\n var obj1 = {\r\n IndentId: items.IndentId,\r\n indentFor: items.indentFor,\r\n ProjectId: items.ProjectId,\r\n Note: JSON.stringify(arr)\r\n }\r\n if (items.indentFor == 'M')\r\n obj1.IOM_Ids = items.IOM_Id\r\n if (items.indentFor == 'MH')\r\n obj1.IOMH_Ids = items.IOMH_Id\r\n if (items.indentFor == 'C')\r\n obj1.Consumable_TypeIds = items.Consumable_Id\r\n if (items.Status == 1) {\r\n IndentService.sendForApproval(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Successfully', \"Indent\");\r\n $uibModalInstance.close();\r\n $state.go('indentPendingForApproval');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Sent Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Sent Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n else if (items.Status == 3 && items.btnName == 'reject') {\r\n IndentService.reject(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejected Successfully', \"Indent\");\r\n $uibModalInstance.close();\r\n $state.go('indentBackForCorrection');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n else if (items.Status == 3 || items.Status == 2) {\r\n IndentService.Approval(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Indent\");\r\n $uibModalInstance.close();\r\n $state.go('indentApproval');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approve Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Approve Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n } \r\n else if (items.Status == 7) {\r\n IndentService.resubmit(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Resubmitted Successfully', \"Indent\");\r\n $uibModalInstance.close();\r\n $state.go('indentPendingForApproval');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Resubmit Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Resubmit Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n else {\r\n IndentService.block(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Blocked Successfully', \"Indent\");\r\n $uibModalInstance.close();\r\n // $state.go('indentPendingForApproval');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Block Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Block Indent\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('IndentTableCtrl', IndentTableCtrl);\r\n\r\n /** @ngInject */\r\n function IndentTableCtrl($rootScope, lodash, $scope, dialogs, $state, $http, CompanyService,\r\n projectCreationService, AuthenticationService, IndentService, $filter, $uibModal) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n vm.indentDetail = true;\r\n vm.IndentStatus = $state.params.Status;\r\n vm.pendingTile = false;\r\n $rootScope.isLogin = false;\r\n vm.waitingList = [];\r\n vm.resubmittedList = [];\r\n vm.viewIndent = viewIndent;\r\n vm.editIndent = editIndent;\r\n // Properties \r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n vm.getDraftIndent = getDraftIndent;\r\n vm.remove = remove;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n\r\n vm.indentForList = [{ Name: 'Material/Product', Code: 'M' }, { Name: 'Machinery', Code: 'MH' }, { Name: 'Consumables', Code: 'C' }];\r\n Init();\r\n\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 },\r\n { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 },\r\n { MenuName: 'Pending for Approval ', StatusId: 3 },\r\n { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 7 }\r\n ]\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n vm.Create = function() {\r\n var obj = {\r\n // IndentNo: row.IndentNo,\r\n IndentStatus: vm.IndentStatus\r\n // IndentFor: vm.indentFor.Code,\r\n // ProjectId: vm.selectedProject.ProjectId\r\n }\r\n\r\n $state.go('viewIndent', {\r\n data: obj\r\n })\r\n\r\n }\r\n\r\n function getDraftIndent() {\r\n vm.isLoading = true;\r\n vm.pendingTile = false;\r\n debugger;\r\n if (vm.IndentStatus == 3) {\r\n IndentService.getCount(vm.indentFor.Code, vm.selectedProject.ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.waitingList = lodash.filter(res.data, { 'IndentStatus': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'IndentStatus': 2 });\r\n vm.pendingTile = true;\r\n }\r\n })\r\n } else {\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n IndentStatus: vm.IndentStatus,\r\n IndentFor: vm.indentFor.Code\r\n }\r\n IndentService.getDraft(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n if (vm.DraftList.length == 0) {\r\n $rootScope.showToaster('info', 'The draft indent list is no longer available', \"Indent\");\r\n }\r\n if (vm.IndentStatus == 1) {\r\n vm.indentDetail = false;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.selectedProject = null;\r\n vm.indentFor = null;\r\n }\r\n\r\n }\r\n\r\n\r\n vm.fromDraft = function() {\r\n vm.indentDetail = false;\r\n vm.isFormOpen = true;\r\n vm.IndentStatus = 3;\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n IndentStatus: vm.IndentStatus,\r\n IndentFor: vm.indentFor.Code\r\n }\r\n IndentService.getDraft(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n if (vm.DraftList.length >= 1) {\r\n vm.indentDetail = true;\r\n } else {\r\n $rootScope.showToaster('info', 'No data', \"Indent\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n vm.fromBackforCorrection = function() {\r\n vm.indentDetail = false;\r\n vm.isFormOpen = false;\r\n vm.IndentStatus = 2;\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n IndentStatus: vm.IndentStatus,\r\n IndentFor: vm.indentFor.Code\r\n }\r\n IndentService.getDraft(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n if (vm.DraftList.length >= 1) {\r\n vm.indentDetail = true;\r\n } else {\r\n $rootScope.showToaster('info', 'No data', \"Indent\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n function editIndent(row) {\r\n var obj = {\r\n Indentview: row,\r\n IndentId: row.IndentId,\r\n IndentStatus: vm.IndentStatus,\r\n IndentFor: vm.indentFor.Code,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n isEdit: true,\r\n isView: false\r\n }\r\n\r\n $state.go('viewIndent', {\r\n data: obj\r\n })\r\n }\r\n\r\n function viewIndent(row) {\r\n var obj = {\r\n Indentview: row,\r\n IndentId: row.IndentId,\r\n IndentStatus: vm.IndentStatus,\r\n IndentFor: vm.indentFor.Code,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n isView: true,\r\n isEdit: false\r\n }\r\n\r\n $state.go('viewIndent', {\r\n data: obj\r\n })\r\n\r\n }\r\n\r\n function remove(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Indent', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n var obj = {\r\n IndentId: row.IndentId,\r\n indentFor: vm.indentFor.Code\r\n }\r\n IndentService.remove(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Removed Successfully', \"Indent\");\r\n getDraftIndent();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Removed Failed! Try Again', \"Indent\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Indent\");\r\n });\r\n })\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('LocationSetupCtrl', LocationSetupCtrl);\r\n\r\n /** @ngInject */\r\n function LocationSetupCtrl($rootScope, lodash, dialogs, $http, LocationSetupService, CompanyService,\r\n projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TierList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.addNewTier = addNewTier;\r\n vm.removeTier = removeTier;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.removeLocationSetup = removeLocationSetup;\r\n vm.editLocationSetup = editLocationSetup;\r\n vm.SaveLocationSetup = SaveLocationSetup;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n\r\n //Load Grid\r\n function Init() {\r\n LocationSetupService.getAllLocationSetup(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationSetupList = res.data;\r\n vm.tierNameList = [];\r\n lodash.forEach(vm.LocationSetupList, function (loc) {\r\n loc.Tiers = JSON.parse(loc.Tiers);\r\n lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n if (!lodash.includes(vm.tierNameList, key))\r\n vm.tierNameList.push(key);\r\n });\r\n });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"LocationSetup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"LocationSetup\");\r\n });\r\n }\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"LocationSetup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"LocationSetup\");\r\n });\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.ProjectList = [];\r\n vm.location.selectedProject = null;\r\n\r\n }\r\n }\r\n\r\n\r\n vm.tiers = [];\r\n\r\n vm.editTier = function (item) {\r\n vm.edit = true;\r\n vm.location.Tier = item.tierName; \r\n vm.tId = item.id;\r\n }\r\n vm.saveTier = function () {\r\n vm.edit = false;\r\n for (var i in vm.tiers) {\r\n if (vm.tiers[i].id === vm.tId)\r\n vm.tiers[i].tierName = vm.location.Tier;\r\n }\r\n vm.location.Tier = null;\r\n }\r\n\r\n function addNewTier() {\r\n var newItemNo = (vm.tiers).length + 1;\r\n var check = false;\r\n if (vm.location.Tier != undefined || vm.location.Tier != null) {\r\n check = true;\r\n }\r\n if (check) {\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: vm.location.Tier\r\n });\r\n check = false;\r\n }\r\n else {\r\n dialogs.notify('warning', \"invalid tier name\", { animation: true, size: 'sm' });\r\n check = false;\r\n }\r\n vm.location.Tier = null;\r\n };\r\n\r\n function removeTier(item) {\r\n vm.tiers.splice(item, 1);\r\n };\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.location = {};\r\n vm.tiers = [];\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.location = {};\r\n vm.tiers = [];\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n function editLocationSetup(location) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.location = angular.copy(location);\r\n\r\n\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === location.CompanyId) {\r\n vm.location.selectedCompany = vm.CompanyList[c];\r\n }\r\n }\r\n\r\n getProjectByCompanyId(location.CompanyId, function () {\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === location.ProjectId) {\r\n vm.location.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n })\r\n\r\n vm.tiers = [];\r\n lodash.forIn(location.Tiers, function (tierValue, tier) {\r\n var newItemNo = (vm.tiers).length + 1;\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: tierValue\r\n });\r\n })\r\n }\r\n\r\n function removeLocationSetup(location) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n LocationSetupService.removeLocationSetup(location.LocationId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Location Setup\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete LocationSetup\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveLocationSetup(location) {\r\n if (vm.tiers.length > 0) {\r\n location.ProjectId = vm.location.selectedProject.ProjectId;\r\n var tierList = {};\r\n for (var i in vm.tiers) {\r\n tierList['Tier' + (parseInt(i) + 1)] = vm.tiers[i].tierName;\r\n }\r\n\r\n location.Tiers = JSON.stringify(tierList);\r\n if (!vm.isEditing) {\r\n LocationSetupService.AddLocationSetup(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n clear();\r\n } else {\r\n LocationSetupService.EditLocationSetup(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n clear();\r\n }\r\n }\r\n else {\r\n dialogs.notify('warning', \"please enter a tier name\", { animation: true, size: 'sm' });\r\n }\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('PendingForApprovalCtrl', PendingForApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function PendingForApprovalCtrl($http, $rootScope, lodash, dialogs, $state, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n \r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n vm.isDraft = false;\r\n vm.isCorrection = false;\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n LoadFromDraft();\r\n LoadFromCorrection();\r\n\r\n function LoadFromDraft() {\r\n projectCreationService.GetAllWaitingForApproval(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.waitingForApprovalList = res.data;\r\n \r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Waiting For Approval\");\r\n });\r\n }\r\n\r\n function LoadFromCorrection() {\r\n projectCreationService.GetAllbackFromCorrection(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.pendingApprovalList = res.data;\r\n \r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Back From Correction\");\r\n });\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row\r\n }\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n StatesId: 2,\r\n project: row,\r\n isView: true\r\n };\r\n\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.fromDraft = function () {\r\n LoadFromDraft();\r\n if (vm.waitingForApprovalList.length < 1) {\r\n dialogs.notify('Warning', 'No data found ', { animation: true, size: 'sm' });\r\n\r\n vm.isFormOpen = false;\r\n vm.isDraft = false;\r\n vm.isCorrection = false;\r\n\r\n } else {\r\n vm.isFormOpen = true;\r\n vm.isDraft = true;\r\n vm.isCorrection = false;\r\n }\r\n }\r\n\r\n vm.frombackforApproval = function () {\r\n LoadFromCorrection();\r\n if (vm.pendingApprovalList.length < 1) {\r\n dialogs.notify('Warning', 'No data found ', { animation: true, size: 'sm' });\r\n vm.isFormOpen = false;\r\n vm.isCorrection = false;\r\n vm.isDraft = false;\r\n }else{\r\n vm.isFormOpen = true;\r\n vm.isCorrection = true;\r\n vm.isDraft = false;\r\n }\r\n }\r\n\r\n vm.Back = function () {\r\n vm.isFormOpen = false;\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('projectFinalisedManualSchedulingCtrl', projectFinalisedManualSchedulingCtrl);\r\n\r\n /** @ngInject */\r\n function projectFinalisedManualSchedulingCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n CompanyService, HolidayMasterService, LocationSetupService, ProjectSchedulingService, ItemToItemService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n },\r\n { \"value\": 500 }\r\n ]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isEditing = false;\r\n vm.HolidayMasterList = [];\r\n vm.schedule = {};\r\n vm.dateCheck = false;\r\n vm.isRevised = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n // End of Pagination code\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.revisePlanning = revisePlanning;\r\n // vm.removePlanning = removePlanning;\r\n vm.Create = Create;\r\n vm.checkRelation = checkRelation;\r\n vm.filterTiersByParent = filterTiersByParent;\r\n vm.filterTiers = filterTiers;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getFinalisedBOQForSchedule = getFinalisedBOQForSchedule;\r\n vm.LoadPOWPlanning = LoadPOWPlanning;\r\n vm.getSubCategoryByCategory = getSubCategoryByCategory;\r\n vm.getTypeBySubCategory = getTypeBySubCategory;\r\n vm.getIocaByType = getIocaByType;\r\n vm.Schedule = true;\r\n vm.ReSchedule = false;\r\n vm.getToTiers = getToTiers;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'All',\r\n Code: 'A'\r\n }, {\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n ProjectSchedulingService.getFinalPlanning().then(function(res) {\r\n if (res.status === 200) {\r\n vm.finalPlanningList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Final Planning\");\r\n });\r\n\r\n ProjectSchedulingService.GetAllManualScheduling(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SchedulingList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Final Planning\");\r\n });\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function revisePlanning(row) {\r\n vm.isRevised = true;\r\n vm.isFormOpen = true;\r\n vm.Description = row.Description;\r\n vm.lastTierIdList = row.LastTierId;\r\n vm.PrjPlanID = row.PrjPlanID;\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === row.CompanyId) {\r\n vm.schedule.selectedCompany = vm.CompanyList[c];\r\n }\r\n }\r\n\r\n getProjectByCompany(row.CompanyId, function() {\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === row.ProjectId) {\r\n vm.schedule.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n\r\n getLocationByProject(row.ProjectId, function() {\r\n for (var c in vm.LocationMaster) {\r\n if (vm.LocationMaster[c].LocationId === row.LocationId) {\r\n vm.schedule.Location = vm.LocationMaster[c];\r\n }\r\n }\r\n })\r\n\r\n getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n })\r\n\r\n }\r\n\r\n // function removePlanning() {\r\n\r\n // }\r\n\r\n function LoadPOWPlanning(callBack) {\r\n ProjectSchedulingService.GetAllFinalisedPOWPlanning(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PowPlanningList = res.data;\r\n vm.PowProjectList = lodash.uniqBy(vm.PowPlanningList, 'ProjectName');\r\n vm.isLoading = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n if (callBack)\r\n callBack();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.filterbyProject = function(ProjectId) {\r\n if (ProjectId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = true;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n vm.PowLocationList = lodash.filter(vm.PowPlanningList, {\r\n 'ProjectId': ProjectId\r\n });\r\n vm.PowFilterLocList = lodash.uniqBy(vm.PowLocationList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, {\r\n 'ProjectId': ProjectId\r\n })\r\n });\r\n\r\n } else {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n LoadPOWPlanning();\r\n }\r\n\r\n }\r\n\r\n vm.filterbyLocation = function(ProjectId, LocationId) {\r\n if (LocationId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = true;\r\n vm.IOCAView = false;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.PowIOCAList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterIOCAList = lodash.uniqBy(vm.PowIOCAList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.pow.selecteIOCA = null;\r\n vm.filterbyProject(ProjectId);\r\n }\r\n\r\n\r\n }\r\n\r\n vm.filterbyIOCA = function(ProjectId, LocationId, IOCA_Id) {\r\n if (IOCA_Id) {\r\n LoadPOWPlanning(function() {\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = true;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.filter.IOCA_Id = IOCA_Id\r\n vm.PowTierList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterTierList = lodash.uniqBy(vm.PowTierList, 'TierName');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.filterbyLocation(ProjectId, LocationId);\r\n }\r\n\r\n }\r\n\r\n vm.reset = function() {\r\n vm.pow.selectedProject = null;\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n LoadPOWPlanning();\r\n\r\n }\r\n\r\n\r\n LoadHolidayMaster();\r\n\r\n function LoadHolidayMaster() {\r\n HolidayMasterService.getAllHolidayMaster().then(function(res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.HolidayMasterList = lodash.uniqBy(vm.HolidayMasterList, 'HolidayDate')\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.WeekOffList = [{\r\n WeekOffId: 0,\r\n WeekOffDay: \"Sunday\"\r\n },\r\n {\r\n WeekOffId: 1,\r\n WeekOffDay: \"Monday\"\r\n },\r\n {\r\n WeekOffId: 2,\r\n WeekOffDay: \"Tuesday\"\r\n },\r\n {\r\n WeekOffId: 3,\r\n WeekOffDay: \"Wednesday\"\r\n },\r\n {\r\n WeekOffId: 4,\r\n WeekOffDay: \"Thursday\"\r\n },\r\n {\r\n WeekOffId: 5,\r\n WeekOffDay: \"Friday\"\r\n },\r\n {\r\n WeekOffId: 6,\r\n WeekOffDay: \"saturday\"\r\n },\r\n\r\n ];\r\n\r\n function getProjectByCompany(CompanyId, callBack) {\r\n if (CompanyId) {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n }\r\n\r\n function getLocationByProject(ProjectId, callBack) {\r\n if (ProjectId) {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n isEdit: 0,\r\n planId: 0\r\n }\r\n ProjectSchedulingService.GetLocationForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n } else {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n if (LocationId && ProjectId) {\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.schedule.Location.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.schedule.Location.LocationId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetTiersForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n clearTierSelection();\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n }\r\n\r\n\r\n // set maximum tier for selection by the give tier \r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.workOrderIocaList, {\r\n // 'IOCA_Id': vm.selectedWoIOCA.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // return t2.TierId === t1.TierId;\r\n // });\r\n // })\r\n // }\r\n // }\r\n // }\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierId = Arr.join();\r\n\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.TierId)\r\n\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function filterTiersByParent(tier) {\r\n if (tier.selectedtireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.filteredTierList, function(t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedtireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.CopyTierList) {\r\n // if (vm.CopyTierList[i].selectedtireValue) {\r\n // vm.Arr.filter[vm.CopyTierList[i].TierName] = vm.CopyTierList[i].selectedtireValue.TierId\r\n // }\r\n // } \r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n // getToTiers(tier);\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.filteredTierList, function(tier) {\r\n tier.selectedtierValue = null;\r\n\r\n })\r\n }\r\n\r\n function getToTiers(tier) {\r\n debugger;\r\n vm.lastTierIdList = '';\r\n // get max tier\r\n var maxTier = _.maxBy(vm.rawTierListData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n }).TierName;\r\n\r\n if (tier.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(tier.selectedtireValue, 'TierId').join(',');\r\n } else {\r\n var currentTier = tier;\r\n var selectedTierList = tier.selectedtireValue;\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n if (t.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(selectedTierList, 'TierId').join(',');\r\n } else {\r\n if (getTierNo(t.TierName) >= getTierNo(tier.TierName)) {\r\n var parentIdList = lodash.map(selectedTierList, 'TierId');\r\n var nextTier = lodash.find(vm.rawTierListData, { 'TierName': 'Tier' + (getTierNo(t.TierName) + 1) })\r\n selectedTierList = lodash.filter(nextTier.Values, function(v) {\r\n return lodash.includes(parentIdList, v.ParentId);\r\n })\r\n }\r\n }\r\n })\r\n }\r\n vm.Lastid = tier.selectedtireValue.TierId\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.Lastid)\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue = t.TierVal + ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n\r\n\r\n\r\n vm.checkDate = false;\r\n vm.check = function() {\r\n if (vm.schedule.check) {\r\n vm.checkDate = true;\r\n } else\r\n vm.checkDate = false;\r\n }\r\n\r\n vm.Remove = function(item) {\r\n var index = vm.Arr.indexOf(item);\r\n vm.Arr.splice(index, 1);\r\n // const index = vm.Arr.indexOf(element);\r\n // vm.Arr.splice(index, 1);\r\n }\r\n\r\n\r\n function GetCategoryByTier(ProjectId, LocationId, TierId) {\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n LastTierId: TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetCategoryForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n // if (!vm.WorkOrderCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! Category Not Available for Selected Location', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n\r\n function getSubCategoryByCategory() {\r\n if (vm.selectedWoCategory) {\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n LastTierId: vm.TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetSubCategoryForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n function getTypeBySubCategory() {\r\n if (vm.selectedWoSubCategory) {\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n LastTierId: vm.TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetTypeForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n function getIocaByType() {\r\n if (vm.selectedWoType) {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.TaskList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.TypeId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n SpecType: vm.selectedSpecType.Code,\r\n LastTierId: vm.TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetIocaForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n if (!vm.WorkOrderIOCAList.length > 0) {\r\n dialogs.notify('Warning', '! IOCA Not Available On Selected Type of Item', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n vm.isIOCASelection = function() {\r\n\r\n if (vm.selectedWoIOCA.length > 0) {\r\n vm.isFreezeSelectionBtn = false;\r\n }\r\n }\r\n\r\n\r\n // function getIocaByType() {\r\n // if (vm.selectedWoType) {\r\n // ClearByType();\r\n // var Arr = [];\r\n // for (var i in vm.selectedWoType) {\r\n // Arr.push(vm.selectedWoType[i].TypeId);\r\n // }\r\n // vm.TypeId = Arr.join();\r\n // var obj = {\r\n // TypeIdList: vm.TypeId,\r\n // WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n // IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n // WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n // }\r\n // WorkApprovalService.GetIocaByWorkOderIoca(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.WorkOrderIOCAList = res.data;\r\n // if (vm.WorkOrderIOCAList.length < 1)\r\n // dialogs.notify('warning', \"There is no Work Order IOCA for selected Type\", { animation: true, size: 'sm' });\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n // });\r\n // }\r\n // else {\r\n // ClearByType();\r\n // }\r\n // }\r\n\r\n\r\n function getFinalisedBOQForSchedule(ProjectId, LocationId) {\r\n vm.isReleaseIOCA = false;\r\n if (LocationId) {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n // vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n // vm.schedule.selectedHoliday = null;\r\n // vm.schedule.selectedHoliday = [];\r\n // vm.schedule.selectedDays = null;\r\n // vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n LastTierId: vm.TierId,\r\n IocaId: vm.IocaId,\r\n Description: vm.Description\r\n // StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n }\r\n vm.isLoading = true;\r\n ProjectSchedulingService.getFinalisedBOQForSchedule(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n vm.isReset = false;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].popup = false;\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.DurationDtls = res.data.Duration;\r\n vm.ProjectHoliday = res.data.Holiday;\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n vm.Holiday = (vm.sequence.Holidays != \"\") ? JSON.parse(vm.sequence.Holidays) : { \"Holidays\": [] }\r\n vm.WeekOff = (vm.sequence.WeekOff != \"\") ? JSON.parse(vm.sequence.WeekOff) : { \"weekOff\": [] }\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n\r\n\r\n } else {\r\n vm.isRealease = true;\r\n vm.isReleaseIOCA = true;\r\n }\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.ProjectHoliday.WeekOff = JSON.parse(vm.ProjectHoliday.WeekOff);\r\n vm.isLoading = false;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Select Start Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n vm.ResetSchedule = function () {\r\n debugger;\r\n vm.isReleaseIOCA = false;\r\n var obj = {\r\n // PlanId: vm.sequence.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.TaskList = [];\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n vm.Description = null;\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.Holiday.Holidays = [];\r\n vm.WeekOff.weekOff = [];\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n vm.ReleaseSequence = function() {\r\n var Arr = [];\r\n for (var i in vm.ReleaseIOCAList) {\r\n Arr.push(vm.ReleaseIOCAList[i].PlanId);\r\n }\r\n vm.PlanId = Arr.join();\r\n\r\n var Arr1 = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr1.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr1.join();\r\n\r\n var obj = {\r\n PlanId: vm.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.isReleaseview = false;\r\n getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId)\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.Sequence = function() {\r\n vm.isEditSequence = true;\r\n }\r\n\r\n vm.EditPlanning = function(row) {\r\n vm.isLoading = true;\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n PlanId: row.PlanId\r\n }\r\n\r\n ProjectSchedulingService.GetAllFinalizedPlan(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n // vm.schedule.StartDate = new Date(vm.sequence.StartDate);\r\n vm.Description = vm.sequence.Description\r\n vm.schedule.selectedProject = {};\r\n vm.schedule.Location = {};\r\n vm.schedule.selectedProject.ProjectId = vm.sequence.ProjectId;\r\n vm.schedule.Location.LocationId = vm.sequence.LocationId;\r\n vm.TierId = vm.sequence.TierList\r\n vm.ProjectName = row.ProjectName;\r\n vm.BasicLocation = row.BasicLocation;\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].IOCA_Id)\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n debugger;\r\n\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n }\r\n vm.isLoading = false;\r\n vm.dateCheck = true;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n vm.FreezeSequence = function() {\r\n vm.isLoading = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n isFreeze: 1\r\n }\r\n\r\n ProjectSchedulingService.UpdatePlanFreeze(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.FreezeSchedule = function() {\r\n vm.isLoading = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = false;\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n isFreeze: 2\r\n }\r\n\r\n ProjectSchedulingService.UpdatePlanFreeze(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n }\r\n if (!vm.isEditing) {\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n\r\n }\r\n\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n }\r\n }\r\n } else {\r\n vm.Back();\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n vm.editOrder = function(row) {\r\n vm.isLoading = true;\r\n\r\n vm.TaskList = [];\r\n debugger;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n SequanceId: row.SequenceId,\r\n OrderOfSequence: row.IocaSeq,\r\n PlanId: vm.sequence.PlanId\r\n }\r\n ProjectSchedulingService.UpdatePlanSequence(obj).then(function(res) {\r\n if (res.status == 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n\r\n // getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n //getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.SaveDraftPlanning = function() {\r\n var Arr = [];\r\n\r\n for (var i in vm.TaskList) {\r\n // if (vm.TaskList[i].Relation) {\r\n Arr.push({\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n Relation: (vm.TaskList[i].Relation != 0 || vm.TaskList[i].Relation != '') ? vm.TaskList[i].Relation : '',\r\n CreatedBy: loggedUser.UserId,\r\n Sequence: vm.TaskList[i].IocaSeq,\r\n EarlyStart: $filter('date')(vm.TaskList[i].EarlyStart, 'yyyy/MM/dd'),\r\n EarlyEnd: $filter('date')(vm.TaskList[i].EarlyEnd, 'yyyy/MM/dd'),\r\n LateStart: $filter('date')(vm.TaskList[i].LateStart, 'yyyy/MM/dd'),\r\n LateEnd: $filter('date')(vm.TaskList[i].LateEnd, 'yyyy/MM/dd'),\r\n Delay: vm.TaskList[i].Delay\r\n })\r\n // }\r\n }\r\n var obj = {\r\n DraftList: JSON.stringify(Arr)\r\n }\r\n ProjectSchedulingService.InsertDraftPlanning(obj).then(function(res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Scheduling\");\r\n } else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"Project Scheduling\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Scheduling\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n\r\n vm.SaveProject = function() {\r\n\r\n vm.isData = false;\r\n for (var i in vm.TaskList) {\r\n if (vm.TaskList[i].Duration == undefined || vm.TaskList[i].Duration == '' || vm.TaskList[i].EarlyStart == undefined) {\r\n vm.isData = true;\r\n }\r\n }\r\n\r\n if (!vm.isData) {\r\n vm.isLoading = true;\r\n vm.isScheduled = true;\r\n vm.isFreezeSelectionBtn = true;\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n var temp = {\r\n PlanId: vm.sequence.PlanId,\r\n TaskId: vm.TaskList[i].IocaSeq,\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: parseInt(vm.TaskList[i].Duration),\r\n Delay: parseInt(vm.TaskList[i].Delay),\r\n EarlyStart: $filter('date')(vm.TaskList[i].EarlyStart, 'yyyy/MM/dd'),\r\n EarlyEnd: $filter('date')(vm.TaskList[i].EarlyEnd, 'yyyy/MM/dd'),\r\n LateStart: $filter('date')(vm.TaskList[i].LateStart, 'yyyy/MM/dd'),\r\n LateEnd: $filter('date')(vm.TaskList[i].LateEnd, 'yyyy/MM/dd'),\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n PowQty: vm.TaskList[i].PowQty,\r\n EmpId: vm.TaskList[i].EmpId,\r\n ReportTo: vm.TaskList[i].ReportingTo,\r\n Predecesser: vm.TaskList[i].IocaSeq - 1,\r\n CriticalPath: 0,\r\n Revison: vm.sequence.Revison,\r\n CreatedBy: loggedUser.UserId,\r\n Status: 1\r\n }\r\n Arr.push(temp);\r\n }\r\n\r\n var obj = {\r\n TaskList: JSON.stringify(Arr)\r\n }\r\n\r\n // var obj = {\r\n // PlanId: vm.sequence.PlanId,\r\n // ProjectId: vm.schedule.selectedProject.ProjectId,\r\n // LocationId: vm.schedule.Location.LocationId,\r\n // Description: vm.Description,\r\n // Revison: vm.sequence.Revison,\r\n // // Holidays: JSON.stringify(objHoliday),\r\n // /// AdditionalHolidays: JSON.stringify(objAddHoliday),\r\n // // WeekOff: JSON.stringify(objWeekOff),\r\n // TaskList: JSON.stringify(Arr),\r\n // CreatedBy: loggedUser.UserId,\r\n // StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n // }\r\n if (!vm.isRevised) {\r\n ProjectSchedulingService.AddFinalisedManualPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n vm.TaskList = res.data.BoQDetails;\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n } else if (vm.ImportReturn.MessageCode == 2) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n var location = '';\r\n for (var i in res.data.Locations) {\r\n location = location + res.data.Locations[i].Locations + '
';\r\n }\r\n var confirm = dialogs.notify(res.data.Message, location, { animation: true, size: 'md' });\r\n notify.result.then(function() {});\r\n\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n } else {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n }\r\n vm.isLoading = false;\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n obj.ProjectPlanId = vm.PrjPlanID;\r\n ProjectSchedulingService.revisedFinalisedPlanning(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Revised Project Planning\");\r\n // getFinalisedBOQForSchedule(obj.ProjectId, obj.LocationId);\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Planning\");\r\n\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n } else {\r\n dialogs.notify('Warning', '! Some Inputs are Missing ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n vm.Back = function() {\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n vm.dateCheck = false;\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n\r\n vm.BacktoPlan = function() {\r\n vm.isReleaseview = false;\r\n }\r\n\r\n\r\n vm.ReleaseIOCA = function() {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n ProjectSchedulingService.GetIOCAForRelease(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ReleaseList = res.data;\r\n vm.ReleaseIOCAList = [];\r\n\r\n if (vm.TaskList.length > 0) {\r\n for (var i in vm.TaskList) {\r\n for (var j in vm.ReleaseList) {\r\n if (vm.TaskList[i].LastTierId != vm.ReleaseList[j].LastTierId) {\r\n vm.ReleaseIOCAList.push(vm.ReleaseList[j])\r\n }\r\n }\r\n }\r\n } else\r\n vm.ReleaseIOCAList = vm.ReleaseList;\r\n\r\n if (vm.ReleaseIOCAList.length > 0) {\r\n vm.isReleaseview = true;\r\n } else {\r\n dialogs.notify('Warning', '! There is No IOCA ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n // vm.EndDateCal = function (row) {\r\n // var now = new Date(row.EarlyStart);\r\n // now.setDate(now.getDate() + (parseInt(row.Duration) - 1))\r\n // row.EarlyEnd = now;\r\n\r\n // var Ls = new Date(row.EarlyStart);\r\n // Ls.setDate(Ls.getDate() + (((row.Delay != undefined) ? parseInt(row.Delay) : 0)))\r\n // row.LateStart = Ls;\r\n\r\n // var Le = new Date(row.LateStart);\r\n // Le.setDate(Le.getDate() + (parseInt(row.Duration) - 1))\r\n // row.LateEnd = Le;\r\n // }\r\n\r\n vm.EndDateCal = function(row) {\r\n if (row.Duration) {\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n EarlyStartDate: $filter('date')(row.EarlyStart, 'yyyy-MM-dd'),\r\n Duration: row.Duration,\r\n Delay: (row.Delay != '' || row.Delay != undefined) ? row.Delay : 0\r\n }\r\n\r\n ProjectSchedulingService.GetDate(obj).then(function(res) {\r\n if (res.status === 200) {\r\n row.EarlyEnd = angular.copy(res.data.EarlyEndDate);\r\n row.LateStart = angular.copy(res.data.LateStartDate);\r\n row.LateEnd = angular.copy(res.data.LateEndDate)\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n // var now = new Date(row.EarlyStart);\r\n // now.setDate(now.getDate() + (parseInt(row.Duration) - 1))\r\n // row.EarlyEnd = now;\r\n\r\n // var Ls = new Date(row.EarlyStart);\r\n // Ls.setDate(Ls.getDate() + (((row.Delay != undefined) ? parseInt(row.Delay) : 0)))\r\n // row.LateStart = Ls;\r\n\r\n // var Le = new Date(row.LateStart);\r\n // Le.setDate(Le.getDate() + (parseInt(row.Duration) - 1))\r\n // row.LateEnd = Le;\r\n } else {\r\n dialogs.notify('Warning', 'Inputs are missing!', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.EarlyStart = null\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function checkRelation(row) {\r\n if (row != null) {\r\n if (row.IocaSeq <= row.Relation) {\r\n dialogs.notify('Incorrect Value', 'There Relation should be less than CurrentSequence ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.Relation = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.TaskList = [];\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.Description = null;\r\n }\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n //minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = new Date();\r\n // vm.schedule.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1,\r\n // maxDate: new Date()\r\n };\r\n\r\n\r\n $scope.toggleMin = function() {\r\n $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();\r\n $scope.dateOptions.minDate = $scope.inlineOptions.minDate;\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open = function(row) {\r\n debugger\r\n row.popup = true;\r\n }\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('projectFinalisedManualReSchedulingCtrl', projectFinalisedManualReSchedulingCtrl);\r\n\r\n /** @ngInject */\r\n function projectFinalisedManualReSchedulingCtrl($http, $uibModal, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n CompanyService, HolidayMasterService, LocationSetupService, ProjectSchedulingService, ItemToItemService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n },\r\n { \"value\": 500 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isEditing = false;\r\n vm.HolidayMasterList = [];\r\n vm.schedule = {};\r\n vm.dateCheck = false;\r\n vm.isRevised = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n // End of Pagination code\r\n vm.getPlanByProject = getPlanByProject\r\n vm.isDataEmpty = false;\r\n\r\n\r\n // vm.removePlanning = removePlanning; \r\n vm.checkRelation = checkRelation;\r\n\r\n\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getAllPowByPlanId = getAllPowByPlanId;\r\n\r\n vm.getFinalisedBOQForSchedule = getFinalisedBOQForSchedule;\r\n vm.setPlanDate = setPlanDate\r\n vm.Schedule = true;\r\n vm.ReSchedule = false;\r\n\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n\r\n vm.isPowCheck = false;\r\n vm.viewPow = false;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n vm.reset = function () {\r\n vm.pow.selectedProject = null;\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n vm.isPowCheck = false;\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n LoadPOWPlanning();\r\n\r\n }\r\n vm.PeriodList = [{ PeriodName: 'Monthly', Id: 'M' }, { PeriodName: 'Periodic', Id: 'P' }, { PeriodName: 'Quarterly', Id: 'Q' }];\r\n\r\n vm.WeekOffList = [{\r\n WeekOffId: 0,\r\n WeekOffDay: \"Sunday\"\r\n },\r\n {\r\n WeekOffId: 1,\r\n WeekOffDay: \"Monday\"\r\n },\r\n {\r\n WeekOffId: 2,\r\n WeekOffDay: \"Tuesday\"\r\n },\r\n {\r\n WeekOffId: 3,\r\n WeekOffDay: \"Wednesday\"\r\n },\r\n {\r\n WeekOffId: 4,\r\n WeekOffDay: \"Thursday\"\r\n },\r\n {\r\n WeekOffId: 5,\r\n WeekOffDay: \"Friday\"\r\n },\r\n {\r\n WeekOffId: 6,\r\n WeekOffDay: \"saturday\"\r\n },\r\n\r\n ];\r\n\r\n function getProjectByCompany(CompanyId, callBack) {\r\n if (CompanyId) {\r\n vm.TaskList = [];\r\n ProjectSchedulingService.GetAllProjectManualReSchedule(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.TaskList = [];\r\n vm.schedule.selectedProject=null;\r\n vm.schedule.selectedPlan= null;\r\n vm.selectedPeriod= null;\r\n }\r\n }\r\n\r\n function getPlanByProject(projectId) {\r\n ProjectSchedulingService.GetTempScheduleForManualReSchedule(projectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PlanList = res.data;\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n vm.schedule.selectedPlan= null;\r\n vm.selectedPeriod= null;\r\n }\r\n\r\n\r\n\r\n\r\n vm.checkDate = false;\r\n vm.check = function () {\r\n if (vm.schedule.check) {\r\n vm.checkDate = true;\r\n } else\r\n vm.checkDate = false;\r\n }\r\n\r\n vm.Remove = function (item) {\r\n var index = vm.Arr.indexOf(item);\r\n vm.Arr.splice(index, 1);\r\n // const index = vm.Arr.indexOf(element);\r\n // vm.Arr.splice(index, 1);\r\n }\r\n\r\n vm.isIOCASelection = function () {\r\n\r\n if (vm.selectedWoIOCA.length > 0) {\r\n vm.isFreezeSelectionBtn = false;\r\n }\r\n }\r\n\r\n\r\n\r\n function getFinalisedBOQForSchedule(ProjectId) {\r\n vm.isReleaseIOCA = false;\r\n vm.isPowCheck = false;\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n PlanId: vm.schedule.selectedPlan.PlanId,\r\n FromDate: $filter('date')(vm.FromDate, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.ToDate, 'yyyy/MM/dd')\r\n }\r\n vm.isLoading = true;\r\n ProjectSchedulingService.GetFinalisedBOQForManualReSchedule(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n vm.isReset = false;\r\n\r\n if (vm.TaskList.length < 1) {\r\n vm.isDataEmpty = true;\r\n }\r\n else {\r\n vm.isDataEmpty = false;\r\n }\r\n\r\n var Arr1 = [];\r\n for (var i in vm.TaskList) {\r\n Arr1.push(vm.TaskList[i].IOCA_Id);\r\n }\r\n vm.IocaList = Arr1.join();\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].LastTierId);\r\n }\r\n vm.TierList = Arr.join();\r\n\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.DurationDtls = res.data.Duration;\r\n vm.ProjectHoliday = res.data.Holiday;\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n vm.Holiday = (vm.sequence.Holidays != \"\") ? JSON.parse(vm.sequence.Holidays) : { \"Holidays\": [] }\r\n vm.WeekOff = (vm.sequence.WeekOff != \"\") ? JSON.parse(vm.sequence.WeekOff) : { \"weekOff\": [] }\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n else {\r\n vm.isRealease = true;\r\n vm.isReleaseIOCA = true;\r\n }\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.ProjectHoliday.WeekOff = JSON.parse(vm.ProjectHoliday.WeekOff);\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n vm.ResetSchedule = function () {\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.TaskList = [];\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.schedule.selectedPlan = null;\r\n vm.selectedPeriod = null;\r\n vm.Holiday.Holidays = [];\r\n vm.WeekOff.weekOff = [];\r\n }\r\n\r\n\r\n vm.ReleaseSequence = function () {\r\n var Arr = [];\r\n for (var i in vm.ReleaseIOCAList) {\r\n Arr.push(vm.ReleaseIOCAList[i].PlanId);\r\n }\r\n vm.PlanId = Arr.join();\r\n\r\n var Arr1 = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr1.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr1.join();\r\n\r\n var obj = {\r\n PlanId: vm.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.isReleaseview = false;\r\n getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId)\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.Sequence = function () {\r\n vm.isEditSequence = true;\r\n }\r\n\r\n vm.EditPlanning = function (row) {\r\n vm.isLoading = true;\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n PlanId: row.PlanId\r\n }\r\n\r\n ProjectSchedulingService.GetAllFinalizedPlan(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n // vm.schedule.StartDate = new Date(vm.sequence.StartDate);\r\n vm.Description = vm.sequence.Description\r\n vm.schedule.selectedProject = {};\r\n vm.schedule.Location = {};\r\n vm.schedule.selectedProject.ProjectId = vm.sequence.ProjectId;\r\n vm.schedule.Location.LocationId = vm.sequence.LocationId;\r\n vm.TierId = vm.sequence.TierList\r\n vm.ProjectName = row.ProjectName;\r\n vm.BasicLocation = row.BasicLocation;\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].IOCA_Id)\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n }\r\n vm.isLoading = false;\r\n vm.dateCheck = true;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.FreezeSequence = function () {\r\n vm.isLoading = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n Revison: vm.sequence.Revison,\r\n FromDate: $filter('date')(vm.FromDate, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.ToDate, 'yyyy/MM/dd'),\r\n isFreeze: 1\r\n }\r\n\r\n ProjectSchedulingService.UpdateManualPlanFreeze(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n }\r\n else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n }\r\n else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.FreezeSchedule = function () {\r\n\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].ProjectScheduleId)\r\n }\r\n var ProjectScheduleId = Arr.join()\r\n\r\n ProjectSchedulingService.FreezeManualSchedule(ProjectScheduleId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Freeze Schedule\");\r\n vm.TaskList = [];\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.selectedPeriod = null;\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.isPowCheck = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n vm.editOrder = function (row) {\r\n vm.isLoading = true;\r\n\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n SequanceId: row.SequenceId,\r\n OrderOfSequence: row.IocaSeq,\r\n PlanId: vm.sequence.PlanId,\r\n FromDate: $filter('date')(vm.FromDate, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.ToDate, 'yyyy/MM/dd')\r\n }\r\n ProjectSchedulingService.UpdateManualPlanSequence(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n\r\n // getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n //getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n vm.SaveDraftPlanning = function () {\r\n var Arr = [];\r\n\r\n for (var i in vm.TaskList) {\r\n // if (vm.TaskList[i].Relation) {\r\n Arr.push({\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n Relation: (vm.TaskList[i].Relation != 0 || vm.TaskList[i].Relation != '') ? vm.TaskList[i].Relation : '',\r\n CreatedBy: loggedUser.UserId,\r\n // Sequence: vm.TaskList[i].IocaSeq,\r\n EarlyStart: $filter('date')(vm.TaskList[i].EarlyStart, 'yyyy/MM/dd'),\r\n EarlyEnd: $filter('date')(vm.TaskList[i].EarlyEnd, 'yyyy/MM/dd'),\r\n LateStart: $filter('date')(vm.TaskList[i].LateStart, 'yyyy/MM/dd'),\r\n LateEnd: $filter('date')(vm.TaskList[i].LateEnd, 'yyyy/MM/dd'),\r\n Delay: vm.TaskList[i].Delay\r\n })\r\n // }\r\n }\r\n var obj = {\r\n DraftList: JSON.stringify(Arr)\r\n }\r\n ProjectSchedulingService.InsertDraftPlanning(obj).then(function (res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Scheduling\");\r\n }\r\n else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"Project Scheduling\");\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Scheduling\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n vm.SaveProject = function () {\r\n\r\n vm.isData = false;\r\n for (var i in vm.TaskList) {\r\n if (vm.TaskList[i].Duration == undefined || vm.TaskList[i].Duration == '' || vm.TaskList[i].EarlyStart == undefined) {\r\n vm.isData = true;\r\n }\r\n }\r\n\r\n if (!vm.isData) {\r\n vm.isLoading = true;\r\n vm.isScheduled = true;\r\n vm.isFreezeSelectionBtn = true;\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n if (vm.TaskList[i].Duration) {\r\n var temp = {\r\n PlanId: vm.sequence.PlanId,\r\n TaskId: vm.TaskList[i].IocaSeq,\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: parseInt(vm.TaskList[i].Duration),\r\n Delay: parseInt(vm.TaskList[i].Delay),\r\n EarlyStart: $filter('date')(vm.TaskList[i].EarlyStart, 'yyyy/MM/dd'),\r\n EarlyEnd: $filter('date')(vm.TaskList[i].EarlyEnd, 'yyyy/MM/dd'),\r\n LateStart: $filter('date')(vm.TaskList[i].LateStart, 'yyyy/MM/dd'),\r\n LateEnd: $filter('date')(vm.TaskList[i].LateEnd, 'yyyy/MM/dd'),\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n PowQty: vm.TaskList[i].PowQty,\r\n isFreeze: vm.TaskList[i].isFreeze,\r\n Locations: vm.TaskList[i].Locations,\r\n ShortDescription: vm.TaskList[i].ShortDescription,\r\n UnitName: vm.TaskList[i].UnitName,\r\n BalPowQty: vm.TaskList[i].BalPowQty,\r\n PendingWork: vm.TaskList[i].PendingWork,\r\n TotalBalanceQty: vm.TaskList[i].TotalBalanceQty,\r\n EmpId: vm.TaskList[i].EmpId,\r\n ReportTo: vm.TaskList[i].ReportingTo,\r\n ReportingToName: vm.TaskList[i].ReportingToName,\r\n EmployeeName: vm.TaskList[i].EmployeeName,\r\n Predecesser: vm.TaskList[i].IocaSeq - 1,\r\n CriticalPath: 0,\r\n Revison: vm.TaskList[i].Revison,\r\n CreatedBy: loggedUser.UserId,\r\n ProjectScheduleId: vm.TaskList[i].ProjectScheduleId,\r\n Status: 1\r\n }\r\n Arr.push(temp);\r\n }\r\n\r\n }\r\n\r\n console.log(Arr);\r\n\r\n var obj = {\r\n TaskList: JSON.stringify(Arr)\r\n }\r\n\r\n // var obj = {\r\n // PlanId: vm.sequence.PlanId,\r\n // ProjectId: vm.schedule.selectedProject.ProjectId,\r\n // LocationId: vm.schedule.Location.LocationId,\r\n // Description: vm.Description,\r\n // Revison: vm.sequence.Revison,\r\n // // Holidays: JSON.stringify(objHoliday),\r\n // /// AdditionalHolidays: JSON.stringify(objAddHoliday),\r\n // // WeekOff: JSON.stringify(objWeekOff),\r\n // TaskList: JSON.stringify(Arr),\r\n // CreatedBy: loggedUser.UserId,\r\n // StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n // }\r\n if (!vm.isRevised) {\r\n ProjectSchedulingService.CreateFinalisedProjectManualRePlanning(obj).then(function (res) {\r\n vm.TaskList = [];\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n vm.TaskList = res.data.BoQDetails;\r\n vm.isPowCheck = true;\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n if (vm.TaskList[i].EarlyStart)\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n }\r\n\r\n else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n }\r\n }\r\n else if (vm.ImportReturn.MessageCode == 2) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n var location = '';\r\n for (var i in res.data.Locations) {\r\n location = location + res.data.Locations[i].Locations + '
';\r\n }\r\n var confirm = dialogs.notify(res.data.Message, location, { animation: true, size: 'md' });\r\n notify.result.then(function () { });\r\n\r\n }\r\n else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n }\r\n\r\n else {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n }\r\n vm.isLoading = false;\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n obj.ProjectPlanId = vm.PrjPlanID;\r\n ProjectSchedulingService.revisedFinalisedPlanning(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Revised Project Planning\");\r\n // getFinalisedBOQForSchedule(obj.ProjectId, obj.LocationId);\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Planning\");\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.notify('Warning', '! Some Inputs are Missing ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n vm.Back = function () {\r\n vm.viewPow = false;\r\n }\r\n\r\n vm.BacktoPlan = function () {\r\n vm.isReleaseview = false;\r\n }\r\n\r\n\r\n vm.ReleaseIOCA = function () {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n ProjectSchedulingService.GetIOCAForRelease(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ReleaseList = res.data;\r\n vm.ReleaseIOCAList = [];\r\n\r\n if (vm.TaskList.length > 0) {\r\n for (var i in vm.TaskList) {\r\n for (var j in vm.ReleaseList) {\r\n if (vm.TaskList[i].LastTierId != vm.ReleaseList[j].LastTierId) {\r\n vm.ReleaseIOCAList.push(vm.ReleaseList[j])\r\n }\r\n }\r\n }\r\n }\r\n else\r\n vm.ReleaseIOCAList = vm.ReleaseList;\r\n\r\n if (vm.ReleaseIOCAList.length > 0) {\r\n vm.isReleaseview = true;\r\n }\r\n else {\r\n dialogs.notify('Warning', '! There is No IOCA ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getAllPowByPlanId(row) {\r\n\r\n vm.Locations = angular.copy(row.Locations);\r\n vm.IOCAName = angular.copy(row.ShortDescription);\r\n vm.viewPow = true;\r\n ProjectSchedulingService.getAllPowByPlanId(row.ProjectScheduleId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PowList = res.data;\r\n vm.isLoading = false;\r\n // var obj = {\r\n // PowList: vm.PowList\r\n // }\r\n // var modalInstance = $uibModal.open({\r\n // animation: true,\r\n // ariaLabelledBy: 'modal-title',\r\n // ariaDescribedBy: 'modal-body',\r\n // templateUrl: 'app/pages/constructionProjectSetup/planning/viewPowPlanning.html',\r\n // controller: 'ViewPowPlanningCtrl',\r\n // controllerAs: 'vm',\r\n // size: 'lg',\r\n // backdrop: 'static',\r\n // keyboard: false,\r\n // resolve: {\r\n // items: function () {\r\n // return obj;\r\n // }\r\n\r\n // }\r\n // });\r\n // modalInstance.result.then(function () {\r\n // }, function () { });\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n // vm.EndDateCal = function (row) {\r\n // var now = new Date(row.EarlyStart);\r\n // now.setDate(now.getDate() + (parseInt(row.Duration) - 1))\r\n // row.EarlyEnd = now;\r\n\r\n // var Ls = new Date(row.EarlyStart);\r\n // Ls.setDate(Ls.getDate() + (((row.Delay != undefined) ? parseInt(row.Delay) : 0)))\r\n // row.LateStart = Ls;\r\n\r\n // var Le = new Date(row.LateStart);\r\n // Le.setDate(Le.getDate() + (parseInt(row.Duration) - 1))\r\n // row.LateEnd = Le;\r\n // }\r\n\r\n\r\n function checkRelation(row) {\r\n if (row != null) {\r\n if (row.IocaSeq <= row.Relation) {\r\n dialogs.notify('Incorrect Value', 'There Relation should be less than CurrentSequence ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.Relation = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n vm.clearDate = function () {\r\n vm.ToDate = null;\r\n vm.FromDate = null;\r\n vm.Selectedmonth = null;\r\n }\r\n function setPlanDate() {\r\n if (vm.selectedPeriod.Id == 'M') {\r\n if (vm.Selectedmonth != undefined) {\r\n vm.FromDate = $filter('date')(vm.Selectedmonth, 'yyyy-MM-dd');\r\n vm.ToDate = angular.copy(vm.Selectedmonth);\r\n var numberOfMonthToAdd = 1;\r\n vm.ToDate.setMonth(vm.ToDate.getMonth() + numberOfMonthToAdd);\r\n vm.ToDate.setDate(vm.ToDate.getDate() - 1);\r\n vm.ToDate = $filter('date')(vm.ToDate, 'yyyy-MM-dd')\r\n }\r\n }\r\n if (vm.selectedPeriod.Id == 'Q') {\r\n if (vm.FromDate != undefined) {\r\n vm.ToDate = angular.copy(vm.FromDate);\r\n var numberOfMonthToAdd = 3;\r\n vm.ToDate.setMonth(vm.ToDate.getMonth() + numberOfMonthToAdd);\r\n vm.ToDate.setDate(vm.ToDate.getDate() - 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.EndDateCal = function (row) {\r\n if (row.Duration) {\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n EarlyStartDate: $filter('date')(row.EarlyStart, 'yyyy-MM-dd'),\r\n Duration: row.Duration,\r\n Delay: (row.Delay != '' || row.Delay != undefined) ? row.Delay : 0\r\n }\r\n\r\n ProjectSchedulingService.GetDate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n row.EarlyEnd = angular.copy(res.data.EarlyEndDate);\r\n row.LateStart = angular.copy(res.data.LateStartDate);\r\n row.LateEnd = angular.copy(res.data.LateEndDate)\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n // var now = new Date(row.EarlyStart);\r\n // now.setDate(now.getDate() + (parseInt(row.Duration) - 1))\r\n // row.EarlyEnd = now;\r\n\r\n // var Ls = new Date(row.EarlyStart);\r\n // Ls.setDate(Ls.getDate() + (((row.Delay != undefined) ? parseInt(row.Delay) : 0)))\r\n // row.LateStart = Ls;\r\n\r\n // var Le = new Date(row.LateStart);\r\n // Le.setDate(Le.getDate() + (parseInt(row.Duration) - 1))\r\n // row.LateEnd = Le;\r\n }\r\n else {\r\n dialogs.notify('Warning', 'Inputs are missing!', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.EarlyStart = null\r\n }\r\n\r\n }\r\n\r\n\r\n // Date Picker\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open = function (row) {\r\n row.popup = true;\r\n }\r\n\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('ProjectFinalisedReSchedulingCtrl', ProjectFinalisedReSchedulingCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectFinalisedReSchedulingCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n CompanyService, HolidayMasterService, LocationSetupService, ProjectSchedulingService, ItemToItemService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n },\r\n { \"value\": 500 }\r\n ]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isEditing = false;\r\n vm.HolidayMasterList = [];\r\n vm.schedule = {};\r\n vm.dateCheck = false;\r\n vm.isRevised = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n // End of Pagination code\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.revisePlanning = revisePlanning;\r\n // vm.removePlanning = removePlanning;\r\n vm.Create = Create;\r\n vm.checkRelation = checkRelation;\r\n vm.getTempSchedule = getTempSchedule;\r\n vm.filterTiersByParent = filterTiersByParent;\r\n vm.filterTiers = filterTiers;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getFinalisedBOQForSchedule = getFinalisedBOQForSchedule;\r\n vm.LoadPOWPlanning = LoadPOWPlanning;\r\n vm.getSubCategoryByCategory = getSubCategoryByCategory;\r\n vm.getTypeBySubCategory = getTypeBySubCategory;\r\n vm.getIocaByType = getIocaByType;\r\n vm.Schedule = true;\r\n vm.ReSchedule = false;\r\n vm.getToTiers = getToTiers;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isCheckschedule = false;\r\n vm.isReset = true;\r\n vm.isSequence = true;\r\n vm.isFreezeDuration = false;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n ProjectSchedulingService.getFinalPlanning().then(function(res) {\r\n if (res.status === 200) {\r\n vm.finalPlanningList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Final Planning\");\r\n });\r\n\r\n ProjectSchedulingService.GetAllReScheduling(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ReSchedulingList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Final Planning\");\r\n });\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function revisePlanning(row) {\r\n vm.isRevised = true;\r\n vm.isFormOpen = true;\r\n vm.Description = row.Description;\r\n vm.lastTierIdList = row.LastTierId;\r\n vm.PrjPlanID = row.PrjPlanID;\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === row.CompanyId) {\r\n vm.schedule.selectedCompany = vm.CompanyList[c];\r\n }\r\n }\r\n\r\n getProjectByCompany(row.CompanyId, function() {\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === row.ProjectId) {\r\n vm.schedule.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n\r\n getLocationByProject(row.ProjectId, function() {\r\n for (var c in vm.LocationMaster) {\r\n if (vm.LocationMaster[c].LocationId === row.LocationId) {\r\n vm.schedule.Location = vm.LocationMaster[c];\r\n }\r\n }\r\n })\r\n\r\n getFinalisedBOQForSchedule(row.ProjectId);\r\n })\r\n \r\n }\r\n\r\n // function removePlanning() {\r\n\r\n // }\r\n\r\n function LoadPOWPlanning(callBack) {\r\n debugger\r\n ProjectSchedulingService.GetAllFinalisedPOWPlanning(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PowPlanningList = res.data;\r\n vm.PowProjectList = lodash.uniqBy(vm.PowPlanningList, 'ProjectName');\r\n vm.isLoading = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n if (callBack)\r\n callBack();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.filterbyProject = function(ProjectId) {\r\n if (ProjectId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = true;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n vm.PowLocationList = lodash.filter(vm.PowPlanningList, {\r\n 'ProjectId': ProjectId\r\n });\r\n vm.PowFilterLocList = lodash.uniqBy(vm.PowLocationList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, {\r\n 'ProjectId': ProjectId\r\n })\r\n });\r\n\r\n } else {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n LoadPOWPlanning();\r\n }\r\n\r\n }\r\n\r\n vm.filterbyLocation = function(ProjectId, LocationId) {\r\n if (LocationId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = true;\r\n vm.IOCAView = false;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.PowIOCAList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterIOCAList = lodash.uniqBy(vm.PowIOCAList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.pow.selecteIOCA = null;\r\n vm.filterbyProject(ProjectId);\r\n }\r\n\r\n\r\n }\r\n\r\n vm.filterbyIOCA = function(ProjectId, LocationId, IOCA_Id) {\r\n if (IOCA_Id) {\r\n LoadPOWPlanning(function() {\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = true;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.filter.IOCA_Id = IOCA_Id\r\n vm.PowTierList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterTierList = lodash.uniqBy(vm.PowTierList, 'TierName');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.filterbyLocation(ProjectId, LocationId);\r\n }\r\n\r\n }\r\n\r\n vm.cancel = function() {\r\n\r\n vm.isFreezeSelection = false;\r\n vm.selectBoq = false;\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.schedule.selectedPlan = null;\r\n vm.schedule.StartDate = null;\r\n vm.schedule.Location = null;\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n vm.reset = function() {\r\n vm.pow.selectedProject = null;\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n LoadPOWPlanning();\r\n\r\n }\r\n\r\n\r\n LoadHolidayMaster();\r\n\r\n function LoadHolidayMaster() {\r\n HolidayMasterService.getAllHolidayMaster().then(function(res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.HolidayMasterList = lodash.uniqBy(vm.HolidayMasterList, 'HolidayDate')\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.WeekOffList = [{\r\n WeekOffId: 0,\r\n WeekOffDay: \"Sunday\"\r\n },\r\n {\r\n WeekOffId: 1,\r\n WeekOffDay: \"Monday\"\r\n },\r\n {\r\n WeekOffId: 2,\r\n WeekOffDay: \"Tuesday\"\r\n },\r\n {\r\n WeekOffId: 3,\r\n WeekOffDay: \"Wednesday\"\r\n },\r\n {\r\n WeekOffId: 4,\r\n WeekOffDay: \"Thursday\"\r\n },\r\n {\r\n WeekOffId: 5,\r\n WeekOffDay: \"Friday\"\r\n },\r\n {\r\n WeekOffId: 6,\r\n WeekOffDay: \"saturday\"\r\n },\r\n\r\n ];\r\n\r\n function getProjectByCompany(CompanyId, callBack) {\r\n if (CompanyId) {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n\r\n\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n ProjectSchedulingService.GetFinalScheduledProject(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n }\r\n vm.schedule.selectedPlan=null;\r\n }\r\n\r\n function getTempSchedule(projectId) {\r\n\r\n ProjectSchedulingService.GetTempSchedule(projectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PlanList = res.data;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n vm.schedule.selectedPlan= null;\r\n }\r\n\r\n\r\n\r\n function getLocationByProject(ProjectId, callBack) {\r\n if (ProjectId) {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n isEdit: 1,\r\n planId: vm.schedule.selectedPlan.PlanId\r\n }\r\n ProjectSchedulingService.GetLocationForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n } else {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n debugger;\r\n if (LocationId && ProjectId) {\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.schedule.Location.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.schedule.Location.LocationId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n isEdit: 1,\r\n planId: vm.schedule.selectedPlan.PlanId\r\n }\r\n ProjectSchedulingService.GetTiersForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n clearTierSelection();\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n }\r\n }\r\n\r\n\r\n // set maximum tier for selection by the give tier \r\n function filterTiers(tier) {\r\n debugger;\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.workOrderIocaList, {\r\n // 'IOCA_Id': vm.selectedWoIOCA.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // return t2.TierId === t1.TierId;\r\n // });\r\n // })\r\n // }\r\n // }\r\n // }\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierId = Arr.join();\r\n\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.TierId)\r\n\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function filterTiersByParent(tier) {\r\n if (tier.selectedtireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.filteredTierList, function(t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedtireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.CopyTierList) {\r\n // if (vm.CopyTierList[i].selectedtireValue) {\r\n // vm.Arr.filter[vm.CopyTierList[i].TierName] = vm.CopyTierList[i].selectedtireValue.TierId\r\n // }\r\n // } \r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n // getToTiers(tier);\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.filteredTierList, function(tier) {\r\n tier.selectedtierValue = null;\r\n\r\n })\r\n }\r\n\r\n function getToTiers(tier) {\r\n debugger;\r\n vm.lastTierIdList = '';\r\n // get max tier\r\n var maxTier = _.maxBy(vm.rawTierListData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n }).TierName;\r\n\r\n if (tier.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(tier.selectedtireValue, 'TierId').join(',');\r\n } else {\r\n var currentTier = tier;\r\n var selectedTierList = tier.selectedtireValue;\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n if (t.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(selectedTierList, 'TierId').join(',');\r\n } else {\r\n if (getTierNo(t.TierName) >= getTierNo(tier.TierName)) {\r\n var parentIdList = lodash.map(selectedTierList, 'TierId');\r\n var nextTier = lodash.find(vm.rawTierListData, { 'TierName': 'Tier' + (getTierNo(t.TierName) + 1) })\r\n selectedTierList = lodash.filter(nextTier.Values, function(v) {\r\n return lodash.includes(parentIdList, v.ParentId);\r\n })\r\n }\r\n }\r\n })\r\n }\r\n vm.Lastid = tier.selectedtireValue.TierId\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.Lastid)\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n debugger;\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n vm.Back = function () {\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n vm.dateCheck = false;\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n\r\n\r\n\r\n\r\n vm.checkDate = false;\r\n vm.check = function() {\r\n if (vm.schedule.check) {\r\n vm.checkDate = true;\r\n } else\r\n vm.checkDate = false;\r\n }\r\n\r\n vm.Remove = function(item) {\r\n var index = vm.Arr.indexOf(item);\r\n vm.Arr.splice(index, 1);\r\n // const index = vm.Arr.indexOf(element);\r\n // vm.Arr.splice(index, 1);\r\n }\r\n\r\n\r\n function GetCategoryByTier(ProjectId, LocationId, TierId) {\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n LastTierId: TierId,\r\n isEdit: 1\r\n }\r\n ProjectSchedulingService.GetCategoryForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n\r\n function getSubCategoryByCategory() {\r\n if (vm.selectedWoCategory) {\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n LastTierId: vm.TierId,\r\n isEdit: 1\r\n }\r\n ProjectSchedulingService.GetSubCategoryForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n }\r\n\r\n }\r\n\r\n function getTypeBySubCategory() {\r\n if (vm.selectedWoSubCategory) {\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n LastTierId: vm.TierId,\r\n isEdit: 1\r\n }\r\n ProjectSchedulingService.GetTypeForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n }\r\n\r\n }\r\n\r\n function getIocaByType() {\r\n if (vm.selectedWoType) {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.TypeId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n SpecType: vm.selectedSpecType.Code,\r\n LastTierId: vm.TierId,\r\n isEdit: 1\r\n }\r\n ProjectSchedulingService.GetIocaForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n vm.isIOCASelection = function() {\r\n\r\n if (vm.selectedWoIOCA.length > 0) {\r\n vm.isFreezeSelectionBtn = false;\r\n }\r\n }\r\n\r\n\r\n // function getIocaByType() {\r\n // if (vm.selectedWoType) {\r\n // ClearByType();\r\n // var Arr = [];\r\n // for (var i in vm.selectedWoType) {\r\n // Arr.push(vm.selectedWoType[i].TypeId);\r\n // }\r\n // vm.TypeId = Arr.join();\r\n // var obj = {\r\n // TypeIdList: vm.TypeId,\r\n // WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n // IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n // WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n // }\r\n // WorkApprovalService.GetIocaByWorkOderIoca(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.WorkOrderIOCAList = res.data;\r\n // if (vm.WorkOrderIOCAList.length < 1)\r\n // dialogs.notify('warning', \"There is no Work Order IOCA for selected Type\", { animation: true, size: 'sm' });\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n // });\r\n // }\r\n // else {\r\n // ClearByType();\r\n // }\r\n // }\r\n\r\n\r\n function getFinalisedBOQForSchedule() {\r\n vm.isReleaseIOCA = false;\r\n vm.TaskList = [];\r\n if (!vm.selectBoq) {\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n PlanId: vm.schedule.selectedPlan.PlanId,\r\n isSelectBoq: 0\r\n }\r\n } else {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n // vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n // vm.schedule.selectedHoliday = null;\r\n // vm.schedule.selectedHoliday = [];\r\n // vm.schedule.selectedDays = null;\r\n // vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierId: vm.TierId,\r\n IocaId: vm.IocaId,\r\n PlanId: vm.schedule.selectedPlan.PlanId,\r\n isSelectBoq: 1\r\n }\r\n }\r\n\r\n vm.isLoading = true;\r\n ProjectSchedulingService.getFinalisedBOQForReSchedule(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n vm.isReset = false;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n\r\n vm.DurationDtls = res.data.Duration;\r\n // if(res.data.Duration.EndDate )\r\n // if (res.data.Duration.EndDate != null) {\r\n // vm.schedule.StartDate = new Date(vm.DurationDtls.StartDate);\r\n // vm.schedule.EndDate = new Date(vm.DurationDtls.EndDate);\r\n // vm.schedule.TotalDuration = $rootScope.differenceInDays(vm.schedule.StartDate, vm.schedule.EndDate);\r\n // vm.dateCheck = true;\r\n // }\r\n vm.ProjectHoliday = res.data.Holiday;\r\n // if (vm.ProjectHoliday != null) {\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.schedule.selectedHoliday = [];\r\n // for (var i in vm.HolidayMasterList) {\r\n // for (var j in vm.ProjectHoliday.HolidayDate.Holidays) {\r\n // //($filter('date')(vm.HolidayMasterList[i].HolidayDate, 'yyyy/MM/dd')) == ($filter('date')(vm.ProjectHoliday.HolidayDate.Holidays[j]), 'yyyy/MM/dd')\r\n // if ((new Date(vm.HolidayMasterList[i].HolidayDate)).toLocaleDateString() === (new Date(vm.ProjectHoliday.HolidayDate.Holidays[j]).toLocaleDateString())) {\r\n // vm.schedule.selectedHoliday.push(vm.HolidayMasterList[i])\r\n // // vm.schedule.selectedHoliday[i].checked = true;\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.ProjectHoliday.weekOff = JSON.parse(vm.ProjectHoliday.WeekOff)\r\n // vm.schedule.selectedDays = [];\r\n // for (var i in vm.WeekOffList) {\r\n // for (var j in vm.ProjectHoliday.weekOff.weekOff)\r\n // if (vm.WeekOffList[i].WeekOffDay == vm.ProjectHoliday.weekOff.weekOff[j]) {\r\n // vm.schedule.selectedDays.push(vm.WeekOffList[i])\r\n // // vm.schedule.selectedDays[i].checked = true;\r\n // }\r\n // }\r\n\r\n\r\n\r\n // vm.ProjectHoliday.AdditionalHoliday = JSON.parse(vm.ProjectHoliday.AdditionalHoliday);\r\n // vm.Arr = vm.ProjectHoliday.AdditionalHoliday.AdditionalDays;\r\n // if (vm.ProjectHoliday.weekOff.weekOff.length > 0) {\r\n // vm.ReSchedule = true;\r\n // vm.Schedule = false;\r\n // vm.IsDateCheck = 1;\r\n // }\r\n // if (vm.ProjectHoliday.HolidayDate.Holidays.length > 0) {\r\n // vm.ReSchedule = true;\r\n // vm.Schedule = false;\r\n // vm.IsDateCheck = 1;\r\n\r\n // }\r\n // if (vm.Arr.length > 0) {\r\n // vm.schedule.check = true;\r\n // vm.checkDate = true;\r\n // vm.IsDateCheck = 1;\r\n // }\r\n // vm.schedule.Revision = vm.ProjectHoliday.Revision\r\n // if (vm.schedule.Revision != null) {\r\n // vm.ReSchedule = true;\r\n // vm.Schedule = false;\r\n // vm.IsDateCheck = 1;\r\n // }\r\n // }\r\n\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n vm.schedule.StartDate = new Date(vm.sequence.StartDate)\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n vm.isFreezeSelection = true;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n\r\n\r\n } else {\r\n vm.isRealease = true;\r\n vm.isReleaseIOCA = true;\r\n }\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.ProjectHoliday.WeekOff = JSON.parse(vm.ProjectHoliday.WeekOff);\r\n vm.isLoading = false;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n vm.ResetSchedule = function() {\r\n vm.isReleaseIOCA = false;\r\n var obj = {\r\n PlanId: vm.sequence.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.TaskList = [];\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n vm.Description = null;\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n vm.ReleaseSequence = function() {\r\n var Arr = [];\r\n for (var i in vm.ReleaseIOCAList) {\r\n Arr.push(vm.ReleaseIOCAList[i].PlanId);\r\n }\r\n vm.PlanId = Arr.join();\r\n\r\n var Arr1 = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr1.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr1.join();\r\n\r\n var obj = {\r\n PlanId: vm.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.isReleaseview = false;\r\n getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId)\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.Sequence = function() {\r\n vm.isEditSequence = true;\r\n }\r\n\r\n vm.EditPlanning = function(row) {\r\n vm.isLoading = true;\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeReSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n PlanId: row.PlanId,\r\n Revison: row.Revison\r\n }\r\n\r\n ProjectSchedulingService.GetAllFinalizedRePlan(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n vm.TaskList[i].EarlyStart = new Date(vm.TaskList[i].EarlyStart)\r\n }\r\n\r\n debugger;\r\n var minDate = lodash.min(vm.TaskList, 'EarlyStart');\r\n vm.schedule.StartDate = minDate.EarlyStart;\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n vm.Description = vm.sequence.Description\r\n vm.schedule.selectedProject = {};\r\n vm.schedule.Location = {};\r\n vm.schedule.selectedProject.ProjectId = vm.sequence.ProjectId;\r\n vm.schedule.Location.LocationId = vm.sequence.LocationId;\r\n vm.TierId = vm.sequence.TierList\r\n vm.ProjectName = row.ProjectName;\r\n vm.BasicLocation = row.BasicLocation;\r\n vm.schedule.Revison = row.Revison;\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].IOCA_Id)\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n debugger;\r\n\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n }\r\n vm.isLoading = false;\r\n vm.dateCheck = true;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n vm.FreezeSequence = function() {\r\n vm.isLoading = true;\r\n vm.isEditSequence = false;\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeReSequence = true;\r\n vm.isFreezeDuration = true;\r\n vm.isSequence = false;\r\n if (vm.isSelectBoq) {\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n isFreeze: 1\r\n }\r\n } else {\r\n\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].IOCA_Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.sequence.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.sequence.TierList,\r\n isFreeze: 1\r\n }\r\n }\r\n vm.TaskList = [];\r\n\r\n ProjectSchedulingService.UpdateRePlanFreeze(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n vm.isCheckschedule = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.FreezeSchedule = function() {\r\n vm.isLoading = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeReSequence = false;\r\n vm.isFreezeDuration = false;\r\n\r\n if (vm.isSelectBoq) {\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n Revison: vm.sequence.Revison,\r\n isFreeze: 2\r\n }\r\n } else {\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].IOCA_Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.sequence.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.sequence.TierList,\r\n Revison: vm.sequence.Revison,\r\n isFreeze: 2\r\n }\r\n }\r\n vm.TaskList = [];\r\n ProjectSchedulingService.UpdateRePlanFreeze(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n }\r\n if (!vm.isEditing) {\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n vm.isCheckschedule = true;\r\n }\r\n }\r\n } else {\r\n vm.Back();\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n vm.editOrder = function(row) {\r\n vm.isLoading = true;\r\n vm.TaskList = [];\r\n debugger;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n SequanceId: row.SequenceId,\r\n OrderOfSequence: row.IocaSeq,\r\n PlanId: vm.sequence.PlanId\r\n }\r\n ProjectSchedulingService.UpdatePlanSequence(obj).then(function(res) {\r\n if (res.status == 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n // getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n //getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.SaveDraftPlanning = function() {\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n // if (vm.TaskList[i].Relation) {\r\n Arr.push({\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n Relation: (vm.TaskList[i].Relation != 0 || vm.TaskList[i].Relation != '') ? vm.TaskList[i].Relation : '',\r\n CreatedBy: loggedUser.UserId,\r\n Sequence: vm.TaskList[i].IocaSeq\r\n })\r\n // }\r\n }\r\n var obj = {\r\n DraftList: JSON.stringify(Arr)\r\n }\r\n console.log(obj)\r\n ProjectSchedulingService.InsertDraftPlanning(obj).then(function(res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Scheduling\");\r\n } else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"Project Scheduling\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Scheduling\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n\r\n vm.SaveProject = function() {\r\n vm.isLoading = true;\r\n vm.isScheduled = true;\r\n vm.isFreezeSelectionBtn = true;\r\n if (vm.schedule.StartDate) {\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n var temp = {\r\n TaskId: vm.TaskList[i].IocaSeq,\r\n LocationId: vm.TaskList[i].LocationId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n Relation: (vm.TaskList[i].Relation != undefined) ? vm.TaskList[i].Relation : \"\",\r\n PowQty: vm.TaskList[i].PowQty,\r\n EmpId: vm.TaskList[i].EmpId,\r\n ReportTo: vm.TaskList[i].ReportingTo,\r\n Status: 1\r\n }\r\n Arr.push(temp);\r\n }\r\n debugger;\r\n if (vm.isSelectBoq) {\r\n var obj = {\r\n PlanId: vm.sequence.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n Description: vm.sequence.Description,\r\n Revison: vm.sequence.Revison,\r\n // Holidays: JSON.stringify(objHoliday),\r\n /// AdditionalHolidays: JSON.stringify(objAddHoliday),\r\n // WeekOff: JSON.stringify(objWeekOff),\r\n TaskList: JSON.stringify(Arr),\r\n CreatedBy: loggedUser.UserId,\r\n StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n }\r\n } else {\r\n var obj = {\r\n PlanId: vm.sequence.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.sequence.LocationId,\r\n Description: vm.sequence.Description,\r\n Revison: vm.sequence.Revison,\r\n // Holidays: JSON.stringify(objHoliday),\r\n /// AdditionalHolidays: JSON.stringify(objAddHoliday),\r\n // WeekOff: JSON.stringify(objWeekOff),\r\n TaskList: JSON.stringify(Arr),\r\n CreatedBy: loggedUser.UserId,\r\n StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n }\r\n }\r\n\r\n\r\n if (!vm.isRevised) {\r\n ProjectSchedulingService.AddFinalisedPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeReSequence == 0 && vm.sequence.isFreezeReSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeReSequence == 1 && vm.sequence.isFreezeReSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n } else if (vm.ImportReturn.MessageCode == 2) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n var location = '';\r\n for (var i in res.data.Locations) {\r\n location = location + res.data.Locations[i].Locations + '
';\r\n }\r\n var confirm = dialogs.notify(res.data.Message, location, { animation: true, size: 'md' });\r\n notify.result.then(function() {});\r\n\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n } else {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n }\r\n vm.isLoading = false;\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n obj.ProjectPlanId = vm.PrjPlanID;\r\n ProjectSchedulingService.revisedFinalisedPlanning(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Revised Project Planning\");\r\n // getFinalisedBOQForSchedule(obj.ProjectId, obj.LocationId);\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Planning\");\r\n\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n } else {\r\n dialogs.notify('Warning', '! Select Start Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n vm.Back = function () {\r\n \r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n\r\n vm.BacktoPlan = function() {\r\n vm.isReleaseview = false;\r\n }\r\n\r\n\r\n vm.ReleaseIOCA = function() {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n ProjectSchedulingService.GetIOCAForRelease(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ReleaseList = res.data;\r\n vm.ReleaseIOCAList = [];\r\n\r\n if (vm.TaskList.length > 0) {\r\n for (var i in vm.TaskList) {\r\n for (var j in vm.ReleaseList) {\r\n if (vm.TaskList[i].LastTierId != vm.ReleaseList[j].LastTierId) {\r\n vm.ReleaseIOCAList.push(vm.ReleaseList[j])\r\n }\r\n }\r\n }\r\n } else\r\n vm.ReleaseIOCAList = vm.ReleaseList;\r\n\r\n if (vm.ReleaseIOCAList.length > 0) {\r\n vm.isReleaseview = true;\r\n } else {\r\n dialogs.notify('Warning', '! There is No IOCA ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n function checkRelation(row) {\r\n if (row != null) {\r\n if (row.IocaSeq <= row.Relation) {\r\n dialogs.notify('Incorrect Value', 'There Relation should be less than CurrentSequence ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.Relation = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isSequence = true;\r\n vm.TaskList = [];\r\n vm.schedule = {};\r\n }\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n //maxDate: new Date(2022, 11, 31),\r\n maxDate: new Date(new Date().setFullYear(new Date().getFullYear() + 3)),\r\n //minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.schedule.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('projectFinalisedSchedulingCtrl', projectFinalisedSchedulingCtrl);\r\n\r\n /** @ngInject */\r\n function projectFinalisedSchedulingCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n CompanyService, HolidayMasterService, LocationSetupService, ProjectSchedulingService, ItemToItemService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n },\r\n { \"value\": 500 }\r\n ]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isEditing = false;\r\n vm.HolidayMasterList = [];\r\n vm.schedule = {};\r\n vm.dateCheck = false;\r\n vm.isRevised = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n // End of Pagination code\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.revisePlanning = revisePlanning;\r\n // vm.removePlanning = removePlanning;\r\n vm.Create = Create;\r\n vm.checkRelation = checkRelation;\r\n vm.filterTiersByParent = filterTiersByParent;\r\n vm.filterTiers = filterTiers;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getFinalisedBOQForSchedule = getFinalisedBOQForSchedule;\r\n vm.LoadPOWPlanning = LoadPOWPlanning;\r\n vm.getSubCategoryByCategory = getSubCategoryByCategory;\r\n vm.getTypeBySubCategory = getTypeBySubCategory;\r\n vm.getIocaByType = getIocaByType;\r\n vm.Schedule = true;\r\n vm.ReSchedule = false;\r\n vm.getToTiers = getToTiers;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'All',\r\n Code: 'A'\r\n }, {\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n ProjectSchedulingService.getFinalPlanning().then(function(res) {\r\n if (res.status === 200) {\r\n vm.finalPlanningList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Final Planning\");\r\n });\r\n\r\n ProjectSchedulingService.GetAllScheduling(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SchedulingList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Final Planning\");\r\n });\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function revisePlanning(row) {\r\n vm.isRevised = true;\r\n vm.isFormOpen = true;\r\n vm.Description = row.Description;\r\n vm.lastTierIdList = row.LastTierId;\r\n vm.PrjPlanID = row.PrjPlanID;\r\n for (var c in vm.CompanyList) {\r\n if (vm.CompanyList[c].CompanyId === row.CompanyId) {\r\n vm.schedule.selectedCompany = vm.CompanyList[c];\r\n }\r\n }\r\n\r\n getProjectByCompany(row.CompanyId, function() {\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === row.ProjectId) {\r\n vm.schedule.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n\r\n getLocationByProject(row.ProjectId, function() {\r\n for (var c in vm.LocationMaster) {\r\n if (vm.LocationMaster[c].LocationId === row.LocationId) {\r\n vm.schedule.Location = vm.LocationMaster[c];\r\n }\r\n }\r\n })\r\n\r\n getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n })\r\n\r\n }\r\n\r\n // function removePlanning() {\r\n\r\n // }\r\n\r\n function LoadPOWPlanning(callBack) {\r\n ProjectSchedulingService.GetAllFinalisedPOWPlanning(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PowPlanningList = res.data;\r\n vm.PowProjectList = lodash.uniqBy(vm.PowPlanningList, 'ProjectName');\r\n vm.isLoading = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n if (callBack)\r\n callBack();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.filterbyProject = function(ProjectId) {\r\n if (ProjectId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = true;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n vm.PowLocationList = lodash.filter(vm.PowPlanningList, {\r\n 'ProjectId': ProjectId\r\n });\r\n vm.PowFilterLocList = lodash.uniqBy(vm.PowLocationList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, {\r\n 'ProjectId': ProjectId\r\n })\r\n });\r\n\r\n } else {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n LoadPOWPlanning();\r\n }\r\n\r\n }\r\n\r\n vm.filterbyLocation = function(ProjectId, LocationId) {\r\n if (LocationId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = true;\r\n vm.IOCAView = false;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.PowIOCAList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterIOCAList = lodash.uniqBy(vm.PowIOCAList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.pow.selecteIOCA = null;\r\n vm.filterbyProject(ProjectId);\r\n }\r\n\r\n\r\n }\r\n\r\n vm.filterbyIOCA = function(ProjectId, LocationId, IOCA_Id) {\r\n if (IOCA_Id) {\r\n LoadPOWPlanning(function() {\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = true;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.filter.IOCA_Id = IOCA_Id\r\n vm.PowTierList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterTierList = lodash.uniqBy(vm.PowTierList, 'TierName');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.filterbyLocation(ProjectId, LocationId);\r\n }\r\n\r\n }\r\n\r\n vm.reset = function() {\r\n vm.pow.selectedProject = null;\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n LoadPOWPlanning();\r\n\r\n }\r\n\r\n\r\n LoadHolidayMaster();\r\n\r\n function LoadHolidayMaster() {\r\n HolidayMasterService.getAllHolidayMaster().then(function(res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.HolidayMasterList = lodash.uniqBy(vm.HolidayMasterList, 'HolidayDate')\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.WeekOffList = [{\r\n WeekOffId: 0,\r\n WeekOffDay: \"Sunday\"\r\n },\r\n {\r\n WeekOffId: 1,\r\n WeekOffDay: \"Monday\"\r\n },\r\n {\r\n WeekOffId: 2,\r\n WeekOffDay: \"Tuesday\"\r\n },\r\n {\r\n WeekOffId: 3,\r\n WeekOffDay: \"Wednesday\"\r\n },\r\n {\r\n WeekOffId: 4,\r\n WeekOffDay: \"Thursday\"\r\n },\r\n {\r\n WeekOffId: 5,\r\n WeekOffDay: \"Friday\"\r\n },\r\n {\r\n WeekOffId: 6,\r\n WeekOffDay: \"saturday\"\r\n },\r\n\r\n ];\r\n\r\n function getProjectByCompany(CompanyId, callBack) {\r\n if (CompanyId) {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n\r\n\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n }\r\n\r\n function getLocationByProject(ProjectId, callBack) {\r\n if (ProjectId) {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n isEdit: 0,\r\n planId: 0\r\n }\r\n ProjectSchedulingService.GetLocationForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n } else {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n debugger;\r\n if (LocationId && ProjectId) {\r\n vm.Loading = true;\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.schedule.Location.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.schedule.Location.LocationId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetTiersForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n vm.Loading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n clearTierSelection();\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n }\r\n\r\n\r\n // set maximum tier for selection by the give tier \r\n function filterTiers(tier) {\r\n debugger;\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.workOrderIocaList, {\r\n // 'IOCA_Id': vm.selectedWoIOCA.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // return t2.TierId === t1.TierId;\r\n // });\r\n // })\r\n // }\r\n // }\r\n // }\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierId = Arr.join();\r\n\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.TierId)\r\n\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function filterTiersByParent(tier) {\r\n if (tier.selectedtireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.filteredTierList, function(t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedtireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.CopyTierList) {\r\n // if (vm.CopyTierList[i].selectedtireValue) {\r\n // vm.Arr.filter[vm.CopyTierList[i].TierName] = vm.CopyTierList[i].selectedtireValue.TierId\r\n // }\r\n // } \r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n // getToTiers(tier);\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.filteredTierList, function(tier) {\r\n tier.selectedtierValue = null;\r\n\r\n })\r\n }\r\n\r\n function getToTiers(tier) {\r\n debugger;\r\n vm.lastTierIdList = '';\r\n // get max tier\r\n var maxTier = _.maxBy(vm.rawTierListData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n }).TierName;\r\n\r\n if (tier.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(tier.selectedtireValue, 'TierId').join(',');\r\n } else {\r\n var currentTier = tier;\r\n var selectedTierList = tier.selectedtireValue;\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n if (t.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(selectedTierList, 'TierId').join(',');\r\n } else {\r\n if (getTierNo(t.TierName) >= getTierNo(tier.TierName)) {\r\n var parentIdList = lodash.map(selectedTierList, 'TierId');\r\n var nextTier = lodash.find(vm.rawTierListData, { 'TierName': 'Tier' + (getTierNo(t.TierName) + 1) })\r\n selectedTierList = lodash.filter(nextTier.Values, function(v) {\r\n return lodash.includes(parentIdList, v.ParentId);\r\n })\r\n }\r\n }\r\n })\r\n }\r\n vm.Lastid = tier.selectedtireValue.TierId\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.Lastid)\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n debugger;\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue = t.TierVal + ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n\r\n\r\n\r\n vm.checkDate = false;\r\n vm.check = function() {\r\n if (vm.schedule.check) {\r\n vm.checkDate = true;\r\n } else\r\n vm.checkDate = false;\r\n }\r\n\r\n vm.Remove = function(item) {\r\n var index = vm.Arr.indexOf(item);\r\n vm.Arr.splice(index, 1);\r\n // const index = vm.Arr.indexOf(element);\r\n // vm.Arr.splice(index, 1);\r\n }\r\n\r\n\r\n function GetCategoryByTier(ProjectId, LocationId, TierId) {\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n LastTierId: TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetCategoryForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n // if (!vm.WorkOrderCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! Category Not Available On Selected Location', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n\r\n function getSubCategoryByCategory() {\r\n if (vm.selectedWoCategory) {\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n LastTierId: vm.TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetSubCategoryForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n function getTypeBySubCategory() {\r\n if (vm.selectedWoSubCategory) {\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n LastTierId: vm.TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetTypeForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n function getIocaByType() {\r\n if (vm.selectedWoType) {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.TaskList = [];\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n var obj = {\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.TypeId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n SpecType: vm.selectedSpecType.Code,\r\n LastTierId: vm.TierId,\r\n isEdit: 0\r\n }\r\n ProjectSchedulingService.GetIocaForFinalPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n if (!vm.WorkOrderIOCAList.length > 0) {\r\n dialogs.notify('Warning', '! IOCA Not Available On Selected Type of Item', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n vm.isIOCASelection = function() {\r\n\r\n if (vm.selectedWoIOCA.length > 0) {\r\n vm.isFreezeSelectionBtn = false;\r\n }\r\n }\r\n\r\n\r\n // function getIocaByType() {\r\n // if (vm.selectedWoType) {\r\n // ClearByType();\r\n // var Arr = [];\r\n // for (var i in vm.selectedWoType) {\r\n // Arr.push(vm.selectedWoType[i].TypeId);\r\n // }\r\n // vm.TypeId = Arr.join();\r\n // var obj = {\r\n // TypeIdList: vm.TypeId,\r\n // WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n // IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n // WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n // }\r\n // WorkApprovalService.GetIocaByWorkOderIoca(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.WorkOrderIOCAList = res.data;\r\n // if (vm.WorkOrderIOCAList.length < 1)\r\n // dialogs.notify('warning', \"There is no Work Order IOCA for selected Type\", { animation: true, size: 'sm' });\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n // });\r\n // }\r\n // else {\r\n // ClearByType();\r\n // }\r\n // }\r\n\r\n\r\n function getFinalisedBOQForSchedule(ProjectId, LocationId) {\r\n vm.isReleaseIOCA = false;\r\n if (LocationId && vm.schedule.StartDate) {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n // vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n // vm.schedule.selectedHoliday = null;\r\n // vm.schedule.selectedHoliday = [];\r\n // vm.schedule.selectedDays = null;\r\n // vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n LastTierId: vm.TierId,\r\n IocaId: vm.IocaId,\r\n Description: vm.Description,\r\n StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n }\r\n vm.isLoading = true;\r\n ProjectSchedulingService.getFinalisedBOQForSchedule(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n vm.isReset = false;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.DurationDtls = res.data.Duration;\r\n // if(res.data.Duration.EndDate )\r\n // if (res.data.Duration.EndDate != null) {\r\n // vm.schedule.StartDate = new Date(vm.DurationDtls.StartDate);\r\n // vm.schedule.EndDate = new Date(vm.DurationDtls.EndDate);\r\n // vm.schedule.TotalDuration = $rootScope.differenceInDays(vm.schedule.StartDate, vm.schedule.EndDate);\r\n // vm.dateCheck = true;\r\n // }\r\n vm.ProjectHoliday = res.data.Holiday;\r\n // if (vm.ProjectHoliday != null) {\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.schedule.selectedHoliday = [];\r\n // for (var i in vm.HolidayMasterList) {\r\n // for (var j in vm.ProjectHoliday.HolidayDate.Holidays) {\r\n // //($filter('date')(vm.HolidayMasterList[i].HolidayDate, 'yyyy/MM/dd')) == ($filter('date')(vm.ProjectHoliday.HolidayDate.Holidays[j]), 'yyyy/MM/dd')\r\n // if ((new Date(vm.HolidayMasterList[i].HolidayDate)).toLocaleDateString() === (new Date(vm.ProjectHoliday.HolidayDate.Holidays[j]).toLocaleDateString())) {\r\n // vm.schedule.selectedHoliday.push(vm.HolidayMasterList[i])\r\n // // vm.schedule.selectedHoliday[i].checked = true;\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.ProjectHoliday.weekOff = JSON.parse(vm.ProjectHoliday.WeekOff)\r\n // vm.schedule.selectedDays = [];\r\n // for (var i in vm.WeekOffList) {\r\n // for (var j in vm.ProjectHoliday.weekOff.weekOff)\r\n // if (vm.WeekOffList[i].WeekOffDay == vm.ProjectHoliday.weekOff.weekOff[j]) {\r\n // vm.schedule.selectedDays.push(vm.WeekOffList[i])\r\n // // vm.schedule.selectedDays[i].checked = true;\r\n // }\r\n // }\r\n\r\n\r\n\r\n // vm.ProjectHoliday.AdditionalHoliday = JSON.parse(vm.ProjectHoliday.AdditionalHoliday);\r\n // vm.Arr = vm.ProjectHoliday.AdditionalHoliday.AdditionalDays;\r\n // if (vm.ProjectHoliday.weekOff.weekOff.length > 0) {\r\n // vm.ReSchedule = true;\r\n // vm.Schedule = false;\r\n // vm.IsDateCheck = 1;\r\n // }\r\n // if (vm.ProjectHoliday.HolidayDate.Holidays.length > 0) {\r\n // vm.ReSchedule = true;\r\n // vm.Schedule = false;\r\n // vm.IsDateCheck = 1;\r\n\r\n // }\r\n // if (vm.Arr.length > 0) {\r\n // vm.schedule.check = true;\r\n // vm.checkDate = true;\r\n // vm.IsDateCheck = 1;\r\n // }\r\n // vm.schedule.Revision = vm.ProjectHoliday.Revision\r\n // if (vm.schedule.Revision != null) {\r\n // vm.ReSchedule = true;\r\n // vm.Schedule = false;\r\n // vm.IsDateCheck = 1;\r\n // }\r\n // }\r\n\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n\r\n\r\n } else {\r\n vm.isRealease = true;\r\n vm.isReleaseIOCA = true;\r\n }\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.ProjectHoliday.WeekOff = JSON.parse(vm.ProjectHoliday.WeekOff);\r\n vm.isLoading = false;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Select Start Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n vm.ResetSchedule = function() {\r\n vm.isReleaseIOCA = false;\r\n var obj = {\r\n // PlanId: vm.sequence.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.TaskList = [];\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n vm.Description = null;\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n vm.ReleaseSequence = function() {\r\n var Arr = [];\r\n for (var i in vm.ReleaseIOCAList) {\r\n Arr.push(vm.ReleaseIOCAList[i].PlanId);\r\n }\r\n vm.PlanId = Arr.join();\r\n\r\n var Arr1 = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr1.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr1.join();\r\n\r\n var obj = {\r\n PlanId: vm.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n\r\n ProjectSchedulingService.ResetScheduleIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Company Successfully', \"Company\"); \r\n vm.isReleaseview = false;\r\n getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId)\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reset Scheduled IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.Sequence = function() {\r\n vm.isEditSequence = true;\r\n }\r\n\r\n vm.EditPlanning = function(row) {\r\n vm.isLoading = true;\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n PlanId: row.PlanId\r\n }\r\n\r\n ProjectSchedulingService.GetAllFinalizedPlan(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n vm.schedule.StartDate = new Date(vm.sequence.StartDate);\r\n vm.Description = vm.sequence.Description\r\n vm.schedule.selectedProject = {};\r\n vm.schedule.Location = {};\r\n vm.schedule.selectedProject.ProjectId = vm.sequence.ProjectId;\r\n vm.schedule.Location.LocationId = vm.sequence.LocationId;\r\n vm.TierId = vm.sequence.TierList\r\n vm.ProjectName = row.ProjectName;\r\n vm.BasicLocation = row.BasicLocation;\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n Arr.push(vm.TaskList[i].IOCA_Id)\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n debugger;\r\n\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n }\r\n vm.isLoading = false;\r\n vm.dateCheck = true;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n vm.FreezeSequence = function() {\r\n vm.isLoading = true;\r\n vm.isEditSequence = false;\r\n vm.TaskList = [];\r\n vm.isReset = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = true;\r\n // vm.isSequence = false;\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n isFreeze: 1\r\n }\r\n\r\n ProjectSchedulingService.UpdatePlanFreeze(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.TaskList.length > 0) {\r\n vm.isFreezeSelection = true;\r\n\r\n }\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.FreezeSchedule = function() {\r\n vm.isLoading = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isFreezeSequence = false;\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n PlanId: vm.sequence.PlanId,\r\n IocaList: vm.IocaId,\r\n TierList: vm.TierId,\r\n isFreeze: 2\r\n }\r\n\r\n ProjectSchedulingService.UpdatePlanFreeze(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Freeze Schedule\");\r\n }\r\n if (!vm.isEditing) {\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n }\r\n } else {\r\n vm.Back();\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", \"Bill Of Quantity\");\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n\r\n vm.editOrder = function(row) {\r\n vm.isLoading = true;\r\n\r\n vm.TaskList = [];\r\n debugger;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n SequanceId: row.SequenceId,\r\n OrderOfSequence: row.IocaSeq,\r\n PlanId: vm.sequence.PlanId\r\n }\r\n ProjectSchedulingService.UpdatePlanSequence(obj).then(function(res) {\r\n if (res.status == 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n } else if (vm.ImportReturn.MessageCode == 0) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n\r\n // getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n //getFinalisedBOQForSchedule(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.SaveDraftPlanning = function() {\r\n var Arr = [];\r\n\r\n for (var i in vm.TaskList) {\r\n //if (vm.TaskList[i].Duration || vm.TaskList[i].Relation) {\r\n Arr.push({\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n Relation: (vm.TaskList[i].Relation != 0 || vm.TaskList[i].Relation != '') ? vm.TaskList[i].Relation : '',\r\n CreatedBy: loggedUser.UserId,\r\n Sequence: vm.TaskList[i].IocaSeq\r\n })\r\n //}\r\n }\r\n var obj = {\r\n DraftList: JSON.stringify(Arr)\r\n }\r\n ProjectSchedulingService.InsertDraftPlanning(obj).then(function(res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Scheduling\");\r\n } else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"Project Scheduling\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Scheduling\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.SaveDraftPlanning = function() {\r\n var Arr = [];\r\n\r\n for (var i in vm.TaskList) {\r\n // if (vm.TaskList[i].Relation) {\r\n Arr.push({\r\n ProjectId: vm.TaskList[i].ProjectId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n Relation: (vm.TaskList[i].Relation != 0 || vm.TaskList[i].Relation != '') ? vm.TaskList[i].Relation : '',\r\n CreatedBy: loggedUser.UserId,\r\n Sequence: vm.TaskList[i].IocaSeq\r\n })\r\n // }\r\n }\r\n var obj = {\r\n DraftList: JSON.stringify(Arr)\r\n }\r\n ProjectSchedulingService.InsertDraftPlanning(obj).then(function(res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Scheduling\");\r\n } else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"Project Scheduling\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Scheduling\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n vm.SaveProject = function() {\r\n vm.isLoading = true;\r\n vm.isScheduled = true;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isData = false;\r\n for (var i in vm.TaskList) {\r\n if (vm.TaskList[i].Duration == undefined || vm.TaskList[i].Duration == '') {\r\n vm.isData = true;\r\n }\r\n }\r\n\r\n if (vm.schedule.StartDate && !vm.isData) {\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n var temp = {\r\n TaskId: vm.TaskList[i].IocaSeq,\r\n LocationId: vm.TaskList[i].LocationId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n Relation: (vm.TaskList[i].Relation != undefined) ? vm.TaskList[i].Relation : \"\",\r\n PowQty: vm.TaskList[i].PowQty,\r\n EmpId: vm.TaskList[i].EmpId,\r\n ReportTo: vm.TaskList[i].ReportingTo,\r\n Status: 1\r\n }\r\n Arr.push(temp);\r\n }\r\n\r\n var obj = {\r\n PlanId: vm.sequence.PlanId,\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n Description: vm.Description,\r\n Revison: vm.sequence.Revison,\r\n // Holidays: JSON.stringify(objHoliday),\r\n /// AdditionalHolidays: JSON.stringify(objAddHoliday),\r\n // WeekOff: JSON.stringify(objWeekOff),\r\n TaskList: JSON.stringify(Arr),\r\n CreatedBy: loggedUser.UserId,\r\n StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n }\r\n if (!vm.isRevised) {\r\n ProjectSchedulingService.AddFinalisedPlanning(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ImportReturn = res.data.ImportReturn\r\n if (vm.ImportReturn.MessageCode == 1) {\r\n\r\n $rootScope.showToaster('success', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n vm.TaskList = res.data.BoQDetails;\r\n lodash.forEach(vm.TaskList, function(e) {\r\n if (e.Relation == '0')\r\n e.Relation = ''\r\n });\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n vm.sequence = res.data.Seq;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n if (vm.sequence.PlanId) {\r\n if (vm.sequence.isFreezeSequence == 0 && vm.sequence.isFreezeSchedule == 0) {\r\n\r\n vm.isSequence = true;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 0) {\r\n vm.isSequence = false;\r\n vm.isFreeze = true;\r\n vm.isSchedlue = false;\r\n } else if (vm.sequence.isFreezeSequence == 1 && vm.sequence.isFreezeSchedule == 1) {\r\n vm.isSequence = false;\r\n vm.isFreeze = false;\r\n vm.isSchedlue = true;\r\n }\r\n\r\n }\r\n } else if (vm.ImportReturn.MessageCode == 2) {\r\n $rootScope.showToaster('warning', vm.ImportReturn.Message, \"Final Plan Scheduled\");\r\n var location = '';\r\n for (var i in res.data.Locations) {\r\n location = location + res.data.Locations[i].Locations + '
';\r\n }\r\n var confirm = dialogs.notify(res.data.Message, location, { animation: true, size: 'md' });\r\n notify.result.then(function() {});\r\n\r\n } else {\r\n $rootScope.showToaster('error', vm.ImportReturn.Message, \"Ioca Sequence\");\r\n }\r\n\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n } else {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n }\r\n vm.isLoading = false;\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n obj.ProjectPlanId = vm.PrjPlanID;\r\n ProjectSchedulingService.revisedFinalisedPlanning(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Revised Project Planning\");\r\n // getFinalisedBOQForSchedule(obj.ProjectId, obj.LocationId);\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Planning\");\r\n\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n } else {\r\n dialogs.notify('Warning', '! Some Inputs are missing', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n }\r\n\r\n vm.Back = function() {\r\n vm.isFreezeSelection = false;\r\n vm.isFreezeSelectionBtn = true;\r\n vm.isReset = true;\r\n vm.dateCheck = false;\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n\r\n vm.BacktoPlan = function() {\r\n vm.isReleaseview = false;\r\n }\r\n\r\n\r\n vm.ReleaseIOCA = function() {\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n TierList: vm.TierId,\r\n IocaList: vm.IocaId\r\n }\r\n ProjectSchedulingService.GetIOCAForRelease(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ReleaseList = res.data;\r\n vm.ReleaseIOCAList = [];\r\n\r\n if (vm.TaskList.length > 0) {\r\n for (var i in vm.TaskList) {\r\n for (var j in vm.ReleaseList) {\r\n if (vm.TaskList[i].LastTierId != vm.ReleaseList[j].LastTierId) {\r\n vm.ReleaseIOCAList.push(vm.ReleaseList[j])\r\n }\r\n }\r\n }\r\n } else\r\n vm.ReleaseIOCAList = vm.ReleaseList;\r\n\r\n if (vm.ReleaseIOCAList.length > 0) {\r\n vm.isReleaseview = true;\r\n } else {\r\n dialogs.notify('Warning', '! There is No IOCA ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n function checkRelation(row) {\r\n if (row != null) {\r\n if (row.IocaSeq <= row.Relation) {\r\n dialogs.notify('Incorrect Value', 'There Relation should be less than CurrentSequence ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.Relation = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.TaskList = [];\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.StartDate = null;\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.selectedSpecType = null;\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.Description = null;\r\n\r\n\r\n }\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n //minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.schedule.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('ProjectPlanningCtrl', ProjectPlanningCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectPlanningCtrl($rootScope, $timeout, $scope, $filter, lodash, baSidebarService, CompanyService, dialogs, ProjectSchedulingService, AuthenticationService) {\r\n var vm = this;\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getTempSchedule = getTempSchedule;\r\n vm.getRevScheduleNo = getRevScheduleNo;\r\n vm.viewSchedule = viewSchedule;\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n init();\r\n\r\n ////////////////\r\n\r\n function init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n if (!baSidebarService.isMenuCollapsed())\r\n baSidebarService.toggleMenuCollapsed();\r\n\r\n //viewSchedule(2, 0)\r\n\r\n // vm.data = [\r\n // {\r\n // name: 'Status meetings', tasks: [\r\n // { name: 'Demo #1', color: '#9FC5F8', from: new Date(2013, 9, 25, 15, 0, 0), to: new Date(2013, 9, 25, 18, 30, 0) },\r\n // { name: 'Demo #2', color: '#9FC5F8', from: new Date(2013, 10, 1, 15, 0, 0), to: new Date(2013, 10, 1, 18, 0, 0) },\r\n // { name: 'Demo #3', color: '#9FC5F8', from: new Date(2013, 10, 8, 15, 0, 0), to: new Date(2013, 10, 8, 18, 0, 0) },\r\n // { name: 'Demo #4', color: '#9FC5F8', from: new Date(2013, 10, 15, 15, 0, 0), to: new Date(2013, 10, 15, 18, 0, 0) },\r\n // { name: 'Demo #5', color: '#9FC5F8', from: new Date(2013, 10, 24, 9, 0, 0), to: new Date(2013, 10, 24, 10, 0, 0) }\r\n // ]\r\n // }\r\n\r\n // ]\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n\r\n ProjectSchedulingService.GetFinalScheduledProject(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length == 0) {\r\n dialogs.notify('Warning', '! No Projects available', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n }\r\n }\r\n\r\n function getTempSchedule(projectId) {\r\n if (projectId) {\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n ProjectSchedulingService.GetTempSchedule(projectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PlanList = res.data;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n }\r\n\r\n }\r\n\r\n function getRevScheduleNo() {\r\n debugger;\r\n if (vm.schedule.selectedPlan) {\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n PlanId: vm.schedule.selectedPlan.PlanId\r\n }\r\n ProjectSchedulingService.getRevScheduleNo(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RevisionList = res.data;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n }\r\n }\r\n\r\n function viewSchedule(planId, revison) {\r\n // if (vm.schedule.selectedRev) {\r\n vm.isLoading = true;\r\n vm.data = [];\r\n vm.Powdata = [];\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = false;\r\n ProjectSchedulingService.GetAllFinalizedSchedule(planId, revison).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data;\r\n var obj = [];\r\n if (vm.TaskList.length > 0) {\r\n for (var i in vm.TaskList) {\r\n\r\n var Shortname = vm.TaskList[i].ShortDescription\r\n var ProjectScheduleId = vm.TaskList[i].ProjectScheduleId\r\n var LastTierName = vm.TaskList[i].Locations\r\n var LastTierId = vm.TaskList[i].LastTierId\r\n var tasks = []\r\n var dependencies = []\r\n vm.TaskList[i].number = parseFloat(((vm.TaskList[i].Relation).toString()).match(/-*[0-9]+/));\r\n var currentId = (parseInt(i) + 1).toString()\r\n\r\n if (vm.TaskList.length > parseInt(i)) {\r\n dependencies.push({\r\n from: (parseInt(vm.TaskList[i].number)).toString()\r\n })\r\n }\r\n\r\n tasks.push({\r\n name: vm.TaskList[i].TaskId + '.' + vm.TaskList[i].ShortDescription + \"--\" + vm.TaskList[i].Duration + \"--\" + vm.TaskList[i].Relation + ' ' + $filter('date')(vm.TaskList[i].EarlyStart, \"dd/MM/yyyy\") + '--' + $filter('date')(vm.TaskList[i].EarlyEnd, \"dd/MM/yyyy\"),\r\n // name: vm.TaskList[i].CmptPercent+' '+'%',\r\n color: vm.TaskList[i].WorkStatus,\r\n id: currentId,\r\n from: new Date(vm.TaskList[i].EarlyStart),\r\n to: new Date(vm.TaskList[i].EarlyEnd),\r\n CmptPercent: vm.TaskList[i].CmptPercent,\r\n progress: { percent: vm.TaskList[i].CmptPercent, color: '#15b54d' },\r\n // progress: 50,\r\n movable: false,\r\n dependencies: dependencies,\r\n sections: {\r\n items: [\r\n { name: 'Section #1', classes: ['section-1'], from: new Date(vm.TaskList[i].EarlyStart), to: new Date(vm.TaskList[i].EarlyEnd) },\r\n ]\r\n }\r\n })\r\n obj.push({\r\n name: vm.TaskList[i].TaskId + '.' + Shortname,\r\n id: currentId,\r\n ProjectScheduleId: ProjectScheduleId,\r\n LastTierName: LastTierName,\r\n LastTierId: LastTierId,\r\n CmptPercent: vm.TaskList[i].CmptPercent,\r\n tasks: tasks,\r\n content: \"{{row.model.name}}\",\r\n });\r\n }\r\n\r\n var strArr = [];\r\n for (var i in obj) {\r\n var tempTier = obj[i].LastTierId\r\n var tempTierName = obj[i].LastTierName\r\n var children = []\r\n for (var j in obj) {\r\n if (obj[j].LastTierId === tempTier) {\r\n children.push(obj[j].name)\r\n }\r\n }\r\n strArr.push({\r\n name: tempTierName,\r\n children: children\r\n })\r\n\r\n }\r\n\r\n console.log(obj[0])\r\n\r\n vm.Tiers = lodash.uniqBy(strArr, 'name')\r\n\r\n for (var i in obj) {\r\n vm.Tiers.push(obj[i])\r\n }\r\n\r\n var minDate = lodash.min(vm.TaskList, 'EarlyStart');\r\n var maxDate = lodash.maxBy(vm.TaskList, 'EarlyEnd');\r\n getPlanningOption(minDate.EarlyStart, maxDate.EarlyEnd);\r\n\r\n vm.data = vm.Tiers;\r\n vm.isPlanView = true;\r\n vm.isPowPlanView = false;\r\n vm.isLoading = false;\r\n }\r\n\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n // }\r\n // else {\r\n\r\n // }\r\n\r\n }\r\n\r\n $scope.expandAll = function() {\r\n debugger;\r\n\r\n $scope.api.tree.expandAll();\r\n };\r\n\r\n $scope.collapseAll = function() {\r\n $scope.api.tree.collapseAll();\r\n };\r\n\r\n\r\n $scope.GetPow = function(i, name) {\r\n vm.isLoading = true;\r\n vm.ShortDesName = name;\r\n vm.Powdata = [];\r\n ProjectSchedulingService.getFinalizedPow(i).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PowList = res.data;\r\n var obj = [];\r\n for (var i in vm.PowList) {\r\n\r\n var PowName = vm.PowList[i].PowName\r\n var tasks = []\r\n var dependencies = []\r\n\r\n var currentId = (parseInt(i) + 1).toString()\r\n\r\n if (vm.PowList.length - 1 > parseInt(i)) {\r\n dependencies.push({\r\n to: (parseInt(currentId) + 1).toString()\r\n //to: vm.PowList[parseInt(i) + 1].ShortwithLoc\r\n })\r\n }\r\n\r\n tasks.push({\r\n name: vm.PowList[i].PowName,\r\n color: '#F1C232',\r\n id: currentId,\r\n from: new Date(vm.PowList[i].EarlyStart),\r\n to: new Date(vm.PowList[i].EarlyEnd),\r\n progress: ((new Date(vm.PowList[i].EarlyEnd) > new Date()) ? 0 : 100),\r\n movable: false,\r\n dependencies: dependencies\r\n })\r\n obj.push({\r\n name: PowName,\r\n id: currentId,\r\n tasks: tasks\r\n });\r\n }\r\n\r\n\r\n\r\n var strArr = [];\r\n var children = []\r\n for (var i in obj) {\r\n children.push(obj[i].name)\r\n }\r\n strArr.push({\r\n name: vm.ShortDesName,\r\n children: children\r\n })\r\n\r\n vm.PowTiers = lodash.uniqBy(strArr, 'name')\r\n\r\n for (var i in obj) {\r\n vm.PowTiers.push(obj[i])\r\n }\r\n var minDate = lodash.min(vm.PowList, 'EarlyStart');\r\n var maxDate = lodash.maxBy(vm.PowList, 'EarlyEnd');\r\n getPowPlanningOption(minDate.EarlyStart, maxDate.EarlyEnd);\r\n vm.Powdata = vm.PowTiers;\r\n vm.isPlanView = false;\r\n vm.isPowPlanView = true;\r\n vm.isLoading = false;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n vm.cancelPowView = function() {\r\n vm.isPlanView = true;\r\n vm.isPowPlanView = false;\r\n }\r\n\r\n vm.Reset = function() {\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.isPlanView = false;\r\n }\r\n\r\n\r\n function getPlanningOption(minDate, maxDate) {\r\n\r\n var tempmin = new Date(minDate)\r\n tempmin.setDate(tempmin.getDate() - 2);\r\n\r\n var tempmax = new Date(maxDate)\r\n tempmax.setDate(tempmax.getDate() + 2);\r\n\r\n $scope.options = {\r\n sideMode: 'TreeTable',\r\n daily: false,\r\n maxHeight: 3000,\r\n maxWidth: 3000,\r\n width: false,\r\n scale: 'day',\r\n zoom: 1,\r\n labelsEnabled: true,\r\n readOnly: false,\r\n groupDisplayMode: 'group',\r\n columns: ['model.name', 'from', 'to', ''],\r\n treeTableColumns: ['from', 'to'],\r\n columnsHeaders: { 'model.name': 'Name', 'from': 'From', 'to': 'To' },\r\n columnsClasses: { 'model.name': 'gantt-column-name', 'from': 'gantt-column-from', 'to': 'gantt-column-to' },\r\n columnsFormatters: {\r\n 'from': function(from) {\r\n return from !== undefined ? from.format('lll') : undefined;\r\n },\r\n 'to': function(to) {\r\n return to !== undefined ? to.format('lll') : undefined;\r\n }\r\n },\r\n treeHeaderContent: ' {{getHeader()}}',\r\n columnsHeaderContents: {\r\n 'model.name': ' {{getHeader()}}',\r\n 'from': ' {{getHeader()}}',\r\n 'to': ' {{getHeader()}}'\r\n },\r\n fromDate: tempmin,\r\n toDate: tempmax,\r\n autoExpand: 'none',\r\n dependencies: {\r\n enabled: true,\r\n conflictChecker: true\r\n },\r\n rowContent: ' {{row.model.name}}',\r\n taskContent: ' {{task.model.name}}',\r\n }\r\n }\r\n\r\n\r\n\r\n function getPowPlanningOption(minDate, maxDate) {\r\n var tempmin = new Date(minDate)\r\n tempmin.setDate(tempmin.getDate() - 2);\r\n\r\n var tempmax = new Date(maxDate)\r\n tempmax.setDate(tempmax.getDate() + 2);\r\n $scope.Powoptions = {\r\n sideMode: 'TreeTable',\r\n daily: false,\r\n maxHeight: 50000,\r\n maxWidth: 50000,\r\n width: false,\r\n scale: 'day',\r\n zoom: 1,\r\n labelsEnabled: true,\r\n readOnly: false,\r\n groupDisplayMode: 'group',\r\n columns: ['model.name', 'from', 'to', 'completedWork'],\r\n treeTableColumns: ['from', 'to'],\r\n columnsHeaders: { 'model.name': 'Name', 'from': 'From', 'to': 'To', 'completedWork': 'Completed Work' },\r\n columnsClasses: { 'model.name': 'gantt-column-name', 'from': 'gantt-column-from', 'to': 'gantt-column-to', 'completedWork': 'gantt-column-completedWork' },\r\n columnsFormatters: {\r\n 'from': function(from) {\r\n return from !== undefined ? from.format('lll') : undefined;\r\n },\r\n 'to': function(to) {\r\n return to !== undefined ? to.format('lll') : undefined;\r\n }\r\n },\r\n treeHeaderContent: ' {{getHeader()}}',\r\n columnsHeaderContents: {\r\n 'model.name': ' {{getHeader()}}',\r\n 'from': ' {{getHeader()}}',\r\n 'to': ' {{getHeader()}}',\r\n 'completedWork': ' {{getHeader()}}'\r\n },\r\n autoExpand: 'none',\r\n fromDate: tempmin,\r\n toDate: tempmax,\r\n dependencies: {\r\n enabled: true,\r\n conflictChecker: false\r\n },\r\n rowContent: ' {{row.model.name}}',\r\n taskContent: ' {{task.model.name}}',\r\n };\r\n\r\n }\r\n\r\n vm.collapseAll = function() {\r\n vm.isLoading = true;\r\n $scope.$broadcast('angular-ui-tree:collapse-all');\r\n vm.isLoading = false;\r\n };\r\n\r\n vm.expandAll = function() {\r\n vm.isLoading = true;\r\n $scope.$broadcast('angular-ui-tree:expand-all');\r\n vm.isLoading = false;\r\n };\r\n\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('ProjectSchedulingCtrl', ProjectSchedulingCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectSchedulingCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n CompanyService, HolidayMasterService, LocationSetupService, ProjectSchedulingService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 100 }, { \"value\": 500 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.HolidayMasterList = [];\r\n vm.dateCheck = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.checkRelation = checkRelation;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n vm.isLoading = false;\r\n // End of Pagination code\r\n\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getBOQForSchedule = getBOQForSchedule;\r\n vm.LoadPOWPlanning = LoadPOWPlanning;\r\n vm.Schedule = true;\r\n vm.ReSchedule = false;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n\r\n function LoadPOWPlanning(callBack) {\r\n debugger;\r\n ProjectSchedulingService.GetAllPOWPlanning(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PowPlanningList = res.data;\r\n vm.PowProjectList = lodash.uniqBy(vm.PowPlanningList, 'ProjectName');\r\n vm.isLoading = false;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n if (callBack)\r\n callBack();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n function checkRelation(row) {\r\n if (row != null) {\r\n if (row.SNo <= row.Relation) {\r\n dialogs.notify('Incorrect Value', 'There Relation should be less than S.no', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.Relation = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.filterbyProject = function(ProjectId) {\r\n if (ProjectId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = true;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n vm.PowLocationList = lodash.filter(vm.PowPlanningList, { 'ProjectId': ProjectId });\r\n vm.PowFilterLocList = lodash.uniqBy(vm.PowLocationList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, { 'ProjectId': ProjectId })\r\n });\r\n\r\n } else {\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n LoadPOWPlanning();\r\n }\r\n\r\n }\r\n\r\n vm.filterbyLocation = function(ProjectId, LocationId) {\r\n if (LocationId) {\r\n LoadPOWPlanning(function() {\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = true;\r\n vm.IOCAView = false;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.PowIOCAList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterIOCAList = lodash.uniqBy(vm.PowIOCAList, 'BasicLocation');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.pow.selecteIOCA = null;\r\n vm.filterbyProject(ProjectId);\r\n }\r\n\r\n\r\n }\r\n\r\n vm.filterbyIOCA = function(ProjectId, LocationId, IOCA_Id) {\r\n if (IOCA_Id) {\r\n LoadPOWPlanning(function() {\r\n vm.PowView = false;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = true;\r\n vm.filter = {};\r\n vm.filter.ProjectId = ProjectId,\r\n vm.filter.LocationId = LocationId,\r\n vm.filter.IOCA_Id = IOCA_Id\r\n vm.PowTierList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n vm.PowFilterTierList = lodash.uniqBy(vm.PowTierList, 'TierName');\r\n vm.PowPlanningList = lodash.filter(vm.PowPlanningList, vm.filter);\r\n });\r\n } else {\r\n vm.filterbyLocation(ProjectId, LocationId);\r\n }\r\n\r\n }\r\n\r\n vm.reset = function() {\r\n vm.pow.selectedProject = null;\r\n vm.pow.selectedLocation = null;\r\n vm.pow.selecteIOCA = null;\r\n vm.PowView = true;\r\n vm.ProjectView = false;\r\n vm.LocationView = false;\r\n vm.IOCAView = false;\r\n LoadPOWPlanning();\r\n\r\n }\r\n\r\n\r\n LoadHolidayMaster();\r\n\r\n function LoadHolidayMaster() {\r\n HolidayMasterService.getAllHolidayMaster().then(function(res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.HolidayMasterList = lodash.uniqBy(vm.HolidayMasterList, 'HolidayDate')\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n vm.WeekOffList = [\r\n { WeekOffId: 0, WeekOffDay: \"Sunday\" },\r\n { WeekOffId: 1, WeekOffDay: \"Monday\" },\r\n { WeekOffId: 2, WeekOffDay: \"Tuesday\" },\r\n { WeekOffId: 3, WeekOffDay: \"Wednesday\" },\r\n { WeekOffId: 4, WeekOffDay: \"Thursday\" },\r\n { WeekOffId: 5, WeekOffDay: \"Friday\" },\r\n { WeekOffId: 6, WeekOffDay: \"saturday\" },\r\n\r\n ];\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n vm.schedule.selectedHoliday = null;\r\n vm.schedule.selectedHoliday = [];\r\n vm.schedule.selectedDays = null;\r\n vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n vm.schedule.selectedHoliday = null;\r\n vm.schedule.selectedHoliday = [];\r\n vm.schedule.selectedDays = null;\r\n vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n }\r\n }\r\n\r\n function getLocationByProject(ProjectId) {\r\n if (ProjectId) {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n vm.schedule.selectedHoliday = null;\r\n vm.schedule.selectedHoliday = [];\r\n vm.schedule.selectedDays = null;\r\n vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n } else {\r\n vm.schedule.Location = null;\r\n vm.LocationMaster = [];\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n vm.schedule.selectedHoliday = null;\r\n vm.schedule.selectedHoliday = [];\r\n vm.schedule.selectedDays = null;\r\n vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n }\r\n\r\n }\r\n\r\n\r\n vm.checkDt = function() {\r\n vm.IsDateCheck = 0;\r\n if (vm.schedule.selectedHoliday != undefined) {\r\n for (var i in vm.schedule.selectedHoliday) {\r\n if ($filter('date')(vm.schedule.selectedHoliday[i].HolidayDate, 'yyyy/MM/dd') == $filter('date')(vm.schedule.StartDate, 'yyyy/MM/dd')) {\r\n dialogs.notify('Warning', '! This Date Already in Holiday Master,Try Another Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.schedule.StartDate = null;\r\n } else {\r\n vm.IsDateCheck = 1;\r\n }\r\n }\r\n } else {\r\n vm.IsDateCheck = 1;\r\n }\r\n\r\n if (vm.Arr != undefined) {\r\n for (var i in vm.Arr) {\r\n if ($filter('date')(vm.Arr[i], 'yyyy/MM/dd') == $filter('date')(vm.schedule.StartDate, 'yyyy/MM/dd')) {\r\n dialogs.notify('Warning', '! This Date Already in Additional Holiday List,Try Another Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.schedule.StartDate = null;\r\n } else {\r\n vm.IsDateCheck = 1;\r\n }\r\n }\r\n } else {\r\n vm.IsDateCheck = 1;\r\n }\r\n\r\n\r\n if (vm.schedule.selectedDays != undefined) {\r\n for (var i in vm.schedule.selectedDays) {\r\n if ((vm.schedule.selectedDays[i].WeekOffId) == (vm.schedule.StartDate).getDay()) {\r\n dialogs.notify('Warning', '! This Date Already in Your Selected WeekOff,Try Another Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.schedule.StartDate = null;\r\n } else {\r\n vm.IsDateCheck = 1;\r\n }\r\n }\r\n } else {\r\n vm.IsDateCheck = 1;\r\n }\r\n vm.IsDateCheck = 1;\r\n }\r\n\r\n vm.Arr = [];\r\n\r\n vm.getDate = function() {\r\n vm.Arr.push(vm.schedule.AddDate)\r\n }\r\n\r\n vm.checkDate = false;\r\n vm.check = function() {\r\n if (vm.schedule.check) {\r\n vm.checkDate = true;\r\n } else\r\n vm.checkDate = false;\r\n }\r\n\r\n vm.Remove = function(item) {\r\n var index = vm.Arr.indexOf(item);\r\n vm.Arr.splice(index, 1);\r\n // const index = vm.Arr.indexOf(element);\r\n // vm.Arr.splice(index, 1);\r\n }\r\n\r\n function getBOQForSchedule(ProjectId, LocationId) {\r\n if (LocationId) {\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n vm.schedule.selectedHoliday = null;\r\n vm.schedule.selectedHoliday = [];\r\n vm.schedule.selectedDays = null;\r\n vm.schedule.selectedDays = [];\r\n vm.Arr = [];\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId\r\n }\r\n vm.isLoading = true;\r\n ProjectSchedulingService.getBOQForSchedule(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskList = res.data.BoQDetails;\r\n for (var i in vm.TaskList) {\r\n vm.TaskList[i].Tiers = JSON.parse(vm.TaskList[i].LocationDetail)\r\n vm.TaskList[0].Isfirst = true;\r\n }\r\n vm.DurationDtls = res.data.Duration;\r\n if (res.data.Duration.EndDate != null) {\r\n vm.schedule.StartDate = new Date(vm.DurationDtls.StartDate);\r\n vm.schedule.EndDate = new Date(vm.DurationDtls.EndDate);\r\n vm.schedule.TotalDuration = $rootScope.differenceInDays(vm.schedule.StartDate, vm.schedule.EndDate);\r\n vm.dateCheck = true;\r\n }\r\n vm.ProjectHoliday = res.data.Holiday;\r\n if (vm.ProjectHoliday != null) {\r\n vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n vm.schedule.selectedHoliday = [];\r\n for (var i in vm.HolidayMasterList) {\r\n for (var j in vm.ProjectHoliday.HolidayDate.Holidays) {\r\n //($filter('date')(vm.HolidayMasterList[i].HolidayDate, 'yyyy/MM/dd')) == ($filter('date')(vm.ProjectHoliday.HolidayDate.Holidays[j]), 'yyyy/MM/dd')\r\n if ((new Date(vm.HolidayMasterList[i].HolidayDate)).toLocaleDateString() === (new Date(vm.ProjectHoliday.HolidayDate.Holidays[j]).toLocaleDateString())) {\r\n vm.schedule.selectedHoliday.push(vm.HolidayMasterList[i])\r\n // vm.schedule.selectedHoliday[i].checked = true;\r\n }\r\n }\r\n }\r\n\r\n vm.ProjectHoliday.weekOff = JSON.parse(vm.ProjectHoliday.WeekOff)\r\n vm.schedule.selectedDays = [];\r\n for (var i in vm.WeekOffList) {\r\n for (var j in vm.ProjectHoliday.weekOff.weekOff)\r\n if (vm.WeekOffList[i].WeekOffDay == vm.ProjectHoliday.weekOff.weekOff[j]) {\r\n vm.schedule.selectedDays.push(vm.WeekOffList[i])\r\n // vm.schedule.selectedDays[i].checked = true;\r\n }\r\n }\r\n\r\n\r\n\r\n vm.ProjectHoliday.AdditionalHoliday = JSON.parse(vm.ProjectHoliday.AdditionalHoliday);\r\n vm.Arr = vm.ProjectHoliday.AdditionalHoliday.AdditionalDays;\r\n if (vm.ProjectHoliday.weekOff.weekOff.length > 0) {\r\n vm.ReSchedule = true;\r\n vm.Schedule = false;\r\n vm.IsDateCheck = 1;\r\n }\r\n if (vm.ProjectHoliday.HolidayDate.Holidays.length > 0) {\r\n vm.ReSchedule = true;\r\n vm.Schedule = false;\r\n vm.IsDateCheck = 1;\r\n\r\n }\r\n if (vm.Arr.length > 0) {\r\n vm.schedule.check = true;\r\n vm.checkDate = true;\r\n vm.IsDateCheck = 1;\r\n }\r\n vm.schedule.Revision = vm.ProjectHoliday.Revision\r\n if (vm.schedule.Revision != null) {\r\n vm.ReSchedule = true;\r\n vm.Schedule = false;\r\n vm.IsDateCheck = 1;\r\n }\r\n }\r\n // vm.ProjectHoliday.HolidayDate = JSON.parse(vm.ProjectHoliday.HolidayDate);\r\n // vm.ProjectHoliday.WeekOff = JSON.parse(vm.ProjectHoliday.WeekOff);\r\n vm.isLoading = false;\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.TaskList = [];\r\n vm.ReSchedule = false;\r\n vm.Schedule = true;\r\n vm.schedule.StartDate = null;\r\n vm.dateCheck = false;\r\n vm.schedule.selectedHoliday = null;\r\n vm.schedule.selectedHoliday = [];\r\n vm.schedule.selectedDays = null;\r\n vm.schedule.selectedDays = [];\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n vm.SaveProject = function() {\r\n if (vm.IsDateCheck === 1) {\r\n var Arr = [];\r\n for (var i in vm.TaskList) {\r\n var temp = {\r\n TaskId: vm.TaskList[i].TaskId,\r\n LocationId: vm.TaskList[i].LocationId,\r\n IOCA_Id: vm.TaskList[i].IOCA_Id,\r\n Duration: vm.TaskList[i].Duration,\r\n LastTierId: vm.TaskList[i].LastTierId,\r\n Relation: (vm.TaskList[i].Relation != undefined) ? vm.TaskList[i].Relation : \"\",\r\n PowQty: vm.TaskList[i].PowQty\r\n }\r\n Arr.push(temp);\r\n }\r\n\r\n\r\n var objHoliday = {\r\n \"Holidays\": [],\r\n }\r\n for (var i in vm.schedule.selectedHoliday) {\r\n objHoliday.Holidays.push($filter('date')(vm.schedule.selectedHoliday[i].HolidayDate, 'yyyy/MM/dd'));\r\n }\r\n var objWeekOff = {\r\n \"weekOff\": []\r\n }\r\n for (var i in vm.schedule.selectedDays) {\r\n objWeekOff.weekOff.push(vm.schedule.selectedDays[i].WeekOffDay);\r\n }\r\n var objAddHoliday = {\r\n \"AdditionalDays\": []\r\n }\r\n\r\n for (var i in vm.Arr) {\r\n objAddHoliday.AdditionalDays.push($filter('date')(vm.Arr[i], 'yyyy/MM/dd'));\r\n }\r\n\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n LocationId: vm.schedule.Location.LocationId,\r\n Holidays: JSON.stringify(objHoliday),\r\n AdditionalHolidays: JSON.stringify(objAddHoliday),\r\n WeekOff: JSON.stringify(objWeekOff),\r\n TaskList: JSON.stringify(Arr),\r\n CreatedBy: loggedUser.UserId,\r\n StartDate: $filter('date')(vm.schedule.StartDate, 'yyyy-MM-dd')\r\n }\r\n\r\n ProjectSchedulingService.AddProjectPlanning(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Planning\");\r\n getBOQForSchedule(obj.ProjectId, obj.LocationId);\r\n vm.dateCheck = true;\r\n vm.IsDateCheck = 0;\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Planning\");\r\n\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Something error in Start Date,Try Again', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.schedule.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('ViewFinalisedPlanningCtrl', ViewFinalisedPlanningCtrl);\r\n\r\n /** @ngInject */\r\n function ViewFinalisedPlanningCtrl($http, $window, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, CompanyService, ProjectSchedulingService, planningReportService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n },\r\n { \"value\": 500 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.viewSchedule = viewSchedule;\r\n vm.getTempSchedule = getTempSchedule;\r\n vm.getRevScheduleNo = getRevScheduleNo;\r\n vm.isLoading = false;\r\n vm.ShowReport = ShowReport;\r\n vm.TaskList = [];\r\n vm.test = test;\r\n\r\n\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.TaskList = [];\r\n ProjectSchedulingService.GetFinalScheduledProject(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length == 0) {\r\n dialogs.notify('Warning', '! No Projects available', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n else {\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.TaskList = [];\r\n }\r\n }\r\n\r\n\r\n function getTempSchedule(projectId) {\r\n if (projectId) {\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.TaskList = [];\r\n ProjectSchedulingService.GetTempSchedule(projectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PlanList = res.data;\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n else {\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n function getRevScheduleNo() {\r\n debugger;\r\n if (vm.schedule.selectedPlan) {\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.TaskList = [];\r\n var obj = {\r\n ProjectId: vm.schedule.selectedProject.ProjectId,\r\n PlanId: vm.schedule.selectedPlan.PlanId\r\n }\r\n ProjectSchedulingService.getRevScheduleNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RevisionList = res.data;\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n else {\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n function viewSchedule(planId, revison) {\r\n debugger;\r\n if (vm.schedule.selectedRev) {\r\n vm.TaskList = [];\r\n vm.isLoading = true;\r\n if (!vm.schedule.ReportViews) {\r\n vm.schedule.ReportViews = 'R';\r\n }\r\n\r\n\r\n ProjectSchedulingService.GetAllFinalizedSchedule(planId, revison,vm.schedule.ReportViews).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.TaskList = res.data;\r\n }\r\n else {\r\n vm.isLoading = false;\r\n }\r\n vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Scheduling\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n else {\r\n vm.TaskList = [];\r\n }\r\n\r\n }\r\n\r\n vm.Reset = function () {\r\n vm.schedule.selectedCompany = null;\r\n vm.schedule.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.schedule.selectedPlan = null;\r\n vm.PlanList = [];\r\n vm.TaskList = [];\r\n vm.schedule.selectedRev = null;\r\n vm.RevisionList = [];\r\n\r\n }\r\n\r\n //#region Event for Print \r\n function ShowReport(planId) {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n //Header\r\n var strHeading = null;\r\n //Input Values\r\n debugger;\r\n\r\n var obj = {\r\n ProjectName: vm.schedule.selectedProject.ProjectName,\r\n GroupCompanyName: vm.schedule.selectedCompany.CompanyName,\r\n UserName: loggedUser.FirstName,\r\n ActionBy: loggedUser.UserId,\r\n RevisonId: vm.schedule.selectedRev.Revison,\r\n Heading: 'Consolidated Planning Report Form Finalized Planning - Location Wise',\r\n planId: vm.schedule.selectedPlan.PlanId,\r\n RType: vm.schedule.ReportViews\r\n }\r\n\r\n console.log(obj);\r\n\r\n\r\n\r\n planningReportService.ShowReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n //#endregion\r\n\r\n\r\n function test() {\r\n viewSchedule(vm.schedule.selectedPlan.PlanId, vm.schedule.selectedRev.Revison, vm.schedule.ReportViews);\r\n }\r\n\r\n /////////////////////////\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInitiation.planning')\r\n .controller('ViewPowPlanningCtrl', ViewPowPlanningCtrl);\r\n\r\n /** @ngInject */\r\n function ViewPowPlanningCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n vm.PowPlanningList = items.PowList\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('PriliminaryEstimatesCtrl', PriliminaryEstimatesCtrl);\r\n\r\n /** @ngInject */\r\n function PriliminaryEstimatesCtrl($rootScope, dialogs, $filter, $window, AuthenticationService, $scope, PriliminaryEstimatesService, projectCreationService, lodash) {\r\n var vm = this;\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // Pagination code For Estimates\r\n vm.rowCountOptions1 = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows1 = vm.rowCountOptions1[1];\r\n\r\n vm.currentPage1 = 1;\r\n vm.rembemberCurrentPage1 = function(num) {\r\n vm.currentPage1 = num;\r\n }\r\n // End of Pagination code\r\n\r\n // Pagination code For Budget\r\n vm.rowCountOptions2 = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows2 = vm.rowCountOptions1[1];\r\n\r\n vm.currentPage2 = 1;\r\n vm.rembemberCurrentPage2 = function(num) {\r\n vm.currentPage2 = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.isSchLoading = false;\r\n vm.buttonDisp = false;\r\n\r\n $rootScope.isLogin = false;\r\n //Method \r\n vm.prl = {};\r\n vm.IOCAList = [];\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.Create = Create;\r\n vm.getPriliminaryItem = getPriliminaryItem;\r\n vm.SavePrilimary = SavePrilimary;\r\n\r\n /////\r\n vm.isSubmit = false;\r\n vm.isSequence = true;\r\n vm.isFreezeSequence = false;\r\n vm.isSchedule = false;\r\n vm.isFreezeSchedule = false;\r\n //////\r\n\r\n $scope.sortableOptions = {\r\n change: function() {\r\n vm.isSubmit = true;\r\n },\r\n };\r\n\r\n\r\n Init();\r\n ////////////////\r\n\r\n function Init() {\r\n PriliminaryEstimatesService.getAllPriliminaryEstimates(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AllPriliminaryList = res.data;\r\n lodash.forEach(vm.AllPriliminaryList, function(e) {\r\n e.CostInr = Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.Cost).toFixed(2))\r\n })\r\n projectCreationService.getAllApprovedProject(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Priliminary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Priliminary Estimates\");\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Priliminary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Priliminary Estimates\");\r\n });\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.isSubmit = false;\r\n vm.isSequence = true;\r\n vm.isFreezeSequence = false;\r\n vm.isSchedule = false;\r\n vm.isFreezeSchedule = false;\r\n\r\n vm.prl = {};\r\n\r\n }\r\n\r\n vm.Reset = function() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to Reset this page.(Reset this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.prl = {};\r\n vm.TotalCost = 0;\r\n vm.TotalCostinInr = null;\r\n vm.IOCAList = [];\r\n vm.isSequence = true;\r\n vm.isFreezeSequence = false;\r\n vm.isSchedule = false;\r\n vm.isFreezeSchedule = false;\r\n });\r\n }\r\n\r\n\r\n\r\n function getPriliminaryEstimatesByProject(ProjectId, callback) {\r\n PriliminaryEstimatesService.getPriliminaryEstimatesByProject(ProjectId, loggedUser.UserId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PriliminaryList = res.data;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Priliminary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Priliminary Estimates\");\r\n });\r\n\r\n }\r\n\r\n\r\n function getPriliminaryItem(callback) {\r\n\r\n if (vm.prl.selectedProject) {\r\n vm.isLoading = true;\r\n vm.IOCAList = [];\r\n vm.prl.EndDate = null;\r\n vm.prl.Revison = null;\r\n vm.prl.TotDuration = null;\r\n\r\n var obj = {\r\n ProjectId: vm.prl.selectedProject.ProjectId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n PriliminaryEstimatesService.getPriliItem(obj).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.PriliItemList = res.data;\r\n if (vm.PriliItemList.length > 0) {\r\n\r\n var Arr = lodash.groupBy(vm.PriliItemList, 'TypeName');\r\n vm.TypeList = [];\r\n vm.TypeIOCAList = [];\r\n lodash.map(Arr, function(value, key) {\r\n vm.TypeList.push({\r\n TypeName: key,\r\n TypeId: value[0].TypeId,\r\n IOCAList: value\r\n })\r\n })\r\n vm.tempTypeList = angular.copy(vm.TypeList);\r\n vm.isSequence = true;\r\n vm.isFreezeSequence = false;\r\n vm.isSchedule = false;\r\n vm.isFreezeSchedule = false;\r\n vm.IOCAList = [];\r\n getPriliminaryEstimatesByProject(vm.prl.selectedProject.ProjectId, function(obj) {\r\n if (vm.PriliminaryList.length > 0) {\r\n\r\n lodash.forEach(vm.PriliminaryList, function(e) {\r\n e.SelectedTypeofCA = {};\r\n e.SelectedIOCA = {};\r\n var Arr = [];\r\n var ArrIOCA = [];\r\n vm.tempTypeList = angular.copy(vm.TypeList);\r\n Arr = lodash.filter(vm.TypeList, function(obj) {\r\n if (obj.TypeId == e.TypeId)\r\n return obj\r\n })\r\n e.SelectedTypeofCA = Arr[0];\r\n vm.getIOCA(e, function(i) {\r\n ArrIOCA = lodash.filter(vm.TypeIOCAList, function(t) {\r\n if (t.IOCA_Id === e.IOCA_Id)\r\n return t\r\n })\r\n })\r\n e.SelectedIOCA = ArrIOCA[0];\r\n\r\n vm.IOCAList.push({\r\n TypeId: e.SelectedTypeofCA.TypeId,\r\n Qty: e.Qty,\r\n RatePerUnit: e.RatePerUnit,\r\n Cost: e.Cost,\r\n CostInInr: new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.Cost).toFixed(2)),\r\n Duration: e.Duration,\r\n Relation: e.Relation,\r\n ESD: e.ESD,\r\n EFD: e.EFD,\r\n LSD: e.LSD,\r\n LFD: e.LFD,\r\n SelectedTypeofCA: e.SelectedTypeofCA,\r\n SelectedIOCA: e.SelectedIOCA,\r\n isAdd: false,\r\n isEdit: false,\r\n isView: true\r\n })\r\n });\r\n\r\n vm.TotalCost = 0;\r\n vm.TotalCostinInr = null;\r\n vm.TotalCost = lodash.sumBy(vm.IOCAList, function(e) {\r\n\r\n if (e.Cost != null) {\r\n return parseFloat(e.Cost)\r\n }\r\n })\r\n if (vm.TotalCost)\r\n vm.TotalCostinInr = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(vm.TotalCost).toFixed(2))\r\n\r\n\r\n vm.tempTypeList = angular.copy(vm.TypeList);\r\n\r\n lodash.forEach(vm.TypeList, function(e) {\r\n if (e) {\r\n var tempIOCA = lodash.filter(vm.IOCAList, { 'TypeId': e.TypeId })\r\n if (tempIOCA.length === e.IOCAList.length) {\r\n lodash.remove(vm.tempTypeList, { 'TypeId': e.TypeId })\r\n }\r\n }\r\n\r\n })\r\n var StartDate = lodash.minBy(vm.PriliminaryList, function(e) {\r\n return e.ESD\r\n });\r\n vm.TypeIOCAList = [];\r\n\r\n vm.prl.StartDate = new Date(StartDate.ESD);\r\n vm.isLoading = false;\r\n }\r\n vm.IOCAList.push({\r\n isAdd: true,\r\n isView: false,\r\n Cost: null\r\n })\r\n })\r\n } else {\r\n vm.IOCAList = [];\r\n }\r\n if (callback)\r\n callback();\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Priliminary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Priliminary Estimates\");\r\n });\r\n } else {\r\n vm.IOCAList = [];\r\n vm.prl.EndDate = null;\r\n vm.prl.Revison = null;\r\n vm.prl.TotDuration = null;\r\n }\r\n }\r\n\r\n vm.getCost = function(row) {\r\n vm.TotalCost = 0;\r\n vm.TotalCostinInr = null;\r\n if ((row.Qty != undefined && row.Qty != '') && (row.RatePerUnit != undefined && row.RatePerUnit != \"\")) {\r\n row.Cost = parseFloat(row.Qty * row.RatePerUnit).toFixed(2);\r\n row.CostInInr = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(row.Qty * row.RatePerUnit).toFixed(2))\r\n } else {\r\n row.Cost = null;\r\n row.CostInInr = null\r\n }\r\n vm.TotalCost = lodash.sumBy(vm.IOCAList, function(e) {\r\n\r\n if (e.Cost != null) {\r\n return parseFloat(e.Cost)\r\n }\r\n })\r\n if (vm.TotalCost)\r\n vm.TotalCostinInr = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(vm.TotalCost).toFixed(2))\r\n\r\n }\r\n\r\n\r\n\r\n\r\n vm.getIOCA = function(row, callback) {\r\n vm.TypeIOCAList = lodash.filter(vm.PriliItemList, function(e) {\r\n return e.TypeId == row.SelectedTypeofCA.TypeId\r\n })\r\n\r\n lodash.forEach(vm.IOCAList, function(e) {\r\n if (e.SelectedIOCA) {\r\n lodash.remove(vm.TypeIOCAList, function(obj) {\r\n return obj.IOCA_Id == e.SelectedIOCA.IOCA_Id\r\n })\r\n\r\n }\r\n })\r\n if (callback)\r\n callback();\r\n\r\n }\r\n\r\n vm.addRow = function(index, row) {\r\n row.isAdd = false;\r\n row.isView = true;\r\n row.TypeId = row.SelectedTypeofCA.TypeId;\r\n\r\n vm.IOCAList.push({\r\n isAdd: true,\r\n isEdit: false,\r\n isView: false,\r\n TotalCost: null\r\n })\r\n\r\n vm.tempTypeList = angular.copy(vm.TypeList);\r\n\r\n lodash.forEach(vm.TypeList, function(e) {\r\n if (e) {\r\n var tempIOCA = lodash.filter(vm.IOCAList, { 'TypeId': e.TypeId })\r\n if (tempIOCA.length === e.IOCAList.length) {\r\n lodash.remove(vm.tempTypeList, { 'TypeId': e.TypeId })\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n vm.removeRow = function(i, row) {\r\n vm.IOCAList.splice(i, 1)\r\n vm.TotalCost = 0;\r\n vm.TotalCostinInr = null;\r\n vm.TotalCost = lodash.sumBy(vm.IOCAList, function(e) {\r\n\r\n if (e.Cost != null) {\r\n return parseFloat(e.Cost)\r\n }\r\n })\r\n if (vm.TotalCost)\r\n vm.TotalCostinInr = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(vm.TotalCost).toFixed(2))\r\n\r\n vm.tempTypeList = angular.copy(vm.TypeList);\r\n\r\n lodash.forEach(vm.TypeList, function(e) {\r\n if (e) {\r\n var tempIOCA = lodash.filter(vm.IOCAList, { 'TypeId': e.TypeId })\r\n if (tempIOCA.length === e.IOCAList.length) {\r\n lodash.remove(vm.tempTypeList, { 'TypeId': e.TypeId })\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getFreezeSequence = function() {\r\n lodash.remove(vm.IOCAList, function(e) {\r\n return (e.SelectedIOCA == undefined || e.Cost == null);\r\n })\r\n var SNo = 0;\r\n var SeqId = 0;\r\n lodash.forEach(vm.IOCAList, function(e) {\r\n SNo += 1;\r\n SeqId += 1;\r\n e.SNo = parseInt(SNo)\r\n e.SeqId = parseInt(SeqId)\r\n })\r\n\r\n vm.tempIOCAList = angular.copy(vm.IOCAList);\r\n console.log(vm.tempIOCAList);\r\n\r\n }\r\n\r\n\r\n vm.editOrder = function(row) {\r\n row.SNo = parseInt(row.SNo);\r\n\r\n vm.CurrentSeq = (lodash.filter(vm.tempIOCAList, { 'SeqId': row.SeqId }))[0].SNo;\r\n vm.DesSeq = (lodash.filter(vm.tempIOCAList, { 'SNo': row.SNo }))[0].SNo;\r\n\r\n if (vm.CurrentSeq > vm.DesSeq) {\r\n lodash.forEach(vm.IOCAList, function(e) {\r\n if (e.SeqId != row.SeqId) {\r\n if (e.SNo >= vm.DesSeq && e.SNo < vm.CurrentSeq) {\r\n e.SNo = e.SNo + 1;\r\n }\r\n }\r\n\r\n })\r\n } else if (vm.CurrentSeq < vm.DesSeq) {\r\n lodash.forEach(vm.IOCAList, function(e) {\r\n if (e.SeqId != row.SeqId) {\r\n if (e.SNo <= vm.DesSeq && e.SNo > vm.CurrentSeq) {\r\n e.SNo = e.SNo - 1;\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.IOCAList = lodash.orderBy(vm.IOCAList, 'SNo')\r\n\r\n vm.tempIOCAList = angular.copy(vm.IOCAList);\r\n\r\n\r\n // row.SNo = parseInt(row.SNo)\r\n // lodash.forEach(vm.IOCAList, function (e) {\r\n // if (e.SNO > row.SNo) {\r\n // e.SNo = parseInt(e.SNo + 1)\r\n // }\r\n // })\r\n row.isEdit = false;\r\n vm.buttonDisp = false;\r\n\r\n }\r\n\r\n\r\n function SavePrilimary() {\r\n debugger;\r\n vm.isSchLoading = true;\r\n vm.isData = false;\r\n\r\n for (var i in vm.IOCAList) {\r\n if (vm.IOCAList[i].Duration == undefined || vm.IOCAList[i].Duration == '') {\r\n vm.isData = true;\r\n }\r\n }\r\n if (vm.prl.StartDate && !vm.isData) {\r\n\r\n vm.isRelationCheck = false;\r\n lodash.forEach(vm.IOCAList, function(s) {\r\n if (!s.isFirst) {\r\n var tempstr = s.Relation.split(/[ +\\(,\\)-]+/);\r\n var str = [];\r\n str.push(tempstr[0]);\r\n var getNum = (str.join()).replace(/[^0-9]/g, '');\r\n if (s.SNo <= parseInt(getNum)) {\r\n s.Relation = null;\r\n vm.isRelationCheck = true;\r\n }\r\n }\r\n\r\n })\r\n if (!vm.isRelationCheck) {\r\n if (vm.prl.StartDate >= new Date()) {\r\n var TaskList = [];\r\n\r\n lodash.forEach(vm.IOCAList, function(e) {\r\n TaskList.push({\r\n TaskId: (vm.IOCAList.indexOf(e) + 1),\r\n TypeId: e.SelectedTypeofCA.TypeId,\r\n IOCA_Id: e.SelectedIOCA.IOCA_Id,\r\n Qty: parseFloat(e.Qty),\r\n RatePerUnit: parseFloat(e.RatePerUnit),\r\n Cost: parseFloat(e.Cost),\r\n Duration: parseInt(e.Duration),\r\n Relation: e.Relation\r\n })\r\n })\r\n\r\n var obj = {\r\n ProjectId: vm.prl.selectedProject.ProjectId,\r\n StartDate: $filter('date')(vm.prl.StartDate, 'yyyy-MM-dd'),\r\n Type: 'S',\r\n TaskList: JSON.stringify(TaskList),\r\n ActionBy: loggedUser.UserId\r\n }\r\n\r\n PriliminaryEstimatesService.SavePrilimary(obj).then(function(res) {\r\n if (res.status === 200) {\r\n\r\n vm.prl.StartDate = new Date(res.data.getData1.StartDate);\r\n vm.prl.EndDate = $filter('date')(res.data.getData1.EndDate, 'dd-MM-yyyy');\r\n vm.prl.Revison = res.data.getData1.Revison;\r\n vm.prl.TotDuration = res.data.getData1.TotDuration;\r\n vm.IOCAList = [];\r\n lodash.forEach(res.data.getData2, function(e) {\r\n e.SelectedTypeofCA = {};\r\n e.SelectedIOCA = {};\r\n var Arr = [];\r\n var ArrIOCA = [];\r\n vm.tempTypeList = angular.copy(vm.TypeList);\r\n Arr = lodash.filter(vm.TypeList, function(obj) {\r\n if (obj.TypeId == e.TypeId)\r\n return obj\r\n })\r\n e.SelectedTypeofCA = Arr[0];\r\n vm.getIOCA(e, function(i) {\r\n ArrIOCA = lodash.filter(vm.TypeIOCAList, function(t) {\r\n if (t.IOCA_Id === e.IOCA_Id)\r\n return t\r\n })\r\n })\r\n e.SelectedIOCA = ArrIOCA[0];\r\n\r\n vm.IOCAList.push({\r\n TypeId: e.SelectedTypeofCA.TypeId,\r\n Qty: e.Qty,\r\n RatePerUnit: e.RatePerUnit,\r\n Cost: e.Cost,\r\n CostInInr: new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.Cost).toFixed(2)),\r\n Duration: e.Duration,\r\n Relation: e.Relation,\r\n ESD: e.ESD,\r\n EFD: e.EFD,\r\n LSD: e.LSD,\r\n LFD: e.LFD,\r\n SelectedTypeofCA: e.SelectedTypeofCA,\r\n SelectedIOCA: e.SelectedIOCA,\r\n isAdd: false,\r\n isEdit: true,\r\n isView: true\r\n })\r\n });\r\n\r\n vm.IOCAList[0].isFirst = true;\r\n vm.isFreezeSchedule = true;\r\n vm.isSchLoading = false;\r\n // vm.IOCAList.push({\r\n // isAdd: true,\r\n // isEdit: false,\r\n // isView: false,\r\n // TotalCost: null\r\n // })\r\n $rootScope.showToaster('success', \"Priliminary Estimates Saved Successfully\", \"Prilimary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Prilimary Estimates\");\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Start Date should be higher then Current Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isSchLoading = false;\r\n }\r\n } else {\r\n dialogs.notify('Warning', '! There Relation should be less than CurrentSequence', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isSchLoading = false;\r\n }\r\n } else {\r\n dialogs.notify('Warning', '! Some Inputs are missing', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isSchLoading = false;\r\n }\r\n\r\n }\r\n\r\n\r\n vm.FreezeSchedule = function(projectId) {\r\n vm.isSchedule = false;\r\n PriliminaryEstimatesService.FreezePriliminaryEstimates(projectId, loggedUser.UserId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Prilimary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Prilimary Estimates\");\r\n });\r\n }\r\n\r\n\r\n vm.ShowReport = function(row) {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n ProjectName: row.ProjectName,\r\n CompanyName: AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName,\r\n PreparedBy: row.PreparedBy,\r\n UserName: loggedUser.FirstName\r\n }\r\n\r\n PriliminaryEstimatesService.showReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TaskReport = res.data;\r\n //$rootScope.isLoading = false;\r\n //vm.TaskReport = res.data;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([vm.TaskReport], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n vm.isLoading = false;\r\n // a.href = url;\r\n // a.download = 'TaskReport.pdf';\r\n // a.click();\r\n // window.URL.revokeObjectURL(url);\r\n // $state.reload();\r\n }\r\n });\r\n }\r\n\r\n vm.editPriliminary = function(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n lodash.forEach(vm.ProjectList, function(e) {\r\n if (e.ProjectId == row.ProjectId) {\r\n vm.prl.selectedProject = e\r\n }\r\n });\r\n\r\n getPriliminaryItem(function() {\r\n\r\n })\r\n vm.prl.EndDate = angular.copy(row.EndDate);\r\n vm.prl.StartDate = angular.copy(row.StartDate);\r\n vm.prl.Revison = angular.copy(row.Revison);\r\n vm.prl.TotDuration = angular.copy(row.Duration);\r\n }\r\n\r\n vm.resetForm = function() {\r\n vm.PriliminaryForm.$setUntouched();\r\n }\r\n\r\n vm.Cancel = function() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.prl = {};\r\n vm.IOCAList = [];\r\n Init();\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n //////////////// BuDGET //////////////////////\r\n\r\n vm.isShow = 'week';\r\n vm.isCurrency = 'ind';\r\n vm.isCurrencySystem = 'thousands';\r\n vm.isLoading1 = false;\r\n\r\n vm.MonthList = [{ Id: 1, Month: 'Jan' }, { Id: 2, Month: 'Feb' }, { Id: 3, Month: 'Mar' }, { Id: 4, Month: 'Apr' }, { Id: 5, Month: 'May' }, { Id: 6, Month: 'Jun' },\r\n { Id: 7, Month: 'Jul' }, { Id: 8, Month: 'Aug' }, { Id: 9, Month: 'Sep' }, { Id: 10, Month: 'Oct' }, { Id: 11, Month: 'Nov' },\r\n { Id: 12, Month: 'Dec' },\r\n ]\r\n\r\n vm.getPriliminaryBudgetByProject = function() {\r\n vm.isLoading1 = true;\r\n if (vm.prl.selectedProject) {\r\n\r\n if (vm.isShow == 'week')\r\n vm.Type = 'w'\r\n else if (vm.isShow == 'month')\r\n vm.Type = 'M'\r\n else\r\n vm.Type = 'Q'\r\n\r\n\r\n var obj = {\r\n ProjectId: vm.prl.selectedProject.ProjectId,\r\n ActionBy: loggedUser.UserId,\r\n Type: vm.Type\r\n }\r\n PriliminaryEstimatesService.getAllPriliminaryBudgetByProject(obj).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.IOCABudgetList = res.data;\r\n if (vm.IOCABudgetList.length > 0) {\r\n lodash.forEach(vm.IOCABudgetList, function(e) {\r\n e.IOCACostList = JSON.parse(e.IOCACostList);\r\n e.minPeriod = lodash.minBy(e.IOCACostList, 'Period').Period;\r\n e.maxPeriod = lodash.maxBy(e.IOCACostList, 'Period').Period;\r\n })\r\n\r\n var tempmin = lodash.minBy(vm.IOCABudgetList, 'minPeriod').minPeriod;\r\n var tempmax = lodash.maxBy(vm.IOCABudgetList, 'maxPeriod').maxPeriod;\r\n vm.HeadingList = [];\r\n for (var i = tempmin; i <= tempmax; i++) {\r\n if (vm.isShow == 'week')\r\n vm.HeadingList.push({\r\n Period: i,\r\n PeriodName: 'Week' + ' ' + i\r\n })\r\n else if (vm.isShow == 'month')\r\n vm.HeadingList.push({\r\n Period: i,\r\n PeriodName: (lodash.filter(vm.MonthList, function(e) {\r\n if (e.Id == i)\r\n return e.Month\r\n }))[0].Month\r\n })\r\n else\r\n vm.HeadingList.push({\r\n Period: i,\r\n PeriodName: 'Quarterly' + ' ' + i\r\n })\r\n }\r\n\r\n\r\n\r\n lodash.forEach(vm.IOCABudgetList, function(e) {\r\n var tempHeading = angular.copy(vm.HeadingList)\r\n lodash.forEach(e.IOCACostList, function(obj) {\r\n lodash.remove(tempHeading, { 'Period': obj.Period })\r\n })\r\n lodash.forEach(tempHeading, function(o1) {\r\n e.IOCACostList.push({\r\n Period: o1.Period,\r\n TotCost: 0.00\r\n })\r\n })\r\n\r\n })\r\n\r\n lodash.forEach(vm.IOCABudgetList, function(e) {\r\n lodash.forEach(e.IOCACostList, function(obj) {\r\n if (vm.isCurrency == 'ind') {\r\n if (vm.isCurrencySystem == 'thousands') {\r\n obj.TotCostinCur = parseFloat(obj.TotCost).toFixed(2)\r\n // obj.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(obj.TotCostinCur).toFixed(2)))\r\n } else if (vm.isCurrencySystem == 'lakhs') {\r\n obj.TotCostinCur = parseFloat(obj.TotCost / 100000).toFixed(2)\r\n // obj.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(obj.TotCostinCur).toFixed(2)))+' '+'L'\r\n } else {\r\n obj.TotCostinCur = parseFloat(obj.TotCost / 10000000).toFixed(2)\r\n //obj.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(obj.TotCostinCur).toFixed(2)))+' '+'Cr'\r\n }\r\n obj.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(obj.TotCostinCur).toFixed(2)))\r\n\r\n\r\n\r\n } else {\r\n obj.TotCostInDol = obj.TotCost / 75;\r\n if (vm.isCurrencySystem == 'thousands')\r\n obj.TotCostinCur = parseFloat(obj.TotCostInDol).toFixed(2)\r\n else if (vm.isCurrencySystem == 'lakhs')\r\n obj.TotCostinCur = parseFloat(obj.TotCostInDol / 100000).toFixed(2)\r\n else\r\n obj.TotCostinCur = parseFloat(obj.TotCostInDol / 10000000).toFixed(2)\r\n\r\n\r\n\r\n obj.TotCostinCurrency = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD'\r\n }).format(parseFloat(obj.TotCostinCur).toFixed(2));\r\n\r\n }\r\n\r\n })\r\n\r\n })\r\n\r\n lodash.forEach(vm.HeadingList, function(e) {\r\n\r\n vm.TotalBUdgetCost = 0;\r\n vm.TotalBudgetCostinInr = null;\r\n e.TotCost = 0;\r\n lodash.forEach(vm.IOCABudgetList, function(i) {\r\n var temp = lodash.find(i.IOCACostList, { Period: e.Period })\r\n e.TotCost = e.TotCost + parseFloat(temp.TotCost)\r\n })\r\n if (vm.isCurrency == 'ind') {\r\n if (vm.isCurrencySystem == 'thousands') {\r\n e.TotCostinCur = parseFloat(e.TotCost).toFixed(2)\r\n // e.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.TotCostinCur).toFixed(2)))\r\n } else if (vm.isCurrencySystem == 'lakhs') {\r\n e.TotCostinCur = parseFloat(e.TotCost / 100000).toFixed(2)\r\n // e.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.TotCostinCur).toFixed(2))) + ' ' + 'L'\r\n } else {\r\n e.TotCostinCur = parseFloat(e.TotCost / 10000000).toFixed(2)\r\n // e.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.TotCostinCur).toFixed(2))) + ' ' + 'Cr'\r\n }\r\n\r\n e.TotCostinCurrency = (new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(e.TotCostinCur).toFixed(2)))\r\n\r\n console.log(e.TotCostinCurrency);\r\n\r\n vm.TotalBUdgetCost = lodash.sumBy(vm.HeadingList, function(e) {\r\n\r\n if (e.TotCost != null) {\r\n return parseFloat(e.TotCost)\r\n }\r\n })\r\n if (vm.TotalBUdgetCost)\r\n vm.TotalBudgetCostinInr = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(parseFloat(vm.TotalBUdgetCost).toFixed(2))\r\n\r\n\r\n } else {\r\n e.TotCostInDol = e.TotCost / 75;\r\n if (vm.isCurrencySystem == 'thousands')\r\n e.TotCostinCur = parseFloat(e.TotCostInDol).toFixed(2)\r\n else if (vm.isCurrencySystem == 'lakhs')\r\n e.TotCostinCur = parseFloat(e.TotCostInDol / 100000).toFixed(2)\r\n else\r\n e.TotCostinCur = parseFloat(e.TotCostInDol / 10000000).toFixed(2)\r\n\r\n e.TotCostinCurrency = (new Intl.NumberFormat('en-US', { style: \"currency\", currency: \"USD\" }).format(parseFloat(e.TotCostinCur).toFixed(2)))\r\n\r\n\r\n vm.TotalBUdgetCost = lodash.sumBy(vm.HeadingList, function(e) {\r\n\r\n if (e.TotCostInDol != null) {\r\n return parseFloat(e.TotCostInDol)\r\n }\r\n })\r\n if (vm.TotalBUdgetCost)\r\n vm.TotalBudgetCostinInr = new Intl.NumberFormat('en-US', { style: \"currency\", currency: \"USD\" }).format(parseFloat(vm.TotalBUdgetCost).toFixed(2))\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n vm.isLoading1 = false;\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Priliminary Estimates\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Priliminary Estimates\");\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n //minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.prl.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('projectConstantCtrl', projectConstantCtrl);\r\n\r\n /** @ngInject */\r\n function projectConstantCtrl($rootScope, lodash, dialogs, $http, CountryService, CompanyService, projectCreationService, ProjectIocaService, LobMaterialService, AuthenticationService,\r\n ProjectConstantService, MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, LabourTypeService, TypeOfCAService, LabourCategoryService, AttributeService, CategoryofCAService,\r\n SubCategoryofCAService, ConstantService, ItemOfMaterialService, LobMachineryService, MachinerySubCategoryService, IOMachineryService, TypeOfConsumableServices, MachineryTypeService, IocaService, ConsumableCatagoryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.viewTab = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n // vm.CountryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.filter = {};\r\n vm.material = {};\r\n vm.labour = {};\r\n vm.con = {};\r\n vm.machinery = {};\r\n vm.org = {};\r\n vm.isBackCheck = false;\r\n vm.IOCAConstantsList = {\r\n LabourConstants: [],\r\n MaterialConstants: [],\r\n MachineryConstants: [],\r\n ConsumableConstants: [],\r\n }\r\n vm.IOCAProjectConstantsList = {\r\n LabourProjectConstants: [],\r\n MaterialProjectConstants: [],\r\n MachineryProjectConstants: [],\r\n ConsumableProjectConstants: [],\r\n }\r\n vm.getProjectByCompany = getProjectByCompany;\r\n // vm.getCountryByProject = getCountryByProject;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getAllProjectConstants = getAllProjectConstants;\r\n vm.getAllConstants = getAllConstants;\r\n vm.getAllRetriveConstantFromLibrary = getAllRetriveConstantFromLibrary;\r\n vm.getUOM = getUOM;\r\n vm.GetIOCA = GetIOCA;\r\n vm.IocaList = [];\r\n $rootScope.isLogin = false;\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n Init();\r\n LoadLob();\r\n // GetCountry();\r\n\r\n function Init() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n CompanyService.getSubCompByCompId(companyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n\r\n }\r\n\r\n vm.AddConstant = function () {\r\n\r\n\r\n if ((vm.IOCAConstantsList.LabourConstants.length > 0 || vm.IOCAConstantsList.MaterialConstants.length > 0 ||\r\n vm.IOCAConstantsList.MachineryConstants.length > 0 || vm.IOCAConstantsList.ConsumableConstants.length > 0)\r\n ) {\r\n dialogs.notify('Warning',\r\n 'Already Constants are Exist. Cannot Add from Project Constant Library. To Add from Project Constant Library, Please Delete All Existing Constant of this Retrive IOCA then Add',\r\n { animation: true, size: 'sm' });\r\n }\r\n else {\r\n // vm.IOCAProjectConstantsList = res.data;\r\n\r\n vm.viewTab = true;\r\n }\r\n\r\n }\r\n\r\n ///// Constant \r\n\r\n\r\n function getProjectByCompany(companyId) {\r\n if (companyId) {\r\n vm.con.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.con.selectedFOC = null;\r\n vm.focList = [];\r\n // vm.con.selectedCountry = null;\r\n vm.con.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n projectCreationService.getAllApproved(companyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.con.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.con.selectedFOC = null;\r\n vm.focList = [];\r\n // vm.con.selectedCountry = null;\r\n\r\n vm.con.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n }\r\n }\r\n\r\n function getFocByPrjId(prjId) {\r\n if (prjId != undefined) {\r\n vm.con.selectedFOC = null;\r\n vm.focList = [];\r\n // vm.con.selectedCountry = null;\r\n\r\n vm.con.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n var isworkAlloc = true;\r\n ProjectIocaService.getAllProjectFoc(prjId, isworkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n else {\r\n vm.con.selectedFOC = null;\r\n vm.focList = [];\r\n // vm.con.selectedCountry = null;\r\n\r\n vm.con.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n }\r\n\r\n }\r\n\r\n // function getCountryByProject(ProjectId) {\r\n\r\n // if (ProjectId) {\r\n\r\n // ProjectIocaService.getAllProjectCountry(ProjectId).then(function (res) {\r\n // if (res.status === 200) {\r\n // debugger;\r\n // vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n // if (!vm.CountryList.length > 0) {\r\n // dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n if (CountryId && ProjectId && focId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId,\r\n isworkAlloc: true\r\n };\r\n vm.con.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n } else {\r\n vm.con.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n }\r\n\r\n }\r\n\r\n function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n if (ProjectId && CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n isworkAlloc: true\r\n }\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n } else {\r\n vm.con.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n }\r\n\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n isworkAlloc: true\r\n }\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n } else {\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n }\r\n }\r\n\r\n function GetIOCA() {\r\n if (vm.selectedSpecType != undefined) {\r\n var obj = {\r\n CountryId: vm.con.selectedProject.CountryId,\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n CA_CategoryId: vm.con.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.con.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.con.selectedTypeOfCA.TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n isworkAlloc: true\r\n }\r\n vm.con.selectedIOCA = null;\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n IocaService.getAllProjectIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.con.selectedIOCA = {};\r\n vm.IocaList = [];\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = [];\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = [];\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = [];\r\n vm.IOCAConstantsList.LabourConstants = [];\r\n vm.IOCAConstantsList.MaterialConstants = [];\r\n vm.IOCAConstantsList.MachineryConstants = [];\r\n vm.IOCAConstantsList.ConsumableConstants = [];\r\n }\r\n }\r\n\r\n function getAllProjectConstants(callback) {\r\n var obj = {\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n IOCA_Id: vm.con.selectedIOCA.Id\r\n }\r\n ProjectConstantService.getAllIOCAProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n // getAllConstants(vm.con.selectedIOCA.Id);\r\n vm.IOCAProjectConstantsList = res.data;\r\n if (vm.IOCAProjectConstantsList.length > 0) {\r\n for (var i in vm.IOCAConstantsList) {\r\n vm.IOCAProjectConstantsList[i].ConstantList = JSON.parse(vm.IOCAConstantsList[i].History)\r\n }\r\n }\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n\r\n }\r\n\r\n function getAllConstants(Id) {\r\n debugger;\r\n // vm.IOCAProjectConstantsList = [];\r\n ConstantService.getAllApprovalIOCAConstant(Id).then(function (res) {\r\n if (res.status === 200) {\r\n if ((res.data.LabourConstants.length > 0 || res.data.MaterialConstants.length > 0 ||\r\n res.data.MachineryConstants.length > 0 || res.data.ConsumableConstants.length > 0)\r\n ) {\r\n if ((vm.IOCAProjectConstantsList.LabourProjectConstants.length > 0 || vm.IOCAProjectConstantsList.MaterialProjectConstants.length > 0 ||\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants.length > 0 || vm.IOCAProjectConstantsList.ConsumableProjectConstants.length > 0)\r\n ) {\r\n dialogs.notify('Warning',\r\n 'Already Constants are Exist. Cannot Retrive from Constant Library. To Retrive from Constant Library, Please Delete All Existing Constant of this IOCA then Retrive',\r\n { animation: true, size: 'sm' });\r\n }\r\n else {\r\n vm.IOCAConstantsList = res.data;\r\n }\r\n }\r\n else {\r\n dialogs.notify('Warning', 'No Constant Prepared in Library', { animation: true, size: 'sm' });\r\n\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n function getAllRetriveConstantFromLibrary(Id) {\r\n debugger;\r\n // vm.IOCAProjectConstantsList = [];\r\n var obj = {\r\n IOCA_Id: Id,\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n ConstantService.getAllRetriveConstantFromLibrary(obj).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n $rootScope.showToaster('success', 'Successful Constants Are Retrieved From The Library ', \" IOCA\");\r\n getAllConstants(Id);\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n\r\n\r\n\r\n // Labour\r\n\r\n LabourCategoryService.getActiveLabourCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.LabourCategoryList = res.data;\r\n if (vm.LabourCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.type.selectedLabourCategory.LabourCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n vm.getLabourTypeByLabourCategoryId = function (LabrCategoryId) {\r\n if (LabrCategoryId != undefined) {\r\n vm.LabourTypeList = [];\r\n vm.labour.selectedLabourType = null;\r\n vm.labour.LabourContantValue = \"\";\r\n LabourTypeService.getLabourTypeByLabourCategoryId(LabrCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LabourTypeList = res.data;\r\n if (vm.LabourTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.type.selectedLabourType, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n if (err.status === 404) {\r\n dialogs.notify('error', 'No Data Found', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n vm.LabourTypeList = [];\r\n vm.labour.selectedLabourType = null;\r\n vm.labour.LabourContantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n // Material Constants \r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n LobMaterialService.getActiveLobMaterial().then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n if (vm.LobMaterialList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.selectedLobMaterial.LobMaterial, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n //// Load All Country\r\n\r\n // function GetCountry() {\r\n // CountryService.getActiveCountry().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n //// Load All Material Category By Lob \r\n\r\n vm.getCategoryofMaterial = function () {\r\n\r\n if (vm.selectedLobMaterial != undefined) {\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n var objGetCategory = {\r\n LOB_MatId: vm.selectedLobMaterial.LobMaterial.LOB_MatId,\r\n CountryId: vm.con.selectedProject.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryofMaterialList = res.data;\r\n console.log(JSON.stringify(vm.CategoryofMaterialList));\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n } else {\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n }\r\n //// Load All Material SubCategory By Lob \r\n\r\n vm.getMatSubcategoryByCategoryId = function (MaterialCategoryId) {\r\n if (MaterialCategoryId != undefined) {\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n }\r\n else {\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n //// Load All Type of Material By Lob \r\n vm.getMatTypeBySubCategoryId = function (MaterialSubCategoryId) {\r\n if (MaterialSubCategoryId != undefined) {\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialType\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialType\");\r\n });\r\n }\r\n else {\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n function loadIocaList() {\r\n if (vm.material.selectedMaterialType != undefined) {\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n var obj = {\r\n MaterialCategoryId: vm.material.selectedMaterialCategory.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.material.selectedMaterialSubCategory.MaterialSubCategoryId,\r\n MaterialTypeId: vm.material.selectedMaterialType.MaterialTypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n }\r\n ItemOfMaterialService.getAllIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n\r\n //// Lob \r\n\r\n vm.Lob = function () {\r\n vm.machinerysubcategory.selectedCountry = \"\";\r\n vm.IOMachinery.selectedMachinerySubCategoryName = \"\";\r\n vm.IOMachinery.selectedMachineryCategoryName = \"\";\r\n vm.IOMachinery.selectedMachineryType = \"\";\r\n vm.getCategoryofMachinery();\r\n vm.form = false;\r\n }\r\n\r\n //// Load All Line Of Business \r\n\r\n function LoadLob() {\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n // function LoadCountry() {\r\n // CountryService.getActiveCountry().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n //// Load All Category By LOB\r\n\r\n vm.getCategoryofMachinery = function () {\r\n\r\n if (vm.org.selectedLOB_MachName != undefined) {\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n var objGetCategory = {\r\n LOB_MachId: vm.org.selectedLOB_MachName.LOB_MachId,\r\n CountryId: vm.con.selectedProject.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.machinerycategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = true;\r\n } else {\r\n vm.selectCategory = false;\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n }\r\n else {\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n }\r\n\r\n function getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId) {\r\n if (CategoryOfMachineryId != undefined) {\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId).then(function (res) {\r\n vm.selectedSubCategory = undefined;\r\n vm.selectedSubCategory = \"\";\r\n vm.selectedTypeOfMachinery = undefined;\r\n vm.selectedTypeOfMachinery = \"\";\r\n if (res.status === 200) {\r\n vm.machinerySubCategoryList = res.data;\r\n if (vm.machinerySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery SubCategory available for ' + vm.machinery.selectedmachinery, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n vm.selectedMachineryType = \"\";\r\n } else {\r\n vm.selectsubCategory = true;\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n }\r\n else {\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n function getMachineryTypeListByMachinerySubcategoryId(MachSubCategoryId, callback) {\r\n if (MachSubCategoryId != undefined) {\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n MachineryTypeService.GetMachTypeBySubCategory(MachSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n if (vm.MachineryTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Type available for ' + vm.machinery.selectedSubCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.TypeList = false;\r\n vm.form = false;\r\n } else {\r\n vm.TypeList = true;\r\n vm.form = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n vm.LobItemMachinery = function () {\r\n if (vm.machinery.selectedSubCategory != undefined) {\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n var obj = {\r\n COM_Id: vm.machinery.selectedMachineryCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.machinery.selectedmachinery.MachSubCategoryId,\r\n MachTypeId: vm.machinery.selectedSubCategory.MachTypeId,\r\n SpecType: vm.selectedSpecType.Code\r\n }\r\n IOMachineryService.getAllIOMachinery(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMHList = res.data;\r\n for (var i in vm.IOMHList) {\r\n vm.IOMHList[i].UOMList = JSON.parse(vm.IOMHList[i].UOMList);\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n function getUOM() {\r\n vm.UOMList = vm.machinery.selectedMachineryItem.UOMList.UomList;\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n\r\n //Consumable Code Start\r\n //Get All Active Consumable List\r\n ConsumableCatagoryService.getActiveConsumableCatagory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableCategoryList = res.data;\r\n if (vm.ConsumableCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.type.selectedConsumableCategory.ConsumableCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n //Get All Active Consumable Type List\r\n\r\n vm.GetActiveConsumableTypeById = function (ConsumableCategoryId) {\r\n if (ConsumableCategoryId != undefined) {\r\n vm.con.selectedConTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n vm.con.ConsumableConstantValue = \"\";\r\n vm.unit = null;\r\n TypeOfConsumableServices.GetTypeOfCAByCategoryId(ConsumableCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAByCategoryList = res.data;\r\n if (vm.TypeOfCAByCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No SubCategory Name available for ' + vm.con.selectedConTypeOfCA.TypeOfCAName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.con.selectedConTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n vm.con.ConsumableConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n\r\n vm.CancelLabor = function () {\r\n vm.labour.selectedLabourCategory = null;\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n vm.labour.LabourContantValue = \"\";\r\n }\r\n\r\n vm.clearLaborFR = function () {\r\n vm.labour.LabourContantValue = \"\";\r\n }\r\n\r\n vm.CancelMaterial = function () {\r\n (vm.selectedLobMaterial != undefined) ? vm.selectedLobMaterial.LobMaterial = null : \"\";\r\n // vm.material.selectedCountry = null;\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n vm.clearMaterialFR = function () {\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n vm.cancelMachinery = function () {\r\n vm.org.selectedLOB_MachName = null;\r\n // vm.org.selectedCountry = null;\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n vm.clearMachineryFR = function () {\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n vm.CancelConsumable = function () {\r\n vm.con.selectedConsumableCategory = null;\r\n vm.con.selectedConTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n vm.con.ConsumableConstantValue = \"\";\r\n vm.unit = null;\r\n }\r\n\r\n vm.clearConsumableFR = function () {\r\n if (vm.con.selectedConTypeOfCA.Unit != null) {\r\n vm.unit = vm.con.selectedConTypeOfCA.Unit.UnitName;\r\n } else {\r\n vm.unit = vm.con.selectedConTypeOfCA.UOM.Name;\r\n }\r\n vm.con.ConsumableConstantValue = \"\";\r\n\r\n }\r\n\r\n\r\n\r\n // Get Consumable UOM \r\n vm.NewEntry = function () {\r\n vm.isFormOpen = true;\r\n\r\n }\r\n vm.Updataion = function () {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n if (SubCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n vm.selectedTypeOfCA = null;\r\n }\r\n\r\n function getAllCombinations() {\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId\r\n }\r\n ConstantService.getAllCombinations(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data) {\r\n vm.rawCombinations = angular.copy(res.data.Combinations);\r\n vm.combinations = res.data.Combinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n\r\n createViewModel();\r\n } else {\r\n vm.AttributeList = [];\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n });\r\n }\r\n\r\n function selectVariable(attribute, variable) {\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n attribute.selectedVariable = variable.VariableName;\r\n filterVariables();\r\n }\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributeName] = attribute.selectedVariable;\r\n });\r\n\r\n vm.combinations = lodash.filter(vm.combinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributeName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function clearFilter() {\r\n vm.filter = {};\r\n vm.combinations = vm.rawCombinations;\r\n createViewModel();\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a],\r\n VariableList: []\r\n }\r\n for (var c in vm.combinations) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.combinations[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.combinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n vm.Create = function () {\r\n vm.isFormOpen = true;\r\n }\r\n vm.cancel = function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.ioca = {};\r\n }\r\n vm.resetForm = function () {\r\n vm.typeofCAForm.$setUntouched();\r\n }\r\n\r\n\r\n vm.editIoca = function (ioca) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.ioca = angular.copy(ioca);\r\n getSubCategoryListByCategoryId(ioca.CategoryId, function () {\r\n for (var c in vm.CategoryList) {\r\n if (vm.CategoryList[c].CategoryId === ioca.CategoryId) {\r\n vm.ioca.selectedCategory = vm.CategoryList[c];\r\n }\r\n }\r\n getTypeOfCAListBySubcategoryId(ioca.SubCategoryId, function () {\r\n for (var c in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[c].SubCategoryId === ioca.SubCategoryId) {\r\n vm.ioca.selectedSubCategory = vm.SubCategoryList[c];\r\n }\r\n }\r\n for (var c in vm.TypeOfCAList) {\r\n if (vm.TypeOfCAList[c].TypeOfCAId === ioca.TypeOfCAId) {\r\n vm.ioca.selectedTypeOfCA = vm.TypeOfCAList[c];\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n ///// Get Labour Constant\r\n\r\n function getLabourProjectConstant() {\r\n var obj = {\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n IOCA_Id: vm.con.selectedIOCA.Id\r\n }\r\n ProjectConstantService.GetLabourProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAProjectConstantsList.LabourProjectConstants = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Get Material Constant\r\n\r\n function getMaterialProjectConstant() {\r\n var obj = {\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n IOCA_Id: vm.con.selectedIOCA.Id\r\n }\r\n ProjectConstantService.GetMaterialProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAProjectConstantsList.MaterialProjectConstants = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n\r\n });\r\n }\r\n\r\n //// Get Machinery Constant\r\n function getMachineryProjectConstant() {\r\n var obj = {\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n IOCA_Id: vm.con.selectedIOCA.Id\r\n }\r\n ProjectConstantService.GetMachineryProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAProjectConstantsList.MachineryProjectConstants = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n }\r\n\r\n ///// Get Consumable Constant\r\n\r\n function getConsumableProjectConstant() {\r\n var obj = {\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n IOCA_Id: vm.con.selectedIOCA.Id\r\n }\r\n ProjectConstantService.GetConsumableProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAProjectConstantsList.ConsumableProjectConstants = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n vm.SaveIoca = function (ioca) {\r\n vm.getSubCategoryByCategoryId = function (selectedCategory) {\r\n selectedCategory.CategoryId = vm.selectedCategory.CategoryId;\r\n }\r\n ioca.CategoryId = vm.ioca.selectedCategory.CategoryId;\r\n ioca.SubCategoryId = vm.ioca.selectedSubCategory.SubCategoryId;\r\n ioca.TypeOfCaId = vm.ioca.selectedTypeOfCa.TypeOfCaId;\r\n ioca.SpecType = vm.ioca.selected\r\n\r\n if (!vm.isEditing) {\r\n ConstantService.AddIoca(ioca).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"IOCA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n } else {\r\n ConstantService.EditIoca(type).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"IOCA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n }\r\n }\r\n\r\n ///// Save Labour Constant\r\n\r\n vm.SaveLabourProjectConstant = function () {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n RefId: vm.labour.selectedLabourType.LabrTypeId,\r\n ConstantValue: vm.labour.LabourContantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n ProjectConstantService.AddLabourProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Labour Constant\");\r\n getLabourProjectConstant();\r\n vm.CancelLabor();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Labour Constant\");\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Labour Constant\", \"Labour Constant\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Labour Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Material Constant\r\n\r\n vm.SaveMaterialProjectConstant = function () {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n RefId: vm.material.selectedIOCA.Id,\r\n ConstantValue: vm.material.MaterialConstantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n ProjectConstantService.AddMaterialProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Constant\");\r\n getMaterialProjectConstant();\r\n vm.CancelMaterial();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Material Constant\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Material Constant\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Machinery Constant\r\n\r\n vm.SaveMachineryProjectConstant = function () {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n RefId: vm.machinery.selectedMachineryItem.Id,\r\n UOM_Id: vm.machinery.selectedMachineryUOM.UOM_Id,\r\n ConstantValue: vm.machinery.machineryConstantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n ProjectConstantService.AddMachineryProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Machinery Constant\");\r\n getMachineryProjectConstant();\r\n vm.cancelMachinery();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Machinery Constant\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Machinery Constant\", \"Machinery Constant\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Machinery Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Consumable Constant\r\n\r\n vm.SaveConsumableProjectConstant = function () {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n ProjectId: vm.con.selectedProject.ProjectId,\r\n RefId: vm.con.selectedConTypeOfCA.ConsumeTypeId,\r\n ConstantValue: vm.con.ConsumableConstantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n ProjectConstantService.AddConsumableProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Consumable Constant\");\r\n getConsumableProjectConstant();\r\n vm.CancelConsumable();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Consumable Constant\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Consumable Constant\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Consumable Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.Back = function () {\r\n vm.viewTab = false;\r\n\r\n // if (vm.IOCAProjectConstantsList.LabourProjectConstants.length > 0 || vm.IOCAProjectConstantsList.MaterialProjectConstants.length > 0 ||\r\n // vm.IOCAProjectConstantsList.MachineryProjectConstants.length > 0 || vm.IOCAProjectConstantsList.ConsumableProjectConstants.length > 0) {\r\n // vm.isBackCheck = true;\r\n // }\r\n // else {\r\n // vm.isBackCheck = false;\r\n // }\r\n\r\n getAllProjectConstants();\r\n vm.CancelLabor();\r\n vm.CancelMaterial();\r\n vm.cancelMachinery();\r\n vm.CancelConsumable();\r\n }\r\n\r\n\r\n vm.updateProjectConstant = function (row) {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ConstantValue: row.ConstantValue,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n ProjectConstantService.UpdateProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourProjectConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialProjectConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryProjectConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableProjectConstant();\r\n break;\r\n }\r\n } else {\r\n getAllProjectConstants();\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.RemoveProjectConstant = function (row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Project Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ActionBy: $rootScope.userId\r\n }\r\n ProjectConstantService.DeleteProjectConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourProjectConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialProjectConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryProjectConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableProjectConstant();\r\n break;\r\n }\r\n } else {\r\n getAllProjectConstants();\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n vm.updateConstant = function (row) {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ConstantValue: row.ConstantValue,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n ConstantService.UpdateConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.RemoveConstant = function (row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ActionBy: $rootScope.userId\r\n }\r\n ConstantService.DeleteConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Delete\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Delete\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Constant\", \"Constants Delete\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('ProjectCreationCtrl', ProjectCreationCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectCreationCtrl($scope, $http, $rootScope, $stateParams, $filter, $window, $uibModal, $state, lodash, dialogs, projectCreationService, AuthenticationService, CompanyService,\r\n CountryService, StateService, CityService, HolidayMasterService, AreaService, overheadService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormEditing = false;\r\n vm.isFormViewing = false;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.project = {};\r\n vm.unitList = [];\r\n vm.over = {};\r\n vm.overHeadList = [];\r\n vm.UnitsSTD = [];\r\n vm.ProjectDetailList = [];\r\n vm.unitList = [];\r\n vm.HolidayMasterList = [];\r\n vm.Amenities = [];\r\n vm.ParkingList = [];\r\n vm.selectedFileList = [];\r\n vm.CheckProjectName = CheckProjectName;\r\n vm.CheckProjectCode = CheckProjectCode;\r\n vm.cancel = cancel;\r\n ////// State params Assign\r\n if ($state.params.data != undefined) {\r\n vm.isAdd = $state.params.data.isAdd;\r\n vm.isEdit = $state.params.data.isEdit;\r\n vm.isView = $state.params.data.isView;\r\n if (vm.isView) {\r\n vm.isFormViewing = true;\r\n vm.isFormEditing = false;\r\n\r\n }\r\n if (vm.isAdd) {\r\n vm.isFormEditing = true;\r\n vm.isFormViewing = false;\r\n vm.project = {};\r\n vm.isEdit = false;\r\n vm.isView = false;\r\n } else {\r\n vm.project = $state.params.data.project;\r\n vm.project.NoOfDays = $rootScope.differenceInDays(new Date(vm.project.StartDate), new Date(vm.project.EndDate));\r\n if (vm.isView) {\r\n vm.isFormViewing = true;\r\n vm.isFormEditing = false;\r\n vm.isAdd = false;\r\n vm.isEdit = false;\r\n viewProject();\r\n } else {\r\n vm.isFormViewing = false;\r\n vm.isFormEditing = true;\r\n vm.isAdd = false;\r\n vm.isView = false;\r\n }\r\n }\r\n } else {\r\n //$state.go($rootScope.previousState);\r\n }\r\n\r\n ////////////////\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n //// Get All project Category and Get All Company and Country \r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n LoadCountry();\r\n\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.WeekOffList = [{\r\n WeekOffId: 0,\r\n WeekOffDay: \"Sunday\"\r\n },\r\n {\r\n WeekOffId: 1,\r\n WeekOffDay: \"Monday\"\r\n },\r\n {\r\n WeekOffId: 2,\r\n WeekOffDay: \"Tuesday\"\r\n },\r\n {\r\n WeekOffId: 3,\r\n WeekOffDay: \"Wednesday\"\r\n },\r\n {\r\n WeekOffId: 4,\r\n WeekOffDay: \"Thursday\"\r\n },\r\n {\r\n WeekOffId: 5,\r\n WeekOffDay: \"Friday\"\r\n },\r\n {\r\n WeekOffId: 6,\r\n WeekOffDay: \"saturday\"\r\n },\r\n\r\n ];\r\n LoadHolidayMaster();\r\n LoadCurrencyMaster();\r\n // GetAllArea();\r\n }\r\n\r\n function LoadHolidayMaster() {\r\n HolidayMasterService.getAllHolidayMaster().then(function(res) {\r\n if (res.status === 200) {\r\n vm.HolidayMasterList = res.data;\r\n vm.HolidayMasterList = lodash.uniqBy(vm.HolidayMasterList, 'HolidayDate')\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n function LoadCurrencyMaster() {\r\n projectCreationService.GetAllCurrency().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CurrencyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Currency Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Currency Master\");\r\n });\r\n }\r\n\r\n\r\n function LoadProjectCategory() {\r\n var objGetDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n }\r\n projectCreationService.GetAllProjectCategory(objGetDTO).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectCategoryList = res.data;\r\n vm.isLoading = false;\r\n LoadOverHead();\r\n LoadUnits();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n function LoadCountry() {\r\n var objCountry;\r\n CountryService.getAllCountry($http, $rootScope, objCountry).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n LoadProjectCategory();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function LoadOverHead() {\r\n var objOverhead;\r\n overheadService.getAllOverhead($http, $rootScope, objOverhead).then(function(res) {\r\n if (res.status === 200) {\r\n vm.OverHeadList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Overhead\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Overhead\");\r\n });\r\n\r\n }\r\n ///////////////\r\n\r\n ///// Get All project type By Project Category\r\n vm.GetprojectType = function(CategoryId, callBack) {\r\n projectCreationService.GetProjectTypeByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectTypeList = res.data;\r\n if (vm.ProjectTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedProjectCategoryName.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n\r\n }\r\n\r\n vm.loadPrjDtlReq = function(selectedPrjType, callBack) {\r\n var reqDtls = JSON.parse(selectedPrjType.RequiredDetails);\r\n var reqFiles = JSON.parse(selectedPrjType.RequiredFiles);\r\n vm.ProjectDetailList = reqDtls.BasicDetails;\r\n vm.unitsList = reqDtls.UnitDetails;\r\n\r\n var tempAmenitieList = [];\r\n for (var i in reqDtls.Amenites) {\r\n var temp = {\r\n name: reqDtls.Amenites[i],\r\n isChecked: false\r\n }\r\n tempAmenitieList.push(temp);\r\n }\r\n vm.Amenities = tempAmenitieList;\r\n\r\n var tempParkingList = [];\r\n for (var i in reqDtls.ParkingDetails) {\r\n var temp = {\r\n name: reqDtls.ParkingDetails[i],\r\n isChecked: false\r\n }\r\n tempParkingList.push(temp);\r\n }\r\n vm.ParkingList = tempParkingList;\r\n\r\n vm.ReqFileList = reqFiles.RequiredFiles;\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n ////////////////\r\n\r\n ///// Get All State By Country\r\n vm.getStateListByCountryId = function(CountryId, callBack) {\r\n StateService.GetStateByCountryId(CountryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.project.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n //// Get All City By State\r\n vm.getCityListByStateId = function(StateId, callBack) {\r\n CityService.GetCityByStateId(StateId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.project.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n ///// Get All Area By City\r\n vm.getAreaListByCityId = function(CityId, callBack) {\r\n AreaService.GetAreaByCityId(CityId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.project.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n /////////////////////// GET Country State City By PinCode /////////////////////////\r\n\r\n vm.getAllAreaByPinCode = function(Pincode) {\r\n debugger;\r\n AreaService.getAllAreaByPinCode(Pincode.trim()).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AreaListByPinCode = res.data;\r\n vm.isLoading = false;\r\n if (vm.AreaListByPinCode.length < 1) {\r\n dialogs.notify('Warning', 'No Area Available For this ' + Pincode, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.project.selectedArea = null;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Area\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Area\");\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n //////////////// \r\n\r\n vm.Create = function() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n }\r\n vm.clear = function() {\r\n $state.go($rootScope.previousState);\r\n }\r\n ////////////////////\r\n function cancel() {\r\n\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n $state.go($rootScope.previousState);\r\n });\r\n\r\n\r\n }\r\n //////////////////// \r\n function LoadUnits() {\r\n vm.UnitsSTD = [{\r\n \"UOM_Id\": 1,\r\n \"UnitsType\": \"MKS\"\r\n },\r\n {\r\n \"UOM_Id\": 1,\r\n \"UnitsType\": \"FPS\"\r\n }\r\n ];\r\n if (vm.isEdit) {\r\n ModifyProject();\r\n }\r\n }\r\n\r\n ///////////////////\r\n\r\n vm.getUnitNameByunitstd = function(callBack) {\r\n var objDto = {\r\n UOM_Id: vm.project.selectedunitTypeName.UOM_Id,\r\n UnitType: vm.project.selectedunitTypeName.UnitsType\r\n }\r\n projectCreationService.GetUnitByUOM(objDto).then(function(res) {\r\n if (res.status === 200) {\r\n vm.UOMList = res.data;\r\n if (vm.UOMList.length < 1) {\r\n dialogs.notify('Warning', 'No Unit Name available for ' + vm.project.selectedunitTypeName.UnitType, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callBack)\r\n callBack();\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n\r\n }\r\n ///////////////////////\r\n //// Add Unit\r\n vm.SaveUnits = function() {\r\n var isExist = false;\r\n for (var i in vm.unitList) {\r\n if (vm.unitList[i].UnitType === vm.project.selectedUnit) {\r\n dialogs.notify('Warning', vm.project.selectedUnit + '! Alread Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.project.unit != null && vm.project.selectedUnit != null && vm.project.unit != undefined && vm.project.selectedUnit != undefined) {\r\n var objUnit = {\r\n UnitType: vm.project.selectedUnit,\r\n Unit: vm.project.unit\r\n }\r\n vm.unitList.push(objUnit);\r\n vm.project.selectedUnit = null;\r\n vm.project.unit = null;\r\n } else {\r\n dialogs.notify('Warning', 'Select Unit Type OR Units', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n }\r\n //// Remove Units\r\n\r\n vm.removeUnits = function(row) {\r\n for (var i in vm.unitList) {\r\n if (vm.unitList[i].UnitType === row.UnitType) {\r\n vm.unitList.splice(i, 1);\r\n }\r\n }\r\n }\r\n ////////////////////////\r\n\r\n /////// Add Project Over Head\r\n\r\n vm.SaveOverhead = function() {\r\n var isExist = false;\r\n for (var i in vm.overHeadList) {\r\n if (vm.over.selectedoverHead != undefined) {\r\n if (vm.overHeadList[i].OverHeadName === vm.over.selectedoverHead.OverHeadName) {\r\n dialogs.notify('Warning', vm.over.selectedoverHead.OverHeadName + ' already added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n\r\n if (!isExist) {\r\n if (vm.over.percentage != null && vm.over.percentage != undefined &&\r\n vm.over.percentage != '' && vm.over.selectedoverHead != '' && vm.over.selectedoverHead != null && vm.over.selectedoverHead != undefined) {\r\n vm.over.OverHeadName = vm.over.selectedoverHead.OverHeadName;\r\n vm.over.OverHeadId = vm.over.selectedoverHead.OverHeadId;\r\n vm.overHeadList.push(vm.over);\r\n vm.over.selectedoverHead = null;\r\n vm.over = null;\r\n } else {\r\n dialogs.notify('Warning', 'Select Over Type OR percentage OR Profit', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n }\r\n //////////////////////////////\r\n //// Remove Over Heads\r\n\r\n vm.removeOverHead = function(row) {\r\n for (var i in vm.overHeadList) {\r\n if (vm.overHeadList[i].OverHeadName === row.OverHeadName) {\r\n vm.overHeadList.splice(i, 1);\r\n }\r\n }\r\n }\r\n ////////////////////////\r\n\r\n\r\n\r\n\r\n vm.check = function(unit) {\r\n debugger;\r\n if (vm.project.selectedProjectTypeName.TypeName == 'Apartment' || vm.project.selectedProjectTypeName.TypeName == 'Villa') {\r\n var i = vm.ProjectDetailList.length - 1\r\n\r\n if (vm.ProjectDetailList[i].selectedValues) {\r\n if (parseInt(vm.ProjectDetailList[i].selectedValues) >= unit) {\r\n vm.project.unit = unit;\r\n vm.msg = \"\";\r\n } else {\r\n vm.project.unit = null\r\n vm.msg = \"Quantity should be in \" + vm.ProjectDetailList[i].selectedValues\r\n }\r\n\r\n }\r\n }\r\n\r\n debugger;\r\n }\r\n\r\n\r\n\r\n\r\n ///////////////////////\r\n $scope.fileChanged = function(event) {\r\n debugger;\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n }\r\n\r\n vm.savePrjDoc = function() {\r\n debugger;\r\n if (vm.isAdd) {\r\n var isExist = false;\r\n for (var i in vm.selectedFileList) {\r\n if (vm.fileList.selectedFileType != undefined) {\r\n if (vm.selectedFileList[i].key === vm.fileList.selectedFileType.Key) {\r\n dialogs.notify('Warning', vm.fileList.selectedFileType.Key + '! Alread Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.selectedFile != undefined) {\r\n vm.selectedFileList.push({\r\n key: vm.fileList.selectedFileType.Key,\r\n selectedFile: vm.selectedFile\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! No File selected', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n }\r\n if (vm.isEdit) {\r\n var isExist = false;\r\n for (var i in vm.selectedFileList) {\r\n if (vm.fileList.selectedFileType != undefined) {\r\n if (vm.selectedFileList[i].key === vm.fileList.selectedFileType.Key) {\r\n dialogs.notify('Warning', vm.fileList.selectedFileType.Key + '! Alread Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.selectedFile != undefined) {\r\n var formData = new FormData();\r\n formData.append('ProjectId', vm.project.ProjectId),\r\n formData.append('CompanyId', vm.project.CompanyId),\r\n formData.append('key', vm.fileList.selectedFileType.Key),\r\n formData.append('selectedFile', vm.selectedFile);\r\n projectCreationService.UploadDrawing(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Drawing Added Successfully', \"Project Initiation\");\r\n var selectedFileList = res.data;\r\n vm.selectedFileList = []\r\n for (var property in selectedFileList) {\r\n if (selectedFileList.hasOwnProperty(property)) {\r\n vm.selectedFileList.push({\r\n key: property,\r\n selectedFile: selectedFileList[property]\r\n });\r\n }\r\n }\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! File not selected', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n }\r\n }\r\n vm.viewFile = function(row) {\r\n var blob = new Blob([row.selectedFile], { type: row.selectedFile.type });\r\n var url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n vm.removeFileType = function(fileType) {\r\n debugger;\r\n if (vm.isAdd)\r\n for (var i in vm.selectedFileList) {\r\n if (vm.selectedFileList[i].key === fileType.key) {\r\n vm.selectedFileList.splice(i, 1);\r\n }\r\n }\r\n if (vm.isEdit) {\r\n var objDel = {\r\n ProjectId: vm.project.ProjectId,\r\n CompanyId: vm.project.CompanyId,\r\n key: fileType.key\r\n }\r\n projectCreationService.RemoveDrawing(objDel).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Drawing Deleted Successfully', \"Project Initiation\");\r\n var selectedFileList = res.data;\r\n vm.selectedFileList = []\r\n for (var property in selectedFileList) {\r\n if (selectedFileList.hasOwnProperty(property)) {\r\n vm.selectedFileList.push({\r\n key: property,\r\n selectedFile: selectedFileList[property]\r\n });\r\n }\r\n }\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n }\r\n //////////////////////\r\n\r\n ///// Check Date\r\n vm.CheckDate = function() {\r\n if (vm.project.StartDate != undefined && vm.project.EndDate != undefined) {\r\n vm.project.NoOfDays = $rootScope.differenceInDays(vm.project.StartDate, vm.project.EndDate);\r\n debugger;\r\n } else {\r\n vm.project.NoOfDays = 0;\r\n }\r\n\r\n }\r\n //////////////////////\r\n\r\n\r\n function CheckProjectName() {\r\n if (vm.project.ProjectName.trim() !== \"\") {\r\n var objProject = {\r\n ProjectName: vm.project.ProjectName,\r\n CompanyId: vm.project.selectedCompany.CompanyId\r\n }\r\n projectCreationService.checkProjectName(objProject).then(function(res) {\r\n if (res.status == 200) {\r\n vm.ProjectName = res.data.IsSuccess;\r\n } else {\r\n vm.ProjectName = false;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Initiation\");\r\n\r\n });\r\n } else {\r\n vm.project.ProjectName = \"\";\r\n }\r\n }\r\n\r\n function CheckProjectCode() {\r\n if (vm.project.ProjectCode.trim() !== \"\") {\r\n var objProject = {\r\n ProjectCode: vm.project.ProjectCode,\r\n CompanyId: vm.project.selectedCompany.CompanyId\r\n }\r\n projectCreationService.checkProjectCode(objProject).then(function(res) {\r\n if (res.status == 200) {\r\n vm.ProjectCode = res.data.IsSuccess;\r\n } else {\r\n vm.ProjectCode = false;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Initiation\");\r\n\r\n });\r\n } else {\r\n vm.project.ProjectName = \"\";\r\n }\r\n }\r\n\r\n\r\n\r\n ///// Modify Project /////\r\n\r\n function ModifyProject() {\r\n vm.project.StartDate = new Date(vm.project.StartDate);\r\n vm.project.EndDate = new Date(vm.project.EndDate);\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId === vm.project.CompanyId) {\r\n vm.project.selectedCompany = vm.CompanyList[i];\r\n }\r\n }\r\n for (var i in vm.ProjectCategoryList) {\r\n if (vm.ProjectCategoryList[i].ProjectCategoryId === vm.project.ProjectCategoryId) {\r\n vm.project.selectedProjectCategoryName = vm.ProjectCategoryList[i]\r\n }\r\n }\r\n\r\n if (vm.project.OverHead) {\r\n vm.overHeadList = JSON.parse(vm.project.OverHead);\r\n }\r\n if (vm.project.ProjectDocuments) {\r\n var selectedFileList = JSON.parse(vm.project.ProjectDocuments)\r\n for (var property in selectedFileList) {\r\n if (selectedFileList.hasOwnProperty(property)) {\r\n vm.selectedFileList.push({\r\n key: property,\r\n selectedFile: selectedFileList[property]\r\n });\r\n }\r\n }\r\n };\r\n vm.projectdtls = JSON.parse(vm.project.ProjectDetails);\r\n\r\n vm.unitList = vm.projectdtls.UnitDetails;\r\n vm.GetprojectType(vm.project.ProjectCategoryId, function() {\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i];\r\n vm.loadPrjDtlReq(vm.project.selectedProjectTypeName, function() {\r\n for (var i in vm.Amenities) {\r\n for (var property in vm.projectdtls.Amenities) {\r\n if (vm.projectdtls.Amenities.hasOwnProperty(property)) {\r\n if (vm.Amenities[i].name === property) {\r\n vm.Amenities[i].isChecked = true;\r\n vm.Amenities[i].selectedValues = vm.projectdtls.Amenities[property];\r\n }\r\n }\r\n }\r\n }\r\n for (var i in vm.ProjectDetailList) {\r\n for (var property in vm.projectdtls.BasicDetails) {\r\n if (vm.projectdtls.BasicDetails.hasOwnProperty(property)) {\r\n if (vm.ProjectDetailList[i].Label === property) {\r\n vm.ProjectDetailList[i].selectedValues = vm.projectdtls.BasicDetails[property]\r\n }\r\n }\r\n }\r\n }\r\n for (var i in vm.ParkingList) {\r\n for (var property in vm.projectdtls.parkingDetails) {\r\n if (vm.projectdtls.parkingDetails.hasOwnProperty(property)) {\r\n if (vm.ParkingList[i].name === property) {\r\n vm.ParkingList[i].selectedValues = vm.projectdtls.parkingDetails[property]\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n for (var i in vm.UnitsSTD) {\r\n if (vm.UnitsSTD[i].UnitsType === vm.project.UnitType) {\r\n vm.project.selectedunitTypeName = vm.UnitsSTD[i];\r\n vm.getUnitNameByunitstd(function() {\r\n for (var j in vm.UOMList) {\r\n if (vm.UOMList[j].UnitId === vm.project.UnitId) {\r\n vm.project.selectedunitName = vm.UOMList[j];\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.project.CountryId) {\r\n vm.project.selectedCountry = vm.CountryList[i];\r\n }\r\n }\r\n\r\n vm.getStateListByCountryId(vm.project.CountryId, function() {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.project.StateId) {\r\n vm.project.selectedState = vm.StateList[i];\r\n }\r\n }\r\n });\r\n vm.getCityListByStateId(vm.project.StateId, function() {\r\n for (var i in vm.CityList) {\r\n if (vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.project.CityId) {\r\n vm.project.selectedCity = vm.CityList[i]\r\n }\r\n }\r\n }\r\n });\r\n vm.getAreaListByCityId(vm.project.CityId, function() {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.project.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[i];\r\n }\r\n }\r\n });\r\n\r\n vm.RejectionList = JSON.parse(vm.project.RejectionNotes);\r\n\r\n vm.project.Profit = parseFloat(vm.project.Profit);\r\n\r\n vm.project.HolidayDate = JSON.parse(vm.project.Holidays);\r\n\r\n vm.project.selectedHoliday = [];\r\n for (var i in vm.HolidayMasterList) {\r\n for (var j in vm.project.HolidayDate.Holidays) {\r\n //($filter('date')(vm.HolidayMasterList[i].HolidayDate, 'yyyy/MM/dd')) == ($filter('date')(vm.ProjectHoliday.HolidayDate.Holidays[j]), 'yyyy/MM/dd')\r\n if ((new Date(vm.HolidayMasterList[i].HolidayDate)).toLocaleDateString() === (new Date(vm.project.HolidayDate.Holidays[j]).toLocaleDateString())) {\r\n vm.project.selectedHoliday.push(vm.HolidayMasterList[i])\r\n // vm.schedule.selectedHoliday[i].checked = true;\r\n }\r\n }\r\n }\r\n\r\n vm.project.weekOff = JSON.parse(vm.project.WeekOff)\r\n\r\n\r\n vm.project.selectedDays = [];\r\n for (var i in vm.WeekOffList) {\r\n for (var j in vm.project.weekOff.weekOff)\r\n if (vm.WeekOffList[i].WeekOffDay == vm.project.weekOff.weekOff[j]) {\r\n vm.project.selectedDays.push(vm.WeekOffList[i])\r\n // vm.schedule.selectedDays[i].checked = true;\r\n }\r\n }\r\n\r\n for (var i in vm.CurrencyList) {\r\n if (vm.CurrencyList[i].CurrecyId === vm.project.CurrecyId)\r\n vm.project.selectedCurrency = vm.CurrencyList[i]\r\n }\r\n }\r\n\r\n ///// View Project /////\r\n function viewProject() {\r\n if (vm.project.ProjectDocuments) {\r\n var selectedFileList = JSON.parse(vm.project.ProjectDocuments);\r\n vm.selectedFileList = []\r\n for (var property in selectedFileList) {\r\n if (selectedFileList.hasOwnProperty(property)) {\r\n vm.selectedFileList.push({\r\n key: property,\r\n selectedFile: selectedFileList[property]\r\n });\r\n }\r\n }\r\n }\r\n if (vm.project.OverHead) {\r\n vm.overHeadList = JSON.parse(vm.project.OverHead);\r\n }\r\n vm.RejectionList = JSON.parse(vm.project.RejectionNotes);\r\n if (vm.RejectionList.RejectionNotes.length > 0) {\r\n\r\n }\r\n\r\n var reqDtls = JSON.parse(vm.project.ProjectDetails);\r\n var length = Object.keys(reqDtls).length;\r\n if (length) {\r\n vm.unitList = reqDtls.UnitDetails;\r\n for (var property in reqDtls.Amenities) {\r\n if (reqDtls.Amenities.hasOwnProperty(property)) {\r\n vm.Amenities.push({\r\n name: property,\r\n selectedValues: reqDtls.Amenities[property]\r\n });\r\n }\r\n }\r\n\r\n for (var property in reqDtls.parkingDetails) {\r\n if (reqDtls.parkingDetails.hasOwnProperty(property)) {\r\n vm.ParkingList.push({\r\n name: property,\r\n selectedValues: reqDtls.ParkingList[property]\r\n });\r\n }\r\n }\r\n\r\n for (var property in reqDtls.BasicDetails) {\r\n if (reqDtls.BasicDetails.hasOwnProperty(property)) {\r\n vm.ProjectDetailList.push({\r\n Label: property,\r\n selectedValues: reqDtls.BasicDetails[property]\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n vm.saveProjectDetails = function() {\r\n var prjDtl = {};\r\n\r\n var basicDtl = {};\r\n for (var i in vm.ProjectDetailList) {\r\n if (vm.ProjectDetailList[i].selectedValues != undefined) {\r\n basicDtl[vm.ProjectDetailList[i].Label] = vm.ProjectDetailList[i].selectedValues;\r\n }\r\n }\r\n prjDtl.BasicDetails = basicDtl;\r\n\r\n var unitDtl = [];\r\n for (var i in vm.unitList) {\r\n var temp = {\r\n UnitType: vm.unitList[i].UnitType,\r\n Unit: vm.unitList[i].Unit\r\n }\r\n unitDtl.push(temp);\r\n }\r\n prjDtl.UnitDetails = unitDtl;\r\n\r\n var amenityDtl = {};\r\n for (var i in vm.Amenities) {\r\n if (vm.Amenities[i].isChecked)\r\n amenityDtl[vm.Amenities[i].name] = vm.Amenities[i].selectedValues;\r\n }\r\n prjDtl.Amenities = amenityDtl\r\n\r\n var parkingDtl = {};\r\n for (var i in vm.ParkingList) {\r\n if (vm.ParkingList[i].isChecked)\r\n parkingDtl[vm.ParkingList[i].name] = vm.ParkingList[i].selectedValues;\r\n }\r\n prjDtl.parkingDetails = parkingDtl;\r\n\r\n var overheadDtl = [];\r\n for (var i in vm.overHeadList) {\r\n var temp = {\r\n OverHeadId: vm.overHeadList[i].OverHeadId,\r\n OverHeadName: vm.overHeadList[i].OverHeadName,\r\n percentage: vm.overHeadList[i].percentage,\r\n profit: vm.overHeadList[i].profit\r\n }\r\n overheadDtl.push(temp);\r\n }\r\n\r\n if (vm.RejectionList != undefined) {\r\n var rejectionNotes = {\r\n \"RejectionNotes\": []\r\n }\r\n for (var i in vm.RejectionList.RejectionNotes) {\r\n rejectionNotes.RejectionNotes.push({\r\n Notes: vm.RejectionList.RejectionNotes[i].Notes,\r\n RejectedBy: vm.RejectionList.RejectionNotes[i].RejectedBy,\r\n RejectedOn: vm.RejectionList.RejectionNotes[i].RejectedOn\r\n });\r\n }\r\n }\r\n\r\n var objHoliday = {\r\n \"Holidays\": [],\r\n }\r\n for (var i in vm.project.selectedHoliday) {\r\n objHoliday.Holidays.push($filter('date')(vm.project.selectedHoliday[i].HolidayDate, 'yyyy/MM/dd'));\r\n }\r\n var objWeekOff = {\r\n \"weekOff\": []\r\n }\r\n for (var i in vm.project.selectedDays) {\r\n objWeekOff.weekOff.push(vm.project.selectedDays[i].WeekOffDay);\r\n }\r\n\r\n if (vm.isAdd) {\r\n var formData = new FormData();\r\n for (var i in vm.selectedFileList) {\r\n formData.append(vm.selectedFileList[i].key, vm.selectedFileList[i].selectedFile);\r\n }\r\n var objProject = {\r\n CompanyId: vm.project.selectedCompany.CompanyId,\r\n ProjectName: vm.project.ProjectName,\r\n ProjectCode: vm.project.ProjectCode,\r\n ProjectCategoryId: vm.project.selectedProjectCategoryName.ProjectCategoryId,\r\n ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n Holidays: JSON.stringify(objHoliday),\r\n WeekOff: JSON.stringify(objWeekOff),\r\n CurrencyId: vm.project.selectedCurrency.CurrencyId,\r\n PlotNo: vm.project.PlotNo,\r\n Address: vm.project.Address,\r\n CountryId: vm.project.selectedArea.CountryId,\r\n StateId: vm.project.selectedArea.StateId,\r\n CityId: vm.project.selectedArea.CityId,\r\n AreaId: vm.project.selectedArea.AreaId,\r\n Pincode: vm.project.Pincode,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude,\r\n TotalLandSize: vm.project.TotalLandSize,\r\n BuiltUpArea: vm.project.BuiltUpArea,\r\n UnitId: vm.project.selectedunitName.UnitId,\r\n StartDate: $filter('date')(vm.project.StartDate, 'yyyy-MM-dd'),\r\n EndDate: $filter('date')(vm.project.EndDate, 'yyyy-MM-dd'),\r\n Profit: vm.project.Profit,\r\n ProjectBrief: vm.project.ProjectBrief,\r\n Notes: vm.project.Notes,\r\n CreatedBy: $rootScope.userId,\r\n ProjectDetails: JSON.stringify(prjDtl),\r\n OverHead: JSON.stringify(overheadDtl)\r\n }\r\n formData.append('data', JSON.stringify(objProject))\r\n projectCreationService.AddProjectDetails(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Project Added Successfully', \"Project Initiation\");\r\n $state.go($rootScope.previousState);\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n Init();\r\n clear();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n Init();\r\n clear();\r\n });\r\n } else {\r\n var objUpdateProject = {\r\n ProjectId: vm.project.ProjectId,\r\n CompanyId: vm.project.selectedCompany.CompanyId,\r\n ProjectName: vm.project.ProjectName,\r\n ProjectCode: vm.project.ProjectCode,\r\n ProjectCategoryId: vm.project.selectedProjectCategoryName.ProjectCategoryId,\r\n ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n Holidays: JSON.stringify(objHoliday),\r\n WeekOff: JSON.stringify(objWeekOff),\r\n CurrencyId: vm.project.selectedCurrency.CurrencyId,\r\n PlotNo: vm.project.PlotNo,\r\n Address: vm.project.Address,\r\n CountryId: vm.project.selectedArea.CountryId,\r\n StateId: vm.project.selectedArea.StateId,\r\n CityId: vm.project.selectedArea.CityId,\r\n AreaId: vm.project.selectedArea.AreaId,\r\n Pincode: vm.project.Pincode,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude,\r\n TotalLandSize: vm.project.TotalLandSize,\r\n BuiltUpArea: vm.project.BuiltUpArea,\r\n UnitId: vm.project.selectedunitName.UnitId,\r\n StartDate: $filter('date')(vm.project.StartDate, 'yyyy-MM-dd'),\r\n EndDate: $filter('date')(vm.project.EndDate, 'yyyy-MM-dd'),\r\n Profit: vm.project.Profit,\r\n ProjectBrief: vm.project.ProjectBrief,\r\n Notes: vm.project.Notes,\r\n ModifiedBy: $rootScope.userId,\r\n Status: vm.project.Status,\r\n IsActive: vm.project.IsActive,\r\n ProjectDetails: JSON.stringify(prjDtl),\r\n RejectionNotes: JSON.stringify(vm.RejectionList),\r\n OverHead: JSON.stringify(overheadDtl)\r\n }\r\n projectCreationService.UpdateProjectDetails(objUpdateProject).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Project Updated Successfully', \"Project Initiation\");\r\n $state.go($rootScope.previousState);\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n Init();\r\n clear();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n Init();\r\n clear();\r\n });\r\n\r\n }\r\n }\r\n\r\n vm.viewEdit = function() {\r\n ModifyProject();\r\n }\r\n\r\n\r\n vm.reject = function() {\r\n var project = {\r\n ProjectId: vm.project.ProjectId,\r\n Status: vm.project.Status,\r\n CompanyId: vm.project.CompanyId\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/constructionProjectSetup/projectCreation/projectRejection.html',\r\n controller: 'projectRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return project;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n vm.sendApproval = function() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Send Project For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n projectCreationService.SendApproval(vm.project.ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Approval Successfully', \"Project Initiation\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't send Approval for Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't send Approval for Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n vm.Approval = function() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Approval the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n projectCreationService.ApprovedProject(vm.project.ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Project Initiation\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approved Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Approved Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n vm.ReSubmitted = function() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Resumit the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n projectCreationService.ReSubmittedProject(vm.project.ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Project Initiation\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Project Resumitted\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Project Resubmitted\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n vm.Block = function() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Block the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n projectCreationService.BlockedProject(vm.project.ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Blocked Successfully', \"Project Initiation\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Project Blocked\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Project Blocked\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n ///\r\n\r\n /////\r\n $scope.$on('gmPlacesAutocomplete::placeChanged', function() {\r\n\r\n var location = vm.autocomplete.getPlace().geometry.location;\r\n var Latitude = location.lat();\r\n var Longitude = location.lng();\r\n vm.project.Latitude = Latitude;\r\n vm.project.Longitude = Longitude;\r\n $scope.$apply();\r\n\r\n });\r\n\r\n ////////\r\n\r\n vm.checkInput = function(profit) {\r\n var chck = parseFloat(profit)\r\n if (chck >= 0 && chck <= 100) {\r\n vm.message = \"\";\r\n } else {\r\n // vm.message = \"The value must be in range 0 to 100\";\r\n vm.message = \"Please Enter a ValidNumber\"\r\n vm.project.Profit = null;\r\n }\r\n }\r\n ////\r\n\r\n vm.checkInput1 = function(percentage) {\r\n var chck = parseFloat(percentage)\r\n if (chck >= 0 && chck <= 100) {\r\n vm.message1 = \"\";\r\n } else {\r\n // vm.message1 = \"The value must be in range 0 to 100\";\r\n vm.message1 = \"Please Enter a ValidNumber\"\r\n vm.over.percentage = null;\r\n }\r\n }\r\n\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(vm.dt.getFullYear() + 50, vm.dt.getMonth(), vm.dt.getDate()),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // vm.project.EndDate= function (){\r\n // maxDate: new Date( today.getFullYear() + 50, today.getMonth(), today.getDate())\r\n\r\n // }\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.project.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0);\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n // vm.options = {\r\n // maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n\r\n // }\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //////////////////////////////\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('projectRejectionCtrl', projectRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function projectRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n vm.SaveRejection = function () {\r\n var objReject = {\r\n CompanyId: items.CompanyId,\r\n ProjectId: items.ProjectId,\r\n Status: items.Status,\r\n UserId:loggedUser.UserId,\r\n RejectionNotes: {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n \"RejectedOn\": \"\"\r\n }\r\n }\r\n \r\n projectCreationService.AddRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Project Rejection\");\r\n $uibModalInstance.close();\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('projectInitiationCtrl', projectInitiationCtrl);\r\n\r\n /** @ngInject */\r\n function projectInitiationCtrl($scope, $http, $rootScope, lodash, dialogs, $state, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n //////////////\r\n\r\n //// Draft All List\r\n\r\n function Init() {\r\n projectCreationService.GetAllDrafts(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n function Create() {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: true\r\n }\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row\r\n }\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n debugger;\r\n var data = {\r\n isEditing: true,\r\n StatesId: 2,\r\n project: row,\r\n isView: true\r\n };\r\n\r\n $state.go('projectCreation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.excel = function () {\r\n var test = [{\r\n Name: \"vignesh\",\r\n Id: \"1001\"\r\n },\r\n {\r\n Name: \"Karthick\",\r\n Id: \"1002\"\r\n },\r\n {\r\n Name: \"Tamil\",\r\n Id: \"1004\"\r\n }\r\n ]\r\n alasql('SELECT * INTO XLS(\"project.xls\",?) FROM ?', test);\r\n }\r\n\r\n vm.sendApproval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to Send Project For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n projectCreationService.removeProject(project.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Project Successfully', \"Project\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Project. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n\r\n }\r\n\r\n vm.RemoveProject = function (project) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n projectCreationService.removeProject(project.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Project Successfully', \"Project\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Project. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('IOCARateCtrl', IOCARateCtrl);\r\n\r\n /** @ngInject */\r\n function IOCARateCtrl($rootScope, IocaService, ProjectIocaService, projectCreationService, lodash, dialogs, $http, CountryService, CompanyService, LobMaterialService, AuthenticationService,\r\n RateofInputService\r\n ) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TypeOfCAList = [];\r\n vm.filter = {};\r\n vm.con = {};\r\n vm.rate = {};\r\n vm.rateHistory = rateHistory;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.getIocaRate = getIocaRate;\r\n vm.SaveIOCARate = SaveIOCARate;\r\n vm.updateRate = updateRate;\r\n vm.RemoveRate = RemoveRate;\r\n vm.IocaList = [];\r\n vm.ioca = {};\r\n\r\n $rootScope.isLogin = false;\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n CompanyService.getSubCompByCompId(companyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n function getIocaRate(prjId) {\r\n RateofInputService.GetIocaRate(prjId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaRateList = res.data;\r\n if (vm.IocaRateList.length <= 0) {\r\n dialogs.notify('No Data',\r\n 'No Ioca Rate Available for selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n getFocByPrjId(vm.rate.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Rate\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Rate\");\r\n });\r\n }\r\n \r\n function getProjectByCompany(CompanyId) {\r\n vm.rate.selectedProject = null;\r\n vm.ProjectList = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Project available selected Company', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.ioca.selectedFOC= null;\r\n vm.ioca.selectedCategory= null;\r\n vm.ioca.selectedSubCategory= null;\r\n vm.ioca.selectedTypeOfCA= null;\r\n vm.ioca.selectedSpecType= null;\r\n vm.ioca.selectedIOCA= null;\r\n vm.ProjectList=[];\r\n vm.IocaRateList=[];\r\n }\r\n\r\n function getFocByPrjId(prjId) {\r\n // clearFoc();\r\n if (prjId) {\r\n vm.ioca.selectedFOC = null;\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var isworkAlloc = true;\r\n ProjectIocaService.getAllProjectFoc(prjId, isworkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n else {\r\n vm.ioca.selectedFOC = null;\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n // clearCategory();\r\n if (CountryId && ProjectId && focId) {\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n }\r\n\r\n function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // clearSubcategory();\r\n if (ProjectId && CategoryId) {\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n // clearType();\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n }\r\n else {\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n }\r\n\r\n\r\n vm.clearSpec = function () {\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n function loadIocaList() {\r\n // clearIoca();\r\n if (vm.ioca.selectedSpecType) {\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n CountryId: vm.rate.selectedProject.CountryId,\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n CA_CategoryId: vm.ioca.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.ioca.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.ioca.selectedTypeOfCA.TypeId,\r\n SpecType: vm.ioca.selectedSpecType.Code,\r\n isworkAlloc: true\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n // var arr2 = res.data;\r\n // var arr1 = vm.IocaRateList;\r\n // Compare Two array\r\n // angular.forEach(arr1, function (value1, key1) {\r\n // angular.forEach(arr2, function (value2, key2) {\r\n // if (value1.ShortDescription === value2.ShortDescription) {\r\n // arr2.splice(key2, 1);\r\n // }\r\n // });\r\n // })\r\n // vm.IocaList = arr2;\r\n for (var i = 0; i < vm.IocaRateList.length; i++) {\r\n for (var j = 0; j < vm.IocaList.length; j++) {\r\n if ((vm.IocaList[j].Code == vm.IocaRateList[i].Code)) {\r\n findAndRemove(vm.IocaList, 'Code', vm.IocaList[j].Code)\r\n }\r\n }\r\n }\r\n\r\n if (vm.IocaList.length === 0) {\r\n $rootScope.showToaster('warning', 'IOCA,Already Added', \"Error!\");\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n\r\n }\r\n\r\n function findAndRemove(array, property, value) {\r\n array.forEach(function (result, index) {\r\n if (result[property] === value) {\r\n //Remove from array\r\n array.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n function SaveIOCARate() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n RefId: vm.ioca.selectedIOCA.Id,\r\n CurrentRate: vm.ioca.IOCARate,\r\n CreatedBy: $rootScope.userId\r\n }\r\n RateofInputService.AddIocaRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n vm.isFormOpen = false;\r\n clear();\r\n $rootScope.showToaster('success', res.data.Message, \"Ioca Rate of Input\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Ioca Rate of Input\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Ioca Rates of Input\", \"Ioca Rate of Input\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Ioca Rates of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n\r\n function updateRate(row) {\r\n var obj = {\r\n RateId: row.RateId,\r\n CurrentRate: row.CurrentRate,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n RateofInputService.UpdateRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Rate Of Input Update\");\r\n getIocaRate(vm.rate.selectedProject.ProjectId);\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Rate Of Input Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Rate\", \"Rate Of Input Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Rate Of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n function RemoveRate(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Rate Of Input', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n RateId: row.RateId,\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.DeleteRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Rate Of Input Deleted\");\r\n getIocaRate(vm.rate.selectedProject.ProjectId);\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Rate Of Input Deleted\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Deleted Rate Of Input\", \"Rate Of Input Deleted\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Deleted Rate Of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.rate.selectedCompany = null;\r\n vm.CompanyList = [];\r\n vm.rate.selectedProject = null;\r\n vm.ProjectList = [];\r\n Init();\r\n }\r\n\r\n function Cancel() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Cancel the Ioca Rate', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.rate.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.rate.selectedCompany = null;\r\n vm.CompanyList = [];\r\n Init();\r\n });\r\n }\r\n\r\n function clear() {\r\n vm.rate.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.rate.selectedCompany = null;\r\n vm.CompanyList = [];\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n Init();\r\n }\r\n\r\n function rateHistory(row) {\r\n vm.historyList = JSON.parse(row.RateHistory).Rates;\r\n if (vm.historyList == undefined || vm.historyList.length <= 0 || vm.historyList == null) {\r\n var confirm = dialogs.notify('No Data', 'No Histroy of Rate for Selected Item', { animation: true, size: 'sm' });\r\n }\r\n\r\n }\r\n\r\n vm.hideHistory = function () {\r\n vm.historyList = [];\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('ratesofInputCtrl', ratesofInputCtrl);\r\n\r\n /** @ngInject */\r\n function ratesofInputCtrl($rootScope, IocaService, ProjectIocaService, projectCreationService, $filter, lodash, dialogs, $http, CountryService, CompanyService, LobMaterialService, AuthenticationService,\r\n RateofInputService, MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, LabourTypeService, TypeOfCAService, LabourCategoryService, AttributeService, CategoryofCAService,\r\n SubCategoryofCAService, ConstantService, ItemOfMaterialService, LobMachineryService, MachinerySubCategoryService, IOMachineryService, TypeOfConsumableServices, MachineryTypeService, ConsumableCatagoryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.tab = 1;\r\n vm.IsViewTab = false;\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TypeOfCAList = [];\r\n vm.labour = {};\r\n vm.machinery = {};\r\n vm.material = {};\r\n vm.filter = {};\r\n vm.con = {};\r\n vm.getRates = getRates;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLabourRate = getLabourRate;\r\n vm.getMaterialRate = getMaterialRate;\r\n vm.getMachineryRate = getMachineryRate;\r\n vm.getConsumableRate = getConsumableRate;\r\n vm.getIocaRate = getIocaRate;\r\n vm.getUOM = getUOM;\r\n vm.getLabourTypeByLabourCategoryId = getLabourTypeByLabourCategoryId;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.getMatSubcategoryByCategoryId = getMatSubcategoryByCategoryId;\r\n vm.getMatTypeBySubCategoryId = getMatTypeBySubCategoryId;\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.LobItemMachinery = LobItemMachinery;\r\n vm.GetActiveConsumableTypeById = GetActiveConsumableTypeById;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIOMList = loadIOMList;\r\n vm.SaveIoca = SaveIoca;\r\n vm.SaveLabourRate = SaveLabourRate;\r\n vm.SaveMaterialRate = SaveMaterialRate;\r\n vm.SaveMachineryRate = SaveMachineryRate;\r\n vm.SaveConsumableRate = SaveConsumableRate;\r\n vm.SaveIOCARate = SaveIOCARate;\r\n vm.updateRate = updateRate;\r\n vm.rateHistory = rateHistory;\r\n vm.RemoveRate = RemoveRate;\r\n vm.IocaList = [];\r\n vm.ioca = {};\r\n\r\n $rootScope.isLogin = false;\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n CompanyService.getSubCompByCompId(companyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n\r\n function getProjectByCompany(CompanyId) {\r\n vm.IsViewTab = false;\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Project available selected Company', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n vm.IsViewTab = true;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.rate.selectedProject=null;\r\n vm.ProjectList= [];\r\n }\r\n\r\n // Labour\r\n function LoadLabourCategory() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n ActionBy: $rootScope.userId\r\n }\r\n\r\n RateofInputService.getLabourCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LabourCategoryList = res.data;\r\n if (vm.LabourCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.type.selectedLabourCategory.LabourCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function getLabourTypeByLabourCategoryId(LabrCategoryId) {\r\n\r\n if (LabrCategoryId != undefined) {\r\n var Arr = {\r\n \"LabrCategoryId\": vm.labour.selectedLabourCategory.LabrCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n RateofInputService.getLabourType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n var arr2 = res.data;\r\n var arr1 = vm.LabourRateList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.Labour === value2.LabourTypeName) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.LabourTypeList = arr2;\r\n //Load Labour Chart \r\n if (vm.LabourTypeList.length === 0) {\r\n $rootScope.showToaster('warning', 'Labor Type,Already Added', \"Error!\");\r\n }\r\n // vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n //// Materials\r\n\r\n function LoadMaterialLOB() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'LOB',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMaterialLOB(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n if (vm.LobMaterialList.length < 1) {\r\n dialogs.notify('Warning', 'No LOB available for ' + vm.rate.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n // LoadMaterialCountry();\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n //// Load All Country\r\n // function LoadMaterialCountry() {\r\n // var obj = {\r\n // ProjectId: vm.rate.selectedProject.ProjectId,\r\n // TableName: 'Country',\r\n // ActionBy: $rootScope.userId\r\n // }\r\n // RateofInputService.getMaterialCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n //// Load All Material Category By Lob \r\n\r\n function getCategoryofMaterial() {\r\n if (vm.material.selectedLobMaterial != undefined) {\r\n var Arr = {\r\n \"LOB_MatId\": vm.material.selectedLobMaterial.LOB_MatId,\r\n \"CountryId\": vm.rate.selectedProject.CountryId,\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n RateofInputService.getMaterialCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryofMaterialList = res.data;\r\n // console.log(JSON.stringify(vm.CategoryofMaterialList));\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n }\r\n else {\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n }\r\n\r\n\r\n }\r\n //// Load All Material SubCategory By Lob \r\n\r\n function getMatSubcategoryByCategoryId() {\r\n if (vm.material.selectedMaterialCategory != undefined) {\r\n var Arr = {\r\n \"MaterialCategoryId\": vm.material.selectedMaterialCategory.MaterialCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'SubCategory',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n RateofInputService.getMaterialSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n }\r\n else {\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n }\r\n\r\n }\r\n\r\n //// Load All Type of Material By Lob \r\n function getMatTypeBySubCategoryId() {\r\n if (vm.material.selectedMaterialSubCategory != undefined) {\r\n var Arr = {\r\n \"MaterialSubCategoryId\": vm.material.selectedMaterialSubCategory.MaterialSubCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n RateofInputService.getMaterialType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialType\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialType\");\r\n });\r\n }\r\n else {\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n }\r\n }\r\n\r\n function loadIOMList() {\r\n if (vm.material.selectedMaterialType != undefined) {\r\n var Arr = {\r\n \"MaterialTypeId\": vm.material.selectedMaterialType.MaterialTypeId\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'IOM',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n RateofInputService.getMaterialIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n var arr2 = res.data;\r\n var arr1 = vm.MaterialRateList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.ShortDescription === value2.ShortDescription) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.IOMList = arr2;\r\n if (vm.IOMList.length === 0) {\r\n $rootScope.showToaster('warning', 'Item of Material,Already Added', \"Error!\");\r\n }\r\n // vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n }\r\n\r\n }\r\n\r\n //// Load All Line Of Business \r\n\r\n function LoadMachineryLob() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'LOB',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMachineryLOB(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n LoadMachineryCountry();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n // function LoadMachineryCountry() {\r\n // var obj = {\r\n // ProjectId: vm.rate.selectedProject.ProjectId,\r\n // TableName: 'Country',\r\n // ActionBy: $rootScope.userId\r\n // }\r\n // RateofInputService.getMachineryCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.MachineryCountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n //// Load All Category By LOB\r\n\r\n function getCategoryofMachinery() {\r\n\r\n if (vm.machinery.selectedLOB != undefined) {\r\n var Arr = {\r\n \"LOB_MachId\": vm.machinery.selectedLOB.LOB_MachId,\r\n \"CountryId\": vm.rate.selectedProject.CountryId,\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedMachinerySubCategory = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n RateofInputService.getMachineryCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.machinerycategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = true;\r\n } else {\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n }\r\n else {\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedMachinerySubCategory = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n }\r\n\r\n }\r\n\r\n function getMachinerySubCategoryListByMachnieryCategoryId() {\r\n if (vm.machinery.selectedMachineryCategory != undefined) {\r\n var Arr = {\r\n \"COM_Id\": vm.machinery.selectedMachineryCategory.COM_Id,\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'SubCategory',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.machinery.selectedMachinerySubCategory = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n RateofInputService.getMachinerySubCategory(obj).then(function (res) {\r\n vm.selectedSubCategory = undefined;\r\n vm.selectedSubCategory = \"\";\r\n vm.selectedTypeOfMachinery = undefined;\r\n vm.selectedTypeOfMachinery = \"\";\r\n if (res.status === 200) {\r\n vm.machinerySubCategoryList = res.data;\r\n if (vm.machinerySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery SubCategory available for ' + vm.machinery.selectedmachinery, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n vm.selectedMachineryType = \"\";\r\n } else {\r\n vm.selectsubCategory = true;\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n }\r\n else {\r\n vm.machinery.selectedMachinerySubCategory = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n }\r\n\r\n }\r\n\r\n function getMachineryTypeListByMachinerySubcategoryId() {\r\n if (vm.machinery.selectedMachinerySubCategory != undefined) {\r\n var Arr = {\r\n \"MachSubCategoryId\": vm.machinery.selectedMachinerySubCategory.MachSubCategoryId,\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n RateofInputService.getMachineryType(obj).then(function (res) {\r\n vm.selectedTypeOfMachinery = undefined;\r\n vm.selectedTypeOfMachinery = \"\";\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n if (vm.MachineryTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Type available for ' + vm.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.TypeList = false;\r\n vm.form = false;\r\n } else {\r\n vm.TypeList = true;\r\n vm.form = true;\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n }\r\n\r\n }\r\n\r\n function LobItemMachinery() {\r\n if (vm.machinery.selectedMachineryType != undefined) {\r\n debugger;\r\n var Arr = {\r\n \"MachTypeId\": vm.machinery.selectedMachineryType.MachTypeId,\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'IOMH',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n RateofInputService.getMachineryIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n var arr2 = res.data;\r\n var arr1 = vm.MachineryRateList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.ShortDescription === value2.ShortDescription) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.IOMHMachineryList = arr2;\r\n for (var i in vm.IOMHMachineryList) {\r\n vm.IOMHMachineryList[i].UOMList = JSON.parse(vm.IOMHMachineryList[i].UOMList);\r\n }\r\n if (vm.IOMHMachineryList.length === 0) {\r\n $rootScope.showToaster('warning', 'Item of Machinery,Already Added', \"Error!\");\r\n }\r\n // vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.selectedMachineryUOM = undefined;\r\n vm.machinery.machineryRate = \"\";\r\n }\r\n\r\n }\r\n function getUOM() {\r\n vm.UOMList = vm.machinery.selectedMachineryItem.UOMList.UomList;\r\n }\r\n\r\n //Consumable Code Start\r\n //Get All Active Consumable List\r\n function LoadConsumableCategory() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getConsumableCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableCategoryList = res.data;\r\n // if (vm.ConsumableCategoryList.length < 1) {\r\n // dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.con.selectedConsumableCategory.ConsumableCategory, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n //Get All Active Consumable Type List\r\n\r\n function GetActiveConsumableTypeById() {\r\n if (vm.con.selectedConsumableCategory != undefined) {\r\n var Arr = {\r\n \"ConsumableCategoryId\": vm.con.selectedConsumableCategory.ConsumableCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n vm.con.ConsumableRate = \"\";\r\n RateofInputService.getConsumableType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n var arr2 = res.data;\r\n var arr1 = vm.ConsumableRateList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.Consumable === value2.TypeName) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.TypeOfCAByCategoryList = arr2;\r\n if (vm.TypeOfCAByCategoryList.length === 0) {\r\n $rootScope.showToaster('warning', 'Consumable Type,Already Added', \"Error!\");\r\n }\r\n // vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n\r\n }\r\n\r\n }\r\n\r\n ///////////////// IOCA //////////////////\r\n\r\n function getFocByPrjId(prjId) {\r\n // clearFoc();\r\n if (prjId) {\r\n vm.ioca.selectedFOC = null;\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var isworkAlloc = true;\r\n ProjectIocaService.getAllProjectFoc(prjId, isworkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n else {\r\n vm.ioca.selectedFOC = null;\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n // clearCategory();\r\n if (CountryId && ProjectId && focId) {\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n }\r\n\r\n function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // clearSubcategory();\r\n if (ProjectId && CategoryId) {\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n // clearType();\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n }\r\n else {\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n }\r\n\r\n\r\n vm.clearSpec = function () {\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n function loadIocaList() {\r\n // clearIoca();\r\n if (vm.ioca.selectedSpecType) {\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n var obj = {\r\n CountryId: vm.rate.selectedProject.CountryId,\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n CA_CategoryId: vm.ioca.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.ioca.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.ioca.selectedTypeOfCA.TypeId,\r\n SpecType: vm.ioca.selectedSpecType.Code,\r\n isworkAlloc: true\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n var arr2 = res.data;\r\n var arr1 = vm.IocaRateList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.ShortDescription === value2.ShortDescription) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.IocaList = arr2;\r\n if (vm.IocaList.length === 0) {\r\n $rootScope.showToaster('warning', 'IOCA,Already Added', \"Error!\");\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n\r\n }\r\n\r\n /////////////////////////////////\r\n\r\n function getRates(ProjectId) {\r\n if (vm.tab === 1) {\r\n getLabourRate();\r\n LoadLabourCategory();\r\n }\r\n\r\n if (vm.tab === 2) {\r\n getMaterialRate();\r\n LoadMaterialLOB();\r\n }\r\n\r\n if (vm.tab === 3) {\r\n getMachineryRate();\r\n LoadMachineryLob();\r\n }\r\n\r\n if (vm.tab === 4) {\r\n getConsumableRate();\r\n LoadConsumableCategory();\r\n }\r\n if (vm.tab === 5) {\r\n getIocaRate();\r\n getFocByPrjId(ProjectId);\r\n }\r\n getFocByPrjId(ProjectId);\r\n vm.CancelLabor();\r\n vm.CancelMaterial();\r\n vm.CancelMachinery();\r\n vm.CancelConsumable();\r\n }\r\n\r\n vm.CancelLabor = function () {\r\n vm.labour.selectedLabourCategory = null;\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n vm.labour.LabourRate = \"\";\r\n }\r\n\r\n vm.ClearLaborFR = function () {\r\n vm.labour.LabourRate = \"\";\r\n }\r\n\r\n vm.CancelMaterial = function () {\r\n vm.material.selectedLobMaterial = null;\r\n // vm.rate.selectedProject = null;\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedAttributes = null;\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialRate = \"\";\r\n }\r\n\r\n vm.ClearMaterialFR = function () {\r\n vm.material.MaterialRate = \"\";\r\n }\r\n\r\n vm.CancelMachinery = function () {\r\n vm.machinery.selectedLOB = null;\r\n // vm.machinery.selectedCountry = null;\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedMachinerySubCategory = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedAttributes = null;\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHMachineryList = [];\r\n vm.machinery.machineryRate = \"\";\r\n }\r\n\r\n vm.ClearMachineryFR = function () {\r\n vm.machinery.machineryRate = \"\";\r\n }\r\n\r\n vm.CancelConsumable = function () {\r\n vm.con.selectedConsumableCategory = null;\r\n vm.con.selectedTypeOfCA = null;\r\n vm.con.ConsumableRate = \"\";\r\n }\r\n\r\n vm.cancelIoca = function () {\r\n vm.ioca.selectedFOC = null;\r\n vm.ioca.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ioca.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ioca.selectedTypeOfCA = null;\r\n vm.TypeofCAList = [];\r\n vm.ioca.selectedSpecType = null;\r\n vm.ioca.selectedIOCA = null;\r\n vm.ioca.IOCARate = \"\";\r\n }\r\n\r\n vm.ClearConsumableFR = function () {\r\n vm.con.ConsumableRate = \"\";\r\n }\r\n ///// Get Labour Constant\r\n\r\n function getLabourRate() {\r\n RateofInputService.GetLabourRate(vm.rate.selectedProject.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LabourRateList = res.data;\r\n vm.tab = 1;\r\n LoadLabourCategory();\r\n vm.data =[];vm.labels=[];vm.historyList = [];\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Rate\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Rate\");\r\n });\r\n }\r\n\r\n //// Get Material Constant\r\n\r\n function getMaterialRate() {\r\n \r\n RateofInputService.GetMaterialRate(vm.rate.selectedProject.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialRateList = res.data;\r\n vm.tab = 2\r\n vm.isLoading = false;\r\n LoadMaterialLOB();\r\n vm.data =[];vm.labels=[];vm.historyList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Rate\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Rate\");\r\n\r\n });\r\n }\r\n\r\n //// Get Machinery Constant\r\n\r\n function getMachineryRate() {\r\n RateofInputService.GetMachineryRate(vm.rate.selectedProject.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachineryRateList = res.data;\r\n vm.tab = 3;\r\n LoadMachineryLob();\r\n vm.data =[];vm.labels=[];vm.historyList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Rate\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Rate\");\r\n });\r\n }\r\n\r\n ///// Get Consumable Constant\r\n\r\n function getConsumableRate() {\r\n RateofInputService.GetConsumableRate(vm.rate.selectedProject.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableRateList = res.data;\r\n vm.tab = 4;\r\n vm.isLoading = false;\r\n LoadConsumableCategory();\r\n vm.data =[];vm.labels=[];vm.historyList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Rate\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Rate\");\r\n });\r\n }\r\n\r\n function getIocaRate() {\r\n RateofInputService.GetIocaRate(vm.rate.selectedProject.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaRateList = res.data;\r\n vm.tab = 5;\r\n vm.isLoading = false;\r\n getFocByPrjId(vm.rate.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Rate\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Rate\");\r\n });\r\n }\r\n\r\n function SaveIoca(ioca) {\r\n vm.getSubCategoryByCategoryId = function (selectedCategory) {\r\n selectedCategory.CategoryId = vm.selectedCategory.CategoryId;\r\n }\r\n ioca.CategoryId = vm.ioca.selectedCategory.CategoryId;\r\n ioca.SubCategoryId = vm.ioca.selectedSubCategory.SubCategoryId;\r\n ioca.TypeOfCaId = vm.ioca.selectedTypeOfCa.TypeOfCaId;\r\n ioca.SpecType = vm.ioca.selected\r\n\r\n if (!vm.isEditing) {\r\n ConstantService.AddIoca(ioca).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"IOCA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n } else {\r\n ConstantService.EditIoca(type).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"IOCA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n }\r\n }\r\n\r\n ///// Save Labour Constant\r\n\r\n function SaveLabourRate() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n RefId: vm.labour.selectedLabourType.LabrTypeId,\r\n CurrentRate: vm.labour.LabourRate,\r\n CreatedBy: $rootScope.userId\r\n }\r\n RateofInputService.AddLabourRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Labour Rate of Input\");\r\n getLabourRate();\r\n vm.CancelLabor();\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Labour Rate of Input\");\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Labour Labour Rate of Input\", \"Labour Labour Rate of Input\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Labour Labour Rate of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Material Constant\r\n\r\n function SaveMaterialRate() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n RefId: vm.material.selectedIOCA.Id,\r\n CurrentRate: vm.material.MaterialRate,\r\n CreatedBy: $rootScope.userId\r\n }\r\n RateofInputService.AddMaterialRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Material Rate of Input\");\r\n getMaterialRate();\r\n vm.CancelMaterial();\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Material Rate of Input\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Rate of Input\", \"Material Rate of Input\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Material Rate of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Machinery Constant\r\n\r\n function SaveMachineryRate() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n RefId: vm.machinery.selectedMachineryItem.Id,\r\n UOMId: vm.machinery.selectedMachineryUOM.UOM_Id,\r\n CurrentRate: vm.machinery.machineryRate,\r\n CreatedBy: $rootScope.userId\r\n }\r\n RateofInputService.AddMachineryRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Machinery Rate of Input\");\r\n getMachineryRate();\r\n vm.CancelMachinery();\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Machinery Rate of Input\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Machinery Rate of Input\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Machinery Rate of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Consumable Rate\r\n\r\n function SaveConsumableRate() {\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n RefId: vm.con.selectedTypeOfCA.ConsumeTypeId,\r\n CurrentRate: vm.con.ConsumableRate,\r\n CreatedBy: $rootScope.userId\r\n }\r\n RateofInputService.AddConsumableRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Consumable Rate of Input\");\r\n getConsumableRate();\r\n vm.CancelConsumable();\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Consumable Rate of Input\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Consumable Rate of Input\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Consumable Rate of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save IOCA \r\n\r\n function SaveIOCARate() {\r\n\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n RefId: vm.ioca.selectedIOCA.Id,\r\n CurrentRate: vm.ioca.IOCARate,\r\n CreatedBy: $rootScope.userId\r\n }\r\n RateofInputService.AddIocaRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Ioca Rate of Input\");\r\n getIocaRate();\r\n // vm.CancelConsumable();\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Ioca Rate of Input\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Ioca Rates of Input\", \"Ioca Rate of Input\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Insert Ioca Rates of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n\r\n\r\n function updateRate(row) {\r\n var obj = {\r\n RateId: row.RateId,\r\n CurrentRate: row.CurrentRate,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n RateofInputService.UpdateRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Rate Of Input Update\");\r\n switch (row.RateFor) {\r\n case 1:\r\n getLabourRate();\r\n break;\r\n\r\n case 2:\r\n getMaterialRate();\r\n break;\r\n\r\n case 3:\r\n getMachineryRate();\r\n break;\r\n\r\n case 4:\r\n getConsumableRate();\r\n break;\r\n case 5:\r\n getIocaRate();\r\n break;\r\n }\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Rate Of Input Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Rate\", \"Rate Of Input Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Rate Of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n function RemoveRate(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Rate Of Input', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n RateId: row.RateId,\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.DeleteRate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Rate Of Input Deleted\");\r\n switch (row.RateFor) {\r\n case 1:\r\n getLabourRate();\r\n break;\r\n\r\n case 2:\r\n getMaterialRate();\r\n break;\r\n\r\n case 3:\r\n getMachineryRate();\r\n break;\r\n\r\n case 4:\r\n getConsumableRate();\r\n break;\r\n case 5:\r\n getIocaRate();\r\n break;\r\n }\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Rate Of Input Deleted\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Deleted Rate Of Input\", \"Rate Of Input Deleted\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Deleted Rate Of Input\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function rateHistory(row) {\r\n vm.historyList=[];\r\n vm.historyList = JSON.parse(row.RateHistory).Rates;\r\n if (vm.historyList == undefined || vm.historyList.length <= 0 || vm.historyList == null) {\r\n var confirm = dialogs.notify('No Data', 'No Histroy of Rate for Selected Item', { animation: true, size: 'sm' });\r\n }\r\n var month = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\r\n //vm.labels = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\r\n vm.data =[];vm.labels=[];\r\n for (var i in vm.historyList) {\r\n vm.data.push(vm.historyList[i].CurrentRate);\r\n vm.getdate = $filter('date')(vm.historyList[i].FromDate, \"MM\");\r\n vm.labels.push(month[parseInt(vm.getdate)-1]);\r\n }\r\n vm.series = row.Labour;\r\n vm.FirstName =row.FirstName;\r\n\r\n vm.onClick = function (points, evt) {\r\n console.log(points, evt);\r\n };\r\n vm.datasetOverride = [{ yAxisID: 'y-axis-1' }];\r\n vm.options = {\r\n scales: {\r\n yAxes: [\r\n {\r\n id: 'y-axis-1',\r\n type: 'linear',\r\n display: true,\r\n position: 'left'\r\n }\r\n ]\r\n }\r\n };\r\n\r\n }\r\n\r\n vm.hideHistory = function () {\r\n vm.historyList = [];\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('SelectIocaCtrl', SelectIocaCtrl);\r\n\r\n /** @ngInject */\r\n function SelectIocaCtrl($rootScope, $scope, $http, CountryService, CategoryofCAService, SubCategoryofCAService, lodash, dialogs, FieldofConstructionService,\r\n TypeOfCAService, IocaService, CompanyService, VariableService, ICANTypicalDescription, AuthenticationService, projectCreationService, ProjectIocaService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // Local variables\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n\r\n // View Model\r\n vm.selectIocaFromOptions = [];\r\n vm.isLoading = false;\r\n vm.isAddingIoca = false;\r\n vm.IocaToAdd = [];\r\n vm.Description = '2';\r\n // Methods\r\n vm.getCategoryByCountryId = getCategoryByCountryId;\r\n vm.getSubCategoryCAListByCategoryId = getSubCategoryCAListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getAllIocaForProject = getAllIocaForProject;\r\n vm.getAllCombinations = getAllCombinations;\r\n vm.toggleActive = toggleActive;\r\n vm.moveSelectedToIocaToAddList = moveSelectedToIocaToAddList;\r\n vm.moveAllToIocaToAddList = moveAllToIocaToAddList;\r\n vm.moveSelectedToIocaLibrary = moveSelectedToIocaLibrary;\r\n vm.moveAllToIocaLibrary = moveAllToIocaLibrary;\r\n vm.saveSelectedIoca = saveSelectedIoca;\r\n vm.filterVariables = filterVariables;\r\n vm.getSelectedCombination = getSelectedCombination;\r\n // vm.loadGrid = loadGrid ;\r\n vm.removeIoca = removeIoca;\r\n vm.createViewModel = createViewModel;\r\n vm.iocaFromSelectionChanged = iocaFromSelectionChanged;\r\n vm.cancel = cancel;\r\n vm.checkCombinationExist = checkCombinationExist;\r\n vm.selectVariable = selectVariable;\r\n vm.editDescription = editDescription;\r\n\r\n vm.GetTypeofCAByProjectForSelectIOCA = GetTypeofCAByProjectForSelectIOCA;\r\n\r\n ///\r\n\r\n\r\n ////\r\n\r\n // vm.variable2= variable2;\r\n vm.clearFilter = clearFilter;\r\n var SearchTxt = '';\r\n init();\r\n ////////////////\r\n\r\n function init() {\r\n\r\n vm.SpecTypeList = [{ SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }]\r\n vm.selectIocaFromOptions = [{ id: 1, option: \"Library\" }, { id: 2, option: \"Project\" }];\r\n //vm.selecteIocaOption = { id: 1, option: \"Library\" };\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function getCategoryByCountryId(FieldofConstructionId, CountryId) {\r\n debugger\r\n vm.CategoryList = [];\r\n vm.selectedCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.TypeOfCA_List = [];\r\n vm.selectedType = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category available for ' + vm.selectedCountry.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category\");\r\n });\r\n } else {\r\n vm.CategoryList = [];\r\n vm.selectedCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.TypeOfCA_List = [];\r\n vm.selectedType = null;\r\n vm.selectedCountry= null;\r\n vm.selectedSpecType= null;\r\n }\r\n }\r\n\r\n function getSubCategoryCAListByCategoryId(CategoryId) {\r\n if (CategoryId !== undefined) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.SubCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.TypeOfCA_List = [];\r\n vm.selectedType = null;\r\n }\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(subCategoryId) {\r\n if (subCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(subCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCA_List = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.TypeOfCA_List = [];\r\n vm.selectedType = null;\r\n }\r\n }\r\n\r\n function loadIocaList() {\r\n debugger;\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedType.CA_TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n }\r\n IocaService.getAllIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n lodash.forEach(vm.IocaList, function (e) {\r\n e.Status = true;\r\n })\r\n if (!vm.IocaList.length > 0)\r\n $rootScope.showToaster('info', 'There is no IOCA available selected Project', \"No Data\");\r\n else\r\n removeExistingIocaList();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n function getProjectByCompanyId(companyId, getProjectFor) {\r\n if (companyId) {\r\n projectCreationService.getAllApproved(companyId).then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n if (getProjectFor === 1) {\r\n vm.ProjectList = res.data\r\n vm.selectedProject = null;\r\n } else {\r\n vm.SrcProjectList = res.data;\r\n vm.selectedSrcProject = null;\r\n vm.selectedSrcType = null;\r\n vm.selectedSrcSpecType = null;\r\n\r\n\r\n }\r\n\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n } else if (vm.SrcProjectList < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.selectedSrcCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n } else {\r\n vm.ProjectList = [];\r\n vm.SrcProjectList = [];\r\n vm.selectedProject= null;\r\n vm.selectIocaFromOptions= [];\r\n vm.selecteIocaOption= null; \r\n }\r\n }\r\n\r\n function GetTypeofCAByProjectForSelectIOCA(projectId) {\r\n if (projectId !== undefined) {\r\n vm.selectedSrcType = null;\r\n vm.SrcTypeOfCA_List = [];\r\n vm.selectedSrcSpecType = null;\r\n ProjectIocaService.GetTypeofCAByProjectForSelectIOCA(projectId, loggedUserDtl.UserId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SrcTypeOfCA_List = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.selectedSrcType = null;\r\n vm.SrcTypeOfCA_List = [];\r\n vm.selectedSrcSpecType = null;\r\n }\r\n }\r\n\r\n function getAllIocaForProject(projectId, getIocaFor) {\r\n debugger;\r\n vm.isLoading = true;\r\n if (projectId) {\r\n if (getIocaFor === 1) {\r\n vm.isAddingIoca = false;\r\n vm.selecteIocaOption = null;\r\n }\r\n var obj = {\r\n projectId: projectId,\r\n TypeId: (vm.selectedSrcType != undefined) ? vm.selectedSrcType.CA_TypeId : 0,\r\n SpecType: (vm.selectedSrcSpecType != undefined) ? vm.selectedSrcSpecType.Code : null\r\n\r\n }\r\n ProjectIocaService.getAllProjectIoca(obj).then(function (res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n if (getIocaFor === 1) {\r\n debugger;\r\n vm.SelectedIocaList = res.data\r\n console.log(vm.SelectedIocaList)\r\n vm.isAddingIoca = true;\r\n } else {\r\n vm.IocaList = res.data;\r\n lodash.forEach(vm.IocaList, function (e) {\r\n e.Status = true;\r\n })\r\n if (!vm.IocaList.length > 0)\r\n $rootScope.showToaster('info', 'There is no IOCA available selected Project', \"No Data\");\r\n else\r\n removeExistingIocaList()\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) { });\r\n } else {\r\n vm.selecteIocaOption = null;\r\n vm.isAddingIoca = false;\r\n vm.isLoading = false;\r\n }\r\n }\r\n //changes\r\n\r\n\r\n // }\r\n function clearFilter() {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n vm.filter = {};\r\n vm.combinations = vm.rawCombinations;\r\n vm.isDoc = false;\r\n GetDescription();\r\n createViewModel();\r\n vm.LongDescription = null;\r\n SearchTxt = '';\r\n debugger;\r\n vm.IocaToAdd = [];\r\n loadIocaList();\r\n\r\n\r\n }\r\n function checkCombinationExist() {\r\n debugger;\r\n if (lodash.keys(vm.filter).length > 0) {\r\n var obj = {\r\n \"CA_CategoryId\": vm.selectedCategory.CategoryId,\r\n \"CA_SubCategoryId\": vm.selectedSubCategory.SubCategoryId,\r\n \"TypeOfCAId\": vm.selectedType.CA_TypeId,\r\n \"Properties\": getSelectedCombination(),\r\n \"SpecType\": vm.selectedSpecType.Code\r\n }\r\n\r\n IocaService.checkCombinationExist(obj).then(function (res) {\r\n if (res.status == 200) {\r\n if (!res.data) {\r\n vm.isFormOpen = true;\r\n vm.isCombinationVerified = true;\r\n constuctLongDescription();\r\n } else {\r\n $rootScope.showToaster('error', 'IOCA already exist with given combination');\r\n }\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n }\r\n }, function (err) {\r\n\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', 'Please select atleast one variable');\r\n }\r\n }\r\n\r\n function selectVariable(attribute, variable) {\r\n debugger;\r\n\r\n // vm.selectedattribute =attribute;\r\n // vm.Selectedvariable = variable;\r\n vm.isCombinationVerified = false;\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n\r\n\r\n attribute.selectedVariable = variable.VariableName;\r\n\r\n // SearchTxt = SearchTxt + ' ' + attribute.selectedVariable;\r\n\r\n // if (variable.IsSelected) {\r\n // vm.description = angular.copy(SearchTxt);\r\n // }\r\n // else {\r\n // vm.Same = angular.copy(vm.Same);\r\n // }\r\n\r\n filterVariables();\r\n }\r\n\r\n\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributeName] = attribute.selectedVariable;\r\n console.log(JSON.stringify(vm.filter))\r\n });\r\n\r\n FilterIOCA();\r\n vm.combinations = lodash.filter(vm.combinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributeName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function FilterIOCA() {\r\n\r\n console.log(vm.filter)\r\n\r\n var tempFilter = [];\r\n for (var key in vm.filter) {\r\n if (vm.filter.hasOwnProperty(key)) {\r\n tempFilter.push({\r\n key: key,\r\n data: vm.filter[key]\r\n })\r\n }\r\n }\r\n\r\n console.log(tempFilter);\r\n\r\n lodash.forEach(vm.IocaList, function (e) {\r\n e.tempProperties = [];\r\n })\r\n\r\n console.log(vm.IocaList[0])\r\n\r\n lodash.forEach(vm.IocaList, function (e) {\r\n for (var key in e.Properties) {\r\n if (e.Properties.hasOwnProperty(key)) {\r\n e.tempProperties.push({\r\n key: key,\r\n data: e.Properties[key]\r\n })\r\n }\r\n }\r\n })\r\n\r\n console.log(vm.IocaList[0])\r\n\r\n lodash.forEach(vm.IocaList, function (e) {\r\n var result = [];\r\n lodash.forEach(e.tempProperties, function (prop) {\r\n lodash.forEach(tempFilter, function (temp) {\r\n if (prop.key === temp.key && prop.data === temp.data) {\r\n result.push(prop);\r\n }\r\n });\r\n })\r\n if (result.length === tempFilter.length) {\r\n e.Status = true\r\n }\r\n else {\r\n e.Status = false\r\n }\r\n });\r\n\r\n\r\n\r\n vm.IocaToAdd = [];\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a],\r\n AttributeCode: \"##A\" + [parseInt(a) + 1] + \"##\",\r\n VariableList: []\r\n }\r\n for (var c in vm.combinations) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.combinations[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.combinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n\r\n\r\n function getSelectedCombination() {\r\n var combination = {};\r\n\r\n for (var attribute in vm.AttributeList) {\r\n if (vm.AttributeList[attribute].VariableList[0].IsSelected)\r\n combination[vm.AttributeList[attribute].AttributeName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n else\r\n combination[vm.AttributeList[attribute].AttributeName] = '';\r\n }\r\n return combination;\r\n }\r\n\r\n\r\n\r\n function getAllCombinations() {\r\n debugger;\r\n SearchTxt = 'null';\r\n var obj = {\r\n // CA_CategoryId: vm.selectedCategory.CategoryId,\r\n // CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n // TypeOfCAId: vm.selectedType.CA_TypeId,\r\n // Code: vm.selectedSpecType.Code,\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedType.CA_TypeId,\r\n Code: vm.selectedSpecType.Code,\r\n }\r\n console.log(obj);\r\n VariableService.getAllCombinations(obj).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.isAdding = true;\r\n if (res.data) {\r\n vm.rawCombinations = angular.copy(res.data.Combinations);\r\n vm.combinations = res.data.Combinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n createViewModel();\r\n\r\n if (vm.AttributeList.length === 0) {\r\n vm.isAdding = false;\r\n $rootScope.showToaster('warning', 'Type has no attribute', \"Warning!\");\r\n }\r\n GetDescription()\r\n\r\n } else {\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n });\r\n }\r\n function GetDescription() {\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedType.CA_TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n }\r\n ICANTypicalDescription.GetDescription(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data;\r\n if (vm.DescriptionList) {\r\n vm.ScopeList = JSON.parse(vm.DescriptionList.Scope)\r\n vm.contractorScope = angular.copy(vm.ScopeList)\r\n vm.LongDes = vm.contractorScope.TypicalDes\r\n }\r\n else {\r\n vm.LongDes = ''\r\n vm.Des = {\r\n \"L\": '',\r\n \"C1\": '',\r\n \"C2\": '',\r\n \"C3\": '',\r\n \"C4\": '',\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n //End\r\n\r\n function toggleActive(ioca) {\r\n ioca.isSelected = !ioca.isSelected;\r\n }\r\n\r\n function moveSelectedToIocaToAddList() {\r\n // get selected Ioca\r\n var selectedIoca = lodash.filter(vm.IocaList, function (ioca) { return ioca.isSelected; })\r\n // remove then from Library\r\n lodash.pullAll(vm.IocaList, selectedIoca);\r\n // Add them to the Ioca list to add\r\n lodash.forEach(selectedIoca, function (ioca) {\r\n ioca.isSelected = false;\r\n vm.IocaToAdd.push(ioca);\r\n })\r\n }\r\n\r\n function moveAllToIocaToAddList() {\r\n vm.IocaToAdd = [];\r\n // move ioca from library to iocaToAdd reset isSelected\r\n lodash.forEach(vm.IocaList, function (ioca) {\r\n if (ioca.Status) {\r\n ioca.isSelected = false;\r\n vm.IocaToAdd.push(angular.copy(ioca));\r\n }\r\n })\r\n // empty library\r\n lodash.forEach(vm.IocaList, function (e) {\r\n e.Status = false;\r\n })\r\n //vm.IocaList = [];\r\n }\r\n\r\n function moveSelectedToIocaLibrary() {\r\n // get selected Ioca\r\n var selectedIoca = lodash.filter(vm.IocaToAdd, function (ioca) { return ioca.isSelected; })\r\n // remove then from iocaToAdd list\r\n lodash.pullAll(vm.IocaToAdd, selectedIoca);\r\n // Add them to the library\r\n lodash.forEach(selectedIoca, function (ioca) {\r\n ioca.isSelected = false;\r\n vm.IocaList.push(ioca);\r\n })\r\n }\r\n\r\n function moveAllToIocaLibrary() {\r\n vm.IocaList = [];\r\n // move ioca from iocaToAdd to library and reset isSelected\r\n lodash.forEach(vm.IocaToAdd, function (ioca) {\r\n if (ioca.Status) {\r\n ioca.isSelected = false;\r\n vm.IocaList.push(angular.copy(ioca));\r\n }\r\n })\r\n // empty iocaToAdd list \r\n vm.IocaToAdd = [];\r\n }\r\n\r\n function saveSelectedIoca() {\r\n debugger;\r\n var iocaToSave = [];\r\n lodash.forEach(vm.IocaToAdd, function (ioca) {\r\n if (vm.selecteIocaOption.id === 1) {\r\n var iocaUniqueKeys = {\r\n CountryId: vm.selectedCountry.CountryId,\r\n CategoryId: vm.selectedCategory.CategoryId,\r\n SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeId: vm.selectedType.CA_TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n UnitId: ioca.UnitId,\r\n UnitName: ioca.UnitName,\r\n Code: ioca.Code,\r\n UOM_ParametersId: ioca.UOM_ParametersId\r\n }\r\n } else if (vm.selecteIocaOption.id === 2) {\r\n var iocaUniqueKeys = {\r\n CountryId: ioca.CountryId,\r\n CategoryId: ioca.CA_CategoryId,\r\n SubCategoryId: ioca.CA_SubCategoryId,\r\n TypeId: ioca.CA_TypeId,\r\n SpecType: ioca.SpecType\r\n }\r\n }\r\n iocaToSave.push({\r\n ProjectId: vm.selectedProject.ProjectId,\r\n IOCA_Id: ioca.Id,\r\n // IOCA_Description: ioca.LongDescription,\r\n // IOCA_ShortDescription: ioca.ShortDescription,\r\n IOCA_UniqueKeys: JSON.stringify(iocaUniqueKeys),\r\n AddedBy: loggedUserDtl.UserId\r\n });\r\n })\r\n var obj = {\r\n IocaList: iocaToSave\r\n }\r\n ProjectIocaService.insertManyProjectIoca(obj).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'Selected Ioca added successfully', \"Success\");\r\n getAllIocaForProject(vm.selectedProject.ProjectId, 1);\r\n iocaFromSelectionChanged();\r\n vm.isAddingIoca = false;\r\n vm.isSelectIoca = false;\r\n vm.selecteIocaOption = null;\r\n vm.IocaToAdd = [];\r\n vm.IocaList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n });\r\n }\r\n\r\n function removeIoca(iocaId) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n ProjectIocaService.removeProjectIocaById(vm.selectedProject.ProjectId, iocaId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'Ioca deleted successfully', \"Success\");\r\n getAllIocaForProject(vm.selectedProject.ProjectId, 1);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Error!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n });\r\n })\r\n }\r\n\r\n function iocaFromSelectionChanged() {\r\n vm.selectedCountry = null;\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeOfCA_List = [];\r\n vm.selectedSpecType = null;\r\n vm.selectedSrcCompany = null;\r\n vm.SrcProjectList = [];\r\n vm.selectedSrcProject = null;\r\n vm.selectedSrcType = null;\r\n vm.selectedSrcSpecType = null;\r\n vm.SrcTypeOfCA_List = [];\r\n }\r\n\r\n function cancel() {\r\n vm.isAddingIoca = false;\r\n vm.selecteIocaOption = null\r\n }\r\n\r\n function removeExistingIocaList() {\r\n\r\n\r\n for (var i = vm.IocaList.length - 1; i >= 0; i--) {\r\n for (var j = 0; j < vm.SelectedIocaList.length; j++) {\r\n if (vm.IocaList[i] && (vm.IocaList[i].Id === vm.SelectedIocaList[j].Id)) {\r\n vm.IocaList.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n\r\n lodash.forEach(vm.IocaList, function (e) {\r\n e.isSelected = false\r\n })\r\n\r\n\r\n // for (var i in vm.IocaList) {\r\n // vm.IocaList[i].isSelected = false;\r\n // for (var j in vm.SelectedIocaList) {\r\n // if (vm.IocaList[i].Id === vm.SelectedIocaList[j].Id) {\r\n // vm.IocaList.splice(i, 1);\r\n // }\r\n // }\r\n // }\r\n }\r\n function editDescription(ioca) {\r\n vm.isLoading = true;\r\n debugger;\r\n var obj = {\r\n CompanyId: vm.selectedCompany.CompanyId,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n IOCA_id: ioca.Id,\r\n ProjectIOCAId: ioca.ProjectIocaId,\r\n ShortDescription: ioca.ShortDescription,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n console.log(obj)\r\n IocaService.updatePRJICANDescription(obj).then(function (res) {\r\n vm.isLoading = false;\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"IOCA\");\r\n vm.SelectedIocaList = '';\r\n getAllIocaForProject(vm.selectedProject.ProjectId, 1);\r\n\r\n } else {\r\n $rootScope.showToaster('info', res.data.Message, \"IOCA\");\r\n vm.SelectedIocaList = '';\r\n getAllIocaForProject(vm.selectedProject.ProjectId, 1);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('TierSetupCtrl', TierSetupCtrl);\r\n\r\n /** @ngInject */\r\n function TierSetupCtrl($scope, $rootScope, lodash, dialogs, $http, LocationSetupService, TierSetupService,\r\n CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n \r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TierSetupList = [];\r\n $rootScope.isLogin = false;\r\n\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.filterTiers = filterTiers;\r\n vm.saveNewTierValue = saveNewTierValue;\r\n vm.cancelAdding = cancelAdding;\r\n vm.updateTierValue = updateTierValue;\r\n vm.removeTierSetup = removeTierSetup;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUser.SelectedCompany.CompanyId;\r\n Init();\r\n\r\n ///////////////////////////\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.tier.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n\r\n }\r\n vm.tier.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.LocationList = [];\r\n vm.tier.selectedLocation = null;\r\n }\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n var loc = {\r\n ProjectId: vm.tier.selectedProject.ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(loc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.tier.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n vm.LocationList = [];\r\n vm.tier.selectedLocation = null;\r\n }\r\n\r\n function filterTiers(tier) {\r\n var isClearingTier = (tier.selectedTierValue === null || tier.selectedTierValue === undefined);\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n vm.currentTier = vm.tierObj[nextTier];\r\n if (!isClearingTier)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier, 'ParentTierId': tier.selectedTierValue.TierId });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === nextTier) {\r\n if (!isClearingTier)\r\n t.Values = vm.TierSetupList;\r\n t.selectedTierValue = null;\r\n }\r\n var tierNoToCheck = ((isClearingTier) ? getTierNo(tier.TierType) : getTierNo(nextTier));\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.Values = [],\r\n t.selectedTierValue = null;\r\n }\r\n });\r\n\r\n if (isClearingTier) {\r\n if (getTierNo(tier.TierType) === 1)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj['Tier1'], 'ParentTierId': 0 });\r\n }\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTiersByLocationId(LocationId, ProjectId, callback) {\r\n vm.tierObj = JSON.parse(vm.tier.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n\r\n TierSetupService.getAllTierSetup(LocationId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj[properties] });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n if (callback)\r\n callback();\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n\r\n function saveNewTierValue(tier) {\r\n var oldTierSelection = [];\r\n tier.IsAdding = ((!(tier.IsAdding) || tier.IsAdding === undefined) ? true : false);\r\n vm.isAddingTier = true;\r\n if (!tier.IsAdding) {\r\n var obj = {\r\n ProjectId: vm.tier.selectedProject.ProjectId,\r\n LocationId: vm.tier.selectedLocation.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tier.TierValue,\r\n TierName: tier.TierName,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n if (getTierNo(tier.TierType) === 1) {\r\n obj.ParentTierId = 0;\r\n } else {\r\n var parentTier = lodash.find(vm.tierList, function (t) {\r\n return t.TierType === \"Tier\" + (getTierNo(tier.TierType) - 1);\r\n }).selectedTierValue;\r\n\r\n if (parentTier === null || parentTier === undefined) {\r\n $rootScope.showToaster('error', \"You have to select a parent tier\", \"ERROR!\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n return;\r\n } else {\r\n obj.ParentTierId = parentTier.TierId;\r\n }\r\n oldTierSelection = vm.tierList;\r\n }\r\n\r\n TierSetupService.AddTierSetup(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, vm.tier.selectedLocation.ProjectId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n $rootScope.showToaster('success', res.data.Message, \"Tier Value\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Tier Value\");\r\n tier.IsAdding = !tier.IsAdding;\r\n }\r\n //Init();\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n // lodash.forEach(vm.tierList, function (t) {\r\n // t.isHideForm = false;\r\n // });\r\n } else {\r\n var tierNoToCheck = getTierNo(tier.TierType);\r\n\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n var currentTier = lodash.find(vm.tierList, { 'TierType': tier.TierType });\r\n vm.TierSetupList = currentTier.Values; // lodash.filter(vm.allTierData, { 'TierName': tier.TierName });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.isHideForm = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function updateTierValue(tierToUpdate) {\r\n\r\n var obj = {\r\n \"TierId\": tierToUpdate.TierId,\r\n \"ProjectId\": tierToUpdate.ProjectId,\r\n \"LocationId\": tierToUpdate.LocationId,\r\n \"TierValue\": tierToUpdate.TierValue,\r\n \"TierName\": tierToUpdate.TierName,\r\n \"IsActive\": tierToUpdate.IsActive,\r\n \"ParentTierId\":tierToUpdate.ParentTierId,\r\n \"ModifiedBy\": loggedUser.UserId\r\n }\r\n TierSetupService.updateTierSetup(obj).then(function (res) {\r\n if (res.status === 200, res.data.IsSuccess) {\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n tierToUpdate.isEdit = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n }\r\n\r\n function removeTierSetup(tierToRemove) {\r\n debugger;\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n var oldTierSelection = vm.tierList;\r\n confirm.result.then(function () {\r\n TierSetupService.removeTierSetup(tierToRemove.TierId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, vm.tier.selectedLocation.ProjectId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n } else if (!res.data.IsSuccess) {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n });\r\n }\r\n\r\n function cancelAdding(tier) {\r\n tier.TierValue = undefined;\r\n tier.IsAdding = false;\r\n vm.isAddingTier = false;\r\n lodash.forEach(vm.tierList, function (t) {\r\n t.isHideForm = false;\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('CA_CategoryCtrl', CA_CategoryCtrl);\r\n\r\n /** @ngInject */\r\n function CA_CategoryCtrl($rootScope, lodash, dialogs, $http, CategoryofCAService, AuthenticationService, FieldofConstructionService, CountryService, $scope) {\r\n var vm = this;\r\n\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.categoryofCAList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editCategoryofCA = editCategoryofCA\r\n vm.removeCategoryofCA = removeCategoryofCA;\r\n vm.changeActiveCategoryofCA = changeActiveCategoryofCA;\r\n vm.SaveCategory = SaveCategory;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n $scope.pageChanged = function (event) {\r\n debugger;\r\n }\r\n\r\n function Init() {\r\n CountryService.getActiveCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n CategoryofCAService.FilterCountryByCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n CategoryofCAService.FilterFocByCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctFocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId) {\r\n vm.CategoryList=[];\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.code = true;\r\n vm.distinctFocList = []; \r\n vm.selectedFOCFilter=null; \r\n vm.distinctCountryList = []; \r\n vm.selectedCountryFilter=null;\r\n \r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false; \r\n Init();\r\n resetForm();\r\n vm.category = {};\r\n \r\n\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false; \r\n Init();\r\n resetForm();\r\n vm.category = {};\r\n vm.CategoryList=[];\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.categoryofCAForm.$setUntouched();\r\n }\r\n\r\n function editCategoryofCA(category) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.category = angular.copy(category);\r\n\r\n for (var c in vm.focList) {\r\n if (vm.focList[c].FieldofConstructionId === category.FieldofConstructionId) {\r\n vm.category.selectedFOC = vm.focList[c];\r\n }\r\n }\r\n\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === category.CountryId) {\r\n vm.category.selectedCountryName = vm.CountryList[i];\r\n }\r\n }\r\n\r\n }\r\n\r\n function removeCategoryofCA(category) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n CategoryofCAService.removeCategoryofCA(category.CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Category Successfully', \"Category\");\r\n GetCategoryByCountryId(vm.selectedFOCFilter.FieldofConstructionId,vm.selectedCountryFilter.CountryId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Category\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Category. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n \r\n\r\n\r\n function changeActiveCategoryofCA(category) {\r\n var msg = 'Are sure you want to ' + ((category.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((category.IsActive) ? 'Deactive' : 'Active') + 'Category Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n CategoryofCAService.changeActiveCategoryofCA(category.CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"CategoryofCA\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete CategoryofCA\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete CategoryofCA. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveCategory(category) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n category.CountryId = vm.category.selectedCountryName.CountryId;\r\n category.FieldofConstructionId = vm.category.selectedFOC.FieldofConstructionId;\r\n if (!vm.isEditing) {\r\n category.CreatedBy = loggedUser.UserId;\r\n CategoryofCAService.AddCategoryofCA(category).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category \");\r\n vm.isFormOpen = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Category \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n \r\n\r\n } else {\r\n category.ModifiedBy = loggedUser.UserId;\r\n CategoryofCAService.EditCategoryofCA(category).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category \");\r\n GetCategoryByCountryId(vm.selectedFOCFilter.FieldofConstructionId,vm.selectedCountryFilter.CountryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Category \");\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n }\r\n\r\n }, function (err) {\r\n dialogs.error('error', \"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n \r\n\r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('AttributeCtrl', AttributeCtrl);\r\n\r\n /** @ngInject */\r\n function AttributeCtrl($rootScope, $scope, lodash, dialogs, $http, AttributeService, CategoryofCAService, FieldofConstructionService,\r\n AuthenticationService, SubCategoryofCAService, TypeOfCAService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n $scope.myFunct = function (event, myValue) { \r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n } \r\n // do something with myValue\r\n }\r\n\r\n $scope.pasteOptions = function(event) {\r\n debugger;\r\n var clipboarddata = window.event.clipboardData.getData('text');\r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var pastedData = window.event.clipboardData.getData('text/plain')\r\n if(pastedData.match(regex) === null) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n }\r\n };\r\n // End of Pagination code\r\n\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isAdding = false;\r\n\r\n $rootScope.isLogin = false;\r\n vm.AttributeList = [];\r\n // Methods\r\n vm.getAttributeListByTypeOfAttribute = getAttributeListByTypeOfAttribute;\r\n vm.clear = clear;\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editAttribute = editAttribute;\r\n vm.removeAttribute = removeAttribute;\r\n vm.SaveAttribute = SaveAttribute;\r\n\r\n Init();\r\n\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: \"Generic\", Code: \"G\" }, { TypeOfAttributeName: \"Specific\", Code: \"S\" }];\r\n\r\n function Init() {\r\n CountryService.getActiveCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n vm.attribute.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.attribute.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.attribute.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.attribute.selectedTypeOfAttribute = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Country Name available for ' + vm.attribute.selectedCountryName.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.attribute.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.attribute.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.attribute.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.attribute.selectedTypeOfAttribute = null;\r\n }\r\n }\r\n\r\n function getSubCategoryListByCategoryId(CategoryId, callback) {\r\n vm.attribute.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.attribute.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.attribute.selectedTypeOfAttribute = null;\r\n if (CategoryId) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n vm.attribute.selectedSubCategory = undefined;\r\n vm.attribute.selectedTypeOfCA = undefined;\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory Of CA available for ' + vm.attribute.selectedCategory.CategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.attribute.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.attribute.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.attribute.selectedTypeOfAttribute = null;\r\n }\r\n\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId, callback) {\r\n vm.attribute.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.attribute.selectedTypeOfAttribute = null;\r\n if (SubCategoryId) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n vm.attribute.selectedTypeOfCA = undefined;\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.attribute.selectedSubCategory.SubCategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.attribute.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.attribute.selectedTypeOfAttribute = null;\r\n }\r\n\r\n }\r\n\r\n function getAttributeListByTypeOfAttribute() {\r\n\r\n var obj = {\r\n CA_CategoryId: vm.attribute.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.attribute.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.attribute.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.attribute.selectedTypeOfAttribute.Code\r\n }\r\n AttributeService.getAllAttribute(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AttributeList = res.data.Attribute;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isAdding = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isAdding = false;\r\n vm.isEditing= false;\r\n vm.attribute.AttributeName = {}; \r\n \r\n resetForm();\r\n }\r\n\r\n function resetForm() {\r\n vm.attributeForm.$setUntouched();\r\n }\r\n\r\n function clear() {\r\n vm.isAdding = false;\r\n vm.isEditing= false;\r\n vm.attribute = {};\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.attribute.AttributeName = null;\r\n }\r\n\r\n function editAttribute(attribute) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.attribute.AttributeName = vm.OldAttributeName = attribute.Name;\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === attribute.CountryId) {\r\n vm.attribute.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n\r\n }\r\n\r\n function removeAttribute(attribute) {\r\n attribute.CA_CategoryId = vm.attribute.selectedCategory.CategoryId;\r\n attribute.CA_SubCategoryId = vm.attribute.selectedSubCategory.SubCategoryId;\r\n attribute.TypeOfCAId = vm.attribute.selectedTypeOfCA.CA_TypeId;\r\n attribute.AttributeName = attribute.Name;\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n AttributeService.removeAttribute(attribute).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Attribute Successfully', \"Attribute\");\r\n getAttributeListByTypeOfAttribute();\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveAttribute(attribute) {\r\n vm.isLoading = true;\r\n vm.getSubCategoryListByCategoryId = function (selectedCategory) {\r\n selectedCategory.CategoryId = vm.selectedCategory.CategoryId;\r\n }\r\n vm.getTypeOfCAListBySubcategoryId = function (selectedSubCategory) {\r\n selectedSubCategory.SubCategoryId = vm.selectedSubCategory.SubCategoryId;\r\n }\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n attribute.CA_CategoryId = vm.attribute.selectedCategory.CategoryId;\r\n attribute.CA_SubCategoryId = vm.attribute.selectedSubCategory.SubCategoryId;\r\n attribute.TypeOfCAId = vm.attribute.selectedTypeOfCA.CA_TypeId;\r\n attribute.OldAttributeName = vm.OldAttributeName;\r\n attribute.NewAttributeName = vm.attribute.AttributeName;\r\n // debugger;\r\n attribute.Code = vm.attribute.selectedTypeOfAttribute.Code;\r\n\r\n\r\n if (!vm.isEditing) {\r\n attribute.CreatedBy = loggedUser.UserId;\r\n AttributeService.AddAttribute(attribute).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Attribute\");\r\n vm.attribute.AttributeName = undefined;\r\n getAttributeListByTypeOfAttribute();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Attribute\");\r\n vm.isLoading = false;\r\n }\r\n vm.isAdding = false;\r\n\r\n }\r\n\r\n //Init();\r\n // vm.AttributeText = true;\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Internel Server Error\", \"Attribute\");\r\n vm.isLoading = false;\r\n });\r\n\r\n } else {\r\n attribute.ModifiedBy = loggedUser.UserId;\r\n AttributeService.EditAttribute(attribute).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Attribute Of CA\");\r\n vm.attribute.AttributeName = undefined;\r\n getAttributeListByTypeOfAttribute();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Attribute Of CA\");\r\n }\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Internel Server Error\", \"Attribute\");\r\n });\r\n\r\n }\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('ConstantCtrl', ConstantCtrl);\r\n\r\n /** @ngInject */\r\n function ConstantCtrl($rootScope, lodash, dialogs, $http, CountryService, LobMaterialService, AuthenticationService, FieldofConstructionService,\r\n MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, LabourTypeService, TypeOfCAService, LabourCategoryService, AttributeService, CategoryofCAService,\r\n SubCategoryofCAService, ConstantService, ItemOfMaterialService, LobMachineryService, MachinerySubCategoryService, IOMachineryService, TypeOfConsumableServices, MachineryTypeService, IocaService, ConsumableCatagoryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.viewTab = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.CountryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.filter = {};\r\n vm.cat = {};\r\n vm.type = {};\r\n vm.con = {};\r\n vm.material = {};\r\n vm.machinery = {};\r\n vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getAllConstants = getAllConstants;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.GetSubCategoryByCategoryId = GetSubCategoryByCategoryId;\r\n vm.GetTypeOfCABySubCategoryId = GetTypeOfCABySubCategoryId;\r\n vm.getLabourTypeByLabourCategoryId = getLabourTypeByLabourCategoryId;\r\n vm.ClearLabourFIC = ClearLabourFIC;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.getMatSubcategoryByCategoryId = getMatSubcategoryByCategoryId;\r\n vm.getMatTypeBySubCategoryId = getMatTypeBySubCategoryId;\r\n vm.ClearMatFIC = ClearMatFIC;\r\n vm.IocaList = IocaList;\r\n vm.getUOM = getUOM;\r\n vm.selectAll = selectAll;\r\n vm.selectItem = selectItem;\r\n vm.CancelLabour = CancelLabour;\r\n vm.CancelMaterial = CancelMaterial;\r\n vm.CancelMachinery = CancelMachinery;\r\n vm.CancelConsumable = CancelConsumable;\r\n vm.LobItemMachinery = LobItemMachinery;\r\n vm.Lob = Lob;\r\n vm.ClearConFIC = ClearConFIC;\r\n vm.NewEntry = NewEntry;\r\n vm.Updataion = Updataion;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editIoca = editIoca;\r\n vm.SaveIoca = SaveIoca;\r\n vm.SaveLabourConstant = SaveLabourConstant;\r\n vm.SaveMaterialConstant = SaveMaterialConstant;\r\n vm.SaveMachineryConstant = SaveMachineryConstant;\r\n vm.SaveConsumableConstant = SaveConsumableConstant;\r\n vm.SendApproval = SendApproval;\r\n vm.Back = Back;\r\n vm.updateConstant = updateConstant;\r\n vm.RemoveConstant = RemoveConstant;\r\n vm.GetActiveConsumableTypeById = GetActiveConsumableTypeById;\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.AddConstant = AddConstant;\r\n $rootScope.isLogin = false;\r\n Init();\r\n LoadLob();\r\n\r\n\r\n vm.SpecType = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n function AddConstant() {\r\n vm.viewTab = true;\r\n }\r\n\r\n ///// Constant \r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Init() {\r\n\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n //selectRow();\r\n function selectRow() {\r\n var tempData = [];\r\n // var tempstatus=[];\r\n // for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n // if (vm.IOCAConstantsList.LabourConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.LabourConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.LabourConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.LabourConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.MaterialConstants) {\r\n // if (vm.IOCAConstantsList.MaterialConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.MaterialConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.MaterialConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.MaterialConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.MachineryConstants) {\r\n // if (vm.IOCAConstantsList.MachineryConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.MachineryConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.MachineryConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.MachineryConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.ConsumableConstants) {\r\n // if (vm.IOCAConstantsList.ConsumableConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.ConsumableConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.ConsumableConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.ConsumableConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n if (vm.IOCAConstantsList.LabourConstants.length >= 0 || vm.IOCAConstantsList.MaterialConstants.length >= 0 ||\r\n vm.IOCAConstantsList.MachineryConstants.length >= 0 ||\r\n vm.IOCAConstantsList.ConsumableConstants.length >= 0) {\r\n\r\n for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n tempData.push(vm.IOCAConstantsList.LabourConstants[i].ConstantId);\r\n }\r\n for (var j in vm.IOCAConstantsList.MaterialConstants) {\r\n tempData.push(vm.IOCAConstantsList.MaterialConstants[j].ConstantId);\r\n }\r\n for (var k in vm.IOCAConstantsList.MachineryConstants) {\r\n tempData.push(vm.IOCAConstantsList.MachineryConstants[k].ConstantId);\r\n }\r\n for (var l in vm.IOCAConstantsList.ConsumableConstants) {\r\n tempData.push(vm.IOCAConstantsList.ConsumableConstants[l].ConstantId);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n var teststring = JSON.stringify(tempData);\r\n // vm.tableStatus = JSON.stringify(tempstatus);\r\n vm.tableIds = teststring.substring(1, teststring.length - 1)\r\n return (vm.tableIds);\r\n // return (vm.tableStatus);\r\n }\r\n\r\n function selectItem() {\r\n for (var i = 0; i < vm.IOCAConstantsList.LabourConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.LabourConstants[i].isChecked) {\r\n vm.allRowSelected1 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected1 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MaterialConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.MaterialConstants[i].isChecked) {\r\n vm.allRowSelected2 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected2 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MachineryConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.MachineryConstants[i].isChecked) {\r\n vm.allRowSelected3 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected3 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.ConsumableConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.ConsumableConstants[i].isChecked) {\r\n vm.allRowSelected4 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected4 = true;\r\n\r\n };\r\n\r\n function selectAll() {\r\n for (var i = 0; i < vm.IOCAConstantsList.LabourConstants.length; i++) {\r\n vm.IOCAConstantsList.LabourConstants[i].isChecked = vm.allRowSelected1;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MaterialConstants.length; i++) {\r\n vm.IOCAConstantsList.MaterialConstants[i].isChecked = vm.allRowSelected2;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MachineryConstants.length; i++) {\r\n vm.IOCAConstantsList.MachineryConstants[i].isChecked = vm.allRowSelected3;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.ConsumableConstants.length; i++) {\r\n vm.IOCAConstantsList.ConsumableConstants[i].isChecked = vm.allRowSelected4;\r\n }\r\n };\r\n\r\n function GetCategoryByCountryId(CountryId, FieldofConstructionId, callback) {\r\n\r\n if (CountryId && FieldofConstructionId) {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.con.selectedCountry.CountryName || vm.con.selectedFOC.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n function GetSubCategoryByCategoryId(CategoryId) {\r\n if (CategoryId != undefined) {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryofCAList = res.data;\r\n if (vm.SubCategoryofCAList.length < 1) {\r\n dialogs.notify('Warning', 'No SubCategory Name available for ' + vm.cat.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n\r\n function GetTypeOfCABySubCategoryId(SubCategoryId) {\r\n if (SubCategoryId != undefined) {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.cat.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n function IocaList() {\r\n\r\n if (vm.SpecTypeList.selectedSpecType != undefined) {\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n CA_CategoryId: vm.cat.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.cat.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.type.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.SpecTypeList.selectedSpecType.Code,\r\n }\r\n IocaService.getAllIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ConstantIOCAList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n } else {\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n function getAllConstants(Id) {\r\n ConstantService.getAllDraftIOCAConstant(Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList = res.data;\r\n if (vm.IOCAConstantsList.length > 0) {\r\n for (var i in vm.IOCAConstantsList) {\r\n vm.IOCAConstantsList[i].ConstantList = JSON.parse(vm.IOCAConstantsList[i].History)\r\n }\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n\r\n // Labour\r\n\r\n LabourCategoryService.getActiveLabourCategory().then(function(res) {\r\n if (res.status === 200) {\r\n vm.LabourCategoryList = res.data;\r\n if (vm.LabourCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.type.selectedLabourCategory.LabourCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n function getLabourTypeByLabourCategoryId(LabrCategoryId) {\r\n if (LabrCategoryId != undefined) {\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n vm.labour.LabourContantValue = \"\";\r\n LabourTypeService.getLabourTypeByLabourCategoryId(LabrCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LabourTypeList = res.data;\r\n for (var i in vm.LabourTypeList)\r\n if (vm.LabourTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No labour type Name available for ' + vm.type.selectedLabourType, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n } else {\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n\r\n vm.labour.LabourContantValue = \"\";\r\n }\r\n }\r\n\r\n function ClearLabourFIC() {\r\n vm.labour.LabourContantValue = \"\";\r\n }\r\n\r\n // Material Constants \r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n LobMaterialService.getActiveLobMaterial().then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n if (vm.LobMaterialList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.selectedLobMaterial.LobMaterial, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n\r\n }\r\n });\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Material Category By Lob \r\n\r\n function getCategoryofMaterial() {\r\n if (vm.selectedLobMaterial.LobMaterial != undefined) {\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n\r\n var objGetCategory = {\r\n LOB_MatId: vm.selectedLobMaterial.LobMaterial.LOB_MatId,\r\n CountryId: vm.selectedCountry.CountryName.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryofMaterialList = res.data;\r\n // console.log(JSON.stringify(vm.CategoryofMaterialList));\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n\r\n } else {\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n\r\n }\r\n //// Load All Material SubCategory By Lob \r\n\r\n function getMatSubcategoryByCategoryId(MaterialCategoryId) {\r\n if (MaterialCategoryId != undefined) {\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n } else {\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n //// Load All Type of Material By Lob \r\n function getMatTypeBySubCategoryId(MaterialSubCategoryId) {\r\n if (MaterialSubCategoryId != undefined) {\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialType\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialType\");\r\n });\r\n } else {\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n function loadIocaList() {\r\n if (vm.material.selectedMaterialType != undefined) {\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n var obj = {\r\n MaterialCategoryId: vm.material.selectedMaterialCategory.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.material.selectedMaterialSubCategory.MaterialSubCategoryId,\r\n MaterialTypeId: vm.material.selectedMaterialType.MaterialTypeId,\r\n SpecType: vm.SpecTypeList.selectedSpecType.Code,\r\n }\r\n ItemOfMaterialService.getAllIOM(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data;\r\n for (var i in vm.IOMList) {\r\n if (vm.IOMList[i].UOM_Id != null) {\r\n vm.IOMList[i].ConsumableUnitName = vm.IOMList[i].UnitName\r\n }\r\n if (vm.IOMList[i].UnitId != null) {\r\n vm.IOMList[i].ConsumableUnitName = vm.IOMList[i].UnitName\r\n }\r\n\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n } else {\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n function ClearMatFIC() {\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n function GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId) {\r\n\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId).then(function(res) {\r\n\r\n vm.MaterialTypeList = null;\r\n vm.materialattribute.selectedMaterialTypeName = '';\r\n\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n if (vm.MaterialTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Type available for ' + vm.materialattribute.selectedMaterialSubCategoryName.MaterialSubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectType = true;\r\n } else {\r\n vm.selectType = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n }\r\n\r\n function CancelLabour() {\r\n if (vm.labour != undefined) {\r\n vm.labour.selectedLabourCategory = null;\r\n vm.labour.selectedLabourType = null;\r\n vm.LabourTypeList = [];\r\n vm.labour.LabourContantValue = \"\";\r\n }\r\n }\r\n\r\n function CancelMaterial() {\r\n\r\n (vm.selectedLobMaterial != undefined) ? vm.selectedLobMaterial.LobMaterial = null: \"\";\r\n (vm.selectedCountry != undefined) ? vm.selectedCountry.CountryName = null: \"\";\r\n if (vm.material != undefined) {\r\n vm.material.selectedMaterialCategory = null;\r\n vm.CategoryofMaterialList = [];\r\n vm.material.selectedMaterialSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.material.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.material.selectedIOCA = null;\r\n vm.IOMList = [];\r\n vm.material.MaterialConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n function CancelMachinery() {\r\n\r\n (vm.org != undefined) ? vm.org.selectedLOB_MachName = null: \"\";\r\n (vm.org != undefined) ? vm.org.selectedCountry = null: \"\";\r\n\r\n if (vm.machinery != undefined) {\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n\r\n }\r\n\r\n function CancelConsumable() {\r\n\r\n if (vm.con != undefined) {\r\n vm.con.selectedConsumableCategory = null;\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n vm.con.selectedTypeOfCA.Unit = null;\r\n (vm.Con != undefined) ? vm.Con.ConsumableConstantValue = \"\": \"\";\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n //// Load All Country Machinery \r\n\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n function LobItemMachinery() {\r\n if (vm.machinery.selectedSubCategory != undefined) {\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n var obj = {\r\n COM_Id: vm.machinery.selectedMachineryCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.machinery.selectedmachinery.MachSubCategoryId,\r\n MachTypeId: vm.machinery.selectedSubCategory.MachTypeId,\r\n SpecType: vm.SpecTypeList.selectedSpecType.Code\r\n }\r\n\r\n IOMachineryService.getAllIOMachinery(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOMHList = res.data;\r\n for (var i in vm.IOMHList) {\r\n vm.IOMHList[i].UOMList = JSON.parse(vm.IOMHList[i].UOMList);\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n } else {\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n function getUOM() {\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n vm.UOMList = vm.machinery.selectedMachineryItem.UOMList.UomList;\r\n }\r\n\r\n\r\n\r\n\r\n //// Lob \r\n\r\n function Lob() {\r\n vm.machinerysubcategory.selectedCountry = \"\";\r\n vm.IOMachinery.selectedMachinerySubCategoryName = \"\";\r\n vm.IOMachinery.selectedMachineryCategoryName = \"\";\r\n vm.IOMachinery.selectedMachineryType = \"\";\r\n vm.getCategoryofMachinery();\r\n vm.form = false;\r\n }\r\n\r\n //// Load All Line Of Business \r\n\r\n function LoadLob() {\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Category By LOB\r\n\r\n function getCategoryofMachinery(CountryId) {\r\n\r\n if (CountryId != undefined) {\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n var objGetCategory = {\r\n LOB_MachId: vm.org.selectedLOB_MachName.LOB_MachId,\r\n CountryId: vm.org.selectedCountry.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.machinerycategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = true;\r\n } else {\r\n vm.selectCategory = false;\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n // vm.selectedMachinerySubCategoryName = \"\";\r\n vm.selectedMachineryCategoryName = \"\";\r\n // vm.selectedMachineryType = \"\";\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n } else {\r\n vm.machinery.selectedMachineryCategory = null;\r\n vm.machinerycategoryList = [];\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n\r\n }\r\n\r\n function getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId) {\r\n if (CategoryOfMachineryId != undefined) {\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.machinerySubCategoryList = res.data;\r\n if (vm.machinerySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery SubCategory available for ' + vm.machinery.selectedMachineryCategory.CategoryofMachineryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n vm.selectedMachineryType = \"\";\r\n } else {\r\n vm.selectsubCategory = true;\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n } else {\r\n vm.machinery.selectedmachinery = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n\r\n }\r\n\r\n function getMachineryTypeListByMachinerySubcategoryId(MachSubCategoryId, callback) {\r\n if (MachSubCategoryId != undefined) {\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n MachineryTypeService.GetMachTypeBySubCategory(MachSubCategoryId).then(function(res) {\r\n vm.selectedTypeOfMachinery = {};\r\n vm.selectedTypeOfMachinery = {};\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n if (vm.MachineryTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Type available for ' + vm.machinery.selectedSubCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.TypeList = false;\r\n vm.form = false;\r\n } else {\r\n vm.TypeList = true;\r\n vm.form = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.machinery.selectedSubCategory = null;\r\n vm.MachineryTypeList = [];\r\n vm.machinery.selectedMachineryItem = null;\r\n vm.IOMHList = [];\r\n vm.machinery.selectedMachineryUOM = null;\r\n vm.UOMList = [];\r\n vm.machinery.machineryConstantValue = \"\";\r\n }\r\n\r\n }\r\n\r\n //Consumable Code Start\r\n //Get All Active Consumable List\r\n ConsumableCatagoryService.getActiveConsumableCatagory().then(function(res) {\r\n if (res.status === 200) {\r\n vm.ConsumableCategoryList = res.data;\r\n if (vm.ConsumableCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.type.selectedConsumableCategory.ConsumableCategory, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n //Get All Active Consumable Type List\r\n\r\n function GetActiveConsumableTypeById(ConsumableCategoryId) {\r\n if (ConsumableCategoryId != undefined) {\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n (vm.Con != undefined) ? vm.Con.ConsumableConstantValue = \"\": \"\";\r\n TypeOfConsumableServices.GetTypeOfCAByCategoryId(ConsumableCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAByCategoryList = res.data;\r\n for (var i in vm.TypeOfCAByCategoryList) {\r\n if (vm.TypeOfCAByCategoryList[i].UOM != null) {\r\n vm.TypeOfCAByCategoryList[i].ConsumableUnitName = vm.TypeOfCAByCategoryList[i].UOM.Name\r\n }\r\n if (vm.TypeOfCAByCategoryList[i].Unit != null) {\r\n vm.TypeOfCAByCategoryList[i].ConsumableUnitName = vm.TypeOfCAByCategoryList[i].Unit.UnitName\r\n }\r\n\r\n }\r\n if (vm.TypeOfCAByCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No SubCategory Name available for ' + vm.con.selectedTypeOfCA.TypeOfCAName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.con.selectedTypeOfCA = null;\r\n vm.TypeOfCAByCategoryList = [];\r\n (vm.Con != undefined) ? vm.Con.ConsumableConstantValue = \"\": \"\";\r\n\r\n }\r\n\r\n }\r\n\r\n function ClearConFIC() {\r\n (vm.Con != undefined) ? vm.Con.ConsumableConstantValue = \"\": \"\";\r\n }\r\n // Get Consumable UOM \r\n function NewEntry() {\r\n vm.isFormOpen = true;\r\n\r\n }\r\n\r\n function Updataion() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n if (SubCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n vm.selectedTypeOfCA = null;\r\n }\r\n\r\n function getAllCombinations() {\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId\r\n }\r\n ConstantService.getAllCombinations(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data) {\r\n vm.rawCombinations = angular.copy(res.data.Combinations);\r\n vm.combinations = res.data.Combinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n\r\n createViewModel();\r\n } else {\r\n vm.AttributeList = [];\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n });\r\n }\r\n\r\n function selectVariable(attribute, variable) {\r\n lodash.forEach(attribute.VariableList, function(variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n attribute.selectedVariable = variable.VariableName;\r\n filterVariables();\r\n }\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributeName] = attribute.selectedVariable;\r\n });\r\n\r\n vm.combinations = lodash.filter(vm.combinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n lodash.forEach(attribute.VariableList, function(variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributeName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function clearFilter() {\r\n vm.filter = {};\r\n vm.combinations = vm.rawCombinations;\r\n createViewModel();\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a],\r\n VariableList: []\r\n }\r\n for (var c in vm.combinations) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.combinations[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.combinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.ioca = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.typeofCAForm.$setUntouched();\r\n }\r\n\r\n\r\n function editIoca(ioca) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.ioca = angular.copy(ioca);\r\n getSubCategoryListByCategoryId(ioca.CategoryId, function() {\r\n for (var c in vm.CategoryList) {\r\n if (vm.CategoryList[c].CategoryId === ioca.CategoryId) {\r\n vm.ioca.selectedCategory = vm.CategoryList[c];\r\n }\r\n }\r\n getTypeOfCAListBySubcategoryId(ioca.SubCategoryId, function() {\r\n for (var c in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[c].SubCategoryId === ioca.SubCategoryId) {\r\n vm.ioca.selectedSubCategory = vm.SubCategoryList[c];\r\n }\r\n }\r\n for (var c in vm.TypeOfCAList) {\r\n if (vm.TypeOfCAList[c].TypeOfCAId === ioca.TypeOfCAId) {\r\n vm.ioca.selectedTypeOfCA = vm.TypeOfCAList[c];\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n ///// Get Labour Constant\r\n\r\n function getLabourConstant() {\r\n debugger;\r\n ConstantService.GetLabourConstant(vm.con.selectedIOCA.Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList.LabourConstants = res.data;\r\n // console.log(vm.IOCAConstantsList.LabourConstants);\r\n vm.isLoading = false;\r\n CancelLabour();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Labour\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Labour\");\r\n });\r\n }\r\n\r\n //// Get Material Constant\r\n\r\n function getMaterialConstant() {\r\n ConstantService.GetMaterialConstant(vm.con.selectedIOCA.Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList.MaterialConstants = res.data;\r\n vm.isLoading = false;\r\n CancelMaterial();\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material\");\r\n\r\n });\r\n }\r\n\r\n //// Get Machinery Constant\r\n function getMachineryConstant() {\r\n ConstantService.GetMachineryConstant(vm.con.selectedIOCA.Id).then(function(res) {\r\n if (res.status === 200) {\r\n // console.log(\"vm.IOCAConstantsList.MachineryConstants\" + JSON.stringify(res.data))\r\n vm.IOCAConstantsList.MachineryConstants = res.data;\r\n vm.isLoading = false;\r\n vm.CancelMachinery();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery\");\r\n });\r\n\r\n }\r\n\r\n ///// Get Consumable Constant\r\n\r\n function getConsumableConstant() {\r\n ConstantService.GetConsumableConstant(vm.con.selectedIOCA.Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList.ConsumableConstants = res.data;\r\n vm.isLoading = false;\r\n vm.CancelConsumable();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Consumable\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Consumable\");\r\n });\r\n }\r\n\r\n function SaveIoca(ioca) {\r\n vm.getSubCategoryByCategoryId = function(selectedCategory) {\r\n selectedCategory.CategoryId = vm.selectedCategory.CategoryId;\r\n }\r\n ioca.CategoryId = vm.ioca.selectedCategory.CategoryId;\r\n ioca.SubCategoryId = vm.ioca.selectedSubCategory.SubCategoryId;\r\n ioca.TypeOfCaId = vm.ioca.selectedTypeOfCa.TypeOfCaId;\r\n ioca.SpecType = vm.ioca.selected\r\n\r\n if (!vm.isEditing) {\r\n ConstantService.AddIoca(ioca).then(function(res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"IOCA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n } else {\r\n ConstantService.EditIoca(type).then(function(res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"IOCA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n }\r\n }\r\n\r\n ///// Save Labour Constant\r\n\r\n function SaveLabourConstant() {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n RefId: vm.labour.selectedLabourType.LabrTypeId,\r\n ConstantValue: vm.labour.LabourContantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n if (vm.labour.selectedLabourType.UOM_Id != null || vm.labour.selectedLabourType.UOM_Id != undefined) {\r\n obj.UOMId = vm.labour.selectedLabourType.UOM_Id;\r\n obj.UnitId = \"\";\r\n }\r\n ConstantService.AddLabourConstant(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Labour Constant\");\r\n getLabourConstant();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Labour Constant\");\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Labour Constant\", \"Labour Constant\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Labour Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Material Constant\r\n\r\n function SaveMaterialConstant() {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n RefId: vm.material.selectedIOCA.Id,\r\n ConstantValue: vm.material.MaterialConstantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n if (vm.material.selectedIOCA.UOM_Id != null || vm.material.selectedIOCA.UOM_Id != undefined) {\r\n obj.UOMId = vm.material.selectedIOCA.UOM_Id;\r\n obj.UnitId = \"\";\r\n }\r\n if (vm.material.selectedIOCA.UnitId != null || vm.material.selectedIOCA.UnitId != undefined) {\r\n obj.UOMId = \"\";\r\n obj.UnitId = vm.material.selectedIOCA.UnitId\r\n }\r\n ConstantService.AddMaterialConstant(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Constant\");\r\n getMaterialConstant();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Material Constant\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Material Constant\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Machinery Constant\r\n\r\n function SaveMachineryConstant() {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n RefId: vm.machinery.selectedMachineryItem.Id,\r\n UOMId: vm.machinery.selectedMachineryUOM.UOM_Id,\r\n ConstantValue: vm.machinery.machineryConstantValue,\r\n CreatedBy: $rootScope.userId,\r\n UnitId: \"\"\r\n }\r\n ConstantService.AddMachineryConstant(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Machinery Constant\");\r\n getMachineryConstant();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Machinery Constant\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Machinery Constant\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Machinery Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n //// Save Consumable Constant\r\n\r\n function SaveConsumableConstant() {\r\n var obj = {\r\n IOCA_Id: vm.con.selectedIOCA.Id,\r\n RefId: vm.con.selectedTypeOfCA.ConsumeTypeId,\r\n ConstantValue: vm.Con.ConsumableConstantValue,\r\n CreatedBy: $rootScope.userId\r\n }\r\n if (vm.con.selectedTypeOfCA.UOM_Id != null || vm.con.selectedTypeOfCA.UOM_Id != undefined) {\r\n obj.UOMId = vm.con.selectedTypeOfCA.UOM_Id;\r\n obj.UnitId = \"\";\r\n }\r\n if (vm.con.selectedTypeOfCA.UnitId != null || vm.con.selectedTypeOfCA.UnitId != undefined) {\r\n obj.UOMId = \"\";\r\n obj.UnitId = vm.con.selectedTypeOfCA.UnitId\r\n }\r\n ConstantService.AddConsumableConstant(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Consumable Constant\");\r\n getConsumableConstant();\r\n } else\r\n $rootScope.showToaster('warning', res.data.Message, \"Consumable Constant\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Material Constant\", \"Consumable Constant\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Consumable Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n ///// Send For Approval\r\n\r\n function SendApproval() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Send Constant For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n var obj = {\r\n ConstantId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n ConstantService.SendApproval(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Approval Successfully', \"Constants\");\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n // getAllConstants(row.IOCA_Id);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't send Approval for Constants\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't send Approval for Constants\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n },\r\n function() {\r\n\r\n })\r\n\r\n }\r\n\r\n function Back() {\r\n vm.viewTab = false;\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n CancelLabour();\r\n CancelMaterial();\r\n CancelMachinery();\r\n CancelConsumable();\r\n }\r\n\r\n function updateConstant(row) {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ConstantValue: row.ConstantValue,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n ConstantService.UpdateConstant(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n function RemoveConstant(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ActionBy: $rootScope.userId\r\n }\r\n ConstantService.DeleteConstant(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Delete\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Delete\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Constant\", \"Constants Delete\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('constantRejectCtrl', constantRejectCtrl);\r\n\r\n /** @ngInject */\r\n function constantRejectCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, ConstantService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n vm.SaveRejection = function () {\r\n var objReject = {\r\n ConstantId: items.ConstantId,\r\n RejectionNotes: {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n \"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n ConstantService.AddRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Constant Rejection\");\r\n debugger;\r\n $uibModalInstance.close();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Constant Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Constant Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('ConstantApprovedCtrl', ConstantApprovedCtrl);\r\n\r\n /** @ngInject */\r\n function ConstantApprovedCtrl($rootScope, $stateParams, $state, $uibModal, lodash, dialogs, $http, CountryService, LobMaterialService, AuthenticationService, FieldofConstructionService,\r\n MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, LabourTypeService, TypeOfCAService, LabourCategoryService, AttributeService, CategoryofCAService,\r\n SubCategoryofCAService, ConstantService, ItemOfMaterialService, LobMachineryService, MachinerySubCategoryService, IOMachineryService, TypeOfConsumableServices, MachineryTypeService, IocaService, ConsumableCatagoryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.viewTab = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.istile = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormPending = true;\r\n vm.CountryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList = {};\r\n vm.filter = {};\r\n vm.cat = {};\r\n vm.type = {};\r\n // vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n // vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n // vm.loadIocaList = loadIocaList;\r\n vm.getAllConstants = getAllConstants;\r\n vm.IocaList = IocaList;\r\n $rootScope.isLogin = false;\r\n\r\n\r\n Init();\r\n\r\n vm.SpecType = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n vm.AddConstant = function () {\r\n vm.viewTab = true;\r\n vm.isFormOpen = false;\r\n vm.istile = true;\r\n }\r\n vm.fromDraft = function () {\r\n vm.isFormOpen = true;\r\n vm.istile = true;\r\n vm.FromDraftList = vm.DraftList;\r\n vm.isFormPending = false;\r\n vm.FormList = true;\r\n vm.isDraft = true;\r\n vm.isPending = false;\r\n\r\n }\r\n\r\n vm.frombackforApproval = function () {\r\n vm.FrombackforApprovalList = vm.PendingList;\r\n vm.isFormOpen = false;\r\n vm.isFormPending = false;\r\n vm.FormList = true;\r\n vm.isDraft = false;\r\n vm.isPending = true;\r\n\r\n }\r\n\r\n vm.Back = function () {\r\n vm.isFormPending = false;\r\n vm.isFormOpen = true;\r\n vm.FormList = false;\r\n }\r\n\r\n vm.BackPending = function () {\r\n vm.isFormPending = true;\r\n vm.isFormOpen = false;\r\n vm.FormList = false;\r\n }\r\n\r\n ///// Constant \r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Init() {\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n vm.GetCategoryByCountryId = function (CountryId, FieldofConstructionId, callback) {\r\n if (CountryId && FieldofConstructionId) {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.con.selectedCountry.CountryName || vm.con.selectedFOC.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n }\r\n }\r\n\r\n vm.GetSubCategoryByCategoryId = function (CategoryId) {\r\n if (CategoryId != undefined) {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryofCAList = res.data;\r\n if (vm.SubCategoryofCAList.length < 1) {\r\n dialogs.notify('Warning', 'No SubCategory Name available for ' + vm.cat.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n\r\n vm.GetTypeOfCABySubCategoryId = function (SubCategoryId) {\r\n if (SubCategoryId != undefined) {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.cat.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n function IocaList() {\r\n if (vm.SpecTypeList.selectedSpecType != undefined) {\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n CA_CategoryId: vm.cat.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.cat.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.type.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.SpecTypeList.selectedSpecType.Code,\r\n }\r\n // IocaService.getAllIoca(obj).then(function (res) {\r\n IocaService.getApprovedIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConstantIOCAList = res.data;\r\n if (vm.ConstantIOCAList.length < 1) {\r\n dialogs.notify('Warning', 'No IOCA available for ' + vm.SpecTypeList.selectedSpecType.SpecTypeName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = null;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n\r\n }\r\n\r\n\r\n }\r\n function getAllConstants(Id) {\r\n ConstantService.getAllApprovalIOCAConstant(Id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList = res.data;\r\n if (vm.IOCAConstantsList.length > 0) {\r\n for (var i in vm.IOCAConstantsList) {\r\n vm.IOCAConstantsList[i].ConstantList = JSON.parse(vm.IOCAConstantsList[i].History)\r\n }\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('ConstantPendingForApprovalCtrl', ConstantPendingForApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function ConstantPendingForApprovalCtrl($rootScope, $stateParams, $state, $uibModal, lodash, dialogs, $http, CountryService, LobMaterialService, AuthenticationService, FieldofConstructionService,\r\n MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, LabourTypeService, TypeOfCAService, LabourCategoryService, AttributeService, CategoryofCAService,\r\n SubCategoryofCAService, ConstantService, ItemOfMaterialService, LobMachineryService, MachinerySubCategoryService, IOMachineryService, TypeOfConsumableServices, MachineryTypeService, IocaService, ConsumableCatagoryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isViewDetails = false;\r\n vm.isFormOpen = false;\r\n vm.viewTab = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.istile = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormPending = true;\r\n vm.CountryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList = {};\r\n vm.filter = {};\r\n vm.cat = {};\r\n vm.type = {};\r\n vm.selectItem = selectItem;\r\n vm.selectRow = selectRow;\r\n vm.selectAll = selectAll;\r\n // vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n // vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n // vm.loadIocaList = loadIocaList;\r\n vm.getAllConstants = getAllConstants;\r\n vm.IocaList = IocaList;\r\n $rootScope.isLogin = false;\r\n\r\n if ($state.params.data != undefined) {\r\n getAllConstants($state.params.data.IOCA_Id)\r\n }\r\n\r\n\r\n Init();\r\n\r\n vm.SpecType = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.fromDraft = function () {\r\n // getAllConstants(); \r\n vm.IOCAConstantsList = {\r\n \"LabourConstants\":[],\r\n \"MaterialConstants\": [],\r\n \"MachineryConstants\": [],\r\n \"ConsumableConstants\": []\r\n }\r\n\r\n // vm.IOCAConstantsList = vm.TotalWaiting;\r\n vm.wtn = true;\r\n for (var i in vm.TotalWaiting) {\r\n if (vm.TotalWaiting[i].ConstantFor === 1) {\r\n vm.lab = true;\r\n vm.IOCAConstantsList.LabourConstants.push(vm.TotalWaiting[i])\r\n }\r\n else if (vm.TotalWaiting[i].ConstantFor === 2) {\r\n vm.mat = true;\r\n vm.IOCAConstantsList.MaterialConstants.push(vm.TotalWaiting[i])\r\n }\r\n\r\n else if (vm.TotalWaiting[i].ConstantFor === 3) {\r\n vm.mach = true;\r\n vm.IOCAConstantsList.MachineryConstants.push(vm.TotalWaiting[i])\r\n }\r\n else {\r\n vm.consumable = true;\r\n vm.IOCAConstantsList.ConsumableConstants.push(vm.TotalWaiting[i])\r\n }\r\n\r\n }\r\n }\r\n\r\n vm.frombackforApproval = function () {\r\n // getAllConstants();\r\n vm.IOCAConstantsList = {\r\n \"LabourConstants\":[],\r\n \"MaterialConstants\": [],\r\n \"MachineryConstants\": [],\r\n \"ConsumableConstants\": []\r\n }\r\n // vm.IOCAConstantsList = vm.TotalResubmit;\r\n\r\n vm.wtn = true;\r\n for (var i in vm.TotalResubmit) {\r\n if (vm.TotalResubmit[i].ConstantFor === 1) {\r\n vm.lab = true;\r\n vm.IOCAConstantsList.LabourConstants.push(vm.TotalResubmit[i])\r\n }\r\n else if (vm.TotalResubmit[i].ConstantFor === 2) {\r\n vm.mat = true;\r\n vm.IOCAConstantsList.MaterialConstants.push(vm.TotalResubmit[i])\r\n }\r\n\r\n else if (vm.TotalResubmit[i].ConstantFor === 3) {\r\n vm.mach = true;\r\n vm.IOCAConstantsList.MachineryConstants.push(vm.TotalResubmit[i])\r\n }\r\n else {\r\n vm.consumable = true;\r\n vm.IOCAConstantsList.ConsumableConstants.push(vm.TotalResubmit[i])\r\n }\r\n\r\n }\r\n }\r\n\r\n vm.Back = function () {\r\n vm.isFormPending = false;\r\n vm.isFormOpen = true;\r\n vm.FormList = false;\r\n }\r\n\r\n vm.BackPending = function () {\r\n vm.isFormPending = true;\r\n vm.isFormOpen = false;\r\n vm.FormList = false;\r\n }\r\n\r\n function selectRow() {\r\n var tempData = [];\r\n // var tempstatus=[];\r\n // for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n // if (vm.IOCAConstantsList.LabourConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.LabourConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.LabourConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.LabourConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.MaterialConstants) {\r\n // if (vm.IOCAConstantsList.MaterialConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.MaterialConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.MaterialConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.MaterialConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.MachineryConstants) {\r\n // if (vm.IOCAConstantsList.MachineryConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.MachineryConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.MachineryConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.MachineryConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.ConsumableConstants) {\r\n // if (vm.IOCAConstantsList.ConsumableConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.ConsumableConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.ConsumableConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.ConsumableConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n if (vm.IOCAConstantsList.LabourConstants.length >= 0 || vm.IOCAConstantsList.MaterialConstants.length >= 0 ||\r\n vm.IOCAConstantsList.MachineryConstants.length >= 0 ||\r\n vm.IOCAConstantsList.ConsumableConstants.length >= 0) {\r\n\r\n for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n tempData.push(vm.IOCAConstantsList.LabourConstants[i].ConstantId);\r\n }\r\n for (var j in vm.IOCAConstantsList.MaterialConstants) {\r\n tempData.push(vm.IOCAConstantsList.MaterialConstants[j].ConstantId);\r\n }\r\n for (var k in vm.IOCAConstantsList.MachineryConstants) {\r\n tempData.push(vm.IOCAConstantsList.MachineryConstants[k].ConstantId);\r\n }\r\n for (var l in vm.IOCAConstantsList.ConsumableConstants) {\r\n tempData.push(vm.IOCAConstantsList.ConsumableConstants[l].ConstantId);\r\n }\r\n }\r\n\r\n\r\n var teststring = JSON.stringify(tempData);\r\n // vm.tableStatus = JSON.stringify(tempstatus);\r\n vm.tableIds = teststring.substring(1, teststring.length - 1)\r\n return (vm.tableIds);\r\n // return (vm.tableStatus);\r\n }\r\n function selectItem() {\r\n for (var i = 0; i < vm.IOCAConstantsList.LabourConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.LabourConstants[i].isChecked) {\r\n vm.allRowSelected1 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected1 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MaterialConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.MaterialConstants[i].isChecked) {\r\n vm.allRowSelected2 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected2 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MachineryConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.MachineryConstants[i].isChecked) {\r\n vm.allRowSelected3 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected3 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.ConsumableConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.ConsumableConstants[i].isChecked) {\r\n vm.allRowSelected4 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected4 = true;\r\n\r\n };\r\n function selectAll() {\r\n for (var i = 0; i < vm.IOCAConstantsList.LabourConstants.length; i++) {\r\n vm.IOCAConstantsList.LabourConstants[i].isChecked = vm.allRowSelected1;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MaterialConstants.length; i++) {\r\n vm.IOCAConstantsList.MaterialConstants[i].isChecked = vm.allRowSelected2;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MachineryConstants.length; i++) {\r\n vm.IOCAConstantsList.MachineryConstants[i].isChecked = vm.allRowSelected3;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.ConsumableConstants.length; i++) {\r\n vm.IOCAConstantsList.ConsumableConstants[i].isChecked = vm.allRowSelected4;\r\n }\r\n };\r\n ///// Constant \r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Init() {\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n vm.GetCategoryByCountryId = function (CountryId, FieldofConstructionId, callback) {\r\n if (CountryId && FieldofConstructionId) {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.con.selectedCountry.CountryName || vm.con.selectedFOC.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n vm.GetSubCategoryByCategoryId = function (CategoryId) {\r\n if (CategoryId != undefined) {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;;\r\n vm.SpecTypeList.selectedSpecType = null;;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryofCAList = res.data;\r\n if (vm.SubCategoryofCAList.length < 1) {\r\n dialogs.notify('Warning', 'No SubCategory Name available for ' + vm.cat.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;;\r\n vm.SpecTypeList.selectedSpecType = null;;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n\r\n vm.GetTypeOfCABySubCategoryId = function (SubCategoryId) {\r\n if (SubCategoryId != undefined) {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.cat.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n function IocaList() {\r\n if (vm.SpecTypeList.selectedSpecType != undefined) {\r\n vm.con.selectedIOCA = {};\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n CA_CategoryId: vm.cat.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.cat.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.type.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.SpecTypeList.selectedSpecType.Code,\r\n }\r\n IocaService.getAllIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConstantIOCAList = res.data;\r\n vm.wtn = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.con.selectedIOCA = {};\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n\r\n\r\n }\r\n\r\n function getAllConstants(Id) {\r\n ConstantService.getAllPendingIOCAConstant(Id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList = res.data;\r\n if (vm.IOCAConstantsList.length > 0) {\r\n for (var i in vm.IOCAConstantsList) {\r\n vm.IOCAConstantsList[i].ConstantList = JSON.parse(vm.IOCAConstantsList[i].History)\r\n }\r\n }\r\n Tile();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n\r\n function Tile() {\r\n vm.TotalWaiting = [];\r\n vm.TotalResubmit = [];\r\n\r\n for (var i in vm.IOCAConstantsList.ConsumableConstants) {\r\n if (vm.IOCAConstantsList.ConsumableConstants[i].Status === 3) {\r\n vm.TotalWaiting.push(vm.IOCAConstantsList.ConsumableConstants[i])\r\n }\r\n if (vm.IOCAConstantsList.ConsumableConstants[i].Status === 2) {\r\n vm.TotalResubmit.push(vm.IOCAConstantsList.ConsumableConstants[i])\r\n }\r\n }\r\n\r\n for (var i in vm.IOCAConstantsList.MachineryConstants) {\r\n if (vm.IOCAConstantsList.MachineryConstants[i].Status === 3) {\r\n vm.TotalWaiting.push(vm.IOCAConstantsList.MachineryConstants[i])\r\n }\r\n if (vm.IOCAConstantsList.MachineryConstants[i].Status === 2) {\r\n vm.TotalResubmit.push(vm.IOCAConstantsList.MachineryConstants[i])\r\n }\r\n }\r\n for (var i in vm.IOCAConstantsList.MaterialConstants) {\r\n if (vm.IOCAConstantsList.MaterialConstants[i].Status === 3) {\r\n vm.TotalWaiting.push(vm.IOCAConstantsList.MaterialConstants[i])\r\n }\r\n if (vm.IOCAConstantsList.MaterialConstants[i].Status === 2) {\r\n vm.TotalResubmit.push(vm.IOCAConstantsList.MaterialConstants[i])\r\n }\r\n }\r\n for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n if (vm.IOCAConstantsList.LabourConstants[i].Status === 3) {\r\n vm.TotalWaiting.push(vm.IOCAConstantsList.LabourConstants[i])\r\n }\r\n if (vm.IOCAConstantsList.LabourConstants[i].Status === 2) {\r\n vm.TotalResubmit.push(vm.IOCAConstantsList.LabourConstants[i])\r\n }\r\n }\r\n vm.isViewDetails = true;\r\n }\r\n\r\n // Get Consumable UOM \r\n vm.NewEntry = function () {\r\n vm.isFormOpen = true;\r\n\r\n }\r\n vm.Updataion = function () {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n vm.Back = function () {\r\n vm.viewTab = false;\r\n vm.isFormOpen = true;\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n vm.updateConstant = function (row) {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ConstantValue: row.ConstantValue,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n ConstantService.UpdateConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.RemoveConstant = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n ConstantId: selectRow(vm.tableIds),\r\n ActionBy: $rootScope.userId\r\n }\r\n ConstantService.DeleteConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.Approval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Approval the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n var obj = {\r\n ConstantId: selectRow(vm.tableIds)\r\n }\r\n\r\n confirm.result.then(function () {\r\n ConstantService.Approval(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Constants\");\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approved Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Approved Constants\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n\r\n vm.Reject = function () {\r\n var Constant = {\r\n ConstantId: selectRow(vm.tableIds),\r\n IOCA_Id: vm.con.selectedIOCA.Id\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/constructionActivity/Constant/constantReject.html',\r\n controller: 'constantRejectCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return Constant;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n getAllConstants(vm.con.selectedIOCA.Id)\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('ConstantBackForCorrectionCtrl', ConstantBackForCorrectionCtrl);\r\n\r\n /** @ngInject */\r\n function ConstantBackForCorrectionCtrl($rootScope, $stateParams, $state, $uibModal, lodash, dialogs, $http, CountryService, LobMaterialService, AuthenticationService, FieldofConstructionService,\r\n MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, LabourTypeService, TypeOfCAService, LabourCategoryService, AttributeService, CategoryofCAService,\r\n SubCategoryofCAService, ConstantService, ItemOfMaterialService, LobMachineryService, MachinerySubCategoryService, IOMachineryService, TypeOfConsumableServices, MachineryTypeService, IocaService, ConsumableCatagoryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.viewTab = false;\r\n vm.IsAdd = false;\r\n vm.draft = false;\r\n vm.istile = false;\r\n vm.correction = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormPending = true;\r\n vm.CountryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList = {};\r\n vm.filter = {};\r\n vm.cat = {};\r\n vm.type = {};\r\n vm.getAllConstants = getAllConstants;\r\n vm.IocaList = IocaList;\r\n vm.selectRow = selectRow;\r\n vm.selectItem = selectItem;\r\n vm.selectAll = selectAll;\r\n vm.AddConstant = AddConstant;\r\n vm.fromDraft = fromDraft;\r\n vm.frombackforApproval = frombackforApproval;\r\n vm.Back = Back;\r\n vm.BackPending = BackPending;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.GetSubCategoryByCategoryId = GetSubCategoryByCategoryId;\r\n vm.GetTypeOfCABySubCategoryId = GetTypeOfCABySubCategoryId;\r\n vm.NewEntry = NewEntry;\r\n vm.Updataion = Updataion;\r\n vm.updateConstant = updateConstant;\r\n vm.RemoveConstant = RemoveConstant;\r\n vm.Resubmit = Resubmit;\r\n vm.Block = Block;\r\n vm.cancel = cancel;\r\n vm.Reject = Reject;\r\n $rootScope.isLogin = false;\r\n\r\n if ($state.params.data != undefined) {\r\n getAllConstants($state.params.data.IOCA_Id)\r\n }\r\n\r\n\r\n Init();\r\n\r\n function selectRow() {\r\n var tempData = [];\r\n // var tempstatus=[];\r\n // for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n // if (vm.IOCAConstantsList.LabourConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.LabourConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.LabourConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.LabourConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.MaterialConstants) {\r\n // if (vm.IOCAConstantsList.MaterialConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.MaterialConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.MaterialConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.MaterialConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.MachineryConstants) {\r\n // if (vm.IOCAConstantsList.MachineryConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.MachineryConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.MachineryConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.MachineryConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var i in vm.IOCAConstantsList.ConsumableConstants) {\r\n // if (vm.IOCAConstantsList.ConsumableConstants[i].isChecked) {\r\n // if (vm.IOCAConstantsList.ConsumableConstants[i].ConstantId != undefined) {\r\n // tempData.push(vm.IOCAConstantsList.ConsumableConstants[i].ConstantId);\r\n // // tempstatus.push(vm.IOCAConstantsList.ConsumableConstants[i].Status);\r\n // }\r\n // }\r\n // }\r\n if (vm.IOCAConstantsList.LabourConstants.length >= 0 || vm.IOCAConstantsList.MaterialConstants.length >= 0 ||\r\n vm.IOCAConstantsList.MachineryConstants.length >= 0 ||\r\n vm.IOCAConstantsList.ConsumableConstants.length >= 0) {\r\n\r\n for (var i in vm.IOCAConstantsList.LabourConstants) {\r\n tempData.push(vm.IOCAConstantsList.LabourConstants[i].ConstantId);\r\n }\r\n for (var j in vm.IOCAConstantsList.MaterialConstants) {\r\n tempData.push(vm.IOCAConstantsList.MaterialConstants[j].ConstantId);\r\n }\r\n for (var k in vm.IOCAConstantsList.MachineryConstants) {\r\n tempData.push(vm.IOCAConstantsList.MachineryConstants[k].ConstantId);\r\n }\r\n for (var l in vm.IOCAConstantsList.ConsumableConstants) {\r\n tempData.push(vm.IOCAConstantsList.ConsumableConstants[l].ConstantId);\r\n }\r\n }\r\n\r\n\r\n\r\n var teststring = JSON.stringify(tempData);\r\n // vm.tableStatus = JSON.stringify(tempstatus);\r\n vm.tableIds = teststring.substring(1, teststring.length - 1)\r\n return (vm.tableIds);\r\n // return (vm.tableStatus);\r\n }\r\n function selectItem() {\r\n for (var i = 0; i < vm.IOCAConstantsList.LabourConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.LabourConstants[i].isChecked) {\r\n vm.allRowSelected1 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected1 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MaterialConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.MaterialConstants[i].isChecked) {\r\n vm.allRowSelected2 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected2 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MachineryConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.MachineryConstants[i].isChecked) {\r\n vm.allRowSelected3 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected3 = true;\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.ConsumableConstants.length; i++) {\r\n if (!vm.IOCAConstantsList.ConsumableConstants[i].isChecked) {\r\n vm.allRowSelected4 = false;\r\n return;\r\n }\r\n }\r\n vm.allRowSelected4 = true;\r\n\r\n };\r\n function selectAll() {\r\n for (var i = 0; i < vm.IOCAConstantsList.LabourConstants.length; i++) {\r\n vm.IOCAConstantsList.LabourConstants[i].isChecked = vm.allRowSelected1;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MaterialConstants.length; i++) {\r\n vm.IOCAConstantsList.MaterialConstants[i].isChecked = vm.allRowSelected2;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.MachineryConstants.length; i++) {\r\n vm.IOCAConstantsList.MachineryConstants[i].isChecked = vm.allRowSelected3;\r\n }\r\n\r\n for (var i = 0; i < vm.IOCAConstantsList.ConsumableConstants.length; i++) {\r\n vm.IOCAConstantsList.ConsumableConstants[i].isChecked = vm.allRowSelected4;\r\n }\r\n };\r\n\r\n vm.SpecType = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n function AddConstant() {\r\n vm.viewTab = true;\r\n vm.isFormOpen = false;\r\n vm.istile = true;\r\n }\r\n function fromDraft() {\r\n vm.isFormOpen = true;\r\n vm.istile = true;\r\n vm.FromDraftList = vm.DraftList;\r\n vm.isFormPending = false;\r\n vm.FormList = true;\r\n vm.isDraft = true;\r\n vm.isPending = false;\r\n\r\n }\r\n\r\n function frombackforApproval() {\r\n vm.FrombackforApprovalList = vm.PendingList;\r\n vm.isFormOpen = false;\r\n vm.isFormPending = false;\r\n vm.FormList = true;\r\n vm.isDraft = false;\r\n vm.isPending = true;\r\n\r\n }\r\n\r\n function Back() {\r\n vm.isFormPending = false;\r\n vm.isFormOpen = true;\r\n vm.FormList = false;\r\n }\r\n\r\n function BackPending() {\r\n vm.isFormPending = true;\r\n vm.isFormOpen = false;\r\n vm.FormList = false;\r\n }\r\n\r\n ///// Constant \r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Init() {\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function GetCategoryByCountryId(CountryId, FieldofConstructionId, callback) {\r\n if (CountryId && FieldofConstructionId) {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.con.selectedCountry.CountryName || vm.con.selectedFOC.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.cat.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = null;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n function GetSubCategoryByCategoryId(CategoryId) {\r\n if (CategoryId != undefined) {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryofCAList = res.data;\r\n if (vm.SubCategoryofCAList.length < 1) {\r\n dialogs.notify('Warning', 'No SubCategory Name available for ' + vm.cat.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.cat.selectedSubCategory = null;\r\n vm.SubCategoryofCAList = [];\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.con.selectedIOCA = null;\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n\r\n function GetTypeOfCABySubCategoryId(SubCategoryId) {\r\n if (SubCategoryId != undefined) {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.cat.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.type.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.SpecTypeList.selectedSpecType = null;\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n }\r\n }\r\n\r\n function IocaList() {\r\n if (vm.SpecTypeList.selectedSpecType != undefined) {\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n var obj = {\r\n CA_CategoryId: vm.cat.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.cat.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.type.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.SpecTypeList.selectedSpecType.Code,\r\n }\r\n IocaService.getAllIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConstantIOCAList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n else {\r\n vm.con.selectedIOCA = null;\r\n vm.con.selectedIOCA = undefined;\r\n vm.ConstantIOCAList = [];\r\n vm.IOCAConstantsList = [];\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n function getAllConstants(Id) {\r\n ConstantService.getAllBackandBlockIOCAConstant(Id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAConstantsList = res.data;\r\n if (vm.IOCAConstantsList.length > 0) {\r\n for (var i in vm.IOCAConstantsList) {\r\n vm.IOCAConstantsList[i].ConstantList = JSON.parse(vm.IOCAConstantsList[i].History)\r\n }\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n // Get Consumable UOM \r\n function NewEntry() {\r\n vm.isFormOpen = true;\r\n\r\n }\r\n function Updataion() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function Back() {\r\n vm.viewTab = false;\r\n vm.isFormOpen = true;\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n function updateConstant(row) {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ConstantValue: row.ConstantValue,\r\n ModifiedBy: $rootScope.userId\r\n }\r\n ConstantService.UpdateConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n function RemoveConstant(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Remove the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n ConstantId: row.ConstantId,\r\n ActionBy: $rootScope.userId\r\n }\r\n ConstantService.DeleteConstant(obj).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.Message, \"Constants Update\");\r\n if (vm.viewTab) {\r\n switch (row.ConstantFor) {\r\n case 1:\r\n getLabourConstant();\r\n break;\r\n\r\n case 2:\r\n getMaterialConstant();\r\n break;\r\n\r\n case 3:\r\n getMachineryConstant();\r\n break;\r\n\r\n case 4:\r\n getConsumableConstant();\r\n break;\r\n }\r\n } else {\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n }\r\n\r\n } else\r\n $rootScope.showToaster('error', res.Message, \"Constants Update\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", \"Constants Update\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Update Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function Resubmit() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to ReSubmit the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n var obj = {\r\n ConstantId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n confirm.result.then(function () {\r\n ConstantService.Resubmit(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'ReSubmit Successfully', \"Constants\");\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't ReSubmit Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't ReSubmit Constants\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function Block() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Block the Constant', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n var obj = {\r\n ConstantId: selectRow(vm.tableIds),\r\n ModifiedBy: $rootScope.userId\r\n }\r\n\r\n confirm.result.then(function () {\r\n ConstantService.Block(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Blocked Successfully', \"Constants\");\r\n getAllConstants(vm.con.selectedIOCA.Id);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Block Constant\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Block Constants\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n\r\n function Reject(row) {\r\n var Constant = {\r\n ConstantId: row.ConstantId,\r\n IOCA_Id: row.IOCA_Id\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/constructionActivity/Constant/constantReject.html',\r\n controller: 'constantRejectCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return Constant;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n getAllConstants(row.IOCA_Id)\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('CPWDIocaCtrl', CPWDIocaCtrl);\r\n\r\n /** @ngInject */\r\n function CPWDIocaCtrl($rootScope, $scope, lodash, dialogs, AuthenticationService, $http, TypeOfCAService, CategoryofCAService, FieldofConstructionService,\r\n SubCategoryofCAService, VariableService, IocaService, UnitOfMeasurementService, UomParametersService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n // Properties \r\n vm.isEditing = false;\r\n vm.isAdding = false;\r\n vm.TypeOfCAList = [];\r\n vm.filter = {};\r\n vm.ioca = {};\r\n // vm.selectedUnit = {};\r\n vm.contractorScope = {};\r\n vm.isCombinationVerified = false;\r\n vm.UnitType = \"MKS\";\r\n vm.DocList = [];\r\n vm.isExist = false;\r\n // Methods\r\n vm.getSubCategoryCAListByCategoryId = getSubCategoryCAListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.getAllCombinations = getAllCombinations;\r\n vm.getUnitListByUOMId = getUnitListByUOMId;\r\n vm.selectVariable = selectVariable;\r\n vm.clearFilter = clearFilter;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.checkCombinationExist = checkCombinationExist;\r\n vm.saveIoca = saveIoca;\r\n vm.loadGrid = loadGrid;\r\n vm.editIOCA = editIOCA;\r\n vm.removeIOCA = removeIOCA;\r\n vm.getNonStdUnits = getNonStdUnits;\r\n vm.isDoc = false;\r\n vm.skip = skip;\r\n vm.resetForm = resetForm;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.clear = clear;\r\n vm.AddDocAttachment = AddDocAttachment;\r\n vm.removeIOCADoc = removeIOCADoc;\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n // resetForm();\r\n Init();\r\n ////////////////////\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }]\r\n\r\n function Init() {\r\n CountryService.getActiveCountry($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n\r\n UnitOfMeasurementService.GetAllStdUOM().then(function(res) {\r\n if (res.status === 200) {\r\n vm.UOM_MasterList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n }),\r\n function(err) {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.selectedCountryName.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n }\r\n }\r\n\r\n function loadGrid() {\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.selectedTypeOfAttribute.Code,\r\n }\r\n vm.IocaList = [];\r\n IocaService.getAllCpwdIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n function getSubCategoryCAListByCategoryId(CategoryId) {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n if (CategoryId !== undefined) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n if (SubCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n }\r\n\r\n function getAllCombinations() {\r\n debugger;\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.selectedTypeOfAttribute.Code,\r\n }\r\n VariableService.getAllCombinations(obj).then(function(res) {\r\n // console.log(res);\r\n if (res.status === 200) {\r\n vm.isAdding = true;\r\n if (res.data) {\r\n\r\n vm.rawCombinations = angular.copy(res.data.Combinations);\r\n vm.combinations = res.data.Combinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n createViewModel();\r\n if (vm.AttributeList.length === 0) {\r\n vm.isAdding = false;\r\n $rootScope.showToaster('warning', 'Type has no attribute', \"Warning!\");\r\n }\r\n } else {\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n });\r\n }\r\n\r\n function selectVariable(attribute, variable) {\r\n vm.isCombinationVerified = false;\r\n lodash.forEach(attribute.VariableList, function(variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n attribute.selectedVariable = variable.VariableName;\r\n filterVariables();\r\n }\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributeName] = attribute.selectedVariable;\r\n // console.log(JSON.stringify(vm.filter))\r\n });\r\n\r\n vm.combinations = lodash.filter(vm.combinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n lodash.forEach(attribute.VariableList, function(variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributeName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function clearFilter() {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n vm.filter = {};\r\n vm.combinations = vm.rawCombinations;\r\n vm.isDoc = false;\r\n createViewModel();\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a],\r\n VariableList: []\r\n }\r\n for (var c in vm.combinations) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.combinations[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.combinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n function getSelectedCombination() {\r\n var combination = {};\r\n\r\n for (var attribute in vm.AttributeList) {\r\n if (vm.AttributeList[attribute].VariableList[0].IsSelected)\r\n combination[vm.AttributeList[attribute].AttributeName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n else\r\n combination[vm.AttributeList[attribute].AttributeName] = '';\r\n }\r\n return combination;\r\n }\r\n\r\n function checkCombinationExist() {\r\n debugger;\r\n if (lodash.keys(vm.filter).length > 0) {\r\n var obj = {\r\n \"CA_CategoryId\": vm.selectedCategory.CategoryId,\r\n \"CA_SubCategoryId\": vm.selectedSubCategory.SubCategoryId,\r\n \"TypeOfCAId\": vm.selectedTypeOfCA.CA_TypeId,\r\n \"Properties\": getSelectedCombination(),\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code,\r\n }\r\n\r\n IocaService.checkCombinationExist(obj).then(function(res) {\r\n if (res.status == 200) {\r\n if (!res.data) {\r\n vm.isFormOpen = true;\r\n vm.isCombinationVerified = true;\r\n constuctLongDescription();\r\n } else {\r\n $rootScope.showToaster('error', 'IOCA already exist with given combination');\r\n }\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n }\r\n }, function(err) {\r\n\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', 'Please select atleast one variable');\r\n }\r\n }\r\n\r\n function getUnitListByUOMId(callback) {\r\n if (vm.selectedUom.UOM_Id !== undefined) {\r\n var Obj = {\r\n UnitType: vm.UnitType,\r\n UOM_Id: vm.selectedUom.UOM_Id\r\n }\r\n UnitOfMeasurementService.getAllUnits(Obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.selectedUnit = null;\r\n vm.UnitList = res.data;\r\n UomParametersService.getUOMParameterByUOmId(vm.selectedUom.UOM_Id).then(function(res) {\r\n vm.UnitsParameterList = res.data;\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Units\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Select UOM & Measurement Type', \"Units\");\r\n }\r\n }\r\n\r\n function editIOCA(row) {\r\n debugger\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.iocaToUpdate = angular.copy(row);\r\n vm.isEditing = true;\r\n vm.isAdding = false;\r\n vm.ioca.shortDescription = angular.copy(row.ShortDescription);\r\n vm.LongDes = row.LongDescription;\r\n // document.getElementById(\"shortText\").innerHTML = row.ShortDescription;\r\n // document.getElementById(\"longText\").innerHTML = row.LongDescription;\r\n vm.contractorScope = angular.copy(row.ContractorScope)\r\n vm.UnitType = angular.copy(row.UnitStandard);\r\n vm.IOCA_Id = angular.copy(row.Id);\r\n\r\n // Unit of Measurement Logic \r\n if (row.UnitId && row.UOM_ParametersId) {\r\n vm.UnitStd = 'S';\r\n for (var i in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[i].UOM_Id === row.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[i];\r\n }\r\n }\r\n\r\n getUnitListByUOMId(function() {\r\n\r\n for (var c in vm.UnitList) {\r\n if (vm.UnitList[c].UnitId === row.UnitId) {\r\n vm.selectedUnit = vm.UnitList[c];\r\n }\r\n }\r\n\r\n for (var i in vm.UnitsParameterList) {\r\n if (vm.UnitsParameterList[i].UOM_ParametersId === row.UOM_ParametersId) {\r\n vm.selectedUnitAbbreviation = vm.UnitsParameterList[i];\r\n }\r\n }\r\n });\r\n } else {\r\n vm.UnitStd = 'NS';\r\n getNonStdUnits(function() {\r\n for (var i in vm.NonStdUnitsList) {\r\n if (vm.NonStdUnitsList[i].UOM_Id === row.UOM_Id) {\r\n vm.selectedUom = vm.NonStdUnitsList[i];\r\n }\r\n }\r\n })\r\n }\r\n getIOCADocById(row.Id);\r\n }\r\n\r\n function removeIOCA(ioca) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n IocaService.removeCpwdIoca(ioca.Id).then(function(res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'IOCA Deleted Successfully', \"Success\");\r\n loadGrid();\r\n } else {\r\n dialogs.error('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function getIOCADocById(IOCA_Id) {\r\n IocaService.getIOCADocById(IOCA_Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DocList = res.data;\r\n vm.isDoc = true;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n\r\n }\r\n\r\n\r\n function saveIoca() {\r\n if (!vm.isEditing) {\r\n var ioca = {\r\n \"CA_CategoryId\": vm.selectedCategory.CategoryId,\r\n \"CA_SubCategoryId\": vm.selectedSubCategory.SubCategoryId,\r\n \"TypeOfCAId\": vm.selectedTypeOfCA.CA_TypeId,\r\n \"ShortDescription\": vm.ioca.shortDescription,\r\n \"LongDescription\": document.getElementById(\"longText\").innerHTML,\r\n \"CountryId\": vm.selectedCountryName.CountryId,\r\n \"ContractorScope\": vm.contractorScope,\r\n \"Properties\": getSelectedCombination(),\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code,\r\n \"CPWDCode\": vm.CPWDCode\r\n }\r\n if (vm.UnitStd === 'S') {\r\n ioca.UnitId = (vm.selectedUnit) ? vm.selectedUnit.UnitId : \"\";\r\n ioca.UOM_ParametersId = (vm.selectedUnitAbbreviation) ? vm.selectedUnitAbbreviation.UOM_ParametersId : \"\";\r\n } else if (vm.UnitStd === 'NS')\r\n ioca.UOM_Id = (vm.selectedUom) ? vm.selectedUom.UOM_Id : \"\";\r\n vm.isAdding = vm.isEditing = false;\r\n\r\n IocaService.SaveCpwdIoca(ioca).then(function(res) {\r\n if (res.status === 200) {\r\n //$rootScope.showToaster('success', \"IOCA added successfully\", \"\");\r\n vm.IOCA_Id = res.data.IOCA.IOCA_Id;\r\n vm.isAdding = vm.isEditing = false;\r\n vm.isCombinationVerified = false;\r\n //vm.isDoc = true;\r\n loadGrid();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', \"Cannot add ioca, TryAgain!\", 'Error');\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Cannot add ioca, TryAgain!\", 'Error');\r\n });\r\n\r\n\r\n } else {\r\n vm.iocaToUpdate.ShortDescription = vm.ioca.shortDescription;\r\n vm.iocaToUpdate.LongDescription = document.getElementById(\"longText\").innerHTML;\r\n vm.iocaToUpdate.UnitId = (vm.selectedUnit) ? vm.selectedUnit.UnitId : \"\";\r\n vm.iocaToUpdate.UOM_ParametersId = (vm.selectedUnitAbbreviation) ? vm.selectedUnitAbbreviation.UOM_ParametersId : \"\";\r\n vm.iocaToUpdate.ContractorScope = vm.contractorScope;\r\n vm.iocaToUpdate.CPWDCode = vm.CPWDCode\r\n\r\n IocaService.updateCpwdIoca(vm.iocaToUpdate).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', \"IOCA updated successfully\", \"\");\r\n vm.isAdding = vm.isEditing = false;\r\n vm.saveIocaDoc();\r\n // vm.saveIoca();\r\n // loadGrid(); \r\n } else {\r\n $rootScope.showToaster('error', \"Cannot update ioca, TryAgain!\", 'Error');\r\n vm.isAdding = vm.isEditing = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Cannot update ioca, TryAgain!\", 'Error');\r\n vm.isAdding = vm.isEditing = false;\r\n });\r\n }\r\n }\r\n\r\n function constuctLongDescription() {\r\n debugger;\r\n vm.filter = {};\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n vm.filter[attribute.AttributeName] = attribute.VariableList[0].VariableName;\r\n });\r\n\r\n var keys = lodash.keys(vm.filter);\r\n var temp = '';\r\n for (var i in keys) {\r\n temp += vm.filter[keys[i]] + ' of ' + keys[i]\r\n if (i != keys.length - 1)\r\n temp += ' of ';\r\n }\r\n vm.LongDes = temp;\r\n }\r\n\r\n function getNonStdUnits(callBack) {\r\n vm.selectedUom = null;\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function(res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitsList = res.data;\r\n if (callBack)\r\n callBack()\r\n } else {}\r\n }, function(err) {});\r\n }\r\n\r\n $scope.fileChanged = function(event) {\r\n if (event)\r\n if (event.target.files[0].size < 50000000) {\r\n vm.selectedFile = event.target.files[0];\r\n } else {\r\n dialogs.notify('Warning', 'Your File is larger then 50 MB', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function AddDocAttachment(str) {\r\n vm.isLoading = true;\r\n vm.isExistCheck = 0;\r\n for (var i in vm.DocList) {\r\n if (vm.DocList[i].DocType === str) {\r\n dialogs.notify('Warning', 'Already Document Uploaded for this Type' + str, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isExist = true;\r\n vm.isExistCheck = 1;\r\n vm.isLoading = false;\r\n } else {\r\n vm.isExist = false;\r\n }\r\n }\r\n if (str === 'STD.Procedure') {\r\n vm.DocName = vm.DocNameStd\r\n }\r\n if (str === 'STD.Procedurevid') {\r\n vm.DocName = vm.DocNameStdVid\r\n }\r\n if (str === 'QualityControlPro') {\r\n vm.DocName = vm.DocNameQc\r\n }\r\n if (str === 'QualityControlProVideo') {\r\n vm.DocName = vm.DocNameQcVideo\r\n }\r\n if (!vm.isExist && vm.isExistCheck != 1) {\r\n var obj = {\r\n IOCA_Id: vm.IOCA_Id,\r\n DocType: str,\r\n DocName: vm.DocName\r\n }\r\n if (vm.isEditing)\r\n obj.isAdd = 1\r\n else\r\n obj.isAdd = 0\r\n var formData = new FormData();\r\n formData.append('Attachment', vm.selectedFile)\r\n formData.append('IOCA_Id', obj.IOCA_Id)\r\n formData.append('DocType', obj.DocType)\r\n formData.append('IsAdd', obj.isAdd)\r\n formData.append('DocName', obj.DocName)\r\n IocaService.UploadDoc(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"IOCA Document\");\r\n var selectedFileList = res.data;\r\n vm.isLoading = false;\r\n obj.DocUrl = selectedFileList.result;\r\n vm.DocList.push(obj);\r\n vm.isExistCheck = 0;\r\n vm.isExist = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't IOCA Document\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.saveIocaDoc = function() {\r\n var obj = {\r\n IOCA_DocList: JSON.stringify(vm.DocList),\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n IocaService.AddIOCADoc(obj).then(function(res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'IOCA Document Inserted Successfully', \"Success\");\r\n vm.isDoc = false;\r\n loadGrid();\r\n clear();\r\n vm.DocList = [];\r\n } else {\r\n dialogs.error('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n function removeIOCADoc(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n var obj = {\r\n IOCA_Id: row.IOCA_Id,\r\n DocType: row.DocType,\r\n DocUrl: row.DocUrl,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n confirm.result.then(function() {\r\n IocaService.removeIocaDoc(obj).then(function(res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n var index = vm.DocList.indexOf(row);\r\n vm.DocList.splice(index, 1);\r\n vm.isExistCheck = 0;\r\n vm.isExist = false;\r\n $rootScope.showToaster('success', 'IOCA Document Deleted Successfully', \"Success\");\r\n } else {\r\n dialogs.error('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function() {});\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.CategoryList = null;\r\n vm.SubCategoryList = null;\r\n vm.TypeOfCAList = null;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.CategoryList = null;\r\n vm.SubCategoryList = null;\r\n vm.TypeOfCAList = null;\r\n vm.selectedFOC = null;\r\n ///////////////////////////////////\r\n // vm.selectedCountryName = null;\r\n // vm.selectedCategory = null;\r\n // vm.selectedSubCategory = null;\r\n // vm.selectedTypeOfCA = null;\r\n // vm.selectedTypeOfAttribute = null;\r\n }\r\n\r\n function resetForm() {\r\n clearFilter();\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n vm.selectedUnit = null;\r\n //vm.selectedTypeOfAttribute = null;\r\n vm.selectedUom = null;\r\n //vm.ioca = {};\r\n vm.selectedParameter = null;\r\n vm.selectedUnitAbbreviation = null;\r\n vm.contractorScope = {}\r\n vm.ioca = {};\r\n }\r\n\r\n function skip() {\r\n loadGrid();\r\n clear();\r\n vm.isDoc = false;\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('FieldofConstructionCtrl', FieldofConstructionCtrl);\r\n\r\n /** @ngInject */\r\n function FieldofConstructionCtrl($http, $rootScope, lodash, dialogs, FieldofConstructionService, AuthenticationService,$scope) {\r\n var vm = this;\r\n\r\n \r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.focList = [];\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editFOC = editFOC;\r\n vm.changeActiveFOC = changeActiveFOC;\r\n vm.removeFOC = removeFOC;\r\n vm.SaveFOC = SaveFOC;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info','Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n function Init() {\r\n FieldofConstructionService.getAllFieldofConstruction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.foc = {};\r\n \r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.foc = {};\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.FOCForm.$setUntouched();\r\n }\r\n\r\n function editFOC(foc) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.foc = angular.copy(foc);\r\n }\r\n\r\n function changeActiveFOC(foc) {\r\n var msg = 'Are sure you want to ' + ((foc.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((foc.IsActive) ? 'Deactive' : 'Active') + 'Field of Construction Successfully.'\r\n var confirm = dialogs.confirm('Confirm', msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n FieldofConstructionService.changeActiveFieldofConstruct(foc.FieldofConstructionId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Field of Construction\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Active Field of Construction\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Active Field of Construction.If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function removeFOC(foc) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n FieldofConstructionService.DeleteFoc(foc.FieldofConstructionId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Field of Construction\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Field of Construction\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Field of Construction. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveFOC(foc) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n foc.CreatedBy = loggedUser.UserId;\r\n FieldofConstructionService.AddFieldofConstruction(foc).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Field of Construction\");\r\n vm.isFormOpen = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Field of Construction\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n\r\n } else {\r\n foc.ModifiedBy = loggedUser.UserId;\r\n FieldofConstructionService.EditFOC(foc).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Field of Construction\");\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Field of Construction\");\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n }\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('IocaCtrl', IocaCtrl);\r\n\r\n /** @ngInject */\r\n function IocaCtrl($rootScope, $scope, lodash, dialogs, AuthenticationService, $http, TypeOfCAService, CategoryofCAService, FieldofConstructionService,\r\n SubCategoryofCAService, VariableService, IocaService, UnitOfMeasurementService, UomParametersService, CountryService, ICANTypicalDescription) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n // Properties \r\n vm.isEditing = false;\r\n vm.isAdding = false;\r\n vm.TypeOfCAList = [];\r\n vm.filter = {};\r\n vm.ioca = {};\r\n // vm.selectedUnit = {};\r\n vm.contractorScope = {};\r\n vm.isCombinationVerified = false;\r\n vm.UnitType = \"MKS\";\r\n vm.DocList = [];\r\n vm.isExist = false;\r\n // Methods\r\n vm.getSubCategoryCAListByCategoryId = getSubCategoryCAListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.getAllCombinations = getAllCombinations;\r\n vm.getUnitListByUOMId = getUnitListByUOMId;\r\n vm.selectVariable = selectVariable;\r\n vm.clearFilter = clearFilter;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.checkCombinationExist = checkCombinationExist;\r\n vm.saveIoca = saveIoca;\r\n vm.loadGrid = loadGrid;\r\n vm.editIOCA = editIOCA;\r\n vm.removeIOCA = removeIOCA;\r\n vm.getNonStdUnits = getNonStdUnits;\r\n vm.isDoc = false;\r\n vm.skip = skip;\r\n vm.resetForm = resetForm;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.clear = clear;\r\n vm.AddDocAttachment = AddDocAttachment;\r\n vm.removeIOCADoc = removeIOCADoc;\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n var SearchTxt = '';\r\n // resetForm();\r\n Init();\r\n ////////////////////\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }]\r\n\r\n function Init() {\r\n CountryService.getActiveCountry($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n\r\n UnitOfMeasurementService.GetAllStdUOM().then(function(res) {\r\n if (res.status === 200) {\r\n vm.UOM_MasterList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n }),\r\n function(err) {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.selectedCountryName.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n }\r\n }\r\n\r\n function loadGrid() {\r\n vm.isLoading = true;\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.selectedTypeOfAttribute.Code,\r\n }\r\n vm.IocaList = [];\r\n IocaService.getAllIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n function getSubCategoryCAListByCategoryId(CategoryId) {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n if (CategoryId !== undefined) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n if (SubCategoryId !== undefined) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n vm.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.selectedTypeOfAttribute = null;\r\n }\r\n\r\n function getAllCombinations() {\r\n debugger;\r\n SearchTxt = '';\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.selectedTypeOfAttribute.Code,\r\n }\r\n VariableService.getAllCombinations(obj).then(function(res) {\r\n // console.log(res);\r\n if (res.status === 200) {\r\n vm.isAdding = true;\r\n if (res.data) {\r\n vm.rawCombinations = angular.copy(res.data.Combinations);\r\n vm.combinations = res.data.Combinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n createViewModel();\r\n\r\n if (vm.AttributeList.length === 0) {\r\n vm.isAdding = false;\r\n $rootScope.showToaster('warning', 'Type has no attribute', \"Warning!\");\r\n }\r\n GetDescription()\r\n\r\n } else {\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n });\r\n }\r\n\r\n function GetDescription() {\r\n var obj = {\r\n CA_CategoryId: vm.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.selectedTypeOfAttribute.Code,\r\n }\r\n ICANTypicalDescription.GetDescription(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data;\r\n if (vm.DescriptionList) {\r\n vm.ScopeList = JSON.parse(vm.DescriptionList.Scope)\r\n vm.contractorScope = angular.copy(vm.ScopeList)\r\n vm.LongDes = vm.contractorScope.TypicalDes\r\n } else {\r\n vm.LongDes = ''\r\n vm.Des = {\r\n \"L\": '',\r\n \"C1\": '',\r\n \"C2\": '',\r\n \"C3\": '',\r\n \"C4\": '',\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n function selectVariable(attribute, variable) {\r\n debugger;\r\n\r\n // vm.selectedattribute =attribute;\r\n // vm.Selectedvariable = variable;\r\n vm.isCombinationVerified = false;\r\n lodash.forEach(attribute.VariableList, function(variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n\r\n\r\n attribute.selectedVariable = variable.VariableName;\r\n\r\n SearchTxt = SearchTxt + ' ' + attribute.selectedVariable;\r\n\r\n if (variable.IsSelected) {\r\n vm.LongDescription = angular.copy(SearchTxt);\r\n } else {\r\n vm.Same = angular.copy(vm.Same);\r\n }\r\n\r\n filterVariables();\r\n }\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributeName] = attribute.selectedVariable;\r\n // console.log(JSON.stringify(vm.filter))\r\n });\r\n\r\n vm.combinations = lodash.filter(vm.combinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n lodash.forEach(attribute.VariableList, function(variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributeName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function clearFilter() {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n vm.filter = {};\r\n vm.combinations = vm.rawCombinations;\r\n vm.isDoc = false;\r\n GetDescription();\r\n createViewModel();\r\n vm.LongDescription = null;\r\n SearchTxt = '';\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a],\r\n AttributeCode: \"##A\" + [parseInt(a) + 1] + \"##\",\r\n VariableList: []\r\n }\r\n for (var c in vm.combinations) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.combinations[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.combinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n function getSelectedCombination() {\r\n var combination = {};\r\n\r\n for (var attribute in vm.AttributeList) {\r\n if (vm.AttributeList[attribute].VariableList[0].IsSelected)\r\n combination[vm.AttributeList[attribute].AttributeName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n else\r\n combination[vm.AttributeList[attribute].AttributeName] = '';\r\n }\r\n return combination;\r\n }\r\n\r\n function checkCombinationExist() {\r\n debugger;\r\n if (lodash.keys(vm.filter).length > 0) {\r\n var obj = {\r\n \"CA_CategoryId\": vm.selectedCategory.CategoryId,\r\n \"CA_SubCategoryId\": vm.selectedSubCategory.SubCategoryId,\r\n \"TypeOfCAId\": vm.selectedTypeOfCA.CA_TypeId,\r\n \"Properties\": getSelectedCombination(),\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code,\r\n }\r\n\r\n IocaService.checkCombinationExist(obj).then(function(res) {\r\n if (res.status == 200) {\r\n if (!res.data) {\r\n vm.isFormOpen = true;\r\n vm.isCombinationVerified = true;\r\n constuctLongDescription();\r\n } else {\r\n $rootScope.showToaster('error', 'IOCA already exist with given combination');\r\n }\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n }\r\n }, function(err) {\r\n\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', 'Please select atleast one variable');\r\n }\r\n }\r\n\r\n function getUnitListByUOMId(callback) {\r\n if (vm.selectedUom.UOM_Id !== undefined) {\r\n var Obj = {\r\n UnitType: vm.UnitType,\r\n UOM_Id: vm.selectedUom.UOM_Id\r\n }\r\n UnitOfMeasurementService.getAllUnits(Obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.selectedUnit = null;\r\n vm.UnitList = res.data;\r\n UomParametersService.getUOMParameterByUOmId(vm.selectedUom.UOM_Id).then(function(res) {\r\n vm.UnitsParameterList = res.data;\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Units\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Select UOM & Measurement Type', \"Units\");\r\n }\r\n }\r\n\r\n function editIOCA(row) {\r\n debugger\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.iocaToUpdate = angular.copy(row);\r\n vm.isEditing = true;\r\n vm.isAdding = false;\r\n vm.ioca.shortDescription = angular.copy(row.ShortDescription);\r\n vm.LongDes = row.LongDescription;\r\n // document.getElementById(\"shortText\").innerHTML = row.ShortDescription;\r\n // document.getElementById(\"longText\").innerHTML = row.LongDescription;\r\n vm.contractorScope = angular.copy(row.ContractorScope)\r\n vm.UnitType = angular.copy(row.UnitStandard);\r\n vm.IOCA_Id = angular.copy(row.Id);\r\n\r\n // Unit of Measurement Logic \r\n if (row.UnitId && row.UOM_ParametersId) {\r\n vm.UnitStd = 'S';\r\n for (var i in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[i].UOM_Id === row.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[i];\r\n }\r\n }\r\n\r\n getUnitListByUOMId(function() {\r\n\r\n for (var c in vm.UnitList) {\r\n if (vm.UnitList[c].UnitId === row.UnitId) {\r\n vm.selectedUnit = vm.UnitList[c];\r\n }\r\n }\r\n\r\n for (var i in vm.UnitsParameterList) {\r\n if (vm.UnitsParameterList[i].UOM_ParametersId === row.UOM_ParametersId) {\r\n vm.selectedUnitAbbreviation = vm.UnitsParameterList[i];\r\n }\r\n }\r\n });\r\n } else {\r\n vm.UnitStd = 'NS';\r\n getNonStdUnits(function() {\r\n for (var i in vm.NonStdUnitsList) {\r\n if (vm.NonStdUnitsList[i].UOM_Id === row.UOM_Id) {\r\n vm.selectedUom = vm.NonStdUnitsList[i];\r\n }\r\n }\r\n })\r\n }\r\n getIOCADocById(row.Id);\r\n }\r\n\r\n function removeIOCA(ioca) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n IocaService.removeIoca(ioca.Id).then(function(res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'IOCA Deleted Successfully', \"Success\");\r\n loadGrid();\r\n } else {\r\n dialogs.error('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function getIOCADocById(IOCA_Id) {\r\n IocaService.getIOCADocById(IOCA_Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DocList = res.data;\r\n vm.isDoc = true;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n\r\n }\r\n\r\n\r\n function saveIoca() {\r\n SearchTxt = '';\r\n var ContractorScope = {\r\n C1: document.getElementById(\"C1\").innerHTML,\r\n C2: document.getElementById(\"C2\").innerHTML,\r\n C3: document.getElementById(\"C3\").innerHTML,\r\n C4: document.getElementById(\"C4\").innerHTML,\r\n L: document.getElementById(\"L\").innerHTML\r\n }\r\n\r\n if (!vm.isEditing) {\r\n var ioca = {\r\n \"CA_CategoryId\": vm.selectedCategory.CategoryId,\r\n \"CA_SubCategoryId\": vm.selectedSubCategory.SubCategoryId,\r\n \"TypeOfCAId\": vm.selectedTypeOfCA.CA_TypeId,\r\n \"ShortDescription\": vm.ioca.shortDescription,\r\n \"LongDescription\": document.getElementById(\"longText\").innerHTML,\r\n \"CountryId\": vm.selectedCountryName.CountryId,\r\n \"ContractorScope\": ContractorScope,\r\n \"Properties\": getSelectedCombination(),\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code\r\n }\r\n if (vm.UnitStd === 'S') {\r\n ioca.UnitId = (vm.selectedUnit) ? vm.selectedUnit.UnitId : \"\";\r\n ioca.UOM_ParametersId = (vm.selectedUnitAbbreviation) ? vm.selectedUnitAbbreviation.UOM_ParametersId : \"\";\r\n } else if (vm.UnitStd === 'NS')\r\n ioca.UOM_Id = (vm.selectedUom) ? vm.selectedUom.UOM_Id : \"\";\r\n vm.isAdding = vm.isEditing = false;\r\n IocaService.saveIoca(ioca).then(function(res) {\r\n if (res.status === 200) {\r\n //$rootScope.showToaster('success', \"IOCA added successfully\", \"\");\r\n vm.IOCA_Id = res.data.IOCA.IOCA_Id;\r\n vm.isAdding = vm.isEditing = false;\r\n vm.isCombinationVerified = false;\r\n //vm.isDoc = true;\r\n loadGrid();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', \"Cannot add ioca, TryAgain!\", 'Error');\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Cannot add ioca, TryAgain!\", 'Error');\r\n });\r\n\r\n\r\n } else {\r\n vm.iocaToUpdate.ShortDescription = vm.ioca.shortDescription;\r\n vm.iocaToUpdate.LongDescription = document.getElementById(\"longText\").innerHTML;\r\n vm.iocaToUpdate.UnitId = (vm.selectedUnit) ? vm.selectedUnit.UnitId : \"\";\r\n vm.iocaToUpdate.UOM_ParametersId = (vm.selectedUnitAbbreviation) ? vm.selectedUnitAbbreviation.UOM_ParametersId : \"\";\r\n vm.iocaToUpdate.ContractorScope = ContractorScope;\r\n if (vm.UnitStd === 'S') {\r\n vm.iocaToUpdate.UnitId = (vm.selectedUnit) ? vm.selectedUnit.UnitId : \"\";\r\n vm.iocaToUpdate.UOM_ParametersId = (vm.selectedUnitAbbreviation) ? vm.selectedUnitAbbreviation.UOM_ParametersId : \"\";\r\n } else if (vm.UnitStd === 'NS')\r\n vm.iocaToUpdate.UOM_Id = (vm.selectedUom) ? vm.selectedUom.UOM_Id : \"\";\r\n\r\n IocaService.updateIoca(vm.iocaToUpdate).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', \"IOCA updated successfully\", \"\");\r\n vm.isAdding = vm.isEditing = false;\r\n vm.saveIocaDoc();\r\n // vm.saveIoca();\r\n // loadGrid(); \r\n } else {\r\n $rootScope.showToaster('error', \"Cannot update ioca, TryAgain!\", 'Error');\r\n vm.isAdding = vm.isEditing = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Cannot update ioca, TryAgain!\", 'Error');\r\n vm.isAdding = vm.isEditing = false;\r\n });\r\n }\r\n }\r\n\r\n function constuctLongDescription() {\r\n debugger;\r\n ///////////////////////\r\n\r\n var rv = {};\r\n for (var i in vm.AttributeList) {\r\n for (var j in vm.AttributeList[i].VariableList) {\r\n if (vm.AttributeList[i].VariableList[j].IsSelected)\r\n rv[vm.AttributeList[i].AttributeCode] = \"\" + vm.AttributeList[i].VariableList[j].VariableName + \"\"\r\n }\r\n }\r\n var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n vm.LongDes = vm.LongDes.replace(re, function(matched) {\r\n return rv[matched];\r\n });\r\n\r\n var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n vm.contractorScope.L = vm.contractorScope.L.replace(re, function(matched) {\r\n return rv[matched];\r\n });\r\n var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n vm.contractorScope.C1 = vm.contractorScope.C1.replace(re, function(matched) {\r\n return rv[matched];\r\n });\r\n\r\n var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n vm.contractorScope.C2 = vm.contractorScope.C2.replace(re, function(matched) {\r\n return rv[matched];\r\n });\r\n\r\n var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n vm.contractorScope.C3 = vm.contractorScope.C3.replace(re, function(matched) {\r\n return rv[matched];\r\n });\r\n var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n vm.contractorScope.C4 = vm.contractorScope.C4.replace(re, function(matched) {\r\n return rv[matched];\r\n });\r\n\r\n\r\n vm.filter = {};\r\n lodash.forEach(vm.AttributeList, function(attribute) {\r\n vm.filter[attribute.AttributeName] = attribute.VariableList[0].VariableName;\r\n });\r\n\r\n //////////////// \r\n // var keys = lodash.keys(vm.filter);\r\n // var temp = '';\r\n // for (var i in keys) {\r\n // temp += vm.filter[keys[i]] + ' of ' + keys[i]\r\n // if (i != keys.length - 1)\r\n // temp += ' of ';\r\n // }\r\n // vm.LongDes = temp;\r\n }\r\n\r\n function getNonStdUnits(callBack) {\r\n vm.selectedUom = null;\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function(res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitsList = res.data;\r\n if (callBack)\r\n callBack()\r\n } else {}\r\n }, function(err) {});\r\n }\r\n\r\n $scope.fileChanged = function(event) {\r\n if (event)\r\n if (event.target.files[0].size < 50000000) {\r\n vm.selectedFile = event.target.files[0];\r\n } else {\r\n dialogs.notify('Warning', 'Your File is larger then 50 MB', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function AddDocAttachment(str) {\r\n vm.isLoading = true;\r\n vm.isExistCheck = 0;\r\n for (var i in vm.DocList) {\r\n if (vm.DocList[i].DocType === str) {\r\n dialogs.notify('Warning', 'Already Document Uploaded for this Type' + str, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isExist = true;\r\n vm.isExistCheck = 1;\r\n vm.isLoading = false;\r\n } else {\r\n vm.isExist = false;\r\n }\r\n }\r\n if (str === 'STD.Procedure') {\r\n vm.DocName = vm.DocNameStd\r\n }\r\n if (str === 'STD.Procedurevid') {\r\n vm.DocName = vm.DocNameStdVid\r\n }\r\n if (str === 'QualityControlPro') {\r\n vm.DocName = vm.DocNameQc\r\n }\r\n if (str === 'QualityControlProVideo') {\r\n vm.DocName = vm.DocNameQcVideo\r\n }\r\n if (!vm.isExist && vm.isExistCheck != 1) {\r\n var obj = {\r\n IOCA_Id: vm.IOCA_Id,\r\n DocType: str,\r\n DocName: vm.DocName\r\n }\r\n if (vm.isEditing)\r\n obj.isAdd = 1\r\n else\r\n obj.isAdd = 0\r\n var formData = new FormData();\r\n formData.append('Attachment', vm.selectedFile)\r\n formData.append('IOCA_Id', obj.IOCA_Id)\r\n formData.append('DocType', obj.DocType)\r\n formData.append('IsAdd', obj.isAdd)\r\n formData.append('DocName', obj.DocName)\r\n IocaService.UploadDoc(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"IOCA Document\");\r\n var selectedFileList = res.data;\r\n vm.isLoading = false;\r\n obj.DocUrl = selectedFileList.result;\r\n vm.DocList.push(obj);\r\n vm.isExistCheck = 0;\r\n vm.isExist = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't IOCA Document\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.saveIocaDoc = function() {\r\n var obj = {\r\n IOCA_DocList: JSON.stringify(vm.DocList),\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n IocaService.AddIOCADoc(obj).then(function(res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', 'IOCA Document Inserted Successfully', \"Success\");\r\n vm.isDoc = false;\r\n loadGrid();\r\n clear();\r\n vm.DocList = [];\r\n } else {\r\n dialogs.error('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n function removeIOCADoc(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n var obj = {\r\n IOCA_Id: row.IOCA_Id,\r\n DocType: row.DocType,\r\n DocUrl: row.DocUrl,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n confirm.result.then(function() {\r\n IocaService.removeIocaDoc(obj).then(function(res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n var index = vm.DocList.indexOf(row);\r\n vm.DocList.splice(index, 1);\r\n vm.isExistCheck = 0;\r\n vm.isExist = false;\r\n $rootScope.showToaster('success', 'IOCA Document Deleted Successfully', \"Success\");\r\n } else {\r\n dialogs.error('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function() {});\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.CategoryList = null;\r\n vm.SubCategoryList = null;\r\n vm.TypeOfCAList = null;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.CategoryList = null;\r\n vm.SubCategoryList = null;\r\n vm.TypeOfCAList = null;\r\n vm.selectedFOC = null;\r\n ///////////////////////////////////\r\n // vm.selectedCountryName = null;\r\n // vm.selectedCategory = null;\r\n // vm.selectedSubCategory = null;\r\n // vm.selectedTypeOfCA = null;\r\n // vm.selectedTypeOfAttribute = null;\r\n }\r\n\r\n function resetForm() {\r\n clearFilter();\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n vm.selectedUnit = null;\r\n //vm.selectedTypeOfAttribute = null;\r\n vm.selectedUom = null;\r\n //vm.ioca = {};\r\n vm.selectedParameter = null;\r\n vm.selectedUnitAbbreviation = null;\r\n vm.contractorScope = {}\r\n vm.ioca = {};\r\n }\r\n\r\n function skip() {\r\n loadGrid();\r\n clear();\r\n vm.isDoc = false;\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('ICANTypicalDescriptionCtrl', ICANTypicalDescriptionCtrl);\r\n\r\n /** @ngInject */\r\n function ICANTypicalDescriptionCtrl($rootScope, $state, $scope, lodash, dialogs, $http, VariableService, CategoryofCAService, FieldofConstructionService,\r\n AuthenticationService, SubCategoryofCAService, TypeOfCAService, CountryService, AttributeService,\r\n ICANTypicalDescription, UnitOfMeasurementService, UomParametersService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n $scope.myFunct = function(event, myValue) {\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('error', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n // End of Pagination code\r\n\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isAdding = false;\r\n\r\n $rootScope.isLogin = false;\r\n vm.AttributeList = [];\r\n vm.UnitType = \"MKS\";\r\n // Methods\r\n vm.getAttributeListByTypeOfAttribute = getAttributeListByTypeOfAttribute;\r\n vm.clear = clear;\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.SaveIcan = SaveIcan;\r\n vm.DeleteIcan = DeleteIcan\r\n vm.Des = {\r\n \"TypicalDes\": '',\r\n \"L\": '',\r\n \"C1\": '',\r\n \"C2\": '',\r\n \"C3\": '',\r\n \"C4\": '',\r\n }\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n /*unit of measurement method */\r\n vm.getNonStdUnits = getNonStdUnits;\r\n vm.getUnitListByUOMId = getUnitListByUOMId;\r\n vm.createNonCombinations = createNonCombinations;\r\n\r\n Init();\r\n\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: \"Generic\", Code: \"G\" }, { TypeOfAttributeName: \"Specific\", Code: \"S\" }];\r\n\r\n function Init() {\r\n CountryService.getActiveCountry($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n\r\n UnitOfMeasurementService.GetAllStdUOM().then(function(res) {\r\n if (res.status === 200) {\r\n vm.UOM_MasterList = res.data;\r\n // console.log(vm.UOM_MasterList)\r\n } else {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n }),\r\n function(err) {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n vm.ican.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ican.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ican.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.ican.selectedTypeOfAttribute = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Country Name available for ' + vm.ican.selectedCountryName.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n } else {\r\n vm.ican.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.ican.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ican.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.ican.selectedTypeOfAttribute = null;\r\n }\r\n }\r\n\r\n function getSubCategoryListByCategoryId(CategoryId, callback) {\r\n vm.ican.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ican.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.ican.selectedTypeOfAttribute = null;\r\n if (CategoryId) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n vm.ican.selectedSubCategory = undefined;\r\n vm.ican.selectedTypeOfCA = undefined;\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory Of CA available for ' + vm.ican.selectedCategory.CategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.ican.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.ican.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.ican.selectedTypeOfAttribute = null;\r\n }\r\n\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId, callback) {\r\n vm.ican.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.ican.selectedTypeOfAttribute = null;\r\n if (SubCategoryId) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n vm.ican.selectedTypeOfCA = undefined;\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.ican.selectedSubCategory.SubCategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.ican.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.ican.selectedTypeOfAttribute = null;\r\n }\r\n\r\n }\r\n\r\n function getAttributeListByTypeOfAttribute() {\r\n debugger;\r\n var obj = {\r\n CA_CategoryId: vm.ican.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.ican.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.ican.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.ican.selectedTypeOfAttribute.Code\r\n }\r\n VariableService.getAllCombinations(obj).then(function(res) {\r\n // console.log(res);\r\n if (res.status === 200) {\r\n if (res.data) {\r\n\r\n vm.rawCombinations = angular.copy(res.data.Combinations);\r\n vm.combinations = res.data.Combinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n createViewModel();\r\n if (vm.AttributeList.length === 0) {\r\n //$rootScope.showToaster('warning', 'Type has no attribute', \"Warning!\");\r\n AttributeService.getAllAttribute(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.rawAttrList = res.data.Attribute;\r\n createNonCombinations();\r\n if (vm.rawAttrList.length < 1) {\r\n dialogs.notify('Warning', 'No Attribute available for ' + vm.ican.selectedTypeOfCA.CA_TypeName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n\r\n /////////////////////////\r\n obj.SpecType = obj.Code\r\n ICANTypicalDescription.GetDescription(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data;\r\n if (vm.DescriptionList) {\r\n vm.ScopeList = JSON.parse(vm.DescriptionList.Scope)\r\n vm.Des = angular.copy(vm.ScopeList)\r\n } else {\r\n vm.Des = {\r\n \"TypicalDes\": '',\r\n \"L\": '',\r\n \"C1\": '',\r\n \"C2\": '',\r\n \"C3\": '',\r\n \"C4\": '',\r\n }\r\n }\r\n vm.isLoading = false;\r\n if (vm.DescriptionList != null) {\r\n // Unit of Measurement Logic \r\n if (vm.DescriptionList.UnitId && vm.DescriptionList.UOM_ParametersId) {\r\n vm.UnitStd = 'S';\r\n for (var i in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[i].UOM_Id === vm.DescriptionList.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[i];\r\n }\r\n }\r\n\r\n getUnitListByUOMId(function() {\r\n\r\n for (var c in vm.UnitList) {\r\n if (vm.UnitList[c].UnitId === vm.DescriptionList.UnitId) {\r\n vm.selectedUnit = vm.UnitList[c];\r\n }\r\n }\r\n\r\n for (var i in vm.UnitsParameterList) {\r\n if (vm.UnitsParameterList[i].UOM_ParametersId === vm.DescriptionList.UOM_ParametersId) {\r\n vm.selectedUnitAbbreviation = vm.UnitsParameterList[i];\r\n }\r\n }\r\n });\r\n } else {\r\n vm.UnitStd = 'NS';\r\n getNonStdUnits(function() {\r\n for (var i in vm.NonStdUnitsList) {\r\n if (vm.NonStdUnitsList[i].UOM_Id === vm.DescriptionList.UOM_Id) {\r\n vm.selectedUom = vm.NonStdUnitsList[i];\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n }\r\n });\r\n ///////////////////////\r\n }\r\n })\r\n }\r\n\r\n /////////////////////////\r\n obj.SpecType = obj.Code\r\n ICANTypicalDescription.GetDescription(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data;\r\n if (vm.DescriptionList) {\r\n vm.ScopeList = JSON.parse(vm.DescriptionList.Scope)\r\n vm.Des = angular.copy(vm.ScopeList)\r\n } else {\r\n vm.Des = {\r\n \"TypicalDes\": '',\r\n \"L\": '',\r\n \"C1\": '',\r\n \"C2\": '',\r\n \"C3\": '',\r\n \"C4\": '',\r\n }\r\n }\r\n vm.isLoading = false;\r\n if (vm.DescriptionList != null) {\r\n // Unit of Measurement Logic \r\n if (vm.DescriptionList.UnitId && vm.DescriptionList.UOM_ParametersId) {\r\n vm.UnitStd = 'S';\r\n for (var i in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[i].UOM_Id === vm.DescriptionList.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[i];\r\n }\r\n }\r\n\r\n getUnitListByUOMId(function() {\r\n\r\n for (var c in vm.UnitList) {\r\n if (vm.UnitList[c].UnitId === vm.DescriptionList.UnitId) {\r\n vm.selectedUnit = vm.UnitList[c];\r\n }\r\n }\r\n\r\n for (var i in vm.UnitsParameterList) {\r\n if (vm.UnitsParameterList[i].UOM_ParametersId === vm.DescriptionList.UOM_ParametersId) {\r\n vm.selectedUnitAbbreviation = vm.UnitsParameterList[i];\r\n }\r\n }\r\n });\r\n } else {\r\n vm.UnitStd = 'NS';\r\n getNonStdUnits(function() {\r\n for (var i in vm.NonStdUnitsList) {\r\n if (vm.NonStdUnitsList[i].UOM_Id === vm.DescriptionList.UOM_Id) {\r\n vm.selectedUom = vm.NonStdUnitsList[i];\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n }\r\n });\r\n ///////////////////////\r\n\r\n } else {\r\n vm.AttributeList = [];\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n });\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a],\r\n AttributeCode: \"##A\" + [parseInt(a) + 1] + \"##\",\r\n VariableList: []\r\n }\r\n for (var c in vm.combinations) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.combinations[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.combinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n function createNonCombinations() {\r\n debugger;\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = {\r\n AttributeName: vm.rawAttrList[a].Name,\r\n AttributeCode: \"##A\" + [parseInt(a) + 1] + \"##\",\r\n VariableList: []\r\n }\r\n for (var c in vm.rawAttrList) {\r\n var test = (lodash.some(temp.VariableList, {\r\n \"VariableName\": vm.rawAttrList[c][temp.AttributeName]\r\n }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.rawAttrList[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n function Create() {\r\n vm.isAdding = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n vm.ican.AttributeName = {};\r\n\r\n resetForm();\r\n }\r\n\r\n function resetForm() {\r\n vm.attributeForm.$setUntouched();\r\n }\r\n\r\n function clear() {\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n vm.ican = {};\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeOfCAList = [];\r\n vm.ican.AttributeName = null;\r\n }\r\n\r\n function SaveIcan() {\r\n debugger;\r\n var scope = {\r\n // \"TypicalDes\": document.getElementById(\"TypicalDes\").innerHTML,\r\n // \"L\": document.getElementById(\"L\").innerHTML,\r\n // \"C1\": document.getElementById(\"C1\").innerHTML,\r\n // \"C2\": document.getElementById(\"C2\").innerHTML,\r\n // \"C3\": document.getElementById(\"C3\").innerHTML,\r\n // \"C4\": document.getElementById(\"C4\").innerHTML\r\n \"TypicalDes\": vm.Des.TypicalDes,\r\n \"L\": vm.Des.L,\r\n \"C1\": vm.Des.C1,\r\n \"C2\": vm.Des.C2,\r\n \"C3\": vm.Des.C3,\r\n \"C4\": vm.Des.C4\r\n\r\n }\r\n // var rv = {};\r\n // for (var i in vm.AttributeList) {\r\n // rv[vm.AttributeList[i].AttributeCode] = \"\" + vm.AttributeList[i].AttributeCode + \"\"\r\n // }\r\n // var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n // scope.TypicalDes = vm.TypicalDes.replace(re, function (matched) {\r\n // return rv[matched];\r\n // });\r\n\r\n // var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n // scope.L = vm.Labour.replace(re, function (matched) {\r\n // return rv[matched];\r\n // });\r\n // var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n // scope.C1 = vm.LabAndMat.replace(re, function (matched) {\r\n // return rv[matched];\r\n // });\r\n\r\n // var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n // scope.C2 = vm.LabAndMac.replace(re, function (matched) {\r\n // return rv[matched];\r\n // });\r\n\r\n // var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n // scope.C3 = vm.LabMatAndMac.replace(re, function (matched) {\r\n // return rv[matched];\r\n // });\r\n // var re = new RegExp(Object.keys(rv).join(\"|\"), \"gi\");\r\n // scope.C4 = vm.LabMatAndMac.replace(re, function (matched) {\r\n // return rv[matched];\r\n // });\r\n\r\n if (!vm.isEditing) {\r\n var obj = {\r\n \"CA_CategoryId\": vm.ican.selectedCategory.CategoryId,\r\n \"CA_SubCategoryId\": vm.ican.selectedSubCategory.SubCategoryId,\r\n \"TypeOfCAId\": vm.ican.selectedTypeOfCA.CA_TypeId,\r\n \"SpecType\": vm.ican.selectedTypeOfAttribute.Code,\r\n \"Scope\": JSON.stringify(scope),\r\n \"CreatedBy\": loggedUser.UserId\r\n }\r\n if (vm.UnitStd === 'S') {\r\n obj.UnitId = (vm.selectedUnit) ? vm.selectedUnit.UnitId : \"\";\r\n obj.UOM_ParametersId = (vm.selectedUnitAbbreviation) ? vm.selectedUnitAbbreviation.UOM_ParametersId : \"\";\r\n } else if (vm.UnitStd === 'NS')\r\n obj.UOM_Id = (vm.selectedUom) ? vm.selectedUom.UOM_Id : \"\";\r\n // console.log(obj);\r\n ICANTypicalDescription.SaveDescription(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"ICAN Typical Description\");\r\n $state.reload();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert ICAN Typical Description\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert ICAN Typical Description\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n }\r\n\r\n function DeleteIcan() {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n var obj = {\r\n CA_CategoryId: vm.ican.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.ican.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.ican.selectedTypeOfCA.CA_TypeId,\r\n SpecType: vm.ican.selectedTypeOfAttribute.Code\r\n }\r\n ICANTypicalDescription.RemoveDescription(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"ICAN Typical Description\");\r\n getAttributeListByTypeOfAttribute();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete ICAN Typical Description\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete ICAN Typical Description\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n });\r\n }\r\n\r\n /*Units of measurement start*/\r\n function getNonStdUnits(callBack) {\r\n vm.selectedUom = null;\r\n vm.selectedUnitAbbreviation = null;\r\n vm.selectedUnit = null;\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function(res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitsList = res.data;\r\n // console.log(vm.NonStdUnitsList)\r\n if (callBack)\r\n callBack()\r\n } else {}\r\n }, function(err) {});\r\n }\r\n\r\n function getUnitListByUOMId(callback) {\r\n if (vm.selectedUom.UOM_Id !== undefined) {\r\n var Obj = {\r\n UnitType: vm.UnitType,\r\n UOM_Id: vm.selectedUom.UOM_Id\r\n }\r\n UnitOfMeasurementService.getAllUnits(Obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.selectedUnit = null;\r\n vm.UnitList = res.data;\r\n // console.log(vm.UnitList)\r\n UomParametersService.getUOMParameterByUOmId(vm.selectedUom.UOM_Id).then(function(res) {\r\n vm.UnitsParameterList = res.data;\r\n // console.log(vm.UnitsParameterList)\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Units\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Select UOM & Measurement Type', \"Units\");\r\n }\r\n }\r\n\r\n /*end */\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('KPMES.pages.constructionActivity')\r\n .controller('CASubCategoryCtrl', CASubCategoryCtrl);\r\n\r\n /** @ngInject */\r\n function CASubCategoryCtrl($rootScope, lodash, dialogs, $http, SubCategoryofCAService, FieldofConstructionService,\r\n AuthenticationService, CategoryofCAService, CountryService,$scope) {\r\n var vm = this;\r\n\r\n \r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.subcategoryofCAList = [];\r\n\r\n\r\n //Method\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editSubCategoryofCA = editSubCategoryofCA;\r\n vm.removeSubCategoryofCA = removeSubCategoryofCA;\r\n vm.changeActiveSubCategoryofCA = changeActiveSubCategoryofCA;\r\n vm.SaveSubCategory = SaveSubCategory;\r\n vm.FilterCategory = FilterCategory;\r\n // vm.filterGrid = filterGrid;\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n Init();\r\n // LoadCategory();\r\n\r\n ///////////////////\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n function Init() {\r\n SubCategoryofCAService.getAllSubCategoryofCA($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubcategoryList = res.data;\r\n vm.isLoading = false;\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n CountryService.getActiveCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"subcategory\");\r\n });\r\n\r\n CategoryofCAService.FilterFocByCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctFocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n CategoryofCAService.FilterCountryByCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n function FilterCategory() {\r\n var obj = {\r\n CountryId: vm.selectedCountryFilter.CountryId,\r\n FocId: vm.selectedFOCFilter.FieldofConstructionId\r\n }\r\n var obj1 = {\r\n Inputs: JSON.stringify(obj)\r\n }\r\n SubCategoryofCAService.getFilterCategory(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n function getSubCategoryListByCategoryId(CategoryId) {\r\n vm.FilteredSubcategoryList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FilteredSubcategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n function GetCategoryByCountryId(CountryId, FieldofConstructionId, callback) {\r\n vm.subcategory.selectedCategoryName = null;\r\n vm.CategoryList = [];\r\n if (CountryId && FieldofConstructionId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.subcategory.selectedCountryName.CountryName || vm.subcategory.selectedFOC.FieldofConstructionName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n } else {\r\n vm.subcategory.selectedCategoryName = null;\r\n vm.CategoryList = [];\r\n }\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.code = true;\r\n vm.CategoryList = null;\r\n vm.selectedFOCFilter = null;\r\n vm.selectedCountryFilter = null;\r\n vm.distinctCountryList = [];\r\n vm.distinctFocList = [];\r\n vm.selectedCategoryFilter = null;\r\n vm.distinctCategoryList = [];\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n \r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n \r\n Init();\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.subcategory = {};\r\n vm.subcategoryofCAForm.$setUntouched();\r\n }\r\n\r\n function editSubCategoryofCA(subcategory) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.subcategory = angular.copy(subcategory);\r\n\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === subcategory.Category.CountryId) {\r\n vm.subcategory.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n\r\n for (var c in vm.focList) {\r\n if (vm.focList[c].FieldofConstructionId === subcategory.Category.FieldofConstructionId) {\r\n vm.subcategory.selectedFOC = vm.focList[c];\r\n }\r\n }\r\n GetCategoryByCountryId(subcategory.Category.CountryId, subcategory.Category.FieldofConstructionId, function () {\r\n for (var c in vm.CategoryList) {\r\n if (vm.CategoryList[c].CategoryId === subcategory.CategoryId) {\r\n vm.subcategory.selectedCategoryName = vm.CategoryList[c];\r\n }\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n function removeSubCategoryofCA(subcategory) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n SubCategoryofCAService.removeSubCategoryofCA(subcategory.SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Subcategory of CA Successfully', \"Subcategory of CA\");\r\n getSubCategoryListByCategoryId(vm.selectedCategoryFilter.CategoryId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Subcategory of CA\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Subcategory of CA. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveSubCategoryofCA(subcategory) {\r\n var msg = 'Are sure you want to ' + ((subcategory.IsActive) ? 'DeActive' : 'Active') + ' current row.'\r\n var msg2 = ((subcategory.IsActive) ? 'DeActive' : 'Active') + 'subcategory Successfully.'\r\n var confirm = dialogs.confirm('Confirm', msg, { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n SubCategoryofCAService.changeActiveSubCategoryofCA(subcategory.SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"SubCategory \");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Change Status SubCategory\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Change Status SubCategory. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n function SaveSubCategory(subcategory) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n subcategory.CategoryId = vm.subcategory.selectedCategoryName.CategoryId;\r\n\r\n // subcategory.CountryId=vm.subcategory.selectedCountryName.CountryId;\r\n if (!vm.isEditing) {\r\n subcategory.CreatedBy = loggedUser.UserId;\r\n SubCategoryofCAService.AddSubCategoryofCA(subcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"SubCategory\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"SubCategory\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n \r\n } else {\r\n subcategory.ModifiedBy = loggedUser.UserId;\r\n SubCategoryofCAService.EditSubCategoryofCA(subcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"SubCategory\");\r\n getSubCategoryListByCategoryId(vm.selectedCategoryFilter.CategoryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"SubCategory\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n \r\n }\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('VariableCtrl', VariableCtrl);\r\n\r\n /** @ngInject */\r\n function VariableCtrl($rootScope, $state, lodash, dialogs, $scope, $http, AttributeService, CountryService, FieldofConstructionService,\r\n CategoryofCAService, SubCategoryofCAService, TypeOfCAService, VariableService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.Temp = false;\r\n vm.isChecked = false;\r\n vm.isLoading = true;\r\n vm.saveAction = false;\r\n vm.VariableList = [];\r\n vm.isAddingVariable = false;\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n // vm.getAttributeListByTypeOfId = getAttributeListByTypeOfId;\r\n vm.getAttributeListByTypeOfAttribute = getAttributeListByTypeOfAttribute;\r\n vm.SaveTemp = SaveTemp;\r\n vm.removeVariable = removeVariable;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.clear = clear;\r\n vm.resetForm = resetForm;\r\n vm.removeCombination = removeCombination;\r\n vm.SaveCombinations = SaveCombinations;\r\n vm.deleteVariable = deleteVariable;\r\n $scope.formdata = new FormData();\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n $scope.countFiles = '';\r\n $scope.data = [];\r\n vm.isUpload = false;\r\n\r\n ////\r\n vm.getAllCountry = getAllCountry;\r\n\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n Init();\r\n\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: 'Generic', Code: 'G' }, { TypeOfAttributeName: 'Specific', Code: 'S' }]\r\n\r\n function Init() {\r\n\r\n\r\n VariableService.GetAllCATypeCountry(vm.loggedUser.UserId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n\r\n function getAllCountry() {\r\n vm.CountryList = [];\r\n CountryService.getActiveCountry($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n if (vm.isChecked) {\r\n vm.CategoryList = [];\r\n vm.variable.selectedCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.variable.selectedSubCategory = null;\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Country Name available for ' + vm.variable.selectedCountryName.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n } else {\r\n vm.CategoryList = [];\r\n vm.variable.selectedCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.variable.selectedSubCategory = null;\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n }\r\n } else {\r\n vm.TypeOfCAList = [];\r\n VariableService.GetAllType(vm.variable.selectedCountryName.CountryId, vm.loggedUser.UserId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n function getSubCategoryListByCategoryId(CategoryId, callback) {\r\n vm.variable.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n if (CategoryId) {\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory Of CA available for ' + vm.variable.selectedCategory.CategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.variable.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n }\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId, callback) {\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n if (SubCategoryId) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.variable.selectedSubCategory.SubCategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n }\r\n }\r\n\r\n function deleteVariable(attribute) {\r\n debugger\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete ' + attribute.selectedVariable, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isLoading = true;\r\n var obj = {\r\n CA_CategoryId: vm.variable.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.variable.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.variable.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.variable.selectedTypeOfAttribute.Code,\r\n AttributeName: attribute.Name,\r\n VariableName: attribute.selectedVariable\r\n }\r\n VariableService.deleteVariable(obj).then(function(res) {\r\n // console.log(res);\r\n if (res.status === 200 && res.data == true) {\r\n attribute.selectedVariable = null;\r\n $rootScope.showToaster('success', 'Removed Successfully', \"Variable\");\r\n getAttributeListByTypeOfAttribute();\r\n }\r\n vm.isLoading = false;\r\n }, function() {\r\n vm.isLoading = false;\r\n })\r\n }, function() {\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n //vm.GenericSpecificList = [];\r\n\r\n function getAttributeListByTypeOfAttribute() {\r\n\r\n if (vm.isChecked) {\r\n var obj = {\r\n CA_CategoryId: vm.variable.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.variable.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.variable.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.variable.selectedTypeOfAttribute.Code\r\n }\r\n AttributeService.getAllAttribute(obj).then(function(res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.AttributeList = res.data.Attribute;\r\n if (vm.AttributeList.length < 1) {\r\n dialogs.notify('Warning', 'No Attribute available for ' + vm.variable.selectedTypeOfAttribute.TypeOfAttributeName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n }\r\n })\r\n\r\n VariableService.getAllCombinations(obj).then(function(res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.variableCombinationCollection = res.data.Combinations;\r\n // console.log(vm.variableCombinationCollection);\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Combination\");\r\n });\r\n } else {\r\n\r\n var obj = {\r\n TypeOfCAId: vm.variable.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.variable.selectedTypeOfAttribute.Code\r\n }\r\n VariableService.GetAllAttributesByTypeId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AttributeList = res.data.Attribute;\r\n if (vm.AttributeList.length < 1) {\r\n dialogs.notify('Warning', 'No Attribute available for ' + vm.variable.selectedTypeOfAttribute.TypeOfAttributeName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n }\r\n })\r\n\r\n VariableService.getAllCombinations(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.variableCombinationCollection = res.data.Combinations;\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Combination\");\r\n });\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function SaveTemp(attribute) {\r\n attribute.IsAdding = ((!(attribute.IsAdding) || attribute.IsAdding === undefined) ? true : false);\r\n vm.isAddingVariable = true;\r\n if (!attribute.IsAdding) {\r\n var obj = {\r\n CA_CategoryId: vm.variable.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.variable.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.variable.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.variable.selectedTypeOfAttribute.Code,\r\n VariableName: attribute.VariableName,\r\n AttributeName: attribute.Name\r\n }\r\n VariableService.AddVariable(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"variable\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"variable\");\r\n }\r\n vm.isFormOpen = false;\r\n vm.isAddingVariable = false;\r\n getAttributeListByTypeOfAttribute();\r\n attribute.VariableName = undefined;\r\n Init();\r\n // Attribute.VariableName = {};\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n return attribute;\r\n };\r\n }\r\n\r\n function removeVariable(attribute) {\r\n attribute.VariableName = undefined;\r\n attribute.IsAdding = false;\r\n vm.isAddingVariable = false;\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = false;\r\n vm.AttributeText = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.variable.selectedTypeOfCA = true;\r\n vm.variable = undefined;\r\n }\r\n\r\n function resetForm() {\r\n vm.VariableForm.$setUntouched();\r\n }\r\n\r\n\r\n function removeCombination(Combination) {\r\n\r\n var variable = {};\r\n variable.CA_CategoryId = vm.variable.selectedCategory.CategoryId;\r\n variable.CA_SubCategoryId = vm.variable.selectedSubCategory.SubCategoryId;\r\n variable.TypeOfCAId = vm.variable.selectedTypeOfCA.CA_TypeId;\r\n variable.Code = vm.variable.selectedTypeOfAttribute.Code;\r\n var arr1 = vm.AttributeList;\r\n variable.Combination = Combination;\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n VariableService.removeCombination(variable).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Combination\");\r\n getAttributeListByTypeOfAttribute();\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Combination\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Combination. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveCombinations(variable) {\r\n vm.isLoading = true;\r\n debugger;\r\n // vm.getSubCategoryListByCategoryId = function(selectedCategory) {\r\n // selectedCategory.CategoryId = vm.selectedCategory.CategoryId;\r\n // }\r\n // vm.getTypeOfCAListBySubcategoryId = function(selectedSubCategory) {\r\n // selectedSubCategory.SubCategoryId = vm.selectedSubCategory.SubCategoryId;\r\n // }\r\n\r\n //variable.VariableName = vm.variable.VariableName;\r\n\r\n var attr = vm.AttributeList;\r\n var check = false;\r\n for (var i in attr) {\r\n if (attr[i].selectedVariable != undefined || attr[i].selectedVariable != null) {\r\n check = true;\r\n }\r\n }\r\n\r\n if (check) {\r\n variable.CA_CategoryId = vm.variable.selectedCategory.CategoryId;\r\n variable.CA_SubCategoryId = vm.variable.selectedSubCategory.SubCategoryId;\r\n variable.TypeOfCAId = vm.variable.selectedTypeOfCA.CA_TypeId;\r\n variable.Code = vm.variable.selectedTypeOfAttribute.Code;\r\n\r\n //attribute.AttributeName = attribute.Name;\r\n var arr1 = vm.AttributeList;\r\n //console.log(arr1);\r\n variable.Combination = {};\r\n for (var i = 0; i < arr1.length; i++) {\r\n if (arr1[i].selectedVariable != undefined) {\r\n variable.Combination[arr1[i].Name] = arr1[i].selectedVariable;\r\n } else {\r\n variable.Combination[arr1[i].Name] = '';\r\n }\r\n }\r\n VariableService.AddCombination(variable).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Variable Combinations\");\r\n getAttributeListByTypeOfAttribute();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Variable Combinations\");\r\n vm.isLoading = false;\r\n }\r\n vm.isFormOpen = false;\r\n Init();\r\n\r\n })\r\n check = false;\r\n\r\n } else {\r\n dialogs.notify('warning', \"Please select a variable\", { animation: true, size: 'sm' });\r\n check = false;\r\n vm.isLoading = false;\r\n }\r\n\r\n }\r\n\r\n function clear() {\r\n\r\n Attribute.selectedVariable = null;\r\n }\r\n\r\n ////\r\n\r\n function ClearFields() {\r\n vm.variable.selectedCountryName = null;\r\n vm.CountryList = [];\r\n vm.variable.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.variable.selectedTypeOfAttribute = null;\r\n vm.variable.selectedFOC = null;\r\n vm.variable.selectedCountryName = null;\r\n vm.CountryList = [];\r\n vm.variable.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.variable.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.AttributeList = [];\r\n }\r\n\r\n\r\n vm.check = function() {\r\n ClearFields();\r\n if (vm.isChecked)\r\n getAllCountry()\r\n else\r\n Init()\r\n }\r\n\r\n\r\n //Start Excel Download\r\n vm.ExcelDownload = function() {\r\n vm.isUpload = true;\r\n $rootScope.isLoading = true;\r\n var Details = {\r\n // SellerId: SellerId,\r\n // CompanyName: ($rootScope.CompanyName != undefined || $rootScope.CompanyName != null) ? $rootScope.CompanyName : '',\r\n CA_TypeId: vm.variable.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.variable.selectedTypeOfAttribute.Code,\r\n ActionBy: loggedUser.UserId\r\n }\r\n VariableService.ExcelFormat(Details).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.isLoading = false;\r\n vm.ExportExcelData = res.data;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/ms-excel\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = '_AttributeList.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n } else {\r\n dialogs.notify('Warning', '! No Data', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n if (err.status === 400) {\r\n dialogs.notify('Warning', '! No Data Found For Selected Tiers', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else if (err.status === 502) {\r\n dialogs.notify('Warning', '! No Typical Description', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"AttributeList Export\");\r\n }\r\n });\r\n }\r\n //End Excel Download\r\n\r\n vm.ImportExcel = function() {\r\n vm.isUpload = false;\r\n }\r\n\r\n //Start File Upload\r\n $scope.getExcelFile = function(file) {\r\n debugger;\r\n var typeOfDetails = {};\r\n angular.forEach(file, function(value, key) {\r\n var fileDetails = {\r\n FileName: value.name,\r\n FileLength: value.size,\r\n }\r\n var imgarr = [\"xls\", \"xlsx\"];\r\n var namesplit = (value.name).split(\".\")[1];\r\n\r\n var result = !!(imgarr.indexOf(namesplit) + 1);\r\n if (result) {\r\n $scope.formdata.append(key, value);\r\n $scope.data.push(fileDetails);\r\n }\r\n });\r\n typeOfDetails = {\r\n CA_TypeId: vm.variable.selectedTypeOfCA.CA_TypeId,\r\n Code: vm.variable.selectedTypeOfAttribute.Code,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n $scope.formdata.append(\"typeOfDetails\", JSON.stringify(typeOfDetails));\r\n $scope.formdata.append(\"datas\", JSON.stringify($scope.data));\r\n\r\n $scope.countFiles = $scope.data.length == 0 ? '' : $scope.data.length + ' files selected';\r\n $scope.$apply();\r\n vm.data = [];\r\n vm.data = $scope.data\r\n };\r\n\r\n $scope.uploadAttributeFiles = function() {\r\n $scope.uploading = true;\r\n $rootScope.isLoading = true;\r\n var data = $scope.formdata;\r\n VariableService.ExcelImport(data).then(function(response) {\r\n $scope.uploading = false;\r\n $rootScope.isLoading = false;\r\n $scope.formdata = {};\r\n $scope.data = [];\r\n vm.data = [];\r\n $scope.countFiles = null;\r\n $scope.file = null;\r\n $scope.$apply;\r\n\r\n if (response.data.res == 200) {\r\n $rootScope.showToaster('success', response.data.status, \"Variable Master\");\r\n $state.reload();\r\n } else if (response.data.res == 201) {\r\n vm.variableuploadFaild = JSON.parse(response.data.attributeFaildList);\r\n $rootScope.showToaster('info', response.data.status, \"Variable Master\");\r\n\r\n for (var i = 0; i < vm.variableuploadFaild.length; i++) {\r\n debugger\r\n var iop = vm.variableuploadFaild[i];\r\n var str = \"\";\r\n //vm.variableuploadFaild[i].ItemNameString = [];\r\n for (var key in iop) {\r\n if (iop.hasOwnProperty(key)) {\r\n str += ((key + \" - \" + iop[key]) + \", \").toString();\r\n }\r\n str = str.slice(0, -1);\r\n vm.variableuploadFaild[i][\"ItemNameString\"] = str;\r\n }\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', response.data.status, \"Variable Master\");\r\n $state.reload();\r\n }\r\n }, function(error) {\r\n $rootScope.isLoading = false;\r\n $scope.uploading = false;\r\n alert(\"Error in Network Connection!!! \" + JSON.stringify(error));\r\n $state.reload();\r\n });\r\n }\r\n //End File Upload\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .controller('TypeOfCACtrl', TypeOfCACtrl);\r\n\r\n /** @ngInject */\r\n function TypeOfCACtrl($rootScope, lodash, dialogs, $http, TypeOfCAService, CategoryofCAService, AuthenticationService, FieldofConstructionService,\r\n SubCategoryofCAService, CountryService) {\r\n var vm = this;\r\n\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TypeOfCAList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editTypeOfCA = editTypeOfCA;\r\n vm.removeTypeOfCA = removeTypeOfCA;\r\n vm.changeActiveTypeOfCA = changeActiveTypeOfCA;\r\n vm.SaveTypeOfCA = SaveTypeOfCA;\r\n vm.FilterCategory = FilterCategory;\r\n // vm.filterGrid = filterGrid;\r\n vm.filterSubcategory = filterSubcategory;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n // vm.getTypeOfCAListByCategoryId = getTypeOfCAListByCategoryId;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n Init();\r\n ///////////////////\r\n\r\n function Init() {\r\n CountryService.getActiveCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n FieldofConstructionService.getActiveFoc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n TypeOfCAService.getAllTypeOfCA().then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category Of CA\");\r\n });\r\n\r\n CategoryofCAService.FilterFocByCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctFocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n CategoryofCAService.FilterCountryByCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n function FilterCategory() {\r\n var obj = {\r\n CountryId: vm.selectedCountryFilter.CountryId,\r\n FocId: vm.selectedFOCFilter.FieldofConstructionId\r\n }\r\n var obj1 = {\r\n Inputs: JSON.stringify(obj)\r\n }\r\n SubCategoryofCAService.getFilterCategory(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function filterSubcategory() {\r\n var obj = {\r\n CountryId: vm.selectedCountryFilter.CountryId,\r\n FocId: vm.selectedFOCFilter.FieldofConstructionId,\r\n CategoryId: vm.selectedCategoryFilter.CategoryId\r\n }\r\n var obj1 = {\r\n Inputs: JSON.stringify(obj)\r\n }\r\n TypeOfCAService.getFilterSubCategory(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n // function getTypeOfCAListByCategoryId(CategoryId) {\r\n // if (CategoryId) {\r\n // TypeOfCAService.GetTypeOfCABySubCategoryId(CategoryId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.FilteredTypeList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // });\r\n // }\r\n // }\r\n function getTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n vm.FilteredTypeList = [];\r\n if (SubCategoryId) {\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FilteredTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n function GetCategoryByCountryId(FieldofConstructionId, CountryId, callback) {\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.type.selectedCategory = null;\r\n vm.type.selectedSubCategory = null;\r\n if (FieldofConstructionId && CountryId) {\r\n var obj = {\r\n FieldofConstructionId: FieldofConstructionId,\r\n CountryId: CountryId\r\n }\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.type.selectedCountryName.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n } else {\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.type.selectedCategory = null;\r\n vm.type.selectedSubCategory = null;\r\n }\r\n }\r\n\r\n function getSubCategoryListByCategoryId(CategoryId, callback) {\r\n if (CategoryId) {\r\n vm.type.selectedSubCategory = null;\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.type.selectedCategory.CategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.SubCategoryList = [];\r\n vm.type.selectedSubCategory = null;\r\n }\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.code = true;\r\n vm.CategoryList = null;\r\n vm.SubCategoryList = null;\r\n vm.selectedFOCFilter = null;\r\n vm.distinctFocList = [];\r\n vm.selectedCountryFilter = null;\r\n vm.distinctCountryList = [];\r\n vm.selectedCategoryFilter = null;\r\n vm.distinctCategoryList = [];\r\n vm.selectedSubCategoryFilter = null;\r\n vm.distinctSubCategoryList = [];\r\n vm.labelCreate=true;\r\n vm.labelEdit=false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.type = {};\r\n \r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.type = {};\r\n \r\n Init();\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.typeofCAForm.$setUntouched();\r\n }\r\n\r\n\r\n\r\n function editTypeOfCA(type) {\r\n vm.labelCreate=false;\r\n vm.labelEdit=true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.type = angular.copy(type);\r\n\r\n for (var c in vm.focList) {\r\n if (vm.focList[c].FieldofConstructionId === type.Category.FieldofConstructionId) {\r\n vm.type.selectedFOC = vm.focList[c];\r\n }\r\n }\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === type.Category.CountryId) {\r\n vm.type.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n\r\n GetCategoryByCountryId(type.Category.FieldofConstructionId, type.Category.CountryId, function () {\r\n\r\n for (var c in vm.CategoryList) {\r\n if (vm.CategoryList[c].CategoryId === type.CategoryId) {\r\n vm.type.selectedCategory = vm.CategoryList[c];\r\n }\r\n }\r\n\r\n getSubCategoryListByCategoryId(type.CategoryId, function () {\r\n for (var c in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[c].SubCategoryId === type.SubCategoryId) {\r\n vm.type.selectedSubCategory = vm.SubCategoryList[c];\r\n }\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n function removeTypeOfCA(type) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n TypeOfCAService.removeTypeOfCA(type.CA_TypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete TypeOfCA Successfully', \"TypeOfCA\");\r\n getTypeOfCAListBySubcategoryId(vm.selectedSubCategoryFilter.SubCategoryId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete TypeOfCA\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete TypeOfCA. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n function changeActiveTypeOfCA(type) {\r\n var msg = 'Are sure you want to ' + ((type.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((type.IsActive) ? 'Deactive' : 'Active') + 'type Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n TypeOfCAService.changeActiveTypeOfCA(type.CA_TypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"type\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Change Status type\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Change Status type. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () { })\r\n }\r\n\r\n function SaveTypeOfCA(type) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n type.CategoryId = vm.type.selectedCategory.CategoryId;\r\n type.SubCategoryId = vm.type.selectedSubCategory.SubCategoryId;\r\n\r\n if (!vm.isEditing) {\r\n type.CreatedBy = loggedUser.UserId;\r\n TypeOfCAService.AddTypeOfCA(type).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Type Of CA \");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Type Of CA \");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n dialogs.error('error', \"Something error...try again\");\r\n });\r\n \r\n\r\n } else {\r\n type.ModifiedBy = loggedUser.UserId;\r\n TypeOfCAService.EditTypeOfCA(type).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Type Of CA \");\r\n getTypeOfCAListBySubcategoryId(vm.selectedSubCategoryFilter.SubCategoryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Type Of CA \");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n dialogs.error('error', \"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n vm.select = true;\r\n }\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectTeam')\r\n .controller('ProjectTeamCreationCtrl', ProjectTeamCreationCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectTeamCreationCtrl($http, $uibModal, $state, $rootScope, lodash, dialogs, ProjectTeamService, EmployeeService, DepartmentServices, DesignationService, CompanyService, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n vm.disableItem = false;\r\n vm.additional = false;\r\n vm.additional1 = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getDepartmentListByCompanyId = getDepartmentListByCompanyId;\r\n vm.GetDesignationByDepartmentId = GetDesignationByDepartmentId;\r\n vm.getEmpwithUserAc = getEmpwithUserAc;\r\n vm.GetDesignationByRepDepartmentId = GetDesignationByRepDepartmentId;\r\n vm.getEmpwithRepUserAc = getEmpwithRepUserAc;\r\n vm.getRole = getRole;\r\n vm.getAssignCompany = getAssignCompany;\r\n vm.getreportCompany = getreportCompany;\r\n vm.getDepartmentListByReportompanyId = getDepartmentListByReportompanyId;\r\n vm.AddList = AddList;\r\n vm.projteam = {};\r\n vm.Repprojteam = {};\r\n vm.AddTeamList = [];\r\n vm.getAllEmployee = getAllEmployee;\r\n vm.getAllReportEmployee = getAllReportEmployee;\r\n vm.SaveList = SaveList;\r\n vm.data = {};\r\n vm.data = $state.params.data;\r\n if (vm.data) {\r\n if (vm.data.isEditing === true) {\r\n vm.isEditing = true;\r\n vm.disableItem = true;\r\n edit();\r\n }\r\n else {\r\n vm.isEditing = false;\r\n }\r\n }\r\n Init();\r\n ////////////////////\r\n function Init(callback) {\r\n CompanyService.getAllCompany().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getAssignCompany() {\r\n vm.projteam.selectedAssignEmployee = null; \r\n clearAssign(); \r\n CompanyService.getAllCompany().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AssignCompanyList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function clearAssign(){\r\n vm.projteam.selectedAssignCompany=null;\r\n vm.AssignCompanyList=[];\r\n vm.projteam.selectedDepartment=null;\r\n vm.DepartmentList=[];\r\n vm.projteam.selectedDesignation =null;\r\n vm.DesignationList=[];\r\n vm.projteam.selectedEmployee=null;\r\n vm.EmployeeList=[];\r\n }\r\n\r\n function getreportCompany() {\r\n vm.projteam.selectedReportEmployee = null; \r\n clearReport(); \r\n var CompanyId = (vm.projteam.selectedAssignCompany) ? vm.projteam.selectedAssignCompany.CompanyId : \"\" || (vm.projteam.selectedAssignEmployee) ? vm.projteam.selectedAssignEmployee.Company.CompanyId : \"\"\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ReportCompanyList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function clearReport(){\r\n vm.projteam.selectedReportCompany=null;\r\n vm.ReportCompanyList=[];\r\n vm.Repprojteam.selectedDepartment =null;\r\n vm.RepDepartmentList=[];\r\n vm.Repprojteam.selectedDesignation=null;\r\n vm.RepDesignationList=[];\r\n vm.Repprojteam.selectedEmployee=null;\r\n vm.RepEmployeeList=[];\r\n }\r\n \r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.projteam.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.projteam.selectedDepartment = null;\r\n vm.DepartmentList = [];\r\n vm.projteam.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n var obj = {\r\n CompanyId: CompanyId,\r\n UserId: loggedUser.UserId,\r\n isEdit: false\r\n }\r\n if (vm.isEditing)\r\n obj.isEdit = true;\r\n\r\n projectCreationService.getProjectforTeam(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getAllEmployee() {\r\n EmployeeService.getAllEmployeesforTeam(vm.projteam.selectedCompany.CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n angular.forEach(vm.AddTeamList, function (value1, key1) {\r\n angular.forEach(res.data, function (value2, key2) {\r\n if (value1.EmpName === value2.FirstName) {\r\n res.data.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.AllEmployeeList = res.data;\r\n }\r\n });\r\n getRole();\r\n }\r\n\r\n function getAllReportEmployee() {\r\n var CompanyId = (vm.projteam.selectedAssignCompany) ? vm.projteam.selectedAssignCompany.CompanyId : \"\" || (vm.projteam.selectedAssignEmployee) ? vm.projteam.selectedAssignEmployee.CompanyId : \"\"\r\n EmployeeService.GetAllEmployeesByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n if (vm.projteam.selectedAssignEmployee) {\r\n for (var j in res.data) {\r\n if (vm.projteam.selectedAssignEmployee.EmployeeId == res.data[j].EmployeeId)\r\n res.data.splice(j, 1);\r\n }\r\n } else if (vm.AddTeamList.length > 0) {\r\n angular.forEach(vm.AddTeamList, function (value1, key1) {\r\n angular.forEach(res.data, function (value2, key2) {\r\n if (value1.EmpName === value2.FirstName) {\r\n res.data.splice(key2, 1);\r\n }\r\n });\r\n })\r\n }\r\n else {\r\n for (var j in res.data) {\r\n if (vm.projteam.selectedEmployee.EmployeeId == res.data[j].EmployeeId)\r\n res.data.splice(j, 1);\r\n }\r\n }\r\n\r\n\r\n vm.AllReportEmployeeList = res.data;\r\n }\r\n });\r\n }\r\n\r\n function getDepartmentListByCompanyId(CompanyId, callback) {\r\n vm.projteam.selectedDepartment = null;\r\n vm.DepartmentList = [];\r\n vm.projteam.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedRole = null;\r\n vm.RoleList = [];\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n if (vm.DepartmentList.length < 1) {\r\n dialogs.notify('Warning', 'No department available', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n\r\n function getDepartmentListByReportompanyId(CompanyId, callback) {\r\n vm.Repprojteam.selectedDepartment = null;\r\n vm.RepDepartmentList = [];\r\n vm.Repprojteam.selectedDesignation = null;\r\n vm.RepDesignationList = [];\r\n vm.Repprojteam.selectedEmployee = null;\r\n vm.RepEmployeeList = [];\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RepDepartmentList = res.data;\r\n if (vm.DepartmentList.length < 1) {\r\n dialogs.notify('Warning', 'No department available for ' + vm.projteam.selectedReportCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n // Temp solution \r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n function GetDesignationByDepartmentId(DepartmentId, callback) {\r\n vm.projteam.selectedDesignation = null;\r\n vm.DesignationList = [];\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedRole = null;\r\n vm.RoleList = [];\r\n DesignationService.GetDesigByDepId(DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n function getEmpwithUserAc(DesignationId, callback) {\r\n if (DesignationId) {\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedRole = null;\r\n vm.RoleList = [];\r\n EmployeeService.GetEmpwithUserAc(DesignationId).then(function (res) {\r\n if (res.status === 200) {\r\n angular.forEach(vm.AddTeamList, function (value1, key1) {\r\n angular.forEach(res.data, function (value2, key2) {\r\n if (value1.EmpName === value2.FirstName) {\r\n res.data.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n\r\n function GetDesignationByRepDepartmentId(DepartmentId, callback) {\r\n vm.Repprojteam.selectedDesignation = null;\r\n vm.RepDesignationList = [];\r\n vm.Repprojteam.selectedEmployee = null;\r\n vm.RepEmployeeList = [];\r\n DesignationService.GetDesigByDepId(DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RepDesignationList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n function getEmpwithRepUserAc(DesignationId, callback) {\r\n if (DesignationId) {\r\n vm.Repprojteam.selectedEmployee = null;\r\n vm.RepEmployeeList = [];\r\n EmployeeService.GetEmpwithUserAc(DesignationId).then(function (res) {\r\n if (res.status === 200) {\r\n if (vm.projteam.selectedEmployee) {\r\n angular.forEach(vm.EmployeeList, function (value1, key1) {\r\n angular.forEach(res.data, function (value2, key2) {\r\n if (value1.FirstName === value2.FirstName) {\r\n res.data.splice(key2, 1);\r\n }\r\n });\r\n })\r\n } else { \r\n for (var j in res.data) {\r\n if (vm.projteam.selectedAssignEmployee.EmployeeId == res.data[j].EmployeeId)\r\n res.data.splice(j, 1);\r\n }\r\n }\r\n\r\n vm.RepEmployeeList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n function getRole(callback) { \r\n if(vm.projteam.selectedAssignEmployee) {\r\n vm.additional = false;\r\n } \r\n projectCreationService.getRole().then(function (res) {\r\n if (res.status === 200) {\r\n vm.RoleList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n })\r\n }\r\n\r\n function AddList() {\r\n var obj = {\r\n EmpID: (vm.projteam.selectedAssignEmployee != undefined) ? vm.projteam.selectedAssignEmployee.EmployeeId : \"\"\r\n || (vm.projteam.selectedEmployee != undefined) ? vm.projteam.selectedEmployee.EmployeeId : \"\",\r\n EmpName: (vm.projteam.selectedAssignEmployee != undefined) ? vm.projteam.selectedAssignEmployee.FirstName : \"\"\r\n || (vm.projteam.selectedEmployee != undefined) ? vm.projteam.selectedEmployee.FirstName : \"\",\r\n EmpDepartment: (vm.projteam.selectedAssignEmployee != undefined) ? vm.projteam.selectedAssignEmployee.DepartmentName : \"\"\r\n || (vm.projteam.selectedDepartment != undefined) ? vm.projteam.selectedDepartment.DepartmentName : \"\",\r\n RoleName: (vm.projteam.selectedRole != undefined) ? vm.projteam.selectedRole.RoleName : \"\",\r\n RoleId: (vm.projteam.selectedRole != undefined) ? vm.projteam.selectedRole.RoleId : \"\",\r\n EmpDesignation: (vm.projteam.selectedAssignEmployee != undefined) ? vm.projteam.selectedAssignEmployee.DesignationName : \"\"\r\n || (vm.projteam.selectedDesignation != undefined) ? vm.projteam.selectedDesignation.DesignationName : \"\",\r\n RepDepartment: (vm.projteam.selectedReportEmployee != undefined) ? vm.projteam.selectedReportEmployee.DepartmentName : \"\"\r\n || (vm.Repprojteam.selectedDepartment != undefined) ? vm.Repprojteam.selectedDepartment.DepartmentName : \"\",\r\n RepDesignation: (vm.projteam.selectedReportEmployee != undefined) ? vm.projteam.selectedReportEmployee.DesignationName : \"\"\r\n || (vm.Repprojteam.selectedDesignation != undefined) ? vm.Repprojteam.selectedDesignation.DesignationName : \"\",\r\n ReportingTo: (vm.projteam.selectedReportEmployee != undefined) ? vm.projteam.selectedReportEmployee.EmployeeId : \"\"\r\n || (vm.Repprojteam.selectedEmployee != undefined) ? vm.Repprojteam.selectedEmployee.EmployeeId : \"\",\r\n RepName: (vm.projteam.selectedReportEmployee != undefined) ? vm.projteam.selectedReportEmployee.FirstName : \"\"\r\n || (vm.Repprojteam.selectedEmployee != undefined) ? vm.Repprojteam.selectedEmployee.FirstName : \"\",\r\n Active: 1\r\n }\r\n vm.AddTeamList.push(obj);\r\n\r\n\r\n if (vm.AddTeamList != undefined) {\r\n obj = {};\r\n vm.additional = false;\r\n vm.additional1 = false;\r\n vm.disableItem = true;\r\n vm.Report = null;\r\n vm.Repprojteam.selectedDepartment = null;\r\n vm.RepDepartmentList = [];\r\n vm.Repprojteam.selectedDesignation = null;\r\n vm.RepDesignationList = [];\r\n vm.RoleList = [];\r\n vm.projteam.selectedRole = null;\r\n vm.Repprojteam.selectedEmployee = null;\r\n vm.RepEmployeeList = [];\r\n vm.projteam.selectedAssignEmployee = null;\r\n vm.AllEmployeeList = [];\r\n vm.projteam.selectedReportEmployee = null;\r\n vm.AllReportEmployeeList = [];\r\n getAllEmployee();\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n function SaveList() {\r\n if (!vm.isEditing) {\r\n var objTeam = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n CreatedBy: loggedUser.UserId,\r\n Type: \"INSERT\"\r\n }\r\n\r\n var Arr = [];\r\n\r\n for (var i in vm.AddTeamList) {\r\n Arr.push({\r\n EmpID: vm.AddTeamList[i].EmpID,\r\n ReportingTo: vm.AddTeamList[i].ReportingTo,\r\n RoleId: vm.AddTeamList[i].RoleId,\r\n Active: 1\r\n })\r\n }\r\n objTeam.TeamDetails = JSON.stringify(Arr)\r\n }\r\n else {\r\n var objTeam = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n CreatedBy: loggedUser.UserId,\r\n Type: \"UPDATE\"\r\n }\r\n\r\n var Arr = [];\r\n Arr.push({\r\n PrvId: vm.projteam.PrvId,\r\n EmpID: vm.projteam.selectedEmployee.EmployeeId,\r\n RoleId: vm.projteam.selectedRole.RoleId,\r\n ReportingTo: (vm.Repprojteam.selectedEmployee != undefined) ? vm.Repprojteam.selectedEmployee.EmployeeId : \"\",\r\n Active: 1\r\n })\r\n objTeam.TeamDetails = JSON.stringify(Arr);\r\n\r\n }\r\n ProjectTeamService.SaveUpdateDelete(objTeam).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Team\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Team\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.Back = function () {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n $state.go('homeProjectTeam');\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n function edit() {\r\n if (vm.isEditing) {\r\n vm.projteam = vm.data.ProjTeam;\r\n vm.projteam.RejectNote = JSON.parse(vm.projteam.RejectNote);\r\n Init(function () {\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId === vm.projteam.CompanyId) {\r\n vm.projteam.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n getProjectByCompany(vm.projteam.CompanyId, function () {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === vm.projteam.ProjectId) {\r\n vm.projteam.selectedProject = vm.ProjectList[i]\r\n }\r\n }\r\n getDepartmentListByCompanyId(vm.projteam.CompanyId, function () {\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.projteam.DepartmentId) {\r\n vm.projteam.selectedDepartment = vm.DepartmentList[i]\r\n }\r\n }\r\n GetDesignationByDepartmentId(vm.projteam.DepartmentId, function () {\r\n for (var i in vm.DesignationList) {\r\n if (vm.DesignationList[i].DesignationId === vm.projteam.DesignationId) {\r\n vm.projteam.selectedDesignation = vm.DesignationList[i]\r\n }\r\n }\r\n getEmpwithUserAc(vm.projteam.DesignationId, function () {\r\n for (var i in vm.EmployeeList) {\r\n if (vm.EmployeeList[i].EmployeeId === vm.projteam.EmpID) {\r\n vm.projteam.selectedEmployee = vm.EmployeeList[i]\r\n }\r\n }\r\n getRole(function () {\r\n for (var i in vm.RoleList) {\r\n if (vm.RoleList[i].RoleId === vm.projteam.RoleId) {\r\n vm.projteam.selectedRole = vm.RoleList[i]\r\n }\r\n }\r\n if (vm.projteam.ReportDepartmentId != undefined) {\r\n vm.Report = 'Y';\r\n getDepartmentListByReportompanyId(vm.projteam.CompanyId, function () {\r\n for (var i in vm.RepDepartmentList) {\r\n if (vm.RepDepartmentList[i].DepartmentId === vm.projteam.ReportDepartmentId) {\r\n vm.Repprojteam.selectedDepartment = vm.RepDepartmentList[i]\r\n }\r\n }\r\n\r\n GetDesignationByRepDepartmentId(vm.projteam.ReportDepartmentId, function () {\r\n for (var i in vm.RepDesignationList) {\r\n if (vm.RepDesignationList[i].DesignationId === vm.projteam.ReportDesignationId) {\r\n vm.Repprojteam.selectedDesignation = vm.RepDesignationList[i]\r\n }\r\n }\r\n getEmpwithRepUserAc(vm.projteam.ReportDesignationId, function () {\r\n for (var i in vm.RepEmployeeList) {\r\n if (vm.RepEmployeeList[i].EmployeeId === vm.projteam.ReportingTo) {\r\n vm.Repprojteam.selectedEmployee = vm.RepEmployeeList[i]\r\n }\r\n }\r\n });\r\n });\r\n\r\n });\r\n }\r\n })\r\n\r\n });\r\n });\r\n });\r\n });\r\n\r\n })\r\n }\r\n }\r\n\r\n\r\n\r\n vm.RemoveList = function (row) {\r\n _.remove(vm.AddTeamList, {\r\n EmpID: row.EmpID\r\n });\r\n };\r\n\r\n\r\n\r\n\r\n }\r\n})(); \n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectTeam')\r\n .controller('WorkAllocationCtrl', WorkAllocationCtrl);\r\n\r\n /** @ngInject */\r\n function WorkAllocationCtrl($http, $state, $rootScope, lodash, dialogs, WorkAllocationService, IocaService, TierSetupService, CategoryofCAService, ProjectIocaService, ProjectTeamService, LocationSetupService, CompanyService, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.currentPage2 = 1;\r\n vm.rowCountOptions2 = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }];\r\n vm.noOfRows2 = vm.rowCountOptions2[1];\r\n vm.rembemberCurrentPage2 = function (num) {\r\n vm.currentPage2 = num;\r\n }\r\n vm.isFormOpen = false;\r\n vm.allLocRowSelected = false;\r\n vm.allIocaRowSelected = false;\r\n vm.isEditing = false;\r\n vm.allocationId = false;\r\n vm.isMapLoading = false;\r\n vm.isLoading = false;\r\n vm.selectedTier = [];\r\n vm.IOCAWorkAllocationList = [];\r\n vm.LocationWorkAllocationList = [];\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeList = [];\r\n vm.IocaList = [];\r\n vm.map = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getEmployeeByProject = getEmployeeByProject;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.filterTiers = filterTiers;\r\n vm.getCategoryForWorkAllocation = getCategoryForWorkAllocation;\r\n //vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getIocaByType = getIocaByType;\r\n vm.getTypeBySubCategory = getTypeBySubCategory;\r\n vm.SaveWorkAllocation = SaveWorkAllocation;\r\n vm.SaveIOCAWorkAllocation = SaveIOCAWorkAllocation;\r\n vm.SaveLocationWorkAllocation = SaveLocationWorkAllocation;\r\n vm.removeLoc = removeLoc;\r\n vm.removeIoca = removeIoca;\r\n vm.getWorkAllocation = getWorkAllocation;\r\n vm.getAllIOCAWorkAllocation = getAllIOCAWorkAllocation;\r\n vm.getAllLocationWorkAllocation = getAllLocationWorkAllocation;\r\n vm.removeLocationWorkallocation = removeLocationWorkallocation;\r\n vm.removeIOCAWorkallocation = removeIOCAWorkallocation;\r\n vm.getTiersByMappingIOCA = getTiersByMappingIOCA\r\n vm.MappingLocationList = [];\r\n vm.projteam = {};\r\n vm.projteam.selectedMappingLocation = [];\r\n\r\n // vm.clearLocation = clearLocation;\r\n vm.selectRow = selectRow;\r\n vm.selectLocItem = selectLocItem;\r\n vm.selectIocaItem = selectIocaItem;\r\n vm.selectAll = selectAll;\r\n Init();\r\n ////////////////////\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: \"Generic\", Code: \"G\" }, { TypeOfAttributeName: \"Specific\", Code: \"S\" }];\r\n function Init() {\r\n vm.isLoading = true;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function selectRow() {\r\n vm.tempData = [];\r\n for (var i in vm.WorkAllocationList.LocationList) {\r\n if (vm.WorkAllocationList.LocationList[i].isChecked) {\r\n if (vm.WorkAllocationList.LocationList[i].TierId != undefined) {\r\n vm.tempData.push(vm.WorkAllocationList.LocationList[i].TierId);\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.WorkAllocationList.IocaList) {\r\n if (vm.WorkAllocationList.IocaList[i].isChecked) {\r\n if (vm.WorkAllocationList.IocaList[i].IOCA_Id != undefined) {\r\n vm.tempData.push(vm.WorkAllocationList.IocaList[i].IOCA_Id);\r\n }\r\n }\r\n }\r\n\r\n vm.tableIds = vm.tempData.join(',');\r\n return (vm.tableIds);\r\n }\r\n\r\n function selectLocItem() {\r\n for (var i = 0; i < vm.WorkAllocationList.LocationList; i++) {\r\n if (!vm.WorkAllocationList.LocationList[i].isChecked) {\r\n vm.allLocRowSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n // vm.allLocRowSelected = true;\r\n\r\n };\r\n\r\n function selectIocaItem() {\r\n for (var k = 0; k < vm.WorkAllocationList.IocaList; k++) {\r\n if (!vm.WorkAllocationList.IocaList[k].isChecked) {\r\n vm.allIocaRowSelected = false;\r\n return;\r\n }\r\n }\r\n // vm.allIocaRowSelected = true;\r\n }\r\n\r\n function selectAll() {\r\n for (var i = 0; i < vm.WorkAllocationList.IocaList.length; i++) {\r\n vm.WorkAllocationList.IocaList[i].isChecked = vm.allIocaRowSelected;\r\n\r\n }\r\n for (var j = 0; j < vm.WorkAllocationList.LocationList.length; j++) {\r\n vm.WorkAllocationList.LocationList[j].isChecked = vm.allLocRowSelected;\r\n\r\n }\r\n };\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n vm.projteam.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.WorkAllocationList = [];\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.projteam.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.WorkAllocationList = [];\r\n }\r\n }\r\n\r\n function getEmployeeByProject(ProjectId) {\r\n if (ProjectId) {\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.WorkAllocationList = [];\r\n vm.isLoading = true;\r\n ProjectTeamService.GetEmpByProject(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n // getLocationByProject(ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.WorkAllocationList = [];\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(ProjectId) {\r\n if (ProjectId) {\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n vm.isLoading = false;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n }\r\n }\r\n\r\n function getMaxTier(tierArr) {\r\n var maxTier = tierArr[0];\r\n lodash.forEach(tierArr, function (t) {\r\n if (getTierNo(t) > getTierNo(maxTier))\r\n maxTier = t;\r\n });\r\n return maxTier;\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n function getTiersByLocationId(LocationId) {\r\n if (LocationId) {\r\n vm.projteam.selectedCategory = null;\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.projteam.selectedLocation.Tiers);\r\n var tierArr = lodash.keys(vm.tierObj);\r\n vm.maxTier = getMaxTier(tierArr);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n vm.isLoading = true;\r\n TierSetupService.getAllTierSetup(LocationId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.isLoading = false;\r\n // getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID, function () {\r\n if (vm.LocationWorkAllocationList.length >= 1) {\r\n for (var i = 0; i < vm.LocationWorkAllocationList.length; i++) {\r\n for (var j = 0; j < vm.allTierData.length; j++) {\r\n if ((vm.allTierData[j].TierId == vm.LocationWorkAllocationList[i].TierId)) {\r\n findAndRemove(vm.allTierData, 'TierId', vm.allTierData[j].TierId)\r\n }\r\n }\r\n }\r\n }\r\n // });\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.tierObj[properties]\r\n });\r\n }\r\n vm.tierList.push(temp);\r\n\r\n }\r\n // var obj = _.countBy(vm.tierList.Values, function (rec) {\r\n\r\n // return rec.ParentTierId == 0;\r\n\r\n // });\r\n // var b = _.filter(vm.tierList.Values, function(o) { if (o.ParentTierId == 0) return o }).length;\r\n // console.log(\"testb\" + b)\r\n // console.log(\"testobj\" + obj)\r\n\r\n //** Add this code for single location for request to sumithra and vinod **//\r\n debugger;\r\n if(vm.tierList.length === 1)\r\n {\r\n vm.tierList[vm.tierList.length].Values = [];\r\n }\r\n else{\r\n vm.tierList[vm.tierList.length - 1].Values = [];\r\n }\r\n \r\n\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n vm.projteam.selectedCategory = null;\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n\r\n }\r\n }\r\n\r\n function findAndRemove(array, property, value) {\r\n array.forEach(function (result, index) {\r\n if (result[property] === value) {\r\n //Remove from array\r\n array.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n\r\n function filterTiers(tier) {\r\n if (tier.selectedTierValue) {\r\n var tempTier = \"Tier\" + (parseInt(tier.TierType.substring(4)) + 1);\r\n vm.currentTier = vm.tierObj[tempTier];\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier,\r\n 'ParentTierId': tier.selectedTierValue.TierId\r\n });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === tempTier) {\r\n t.Values = vm.TierSetupList;\r\n }\r\n });\r\n if (tier.TierType === vm.maxTier)\r\n loadPowByLocation();\r\n\r\n vm.tiers = {}\r\n vm.selectedTier.push(tier.selectedTierValue)\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n vm.getTier = function (tier) {\r\n vm.Tiers = tier.selectedTierValue\r\n }\r\n\r\n vm.Create = function () {\r\n vm.isFormOpen = true\r\n }\r\n\r\n function getCategoryForWorkAllocation(ProjectId) {\r\n if (ProjectId) {\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n // vm.projteam.selectedType = null;\r\n var obj = {\r\n ProjectId: ProjectId,\r\n EmployeeId: vm.projteam.selectedEmployee.EmpID,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n TypeofLoad: 'Category'\r\n }\r\n WorkAllocationService.getCAItemsForWorkAllocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n // vm.projteam.selectedType = null;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n vm.getSubcategoryByCategory = function (ProjectId) {\r\n if (ProjectId) {\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.TypeList = [];\r\n var CategoryIds = [];\r\n for (var i in vm.projteam.selectedCategory) {\r\n CategoryIds.push(vm.projteam.selectedCategory[i].CategoryId);\r\n }\r\n var obj = {\r\n ProjectId: ProjectId,\r\n EmployeeId: vm.projteam.selectedEmployee.EmpID,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n TypeofLoad: 'SubCategory',\r\n Input: CategoryIds.join(',')\r\n }\r\n WorkAllocationService.getCAItemsForWorkAllocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n\r\n }\r\n\r\n function getTypeBySubCategory(ProjectId) {\r\n if (ProjectId) {\r\n vm.projteam.selectedType = null;\r\n vm.projteam.selectedType = null;\r\n vm.TypeList = [];\r\n var SubCategoryIds = [];\r\n for (var i in vm.projteam.selectedSubcategory) {\r\n SubCategoryIds.push(vm.projteam.selectedSubcategory[i].SubCategoryId);\r\n }\r\n var obj = {\r\n ProjectId: ProjectId,\r\n EmployeeId: vm.projteam.selectedEmployee.EmpID,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n TypeofLoad: 'Type',\r\n Input: SubCategoryIds.join(',')\r\n }\r\n WorkAllocationService.getCAItemsForWorkAllocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n else {\r\n vm.projteam.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n function getIocaByType(ProjectId) {\r\n vm.TypeIds = [];\r\n for (var i in vm.projteam.selectedType) {\r\n vm.TypeIds.push(vm.projteam.selectedType[i].TypeId);\r\n }\r\n var obj = {\r\n ProjectId: ProjectId,\r\n EmployeeId: vm.projteam.selectedEmployee.EmpID,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n TypeofLoad: 'IOCA',\r\n SpecType: vm.projteam.selectedTypeOfAttribute.Code,\r\n Input: vm.TypeIds.join(',')\r\n }\r\n WorkAllocationService.getCAItemsForWorkAllocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n angular.forEach(vm.IOCAWorkAllocationList, function (value1, key1) {\r\n angular.forEach(res.data, function (value2, key2) {\r\n if (value1.IOCA_ShortDescription === value2.IOCA_ShortDescription) {\r\n res.data.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n vm.mappingIoca_Location = function (index) {\r\n // vm.map = true;\r\n if (index == 0) {\r\n vm.map = false;\r\n getAllIOCAWorkAllocation();\r\n }\r\n else if (index == 1) {\r\n vm.map = false;\r\n getAllLocationWorkAllocation();\r\n }\r\n else {\r\n vm.map = true;\r\n vm.isLoading = true;\r\n getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID, function () {\r\n getAllIOCAWorkAllocation();\r\n vm.isLoading = false;\r\n // getAllLocationWorkAllocation();\r\n });\r\n }\r\n\r\n }\r\n\r\n function getWorkAllocation(ProjectId, EmployeeId, callBack) {\r\n\r\n if (EmployeeId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n EmpId: EmployeeId,\r\n LocationId: vm.projteam.selectedLocation.LocationId\r\n }\r\n WorkAllocationService.GetWorkAllocationByEmp(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allocationId = false;\r\n for (var i in res.data.LocationList) {\r\n if (res.data.LocationList[i].Status == 1)\r\n vm.allocationId = true;\r\n }\r\n var arrayOfObjAfter = _.map(\r\n _.uniq(\r\n _.map(res.data.LocationList, function (obj) {\r\n return JSON.stringify(obj);\r\n })\r\n ), function (obj) {\r\n return JSON.parse(obj);\r\n }\r\n );\r\n res.data.LocationList = arrayOfObjAfter;\r\n vm.WorkAllocationList = res.data;\r\n\r\n if (callBack);\r\n callBack();\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n }\r\n else {\r\n\r\n }\r\n\r\n // getLocationByProject(vm.projteam.selectedProject.ProjectId);\r\n }\r\n\r\n // function addIoca() {\r\n // lodash.forEach(vm.projteam.selectedIoca, function (t) {\r\n // var iocaObject = {\r\n // TypeId: vm.projteam.selectedType.TypeId,\r\n // IocaId: t.Id,\r\n // ShortDescription: t.ShortDescription\r\n // }\r\n // vm.WorkAllocationList.IocaList.push(iocaObject);\r\n // iocaObject = {};\r\n // });\r\n // vm.projteam.selectedCategory = null;\r\n // vm.CategoryList = [];\r\n // vm.projteam.selectedSubcategory = null;\r\n // vm.SubCategoryList = [];\r\n // vm.projteam.selectedType = null;\r\n // vm.TypeList = [];\r\n // vm.projteam.selectedTypeOfAttribute = null;\r\n // vm.projteam.selectedIoca = null;\r\n // vm.IocaList = [];\r\n // // getLocationByProject(vm.projteam.selectedProject.ProjectId);\r\n\r\n\r\n // }\r\n\r\n // function addLoc() {\r\n // vm.loc = []\r\n // for (var i in vm.selectedTier) {\r\n // vm.loc.push(vm.selectedTier[i].TierName + ':' + vm.selectedTier[i].TierValue);\r\n // }\r\n // for (var i in vm.Tiers) {\r\n // vm.loc.push(vm.Tiers[i].TierName + ':' + vm.Tiers[i].TierValue)\r\n // vm.Tiers[i].Locations = vm.loc.join('/');\r\n // vm.loc.splice(-1, 1)\r\n // }\r\n\r\n // lodash.forEach(vm.Tiers, function (t) {\r\n // var locObject = {\r\n // \"BasicLocation\": vm.projteam.selectedLocation.BasicLocation,\r\n // \"Locations\": t.Locations,\r\n // \"LocationId\": vm.projteam.selectedLocation.LocationId,\r\n // \"TierId\": t.TierId\r\n // }\r\n // vm.WorkAllocationList.LocationList.push(locObject);\r\n // locObject = {};\r\n // });\r\n // vm.selectedTier = [];\r\n // vm.Tiers = [];\r\n // clearTierSelection();\r\n\r\n\r\n // }\r\n\r\n function SaveWorkAllocation(obj) {\r\n vm.isMapLoading = true;\r\n // if (vm.allocationId) {\r\n var strTier = [];\r\n // var IocaIdList = []; \r\n var array = [];\r\n for (var i in vm.projteam.selectedMappingLocation) {\r\n strTier.push(vm.projteam.selectedMappingLocation[i].TierId)\r\n }\r\n // for (var i in vm.projteam.selectedMappingIoca) {\r\n // IocaIdList.push(vm.projteam.selectedMappingIoca[i].Ioca_Id)\r\n // array.push(vm.projteam.selectedMappingIoca[i].TypeId)\r\n // }\r\n\r\n vm.IOCA_Ids = vm.projteam.selectedMappingIoca.Ioca_Id;\r\n vm.TierIds = strTier.join(',');\r\n vm.type = array.join(',');\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n LocationId: (vm.projteam.selectedLocation) ? vm.projteam.selectedLocation.LocationId : \"\",\r\n EmpId: vm.projteam.selectedEmployee.EmpID,\r\n TierIds: (vm.TierIds) ? vm.TierIds : \"\",\r\n TypeIds: (vm.type) ? vm.type : \"\",\r\n IOCA_Ids: (vm.IOCA_Ids) ? vm.IOCA_Ids : \"\",\r\n CreatedBy: loggedUser.UserId\r\n }\r\n WorkAllocationService.SaveWorkAllocation(obj).then(function (res) {\r\n debugger;\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n // vm.ExistingDataList = [];\r\n // getLocationByProject(vm.projteam.selectedProject.ProjectId); \r\n // clearLocation();\r\n vm.isMapLoading = false;\r\n vm.isLoading = true;\r\n vm.projteam.selectedMappingIoca = null;\r\n vm.projteam.selectedMappingLocation = null;\r\n vm.projteam.selectedMappingLocation = [];\r\n vm.WorkAllocationList = [];\r\n vm.MappingLocationList = [];\r\n\r\n getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID, function () {\r\n getAllIOCAWorkAllocation();\r\n\r\n // getAllLocationWorkAllocation();\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('Warning', res.data.Message, \"Work Allocation\");\r\n var location = '';\r\n var ioca = '';\r\n for (var i in res.data.LocationList) {\r\n if (res.data.LocationList[i].Locations != \"\") {\r\n location = location + res.data.LocationList[i].Locations + ' ' + \"\" + 'Allocated to' + ' ' + res.data.LocationList[i].EmployeeName + \"\" + '
' + '
';\r\n }\r\n }\r\n for (var i in res.data.IocaList) {\r\n if (res.data.IocaList[i].ShortDescription != \"\") {\r\n ioca = ioca + res.data.IocaList[i].ShortDescription + ' ' + \"\" + 'Allocated to' + ' ' + res.data.IocaList[i].EmployeeName + \"\" + '
' + '
';\r\n }\r\n }\r\n if (location != undefined && location != null && location != \"\") {\r\n dialogs.notify(' Remove the list of Location which is already allocated , then try to add new Location', location, { animation: true, size: 'md' });\r\n } if (ioca != undefined && ioca != null && ioca != \"\") {\r\n dialogs.notify(' Remove the list of IOCA which is already allocated , then try to add new IOCA. ', ioca, { animation: true, size: 'md' });\r\n }\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n //} \r\n // else {\r\n // var strTier = [];\r\n // for (var i in vm.WorkAllocationList.LocationList) {\r\n // strTier.push(vm.WorkAllocationList.LocationList[i].TierId)\r\n // }\r\n // var strLoc = [];\r\n // vm.locIdList = [];\r\n // for (var i in vm.WorkAllocationList.LocationList) {\r\n // var loc = {};\r\n // loc.LocationId = vm.WorkAllocationList.LocationList[i].LocationId\r\n // var except = lodash.includes(lodash.map(strLoc, \"LocationId\"), loc.LocationId);\r\n // if (!except) {\r\n // strLoc.push(loc);\r\n // vm.locIdList.push(loc.LocationId);\r\n // }\r\n // }\r\n // var IocaIdList = [];\r\n // var TypeIdList = [];\r\n // for (var i in vm.WorkAllocationList.IocaList) {\r\n // IocaIdList.push(vm.WorkAllocationList.IocaList[i].IocaId)\r\n // }\r\n // for (var i in vm.WorkAllocationList.IocaList) {\r\n // TypeIdList.push(vm.WorkAllocationList.IocaList[i].TypeId)\r\n // }\r\n // vm.IOCA_Ids = IocaIdList.join(',');\r\n // vm.TierIds = strTier.join(',');\r\n // vm.TypeIds = TypeIdList.join(',');\r\n // vm.LocIds = vm.locIdList.join(',');\r\n // var obj = {\r\n // ProjectId: vm.projteam.selectedProject.ProjectId,\r\n // LocationId: (vm.LocIds) ? vm.LocIds : \"\",\r\n // EmpId: vm.projteam.selectedEmployee.EmpID,\r\n // TierIds: (vm.TierIds) ? vm.TierIds : \"\",\r\n // TypeIds: (vm.TypeIds) ? vm.TypeIds : \"\",\r\n // IOCA_Ids: (vm.IOCA_Ids) ? vm.IOCA_Ids : \"\",\r\n // CreatedBy: loggedUser.UserId\r\n // }\r\n // WorkAllocationService.SaveWorkAllocation(obj).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n // // vm.ExistingDataList = [];\r\n // // getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID);\r\n // clearLocation();\r\n // } else {\r\n // $rootScope.showToaster('Warning', res.data.Message, \"Work Allocation\");\r\n // var location = '';\r\n // var ioca = '';\r\n // for (var i in res.data.LocationList) {\r\n // if (res.data.LocationList[i].Locations != \"\") {\r\n // location = location + res.data.LocationList[i].Locations + ' ' + \"\" + 'Allocated to' + ' ' + res.data.LocationList[i].EmployeeName + \"\" + '
' + '
';\r\n // }\r\n // }\r\n // for (var i in res.data.IocaList) {\r\n // if (res.data.IocaList[i].ShortDescription != \"\") {\r\n // ioca = ioca + res.data.IocaList[i].ShortDescription + ' ' + \"\" + 'Allocated to' + ' ' + res.data.IocaList[i].EmployeeName + \"\" + '
' + '
';\r\n // }\r\n // }\r\n // if (location != undefined && location != null && location != \"\") {\r\n // dialogs.notify('Remove the list of Location which is already allocated , then try to add new Location', location, { animation: true, size: 'md' });\r\n // } if (ioca != undefined && ioca != null && ioca != \"\") {\r\n // dialogs.notify('Remove the list of IOCA which is already allocated , then try to add new IOCA. ', ioca, { animation: true, size: 'md' });\r\n // }\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n // });\r\n // }\r\n\r\n\r\n\r\n }\r\n\r\n function SaveIOCAWorkAllocation() {\r\n var iocaobj = {}; var IocaIdList = [];\r\n for (var i in vm.projteam.selectedIoca) {\r\n iocaobj.IOCA_Id = (vm.projteam.selectedIoca[i].IOCA_Id);\r\n iocaobj.TypeId = (vm.projteam.selectedIoca[i].TypeId);\r\n IocaIdList.push(iocaobj);\r\n iocaobj = {};\r\n }\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n EmployeeId: vm.projteam.selectedEmployee.EmpID,\r\n // TypeId: vm.TypeIds.join(','),\r\n IOCA_Id: JSON.stringify(IocaIdList),\r\n CreatedBy: loggedUser.UserId\r\n }\r\n WorkAllocationService.SaveIOCAWorkAllocation(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n getAllIOCAWorkAllocation();\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n function getAllIOCAWorkAllocation(callBack) {\r\n // vm.map = false;\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n EmpId: vm.projteam.selectedEmployee.EmpID\r\n }\r\n WorkAllocationService.getIOCAWorkAllocation(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.IOCAWorkAllocationList = res.data;\r\n vm.isLoading = false;\r\n if (vm.map) {\r\n // if (vm.IOCAWorkAllocationList.length >= 1) {\r\n // for (var i = 0; i < vm.IOCAWorkAllocationList.length; i++) {\r\n // for (var j = 0; j < vm.WorkAllocationList.IocaList.length; j++) {\r\n // if ((vm.WorkAllocationList.IocaList[j].IOCA_Id == vm.IOCAWorkAllocationList[i].Ioca_Id)) {\r\n // findAndRemove(vm.IOCAWorkAllocationList, 'Ioca_Id', vm.IOCAWorkAllocationList[i].Ioca_Id)\r\n // }\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'try again', \"Work Allocation\");\r\n }\r\n });\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.TypeList = [];\r\n vm.projteam.selectedTypeOfAttribute = null;\r\n vm.projteam.selectedIoca = null;\r\n vm.IocaList = [];\r\n getCategoryForWorkAllocation(vm.projteam.selectedProject.ProjectId);\r\n }\r\n\r\n function SaveLocationWorkAllocation() {\r\n\r\n\r\n var TierIdList = [];\r\n for (var i in vm.Tiers) {\r\n TierIdList.push(vm.Tiers[i].TierId)\r\n }\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n EmployeeId: vm.projteam.selectedEmployee.EmpID,\r\n TierId: TierIdList.join(','),\r\n CreatedBy: loggedUser.UserId\r\n }\r\n WorkAllocationService.SaveLocationWorkAllocation(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n getAllLocationWorkAllocation();\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n function getTiersByMappingIOCA(callBack) {\r\n debugger;\r\n // vm.map = false;\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n EmpId: vm.projteam.selectedEmployee.EmpID,\r\n IOCA_Id: vm.projteam.selectedMappingIoca.Ioca_Id,\r\n ActionBy: loggedUser.UserId\r\n }\r\n WorkAllocationService.getTiersByMappingIOCA(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.MappingLocationList = res.data;\r\n if (vm.MappingLocationList.length == 0) {\r\n dialogs.notify('Warning', '! No Location for the selected IOCA for the User.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'try again', \"Work Allocation\");\r\n }\r\n });\r\n }\r\n\r\n function getAllLocationWorkAllocation(callBack) {\r\n debugger;\r\n // vm.map = false;\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n LocationId: vm.projteam.selectedLocation.LocationId,\r\n EmpId: vm.projteam.selectedEmployee.EmpID\r\n }\r\n WorkAllocationService.getLocationWorkAllocation(obj).then(function (res) {\r\n if (res.status == 200) {\r\n vm.LocationWorkAllocationList = res.data;\r\n if (vm.map) {\r\n if (vm.LocationWorkAllocationList.length >= 1) {\r\n for (var i = 0; i < vm.LocationWorkAllocationList.length; i++) {\r\n for (var j = 0; j < vm.WorkAllocationList.LocationList.length; j++) {\r\n if ((vm.LocationWorkAllocationList[i].TierId == vm.WorkAllocationList.LocationList[j].TierId)) {\r\n findAndRemove(vm.LocationWorkAllocationList, 'TierId', vm.LocationWorkAllocationList[i].TierId)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'try again', \"Work Allocation\");\r\n }\r\n });\r\n clearTierSelection();\r\n getTiersByLocationId(vm.projteam.selectedLocation.LocationId);\r\n }\r\n\r\n vm.cancel = function () {\r\n vm.projteam.selectedCompany = null;\r\n vm.projteam.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.projteam.selectedEmployee = null;\r\n vm.EmployeeList = [];\r\n vm.projteam.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.projteam.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.projteam.selectedSubcategory = null;\r\n vm.SubCategoryList = [];\r\n vm.projteam.selectedType = null;\r\n vm.TypeList = [];\r\n vm.WorkAllocationList = [];\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n tier.selectedTierValue = null;\r\n // tier.Values = [];\r\n })\r\n }\r\n\r\n // function clearLocation() {\r\n // // vm.projteam.selectedLocation = null;\r\n // // vm.LocationMaster = [];\r\n // clearTierSelection();\r\n // vm.projteam.selectedCategory = null;\r\n // vm.CategoryList = [];\r\n // vm.projteam.selectedSubcategory = null;\r\n // vm.SubCategoryList = [];\r\n // vm.projteam.selectedType = null;\r\n // vm.TypeList = [];\r\n // vm.projteam.selectedTypeOfAttribute = null;\r\n // vm.projteam.selectedIoca = null;\r\n // vm.IocaList = [];\r\n // getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID);\r\n // }\r\n\r\n function checkLocrow() {\r\n var check = false;\r\n for (var i in vm.WorkAllocationList.LocationList) {\r\n if (vm.WorkAllocationList.LocationList[i].isChecked === true) {\r\n check = true;\r\n return check;\r\n }\r\n else {\r\n check = false;\r\n }\r\n\r\n }\r\n\r\n }\r\n function checkIocarow() {\r\n var check = false;\r\n for (var i in vm.WorkAllocationList.IocaList) {\r\n if (vm.WorkAllocationList.IocaList[i].isChecked === true) {\r\n check = true;\r\n return check;\r\n }\r\n else {\r\n check = false;\r\n }\r\n\r\n }\r\n\r\n }\r\n function removeIOCAWorkallocation(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure to remove the IOCA from the list.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n WorkAllocationService.removeIOCAWorkallocation(row.Id).then(function (res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID);\r\n // clearLocation();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Allocation\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n function removeLocationWorkallocation(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure to remove the Location from the list.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n WorkAllocationService.removeLocationWorkallocation(row.Id).then(function (res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID);\r\n // clearLocation();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Allocation\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n function removeLoc() {\r\n if (checkLocrow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure to remove the Location from the list.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n if (vm.allocationId) {\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n EmpId: vm.projteam.selectedEmployee.EmpID,\r\n LastTierId: selectRow(vm.tableIds)\r\n }\r\n WorkAllocationService.RemoveWorkAllocation(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID);\r\n //clearLocation();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Allocation\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n _.remove(vm.WorkAllocationList.LocationList, function (el) {\r\n // remove all numbers\r\n return el.isChecked === true;\r\n\r\n\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n function removeIoca() {\r\n if (checkIocarow() === true) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure to remove the Construction Activity from the list.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n if (vm.allocationId) {\r\n var obj = {\r\n ProjectId: vm.projteam.selectedProject.ProjectId,\r\n EmpId: vm.projteam.selectedEmployee.EmpID,\r\n IOCA_Id: selectRow(vm.tableIds)\r\n }\r\n WorkAllocationService.RemoveWorkAllocation(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Allocation\");\r\n getWorkAllocation(vm.projteam.selectedProject.ProjectId, vm.projteam.selectedEmployee.EmpID);\r\n clearLocation();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Allocation\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n _.remove(vm.WorkAllocationList.IocaList, function (el) {\r\n // remove all numbers\r\n return el.isChecked === true;\r\n\r\n\r\n });\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n\r\n }\r\n})(); \n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.consumableMaster')\r\n .controller('ConsumableCatagoryCtrl', ConsumableCatagoryCtrl);\r\n\r\n /** @ngInject */\r\n function ConsumableCatagoryCtrl($http, $rootScope,$window, lodash, dialogs, ConsumableCatagoryService, AuthenticationService,$scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.ConsumableCategoryList = [];\r\n $rootScope.isLogin = false;\r\n // Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editConsumableCategory = editConsumableCategory;\r\n vm.changeActiveConsumableCatagory = changeActiveConsumableCatagory;\r\n vm.removeConsumableCategory = removeConsumableCategory;\r\n vm.SaveConsumableCategory = SaveConsumableCategory;\r\n vm.ShowConsumableCategoryReport = ShowConsumableCategoryReport;\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n function Init() {\r\n\r\n ConsumableCatagoryService.getAllConsumableCatagory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Consumable Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Consumable Category\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.code = true;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n\r\n }\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.consumable = {};\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.consumable = {};\r\n \r\n });\r\n\r\n\r\n }\r\n function resetForm() {\r\n vm.ConsumableForm.$setUntouched();\r\n }\r\n\r\n function editConsumableCategory(consumable) {\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.consumable = angular.copy(consumable);\r\n\r\n }\r\n function changeActiveConsumableCatagory(consumable) {\r\n var msg = 'Are sure you want to ' + ((consumable.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((consumable.IsActive) ? 'Deactive' : 'Active') + 'City Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n ConsumableCatagoryService.changeActiveConsumableCatagory(consumable.ConsumableCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'InActive Consumable Category Successfully', \"ConsumableCategory\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Consumable Category Country\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Country.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function removeConsumableCategory(consumable) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n ConsumableCatagoryService.removeConsumableCategory(consumable.ConsumableCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Consumable Category Successfully', \" Consumable Category\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Consumable Category Country\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Country.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n function SaveConsumableCategory(consumable) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n consumable.CreatedBy = logggedUser.UserId;\r\n ConsumableCatagoryService.AddConsumableCatagory(consumable).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Consumable Category\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Consumable Category\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n consumable.ModifiedBy = logggedUser.UserId;\r\n ConsumableCatagoryService.EditConsumableCatagory(consumable).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Consumable Category\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Consumable Category\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n \r\n function ShowConsumableCategoryReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n ConsumableCatagoryService.ShowConsumableCategoryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.consumableMaster')\r\n .controller('TypeOfConsumableCtrl', TypeOfConsumableCtrl);\r\n\r\n /** @ngInject */\r\n function TypeOfConsumableCtrl($scope,$rootScope, $window, lodash, dialogs, $http, ConsumableCatagoryService,\r\n TypeOfConsumableServices, UnitOfMeasurementService, AuthenticationService, UomParametersService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TypeOfConsumableList = [];\r\n $rootScope.isLogin = false;\r\n // Methods\r\n // vm.getUnitListByUnitType = getUnitListByUnitType;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.getNonStdUnits = getNonStdUnits;\r\n vm.EditConsumableType = EditConsumableType;\r\n vm.removeConsumableType = removeConsumableType;\r\n vm.SaveConsumableType = SaveConsumableType;\r\n vm.getAllStdUom = getAllStdUom;\r\n vm.changeActiveConsumableType = changeActiveConsumableType;\r\n vm.getConsumableTypeByCat = getConsumableTypeByCat;\r\n vm.ShowConsumbaleTypeReport = ShowConsumbaleTypeReport;\r\n vm.getUnitListByUOMId = getUnitListByUOMId;\r\n\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n function Init() {\r\n TypeOfConsumableServices.getAllTypeOfConsumable().then(function (res) {\r\n if (res.status === 200) {\r\n res.data;\r\n vm.FilterConsumableCategoryList = lodash.uniqBy(res.data, 'ConsumableCategory.CategoryOfWork');\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type Of Consumable\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type Of Consumable\");\r\n });\r\n getConsumableCategory();\r\n }\r\n\r\n function getConsumableCategory() {\r\n ConsumableCatagoryService.getActiveConsumableCatagory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Consumable Category \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Consumable Category \");\r\n });\r\n }\r\n\r\n function getConsumableTypeByCat(ConsumableCategoryId) {\r\n vm.FilterTypeOfConsumableList = [];\r\n TypeOfConsumableServices.GetTypeOfCAByCategoryId(ConsumableCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FilterTypeOfConsumableList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Consumable Type\");\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n function getAllStdUom(callBack) {\r\n UnitOfMeasurementService.GetAllStdUOM().then(function (res) {\r\n if (res.status === 200) {\r\n vm.UOM_MasterList = res.data;\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n // function getUnitListByUnitType(UnitType, UOM_Id, callback) {\r\n // if (UnitType) {\r\n // UnitOfMeasurementService.getAllUnitByUnitType(UnitType, UOM_Id).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.UnitList = res.data;\r\n\r\n // vm.isLoading = false;\r\n\r\n // if (callback)\r\n // callback();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Units\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n // });\r\n // }\r\n // }\r\n function getUnitListByUOMId(UnitType, UOM_Id, callback) {\r\n if (UOM_Id !== undefined) {\r\n var Obj = {\r\n UnitType: vm.UnitType,\r\n UOM_Id: UOM_Id\r\n }\r\n UnitOfMeasurementService.getAllUnits(Obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.selectedUnit = null;\r\n vm.UnitList = res.data;\r\n if (callback)\r\n callback(); \r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Units\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Select UOM & Measurement Type', \"Units\");\r\n }\r\n }\r\n\r\n\r\n\r\n function getNonStdUnits(callBack) {\r\n vm.selectedUnit = null;\r\n vm.selectedNonStdUnit = null;\r\n vm.UnitType = null;\r\n vm.selectedUom = null;\r\n vm.NonStdUnitList = [];\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function (res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitList = res.data;\r\n if (callBack)\r\n callBack()\r\n } else { }\r\n }, function (err) { });\r\n\r\n }\r\n\r\n\r\n function Create() {\r\n vm.code = true;\r\n vm.typeofConsumable = {};\r\n vm.isEditing = false;\r\n vm.FilterConsumableCategory = null;\r\n vm.FilterConsumableCategoryList = [];\r\n vm.isFormOpen = true;\r\n vm.FilterTypeOfConsumableList = null;\r\n vm.unitsStd = null;\r\n }\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.typeofConsumable = {};\r\n vm.selectedUnit = null;\r\n vm.UnitList = [];\r\n vm.selectedNonStdUnit = null;\r\n vm.NonStdUnitList = [];\r\n vm.UnitType = null;\r\n vm.unitsStd = null;\r\n vm.UOM_MasterList = [];\r\n vm.selectedUom = null;\r\n Init();\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.typeofConsumable = {};\r\n vm.selectedUnit = null;\r\n vm.UnitList = [];\r\n vm.selectedNonStdUnit = null;\r\n vm.NonStdUnitList = [];\r\n vm.UnitType = null;\r\n vm.unitsStd = null;\r\n vm.UOM_MasterList = [];\r\n vm.selectedUom = null;\r\n Init();\r\n });\r\n }\r\n\r\n function resetForm() {\r\n vm.typesofConsumableForm.$setUntouched();\r\n }\r\n\r\n // Edit Consumable\r\n function EditConsumableType(typeofConsumable) {\r\n\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.typeofConsumable = angular.copy(typeofConsumable);\r\n\r\n\r\n for (var c in vm.ConsumableCategoryList) {\r\n if (vm.ConsumableCategoryList[c].ConsumableCategoryId === typeofConsumable.ConsumableCategoryId) {\r\n vm.typeofConsumable.selectedConsumableCategory = vm.ConsumableCategoryList[c];\r\n }\r\n }\r\n\r\n getAllStdUom(function () { // Get Type of dimension \r\n for (var c in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[c].UOM_Id === typeofConsumable.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[c];\r\n }\r\n }\r\n // Get Standard Unit\r\n if (typeofConsumable.UOM.Type == 'S') {\r\n vm.unitsStd = 'S'\r\n vm.UnitType = typeofConsumable.Unit.UnitType;\r\n getUnitListByUOMId(vm.UnitType,vm.selectedUom.UOM_Id, function () {\r\n for (var c in vm.UnitList) {\r\n if (vm.UnitList[c].UnitId === typeofConsumable.UnitId) {\r\n vm.selectedUnit = vm.UnitList[c];\r\n }\r\n }\r\n })\r\n } else {\r\n vm.unitsStd = 'NS'; // Get Non Standard Unit \r\n getNonStdUnits(function () {\r\n for (var c in vm.NonStdUnitList) {\r\n if (vm.NonStdUnitList[c].UOM_Id === typeofConsumable.UOM_Id) {\r\n vm.selectedNonStdUnit = vm.NonStdUnitList[c];\r\n }\r\n }\r\n })\r\n }\r\n });\r\n\r\n \r\n \r\n\r\n\r\n }\r\n\r\n function removeConsumableType(typeofConsumable) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n\r\n TypeOfConsumableServices.removeConsumableType(typeofConsumable.ConsumeTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Type Of Consumable\");\r\n getConsumableTypeByCat(vm.FilterConsumableCategory.ConsumableCategoryId);\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Parent Type Of Consumable\", { animation: true, size: 'sm' });\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Parent Department.If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n\r\n }\r\n function SaveConsumableType(typeofConsumable) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n typeofConsumable.ConsumableCategoryId = vm.typeofConsumable.selectedConsumableCategory.ConsumableCategoryId;\r\n typeofConsumable.UnitId = (vm.selectedUnit != undefined) ? vm.selectedUnit.UnitId : '';\r\n typeofConsumable.UOM_Id = ((vm.selectedUom != undefined) ? vm.selectedUom.UOM_Id : '') || ((vm.selectedNonStdUnit != undefined) ? vm.selectedNonStdUnit.UOM_Id : '');\r\n\r\n if (!vm.isEditing) {\r\n typeofConsumable.CreatedBy = loggedUser.UserId;\r\n TypeOfConsumableServices.AddTypeOfConsumable(typeofConsumable).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Type Of Consumable\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Type Of Consumable\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n typeofConsumable.ModifiedBy = loggedUser.UserId;\r\n\r\n TypeOfConsumableServices.EditTypeOfConsumable(typeofConsumable).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Type Of Consumable\");\r\n getConsumableTypeByCat(vm.typeofConsumable.selectedConsumableCategory.ConsumableCategoryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Type Of Consumable\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function changeActiveConsumableType(typeofConsumable) {\r\n var msg = 'Are sure you want to ' + ((typeofConsumable.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((typeofConsumable.IsActive) ? 'Deactive' : 'Active') + 'Type Of Consumable Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n TypeOfConsumableServices.changeActiveConsumableType(typeofConsumable.ConsumeTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Type Of Consumable\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Type Of Consumable. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n function ShowConsumbaleTypeReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputdata = {\r\n CompanyName: 'PIONEER GROUP',\r\n\r\n }\r\n\r\n TypeOfConsumableServices.ShowConsumbaleTypeReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .controller('BlockandBackforCorrectionCtrl', BlockandBackforCorrectionCtrl);\r\n\r\n /** @ngInject */\r\n function BlockandBackforCorrectionCtrl($http, $rootScope, $state, lodash, dialogs, ContractorRegService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isFormOpen = false;\r\n // End of Pagination code \r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.ContractorList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.editContractor = editContractor;\r\n vm.removeContractor = removeContractor;\r\n\r\n vm.fromDraft = function () {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n ContractorRegService.getAllBlockContractor($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.getAllBlockContractorList = res.data;\r\n for (var i in vm.getAllBlockContractorList) {\r\n vm.getAllBlockContractorList[i].ContractorOfficeAddressDetails = JSON.parse(vm.getAllBlockContractorList[i].ContractorOfficeAddressDetails);\r\n }\r\n for (var i in vm.getAllBlockContractorList) {\r\n vm.getAllBlockContractorList[i].StatutoryDetails = JSON.parse(vm.getAllBlockContractorList[i].StatutoryDetails);\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n $state.go('contractorRegForm');\r\n\r\n }\r\n\r\n vm.viewContractor = function (contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorview', {\r\n data: data\r\n })\r\n }\r\n\r\n function editContractor(contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorRegEdit', {\r\n data: data\r\n })\r\n }\r\n\r\n function removeContractor(contractor) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n ContractorRegService.removeContractor(contractor.ContractorId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Contractor\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Contractor\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n })\r\n })\r\n };\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .controller('ApprovalCtrl', ApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function ApprovalCtrl($http, $rootScope, $state, lodash, dialogs, ContractorRegService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isFormOpen = false;\r\n // End of Pagination code \r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.ContractorList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.editContractor = editContractor;\r\n vm.removeContractor = removeContractor;\r\n\r\n vm.fromDraft = function () {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n ContractorRegService.getAllApprovalContractor($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.getAllApprovalContractor = res.data;\r\n for (var i in vm.getAllApprovalContractor) {\r\n vm.getAllApprovalContractor[i].ContractorOfficeAddressDetails = JSON.parse(vm.getAllApprovalContractor[i].ContractorOfficeAddressDetails);\r\n }\r\n for (var i in vm.getAllApprovalContractor) {\r\n vm.getAllApprovalContractor[i].StatutoryDetails = JSON.parse(vm.getAllApprovalContractor[i].StatutoryDetails);\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n $state.go('contractorRegForm');\r\n\r\n }\r\n\r\n vm.viewContractor = function (contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorview', {\r\n data: data\r\n })\r\n }\r\n\r\n function editContractor(contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorRegEdit', {\r\n data: data\r\n })\r\n }\r\n\r\n function removeContractor(contractor) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n ContractorRegService.removeContractor(contractor.ContractorId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Contractor\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Contractor\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n })\r\n })\r\n };\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .controller('ContractorpendingForApprovalCtrl', ContractorpendingForApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function ContractorpendingForApprovalCtrl($http, $rootScope, $state, lodash, dialogs, ContractorRegService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isFormOpen = false;\r\n // End of Pagination code \r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.ContractorList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.editContractor = editContractor;\r\n vm.removeContractor = removeContractor;\r\n\r\n vm.fromDraft = function() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n ContractorRegService.getAllPendingForApprovalContractor($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.getAllPendingForApprovalContractor = res.data;\r\n for (var i in vm.getAllPendingForApprovalContractor) {\r\n vm.getAllPendingForApprovalContractor[i].ContractorOfficeAddressDetails = JSON.parse(vm.getAllPendingForApprovalContractor[i].ContractorOfficeAddressDetails);\r\n }\r\n for (var i in vm.getAllPendingForApprovalContractor) {\r\n vm.getAllPendingForApprovalContractor[i].StatutoryDetails = JSON.parse(vm.getAllPendingForApprovalContractor[i].StatutoryDetails);\r\n }\r\n Tile();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n\r\n function Tile() {\r\n vm.TotalWaiting = [];\r\n vm.TotalResubmit = [];\r\n\r\n for (var i in vm.getAllPendingForApprovalContractor) {\r\n if (vm.getAllPendingForApprovalContractor[i].Status === 3) {\r\n vm.TotalWaiting.push(vm.getAllPendingForApprovalContractor[i])\r\n }\r\n\r\n if (vm.getAllPendingForApprovalContractor[i].Status === 2) {\r\n vm.TotalResubmit.push(vm.getAllPendingForApprovalContractor[i])\r\n }\r\n }\r\n // if (vm.TotalWaiting.length < 1 || vm.TotalResubmit.length < 1) {\r\n // dialogs.notify('Warning', 'No data available ' , { animation: true, size: 'sm' });\r\n // } \r\n if (!vm.TotalWaiting.length > 0 || !vm.TotalResubmit.length > 0) {\r\n dialogs.notify('Warning', '! There is no Contractors in Pending for Approval Status', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n $state.go('contractorRegForm');\r\n\r\n }\r\n\r\n vm.viewContractor = function(contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorview', {\r\n data: data\r\n })\r\n }\r\n\r\n\r\n function editContractor(contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorRegEdit', {\r\n data: data\r\n })\r\n }\r\n\r\n function removeContractor(contractor) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n ContractorRegService.removeContractor(contractor.ContractorId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Contractor\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Contractor\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n })\r\n })\r\n };\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .controller('GridContractorRegCtrl', GridContractorRegCtrl);\r\n\r\n /** @ngInject */\r\n function GridContractorRegCtrl($http, $rootScope, $state, lodash, dialogs, ContractorRegService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isEditing = false; \r\n vm.isLoading = true;\r\n vm.ContractorList = [];\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.Create = Create;\r\n vm.editContractor = editContractor;\r\n vm.removeContractor = removeContractor;\r\n\r\n Init();\r\n\r\n function Init() {\r\n ContractorRegService.getAllDraftContractor($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n for (var i in vm.ContractorList) {\r\n vm.ContractorList[i].ContractorOfficeAddressDetails = JSON.parse(vm.ContractorList[i].ContractorOfficeAddressDetails);\r\n }\r\n for (var i in vm.ContractorList) {\r\n vm.ContractorList[i].StatutoryDetails = JSON.parse(vm.ContractorList[i].StatutoryDetails);\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false; \r\n $state.go('contractorRegForm');\r\n }\r\n\r\n vm.viewContractor = function (contractor) {\r\n debugger;\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorview', {\r\n data: data\r\n })\r\n }\r\n\r\n function editContractor(contractor) {\r\n vm.contractor = angular.copy(contractor);\r\n var data = {\r\n isEditing: true,\r\n contractor: vm.contractor\r\n }\r\n $state.go('contractorRegEdit', {\r\n data: data\r\n })\r\n }\r\n\r\n function removeContractor(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n ContractorRegService.removeContractor(row.ContractorId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Contractor\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Contractor\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n })\r\n })\r\n };\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .controller('ContractorRegCtrl', ContractorRegCtrl);\r\n\r\n /** @ngInject */\r\n function ContractorRegCtrl($rootScope, lodash, dialogs, $http, CountryService, AuthenticationService, ContractorRegService,\r\n StateService, CityService, AreaService, CompanyService, CategoryofCAService, TypeOfCAService, categoryOfMachineryService,\r\n MachineryTypeService, IOMachineryService, Base64, $state, $scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.contractor = {};\r\n vm.CategoryList = [];\r\n vm.TypeOfCAList = [];\r\n // vm.contractor={selectedCategory:[],selectedTypeOfCA:[]}; \r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isEditing = false;\r\n vm.isTableOpen = false;\r\n vm.isLoading = true;\r\n vm.isEditingLogo = false;\r\n vm.open = false;\r\n $rootScope.isLogin = false;\r\n //Method\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n //Communication Method\r\n vm.getComStateListByCountryId = getComStateListByCountryId;\r\n vm.getComCityListByStateId = getComCityListByStateId;\r\n vm.getComAreaListByCityId = getComAreaListByCityId;\r\n //Head office method\r\n vm.getHeadStateListByCountryId = getHeadStateListByCountryId;\r\n vm.getHeadCityListByStateId = getHeadCityListByStateId;\r\n vm.getHeadAreaListByCityId = getHeadAreaListByCityId;\r\n vm.getTypeofMachListByCategoryofMach = getTypeofMachListByCategoryofMach;\r\n vm.getIOMHListByType = getIOMHListByType;\r\n //Multiple Dropdown select\r\n vm.getTypeofCAListByCategoryId = getTypeofCAListByCategoryId;\r\n // vm.editLogo = editLogo; \r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editcontractor = editcontractor;\r\n vm.removecontractor = removecontractor;\r\n vm.SaveContractor = SaveContractor;\r\n vm.changeActivecontractor = changeActivecontractor;\r\n vm.back = back;\r\n\r\n // File upload methods\r\n // $scope.photoChanged = photoChanged;\r\n Init();\r\n ////////////////\r\n vm.TDSRateList = [{\r\n 'RateName': 'Full Rate',\r\n 'Id': 1\r\n }, {\r\n 'RateName': 'Partial Rate in(%)',\r\n 'Id': 2\r\n }, {\r\n 'RateName': 'Zero Rate',\r\n 'Id': 3\r\n }];\r\n vm.TypeOfAttributeList = [{\r\n 'TypeOfAttributeName': 'Generic',\r\n 'Code': 'G'\r\n }, {\r\n 'TypeOfAttributeName': 'Specific',\r\n 'Code': 'S'\r\n }]\r\n\r\n function back() {\r\n $state.go($rootScope.previousState);\r\n }\r\n // function editLogo() {\r\n // vm.isEditingLogo = true;\r\n // vm.open = true;\r\n // }\r\n\r\n\r\n // function photoChanged(event) {\r\n // var reader = new FileReader();\r\n // if (!vm.isEditingLogo) {\r\n // vm.CompanyLogo = event.target.files[0];\r\n // reader.onload = $scope.imageIsLoaded;\r\n // reader.readAsDataURL(vm.CompanyLogo);\r\n // } else {\r\n // vm.CompanyLogo = event.target.files[0];\r\n // reader.onload = $scope.imageIsLoaded;\r\n // reader.readAsDataURL(vm.CompanyLogo);\r\n // var formData = new FormData();\r\n // formData.append('CompanyLogo', vm.CompanyLogo);\r\n // formData.append('CompanyId', vm.CompanyId);\r\n // ContractorRegService.updateLogo(formData).then(function(res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Company Logo changed successfully', \"Success\");\r\n // Init();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n // }\r\n // }, function(err) {\r\n // $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n // });\r\n // }\r\n // }\r\n\r\n function Init() {\r\n ////Changes for indian railways\r\n // vm.FirmList = [{ OwnershipName: 'One Person Company', TypeId: 1 },\r\n // { OwnershipName: 'Sole Proprietorship', TypeId: 2 },\r\n // { OwnershipName: 'Partnership', TypeId: 3 },\r\n // { OwnershipName: 'Private Ltd', TypeId: 4 },\r\n // { OwnershipName: 'Public Ltd', TypeId: 5 },\r\n // { OwnershipName: 'LLP', TypeId: 6 }],\r\n\r\n\r\n\r\n // vm.ContractorTypeList = [{\r\n // ContractorTypeName: 'Supply and Installation',\r\n // ContractorTypeId: 1\r\n // }]\r\n\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n CompanyService.getAllOwnerShip().then(function(res) {\r\n if (res.status === 200) {\r\n vm.FirmList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n /////\r\n ContractorRegService.getAllContractorType().then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n // Load Register Office Address Location\r\n\r\n function getStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.contractor.RoACountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.StateList = [];\r\n vm.contractor.RoAState = null;\r\n vm.CityList = [];\r\n vm.contractor.RoACity = null;\r\n }\r\n }\r\n\r\n\r\n\r\n function getCityListByStateId(StateId, callback) {\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.contractor.RoAState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.CityList = [];\r\n vm.contractor.RoACity = null;\r\n vm.AreaList = [];\r\n vm.contractor.RoAArea = null;\r\n }\r\n }\r\n\r\n\r\n function getAreaListByCityId(CityId, callback) {\r\n AreaService.GetAreaByCityId(CityId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.contractor.RoACity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n //load Head office Address Location\r\n\r\n function getHeadStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.HeadStateList = res.data;\r\n if (vm.HeadStateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.contractor.HeadCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.HeadStateList = [];\r\n vm.contractor.HeadState = null;\r\n vm.HeadCityList = [];\r\n vm.contractor.HeadCity = null;\r\n }\r\n }\r\n\r\n function getHeadCityListByStateId(StateId, callback) {\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.HeadCityList = res.data;\r\n if (vm.HeadCityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.contractor.HeadState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.HeadCityList = [];\r\n vm.contractor.HeadCity = null;\r\n vm.HeadAreaList = [];\r\n vm.contractor.HeadArea = null;\r\n }\r\n }\r\n\r\n function getHeadAreaListByCityId(CityId, callback) {\r\n if (CityId) {\r\n AreaService.GetAreaByCityId(CityId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.HeadAreaList = res.data;\r\n if (vm.HeadAreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.contractor.HeadCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.contractor.HeadArea = null;\r\n vm.HeadAreaList = [];\r\n }\r\n }\r\n\r\n //Load Communication Address Location\r\n\r\n function getComStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ComStateList = res.data;\r\n if (vm.ComStateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.contractor.RoACountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.ComStateList = [];\r\n vm.contractor.ComState = null;\r\n vm.ComCityList = [];\r\n vm.contractor.ComCity = null;\r\n }\r\n }\r\n\r\n function getComCityListByStateId(StateId, callback) {\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ComCityList = res.data;\r\n if (vm.ComCityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.contractor.ComState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.ComCityList = [];\r\n vm.contractor.ComCity = null;\r\n vm.ComAreaList = [];\r\n vm.contractor.ComArea = null;\r\n }\r\n }\r\n\r\n function getComAreaListByCityId(CityId, callback) {\r\n AreaService.GetAreaByCityId(CityId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ComAreaList = res.data;\r\n if (vm.ComAreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.contractor.ComCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n // Load Construction Activities\r\n CategoryofCAService.GetActiveCategoryById().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n for (var c in vm.CategoryList) {\r\n vm.CategoryList[c].CategoryName = (vm.CategoryList[c].CategoryName + '/' + 'Country:' + vm.CategoryList[c].Country.CountryName + '/' + 'FOC:' + vm.CategoryList[c].FOC.FieldofConstructionName);\r\n\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n\r\n // //MULTIPLE DROPDOWN\r\n // $scope.example14settings = {\r\n // scrollableHeight: '200px',\r\n // scrollable: true,\r\n // enableSearch: true\r\n // };\r\n\r\n // $scope.myEvents = {\r\n // onItemSelect: getTypeofCAListByCategoryId,\r\n // onItemDeselect:getTypeofCAListByCategoryId,\r\n // onSelectAll:getTypeofCAListByCategoryId,\r\n // onDeselectAll:getTypeofCAListByCategoryId\r\n // }\r\n\r\n\r\n function getTypeofCAListByCategoryId() {\r\n debugger;\r\n var temp = [];\r\n vm.contractor.selectedTypeOfCA = [];\r\n var Cat = vm.contractor.selectedCategory;\r\n\r\n var tempData = [];\r\n for (var i in Cat) {\r\n if (Cat[i].CategoryId != undefined) {\r\n tempData.push(Cat[i].CategoryId);\r\n }\r\n }\r\n temp = tempData;\r\n var teststring = JSON.stringify(temp)\r\n var CategoryIds = teststring.substring(1, teststring.length - 1)\r\n\r\n var obj = {\r\n CategoryId: CategoryIds\r\n }\r\n TypeOfCAService.GetTypeOfCAByCategoryId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n for (var c in vm.TypeOfCAList) {\r\n vm.TypeOfCAList[c].CA_TypeName = (vm.TypeOfCAList[c].CA_TypeName + '/' + 'Subcategory:' + vm.TypeOfCAList[c].SubCategory.SubCategoryName);\r\n }\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type of CA available for ' + vm.contractor.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n //Load Machinery Details\r\n\r\n categoryOfMachineryService.getActiveCategoryOfMachinery().then(function(res) {\r\n if (res.status === 200) {\r\n vm.MachCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category Of Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category Of Machinery\");\r\n });\r\n\r\n function getTypeofMachListByCategoryofMach(CategoryOfMachineryId, callback) {\r\n MachineryTypeService.GetTypeOfMachineryByCategory(CategoryOfMachineryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MachTypeList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type Of Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type Of Machinery\");\r\n });\r\n }\r\n\r\n function getIOMHListByType() {\r\n var obj = {\r\n COM_Id: vm.contractor.selectedMahineryCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.contractor.selectedMahineryType.MachSubCategoryId,\r\n MachTypeId: vm.contractor.selectedMahineryType.MachTypeId,\r\n SpecType: vm.contractor.selectedTypeOfAttribute.Code\r\n }\r\n IOMachineryService.getAllIOMachinery(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOMHList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n // $scope.imageIsLoaded = function(c) {\r\n // $scope.$apply(function() {\r\n // vm.logoUrl = c.target.result;\r\n // });\r\n // }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n\r\n }\r\n\r\n function cancel() {\r\n vm.contractor = {};\r\n // $state.go($rootScope.previousState);\r\n // vm.isEditing = false;\r\n // vm.logoUrl = null;\r\n // vm.CompanyLogo = null;\r\n // angular.element(\"input[type='file']\").val(null);\r\n }\r\n\r\n function resetForm() {\r\n vm.contractorRegistrationForm.$setUntouched();\r\n }\r\n\r\n function editcontractor(contractor) {\r\n vm.open = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n // vm.CompanyId = company.CompanyId;\r\n // vm.CompanyLogo = vm.logoUrl = $rootScope.endPoint + '/UploadedDocuments/' + company.CompanyLogo;\r\n vm.contractor = angular.copy(contractor);\r\n\r\n\r\n for (var c in vm.OwnershipTypeList) {\r\n if (vm.OwnershipTypeList[c].TypeId === contractor.TypeId) {\r\n vm.contractor.selectedOwnershipType = vm.OwnershipTypeList[c];\r\n }\r\n }\r\n\r\n\r\n getStateListByCountryId(contractor.CountryId, function() {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === contractor.CountryId) {\r\n vm.contractor.selectedCountry = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === contractor.StateId) {\r\n vm.contractor.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(contractor.StateId, function() {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === contractor.CityId) {\r\n vm.contractor.selectedCity = vm.CityList[c];\r\n }\r\n }\r\n });\r\n getAreaListByCityId(contractor.CityId, function() {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === contractor.AreaId) {\r\n vm.contractor.selectedArea = vm.AreaList[c];\r\n }\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n function removecontractor(contractor) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n ContractorRegService.removeContractor(contractor.contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete contractor Successfully', \"contractor\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete contractor\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete contractor. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n ///// Check Contractor Code\r\n\r\n vm.checkContractorCode = function(contractorCode) {\r\n ContractorRegService.checkContractorCode(contractorCode).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCodeList = res.data;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n\r\n }\r\n\r\n ///// Filed Attachments\r\n\r\n $scope.gstAttachment = function(event) {\r\n vm.selectGstFile = event.target.files[0];\r\n }\r\n\r\n $scope.licAttachment = function(event) {\r\n vm.selectLicFile = event.target.files[0];\r\n }\r\n\r\n $scope.PFAttachment = function(event) {\r\n vm.selectPFFile = event.target.files[0];\r\n }\r\n $scope.ESIAttachment = function(event) {\r\n vm.selectESIFile = event.target.files[0];\r\n }\r\n $scope.AffiAttachment = function(event) {\r\n vm.selectAffiFile = event.target.files[0];\r\n }\r\n $scope.TradeAttachment = function(event) {\r\n vm.selectTradeFile = event.target.files[0];\r\n }\r\n $scope.PartnershipAttachment = function(event) {\r\n vm.selectPartnershipFile = event.target.files[0];\r\n }\r\n $scope.MemAttachment = function(event) {\r\n vm.selectMemFile = event.target.files[0];\r\n }\r\n\r\n $scope.ArtAttachment = function(event) {\r\n vm.selectArticleFile = event.target.files[0];\r\n }\r\n $scope.CINAttachment = function(event) {\r\n vm.selectCINFile = event.target.files[0];\r\n }\r\n $scope.LLPAttachment = function(event) {\r\n vm.selectLLPFile = event.target.files[0];\r\n }\r\n $scope.BalanceAttachment = function(event) {\r\n vm.selectBalanceFile = event.target.files[0];\r\n }\r\n $scope.CancelCheckAttachment = function(event) {\r\n vm.selectCheckFile = event.target.files[0];\r\n }\r\n $scope.PANAttachment = function(event) {\r\n vm.selectPANFile = event.target.files[0];\r\n }\r\n\r\n\r\n function SaveContractor(contractor) {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var temp = [];\r\n var type = vm.contractor.selectedTypeOfCA;\r\n\r\n // var tempData = '';\r\n for (var i in type) {\r\n if (type[i].CA_TypeId != undefined) {\r\n temp.push(type[i].CA_TypeId);\r\n }\r\n }\r\n var subCategoryDetails = temp.join(',');\r\n // var obj = {\r\n // TypeId: typeIds\r\n // }\r\n\r\n\r\n var officeaddressDetails = {\r\n Name: (vm.contractor.Name != undefined) ? vm.contractor.Name : \"\",\r\n AddressLine1: (vm.contractor.AddressLine1 != undefined) ? vm.contractor.AddressLine1 : \"\",\r\n AddressLine2: (vm.contractor.AddressLine2 != undefined) ? vm.contractor.AddressLine2 : \"\",\r\n CountryId: (vm.contractor.RoACountry != undefined) ? vm.contractor.RoACountry.CountryId : 0,\r\n StateId: (vm.contractor.RoAState != undefined) ? vm.contractor.RoAState.StateId : 0,\r\n CityId: (vm.contractor.RoACity != undefined) ? vm.contractor.RoACity.CityId : 0,\r\n AreaId: (vm.contractor.RoAArea != undefined) ? vm.contractor.RoAArea.AreaId : 0,\r\n Pincode: (vm.contractor.RoAArea != undefined) ? vm.contractor.RoAArea.Pincode : \"\"\r\n }\r\n\r\n var communicationaddrs = {\r\n AddressLine1: vm.contractor.ComAddressLine1,\r\n AddressLine2: vm.contractor.ComAddressLine2,\r\n CountryId: vm.contractor.ComCountry.CountryId,\r\n StateId: vm.contractor.ComState.StateId,\r\n CityId: vm.contractor.ComCity.CityId,\r\n AreaId: vm.contractor.ComArea.AreaId,\r\n Pincode: vm.contractor.ComArea.Pincode\r\n }\r\n\r\n var contactDetails = {\r\n LandLine: vm.contractor.LandLine,\r\n FaxNo: (vm.contractor.FaxNo != undefined) ? vm.contractor.FaxNo : \"\",\r\n MobileNO: vm.contractor.MobileNo,\r\n WebsiteUrl: vm.contractor.Website,\r\n WhatsAppGroup: (vm.contractor.WhatsAppGrp != undefined) ? vm.contractor.WhatsAppGrp : \"\",\r\n SkypeNO: (vm.contractor.SkypeNo != undefined) ? vm.contractor.SkypeNo : \"\",\r\n EmailId: vm.contractor.EmailId,\r\n }\r\n\r\n var contactPersonDetails = {\r\n ContactPerson1: vm.contractor.ContactPerName,\r\n Designation1: vm.contractor.ContactPerDesignation,\r\n EmailId1: vm.contractor.ContactPerEmail,\r\n MobileNo1: vm.contractor.ContactPerMobile,\r\n ContactPerson2: (vm.contractor.ContactPerName2) ? vm.contractor.ContactPerName2 : \"\",\r\n Designation2: (vm.contractor.ContactPer2Designation) ? vm.contractor.ContactPer2Designation : \"\",\r\n EmailId2: (vm.contractor.ContactPer2Email) ? vm.contractor.ContactPer2Email : \"\",\r\n MobileNo2: (vm.contractor.ContactPer2Mobile) ? vm.contractor.ContactPer2Mobile : \"\"\r\n }\r\n\r\n var statutoryDocuments = {\r\n ExBankAccount: vm.contractor.ExisBankAc,\r\n GST: vm.contractor.GST,\r\n LabrLicenseRegNo: vm.contractor.LicenceRegNo,\r\n PFRegCode: vm.contractor.PFRegNo,\r\n ESICode: vm.contractor.Esi,\r\n PAN: vm.contractor.PAN,\r\n AffidavitofSoleProprietorship: vm.contractor.AffidavitofSoleProprietorship,\r\n TradeLicense: vm.contractor.TradeLicence,\r\n CIN: vm.contractor.CIN,\r\n PartnershipDeed: vm.contractor.PartnerRegister,\r\n DOR: (vm.contractor.RegDate != undefined) ? vm.contractor.RegDate : \"\",\r\n BalanceSheet: vm.contractor.Balancesheet\r\n }\r\n var bankDetails = {\r\n BankName: vm.contractor.BankName,\r\n AccountNo: vm.contractor.AcNo,\r\n IFSC: vm.contractor.IFSC,\r\n Branch: vm.contractor.Branch,\r\n CountryId: vm.contractor.BankCountry.CountryId,\r\n StateId: vm.contractor.BankState.StateId,\r\n CityId: vm.contractor.BankCity.CityId,\r\n AreaId: vm.contractor.BankArea.AreaId,\r\n Pincode: vm.contractor.BankArea.Pincode\r\n }\r\n\r\n var staffDetails = {\r\n StaffName: (vm.contractor.StaffName != undefined) ? vm.contractor.StaffName : \"\",\r\n Experience: (vm.contractor.StaffExperience != undefined) ? vm.contractor.StaffExperience : \"\",\r\n Designation: (vm.contractor.StaffDesignation != undefined) ? vm.contractor.StaffDesignation : \"\",\r\n Qualification: (vm.contractor.StaffQualification != undefined) ? vm.contractor.StaffQualification : \"\",\r\n DOA: (vm.contractor.StaffDOA != undefined) ? vm.contractor.StaffDOA : \"\"\r\n }\r\n\r\n\r\n var contractorExperience = {\r\n ClientName: vm.contractor.ClientName,\r\n OrderValue: vm.contractor.OrderValue,\r\n OrderName: vm.contractor.OrderNumber,\r\n OrderDate: vm.contractor.OrderDate,\r\n CompletionSchedule: vm.contractor.CompletionSchedule,\r\n ActualCompletion: vm.contractor.ActualCompletion,\r\n }\r\n\r\n var machDetails = {\r\n ItemIOMMachId: (vm.contractor.ItemMach != undefined) ? vm.contractor.ItemMach.Id : \"\",\r\n YOP: (vm.contractor.YearofPurchase != undefined) ? vm.contractor.YearofPurchase : \"\",\r\n NoofEquibment: (vm.contractor.NoofEquibment != undefined) ? vm.contractor.NoofEquibment : \"\",\r\n YOM: (vm.contractor.YearofManufacturer != undefined) ? vm.contractor.YearofManufacturer : \"\",\r\n Capacity: (vm.contractor.Capacity != undefined) ? vm.contractor.Capacity : \"\",\r\n Machinery: (vm.contractor.Machinery != undefined) ? vm.contractor.Machinery : \"\",\r\n }\r\n\r\n\r\n var headOfficeAddressDetails = {\r\n AddressLine1: (vm.contractor.HeadAddressLine1 != undefined) ? vm.contractor.HeadAddressLine1 : \"\",\r\n AddressLine2: (vm.contractor.HeadAddressLine2 != undefined) ? vm.contractor.HeadAddressLine2 : \"\",\r\n CountryId: (vm.contractor.HeadCountry != undefined) ? vm.contractor.HeadCountry.CountryId : \"\",\r\n StateId: (vm.contractor.HaedState != undefined) ? vm.contractor.HaedState.StateId : \"\",\r\n CityId: (vm.contractor.HeadCity != undefined) ? vm.contractor.HeadCity.CityId : \"\",\r\n AreaId: (vm.contractor.HeadArea != undefined) ? vm.contractor.HeadArea.AreaId : \"\",\r\n Pincode: (vm.contractor.HeadArea != undefined) ? vm.contractor.HeadArea.Pincode : \"\"\r\n }\r\n\r\n\r\n\r\n\r\n\r\n if (!vm.isEditing) {\r\n // File Upload\r\n // var file = vm.company.CompanyLogo;\r\n // vm.company.CompanyLogo = \"\";\r\n\r\n // var formData = new FormData();\r\n // formData.append(\"data\", JSON.stringify(company));\r\n // formData.append(\"CompanyLogo\", vm.CompanyLogo);\r\n var obj = {\r\n ContractorTypeId: vm.contractor.selectedContractorType.ContractorTypeId,\r\n FirmTypeId: vm.contractor.selectedFirm.TypeId,\r\n OrginId: vm.contractor.selectedOrgin.CountryId,\r\n MachDetails: machDetails,\r\n ContractorName: vm.contractor.Name,\r\n SubCategoryDetails: subCategoryDetails,\r\n CommunicationDetails: communicationaddrs,\r\n HeadOfficeAddressDetails: headOfficeAddressDetails,\r\n ContractorOfficeAddressDetails: officeaddressDetails,\r\n ContactDetails: contactDetails,\r\n ContactPersonDetails: contactPersonDetails,\r\n StatutoryDocuments: statutoryDocuments,\r\n BankDetails: bankDetails,\r\n StaffDetails: staffDetails,\r\n ContractorExperience: contractorExperience,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (vm.contractor.selectedFirm.TypeId === 1) {\r\n obj.Nationality = vm.contractor.Nationality\r\n }\r\n obj.HeadOfficeAddressDetails = headOfficeAddressDetails;\r\n var formData = new FormData();\r\n\r\n formData.append(\"GST\", vm.selectGstFile);\r\n formData.append(\"LicenceRegNo\", vm.selectLicFile);\r\n formData.append(\"PFRegNo\", vm.selectPFFile);\r\n formData.append(\"Esi\", vm.selectESIFile);\r\n formData.append(\"Affidavit\", vm.selectAffiFile);\r\n formData.append(\"TradeLicence\", vm.selectTradeFile);\r\n formData.append(\"Partnership\", vm.selectPartnershipFile);\r\n formData.append(\"Memorandum\", vm.selectMemFile);\r\n formData.append(\"Article\", vm.selectArticleFile);\r\n formData.append(\"Certificate\", vm.selectCINFile);\r\n formData.append(\"Balance\", vm.selectCINFile);\r\n formData.append(\"Aggrement\", vm.selectLLPFile);\r\n formData.append(\"CanceledCheck\", vm.selectCheckFile);\r\n formData.append(\"PAN\", vm.selectPANFile);\r\n formData.append('ContractorCode', vm.contractor.ContractorCode);\r\n formData.append('ContractorName', vm.contractor.Name);\r\n formData.append(\"ContractorTypeId\", obj.ContractorTypeId);\r\n formData.append(\"OrginId\", obj.OrginId);\r\n formData.append(\"FirmTypeId\", obj.FirmTypeId);\r\n formData.append(\"Nationality\", obj.Nationality);\r\n formData.append(\"officeaddressDetails\", (obj.ContractorOfficeAddressDetails != undefined) ? JSON.stringify(obj.ContractorOfficeAddressDetails) : \"\");\r\n formData.append(\"CommunicationAddress\", JSON.stringify(obj.CommunicationDetails));\r\n formData.append(\"HeadOfficeAddressDetails\", (obj.HeadOfficeAddressDetails != undefined) ? JSON.stringify(obj.HeadOfficeAddressDetails) : \"\");\r\n formData.append(\"ContactDetails\", JSON.stringify(obj.ContactDetails));\r\n formData.append(\"ContactPersonDetail\", JSON.stringify(obj.ContactPersonDetails));\r\n formData.append(\"StatutoryDetails\", JSON.stringify(obj.StatutoryDocuments));\r\n formData.append(\"BankDetails\", JSON.stringify(obj.BankDetails));\r\n formData.append(\"StaffDetails\", (obj.StaffDetails != undefined) ? JSON.stringify(obj.StaffDetails) : \"\");\r\n formData.append(\"contractorExperience\", JSON.stringify(obj.ContractorExperience));\r\n formData.append(\"MachineryDetails\", (obj.MachDetails != undefined) ? JSON.stringify(obj.MachDetails) : \"\");\r\n formData.append(\"subCategoryDetails\", obj.SubCategoryDetails);\r\n formData.append(\"CreatedBy\", obj.CreatedBy);\r\n\r\n ContractorRegService.AddContractor(formData).then(function(res) {\r\n $rootScope.showToaster('success', 'Added contractor Successfully', \"contractor Master\");\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n obj.ModifiedBy = logggedUser.UserId;\r\n ContractorRegService.EditContractor(contractor).then(function(res) {\r\n $rootScope.showToaster('success', 'Updated contractor Successfully', \"contractor Master\");\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n vm.isEditing = false;\r\n });\r\n\r\n }\r\n }\r\n\r\n function changeActivecontractor(contractor) {\r\n var msg = 'Are sure you want to ' + ((contractor.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((contractor.IsActive) ? 'Deactive' : 'Active') + 'contractor Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n ContractorRegService.changeActiveContractor(contractor.contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"contractor\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete contractor\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete contractor. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function() {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function() {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function() {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function(year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.contractor')\r\n .controller('EditContractorRegCtrl', EditContractorRegCtrl);\r\n\r\n /** @ngInject */\r\n function EditContractorRegCtrl($scope, $uibModal, $filter, $http, $rootScope, lodash, dialogs, CountryService, CompanyService, StateService, CityService,\r\n AreaService, ContractorRegService, AuthenticationService, categoryOfMachineryService, TypeOfCAService, MachineryTypeService, IOMachineryService, CategoryofCAService, $state) {\r\n var vm = this;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.cancel = cancel;\r\n vm.CategoryList = [];\r\n vm.TypeOfCAList = [];\r\n\r\n vm.contractor = $state.params.data;\r\n vm.ContractorCategoryList = vm.contractor.contractor.ContractorList;\r\n vm.ContractorSubcategoryList = vm.contractor.contractor.SubCategoryDetails;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getTypeofMachListByCategoryofMach = getTypeofMachListByCategoryofMach;\r\n vm.getIOMHListByType = getIOMHListByType;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Multiple Dropdown select\r\n vm.getTypeofCAListByCategoryId = getTypeofCAListByCategoryId;\r\n\r\n vm.TDSRateList = [{\r\n 'RateName': 'Full Rate',\r\n 'Id': 1\r\n }, {\r\n 'RateName': 'Partial Rate in(%)',\r\n 'Id': 2\r\n }, {\r\n 'RateName': 'Zero Rate',\r\n 'Id': 3\r\n }];\r\n vm.FirmList = [{ OwnershipName: 'One Person Company', TypeId: 1 }, { OwnershipName: 'Sole Proprietorship', TypeId: 2 }\r\n , { OwnershipName: 'Partnership', TypeId: 3 }, { OwnershipName: 'Private Ltd', TypeId: 4 }, { OwnershipName: 'Public Ltd', TypeId: 5 }, { OwnershipName: 'LLP', TypeId: 6 }]\r\n\r\n\r\n\r\n\r\n vm.LoadCountry = function (callBack) {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n function GetContractor(ContractorId) {\r\n ContractorRegService.getContractorByContractorId(ContractorId).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ContractorList = res.data;\r\n vm.statutory = JSON.parse(vm.ContractorList.StatutoryDetails);\r\n vm.bank = JSON.parse(vm.ContractorList.BankDetails);\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n\r\n vm.LoadContractorType = function (callBack) {\r\n ContractorRegService.getAllContractorType().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n if (callBack) {\r\n callBack();\r\n }\r\n });\r\n }\r\n\r\n function getStateListByCountryId(CountryId, callback) {\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.contractor.RoACountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getCityListByStateId(StateId, callback) {\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.contractor.RoAState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getAreaListByCityId(CityId, callback) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.contractor.RoACity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n\r\n if ($state.params.data) {\r\n vm.contractor.ContractorCode = vm.contractor.contractor.ContractorCode;\r\n vm.contractor.Nationality = (vm.contractor.contractor.Nationality != undefined) ? vm.contractor.contractor.Nationality : '';\r\n vm.LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.contractor.contractor.OrginId) {\r\n vm.contractor.selectedOrgin = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n\r\n for (var i in vm.FirmList) {\r\n if (vm.FirmList[i].TypeId === vm.contractor.contractor.FirmTypeId) {\r\n vm.contractor.selectedFirm = vm.FirmList[i]\r\n }\r\n }\r\n\r\n vm.LoadContractorType(function () {\r\n for (var i in vm.ContractorTypeList) {\r\n if (vm.ContractorTypeList[i].ContractorTypeId === vm.contractor.contractor.ContractorTypeId) {\r\n vm.contractor.selectedContractorType = vm.ContractorTypeList[i]\r\n }\r\n }\r\n });\r\n\r\n var obj = {\r\n\r\n }\r\n LoadCategory(function () {\r\n\r\n vm.contractor.selectedCategory = [];\r\n var contractorCategryList = vm.ContractorCategoryList.split(',');\r\n for (var i in vm.CategoryList) {\r\n for (var j in contractorCategryList) {\r\n if (vm.CategoryList[i].CategoryId === parseInt(contractorCategryList[j])) {\r\n vm.contractor.selectedCategory.push(vm.CategoryList[i]);\r\n // vm.contractor.selectedCategory[i].checked = true;\r\n // Compare Two array\r\n angular.forEach(vm.contractor.selectedCategory, function (value1, key1) {\r\n angular.forEach(vm.CategoryList, function (value2, key2) {\r\n if (value1.CategoryName === value2.CategoryName) {\r\n vm.CategoryList.splice(key2, 1);\r\n }\r\n });\r\n })\r\n\r\n }\r\n }\r\n }\r\n });\r\n\r\n var objcat = {\r\n CategoryId: vm.ContractorCategoryList\r\n }\r\n\r\n LoadType(objcat, function () {\r\n\r\n vm.contractor.selectedTypeOfCA = [];\r\n var contractorsubCategryList = vm.ContractorSubcategoryList.split(',');\r\n for (var i in vm.TypeOfCAList) {\r\n for (var j in contractorsubCategryList) {\r\n if (vm.TypeOfCAList[i].CA_TypeId === parseInt(contractorsubCategryList[j])) {\r\n vm.contractor.selectedTypeOfCA.push(vm.TypeOfCAList[i]);\r\n // Compare Two Array\r\n angular.forEach(vm.contractor.selectedTypeOfCA, function (value1, key1) {\r\n angular.forEach(vm.TypeOfCAList, function (value2, key2) {\r\n if (value1.CA_TypeName === value2.CA_TypeName) {\r\n vm.TypeOfCAList.splice(key2, 1);\r\n }\r\n });\r\n })\r\n }\r\n }\r\n }\r\n });\r\n\r\n\r\n if ($state.params.data.contractor.ContractorOfficeAddressDetails != null && $state.params.data.contractor.ContractorOfficeAddressDetails != \"\") {\r\n vm.reg = $state.params.data.contractor.ContractorOfficeAddressDetails;\r\n vm.LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.reg.CountryId) {\r\n vm.contractor.RoACountry = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.reg.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.reg.StateId) {\r\n vm.contractor.RoAState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n getCityListByStateId(vm.reg.StateId, function () {\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.reg.CityId) {\r\n vm.contractor.RoACity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n getAreaListByCityId(vm.reg.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.reg.AreaId) {\r\n vm.contractor.RoAArea = vm.AreaList[i]\r\n }\r\n }\r\n });\r\n }\r\n\r\n if ($state.params.data.contractor.HeadOfficeAddressDetails != null && $state.params.data.contractor.HeadOfficeAddressDetails != \"\") {\r\n vm.head = JSON.parse($state.params.data.contractor.HeadOfficeAddressDetails);\r\n vm.LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.head.CountryId) {\r\n vm.contractor.HeadCountry = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.reg.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.head.StateId) {\r\n vm.contractor.HeadState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n getCityListByStateId(vm.reg.StateId, function () {\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.head.CityId) {\r\n vm.contractor.HeadCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n getAreaListByCityId(vm.reg.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.head.AreaId) {\r\n vm.contractor.HeadArea = vm.AreaList[i]\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n if ($state.params.data.contractor.communicationAddressDetails != null && $state.params.data.contractor.communicationAddressDetails != \"\") {\r\n vm.com = JSON.parse($state.params.data.contractor.communicationAddressDetails);\r\n vm.com.ComAddressLine1 = vm.com.AddressLine1;\r\n vm.com.ComAddressLine2 = vm.com.AddressLine2;\r\n vm.LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.com.CountryId) {\r\n vm.contractor.ComCountry = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.com.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.com.StateId) {\r\n vm.contractor.ComState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n getCityListByStateId(vm.com.StateId, function () {\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.com.CityId) {\r\n vm.contractor.ComCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n getAreaListByCityId(vm.com.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.com.AreaId) {\r\n vm.contractor.ComArea = vm.AreaList[i]\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n if ($state.params.data.contractor.ContactDetails != null && $state.params.data.contractor.ContactDetails != \"\") {\r\n vm.Contact = JSON.parse($state.params.data.contractor.ContactDetails);\r\n }\r\n\r\n if ($state.params.data.contractor.ContactpersonDetails != null && $state.params.data.contractor.ContactpersonDetails != \"\") {\r\n vm.cp = JSON.parse($state.params.data.contractor.ContactpersonDetails);\r\n }\r\n if ($state.params.data.contractor.StatutoryDetails != null && $state.params.data.contractor.StatutoryDetails != \"\") {\r\n vm.statutory = $state.params.data.contractor.StatutoryDetails;\r\n vm.statutory.ExBankAccount = parseInt(vm.statutory.ExBankAccount);\r\n if (vm.statutory.DOR == null) {\r\n vm.statutory.DOR = '';\r\n }\r\n else {\r\n vm.statutory.DOR = new Date(vm.statutory.DOR);\r\n }\r\n\r\n\r\n }\r\n if ($state.params.data.contractor.BankDetails != null && $state.params.data.contractor.BankDetails != \"\") {\r\n vm.bank = JSON.parse($state.params.data.contractor.BankDetails);\r\n vm.bank.AccountNo = parseInt(vm.bank.AccountNo)\r\n vm.LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.bank.CountryId) {\r\n vm.contractor.BankCountry = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.bank.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.bank.StateId) {\r\n vm.contractor.BankState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n getCityListByStateId(vm.bank.StateId, function () {\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.bank.CityId) {\r\n vm.contractor.BankCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n getAreaListByCityId(vm.bank.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.bank.AreaId) {\r\n vm.contractor.BankArea = vm.AreaList[i]\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n if ($state.params.data.contractor.StaffDetails != null && $state.params.data.contractor.StaffDetails != \"\") {\r\n vm.staff = JSON.parse($state.params.data.contractor.StaffDetails);\r\n if (vm.staff.DOA == null) {\r\n vm.staff.DOA = \"\"\r\n }\r\n else {\r\n vm.staff.DOA = new Date(vm.staff.DOA);\r\n }\r\n\r\n }\r\n if ($state.params.data.contractor.ContractorExperience != null && $state.params.data.contractor.ContractorExperience != \"\") {\r\n vm.contractexp = JSON.parse($state.params.data.contractor.ContractorExperience);\r\n vm.contractexp.OrderDate = new Date(vm.contractexp.OrderDate) ? new Date(vm.contractexp.OrderDate) : \"\";\r\n }\r\n\r\n if ($state.params.data.contractor.MachineryDetails != null && $state.params.data.contractor.MachineryDetails != \"\") {\r\n vm.mac = JSON.parse($state.params.data.contractor.MachineryDetails);\r\n if (vm.mac.YOM == null) {\r\n vm.mac.YOM = \"\";\r\n }\r\n else {\r\n vm.mac.YOM = new Date(vm.mac.YOM);\r\n }\r\n if (vm.mac.YOP == null) {\r\n vm.mac.YOP = \"\";\r\n }\r\n else {\r\n vm.mac.YOP = new Date(vm.mac.YOP);\r\n }\r\n\r\n if (vm.mac.ItemIOMMachId != \"\" && vm.mac.ItemIOMMachId != 0) {\r\n ContractorRegService.getIOMHById(vm.mac.ItemIOMMachId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMDetails = res.data;\r\n vm.isLoading = false;\r\n }\r\n LoadMachineryCategory(function () {\r\n for (var i in vm.MachCategoryList) {\r\n if (vm.MachCategoryList[i].CategoryOfMachineryId === vm.IOMDetails.COM_Id) {\r\n vm.contractor.selectedMahineryCategory = vm.MachCategoryList[i];\r\n }\r\n }\r\n });\r\n getTypeofMachListByCategoryofMach(vm.IOMDetails.COM_Id, function () {\r\n for (var i in vm.MachTypeList) {\r\n if (vm.MachTypeList[i].MachTypeId === vm.IOMDetails.MachTypeId) {\r\n vm.contractor.selectedMahineryType = vm.MachTypeList[i];\r\n }\r\n }\r\n });\r\n\r\n for (var i in vm.TypeOfAttributeList) {\r\n if (vm.TypeOfAttributeList[i].Code === vm.IOMDetails.SpecType) {\r\n vm.contractor.selectedTypeOfAttribute = vm.TypeOfAttributeList[i];\r\n }\r\n }\r\n\r\n var obj = {\r\n COM_Id: vm.IOMDetails.COM_Id,\r\n MachSubCategoryId: vm.IOMDetails.MachSubCategoryId,\r\n MachTypeId: vm.IOMDetails.MachTypeId,\r\n SpecType: vm.IOMDetails.SpecType\r\n\r\n }\r\n LoadIOHM(obj, function () {\r\n for (var i in vm.IOMHList) {\r\n if (vm.IOMHList[i].Id === vm.IOMDetails.Id) {\r\n vm.contractor.ItemMach = vm.IOMHList[i];\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n vm.contractor.Status = vm.contractor.contractor.Status;\r\n console.log(vm.contractor.Status);\r\n }\r\n\r\n function LoadIOHM(obj, callback) {\r\n IOMachineryService.getAllIOMachinery(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMHList = res.data;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n // Load Construction Activities\r\n LoadCategory();\r\n\r\n function LoadCategory(callback) {\r\n vm.contractor.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n CategoryofCAService.GetActiveCategoryById().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n for (var c in vm.CategoryList) {\r\n vm.CategoryList[c].CategoryName = (vm.CategoryList[c].CategoryName + '/' + 'Country:' + vm.CategoryList[c].Country.CountryName + '/' + 'FOC:' + vm.CategoryList[c].FOC.FieldofConstructionName);\r\n }\r\n vm.isLoading = false;\r\n }\r\n if (callback)\r\n callback();\r\n });\r\n }\r\n\r\n\r\n\r\n // LoadType();\r\n\r\n function LoadType(obj, callback) {\r\n TypeOfCAService.GetTypeOfCAByCategoryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n for (var i in vm.TypeOfCAList) {\r\n vm.TypeOfCAList[i].CA_TypeName = (vm.TypeOfCAList[i].CA_TypeName + '/' + 'Subcategory:' + vm.TypeOfCAList[i].SubCategory.SubCategoryName);\r\n }\r\n\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type of CA available for ' + vm.contractor.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n\r\n function getTypeofCAListByCategoryId() {\r\n\r\n var temp = [];\r\n var Cat = vm.contractor.selectedCategory;\r\n\r\n var tempData = [];\r\n for (var i in Cat) {\r\n if (Cat[i].CategoryId != undefined) {\r\n tempData.push(Cat[i].CategoryId);\r\n }\r\n }\r\n temp = tempData;\r\n var teststring = JSON.stringify(temp)\r\n var CategoryIds = teststring.substring(1, teststring.length - 1)\r\n // console.log(CategoryIds);\r\n\r\n var obj = {\r\n CategoryId: CategoryIds\r\n }\r\n TypeOfCAService.GetTypeOfCAByCategoryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n for (var c in vm.TypeOfCAList) {\r\n vm.TypeOfCAList[c].CA_TypeName = (vm.TypeOfCAList[c].CA_TypeName + '/' + 'Subcategory:' + vm.TypeOfCAList[c].SubCategory.SubCategoryName);\r\n }\r\n angular.forEach(vm.contractor.selectedTypeOfCA, function (value1, key1) {\r\n angular.forEach(vm.TypeOfCAList, function (value2, key2) {\r\n if (value1.CA_TypeName === value2.CA_TypeName) {\r\n vm.TypeOfCAList.splice(key2, 1);\r\n }\r\n });\r\n })\r\n if (vm.TypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type of CA available for ' + vm.contractor.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n //Load Machinery Details\r\n LoadMachineryCategory();\r\n\r\n function LoadMachineryCategory(callback) {\r\n categoryOfMachineryService.getActiveCategoryOfMachinery().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category Of Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category Of Machinery\");\r\n });\r\n\r\n }\r\n\r\n\r\n function getTypeofMachListByCategoryofMach(CategoryOfMachineryId, callback) {\r\n MachineryTypeService.GetTypeOfMachineryByCategory(CategoryOfMachineryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachTypeList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type Of Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type Of Machinery\");\r\n });\r\n }\r\n\r\n function getIOMHListByType(callback) {\r\n var obj = {\r\n COM_Id: vm.contractor.selectedMahineryCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.contractor.selectedMahineryType.MachSubCategoryId,\r\n MachTypeId: vm.contractor.selectedMahineryType.MachTypeId,\r\n SpecType: vm.contractor.selectedTypeOfAttribute.Code\r\n }\r\n IOMachineryService.getAllIOMachinery(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMHList = res.data;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n // $scope.imageIsLoaded = function(c) {\r\n // $scope.$apply(function() {\r\n // vm.logoUrl = c.target.result;\r\n // });\r\n // }\r\n\r\n $scope.gstAttachment = function (event) {\r\n vm.selectGstFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"GST\", vm.selectGstFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateGSTFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update GST File Successfully', \"GST File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.licAttachment = function (event) {\r\n vm.selectLicFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"LicenceRegNo\", vm.selectLicFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateLicenceRegNoFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update LicenceRegNo File Successfully', \"LicenceRegNo File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n $scope.PFAttachment = function (event) {\r\n vm.selectPFFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"PFRegNo\", vm.selectPFFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdatePFRegNoFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update PFRegNo File Successfully', \"PFRegNo File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.ESIAttachment = function (event) {\r\n vm.selectESIFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Esi\", vm.selectESIFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateEsiFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Esi File Successfully', \"Esi File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.AffiAttachment = function (event) {\r\n vm.selectAffiFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Affidavit\", vm.selectAffiFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateAffidavitFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Affidavit File Successfully', \"Affidavit File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.TradeAttachment = function (event) {\r\n vm.selectTradeFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"TradeLicence\", vm.selectTradeFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateTradeLicenceFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update TradeLicence File Successfully', \"TradeLicence File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.PartnershipAttachment = function (event) {\r\n vm.selectPartnershipFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Partnership\", vm.selectPartnershipFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdatePartnershipFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Partnership File Successfully', \"Partnership File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.MemAttachment = function (event) {\r\n vm.selectMemFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Memorandum\", vm.selectMemFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateMemorandumFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Memorandum File Successfully', \"Memorandum File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n $scope.ArtAttachment = function (event) {\r\n vm.selectArticleFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Article\", vm.selectArticleFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateArticleFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Article File Successfully', \"Article File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.CINAttachment = function (event) {\r\n vm.selectCINFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Certificate\", vm.selectCINFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateCertificateFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Certificate File Successfully', \"Certificate File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.LLPAttachment = function (event) {\r\n vm.selectLLPFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Aggrement\", vm.selectLLPFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateAggrementFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update Aggrement File Successfully', \"Aggrement File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.BalanceAttachment = function (event) {\r\n vm.selectBalanceFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"Balance\", vm.selectBalanceFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateBalanceFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update BalanceSheet File Successfully', \"BalanceSheet File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.CancelCheckAttachment = function (event) {\r\n vm.selectCheckFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"CanceledCheck\", vm.selectCheckFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateCanceledCheckFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update CanceledCheck File Successfully', \"CanceledCheck File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n $scope.PANAttachment = function (event) {\r\n vm.selectPANFile = event.target.files[0];\r\n var formData = new FormData();\r\n formData.append(\"LicenceRegNo\", vm.selectGstFile);\r\n formData.append(\"ContractorId\", vm.contractor.ContractorId)\r\n ContractorRegService.UpdateGSTFile(formData).then(function (res) {\r\n $rootScope.showToaster('success', 'Update LicenceRegNo File Successfully', \"LicenceRegNo File Attachment\");\r\n GetContractor(vm.contractor.ContractorId);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.UpdateContractor = function () {\r\n var temp = [];\r\n var type = vm.contractor.selectedTypeOfCA;\r\n\r\n\r\n var tempData = '';\r\n for (var i in type) {\r\n if (type[i].CA_TypeId != undefined) {\r\n temp.push(type[i].CA_TypeId);\r\n }\r\n }\r\n var subCategoryDetails = temp.join(',');\r\n\r\n var officeaddressDetails = {\r\n Name: (vm.reg.Name != undefined) ? vm.reg.Name : \"\",\r\n AddressLine1: (vm.reg.AddressLine1 != undefined) ? vm.reg.AddressLine1 : \"\",\r\n AddressLine2: (vm.reg.AddressLine2 != undefined) ? vm.reg.AddressLine2 : \"\",\r\n CountryId: (vm.contractor.RoACountry != undefined) ? vm.contractor.RoACountry.CountryId : \"\",\r\n StateId: (vm.contractor.RoAState != undefined) ? vm.contractor.RoAState.StateId : \"\",\r\n CityId: (vm.contractor.RoACity != undefined) ? vm.contractor.RoACity.CityId : \"\",\r\n AreaId: (vm.contractor.RoAArea != undefined) ? vm.contractor.RoAArea.AreaId : \"\",\r\n Pincode: (vm.contractor.RoAArea != undefined) ? vm.contractor.RoAArea.Pincode : \"\"\r\n }\r\n\r\n var headOfficeAddressDetails = {\r\n AddressLine1: (vm.head.HeadAddressLine1 != undefined) ? vm.head.HeadAddressLine1 : \"\",\r\n AddressLine2: (vm.head.HeadAddressLine2 != undefined) ? vm.head.HeadAddressLine2 : \"\",\r\n CountryId: (vm.contractor.HeadCountry != undefined) ? vm.contractor.HeadCountry.CountryId : \"\",\r\n StateId: (vm.contractor.HaedState != undefined) ? vm.contractor.HaedState.StateId : \"\",\r\n CityId: (vm.contractor.HeadCity != undefined) ? vm.contractor.HeadCity.CityId : \"\",\r\n AreaId: (vm.contractor.HeadArea != undefined) ? vm.contractor.HeadArea.AreaId : \"\",\r\n Pincode: (vm.contractor.HeadArea != undefined) ? vm.contractor.HeadArea.Pincode : \"\"\r\n }\r\n\r\n var communicationaddrs = {\r\n AddressLine1: vm.com.ComAddressLine1,\r\n AddressLine2: vm.com.ComAddressLine2,\r\n CountryId: vm.contractor.ComCountry.CountryId,\r\n StateId: vm.contractor.ComState.StateId,\r\n CityId: vm.contractor.ComCity.CityId,\r\n AreaId: vm.contractor.ComArea.AreaId,\r\n Pincode: vm.contractor.ComArea.Pincode\r\n }\r\n\r\n var contactDetails = {\r\n LandLine: vm.Contact.LandLine,\r\n FaxNo: (vm.Contact.FaxNo != undefined) ? vm.Contact.FaxNo : \"\",\r\n MobileNO: vm.Contact.MobileNO,\r\n WebsiteUrl: vm.Contact.WebsiteUrl,\r\n WhatsAppGroup: (vm.Contact.WhatsAppGroup != undefined) ? vm.Contact.WhatsAppGroup : \"\",\r\n SkypeNO: (vm.Contact.SkypeNO != undefined) ? vm.Contact.SkypeNO : \"\",\r\n EmailId: vm.Contact.EmailId,\r\n }\r\n\r\n var contactPersonDetails = {\r\n ContactPerson1: vm.cp.ContactPerson1,\r\n Designation1: vm.cp.Designation1,\r\n EmailId1: vm.cp.EmailId1,\r\n MobileNo1: vm.cp.MobileNo1,\r\n ContactPerson2: (vm.cp.ContactPerson2) ? vm.cp.ContactPerson2 : \"\",\r\n Designation2: (vm.cp.Designation2) ? vm.cp.Designation2 : \"\",\r\n EmailId2: (vm.cp.EmailId2) ? vm.cp.EmailId2 : \"\",\r\n MobileNo2: (vm.cp.MobileNo2) ? vm.cp.MobileNo2 : \"\"\r\n }\r\n\r\n var statutoryDocuments = {\r\n ExBankAccount: vm.statutory.ExBankAccount,\r\n GST: vm.statutory.GST,\r\n LabrLicenseRegNo: vm.statutory.LabrLicenseRegNo,\r\n PFRegCode: vm.statutory.PFRegCode,\r\n ESICode: vm.statutory.ESICode,\r\n PAN: vm.statutory.PAN,\r\n AffidavitofSoleProprietorship: vm.statutory.AffidavitofSoleProprietorship,\r\n TradeLicense: vm.statutory.TradeLicense,\r\n CIN: vm.statutory.CIN,\r\n PartnershipDeed: vm.statutory.PartnershipDeed,\r\n DOR: $filter('date')(vm.statutory.DOR, 'yyyy-MM-dd') ? vm.statutory.DOR : \"\",\r\n AffidavitFile: vm.statutory.AffidavitFile,\r\n ArticleFile: vm.statutory.ArticleFile,\r\n BalanceFile: vm.statutory.BalanceFile,\r\n AggrementFile: vm.statutory.AggrementFile,\r\n CertificateFile: vm.statutory.CertificateFile,\r\n ESIFile: vm.statutory.ESIFile,\r\n GSTFile: vm.statutory.GSTFile,\r\n LicenceRegNoFile: vm.statutory.LicenceRegNoFile,\r\n PANFile: vm.statutory.PANFile,\r\n PFRegNoFile: vm.statutory.PFRegNoFile,\r\n PartnershipFile: vm.statutory.PartnershipFile,\r\n TradeLicenceFile: vm.statutory.TradeLicenceFile,\r\n MemorandumFile: vm.statutory.MemorandumFile\r\n }\r\n\r\n var bankDetails = {\r\n BankName: vm.bank.BankName,\r\n AccountNo: vm.bank.AccountNo,\r\n IFSC: vm.bank.IFSC,\r\n Branch: vm.bank.Branch,\r\n CountryId: vm.contractor.BankCountry.CountryId,\r\n StateId: vm.contractor.BankState.StateId,\r\n CityId: vm.contractor.BankCity.CityId,\r\n AreaId: vm.contractor.BankArea.AreaId,\r\n Pincode: vm.contractor.BankArea.Pincode,\r\n CanceledCheckFile: vm.bank.CanceledCheckFile,\r\n }\r\n\r\n var staffDetails = {\r\n StaffName: (vm.staff.StaffName != undefined) ? vm.staff.StaffName : \"\",\r\n Experience: (vm.staff.Experience != undefined) ? vm.staff.Experience : \"\",\r\n Designation: (vm.staff.Designation != undefined) ? vm.staff.Designation : \"\",\r\n Qualification: (vm.staff.Qualification != undefined) ? vm.staff.Qualification : \"\",\r\n DOA: $filter('date')(vm.staff.DOA, 'yyyy-MM-dd') ? vm.staff.DOA : \"\"\r\n }\r\n\r\n var contractorExperience = {\r\n ClientName: vm.contractexp.ClientName,\r\n OrderValue: vm.contractexp.OrderValue,\r\n OrderName: vm.contractexp.OrderName,\r\n OrderDate: $filter('date')(vm.contractexp.OrderDate, 'yyyy-MM-dd') ? vm.contractexp.OrderDate : \"\",\r\n CompletionSchedule: vm.contractexp.CompletionSchedule,\r\n ActualCompletion: vm.contractexp.ActualCompletion,\r\n }\r\n\r\n var machDetails = {\r\n ItemIOMMachId: (vm.contractor.ItemMach != undefined) ? vm.contractor.ItemMach.Id : \"\",\r\n YOP: (vm.mac.YOP != undefined) ? vm.mac.YOP : \"\",\r\n NoofEquibment: (vm.mac.NoofEquibment != undefined) ? vm.mac.NoofEquibment : \"\",\r\n YOM: (vm.mac.YOM != undefined) ? vm.mac.YOM : \"\",\r\n Capacity: (vm.mac.Capacity != undefined) ? vm.mac.Capacity : \"\",\r\n Machinery: (vm.mac.Machinery != undefined) ? vm.mac.Machinery : \"\",\r\n }\r\n\r\n var obj = {\r\n ContractorId: vm.contractor.contractor.ContractorId,\r\n ContractorTypeId: vm.contractor.selectedContractorType.ContractorTypeId,\r\n ContractorName: vm.reg.Name,\r\n FirmId: vm.contractor.selectedFirm.TypeId,\r\n OrginId: vm.contractor.selectedOrgin.CountryId,\r\n Nationality: (vm.contractor.Nationality != undefined) ? vm.contractor.Nationality : \"\",\r\n SubCategoryDetails: subCategoryDetails,\r\n Status: vm.contractor.Status,\r\n officeaddressDetails: JSON.stringify(officeaddressDetails),\r\n HeadOfficeAddressDetails: JSON.stringify(headOfficeAddressDetails),\r\n communicationAddressDetails: JSON.stringify(communicationaddrs),\r\n ContactDetails: JSON.stringify(contactDetails),\r\n ContactPersonDetail: JSON.stringify(contactPersonDetails),\r\n StatutoryDetails: JSON.stringify(statutoryDocuments),\r\n BankDetails: JSON.stringify(bankDetails),\r\n StaffDetails: JSON.stringify(staffDetails),\r\n MachineryDetails: JSON.stringify(machDetails),\r\n ContractExp: JSON.stringify(contractorExperience),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n ContractorRegService.UpdateContractor(obj).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated contractor Successfully', \"contractor Master\");\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n vm.SendforApproval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to send for approval the Contractor', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n ContractorRegService.sendForApproval(vm.contractor.contractor.ContractorId).then(function (res) {\r\n $rootScope.showToaster('success', 'Send for approval Successfully', \"contractor Master\");\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.Block = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Block the Contractor', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n ContractorRegService.Block(vm.contractor.contractor.ContractorId).then(function (res) {\r\n $rootScope.showToaster('success', 'Block Contractor Successfully', \"contractor Master\");\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.Approve = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Approve the Contractor', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n ContractorRegService.Approve(vm.contractor.contractor.ContractorId).then(function (res) {\r\n $rootScope.showToaster('success', 'Approval Contractor Successfully', \"contractor Master\");\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.ReSubmit = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Resubmit the Contractor', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n ContractorRegService.ReSubmit(vm.contractor.contractor.ContractorId).then(function (res) {\r\n $rootScope.showToaster('success', 'Resubmitted Contractor Successfully', \"contractor Master\");\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.reject = function () {\r\n debugger;\r\n var contractor = {\r\n ContractorId: vm.contractor.contractor.ContractorId,\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/contractor/registration/rejectNotes.html',\r\n controller: 'RejectNotesCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return contractor;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n //$ctrl.selected = selectedItem;\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n vm.SaveRejection = function () {\r\n alert('Hi')\r\n }\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function ($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function () {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n function cancel() {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('RejectNotesCtrl', RejectNotesCtrl);\r\n\r\n /** @ngInject */\r\n function RejectNotesCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, ContractorRegService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.SaveRejection = function () {\r\n var objReject = { \r\n ContractorId: items.ContractorId, \r\n RejectionNotes: {\r\n \"Notes\": vm.reject.RejectNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n \"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n debugger;\r\n ContractorRegService.AddRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Contractor Rejection\");\r\n $uibModalInstance.close();\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .controller('CRMApprovedCtrl', CRMApprovedCtrl);\r\n\r\n /** @ngInject */\r\n function CRMApprovedCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.TileBack=TileBack;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.project = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} };\r\n //Methods\r\n vm.GetprojectType = GetprojectType;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n vm.project.WorkLocation = null;\r\n // vm.project.Approval = null;\r\n vm.ToggleChanged = ToggleChanged;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.editProject = editProject;\r\n // vm.isEditingProPic = false;\r\n // $scope.photoChanged = photoChanged;\r\n // vm.editProPic = editProPic;\r\n // Status =3;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n //////////////\r\n\r\n\r\n // LoadProjectCategory();\r\n // LoadPropertyType();\r\n LoadCountry();\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4'\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PendingList = res.data;\r\n CRM_projectInitiationService.GetAllKPMESProjects().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadPropertyType(callback) {\r\n\r\n vm.PropertyTypeList = [];\r\n vm.ProjectTypeList = [];\r\n\r\n // var input = {\r\n // PropertyTypeId: 0,\r\n // ProjectTypeId: 0\r\n // };\r\n var objGetDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n };\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.PropertyTypeList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n projectCreationService.GetAllProjectCategory(objGetDTO).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PropertyTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n // function LoadProjectCategory(callback) {\r\n // projectCreationService.GetAllProjectCategory().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectCategoryList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n // }\r\n\r\n function GetprojectType(CategoryId, callBack) {\r\n // var input = {\r\n // PropertyTypeId: PropertyId,\r\n // ProjectTypeId: 0\r\n // };\r\n\r\n vm.ProjectTypeList = [];\r\n vm.project.selectedProjectTypeName = null;\r\n\r\n\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectTypeList = res.data;\r\n // if (vm.ProjectTypeList.length < 1) {\r\n // dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedPropertyType.PropertyType, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // } else {\r\n // if (callBack) {\r\n // callBack();\r\n // }\r\n // }\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n // });\r\n projectCreationService.GetProjectTypeByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectTypeList = res.data;\r\n if (vm.ProjectTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedProjectTypeName.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n function LoadCountry(callback) {\r\n var objCountry;\r\n CountryService.getAllCountry($http, $rootScope, objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // LoadProjectCategory();\r\n LoadPropertyType();\r\n vm.isLoading = false;\r\n }\r\n if (callback) {\r\n callback();\r\n } else {\r\n\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n ///// Get All State By Country\r\n function getStateListByCountryId(CountryId, callBack) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.project.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n \r\n\r\n \r\n\r\n\r\n function getCityListByStateId(StateId, callBack) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.project.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n function getAreaListByCityId(CityId, callBack) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.project.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isExistProject = true;\r\n vm.project.WorkLocation = 'ExistingType';\r\n \r\n vm.profilePicUrl = null; \r\n }\r\n \r\n function ToggleChanged() {\r\n if (vm.project.ToggleStatus) {\r\n vm.project.WorkLocation = 'NewType';\r\n vm.isExistProject = false;\r\n }\r\n else {\r\n vm.project.WorkLocation = 'ExistingType';\r\n vm.isExistProject = true;\r\n }\r\n }\r\n\r\n function editProject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.project = angular.copy(row);\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/CRM/ProjectImages/' + row.ProjectImage;\r\n // vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n if (vm.project.KPMESProjectId == 0) {\r\n // vm.project.WorkLocation = 'NewType';\r\n // vm.isExistProject = false;\r\n vm.project.ToggleStatus = true;\r\n ToggleChanged();\r\n }\r\n else {\r\n // vm.project.WorkLocation = 'ExistingType';\r\n // vm.isExistProject = true;\r\n vm.project.ToggleStatus = false;\r\n ToggleChanged();\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].KPMESProjectId === vm.project.KPMESProjectId) {\r\n vm.project.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n }\r\n\r\n // vm.project.selectedPropertyType = \r\n // vm.project.selectedProjectTypeName = \r\n\r\n // for (var i in vm.PropertyTypeList) {\r\n // if (vm.PropertyTypeList[i].PropertyTypeId === vm.project.PropertyTypeId) {\r\n // vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n // }\r\n // }\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n\r\n }\r\n }\r\n\r\n // GetprojectType(vm.project.PropertyTypeId, function () {\r\n // for (var i in vm.ProjectTypeList) {\r\n // if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n // vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n // }\r\n // }\r\n // }\r\n GetprojectType(vm.project.selectedPropertyType.ProjectCategoryId, function () {\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n }\r\n }\r\n );\r\n\r\n\r\n var dtlLocation = JSON.parse(vm.project.ProjectLocation);\r\n\r\n vm.project.PlotNo = dtlLocation.PlotNo;\r\n vm.project.Latitude = dtlLocation.Latitude;\r\n vm.project.Longitude = dtlLocation.Longitude;\r\n\r\n\r\n getStateListByCountryId(dtlLocation.CountryId, function () {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === dtlLocation.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === dtlLocation.StateId) {\r\n vm.project.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(dtlLocation.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === dtlLocation.CityId) {\r\n vm.project.selectedCity = vm.CityList[c];\r\n }\r\n }\r\n });\r\n getAreaListByCityId(dtlLocation.CityId, function () {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === dtlLocation.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[c];\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n // vm.project.selectedArea.Pincode = dtlLocation.Pincode;\r\n }\r\n }\r\n });\r\n });\r\n\r\n // var dtlContact = JSON.parse(vm.project.ProjectContactDetails);\r\n // var dtlContact1 = JSON.parse(dtlContact.Contact1);\r\n // var dtlContact2 = JSON.parse(dtlContact.Contact2);\r\n // vm.empPer = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n // vm.empPer1 = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c].EmpAddress.FirstName;\r\n // }\r\n // }\r\n\r\n // vm.isComAddSameAsPerAdd = dtlContact.IsSameAddress;\r\n\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c].FirstName;\r\n // }\r\n // } \r\n }\r\n\r\n vm.update = function () {\r\n \r\n if (vm.isComAddSameAsPerAdd) {\r\n vm.empPer1 = angular.copy(vm.empPer.selectedemp);\r\n vm.empPer1.selectedemp = vm.empPer.selectedemp;\r\n } else {\r\n vm.empPer1 = {};\r\n }\r\n };\r\n\r\n /////\r\n $scope.$on('gmPlacesAutocomplete::placeChanged', function () {\r\n \r\n\r\n var location = vm.autocomplete.getPlace().geometry.location;\r\n var Latitude = location.lat();\r\n var Longitude = location.lng();\r\n vm.project.Latitude = Latitude;\r\n vm.project.Longitude = Longitude;\r\n $scope.$apply();\r\n\r\n });\r\n\r\n\r\n vm.LoadProjectDetails = function () {\r\n vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n // LoadProjectCategory(function () {\r\n // for (var i in vm.ProjectCategoryList) {\r\n // if (vm.ProjectCategoryList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n // vm.project.selectedProjectCategoryName = vm.ProjectCategoryList[i]\r\n // }\r\n // }\r\n // });\r\n\r\n // vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n\r\n // for (var i in vm.ProjectTypeList) {\r\n // if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n // vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n // }\r\n\r\n // }\r\n\r\n // })\r\n \r\n vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n \r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n }\r\n }\r\n\r\n vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n \r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n \r\n }\r\n \r\n }) \r\n vm.project.PlotNo = vm.Location.PlotNo;\r\n vm.project.Latitude = vm.Location.Latitude;\r\n vm.project.Longitude = vm.Location.Longitude;\r\n\r\n LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.Location.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.Location.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.Location.StateId) {\r\n vm.project.selectedState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n\r\n getCityListByStateId(vm.Location.StateId, function () {\r\n \r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.Location.CityId) {\r\n vm.project.selectedCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n\r\n getAreaListByCityId(vm.Location.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.Location.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[i]\r\n }\r\n }\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.SaveProjects = function (approval) {\r\n vm.isLoading = true;\r\n\r\n var LocationObj = {\r\n PlotNo: vm.project.PlotNo,\r\n CountryId: vm.project.selectedCountryName.CountryId,\r\n StateId: vm.project.selectedState.StateId,\r\n CityId: vm.project.selectedCity.CityId,\r\n AreaId: vm.project.selectedArea.AreaId,\r\n Pincode: vm.project.selectedArea.Pincode,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude\r\n }\r\n\r\n // var Contact1Entity = {\r\n // EmployeeId: vm.empPer.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer.selectedemp.EmpAddress.PerLandline,\r\n // KPOSTId: vm.empPer.selectedemp.KpostId\r\n // }\r\n // var Contact2Entity = {\r\n // EmployeeId: vm.empPer1.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer1.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer1.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer1.selectedemp.EmpAddress.PerLandline,\r\n // KPOSTId: vm.empPer1.selectedemp.KpostId\r\n // }\r\n\r\n // var ContactDetails = {\r\n // Contact1: JSON.stringify(Contact1Entity),\r\n // IsSameAddress: vm.isComAddSameAsPerAdd,\r\n // Contact2: JSON.stringify(Contact2Entity),\r\n // }\r\n\r\n var prjName;\r\n var prjId;\r\n\r\n if (vm.project.WorkLocation === 'ExistingType') {\r\n prjId = vm.project.selectedProject.KPMESProjectId;\r\n prjName = vm.project.selectedProject.ProjectName;\r\n }\r\n else {\r\n prjId = 0;\r\n prjName = vm.project.ProjectName;\r\n }\r\n\r\n var nprjid;\r\n if (!vm.isEditing)\r\n nprjid = 0;\r\n else\r\n nprjid = vm.project.ProjectId;\r\n\r\n var Statusdtl;\r\n if (approval == 'Approve')\r\n Statusdtl = 4;\r\n else\r\n Statusdtl = 6;\r\n\r\n var prjDtl = {\r\n ProjectLocation: JSON.stringify(LocationObj),\r\n // ProjectContactDetails: JSON.stringify(ContactDetails),\r\n ProjectContactDetails:'',\r\n ProjectId: nprjid,\r\n KPMESProjectId: prjId,\r\n ProjectName: prjName,\r\n PropertyTypeId: vm.project.selectedPropertyType.ProjectCategoryId,\r\n ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude,\r\n EstimatedArea: vm.project.EstimatedArea,\r\n SaleArea: vm.project.SaleArea,\r\n ApartmentCount: vm.project.ApartmentCount,\r\n Status: Statusdtl,\r\n CompanyId: CompanyId,\r\n ProjectImage:'',\r\n }\r\n\r\n\r\n if (!vm.isEditing) {\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n prjDtl.CreatedBy = loggeduser.UserId;\r\n CRM_projectInitiationService.AddProjects(prjDtl).then(function (res) {\r\n $rootScope.showToaster('success', 'Project added successfully', \"success\");\r\n Init();\r\n cancel();\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n\r\n CRM_projectInitiationService.AddProjects(prjDtl).then(function (res) {\r\n $rootScope.showToaster('success', 'Project updated successfully', \"Success\");\r\n Init();\r\n cancel();\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }\r\n $scope.imageIsLoaded = function (e) {\r\n $scope.$apply(function () {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.project = {};\r\n vm.profilePicUrl = null;\r\n }\r\n\r\n function TileBack(){\r\n \r\n $state.go('CRM_projectInitiationTiles');\r\n }\r\n \r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ApprovedProjectPrice')\r\n .controller('CRMApprovedProjectPriceCtrl', CRMApprovedProjectPriceCtrl);\r\n\r\n /** @ngInject */\r\n function CRMApprovedProjectPriceCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n vm.Project = {};\r\n vm.EditProject = EditProject;\r\n vm.isLoading = true;\r\n vm.Cancel = Cancel;\r\n vm.LoadTiers = LoadTiers;\r\n vm.TileBack=TileBack;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n vm.Header = TitleHeader ;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Rate'\r\n };\r\n ProjectDetailsApprovalService.ProjectRateApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RateApprovalList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadTiers(iProjectId, callback) {\r\n \r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Rate',\r\n ProjectId: iProjectId\r\n };\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function EditProject(row) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n\r\n vm.ProjectPriceDetails = angular.copy(row);\r\n\r\n vm.Project.ProjectName = vm.ProjectPriceDetails.ProjectName;\r\n\r\n for (var i in vm.RateApprovalList) {\r\n if (vm.RateApprovalList[i].ProjectId == vm.ProjectPriceDetails.ProjectId) {\r\n vm.Project.selectedProject = vm.RateApprovalList[i];\r\n }\r\n }\r\n\r\n LoadTiers(vm.Project.selectedProject.ProjectId, function () {\r\n for (var i in vm.TierDetails) {\r\n if (vm.TierDetails[i].TierId === vm.ProjectPriceDetails.TierId) {\r\n vm.Project.selectedTier = vm.TierDetails[i];\r\n // vm.Project.selectedTier.SetupId = vm.TierDetails[i].SetupId;\r\n }\r\n }\r\n });\r\n\r\n var bltuparea = JSON.parse(vm.ProjectPriceDetails.AreaUnits);\r\n\r\n for (var i = 0; i < Object.keys(bltuparea).length; i++) {\r\n if (Object.keys(bltuparea)[i] == 'Super Builtup Area') {\r\n vm.Project.BuiltupArea = (Object.values(bltuparea)[i]);\r\n }\r\n }\r\n\r\n vm.Project.TierName = vm.ProjectPriceDetails.TierValue;\r\n\r\n vm.Project.RatePerUnitArea = vm.ProjectPriceDetails.RatePerUnit;\r\n vm.Project.BookingPrice = vm.ProjectPriceDetails.BookingPercentage;\r\n vm.Project.TotalCost = vm.ProjectPriceDetails.TotalCost;\r\n vm.Project.StatutoryCost = vm.ProjectPriceDetails.StatutoryCost;\r\n vm.Project.TotalBasicCost = vm.Project.RatePerUnitArea * vm.Project.BuiltupArea;\r\n\r\n\r\n var StatDetails = JSON.parse(vm.ProjectPriceDetails.StatutoryDetails);\r\n\r\n vm.Project.UDS = StatDetails.UDS;\r\n vm.Project.RateofLand = StatDetails.RateofLand;\r\n vm.Project.CostofLand = StatDetails.CostofLand;\r\n vm.Project.CostofConstruction = StatDetails.CostofConstruction;\r\n vm.Project.StampdutyCharges = StatDetails.StampdutyCharges;\r\n vm.Project.ParkingCharges = StatDetails.ParkingCharges;\r\n vm.Project.ThreePhaseCharges = StatDetails.ThreePhaseCharges;\r\n vm.Project.DTPCharges = StatDetails.DTPCharges;\r\n vm.Project.DTCPApprovalCharges = StatDetails.DTCPApprovalCharges;\r\n vm.Project.SewerageWaterCharges = StatDetails.SewerageWaterCharges;\r\n vm.Project.DrinkingWaterCharges = StatDetails.DrinkingWaterCharges;\r\n vm.Project.AdvanceMaintenance = StatDetails.AdvanceMaintenance;\r\n vm.Project.LegalCharges = StatDetails.LegalCharges;\r\n vm.Project.SolarPwrGeneration = StatDetails.SolarPwrGeneration;\r\n vm.Project.SolarWaterHeater = StatDetails.SolarWaterHeater;\r\n vm.Project.ClubMemberCharges = StatDetails.ClubMemberCharges;\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n vm.ProjectPriceApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = 4;\r\n else\r\n StatusId = 7;\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputData = {\r\n SetupId: vm.ProjectPriceDetails.SetupId,\r\n Status: StatusId,\r\n ApprovalFor: 'Rate',\r\n CreatedBy: loggeduser.UserId\r\n };\r\n\r\n ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n if (approval == 'Approve')\r\n $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n else\r\n $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n function TileBack(){\r\n \r\n $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId, TileId:'ProjectPriceSetup',SetupType:''});\r\n }\r\n \r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRMApprovedProjectPrice_New')\r\n .controller('CRMApprovedProjectPrice_NewCtrl', CRMApprovedProjectPrice_NewCtrl);\r\n\r\n /** @ngInject */\r\n function CRMApprovedProjectPrice_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService,CRM_GstSettingService, projectDetailsSetupService, projectCreationService, StateService, AuthenticationService, CRM_ProjectDetailsPriceSetupNewService, CRM_StatutoryMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n\r\n\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.EditProjectPrice = EditProjectPrice;\r\n vm.DeleteProjectPrice = DeleteProjectPrice;\r\n vm.ShowStatutoryPercentageNew = ShowStatutoryPercentageNew;\r\n vm.LoadStatutoryDetails = LoadStatutoryDetails;\r\n vm.LoadAllTiers = LoadAllTiers;\r\n\r\n vm.TileBack = TileBack;\r\n\r\n\r\n vm.Cancel = Cancel;\r\n\r\n vm.Create = Create;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.ReadAreaDetails = ReadAreaDetails;\r\n vm.CostCalculation = CostCalculation;\r\n // vm.StatutoryCalculation = StatutoryCalculation;\r\n vm.ShowStatutoryPercentage = ShowStatutoryPercentage;\r\n\r\n // vm.SaveProjectPriceDetails = SaveProjectPriceDetails;\r\n\r\n vm.Project = {};\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.RateApprovalList = [];\r\n vm.GSTSettingsList = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n\r\n vm.StatutoryTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Lump Sum' }, { 'Value': 'Percentage' }];\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n };\r\n\r\n projectDetailsSetupService.ReadApprovedBasicLocations_ForPrice(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n var inputGst = {\r\n CompanyId: CompanyId,\r\n GSTFor: 'TotalBasic',\r\n }\r\n CRM_GstSettingService.GetReadReadGSTSettings(inputGst).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.GSTSettingsList = res3.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Payment Schedule Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n\r\n var rateaprvlinputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Rate',\r\n Status: '4'\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(rateaprvlinputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RateApprovalList = res.data;\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetCountryCurrency_ByProjectId(inputcountry).then(function (resCurrency) {\r\n if (resCurrency.status === 200) {\r\n vm.CurrencyDetails = resCurrency.data;\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n for (var i in vm.StatutorySettingsList) {\r\n vm.StatutorySettingsList[i].PercentageSum = 0;\r\n vm.StatutorySettingsList[i].LumpSum = 0;\r\n vm.StatutorySettingsList[i].ShowPercentage = true;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n\r\n // LoadTiers(CRMProjectId);\r\n\r\n\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (!vm.isEditing)\r\n ResetAllValues();\r\n\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n if (!vm.isEditing) {\r\n\r\n // var inputcountry = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId\r\n // }\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // // vm.isStatutoryDetails = true;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].SqftRate = 0;\r\n // vm.StatutorySettingsList[i].SqftValue = 0;\r\n // vm.StatutorySettingsList[i].Lumpsum = 0;\r\n // vm.StatutorySettingsList[i].Percentage = 0;\r\n // vm.StatutorySettingsList[i].PercentageValue = 0;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // }\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n ResetAllValues();\r\n if (iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n // if(vm.NewBasicLocationList.length == i)\r\n ReadAreaDetails(iTierId);\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n }\r\n }\r\n\r\n function ReadAreaDetails(iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n Status: '4',\r\n TierId: iTierId,\r\n }\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.CommonArea = 0;\r\n vm.Project.SuperBuiltUpArea = 0;\r\n vm.Project.CarpetArea = 0;\r\n\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.RateofLand = 0;\r\n\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n\r\n\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetProjectDetailsandPrice_ForTier(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectAreaDetails = res.data;\r\n\r\n if (vm.ProjectAreaDetails.length > 0) {\r\n if (vm.ProjectAreaDetails[0].SalableArea > 0) {\r\n vm.Project.SalableArea = vm.ProjectAreaDetails[0].SalableArea;\r\n vm.Project.UDSArea = vm.ProjectAreaDetails[0].UDSArea;\r\n vm.Project.CommonArea = vm.ProjectAreaDetails[0].CommonArea;\r\n vm.Project.SuperBuiltUpArea = vm.ProjectAreaDetails[0].SuperBuiltUpArea;\r\n vm.Project.CarpetArea = vm.ProjectAreaDetails[0].CarpetArea;\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.ProjectAreaDetails[0].UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n LoadStatutoryDetails(vm.ProjectAreaDetails[0].PropertyTypeId);\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n // CRM_ProjectDetailsPriceSetupNew\r\n // GetProjectDetailsandPrice_ForTier\r\n }\r\n function LoadAllTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n if (!vm.isEditing)\r\n LoadTiers(iBasicLocationId, function (callback) {\r\n if (callback)\r\n callback();\r\n });\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n function LoadStatutoryDetails(iPropertyTypeId, callback) {\r\n if (iPropertyTypeId) {\r\n\r\n var inputStatutory = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: iPropertyTypeId\r\n }\r\n\r\n vm.StatutorySettingsList = [];\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputStatutory).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n if (vm.StatutorySettingsList.length > 0) {\r\n vm.isStatutoryDetails = true;\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n var stTypeList = [];\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == '') {\r\n stTypeList = [{ 'Value': 'Lump Sum' }];\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else {\r\n stTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Percentage' }];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n vm.StatutorySettingsList[i].TypeList = stTypeList;\r\n vm.StatutorySettingsList[i].selectedType = stTypeList[0];\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].TypeList = [];\r\n }\r\n\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n }\r\n\r\n // if (!vm.isEditing)\r\n // LoadTiers(iBasicLocationId, function (callback) {\r\n // if (callback)\r\n // callback();\r\n // });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n // vm.StatutorySettingsList = [];\r\n // vm.isStatutoryDetails = false;\r\n // vm.Project.Code = '';\r\n // vm.BasicLocationList = [];\r\n\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n function ResetAllValues() {\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n vm.Project.StatutoryCost = 0;\r\n vm.Project.TotalGST = 0;\r\n vm.Project.TotalCost = 0;\r\n }\r\n\r\n function CostCalculation() {\r\n // debugger\r\n vm.Project.TotalBasicCost = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.Project.RatePerUnit)).toFixed(2);\r\n vm.Project.CostofLand = (parseFloat(vm.Project.UDSArea) * parseFloat(vm.Project.RateofLand)).toFixed(2);\r\n vm.Project.CostofConstruction = (parseFloat(vm.Project.TotalBasicCost) - parseFloat(vm.Project.CostofLand)).toFixed(2);\r\n vm.Project.BookingAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.BookingPercentage)) / 100).toFixed(2);\r\n vm.Project.DiscountAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.DiscountPercentage)) / 100).toFixed(2);\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n }\r\n\r\n // ShowStatutoryPercentage(vm.StatutorySettingsList[i].StatutoryId, vm.StatutorySettingsList[i].selectedType.Value);\r\n }\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (vm.Project.TotalBasicCost * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(totalbasicgst);\r\n }\r\n\r\n // StatutoryCalculation();\r\n vm.Project.TotalGST = TotalGST.toFixed(2);\r\n vm.Project.StatutoryCost = TotalStatutoryCost.toFixed(2);\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n }\r\n\r\n \r\n function ShowStatutoryPercentageNew(iStatutoryId, Type) {\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (Type == undefined) {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function ShowStatutoryPercentage(iStatutoryId, Type) {\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].ShowPercentage = true;\r\n\r\n vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].RateAmount));\r\n\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n }\r\n // }\r\n }\r\n }\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = vm.Project.TotalBasicCost + vm.Project.StatutoryCost + vm.Project.TotalGST;\r\n }\r\n\r\n \r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Project = {};\r\n // Init();\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.Project = {};\r\n }\r\n\r\n function TileBack() {\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectPriceSetup', SetupType: '' });\r\n }\r\n\r\n function EditProjectPrice(row) {\r\n vm.isEditing = true;\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n\r\n for (var b in vm.UnitList) {\r\n\r\n if (vm.UnitList[b].UnitId == vm.Project.UnitId) {\r\n // vm.Project.selectedMasterunit.UnitName = vm.UnitList[b].UnitName;\r\n vm.Project.selectedMasterunit = vm.UnitList[b];\r\n }\r\n }\r\n\r\n // vm.UnitList\r\n\r\n // vm.Project.selectedMasterunit.UnitName\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: vm.Project.PropertyTypeId\r\n }\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n vm.isStatutoryDetails = true;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function (callback) {\r\n if (vm.BasicLocationList) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n if (sdtls.length > 0) {\r\n\r\n for (var j in vm.StatutoryTypeList) {\r\n if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n }\r\n }\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n vm.StatutorySettingsList[i].Lumpsum = sdtls[0].Amount;\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n vm.StatutorySettingsList[i].Percentage = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * sdtls[0].Percentage) / 100;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * sdtls[0].Percentage) / 100;\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // // vm.StatutorySettingsList[i].TaxPercentage = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // else if (sdtls[0].Type == 'Percentage') {\r\n\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(totalbasicgst)).toFixed(2);\r\n }\r\n\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n\r\n }\r\n // }\r\n // });\r\n\r\n\r\n }\r\n\r\n if (!callback)\r\n callback;\r\n });\r\n }\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n // }\r\n // });\r\n\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.LocationId,\r\n // ApprovalFor: 'Location',\r\n // TierId: row.TierId,\r\n // };\r\n\r\n // projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SavedLocTierDetails = res.data;\r\n // var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n // var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n // for (var j in vm.BasicLocationList[i].NewLocation) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n // }\r\n // }\r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n\r\n // var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true; \r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n // }\r\n // }\r\n // });\r\n\r\n\r\n // }\r\n // });\r\n }\r\n\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function DeleteProjectPrice(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: row.LocationId,\r\n TierId: row.TierId,\r\n RatePerUnit: 0,\r\n RateofLand: 0,\r\n BookingPercentage: 0,\r\n BookingAmount: 0,\r\n DiscountPercentage: 0,\r\n DiscountAmount: 0,\r\n StatutoryDetails: '',\r\n StatutoryCost: 0,\r\n TotalCost: 0,\r\n Process: 'Delete',\r\n Status: '3',\r\n CreatedBy: 0\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .controller('CRMBackForCorrectionCtrl', CRMBackForCorrectionCtrl);\r\n\r\n /** @ngInject */\r\n function CRMBackForCorrectionCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.project = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} };\r\n //Methods\r\n vm.GetprojectType = GetprojectType;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n vm.project.WorkLocation = null;\r\n // vm.project.Approval = null;\r\n vm.ToggleChanged = ToggleChanged;\r\n vm.TileBack = TileBack;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.editProject = editProject;\r\n vm.isEditingProPic = false;\r\n $scope.photoChanged = photoChanged;\r\n vm.editProPic = editProPic;\r\n vm.ProjectImage = null;\r\n vm.ExtProjectImage = null;\r\n // Status =3;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //////////////\r\n\r\n\r\n // LoadProjectCategory();\r\n // LoadPropertyType();\r\n LoadCountry();\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '6'\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PendingList = res.data;\r\n\r\n CRM_projectInitiationService.GetAllKPMESProjects().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadPropertyType(callback) {\r\n\r\n vm.PropertyTypeList = [];\r\n vm.ProjectTypeList = [];\r\n\r\n // var input = {\r\n // PropertyTypeId: 0,\r\n // ProjectTypeId: 0\r\n // };\r\n var objGetDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n };\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.PropertyTypeList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n projectCreationService.GetAllProjectCategory(objGetDTO).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PropertyTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n // function LoadProjectCategory(callback) {\r\n // projectCreationService.GetAllProjectCategory().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectCategoryList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n // }\r\n\r\n function GetprojectType(CategoryId, callBack) {\r\n // var input = {\r\n // PropertyTypeId: PropertyId,\r\n // ProjectTypeId: 0\r\n // };\r\n\r\n vm.ProjectTypeList = [];\r\n vm.project.selectedProjectTypeName = null;\r\n\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectTypeList = res.data;\r\n // if (vm.ProjectTypeList.length < 1) {\r\n // dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedPropertyType.PropertyType, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // } else {\r\n // if (callBack) {\r\n // callBack();\r\n // }\r\n // }\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n // });\r\n projectCreationService.GetProjectTypeByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectTypeList = res.data;\r\n if (vm.ProjectTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedProjectTypeName.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n\r\n\r\n function LoadCountry(callback) {\r\n var objCountry;\r\n CountryService.getAllCountry($http, $rootScope, objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // LoadProjectCategory();\r\n LoadPropertyType();\r\n vm.isLoading = false;\r\n }\r\n if (callback) {\r\n callback();\r\n } else {\r\n\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n ///// Get All State By Country\r\n function getStateListByCountryId(CountryId, callBack) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.project.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n\r\n // CRM_projectInitiationService.GetAllKPMESProjects().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n // });\r\n\r\n\r\n function getCityListByStateId(StateId, callBack) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.project.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n function getAreaListByCityId(CityId, callBack) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.project.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isExistProject = true;\r\n vm.project.WorkLocation = 'ExistingType';\r\n vm.profilePicUrl = null;\r\n ToggleChanged();\r\n }\r\n function ToggleChanged() {\r\n if (vm.project.ToggleStatus) {\r\n vm.project.WorkLocation = 'NewType';\r\n vm.isExistProject = false;\r\n }\r\n else {\r\n vm.project.WorkLocation = 'ExistingType';\r\n vm.isExistProject = true;\r\n }\r\n }\r\n\r\n function editProject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.project = angular.copy(row);\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/CRM/ProjectImages/' + row.ProjectImage;\r\n vm.ExtProjectImage=row.ProjectImage;\r\n // vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n if (vm.project.KPMESProjectId == 0) {\r\n // vm.project.WorkLocation = 'NewType';\r\n // vm.isExistProject = false;\r\n vm.project.ToggleStatus = true;\r\n ToggleChanged();\r\n }\r\n else {\r\n // vm.project.WorkLocation = 'ExistingType';\r\n // vm.isExistProject = true;\r\n vm.project.ToggleStatus = false;\r\n ToggleChanged();\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].KPMESProjectId === vm.project.KPMESProjectId) {\r\n vm.project.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n }\r\n\r\n // vm.project.selectedPropertyType = \r\n // vm.project.selectedProjectTypeName = \r\n\r\n // for (var i in vm.PropertyTypeList) {\r\n // if (vm.PropertyTypeList[i].PropertyTypeId === vm.project.PropertyTypeId) {\r\n // vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n // }\r\n // }\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n\r\n }\r\n }\r\n\r\n // GetprojectType(vm.project.PropertyTypeId, function () {\r\n // for (var i in vm.ProjectTypeList) {\r\n // if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n // vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n // }\r\n // }\r\n // }\r\n GetprojectType(vm.project.selectedPropertyType.ProjectCategoryId, function () {\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n }\r\n }\r\n );\r\n\r\n\r\n var dtlLocation = JSON.parse(vm.project.ProjectLocation);\r\n\r\n vm.project.PlotNo = dtlLocation.PlotNo;\r\n vm.project.Latitude = dtlLocation.Latitude;\r\n vm.project.Longitude = dtlLocation.Longitude;\r\n vm.project.ProjectImageName = vm.project.ProjectImage;\r\n\r\n\r\n getStateListByCountryId(dtlLocation.CountryId, function () {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === dtlLocation.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === dtlLocation.StateId) {\r\n vm.project.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(dtlLocation.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === dtlLocation.CityId) {\r\n vm.project.selectedCity = vm.CityList[c];\r\n }\r\n }\r\n });\r\n getAreaListByCityId(dtlLocation.CityId, function () {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === dtlLocation.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[c];\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n // vm.project.selectedArea.Pincode = dtlLocation.Pincode;\r\n }\r\n }\r\n });\r\n });\r\n\r\n // var dtlContact = JSON.parse(vm.project.ProjectContactDetails);\r\n // var dtlContact1 = JSON.parse(dtlContact.Contact1);\r\n // var dtlContact2 = JSON.parse(dtlContact.Contact2);\r\n // vm.empPer = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n // vm.empPer1 = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c].EmpAddress.FirstName;\r\n // }\r\n // }\r\n\r\n // vm.isComAddSameAsPerAdd = dtlContact.IsSameAddress;\r\n\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c].FirstName;\r\n // }\r\n // } \r\n }\r\n\r\n vm.update = function () {\r\n\r\n if (vm.isComAddSameAsPerAdd) {\r\n vm.empPer1 = angular.copy(vm.empPer.selectedemp);\r\n vm.empPer1.selectedemp = vm.empPer.selectedemp;\r\n } else {\r\n vm.empPer1 = {};\r\n }\r\n };\r\n\r\n /////\r\n $scope.$on('gmPlacesAutocomplete::placeChanged', function () {\r\n\r\n\r\n var location = vm.autocomplete.getPlace().geometry.location;\r\n var Latitude = location.lat();\r\n var Longitude = location.lng();\r\n vm.project.Latitude = Latitude;\r\n vm.project.Longitude = Longitude;\r\n $scope.$apply();\r\n\r\n });\r\n\r\n\r\n vm.LoadProjectDetails = function () {\r\n vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n // LoadProjectCategory(function () {\r\n // for (var i in vm.ProjectCategoryList) {\r\n // if (vm.ProjectCategoryList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n // vm.project.selectedProjectCategoryName = vm.ProjectCategoryList[i]\r\n // }\r\n // }\r\n // });\r\n\r\n // vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n\r\n // for (var i in vm.ProjectTypeList) {\r\n // if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n // vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n // }\r\n\r\n // }\r\n\r\n // })\r\n vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n }\r\n }\r\n\r\n vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n\r\n }\r\n\r\n })\r\n vm.project.PlotNo = vm.Location.PlotNo;\r\n vm.project.Latitude = vm.Location.Latitude;\r\n vm.project.Longitude = vm.Location.Longitude;\r\n\r\n LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.Location.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.Location.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.Location.StateId) {\r\n vm.project.selectedState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n\r\n getCityListByStateId(vm.Location.StateId, function () {\r\n\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.Location.CityId) {\r\n vm.project.selectedCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n\r\n getAreaListByCityId(vm.Location.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.Location.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[i]\r\n }\r\n }\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.SaveProjects = function (approval) {\r\n vm.isLoading = true;\r\n\r\n var LocationObj = {\r\n PlotNo: vm.project.PlotNo,\r\n CountryId: vm.project.selectedCountryName.CountryId,\r\n StateId: vm.project.selectedState.StateId,\r\n CityId: vm.project.selectedCity.CityId,\r\n AreaId: vm.project.selectedArea.AreaId,\r\n Pincode: vm.project.selectedArea.Pincode,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude\r\n }\r\n\r\n // var Contact1Entity = {\r\n // EmployeeId: vm.empPer.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer.selectedemp.EmpAddress.PerLandline,\r\n // KPOSTId: vm.empPer.selectedemp.KpostId\r\n // }\r\n // var Contact2Entity = {\r\n // EmployeeId: vm.empPer1.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer1.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer1.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer1.selectedemp.EmpAddress.PerLandline,\r\n // KPOSTId: vm.empPer1.selectedemp.KpostId\r\n // }\r\n // var Contact2Entity = '';\r\n // if (vm.empPer1.selectedemp != undefined) {\r\n // Contact2Entity = {\r\n // EmployeeId: vm.empPer1.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer1.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer1.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer1.selectedemp.EmpAddress.CommMobile,\r\n // KPOSTId: vm.empPer1.selectedemp.KpostId\r\n // }\r\n // }\r\n // var ContactDetails = {\r\n // Contact1: JSON.stringify(Contact1Entity),\r\n // IsSameAddress: vm.isComAddSameAsPerAdd,\r\n // Contact2: JSON.stringify(Contact2Entity),\r\n // }\r\n\r\n var prjName;\r\n var prjId;\r\n\r\n if (vm.project.WorkLocation === 'ExistingType') {\r\n prjId = vm.project.selectedProject.KPMESProjectId;\r\n prjName = vm.project.selectedProject.ProjectName;\r\n }\r\n else {\r\n prjId = 0;\r\n prjName = vm.project.ProjectName;\r\n }\r\n\r\n var nprjid;\r\n if (!vm.isEditing) {\r\n nprjid = 0;\r\n }\r\n else {\r\n nprjid = vm.project.ProjectId;\r\n }\r\n\r\n\r\n // var Statusdtl;\r\n // if (approval == 'Approve')\r\n // Statusdtl = 6;\r\n // else\r\n // Statusdtl = 2;\r\n\r\n var prjDtl = {\r\n ProjectLocation: JSON.stringify(LocationObj),\r\n // ProjectContactDetails: JSON.stringify(ContactDetails),\r\n ProjectContactDetails: '',\r\n ProjectId: nprjid,\r\n KPMESProjectId: prjId,\r\n ProjectName: prjName,\r\n PropertyTypeId: vm.project.selectedPropertyType.ProjectCategoryId,\r\n ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude,\r\n EstimatedArea: vm.project.EstimatedArea,\r\n SaleArea: vm.project.SaleArea,\r\n ApartmentCount: vm.project.ApartmentCount,\r\n Status: 2,\r\n CompanyId: CompanyId,\r\n CreatedBy: loggeduser.UserId,\r\n // ProjectImage:'',\r\n }\r\n var formData = new FormData();\r\n\r\n\r\n // formData.append(\"Uploadfile2\", vm.Uploadfile2);\r\n // formData.append(\"Uploadfile3\", vm.Uploadfile3);\r\n formData.append(\"inputdata\", JSON.stringify(prjDtl));\r\n formData.append(\"ProjectImage\", vm.ProjectImage);\r\n\r\n\r\n\r\n CRM_projectInitiationService.AddProjects(formData).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n\r\n Init();\r\n cancel();\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.isLoading = false;\r\n\r\n\r\n // if (!vm.isEditing) {\r\n\r\n\r\n // CRM_projectInitiationService.AddProjects(formData).then(function (res) {\r\n // // $rootScope.showToaster('success', 'Project added successfully', \"success\");\r\n // if (res.status === 200 && res.data.IsSuccess) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n // } else\r\n // $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n // Init();\r\n // cancel();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n // });\r\n // vm.isLoading = false;\r\n // } else {\r\n\r\n // CRM_projectInitiationService.AddProjects(prjDtl).then(function (res) {\r\n // $rootScope.showToaster('success', 'Project updated successfully', \"Success\");\r\n // Init();\r\n // cancel();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n }\r\n\r\n\r\n function editProPic() {\r\n vm.isEditingProPic = true;\r\n }\r\n function photoChanged(event) {\r\n\r\n var reader = new FileReader();\r\n if (!vm.isEditingProPic) {\r\n vm.ProjectImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.ProjectImage);\r\n } else {\r\n vm.ProjectImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.ProjectImage);\r\n var formData = new FormData();\r\n formData.append('ProjectImage', vm.ProjectImage);\r\n formData.append('ProjectId', vm.project.ProjectId);\r\n\r\n formData.append('ExtProjectImage', vm.ExtProjectImage);\r\n\r\n CRM_projectInitiationService.updateProjectImage(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Project Image changed succussfully', \"Success\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n $scope.imageIsLoaded = function (e) {\r\n $scope.$apply(function () {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.project = {};\r\n vm.profilePicUrl = null;\r\n }\r\n\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_projectInitiationTiles');\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_EmployeeTaskActivity')\r\n .controller('CRM_EmployeeTaskActivityCtrl', CRM_EmployeeTaskActivityCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_EmployeeTaskActivityCtrl($scope, $http, $rootScope, lodash, dialogs, $filter, $state, CRM_TaskSubjectMasterService, CRM_EmployeeTaskActivityService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.UpdateStatus = UpdateStatus;\r\n\r\n vm.AddActivity = AddActivity;\r\n\r\n vm.GetActivity = GetActivity;\r\n\r\n vm.SubjectChanged = SubjectChanged;\r\n\r\n vm.SaveEmployeeTask = SaveEmployeeTask;\r\n\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n vm.Activity = {};\r\n vm.TileBack=TileBack;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n vm.StatusList = [{ \"Id\": \"1\", \"Status\": \"Completed\" }, { \"Id\": 2, \"Status\": \"Pending\" }];\r\n\r\n vm.isFormOpen = false;\r\n vm.Activity.ActivityDate=new Date();\r\n GetActivity(new Date());\r\n\r\n CRM_EmployeeTaskActivityService.ReadAllCustomers(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CustomerList = res.data;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Process: 'Subject',\r\n SubjectId: 0\r\n };\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.SubjectList = res1.data;\r\n vm.ActivityList = [];\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n\r\n\r\n \r\n }\r\n\r\n function AddActivity(row) {\r\n\r\n vm.ShowFromTime = $filter(\"date\")(row.StartTime, \"HH:mm\");\r\n vm.FromTimeValue = row.StartTime;\r\n\r\n vm.ShowToTime = $filter(\"date\")(row.EndTime, \"HH:mm\");\r\n vm.ToTimeValue = row.EndTime;\r\n\r\n vm.SavedActivityId = row.EmpActivityId;\r\n\r\n vm.isFormOpen = true;\r\n vm.isSaveActivity = true;\r\n vm.Activity.SelectedCustomer = null;\r\n vm.Activity.SelectedSubject = null;\r\n vm.Activity.SelectedActivity = null;\r\n\r\n }\r\n\r\n function UpdateStatus(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isSaveActivity = false;\r\n vm.Activity.SelectedStatus = null;\r\n\r\n vm.ShowFromTime = $filter(\"date\")(row.StartTime, \"HH:mm\");\r\n vm.FromTimeValue = row.StartTime;\r\n\r\n vm.ShowToTime = $filter(\"date\")(row.EndTime, \"HH:mm\");\r\n vm.ToTimeValue = row.EndTime;\r\n\r\n vm.SavedActivityId = row.EmpActivityId;\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n function SubjectChanged(SubjectId, callback) {\r\n\r\n if (SubjectId == undefined || SubjectId == null) {\r\n vm.ActivityList = [];\r\n vm.Activity.SelectedActivity = null;\r\n }\r\n else {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Process: 'Acitvity',\r\n SubjectId: SubjectId\r\n };\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ActivityList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }\r\n\r\n function GetActivity(ActivityDate) {\r\n\r\n vm.AllActivityList = [];\r\n if (ActivityDate != undefined || ActivityDate != null) {\r\n var EmployeeId = 93;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n EmployeeId: EmployeeId,\r\n ActivityDate: $filter(\"date\")(ActivityDate)\r\n };\r\n\r\n\r\n CRM_EmployeeTaskActivityService.ReadEmployeeActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllActivityList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }\r\n\r\n function SaveEmployeeTask(EmpTask) {\r\n\r\n if (EmpTask.FromTime1 < vm.FromTimeValue) {\r\n $rootScope.showToaster('error', 'Error in From Time', \"Employee Task Activity\");\r\n }\r\n else if (EmpTask.ToTime1 > vm.ToTimeValue) {\r\n $rootScope.showToaster('error', 'Error in To Time', \"Employee Task Activity\");\r\n }\r\n else {\r\n\r\n var iProcess, EmpActId, StatId, ResDate, ResStTime, ResEdTime;\r\n\r\n if (vm.isSaveActivity) {\r\n // EmpActId = 0;\r\n StatId = 0;\r\n // ResDate = $filter(\"date\")(vm.Activity.ActivityDate);\r\n // ResStTime = $filter(\"date\")(vm.Activity.FromTime, \"HH:mm\");\r\n // ResEdTime = $filter(\"date\")(vm.Activity.ToTime, \"HH:mm\");\r\n iProcess = 'New';\r\n }\r\n else {\r\n // EmpActId = EmpTask.EmpActivityId;\r\n StatId = vm.Activity.SelectedStatus.Id;\r\n // ResDate = $filter(\"date\")(vm.Activity.ResScheduleDate);\r\n // ResStTime = $filter(\"date\")(vm.Activity.FromTime, \"HH:mm\");\r\n // ResEdTime = $filter(\"date\")(vm.Activity.ToTime, \"HH:mm\");\r\n iProcess = 'StatusUpdate';\r\n }\r\n\r\n var inputData = {\r\n EmpActivityId: vm.SavedActivityId,\r\n CompanyId: CompanyId,\r\n EmployeeId: 93,\r\n CustomerId: StatId > 0 ? 0 : vm.Activity.SelectedCustomer.CustomerId,\r\n ActivityDate: $filter(\"date\")(vm.Activity.ActivityDate),\r\n StartTime: $filter(\"date\")(vm.Activity.FromTime, \"HH:mm\"),\r\n EndTime: $filter(\"date\")(vm.Activity.ToTime, \"HH:mm\"),\r\n SubjectId: StatId > 0 ? 0 : vm.Activity.SelectedSubject.SubjectId,\r\n ActivityId: StatId > 0 ? 0 : vm.Activity.SelectedActivity.ActivityId,\r\n Process: iProcess,\r\n TaskStatus: StatId,\r\n Remarks: '',\r\n RescheduleDate: StatId == 2 ? $filter(\"date\")(vm.Activity.ResScheduleDate) : $filter(\"date\")(vm.Activity.ActivityDate),\r\n ResStartTime: StatId == 2 ? $filter(\"date\")(vm.Activity.ResStartTime, \"HH:mm\") : $filter(\"date\")(vm.FromTimeValue, \"HH:mm\"),\r\n ResEndTime: StatId == 2 ? $filter(\"date\")(vm.Activity.ResEndTime, \"HH:mm\") : $filter(\"date\")(vm.ToTimeValue, \"HH:mm\"),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n CRM_EmployeeTaskActivityService.SaveRemoveEmployeeDailyActivity(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Employee Task Activity\");\r\n Init();\r\n // GetActivity(inputData.ActivityDate);\r\n // vm.Activity.ActivityDate = inputData.ActivityDate;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }\r\n\r\n //DatetimePicker Function starts\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n $scope.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n // return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n return mode === 'day' && (date.getDay() === 0);\r\n }\r\n\r\n $scope.toggleMin = function () {\r\n $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();\r\n $scope.dateOptions.minDate = $scope.inlineOptions.minDate;\r\n };\r\n\r\n $scope.toggleMin();\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.open2 = function () {\r\n $scope.popup2.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = $scope.formats[0];\r\n $scope.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n $scope.popup2 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n $scope.events = [\r\n {\r\n date: tomorrow,\r\n status: 'full'\r\n },\r\n {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }\r\n ];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < $scope.events.length; i++) {\r\n var currentDay = new Date($scope.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return $scope.events[i].status;\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n //DatetimePicker Function ends\r\n\r\n function TileBack(){\r\n\r\n $state.go('CRM_Task');\r\n }\r\n }\r\n\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .controller('CRM_ProjectCreationCtrl', CRM_ProjectCreationCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectCreationCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CRM_ProjectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n //////////////\r\n\r\n //// Draft All List\r\n\r\n function Init() {\r\n CRM_ProjectCreationService.GetAllDrafts(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DraftList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n function Create() {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: true\r\n }\r\n $state.go('CRM_projectinitiation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row\r\n }\r\n $state.go('CRM_projectinitiation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n StatesId: 2,\r\n project: row,\r\n isView: true\r\n };\r\n\r\n $state.go('CRM_projectinitiation', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.excel = function () {\r\n var test = [{\r\n Name: \"vignesh\",\r\n Id: \"1001\"\r\n },\r\n {\r\n Name: \"Karthick\",\r\n Id: \"1002\"\r\n },\r\n {\r\n Name: \"Tamil\",\r\n Id: \"1004\"\r\n }\r\n ]\r\n alasql('SELECT * INTO XLS(\"project.xls\",?) FROM ?', test);\r\n }\r\n\r\n vm.sendApproval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to Send Project For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n projectCreationService.removeProject(project.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Project Successfully', \"Project\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Project. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n\r\n }\r\n\r\n vm.RemoveProject = function (project) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n projectCreationService.removeProject(project.ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Project Successfully', \"Project\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Project. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectDetailsApproval')\r\n .controller('CRM_ProjectDetailsApprovalCtrl', CRM_ProjectDetailsApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectDetailsApprovalCtrl($scope, $http, $rootScope, lodash, dialogs, $state,$stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n vm.TileBack=TileBack;\r\n\r\n vm.EditProject = EditProject;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n \r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n\r\n Init();\r\n function Init() {\r\n \r\n vm.Header = TitleHeader ;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '3',\r\n ApprovalFor: 'Location',\r\n //ProjectId :0\r\n };\r\n ProjectDetailsApprovalService.GetAllProjectDetailsApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovalDetailList = res.data;\r\n for (var i in vm.ApprovalDetailList) {\r\n vm.ApprovalDetailList[i].LocDtls = JSON.parse(vm.ApprovalDetailList[i].LocationDetails);\r\n vm.ApprovalDetailList[i].AreaDtls = JSON.parse(vm.ApprovalDetailList[i].AreaUnits);\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function EditProject(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n // debugger;\r\n vm.Project = angular.copy(row);\r\n\r\n vm.BasicLocationList = JSON.parse(vm.Project.LocationDetails);\r\n vm.AllRequiredDetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n }\r\n\r\n\r\n vm.ProjectApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = 4;\r\n else\r\n StatusId = 6;\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputData = {\r\n SetupId: vm.Project.SetupId,\r\n Status: StatusId,\r\n ApprovalFor: 'Location',\r\n CreatedBy: loggeduser.UserId\r\n };\r\n\r\n ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n if (approval == 'Approve')\r\n $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n else\r\n $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n function TileBack(){\r\n \r\n // $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId });\r\n $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId, TileId:'ProjectDetailsSetup',SetupType:''});\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRMProjectDetailsApproval_New')\r\n .controller('CRMProjectDetailsApproval_NewCtrl', CRMProjectDetailsApproval_NewCtrl);\r\n\r\n function CRMProjectDetailsApproval_NewCtrl($scope, $http, $rootScope, $uibModal, lodash, dialogs, $state, $window, CRM_CopyAreaDetailsService, CRM_projectInitiationService, projectDetailsSetupService, AuthenticationService, ProjectDetailsApprovalService, CRM_parkingLocationSetupService) {\r\n\r\n\r\n\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n vm.TileBack = TileBack;\r\n\r\n vm.EditProjectNew = EditProjectNew;\r\n\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n\r\n vm.LoadTiers = LoadTiers;\r\n // vm.DeleteProject = DeleteProject;\r\n vm.LoadLocations = LoadLocations;\r\n vm.LoadParkingTiers = LoadParkingTiers;\r\n vm.LoadParkingInnerLocations = LoadParkingInnerLocations;\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n // vm.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n vm.Reject = Reject;\r\n // vm.LoadInnerTiers = LoadInnerTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n\r\n vm.Header = TitleHeader;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Status: '2,3',\r\n ApprovalFor: 'Location'\r\n //ProjectId :0\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovalDetailList = res.data;\r\n LoadLocations(CRMProjectId);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SelectedProjectDetails = res.data;\r\n\r\n vm.CRMReqFileList = JSON.parse(vm.SelectedProjectDetails[0].CRMRequiredFiles);\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n // var ReqDetails = '';\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n // vm.ReqFileList = JSON.parse(vm.ProjectList[i].CRMRequiredFiles);\r\n // }\r\n // }\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n\r\n\r\n vm.isLoading = false;\r\n // vm.isParkingTiers = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n function LoadInnerLocations(iTierId, Level, callback) {\r\n\r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null; \r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == (Level - 1)) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // }\r\n // else if ((Level - 1) < i) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // vm.BasicLocationList[i].NewLocation = [];\r\n // }\r\n // }\r\n }\r\n }\r\n function LoadParkingLocations(iIsParking, callback) {\r\n\r\n if (iIsParking == 'Yes') {\r\n vm.isLoadParkingTiers = true;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_parkingLocationSetupService.GetAllLocations(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ParkingLocationList = res1.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.isLoadParkingTiers = false;\r\n vm.ParkingLocationList = [];\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n var inputdatanew = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ReadFor: 'ApartmentType',\r\n LocationId: iBasicLocationId\r\n }\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.ApartmentList = res2.data;\r\n\r\n if (vm.ApartmentList.length > 0)\r\n vm.isLoadApartmentType = true;\r\n else\r\n vm.isLoadApartmentType = false;\r\n\r\n // var inputdatanew1 = {\r\n // ReadFor: 'FlatFacing',\r\n // ApartmentTypeId: null\r\n // }\r\n\r\n inputdatanew.ReadFor = 'FlatFacing';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.FlatFacingList = res3.data;\r\n\r\n inputdatanew.ReadFor = 'LocationFeature';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res4) {\r\n if (res4.status === 200) {\r\n vm.LocationFeatureList = res4.data;\r\n\r\n // var locinputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: iBasicLocationId,\r\n // SelectFor: 'Location',\r\n // Type: 'NA'\r\n // }\r\n // CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(locinputdata).then(function (res5) {\r\n // if (res5.status === 200) {\r\n // vm.UnSavedTiers = res5.data;\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n\r\n // if (vm.UnSavedTiers.length > 0) {\r\n // if (i == 0) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': 0 });\r\n // vm.BasicLocationList[0].NewLocation = firstTiers;\r\n // }\r\n // }\r\n // }\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n\r\n\r\n // projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n // if (res1.status === 200) {\r\n // vm.ParkingTiers = res1.data;\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n }\r\n }\r\n\r\n vm.ProjectApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = '4';\r\n else\r\n StatusId = '6';\r\n\r\n var iLocationDetails = {};\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].selectedTier) {\r\n iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n }\r\n }\r\n\r\n var iParkingLocationId = null;\r\n var iParkingTierId = null;\r\n var iParkingLocationDetails = {};\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n iParkingLocationId = vm.Project.selectedParkingLocation.LocationId;\r\n iParkingTierId = vm.ParkingBasicLocationList[vm.ParkingBasicLocationList.length - 1].selectedParkingTier.TierId;\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier) {\r\n iParkingLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.ParkingBasicLocationList[i].selectedParkingTier.TierId;\r\n }\r\n }\r\n }\r\n\r\n var iUploadfiles = [];\r\n\r\n var iUploadfiles = {\r\n ProjectUpload: JSON.stringify(vm.selectedProjectFileList),\r\n ParkingUpload: JSON.stringify(vm.selectedParkFileList),\r\n };\r\n\r\n var inputData = {\r\n SetupId: vm.Project.SetupId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n LocationDetails: JSON.stringify(iLocationDetails),\r\n PropertyTypeId: vm.Project.selectedApartment.Id,\r\n UnitId: vm.Project.selectedMasterunit.UnitId,\r\n Uploadfiles: '',\r\n ParkingLocationId: iParkingLocationId,\r\n ParkingTierId: iParkingTierId,\r\n ParkingLocationDetails: JSON.stringify(iParkingLocationDetails),\r\n CarpetArea: vm.Project.CarpetArea,\r\n CommonArea: vm.Project.CommonArea,\r\n SalableArea: vm.Project.SalableArea,\r\n SuperBuiltUpArea: vm.Project.SuperBuiltUpArea,\r\n UDSArea: vm.Project.UDSArea,\r\n Balcony :vm.Project.Balcony ,\r\n Verandah :vm.Project.Verandah,\r\n Utility : vm.Project.Utility,\r\n Services:vm.Project.Services,\r\n OpenTerrace:vm.Project.OpenTerrace,\r\n UnitType:vm.Project.UnitType,\r\n ReraUnitType:vm.Project.ReraUnitType,\r\n FlatFacingId: vm.Project.selectedFlatFacing.Id,\r\n FlatFeatureId: vm.Project.selectedLocationFeature.Id,\r\n Status: StatusId,\r\n Process: 'Save',\r\n CreatedBy: loggeduser.UserId,\r\n }\r\n\r\n var formData = new FormData();\r\n // if (!vm.isEditing) {\r\n // for (var i in vm.selectedProjectFileList) {\r\n // formData.append(vm.selectedProjectFileList[i].key, vm.selectedProjectFileList[i].selectedFile);\r\n // }\r\n\r\n // for (var i in vm.selectedParkFileList) {\r\n // formData.append(vm.selectedParkFileList[i].key, vm.selectedParkFileList[i].selectedFile);\r\n // }\r\n // }\r\n\r\n\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n // formData.append(\"ProjectUpload\", vm.selectedProjectFileList);\r\n // formData.append(\"ParkingUpload\", vm.selectedParkFileList);\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n\r\n if (approval === 'Approve') {\r\n $rootScope.showToaster('success', 'Approved successfully', \"Project Details Setup\");\r\n }\r\n else {\r\n $rootScope.showToaster('success', 'Rejected', \"Project Details Setup\");\r\n }\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Details Setup\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n function EditProjectNew(row) {\r\n\r\n vm.isEditing = true;\r\n vm.Project = {};\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = false;\r\n\r\n vm.buttonhide = false;\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n var iCode = '';\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + vm.BasicLocationList[i].selectedTier.Code;\r\n }\r\n vm.Project.Code = iCode;\r\n for (var i in vm.ApartmentList) {\r\n if (vm.ApartmentList[i].Id == vm.Project.PropertyTypeId) {\r\n vm.Project.selectedApartment = vm.ApartmentList[i];\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n LoadParkingLocations(vm.ApartmentList[i].IsParking);\r\n\r\n for (var a in vm.ParkingLocationList) {\r\n if (vm.ParkingLocationList[a].LocationId == vm.Project.ParkingLocationId) {\r\n vm.Project.selectedParkingLocation = vm.ParkingLocationList[a];\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedParkingLocation.LocationId,\r\n ApprovalFor: 'Parking',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedParkTierDetails = res.data;\r\n var allSelectParkLocations = JSON.parse(vm.Project.ParkingLocationDetails);\r\n LoadParkingTiers(vm.Project.selectedParkingLocation.LocationId, function () {\r\n if (vm.ParkingBasicLocationList) {\r\n var iCode = '';\r\n for (var b in vm.ParkingBasicLocationList) {\r\n vm.ParkingBasicLocationList[b].NewLocation = JSON.parse(vm.SavedParkTierDetails[b].TierValue);\r\n for (var j in vm.ParkingBasicLocationList[b].NewLocation) {\r\n if (vm.ParkingBasicLocationList[b].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(b) + 1)]) {\r\n // if (vm.ParkingBasicLocationList[i].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.ParkingBasicLocationList[b].selectedParkingTier = vm.ParkingBasicLocationList[b].NewLocation[j];\r\n }\r\n }\r\n if (vm.ParkingBasicLocationList[b].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[b].selectedParkingTier.Code;\r\n }\r\n\r\n }\r\n vm.Project.ParkingCode = iCode;\r\n\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n // if (vm.Project.selectedParkingLocation != undefined) {\r\n\r\n\r\n // }\r\n vm.selectedParkFileList = [];\r\n var SavedParkUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ParkingUpload);\r\n for (var a in SavedParkUploadList) {\r\n if (SavedParkUploadList.hasOwnProperty(a)) {\r\n vm.selectedParkFileList.push({\r\n key: a,\r\n selectedFile: SavedParkUploadList[a]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.Project.UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.FlatFacingList) {\r\n if (vm.FlatFacingList[i].Id == vm.Project.FlatFacingId) {\r\n vm.Project.selectedFlatFacing = vm.FlatFacingList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.LocationFeatureList) {\r\n if (vm.LocationFeatureList[i].Id == vm.Project.FlatFeatureId) {\r\n vm.Project.selectedLocationFeature = vm.LocationFeatureList[i];\r\n }\r\n }\r\n }\r\n\r\n vm.selectedProjectFileList = [];\r\n var SavedProjectUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ProjectUpload);\r\n for (var a in SavedProjectUploadList) {\r\n if (SavedProjectUploadList.hasOwnProperty(a)) {\r\n vm.selectedProjectFileList.push({\r\n key: a,\r\n selectedFile: SavedProjectUploadList[a]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n function LoadParkingInnerLocations(iTierId, callback) {\r\n if (iTierId) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedParkingLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewParkingBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewParkingBasicLocationList) {\r\n if (vm.NewParkingBasicLocationList[i].Tiers === vm.ParkingBasicLocationList[i].Tiers && vm.NewParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.NewParkingBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[i].selectedParkingTier.Code;\r\n }\r\n\r\n vm.Project.ParkingCode = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n }\r\n }\r\n function LoadParkingTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ParkingBasicLocationList = res.data;\r\n if (callback)\r\n callback();\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.ParkingBasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedParkingLocation = null;\r\n vm.ParkingBasicLocationList = [];\r\n // vm.BasicLocationList = [];\r\n // vm.ApartmentList = [];\r\n // vm.isLoadApartmentType = false;\r\n }\r\n }\r\n // function DeleteProject(row) {\r\n\r\n // var confirm = dialogs.confirm('Confirm',\r\n // 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n // confirm.result.then(function () {\r\n\r\n // var inputData = {\r\n // SetupId: row.SetupId,\r\n // Process: 'Delete',\r\n // };\r\n\r\n // var formData = new FormData();\r\n // formData.append(\"inputdata\", JSON.stringify(inputData));\r\n\r\n // projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Role\");\r\n // Init();\r\n // } else {\r\n // dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n // }\r\n // },\r\n // function (err) {\r\n // dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n // });\r\n // }, function () {\r\n\r\n // })\r\n // }\r\n vm.RemoveProjectFileType = function (fileType, UploadFor) {\r\n\r\n // if (vm.isAdd)\r\n\r\n\r\n if (vm.isEditing) {\r\n var objDel = {\r\n SetupId: vm.Project.SetupId,\r\n Uploadfiles: vm.Project.Uploadfiles,\r\n Key: fileType.key,\r\n UpdateFor: UploadFor\r\n }\r\n projectDetailsSetupService.UpdateandDeleteProjectFileUpload(objDel).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', ' Deleted Successfully', \"Project Details Setup\");\r\n\r\n vm.Project.Uploadfiles = res.data[0].Uploadfiles;\r\n // if (UploadFor == 'ProjectUpload') {\r\n var selectedPrjFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ProjectUpload']);\r\n vm.selectedProjectFileList = [];\r\n\r\n for (var i in selectedPrjFiles) {\r\n if (selectedPrjFiles.hasOwnProperty(i)) {\r\n vm.selectedProjectFileList.push({\r\n key: i,\r\n selectedFile: selectedPrjFiles[i]\r\n });\r\n }\r\n }\r\n\r\n\r\n var selectedParkFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ParkingUpload']);\r\n vm.selectedParkFileList = [];\r\n\r\n\r\n for (var i in selectedParkFiles) {\r\n if (selectedParkFiles.hasOwnProperty(i)) {\r\n vm.selectedParkFileList.push({\r\n key: i,\r\n selectedFile: selectedParkFiles[i]\r\n });\r\n }\r\n }\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n else {\r\n\r\n if (UploadFor == 'ProjectUpload') {\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.selectedProjectFileList[i].key === fileType.key) {\r\n vm.selectedProjectFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n else {\r\n\r\n for (var i in vm.selectedParkFileList) {\r\n if (vm.selectedParkFileList[i].key === fileType.key) {\r\n vm.selectedParkFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n function Cancel() {\r\n vm.Project = {};\r\n vm.isFormOpen = true;\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n\r\n Init();\r\n\r\n\r\n\r\n // vm.isFormOpen = false;\r\n // vm.location = {};\r\n // vm.tiers = [];\r\n }\r\n\r\n function Reject() {\r\n\r\n\r\n\r\n var StatusId = '6';\r\n\r\n\r\n var project = {\r\n Status: StatusId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n }\r\n\r\n\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/CRM/CRMProjectDetailsRejection/CRMProjectDetailsRejection.html',\r\n controller: 'CRMProjectDetailsRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return project;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n //$ctrl.selected = selectedItem;\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n function TileBack() {\r\n\r\n // $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId });\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectDetailsSetup', SetupType: '' });\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectDetailsPriceSetup')\r\n .controller('CRMProjectDetailsPriceSetupCtrl', CRMProjectDetailsPriceSetupCtrl);\r\n\r\n /** @ngInject */\r\n function CRMProjectDetailsPriceSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectDetailsSetupService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.EditProject = EditProject;\r\n vm.DeleteProject = DeleteProject;\r\n \r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n vm.Cancel = Cancel;\r\n\r\n vm.Create = Create;\r\n vm.TileBack = TileBack;\r\n \r\n // vm.LoadTiers = LoadTiers;\r\n vm.LoadAreaValue = LoadAreaValue;\r\n vm.LoadTotalcost = LoadTotalcost;\r\n vm.LoadTotalStatutorycost = LoadTotalStatutorycost;\r\n vm.SaveProjectPriceDetails = SaveProjectPriceDetails;\r\n\r\n\r\n vm.Project = {};\r\n vm.Project.BuiltupArea = '0';\r\n vm.Project.RatePerUnitArea = '0';\r\n vm.Project.TotalBasicCost = '0';\r\n vm.Project.BookingPrice = '0';\r\n vm.Project.TotalCost = '0';\r\n\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.RateApprovalList=[];\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n // ApprovalFor: 'Rate',\r\n // ProjectId : CRMProjectId\r\n // };\r\n // ProjectDetailsApprovalService.GetApprovedProjectforPriceSetup(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ApprovedProjectDetails = res.data;\r\n\r\n\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n };\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n // LoadTiers(CRMProjectId);\r\n\r\n var rateaprvlinputdata = {\r\n CompanyId: CompanyId,\r\n Status: '3',\r\n ApprovalFor: 'Rate'\r\n };\r\n projectDetailsSetupService.GetProjectDetailsReadByStatus(rateaprvlinputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RateApprovalList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n // vm.RateApprovalList\r\n }\r\n\r\n // function LoadTiers(iProjectId, callback) {\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n // ApprovalFor: 'Location',\r\n // ProjectId: iProjectId\r\n // };\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n\r\n function LoadAreaValue(iTierId, callback) {\r\n\r\n var bltuparea = JSON.parse(vm.Project.selectedTier.AreaUnits);\r\n vm.Project.RatePerUnitArea = vm.Project.selectedTier.RatePerUnit;\r\n vm.Project.TotalBasicCost = '0';\r\n vm.Project.BookingPrice = vm.Project.selectedTier.BookingPercentage;\r\n\r\n for (var i = 0; i < Object.keys(bltuparea).length; i++) {\r\n if (Object.keys(bltuparea)[i] == 'Super Builtup Area') {\r\n vm.Project.BuiltupArea = (Object.values(bltuparea)[i]);\r\n }\r\n }\r\n }\r\n\r\n function LoadTotalcost() {\r\n vm.Project.TotalBasicCost = vm.Project.RatePerUnitArea * vm.Project.BuiltupArea;\r\n vm.Project.BookingPrice = (vm.Project.TotalBasicCost * 10) / 100;\r\n vm.Project.TotalCost = (vm.Project.TotalBasicCost == undefined ? 0 : parseFloat(vm.Project.TotalBasicCost)) + (vm.Project.StatutoryCost == undefined ? 0 : parseFloat(vm.Project.StatutoryCost));\r\n }\r\n\r\n function LoadTotalStatutorycost() {\r\n\r\n var StatutoryCost = (vm.Project.UDS == undefined ? 0 : parseFloat(vm.Project.UDS)) + (vm.Project.RateofLand == undefined ? 0 : parseFloat(vm.Project.RateofLand))\r\n + (vm.Project.CostofLand == undefined ? 0 : parseFloat(vm.Project.CostofLand)) + (vm.Project.CostofConstruction == undefined ? 0 : parseFloat(vm.Project.CostofConstruction))\r\n + (vm.Project.DTPCharges == undefined ? 0 : parseFloat(vm.Project.DTPCharges)) + (vm.Project.StampdutyCharges == undefined ? 0 : parseFloat(vm.Project.StampdutyCharges))\r\n + (vm.Project.ParkingCharges == undefined ? 0 : parseFloat(vm.Project.ParkingCharges)) + (vm.Project.ThreePhaseCharges == undefined ? 0 : parseFloat(vm.Project.ThreePhaseCharges))\r\n + (vm.Project.DTCPApprovalCharges == undefined ? 0 : parseFloat(vm.Project.DTCPApprovalCharges)) + (vm.Project.SewerageWaterCharges == undefined ? 0 : parseFloat(vm.Project.SewerageWaterCharges))\r\n + (vm.Project.DrinkingWaterCharges == undefined ? 0 : parseFloat(vm.Project.DrinkingWaterCharges)) + (vm.Project.AdvanceMaintenance == undefined ? 0 : parseFloat(vm.Project.AdvanceMaintenance))\r\n + (vm.Project.LegalCharges == undefined ? 0 : parseFloat(vm.Project.LegalCharges)) + (vm.Project.SolarPwrGeneration == undefined ? 0 : parseFloat(vm.Project.SolarPwrGeneration))\r\n + (vm.Project.SolarWaterHeater == undefined ? 0 : parseFloat(vm.Project.SolarWaterHeater)) + (vm.Project.ClubMemberCharges == undefined ? 0 : parseFloat(vm.Project.ClubMemberCharges));\r\n\r\n vm.Project.StatutoryCost = StatutoryCost;\r\n vm.Project.TotalCost = (vm.Project.TotalBasicCost == undefined ? 0 : parseFloat(vm.Project.TotalBasicCost)) + (vm.Project.StatutoryCost == undefined ? 0 : parseFloat(vm.Project.StatutoryCost));\r\n }\r\n\r\n function SaveProjectPriceDetails(project) {\r\n\r\n var StatryDetails = {\r\n 'UDS': (vm.Project.UDS == undefined ? 0 : parseFloat(vm.Project.UDS)),\r\n 'RateofLand': (vm.Project.RateofLand == undefined ? 0 : parseFloat(vm.Project.RateofLand)),\r\n 'CostofLand': (vm.Project.CostofLand == undefined ? 0 : parseFloat(vm.Project.CostofLand)),\r\n 'CostofConstruction': (vm.Project.CostofConstruction == undefined ? 0 : parseFloat(vm.Project.CostofConstruction)),\r\n 'DTPCharges': (vm.Project.DTPCharges == undefined ? 0 : parseFloat(vm.Project.DTPCharges)),\r\n 'StampdutyCharges': (vm.Project.StampdutyCharges == undefined ? 0 : parseFloat(vm.Project.StampdutyCharges)),\r\n 'ParkingCharges': (vm.Project.ParkingCharges == undefined ? 0 : parseFloat(vm.Project.ParkingCharges)),\r\n 'ThreePhaseCharges': (vm.Project.ThreePhaseCharges == undefined ? 0 : parseFloat(vm.Project.ThreePhaseCharges)),\r\n 'DTCPApprovalCharges': (vm.Project.DTCPApprovalCharges == undefined ? 0 : parseFloat(vm.Project.DTCPApprovalCharges)),\r\n 'SewerageWaterCharges': (vm.Project.SewerageWaterCharges == undefined ? 0 : parseFloat(vm.Project.SewerageWaterCharges)),\r\n 'DrinkingWaterCharges': (vm.Project.DrinkingWaterCharges == undefined ? 0 : parseFloat(vm.Project.DrinkingWaterCharges)),\r\n 'AdvanceMaintenance': (vm.Project.AdvanceMaintenance == undefined ? 0 : parseFloat(vm.Project.AdvanceMaintenance)),\r\n 'LegalCharges': (vm.Project.LegalCharges == undefined ? 0 : parseFloat(vm.Project.LegalCharges)),\r\n 'SolarPwrGeneration': (vm.Project.SolarPwrGeneration == undefined ? 0 : parseFloat(vm.Project.SolarPwrGeneration)),\r\n 'SolarWaterHeater': (vm.Project.SolarWaterHeater == undefined ? 0 : parseFloat(vm.Project.SolarWaterHeater)),\r\n 'ClubMemberCharges': (vm.Project.ClubMemberCharges == undefined ? 0 : parseFloat(vm.Project.ClubMemberCharges))\r\n }\r\n\r\n var stpId = 0;\r\n\r\n if (vm.isEditing)\r\n stpId = vm.ProjectPriceDetails.SetupId;\r\n else\r\n stpId = vm.Project.selectedTier.SetupId;\r\n\r\n var inputdata = {\r\n SetupId: stpId,\r\n CompanyId: CompanyId,\r\n RatePerUnit: vm.Project.RatePerUnitArea,\r\n BookingPercentage: vm.Project.BookingPrice,\r\n StatutoryDetails: JSON.stringify(StatryDetails),\r\n StatutoryCost: vm.Project.StatutoryCost,\r\n TotalCost: vm.Project.TotalCost,\r\n Process: 'Save'\r\n }\r\n\r\n projectDetailsSetupService.SaveRemoveProjectPriceSetup(inputdata).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"Location Price Setup\");\r\n vm.isFormOpen = false;\r\n Init();\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n function EditProject(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n\r\n vm.ProjectPriceDetails = angular.copy(row);\r\n\r\n // for (var i in vm.ApprovedProjectDetails) {\r\n // if (vm.ApprovedProjectDetails[i].ProjectId == vm.ProjectPriceDetails.ProjectId) {\r\n // vm.Project.selectedProject = vm.ApprovedProjectDetails[i];\r\n // }\r\n // }\r\n\r\n // LoadTiers(vm.Project.selectedProject.ProjectId, function () {\r\n LoadTiers(CRMProjectId, function () {\r\n for (var i in vm.TierDetails) {\r\n if (vm.TierDetails[i].TierId === vm.ProjectPriceDetails.TierId) {\r\n vm.Project.selectedTier = vm.TierDetails[i];\r\n // vm.Project.selectedTier.SetupId = vm.TierDetails[i].SetupId;\r\n }\r\n }\r\n });\r\n\r\n var bltuparea = JSON.parse(vm.ProjectPriceDetails.AreaUnits);\r\n\r\n for (var i = 0; i < Object.keys(bltuparea).length; i++) {\r\n if (Object.keys(bltuparea)[i] == 'Super Builtup Area') {\r\n vm.Project.BuiltupArea = (Object.values(bltuparea)[i]);\r\n }\r\n }\r\n\r\n vm.Project.RatePerUnitArea = vm.ProjectPriceDetails.RatePerUnit;\r\n vm.Project.BookingPrice = vm.ProjectPriceDetails.BookingPercentage;\r\n vm.Project.TotalCost = vm.ProjectPriceDetails.TotalCost;\r\n vm.Project.StatutoryCost = vm.ProjectPriceDetails.StatutoryCost;\r\n vm.Project.TotalBasicCost = vm.Project.RatePerUnitArea * vm.Project.BuiltupArea;\r\n\r\n\r\n var StatDetails = JSON.parse(vm.ProjectPriceDetails.StatutoryDetails);\r\n\r\n vm.Project.UDS = StatDetails.UDS;\r\n vm.Project.RateofLand = StatDetails.RateofLand;\r\n vm.Project.CostofLand = StatDetails.CostofLand;\r\n vm.Project.CostofConstruction = StatDetails.CostofConstruction;\r\n vm.Project.StampdutyCharges = StatDetails.StampdutyCharges;\r\n vm.Project.ParkingCharges = StatDetails.ParkingCharges;\r\n vm.Project.ThreePhaseCharges = StatDetails.ThreePhaseCharges;\r\n vm.Project.DTPCharges = StatDetails.DTPCharges;\r\n vm.Project.DTCPApprovalCharges = StatDetails.DTCPApprovalCharges;\r\n vm.Project.SewerageWaterCharges = StatDetails.SewerageWaterCharges;\r\n vm.Project.DrinkingWaterCharges = StatDetails.DrinkingWaterCharges;\r\n vm.Project.AdvanceMaintenance = StatDetails.AdvanceMaintenance;\r\n vm.Project.LegalCharges = StatDetails.LegalCharges;\r\n vm.Project.SolarPwrGeneration = StatDetails.SolarPwrGeneration;\r\n vm.Project.SolarWaterHeater = StatDetails.SolarWaterHeater;\r\n vm.Project.ClubMemberCharges = StatDetails.ClubMemberCharges;\r\n\r\n }\r\n\r\n function DeleteProject(row) {\r\n\r\n vm.ProjectPriceDetails = angular.copy(row);\r\n\r\n var inputdata = {\r\n SetupId: vm.ProjectPriceDetails.SetupId,\r\n CompanyId: CompanyId,\r\n RatePerUnit: 0,\r\n BookingPercentage: 0,\r\n StatutoryDetails: '',\r\n StatutoryCost: 0,\r\n TotalCost: 0,\r\n Process: 'Delete'\r\n }\r\n\r\n projectDetailsSetupService.SaveRemoveProjectPriceSetup(inputdata).then(function (res) {\r\n $rootScope.showToaster('success', 'Deleted Successfully', \"Location Price Setup\");\r\n vm.isFormOpen = false;\r\n Init();\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId, TileId:'ProjectPriceSetup',SetupType:''});\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectDetailsPriceSetup_New')\r\n .controller('CRMProjectDetailsPriceSetup_NewCtrl', CRMProjectDetailsPriceSetup_NewCtrl);\r\n\r\n /** @ngInject */\r\n function CRMProjectDetailsPriceSetup_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectDetailsSetupService, CRM_GstSettingService, projectCreationService, StateService, AuthenticationService, CRM_ProjectDetailsPriceSetupNewService, CRM_StatutoryMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n\r\n\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.EditProjectPrice = EditProjectPrice;\r\n vm.DeleteProjectPrice = DeleteProjectPrice;\r\n\r\n vm.TileBack = TileBack;\r\n vm.Cancel = Cancel;\r\n vm.Create = Create;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.ReadAreaDetails = ReadAreaDetails;\r\n vm.CostCalculation = CostCalculation;\r\n // vm.StatutoryCalculation = StatutoryCalculation;\r\n vm.ShowStatutoryPercentage = ShowStatutoryPercentage;\r\n vm.ShowStatutoryPercentageNew = ShowStatutoryPercentageNew;\r\n\r\n vm.SaveProjectPriceDetails = SaveProjectPriceDetails;\r\n\r\n vm.Project = {};\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.RateApprovalList = [];\r\n vm.isStatutoryDetails = false;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n vm.LoadStatutoryDetails = LoadStatutoryDetails;\r\n vm.LoadAllTiers = LoadAllTiers;\r\n vm.GSTSettingsList = [];\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n\r\n vm.StatutoryTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Lump Sum' }, { 'Value': 'Percentage' }];\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n\r\n var rateaprvlinputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Rate',\r\n Status: '3'\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(rateaprvlinputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.RateApprovalList = res1.data;\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetCountryCurrency_ByProjectId(inputcountry).then(function (resCurrency) {\r\n if (resCurrency.status === 200) {\r\n vm.CurrencyDetails = resCurrency.data;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n };\r\n\r\n projectDetailsSetupService.ReadApprovedBasicLocations_ForPrice(inputdata).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.LocationList = res2.data;\r\n\r\n var inputGst = {\r\n CompanyId: CompanyId,\r\n GSTFor: 'TotalBasic',\r\n }\r\n CRM_GstSettingService.GetReadReadGSTSettings(inputGst).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.GSTSettingsList = res3.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Payment Schedule Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n }\r\n\r\n function LoadAllTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n if (!vm.isEditing)\r\n LoadTiers(iBasicLocationId, function (callback) {\r\n if (callback)\r\n callback();\r\n });\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n // function LoadStatutoryDetails(iBasicLocationId, callback) {\r\n // if (iBasicLocationId) {\r\n\r\n // var inputStatutory = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: iBasicLocationId\r\n // }\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputStatutory).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n // vm.isStatutoryDetails = true;\r\n // for (var i in vm.StatutorySettingsList) {\r\n\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // }\r\n // }\r\n\r\n // if (!vm.isEditing)\r\n // LoadTiers(iBasicLocationId, function (callback) {\r\n // if (callback)\r\n // callback();\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n // else { \r\n // vm.Project.selectedLocation = null;\r\n // vm.BasicLocationList = [];\r\n // vm.Project.Code = '';\r\n // vm.ApartmentList = [];\r\n // vm.isLoadApartmentType = false;\r\n // vm.isStatutoryDetails = false;\r\n // }\r\n // }\r\n\r\n function LoadStatutoryDetails(iPropertyTypeId, callback) {\r\n if (iPropertyTypeId) {\r\n\r\n var inputStatutory = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: iPropertyTypeId\r\n }\r\n\r\n vm.StatutorySettingsList = [];\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputStatutory).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n if (vm.StatutorySettingsList.length > 0) {\r\n vm.isStatutoryDetails = true;\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n\r\n // vm.StatutoryTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Lump Sum' }, { 'Value': 'Percentage' }];\r\n\r\n var stTypeList = [];\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == '') {\r\n stTypeList = [{ 'Value': 'Lump Sum' }];\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else {\r\n stTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Percentage' }];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n vm.StatutorySettingsList[i].TypeList = stTypeList;\r\n vm.StatutorySettingsList[i].selectedType = stTypeList[0];\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].TypeList = [];\r\n }\r\n\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n }\r\n\r\n // if (!vm.isEditing)\r\n // LoadTiers(iBasicLocationId, function (callback) {\r\n // if (callback)\r\n // callback();\r\n // });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n // vm.StatutorySettingsList = [];\r\n // vm.isStatutoryDetails = false;\r\n // vm.Project.Code = '';\r\n // vm.BasicLocationList = [];\r\n\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (!vm.isEditing)\r\n ResetAllValues();\r\n\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n if (!vm.isEditing) {\r\n\r\n // var inputcountry = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId\r\n // }\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // // vm.isStatutoryDetails = true;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].SqftRate = 0;\r\n // vm.StatutorySettingsList[i].SqftValue = 0;\r\n // vm.StatutorySettingsList[i].Lumpsum = 0;\r\n // vm.StatutorySettingsList[i].Percentage = 0;\r\n // vm.StatutorySettingsList[i].PercentageValue = 0;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // }\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n ResetAllValues();\r\n if (iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n // if(vm.NewBasicLocationList.length == i)\r\n ReadAreaDetails(iTierId);\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n }\r\n }\r\n\r\n function ReadAreaDetails(iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n Status: '4',\r\n TierId: iTierId,\r\n }\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.CommonArea = 0;\r\n vm.Project.SuperBuiltUpArea = 0;\r\n vm.Project.CarpetArea = 0;\r\n\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.RateofLand = 0;\r\n\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n\r\n\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetProjectDetailsandPrice_ForTier(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectAreaDetails = res.data;\r\n\r\n if (vm.ProjectAreaDetails.length > 0) {\r\n if (vm.ProjectAreaDetails[0].SalableArea > 0) {\r\n vm.Project.SalableArea = vm.ProjectAreaDetails[0].SalableArea;\r\n vm.Project.UDSArea = vm.ProjectAreaDetails[0].UDSArea;\r\n vm.Project.CommonArea = vm.ProjectAreaDetails[0].CommonArea;\r\n vm.Project.SuperBuiltUpArea = vm.ProjectAreaDetails[0].SuperBuiltUpArea;\r\n vm.Project.CarpetArea = vm.ProjectAreaDetails[0].CarpetArea;\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.ProjectAreaDetails[0].UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n LoadStatutoryDetails(vm.ProjectAreaDetails[0].PropertyTypeId);\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n // CRM_ProjectDetailsPriceSetupNew\r\n // GetProjectDetailsandPrice_ForTier\r\n }\r\n\r\n function ResetAllValues() {\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n vm.Project.StatutoryCost = 0;\r\n vm.Project.TotalGST = 0;\r\n vm.Project.TotalCost = 0;\r\n }\r\n\r\n function CostCalculation() {\r\n // debugger\r\n vm.Project.TotalBasicCost = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.Project.RatePerUnit)).toFixed(2);\r\n vm.Project.CostofLand = (parseFloat(vm.Project.UDSArea) * parseFloat(vm.Project.RateofLand)).toFixed(2);\r\n vm.Project.CostofConstruction = (parseFloat(vm.Project.TotalBasicCost) - parseFloat(vm.Project.CostofLand)).toFixed(2);\r\n vm.Project.BookingAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.BookingPercentage)) / 100).toFixed(2);\r\n vm.Project.DiscountAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.DiscountPercentage)) / 100).toFixed(2);\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n }\r\n\r\n // ShowStatutoryPercentage(vm.StatutorySettingsList[i].StatutoryId, vm.StatutorySettingsList[i].selectedType.Value);\r\n }\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (vm.Project.TotalBasicCost * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(totalbasicgst);\r\n }\r\n\r\n // StatutoryCalculation();\r\n vm.Project.TotalGST = TotalGST.toFixed(2);\r\n vm.Project.StatutoryCost = TotalStatutoryCost.toFixed(2);\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n }\r\n\r\n // function StatutoryCalculation() {\r\n\r\n // var TotalStatutoryCost = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // if (vm.StatutorySettingsList[i].ShowPercentage) {\r\n // TotalStatutoryCost = TotalStatutoryCost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n // }\r\n // else {\r\n // TotalStatutoryCost = TotalStatutoryCost + parseFloat(vm.StatutorySettingsList.LumpSum);\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.Project.StatutoryCost = TotalStatutoryCost;\r\n // vm.Project.TotalCost = vm.Project.TotalBasicCost + vm.Project.StatutoryCost;\r\n // }\r\n\r\n function ShowStatutoryPercentage(iStatutoryId, Type) {\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].ShowPercentage = true;\r\n\r\n vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].RateAmount));\r\n\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n }\r\n // }\r\n }\r\n }\r\n vm.Project.TotalGST = TotalGST.toFixed(2);\r\n vm.Project.StatutoryCost = TotalStatutoryCost.toFixed(2);\r\n vm.Project.TotalCost = (vm.Project.TotalBasicCost + vm.Project.StatutoryCost + vm.Project.TotalGST).toFixed(2);\r\n }\r\n\r\n function ShowStatutoryPercentageNew(iStatutoryId, Type) {\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (Type == undefined) {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function SaveProjectPriceDetails() {\r\n\r\n var statDetails;\r\n\r\n var StatutoryDetails = [];\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var val1 = 0;\r\n var val2 = 0;\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n val1 = vm.StatutorySettingsList[i].SqftRate;\r\n val2 = vm.StatutorySettingsList[i].SqftValue;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n val2 = vm.StatutorySettingsList[i].Lumpsum;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n val1 = vm.StatutorySettingsList[i].Percentage;\r\n val2 = vm.StatutorySettingsList[i].PercentageValue;\r\n }\r\n\r\n // if(vm.StatutorySettingsList[i].selectedType.Value == '')\r\n\r\n statDetails = {\r\n 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId,\r\n 'Type': vm.StatutorySettingsList[i].selectedType.Value,\r\n 'RateAmount': val1,\r\n 'Percentage': vm.StatutorySettingsList[i].TaxPercentage,\r\n 'Amount': val2,\r\n 'GSTAmount': vm.StatutorySettingsList[i].GSTAmount\r\n }\r\n\r\n StatutoryDetails.push(statDetails);\r\n }\r\n }\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n RatePerUnit: vm.Project.RatePerUnit,\r\n RateofLand: vm.Project.RateofLand,\r\n BookingPercentage: vm.Project.BookingPercentage,\r\n BookingAmount: vm.Project.BookingAmount,\r\n DiscountPercentage: vm.Project.DiscountPercentage,\r\n DiscountAmount: vm.Project.DiscountAmount,\r\n StatutoryDetails: JSON.stringify(StatutoryDetails),\r\n StatutoryCost: vm.Project.StatutoryCost,\r\n TotalCost: vm.Project.TotalCost,\r\n Process: 'Save',\r\n Status: '3',\r\n CreatedBy: loggeduser.UserId\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata2).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Project = {};\r\n // Init();\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.Project = {};\r\n }\r\n\r\n function TileBack() {\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'NewCopyPriceInfoTileSetup', SetupType: '' });\r\n }\r\n\r\n function EditProjectPrice(row) {\r\n vm.isEditing = true;\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n\r\n for (var b in vm.UnitList) {\r\n\r\n if (vm.UnitList[b].UnitId == vm.Project.UnitId) {\r\n // vm.Project.selectedMasterunit.UnitName = vm.UnitList[b].UnitName;\r\n vm.Project.selectedMasterunit = vm.UnitList[b];\r\n }\r\n }\r\n\r\n // vm.UnitList\r\n\r\n // vm.Project.selectedMasterunit.UnitName\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: vm.Project.PropertyTypeId\r\n }\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n vm.isStatutoryDetails = true;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function (callback) {\r\n if (vm.BasicLocationList) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1).toString()]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n if (sdtls.length > 0) {\r\n\r\n for (var j in vm.StatutoryTypeList) {\r\n if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n }\r\n }\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n vm.StatutorySettingsList[i].Lumpsum = sdtls[0].Amount;\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n vm.StatutorySettingsList[i].Percentage = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * sdtls[0].Percentage) / 100;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * sdtls[0].Percentage) / 100;\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // // vm.StatutorySettingsList[i].TaxPercentage = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // else if (sdtls[0].Type == 'Percentage') {\r\n\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(totalbasicgst)).toFixed(2);\r\n }\r\n\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n\r\n }\r\n // }\r\n // });\r\n\r\n\r\n }\r\n\r\n if (!callback)\r\n callback;\r\n });\r\n }\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n // }\r\n // });\r\n\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.LocationId,\r\n // ApprovalFor: 'Location',\r\n // TierId: row.TierId,\r\n // };\r\n\r\n // projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SavedLocTierDetails = res.data;\r\n // var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n // var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n // for (var j in vm.BasicLocationList[i].NewLocation) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n // }\r\n // }\r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n\r\n // var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true; \r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n // }\r\n // }\r\n // });\r\n\r\n\r\n // }\r\n // });\r\n }\r\n\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function DeleteProjectPrice(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: row.LocationId,\r\n TierId: row.TierId,\r\n RatePerUnit: 0,\r\n RateofLand: 0,\r\n BookingPercentage: 0,\r\n BookingAmount: 0,\r\n DiscountPercentage: 0,\r\n DiscountAmount: 0,\r\n StatutoryDetails: '',\r\n StatutoryCost: 0,\r\n TotalCost: 0,\r\n Process: 'Delete',\r\n Status: '3',\r\n CreatedBy: 0\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRMProjectDetailsRejection')\r\n .controller('CRMProjectDetailsRejectionCtrl', CRMProjectDetailsRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function CRMProjectDetailsRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, projectCreationService, CRM_parkingLocationSetupService, ProjectDetailsApprovalService, projectDetailsSetupService, CRM_projectInitiationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n // $rootScope.isLogin = false;\r\n\r\n\r\n vm.SaveRejection = SaveRejection;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n \r\n\r\n\r\n // vm.SaveRejection = function () {\r\n // var objReject = {\r\n // CompanyId: items.CompanyId,\r\n // ProjectId: items.ProjectId,\r\n // Status: items.Status,\r\n // RejectionNotes: {\r\n // \"Notes\": vm.reject.RejectionNotes,\r\n // \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n // \"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n // }\r\n // }\r\n\r\n // projectCreationService.AddRejectionNotes(objReject).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Project Rejection\");\r\n // $uibModalInstance.close();\r\n // $state.go($rootScope.previousState);\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // }\r\n function SaveRejection(approval) {\r\n\r\n\r\n var StatusId = '6';\r\n\r\n var iLocationDetails = {};\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].selectedTier) {\r\n iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n }\r\n }\r\n\r\n var iParkingLocationId = null;\r\n var iParkingTierId = null;\r\n var iParkingLocationDetails = {};\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n iParkingLocationId = vm.Project.selectedParkingLocation.LocationId;\r\n iParkingTierId = vm.ParkingBasicLocationList[vm.ParkingBasicLocationList.length - 1].selectedParkingTier.TierId;\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier) {\r\n iParkingLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.ParkingBasicLocationList[i].selectedParkingTier.TierId;\r\n }\r\n }\r\n }\r\n\r\n var iUploadfiles = [];\r\n\r\n var iUploadfiles = {\r\n ProjectUpload: JSON.stringify(vm.selectedProjectFileList),\r\n ParkingUpload: JSON.stringify(vm.selectedParkFileList),\r\n };\r\n\r\n var inputData = {\r\n SetupId: vm.Project.SetupId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n LocationDetails: JSON.stringify(iLocationDetails),\r\n PropertyTypeId: vm.Project.selectedApartment.Id,\r\n UnitId: vm.Project.selectedMasterunit.UnitId,\r\n Uploadfiles: '',\r\n ParkingLocationId: iParkingLocationId,\r\n ParkingTierId: iParkingTierId,\r\n ParkingLocationDetails: JSON.stringify(iParkingLocationDetails),\r\n CarpetArea: vm.Project.CarpetArea,\r\n CommonArea: vm.Project.CommonArea,\r\n SalableArea: vm.Project.SalableArea,\r\n SuperBuiltUpArea: vm.Project.SuperBuiltUpArea,\r\n UDSArea: vm.Project.UDSArea,\r\n FlatFacingId: vm.Project.selectedFlatFacing.Id,\r\n FlatFeatureId: vm.Project.selectedLocationFeature.Id,\r\n Status: StatusId,\r\n Process: 'Save',\r\n CreatedBy: loggeduser.UserId,\r\n RejectionRemarks: vm.Project.RejectionRemarks,\r\n }\r\n\r\n var formData = new FormData();\r\n\r\n\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n // var StatusId = '6';\r\n // var inputData = {\r\n // Status: StatusId,\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // RejectionRemarks: vm.Project.RejectionRemarks,\r\n // }\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Project Rejection\");\r\n $uibModalInstance.close();\r\n // $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });;\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_RepeatedTaskMaster')\r\n .controller('CRM_RepeatedTaskMasterCtrl', CRM_RepeatedTaskMasterCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_RepeatedTaskMasterCtrl($scope, $http, $rootScope, lodash, dialogs, $filter, $state, EmployeeService, CRM_TaskSubjectMasterService, CRM_RepeatedTaskMasterService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.Create = Create;\r\n vm.SubjectChanged = SubjectChanged;\r\n vm.RepeatByChanged = RepeatByChanged;\r\n // vm.EditProject = EditProject;\r\n vm.SaveTask = SaveTask;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n vm.TileBack = TileBack;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var EmployeeId = 93;\r\n \r\n\r\n\r\n vm.ActivityList = [];\r\n vm.Task = {};\r\n\r\n Init();\r\n\r\n //////////////\r\n\r\n function Init() {\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n EmployeeId: 93\r\n }\r\n\r\n vm.WeeklyList = [{ \"Id\": \"1\", \"Day\": \"Monday\" }, { \"Id\": 2, \"Day\": \"Tuesday\" }, { \"Id\": 3, \"Day\": \"Wednesday\" }, { \"Id\": 4, \"Day\": \"Thursday\" },\r\n { \"Id\": 5, \"Day\": \"Friday\" }, { \"Id\": 6, \"Day\": \"Saturday\" }, { \"Id\": 7, \"Day\": \"Sunday\" }];\r\n\r\n CRM_RepeatedTaskMasterService.GetAllRepeatedActivity(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RepeatedActivityList = res.data;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Process: 'Subject',\r\n SubjectId: 0\r\n };\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.SubjectList = res1.data;\r\n vm.ActivityList = [];\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n CRM_RepeatedTaskMasterService.GetWorkHours(CompanyId).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.WorkHours = res2.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n CRM_RepeatedTaskMasterService.GetRepeatedByMaster(CompanyId).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.RepeatByList = res3.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function SubjectChanged(SubjectId, callback) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Process: 'Acitvity',\r\n SubjectId: SubjectId\r\n };\r\n\r\n vm.Task.SelectedActivity = null;\r\n vm.ActivityList = [];\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ActivityList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function RepeatByChanged(RepeatById, callback) {\r\n\r\n if (RepeatById == null || RepeatById == undefined) {\r\n vm.isTime1 = false;\r\n vm.isTime2 = false;\r\n vm.isDate = false;\r\n vm.isDay = false;\r\n }\r\n else {\r\n if (RepeatById == 1) {\r\n vm.isTime1 = true;\r\n vm.isTime2 = false;\r\n vm.isDate = false;\r\n vm.isDay = false;\r\n }\r\n else if (RepeatById == 2) {\r\n vm.isDay = true;\r\n vm.isTime1 = true;\r\n vm.isTime2 = false;\r\n vm.isDate = false;\r\n\r\n }\r\n else if (RepeatById == 3) {\r\n vm.isDate = true;\r\n vm.isTime1 = true;\r\n vm.isTime2 = false;\r\n vm.isDay = false;\r\n }\r\n else if (RepeatById == 4) {\r\n // vm.isTime1 = true;\r\n // vm.isTime2 = true;\r\n // vm.isDate = false;\r\n // vm.isDay = false;\r\n }\r\n else if (RepeatById == 5) {\r\n vm.isTime1 = true;\r\n vm.isTime2 = true;\r\n vm.isDate = false;\r\n vm.isDay = false;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n // function EditProject(row) {\r\n\r\n // vm.isFormOpen = true;\r\n // vm.isEditing = true;\r\n // // debugger;\r\n // vm.Project = angular.copy(row);\r\n\r\n // vm.BasicLocationList = JSON.parse(vm.Project.LocationDetails);\r\n // vm.AllRequiredDetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n // }\r\n\r\n function Cancel() {\r\n vm.Task = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function SaveTask(Task) {\r\n\r\n var TimeValues;\r\n var JsonTimeValues;\r\n\r\n if (vm.Task.SelectedRepeatBy.RepeatById == 1) {\r\n TimeValues =\r\n {\r\n \"Id\": vm.Task.SelectedRepeatBy.RepeatById,\r\n \"Values\":\r\n {\r\n \"FromTime1\": $filter(\"date\")(vm.Task.FromTime1, \"HH:mm\"),\r\n \"ToTime1\": $filter(\"date\")(vm.Task.ToTime1, \"HH:mm\")\r\n }\r\n }\r\n }\r\n else if (vm.Task.SelectedRepeatBy.RepeatById == 2) {\r\n\r\n }\r\n else if (vm.Task.SelectedRepeatBy.RepeatById == 3) {\r\n\r\n }\r\n else if (vm.Task.SelectedRepeatBy.RepeatById == 4) {\r\n\r\n }\r\n else if (vm.Task.SelectedRepeatBy.RepeatById == 5) {\r\n\r\n }\r\n\r\n var inputData = {\r\n RepActivityId: 0,\r\n CompanyId: CompanyId,\r\n EmployeeId: 93,\r\n SubjectId: vm.Task.SelectedSubject.SubjectId,\r\n ActivityId: vm.Task.SelectedActivity.ActivityId,\r\n RepeatById: vm.Task.SelectedRepeatBy.RepeatById,\r\n RepValues: JSON.stringify(TimeValues),\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n\r\n CRM_RepeatedTaskMasterService.SaveRemoveRepeatedActivity(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Repeated Task Master\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Repeated Task Master\");\r\n });\r\n }\r\n\r\n // vm.ProjectApproval = function (approval) {\r\n\r\n // var StatusId;\r\n // if (approval == 'Approve')\r\n // StatusId = 4;\r\n // else\r\n // StatusId = 7;\r\n\r\n // var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n // var inputData = {\r\n // SetupId: vm.Project.SetupId,\r\n // Status: StatusId,\r\n // ApprovalFor: 'Location',\r\n // CreatedBy: loggeduser.UserId\r\n // };\r\n\r\n // ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.isLoading = false;\r\n // vm.isFormOpen = false;\r\n // if (approval == 'Approve')\r\n // $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n // else\r\n // $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n // Init();\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_Task');\r\n }\r\n }\r\n})();\n\r\n\r\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_AddBuyerEnquiry')\r\n .controller('CRM_AddBuyerEnquiryCtrl', CRM_AddBuyerEnquiryCtrl);\r\n\r\n function CRM_AddBuyerEnquiryCtrl($scope, $filter, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_AddBuyerEnquiryService, CountryService, StateService, CityService,\r\n AreaService, AuthenticationService, CRM_ProjectPropertyViewService, projectDetailsSetupService, CRM_CopyAreaDetailsService, CRM_ProjectDetailsPriceSetupNewService) {\r\n\r\n var vm = this\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n // End of Pagination code\r\n\r\n\r\n //Tab function\r\n $scope.tab = 1;\r\n\r\n $scope.setTab = function (newTab) {\r\n $scope.tab = newTab;\r\n };\r\n\r\n $scope.isSet = function (tabNum) {\r\n return $scope.tab === tabNum;\r\n };\r\n\r\n //End Tab Function\r\n vm.Enquiry = {};\r\n\r\n\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n vm.LoadCaste = LoadCaste;\r\n vm.LoadCountry = LoadCountry;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n vm.getCompanyStateListByCountryId = getCompanyStateListByCountryId;\r\n vm.getCompanyCityListByStateId = getCompanyCityListByStateId;\r\n vm.getCompanyAreaListByCityId = getCompanyAreaListByCityId;\r\n vm.getDesignation = getDesignation;\r\n vm.GetAge = GetAge;\r\n vm.SaveBuyerDetails = SaveBuyerDetails;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.BuyerImage = null;\r\n vm.ExtBuyerImage = null;\r\n vm.isEditingProPic = false;\r\n $scope.photoChanged = photoChanged;\r\n vm.editProPic = editProPic;\r\n vm.BuyerList = [];\r\n vm.CasteList = [];\r\n vm.EditBuyer = EditBuyer;\r\n vm.DeleteBuyer = DeleteBuyer;\r\n // vm.LoadBasicLocations = LoadBasicLocations;\r\n vm.LoadInputDetails = LoadInputDetails;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.LoadAreaDetails = LoadAreaDetails;\r\n vm.TileBack=TileBack;\r\n vm.TileBackhide=true;\r\n // vm.HideSpouse=HideSpouse;\r\n // vm.SpouseNameHide=true;\r\n $scope.slider = {\r\n minValue: 0,\r\n maxValue: 2000000,\r\n options: {\r\n floor: 0,\r\n ceil: 2000000,\r\n step: 10000\r\n }\r\n };\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputRead = {\r\n CompanyId: CompanyId,\r\n ConditionValues: '',\r\n }\r\n\r\n CRM_AddBuyerEnquiryService.GetSalesEnquiryMaster(inputRead).then(function (resGrid) {\r\n if (resGrid.status === 200) {\r\n vm.BuyerList = resGrid.data;\r\n\r\n var inputdata = {\r\n ResultFor: 'BloodGroup',\r\n };\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (resBG) {\r\n if (resBG.status === 200) {\r\n vm.BloodGroupList = resBG.data;\r\n\r\n inputdata.ResultFor = 'Religion';\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (resRlg) {\r\n if (resRlg.status === 200) {\r\n vm.ReligionList = resRlg.data;\r\n\r\n inputdata.ResultFor = 'EnquirySource';\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (resSrc) {\r\n if (resSrc.status === 200) {\r\n vm.EnquirySourceList = resSrc.data;\r\n\r\n inputdata.ResultFor = 'OrganizationType';\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (resOrgType) {\r\n if (resOrgType.status === 200) {\r\n vm.OrganizationTypeList = resOrgType.data;\r\n\r\n inputdata.ResultFor = 'Community';\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (rescommunity) {\r\n if (rescommunity.status === 200) {\r\n vm.CommunityList = rescommunity.data;\r\n\r\n inputdata.ResultFor = 'Industry';\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (resIndustry) {\r\n if (resIndustry.status === 200) {\r\n vm.IndustryList = resIndustry.data;\r\n\r\n var inputdataPrj = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllPriceApprovedProjects_ForTiles(inputdataPrj).then(function (resProjects) {\r\n if (resProjects.status === 200) {\r\n vm.ProjectsList = resProjects.data;\r\n LoadCountry();\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n $scope.open2 = function () {\r\n $scope.popup2.opened = true;\r\n };\r\n\r\n $scope.popup2 = {\r\n opened: false\r\n };\r\n\r\n function GetAge(iDOB, callback) {\r\n var now = new Date();\r\n\r\n var nowMonth = now.getUTCMonth() + 1;\r\n var nowDay = now.getUTCDate();\r\n var nowYear = now.getUTCFullYear();\r\n\r\n\r\n var myMonth_birth = iDOB.getUTCMonth();\r\n var myDay_birth = iDOB.getUTCDate();\r\n var myYear_birth = iDOB.getUTCFullYear();\r\n\r\n var birthAge = nowYear - myYear_birth - 1;\r\n\r\n if (nowMonth >= myMonth_birth)\r\n if (nowDay >= myDay_birth)\r\n birthAge += 1;\r\n\r\n if (birthAge < 18) {\r\n vm.Enquiry.Age = '';\r\n vm.Enquiry.EnquiryDOB = '';\r\n $rootScope.showToaster('error', 'Age should be greater than 18.', \"Buyer Enquiry Data\");\r\n }\r\n else\r\n vm.Enquiry.Age = birthAge;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n function LoadCountry(callback) {\r\n var objCountry;\r\n\r\n vm.CountryList = [];\r\n vm.Enquiry.selectedCountryName = null;\r\n\r\n vm.StateList = [];\r\n vm.Enquiry.selectedState = null;\r\n\r\n vm.CityList = [];\r\n vm.Enquiry.selectedCity = null;\r\n\r\n vm.AreaList = [];\r\n vm.Enquiry.selectedArea = null;\r\n\r\n vm.CompanyCountryList = [];\r\n vm.Enquiry.selectedCompanyCountryName = null;\r\n\r\n vm.CompanyStateList = [];\r\n vm.Enquiry.selectedCompanyState = null;\r\n\r\n vm.CompanyCityList = [];\r\n vm.Enquiry.selectedCompanyCity = null;\r\n\r\n vm.CompanyAreaList = [];\r\n vm.Enquiry.selectedCompanyArea = null;\r\n\r\n CountryService.getAllCountry($http, $rootScope, objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.CompanyCountryList = res.data;\r\n // LoadProjectCategory();\r\n // LoadPropertyType();\r\n vm.isLoading = false;\r\n }\r\n if (callback) {\r\n callback();\r\n } else {\r\n\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function LoadCaste(iCommunityId, callback) {\r\n vm.CasteList = [];\r\n vm.Enquiry.SelectedCaste = null;\r\n if (iCommunityId) {\r\n\r\n var inputdata = {\r\n Id: iCommunityId,\r\n ResultFor: 'Caste'\r\n }\r\n\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (result) {\r\n if (result.status === 200) {\r\n vm.CasteList = result.data;\r\n\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n }\r\n\r\n function LoadInputDetails(iCondition, Id, callback) {\r\n var inputdata = {};\r\n\r\n if (iCondition == 'Load_Location') {\r\n var locIds = '';\r\n\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.loadMultiSelect = false;\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: Id,\r\n SelectFor: iCondition,\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllInputDataBasedCondition_ForReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofPropertyList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else if (iCondition == 'Load_Tiers') {\r\n LoadTiers('Tiers', Id, callback, function () {\r\n if (callback)\r\n callback();\r\n });\r\n vm.isLoadTiers = true;\r\n }\r\n }\r\n\r\n function LoadTiers(SelectFor, iLocationId, callback) {\r\n if (SelectFor == 'Tiers') {\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n LocationId: iLocationId,\r\n ProjectId: vm.Enquiry.selectedProject.ProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n var tierInput = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Enquiry.selectedProject.ProjectId,\r\n LocationId: iLocationId,\r\n SelectFor: 'Rate',\r\n Type: 'A'\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(tierInput).then(function (result) {\r\n if (result.status === 200) {\r\n vm.AllSavedDetails = result.data;\r\n var firstTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': 0 });\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (i == 0)\r\n vm.BasicLocationList[i].NewLocation = firstTiers;\r\n else\r\n vm.BasicLocationList[i].NewLocation = [];\r\n }\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadInnerLocations(SelectedLocs, Level) {\r\n\r\n if (SelectedLocs != null) {\r\n // if (SelectedLocs.length > 0) {\r\n if (Level < vm.BasicLocationList.length) {\r\n var tierIdArr = [];\r\n\r\n var nextSavedTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': SelectedLocs });\r\n tierIdArr = tierIdArr.concat(nextSavedTiers);\r\n\r\n\r\n vm.BasicLocationList[Level].NewLocation = tierIdArr;\r\n vm.BasicLocationList[Level].selectedTier = null;\r\n vm.loadMultiSelect = true;\r\n }\r\n else {\r\n if (vm.BasicLocationList.length == Level) {\r\n LoadAreaDetails(SelectedLocs);\r\n }\r\n }\r\n }\r\n else {\r\n for (var i in vm.BasicLocationList) {\r\n if (i == (Level - 1)) {\r\n vm.BasicLocationList[i].selectedTier = null;\r\n }\r\n else if ((Level - 1) < i) {\r\n vm.BasicLocationList[i].selectedTier = null;\r\n vm.BasicLocationList[i].NewLocation = [];\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n function LoadAreaDetails(iTierId, callback) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Enquiry.selectedProject.ProjectId,\r\n TierId: iTierId,\r\n }\r\n\r\n vm.Enquiry.SalableArea = '';\r\n vm.Enquiry.FacingDirection = '';\r\n vm.Enquiry.LocationFeature = '';\r\n vm.Enquiry.ParkingBasicLocation = '';\r\n\r\n\r\n projectDetailsSetupService.ReadProjectAreaDetails_ByTierId(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectAreaDetails = res.data;\r\n\r\n if (vm.ProjectAreaDetails.length > 0) {\r\n\r\n vm.Enquiry.SalableArea = vm.ProjectAreaDetails[0].SalableArea;\r\n vm.Enquiry.FacingDirection = vm.ProjectAreaDetails[0].FacingDirection;\r\n vm.Enquiry.LocationFeature = vm.ProjectAreaDetails[0].LocationFeature;\r\n vm.Enquiry.ParkingBasicLocation = vm.ProjectAreaDetails[0].ParkingBasicLocation;\r\n }\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n ///// Get All State By Country\r\n function getStateListByCountryId(CountryId, callBack) {\r\n vm.StateList = [];\r\n vm.Enquiry.selectedState = null;\r\n\r\n vm.CityList = [];\r\n vm.Enquiry.selectedCity = null;\r\n\r\n vm.AreaList = [];\r\n vm.Enquiry.selectedArea = null;\r\n\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.Enquiry.selectedCountryName.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n }\r\n\r\n function getCompanyStateListByCountryId(CountryId, callBack) {\r\n vm.CompanyStateList = [];\r\n vm.Enquiry.selectedCompanyState = null;\r\n\r\n vm.CompanyCityList = [];\r\n vm.Enquiry.selectedCompanyCity = null;\r\n\r\n vm.CompanyAreaList = [];\r\n vm.Enquiry.selectedCompanyArea = null;\r\n\r\n if (CountryId) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyStateList = res.data;\r\n if (vm.CompanyStateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.Enquiry.selectedCompanyCountryName.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n }\r\n\r\n function getCityListByStateId(StateId, callBack) {\r\n vm.CityList = [];\r\n vm.Enquiry.selectedCity = null;\r\n\r\n vm.AreaList = [];\r\n vm.Enquiry.selectedArea = null;\r\n\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.Enquiry.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n }\r\n\r\n function getCompanyCityListByStateId(StateId, callBack) {\r\n vm.CompanyCityList = [];\r\n vm.Enquiry.selectedCompanyCity = null;\r\n\r\n vm.CompanyAreaList = [];\r\n vm.Enquiry.selectedCompanyArea = null;\r\n\r\n if (StateId) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyCityList = res.data;\r\n if (vm.CompanyCityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.Enquiry.selectedCompanyState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n }\r\n\r\n function getAreaListByCityId(CityId, callBack) {\r\n vm.AreaList = [];\r\n vm.Enquiry.selectedArea = null;\r\n\r\n if (CityId) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.Enquiry.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n }\r\n\r\n function getCompanyAreaListByCityId(CityId, callBack) {\r\n vm.CompanyAreaList = [];\r\n vm.Enquiry.selectedCompanyArea = null;\r\n\r\n if (CityId) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyAreaList = res.data;\r\n if (vm.CompanyAreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.Enquiry.selectedCompanyCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n }\r\n\r\n function getDesignation(iIndustryId, callback) {\r\n vm.DesignationList = [];\r\n vm.Enquiry.selectedDesignation = null;\r\n\r\n if (iIndustryId) {\r\n var inputdata = {\r\n Id: iIndustryId,\r\n ResultFor: 'Occupation'\r\n }\r\n\r\n CRM_AddBuyerEnquiryService.GetSalesBasicDetails_ForEnquiry(inputdata).then(function (result) {\r\n if (result.status === 200) {\r\n vm.DesignationList = result.data;\r\n\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n }\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.Enquiry = {};\r\n vm.TypeofPropertyList=[];\r\n vm.BasicLocationList=[];\r\n vm.Enquiry.AvailLoan = true;\r\n vm.profilePicUrl = null;\r\n vm.TileBackhide=false;\r\n }\r\n\r\n // function HideSpouse(){\r\n // vm.SpouseNameHide=false;\r\n\r\n // }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Enquiry = {};\r\n vm.profilePicUrl = null;\r\n vm.TileBackhide=true;\r\n }\r\n\r\n function TileBack(){\r\n\r\n $state.go('CRM_BuyerEnquiryTiles');\r\n\r\n }\r\n\r\n function SaveBuyerDetails(BuyerDetails) {\r\n\r\n var userdetails = AuthenticationService.getLoggedUserDetails();\r\n\r\n var prfdetails = {\r\n AdhaarCardNo: vm.Enquiry.AdhaarCardNo,\r\n PANCardNo: vm.Enquiry.PANCardNo,\r\n PassportNo: vm.Enquiry.PassportNo,\r\n }\r\n\r\n var contactdetails = {\r\n Address1: vm.Enquiry.Address1,\r\n Address2: vm.Enquiry.Address2,\r\n CountryId: vm.Enquiry.selectedCountryName != undefined ? vm.Enquiry.selectedCountryName.CountryId : null,\r\n StateId: vm.Enquiry.selectedState != undefined ? vm.Enquiry.selectedState.StateId : null,\r\n CityId: vm.Enquiry.selectedCity != undefined ? vm.Enquiry.selectedCity.CityId : null,\r\n AreaId: vm.Enquiry.selectedArea != undefined ? vm.Enquiry.selectedArea.AreaId : null,\r\n MobileNo: vm.Enquiry.MobileNo,\r\n MailId: vm.Enquiry.MailId,\r\n KPostId: vm.Enquiry.KPostId,\r\n }\r\n\r\n var Jobdetails = {\r\n CompanyName: vm.Enquiry.CompanyName,\r\n OrganizationTypeId: vm.Enquiry.selectedOrganizationType != undefined ? vm.Enquiry.selectedOrganizationType.Id : null,\r\n IndustryId: vm.Enquiry.selectedIndustry != undefined ? vm.Enquiry.selectedIndustry.Id : null,\r\n DesignationId: vm.Enquiry.selectedDesignation != undefined ? vm.Enquiry.selectedDesignation.Id : null,\r\n Income: vm.Enquiry.Income,\r\n Address1: vm.Enquiry.CompanyAddress1,\r\n Address2: vm.Enquiry.CompanyAddress2,\r\n CountryId: vm.Enquiry.selectedCompanyCountryName != undefined ? vm.Enquiry.selectedCompanyCountryName.CountryId : null,\r\n StateId: vm.Enquiry.selectedCompanyState != undefined ? vm.Enquiry.selectedCompanyState.StateId : null,\r\n CityId: vm.Enquiry.selectedCompanyCity != undefined ? vm.Enquiry.selectedCompanyCity.CityId : null,\r\n AreaId: vm.Enquiry.selectedCompanyArea != undefined ? vm.Enquiry.selectedCompanyArea.AreaId : null,\r\n }\r\n\r\n var BudgetRange = {\r\n minValue: $scope.slider.minValue,\r\n maxValue: $scope.slider.maxValue\r\n }\r\n\r\n var iLocationDetails = {};\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].selectedTier) {\r\n iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n }\r\n }\r\n\r\n\r\n var PropertyDetails = {\r\n EnquirySourceId: vm.Enquiry.selectedEnquirySource.SourceId,\r\n ProjectId: vm.Enquiry.selectedProject.ProjectId,\r\n Budget: JSON.stringify(BudgetRange),\r\n LocationId: vm.Enquiry.selectedTypeofProperty.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n LocationDetails: JSON.stringify(iLocationDetails),\r\n Remarks: vm.Enquiry.Remarks\r\n }\r\n\r\n var prjDtl = {\r\n EnquiryId: vm.isEditing ? vm.Enquiry.EnquiryId : 0,\r\n CompanyId: CompanyId,\r\n DOE: BuyerDetails.EnquiryDate,\r\n BuyerName: BuyerDetails.BuyerName,\r\n DOB: BuyerDetails.EnquiryDOB,\r\n Age: BuyerDetails.Age,\r\n Gender: BuyerDetails.Gender != undefined ? BuyerDetails.Gender : null,\r\n MaritalStatus: BuyerDetails.MaritalStatus != undefined ? BuyerDetails.MaritalStatus : null,\r\n SpouseName: BuyerDetails.SpouseName,\r\n BloodGroupId: BuyerDetails.SelectedBloodGroup != undefined ? BuyerDetails.SelectedBloodGroup.Id : null,\r\n ProofDetails: JSON.stringify(prfdetails),\r\n ReligionId: BuyerDetails.SelectedReligion != undefined ? BuyerDetails.SelectedReligion.Id : null,\r\n CommunityId: BuyerDetails.SelectedCommunity != undefined ? BuyerDetails.SelectedCommunity.Id : null,\r\n CasteId: BuyerDetails.SelectedCaste != undefined ? BuyerDetails.SelectedCaste.Id : null,\r\n AvailingLoan: BuyerDetails.AvailLoan ? 1 : 0,\r\n CommunicationDetails: JSON.stringify(contactdetails),\r\n ProfessionDetails: JSON.stringify(Jobdetails),\r\n SourceId: BuyerDetails.selectedEnquirySource != undefined ? BuyerDetails.selectedEnquirySource.Id : null,\r\n PropertyDetails: JSON.stringify(PropertyDetails),\r\n Remarks: BuyerDetails.Remarks,\r\n SalesBy: userdetails.UserId,\r\n Process: 'Save',\r\n CreatedBy: userdetails.UserId,\r\n }\r\n\r\n\r\n var formData = new FormData();\r\n formData.append(\"inputdata\", JSON.stringify(prjDtl));\r\n formData.append(\"BuyerImage\", vm.BuyerImage);\r\n\r\n CRM_AddBuyerEnquiryService.AddBuyerData(formData).then(function (res) {\r\n\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n vm.isLoading = false;\r\n Init();\r\n Cancel();\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n\r\n }\r\n\r\n\r\n function editProPic() {\r\n vm.isEditingProPic = true;\r\n }\r\n function photoChanged(event) {\r\n\r\n var reader = new FileReader();\r\n if (!vm.isEditingProPic) {\r\n vm.BuyerImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.BuyerImage);\r\n } else {\r\n // vm.ExtProjectImage = vm.ProjectImage;\r\n vm.BuyerImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.BuyerImage);\r\n\r\n\r\n\r\n // var uploadimage = {\r\n // EnquiryId: vm.Enquiry.EnquiryId,\r\n // Process: 'PhotoUpdate'\r\n\r\n // }\r\n\r\n var formData = new FormData();\r\n\r\n formData.append('BuyerImage', vm.BuyerImage);\r\n formData.append('EnquiryId', vm.Enquiry.EnquiryId);\r\n\r\n formData.append('ExtBuyerImage', vm.ExtBuyerImage);\r\n\r\n CRM_AddBuyerEnquiryService.UpdateBuyerPhoto(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n\r\n }\r\n }\r\n\r\n $scope.imageIsLoaded = function (e) {\r\n $scope.$apply(function () {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n\r\n function EditBuyer(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.Enquiry = angular.copy(row);\r\n\r\n // $filter('date')(yourdate);\r\n\r\n // vm.Enquiry.EnquiryDate = $filter('date')(vm.Enquiry.DOE);\r\n // vm.Enquiry.EnquiryDOB = $filter('date')(vm.Enquiry.DOB);\r\n // GetAge(vm.Enquiry.DOB);\r\n vm.Enquiry.EnquiryDate = new Date(vm.Enquiry.DOE);\r\n vm.Enquiry.EnquiryDOB = new Date(vm.Enquiry.DOB);\r\n // vm.Enquiry.EnquiryDate = Date.parse(vm.Enquiry.DOE);\r\n // vm.Enquiry.EnquiryDOB = Date.parse(vm.Enquiry.DOB);\r\n\r\n if (vm.Enquiry.BloodGroupId != null || vm.Enquiry.BloodGroupId != undefined)\r\n for (var i in vm.BloodGroupList) {\r\n if (vm.BloodGroupList[i].Id == vm.Enquiry.BloodGroupId) {\r\n vm.Enquiry.SelectedBloodGroup = vm.BloodGroupList[i];\r\n }\r\n }\r\n\r\n if (vm.Enquiry.ReligionId != null || vm.Enquiry.ReligionId != undefined)\r\n for (var i in vm.ReligionList) {\r\n if (vm.ReligionList[i].Id == vm.Enquiry.ReligionId) {\r\n vm.Enquiry.SelectedReligion = vm.ReligionList[i];\r\n }\r\n }\r\n\r\n if (vm.Enquiry.CommunityId != null || vm.Enquiry.CommunityId != undefined)\r\n for (var i in vm.CommunityList) {\r\n\r\n if (vm.CommunityList[i].Id == vm.Enquiry.CommunityId) {\r\n vm.Enquiry.SelectedCommunity = vm.CommunityList[i];\r\n\r\n LoadCaste(vm.Enquiry.CommunityId, function () {\r\n if (vm.Enquiry.CasteId != null || vm.Enquiry.CasteId != undefined)\r\n for (var c in vm.CasteList) {\r\n if (vm.CasteList[c].Id === vm.Enquiry.CasteId) {\r\n vm.Enquiry.SelectedCaste = vm.CasteList[c];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (row.BuyerImage) {\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/CRM/BuyerImages/' + row.BuyerImage;\r\n vm.ExtBuyerImage = row.BuyerImage;\r\n }\r\n\r\n\r\n var prfdetails = JSON.parse(vm.Enquiry.ProofDetails);\r\n vm.Enquiry.AdhaarCardNo = prfdetails.AdhaarCardNo;\r\n vm.Enquiry.PANCardNo = prfdetails.PANCardNo;\r\n vm.Enquiry.PassportNo = prfdetails.PassportNo;\r\n\r\n var commdetails = JSON.parse(vm.Enquiry.CommunicationDetails);\r\n\r\n vm.Enquiry.Address1 = commdetails.Address1;\r\n vm.Enquiry.Address2 = commdetails.Address2;\r\n\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId == commdetails.CountryId) {\r\n vm.Enquiry.selectedCountryName = vm.CountryList[i];\r\n getStateListByCountryId(commdetails.CountryId, function () {\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === commdetails.StateId) {\r\n vm.Enquiry.selectedState = vm.StateList[c];\r\n\r\n getCityListByStateId(commdetails.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === commdetails.CityId) {\r\n vm.Enquiry.selectedCity = vm.CityList[c];\r\n\r\n getAreaListByCityId(commdetails.CityId, function () {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === commdetails.AreaId) {\r\n vm.Enquiry.selectedArea = vm.AreaList[c];\r\n\r\n\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n\r\n vm.Enquiry.MobileNo = commdetails.MobileNo;\r\n vm.Enquiry.MailId = commdetails.MailId;\r\n vm.Enquiry.KPostId = commdetails.KPostId\r\n\r\n var prfsnlDetails = JSON.parse(vm.Enquiry.ProfessionDetails);\r\n\r\n vm.Enquiry.CompanyName = prfsnlDetails.CompanyName;\r\n\r\n for (var i in vm.OrganizationTypeList) {\r\n if (vm.OrganizationTypeList[i].Id == prfsnlDetails.OrganizationTypeId) {\r\n vm.Enquiry.selectedOrganizationType = vm.OrganizationTypeList[i];\r\n }\r\n }\r\n\r\n\r\n for (var i in vm.IndustryList) {\r\n if (vm.IndustryList[i].Id == prfsnlDetails.IndustryId) {\r\n vm.Enquiry.selectedIndustry = vm.IndustryList[i];\r\n\r\n getDesignation(prfsnlDetails.IndustryId, function () {\r\n for (var c in vm.DesignationList) {\r\n if (vm.DesignationList[c].Id === prfsnlDetails.DesignationId) {\r\n vm.Enquiry.selectedDesignation = vm.DesignationList[c];\r\n\r\n\r\n }\r\n }\r\n });\r\n }\r\n }\r\n vm.Enquiry.CompanyAddress1 = prfsnlDetails.Address1;\r\n vm.Enquiry.CompanyAddress2 = prfsnlDetails.Address2;\r\n\r\n for (var i in vm.CompanyCountryList) {\r\n if (prfsnlDetails.CountryId != undefined || prfsnlDetails.CountryId != null)\r\n if (vm.CompanyCountryList[i].CountryId == prfsnlDetails.CountryId) {\r\n vm.Enquiry.selectedCompanyCountryName = vm.CompanyCountryList[i];\r\n\r\n getCompanyStateListByCountryId(prfsnlDetails.CountryId, function () {\r\n if (prfsnlDetails.StateId != undefined || prfsnlDetails.StateId != null)\r\n for (var c in vm.CompanyStateList) {\r\n if (vm.CompanyStateList[c].StateId === prfsnlDetails.StateId) {\r\n vm.Enquiry.selectedCompanyState = vm.CompanyStateList[c];\r\n\r\n\r\n getCompanyCityListByStateId(prfsnlDetails.StateId, function () {\r\n if (prfsnlDetails.CityId != undefined || prfsnlDetails.CityId != null)\r\n for (var c in vm.CompanyCityList) {\r\n if (vm.CompanyCityList[c].CityId === prfsnlDetails.CityId) {\r\n vm.Enquiry.selectedCompanyCity = vm.CompanyCityList[c];\r\n\r\n getCompanyAreaListByCityId(prfsnlDetails.CityId, function () {\r\n if (prfsnlDetails.AreaId != undefined || prfsnlDetails.AreaId != null)\r\n for (var c in vm.CompanyAreaList) {\r\n if (vm.CompanyAreaList[c].AreaId === prfsnlDetails.AreaId) {\r\n vm.Enquiry.selectedCompanyArea = vm.CompanyAreaList[c];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n vm.Enquiry.Income = prfsnlDetails.Income;\r\n vm.Enquiry.PresentAddress = prfsnlDetails.PresentAddress;\r\n\r\n\r\n var protylDetails = JSON.parse(vm.Enquiry.PropertyDetails);\r\n\r\n for (var i in vm.EnquirySourceList) {\r\n if (vm.EnquirySourceList[i].Id == vm.Enquiry.SourceId) {\r\n vm.Enquiry.selectedEnquirySource = vm.EnquirySourceList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.ProjectsList) {\r\n if (vm.ProjectsList[i].ProjectId == protylDetails.ProjectId) {\r\n vm.Enquiry.selectedProject = vm.ProjectsList[i];\r\n\r\n LoadInputDetails('Load_Location', protylDetails.ProjectId, function () {\r\n for (var c in vm.TypeofPropertyList) {\r\n if (vm.TypeofPropertyList[c].LocationId === protylDetails.LocationId) {\r\n vm.Enquiry.selectedTypeofProperty = vm.TypeofPropertyList[c];\r\n LoadInputDetails('Load_Tiers', protylDetails.LocationId, function () {\r\n\r\n var trdtls = [];\r\n trdtls = JSON.parse(protylDetails.LocationDetails);\r\n\r\n for (var k in vm.BasicLocationList) {\r\n var ind = \"Tier\" + (parseInt(k) + 1).toString();\r\n var tid = trdtls[ind];\r\n\r\n for (var u in vm.BasicLocationList[k].NewLocation) {\r\n if (vm.BasicLocationList[k].NewLocation[u].TierId == tid)\r\n vm.BasicLocationList[k].selectedTier = vm.BasicLocationList[k].NewLocation[u];\r\n LoadInnerLocations(tid, (parseInt(k) + 1), function () {\r\n });\r\n }\r\n\r\n // if (k == 0) {\r\n // for (var u in vm.BasicLocationList[0].NewLocation) {\r\n // if (vm.BasicLocationList[0].NewLocation[u].TierId == tid)\r\n // vm.BasicLocationList[0].selectedTier = vm.BasicLocationList[0].NewLocation[u];\r\n // LoadInnerLocations(tid, (parseInt(k) + 1), function () {\r\n // });\r\n // }\r\n // }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n function DeleteBuyer(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n EnquiryId: row.EnquiryId,\r\n Process: 'Delete',\r\n };\r\n\r\n\r\n CRM_AddBuyerEnquiryService.DeleteBuyerData(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n Init();\r\n Cancel();\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Something error...try again\");\r\n\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n\r\n });\r\n })\r\n }\r\n }\r\n\r\n})();\r\n\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ApprovedProjectDetails')\r\n .controller('CRM_ApprovedProjectDetailsCtrl', CRM_ApprovedProjectDetailsCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ApprovedProjectDetailsCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.EditProject = EditProject;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n\r\n vm.TileBack=TileBack;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader ;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: 0\r\n };\r\n ProjectDetailsApprovalService.GetAllProjectDetailsApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovalDetailList = res.data;\r\n for (var i in vm.ApprovalDetailList) {\r\n vm.ApprovalDetailList[i].LocDtls = JSON.parse(vm.ApprovalDetailList[i].LocationDetails);\r\n vm.ApprovalDetailList[i].AreaDtls = JSON.parse(vm.ApprovalDetailList[i].AreaUnits);\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function EditProject(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n // debugger;\r\n vm.Project = angular.copy(row);\r\n\r\n vm.BasicLocationList = JSON.parse(vm.Project.LocationDetails);\r\n vm.AllRequiredDetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n }\r\n\r\n\r\n vm.ProjectApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = 4;\r\n else\r\n StatusId = 6;\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputData = {\r\n SetupId: vm.Project.SetupId,\r\n Status: StatusId,\r\n ApprovalFor: 'Location',\r\n CreatedBy: loggeduser.UserId\r\n };\r\n\r\n ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n if (approval == 'Approve')\r\n $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n else\r\n $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function TileBack(){\r\n \r\n $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId, TileId:'ProjectDetailsSetup',SetupType:''});\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_BuyerEnquiryTiles')\r\n .controller('CRM_BuyerEnquiryTilesCtrl', CRM_BuyerEnquiryTilesCtrl);\r\n\r\n function CRM_BuyerEnquiryTilesCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_parkingLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\n vm.AddBuyerEnquiry = AddBuyerEnquiry;\r\n vm.ViewBuyerEnquiry = ViewBuyerEnquiry;\r\n // vm.BuyerEnquiryFollows = BuyerEnquiryFollows;\r\n // vm.PotentialBuyer = PotentialBuyer;\r\n // vm.ClosedEnquiry = ClosedEnquiry\r\n\r\n\r\n function AddBuyerEnquiry() {\r\n\r\n $state.go('CRM_AddBuyerEnquiry');\r\n }\r\n function ViewBuyerEnquiry() {\r\n\r\n $state.go('CRM_ViewBuyerEnquiry');\r\n }\r\n // function BuyerEnquiryFollows() {\r\n\r\n // $state.go('');\r\n // }\r\n\r\n // function PotentialBuyer() {\r\n\r\n // $state.go('');\r\n // }\r\n\r\n\r\n // function ClosedEnquiry() {\r\n\r\n // $state.go('');\r\n // }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_CopyAreaDetails')\r\n .controller('CRM_CopyAreaPriceDetailsCtrl', CRM_CopyAreaPriceDetailsCtrl);\r\n\r\n\r\n /** @ngInject */\r\n function CRM_CopyAreaPriceDetailsCtrl($http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, projectCreationService, StateService, AuthenticationService, CRM_CopyAreaDetailsService, projectDetailsSetupService, ProjectDetailsApprovalService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n vm.Project = {};\r\n vm.LoadLocationDetails = LoadLocationDetails;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInputData = LoadInputData;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n // vm.CopyLoadInnerLocations = CopyLoadInnerLocations;\r\n vm.LoadSaveToInnerLocations = LoadSaveToInnerLocations;\r\n vm.SaveProjectAreaSetup = SaveProjectAreaSetup;\r\n vm.TileBack = TileBack;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n // var CopyFor = 'Rate';//'Location','Rate'\r\n var CopyFor = $state.params.CopyFor;\r\n vm.Cancel = Cancel;\r\n\r\n vm.isShowLocPropType = false;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n vm.ProjectList = [];\r\n vm.PropertyList = [];\r\n vm.LocPropertyList = [];\r\n vm.UnitTypeList = [];\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n\r\n LoadInputData('Project');\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // SelectFor: CopyFor\r\n // }\r\n\r\n // CRM_CopyAreaDetailsService.GetSavedProject_ForCopyProcess(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n }\r\n\r\n function LoadInputData(iSelectFor) {\r\n\r\n var inputdata;\r\n var isValid = false;\r\n\r\n if (iSelectFor == 'Project') {\r\n\r\n vm.ProjectList = [];\r\n vm.LocationList = [];\r\n vm.LocPropertyList = [];\r\n vm.UnitTypeList = [];\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n Approved: CopyFor,\r\n SelectFor: iSelectFor\r\n }\r\n\r\n isValid = true;\r\n }\r\n else if (iSelectFor == 'Location') {\r\n\r\n if (vm.Project.selectedProject != undefined) {\r\n vm.LocationList = [];\r\n vm.LocPropertyList = [];\r\n vm.UnitTypeList = [];\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Project.selectedProject.Id,\r\n Approved: CopyFor,\r\n SelectFor: iSelectFor\r\n }\r\n isValid = true;\r\n }\r\n else\r\n isValid = false;\r\n }\r\n else if (iSelectFor == 'LocationProperty') {\r\n\r\n if (vm.Project.selectedProperty != undefined) {\r\n vm.LocPropertyList = [];\r\n vm.UnitTypeList = [];\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Project.selectedProject.Id,\r\n LocationId: vm.Project.selectedProperty.Id,\r\n Approved: CopyFor,\r\n SelectFor: iSelectFor\r\n }\r\n isValid = true;\r\n vm.isShowLocPropType = true;\r\n }\r\n else {\r\n isValid = false;\r\n vm.isShowLocPropType = false;\r\n }\r\n }\r\n else if (iSelectFor == 'TypeofUnit') {\r\n if (vm.Project.selectedLocationProperty != undefined) {\r\n vm.UnitTypeList = [];\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Project.selectedProject.Id,\r\n LocationId: vm.Project.selectedProperty.Id,\r\n PropertyTypeId: vm.Project.selectedLocationProperty.Id,\r\n Approved: CopyFor,\r\n SelectFor: iSelectFor\r\n }\r\n isValid = true;\r\n }\r\n else {\r\n isValid = false;\r\n }\r\n }\r\n\r\n if (isValid) {\r\n CRM_CopyAreaDetailsService.GetSavedProjectLocation_ForCopyProcess(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n if (iSelectFor == 'Project')\r\n vm.ProjectList = res.data;\r\n else if (iSelectFor == 'Location')\r\n vm.LocationList = res.data;\r\n else if (iSelectFor == 'LocationProperty')\r\n vm.LocPropertyList = res.data;\r\n else if (iSelectFor == 'TypeofUnit')\r\n vm.UnitTypeList = res.data;\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadLocationDetails(iProjectId) {\r\n vm.PropertyList = [];\r\n vm.Project.selectedProperty = null;\r\n\r\n if (iProjectId != undefined) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n ProjectId: iProjectId,\r\n SelectFor: CopyFor\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedProjectLocation_ForCopyProcess(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PropertyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n vm.loadMultiSelect = false;\r\n function LoadTiers(iUnitType, callback) {\r\n if (iUnitType) {\r\n\r\n vm.isShowLocPropType = true;\r\n vm.isLoadTiers = true;\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedProperty.Id,\r\n ProjectId: vm.Project.selectedProject.Id,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.BasicLocationList = res.data;\r\n // vm.BasicLocationListnew = angular.copy(res.data);\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n\r\n if (i == 0) {\r\n var tierInput = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Project.selectedProject.Id,\r\n LocationId: vm.Project.selectedProperty.Id,\r\n PropertyTypeId: vm.Project.selectedLocationProperty.Id,\r\n UnitType: iUnitType,\r\n SelectFor: CopyFor,\r\n Type: 'A'\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(tierInput).then(function (result) {\r\n if (result.status === 200) {\r\n vm.AllSavedDetails = result.data;\r\n var firstTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': 0 });\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (i == 0) {\r\n vm.BasicLocationList[i].NewLocation = firstTiers;\r\n }\r\n }\r\n\r\n var tierInput2 = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Project.selectedProject.Id,\r\n LocationId: vm.Project.selectedProperty.Id,\r\n PropertyTypeId: vm.Project.selectedLocationProperty.Id,\r\n UnitType: iUnitType,\r\n SelectFor: CopyFor,\r\n Type: 'NA'\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(tierInput2).then(function (result2) {\r\n if (result2.status === 200) {\r\n vm.AllSavedToDetails = result2.data;\r\n var firstSaveToTiers = lodash.filter(vm.AllSavedToDetails, { 'ParentTierId': 0 });\r\n for (var i in vm.BasicLocationList) {\r\n if (i == 0) {\r\n vm.BasicLocationList[i].SaveToLocation = firstSaveToTiers;\r\n }\r\n else\r\n vm.BasicLocationList[i].SaveToLocation = [];\r\n }\r\n vm.loadMultiSelect = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isLoadTiers = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, Level, callback) {\r\n if (iTierId) {\r\n var OtherTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': iTierId, 'TierLevel': Level + 1 });\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (i == Level) {\r\n vm.BasicLocationList[i].NewLocation = OtherTiers;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i in vm.BasicLocationList) {\r\n if (i == (Level - 1)) {\r\n vm.BasicLocationList[i].selectedTier = null;\r\n }\r\n else if ((Level - 1) < i) {\r\n vm.BasicLocationList[i].selectedTier = null;\r\n vm.BasicLocationList[i].NewLocation = [];\r\n }\r\n }\r\n }\r\n }\r\n\r\n function LoadSaveToInnerLocations(SelectedLocs, Level, callback) {\r\n\r\n if (SelectedLocs) {\r\n if (Level < vm.BasicLocationList.length) {\r\n var tierIdArr = [];\r\n for (var i in SelectedLocs) {\r\n var nextSaveToTiers = lodash.filter(vm.AllSavedToDetails, { 'ParentTierId': SelectedLocs[i].TierId });\r\n tierIdArr = tierIdArr.concat(nextSaveToTiers);\r\n }\r\n\r\n vm.BasicLocationList[Level].SaveToLocation = tierIdArr;\r\n vm.BasicLocationList[Level].selectedcopytoTiers = null;\r\n vm.loadMultiSelect = true;\r\n }\r\n }\r\n else {\r\n for (var i in vm.BasicLocationList) {\r\n if (i == (Level - 1)) {\r\n vm.BasicLocationList[i].selectedcopytoTiers = null;\r\n }\r\n else if ((Level - 1) < i) {\r\n vm.BasicLocationList[i].selectedcopytoTiers = null;\r\n vm.BasicLocationList[i].SaveToLocation = [];\r\n }\r\n }\r\n }\r\n }\r\n\r\n function SaveProjectAreaSetup(ProjectDetails) {\r\n\r\n var lastTierLevel = vm.BasicLocationList.length - 1;\r\n\r\n if (vm.BasicLocationList[lastTierLevel].selectedTier != undefined && vm.BasicLocationList[lastTierLevel].selectedcopytoTiers != undefined) {\r\n var cpylocs = [];\r\n var loc = {};\r\n\r\n for (var i in vm.BasicLocationList[lastTierLevel].selectedcopytoTiers) {\r\n loc = {};\r\n loc = {\r\n TierId: vm.BasicLocationList[lastTierLevel].selectedcopytoTiers[i].TierId,\r\n TierName: vm.BasicLocationList[lastTierLevel].selectedcopytoTiers[i].TierName,\r\n TierValue: vm.BasicLocationList[lastTierLevel].selectedcopytoTiers[i].TierValue,\r\n ParentTierId: vm.BasicLocationList[lastTierLevel].selectedcopytoTiers[i].ParentTierId,\r\n TierLevel: vm.BasicLocationList[lastTierLevel].selectedcopytoTiers[i].TierLevel,\r\n };\r\n cpylocs.push(loc);\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: ProjectDetails.selectedProject.Id,\r\n LocationId: ProjectDetails.selectedProperty.Id,\r\n SelectFor: CopyFor,\r\n FromTierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n CopyToLocations: JSON.stringify(cpylocs),\r\n CreatedBy: loggeduser.UserId\r\n }\r\n\r\n CRM_CopyAreaDetailsService.SaveProject_AreaSetup_FromCopiedLocation(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Copy & Save \" + CopyFor + \" Setup\");\r\n vm.isFormOpen = false;\r\n Init();\r\n vm.Project = {};\r\n vm.BasicLocationList = [];\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Copy & Save \" + CopyFor + \" Setup\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function Cancel() {\r\n vm.Project = {};\r\n }\r\n\r\n function TileBack() {\r\n if (CopyFor == 'Location')\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'NewCopyInfoTileSetup', SetupType: '' });\r\n\r\n\r\n else\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'NewCopyPriceInfoTileSetup', SetupType: '' });\r\n\r\n\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ApprovedProjectDetails_New')\r\n .controller('CRM_ApprovedProjectDetails_NewCtrl', CRM_ApprovedProjectDetails_NewCtrl);\r\n\r\n function CRM_ApprovedProjectDetails_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, CRM_CopyAreaDetailsService,CRM_projectInitiationService, projectDetailsSetupService, AuthenticationService, ProjectDetailsApprovalService, CRM_parkingLocationSetupService) {\r\n\r\n\r\n\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n vm.TileBack = TileBack;\r\n\r\n vm.EditProjectNew = EditProjectNew;\r\n vm.LoadInnerTiers = LoadInnerTiers;\r\n\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n\r\n vm.LoadTiers = LoadTiers;\r\n // vm.DeleteProject = DeleteProject;\r\n vm.LoadLocations = LoadLocations;\r\n // vm.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n vm.LoadParkingTiers = LoadParkingTiers;\r\n vm.LoadParkingInnerLocations=LoadParkingInnerLocations;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n // vm.LoadInnerTiers = LoadInnerTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n\r\n vm.Header = TitleHeader;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Status: '4',\r\n ApprovalFor: 'Location'\r\n //ProjectId :0\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovalDetailList = res.data;\r\n LoadLocations(CRMProjectId);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SelectedProjectDetails = res.data;\r\n\r\n vm.CRMReqFileList = JSON.parse(vm.SelectedProjectDetails[0].CRMRequiredFiles);\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n // var ReqDetails = '';\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n // vm.ReqFileList = JSON.parse(vm.ProjectList[i].CRMRequiredFiles);\r\n // }\r\n // }\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n\r\n\r\n vm.isLoading = false;\r\n // vm.isParkingTiers = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n\r\n function LoadParkingLocations(iIsParking, callback) {\r\n\r\n if (iIsParking == 'Yes') {\r\n vm.isLoadParkingTiers = true;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_parkingLocationSetupService.GetAllLocations(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ParkingLocationList = res1.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.isLoadParkingTiers = false;\r\n vm.ParkingLocationList = [];\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n var inputdatanew = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ReadFor: 'ApartmentType',\r\n LocationId: iBasicLocationId\r\n }\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.ApartmentList = res2.data;\r\n\r\n if (vm.ApartmentList.length > 0)\r\n vm.isLoadApartmentType = true;\r\n else\r\n vm.isLoadApartmentType = false;\r\n\r\n // var inputdatanew1 = {\r\n // ReadFor: 'FlatFacing',\r\n // ApartmentTypeId: null\r\n // }\r\n\r\n inputdatanew.ReadFor = 'FlatFacing';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.FlatFacingList = res3.data;\r\n\r\n inputdatanew.ReadFor = 'LocationFeature';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res4) {\r\n if (res4.status === 200) {\r\n vm.LocationFeatureList = res4.data;\r\n\r\n // var locinputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: iBasicLocationId,\r\n // SelectFor: 'Location',\r\n // Type: 'NA'\r\n // }\r\n // CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(locinputdata).then(function (res5) {\r\n // if (res5.status === 200) {\r\n // vm.UnSavedTiers = res5.data;\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n\r\n // if (vm.UnSavedTiers.length > 0) {\r\n // if (i == 0) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': 0 });\r\n // vm.BasicLocationList[0].NewLocation = firstTiers;\r\n // }\r\n // }\r\n // }\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n\r\n\r\n // projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n // if (res1.status === 200) {\r\n // vm.ParkingTiers = res1.data;\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n }\r\n }\r\n function LoadInnerLocations(iTierId, Level, callback) {\r\n \r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n \r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null; \r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n \r\n }\r\n \r\n vm.Project.Code = iCode;\r\n \r\n vm.isLoading = false;\r\n \r\n if (callback)\r\n callback();\r\n }\r\n \r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n \r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n \r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == (Level - 1)) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // }\r\n // else if ((Level - 1) < i) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // vm.BasicLocationList[i].NewLocation = [];\r\n // }\r\n // }\r\n }\r\n }\r\n // function LoadInnerTiers(iTierId, callback) {\r\n // if (iTierId) {\r\n // var tierdtls = lodash.filter(vm.UnSavedTiers, { 'TierId': iTierId });\r\n \r\n // var levelNo = parseInt(tierdtls[0].TierLevel);\r\n \r\n // var iCode = '';\r\n \r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == levelNo) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': iTierId });\r\n // vm.BasicLocationList[i].NewLocation = firstTiers;\r\n // }\r\n \r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n // }\r\n // }\r\n\r\n // vm.ProjectApproval = function (approval) {\r\n\r\n // // var StatusId;\r\n // // if (approval == 'Approve')\r\n // // StatusId = '4';\r\n // // else\r\n // // StatusId = '6'; \r\n\r\n // var iLocationDetails = {};\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // if (vm.BasicLocationList[i].selectedTier) {\r\n // iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n // }\r\n // }\r\n\r\n // var iParkingLocationId = null;\r\n // var iParkingTierId = null;\r\n // var iParkingLocationDetails = {};\r\n\r\n // if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n // iParkingLocationId = vm.Project.selectedParkingLocation.LocationId;\r\n // iParkingTierId = vm.ParkingBasicLocationList[vm.ParkingBasicLocationList.length - 1].selectedParkingTier.TierId;\r\n\r\n // for (var i in vm.ParkingBasicLocationList) {\r\n // if (vm.ParkingBasicLocationList[i].selectedParkingTier) {\r\n // iParkingLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.ParkingBasicLocationList[i].selectedParkingTier.TierId;\r\n // }\r\n // }\r\n // }\r\n\r\n // var iUploadfiles = [];\r\n\r\n // var iUploadfiles = {\r\n // ProjectUpload: JSON.stringify(vm.selectedProjectFileList),\r\n // ParkingUpload: JSON.stringify(vm.selectedParkFileList),\r\n // };\r\n\r\n // var inputData = {\r\n // SetupId: vm.Project.SetupId,\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId,\r\n // TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n // LocationDetails: JSON.stringify(iLocationDetails),\r\n // PropertyTypeId: vm.Project.selectedApartment.Id,\r\n // UnitId: vm.Project.selectedMasterunit.UnitId,\r\n // Uploadfiles: '',\r\n // ParkingLocationId: iParkingLocationId,\r\n // ParkingTierId: iParkingTierId,\r\n // ParkingLocationDetails: JSON.stringify(iParkingLocationDetails),\r\n // CarpetArea: vm.Project.CarpetArea,\r\n // CommonArea: vm.Project.CommonArea,\r\n // SalableArea: vm.Project.SalableArea,\r\n // SuperBuiltUpArea: vm.Project.SuperBuiltUpArea,\r\n // UDSArea: vm.Project.UDSArea,\r\n // FlatFacingId: vm.Project.selectedFlatFacing.Id,\r\n // FlatFeatureId: vm.Project.selectedLocationFeature.Id,\r\n // Status: 2,\r\n // Process: 'Save',\r\n // CreatedBy: loggeduser.UserId,\r\n // }\r\n\r\n // var formData = new FormData();\r\n // // if (!vm.isEditing) {\r\n // // for (var i in vm.selectedProjectFileList) {\r\n // // formData.append(vm.selectedProjectFileList[i].key, vm.selectedProjectFileList[i].selectedFile);\r\n // // }\r\n\r\n // // for (var i in vm.selectedParkFileList) {\r\n // // formData.append(vm.selectedParkFileList[i].key, vm.selectedParkFileList[i].selectedFile);\r\n // // }\r\n // // }\r\n\r\n\r\n // formData.append(\"inputdata\", JSON.stringify(inputData));\r\n // // formData.append(\"ProjectUpload\", vm.selectedProjectFileList);\r\n // // formData.append(\"ParkingUpload\", vm.selectedParkFileList);\r\n\r\n // projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // vm.isFormOpen = true;\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = false;\r\n // vm.isProjectDetails = true;\r\n // vm.isGridShow = true;\r\n\r\n // if(approval === 'Approve')\r\n // {\r\n // $rootScope.showToaster('success', 'Approved successfully', \"Project Details Setup\");\r\n // }\r\n // else\r\n // {\r\n // $rootScope.showToaster('error', 'Rejected', \"Project Details Setup\");\r\n // } \r\n // Init();\r\n // }\r\n // else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Project Details Setup\");\r\n // vm.isFormOpen = true;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\");\r\n // });\r\n // }\r\n\r\n function LoadParkingInnerLocations(iTierId, callback) {\r\n if (iTierId) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedParkingLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewParkingBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewParkingBasicLocationList) {\r\n if (vm.NewParkingBasicLocationList[i].Tiers === vm.ParkingBasicLocationList[i].Tiers && vm.NewParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.NewParkingBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[i].selectedParkingTier.Code;\r\n }\r\n\r\n vm.Project.ParkingCode = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n }\r\n }\r\n\r\n function LoadInnerTiers(iTierId, callback) {\r\n if (iTierId) {\r\n var tierdtls = lodash.filter(vm.UnSavedTiers, { 'TierId': iTierId });\r\n\r\n var levelNo = parseInt(tierdtls[0].TierLevel);\r\n\r\n var iCode = '';\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (i == levelNo) {\r\n var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': iTierId });\r\n vm.BasicLocationList[i].NewLocation = firstTiers;\r\n }\r\n\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n }\r\n }\r\n function EditProjectNew(row) {\r\n\r\n vm.isEditing = true;\r\n vm.Project={};\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = false;\r\n\r\n vm.buttonhide = false;\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n var iCode = '';\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + vm.BasicLocationList[i].selectedTier.Code;\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n for (var i in vm.ApartmentList) {\r\n if (vm.ApartmentList[i].Id == vm.Project.PropertyTypeId) {\r\n vm.Project.selectedApartment = vm.ApartmentList[i];\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n LoadParkingLocations(vm.ApartmentList[i].IsParking);\r\n\r\n for (var a in vm.ParkingLocationList) {\r\n if (vm.ParkingLocationList[a].LocationId == vm.Project.ParkingLocationId) {\r\n vm.Project.selectedParkingLocation = vm.ParkingLocationList[a];\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.ParkingLocationId,\r\n ApprovalFor: 'Parking',\r\n TierId: row.TierId,\r\n };\r\n \r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedParkTierDetails = res.data;\r\n var allSelectParkLocations = JSON.parse(vm.Project.ParkingLocationDetails);\r\n LoadParkingTiers(vm.Project.ParkingLocationId, function () {\r\n if (vm.ParkingBasicLocationList) {\r\n var iCode = '';\r\n for (var b in vm.ParkingBasicLocationList) {\r\n vm.ParkingBasicLocationList[b].NewLocation = JSON.parse(vm.SavedParkTierDetails[b].TierValue);\r\n for (var j in vm.ParkingBasicLocationList[b].NewLocation) {\r\n if (vm.ParkingBasicLocationList[b].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(b) + 1)]) {\r\n // if (vm.ParkingBasicLocationList[i].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.ParkingBasicLocationList[b].selectedParkingTier = vm.ParkingBasicLocationList[b].NewLocation[j];\r\n }\r\n }\r\n if (vm.ParkingBasicLocationList[b].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[b].selectedParkingTier.Code;\r\n }\r\n }\r\n vm.Project.ParkingCode = iCode;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n // if (vm.Project.selectedParkingLocation != undefined) {\r\n \r\n // }\r\n\r\n vm.selectedParkFileList = [];\r\n var SavedParkUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ParkingUpload);\r\n for (var a in SavedParkUploadList) {\r\n if (SavedParkUploadList.hasOwnProperty(a)) {\r\n vm.selectedParkFileList.push({\r\n key: a,\r\n selectedFile: SavedParkUploadList[a]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.Project.UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.FlatFacingList) {\r\n if (vm.FlatFacingList[i].Id == vm.Project.FlatFacingId) {\r\n vm.Project.selectedFlatFacing = vm.FlatFacingList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.LocationFeatureList) {\r\n if (vm.LocationFeatureList[i].Id == vm.Project.FlatFeatureId) {\r\n vm.Project.selectedLocationFeature = vm.LocationFeatureList[i];\r\n }\r\n }\r\n }\r\n\r\n vm.selectedProjectFileList = [];\r\n var SavedProjectUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ProjectUpload);\r\n for (var a in SavedProjectUploadList) {\r\n if (SavedProjectUploadList.hasOwnProperty(a)) {\r\n vm.selectedProjectFileList.push({\r\n key: a,\r\n selectedFile: SavedProjectUploadList[a]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n function LoadParkingTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ParkingBasicLocationList = res.data;\r\n if (callback)\r\n callback();\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.ParkingBasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedParkingLocation = null;\r\n vm.ParkingBasicLocationList = [];\r\n // vm.BasicLocationList = [];\r\n // vm.ApartmentList = [];\r\n // vm.isLoadApartmentType = false;\r\n }\r\n }\r\n // function DeleteProject(row) {\r\n\r\n // var confirm = dialogs.confirm('Confirm',\r\n // 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n // confirm.result.then(function () {\r\n\r\n // var inputData = {\r\n // SetupId: row.SetupId,\r\n // Process: 'Delete',\r\n // };\r\n\r\n // var formData = new FormData();\r\n // formData.append(\"inputdata\", JSON.stringify(inputData));\r\n\r\n // projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Role\");\r\n // Init();\r\n // } else {\r\n // dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n // }\r\n // },\r\n // function (err) {\r\n // dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n // });\r\n // }, function () {\r\n\r\n // })\r\n // }\r\n vm.RemoveProjectFileType = function (fileType, UploadFor) {\r\n \r\n // if (vm.isAdd)\r\n \r\n \r\n if (vm.isEditing) {\r\n var objDel = {\r\n SetupId: vm.Project.SetupId,\r\n Uploadfiles: vm.Project.Uploadfiles,\r\n Key: fileType.key,\r\n UpdateFor: UploadFor\r\n }\r\n projectDetailsSetupService.UpdateandDeleteProjectFileUpload(objDel).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', ' Deleted Successfully', \"Project Details Setup\");\r\n \r\n vm.Project.Uploadfiles = res.data[0].Uploadfiles;\r\n // if (UploadFor == 'ProjectUpload') {\r\n var selectedPrjFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ProjectUpload']);\r\n vm.selectedProjectFileList = [];\r\n \r\n for (var i in selectedPrjFiles) {\r\n if (selectedPrjFiles.hasOwnProperty(i)) {\r\n vm.selectedProjectFileList.push({\r\n key: i,\r\n selectedFile: selectedPrjFiles[i]\r\n });\r\n }\r\n }\r\n \r\n \r\n var selectedParkFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ParkingUpload']);\r\n vm.selectedParkFileList = [];\r\n \r\n \r\n for (var i in selectedParkFiles) {\r\n if (selectedParkFiles.hasOwnProperty(i)) {\r\n vm.selectedParkFileList.push({\r\n key: i,\r\n selectedFile: selectedParkFiles[i]\r\n });\r\n }\r\n }\r\n \r\n \r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n \r\n }\r\n else {\r\n \r\n if (UploadFor == 'ProjectUpload') {\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.selectedProjectFileList[i].key === fileType.key) {\r\n vm.selectedProjectFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n else {\r\n \r\n for (var i in vm.selectedParkFileList) {\r\n if (vm.selectedParkFileList[i].key === fileType.key) {\r\n vm.selectedParkFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function Cancel() {\r\n vm.Project = {};\r\n vm.isFormOpen = true;\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n\r\n Init();\r\n\r\n\r\n // vm.isFormOpen = false;\r\n // vm.location = {};\r\n // vm.tiers = [];\r\n }\r\n function TileBack() {\r\n\r\n // $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId });\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectDetailsSetup', SetupType: '' });\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_dashboard')\r\n .controller('CRM_DashboardCtrl', CRM_DashboardCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_DashboardCtrl($rootScope, $scope, lodash, dialogs, baConfig, $element, layoutPaths) {\r\n var vm = this;\r\n $rootScope.isLogin = false;\r\n\r\n // Properties\r\n vm.test = \"Hello World!\";\r\n\r\n // Methods\r\n vm.openDialog = openDialog;\r\n vm.person = {};\r\n vm.people = [\r\n {\r\n \"name\": \"Tamilselvan\",\r\n \"email\": \"tamilselva719@hotmail.com\",\r\n \"age\": 24\r\n }, {\r\n \"name\": \"Kumar\",\r\n \"email\": \"kumar@gmail.com\",\r\n \"age\": 22\r\n }, {\r\n \"name\": \"Raja\",\r\n \"email\": \"raja123@gmail.com\",\r\n \"age\": 21\r\n }\r\n ];\r\n \r\n activate();\r\n\r\n ////////////////\r\n\r\n vm.collapseAll = function () {\r\n $scope.$broadcast('angular-ui-tree:collapse-all');\r\n };\r\n\r\n vm.expandAll = function () {\r\n $scope.$broadcast('angular-ui-tree:expand-all');\r\n };\r\n\r\n function activate() {\r\n vm.data1 = [{ \"IsSelected\": true, \"MenuId\": 1, \"MenuName\": \"Home\", \"MenuIcon\": \"fa fa-home\", \"MenuOrder\": 1, \"MenuUrl\": \"dashboard\", \"SubMenuItems\": [], \"ParentId\": 0, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 2, \"MenuName\": \"Admin\", \"MenuIcon\": \"fa fa-sitemap\", \"MenuOrder\": 2, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 4, \"MenuName\": \"Role Master\", \"MenuIcon\": null, \"MenuOrder\": 3, \"MenuUrl\": null, \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 6, \"MenuName\": \"Role Creation\", \"MenuIcon\": null, \"MenuOrder\": 202, \"MenuUrl\": \"role\", \"SubMenuItems\": [], \"ParentId\": 4, \"MenuAction\": [{ \"ActionId\": 11, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 12, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 14, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 15, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 7, \"MenuName\": \"Role Menu Privilege\", \"MenuIcon\": null, \"MenuOrder\": 203, \"MenuUrl\": \"roleMenuMapping\", \"SubMenuItems\": [], \"ParentId\": 4, \"MenuAction\": [{ \"ActionId\": 16, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 17, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 19, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 20, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 5, \"MenuName\": \"User Menu Privilege\", \"MenuIcon\": null, \"MenuOrder\": 204, \"MenuUrl\": \"userMenuMapping\", \"SubMenuItems\": [], \"ParentId\": 4, \"MenuAction\": [{ \"ActionId\": 6, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 7, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 9, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 10, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 2, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 8, \"MenuName\": \"Location\", \"MenuIcon\": null, \"MenuOrder\": 4, \"MenuUrl\": null, \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 9, \"MenuName\": \"Country\", \"MenuIcon\": null, \"MenuOrder\": 401, \"MenuUrl\": \"country\", \"SubMenuItems\": [], \"ParentId\": 8, \"MenuAction\": [{ \"ActionId\": 21, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 22, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 24, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 25, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 10, \"MenuName\": \"State\", \"MenuIcon\": null, \"MenuOrder\": 402, \"MenuUrl\": \"state\", \"SubMenuItems\": [], \"ParentId\": 8, \"MenuAction\": [{ \"ActionId\": 26, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 27, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 29, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 30, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 11, \"MenuName\": \"City\", \"MenuIcon\": null, \"MenuOrder\": 403, \"MenuUrl\": \"city\", \"SubMenuItems\": [], \"ParentId\": 8, \"MenuAction\": [{ \"ActionId\": 31, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 32, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 34, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 35, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 12, \"MenuName\": \"Area\", \"MenuIcon\": null, \"MenuOrder\": 404, \"MenuUrl\": \"area\", \"SubMenuItems\": [], \"ParentId\": 8, \"MenuAction\": [{ \"ActionId\": 36, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 37, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 39, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 40, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 2, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 3, \"MenuName\": \"Organization\", \"MenuIcon\": null, \"MenuOrder\": 6, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 14, \"MenuName\": \"Company Initiation\", \"MenuIcon\": null, \"MenuOrder\": 401, \"MenuUrl\": \"company\", \"SubMenuItems\": [], \"ParentId\": 3, \"MenuAction\": [{ \"ActionId\": 41, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 42, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 44, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 45, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 48, \"MenuName\": \"Organization Level\", \"MenuIcon\": \"\", \"MenuOrder\": 402, \"MenuUrl\": \"organization\", \"SubMenuItems\": [], \"ParentId\": 3, \"MenuAction\": [{ \"ActionId\": 56, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 57, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 58, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 59, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 49, \"MenuName\": \"Organization Level Chart\", \"MenuIcon\": \"\", \"MenuOrder\": 403, \"MenuUrl\": \"organizationLevelChart\", \"SubMenuItems\": [], \"ParentId\": 3, \"MenuAction\": [] }], \"ParentId\": 2, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 47, \"MenuName\": \"User Account Creation\", \"MenuIcon\": \"\", \"MenuOrder\": 7, \"MenuUrl\": \"createUser\", \"SubMenuItems\": [], \"ParentId\": 2, \"MenuAction\": [{ \"ActionId\": 68, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 69, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 70, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 71, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 0, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 13, \"MenuName\": \"Human Resource\", \"MenuIcon\": \"fa fa-users\", \"MenuOrder\": 5, \"MenuUrl\": null, \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 15, \"MenuName\": \"Department\", \"MenuIcon\": null, \"MenuOrder\": 402, \"MenuUrl\": \"department\", \"SubMenuItems\": [], \"ParentId\": 13, \"MenuAction\": [{ \"ActionId\": 46, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 47, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 49, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 50, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 16, \"MenuName\": \"Designation\", \"MenuIcon\": null, \"MenuOrder\": 403, \"MenuUrl\": \"designation\", \"SubMenuItems\": [], \"ParentId\": 13, \"MenuAction\": [{ \"ActionId\": 51, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 52, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 54, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 55, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 31, \"MenuName\": \"Employee\", \"MenuIcon\": null, \"MenuOrder\": 404, \"MenuUrl\": \"employee\", \"SubMenuItems\": [], \"ParentId\": 13, \"MenuAction\": [{ \"ActionId\": 64, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 65, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 66, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 67, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 50, \"MenuName\": \"Employee Chart\", \"MenuIcon\": \"\", \"MenuOrder\": 405, \"MenuUrl\": \"employeeChart\", \"SubMenuItems\": [], \"ParentId\": 13, \"MenuAction\": [{ \"ActionId\": 72, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 73, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 74, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 75, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 0, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 36, \"MenuName\": \"General Settings\", \"MenuIcon\": \"fa fa-cogs\", \"MenuOrder\": 10, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 17, \"MenuName\": \"Construction Activity\", \"MenuIcon\": \"fa fa-building-o\", \"MenuOrder\": 5, \"MenuUrl\": null, \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 18, \"MenuName\": \"Category\", \"MenuIcon\": null, \"MenuOrder\": 501, \"MenuUrl\": \"categoryCA\", \"SubMenuItems\": [], \"ParentId\": 17, \"MenuAction\": [{ \"ActionId\": 76, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 77, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 78, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 79, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 19, \"MenuName\": \"SubCategory\", \"MenuIcon\": null, \"MenuOrder\": 502, \"MenuUrl\": \"subCategoryCA\", \"SubMenuItems\": [], \"ParentId\": 17, \"MenuAction\": [{ \"ActionId\": 80, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 81, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 82, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 83, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 27, \"MenuName\": \"Type Of CA\", \"MenuIcon\": null, \"MenuOrder\": 503, \"MenuUrl\": \"typeOfCA\", \"SubMenuItems\": [], \"ParentId\": 17, \"MenuAction\": [{ \"ActionId\": 100, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 101, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 102, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 103, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 28, \"MenuName\": \"Attribute\", \"MenuIcon\": null, \"MenuOrder\": 504, \"MenuUrl\": \"attributeCA\", \"SubMenuItems\": [], \"ParentId\": 17, \"MenuAction\": [{ \"ActionId\": 104, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 105, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 106, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 107, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 29, \"MenuName\": \"Variable\", \"MenuIcon\": null, \"MenuOrder\": 505, \"MenuUrl\": \"variableCA\", \"SubMenuItems\": [], \"ParentId\": 17, \"MenuAction\": [{ \"ActionId\": 108, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 109, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 110, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 111, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 51, \"MenuName\": \"IOCA\", \"MenuIcon\": \"\", \"MenuOrder\": 506, \"MenuUrl\": \"ioCA\", \"SubMenuItems\": [], \"ParentId\": 17, \"MenuAction\": [{ \"ActionId\": 140, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 141, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 142, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 143, \"ActionName\": \"InActive\", \"IsSelected\": false }] }], \"ParentId\": 36, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 20, \"MenuName\": \"Material Master\", \"MenuIcon\": \"glyphicon glyphicon-wrench\", \"MenuOrder\": 6, \"MenuUrl\": null, \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 21, \"MenuName\": \"Material Category\", \"MenuIcon\": null, \"MenuOrder\": 601, \"MenuUrl\": \"materialcategory\", \"SubMenuItems\": [], \"ParentId\": 20, \"MenuAction\": [{ \"ActionId\": 84, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 85, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 86, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 87, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 22, \"MenuName\": \"Material SubCategory\", \"MenuIcon\": null, \"MenuOrder\": 602, \"MenuUrl\": \"materialSubCategory\", \"SubMenuItems\": [], \"ParentId\": 20, \"MenuAction\": [{ \"ActionId\": 88, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 89, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 90, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 91, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 30, \"MenuName\": \"Material Type\", \"MenuIcon\": null, \"MenuOrder\": 603, \"MenuUrl\": \"materialType\", \"SubMenuItems\": [], \"ParentId\": 20, \"MenuAction\": [{ \"ActionId\": 136, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 137, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 138, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 139, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 32, \"MenuName\": \"Attribute\", \"MenuIcon\": null, \"MenuOrder\": 604, \"MenuUrl\": \"attributeMat\", \"SubMenuItems\": [], \"ParentId\": 20, \"MenuAction\": [{ \"ActionId\": 112, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 113, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 114, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 115, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 53, \"MenuName\": \"Material Variable\", \"MenuIcon\": \"\", \"MenuOrder\": 604, \"MenuUrl\": \"materialVariable\", \"SubMenuItems\": [], \"ParentId\": 20, \"MenuAction\": [{ \"ActionId\": 148, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 149, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 150, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 151, \"ActionName\": \"InActive\", \"IsSelected\": false }] }, { \"IsSelected\": true, \"MenuId\": 52, \"MenuName\": \"Item Of Material\", \"MenuIcon\": \"\", \"MenuOrder\": 605, \"MenuUrl\": \"itemOfMaterial\", \"SubMenuItems\": [], \"ParentId\": 20, \"MenuAction\": [{ \"ActionId\": 144, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 145, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 146, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 147, \"ActionName\": \"InActive\", \"IsSelected\": false }] }], \"ParentId\": 36, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 23, \"MenuName\": \"Machinery Master\", \"MenuIcon\": \"fa fa-cogs\", \"MenuOrder\": 7, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 24, \"MenuName\": \"Category\", \"MenuIcon\": null, \"MenuOrder\": 701, \"MenuUrl\": \"categoryOfMachinery\", \"SubMenuItems\": [], \"ParentId\": 23, \"MenuAction\": [{ \"ActionId\": 92, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 93, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 94, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 95, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 45, \"MenuName\": \"SubCategory\", \"MenuIcon\": \"\", \"MenuOrder\": 702, \"MenuUrl\": \"subcategoryOfMachinery\", \"SubMenuItems\": [], \"ParentId\": 23, \"MenuAction\": [{ \"ActionId\": 128, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 129, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 130, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 131, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": false, \"MenuId\": 56, \"MenuName\": \" Type Of Machinery\", \"MenuIcon\": \"\", \"MenuOrder\": 703, \"MenuUrl\": \"typeOfMachinery\", \"SubMenuItems\": [], \"ParentId\": 23, \"MenuAction\": [{ \"ActionId\": 156, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 157, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 158, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 159, \"ActionName\": \"InActive\", \"IsSelected\": false }] }, { \"IsSelected\": true, \"MenuId\": 46, \"MenuName\": \"Attribute\", \"MenuIcon\": \"\", \"MenuOrder\": 704, \"MenuUrl\": \"attribute_Machinery\", \"SubMenuItems\": [], \"ParentId\": 23, \"MenuAction\": [{ \"ActionId\": 132, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 133, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 134, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 135, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": false, \"MenuId\": 55, \"MenuName\": \"Machinery Variable\", \"MenuIcon\": \"\", \"MenuOrder\": 705, \"MenuUrl\": \"machineryVariable\", \"SubMenuItems\": [], \"ParentId\": 23, \"MenuAction\": [{ \"ActionId\": 160, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 161, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 162, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 163, \"ActionName\": \"InActive\", \"IsSelected\": false }] }, { \"IsSelected\": false, \"MenuId\": 54, \"MenuName\": \"Item Of Machinery\", \"MenuIcon\": \"\", \"MenuOrder\": 706, \"MenuUrl\": \"itemOfMachinery\", \"SubMenuItems\": [], \"ParentId\": 23, \"MenuAction\": [{ \"ActionId\": 152, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 153, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 154, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 155, \"ActionName\": \"InActive\", \"IsSelected\": false }] }], \"ParentId\": 36, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 25, \"MenuName\": \"Consumable Master\", \"MenuIcon\": \"fa fa-cart-plus\", \"MenuOrder\": 8, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 26, \"MenuName\": \"Consumable Category\", \"MenuIcon\": null, \"MenuOrder\": 801, \"MenuUrl\": \"consumableCategory\", \"SubMenuItems\": [], \"ParentId\": 25, \"MenuAction\": [{ \"ActionId\": 96, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 97, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 98, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 99, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 42, \"MenuName\": \"Type Of Consumable\", \"MenuIcon\": \"\", \"MenuOrder\": 802, \"MenuUrl\": \"typeOfConsumable\", \"SubMenuItems\": [], \"ParentId\": 25, \"MenuAction\": [{ \"ActionId\": 124, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 125, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 126, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 127, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 36, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 33, \"MenuName\": \"Labour Master\", \"MenuIcon\": \"fa fa-cart-plus\", \"MenuOrder\": 9, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 34, \"MenuName\": \"Labour Category\", \"MenuIcon\": null, \"MenuOrder\": 901, \"MenuUrl\": \"labourCategory\", \"SubMenuItems\": [], \"ParentId\": 33, \"MenuAction\": [{ \"ActionId\": 116, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 117, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 118, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 119, \"ActionName\": \"InActive\", \"IsSelected\": true }] }, { \"IsSelected\": true, \"MenuId\": 35, \"MenuName\": \"Labour Type\", \"MenuIcon\": null, \"MenuOrder\": 902, \"MenuUrl\": \"labourType\", \"SubMenuItems\": [], \"ParentId\": 33, \"MenuAction\": [{ \"ActionId\": 120, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 121, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 122, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 123, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 36, \"MenuAction\": [] }, { \"IsSelected\": false, \"MenuId\": 57, \"MenuName\": \" OverHead\", \"MenuIcon\": \"\", \"MenuOrder\": 10, \"MenuUrl\": \"overHead\", \"SubMenuItems\": [], \"ParentId\": 36, \"MenuAction\": [{ \"ActionId\": 164, \"ActionName\": \"Add\", \"IsSelected\": false }, { \"ActionId\": 165, \"ActionName\": \"Edit\", \"IsSelected\": false }, { \"ActionId\": 166, \"ActionName\": \"Delete\", \"IsSelected\": false }, { \"ActionId\": 167, \"ActionName\": \"InActive\", \"IsSelected\": false }] }, { \"IsSelected\": false, \"MenuId\": 59, \"MenuName\": \" UOM\", \"MenuIcon\": \"\", \"MenuOrder\": 10, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": false, \"MenuId\": 60, \"MenuName\": \" UOM Parameter\", \"MenuIcon\": \"\", \"MenuOrder\": 101, \"MenuUrl\": \"uomParameter\", \"SubMenuItems\": [], \"ParentId\": 59, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 40, \"MenuName\": \"Non Std Units\", \"MenuIcon\": \"\", \"MenuOrder\": 102, \"MenuUrl\": \"nonStdUnits\", \"SubMenuItems\": [], \"ParentId\": 59, \"MenuAction\": [{ \"ActionId\": 60, \"ActionName\": \"Add\", \"IsSelected\": true }, { \"ActionId\": 61, \"ActionName\": \"Edit\", \"IsSelected\": true }, { \"ActionId\": 62, \"ActionName\": \"Delete\", \"IsSelected\": true }, { \"ActionId\": 63, \"ActionName\": \"InActive\", \"IsSelected\": true }] }], \"ParentId\": 36, \"MenuAction\": [] }], \"ParentId\": 0, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 37, \"MenuName\": \"Project Setup\", \"MenuIcon\": \"glyphicon glyphicon-wrench\", \"MenuOrder\": 11, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 38, \"MenuName\": \"Project Initiation\", \"MenuIcon\": \"\", \"MenuOrder\": 101, \"MenuUrl\": \"projectInitiation\", \"SubMenuItems\": [], \"ParentId\": 37, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 39, \"MenuName\": \"Approval Of Project \", \"MenuIcon\": \"\", \"MenuOrder\": 102, \"MenuUrl\": \"approvalOfProjectInitiation\", \"SubMenuItems\": [], \"ParentId\": 37, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 44, \"MenuName\": \"Select Location & Tiers\", \"MenuIcon\": \"\", \"MenuOrder\": 103, \"MenuUrl\": \"\", \"SubMenuItems\": [{ \"IsSelected\": true, \"MenuId\": 43, \"MenuName\": \"Select Location\", \"MenuIcon\": \"\", \"MenuOrder\": 201, \"MenuUrl\": \"locationSetup\", \"SubMenuItems\": [], \"ParentId\": 44, \"MenuAction\": [] }, { \"IsSelected\": true, \"MenuId\": 41, \"MenuName\": \"Tiers Setup\", \"MenuIcon\": \"\", \"MenuOrder\": 202, \"MenuUrl\": \"tierSetup\", \"SubMenuItems\": [], \"ParentId\": 44, \"MenuAction\": [] }], \"ParentId\": 37, \"MenuAction\": [] }, { \"IsSelected\": false, \"MenuId\": 58, \"MenuName\": \" Select IOCA\", \"MenuIcon\": \"\", \"MenuOrder\": 104, \"MenuUrl\": \"selectIOCA\", \"SubMenuItems\": [], \"ParentId\": 37, \"MenuAction\": [] }], \"ParentId\": 0, \"MenuAction\": [] }]\r\n }\r\n\r\n function openDialog() {\r\n dialogs.confirm('Error', 'An unknown error occurred preventing the completion of the requested action.', { animation: true, size: 'sm' });\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ItemofSalesActivity')\r\n .controller('CRM_ItemofSalesActivityCtrl', CRM_ItemofSalesActivityCtrl);\r\n\r\n function CRM_ItemofSalesActivityCtrl($scope, $http, $rootScope, dialogs, $filter, $state, $stateParams, DepartmentServices, CRM_SalesActivityCategoryService, CRM_ItemofSalesActivityService, Task_SubjectService,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.LoadCategoryofActivity = LoadCategoryofActivity;\r\n vm.LoadItemActivity = LoadItemActivity;\r\n vm.SaveItemActivity = SaveItemActivity;\r\n vm.DeleteItemActivity = DeleteItemActivity;\r\n vm.EditItemActivity = EditItemActivity;\r\n vm.Cancel = Cancel;\r\n vm.ItemActivity = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n $scope.hstep = 1;\r\n $scope.mstep = 15;\r\n vm.isSubmit = false;\r\n vm.UpdateItemActivity = UpdateItemActivity;\r\n vm.ActvityType = 'S';\r\n\r\n Init();\r\n function Init() {\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n function LoadCategoryofActivity(iDeptId) {\r\n\r\n vm.SalesActivitytList = [];\r\n vm.ItemActivity.selectedsubject = null;\r\n vm.ItemActivity.OrderNo = null;\r\n vm.isFormOpen = false;\r\n if (iDeptId != undefined) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n Type: vm.ActvityType,\r\n }\r\n\r\n CRM_SalesActivityCategoryService.ReadSalesActivityCategory(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SalesActivitytList = res.data;\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadItemActivity(iCateId, iDeptId, callback) {\r\n vm.ItemActivity.ItemName = null;\r\n vm.ItemActivity.OrderNo = null;\r\n vm.isSubmit = false;\r\n vm.ItemActivityList = [];\r\n vm.isFormOpen = false;\r\n if (iCateId != undefined) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n CategoryId: iCateId,\r\n Type : vm.ActvityType,\r\n }\r\n\r\n CRM_ItemofSalesActivityService.ReadItemSalesActivity(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ItemActivityList = res.data;\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n } \r\n }\r\n\r\n $scope.sortableOptions = {\r\n change: function () {\r\n vm.isSubmit = true;\r\n },\r\n };\r\n\r\n function UpdateItemActivity(callback) {\r\n\r\n var inputdata = null;\r\n\r\n for (var i in vm.ItemActivityList) {\r\n\r\n inputdata = {\r\n ItemName: vm.ItemActivityList[i].ItemName,\r\n Duration: vm.ItemActivityList[i].Duration,\r\n ItemId: vm.ItemActivityList[i].ItemId,\r\n OrderNo: parseInt(i) + 1,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n CRM_ItemofSalesActivityService.SaveDeleteUpdateItemSalesActivity(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Item of Sale Activity Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n $rootScope.showToaster('success', 'Sequence order change is completed', \"Item of Sale Activity Master\");\r\n vm.isSubmit = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n function SaveItemActivity() {\r\n\r\n var iItemId = 0;\r\n\r\n if (!vm.isEditing)\r\n iItemId = 0;\r\n else\r\n iItemId = vm.ItemActivity.ItemId;\r\n\r\n // var dur = vm.ItemActivity.Duration;\r\n // var hrs = dur.getHours() + ':' + dur.getMinutes();\r\n\r\n // var dur = vm.ItemActivity.Duration;\r\n var hrs = vm.ItemActivity.Hours + ':' + vm.ItemActivity.Minutes;\r\n\r\n var inputdata = {\r\n\r\n CompanyId: CompanyId,\r\n DepartmentId: vm.ItemActivity.selectedDepartment.DepartmentId,\r\n CategoryId: vm.ItemActivity.selectedCategory.CategoryId,\r\n ItemName: vm.ItemActivity.ItemName,\r\n Duration: hrs,\r\n ItemId: iItemId,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId,\r\n Type : vm.ActvityType,\r\n }\r\n\r\n CRM_ItemofSalesActivityService.SaveDeleteUpdateItemSalesActivity(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Item of Sale Activity Master\");\r\n vm.isFormOpen = true;\r\n // LoadItemActivity(vm.ItemActivity.selectedCategory.CategoryId, vm.ItemActivity.selectedDepartment.DepartmentId);\r\n\r\n LoadItemActivity(vm.ItemActivity.selectedCategory.CategoryId, vm.ItemActivity.selectedDepartment.DepartmentId, function () {\r\n if (vm.isEditing)\r\n UpdateItemActivity();\r\n });\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Item of Sale Activity Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function DeleteItemActivity(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n ItemId: row.ItemId,\r\n Process: 'Delete'\r\n };\r\n\r\n CRM_ItemofSalesActivityService.SaveDeleteUpdateItemSalesActivity(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Item of Sale Activity Master\");\r\n vm.isFormOpen = true;\r\n vm.ItemActivity.ItemName = null;\r\n vm.ItemActivity.OrderNo = null;\r\n vm.isEditing = false;\r\n\r\n LoadItemActivity(vm.ItemActivity.selectedCategory.CategoryId, vm.ItemActivity.selectedDepartment.DepartmentId, function () {\r\n UpdateItemActivity();\r\n });\r\n // LoadItemActivity(vm.ItemActivity.selectedCategory.CategoryId, vm.ItemActivity.selectedDepartment.DepartmentId);\r\n // UpdateItemActivity();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot Item of Sale Activity Master', 'ERROR!');\r\n });\r\n })\r\n }\r\n\r\n function EditItemActivity(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.ItemActivity = angular.copy(row);\r\n\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.ItemActivity.DepartmentId) {\r\n vm.ItemActivity.selectedDepartment = vm.DepartmentList[i];\r\n }\r\n }\r\n for (var c in vm.SalesActivitytList) {\r\n if (vm.SalesActivitytList[c].CategoryId === vm.ItemActivity.CategoryId) {\r\n vm.ItemActivity.selectedCategory = vm.SalesActivitytList[c];\r\n }\r\n }\r\n\r\n var tmphours = vm.ItemActivity.Duration;\r\n\r\n var hrs = tmphours.substring(0, 2);\r\n var mins = tmphours.substring(3, 5);\r\n\r\n // var t = new Date();\r\n // t.setHours(parseInt(hrs));\r\n // t.setMinutes(parseInt(mins));\r\n\r\n // vm.ItemActivity.Duration = t;\r\n\r\n vm.ItemActivity.Hours = hrs;\r\n vm.ItemActivity.Minutes = mins;\r\n\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.ItemActivity = {};\r\n vm.isSubmit = false;\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n\r\n angular\r\n .module('KPMES.pages.CRM_GstSetting')\r\n .controller('CRM_GstSettingCtrl', CRM_GstSettingCtrl);\r\n\r\n function CRM_GstSettingCtrl($scope, $http, $rootScope, $filter, lodash, dialogs, $state, $stateParams, AuthenticationService, CRM_StatutoryMasterService, PaymentScheduleMasterService, CRM_GstSettingService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n vm.isFormOpen = true;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = true;\r\n vm.GST = {};\r\n vm.SaveGSTSettings = SaveGSTSettings;\r\n vm.EditGSTSettings = EditGSTSettings;\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.GSTList = [\r\n {\r\n 'Key': 'TotalBasic',\r\n 'Value': 'Total Basic'\r\n }];\r\n\r\n var inputdata = {\r\n\r\n CompanyId: CompanyId,\r\n GSTFor: 'TotalBasic',\r\n }\r\n\r\n\r\n CRM_GstSettingService.GetReadReadGSTSettings(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.GSTSettingsList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Payment Schedule Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n }\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n function EditGSTSettings(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = false;\r\n\r\n vm.GST = angular.copy(row);\r\n\r\n for (var i in vm.GSTList) {\r\n if (vm.GSTList[i].Key === vm.GST.GSTFor) {\r\n vm.GST.SelectedGST = vm.GSTList[i]\r\n\r\n }\r\n }\r\n\r\n vm.GST.EffectiveFrom = new Date(row.EffectiveFrom);\r\n }\r\n\r\n function SaveGSTSettings() {\r\n\r\n\r\n var inputdata1 = {\r\n\r\n CompanyId: CompanyId,\r\n GSTFor: vm.GST.SelectedGST.Key,\r\n Percentage: vm.GST.Percentage,\r\n // EffectiveFrom: Date.parse(vm.GST.EnquiryDate),\r\n strEffectiveFrom: $filter('date')(vm.GST.EffectiveFrom, 'dd/MMM/yyyy'),\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n\r\n CRM_GstSettingService.SaveUpdateGSTSettings(inputdata1).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"GST Settings\");\r\n Cancel();\r\n Init();\r\n }\r\n else\r\n $rootScope.showToaster('error', res.data.Message, \"GST Settings\");\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"GST Settings\");\r\n });\r\n\r\n\r\n }\r\n\r\n function Create() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.GST = {};\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.GST = {};\r\n\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ModifyProjectDetails')\r\n .controller('CRM_ModifyProjectDetailsCtrl', CRM_ModifyProjectDetailsCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ModifyProjectDetailsCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams,EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n vm.TileBack=TileBack;\r\n vm.EditProject = EditProject;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader ;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '6',\r\n ApprovalFor: 'Location',\r\n ProjectId : 0\r\n };\r\n ProjectDetailsApprovalService.GetAllProjectDetailsApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovalDetailList = res.data;\r\n for (var i in vm.ApprovalDetailList) {\r\n vm.ApprovalDetailList[i].LocDtls = JSON.parse(vm.ApprovalDetailList[i].LocationDetails);\r\n vm.ApprovalDetailList[i].AreaDtls = JSON.parse(vm.ApprovalDetailList[i].AreaUnits);\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function EditProject(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n // debugger;\r\n vm.Project = angular.copy(row);\r\n\r\n vm.BasicLocationList = JSON.parse(vm.Project.LocationDetails);\r\n vm.AllRequiredDetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n }\r\n\r\n\r\n vm.ProjectApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = 4;\r\n else\r\n StatusId = 6;\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputData = {\r\n SetupId: vm.Project.SetupId,\r\n Status: StatusId,\r\n ApprovalFor: 'Location',\r\n CreatedBy: loggeduser.UserId\r\n };\r\n\r\n ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n if (approval == 'Approve')\r\n $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n else\r\n $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n function TileBack(){\r\n \r\n $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId, TileId:'ProjectDetailsSetup',SetupType:''});\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ModifyProjectDetails_New')\r\n .controller('CRM_ModifyProjectDetails_NewCtrl', CRM_ModifyProjectDetails_NewCtrl);\r\n\r\n function CRM_ModifyProjectDetails_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, CRM_projectInitiationService, CRM_CopyAreaDetailsService, projectDetailsSetupService, AuthenticationService, ProjectDetailsApprovalService, CRM_parkingLocationSetupService) {\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.TileBack = TileBack;\r\n vm.EditProjectNew = EditProjectNew;\r\n\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.LoadParkingInnerLocations = LoadParkingInnerLocations;\r\n vm.LoadTiers = LoadTiers;\r\n // vm.DeleteProject = DeleteProject;\r\n vm.LoadLocations = LoadLocations;\r\n // vm.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n vm.LoadParkingTiers = LoadParkingTiers;\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n // vm.LoadInnerTiers = LoadInnerTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Status: '6',\r\n ApprovalFor: 'Location'\r\n //ProjectId :0\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ApprovalDetailList = res.data;\r\n LoadLocations(CRMProjectId);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SelectedProjectDetails = res.data;\r\n\r\n vm.CRMReqFileList = JSON.parse(vm.SelectedProjectDetails[0].CRMRequiredFiles);\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n // var ReqDetails = '';\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n // vm.ReqFileList = JSON.parse(vm.ProjectList[i].CRMRequiredFiles);\r\n // }\r\n // }\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n\r\n\r\n vm.isLoading = false;\r\n // vm.isParkingTiers = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n\r\n function LoadParkingLocations(iIsParking, callback) {\r\n\r\n if (iIsParking == 'Yes') {\r\n vm.isLoadParkingTiers = true;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_parkingLocationSetupService.GetAllLocations(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ParkingLocationList = res1.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.isLoadParkingTiers = false;\r\n vm.ParkingLocationList = [];\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n var inputdatanew = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ReadFor: 'ApartmentType',\r\n LocationId: iBasicLocationId\r\n }\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.ApartmentList = res2.data;\r\n\r\n if (vm.ApartmentList.length > 0)\r\n vm.isLoadApartmentType = true;\r\n else\r\n vm.isLoadApartmentType = false;\r\n\r\n // var inputdatanew1 = {\r\n // ReadFor: 'FlatFacing',\r\n // ApartmentTypeId: null\r\n // }\r\n\r\n inputdatanew.ReadFor = 'FlatFacing';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.FlatFacingList = res3.data;\r\n\r\n inputdatanew.ReadFor = 'LocationFeature';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res4) {\r\n if (res4.status === 200) {\r\n vm.LocationFeatureList = res4.data;\r\n\r\n // var locinputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: iBasicLocationId,\r\n // SelectFor: 'Location',\r\n // Type: 'NA'\r\n // }\r\n // CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(locinputdata).then(function (res5) {\r\n // if (res5.status === 200) {\r\n // vm.UnSavedTiers = res5.data;\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n\r\n // if (vm.UnSavedTiers.length > 0) {\r\n // if (i == 0) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': 0 });\r\n // vm.BasicLocationList[0].NewLocation = firstTiers;\r\n // }\r\n // }\r\n // }\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n\r\n\r\n // projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n // if (res1.status === 200) {\r\n // vm.ParkingTiers = res1.data;\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n }\r\n }\r\n\r\n vm.ProjectApproval = function (approval) {\r\n\r\n // var StatusId;\r\n // if (approval == 'Approve')\r\n // StatusId = '4';\r\n // else\r\n // StatusId = '6'; \r\n\r\n var iLocationDetails = {};\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].selectedTier) {\r\n iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n }\r\n }\r\n\r\n var iParkingLocationId = null;\r\n var iParkingTierId = null;\r\n var iParkingLocationDetails = {};\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n iParkingLocationId = vm.Project.selectedParkingLocation.LocationId;\r\n iParkingTierId = vm.ParkingBasicLocationList[vm.ParkingBasicLocationList.length - 1].selectedParkingTier.TierId;\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier) {\r\n iParkingLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.ParkingBasicLocationList[i].selectedParkingTier.TierId;\r\n }\r\n }\r\n }\r\n\r\n var iUploadfiles = [];\r\n\r\n var iUploadfiles = {\r\n ProjectUpload: JSON.stringify(vm.selectedProjectFileList),\r\n ParkingUpload: JSON.stringify(vm.selectedParkFileList),\r\n };\r\n\r\n var inputData = {\r\n SetupId: vm.Project.SetupId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n LocationDetails: JSON.stringify(iLocationDetails),\r\n PropertyTypeId: vm.Project.selectedApartment.Id,\r\n UnitId: vm.Project.selectedMasterunit.UnitId,\r\n Uploadfiles: '',\r\n ParkingLocationId: iParkingLocationId,\r\n ParkingTierId: iParkingTierId,\r\n ParkingLocationDetails: JSON.stringify(iParkingLocationDetails),\r\n CarpetArea: vm.Project.CarpetArea,\r\n CommonArea: vm.Project.CommonArea,\r\n SalableArea: vm.Project.SalableArea,\r\n SuperBuiltUpArea: vm.Project.SuperBuiltUpArea,\r\n UDSArea: vm.Project.UDSArea,\r\n Balcony :vm.Project.Balcony ,\r\n Verandah :vm.Project.Verandah,\r\n Utility : vm.Project.Utility,\r\n Services:vm.Project.Services,\r\n OpenTerrace:vm.Project.OpenTerrace,\r\n UnitType:vm.Project.UnitType,\r\n ReraUnitType:vm.Project.ReraUnitType,\r\n FlatFacingId: vm.Project.selectedFlatFacing.Id,\r\n FlatFeatureId: vm.Project.selectedLocationFeature.Id,\r\n Status: 2,\r\n Process: 'Save',\r\n CreatedBy: loggeduser.UserId,\r\n }\r\n\r\n var formData = new FormData();\r\n // if (!vm.isEditing) {\r\n // for (var i in vm.selectedProjectFileList) {\r\n // formData.append(vm.selectedProjectFileList[i].key, vm.selectedProjectFileList[i].selectedFile);\r\n // }\r\n\r\n // for (var i in vm.selectedParkFileList) {\r\n // formData.append(vm.selectedParkFileList[i].key, vm.selectedParkFileList[i].selectedFile);\r\n // }\r\n // }\r\n\r\n\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n // formData.append(\"ProjectUpload\", vm.selectedProjectFileList);\r\n // formData.append(\"ParkingUpload\", vm.selectedParkFileList);\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n\r\n if (approval === 'Approve') {\r\n $rootScope.showToaster('success', 'Approved successfully', \"Project Details Setup\");\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Rejected', \"Project Details Setup\");\r\n }\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Details Setup\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function LoadParkingInnerLocations(iTierId, callback) {\r\n if (iTierId) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedParkingLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewParkingBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewParkingBasicLocationList) {\r\n if (vm.NewParkingBasicLocationList[i].Tiers === vm.ParkingBasicLocationList[i].Tiers && vm.NewParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.NewParkingBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[i].selectedParkingTier.Code;\r\n }\r\n\r\n vm.Project.ParkingCode = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n }\r\n }\r\n function LoadInnerLocations(iTierId, Level, callback) {\r\n\r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null; \r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == (Level - 1)) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // }\r\n // else if ((Level - 1) < i) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // vm.BasicLocationList[i].NewLocation = [];\r\n // }\r\n // }\r\n }\r\n }\r\n // function LoadInnerTiers(iTierId, callback) {\r\n // if (iTierId) {\r\n // var tierdtls = lodash.filter(vm.UnSavedTiers, { 'TierId': iTierId });\r\n\r\n // var levelNo = parseInt(tierdtls[0].TierLevel);\r\n\r\n // var iCode = '';\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == levelNo) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': iTierId });\r\n // vm.BasicLocationList[i].NewLocation = firstTiers;\r\n // }\r\n\r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n // }\r\n // }\r\n function EditProjectNew(row) {\r\n\r\n vm.isEditing = true;\r\n vm.Project = {};\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = false;\r\n\r\n vm.buttonhide = false;\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n var iCode = '';\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + vm.BasicLocationList[i].selectedTier.Code;\r\n }\r\n vm.Project.Code = iCode;\r\n for (var i in vm.ApartmentList) {\r\n if (vm.ApartmentList[i].Id == vm.Project.PropertyTypeId) {\r\n vm.Project.selectedApartment = vm.ApartmentList[i];\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n LoadParkingLocations(vm.ApartmentList[i].IsParking);\r\n\r\n for (var a in vm.ParkingLocationList) {\r\n if (vm.ParkingLocationList[a].LocationId == vm.Project.ParkingLocationId) {\r\n vm.Project.selectedParkingLocation = vm.ParkingLocationList[a];\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.ParkingLocationId,\r\n ApprovalFor: 'Parking',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedParkTierDetails = res.data;\r\n var allSelectParkLocations = JSON.parse(vm.Project.ParkingLocationDetails);\r\n LoadParkingTiers(vm.Project.ParkingLocationId, function () {\r\n if (vm.ParkingBasicLocationList) {\r\n var iCode = '';\r\n for (var b in vm.ParkingBasicLocationList) {\r\n vm.ParkingBasicLocationList[b].NewLocation = JSON.parse(vm.SavedParkTierDetails[b].TierValue);\r\n for (var j in vm.ParkingBasicLocationList[b].NewLocation) {\r\n if (vm.ParkingBasicLocationList[b].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(b) + 1)]) {\r\n // if (vm.ParkingBasicLocationList[i].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.ParkingBasicLocationList[b].selectedParkingTier = vm.ParkingBasicLocationList[b].NewLocation[j];\r\n }\r\n }\r\n if (vm.ParkingBasicLocationList[b].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[b].selectedParkingTier.Code;\r\n }\r\n }\r\n vm.Project.ParkingCode = iCode;\r\n\r\n });\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n // if (vm.Project.selectedParkingLocation != undefined) {\r\n\r\n // }\r\n vm.selectedParkFileList = [];\r\n var SavedParkUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ParkingUpload);\r\n for (var a in SavedParkUploadList) {\r\n if (SavedParkUploadList.hasOwnProperty(a)) {\r\n vm.selectedParkFileList.push({\r\n key: a,\r\n selectedFile: SavedParkUploadList[a]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.Project.UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.FlatFacingList) {\r\n if (vm.FlatFacingList[i].Id == vm.Project.FlatFacingId) {\r\n vm.Project.selectedFlatFacing = vm.FlatFacingList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.LocationFeatureList) {\r\n if (vm.LocationFeatureList[i].Id == vm.Project.FlatFeatureId) {\r\n vm.Project.selectedLocationFeature = vm.LocationFeatureList[i];\r\n }\r\n }\r\n }\r\n\r\n\r\n // RejectionRemarks: vm.Project.RejectionRemarks;\r\n\r\n vm.selectedProjectFileList = [];\r\n var SavedProjectUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ProjectUpload);\r\n for (var a in SavedProjectUploadList) {\r\n if (SavedProjectUploadList.hasOwnProperty(a)) {\r\n vm.selectedProjectFileList.push({\r\n key: a,\r\n selectedFile: SavedProjectUploadList[a]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n function LoadParkingTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ParkingBasicLocationList = res.data;\r\n if (callback)\r\n callback();\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.ParkingBasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedParkingLocation = null;\r\n vm.ParkingBasicLocationList = [];\r\n // vm.BasicLocationList = [];\r\n // vm.ApartmentList = [];\r\n // vm.isLoadApartmentType = false;\r\n }\r\n }\r\n // function DeleteProject(row) {\r\n\r\n // var confirm = dialogs.confirm('Confirm',\r\n // 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n // confirm.result.then(function () {\r\n\r\n // var inputData = {\r\n // SetupId: row.SetupId,\r\n // Process: 'Delete',\r\n // };\r\n\r\n // var formData = new FormData();\r\n // formData.append(\"inputdata\", JSON.stringify(inputData));\r\n\r\n // projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Role\");\r\n // Init();\r\n // } else {\r\n // dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n // }\r\n // },\r\n // function (err) {\r\n // dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n // });\r\n // }, function () {\r\n\r\n // })\r\n // }\r\n vm.RemoveProjectFileType = function (fileType, UploadFor) {\r\n\r\n // if (vm.isAdd)\r\n\r\n\r\n if (vm.isEditing) {\r\n var objDel = {\r\n SetupId: vm.Project.SetupId,\r\n Uploadfiles: vm.Project.Uploadfiles,\r\n Key: fileType.key,\r\n UpdateFor: UploadFor\r\n }\r\n projectDetailsSetupService.UpdateandDeleteProjectFileUpload(objDel).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', ' Deleted Successfully', \"Project Details Setup\");\r\n\r\n vm.Project.Uploadfiles = res.data[0].Uploadfiles;\r\n // if (UploadFor == 'ProjectUpload') {\r\n var selectedPrjFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ProjectUpload']);\r\n vm.selectedProjectFileList = [];\r\n\r\n for (var i in selectedPrjFiles) {\r\n if (selectedPrjFiles.hasOwnProperty(i)) {\r\n vm.selectedProjectFileList.push({\r\n key: i,\r\n selectedFile: selectedPrjFiles[i]\r\n });\r\n }\r\n }\r\n\r\n\r\n var selectedParkFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ParkingUpload']);\r\n vm.selectedParkFileList = [];\r\n\r\n\r\n for (var i in selectedParkFiles) {\r\n if (selectedParkFiles.hasOwnProperty(i)) {\r\n vm.selectedParkFileList.push({\r\n key: i,\r\n selectedFile: selectedParkFiles[i]\r\n });\r\n }\r\n }\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n else {\r\n\r\n if (UploadFor == 'ProjectUpload') {\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.selectedProjectFileList[i].key === fileType.key) {\r\n vm.selectedProjectFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n else {\r\n\r\n for (var i in vm.selectedParkFileList) {\r\n if (vm.selectedParkFileList[i].key === fileType.key) {\r\n vm.selectedParkFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function Cancel() {\r\n vm.Project = {};\r\n vm.isFormOpen = true;\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n\r\n Init();\r\n\r\n\r\n\r\n // vm.isFormOpen = false;\r\n // vm.location = {};\r\n // vm.tiers = [];\r\n }\r\n function TileBack() {\r\n\r\n // $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId });\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectDetailsSetup', SetupType: '' });\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRMLocationPropertyTypeSetup')\r\n .controller('CRMLocationPropertyTypeSetupCtrl', CRMLocationPropertyTypeSetupCtrl);\r\n\r\n /** @ngInject */\r\n function CRMLocationPropertyTypeSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, projectCreationService, StateService, AuthenticationService, projectDetailsSetupService, CRM_LocationPropertyTypeSetupService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // End of Pagination code\r\n\r\n vm.Create = Create;\r\n\r\n vm.Cancel = Cancel;\r\n vm.LoadBasicLocation = LoadBasicLocation;\r\n vm.SaveLocPropertyType = SaveLocPropertyType;\r\n vm.DeleteLocPropertyType = DeleteLocPropertyType;\r\n vm.EditLocPropertyType = EditLocPropertyType;\r\n vm.Showsaveandcancel = false;\r\n \r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n\r\n vm.Project = {};\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: null,\r\n LocationId: null\r\n };\r\n CRM_LocationPropertyTypeSetupService.GetAllCRMLocationPropertyType(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PropertyTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Property Type\");\r\n });\r\n\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: 0\r\n };\r\n CRM_projectInitiationService.ApprovedProjects(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Property Type\");\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n function LoadBasicLocation(iProjectId, callback) {\r\n\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n //basic location onchange function for editing\r\n if (vm.isEditing) {\r\n for (var c in vm.LocationList) {\r\n if (vm.LocationList[c].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[c];\r\n }\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Property Type\");\r\n });\r\n }\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.Project = {};\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Project = {};\r\n }\r\n\r\n function SaveLocPropertyType(Project) {\r\n vm.isLoading = true;\r\n vm.Project.IsParking;\r\n\r\n var isParking = \"0\";\r\n if (vm.Project.IsParking)\r\n isParking = \"1\";\r\n\r\n var iPropertyTypeId = 0;\r\n\r\n if (vm.isEditing)\r\n iPropertyTypeId = vm.Project.PropertyTypeId;\r\n\r\n var inputData = {\r\n PropertyTypeId: iPropertyTypeId,\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Project.selectedProject.ProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyType: vm.Project.SelectedProperty,\r\n IsParking: isParking,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n\r\n\r\n CRM_LocationPropertyTypeSetupService.SaveDeleteLocationPropertyType(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Location Property Type\");\r\n Cancel();\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Property Type\");\r\n });\r\n }\r\n\r\n\r\n function EditLocPropertyType(row) {\r\n\r\n vm.isEditing = true;\r\n vm.Project = angular.copy(row);\r\n vm.isFormOpen = true;\r\n\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === vm.Project.ProjectId) {\r\n vm.Project.selectedProject = vm.ProjectList[c];\r\n LoadBasicLocation(vm.Project.ProjectId);\r\n // LoadBasicLocation(vm.Project.ProjectId, function () {\r\n // for (var c in vm.LocationList) {\r\n // if (vm.LocationList[c].LocationId === vm.Project.LocationId) {\r\n // vm.Project.selectedLocation = vm.LocationList[c];\r\n // }\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n vm.Project.SelectedProperty = vm.Project.PropertyType;\r\n\r\n if (vm.Project.IsParking == \"Yes\")\r\n vm.Project.IsParking = true;\r\n else\r\n vm.Project.IsParking = false;\r\n }\r\n\r\n\r\n\r\n\r\n function DeleteLocPropertyType(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n var inputData1 = {\r\n PropertyTypeId: row.PropertyTypeId,\r\n CompanyId: CompanyId,\r\n ProjectId: 0,\r\n LocationId: 0,\r\n PropertyType: '',\r\n IsParking: '',\r\n CreatedBy: 0,\r\n Process: 'Delete',\r\n };\r\n\r\n CRM_LocationPropertyTypeSetupService.SaveDeleteLocationPropertyType(inputData1).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Role\");\r\n Cancel();\r\n Init();\r\n } else {\r\n dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n }\r\n },\r\n function (err) {\r\n dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n })\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ModifyProjectPrice')\r\n .controller('CRM_ModifyProjectPriceCtrl', CRM_ModifyProjectPriceCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ModifyProjectPriceCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n vm.Project = {};\r\n vm.EditProject = EditProject;\r\n vm.isLoading = true;\r\n vm.Cancel = Cancel;\r\n vm.LoadTiers = LoadTiers;\r\n vm.TileBack=TileBack;\r\n \r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n vm.Header = TitleHeader ;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '6',\r\n ApprovalFor: 'Rate'\r\n };\r\n ProjectDetailsApprovalService.ProjectRateApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RateApprovalList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadTiers(iProjectId, callback) {\r\n \r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '6',\r\n ApprovalFor: 'Rate',\r\n ProjectId: iProjectId\r\n };\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function EditProject(row) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n\r\n vm.ProjectPriceDetails = angular.copy(row);\r\n\r\n vm.Project.ProjectName = vm.ProjectPriceDetails.ProjectName;\r\n\r\n for (var i in vm.RateApprovalList) {\r\n if (vm.RateApprovalList[i].ProjectId == vm.ProjectPriceDetails.ProjectId) {\r\n vm.Project.selectedProject = vm.RateApprovalList[i];\r\n }\r\n }\r\n\r\n LoadTiers(vm.Project.selectedProject.ProjectId, function () {\r\n for (var i in vm.TierDetails) {\r\n if (vm.TierDetails[i].TierId === vm.ProjectPriceDetails.TierId) {\r\n vm.Project.selectedTier = vm.TierDetails[i];\r\n // vm.Project.selectedTier.SetupId = vm.TierDetails[i].SetupId;\r\n }\r\n }\r\n });\r\n\r\n var bltuparea = JSON.parse(vm.ProjectPriceDetails.AreaUnits);\r\n\r\n for (var i = 0; i < Object.keys(bltuparea).length; i++) {\r\n if (Object.keys(bltuparea)[i] == 'Super Builtup Area') {\r\n vm.Project.BuiltupArea = (Object.values(bltuparea)[i]);\r\n }\r\n }\r\n\r\n vm.Project.TierName = vm.ProjectPriceDetails.TierValue;\r\n\r\n vm.Project.RatePerUnitArea = vm.ProjectPriceDetails.RatePerUnit;\r\n vm.Project.BookingPrice = vm.ProjectPriceDetails.BookingPercentage;\r\n vm.Project.TotalCost = vm.ProjectPriceDetails.TotalCost;\r\n vm.Project.StatutoryCost = vm.ProjectPriceDetails.StatutoryCost;\r\n vm.Project.TotalBasicCost = vm.Project.RatePerUnitArea * vm.Project.BuiltupArea;\r\n\r\n\r\n var StatDetails = JSON.parse(vm.ProjectPriceDetails.StatutoryDetails);\r\n\r\n vm.Project.UDS = StatDetails.UDS;\r\n vm.Project.RateofLand = StatDetails.RateofLand;\r\n vm.Project.CostofLand = StatDetails.CostofLand;\r\n vm.Project.CostofConstruction = StatDetails.CostofConstruction;\r\n vm.Project.StampdutyCharges = StatDetails.StampdutyCharges;\r\n vm.Project.ParkingCharges = StatDetails.ParkingCharges;\r\n vm.Project.ThreePhaseCharges = StatDetails.ThreePhaseCharges;\r\n vm.Project.DTPCharges = StatDetails.DTPCharges;\r\n vm.Project.DTCPApprovalCharges = StatDetails.DTCPApprovalCharges;\r\n vm.Project.SewerageWaterCharges = StatDetails.SewerageWaterCharges;\r\n vm.Project.DrinkingWaterCharges = StatDetails.DrinkingWaterCharges;\r\n vm.Project.AdvanceMaintenance = StatDetails.AdvanceMaintenance;\r\n vm.Project.LegalCharges = StatDetails.LegalCharges;\r\n vm.Project.SolarPwrGeneration = StatDetails.SolarPwrGeneration;\r\n vm.Project.SolarWaterHeater = StatDetails.SolarWaterHeater;\r\n vm.Project.ClubMemberCharges = StatDetails.ClubMemberCharges;\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n vm.ProjectPriceApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = 4;\r\n else\r\n StatusId = 6;\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputData = {\r\n SetupId: vm.ProjectPriceDetails.SetupId,\r\n Status: StatusId,\r\n ApprovalFor: 'Rate',\r\n CreatedBy: loggeduser.UserId\r\n };\r\n\r\n ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n if (approval == 'Approve')\r\n $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n else\r\n $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function TileBack(){\r\n \r\n $state.go('CRM_ProjectPropertyInfoTiles',{ ProjectId: CRMProjectId, TileId:'ProjectPriceSetup',SetupType:''});\r\n }\r\n \r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_PaymentScheduleMapping')\r\n .controller('CRM_PaymentScheduleMappingCtrl', CRM_PaymentScheduleMappingCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_PaymentScheduleMappingCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, PaymentScheduleMasterService, CRM_projectInitiationService, CRM_projectLocationSetupService, AuthenticationService, projectDetailsSetupService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isFormOpen = true;\r\n vm.isGridOpen = false;\r\n vm.selectAll=selectAll\r\n vm.select=select;\r\n\r\n vm.isLoading = true;\r\n vm.Cancel = Cancel;\r\n vm.Schedule = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.LoadLocations = LoadLocations;\r\n vm.LoadApartmentTypes = LoadApartmentTypes;\r\n vm.LoadStatutory = LoadStatutory;\r\n vm.SaveSetting = SaveSetting;\r\n vm.selected = [];\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllProjectsList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n\r\n function LoadLocations(iProjectId) {\r\n if (iProjectId > 0 && iProjectId != undefined) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n }\r\n\r\n CRM_projectLocationSetupService.GetAllLocations(inputdata).then(function (result) {\r\n if (result.status == 200) {\r\n vm.ProjectLocations = result.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.ProjectLocations = [];\r\n vm.Schedule.SelectedLocation = null;\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }\r\n function LoadApartmentTypes(iLocationId, callback) {\r\n\r\n if (iLocationId > 0 && iLocationId != undefined) {\r\n\r\n var inputdatanew = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Schedule.SelectedProject.ProjectId,\r\n ReadFor: 'ApartmentType',\r\n LocationId: iLocationId,\r\n }\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.ApartmentList = res2.data;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n else {\r\n vm.ApartmentList = [];\r\n vm.Schedule.selectedApartment = null;\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }\r\n\r\n function LoadStatutory(iPropertyTypeId) {\r\n if (iPropertyTypeId > 0 && iPropertyTypeId != undefined) {\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Schedule.SelectedProject.ProjectId,\r\n LocationId: vm.Schedule.SelectedLocation.LocationId,\r\n PropertyTypeId: iPropertyTypeId\r\n }\r\n\r\n vm.StatutorySettingsList = [];\r\n\r\n PaymentScheduleMasterService.GetReadMappedPaymentSchedule(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StatutorySettingsList = res.data;\r\n vm.isLoading = false;\r\n vm.isGridOpen = true;\r\n\r\n vm.selected = [];\r\n\r\n for (var c in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[c].Selected == 1) {\r\n vm.StatutorySettingsList[c].isSelected = true;\r\n\r\n // var vle = {\r\n // Value: vm.StatutorySettingsList[c].MultiplyingFactor\r\n // }\r\n\r\n // vm.StatutorySettingsList[c].selectedFactor = vle;\r\n }\r\n else\r\n vm.StatutorySettingsList[c].isSelected = false;\r\n }\r\n }\r\n else {\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }\r\n\r\n\r\n \r\n\r\n function SaveSetting(Schedule) {\r\n \r\n var a = vm.StatutorySettingsList;\r\n var selectedlist = [];\r\n \r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].isSelected == true)\r\n selectedlist.push(vm.StatutorySettingsList[i].ScheduleId);\r\n }\r\n \r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Schedule.SelectedProject.ProjectId,\r\n LocationId: vm.Schedule.SelectedLocation.LocationId,\r\n PropertyTypeId: Schedule.selectedApartment.Id,\r\n ScheduleIds: JSON.stringify({ Id: selectedlist }),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n \r\n PaymentScheduleMasterService.UpdateSavePaymentScheduleMapping(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Statutory Mapping\");\r\n Cancel();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Statutory Mapping\");\r\n });\r\n }\r\n // function SaveSetting(Settings) {\r\n\r\n // var a = vm.StatutorySettingsList;\r\n // var selectedlist = [];\r\n\r\n // var Issuccess = true;\r\n\r\n // var cnt = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].isSelected == true) {\r\n\r\n // cnt = cnt + 1;\r\n\r\n // if (vm.StatutorySettingsList[i].selectedFactor != undefined) {\r\n // var vls = {\r\n // Id: vm.StatutorySettingsList[i].StatutoryId,\r\n // MultiplyingFactor: vm.StatutorySettingsList[i].selectedFactor.Value\r\n // }\r\n // selectedlist.push(JSON.stringify(vls));\r\n // }\r\n // else {\r\n // Issuccess = false;\r\n // }\r\n // }\r\n // }\r\n\r\n // if (cnt > 0 && Issuccess) {\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: vm.Schedule.SelectedProject.ProjectId,\r\n // LocationId: vm.Schedule.SelectedLocation.LocationId,\r\n // PropertyTypeId: Settings.selectedApartment.Id,\r\n // StatutoryIds: JSON.stringify(selectedlist),\r\n // CreatedBy: logggedUser.UserId\r\n // }\r\n\r\n // PaymentScheduleMasterService.UpdateSavePaymentScheduleMapping(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Project Statutory Mapping\");\r\n // Cancel();\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Statutory Mapping\");\r\n // });\r\n // }\r\n // else {\r\n // if (cnt == 0) {\r\n // $rootScope.showToaster('error', 'Please select any statutory', \"Project Statutory Mapping\");\r\n // }\r\n // else if (!Issuccess) {\r\n // $rootScope.showToaster('error', 'Tessst', \"Project Statutory Mapping\");\r\n // }\r\n // }\r\n // }\r\n\r\n function select(id) {\r\n \r\n var found = vm.selected.indexOf(id);\r\n \r\n if (found == -1) vm.selected.push(id);\r\n \r\n else vm.selected.splice(found, 1);\r\n }\r\n \r\n function selectAll(collection) {\r\n \r\n // if there are no items in the 'selected' array, \r\n // push all elements to 'selected'\r\n if (vm.selected.length === 0) {\r\n \r\n angular.forEach(collection, function (val) {\r\n \r\n vm.selected.push(val.id);\r\n \r\n });\r\n \r\n // if there are items in the 'selected' array, \r\n // add only those that ar not\r\n } else if (vm.selected.length > 0 && vm.selected.length != vm.StatutorySettingsList.length) {\r\n \r\n angular.forEach(collection, function (val) {\r\n \r\n var found = vm.selected.indexOf(val.id);\r\n \r\n if (found == -1) vm.selected.push(val.id);\r\n \r\n });\r\n \r\n // Otherwise, remove all items\r\n }\r\n else {\r\n vm.selected = [];\r\n }\r\n }\r\n \r\n function Cancel() {\r\n vm.isFormOpen = true;\r\n vm.isGridOpen = false;\r\n vm.isLoading = true;\r\n vm.Schedule = {};\r\n vm.selected = [];;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ModifyProjectPrice_New')\r\n .controller('CRM_ModifyProjectPrice_NewCtrl', CRM_ModifyProjectPrice_NewCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ModifyProjectPrice_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectDetailsSetupService, CRM_GstSettingService, projectCreationService, StateService, AuthenticationService, CRM_ProjectDetailsPriceSetupNewService, CRM_StatutoryMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n\r\n\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.EditProjectPrice = EditProjectPrice;\r\n vm.DeleteProjectPrice = DeleteProjectPrice;\r\n vm.ShowStatutoryPercentageNew = ShowStatutoryPercentageNew;\r\n vm.LoadStatutoryDetails = LoadStatutoryDetails;\r\n vm.LoadAllTiers = LoadAllTiers;\r\n\r\n vm.TileBack = TileBack;\r\n\r\n\r\n vm.Cancel = Cancel;\r\n\r\n vm.Create = Create;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.ReadAreaDetails = ReadAreaDetails;\r\n vm.CostCalculation = CostCalculation;\r\n // vm.StatutoryCalculation = StatutoryCalculation;\r\n vm.ShowStatutoryPercentage = ShowStatutoryPercentage;\r\n\r\n vm.SaveProjectPriceDetails = SaveProjectPriceDetails;\r\n\r\n vm.Project = {};\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.RateApprovalList = [];\r\n vm.GSTSettingsList = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n\r\n vm.StatutoryTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Lump Sum' }, { 'Value': 'Percentage' }];\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n\r\n var rateaprvlinputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Rate',\r\n Status: '6'\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(rateaprvlinputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.RateApprovalList = res1.data;\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetCountryCurrency_ByProjectId(inputcountry).then(function (resCurrency) {\r\n if (resCurrency.status === 200) {\r\n vm.CurrencyDetails = resCurrency.data;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n };\r\n\r\n projectDetailsSetupService.ReadApprovedBasicLocations_ForPrice(inputdata).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.LocationList = res2.data;\r\n\r\n var inputGst = {\r\n CompanyId: CompanyId,\r\n GSTFor: 'TotalBasic',\r\n }\r\n CRM_GstSettingService.GetReadReadGSTSettings(inputGst).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.GSTSettingsList = res3.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Payment Schedule Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // ApprovalFor: 'Location',\r\n // };\r\n\r\n // projectDetailsSetupService.ReadApprovedBasicLocations_ForPrice(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationList = res.data;\r\n\r\n // var rateaprvlinputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // ApprovalFor: 'Rate',\r\n // Status: '6'\r\n // };\r\n // projectDetailsSetupService.GetProjectDetailsandPrice_New(rateaprvlinputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.RateApprovalList = res.data;\r\n\r\n // var inputdata1 = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n // ApprovalFor: 'Location',\r\n // ProjectId: CRMProjectId\r\n // };\r\n\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n\r\n // var inputcountry = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // }\r\n\r\n // CRM_ProjectDetailsPriceSetupNewService.GetCountryCurrency_ByProjectId(inputcountry).then(function (resCurrency) {\r\n // if (resCurrency.status === 200) {\r\n // vm.CurrencyDetails = resCurrency.data;\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n // for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // }\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // });\r\n\r\n // projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.UnitList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n\r\n\r\n // LoadTiers(CRMProjectId);\r\n\r\n\r\n }\r\n function LoadStatutoryDetails(iPropertyTypeId, callback) {\r\n if (iPropertyTypeId) {\r\n\r\n var inputStatutory = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: iPropertyTypeId\r\n }\r\n\r\n vm.StatutorySettingsList = [];\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputStatutory).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n if (vm.StatutorySettingsList.length > 0) {\r\n vm.isStatutoryDetails = true;\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n \r\n var stTypeList = [];\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == '') {\r\n stTypeList = [{ 'Value': 'Lump Sum' }];\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else {\r\n stTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Percentage' }];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n vm.StatutorySettingsList[i].TypeList = stTypeList;\r\n vm.StatutorySettingsList[i].selectedType = stTypeList[0];\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].TypeList = [];\r\n }\r\n\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n }\r\n\r\n // if (!vm.isEditing)\r\n // LoadTiers(iBasicLocationId, function (callback) {\r\n // if (callback)\r\n // callback();\r\n // });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n // vm.StatutorySettingsList = [];\r\n // vm.isStatutoryDetails = false;\r\n // vm.Project.Code = '';\r\n // vm.BasicLocationList = [];\r\n\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (!vm.isEditing)\r\n ResetAllValues();\r\n\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n if (!vm.isEditing) {\r\n\r\n // var inputcountry = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId\r\n // }\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // // vm.isStatutoryDetails = true;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].SqftRate = 0;\r\n // vm.StatutorySettingsList[i].SqftValue = 0;\r\n // vm.StatutorySettingsList[i].Lumpsum = 0;\r\n // vm.StatutorySettingsList[i].Percentage = 0;\r\n // vm.StatutorySettingsList[i].PercentageValue = 0;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // }\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n ResetAllValues();\r\n if (iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n // if(vm.NewBasicLocationList.length == i)\r\n ReadAreaDetails(iTierId);\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n }\r\n }\r\n\r\n\r\n function ReadAreaDetails(iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n Status: '4',\r\n TierId: iTierId,\r\n }\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.CommonArea = 0;\r\n vm.Project.SuperBuiltUpArea = 0;\r\n vm.Project.CarpetArea = 0;\r\n\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.RateofLand = 0;\r\n\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n\r\n\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetProjectDetailsandPrice_ForTier(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectAreaDetails = res.data;\r\n\r\n if (vm.ProjectAreaDetails.length > 0) {\r\n if (vm.ProjectAreaDetails[0].SalableArea > 0) {\r\n vm.Project.SalableArea = vm.ProjectAreaDetails[0].SalableArea;\r\n vm.Project.UDSArea = vm.ProjectAreaDetails[0].UDSArea;\r\n vm.Project.CommonArea = vm.ProjectAreaDetails[0].CommonArea;\r\n vm.Project.SuperBuiltUpArea = vm.ProjectAreaDetails[0].SuperBuiltUpArea;\r\n vm.Project.CarpetArea = vm.ProjectAreaDetails[0].CarpetArea;\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.ProjectAreaDetails[0].UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n LoadStatutoryDetails(vm.ProjectAreaDetails[0].PropertyTypeId);\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n // CRM_ProjectDetailsPriceSetupNew\r\n // GetProjectDetailsandPrice_ForTier\r\n }\r\n function LoadAllTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n if (!vm.isEditing)\r\n LoadTiers(iBasicLocationId, function (callback) {\r\n if (callback)\r\n callback();\r\n });\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n function ResetAllValues() {\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n vm.Project.StatutoryCost = 0;\r\n vm.Project.TotalGST = 0;\r\n vm.Project.TotalCost = 0;\r\n }\r\n\r\n function CostCalculation() {\r\n // debugger\r\n vm.Project.TotalBasicCost = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.Project.RatePerUnit)).toFixed(2);\r\n vm.Project.CostofLand = (parseFloat(vm.Project.UDSArea) * parseFloat(vm.Project.RateofLand)).toFixed(2);\r\n vm.Project.CostofConstruction = (parseFloat(vm.Project.TotalBasicCost) - parseFloat(vm.Project.CostofLand)).toFixed(2);\r\n vm.Project.BookingAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.BookingPercentage)) / 100).toFixed(2);\r\n vm.Project.DiscountAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.DiscountPercentage)) / 100).toFixed(2);\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n }\r\n\r\n // ShowStatutoryPercentage(vm.StatutorySettingsList[i].StatutoryId, vm.StatutorySettingsList[i].selectedType.Value);\r\n }\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (vm.Project.TotalBasicCost * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(totalbasicgst);\r\n }\r\n\r\n // StatutoryCalculation();\r\n vm.Project.TotalGST = TotalGST.toFixed(2);\r\n vm.Project.StatutoryCost = TotalStatutoryCost.toFixed(2);\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n }\r\n\r\n\r\n\r\n function ShowStatutoryPercentage(iStatutoryId, Type) {\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].ShowPercentage = true;\r\n\r\n vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].RateAmount));\r\n\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n }\r\n // }\r\n }\r\n }\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = vm.Project.TotalBasicCost + vm.Project.StatutoryCost + vm.Project.TotalGST;\r\n }\r\n function SaveProjectPriceDetails() {\r\n\r\n var statDetails;\r\n\r\n var StatutoryDetails = [];\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var val1 = 0;\r\n var val2 = 0;\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n val1 = vm.StatutorySettingsList[i].SqftRate;\r\n val2 = vm.StatutorySettingsList[i].SqftValue;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n val2 = vm.StatutorySettingsList[i].Lumpsum;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n val1 = vm.StatutorySettingsList[i].Percentage;\r\n val2 = vm.StatutorySettingsList[i].PercentageValue;\r\n }\r\n\r\n // if(vm.StatutorySettingsList[i].selectedType.Value == '')\r\n\r\n statDetails = {\r\n 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId,\r\n 'Type': vm.StatutorySettingsList[i].selectedType.Value,\r\n 'RateAmount': val1,\r\n 'Percentage': vm.StatutorySettingsList[i].TaxPercentage,\r\n 'Amount': val2,\r\n 'GSTAmount': vm.StatutorySettingsList[i].GSTAmount\r\n }\r\n\r\n StatutoryDetails.push(statDetails);\r\n }\r\n }\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n RatePerUnit: vm.Project.RatePerUnit,\r\n RateofLand: vm.Project.RateofLand,\r\n BookingPercentage: vm.Project.BookingPercentage,\r\n BookingAmount: vm.Project.BookingAmount,\r\n DiscountPercentage: vm.Project.DiscountPercentage,\r\n DiscountAmount: vm.Project.DiscountAmount,\r\n StatutoryDetails: JSON.stringify(StatutoryDetails),\r\n StatutoryCost: vm.Project.StatutoryCost,\r\n TotalCost: vm.Project.TotalCost,\r\n Process: 'Save',\r\n Status: '2',\r\n CreatedBy: loggeduser.UserId\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata2).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n // function SaveProjectPriceDetails() {\r\n // // var StatusId; \r\n\r\n // // if (approval == 'Approve'){\r\n\r\n // // StatusId='4';\r\n // // }\r\n // // else{\r\n // // StatusId='6';\r\n\r\n // // }\r\n // var statDetails;\r\n\r\n // var StatutoryDetails = [];\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n // var amt = 0;\r\n\r\n // if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n // amt = vm.StatutorySettingsList[i].PercentageSum;\r\n // }\r\n // else {\r\n // amt = vm.StatutorySettingsList[i].LumpSum;\r\n // }\r\n\r\n // statDetails = {\r\n // 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId,\r\n // 'Type': vm.StatutorySettingsList[i].selectedType.Value,\r\n // 'RateAmount': vm.StatutorySettingsList[i].RateAmount,\r\n // 'Percentage': vm.StatutorySettingsList[i].TaxPercentage,\r\n // 'Amount': amt,\r\n // 'GSTAmount': vm.StatutorySettingsList[i].GSTAmount\r\n // }\r\n\r\n // StatutoryDetails.push(statDetails);\r\n // }\r\n // }\r\n\r\n // var inputdata2 = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId,\r\n // TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n // RatePerUnit: vm.Project.RatePerUnit,\r\n // RateofLand: vm.Project.RateofLand,\r\n // BookingPercentage: vm.Project.BookingPercentage,\r\n // BookingAmount: vm.Project.BookingAmount,\r\n // DiscountPercentage: vm.Project.DiscountPercentage,\r\n // DiscountAmount: vm.Project.DiscountAmount,\r\n // StatutoryDetails: JSON.stringify(StatutoryDetails),\r\n // StatutoryCost: vm.Project.StatutoryCost,\r\n // TotalCost: vm.Project.TotalCost,\r\n // Process: 'Save',\r\n // Status: 2,\r\n // CreatedBy: loggeduser.UserId\r\n // }\r\n\r\n // CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata2).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n // vm.isFormOpen = false;\r\n // Init();\r\n // }\r\n // else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n // vm.isFormOpen = true;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\");\r\n // });\r\n // }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Project = {};\r\n // Init();\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.Project = {};\r\n }\r\n\r\n function TileBack() {\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectPriceSetup', SetupType: '' });\r\n }\r\n function ShowStatutoryPercentageNew(iStatutoryId, Type) {\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (Type == undefined) {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function EditProjectPrice(row) {\r\n vm.isEditing = true;\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n\r\n for (var b in vm.UnitList) {\r\n\r\n if (vm.UnitList[b].UnitId == vm.Project.UnitId) {\r\n // vm.Project.selectedMasterunit.UnitName = vm.UnitList[b].UnitName;\r\n vm.Project.selectedMasterunit = vm.UnitList[b];\r\n }\r\n }\r\n\r\n // vm.UnitList\r\n\r\n // vm.Project.selectedMasterunit.UnitName\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: vm.Project.PropertyTypeId\r\n }\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n vm.isStatutoryDetails = true;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function (callback) {\r\n if (vm.BasicLocationList) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n if (sdtls.length > 0) {\r\n\r\n for (var j in vm.StatutoryTypeList) {\r\n if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n }\r\n }\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n vm.StatutorySettingsList[i].Lumpsum = sdtls[0].Amount;\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n vm.StatutorySettingsList[i].Percentage = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * sdtls[0].Percentage) / 100;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * sdtls[0].Percentage) / 100;\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // // vm.StatutorySettingsList[i].TaxPercentage = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // else if (sdtls[0].Type == 'Percentage') {\r\n\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(totalbasicgst)).toFixed(2);\r\n }\r\n\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n\r\n }\r\n // }\r\n // });\r\n\r\n\r\n }\r\n\r\n if (!callback)\r\n callback;\r\n });\r\n }\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n // }\r\n // });\r\n\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.LocationId,\r\n // ApprovalFor: 'Location',\r\n // TierId: row.TierId,\r\n // };\r\n\r\n // projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SavedLocTierDetails = res.data;\r\n // var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n // var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n // for (var j in vm.BasicLocationList[i].NewLocation) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n // }\r\n // }\r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n\r\n // var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true; \r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n // }\r\n // }\r\n // });\r\n\r\n\r\n // }\r\n // });\r\n }\r\n\r\n vm.isFormOpen = true;\r\n }\r\n function DeleteProjectPrice(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: row.LocationId,\r\n TierId: row.TierId,\r\n RatePerUnit: 0,\r\n RateofLand: 0,\r\n BookingPercentage: 0,\r\n BookingAmount: 0,\r\n DiscountPercentage: 0,\r\n DiscountAmount: 0,\r\n StatutoryDetails: '',\r\n StatutoryCost: 0,\r\n TotalCost: 0,\r\n Process: 'Delete',\r\n Status: '3',\r\n CreatedBy: 0\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .controller('CRM_PendingforApprovalCtrl', CRM_PendingforApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_PendingforApprovalCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.TileBack = TileBack;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.project = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} };\r\n //Methods\r\n vm.GetprojectType = GetprojectType;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n vm.project.WorkLocation = null;\r\n // vm.project.Approval = null;\r\n vm.ToggleChanged = ToggleChanged;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.editProject = editProject;\r\n vm.isEditingProPic = false;\r\n $scope.photoChanged = photoChanged;\r\n vm.editProPic = editProPic;\r\n // vm.ProjectImage = null;\r\n // vm.empProfilePic = vm.profilePicUrl = null;\r\n vm.ProjectImage = null;\r\n vm.ExtProjectImage = null;\r\n // Status =3;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n //////////////\r\n\r\n\r\n // LoadProjectCategory();\r\n // LoadPropertyType();\r\n LoadCountry();\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '2,3',\r\n ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PendingList = res.data;\r\n\r\n CRM_projectInitiationService.GetAllKPMESProjects().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadPropertyType(callback) {\r\n\r\n vm.PropertyTypeList = [];\r\n vm.ProjectTypeList = [];\r\n\r\n // var input = {\r\n // PropertyTypeId: 0,\r\n // ProjectTypeId: 0\r\n // };\r\n var objGetDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n };\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.PropertyTypeList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n\r\n projectCreationService.GetAllProjectCategory(objGetDTO).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PropertyTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n // function LoadProjectCategory(callback) {\r\n // projectCreationService.GetAllProjectCategory().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectCategoryList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n // }\r\n\r\n function GetprojectType(CategoryId, callBack) {\r\n // var input = {\r\n // PropertyTypeId: PropertyId,\r\n // ProjectTypeId: 0\r\n // };\r\n\r\n vm.ProjectTypeList = [];\r\n vm.project.selectedProjectTypeName = null;\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectTypeList = res.data;\r\n // if (vm.ProjectTypeList.length < 1) {\r\n // dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedPropertyType.PropertyType, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // } else {\r\n // if (callBack) {\r\n // callBack();\r\n // }\r\n // }\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n // });\r\n\r\n projectCreationService.GetProjectTypeByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectTypeList = res.data;\r\n if (vm.ProjectTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedProjectTypeName.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n function LoadCountry(callback) {\r\n var objCountry;\r\n CountryService.getAllCountry($http, $rootScope, objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // LoadProjectCategory();\r\n LoadPropertyType();\r\n vm.isLoading = false;\r\n }\r\n if (callback) {\r\n callback();\r\n } else {\r\n\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n ///// Get All State By Country\r\n function getStateListByCountryId(CountryId, callBack) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.project.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n \r\n\r\n\r\n\r\n\r\n\r\n function getCityListByStateId(StateId, callBack) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.project.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n function getAreaListByCityId(CityId, callBack) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.project.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isExistProject = true;\r\n vm.project.WorkLocation = 'ExistingType';\r\n vm.profilePicUrl = null;\r\n ToggleChanged();\r\n }\r\n\r\n function ToggleChanged() {\r\n if (vm.project.ToggleStatus) {\r\n vm.project.WorkLocation = 'NewType';\r\n vm.isExistProject = false;\r\n }\r\n else {\r\n vm.project.WorkLocation = 'ExistingType';\r\n vm.isExistProject = true;\r\n }\r\n }\r\n function editProject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.project = angular.copy(row);\r\n // vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/CRM/ProjectImages/' + row.ProjectImage;\r\n vm.ExtProjectImage=row.ProjectImage;\r\n if (vm.project.KPMESProjectId == 0) {\r\n // vm.project.WorkLocation = 'NewType';\r\n // vm.isExistProject = false;\r\n vm.project.ToggleStatus = true;\r\n ToggleChanged();\r\n }\r\n else {\r\n vm.project.ToggleStatus = false;\r\n ToggleChanged();\r\n // vm.project.WorkLocation = 'ExistingType';\r\n // vm.isExistProject = true;\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].KPMESProjectId === vm.project.KPMESProjectId) {\r\n vm.project.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n }\r\n\r\n // vm.project.selectedPropertyType = \r\n // vm.project.selectedProjectTypeName = \r\n\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n\r\n }\r\n }\r\n\r\n\r\n GetprojectType(vm.project.selectedPropertyType.ProjectCategoryId, function () {\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n }\r\n }\r\n );\r\n\r\n\r\n var dtlLocation = JSON.parse(vm.project.ProjectLocation);\r\n\r\n vm.project.PlotNo = dtlLocation.PlotNo;\r\n vm.project.Latitude = dtlLocation.Latitude;\r\n vm.project.Longitude = dtlLocation.Longitude;\r\n vm.project.ProjectImageName = vm.project.ProjectImage;\r\n\r\n\r\n getStateListByCountryId(dtlLocation.CountryId, function () {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === dtlLocation.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === dtlLocation.StateId) {\r\n vm.project.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(dtlLocation.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === dtlLocation.CityId) {\r\n vm.project.selectedCity = vm.CityList[c];\r\n }\r\n }\r\n });\r\n getAreaListByCityId(dtlLocation.CityId, function () {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === dtlLocation.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[c];\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n // vm.project.selectedArea.Pincode = dtlLocation.Pincode;\r\n }\r\n }\r\n });\r\n });\r\n\r\n // var dtlContact = JSON.parse(vm.project.ProjectContactDetails);\r\n // var dtlContact1 = JSON.parse(dtlContact.Contact1);\r\n // var dtlContact2 = JSON.parse(dtlContact.Contact2);\r\n // vm.empPer = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n // vm.empPer1 = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c].EmpAddress.FirstName;\r\n // }\r\n // }\r\n\r\n // vm.isComAddSameAsPerAdd = dtlContact.IsSameAddress;\r\n\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c].FirstName;\r\n // }\r\n // } \r\n }\r\n\r\n vm.update = function () {\r\n\r\n if (vm.isComAddSameAsPerAdd) {\r\n vm.empPer1 = angular.copy(vm.empPer.selectedemp);\r\n vm.empPer1.selectedemp = vm.empPer.selectedemp;\r\n } else {\r\n vm.empPer1 = {};\r\n }\r\n };\r\n\r\n /////\r\n $scope.$on('gmPlacesAutocomplete::placeChanged', function () {\r\n\r\n\r\n var location = vm.autocomplete.getPlace().geometry.location;\r\n var Latitude = location.lat();\r\n var Longitude = location.lng();\r\n vm.project.Latitude = Latitude;\r\n vm.project.Longitude = Longitude;\r\n $scope.$apply();\r\n\r\n });\r\n\r\n\r\n vm.LoadProjectDetails = function (ProjectId) {\r\n\r\n vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n }\r\n }\r\n\r\n // vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n // LoadProjectCategory(function () {\r\n // for (var i in vm.ProjectCategoryList) {\r\n // if (vm.ProjectCategoryList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n // vm.project.selectedProjectCategoryName = vm.ProjectCategoryList[i]\r\n // }\r\n // }\r\n // });\r\n\r\n // vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n\r\n // for (var i in vm.ProjectTypeList) {\r\n // if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n // vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n // }\r\n\r\n // }\r\n\r\n // })\r\n\r\n\r\n vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n\r\n }\r\n\r\n })\r\n\r\n vm.project.PlotNo = vm.Location.PlotNo;\r\n vm.project.Latitude = vm.Location.Latitude;\r\n vm.project.Longitude = vm.Location.Longitude;\r\n\r\n LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.Location.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.Location.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.Location.StateId) {\r\n vm.project.selectedState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n\r\n getCityListByStateId(vm.Location.StateId, function () {\r\n\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.Location.CityId) {\r\n vm.project.selectedCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n\r\n getAreaListByCityId(vm.Location.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.Location.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[i]\r\n }\r\n }\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n vm.SaveProjects = function (approval) {\r\n vm.isLoading = true;\r\n\r\n var LocationObj = {\r\n PlotNo: vm.project.PlotNo,\r\n CountryId: vm.project.selectedCountryName.CountryId,\r\n StateId: vm.project.selectedState.StateId,\r\n CityId: vm.project.selectedCity.CityId,\r\n AreaId: vm.project.selectedArea.AreaId,\r\n Pincode: vm.project.selectedArea.Pincode,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude\r\n }\r\n\r\n // var Contact1Entity = {\r\n // EmployeeId: vm.empPer.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer.selectedemp.EmpAddress.PerLandline,\r\n // KPOSTId: vm.empPer.selectedemp.KpostId\r\n // }\r\n // var Contact2Entity = '';\r\n // if (vm.empPer1.selectedemp != undefined) {\r\n // Contact2Entity = {\r\n // EmployeeId: vm.empPer1.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer1.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer1.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer1.selectedemp.EmpAddress.CommMobile,\r\n // KPOSTId: vm.empPer1.selectedemp.KpostId\r\n // }\r\n // }\r\n // var Contact2Entity = {\r\n // EmployeeId: vm.empPer1.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer1.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer1.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer1.selectedemp.EmpAddress.PerLandline,\r\n // KPOSTId: vm.empPer1.selectedemp.KpostId\r\n // }\r\n\r\n // var ContactDetails = {\r\n // Contact1: JSON.stringify(Contact1Entity),\r\n // IsSameAddress: vm.isComAddSameAsPerAdd,\r\n // Contact2: JSON.stringify(Contact2Entity),\r\n // }\r\n\r\n var prjName;\r\n var prjId;\r\n\r\n if (vm.project.WorkLocation === 'ExistingType') {\r\n prjId = vm.project.selectedProject.KPMESProjectId;\r\n prjName = vm.project.selectedProject.ProjectName;\r\n }\r\n else {\r\n prjId = 0;\r\n prjName = vm.project.ProjectName;\r\n }\r\n\r\n // var nprjid;\r\n // if (!vm.isEditing)\r\n // nprjid = 0;\r\n // else\r\n // nprjid = vm.project.ProjectId;\r\n var nprjid;\r\n if (!vm.isEditing) {\r\n nprjid = 0;\r\n }\r\n else {\r\n nprjid = vm.project.ProjectId;\r\n // vm.ProjectImage = vm.project.ProjectImageName;\r\n }\r\n // if (vm.project.ProjectImageName == '') {\r\n // vm.ProjectImage = '';\r\n // }\r\n // else\r\n // vm.ProjectImage = vm.project.ProjectImageName;\r\n\r\n var Statusdtl;\r\n if (approval == 'Approve')\r\n Statusdtl = 4;\r\n else\r\n Statusdtl = 6;\r\n\r\n var prjDtl = {\r\n ProjectLocation: JSON.stringify(LocationObj),\r\n // ProjectContactDetails: JSON.stringify(ContactDetails),\r\n ProjectContactDetails: '',\r\n ProjectId: nprjid,\r\n KPMESProjectId: prjId,\r\n ProjectName: prjName,\r\n // PropertyTypeId: vm.project.selectedPropertyType.PropertyTypeId,\r\n // ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n PropertyTypeId: vm.project.selectedPropertyType.ProjectCategoryId,\r\n ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude,\r\n EstimatedArea: vm.project.EstimatedArea,\r\n SaleArea: vm.project.SaleArea,\r\n ApartmentCount: vm.project.ApartmentCount,\r\n Status: Statusdtl,\r\n CompanyId: CompanyId,\r\n CreatedBy: loggeduser.UserId,\r\n // ProjectImage:'',\r\n }\r\n var formData = new FormData();\r\n\r\n\r\n // formData.append(\"Uploadfile2\", vm.Uploadfile2);\r\n // formData.append(\"Uploadfile3\", vm.Uploadfile3);\r\n formData.append(\"inputdata\", JSON.stringify(prjDtl));\r\n formData.append(\"ProjectImage\", vm.ProjectImage);\r\n\r\n // if (!vm.isEditing) {\r\n\r\n\r\n\r\n CRM_projectInitiationService.AddProjects(formData).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n\r\n Init();\r\n cancel();\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.isLoading = false;\r\n // } else {\r\n\r\n // CRM_projectInitiationService.AddProjects(prjDtl).then(function (res) {\r\n // $rootScope.showToaster('success', 'Project updated successfully', \"Success\");\r\n // Init();\r\n // cancel();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n }\r\n function editProPic() {\r\n vm.isEditingProPic = true;\r\n }\r\n\r\n function photoChanged(event) {\r\n\r\n var reader = new FileReader();\r\n if (!vm.isEditingProPic) {\r\n vm.ProjectImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.ProjectImage);\r\n } else {\r\n vm.ProjectImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.ProjectImage);\r\n var formData = new FormData();\r\n formData.append('ProjectImage', vm.ProjectImage);\r\n formData.append('ProjectId', vm.project.ProjectId);\r\n\r\n formData.append('ExtProjectImage', vm.ExtProjectImage);\r\n\r\n CRM_projectInitiationService.updateProjectImage(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Project Image changed succussfully', \"Success\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n }\r\n }\r\n\r\n\r\n $scope.imageIsLoaded = function (e) {\r\n $scope.$apply(function () {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.project = {};\r\n vm.profilePicUrl = null;\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_projectInitiationTiles');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .controller('CRM_ProjectInitiationCtrl', CRM_ProjectInitiationCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectInitiationCtrl($scope, $http, $rootScope, lodash, dialogs, $state, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isComAddSameAsPerAdd = false;\r\n vm.project = {};\r\n vm.empCom = { EmpAddress: {} };\r\n vm.empPer = { EmpAddress: {} };\r\n //Methods\r\n vm.GetprojectType = GetprojectType;\r\n vm.getStateListByCountryId = getStateListByCountryId;\r\n vm.getCityListByStateId = getCityListByStateId;\r\n vm.getAreaListByCityId = getAreaListByCityId;\r\n vm.project.WorkLocation = null;\r\n vm.DeleteProjectid = DeleteProjectid;\r\n vm.TileBack = TileBack;\r\n vm.ToggleChanged = ToggleChanged;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.editProject = editProject;\r\n vm.isEditingProPic = false;\r\n // Status =3;\r\n $scope.photoChanged = photoChanged;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.editProPic = editProPic;\r\n vm.ProjectImage = null;\r\n vm.ExtProjectImage = null;\r\n\r\n //////////////\r\n\r\n\r\n // LoadProjectCategory();\r\n // LoadPropertyType();\r\n vm.project.ProjectTypelabel = 'Sub Category of Project';\r\n LoadCountry();\r\n Init();\r\n function Init() {\r\n vm.project.ProjectTypelabel = 'Sub Category of Project';\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '3',\r\n ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PendingList = res.data;\r\n\r\n CRM_projectInitiationService.GetAllKPMESProjects().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadPropertyType(callback) {\r\n\r\n vm.PropertyTypeList = [];\r\n vm.ProjectTypeList = [];\r\n\r\n // var input = {\r\n // PropertyTypeId: 0,\r\n // ProjectTypeId: 0\r\n // };\r\n var objGetDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n };\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.PropertyTypeList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n projectCreationService.GetAllProjectCategory(objGetDTO).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PropertyTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n // function LoadProjectCategory(callback) {\r\n // projectCreationService.GetAllProjectCategory().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectCategoryList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // }\r\n // if (callback)\r\n // callback();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n // });\r\n // }\r\n\r\n function GetprojectType(CategoryId, callBack) {\r\n // var input = {\r\n // PropertyTypeId: PropertyId,\r\n // ProjectTypeId: 0\r\n // };\r\n\r\n vm.ProjectTypeList = [];\r\n if (CategoryId == undefined) {\r\n vm.project.selectedProjectTypeName = null;\r\n vm.project.ProjectTypelabel = 'Sub Category of Project';\r\n }\r\n else {\r\n vm.project.ProjectTypelabel = vm.project.selectedPropertyType.CategoryName;\r\n\r\n projectCreationService.GetProjectTypeByCategory(CategoryId).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.ProjectTypeList = res.data;\r\n\r\n if (vm.ProjectTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedPropertyType.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n // CRM_projectInitiationService.AllPropertyProjectsRead(input).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectTypeList = res.data;\r\n // if (vm.ProjectTypeList.length < 1) {\r\n // dialogs.notify('Warning', 'No Project Type available for ' + vm.project.selectedPropertyType.PropertyType, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // } else {\r\n // if (callBack) {\r\n // callBack();\r\n // }\r\n // }\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n // });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n function LoadCountry(callback) {\r\n var objCountry;\r\n CountryService.getAllCountry($http, $rootScope, objCountry).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // LoadProjectCategory();\r\n LoadPropertyType();\r\n vm.isLoading = false;\r\n }\r\n if (callback) {\r\n callback();\r\n } else {\r\n\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n ///// Get All State By Country\r\n function getStateListByCountryId(CountryId, callBack) {\r\n StateService.GetStateByCountryId(CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StateList = res.data;\r\n if (vm.StateList.length < 1) {\r\n dialogs.notify('Warning', 'No state available for ' + vm.project.selectedCountryName.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n function getCityListByStateId(StateId, callBack) {\r\n CityService.GetCityByStateId(StateId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CityList = res.data;\r\n if (vm.CityList.length < 1) {\r\n dialogs.notify('Warning', 'No city available for ' + vm.project.selectedState.StateName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n\r\n function getAreaListByCityId(CityId, callBack) {\r\n AreaService.GetAreaByCityId(CityId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AreaList = res.data;\r\n if (vm.AreaList.length < 1) {\r\n dialogs.notify('Warning', 'No area available for ' + vm.project.selectedCity.CityName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n function DeleteProjectid(ProjectIdToRemove) {\r\n\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n // var oldTierSelection = vm.tierList;\r\n confirm.result.then(function () {\r\n CRM_projectInitiationService.DeleteProjectid(ProjectIdToRemove.ProjectId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n Init();\r\n // getTiersByLocationId(vm.tier.selectedLocation.LocationId, vm.tier.selectedLocation.ProjectId, function () {\r\n // lodash.forEach(oldTierSelection, function (oldTier) {\r\n // lodash.forEach(vm.tierList, function (tier) {\r\n // if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n // tier.selectedTierValue = oldTier.selectedTierValue;\r\n // if (tier)\r\n // filterTiers(tier);\r\n // }\r\n // })\r\n // })\r\n // filterTiers()\r\n // });\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.project.ToggleStatus = true;\r\n ToggleChanged();\r\n vm.profilePicUrl = null;\r\n\r\n }\r\n function ToggleChanged() {\r\n\r\n vm.project.selectedProject = null;\r\n vm.project.selectedPropertyType = null;\r\n vm.project.selectedProjectTypeName = null;\r\n vm.project.PlotNo = null;\r\n vm.project.selectedCountryName = null;\r\n vm.project.selectedCity = null;\r\n vm.project.selectedState = null;\r\n vm.project.selectedArea = null;\r\n // vm.project.selectedArea.Pincode=null;\r\n vm.autocomplete = null;\r\n vm.project.Latitude = null;\r\n vm.project.Longitude = null;\r\n\r\n if (vm.project.ToggleStatus) {\r\n vm.project.WorkLocation = 'NewType';\r\n vm.isExistProject = false;\r\n }\r\n else {\r\n vm.project.WorkLocation = 'ExistingType';\r\n vm.isExistProject = true;\r\n // vm.LoadProjectDetails = null;\r\n\r\n }\r\n }\r\n\r\n\r\n function editProject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.project = angular.copy(row);\r\n // vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/CRM/ProjectImages/' + row.ProjectImage;\r\n vm.ExtProjectImage = row.ProjectImage;\r\n if (vm.project.KPMESProjectId == 0) {\r\n\r\n vm.project.ToggleStatus = true;\r\n ToggleChanged();\r\n\r\n // vm.project.WorkLocation = 'NewType';\r\n // vm.isExistProject = false;\r\n }\r\n else {\r\n vm.project.ToggleStatus = false;\r\n ToggleChanged();\r\n\r\n // vm.project.WorkLocation = 'ExistingType';\r\n // vm.isExistProject = true;\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].KPMESProjectId === vm.project.KPMESProjectId) {\r\n vm.project.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n }\r\n\r\n\r\n // vm.project.selectedPropertyType = \r\n // vm.project.selectedProjectTypeName = \r\n\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n\r\n }\r\n }\r\n\r\n GetprojectType(vm.project.selectedPropertyType.ProjectCategoryId, function () {\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n }\r\n }\r\n\r\n\r\n );\r\n\r\n\r\n var dtlLocation = JSON.parse(vm.project.ProjectLocation);\r\n\r\n vm.project.PlotNo = dtlLocation.PlotNo;\r\n vm.project.Latitude = dtlLocation.Latitude;\r\n vm.project.Longitude = dtlLocation.Longitude;\r\n vm.project.ProjectImageName = vm.project.ProjectImage;\r\n\r\n getStateListByCountryId(dtlLocation.CountryId, function () {\r\n\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === dtlLocation.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[c];\r\n }\r\n }\r\n for (var c in vm.StateList) {\r\n if (vm.StateList[c].StateId === dtlLocation.StateId) {\r\n vm.project.selectedState = vm.StateList[c];\r\n }\r\n }\r\n getCityListByStateId(dtlLocation.StateId, function () {\r\n for (var c in vm.CityList) {\r\n if (vm.CityList[c].CityId === dtlLocation.CityId) {\r\n vm.project.selectedCity = vm.CityList[c];\r\n }\r\n }\r\n });\r\n getAreaListByCityId(dtlLocation.CityId, function () {\r\n for (var c in vm.AreaList) {\r\n if (vm.AreaList[c].AreaId === dtlLocation.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[c];\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n // vm.project.selectedArea.Pincode = dtlLocation.Pincode;\r\n }\r\n }\r\n });\r\n });\r\n\r\n // var dtlContact = JSON.parse(vm.project.ProjectContactDetails);\r\n // var dtlContact1 = JSON.parse(dtlContact.Contact1);\r\n // var dtlContact2 = JSON.parse(dtlContact.Contact2);\r\n\r\n // vm.empPer = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact1.EmployeeId) {\r\n // vm.empPer.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n\r\n // vm.isComAddSameAsPerAdd = dtlContact.IsSameAddress;\r\n // vm.empPer1 = {};\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c];\r\n // }\r\n // }\r\n\r\n // for (var c in vm.EmployeeList) {\r\n // if (vm.EmployeeList[c].EmployeeId === dtlContact2.EmployeeId) {\r\n // vm.empPer1.selectedemp = vm.EmployeeList[c].FirstName;\r\n // }\r\n // } \r\n // }\r\n }\r\n\r\n vm.update = function () {\r\n\r\n // if (vm.isComAddSameAsPerAdd) {\r\n // vm.empPer1 = angular.copy(vm.empPer.selectedemp);\r\n // vm.empPer1.selectedemp = vm.empPer.selectedemp;\r\n // } else {\r\n // vm.empPer1 = {};\r\n // }\r\n };\r\n\r\n /////\r\n $scope.$on('gmPlacesAutocomplete::placeChanged', function () {\r\n\r\n\r\n var location = vm.autocomplete.getPlace().geometry.location;\r\n var Latitude = location.lat();\r\n var Longitude = location.lng();\r\n vm.project.Latitude = Latitude;\r\n vm.project.Longitude = Longitude;\r\n $scope.$apply();\r\n\r\n });\r\n\r\n\r\n vm.LoadProjectDetails = function (ProjectId) {\r\n\r\n vm.project.selectedPropertyType = null;\r\n vm.project.selectedProjectTypeName = null;\r\n vm.project.PlotNo = null;\r\n vm.project.selectedCountryName = null;\r\n vm.project.selectedCity = null;\r\n vm.project.selectedState = null;\r\n vm.project.selectedArea = null;\r\n // vm.project.selectedArea.Pincode=null;\r\n vm.autocomplete = null;\r\n vm.project.Latitude = null;\r\n vm.project.Longitude = null;\r\n\r\n if (ProjectId != null || ProjectId != undefined) {\r\n\r\n\r\n\r\n vm.Location = JSON.parse(vm.project.selectedProject.ProjectLocation);\r\n\r\n for (var i in vm.PropertyTypeList) {\r\n if (vm.PropertyTypeList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n vm.project.selectedPropertyType = vm.PropertyTypeList[i]\r\n }\r\n }\r\n\r\n // GetprojectType(vm.project.PropertyTypeId, function () {\r\n // for (var i in vm.ProjectTypeList) {\r\n // if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.ProjectTypeId) {\r\n // vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n // }\r\n // }\r\n // });\r\n\r\n\r\n // LoadProjectCategory(function () {\r\n // for (var i in vm.ProjectCategoryList) {\r\n // if (vm.ProjectCategoryList[i].ProjectCategoryId === vm.project.selectedProject.ProjectCategoryId) {\r\n // vm.project.selectedProjectCategoryName = vm.ProjectCategoryList[i]\r\n // }\r\n // }\r\n // });\r\n\r\n vm.GetprojectType(vm.project.selectedProject.ProjectCategoryId, function () {\r\n\r\n for (var i in vm.ProjectTypeList) {\r\n if (vm.ProjectTypeList[i].ProjectTypeId === vm.project.selectedProject.ProjectTypeId) {\r\n vm.project.selectedProjectTypeName = vm.ProjectTypeList[i]\r\n }\r\n\r\n }\r\n\r\n })\r\n vm.project.PlotNo = vm.Location.PlotNo;\r\n vm.project.Latitude = vm.Location.Latitude;\r\n vm.project.Longitude = vm.Location.Longitude;\r\n\r\n LoadCountry(function () {\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId === vm.Location.CountryId) {\r\n vm.project.selectedCountryName = vm.CountryList[i]\r\n }\r\n }\r\n });\r\n\r\n getStateListByCountryId(vm.Location.CountryId, function () {\r\n for (var i in vm.StateList) {\r\n if (vm.StateList[i].StateId === vm.Location.StateId) {\r\n vm.project.selectedState = vm.StateList[i]\r\n }\r\n }\r\n });\r\n\r\n\r\n getCityListByStateId(vm.Location.StateId, function () {\r\n\r\n for (var i in vm.CityList) {\r\n if (vm.CityList[i].CityId === vm.Location.CityId) {\r\n vm.project.selectedCity = vm.CityList[i]\r\n }\r\n }\r\n });\r\n\r\n getAreaListByCityId(vm.Location.CityId, function () {\r\n for (var i in vm.AreaList) {\r\n if (vm.AreaList[i].AreaId === vm.Location.AreaId) {\r\n vm.project.selectedArea = vm.AreaList[i]\r\n }\r\n }\r\n vm.autocomplete = vm.project.selectedArea.AreaName;\r\n });\r\n }\r\n\r\n }\r\n ///// Filed Attachments\r\n // $scope.ProjectImage = function (event) {\r\n // vm.ProjectImage = event.target.files[0];\r\n // }\r\n\r\n vm.SaveProjects = function (project) {\r\n\r\n var bltrue = false;\r\n\r\n if (vm.project.WorkLocation == 'NewType') {\r\n if (vm.project.ProjectName != undefined && vm.project.ProjectName != '')\r\n bltrue = true;\r\n }\r\n else {\r\n if (vm.project.selectedProject) {\r\n bltrue = true;\r\n }\r\n }\r\n\r\n if (bltrue) {\r\n vm.isLoading = true;\r\n\r\n\r\n var LocationObj = {\r\n PlotNo: vm.project.PlotNo,\r\n CountryId: vm.project.selectedCountryName.CountryId,\r\n\r\n StateId: vm.project.selectedState.StateId,\r\n CityId: vm.project.selectedCity.CityId,\r\n AreaId: vm.project.selectedArea.AreaId,\r\n Pincode: vm.project.selectedArea.Pincode,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude\r\n }\r\n\r\n // var Contact1Entity = {\r\n // EmployeeId: vm.empPer.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer.selectedemp.EmpAddress.CommMobile,\r\n // KPOSTId: vm.empPer.selectedemp.KpostId\r\n // }\r\n\r\n // var Contact2Entity = '';\r\n // if (vm.empPer1 != undefined) {\r\n\r\n\r\n // Contact2Entity = {\r\n // EmployeeId: vm.empPer1.selectedemp.EmployeeId,\r\n // DesignationId: vm.empPer1.selectedemp.DesignationId,\r\n // Mobile1: vm.empPer1.selectedemp.EmpAddress.PerMobile,\r\n // Mobile2: vm.empPer1.selectedemp.EmpAddress.CommMobile,\r\n // KPOSTId: vm.empPer1.selectedemp.KpostId\r\n // }\r\n // }\r\n\r\n // var ContactDetails = {\r\n // Contact1: JSON.stringify(Contact1Entity),\r\n // IsSameAddress: vm.isComAddSameAsPerAdd,\r\n // Contact2: JSON.stringify(Contact2Entity),\r\n // }\r\n\r\n var prjName;\r\n var prjId;\r\n\r\n if (vm.project.WorkLocation === 'ExistingType') {\r\n prjId = vm.project.selectedProject.KPMESProjectId;\r\n prjName = vm.project.selectedProject.ProjectName;\r\n }\r\n else {\r\n prjId = 0;\r\n prjName = vm.project.ProjectName;\r\n }\r\n\r\n var nprjid;\r\n if (!vm.isEditing) {\r\n nprjid = 0;\r\n }\r\n else {\r\n nprjid = vm.project.ProjectId;\r\n // if (vm.project.ProjectImageName == '') {\r\n // vm.ProjectImage = '';\r\n // }\r\n // vm.ProjectImage = vm.project.ProjectImageName;\r\n // vm.ProjectImage = vm.project.ProjectImageName;\r\n }\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n var prjDtl = {\r\n ProjectLocation: JSON.stringify(LocationObj),\r\n // ProjectContactDetails: JSON.stringify(ContactDetails)\r\n ProjectContactDetails: '',\r\n ProjectId: nprjid,\r\n KPMESProjectId: prjId,\r\n ProjectName: prjName,\r\n PropertyTypeId: vm.project.selectedPropertyType.ProjectCategoryId,\r\n ProjectTypeId: vm.project.selectedProjectTypeName.ProjectTypeId,\r\n Latitude: vm.project.Latitude,\r\n Longitude: vm.project.Longitude,\r\n EstimatedArea: vm.project.EstimatedArea,\r\n SaleArea: vm.project.SaleArea,\r\n ApartmentCount: vm.project.ApartmentCount,\r\n Status: 3,\r\n CompanyId: CompanyId,\r\n CreatedBy: loggeduser.UserId,\r\n // ProjectImage:vm.ProjectImage,\r\n }\r\n\r\n\r\n var formData = new FormData();\r\n\r\n // formData.append(\"Uploadfile2\", vm.Uploadfile2);\r\n // formData.append(\"Uploadfile3\", vm.Uploadfile3);\r\n formData.append(\"inputdata\", JSON.stringify(prjDtl));\r\n formData.append(\"ProjectImage\", vm.ProjectImage);\r\n\r\n // if (!vm.isEditing) \r\n {\r\n\r\n\r\n CRM_projectInitiationService.AddProjects(formData).then(function (res) {\r\n\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n\r\n Init();\r\n cancel();\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', \"Please select/enter project name\", \"Error\");\r\n }\r\n\r\n\r\n // else {\r\n\r\n // CRM_projectInitiationService.AddProjects(prjDtl).then(function (res) {\r\n // $rootScope.showToaster('success', 'Project updated successfully', \"Success\");\r\n // Init();\r\n // cancel();\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\", \"Error\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n\r\n }\r\n function editProPic() {\r\n vm.isEditingProPic = true;\r\n }\r\n function photoChanged(event) {\r\n\r\n var reader = new FileReader();\r\n if (!vm.isEditingProPic) {\r\n vm.ProjectImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.ProjectImage);\r\n } else {\r\n // vm.ExtProjectImage = vm.ProjectImage;\r\n vm.ProjectImage = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.ProjectImage);\r\n\r\n var formData = new FormData();\r\n formData.append('ProjectImage', vm.ProjectImage);\r\n formData.append('ProjectId', vm.project.ProjectId);\r\n\r\n formData.append('ExtProjectImage', vm.ExtProjectImage);\r\n\r\n CRM_projectInitiationService.updateProjectImage(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Project Image changed succussfully', \"Success\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n\r\n }\r\n }\r\n\r\n $scope.imageIsLoaded = function (e) {\r\n $scope.$apply(function () {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.project = {};\r\n vm.profilePicUrl = null;\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_projectInitiationTiles');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n angular\r\n .module('KPMES.pages.CRM_PaymentScheduleMaster')\r\n .controller('CRM_PaymentScheduleMasterCtrl', CRM_PaymentScheduleMasterCtrl);\r\n\r\n function CRM_PaymentScheduleMasterCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, AuthenticationService, CRM_StatutoryMasterService, PaymentScheduleMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n vm.isFormOpen = true;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = true;\r\n vm.SaveScheduleMaster = SaveScheduleMaster\r\n vm.Schedule = {};\r\n vm.EditSchedule = EditSchedule\r\n vm.RemoveSchedule = RemoveSchedule;\r\n Init();\r\n function Init() {\r\n\r\n var inputData1 = {\r\n CompanyId: CompanyId,\r\n\r\n\r\n }\r\n\r\n PaymentScheduleMasterService.GetPaymentSchedule(inputData1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ScheduleList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Payment Schedule Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n\r\n }\r\n\r\n function SaveScheduleMaster() {\r\n\r\n var iScheduleId = 0;\r\n\r\n if (!vm.isEditing)\r\n iScheduleId = 0;\r\n else\r\n iScheduleId = vm.Schedule.ScheduleId;\r\n\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n ScheduleName: vm.Schedule.ScheduleName,\r\n ScheduleId: iScheduleId,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n\r\n\r\n PaymentScheduleMasterService.SaveDeletPaymentSchedule(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Payment Schedule Master\");\r\n Cancel();\r\n Init();\r\n }\r\n else\r\n $rootScope.showToaster('error', res.data.Message, \"Payment Schedule Master\");\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n }\r\n\r\n\r\n function EditSchedule(row) {\r\n\r\n vm.isEditing = true;\r\n vm.isFormOpen = false;\r\n\r\n vm.Schedule = angular.copy(row);\r\n // vm.Schedule.ScheduleId = PaymentDetails.ScheduleId;\r\n // vm.Schedule.PaymentScheduleName = PaymentDetails.ScheduleName;\r\n\r\n }\r\n\r\n\r\n\r\n // function RemoveSchedule(row) {\r\n // var confirm = dialogs.confirm('Confirm',\r\n // 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n // confirm.result.then(function () {\r\n\r\n // var StatutoryMaster = {\r\n // StatutoryName: '',\r\n // ScheduleId: row.ScheduleId,\r\n // CompanyId: CompanyId,\r\n // Process: 'Delete',\r\n // CreatedBy: logggedUser.UserId\r\n // // ModifiedBy: logggedUser.UserId\r\n // }\r\n // });\r\n // }\r\n\r\n\r\n function RemoveSchedule(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var ScheduleMaster = {\r\n ScheduleName: '',\r\n ScheduleId: row.ScheduleId,\r\n CompanyId: CompanyId,\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n // ModifiedBy: logggedUser.UserId\r\n }\r\n\r\n PaymentScheduleMasterService.SaveDeletPaymentSchedule(ScheduleMaster).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', 'Delete Area Successfully', \"Area\");\r\n $rootScope.showToaster('success', res.data.Message, \"Statutory Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Area\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Area.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function Create() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Schedule = {};\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.Schedule = {};\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectInitiationTiles')\r\n .controller('CRM_projectInitiationTilesCtrl', CRM_projectInitiationTilesCtrl);\r\n\r\n function CRM_projectInitiationTilesCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_parkingLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\n vm.ProjectIntitiation = ProjectIntitiation;\r\n vm.ProjectApproval = ProjectApproval;\r\n vm.BackForCorrection = BackForCorrection;\r\n vm.ApprovedProject = ApprovedProject;\r\n\r\n\r\n function ProjectIntitiation() {\r\n\r\n $state.go('CRM_projectinitiation');\r\n }\r\n function ProjectApproval() {\r\n\r\n $state.go('CRM_pendingforapproval');\r\n }\r\n function BackForCorrection() {\r\n\r\n $state.go('CRMbackforCorrection');\r\n }\r\n\r\n function ApprovedProject() {\r\n\r\n $state.go('CRMApproved');\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectPropertyView')\r\n .controller('CRM_ProjectPropertyViewCtrl', CRM_ProjectPropertyViewCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectPropertyViewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CRM_parkingTierSetupService, ProjectDetailsApprovalService, AuthenticationService,\r\n projectDetailsSetupService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.LoadLocations = LoadLocations;\r\n\r\n vm.TileBack = TileBack;\r\n vm.ViewReport = ViewReport;\r\n vm.ReportBack = ReportBack;\r\n vm.ViewfullReport = ViewfullReport;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.LoadTiers = LoadTiers;\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.buttonhide = false;\r\n vm.isReportView = false;\r\n ViewfullReport = false;\r\n vm.Cancel = Cancel;\r\n vm.Project = {};\r\n vm.BasicLocationList = [];\r\n vm.NewBasicLocationList = [];\r\n vm.OverallLocationList = [];\r\n vm.ParkingTiers = [];\r\n vm.AllRequiredDetails = [];\r\n vm.AllunitDetails = [];\r\n vm.Apartmentlist = [];\r\n vm.SuperBltArea = [];\r\n vm.FlatFacingDtl = [];\r\n vm.FlatPriceDtl = [];\r\n vm.LoadSuperBltArea = LoadSuperBltArea;\r\n vm.LoadFlatfacing = LoadFlatfacing;\r\n vm.LoadFlatPrice = LoadFlatPrice;\r\n vm.ForCondition4 = ForCondition4;\r\n vm.ForCondition5 = ForCondition5;\r\n\r\n vm.getParkingLocationByProjectId = getParkingLocationByProjectId;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ApprovalFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n ProjectDetailsApprovalService.GetAllProjectDetailsApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectPropertyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n\r\n });\r\n }\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n vm.buttonhide = true;\r\n vm.isReportView = false;\r\n vm.SelectedProjectName = null;\r\n vm.SelectedProjectId = iProjectId;\r\n vm.SelectedLocationId = null;\r\n\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n var ReqDetails = '';\r\n\r\n for (var i in vm.ProjectPropertyList) {\r\n if (vm.ProjectPropertyList[i].ProjectId == iProjectId) {\r\n vm.SelectedProjectName = vm.ProjectPropertyList[i].ProjectName;\r\n vm.SelectedLocationId = vm.ProjectPropertyList[i].LocationId;\r\n ReqDetails = vm.ProjectPropertyList[i].RequiredDetails;\r\n }\r\n }\r\n\r\n if (ReqDetails.length > 0) {\r\n vm.isRequiredDetails = true;\r\n vm.AllRequiredDetails = JSON.parse(ReqDetails);\r\n }\r\n else\r\n vm.isRequiredDetails = false;\r\n\r\n LoadTiers(vm.SelectedLocationId);\r\n getParkingLocationByProjectId(iProjectId);\r\n // LoadTiers(iProjectId);\r\n\r\n // var ReqDetails = '';\r\n\r\n // for (var i in vm.ProjectPropertyList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n // vm.SelectedProjectName = vm.ProjectList[i].ProjectName;\r\n // }\r\n // }\r\n\r\n // if (ReqDetails.length > 0) {\r\n // vm.isRequiredDetails = true;\r\n // vm.AllRequiredDetails = JSON.parse(ReqDetails);\r\n // }\r\n // else\r\n // vm.isRequiredDetails = false;\r\n\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n vm.isLoading = false;\r\n vm.isParkingTiers = true;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // if (iProjectId) {\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // LocationId: 0,\r\n // MultiParentTierIds:0\r\n // };\r\n\r\n\r\n // ProjectDetailsApprovalService.GetAllAreaUnitsByMultiTier(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.Apartmentlist = res.data;\r\n\r\n\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n // }\r\n\r\n\r\n function TileBack() {\r\n vm.isProjectTile = true;\r\n vm.isReportView = false;\r\n vm.isSetupTile = false;\r\n vm.buttonhide = false;\r\n }\r\n\r\n function ViewReport() {\r\n // vm.isReportView = false;\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = true;\r\n // vm.buttonhide = false;\r\n vm.isReportView = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n\r\n // vm.SelectedProjectName = null;\r\n\r\n // for (var i in vm.ProjectPropertyList) {\r\n // if (vm.ProjectPropertyList[i].ProjectId == vm.SelectedProjectId) {\r\n // vm.SelectedProjectName = vm.ProjectPropertyList[i].ProjectName;\r\n // }\r\n // }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.SelectedProjectId,\r\n Tiers: vm.SelectMutliTiers,\r\n Condition1: vm.Condition1,\r\n Condition2: vm.Condition2,\r\n Condition3: vm.Condition3,\r\n Condition4: vm.Condition4,\r\n Condition5: vm.Condition5,\r\n };\r\n\r\n\r\n ProjectDetailsApprovalService.GetProjectPropertyReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ReportList = res.data;\r\n vm.isLoading = false;\r\n\r\n // if (callback)\r\n // callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function ForCondition4(selectedFlPrice, callback) {\r\n if (selectedFlPrice != undefined) {\r\n var data = selectedFlPrice;\r\n if (selectedFlPrice.length > 0) {\r\n var data = selectedFlPrice;\r\n var result = data.map(function (val) {\r\n return val.Result;\r\n }).join(\"','\");\r\n\r\n result = \"'\" + result + \"'\";\r\n\r\n vm.Condition4 = result;\r\n }\r\n }\r\n }\r\n\r\n function ForCondition5(ParkingTier, callback) {\r\n if (ParkingTier != undefined) {\r\n var data = ParkingTier;\r\n if (ParkingTier.length > 0) {\r\n var data = ParkingTier;\r\n var result = data.map(function (val) {\r\n return val.TierId;\r\n }).join(',');\r\n\r\n // result = result + \"'\";\r\n\r\n vm.Condition5 = result;\r\n }\r\n }\r\n }\r\n\r\n // function ForCondition4 {\r\n\r\n\r\n\r\n // }\r\n function ReportBack() {\r\n\r\n vm.isReportView = false;\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.buttonhide = false;\r\n\r\n }\r\n\r\n function ViewfullReport() {\r\n\r\n vm.isReportView = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n\r\n\r\n }\r\n\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: vm.SelectedProjectId,\r\n MultiParentTierIds: '0'\r\n };\r\n\r\n ProjectDetailsApprovalService.GetAllTiersDetailsByMultiLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = {};\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ParkingTiers = res1.data;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n }\r\n }\r\n\r\n function LoadInnerLocations(SelectedLocs, callback) {\r\n if (SelectedLocs != undefined) {\r\n if (SelectedLocs.length > 0) {\r\n var data = SelectedLocs;\r\n var result = data.map(function (val) {\r\n return val.TierId;\r\n }).join(',');\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.SelectedLocationId,\r\n ProjectId: vm.SelectedProjectId,\r\n MultiParentTierIds: result\r\n };\r\n\r\n vm.SelectMutliTiers = result;\r\n\r\n ProjectDetailsApprovalService.GetAllTiersDetailsByMultiLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n\r\n for (var i in vm.NewBasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = {};\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n }\r\n\r\n var iptData = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.SelectedProjectId,\r\n MultiParentTierIds: result,\r\n SelectFor: 'TOA',\r\n Condition1: '',\r\n Condition2: '',\r\n Condition3: '',\r\n }\r\n\r\n vm.Apartmentlist = [];\r\n\r\n ProjectDetailsApprovalService.GetAllAreaUnitsByMultiTier(iptData).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.Apartmentlist = res1.data;\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n }\r\n }\r\n\r\n function LoadSuperBltArea(SelectedTOA, callback) {\r\n if (SelectedTOA != undefined) {\r\n var data = SelectedTOA;\r\n if (SelectedTOA.length > 0) {\r\n var data = SelectedTOA;\r\n var result = data.map(function (val) {\r\n return val.Result;\r\n }).join(\"','\");\r\n\r\n result = \"'\" + result + \"'\";\r\n }\r\n\r\n vm.Condition1 = result;\r\n\r\n var iptData = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.SelectedProjectId,\r\n MultiParentTierIds: vm.SelectMutliTiers,\r\n SelectFor: 'SBArea',\r\n Condition1: result,\r\n Condition2: '',\r\n Condition3: '',\r\n }\r\n vm.SuperBltArea = [];\r\n ProjectDetailsApprovalService.GetAllAreaUnitsByMultiTier(iptData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SuperBltArea = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n function LoadFlatfacing(SelectedBLTArea, callback) {\r\n if (SelectedBLTArea != undefined) {\r\n if (SelectedBLTArea.length > 0) {\r\n var data = SelectedBLTArea;\r\n var result = data.map(function (val) {\r\n return val.Result;\r\n }).join(\"','\");\r\n result = \"'\" + result + \"'\";\r\n\r\n vm.Condition2 = result;\r\n }\r\n\r\n vm.FlatFacingDtl = [];\r\n var iptData = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.SelectedProjectId,\r\n MultiParentTierIds: vm.SelectMutliTiers,\r\n SelectFor: 'FLFAC',\r\n Condition1: vm.Condition1,\r\n Condition2: result,\r\n Condition3: '',\r\n }\r\n ProjectDetailsApprovalService.GetAllAreaUnitsByMultiTier(iptData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FlatFacingDtl = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n function LoadFlatPrice(SelectedFLFC, callback) {\r\n if (SelectedFLFC != undefined) {\r\n if (SelectedFLFC.length > 0) {\r\n var data = SelectedFLFC;\r\n var result = data.map(function (val) {\r\n return val.Result;\r\n }).join(\"','\");\r\n result = \"'\" + result + \"'\";\r\n\r\n\r\n vm.Condition3 = result;\r\n }\r\n\r\n vm.FlatPriceDtl = [];\r\n var iptData = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.SelectedProjectId,\r\n MultiParentTierIds: vm.SelectMutliTiers,\r\n SelectFor: 'Price',\r\n Condition1: vm.Condition1,\r\n Condition2: vm.Condition2,\r\n Condition3: result,\r\n }\r\n ProjectDetailsApprovalService.GetAllAreaUnitsByMultiTier(iptData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FlatPriceDtl = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n // function LoadInnerLocations(iTierId, callback) {\r\n // if (iTierId) {\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // LocationId: vm.SelectedLocationId,\r\n // ProjectId: vm.SelectedProjectId,\r\n // MultiParentTierIds: iTierId\r\n // };\r\n\r\n // projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.NewBasicLocationList = res.data;\r\n // for (var i in vm.NewBasicLocationList) {\r\n // if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n // vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n // //vm.ProjectDetails.selectedTier[i] = null;\r\n // }\r\n // }\r\n\r\n // vm.isLoading = false;\r\n\r\n // if (callback)\r\n // callback();\r\n // }\r\n\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n // else {\r\n // // vm.Project.selectedLocation = null;\r\n // // vm.BasicLocationList = [];\r\n\r\n // LoadTiers(vm.SelectedLocationId);\r\n // }\r\n // }\r\n function getParkingLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: ProjectId\r\n }\r\n CRM_parkingTierSetupService.GetAllLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.OverallLocationList = res.data;\r\n if (vm.OverallLocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available ', { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n // vm.LocationList = [];\r\n // vm.tier.selectedLocation = null;\r\n }\r\n\r\n function Cancel() {\r\n\r\n // vm.isReportView = false;\r\n // vm.isProjectTile = true;\r\n // vm.isSetupTile = false;\r\n vm.project = {};\r\n // vm.BasicLocationList={};\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectPropertyInfoTiles')\r\n .controller('CRM_ProjectPropertyInfoTilesCtrl', CRM_ProjectPropertyInfoTilesCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectPropertyInfoTilesCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CRM_projectInitiationService, projectDetailsSetupService, AuthenticationService, ProjectDetailsApprovalService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoadTiers = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = false;\r\n vm.isShowHeader = true;\r\n vm.PropertyPriceSetup = PropertyPriceSetup;\r\n vm.PriceApproval = PriceApproval;\r\n vm.PriceBackForCorrection = PriceBackForCorrection;\r\n vm.ApprovedPrice = ApprovedPrice;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n vm.NewCopyPriceInfotile = false;\r\n $rootScope.isLogin = false;\r\n vm.NewCopyInfotile = false;\r\n\r\n\r\n vm.LoadTiers = LoadTiers;\r\n\r\n // vm.SaveProjectDetailsSetup = SaveProjectDetailsSetup;\r\n // vm.Cancel = Cancel;\r\n // vm.Create = Create;\r\n vm.ProjectSelected = ProjectSelected;\r\n vm.GotoTile = GotoTile;\r\n vm.TileBack = TileBack;\r\n vm.TileBackRefresh = TileBackRefresh;\r\n vm.buttonhide = false;\r\n vm.buttonhide1 = false;\r\n vm.Project = {};\r\n // vm.DeleteProject = DeleteProject;\r\n vm.ProjectPropertyIntitiation = ProjectPropertyIntitiation;\r\n vm.CopyInfotile = CopyInfotile;\r\n vm.ProjectPropertyApproval = ProjectPropertyApproval;\r\n vm.ProjectPropertyBackForCorrection = ProjectPropertyBackForCorrection;\r\n vm.ApprovedProjectProperty = ApprovedProjectProperty;\r\n // vm.EditProject = EditProject;\r\n\r\n vm.AllRequiredDetails = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n vm.TileId = $state.params.TileId;\r\n vm.Project.SetupType = $state.params.SetupType;\r\n vm.ProjectList = [];\r\n // var CRMProjectId = 0;\r\n\r\n Init();\r\n\r\n function Init() {\r\n vm.header = 'Project Property Info';\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.TileId == null)\r\n ShowTileDivision('AllProjects');\r\n else\r\n ShowTileDivision(vm.TileId);\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n }\r\n\r\n function ShowTileDivision(TileId) {\r\n if (TileId == 'AllProjects') {\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = false;\r\n vm.buttonhide = false;\r\n vm.NewCopyInfotile = false;\r\n vm.NewCopyPriceInfotile = false;\r\n vm.TileId = 'AllProjects';\r\n }\r\n else if (TileId == 'PropertySetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = false;\r\n vm.buttonhide = true;\r\n vm.NewCopyInfotile = false;\r\n vm.NewCopyPriceInfotile = false;\r\n vm.TileId = 'PropertySetup';\r\n }\r\n else if (TileId == 'PropertyDetailsSetup' || TileId == 'LocationSetup' || TileId == 'TierSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = true;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = false;\r\n vm.buttonhide = true;\r\n vm.NewCopyInfotile = false;\r\n vm.NewCopyPriceInfotile = false;\r\n vm.TileId = 'PropertyDetailsSetup';\r\n\r\n if (TileId != 'PropertyDetailsSetup') {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // var alltiers = JSON.parse(vm.ProjectList[i].Tiers);\r\n // vm.LastTierName = alltiers[Object.keys(alltiers).sort().pop()];\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n else if (TileId == 'ProjectDetailsSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = true;\r\n vm.isProjectPriceTile = false;\r\n vm.buttonhide = true;\r\n vm.NewCopyInfotile = false;\r\n vm.NewCopyPriceInfotile = false;\r\n vm.TileId = 'ProjectDetailsSetup';\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // var alltiers = JSON.parse(vm.ProjectList[i].Tiers);\r\n // vm.LastTierName = alltiers[Object.keys(alltiers).sort().pop()];\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n else if (TileId == 'ProjectPriceSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = true;\r\n vm.buttonhide = true;\r\n vm.NewCopyInfotile = false;\r\n vm.NewCopyPriceInfotile = false;\r\n vm.TileId = 'ProjectPriceSetup';\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // var alltiers = JSON.parse(vm.ProjectList[i].Tiers);\r\n // vm.LastTierName = alltiers[Object.keys(alltiers).sort().pop()];\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n else if (TileId == 'NewCopyInfoTileSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = false;\r\n vm.buttonhide = true;\r\n vm.NewCopyInfotile = true;\r\n vm.NewCopyPriceInfotile = false;\r\n // vm.NewCopyInfotile= false;\r\n vm.TileId = 'NewCopyInfoTileSetup';\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // var alltiers = JSON.parse(vm.ProjectList[i].Tiers);\r\n // vm.LastTierName = alltiers[Object.keys(alltiers).sort().pop()];\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n else if (TileId == 'NewCopyPriceInfoTileSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.isProjectPriceTile = false;\r\n vm.buttonhide = true;\r\n vm.NewCopyInfotile = false;\r\n vm.NewCopyPriceInfotile = true;\r\n // vm.NewCopyInfotile= false;\r\n vm.TileId = 'NewCopyPriceInfoTileSetup';\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // var alltiers = JSON.parse(vm.ProjectList[i].Tiers);\r\n // vm.LastTierName = alltiers[Object.keys(alltiers).sort().pop()];\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n // else if (TileId == 'LocationSetup') {\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = false;\r\n // vm.isTierSetupTile = false;\r\n // vm.isProjectPropertyTile = false;\r\n // vm.isProjectPriceTile = true;\r\n // vm.buttonhide = true;\r\n // vm.TileId = 'PropertyDetailsSetup';\r\n // }\r\n }\r\n\r\n\r\n function ProjectSelected(Id) {\r\n\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectPropertyTile = false;\r\n vm.LastTierName = '';\r\n\r\n CRMProjectId = Id;\r\n vm.buttonhide = true;\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // if (vm.ProjectList[i].Tiers != '') {\r\n // var alltiers = JSON.parse(vm.ProjectList[i].Tiers);\r\n // vm.LastTierName = alltiers[Object.keys(alltiers).sort().pop()]; \r\n // }\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n\r\n ShowTileDivision('PropertySetup');\r\n }\r\n\r\n function GotoTile(Details) {\r\n\r\n if (Details == 'ProjectSetup') {\r\n vm.Project.SetupType = 'Project Setup';\r\n // vm.header = vm.header + '/ ' + 'Property Setup';\r\n vm.header = vm.header;\r\n\r\n ShowTileDivision('PropertyDetailsSetup');\r\n }\r\n else if (Details == 'ParkingSetup') {\r\n\r\n vm.Project.SetupType = 'Parking Setup';\r\n // vm.header = vm.header + ' /' + 'Parking Setup';\r\n vm.header = vm.header;\r\n ShowTileDivision('PropertyDetailsSetup');\r\n }\r\n else if (Details == 'ProjectDetailsSetup') {\r\n // vm.header = vm.header + ' / ' + 'Property Setup Info';\r\n vm.header = vm.header;\r\n\r\n // LoadLocations(CRMProjectId);\r\n ShowTileDivision('ProjectDetailsSetup');\r\n }\r\n\r\n else if (Details == 'PriceSetup') {\r\n\r\n vm.header = vm.header;\r\n\r\n\r\n ShowTileDivision('ProjectPriceSetup');\r\n }\r\n // else if (Details == 'PriceSetup') {\r\n\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = false;\r\n // vm.isTierSetupTile = false;\r\n // vm.isProjectPropertyTile = false;\r\n\r\n // $state.go('CRM_ProjectPropertyPricesTies', { ProjectId: CRMProjectId, Header: vm.header, LastTierName: vm.LastTierName });\r\n // }\r\n else if (Details == 'LocationSetup') {\r\n // vm.buttonhide=false;\r\n\r\n if (vm.Project.SetupType == 'Project Setup') {\r\n $state.go('projectLocationSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n else if (vm.Project.SetupType == 'Parking Setup') {\r\n $state.go('parkingLocationSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n }\r\n else if (Details == 'TierSetup') {\r\n // vm.buttonhide=false;\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = false;\r\n // vm.isProjectDetails = true;\r\n // vm.isTierSetupTile = false;\r\n\r\n // var iPrjId = 2;\r\n\r\n if (vm.Project.SetupType == 'Project Setup') {\r\n $state.go('projectTierSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n else if (vm.Project.SetupType == 'Parking Setup') {\r\n $state.go('parkingTierSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n }\r\n\r\n else if (Details == 'NewInfotileSetup') {\r\n\r\n vm.header = vm.header;\r\n\r\n\r\n ShowTileDivision('NewCopyInfoTileSetup');\r\n }\r\n\r\n\r\n else if (Details == 'PriceNewInfotileSetup') {\r\n\r\n vm.header = vm.header;\r\n\r\n\r\n ShowTileDivision('NewCopyPriceInfoTileSetup');\r\n }\r\n }\r\n\r\n\r\n function TileBack() {\r\n\r\n if (vm.TileId == 'PropertySetup') {\r\n ShowTileDivision('AllProjects');\r\n vm.header = 'Project Property Info';\r\n vm.buttonhide = false;\r\n }\r\n else if (vm.TileId == 'PropertyDetailsSetup') {\r\n ShowTileDivision('PropertySetup');\r\n }\r\n\r\n else if (vm.TileId == 'ProjectDetailsSetup') {\r\n ShowTileDivision('PropertySetup');\r\n }\r\n else if (vm.TileId == 'ProjectDetailsSetup') {\r\n ShowTileDivision('PropertySetup');\r\n }\r\n else if (vm.TileId == 'ProjectPriceSetup') {\r\n ShowTileDivision('PropertySetup');\r\n }\r\n else if (vm.TileId == 'NewCopyInfoTileSetup') {\r\n ShowTileDivision('ProjectDetailsSetup');\r\n }\r\n else if (vm.TileId == 'PriceNewInfotileSetup') {\r\n ShowTileDivision('ProjectDetailsSetup');\r\n }\r\n else if (vm.TileId == 'NewCopyPriceInfoTileSetup') {\r\n ShowTileDivision('ProjectPriceSetup');\r\n }\r\n // if (Details == 'MainTile') {\r\n // vm.header = 'Project Property Info';\r\n // vm.isProjectTile = true;\r\n // vm.isSetupTile = false;\r\n // vm.isProjectDetails = false;\r\n // // vm.buttonhide=false;\r\n // vm.buttonhide1 = false;\r\n // vm.isTierSetupTile = false;\r\n // vm.isProjectPropertyTile = false;\r\n // }\r\n // else if (Details == 'SetupTile') {\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = true;\r\n // vm.isProjectDetails = false;\r\n // vm.isFormOpen = false;\r\n // vm.buttonhide1 = false;\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ParkingTiers = res1.data;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n }\r\n }\r\n\r\n\r\n ///// Filed Attachments\r\n // $scope.Uploadfile1 = function (event) {\r\n // vm.Uploadfile1 = event.target.files[0];\r\n // }\r\n // $scope.Uploadfile2 = function (event) {\r\n // vm.Uploadfile2 = event.target.files[0];\r\n // }\r\n\r\n // $scope.Uploadfile3 = function (event) {\r\n // vm.Uploadfile3 = event.target.files[0];\r\n // }\r\n\r\n\r\n\r\n function TileBackRefresh() {\r\n vm.isLoadTiers = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n // vm.buttonhide=ture;\r\n // vm.buttonhide1=false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n Init();\r\n // $state.go('CRM_projectDetailsSetup');\r\n }\r\n\r\n function ProjectPropertyIntitiation() {\r\n $state.go('CRM_projectDetailsSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n // function ProjectPropertyApproval() {\r\n // $state.go('CRM_ProjectDetailsApproval', { ProjectId: CRMProjectId, Header: vm.header });\r\n // }\r\n\r\n function ProjectPropertyApproval() {\r\n $state.go('CRMProjectDetailsApproval_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n\r\n // function ProjectPropertyBackForCorrection() {\r\n // $state.go('CRM_ModifyProjectDetails', { ProjectId: CRMProjectId, Header: vm.header });\r\n // }\r\n function ProjectPropertyBackForCorrection() {\r\n $state.go('CRM_ModifyProjectDetails_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n // function ApprovedProjectProperty() {\r\n // $state.go('CRM_ApprovedProjectDetails', { ProjectId: CRMProjectId, Header: vm.header });\r\n // }\r\n\r\n function ApprovedProjectProperty() {\r\n $state.go('CRM_ApprovedProjectDetails_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n\r\n function PropertyPriceSetup() {\r\n\r\n // $state.go('CRM_ProjectDetailsPriceSetup',{ ProjectId: CRMProjectId, Header: vm.header });\r\n $state.go('CRM_ProjectDetailsPriceSetup_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n function PriceApproval() {\r\n\r\n // $state.go('CRM_ProjectRateApproval', { ProjectId: CRMProjectId, Header: vm.header });\r\n $state.go('CRM_ProjectRateApproval_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n function PriceBackForCorrection() {\r\n\r\n // $state.go('CRM_ModifyProjectPrice', { ProjectId: CRMProjectId, Header: vm.header });\r\n $state.go('CRM_ModifyProjectPrice_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n function ApprovedPrice() {\r\n\r\n // $state.go('CRM_ApprovedProjectPrice', { ProjectId: CRMProjectId, Header: vm.header });\r\n $state.go('CRMApprovedProjectPrice_New', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n\r\n function CopyInfotile() {\r\n\r\n if (vm.TileId == 'NewCopyInfoTileSetup')\r\n $state.go('CopyAreaDetails', { ProjectId: CRMProjectId, Header: vm.header, CopyFor: 'Location' });\r\n else\r\n $state.go('CopyAreaDetails', { ProjectId: CRMProjectId, Header: vm.header, CopyFor: 'Rate' });\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectPropertypriceTiles')\r\n .controller('CRM_ProjectPropertyPricesTiesCtrl', CRM_ProjectPropertyPricesTiesCtrl);\r\n\r\n function CRM_ProjectPropertyPricesTiesCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_parkingLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\n vm.PropertyPriceSetup = PropertyPriceSetup;\r\n vm.PriceApproval = PriceApproval;\r\n vm.PriceBackForCorrection = PriceBackForCorrection;\r\n vm.ApprovedPrice = ApprovedPrice;\r\n vm.TileBack = TileBack;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var LastTierName = $state.params.LastTierName;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n vm.LastTierName = LastTierName;\r\n }\r\n \r\n function PropertyPriceSetup() {\r\n\r\n // $state.go('CRM_ProjectDetailsPriceSetup',{ ProjectId: CRMProjectId, Header: vm.header });\r\n $state.go('CRM_ProjectDetailsPriceSetup', { ProjectId: CRMProjectId, Header: vm.Header });\r\n }\r\n function PriceApproval() {\r\n\r\n $state.go('CRM_ProjectRateApproval', { ProjectId: CRMProjectId, Header: vm.Header });\r\n }\r\n function PriceBackForCorrection() {\r\n\r\n $state.go('CRM_ModifyProjectPrice', { ProjectId: CRMProjectId, Header: vm.Header });\r\n }\r\n\r\n function ApprovedPrice() {\r\n\r\n $state.go('CRM_ApprovedProjectPrice', { ProjectId: CRMProjectId, Header: vm.Header });\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles');\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectPropertyView_Modified')\r\n .controller('CRM_projectPropertyView_ModifiedCtrl', CRM_projectPropertyView_ModifiedCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_projectPropertyView_ModifiedCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, CRM_ProjectPropertyViewService, projectDetailsSetupService, CRM_CopyAreaDetailsService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isProjectTile = true;\r\n\r\n vm.ResultTiles = false;\r\n vm.isInputView = false;\r\n vm.isShowAptType = false;\r\n vm.isShowFirstTier = false;\r\n vm.Cancel = Cancel;\r\n vm.TileBack = TileBack;\r\n vm.buttonhide = false;\r\n vm.ReportTypes = [];\r\n vm.Project = {};\r\n vm.ShowTiles = ShowTiles;\r\n vm.ShowInputTiles = ShowInputTiles;\r\n vm.LoadInputDetails = LoadInputDetails;\r\n vm.LocationList = [];\r\n vm.ApartmentTypeList = [];\r\n vm.SalableAreaList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.ConditionValues = '';\r\n vm.ViewReport = ViewReport;\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n var CompanyName = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init();\r\n function Init() {\r\n\r\n vm.ReportTypes = [{\r\n 'Type': 'Detailed'\r\n }, {\r\n 'Type': 'Consolidated'\r\n }, {\r\n 'Type': 'For RERA'\r\n }];\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllPriceApprovedProjects_ForTiles(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectPropertyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function ShowTiles(iProjectId, iProjectName, iAreaName, iProjectImage) {\r\n vm.isProjectTile = false;\r\n vm.ResultTiles = true;\r\n vm.isInputView = false;\r\n vm.CRMProjectId = iProjectId;\r\n vm.CRMProjectName = iProjectName;\r\n vm.CRMProjectArea = iAreaName;\r\n vm.CRMProjectImage = iProjectImage;\r\n }\r\n\r\n function ShowInputTiles(iResult) {\r\n\r\n if (iResult == 'Total') {\r\n vm.ResultFor = iResult;\r\n }\r\n else if (iResult == 'Sold') {\r\n vm.ResultFor = iResult;\r\n }\r\n else if (iResult == 'Unsold') {\r\n vm.ResultFor = iResult;\r\n }\r\n\r\n LoadInputDetails('TypeofProperty');\r\n vm.isInputView = true;\r\n // vm.ShowTiles = false;\r\n vm.ResultTiles = false;\r\n vm.isProjectTile = false;\r\n }\r\n\r\n function TileBack() {\r\n\r\n vm.isInputView = false;\r\n // vm.ShowTiles = true;\r\n vm.isProjectTile = false;\r\n vm.buttonhide = true;\r\n }\r\n\r\n function LoadInputDetails(iReadFor) {\r\n\r\n var isValid = false;\r\n var tmpCondition = '';\r\n\r\n if (iReadFor == 'TypeofProperty') {\r\n\r\n vm.LocationList = [];\r\n vm.ApartmentTypeList = [];\r\n vm.SalableAreaList = [];\r\n vm.FirstTierList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.ConditionValues = '';\r\n\r\n vm.isShowAptType = false;\r\n vm.isShowFirstTier = false;\r\n\r\n isValid = true;\r\n }\r\n else if (iReadFor == 'LocationProperty') {\r\n\r\n vm.ApartmentTypeList = [];\r\n vm.SalableAreaList = [];\r\n vm.FirstTierList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n tmpCondition = '';\r\n vm.ConditionValues = '';\r\n\r\n if (vm.Project.selectedLocation != null && vm.Project.selectedLocation.length > 0) {\r\n if (vm.Project.selectedLocation.length == 1) {\r\n vm.isShowAptType = true;\r\n vm.isShowFirstTier = true;\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n }\r\n else {\r\n vm.isShowAptType = false;\r\n vm.isShowFirstTier = false;\r\n\r\n LoadInputDetails('SalableArea');\r\n }\r\n\r\n isValid = true;\r\n }\r\n else {\r\n vm.isShowAptType = false;\r\n vm.isShowFirstTier = false;\r\n }\r\n }\r\n else if (iReadFor == 'SalableArea') {\r\n\r\n tmpCondition = '';\r\n vm.ConditionValues = '';\r\n\r\n vm.SalableAreaList = [];\r\n vm.FirstTierList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n\r\n if (vm.Project.selectedApartmentType != null && vm.Project.selectedApartmentType.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n\r\n if (vm.Project.selectedLocation.length == 1) {\r\n vm.isShowFirstTier = true;\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedApartmentType) {\r\n tmpCondition = tmpCondition + vm.Project.selectedApartmentType[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PD.PropertyTypeId In(' + tmpCondition + ')' : '');\r\n } else {\r\n vm.isShowFirstTier = false;\r\n }\r\n\r\n isValid = true;\r\n }\r\n }\r\n else if (iReadFor == 'FirstTier') {\r\n\r\n vm.FirstTierList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n\r\n tmpCondition = '';\r\n vm.ConditionValues = '';\r\n\r\n if (vm.Project.selectedSalableArea != null && vm.Project.selectedSalableArea.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n\r\n if (vm.Project.selectedLocation.length == 1) {\r\n vm.isShowFirstTier = true;\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedApartmentType) {\r\n tmpCondition = tmpCondition + vm.Project.selectedApartmentType[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PD.PropertyTypeId In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n tmpCondition = tmpCondition + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.SalableArea In(' + tmpCondition + ')' : '');\r\n\r\n } else {\r\n vm.isShowFirstTier = false;\r\n }\r\n\r\n isValid = true;\r\n }\r\n }\r\n else if (iReadFor == 'FacingDirection') {\r\n\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n\r\n tmpCondition = '';\r\n vm.ConditionValues = '';\r\n\r\n if (vm.Project.selectedLocation.length == 1) {\r\n\r\n if (vm.Project.selectedFirstTier != null && vm.Project.selectedFirstTier.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedApartmentType) {\r\n tmpCondition = tmpCondition + vm.Project.selectedApartmentType[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PD.PropertyTypeId In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n tmpCondition = tmpCondition + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.SalableArea In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedFirstTier) {\r\n tmpCondition = tmpCondition + vm.Project.selectedFirstTier[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and TM.TierId In(' + tmpCondition + ')' : '');\r\n\r\n isValid = true;\r\n }\r\n }\r\n else {\r\n if (vm.Project.selectedSalableArea != null && vm.Project.selectedSalableArea.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n tmpCondition = tmpCondition + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.SalableArea In(' + tmpCondition + ')' : '');\r\n\r\n isValid = true;\r\n }\r\n }\r\n }\r\n else if (iReadFor == 'LocationFeature') {\r\n\r\n vm.LocationFeatureList = [];\r\n tmpCondition = '';\r\n vm.ConditionValues = '';\r\n\r\n if (vm.Project.selectedLocation.length == 1) {\r\n\r\n if (vm.Project.selectedFacingDirection != null && vm.Project.selectedFacingDirection.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedApartmentType) {\r\n tmpCondition = tmpCondition + vm.Project.selectedApartmentType[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PD.PropertyTypeId In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n tmpCondition = tmpCondition + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.SalableArea In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedFirstTier) {\r\n tmpCondition = tmpCondition + vm.Project.selectedFirstTier[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and TM.TierId In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedFacingDirection) {\r\n tmpCondition = tmpCondition + vm.Project.selectedFacingDirection[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.FlatFacing In(' + tmpCondition + ')' : '');\r\n\r\n isValid = true;\r\n }\r\n }\r\n else {\r\n if (vm.Project.selectedSalableArea != null && vm.Project.selectedSalableArea.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + ' PD.LocationId In(' + tmpCondition + ')';\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n tmpCondition = tmpCondition + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.SalableArea In(' + tmpCondition + ')' : '');\r\n\r\n tmpCondition = '';\r\n\r\n for (var i in vm.Project.selectedFacingDirection) {\r\n tmpCondition = tmpCondition + vm.Project.selectedFacingDirection[i].Id + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n }\r\n\r\n vm.ConditionValues = vm.ConditionValues + (tmpCondition.length > 0 ? ' and PA.FlatFacing In(' + tmpCondition + ')' : '');\r\n\r\n isValid = true;\r\n }\r\n }\r\n }\r\n\r\n if (isValid) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n ResultFor: vm.ResultFor,\r\n SelectFor: iReadFor,\r\n Condition: vm.ConditionValues,\r\n }\r\n\r\n CRM_ProjectPropertyViewService.GetAllInputDataBasedCondition_ForReportNew(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n if (iReadFor == 'TypeofProperty')\r\n vm.LocationList = res.data;\r\n else if (iReadFor == 'LocationProperty')\r\n vm.ApartmentTypeList = res.data;\r\n else if (iReadFor == 'FirstTier')\r\n vm.FirstTierList = res.data;\r\n else if (iReadFor == 'SalableArea')\r\n vm.SalableAreaList = res.data;\r\n else if (iReadFor == 'FacingDirection')\r\n vm.FacingDirectionList = res.data;\r\n else if (iReadFor == 'LocationFeature')\r\n vm.LocationFeatureList = res.data;\r\n\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n }\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isInputView = false;\r\n vm.isProjectTile = true;\r\n\r\n vm.LocationList = [];\r\n vm.Project.selectedLocation = null;\r\n\r\n vm.ApartmentTypeList = [];\r\n vm.Project.selectedApartmentType = null;\r\n\r\n vm.SalableAreaList = [];\r\n vm.Project.selectedSalableArea = null;\r\n\r\n vm.FirstTierList = [];\r\n vm.Project.selectedFirstTier = null;\r\n\r\n vm.FacingDirectionList = [];\r\n vm.Project.selectedFacingDirection = null;\r\n\r\n vm.LocationFeatureList = [];\r\n vm.Project.selectedLocationFeature = null;\r\n\r\n vm.ConditionValues = '';\r\n vm.Project.selectedReportType = null;\r\n }\r\n\r\n function ViewReport() {\r\n\r\n var Condition = '';\r\n var tmpCondition = '';\r\n // var Header = vm.Project.selectedReportType.Type + ' Report of ' + vm.ResultFor + ' ' + vm.ApartmentTypeList[0].TierName + ' of ' + vm.CRMProjectName;\r\n var Header = vm.Project.selectedReportType.Type + ' Report of ' + vm.ResultFor + ' ' + ' of ' + vm.CRMProjectName;\r\n var tmpHeader = '';\r\n var tmpFilter = '';\r\n var Filter1 = '';\r\n var Filter2 = '';\r\n var Filter3 = '';\r\n var Filter4 = '';\r\n var Filter5 = '';\r\n var Filter6 = '';\r\n\r\n\r\n if (vm.Project.selectedReportType != undefined) {\r\n\r\n if (vm.Project.selectedLocation != null) {\r\n\r\n tmpCondition = '';\r\n tmpFilter = '';\r\n if (vm.Project.selectedLocation.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocation[i].Id + ',';\r\n tmpFilter = tmpFilter + vm.Project.selectedLocation[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n tmpFilter = tmpFilter.substring(0, tmpFilter.length - 1);\r\n }\r\n\r\n Condition = Condition + ' PD.LocationId In(' + tmpCondition + ')';\r\n Filter1 = 'Type of Property : ' + tmpFilter;\r\n }\r\n }\r\n\r\n if (vm.Project.selectedApartmentType != null) {\r\n\r\n tmpCondition = '';\r\n tmpFilter = '';\r\n if (vm.Project.selectedApartmentType.length > 0) {\r\n\r\n for (var i in vm.Project.selectedApartmentType) {\r\n tmpCondition = tmpCondition + vm.Project.selectedApartmentType[i].Id + ',';\r\n tmpFilter = tmpFilter + vm.Project.selectedApartmentType[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n tmpFilter = tmpFilter.substring(0, tmpFilter.length - 1);\r\n }\r\n\r\n Condition = ((Condition.length > 0) ? Condition + ' and ' : '') + ' PD.PropertyTypeId In(' + tmpCondition + ')';\r\n Filter2 = 'Apartment Type : ' + tmpFilter;\r\n }\r\n }\r\n\r\n\r\n if (vm.Project.selectedSalableArea != null) {\r\n\r\n tmpCondition = '';\r\n tmpFilter = '';\r\n if (vm.Project.selectedSalableArea.length > 0) {\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n tmpCondition = tmpCondition + vm.Project.selectedSalableArea[i].Value + ',';\r\n tmpFilter = tmpFilter + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n tmpFilter = tmpFilter.substring(0, tmpFilter.length - 1);\r\n }\r\n\r\n Condition = ((Condition.length > 0) ? Condition + ' and ' : '') + ' PA.SalableArea In(' + tmpCondition + ')';\r\n Filter3 = 'Salable Area : ' + tmpFilter;\r\n }\r\n }\r\n\r\n if (vm.Project.selectedFirstTier != null) {\r\n\r\n tmpCondition = '';\r\n tmpFilter = '';\r\n if (vm.Project.selectedFirstTier.length > 0) {\r\n\r\n for (var i in vm.Project.selectedFirstTier) {\r\n tmpCondition = tmpCondition + vm.Project.selectedFirstTier[i].Id + ',';\r\n tmpFilter = tmpFilter + vm.Project.selectedSalableArea[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n tmpFilter = tmpFilter.substring(0, tmpFilter.length - 1);\r\n }\r\n\r\n Condition = ((Condition.length > 0) ? Condition + ' and ' : '') + ' TM.TierId In(' + tmpCondition + ')';\r\n Filter4 = 'Block : ' + tmpFilter;\r\n }\r\n }\r\n\r\n if (vm.Project.selectedFacingDirection != null) {\r\n\r\n tmpCondition = '';\r\n tmpFilter = '';\r\n if (vm.Project.selectedFacingDirection.length > 0) {\r\n\r\n for (var i in vm.Project.selectedFacingDirection) {\r\n tmpCondition = tmpCondition + vm.Project.selectedFacingDirection[i].Id + ',';\r\n tmpFilter = tmpFilter + vm.Project.selectedFacingDirection[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n tmpFilter = tmpFilter.substring(0, tmpFilter.length - 1);\r\n }\r\n\r\n Condition = ((Condition.length > 0) ? Condition + ' and ' : '') + ' PA.FlatFacing In(' + tmpCondition + ')';\r\n Filter5 = 'Facing Direction : ' + tmpFilter;\r\n }\r\n }\r\n\r\n if (vm.Project.selectedLocationFeature != null) {\r\n\r\n tmpCondition = '';\r\n tmpFilter = '';\r\n if (vm.Project.selectedLocationFeature.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocationFeature) {\r\n tmpCondition = tmpCondition + vm.Project.selectedLocationFeature[i].Id + ',';\r\n tmpFilter = tmpFilter + vm.Project.selectedLocationFeature[i].Value + ',';\r\n }\r\n\r\n if (tmpCondition.length > 0) {\r\n tmpCondition = tmpCondition.substring(0, tmpCondition.length - 1);\r\n tmpFilter = tmpFilter.substring(0, tmpFilter.length - 1);\r\n }\r\n\r\n Condition = ((Condition.length > 0) ? Condition + ' and ' : '') + ' PA.FeatureId In(' + tmpCondition + ')';\r\n Filter6 = 'Location Feature : ' + tmpFilter;\r\n }\r\n }\r\n\r\n if (vm.Project.selectedReportType.Type == 'Detailed' || vm.Project.selectedReportType.Type == 'Consolidated') {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n ResultFor: vm.Project.selectedReportType.Type,\r\n ReportHeader: Header,\r\n CompanyName: CompanyName,\r\n ProjectName: vm.CRMProjectName,\r\n AreaName: vm.CRMProjectArea,\r\n UserName: logggedUser.FirstName,\r\n CompanyImage: vm.CRMProjectImage,\r\n Condition: Condition,\r\n Filter1: Filter1,\r\n Filter2: Filter2,\r\n Filter3: Filter3,\r\n Filter4: Filter4,\r\n Filter5: Filter5,\r\n Filter6: Filter6,\r\n }\r\n\r\n CRM_ProjectPropertyViewService.ExportProjectPropertyReport_New(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ExportPdfData = res.data;\r\n\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Report Exported successfully', \"Project Property View\");\r\n vm.isLoading = false;\r\n // Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n\r\n }\r\n else if (vm.Project.selectedReportType.Type == 'For RERA') {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n CompanyName: CompanyName,\r\n ProjectName: vm.CRMProjectName,\r\n AreaName: vm.CRMProjectArea,\r\n UserName: logggedUser.FirstName,\r\n CompanyImage: vm.CRMProjectImage,\r\n }\r\n\r\n CRM_ProjectPropertyViewService.ExportProjectPropertyReportRERA(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ExportPdfData = res.data;\r\n\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Report Exported successfully', \"Project Property View\");\r\n vm.isLoading = false;\r\n // Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectPropertyView_New')\r\n .controller('CRM_projectPropertyView_NewCtrl', CRM_projectPropertyView_NewCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_projectPropertyView_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, CRM_ProjectPropertyViewService, projectDetailsSetupService, CRM_CopyAreaDetailsService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isProjectTile = true;\r\n vm.isInputView = false;\r\n vm.isDetailedView = false;\r\n vm.isConsolidatedView = false;\r\n vm.LoadInputDetails = LoadInputDetails;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.LoadParkingInnerLocations = LoadParkingInnerLocations;\r\n vm.ViewReport = ViewReport;\r\n vm.Cancel = Cancel;\r\n vm.Project = {};\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.loadMultiSelect = false;\r\n vm.loadParkingMultiSelect = false;\r\n vm.LocationList = [];\r\n vm.ApartmentTypeList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n vm.CRMProjectId = 0;\r\n vm.CRMProjectName = '';\r\n vm.CRMProjectArea = '';\r\n vm.AptType = '';\r\n vm.LocIds = '';\r\n vm.TierIds = '';\r\n vm.ParkingTierIds = '';\r\n vm.AprtIds = '';\r\n vm.FlatFacingIds = '';\r\n vm.FeatureIds = '';\r\n vm.SalableAreas = '';\r\n vm.CRMProjectImage = '';\r\n // vm.ParkLocIds = '';\r\n vm.ReportTypes = [];\r\n vm.ReportFor = [];\r\n vm.BasicLocationList = [];\r\n vm.ParkingBasicLocationList = [];\r\n vm.GroupResult = [];\r\n vm.TileBack = TileBack;\r\n vm.ExportReport = ExportReport;\r\n vm.ReportFilters = '';\r\n vm.LoadReportType = LoadReportType;\r\n vm.isRptType = false;\r\n\r\n $scope.slider = {\r\n minValue: 0,\r\n maxValue: 2000000,\r\n options: {\r\n floor: 0,\r\n ceil: 2000000,\r\n step: 10000\r\n }\r\n };\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n var CompanyName = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init();\r\n function Init() {\r\n\r\n vm.ReportTypes = [{\r\n 'Type': 'Detailed'\r\n }, {\r\n 'Type': 'Consolidated'\r\n }];\r\n\r\n vm.ReportFor = [{\r\n 'Value': 'For RERA'\r\n }, {\r\n 'Value': 'Others'\r\n }];\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllPriceApprovedProjects_ForTiles(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectPropertyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadInputDetails(iCondition, Id) {\r\n vm.isInputView = true;\r\n vm.isProjectTile = false;\r\n var inputdata = {};\r\n\r\n if (iCondition == 'Load_Location') {\r\n var locIds = '';\r\n\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.loadMultiSelect = false;\r\n\r\n var PrjDetails = lodash.filter(vm.ProjectPropertyList, { 'ProjectId': Id });\r\n\r\n vm.CRMProjectId = Id;\r\n vm.CRMProjectName = PrjDetails[0].ProjectName;\r\n vm.CRMProjectArea = PrjDetails[0].AreaName;\r\n vm.CRMProjectImage = PrjDetails[0].ProjectImage;\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: Id,\r\n SelectFor: iCondition,\r\n };\r\n }\r\n else if (iCondition == 'Load_ApartmentType') {\r\n vm.LocIds = '';\r\n vm.AprtIds = '';\r\n vm.FlatFacingIds = '';\r\n vm.FeatureIds = '';\r\n vm.SalableAreas = '';\r\n vm.AptType = '';\r\n // vm.ParkLocIds = '';\r\n\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.loadMultiSelect = false;\r\n\r\n if (vm.Project.selectedLocation.length > 0) {\r\n if (vm.Project.selectedLocation.length == 1) {\r\n // if (typeof(Id) == string && Id == 'Load_Tiers')\r\n vm.isLoadTiers = true;\r\n vm.loadMultiSelect = true;\r\n vm.AptType = vm.Project.selectedLocation[0]['BasicLocation'];\r\n if (Id == 'Load_Tiers') {\r\n LoadTiers('Tiers', vm.Project.selectedLocation[0].LocationId);\r\n vm.isLoadTiers = true;\r\n vm.loadMultiSelect = false;\r\n }\r\n }\r\n else {\r\n vm.isLoadTiers = false;\r\n vm.loadMultiSelect = true;\r\n\r\n LoadInputDetails('Load_FacingDirection');\r\n }\r\n\r\n for (var i in vm.Project.selectedLocation) {\r\n vm.LocIds = vm.LocIds + vm.Project.selectedLocation[i].LocationId + ',';\r\n }\r\n\r\n if (vm.LocIds.length > 0)\r\n vm.LocIds = vm.LocIds.substring(0, vm.LocIds.length - 1);\r\n\r\n var tids = null;\r\n\r\n if (vm.TierIds.length > 0)\r\n tids = vm.TierIds;\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: vm.LocIds,\r\n TierId: tids,\r\n SelectFor: iCondition,\r\n };\r\n }\r\n else {\r\n vm.ApartmentTypeList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n }\r\n }\r\n else if (iCondition == 'Load_FacingDirection') {\r\n\r\n vm.AprtIds = null;\r\n vm.FlatFacingIds = '';\r\n vm.FeatureIds = '';\r\n vm.SalableAreas = '';\r\n\r\n if (vm.Project.selectedApartmentType != undefined)\r\n if (vm.Project.selectedApartmentType.length > 0) {\r\n\r\n for (var i in vm.Project.selectedApartmentType) {\r\n vm.AprtIds = vm.AprtIds + vm.Project.selectedApartmentType[i].PropertyTypeId + ',';\r\n }\r\n\r\n if (vm.AprtIds.length > 0)\r\n vm.AprtIds = vm.AprtIds.substring(0, vm.AprtIds.length - 1);\r\n }\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: vm.LocIds,\r\n TierId: vm.TierIds,\r\n PropertyTypeId: vm.AprtIds,\r\n SelectFor: iCondition,\r\n };\r\n\r\n }\r\n else if (iCondition == 'Load_LocationFeature') {\r\n vm.FlatFacingIds = '';\r\n vm.FeatureIds = '';\r\n vm.SalableAreas = '';\r\n\r\n if (vm.Project.selectedFacingDirection != undefined)\r\n if (vm.Project.selectedFacingDirection.length > 0) {\r\n\r\n for (var i in vm.Project.selectedFacingDirection) {\r\n vm.FlatFacingIds = vm.FlatFacingIds + vm.Project.selectedFacingDirection[i].FlatFacingId + ',';\r\n }\r\n\r\n if (vm.FlatFacingIds.length > 0)\r\n vm.FlatFacingIds = vm.FlatFacingIds.substring(0, vm.FlatFacingIds.length - 1);\r\n }\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: vm.LocIds,\r\n TierId: vm.TierIds,\r\n PropertyTypeId: vm.AprtIds,\r\n FacingDirectionId: vm.FlatFacingIds,\r\n SelectFor: iCondition,\r\n };\r\n }\r\n else if (iCondition == 'Load_SalableArea') {\r\n vm.FeatureIds = '';\r\n vm.SalableAreas = '';\r\n\r\n if (vm.Project.selectedLocationFeature != undefined)\r\n if (vm.Project.selectedLocationFeature.length > 0) {\r\n\r\n for (var i in vm.Project.selectedLocationFeature) {\r\n vm.FeatureIds = vm.FeatureIds + vm.Project.selectedLocationFeature[i].FeatureId + ',';\r\n }\r\n\r\n if (vm.FeatureIds.length > 0)\r\n vm.FeatureIds = vm.FeatureIds.substring(0, vm.FeatureIds.length - 1);\r\n }\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: vm.LocIds,\r\n TierId: vm.TierIds,\r\n PropertyTypeId: vm.AprtIds,\r\n FacingDirectionId: vm.FlatFacingIds,\r\n FeatureId: vm.FeatureIds,\r\n SelectFor: iCondition,\r\n };\r\n }\r\n else if (iCondition == 'Load_ParkingLocation') {\r\n vm.SalableAreas = '';\r\n vm.loadParkingMultiSelect = false;\r\n vm.isLoadParkingTiers = false;\r\n if (vm.Project.selectedSalableArea != undefined)\r\n if (vm.Project.selectedSalableArea.length > 0) {\r\n\r\n for (var i in vm.Project.selectedSalableArea) {\r\n vm.SalableAreas = vm.SalableAreas + vm.Project.selectedSalableArea[i].SalableArea + ',';\r\n }\r\n\r\n if (vm.SalableAreas.length > 0)\r\n vm.SalableAreas = vm.SalableAreas.substring(0, vm.SalableAreas.length - 1);\r\n }\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: vm.LocIds,\r\n TierId: vm.TierIds,\r\n PropertyTypeId: vm.AprtIds,\r\n FacingDirectionId: vm.FlatFacingIds,\r\n FeatureId: vm.FeatureIds,\r\n SalableArea: vm.SalableAreas,\r\n SelectFor: iCondition,\r\n };\r\n }\r\n else if (iCondition == 'Load_ParkingTiers') {\r\n vm.isLoadParkingTiers = false;\r\n vm.ParkingBasicLocationList = [];\r\n vm.loadParkingMultiSelect = false;\r\n if (vm.Project.selectedParkingLocation != undefined) {\r\n if (vm.Project.selectedParkingLocation.length > 0) {\r\n if (vm.Project.selectedParkingLocation.length == 1) {\r\n vm.isLoadParkingTiers = true;\r\n vm.loadParkingMultiSelect = false;\r\n LoadTiers('ParkingTiers', vm.Project.selectedParkingLocation[0].LocationId);\r\n }\r\n }\r\n else {\r\n vm.isLoadParkingTiers = false;\r\n vm.loadParkingMultiSelect = true;\r\n }\r\n }\r\n }\r\n\r\n if (!angular.equals({}, inputdata)) {\r\n if (iCondition == 'Load_Location') {\r\n vm.LocationList = [];\r\n vm.ApartmentTypeList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n }\r\n else if (iCondition == 'Load_ApartmentType') {\r\n vm.ApartmentTypeList = [];\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n }\r\n else if (iCondition == 'Load_FacingDirection') {\r\n vm.FacingDirectionList = [];\r\n vm.LocationFeatureList = [];\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n }\r\n else if (iCondition == 'Load_LocationFeature') {\r\n vm.LocationFeatureList = [];\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n }\r\n else if (iCondition == 'Load_SalableArea') {\r\n vm.SalableAreaList = [];\r\n vm.ParkingLocationList = [];\r\n }\r\n else if (iCondition == 'Load_ParkingLocation') {\r\n vm.ParkingLocationList = [];\r\n }\r\n\r\n CRM_ProjectPropertyViewService.GetAllInputDataBasedCondition_ForReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n if (iCondition == 'Load_Location') {\r\n vm.LocationList = res.data;\r\n }\r\n else if (iCondition == 'Load_ApartmentType') {\r\n vm.ApartmentTypeList = res.data;\r\n }\r\n else if (iCondition == 'Load_FacingDirection') {\r\n vm.FacingDirectionList = res.data;\r\n }\r\n else if (iCondition == 'Load_LocationFeature') {\r\n vm.LocationFeatureList = res.data;\r\n }\r\n else if (iCondition == 'Load_SalableArea') {\r\n vm.SalableAreaList = res.data;\r\n }\r\n else if (iCondition == 'Load_ParkingLocation') {\r\n vm.ParkingLocationList = res.data;\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadTiers(SelectFor, iLocationId) {\r\n if (SelectFor == 'Tiers') {\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n LocationId: iLocationId,\r\n ProjectId: vm.CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n var tierInput = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: iLocationId,\r\n SelectFor: 'Rate',\r\n Type: 'A'\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(tierInput).then(function (result) {\r\n if (result.status === 200) {\r\n vm.AllSavedDetails = result.data;\r\n var firstTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': 0 });\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (i == 0)\r\n vm.BasicLocationList[i].NewLocation = firstTiers;\r\n else\r\n vm.BasicLocationList[i].NewLocation = [];\r\n }\r\n vm.loadMultiSelect = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else if (SelectFor == 'ParkingTiers') {\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n LocationId: iLocationId,\r\n ProjectId: vm.CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ParkingBasicLocationList = res.data;\r\n\r\n var tierInput = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n LocationId: iLocationId,\r\n SelectFor: 'ParkingLocation',\r\n Type: 'A'\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(tierInput).then(function (result) {\r\n if (result.status === 200) {\r\n vm.AllParkingSavedDetails = result.data;\r\n var firstTiers = lodash.filter(vm.AllParkingSavedDetails, { 'ParentTierId': 0 });\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (i == 0)\r\n vm.ParkingBasicLocationList[i].NewLocation = firstTiers;\r\n else\r\n vm.ParkingBasicLocationList[i].NewLocation = [];\r\n }\r\n vm.loadParkingMultiSelect = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadInnerLocations(SelectedLocs, Level, callback) {\r\n\r\n if (SelectedLocs != null) {\r\n if (SelectedLocs.length > 0) {\r\n if (Level < vm.BasicLocationList.length) {\r\n var tierIdArr = [];\r\n for (var i in SelectedLocs) {\r\n var nextSavedTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': SelectedLocs[i].TierId });\r\n tierIdArr = tierIdArr.concat(nextSavedTiers);\r\n }\r\n\r\n vm.BasicLocationList[Level].NewLocation = tierIdArr;\r\n vm.BasicLocationList[Level].selectedTier = null;\r\n vm.loadMultiSelect = true;\r\n }\r\n else {\r\n var tids = '';\r\n\r\n for (var i in SelectedLocs) {\r\n tids = tids + SelectedLocs[i].TierId + ',';\r\n }\r\n\r\n if (tids.length > 0 && vm.BasicLocationList.length == Level) {\r\n\r\n tids = tids.substring(0, tids.length - 1);\r\n vm.TierIds = tids;\r\n LoadInputDetails('Load_ApartmentType');\r\n }\r\n else {\r\n vm.TierIds = '';\r\n }\r\n }\r\n }\r\n else {\r\n for (var i in vm.BasicLocationList) {\r\n if (i == (Level - 1)) {\r\n vm.BasicLocationList[i].selectedTier = null;\r\n }\r\n else if ((Level - 1) < i) {\r\n vm.BasicLocationList[i].selectedTier = null;\r\n vm.BasicLocationList[i].NewLocation = [];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function LoadParkingInnerLocations(SelectedLocs, Level, callback) {\r\n\r\n if (SelectedLocs != null) {\r\n if (SelectedLocs.length > 0) {\r\n if (Level < vm.ParkingBasicLocationList.length) {\r\n var tierIdArr = [];\r\n for (var i in SelectedLocs) {\r\n var nextSavedTiers = lodash.filter(vm.AllParkingSavedDetails, { 'ParentTierId': SelectedLocs[i].TierId });\r\n tierIdArr = tierIdArr.concat(nextSavedTiers);\r\n }\r\n\r\n vm.ParkingBasicLocationList[Level].NewLocation = tierIdArr;\r\n vm.ParkingBasicLocationList[Level].selectedTier = null;\r\n vm.loadParkingMultiSelect = true;\r\n }\r\n else {\r\n var tids = '';\r\n\r\n for (var i in SelectedLocs) {\r\n tids = tids + SelectedLocs[i].TierId + ',';\r\n }\r\n\r\n if (tids.length > 0 && vm.ParkingBasicLocationList.length == Level) {\r\n\r\n tids = tids.substring(0, tids.length - 1);\r\n vm.ParkingTierIds = tids;\r\n }\r\n else {\r\n vm.ParkingTierIds = '';\r\n }\r\n }\r\n }\r\n else {\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (i == (Level - 1)) {\r\n vm.ParkingBasicLocationList[i].selectedTier = null;\r\n }\r\n else if ((Level - 1) < i) {\r\n vm.ParkingBasicLocationList[i].selectedTier = null;\r\n vm.ParkingBasicLocationList[i].NewLocation = [];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function ViewReport(iReportFor) {\r\n\r\n var strCondition = '';\r\n var ConditionValues = '';\r\n vm.ReportFilters = '';\r\n\r\n if (vm.Project.selectedLocation != undefined) {\r\n if (vm.Project.selectedLocation.length > 0) {\r\n\r\n ConditionValues = '';\r\n for (var i in vm.Project.selectedLocation)\r\n ConditionValues = ConditionValues + vm.Project.selectedLocation[i].LocationId + ',';\r\n\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and PD.LocationId In (' + ConditionValues + ')';\r\n\r\n if (vm.Project.selectedLocation.length == 1) {\r\n var lastLevel = 0;\r\n lastLevel = vm.BasicLocationList.length;\r\n\r\n if (vm.BasicLocationList[lastLevel - 1].selectedTier != undefined && vm.BasicLocationList[lastLevel - 1].selectedTier != null) {\r\n\r\n ConditionValues = '';\r\n for (var j in vm.BasicLocationList[lastLevel - 1].selectedTier) {\r\n ConditionValues = ConditionValues + vm.BasicLocationList[lastLevel - 1].selectedTier[j].TierId + ',';\r\n }\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and TM.TierId In (' + ConditionValues + ')';\r\n }\r\n else {\r\n // for (var i in vm.BasicLocationList) {\r\n // ConditionValues = '';\r\n // var lvl = 0;\r\n // var lastLevel = 0;\r\n // lastLevel = vm.BasicLocationList.length;\r\n\r\n // if (vm.BasicLocationList[i].selectedTier == undefined || vm.BasicLocationList[i].selectedTier == null) {\r\n // lvl = parseInt(i)+1;\r\n\r\n // var parentIds = '';\r\n\r\n // for (var a = lvl; a <= vm.BasicLocationList.length; a++) \r\n // {\r\n // parentIds = lodash.filter(vm.AllSavedDetails,'TierId',vm.BasicLocationList[i-1].selectedTier.ParentTierId)\r\n // }\r\n\r\n // // for (var lvl in lastLevel)\r\n // // {\r\n // // // var PrjDetails = lodash.filter(vm.ProjectPropertyList, { 'ProjectId': Id });\r\n\r\n // // parentIds = lodash.filter(vm.AllSavedDetails,'TierId',vm.BasicLocationList[i-1].selectedTier.ParentTierId)\r\n // // if(lvl == lastLevel)\r\n // // {\r\n\r\n // // }\r\n // // }\r\n\r\n // // for (var j in vm.BasicLocationList[i + 1].selectedTier) {\r\n // // if (j < lastLevel)\r\n // // ConditionValues = ConditionValues + vm.BasicLocationList[i].selectedTier[j].TierId + ',';\r\n // // }\r\n // // if (ConditionValues.length > 0)\r\n // // ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n // // strCondition = strCondition + ' and TM.TierId In (' + ConditionValues + ')';\r\n // }\r\n // }\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n if (vm.Project.selectedFacingDirection != undefined) {\r\n if (vm.Project.selectedFacingDirection.length > 0) {\r\n\r\n ConditionValues = '';\r\n for (var i in vm.Project.selectedFacingDirection)\r\n ConditionValues = ConditionValues + vm.Project.selectedFacingDirection[i].FlatFacingId + ',';\r\n\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and FF.FlatFacingId In (' + ConditionValues + ')';\r\n }\r\n }\r\n\r\n if (vm.Project.selectedLocationFeature != undefined) {\r\n if (vm.Project.selectedLocationFeature.length > 0) {\r\n\r\n ConditionValues = '';\r\n for (var i in vm.Project.selectedLocationFeature)\r\n ConditionValues = ConditionValues + vm.Project.selectedLocationFeature[i].FeatureId + ',';\r\n\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and FL.FeatureId In (' + ConditionValues + ')';\r\n }\r\n }\r\n\r\n if (vm.Project.selectedSalableArea != undefined) {\r\n if (vm.Project.selectedSalableArea.length > 0) {\r\n\r\n ConditionValues = '';\r\n for (var i in vm.Project.selectedSalableArea)\r\n ConditionValues = ConditionValues + vm.Project.selectedSalableArea[i].SalableArea + ',';\r\n\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and PA.SalableArea In (' + ConditionValues + ')';\r\n }\r\n }\r\n\r\n if (vm.Project.selectedParkingLocation != undefined) {\r\n if (vm.Project.selectedParkingLocation.length > 0) {\r\n\r\n ConditionValues = '';\r\n for (var i in vm.Project.selectedParkingLocation)\r\n ConditionValues = ConditionValues + vm.Project.selectedParkingLocation[i].LocationId + ',';\r\n\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and PD.ParkingLocationId In (' + ConditionValues + ')';\r\n\r\n if (vm.Project.selectedParkingLocation.length == 1) {\r\n var lastLevel = 0;\r\n lastLevel = vm.ParkingBasicLocationList.length;\r\n\r\n if (vm.ParkingBasicLocationList[lastLevel - 1].selectedTier != undefined && vm.ParkingBasicLocationList[lastLevel - 1].selectedTier != null) {\r\n\r\n ConditionValues = '';\r\n for (var j in vm.ParkingBasicLocationList[lastLevel - 1].selectedTier) {\r\n ConditionValues = ConditionValues + vm.ParkingBasicLocationList[lastLevel - 1].selectedTier[j].TierId + ',';\r\n }\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n strCondition = strCondition + ' and PTM.TierId In (' + ConditionValues + ')';\r\n }\r\n else {\r\n\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n strCondition = strCondition + ' and (PD.TotalCost Between ' + $scope.slider.minValue + ' and ' + $scope.slider.maxValue + ')';\r\n\r\n vm.ReportFilters = strCondition;\r\n\r\n if (strCondition.length > 0) {\r\n\r\n if (vm.Project.selectedReportFor.Value == 'For RERA') {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n CompanyName: CompanyName, \r\n ProjectName: vm.CRMProjectName,\r\n AreaName: vm.CRMProjectArea,\r\n UserName: logggedUser.FirstName,\r\n CompanyImage: vm.CRMProjectImage,\r\n }\r\n\r\n CRM_ProjectPropertyViewService.ExportProjectPropertyReportRERA(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ExportPdfData = res.data;\r\n\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Report Exported successfully', \"Project Property View\");\r\n vm.isLoading = false;\r\n // Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n }\r\n else {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.CRMProjectId,\r\n Condition: strCondition,\r\n ReportType: vm.Project.selectedReportType.Type\r\n }\r\n CRM_ProjectPropertyViewService.GetProjectPropertyReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.Distinct.length > 0) {\r\n vm.ReportList = res.data;\r\n vm.GroupResult = [];\r\n\r\n vm.isInputView = false;\r\n vm.isProjectTile = false;\r\n\r\n if (vm.Project.selectedReportType.Type == 'Detailed') {\r\n vm.isDetailedView = true;\r\n vm.isConsolidatedView = false;\r\n\r\n for (var i in vm.ReportList.Distinct) {\r\n\r\n var sdtls = lodash.filter(vm.ReportList.AllValues, {\r\n 'TypeofProperty': vm.ReportList.Distinct[i].TypeofProperty,\r\n 'PropertyType': vm.ReportList.Distinct[i].PropertyType,\r\n // 'GroupColumn': vm.ReportList.Distinct[i].GroupColumn\r\n });\r\n\r\n var GroupResult1 = lodash.groupBy(sdtls, 'GroupColumn');\r\n\r\n var data = {\r\n 'TypeofProperty': vm.ReportList.Distinct[i].TypeofProperty,\r\n 'PropertyType': vm.ReportList.Distinct[i].PropertyType,\r\n // 'GroupColumn': vm.ReportList.Distinct[i].GroupColumn,\r\n 'Values': GroupResult1\r\n }\r\n\r\n vm.GroupResult.push(\r\n data\r\n );\r\n }\r\n }\r\n else {\r\n vm.isDetailedView = false;\r\n vm.isConsolidatedView = true;\r\n\r\n for (var i in vm.ReportList.Distinct) {\r\n var data = {\r\n 'TypeofProperty': vm.ReportList.Distinct[i].TypeofProperty,\r\n 'Values': JSON.parse(vm.ReportList.Distinct[i].GroupColumn),\r\n }\r\n\r\n vm.GroupResult.push(\r\n data\r\n );\r\n }\r\n\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'No data found', \"Project Master\");\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Please select any value', \"Project Property View\");\r\n }\r\n }\r\n\r\n function ConcatConditions(DetailsList, Id) {\r\n\r\n var ConditionValues = '';\r\n\r\n for (var i in DetailsList)\r\n ConditionValues = ConditionValues + DetailsList[0].Id + ',';\r\n\r\n if (ConditionValues.length > 0)\r\n ConditionValues = ConditionValues.substring(0, ConditionValues.length - 1);\r\n\r\n return ConditionValues;\r\n }\r\n\r\n\r\n function LoadReportType() {\r\n\r\n if (vm.Project.selectedReportFor != undefined) {\r\n if (vm.Project.selectedReportFor.Value == 'For RERA') {\r\n vm.isRptType = false;\r\n vm.Project.selectedReportType = vm.ReportTypes[0];\r\n }\r\n else {\r\n vm.isRptType = true;\r\n vm.Project.selectedReportType = null;\r\n }\r\n }\r\n }\r\n\r\n function TileBack() {\r\n vm.isInputView = true;\r\n vm.isDetailedView = false;\r\n vm.isConsolidatedView = false;\r\n vm.isProjectTile = false;\r\n }\r\n\r\n function Cancel(row) {\r\n vm.isInputView = false;\r\n vm.isProjectTile = true;\r\n }\r\n\r\n function ExportReport(iReportType) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n CompanyName: CompanyName,\r\n ProjectId: vm.CRMProjectId,\r\n Condition: vm.ReportFilters,\r\n ReportType: iReportType,\r\n ProjectName: vm.CRMProjectName,\r\n AreaName: vm.CRMProjectArea,\r\n UserName: logggedUser.FirstName,\r\n CompanyImage: vm.CRMProjectImage,\r\n }\r\n\r\n if (vm.Project.selectedReportFor.Value == 'For RERA') {\r\n CRM_ProjectPropertyViewService.ExportProjectPropertyReportRERA(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ExportPdfData = res.data;\r\n\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Report Exported successfully', \"Project Property View\");\r\n vm.isLoading = false;\r\n // Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n }\r\n else {\r\n CRM_ProjectPropertyViewService.ExportProjectPropertyReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ExportPdfData = res.data;\r\n\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Report Exported successfully', \"Project Property View\");\r\n vm.isLoading = false;\r\n // Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n }\r\n\r\n\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectRateApproval')\r\n .controller('CRM_ProjectRateApprovalCtrl', CRM_ProjectRateApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectRateApprovalCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, projectCreationService, StateService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n vm.Project = {};\r\n vm.EditProject = EditProject;\r\n vm.isLoading = true;\r\n vm.Cancel = Cancel;\r\n vm.LoadTiers = LoadTiers;\r\n vm.TileBack = TileBack;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '3',\r\n ApprovalFor: 'Rate'\r\n };\r\n ProjectDetailsApprovalService.ProjectRateApproval(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RateApprovalList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadTiers(iProjectId, callback) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '3',\r\n ApprovalFor: 'Rate',\r\n ProjectId: iProjectId\r\n };\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function EditProject(row) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n\r\n vm.ProjectPriceDetails = angular.copy(row);\r\n\r\n vm.Project.ProjectName = vm.ProjectPriceDetails.ProjectName;\r\n\r\n for (var i in vm.RateApprovalList) {\r\n if (vm.RateApprovalList[i].ProjectId == vm.ProjectPriceDetails.ProjectId) {\r\n vm.Project.selectedProject = vm.RateApprovalList[i];\r\n }\r\n }\r\n\r\n LoadTiers(vm.Project.selectedProject.ProjectId, function () {\r\n for (var i in vm.TierDetails) {\r\n if (vm.TierDetails[i].TierId === vm.ProjectPriceDetails.TierId) {\r\n vm.Project.selectedTier = vm.TierDetails[i];\r\n // vm.Project.selectedTier.SetupId = vm.TierDetails[i].SetupId;\r\n }\r\n }\r\n });\r\n\r\n var bltuparea = JSON.parse(vm.ProjectPriceDetails.AreaUnits);\r\n\r\n for (var i = 0; i < Object.keys(bltuparea).length; i++) {\r\n if (Object.keys(bltuparea)[i] == 'Super Builtup Area') {\r\n vm.Project.BuiltupArea = (Object.values(bltuparea)[i]);\r\n }\r\n }\r\n\r\n vm.Project.TierName = vm.ProjectPriceDetails.TierValue;\r\n\r\n vm.Project.RatePerUnitArea = vm.ProjectPriceDetails.RatePerUnit;\r\n vm.Project.BookingPrice = vm.ProjectPriceDetails.BookingPercentage;\r\n vm.Project.TotalCost = vm.ProjectPriceDetails.TotalCost;\r\n vm.Project.StatutoryCost = vm.ProjectPriceDetails.StatutoryCost;\r\n vm.Project.TotalBasicCost = vm.Project.RatePerUnitArea * vm.Project.BuiltupArea;\r\n\r\n\r\n var StatDetails = JSON.parse(vm.ProjectPriceDetails.StatutoryDetails);\r\n\r\n vm.Project.UDS = StatDetails.UDS;\r\n vm.Project.RateofLand = StatDetails.RateofLand;\r\n vm.Project.CostofLand = StatDetails.CostofLand;\r\n vm.Project.CostofConstruction = StatDetails.CostofConstruction;\r\n vm.Project.StampdutyCharges = StatDetails.StampdutyCharges;\r\n vm.Project.ParkingCharges = StatDetails.ParkingCharges;\r\n vm.Project.ThreePhaseCharges = StatDetails.ThreePhaseCharges;\r\n vm.Project.DTPCharges = StatDetails.DTPCharges;\r\n vm.Project.DTCPApprovalCharges = StatDetails.DTCPApprovalCharges;\r\n vm.Project.SewerageWaterCharges = StatDetails.SewerageWaterCharges;\r\n vm.Project.DrinkingWaterCharges = StatDetails.DrinkingWaterCharges;\r\n vm.Project.AdvanceMaintenance = StatDetails.AdvanceMaintenance;\r\n vm.Project.LegalCharges = StatDetails.LegalCharges;\r\n vm.Project.SolarPwrGeneration = StatDetails.SolarPwrGeneration;\r\n vm.Project.SolarWaterHeater = StatDetails.SolarWaterHeater;\r\n vm.Project.ClubMemberCharges = StatDetails.ClubMemberCharges;\r\n\r\n }\r\n\r\n function Cancel() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n vm.ProjectPriceApproval = function (approval) {\r\n\r\n var StatusId;\r\n if (approval == 'Approve')\r\n StatusId = 4;\r\n else\r\n StatusId = 6;\r\n\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputData = {\r\n SetupId: vm.ProjectPriceDetails.SetupId,\r\n Status: StatusId,\r\n ApprovalFor: 'Rate',\r\n CreatedBy: loggeduser.UserId\r\n };\r\n\r\n ProjectDetailsApprovalService.ApprovalProjectDetails(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n if (approval == 'Approve')\r\n $rootScope.showToaster('success', 'Approved successfully', \"success\");\r\n else\r\n $rootScope.showToaster('success', 'Rejected successfully', \"success\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n function TileBack() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectPriceSetup', SetupType: '' });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectRateApproval_New')\r\n .controller('CRM_ProjectRateApproval_NewCtrl', CRM_ProjectRateApproval_NewCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectRateApproval_NewCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, EmployeeService, CountryService,\r\n CityService, AreaService, CRM_projectInitiationService, ProjectDetailsApprovalService, CRM_GstSettingService, projectDetailsSetupService, projectCreationService, StateService, AuthenticationService, CRM_ProjectDetailsPriceSetupNewService, CRM_StatutoryMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n\r\n\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.EditProjectPrice = EditProjectPrice;\r\n vm.DeleteProjectPrice = DeleteProjectPrice;\r\n vm.LoadAllTiers = LoadAllTiers;\r\n\r\n vm.TileBack = TileBack;\r\n\r\n\r\n vm.Cancel = Cancel;\r\n\r\n vm.Create = Create;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.ReadAreaDetails = ReadAreaDetails;\r\n vm.CostCalculation = CostCalculation;\r\n // vm.StatutoryCalculation = StatutoryCalculation;\r\n vm.ShowStatutoryPercentage = ShowStatutoryPercentage;\r\n vm.ShowStatutoryPercentageNew = ShowStatutoryPercentageNew;\r\n vm.LoadStatutoryDetails = LoadStatutoryDetails;\r\n vm.SaveProjectPriceDetails = SaveProjectPriceDetails;\r\n\r\n vm.Project = {};\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n vm.isEditing = false;\r\n vm.RateApprovalList = [];\r\n vm.GSTSettingsList = [];\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n\r\n vm.StatutoryTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Lump Sum' }, { 'Value': 'Percentage' }];\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n\r\n var rateaprvlinputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Rate',\r\n Status: '2,3'\r\n };\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(rateaprvlinputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.RateApprovalList = res1.data;\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetCountryCurrency_ByProjectId(inputcountry).then(function (resCurrency) {\r\n if (resCurrency.status === 200) {\r\n vm.CurrencyDetails = resCurrency.data;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n };\r\n\r\n projectDetailsSetupService.ReadApprovedBasicLocations_ForPrice(inputdata).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.LocationList = res2.data;\r\n\r\n var inputGst = {\r\n CompanyId: CompanyId,\r\n GSTFor: 'TotalBasic',\r\n }\r\n CRM_GstSettingService.GetReadReadGSTSettings(inputGst).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.GSTSettingsList = res3.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Payment Schedule Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Payment Schedule Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property Price\");\r\n });\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // ApprovalFor: 'Location',\r\n // };\r\n\r\n // projectDetailsSetupService.ReadApprovedBasicLocations_ForPrice(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationList = res.data;\r\n\r\n // var rateaprvlinputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // ApprovalFor: 'Rate',\r\n // Status: '6'\r\n // };\r\n // projectDetailsSetupService.GetProjectDetailsandPrice_New(rateaprvlinputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.RateApprovalList = res.data;\r\n\r\n // var inputdata1 = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n // ApprovalFor: 'Location',\r\n // ProjectId: CRMProjectId\r\n // };\r\n\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n\r\n // var inputcountry = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // }\r\n\r\n // CRM_ProjectDetailsPriceSetupNewService.GetCountryCurrency_ByProjectId(inputcountry).then(function (resCurrency) {\r\n // if (resCurrency.status === 200) {\r\n // vm.CurrencyDetails = resCurrency.data;\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n // for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // }\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n // vm.isLoading = false;\r\n // }\r\n // });\r\n\r\n // projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.UnitList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n\r\n\r\n // LoadTiers(CRMProjectId);\r\n\r\n\r\n }\r\n\r\n function LoadAllTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n if (!vm.isEditing)\r\n LoadTiers(iBasicLocationId, function (callback) {\r\n if (callback)\r\n callback();\r\n });\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (!vm.isEditing)\r\n ResetAllValues();\r\n\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TierDetails = res.data;\r\n if (!vm.isEditing) {\r\n\r\n // var inputcountry = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId\r\n // }\r\n\r\n // CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n // if (resStatutory.status === 200) {\r\n // vm.StatutorySettingsList = resStatutory.data;\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // // vm.isStatutoryDetails = true;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].SqftRate = 0;\r\n // vm.StatutorySettingsList[i].SqftValue = 0;\r\n // vm.StatutorySettingsList[i].Lumpsum = 0;\r\n // vm.StatutorySettingsList[i].Percentage = 0;\r\n // vm.StatutorySettingsList[i].PercentageValue = 0;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // }\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n ResetAllValues();\r\n if (iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n // if(vm.NewBasicLocationList.length == i)\r\n ReadAreaDetails(iTierId);\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n }\r\n }\r\n\r\n function ReadAreaDetails(iTierId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ApprovalFor: 'Location',\r\n Status: '4',\r\n TierId: iTierId,\r\n }\r\n\r\n vm.Project.SalableArea = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.CommonArea = 0;\r\n vm.Project.SuperBuiltUpArea = 0;\r\n vm.Project.CarpetArea = 0;\r\n\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.RateofLand = 0;\r\n\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n\r\n\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.GetProjectDetailsandPrice_ForTier(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectAreaDetails = res.data;\r\n\r\n if (vm.ProjectAreaDetails.length > 0) {\r\n if (vm.ProjectAreaDetails[0].SalableArea > 0) {\r\n vm.Project.SalableArea = vm.ProjectAreaDetails[0].SalableArea;\r\n vm.Project.UDSArea = vm.ProjectAreaDetails[0].UDSArea;\r\n vm.Project.CommonArea = vm.ProjectAreaDetails[0].CommonArea;\r\n vm.Project.SuperBuiltUpArea = vm.ProjectAreaDetails[0].SuperBuiltUpArea;\r\n vm.Project.CarpetArea = vm.ProjectAreaDetails[0].CarpetArea;\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.ProjectAreaDetails[0].UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n LoadStatutoryDetails(vm.ProjectAreaDetails[0].PropertyTypeId);\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n // CRM_ProjectDetailsPriceSetupNew\r\n // GetProjectDetailsandPrice_ForTier\r\n }\r\n\r\n function LoadStatutoryDetails(iPropertyTypeId, callback) {\r\n if (iPropertyTypeId) {\r\n\r\n var inputStatutory = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: iPropertyTypeId\r\n }\r\n\r\n vm.StatutorySettingsList = [];\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputStatutory).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n if (vm.StatutorySettingsList.length > 0) {\r\n vm.isStatutoryDetails = true;\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n var stTypeList = [];\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == '') {\r\n stTypeList = [{ 'Value': 'Lump Sum' }];\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else {\r\n stTypeList = [{ 'Value': 'Rate per Sqft' }, { 'Value': 'Percentage' }];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n vm.StatutorySettingsList[i].TypeList = stTypeList;\r\n vm.StatutorySettingsList[i].selectedType = stTypeList[0];\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].TypeList = [];\r\n }\r\n\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n // vm.StatutorySettingsList[i].isRateSqft = true;\r\n // vm.StatutorySettingsList[i].isLumpSum = false;\r\n // vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n }\r\n\r\n // if (!vm.isEditing)\r\n // LoadTiers(iBasicLocationId, function (callback) {\r\n // if (callback)\r\n // callback();\r\n // });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n // vm.StatutorySettingsList = [];\r\n // vm.isStatutoryDetails = false;\r\n // vm.Project.Code = '';\r\n // vm.BasicLocationList = [];\r\n\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n vm.isStatutoryDetails = false;\r\n }\r\n }\r\n\r\n function CostCalculation() {\r\n // debugger\r\n vm.Project.TotalBasicCost = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.Project.RatePerUnit)).toFixed(2);\r\n vm.Project.CostofLand = (parseFloat(vm.Project.UDSArea) * parseFloat(vm.Project.RateofLand)).toFixed(2);\r\n vm.Project.CostofConstruction = (parseFloat(vm.Project.TotalBasicCost) - parseFloat(vm.Project.CostofLand)).toFixed(2);\r\n vm.Project.BookingAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.BookingPercentage)) / 100).toFixed(2);\r\n vm.Project.DiscountAmount = ((parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.Project.DiscountPercentage)) / 100).toFixed(2);\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n }\r\n }\r\n }\r\n\r\n // ShowStatutoryPercentage(vm.StatutorySettingsList[i].StatutoryId, vm.StatutorySettingsList[i].selectedType.Value);\r\n }\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (vm.Project.TotalBasicCost * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = TotalGST + parseFloat(totalbasicgst);\r\n }\r\n\r\n // StatutoryCalculation();\r\n vm.Project.TotalGST = TotalGST.toFixed(2);\r\n vm.Project.StatutoryCost = TotalStatutoryCost.toFixed(2);\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n }\r\n\r\n function ResetAllValues() {\r\n vm.Project.SalableArea = 0;\r\n vm.Project.RatePerUnit = 0;\r\n vm.Project.TotalBasicCost = 0;\r\n vm.Project.UDSArea = 0;\r\n vm.Project.RateofLand = 0;\r\n vm.Project.CostofLand = 0;\r\n vm.Project.CostofConstruction = 0;\r\n vm.Project.BookingPercentage = 0;\r\n vm.Project.BookingAmount = 0;\r\n vm.Project.DiscountPercentage = 0;\r\n vm.Project.DiscountAmount = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n // vm.StatutorySettingsList[i].RateAmount = 0;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n vm.Project.StatutoryCost = 0;\r\n vm.Project.TotalGST = 0;\r\n vm.Project.TotalCost = 0;\r\n }\r\n // function StatutoryCalculation() {\r\n\r\n // var TotalStatutoryCost = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // if (vm.StatutorySettingsList[i].ShowPercentage) {\r\n // TotalStatutoryCost = TotalStatutoryCost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n // }\r\n // else {\r\n // TotalStatutoryCost = TotalStatutoryCost + parseFloat(vm.StatutorySettingsList.LumpSum);\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.Project.StatutoryCost = TotalStatutoryCost;\r\n // vm.Project.TotalCost = vm.Project.TotalBasicCost + vm.Project.StatutoryCost;\r\n // }\r\n\r\n function ShowStatutoryPercentage(iStatutoryId, Type) {\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].ShowPercentage = true;\r\n\r\n vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].RateAmount));\r\n\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = 0;\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n\r\n }\r\n else {\r\n vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // vm.StatutorySettingsList[i].PercentageSum = 0;\r\n vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100;\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n\r\n TotalGST = TotalGST + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n\r\n }\r\n // }\r\n }\r\n }\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = vm.Project.TotalBasicCost + vm.Project.StatutoryCost + vm.Project.TotalGST;\r\n }\r\n\r\n // function SaveProjectPriceDetails(approval) {\r\n // var StatusId;\r\n\r\n // if (approval == 'Approve') {\r\n\r\n // StatusId = '4';\r\n // }\r\n // else {\r\n // StatusId = '6';\r\n\r\n // }\r\n // var statDetails;\r\n\r\n // var StatutoryDetails = [];\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n // var amt = 0;\r\n\r\n // if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n // amt = vm.StatutorySettingsList[i].PercentageSum;\r\n // }\r\n // else {\r\n // amt = vm.StatutorySettingsList[i].LumpSum;\r\n // }\r\n\r\n // statDetails = {\r\n // 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId,\r\n // 'Type': vm.StatutorySettingsList[i].selectedType.Value,\r\n // 'RateAmount': vm.StatutorySettingsList[i].RateAmount,\r\n // 'Percentage': vm.StatutorySettingsList[i].TaxPercentage,\r\n // 'Amount': amt,\r\n // 'GSTAmount': vm.StatutorySettingsList[i].GSTAmount\r\n // }\r\n\r\n // StatutoryDetails.push(statDetails);\r\n // }\r\n // }\r\n\r\n // var inputdata2 = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId,\r\n // TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n // RatePerUnit: vm.Project.RatePerUnit,\r\n // RateofLand: vm.Project.RateofLand,\r\n // BookingPercentage: vm.Project.BookingPercentage,\r\n // BookingAmount: vm.Project.BookingAmount,\r\n // DiscountPercentage: vm.Project.DiscountPercentage,\r\n // DiscountAmount: vm.Project.DiscountAmount,\r\n // StatutoryDetails: JSON.stringify(StatutoryDetails),\r\n // StatutoryCost: vm.Project.StatutoryCost,\r\n // TotalCost: vm.Project.TotalCost,\r\n // Process: 'Save',\r\n // Status: StatusId,\r\n // CreatedBy: loggeduser.UserId\r\n // }\r\n\r\n // CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata2).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n // vm.isFormOpen = false;\r\n // if (approval === 'Approve') {\r\n // // $rootScope.showToaster('success', 'Approved successfully', \"Project Details Setup\");\r\n // }\r\n // // else\r\n // // {\r\n // // $rootScope.showToaster('error', 'Rejected', \"Project Details Setup\");\r\n // // } \r\n // Init();\r\n // }\r\n // else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n // vm.isFormOpen = true;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Something error...try again\");\r\n // });\r\n // }\r\n function SaveProjectPriceDetails(approval) {\r\n var StatusId;\r\n\r\n if (approval == 'Approve') {\r\n\r\n StatusId = '4';\r\n }\r\n else {\r\n StatusId = '6';\r\n\r\n }\r\n var statDetails;\r\n\r\n var StatutoryDetails = [];\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var val1 = 0;\r\n var val2 = 0;\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n val1 = vm.StatutorySettingsList[i].SqftRate;\r\n val2 = vm.StatutorySettingsList[i].SqftValue;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n val2 = vm.StatutorySettingsList[i].Lumpsum;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n val1 = vm.StatutorySettingsList[i].Percentage;\r\n val2 = vm.StatutorySettingsList[i].PercentageValue;\r\n }\r\n\r\n // if(vm.StatutorySettingsList[i].selectedType.Value == '')\r\n\r\n statDetails = {\r\n 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId,\r\n 'Type': vm.StatutorySettingsList[i].selectedType.Value,\r\n 'RateAmount': val1,\r\n 'Percentage': vm.StatutorySettingsList[i].TaxPercentage,\r\n 'Amount': val2,\r\n 'GSTAmount': vm.StatutorySettingsList[i].GSTAmount\r\n }\r\n\r\n StatutoryDetails.push(statDetails);\r\n }\r\n }\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n RatePerUnit: vm.Project.RatePerUnit,\r\n RateofLand: vm.Project.RateofLand,\r\n BookingPercentage: vm.Project.BookingPercentage,\r\n BookingAmount: vm.Project.BookingAmount,\r\n DiscountPercentage: vm.Project.DiscountPercentage,\r\n DiscountAmount: vm.Project.DiscountAmount,\r\n StatutoryDetails: JSON.stringify(StatutoryDetails),\r\n StatutoryCost: vm.Project.StatutoryCost,\r\n TotalCost: vm.Project.TotalCost,\r\n Process: 'Save',\r\n Status: StatusId,\r\n CreatedBy: loggeduser.UserId\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata2).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Project = {};\r\n // Init();\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.Project = {};\r\n }\r\n\r\n function TileBack() {\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'ProjectPriceSetup', SetupType: '' });\r\n }\r\n function ShowStatutoryPercentageNew(iStatutoryId, Type) {\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].StatutoryId == iStatutoryId) {\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n if (Type == undefined) {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function EditProjectPrice(row) {\r\n vm.isEditing = true;\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n\r\n for (var b in vm.UnitList) {\r\n\r\n if (vm.UnitList[b].UnitId == vm.Project.UnitId) {\r\n // vm.Project.selectedMasterunit.UnitName = vm.UnitList[b].UnitName;\r\n vm.Project.selectedMasterunit = vm.UnitList[b];\r\n }\r\n }\r\n\r\n // vm.UnitList\r\n\r\n // vm.Project.selectedMasterunit.UnitName\r\n\r\n var inputcountry = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n PropertyTypeId: vm.Project.PropertyTypeId\r\n }\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputcountry).then(function (resStatutory) {\r\n if (resStatutory.status === 200) {\r\n vm.StatutorySettingsList = resStatutory.data;\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n vm.isStatutoryDetails = true;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = 0;\r\n vm.StatutorySettingsList[i].SqftValue = 0;\r\n vm.StatutorySettingsList[i].Lumpsum = 0;\r\n vm.StatutorySettingsList[i].Percentage = 0;\r\n vm.StatutorySettingsList[i].PercentageValue = 0;\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[0];\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function (callback) {\r\n if (vm.BasicLocationList) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n vm.Project.Code = iCode;\r\n\r\n var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n var TotalStatutoryCost = 0;\r\n var TotalGST = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n\r\n if (vm.StatutorySettingsList[i].Selected == 1) {\r\n\r\n var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n if (sdtls.length > 0) {\r\n\r\n for (var j in vm.StatutoryTypeList) {\r\n if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n }\r\n }\r\n\r\n if (vm.StatutorySettingsList[i].selectedType.Value == 'Rate per Sqft') {\r\n\r\n vm.StatutorySettingsList[i].SqftRate = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].SqftValue = (parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].SqftRate)).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].SqftValue);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].SqftValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = true;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Lump Sum') {\r\n\r\n vm.StatutorySettingsList[i].Lumpsum = sdtls[0].Amount;\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].Lumpsum)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].Lumpsum) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = true;\r\n vm.StatutorySettingsList[i].isPercentage = false;\r\n }\r\n else if (vm.StatutorySettingsList[i].selectedType.Value == 'Percentage') {\r\n\r\n vm.StatutorySettingsList[i].Percentage = sdtls[0].RateAmount;\r\n\r\n if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Salable Area') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.SalableArea) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Land') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofLand) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n else if (vm.StatutorySettingsList[i].MultiplyingFactor == 'Cost of Construction') {\r\n vm.StatutorySettingsList[i].PercentageValue = ((parseFloat(vm.Project.CostofConstruction) * parseFloat(vm.StatutorySettingsList[i].Percentage)) / 100).toFixed(2);\r\n }\r\n\r\n TotalStatutoryCost = (parseFloat(TotalStatutoryCost) + parseFloat(vm.StatutorySettingsList[i].PercentageValue)).toFixed(2);\r\n\r\n if (vm.StatutorySettingsList[i].IsTax == 1) {\r\n vm.StatutorySettingsList[i].GSTAmount = ((parseFloat(vm.StatutorySettingsList[i].PercentageValue) * parseFloat(vm.StatutorySettingsList[i].TaxPercentage)) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(vm.StatutorySettingsList[i].GSTAmount)).toFixed(2);\r\n }\r\n\r\n vm.StatutorySettingsList[i].isRateSqft = false;\r\n vm.StatutorySettingsList[i].isLumpSum = false;\r\n vm.StatutorySettingsList[i].isPercentage = true;\r\n }\r\n }\r\n }\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true;\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.TotalBasicCost) * sdtls[0].Percentage) / 100;\r\n\r\n // // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * sdtls[0].Percentage) / 100;\r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n // // vm.StatutorySettingsList[i].TaxPercentage = 0;\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // else if (sdtls[0].Type == 'Percentage') {\r\n\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n\r\n var totalbasicgst = 0;\r\n if (vm.GSTSettingsList.length > 0) {\r\n totalbasicgst = (parseFloat(vm.Project.TotalBasicCost) * parseFloat(vm.GSTSettingsList[0].Percentage) / 100).toFixed(2);\r\n TotalGST = (parseFloat(TotalGST) + parseFloat(totalbasicgst)).toFixed(2);\r\n }\r\n\r\n vm.Project.TotalGST = TotalGST;\r\n vm.Project.StatutoryCost = TotalStatutoryCost;\r\n vm.Project.TotalCost = (parseFloat(vm.Project.TotalBasicCost) + parseFloat(vm.Project.StatutoryCost) + parseFloat(vm.Project.TotalGST)).toFixed(2);\r\n\r\n }\r\n // }\r\n // });\r\n\r\n\r\n }\r\n\r\n if (!callback)\r\n callback;\r\n });\r\n }\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n // ProjectDetailsApprovalService.GetApprovedProjectDetailsByProjectId(inputdata1).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TierDetails = res.data;\r\n // }\r\n // });\r\n\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.LocationId,\r\n // ApprovalFor: 'Location',\r\n // TierId: row.TierId,\r\n // };\r\n\r\n // projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SavedLocTierDetails = res.data;\r\n // var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n // var iCode = '';\r\n // LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n // if (vm.BasicLocationList) {\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n // for (var j in vm.BasicLocationList[i].NewLocation) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n // }\r\n // }\r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n\r\n // var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n // if (vm.StatutorySettingsList.length > 0) {\r\n\r\n // var statcost = 0;\r\n // var gst = 0;\r\n\r\n // for (var i in vm.StatutorySettingsList) {\r\n // if (vm.StatutorySettingsList[i].Selected == 1) {\r\n // var sdtls = lodash.filter(statDetails, { 'StatutoryId': vm.StatutorySettingsList[i].StatutoryId });\r\n\r\n // if (sdtls.length > 0) {\r\n\r\n // for (var j in vm.StatutoryTypeList) {\r\n // if (vm.StatutoryTypeList[j].Value == sdtls[0].Type) {\r\n // vm.StatutorySettingsList[i].selectedType = vm.StatutoryTypeList[j];\r\n // }\r\n // }\r\n\r\n // vm.StatutorySettingsList[i].TaxPercentage = sdtls[0].Percentage;\r\n // vm.StatutorySettingsList[i].RateAmount = sdtls[0].RateAmount;\r\n\r\n // if (sdtls[0].Type == 'Rate per Sqft') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = true; \r\n // vm.StatutorySettingsList[i].PercentageSum = (parseFloat(vm.Project.SalableArea) * vm.StatutorySettingsList[i].RateAmount);\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].PercentageSum) * sdtls[0].Percentage) / 100;\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].PercentageSum);\r\n\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // }\r\n // else if (sdtls[0].Type == 'Lump Sum') {\r\n // vm.StatutorySettingsList[i].ShowPercentage = false;\r\n\r\n // vm.StatutorySettingsList[i].LumpSum = sdtls[0].Amount;\r\n // vm.StatutorySettingsList[i].GSTAmount = (parseFloat(vm.StatutorySettingsList[i].LumpSum) * sdtls[0].Percentage) / 100;\r\n // gst = gst + parseFloat(vm.StatutorySettingsList[i].GSTAmount);\r\n // statcost = statcost + parseFloat(vm.StatutorySettingsList[i].LumpSum);\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.Project.TotalGST = gst;\r\n // vm.Project.StatutoryCost = statcost;\r\n // }\r\n // }\r\n // });\r\n\r\n\r\n // }\r\n // });\r\n }\r\n\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function DeleteProjectPrice(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n vm.Project = angular.copy(row);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: row.LocationId,\r\n TierId: row.TierId,\r\n RatePerUnit: 0,\r\n RateofLand: 0,\r\n BookingPercentage: 0,\r\n BookingAmount: 0,\r\n DiscountPercentage: 0,\r\n DiscountAmount: 0,\r\n StatutoryDetails: '',\r\n StatutoryCost: 0,\r\n TotalCost: 0,\r\n Process: 'Delete',\r\n Status: '3',\r\n CreatedBy: 0\r\n }\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.SaveDeleteProjectPrice_New(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Price Details\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n });\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectStatutorySetting')\r\n .controller('CRM_ProjectStatutorySettingCtrl', CRM_ProjectStatutorySettingCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_ProjectStatutorySettingCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, projectDetailsSetupService, CRM_StatutoryMasterService, CRM_projectLocationSetupService, CRM_projectInitiationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = true;\r\n vm.isGridOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isExistProject = false;\r\n // vm.isLoading = true;\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n\r\n vm.isLoading = true;\r\n vm.Cancel = Cancel;\r\n vm.LoadStatutory = LoadStatutory;\r\n vm.LoadLocations = LoadLocations;\r\n vm.LoadApartmentTypes = LoadApartmentTypes;\r\n vm.select = select;\r\n vm.selectAll = selectAll;\r\n vm.SaveSetting = SaveSetting;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.selected = [];\r\n vm.ProjectLocations = [];\r\n vm.ApartmentList = [];\r\n vm.Setting = {};\r\n\r\n //////////////\r\n\r\n Init();\r\n function Init() {\r\n vm.MultiplyingFactorList = [\r\n {\r\n 'Value': 'Salable Area'\r\n },\r\n\r\n {\r\n 'Value': 'Cost of Land'\r\n },\r\n {\r\n 'Value': 'Cost of Construction'\r\n }];\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllProjectsList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadLocations(iProjectId) {\r\n if (iProjectId > 0 && iProjectId != undefined) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n }\r\n\r\n CRM_projectLocationSetupService.GetAllLocations(inputdata).then(function (result) {\r\n if (result.status == 200) {\r\n vm.ProjectLocations = result.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n else {\r\n vm.ProjectLocations = [];\r\n vm.Setting.SelectedLocation = null;\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }\r\n\r\n function LoadApartmentTypes(iLocationId, callback) {\r\n\r\n if (iLocationId > 0 && iLocationId != undefined) {\r\n\r\n var inputdatanew = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Setting.SelectedProject.ProjectId,\r\n ReadFor: 'ApartmentType',\r\n LocationId: iLocationId,\r\n }\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.ApartmentList = res2.data;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n else {\r\n vm.ApartmentList = [];\r\n vm.Setting.selectedApartment = null;\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }\r\n\r\n function LoadStatutory(iPropertyTypeId) {\r\n if (iPropertyTypeId > 0 && iPropertyTypeId != undefined) {\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Setting.SelectedProject.ProjectId,\r\n LocationId: vm.Setting.SelectedLocation.LocationId,\r\n PropertyTypeId: iPropertyTypeId\r\n }\r\n\r\n vm.StatutorySettingsList = [];\r\n\r\n CRM_StatutoryMasterService.GetStatutoryDetailsByProject(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StatutorySettingsList = res.data;\r\n vm.isLoading = false;\r\n vm.isGridOpen = true;\r\n\r\n vm.selected = [];\r\n\r\n for (var c in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[c].Selected == 1) {\r\n vm.StatutorySettingsList[c].isSelected = true;\r\n\r\n var vle = {\r\n Value: vm.StatutorySettingsList[c].MultiplyingFactor\r\n }\r\n\r\n vm.StatutorySettingsList[c].selectedFactor = vle;\r\n }\r\n else\r\n vm.StatutorySettingsList[c].isSelected = false;\r\n }\r\n }\r\n else {\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.StatutorySettingsList = [];\r\n vm.isGridOpen = false;\r\n }\r\n }\r\n\r\n function select(id) {\r\n\r\n var found = vm.selected.indexOf(id);\r\n\r\n if (found == -1) vm.selected.push(id);\r\n\r\n else vm.selected.splice(found, 1);\r\n }\r\n\r\n function selectAll(collection) {\r\n\r\n // if there are no items in the 'selected' array, \r\n // push all elements to 'selected'\r\n if (vm.selected.length === 0) {\r\n\r\n angular.forEach(collection, function (val) {\r\n\r\n vm.selected.push(val.id);\r\n\r\n });\r\n\r\n // if there are items in the 'selected' array, \r\n // add only those that ar not\r\n } else if (vm.selected.length > 0 && vm.selected.length != vm.StatutorySettingsList.length) {\r\n\r\n angular.forEach(collection, function (val) {\r\n\r\n var found = vm.selected.indexOf(val.id);\r\n\r\n if (found == -1) vm.selected.push(val.id);\r\n\r\n });\r\n\r\n // Otherwise, remove all items\r\n }\r\n else {\r\n vm.selected = [];\r\n }\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = true;\r\n vm.isGridOpen = false;\r\n vm.isLoading = true;\r\n vm.selected = [];\r\n vm.Setting = {};\r\n Init();\r\n }\r\n\r\n function SaveSetting(Settings) {\r\n\r\n var a = vm.StatutorySettingsList;\r\n var selectedlist = [];\r\n\r\n // var Issuccess = true;\r\n\r\n // var cnt = 0;\r\n\r\n for (var i in vm.StatutorySettingsList) {\r\n if (vm.StatutorySettingsList[i].isSelected == true) {\r\n\r\n // cnt = cnt + 1;\r\n var vls;\r\n if (vm.StatutorySettingsList[i].selectedFactor != undefined) {\r\n vls = {\r\n Id: vm.StatutorySettingsList[i].StatutoryId,\r\n MultiplyingFactor: vm.StatutorySettingsList[i].selectedFactor.Value\r\n }\r\n\r\n }\r\n else {\r\n vls = {\r\n Id: vm.StatutorySettingsList[i].StatutoryId,\r\n MultiplyingFactor: null\r\n }\r\n\r\n }\r\n\r\n selectedlist.push(JSON.stringify(vls));\r\n }\r\n }\r\n\r\n // if (cnt > 0 && Issuccess) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.Setting.SelectedProject.ProjectId,\r\n LocationId: vm.Setting.SelectedLocation.LocationId,\r\n PropertyTypeId: Settings.selectedApartment.Id,\r\n StatutoryIds: JSON.stringify(selectedlist),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n CRM_StatutoryMasterService.SaveProjectStatutoryMapping(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Statutory Mapping\");\r\n Cancel();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Statutory Mapping\");\r\n });\r\n // }\r\n // else {\r\n // if (cnt == 0) {\r\n // $rootScope.showToaster('error', 'Please select any statutory', \"Project Statutory Mapping\");\r\n // }\r\n // else if (!Issuccess) {\r\n // $rootScope.showToaster('error', 'Tessst', \"Project Statutory Mapping\");\r\n // }\r\n // }\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_SalesActivityCategory')\r\n .controller('CRM_SalesActivityCategoryCtrl', CRM_SalesActivityCategoryCtrl);\r\n\r\n function CRM_SalesActivityCategoryCtrl($scope, $http, $rootScope, dialogs, $state, $stateParams, DepartmentServices, CRM_SalesActivityCategoryService, Task_SubjectService,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.Cancel = Cancel;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.SalesActivity = {};\r\n vm.DeleteSalesActivity = DeleteSalesActivity;\r\n vm.SaveSalesActivity = SaveSalesActivity;\r\n vm.EditSalesActivity = EditSalesActivity;\r\n vm.LoadSalesActivity = LoadSalesActivity;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.ActvityType = 'S';\r\n\r\n Init();\r\n function Init() {\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Sales Activity\");\r\n });\r\n }\r\n\r\n\r\n function LoadSalesActivity(iDeptId) {\r\n vm.SalesActivitytList = [];\r\n vm.isFormOpen = false;\r\n\r\n if (iDeptId != undefined) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n Type: vm.ActvityType,\r\n }\r\n\r\n CRM_SalesActivityCategoryService.ReadSalesActivityCategory(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SalesActivitytList = res.data;\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Sales Activity\");\r\n });\r\n }\r\n }\r\n\r\n function Cancel() {\r\n vm.SalesActivity = {};\r\n vm.isFormOpen = false;\r\n }\r\n\r\n function SaveSalesActivity() {\r\n\r\n var iCategoryId = 0;\r\n\r\n if (!vm.isEditing)\r\n iCategoryId = vm.SalesActivity.CategoryId;\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: vm.SalesActivity.selectedDepartment.DepartmentId,\r\n CategoryId: iCategoryId,\r\n CategoryName: vm.SalesActivity.CategoryName,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId,\r\n Type: vm.ActvityType,\r\n }\r\n\r\n CRM_SalesActivityCategoryService.SaveDeleteUpdateSalesActivityCategory(inputdata1).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category of Sales Activity\");\r\n vm.isFormOpen = true;\r\n vm.SalesActivity.CategoryName = null;\r\n vm.isEditing = false;\r\n LoadSalesActivity(vm.SalesActivity.selectedDepartment.DepartmentId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Category of Sales Activity\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n function DeleteSalesActivity(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n DepartmentId: 0,\r\n CategoryId: row.CategoryId,\r\n CategoryName: '',\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n };\r\n\r\n CRM_SalesActivityCategoryService.SaveDeleteUpdateSalesActivityCategory(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category of Sales Activity\");\r\n vm.isFormOpen = true;\r\n vm.SalesActivity.CategoryName = null;\r\n vm.isEditing = false;\r\n LoadSalesActivity(vm.SalesActivity.selectedDepartment.DepartmentId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot Category of Sales Activity', 'ERROR!');\r\n });\r\n })\r\n\r\n\r\n }\r\n\r\n function EditSalesActivity(row) {\r\n\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n\r\n vm.SalesActivity = angular.copy(row);\r\n\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.SalesActivity.DepartmentId) {\r\n vm.SalesActivity.selectedDepartment = vm.DepartmentList[i];\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_StatutoryMaster')\r\n .controller('CRM_StatutoryMasterCtrl', CRM_StatutoryMasterCtrl);\r\n\r\n /** @ngInject */\r\n function CRM_StatutoryMasterCtrl($scope, $http, $rootScope, $filter, lodash, dialogs, $state, $stateParams, AuthenticationService, CRM_StatutoryMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n // vm.isFormOpen = false;\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.Create = Create;\r\n vm.RemoveStatutory = RemoveStatutory;\r\n vm.SaveStatutoryMaster = SaveStatutoryMaster;\r\n vm.editStatutoryName = editStatutoryName;\r\n vm.ShowTaxPercentage = false;\r\n\r\n\r\n\r\n vm.ShowPercentage = ShowPercentage;\r\n // vm.isExistProject = false;\r\n\r\n // $rootScope.isLogin = false;\r\n // vm.isComAddSameAsPerAdd = false;\r\n vm.Statutory = {};\r\n\r\n vm.isLoading = true;\r\n\r\n vm.Cancel = Cancel;\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //////////////\r\n\r\n\r\n\r\n Init();\r\n function Init() {\r\n CRM_StatutoryMasterService.ReadAllStatutory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.StatutoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee Component\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Component\");\r\n });\r\n\r\n }\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n vm.isTableOpen = false;\r\n vm.Statutory = {};\r\n vm.Statutory.IsTax = false;\r\n vm.ShowTaxPercentage = false;\r\n vm.Statutory.TaxPercentage = null;\r\n\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n\r\n vm.Statutory = {};\r\n vm.ShowTaxPercentage = false;\r\n vm.Statutory.TaxPercentage = null;\r\n vm.Statutory.IsTax = false;\r\n }\r\n function SaveStatutoryMaster() {\r\n\r\n // vm.Statutory.IsTax;\r\n\r\n var IsTax = \"0\";\r\n if (vm.Statutory.IsTax)\r\n IsTax = \"1\";\r\n\r\n var iPropertyTypeId = 0;\r\n\r\n var istrId;\r\n\r\n if (!vm.isEditing) {\r\n istrId = 0;\r\n }\r\n else {\r\n istrId = vm.Statutory.StatutoryId;\r\n }\r\n\r\n var isucess = true;\r\n\r\n if (vm.Statutory.IsTax) {\r\n if (vm.Statutory.TaxPercentage == undefined || vm.Statutory.TaxPercentage == null || vm.Statutory.TaxPercentage=='') {\r\n isucess = false;\r\n $rootScope.showToaster('error', \"Please enter Tax Percerntage\", \"Statutory Master\");\r\n vm.isFormOpen = false;\r\n }\r\n else if (vm.Statutory.TaxPercentage > 100) {\r\n isucess = false;\r\n $rootScope.showToaster('error', \"Percerntage should be less than 100\", \"Statutory Master\");\r\n vm.isFormOpen = false;\r\n }\r\n }\r\n\r\n if (isucess) {\r\n var Employees = {\r\n StatutoryId: istrId,\r\n StatutoryName: vm.Statutory.StatutoryName,\r\n TaxPercentage: vm.Statutory.TaxPercentage, \r\n IsTax: IsTax,\r\n Process: 'Save',\r\n strEffectiveFrom: $filter('date')(vm.Statutory.EffectiveFrom, 'dd/MMM/yyyy'),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n CRM_StatutoryMasterService.SaveRemoveStatutory(Employees).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Statutory Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n Cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Statutory Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n // if (vm.Statutory.TaxPercentage <= 100) {\r\n // var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n // if (!vm.isEditing) {\r\n // var Employees = {\r\n // StatutoryId: istrId,\r\n // StatutoryName: vm.Statutory.StatutoryName,\r\n // TaxPercentage: vm.Statutory.TaxPercentage,\r\n // StatutoryId: 0,\r\n // IsTax: IsTax,\r\n // Process: 'Save',\r\n // CreatedBy: logggedUser.UserId\r\n // }\r\n\r\n // CRM_StatutoryMasterService.SaveRemoveStatutory(Employees).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Statutory Master\");\r\n // Init();\r\n // vm.isFormOpen = false;\r\n // Cancel();\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Statutory Master\");\r\n // vm.isFormOpen = true;\r\n // }\r\n\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n // });\r\n\r\n // } else {\r\n // var StatutoryMaster = {\r\n // StatutoryName: vm.Statutory.StatutoryName,\r\n // TaxPercentage: vm.Statutory.TaxPercentage,\r\n // IsTax: IsTax,\r\n // StatutoryId: vm.Statutory.StatutoryId,\r\n // Process: 'Save',\r\n // CreatedBy: logggedUser.UserId\r\n // // ModifiedBy: logggedUser.UserId\r\n // }\r\n // CRM_StatutoryMasterService.SaveRemoveStatutory(StatutoryMaster).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Statutory Master\");\r\n // Init();\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // Cancel();\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Statutory Master\");\r\n // vm.isFormOpen = true;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n // });\r\n // }\r\n // }\r\n // else {\r\n // $rootScope.showToaster('error', \"Percerntage should be less than 100\", \"Statutory Master\");\r\n // vm.isFormOpen = false;\r\n // }\r\n }\r\n\r\n\r\n function ShowPercentage() {\r\n\r\n vm.ShowTaxPercentage = vm.Statutory.IsTax;\r\n if (!vm.Statutory.IsTax)\r\n vm.Statutory.TaxPercentage = null;\r\n }\r\n\r\n function editStatutoryName(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = false;\r\n var CmpDetails = angular.copy(row);\r\n vm.Statutory.StatutoryId = CmpDetails.StatutoryId;\r\n vm.Statutory.StatutoryName = CmpDetails.StatutoryName;\r\n vm.Statutory.TaxPercentage = CmpDetails.TaxPercentage;\r\n vm.Statutory.EffectiveFrom = new Date(row.EffectiveFrom);\r\n\r\n if (CmpDetails.IsTax == 1)\r\n vm.Statutory.IsTax = true;\r\n else\r\n vm.Statutory.IsTax = false;\r\n\r\n ShowPercentage();\r\n }\r\n\r\n function RemoveStatutory(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var StatutoryMaster = {\r\n StatutoryName: '',\r\n StatutoryId: row.StatutoryId,\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n // ModifiedBy: logggedUser.UserId\r\n }\r\n\r\n CRM_StatutoryMasterService.SaveRemoveStatutory(StatutoryMaster).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', 'Delete Area Successfully', \"Area\");\r\n $rootScope.showToaster('success', res.data.Message, \"Statutory Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Area\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Area.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_TaskActivityMaster')\r\n .controller('CRM_TaskActivityMasterCtrl', CRM_TaskActivityMasterCtrl);\r\n\r\n\r\n function CRM_TaskActivityMasterCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CRM_TaskSubjectMasterService, RoleService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.isFormOpen = false;\r\n vm.isExistProject = false;\r\n vm.isEditing = false;\r\n vm.EditSubject = EditSubject;\r\n vm.DeleteActivity = DeleteActivity;\r\n\r\n vm.Activity = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Process: 'Activity',\r\n SubjectId: 0\r\n };\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ActivityList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Process: 'Subject',\r\n SubjectId: 0\r\n };\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubjectList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n }\r\n\r\n function Create() {\r\n vm.Activity = {};\r\n vm.isFormOpen = true;\r\n // vm.isEditing = false;\r\n vm.isExistProject = true;\r\n\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.Subject = {};\r\n }\r\n\r\n\r\n\r\n function EditSubject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.Activity = angular.copy(row);\r\n for (var c in vm.SubjectList) {\r\n if (vm.SubjectList[c].SubjectId === row.SubjectId) {\r\n vm.Activity.selectedsubject = vm.SubjectList[c];\r\n }\r\n }\r\n }\r\n\r\n function DeleteActivity(row) {\r\n \r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n CreatedBy: 0,\r\n CompanyId: 0,\r\n ActivityId: row.ActivityId,\r\n ActivityName: '',\r\n SubjectId: 0,\r\n Process: 'Delete',\r\n };\r\n\r\n\r\n CRM_TaskSubjectMasterService.SaveRemoveActivityMaster(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Role\");\r\n Init();\r\n } else {\r\n dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.SaveSubject = function (Subject) {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n Subject.CreatedBy = logggedUser.UserId;\r\n Subject.CompanyId = CompanyId;\r\n Subject.Process = 'Save';\r\n Subject.SubjectId = vm.Activity.selectedsubject.SubjectId;\r\n\r\n if (!vm.isEditing)\r\n Subject.ActivityId = 0;\r\n else\r\n Subject.ActivityId = vm.Activity.ActivityId\r\n\r\n\r\n CRM_TaskSubjectMasterService.SaveRemoveActivityMaster(Subject).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Subject Master\");\r\n cancel();\r\n Init();\r\n vm.isFormOpen = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Subject Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_Task')\r\n .controller('CRM_TaskCtrl', CRM_TaskCtrl);\r\n\r\n function CRM_TaskCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_parkingLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\nvm. RepeatedActivity= RepeatedActivity;\r\nvm.EmployeeActivity=EmployeeActivity;\r\nvm.TaskAppraisal=TaskAppraisal;\r\n\r\n\r\n function RepeatedActivity() {\r\n\r\n $state.go('CRM_RepeatedTaskMaster');\r\n }\r\n function EmployeeActivity() {\r\n\r\n $state.go('CRM_EmployeeTaskActivity');\r\n }\r\n function TaskAppraisal() {\r\n\r\n $state.go('CRM_TaskApprovedList');\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_TaskApprovedList')\r\n .controller('CRM_TaskApprovedListCtrl', CRM_TaskApprovedListCtrl);\r\n function CRM_TaskApprovedListCtrl($scope, $http, $rootScope, lodash, dialogs, $filter, $state, $stateParams, CRM_EmployeeTaskActivityService, ProjectDetailsApprovalService, RoleService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n\r\n }\r\n vm.TileBack = TileBack;\r\n vm.GetActivity = GetActivity;\r\n vm.Activity = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n Init();\r\n function Init() {\r\n vm.Activity.ActivityDate = new Date();\r\n GetActivity(new Date());\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // EmployeeId: '92',\r\n // StartDate: new Date()\r\n // };\r\n\r\n // CRM_EmployeeTaskActivityService.ReadTaskApprovedList(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TaskApprovedList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_Task');\r\n }\r\n\r\n\r\n function GetActivity(ActivityDate) {\r\n\r\n vm.TaskApprovedList = [];\r\n\r\n if (ActivityDate != undefined || ActivityDate != null) {\r\n\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n EmployeeId: '92',\r\n StartDate: $filter(\"date\")(ActivityDate)\r\n };\r\n\r\n CRM_EmployeeTaskActivityService.ReadTaskApprovedList(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TaskApprovedList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n //DatetimePicker Function starts\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n $scope.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n // return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n return mode === 'day' && (date.getDay() === 0);\r\n }\r\n\r\n $scope.toggleMin = function () {\r\n $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();\r\n $scope.dateOptions.minDate = $scope.inlineOptions.minDate;\r\n };\r\n\r\n $scope.toggleMin();\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.open2 = function () {\r\n $scope.popup2.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = $scope.formats[0];\r\n $scope.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n $scope.popup2 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n $scope.events = [\r\n {\r\n date: tomorrow,\r\n status: 'full'\r\n },\r\n {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }\r\n ];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < $scope.events.length; i++) {\r\n var currentDay = new Date($scope.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return $scope.events[i].status;\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n //DatetimePicker Function ends\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_TaskPlanning')\r\n .controller('CRM_TaskPlanningCtrl', CRM_TaskPlanningCtrl);\r\n\r\n function CRM_TaskPlanningCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, StateService,projectDetailsSetupService, CRM_ProjectPropertyViewService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.LoadInputDetails = LoadInputDetails;\r\n Init();\r\n function Init() {\r\n\r\n\r\n var inputdataPrj = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllPriceApprovedProjects_ForTiles(inputdataPrj).then(function (resProjects) {\r\n if (resProjects.status === 200) {\r\n vm.ProjectsList = resProjects.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadInputDetails(iProjectId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n vm.isLoading = false; \r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_TaskSubjectMaster')\r\n .controller('CRM_TaskSubjectMasterCtrl', CRM_TaskSubjectMasterCtrl);\r\n\r\n\r\n function CRM_TaskSubjectMasterCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CRM_TaskSubjectMasterService, RoleService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.isFormOpen = false;\r\n vm.isExistProject = false;\r\n vm.isEditing = false;\r\n vm.EditSubject = EditSubject;\r\n vm.DeleteSubject=DeleteSubject;\r\n\r\n vm.Subject = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata = {\r\n\r\n CompanyId: CompanyId,\r\n\r\n Process: 'Subject',\r\n SubjectId: 0\r\n\r\n };\r\n\r\n CRM_TaskSubjectMasterService.ReadSubjectActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubjectList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.isExistProject = true;\r\n\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.Subject = {};\r\n }\r\n\r\n function EditSubject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.Subject = angular.copy(row);\r\n }\r\n\r\n function DeleteSubject(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData ={\r\n SubjectId:row.SubjectId,\r\n CompanyId : 0,\r\n SubjectActivity : '',\r\n CreatedBy : 0, \r\n Process : 'Delete',\r\n };\r\n\r\n CRM_TaskSubjectMasterService.SaveDeleteSubjectMaster(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.status.Message, \"Role\");\r\n Init();\r\n } else {\r\n dialogs.error('error', \"Can't Delete ROle\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n dialogs.error('error', \"Can't Delete Role.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n // vm.SaveProjects = function (project) {\r\n\r\n\r\n // }\r\n\r\n vm.SaveSubject = function (Subject) {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n Subject.CreatedBy = logggedUser.UserId;\r\n Subject.CompanyId = CompanyId;\r\n Subject.Process = 'Save';\r\n\r\n if (!vm.isEditing)\r\n Subject.SubjectId = 0;\r\n else\r\n Subject.SubjectId = vm.Subject.SubjectId\r\n\r\n\r\n CRM_TaskSubjectMasterService.SaveDeleteSubjectMaster(Subject).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Subject Master\");\r\n cancel();\r\n Init();\r\n vm.isFormOpen = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Subject Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n }\r\n})();\n\r\n\r\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ViewBuyerEnquiry')\r\n .controller('CRM_ViewBuyerEnquiryCtrl', CRM_ViewBuyerEnquiryCtrl);\r\n\r\n function CRM_ViewBuyerEnquiryCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, $stateParams, CRM_parkingLocationSetupService, StateService,\r\n projectDetailsSetupService, CRM_CopyAreaDetailsService, AuthenticationService, CRM_AddBuyerEnquiryService) {\r\n\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CompanyName = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName;\r\n // End of Pagination code\r\n\r\n\r\n vm.ProjectList = [];\r\n vm.LocationList = [];\r\n vm.TiersList = [];\r\n vm.ApartmentTypeList = [];\r\n vm.SalableAreaList = [];\r\n vm.SaleExecutiveList = [];\r\n vm.EnquiryStatusList = [];\r\n\r\n vm.ReportTypes = [];\r\n\r\n vm.TileBack = TileBack;\r\n vm.Cancel = Cancel;\r\n vm.ViewReport = ViewReport;\r\n vm.ExportReport = ExportReport;\r\n vm.Viewfollw = Viewfollw;\r\n vm.isProjectTile = true;\r\n vm.Viewtable = false;\r\n vm.showBuyerdetil = showBuyerdetil;\r\n\r\n vm.isFormOpen = false;\r\n vm.Buyerinfo = false;\r\n vm.FollowList = false;\r\n vm.Buyerdetil = Buyerdetil;\r\n vm.Project = {};\r\n vm.LoadInputDetails = LoadInputDetails;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n\r\n vm.isShowTOP = false;\r\n vm.isShowTiers = false;\r\n vm.ShowBackbtn = true;\r\n vm.CancelDetailedView = CancelDetailedView;\r\n vm.CancelConsolidatedView = CancelConsolidatedView;\r\n vm.Condition = null;\r\n vm.InputCondition = null;\r\n\r\n $scope.slider = {\r\n minValue: 0,\r\n maxValue: 2000000,\r\n options: {\r\n floor: 0,\r\n ceil: 2000000,\r\n step: 10000\r\n }\r\n };\r\n\r\n Init();\r\n function Init() {\r\n\r\n vm.Report = {};\r\n vm.Condition = null;\r\n vm.Report.FromDate = new Date();\r\n vm.Report.ToDate = new Date();\r\n\r\n vm.ReportTypes = [{\r\n 'Type': 'Detailed'\r\n }, {\r\n 'Type': 'Consolidated'\r\n }];\r\n\r\n LoadInputDetails('Load_Project');\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.Report = {};\r\n\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n // vm.isProjectTile = true;\r\n vm.Report = {};\r\n vm.Report.FromDate = new Date();\r\n vm.Report.ToDate = new Date();\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_BuyerEnquiryTiles');\r\n }\r\n\r\n\r\n function ViewReport() {\r\n\r\n vm.isProjectTile = false;\r\n vm.Viewtable = true;\r\n vm.Buyerinfo = false;\r\n vm.FollowList = false;\r\n vm.ShowBackbtn = false;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Condition: vm.InputCondition,\r\n ReportType: vm.Project.selectedReportType.Type,\r\n }\r\n\r\n CRM_AddBuyerEnquiryService.GetBuyerEnquiryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.Distinct.length > 0) {\r\n vm.ReportList = res.data;\r\n vm.GroupResult = [];\r\n\r\n if (vm.Project.selectedReportType.Type == 'Detailed') {\r\n vm.isDetailedView = true;\r\n vm.isConsolidatedView = false;\r\n\r\n var prjdistinctlist = [];\r\n\r\n // _.uniqBy(data, 'username') \r\n\r\n var prjdistinctlist = lodash.uniqBy(lodash.map(vm.ReportList.Distinct, 'ProjectName'));\r\n\r\n var Result = [];\r\n var GroupList1 = [];\r\n var GroupList2 = [];\r\n\r\n for (var i in prjdistinctlist) {\r\n\r\n GroupList1 = [];\r\n\r\n var prttypelist = lodash.uniqBy(lodash.map(lodash.filter(vm.ReportList.Distinct, { 'ProjectName': prjdistinctlist[i] }), 'PropertyType'));\r\n\r\n for (var j in prttypelist) {\r\n var salarealist = lodash.uniqBy(lodash.map(lodash.filter(vm.ReportList.Distinct, { 'ProjectName': prjdistinctlist[i], 'PropertyType': prttypelist[j] }), 'SalableArea'));\r\n\r\n GroupList2 = [];\r\n for (var k in salarealist) {\r\n var buyerdtls = lodash.filter(vm.ReportList.AllValues, { 'ProjectName': prjdistinctlist[i], 'PropertyType': prttypelist[j], 'SalableArea': salarealist[k] });\r\n\r\n var grplist = {\r\n SalableArea: salarealist[k],\r\n Details: buyerdtls\r\n }\r\n GroupList2.push(grplist);\r\n }\r\n\r\n var grp1list = {\r\n PropertyType: prttypelist[j],\r\n Group2: GroupList2\r\n }\r\n GroupList1.push(grp1list);\r\n }\r\n\r\n var dtls = {\r\n ProjectName: prjdistinctlist[i],\r\n Group1: GroupList1\r\n }\r\n\r\n Result.push(dtls);\r\n }\r\n\r\n vm.GroupResult = Result;\r\n }\r\n else if (vm.Project.selectedReportType.Type == 'Consolidated') {\r\n vm.isDetailedView = false;\r\n vm.isConsolidatedView = true;\r\n\r\n var prjdistinctlist = [];\r\n\r\n // _.uniqBy(data, 'username') \r\n\r\n var prjdistinctlist = lodash.uniqBy(lodash.map(vm.ReportList.Distinct, 'ProjectName'));\r\n\r\n var Result = [];\r\n\r\n for (var i in prjdistinctlist) {\r\n var prttypelist = lodash.filter(vm.ReportList.Distinct, { 'ProjectName': prjdistinctlist[i] });\r\n\r\n var dtls = {\r\n ProjectName: prjdistinctlist[i],\r\n Details: prttypelist\r\n }\r\n\r\n vm.GroupResult.push(dtls);\r\n }\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'No data found', \"Project Master\");\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n }\r\n\r\n function Buyerdetil(iEnquiryId) {\r\n\r\n var buyerdtls = lodash.filter(vm.ReportList.AllValues, { 'EnquiryId': iEnquiryId });\r\n\r\n vm.Project.BuyerName = buyerdtls[0].BuyerName;\r\n\r\n if (buyerdtls[0].BuyerPhoto != null) {\r\n vm.Project.BuyerPhoto = $rootScope.endPoint + '/CRM/BuyerImages/' + buyerdtls[0].BuyerPhoto;\r\n }\r\n\r\n vm.Project.ProjectName = buyerdtls[0].ProjectName;\r\n vm.Project.PropertyType = buyerdtls[0].PropertyType;\r\n vm.Project.DOE = buyerdtls[0].DOE;\r\n vm.Project.SourceName = buyerdtls[0].SourceName;\r\n vm.Project.AreaName = buyerdtls[0].AreaName;\r\n vm.Project.SuperBuiltUpArea = buyerdtls[0].SuperBuiltUpArea;\r\n vm.Project.BuyerAddress1 = buyerdtls[0].BuyerAddress1;\r\n vm.Project.BuyerAddress2 = buyerdtls[0].BuyerAddress2;\r\n vm.Project.BuyerArea = buyerdtls[0].BuyerArea;\r\n vm.Project.BuyerCity = buyerdtls[0].BuyerCity;\r\n vm.Project.BuyerState = buyerdtls[0].BuyerState;\r\n vm.Project.BuyerCountry = buyerdtls[0].BuyerCountry;\r\n vm.Project.BuyerPincode = buyerdtls[0].BuyerPincode;\r\n vm.Project.BuyerMobileNo = buyerdtls[0].BuyerMobileNo;\r\n vm.Project.BuyerMailId = buyerdtls[0].BuyerMailId;\r\n vm.Project.BuyerKPostId = buyerdtls[0].BuyerKPostId;\r\n vm.Project.Gender = buyerdtls[0].Gender;\r\n vm.Project.DOB = buyerdtls[0].DOB;\r\n vm.Project.Age = buyerdtls[0].Age;\r\n vm.Project.MaritalStatus = buyerdtls[0].MaritalStatus;\r\n vm.Project.SpouseName = buyerdtls[0].SpouseName;\r\n vm.Project.BloodGroupName = buyerdtls[0].BloodGroupName;\r\n vm.Project.ReligionName = buyerdtls[0].ReligionName;\r\n vm.Project.CommunityName = buyerdtls[0].CommunityName;\r\n vm.Project.CasteName = buyerdtls[0].CasteName;\r\n vm.Project.PersonalAdhaarCardNo = buyerdtls[0].PersonalAdhaarCardNo;\r\n vm.Project.PersonalPANCardNo = buyerdtls[0].PersonalPANCardNo;\r\n vm.Project.PersonalPassportNo = buyerdtls[0].PersonalPassportNo;\r\n vm.Project.AvailingLoan = buyerdtls[0].AvailingLoan;\r\n\r\n // Porfessiondetails \r\n\r\n vm.Project.PorfessionOrganization = buyerdtls[0].PorfessionOrganization;\r\n vm.Project.PorfessionCompanyName = buyerdtls[0].PorfessionCompanyName;\r\n vm.Project.PorfessionIndustry = buyerdtls[0].PorfessionIndustry;\r\n vm.Project.PorfessionDesignation = buyerdtls[0].PorfessionDesignation;\r\n vm.Project.PorfessionAnnualIncome = buyerdtls[0].PorfessionAnnualIncome;\r\n vm.Project.PorfessionCompanyAddressLine1 = buyerdtls[0].PorfessionCompanyAddressLine1;\r\n vm.Project.PorfessionCompanyAddressLine2 = buyerdtls[0].PorfessionCompanyAddressLine2;\r\n vm.Project.PorfessionCountry = buyerdtls[0].PorfessionCountry;\r\n vm.Project.PorfessionState = buyerdtls[0].PorfessionState;\r\n vm.Project.PorfessionCity = buyerdtls[0].PorfessionCity;\r\n vm.Project.PorfessionArea = buyerdtls[0].PorfessionArea;\r\n vm.Project.PorfessionPincode = buyerdtls[0].PorfessionPincode;\r\n\r\n\r\n // project Property Details\r\n vm.Project.ProjectPropertyTypeofProperty = buyerdtls[0].ProjectPropertyTypeofProperty;\r\n vm.Project.ProjectPropertyDetailsReQuirement = buyerdtls[0].ProjectPropertyDetailsReQuirement;\r\n vm.Project.SourceName = buyerdtls[0].SourceName;\r\n vm.Project.ProjectPropertyTransferTo = buyerdtls[0].ProjectPropertyTransferTo;\r\n\r\n\r\n\r\n\r\n vm.isProjectTile = false;\r\n vm.Viewtable = false;\r\n vm.Buyerinfo = true;\r\n vm.FollowList = false;\r\n vm.isDetailedView = false;\r\n vm.ShowBackbtn = false;\r\n\r\n }\r\n\r\n function showBuyerdetil() {\r\n vm.Buyerinfo = false;\r\n vm.isDetailedView = true;\r\n vm.ShowBackbtn = false;\r\n\r\n }\r\n\r\n function CancelDetailedView() {\r\n vm.isProjectTile = true;\r\n vm.ShowBackbtn = true;\r\n vm.isDetailedView = false;\r\n\r\n }\r\n\r\n function CancelConsolidatedView() {\r\n vm.isProjectTile = true;\r\n vm.ShowBackbtn = true;\r\n vm.isConsolidatedView = false\r\n\r\n }\r\n\r\n function Viewfollw() {\r\n\r\n vm.isProjectTile = false;\r\n vm.Viewtable = false;\r\n vm.Buyerinfo = true;\r\n vm.FollowList = true;\r\n }\r\n\r\n function ExportReport() {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n Condition: '',\r\n ReportType: vm.Project.selectedReportType.Type,\r\n CompanyName: CompanyName,\r\n UserName: logggedUser.FirstName,\r\n CompanyImage: ''\r\n }\r\n\r\n CRM_AddBuyerEnquiryService.ExportSalesBuyerReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ExportPdfData = res.data;\r\n\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Report Exported successfully', \"Buyer Enquiry Data\");\r\n vm.isLoading = false;\r\n // Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Property View\");\r\n });\r\n\r\n }\r\n\r\n function LoadInputDetails(iSelectFor) {\r\n\r\n var inputdata = {};\r\n\r\n if (iSelectFor == 'Load_Project') {\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Project',\r\n Condition: ''\r\n }\r\n\r\n vm.ProjectList = [];\r\n vm.LocationList = [];\r\n vm.TiersList = [];\r\n vm.ApartmentTypeList = [];\r\n vm.SalableAreaList = [];\r\n vm.SaleExecutiveList = [];\r\n\r\n vm.InputCondition = '';\r\n\r\n vm.isShowTOP = false;\r\n vm.isShowTiers = false;\r\n }\r\n else if (iSelectFor == 'Load_Locations') {\r\n vm.isShowTOP = false;\r\n vm.isShowTiers = false;\r\n var Ids = '';\r\n if (vm.Report.selectedProject != undefined || vm.Report.selectedProject.length > 0) {\r\n var cnt = 0;\r\n if (vm.Report.selectedProject != undefined)\r\n for (var i in vm.Report.selectedProject) {\r\n Ids = Ids + vm.Report.selectedProject[i].Id + ',';\r\n cnt = cnt + 1;\r\n }\r\n\r\n if (cnt == 1) {\r\n\r\n if (Ids.length > 0)\r\n vm.InputCondition = 'PM.ProjectId In (' + Ids.substring(0, Ids.length - 1) + ')'\r\n else\r\n vm.InputCondition = vm.InputCondition;\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Location',\r\n Condition: vm.InputCondition\r\n }\r\n\r\n vm.isShowTOP = true;\r\n }\r\n else {\r\n LoadInputDetails('Load_ApartmentType');\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n else if (iSelectFor == 'Load_Tiers') {\r\n vm.TiersList = [];\r\n if (vm.Report.selectedLocation != undefined || vm.Report.selectedLocation.length > 0) {\r\n\r\n var cnt = 0;\r\n for (var i in vm.Report.selectedLocation) {\r\n Ids = Ids + vm.Report.selectedLocation[i].Id + ',';\r\n cnt = cnt + 1;\r\n }\r\n\r\n if (cnt == 1) {\r\n LoadTiers();\r\n vm.isShowTiers = true;\r\n }\r\n else\r\n vm.isShowTiers = false;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n else if (iSelectFor == 'Load_ApartmentType') {\r\n\r\n vm.ApartmentTypeList = [];\r\n vm.SalableAreaList = [];\r\n vm.SaleExecutiveList = [];\r\n\r\n var Ids = '';\r\n // var cnt = 0;\r\n if (vm.Report.selectedProject != undefined || vm.Report.selectedProject.length > 0)\r\n for (var i in vm.Report.selectedProject) {\r\n Ids = Ids + vm.Report.selectedProject[i].Id + ',';\r\n // cnt = cnt + 1;\r\n }\r\n\r\n if (Ids.length > 0)\r\n vm.InputCondition = 'PM.ProjectId In (' + Ids.substring(0, Ids.length - 1) + ')'\r\n else\r\n vm.InputCondition = vm.InputCondition;\r\n\r\n // if (cnt == 1)\r\n // vm.isShowTOP = true;\r\n // else\r\n // vm.isShowTOP = false;\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'ApartmentType',\r\n Condition: vm.InputCondition\r\n }\r\n\r\n }\r\n else if (iSelectFor == 'Load_SalableArea') {\r\n\r\n vm.AreaList = [];\r\n vm.SaleExecutiveList = [];\r\n\r\n var Ids = '';\r\n if (vm.Report.selectedApartmentType != undefined)\r\n for (var i in vm.Report.selectedApartmentType) {\r\n Ids = Ids + vm.Report.selectedApartmentType[i].Id + ',';\r\n }\r\n\r\n if (Ids.length > 0)\r\n vm.InputCondition = vm.InputCondition + ' and PD.PropertyTypeId In (' + Ids.substring(0, Ids.length - 1) + ')'\r\n else\r\n vm.InputCondition = vm.InputCondition;\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'SalableArea',\r\n Condition: vm.InputCondition\r\n }\r\n }\r\n else if (iSelectFor == 'Load_SalesExecutive') {\r\n\r\n vm.SaleExecutiveList = [];\r\n\r\n var Ids = '';\r\n if (vm.Report.selectedArea != undefined)\r\n for (var i in vm.Report.selectedArea) {\r\n Ids = Ids + vm.Report.selectedArea[i].Value + ',';\r\n }\r\n\r\n if (Ids.length > 0)\r\n vm.InputCondition = vm.InputCondition + ' and PA.SalableArea In (' + Ids.substring(0, Ids.length - 1) + ')'\r\n else\r\n vm.InputCondition = vm.InputCondition;\r\n\r\n inputdata = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'SalesExecutive',\r\n Condition: vm.InputCondition\r\n }\r\n }\r\n\r\n CRM_AddBuyerEnquiryService.GetBuyerDropDownInputValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n if (iSelectFor == 'Load_Project') {\r\n vm.ProjectList = res.data;\r\n }\r\n else if (iSelectFor == 'Load_Locations') {\r\n vm.LocationList = res.data;\r\n }\r\n else if (iSelectFor == 'Load_ApartmentType') {\r\n vm.ApartmentTypeList = res.data;\r\n }\r\n else if (iSelectFor == 'Load_SalableArea') {\r\n vm.SalableAreaList = res.data;\r\n }\r\n else if (iSelectFor == 'Load_SalesExecutive') {\r\n vm.SaleExecutiveList = res.data;\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Buyer Enquiry View\");\r\n });\r\n }\r\n\r\n function LoadTiers(SelectFor, iLocationId) {\r\n\r\n var iProjectId = vm.Report.selectedProject[0].Id;\r\n var iLocationId = vm.Report.selectedLocation[0].Id;\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n LocationId: iLocationId,\r\n ProjectId: iProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata2).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TiersList = res.data;\r\n\r\n var tierInput = {\r\n CompanyId: CompanyId,\r\n ProjectId: iProjectId,\r\n LocationId: iLocationId,\r\n SelectFor: 'Rate',\r\n Type: 'A'\r\n }\r\n\r\n CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(tierInput).then(function (result) {\r\n if (result.status === 200) {\r\n vm.AllSavedDetails = result.data;\r\n var firstTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': 0 });\r\n\r\n for (var i in vm.TiersList) {\r\n if (i == 0)\r\n vm.TiersList[i].NewLocation = firstTiers;\r\n else\r\n vm.TiersList[i].NewLocation = [];\r\n }\r\n vm.loadMultiSelect = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function LoadInnerLocations(SelectedLocs, Level, callback) {\r\n\r\n if (SelectedLocs != null) {\r\n if (SelectedLocs.length > 0) {\r\n if (Level < vm.TiersList.length) {\r\n var tierIdArr = [];\r\n for (var i in SelectedLocs) {\r\n var nextSavedTiers = lodash.filter(vm.AllSavedDetails, { 'ParentTierId': SelectedLocs[i].TierId });\r\n tierIdArr = tierIdArr.concat(nextSavedTiers);\r\n }\r\n\r\n vm.TiersList[Level].NewLocation = tierIdArr;\r\n vm.TiersList[Level].selectedTier = null;\r\n vm.loadMultiSelect = true;\r\n }\r\n else {\r\n var tids = '';\r\n\r\n for (var i in SelectedLocs) {\r\n tids = tids + SelectedLocs[i].TierId + ',';\r\n }\r\n\r\n if (tids.length > 0 && vm.TiersList.length == Level) {\r\n\r\n tids = tids.substring(0, tids.length - 1);\r\n vm.TierIds = tids;\r\n LoadInputDetails('Load_ApartmentType');\r\n }\r\n else {\r\n vm.TierIds = '';\r\n }\r\n }\r\n }\r\n else {\r\n for (var i in vm.TiersList) {\r\n if (i == (Level - 1)) {\r\n vm.TiersList[i].selectedTier = null;\r\n }\r\n else if ((Level - 1) < i) {\r\n vm.TiersList[i].selectedTier = null;\r\n vm.TiersList[i].NewLocation = [];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n $scope.open2 = function () {\r\n $scope.popup2.opened = true;\r\n };\r\n\r\n $scope.popup2 = {\r\n opened: false\r\n };\r\n\r\n }\r\n\r\n})();\r\n\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_parkingLocationSetup')\r\n .controller('parkingLocationSetupCtrl', parkingLocationSetupCtrl);\r\n\r\n /** @ngInject */\r\n function parkingLocationSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_parkingLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.addNewTier = addNewTier;\r\n vm.removeTier = removeTier;\r\n vm.SaveLocationSetup = SaveLocationSetup;\r\n vm.EditLocationSetup = EditLocationSetup;\r\n vm.RemoveLocationSetup = RemoveLocationSetup;\r\n vm.TileBack = TileBack;\r\n \r\n\r\n vm.tiers = [];\r\n vm.location = {};\r\n\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n Init();\r\n\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n }\r\n CRM_parkingLocationSetupService.GetAllLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationSetupList = res.data;\r\n\r\n vm.tierNameList = [];\r\n lodash.forEach(vm.LocationSetupList, function (loc) {\r\n loc.Tiers = JSON.parse(loc.Tiers);\r\n lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n if (!lodash.includes(vm.tierNameList, key))\r\n vm.tierNameList.push(key);\r\n });\r\n });\r\n\r\n if (vm.LocationSetupList.length < 1) {\r\n dialogs.notify('Warning', 'No Locations available', { animation: true, size: 'sm' });\r\n }\r\n\r\n\r\n // var data = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n // // ProjectId: CRMProjectId\r\n // }\r\n\r\n // CRM_parkingLocationSetupService.GetAllProjects(data).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectList = res.data;\r\n // if (vm.ProjectList.length < 1) {\r\n // dialogs.notify('Warning', 'No Project available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // // if (callback)\r\n // // callback();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n // });\r\n\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.location = {};\r\n vm.tiers = [];\r\n }\r\n\r\n function addNewTier() {\r\n\r\n var newItemNo = (vm.tiers).length + 1;\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: vm.location.Tier\r\n });\r\n vm.location.Tier = '';\r\n };\r\n\r\n function removeTier(item) {\r\n vm.tiers.splice(item, 1);\r\n };\r\n\r\n function SaveLocationSetup(location) {\r\n // location.ProjectId = vm.location.selectedProject.ProjectId;\r\n location.ProjectId = CRMProjectId;\r\n\r\n location.CompanyId = CompanyId;\r\n var tierList = {};\r\n for (var i in vm.tiers) {\r\n tierList['Tier' + (parseInt(i) + 1)] = vm.tiers[i].tierName;\r\n }\r\n\r\n location.Tiers = JSON.stringify(tierList);\r\n\r\n if (!vm.isEditing) {\r\n location.Process = 'S';\r\n CRM_parkingLocationSetupService.AddLocation(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n cancel();\r\n } else {\r\n location.Process = 'U';\r\n CRM_parkingLocationSetupService.AddLocation(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n cancel();\r\n }\r\n }\r\n\r\n function EditLocationSetup(location) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.location = angular.copy(location);\r\n\r\n\r\n // for (var c in vm.ProjectList) {\r\n // if (vm.ProjectList[c].ProjectId === location.ProjectId) {\r\n // vm.location.selectedProject = vm.ProjectList[c];\r\n // }\r\n // }\r\n\r\n\r\n vm.tiers = [];\r\n lodash.forIn(location.Tiers, function (tierValue, tier) {\r\n var newItemNo = (vm.tiers).length + 1;\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: tierValue\r\n });\r\n })\r\n }\r\n\r\n function RemoveLocationSetup(location) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n CRM_parkingLocationSetupService.RemoveLocationSetup(location.LocationId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n // else {\r\n // $rootScope.showToaster('error', \"Can't Delete LocationSetup\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n });\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n function TileBack() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId,TileId:'LocationSetup',SetupType:'Parking Setup'});\r\n }\r\n\r\n \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_parkingTierSetup')\r\n .controller('parkingTierSetupCtrl', parkingTierSetupCtrl);\r\n\r\n /** @ngInject */\r\n function parkingTierSetupCtrl($scope, $rootScope, lodash, dialogs, $http, $state, $stateParams, CRM_parkingTierSetupService, LocationSetupService, TierSetupService,\r\n CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TierSetupList = [];\r\n vm.isCodeCheck = false;\r\n $rootScope.isLogin = false;\r\n\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.saveNewTierValue = saveNewTierValue;\r\n vm.cancelAdding = cancelAdding;\r\n vm.filterTiers = filterTiers;\r\n vm.updateTierValue = updateTierValue;\r\n vm.removeTierSetup = removeTierSetup;\r\n vm.TileBack = TileBack;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n Init();\r\n\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n\r\n // var data = {\r\n // CompanyId: CompanyId,\r\n // Status: '4'\r\n // }\r\n // CRM_parkingTierSetupService.GetAllProjects(data).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectList = res.data;\r\n // if (vm.ProjectList.length < 1) {\r\n // dialogs.notify('Warning', 'No Project available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // // if (callback)\r\n // // callback();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n // });\r\n\r\n // CRM_projectLocationSetupService.GetAllLocations(CompanyId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationSetupList = res.data;\r\n\r\n // vm.tierNameList = [];\r\n // lodash.forEach(vm.LocationSetupList, function (loc) {\r\n // loc.Tiers = JSON.parse(loc.Tiers);\r\n // lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n // if (!lodash.includes(vm.tierNameList, key))\r\n // vm.tierNameList.push(key);\r\n // });\r\n // });\r\n\r\n // if (vm.LocationSetupList.length < 1) {\r\n // dialogs.notify('Warning', 'No Locations available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // // if (callback)\r\n // // callback();\r\n\r\n // var data = {\r\n // CompanyId: CompanyId,\r\n // Status: '4'\r\n // }\r\n\r\n\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n // });\r\n // vm.tier.selectedProject.ProjectId = CRMProjectId;\r\n getLocationByProjectId(CRMProjectId);\r\n }\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: ProjectId\r\n }\r\n CRM_parkingTierSetupService.GetAllLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available ', { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n // vm.LocationList = [];\r\n // vm.tier.selectedLocation = null;\r\n }\r\n\r\n function filterTiers(tier) {\r\n debugger\r\n var isClearingTier = (tier.selectedTierValue === null || tier.selectedTierValue === undefined);\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n vm.currentTier = vm.tierObj[nextTier];\r\n if (!isClearingTier)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier, 'ParentTierId': tier.selectedTierValue.TierId });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === nextTier) {\r\n if (!isClearingTier)\r\n t.Values = vm.TierSetupList;\r\n t.selectedTierValue = null;\r\n }\r\n var tierNoToCheck = ((isClearingTier) ? getTierNo(tier.TierType) : getTierNo(nextTier));\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.Values = [],\r\n t.selectedTierValue = null;\r\n }\r\n });\r\n\r\n if (isClearingTier) {\r\n if (getTierNo(tier.TierType) === 1)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj['Tier1'], 'ParentTierId': 0 });\r\n }\r\n }\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTiersByLocationId(LocationId, ProjectId, callback) {\r\n vm.tierObj = JSON.parse(vm.tier.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n\r\n var TierDetails = {\r\n\r\n CompanyId: CompanyId,\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n TierId: 0\r\n };\r\n\r\n CRM_parkingTierSetupService.getAllTierSetup(TierDetails).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj[properties] });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n if (callback)\r\n callback();\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n\r\n function saveNewTierValue(tier, val) {\r\n\r\n for (var i in vm.TierSetupList) {\r\n if (vm.TierSetupList[i].Code == tier.TierCode) {\r\n vm.isCodeCheck = true;\r\n dialogs.notify('Warning', 'Tier Code Already Exixt', { animation: true, size: 'sm' });\r\n tier.TierCode = null;\r\n }\r\n else {\r\n vm.isCodeCheck = false;\r\n }\r\n }\r\n\r\n if (!vm.isCodeCheck) {\r\n var oldTierSelection = [];\r\n tier.IsAdding = ((!(tier.IsAdding) || tier.IsAdding === undefined) ? true : false);\r\n vm.isAddingTier = true;\r\n if (!tier.IsAdding) {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n TierId: 0,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.tier.selectedLocation.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tier.TierValue,\r\n Code: tier.TierCode,\r\n TierName: tier.TierName,\r\n CreatedBy: loggedUser.UserId,\r\n IsActive: 1\r\n }\r\n if (getTierNo(tier.TierType) === 1) {\r\n obj.ParentTierId = 0;\r\n } else {\r\n var parentTier = lodash.find(vm.tierList, function (t) {\r\n return t.TierType === \"Tier\" + (getTierNo(tier.TierType) - 1);\r\n }).selectedTierValue;\r\n\r\n if (parentTier === null || parentTier === undefined) {\r\n $rootScope.showToaster('error', \"You have to select a parent tier\", \"ERROR!\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n return;\r\n } else {\r\n obj.ParentTierId = parentTier.TierId;\r\n }\r\n oldTierSelection = vm.tierList;\r\n }\r\n\r\n CRM_parkingTierSetupService.AddTierSetup(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, vm.tier.selectedLocation.ProjectId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n // filterTiers()\r\n });\r\n $rootScope.showToaster('success', res.data.Message, \"Tier Value\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Tier Value\");\r\n tier.IsAdding = !tier.IsAdding;\r\n }\r\n //Init();\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n // lodash.forEach(vm.tierList, function (t) {\r\n // t.isHideForm = false;\r\n // });\r\n } else {\r\n var tierNoToCheck = getTierNo(tier.TierType);\r\n\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n var currentTier = lodash.find(vm.tierList, { 'TierType': tier.TierType });\r\n vm.TierSetupList = currentTier.Values; // lodash.filter(vm.allTierData, { 'TierName': tier.TierName });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.isHideForm = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n function updateTierValue(tierToUpdate) {\r\n var TDtl = {\r\n CompanyId: CompanyId,\r\n TierId: tierToUpdate.TierId,\r\n ProjectId: tierToUpdate.ProjectId,\r\n LocationId: tierToUpdate.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tierToUpdate.TierValue,\r\n TierName: tierToUpdate.TierName,\r\n Code: tierToUpdate.Code,\r\n CreatedBy: loggedUser.UserId,\r\n IsActive: 1\r\n }\r\n // var obj = {\r\n // \"TierId\": tierToUpdate.TierId,\r\n // \"ProjectId\": tierToUpdate.ProjectId,\r\n // \"LocationId\": tierToUpdate.LocationId,\r\n // \"TierValue\": tierToUpdate.TierValue,\r\n // \"TierName\": tierToUpdate.TierName,\r\n // \"IsActive\": tierToUpdate.IsActive,\r\n // \"ModifiedBy\": loggedUser.UserId\r\n // }\r\n CRM_parkingTierSetupService.AddTierSetup(TDtl).then(function (res) {\r\n if (res.status === 200, res.data.IsSuccess) {\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n tierToUpdate.isEdit = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n }\r\n\r\n function removeTierSetup(tierToRemove) {\r\n\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n var oldTierSelection = vm.tierList;\r\n confirm.result.then(function () {\r\n CRM_parkingTierSetupService.removeTierSetup(tierToRemove.TierId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, vm.tier.selectedLocation.ProjectId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n });\r\n }\r\n function cancelAdding(tier) {\r\n tier.TierValue = undefined;\r\n tier.IsAdding = false;\r\n vm.isAddingTier = false;\r\n lodash.forEach(vm.tierList, function (t) {\r\n t.isHideForm = false;\r\n });\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'TierSetup', SetupType: 'Parking Setup' });\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectDetailsSetup')\r\n .controller('projectDetailsSetupCtrl', projectDetailsSetupCtrl);\r\n\r\n /** @ngInject */\r\n function projectDetailsSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, CRM_projectInitiationService, projectDetailsSetupService, AuthenticationService, ProjectDetailsApprovalService, CRM_parkingLocationSetupService, CRM_CopyAreaDetailsService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.isLoadApartmentType = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n vm.isShowHeader = true;\r\n\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n $rootScope.isLogin = false;\r\n vm.Backbutton = Backbutton;\r\n\r\n vm.LoadLocations = LoadLocations;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.SaveProjectDetailsSetup = SaveProjectDetailsSetup;\r\n vm.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n vm.Cancel = Cancel;\r\n vm.Create = Create;\r\n vm.ProjectSelected = ProjectSelected;\r\n vm.GotoTile = GotoTile;\r\n vm.TileBack = TileBack;\r\n vm.TileBackRefresh = TileBackRefresh;\r\n vm.buttonhide = true;\r\n // vm.buttonhide1 = false;\r\n vm.Project = {};\r\n vm.DeleteProject = DeleteProject;\r\n // vm.LoadApartmentSubType = LoadApartmentSubType;\r\n vm.LoadParkingTiers = LoadParkingTiers;\r\n vm.LoadParkingLocations = LoadParkingLocations;\r\n vm.LoadParkingInnerLocations = LoadParkingInnerLocations;\r\n vm.EditProjectNew = EditProjectNew;\r\n // vm.LoadInnerTiers = LoadInnerTiers;\r\n // vm.EditProject = EditProject;\r\n\r\n vm.AllRequiredDetails = [];\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n vm.UnSavedTiers = [];\r\n vm.saveParkDoc = saveParkDoc;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata1).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ProjectList = res1.data;\r\n LoadLocations(CRMProjectId);\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata2).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.SelectedProjectDetails = res2.data;\r\n\r\n vm.CRMReqFileList = JSON.parse(vm.SelectedProjectDetails[0].CRMRequiredFiles);\r\n\r\n var inputdata3 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Status: '3',\r\n ApprovalFor: 'Location'\r\n };\r\n // ProjectDetailsApprovalService.GetAllProjectDetailsApproval(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ApprovalDetailList = res.data;\r\n // for (var i in vm.ApprovalDetailList) {\r\n // vm.ApprovalDetailList[i].LocDtls = JSON.parse(vm.ApprovalDetailList[i].LocationDetails);\r\n // vm.ApprovalDetailList[i].AreaDtls = JSON.parse(vm.ApprovalDetailList[i].AreaUnits);\r\n // }\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n projectDetailsSetupService.GetProjectDetailsandPrice_New(inputdata3).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.ApprovalDetailList = res3.data;\r\n \r\n vm.currentPage = 1;\r\n // for (var i in vm.ApprovalDetailList) {\r\n // vm.ApprovalDetailList[i].LocDtls = JSON.parse(vm.ApprovalDetailList[i].LocationDetails);\r\n // vm.ApprovalDetailList[i].AreaDtls = JSON.parse(vm.ApprovalDetailList[i].AreaUnits);\r\n // }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n\r\n\r\n });\r\n\r\n\r\n\r\n vm.header = TitleHeader;\r\n vm.Project = {};\r\n\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n var ReqDetails = '';\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n vm.ReqFileList = JSON.parse(vm.ProjectList[i].CRMRequiredFiles);\r\n }\r\n }\r\n\r\n // if (ReqDetails.length > 0) {\r\n // vm.isRequiredDetails = true;\r\n // vm.AllRequiredDetails = JSON.parse(ReqDetails);\r\n // }\r\n // else\r\n // vm.isRequiredDetails = false;\r\n\r\n projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n // if (vm.LocationList.length > 0) {\r\n // vm.Project.selectedLocation = vm.LocationList[0];\r\n // vm.Project.selectedLocation.LocationId = vm.LocationList[0].LocationId;\r\n // LoadTiers(vm.Project.selectedLocation.LocationId);\r\n\r\n\r\n // }\r\n\r\n\r\n\r\n // projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n // if (res1.status === 200) {\r\n // vm.ParkingTiers = res1.data;\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n vm.isLoading = false;\r\n vm.isParkingTiers = true;\r\n\r\n // if (callback)\r\n // callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n\r\n function LoadParkingLocations(iIsParking, callback) {\r\n\r\n if (iIsParking == 'Yes') {\r\n vm.isLoadParkingTiers = true;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_parkingLocationSetupService.GetAllLocations(inputdata).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ParkingLocationList = res1.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n // projectDetailsSetupService.GetAllLocations(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationList = res.data;\r\n\r\n // CRM_parkingLocationSetupService.GetAllLocations(inputdata).then(function (res1) {\r\n // if (res.status === 200) {\r\n // vm.TierBasicLocationList = res.data;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n // vm.isLoading = false;\r\n // vm.isParkingTiers = true;\r\n\r\n // // if (callback)\r\n // // callback();\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n }\r\n else {\r\n vm.isLoadParkingTiers = false;\r\n vm.ParkingLocationList = [];\r\n }\r\n }\r\n\r\n\r\n function ProjectSelected(Id) {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n CRMProjectId = Id;\r\n vm.buttonhide = true;\r\n // vm.buttonhide=true;\r\n\r\n\r\n // vm.header=vm.Project.selectedProject.ProjectName +' , ' + vm.Project.selectedProject.AreaName;\r\n\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n function GotoTile(Details) {\r\n\r\n if (Details == 'ProjectSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = false;\r\n vm.isTierSetupTile = true;\r\n vm.Project.SetupType = 'Project Setup';\r\n vm.header = vm.header + ' --> ' + 'Property Setup';\r\n vm.buttonhide = true;\r\n\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n // ProjectId: CRMProjectId\r\n // };\r\n\r\n // CRM_projectInitiationService.GetAllProjects(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ProjectList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n\r\n\r\n // });\r\n }\r\n else if (Details == 'ParkingSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = false;\r\n vm.isTierSetupTile = true;\r\n vm.buttonhide = true;\r\n vm.Project.SetupType = 'Parking Setup';\r\n vm.header = vm.header + ' --> ' + 'Parking Setup';\r\n\r\n }\r\n else if (Details == 'ProjectDetailsSetup') {\r\n\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n vm.isGridShow = true;\r\n vm.isShowHeader = false;\r\n vm.isFormOpen = true;\r\n\r\n\r\n vm.header = vm.header + ' --> ' + 'Property Setup Info';\r\n\r\n LoadLocations(CRMProjectId);\r\n }\r\n else if (Details == 'PriceSetup') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n\r\n $state.go('CRM_ProjectPropertyPricesTies', { ProjectId: CRMProjectId, Header: vm.header });\r\n\r\n }\r\n else if (Details == 'LocationSetup') {\r\n // vm.buttonhide=false;\r\n\r\n if (vm.Project.SetupType == 'Project Setup') {\r\n $state.go('projectLocationSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n else if (vm.Project.SetupType == 'Parking Setup') {\r\n $state.go('parkingLocationSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n }\r\n else if (Details == 'TierSetup') {\r\n // vm.buttonhide=false;\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = false;\r\n // vm.isProjectDetails = true;\r\n // vm.isTierSetupTile = false;\r\n\r\n // var iPrjId = 2;\r\n\r\n if (vm.Project.SetupType == 'Project Setup') {\r\n $state.go('projectTierSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n else if (vm.Project.SetupType == 'Parking Setup') {\r\n $state.go('parkingTierSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n }\r\n }\r\n\r\n function TileBack(Details) {\r\n if (Details == 'MainTile') {\r\n vm.header = 'Project Property Info';\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = false;\r\n // vm.buttonhide=false;\r\n // vm.buttonhide1 = false;\r\n }\r\n else if (Details == 'SetupTile') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n vm.isProjectDetails = false;\r\n vm.isFormOpen = false;\r\n // vm.buttonhide1 = false;\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n var inputdatanew = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n ReadFor: 'ApartmentType',\r\n LocationId: iBasicLocationId,\r\n }\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.ApartmentList = res2.data;\r\n\r\n if (vm.ApartmentList.length > 0)\r\n vm.isLoadApartmentType = true;\r\n else\r\n vm.isLoadApartmentType = false;\r\n\r\n // var inputdatanew1 = {\r\n // ReadFor: 'FlatFacing',\r\n // ApartmentTypeId: null\r\n // }\r\n\r\n inputdatanew.ReadFor = 'FlatFacing';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.FlatFacingList = res3.data;\r\n\r\n inputdatanew.ReadFor = 'LocationFeature';\r\n\r\n projectDetailsSetupService.GetApartmentTypeFlatFacing(inputdatanew).then(function (res4) {\r\n if (res4.status === 200) {\r\n vm.LocationFeatureList = res4.data;\r\n\r\n // var locinputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: iBasicLocationId,\r\n // SelectFor: 'Location',\r\n // Type: 'NA'\r\n // }\r\n // CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(locinputdata).then(function (res5) {\r\n // if (res5.status === 200) {\r\n // vm.UnSavedTiers = res5.data;\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n\r\n // if (vm.UnSavedTiers.length > 0) {\r\n // if (i == 0) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': 0 });\r\n // vm.BasicLocationList[0].NewLocation = firstTiers;\r\n // }\r\n // }\r\n // }\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err1) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n\r\n\r\n // projectDetailsSetupService.GetAllParkingLeastTiers(inputdata).then(function (res1) {\r\n // if (res1.status === 200) {\r\n // vm.ParkingTiers = res1.data;\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n }\r\n }\r\n\r\n // function LoadInnerTiers(iTierId, callback) {\r\n // if (iTierId) {\r\n // var tierdtls = lodash.filter(vm.UnSavedTiers, { 'TierId': iTierId });\r\n\r\n // var levelNo = parseInt(tierdtls[0].TierLevel);\r\n\r\n // var iCode = '';\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == levelNo) {\r\n // var firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': iTierId });\r\n // vm.BasicLocationList[i].NewLocation = firstTiers;\r\n // }\r\n\r\n // if (vm.BasicLocationList[i].selectedTier != undefined)\r\n // iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n // }\r\n // vm.Project.Code = iCode;\r\n // }\r\n // }\r\n\r\n // function LoadApartmentSubType(iApartmentTypeId, callback) {\r\n // vm.ApartmentList = [];\r\n // if (iApartmentTypeId) {\r\n // var intputdata = {\r\n // ReadFor: 'ApartmentSubType',\r\n // ApartmentTypeId: iApartmentTypeId\r\n // }\r\n\r\n // projectDetailsSetupService.GetApartmentTypeFlatFacing(intputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ApartmentSubTypeList = res.data;\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n // }\r\n\r\n // function LoadingParkingLocations(IsParking, callback) {\r\n // // vm.ParkingTiersList = [];\r\n // if (IsParking == 'Y') {\r\n\r\n // // if (AprtmentTypeId) {\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // LocationId: 4,\r\n // ProjectId: CRMProjectId,\r\n // ParentTierId: 0\r\n // };\r\n\r\n // projectDetailsSetupService.ParkingTiersBasicLocation(intputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.ParkingBasicLocationList = res.data;\r\n\r\n // if (vm.ParkingTiersList.length > 0)\r\n // vm.isLoadParkingTiers = true;\r\n // else\r\n // vm.isLoadParkingTiers = false;\r\n\r\n // if (callback)\r\n // callback();\r\n // }\r\n // }, function (err1) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // // }\r\n // }\r\n // }\r\n\r\n function LoadParkingTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ParkingBasicLocationList = res.data;\r\n if (callback)\r\n callback();\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.ParkingBasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedParkingLocation = null;\r\n vm.ParkingBasicLocationList = [];\r\n vm.Project.ParkingCode = '';\r\n // vm.BasicLocationList = [];\r\n // vm.ApartmentList = [];\r\n // vm.isLoadApartmentType = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n\r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null; \r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n\r\n // for (var i in vm.BasicLocationList) {\r\n // if (i == (Level - 1)) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // }\r\n // else if ((Level - 1) < i) {\r\n // vm.BasicLocationList[i].selectedTier = null;\r\n // vm.BasicLocationList[i].NewLocation = [];\r\n // }\r\n // }\r\n }\r\n }\r\n\r\n // function LoadUnSavedTiers(iLevel, iTierId) {\r\n // vm.UnSavedTiers = [];\r\n\r\n // var inputdata = {\r\n // CompanyId: CompanyId,\r\n // ProjectId: CRMProjectId,\r\n // LocationId: vm.Project.selectedLocation.LocationId,\r\n // SelectFor: 'Location',\r\n // Type: 'NA'\r\n // }\r\n // CRM_CopyAreaDetailsService.GetSavedTiers_ForCopyProcess(inputdata).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.UnSavedTiers = res.data;\r\n\r\n // var firstTiers;\r\n\r\n // firstTiers = lodash.filter(vm.UnSavedTiers, { 'ParentTierId': iTierId });\r\n\r\n // for (var i in vm.NewBasicLocationList) {\r\n // if (iLevel == i) {\r\n // vm.BasicLocationList[i].NewLocation = firstTiers;\r\n // }\r\n // }\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n\r\n function LoadParkingInnerLocations(iTierId, callback) {\r\n if (iTierId) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedParkingLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n projectDetailsSetupService.ParkingTiersBasicLocation(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewParkingBasicLocationList = res.data;\r\n var iCode = '';\r\n for (var i in vm.NewParkingBasicLocationList) {\r\n if (vm.NewParkingBasicLocationList[i].Tiers === vm.ParkingBasicLocationList[i].Tiers && vm.NewParkingBasicLocationList[i].BasicLocation != \"\") {\r\n vm.ParkingBasicLocationList[i].NewLocation = JSON.parse(vm.NewParkingBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null;\r\n }\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier != undefined)\r\n iCode = iCode + (vm.ParkingBasicLocationList[i].selectedParkingTier.Code == undefined ? '' : vm.ParkingBasicLocationList[i].selectedParkingTier.Code);\r\n\r\n }\r\n\r\n vm.Project.ParkingCode = iCode;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n }\r\n }\r\n\r\n ///// Filed Attachments\r\n // $scope.Uploadfile1 = function (event) {\r\n // vm.Uploadfile1 = event.target.files[0];\r\n // }\r\n // $scope.Uploadfile2 = function (event) {\r\n // vm.Uploadfile2 = event.target.files[0];\r\n // }\r\n\r\n // $scope.Uploadfile3 = function (event) {\r\n // vm.Uploadfile3 = event.target.files[0];\r\n // }\r\n\r\n function SaveProjectDetailsSetup() {\r\n\r\n\r\n var strAreaUnits = '', strLocDetails = '';\r\n\r\n for (var i = 0; i < vm.BasicLocationList.length; i++) {\r\n\r\n strLocDetails += '{\"TierName\":\"' + vm.BasicLocationList[i].Tiers + '\",\"Values\":[{\"TierId\":\"' + vm.BasicLocationList[i].selectedTier.TierId + '\",\"TierValue\":\"' + vm.BasicLocationList[i].selectedTier.TierValue + '\"}]},';\r\n }\r\n\r\n for (var i = 0; i < vm.AllRequiredDetails.Fields.length; i++) {\r\n\r\n if (vm.AllRequiredDetails.Fields[i].Type === 'DDL')\r\n strAreaUnits += '\"' + vm.AllRequiredDetails.Fields[i].Label + '\":\"' + vm.AllRequiredDetails.Fields[i].selectedfield + '\",';\r\n else if (vm.AllRequiredDetails.Fields[i].Type === 'TXT')\r\n strAreaUnits += '\"' + vm.AllRequiredDetails.Fields[i].Label + '\":\"' + vm.AllRequiredDetails.Fields[i].field + '\",';\r\n }\r\n\r\n if (strAreaUnits.length > 0) {\r\n strAreaUnits = strAreaUnits.substr(0, strAreaUnits.length - 1);\r\n }\r\n\r\n if (strLocDetails.length > 0) {\r\n strLocDetails = strLocDetails.substr(0, strLocDetails.length - 1);\r\n }\r\n\r\n strAreaUnits = '{' + strAreaUnits + '}';\r\n\r\n strLocDetails = '[' + strLocDetails + ']';\r\n\r\n var parkDetails = {\r\n TierId: vm.Project.selectedParkingTier.TierId,\r\n TierName: vm.Project.selectedParkingTier.TierName,\r\n TierValue: vm.Project.selectedParkingTier.TierValue\r\n }\r\n\r\n\r\n\r\n var inputdata = {\r\n SetupId: 0,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n LocationDetails: strLocDetails,\r\n AreaUnits: strAreaUnits,\r\n ParkingTierDetails: JSON.stringify(parkDetails),\r\n LocationApproval: 3,\r\n CreatedBy: loggeduser,\r\n Process: 'Save',\r\n UnitId: vm.Project.selectedMasterunit.UnitId,\r\n Code: vm.Project.Code,\r\n\r\n\r\n }\r\n\r\n var formData = new FormData();\r\n\r\n // formData.append(\"Uploadfile1\", vm.Uploadfile1);\r\n // formData.append(\"Uploadfile2\", vm.Uploadfile2);\r\n // formData.append(\"Uploadfile3\", vm.Uploadfile3);\r\n formData.append(\"inputdata\", JSON.stringify(inputdata));\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup(formData).then(function (res) {\r\n\r\n\r\n if (res.data.IsSuccess === true) {\r\n\r\n\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n $rootScope.showToaster('success', res.data.Message, \"Location Setup Master\");\r\n Init();\r\n // vm.isFormOpen = false;\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Location Setup Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n // vm.GotoTile('ProjectDetailsSetup');\r\n }\r\n\r\n function SaveProjectDetailsSetup_New() {\r\n\r\n var iSetupId = 0;\r\n if (vm.isEditing)\r\n iSetupId = vm.Project.SetupId;\r\n\r\n var iLocationDetails = {};\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].selectedTier) {\r\n iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n }\r\n }\r\n\r\n var iParkingLocationId = null;\r\n var iParkingTierId = null;\r\n var iParkingLocationDetails = {};\r\n\r\n\r\n if (vm.Project.selectedApartment != undefined && vm.Project.selectedApartment.IsParking == 'Yes') {\r\n iParkingLocationId = vm.Project.selectedParkingLocation.LocationId;\r\n iParkingTierId = vm.ParkingBasicLocationList[vm.ParkingBasicLocationList.length - 1].selectedParkingTier.TierId;\r\n\r\n for (var i in vm.ParkingBasicLocationList) {\r\n if (vm.ParkingBasicLocationList[i].selectedParkingTier) {\r\n iParkingLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.ParkingBasicLocationList[i].selectedParkingTier.TierId;\r\n }\r\n }\r\n }\r\n\r\n // var iUploadfiles = [];\r\n\r\n // var iUploadfiles = {\r\n // ProjectUpload: JSON.stringify(vm.selectedProjectFileList),\r\n // ParkingUpload: JSON.stringify(vm.selectedParkFileList),\r\n // };\r\n\r\n\r\n\r\n var inputData = {\r\n SetupId: iSetupId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n LocationDetails: JSON.stringify(iLocationDetails),\r\n PropertyTypeId: vm.Project.selectedApartment.Id,\r\n UnitId: vm.Project.selectedMasterunit.UnitId,\r\n // Uploadfiles: iUploadfiles,\r\n ParkingLocationId: iParkingLocationId,\r\n ParkingTierId: iParkingTierId,\r\n ParkingLocationDetails: JSON.stringify(iParkingLocationDetails),\r\n CarpetArea: vm.Project.CarpetArea != undefined ? vm.Project.CarpetArea : 0,\r\n CommonArea: vm.Project.CommonArea != undefined ? vm.Project.CommonArea : 0,\r\n SalableArea: vm.Project.SalableArea != undefined ? vm.Project.SalableArea : 0,\r\n SuperBuiltUpArea: vm.Project.SuperBuiltUpArea != undefined ? vm.Project.SuperBuiltUpArea : 0,\r\n UDSArea: vm.Project.UDSArea != undefined ? vm.Project.UDSArea : 0,\r\n Balcony: vm.Project.Balcony != undefined ? vm.Project.Balcony : 0,\r\n Verandah: vm.Project.Verandah != undefined ? vm.Project.Verandah : 0,\r\n Utility: vm.Project.Utility != undefined ? vm.Project.Utility : 0,\r\n Services: vm.Project.Services != undefined ? vm.Project.Services : 0,\r\n OpenTerrace: vm.Project.OpenTerrace != undefined ? vm.Project.OpenTerrace : 0,\r\n UnitType: vm.Project.UnitType,\r\n ReraUnitType: vm.Project.ReraUnitType,\r\n\r\n FlatFacingId: vm.Project.selectedFlatFacing.Id,\r\n FlatFeatureId: vm.Project.selectedLocationFeature.Id,\r\n Status: 3,\r\n Process: 'Save',\r\n CreatedBy: loggeduser.UserId,\r\n }\r\n\r\n var formData = new FormData();\r\n if (!vm.isEditing) {\r\n for (var i in vm.selectedProjectFileList) {\r\n formData.append(vm.selectedProjectFileList[i].key, vm.selectedProjectFileList[i].selectedFile);\r\n }\r\n\r\n for (var i in vm.selectedParkFileList) {\r\n formData.append(vm.selectedParkFileList[i].key, vm.selectedParkFileList[i].selectedFile);\r\n }\r\n }\r\n\r\n\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n // formData.append(\"ProjectUpload\", vm.selectedProjectFileList);\r\n // formData.append(\"ParkingUpload\", vm.selectedParkFileList);\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n $rootScope.showToaster('success', res.data.Message, \"Project Details Setup\");\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Details Setup\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function Cancel() {\r\n vm.Project = {};\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n vm.isShowHeader = true;\r\n vm.isLoadTiers = false;\r\n vm.isLoadApartmentType = false; \r\n vm.currentPage = 1;\r\n // vm.isFormOpen = false;\r\n // vm.location = {};\r\n // vm.tiers = [];\r\n\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n\r\n // Init();\r\n }\r\n function DeleteProject(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n SetupId: row.SetupId,\r\n Process: 'Delete',\r\n };\r\n\r\n var formData = new FormData();\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Details Setup\");\r\n Init();\r\n Cancel();\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n vm.buttonhide = false;\r\n vm.Project = {};\r\n vm.isLoadTiers = false;\r\n vm.isLoadApartmentType = false;\r\n vm.ParkingBasicLocationList = [];\r\n // for (var i in vm.ParkingBasicLocationList) {\r\n // vm.ParkingBasicLocationList[i].NewLocation = [];\r\n // vm.ParkingBasicLocationList[i].selectedParkingTier = null;\r\n // }\r\n // for(var i in vm.BasicLocationList)\r\n // {\r\n // if(i==0)\r\n // {\r\n // vm.BasicLocationList.selectedTier = null;\r\n // }\r\n // else\r\n // {\r\n // vm.BasicLocationList. = [];\r\n // }\r\n // }\r\n\r\n\r\n // vm.header= vm.header+' --> Property Setup Info';\r\n }\r\n\r\n\r\n //edit\r\n vm.EditProject = function (row) {\r\n vm.isEditing = true;\r\n // debugger;\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = true;\r\n\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId === vm.Project.ProjectId) {\r\n // vm.Project.selectedProject = vm.ProjectList[i];\r\n // }\r\n // }\r\n LoadLocations(CRMProjectId, function () {\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var areadetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n for (var i in vm.AllRequiredDetails.Fields) {\r\n if (vm.AllRequiredDetails.Fields[i].Type == 'DDL') {\r\n\r\n }\r\n else if (vm.AllRequiredDetails.Fields[i].Type == 'TXT') {\r\n vm.AllRequiredDetails.Fields[i].Values = areadetails[vm.AllRequiredDetails.Fields[i].Label];\r\n }\r\n }\r\n\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n for (var i in vm.BasicLocationList.NewLocation) {\r\n if (vm.BasicLocationList.NewLocation[i].TierId === allSelectLocations[i].Values[0].TierId) {\r\n labels.selectedTier = vm.BasicLocationList.NewLocation[i];\r\n // for (var j in allSelectLocations) {\r\n // LoadInnerLocations(allSelectLocations[j].Values[0].TierId);\r\n\r\n // }\r\n }\r\n }\r\n }\r\n // LoadInnerLocations();\r\n // LoadInnerLocations(labels.selectedTier.TierId)\r\n });\r\n\r\n\r\n var parkDetails = JSON.parse(vm.Project.ParkingTierDetails);\r\n for (var i in vm.ParkingTiers) {\r\n if (vm.ParkingTiers[i].TierId === parkDetails.TierId) {\r\n vm.Project.selectedParkingTier = vm.ParkingTiers[i];\r\n }\r\n }\r\n }\r\n });\r\n //vm.ProjectDetails.selectedLocation\r\n\r\n\r\n }\r\n\r\n function EditProjectNew(row) {\r\n\r\n vm.isEditing = true;\r\n vm.Project = {};\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n vm.buttonhide = false;\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n var iCode = '';\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n\r\n for (var i in vm.ApartmentList) {\r\n if (vm.ApartmentList[i].Id == vm.Project.PropertyTypeId) {\r\n vm.Project.selectedApartment = vm.ApartmentList[i];\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n LoadParkingLocations(vm.ApartmentList[i].IsParking);\r\n\r\n for (var a in vm.ParkingLocationList) {\r\n if (vm.ParkingLocationList[a].LocationId == vm.Project.ParkingLocationId) {\r\n vm.Project.selectedParkingLocation = vm.ParkingLocationList[a];\r\n var Parkinputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.ParkingLocationId,\r\n ApprovalFor: 'Parking',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(Parkinputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedParkTierDetails = res.data;\r\n var allSelectParkLocations = JSON.parse(vm.Project.ParkingLocationDetails);\r\n LoadParkingTiers(vm.Project.ParkingLocationId, function () {\r\n if (vm.ParkingBasicLocationList) {\r\n var iCode = '';\r\n for (var b in vm.ParkingBasicLocationList) {\r\n vm.ParkingBasicLocationList[b].NewLocation = JSON.parse(vm.SavedParkTierDetails[b].TierValue);\r\n for (var j in vm.ParkingBasicLocationList[b].NewLocation) {\r\n if (vm.ParkingBasicLocationList[b].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(b) + 1)]) {\r\n // if (vm.ParkingBasicLocationList[i].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.ParkingBasicLocationList[b].selectedParkingTier = vm.ParkingBasicLocationList[b].NewLocation[j];\r\n }\r\n }\r\n if (vm.ParkingBasicLocationList[b].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[b].selectedParkingTier.Code;\r\n }\r\n vm.Project.ParkingCode = iCode;\r\n }\r\n });\r\n }\r\n });\r\n\r\n vm.selectedParkFileList = [];\r\n var SavedParkUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ParkingUpload);\r\n for (var a in SavedParkUploadList) {\r\n if (SavedParkUploadList.hasOwnProperty(a)) {\r\n vm.selectedParkFileList.push({\r\n key: a,\r\n selectedFile: SavedParkUploadList[a]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if (vm.Project.selectedParkingLocation != undefined) {\r\n\r\n // }\r\n\r\n\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.Project.UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.FlatFacingList) {\r\n if (vm.FlatFacingList[i].Id == vm.Project.FlatFacingId) {\r\n vm.Project.selectedFlatFacing = vm.FlatFacingList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.LocationFeatureList) {\r\n if (vm.LocationFeatureList[i].Id == vm.Project.FlatFeatureId) {\r\n vm.Project.selectedLocationFeature = vm.LocationFeatureList[i];\r\n }\r\n }\r\n }\r\n\r\n vm.selectedProjectFileList = [];\r\n var SavedProjectUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ProjectUpload);\r\n for (var a in SavedProjectUploadList) {\r\n if (SavedProjectUploadList.hasOwnProperty(a)) {\r\n vm.selectedProjectFileList.push({\r\n key: a,\r\n selectedFile: SavedProjectUploadList[a]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n function TileBackRefresh() {\r\n vm.isLoadTiers = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n // vm.buttonhide=ture;\r\n // vm.buttonhide1=false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n Init();\r\n // $state.go('CRM_projectDetailsSetup');\r\n }\r\n\r\n function Backbutton() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'NewCopyInfoTileSetup', SetupType: '' });\r\n }\r\n\r\n\r\n // upload file table function\r\n\r\n vm.savePrjDoc = function () {\r\n\r\n if (!vm.isEditing) {\r\n var isExist = false;\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.Project.selectedCRMFileType != undefined) {\r\n if (vm.selectedProjectFileList[i].key === vm.Project.selectedCRMFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.selectedPrjFile != undefined) {\r\n vm.selectedProjectFileList.push({\r\n key: vm.Project.selectedCRMFileType.Key,\r\n selectedFile: vm.selectedPrjFile\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! File not selected', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n }\r\n else {\r\n var isExist = false;\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.Project.selectedProjectFileList != undefined) {\r\n if (vm.selectedProjectFileList[i].key === vm.Project.selectedCRMFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n // if (vm.selectedFile != undefined) {\r\n // var formData = new FormData();\r\n // formData.append('ProjectId', vm.project.ProjectId),\r\n // formData.append('CompanyId', vm.project.CompanyId),\r\n // formData.append('key', vm.Project.selectedCRMFileType.Key),\r\n // formData.append('inputdata', vm.selectedFile);\r\n // projectDetailsSetupService.uploadProjectImage(formData).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Drawing Added Successfully', \"Project Initiation\");\r\n // var selectedProjectFileList = res.data;\r\n // vm.selectedProjectFileList = []\r\n // for (var property in selectedProjectFileList) {\r\n // if (selectedProjectFileList.hasOwnProperty(property)) {\r\n // vm.selectedProjectFileList.push({\r\n // key: property,\r\n // selectedFile: selectedProjectFileList[property]\r\n // });\r\n // }\r\n // }\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Insert Drawing\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Can't Insert Drawing\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // } else {\r\n // dialogs.notify('Warning', '! File not selected', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n function saveParkDoc() {\r\n\r\n // if (vm.isAdd) \r\n {\r\n var isExist = false;\r\n for (var i in vm.selectedParkFileList) {\r\n if (vm.Project.selectedCRMParkFileType != undefined) {\r\n if (vm.selectedParkFileList[i].key === vm.Project.selectedCRMParkFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMParkFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.selectedParkFile != undefined) {\r\n vm.selectedParkFileList.push({\r\n key: vm.Project.selectedCRMParkFileType.Key,\r\n selectedFile: vm.selectedParkFile\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! File not selected', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n // if (vm.isEdit) {\r\n // var isExist = false;\r\n // for (var i in vm.selectedFileList) {\r\n // if (vm.fileList.selectedFileType != undefined) {\r\n // if (vm.selectedFileList[i].key === vm.fileList.selectedFileType.Key) {\r\n // dialogs.notify('Warning', vm.fileList.selectedFileType.Key + '! Alread Added', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // isExist = true\r\n // }\r\n // }\r\n // }\r\n // if (!isExist) {\r\n // if (vm.selectedFile != undefined) {\r\n // var formData = new FormData();\r\n // formData.append('ProjectId', vm.project.ProjectId),\r\n // formData.append('CompanyId', vm.project.CompanyId),\r\n // formData.append('key', vm.fileList.selectedFileType.Key),\r\n // formData.append('selectedFile', vm.selectedFile);\r\n // projectDetailsSetupService.uploadProjectImage(formData).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Drawing Added Successfully', \"Project Initiation\");\r\n // var selectedFileList = res.data;\r\n // vm.selectedFileList = []\r\n // for (var property in selectedFileList) {\r\n // if (selectedFileList.hasOwnProperty(property)) {\r\n // vm.selectedFileList.push({\r\n // key: property,\r\n // selectedFile: selectedFileList[property]\r\n // });\r\n // }\r\n // }\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Insert Drawing\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Can't Insert Drawing\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // } else {\r\n // dialogs.notify('Warning', '! File not selected', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }\r\n\r\n // }\r\n }\r\n // view function for upload \r\n vm.viewFile = function (row) {\r\n\r\n var blob = new Blob([row.selectedFile], { type: row.selectedFile.type });\r\n var url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n //remove fileupload in grid \r\n vm.RemoveProjectFileType = function (fileType, UploadFor) {\r\n\r\n // if (vm.isAdd)\r\n\r\n\r\n if (vm.isEditing) {\r\n var objDel = {\r\n SetupId: vm.Project.SetupId,\r\n Uploadfiles: vm.Project.Uploadfiles,\r\n Key: fileType.key,\r\n UpdateFor: UploadFor\r\n }\r\n projectDetailsSetupService.UpdateandDeleteProjectFileUpload(objDel).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', ' Deleted Successfully', \"Project Details Setup\");\r\n\r\n vm.Project.Uploadfiles = res.data[0].Uploadfiles;\r\n // if (UploadFor == 'ProjectUpload') {\r\n var selectedPrjFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ProjectUpload']);\r\n vm.selectedProjectFileList = [];\r\n\r\n for (var i in selectedPrjFiles) {\r\n if (selectedPrjFiles.hasOwnProperty(i)) {\r\n vm.selectedProjectFileList.push({\r\n key: i,\r\n selectedFile: selectedPrjFiles[i]\r\n });\r\n }\r\n }\r\n\r\n\r\n var selectedParkFiles = JSON.parse(JSON.parse(res.data[0].Uploadfiles)['ParkingUpload']);\r\n vm.selectedParkFileList = [];\r\n\r\n\r\n for (var i in selectedParkFiles) {\r\n if (selectedParkFiles.hasOwnProperty(i)) {\r\n vm.selectedParkFileList.push({\r\n key: i,\r\n selectedFile: selectedParkFiles[i]\r\n });\r\n }\r\n }\r\n\r\n // for (var property in selectedFileList) {\r\n // if (selectedFileList.hasOwnProperty(property)) {\r\n // vm.selectedFileList.push({\r\n // key: property,\r\n // selectedFile: selectedFileList[property]\r\n // });\r\n // }\r\n // }\r\n // }\r\n // else {\r\n // var selectedParkingFileList = res.data[0].Uploadfiles;\r\n // vm.selectedParkFileList = []\r\n // for (var property in selectedParkingFileList) {\r\n // if (selectedParkingFileList.hasOwnProperty(property)) {\r\n // vm.selectedParkFileList.push({\r\n // key: property,\r\n // selectedFile: selectedParkingFileList[property]\r\n // });\r\n // }\r\n // }\r\n\r\n // }\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n else {\r\n\r\n if (UploadFor == 'ProjectUpload') {\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.selectedProjectFileList[i].key === fileType.key) {\r\n vm.selectedProjectFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n else {\r\n\r\n for (var i in vm.selectedParkFileList) {\r\n if (vm.selectedParkFileList[i].key === fileType.key) {\r\n vm.selectedParkFileList.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n $scope.prjfileChanged = function (event) {\r\n\r\n if (event)\r\n vm.selectedPrjFile = event.target.files[0];\r\n }\r\n\r\n $scope.parkfileChanged = function (event) {\r\n\r\n if (event)\r\n vm.selectedParkFile = event.target.files[0];\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectLocationSetup')\r\n .controller('projectLocationSetupCtrl', projectLocationSetupCtrl);\r\n\r\n /** @ngInject */\r\n function projectLocationSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_projectLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.addNewTier = addNewTier;\r\n vm.removeTier = removeTier;\r\n vm.SaveLocationSetup = SaveLocationSetup;\r\n vm.EditLocationSetup = EditLocationSetup;\r\n vm.RemoveLocationSetup = RemoveLocationSetup;\r\n vm.TileBack = TileBack;\r\n vm.tiers = [];\r\n vm.location = {};\r\n\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n Init();\r\n\r\n function Init() {\r\n vm.Header = TitleHeader;\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n }\r\n CRM_projectLocationSetupService.GetAllLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationSetupList = res.data;\r\n\r\n vm.tierNameList = [];\r\n lodash.forEach(vm.LocationSetupList, function (loc) {\r\n loc.Tiers = JSON.parse(loc.Tiers);\r\n lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n if (!lodash.includes(vm.tierNameList, key))\r\n vm.tierNameList.push(key);\r\n });\r\n });\r\n\r\n // vm.CodeList = [];\r\n // lodash.forEach(vm.LocationSetupList, function (loc) {\r\n // if (loc.CodeDetails.length > 0) {\r\n // loc.CodeDetails = JSON.parse(loc.CodeDetails);\r\n // lodash.forEach(lodash.keys(loc.CodeDetails), function (key) {\r\n // if (!lodash.includes(vm.CodeList, key))\r\n // vm.CodeList.push(key);\r\n // });\r\n // }\r\n // });\r\n\r\n // if (vm.LocationSetupList.length < 1) {\r\n // dialogs.notify('Warning', 'No Locations available ', { animation: true, size: 'sm' });\r\n // }\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n\r\n var data = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n }\r\n\r\n CRM_projectLocationSetupService.GetAllProjects(data).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available ', { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.location = {};\r\n vm.tiers = [];\r\n }\r\n\r\n function addNewTier() {\r\n\r\n var newItemNo = (vm.tiers).length + 1;\r\n\r\n var details;\r\n if (vm.tiers.length > 0) {\r\n // details = JSON.parse(vm.tiers);\r\n\r\n // if (!lodash.filter(vm.tiers, { 'code': vm.location.Code }).length > 0) {\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: vm.location.Tier,\r\n // code: vm.location.Code,\r\n });\r\n vm.location.Tier = '';\r\n // vm.location.Code = '';\r\n // } else {\r\n // $rootScope.showToaster('error', 'Code already exists', \"Location Setup Master\");\r\n // }\r\n }\r\n else {\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: vm.location.Tier,\r\n // code: vm.location.Code,\r\n });\r\n vm.location.Tier = '';\r\n // vm.location.Code = '';\r\n }\r\n\r\n // var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n };\r\n\r\n function removeTier(item) {\r\n vm.tiers.splice(item, 1);\r\n };\r\n\r\n function SaveLocationSetup(location) {\r\n // location.ProjectId = vm.location.selectedProject.ProjectId;\r\n location.ProjectId = CRMProjectId;\r\n location.CompanyId = CompanyId;\r\n var tierList = {};\r\n for (var i in vm.tiers) {\r\n tierList['Tier' + (parseInt(i) + 1)] = vm.tiers[i].tierName;\r\n }\r\n\r\n location.Tiers = JSON.stringify(tierList);\r\n\r\n // var CodeList = {};\r\n // for (var i in vm.tiers) {\r\n // CodeList['Tier' + (parseInt(i) + 1)] = vm.tiers[i].code;\r\n // }\r\n // location.CodeDetails = JSON.stringify(CodeList);\r\n\r\n\r\n if (!vm.isEditing) {\r\n location.Process = 'S';\r\n\r\n CRM_projectLocationSetupService.AddLocation(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n cancel();\r\n } else {\r\n location.Process = 'U';\r\n CRM_projectLocationSetupService.AddLocation(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n cancel();\r\n }\r\n }\r\n\r\n function EditLocationSetup(location) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.location = angular.copy(location);\r\n\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === location.ProjectId) {\r\n vm.location.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n\r\n vm.tiers = [];\r\n lodash.forIn(location.Tiers, function (tierValue, tier) {\r\n var newItemNo = (vm.tiers).length + 1;\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: tierValue,\r\n });\r\n });\r\n\r\n // var tst = [];\r\n\r\n // lodash.forIn(location.CodeDetails, function (codeValue, code) {\r\n // var newItemNo = (tst).length + 1;\r\n // tst.push({\r\n // id: newItemNo,\r\n // code: codeValue,\r\n // });\r\n // });\r\n\r\n // for (var a in vm.tiers) {\r\n // vm.tiers[a].code = tst[a].code;\r\n // }\r\n\r\n\r\n // for (var a in vm.tiers) {\r\n // vm.tiers[a].code = lodash.filter(location.CodeDetails, { 'id': a + 1 }).code;\r\n\r\n\r\n // }\r\n // vm.tiers = [];\r\n // lodash.forIn(location.CodeDetails, function (tierValue, tier) {\r\n // var newItemNo = (vm.tiers).length + 1;\r\n // vm.tiers.push({\r\n // id: newItemNo,\r\n // code: tierValue\r\n // });\r\n // });\r\n }\r\n\r\n function RemoveLocationSetup(location) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n CRM_projectLocationSetupService.RemoveLocationSetup(location.LocationId).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Delete Successfully', \"Location Setup\");\r\n // Init();\r\n // }\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n\r\n\r\n // else {\r\n // $rootScope.showToaster('error', \"Can't Delete LocationSetup\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId, TileId: 'LocationSetup', SetupType: 'Project Setup' });\r\n\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectTierSetup')\r\n .controller('projectTierSetupCtrl', projectTierSetupCtrl);\r\n\r\n /** @ngInject */\r\n function projectTierSetupCtrl($scope, $rootScope, lodash, dialogs, $http, $state, $stateParams, CRM_projectLocationSetupService, LocationSetupService, TierSetupService,\r\n CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TierSetupList = [];\r\n $rootScope.isLogin = false;\r\n\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.saveNewTierValue = saveNewTierValue;\r\n vm.cancelAdding = cancelAdding;\r\n vm.filterTiers = filterTiers;\r\n vm.updateTierValue = updateTierValue;\r\n vm.removeTierSetup = removeTierSetup;\r\n vm.TileBack=TileBack;\r\n // vm.TileBack = TileBack;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var CRMProjectId = $state.params.ProjectId;\r\n var TitleHeader = $state.params.Header;\r\n Init();\r\n\r\n function Init() {\r\n vm.Header = TitleHeader ;\r\n var data = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: CRMProjectId\r\n }\r\n CRM_projectLocationSetupService.GetAllProjects(data).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n\r\n // CRM_projectLocationSetupService.GetAllLocations(CompanyId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationSetupList = res.data;\r\n\r\n // vm.tierNameList = [];\r\n // lodash.forEach(vm.LocationSetupList, function (loc) {\r\n // loc.Tiers = JSON.parse(loc.Tiers);\r\n // lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n // if (!lodash.includes(vm.tierNameList, key))\r\n // vm.tierNameList.push(key);\r\n // });\r\n // });\r\n\r\n // if (vm.LocationSetupList.length < 1) {\r\n // dialogs.notify('Warning', 'No Locations available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // // if (callback)\r\n // // callback();\r\n\r\n // var data = {\r\n // CompanyId: CompanyId,\r\n // Status: '4'\r\n // }\r\n\r\n\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n // });\r\n\r\n getLocationByProjectId(CRMProjectId);\r\n }\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: ProjectId\r\n }\r\n CRM_projectLocationSetupService.GetAllLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available ', { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n vm.LocationList = [];\r\n // vm.tier.selectedLocation = null;\r\n }\r\n\r\n\r\n function filterTiers(tier) {\r\n var isClearingTier = (tier.selectedTierValue === null || tier.selectedTierValue === undefined);\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n vm.currentTier = vm.tierObj[nextTier];\r\n if (!isClearingTier)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier, 'ParentTierId': tier.selectedTierValue.TierId });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === nextTier) {\r\n if (!isClearingTier)\r\n t.Values = vm.TierSetupList;\r\n t.selectedTierValue = null;\r\n }\r\n var tierNoToCheck = ((isClearingTier) ? getTierNo(tier.TierType) : getTierNo(nextTier));\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.Values = [],\r\n t.selectedTierValue = null;\r\n }\r\n });\r\n\r\n if (isClearingTier) {\r\n if (getTierNo(tier.TierType) === 1)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj['Tier1'], 'ParentTierId': 0 });\r\n }\r\n }\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTiersByLocationId(LocationId, callback) {\r\n vm.tierObj = JSON.parse(vm.tier.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n\r\n var TierDetails = {\r\n\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: LocationId,\r\n TierId: 0\r\n };\r\n\r\n CRM_projectLocationSetupService.getAllTierSetup(TierDetails).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj[properties] });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n if (callback)\r\n callback();\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n\r\n function saveNewTierValue(tier) {\r\n var oldTierSelection = [];\r\n tier.IsAdding = ((!(tier.IsAdding) || tier.IsAdding === undefined) ? true : false);\r\n vm.isAddingTier = true;\r\n if (!tier.IsAdding) {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n TierId: 0,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.tier.selectedLocation.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tier.TierValue,\r\n TierName: tier.TierName,\r\n Code:tier.TierCode,\r\n CreatedBy: loggedUser.UserId,\r\n IsActive: 1\r\n }\r\n if (getTierNo(tier.TierType) === 1) {\r\n obj.ParentTierId = 0;\r\n } else {\r\n var parentTier = lodash.find(vm.tierList, function (t) {\r\n return t.TierType === \"Tier\" + (getTierNo(tier.TierType) - 1);\r\n }).selectedTierValue;\r\n\r\n if (parentTier === null || parentTier === undefined) {\r\n $rootScope.showToaster('error', \"You have to select a parent tier\", \"ERROR!\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n return;\r\n } else {\r\n obj.ParentTierId = parentTier.TierId;\r\n }\r\n oldTierSelection = vm.tierList;\r\n }\r\n\r\n CRM_projectLocationSetupService.AddTierSetup(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n $rootScope.showToaster('success', res.data.Message, \"Tier Value\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Tier Value\");\r\n tier.IsAdding = !tier.IsAdding;\r\n }\r\n //Init();\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n // lodash.forEach(vm.tierList, function (t) {\r\n // t.isHideForm = false;\r\n // });\r\n } else {\r\n var tierNoToCheck = getTierNo(tier.TierType);\r\n\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n var currentTier = lodash.find(vm.tierList, { 'TierType': tier.TierType });\r\n vm.TierSetupList = currentTier.Values; // lodash.filter(vm.allTierData, { 'TierName': tier.TierName });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.isHideForm = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function updateTierValue(tierToUpdate) {\r\n var TDtl = {\r\n CompanyId: CompanyId,\r\n TierId: tierToUpdate.TierId,\r\n ProjectId: tierToUpdate.ProjectId,\r\n LocationId: tierToUpdate.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tierToUpdate.TierValue,\r\n TierName: tierToUpdate.TierName,\r\n Code:tierToUpdate.Code,\r\n CreatedBy: loggedUser.UserId,\r\n IsActive: 1\r\n }\r\n // var obj = {\r\n // \"TierId\": tierToUpdate.TierId,\r\n // \"ProjectId\": tierToUpdate.ProjectId,\r\n // \"LocationId\": tierToUpdate.LocationId,\r\n // \"TierValue\": tierToUpdate.TierValue,\r\n // \"TierName\": tierToUpdate.TierName,\r\n // \"IsActive\": tierToUpdate.IsActive,\r\n // \"ModifiedBy\": loggedUser.UserId\r\n // }\r\n CRM_projectLocationSetupService.AddTierSetup(TDtl).then(function (res) {\r\n if (res.status === 200, res.data.IsSuccess) {\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n tierToUpdate.isEdit = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n }\r\n\r\n function removeTierSetup(tierToRemove) {\r\n debugger;\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n var oldTierSelection = vm.tierList;\r\n confirm.result.then(function () {\r\n CRM_projectLocationSetupService.removeTierSetup(tierToRemove.TierId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n });\r\n }\r\n function cancelAdding(tier) {\r\n tier.TierValue = undefined;\r\n tier.IsAdding = false;\r\n vm.isAddingTier = false;\r\n lodash.forEach(vm.tierList, function (t) {\r\n t.isHideForm = false;\r\n });\r\n }\r\n function TileBack() {\r\n \r\n $state.go('CRM_ProjectPropertyInfoTiles', { ProjectId: CRMProjectId,TileId:'TierSetup',SetupType:'Project Setup' });\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingInitiationCtrl', DrawingInitiationCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingInitiationCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CompanyService, projectCreationService, DrawingUpoadService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n //////////////\r\n\r\n //// Draft All List\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.drawing.selectedProject= null;\r\n vm.ProjectList= [];\r\n vm.DrawingUploadList=[];\r\n }\r\n\r\n vm.getDrawingUploadByProjectId = function (ProjectId, callback) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n // CompanyId:CompanyId,\r\n Status: 1,\r\n ActionBy: 1\r\n }\r\n DrawingUpoadService.getDrawingUploadByProjectId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingUploadList = res.data;\r\n for (var i in vm.DrawingUploadList) {\r\n vm.DrawingUploadList[i].DrawingTitle = vm.DrawingUploadList[i].ProjectCode + '-' +\r\n vm.DrawingUploadList[i].DrawingCode + '-' + vm.DrawingUploadList[i].SubjectDrawingCode + '-' + vm.DrawingUploadList[i].TierName + '-' +\r\n vm.DrawingUploadList[i].DrawingTitle + '-' + 'RE' + vm.DrawingUploadList[i].CurrentRevision\r\n }\r\n // console.log(\"vm.DrawingUploadList\" + JSON.stringify(vm.DrawingUploadList))\r\n if (vm.DrawingUploadList.length < 1) {\r\n dialogs.notify('Warning', 'No Drawing Upload available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Drawing Master\");\r\n });\r\n }\r\n\r\n // DrawingUpoadService.GetAllDrawingRevisedDrafts().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingUploadList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Drawing Master\");\r\n // });\r\n\r\n\r\n function Create() {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: true\r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row\r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n Status: 2,\r\n project: row,\r\n isView: true\r\n\r\n };\r\n\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n vm.removeDrawingUpload = function (drawing) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingUpoadService.removeDrawingUpload(drawing.DrawingDocId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Drawing Master\");\r\n vm.getDrawingUploadByProjectId(drawing.ProjectId)\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Master\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingSendForApprovalCtrl', DrawingSendForApprovalCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingSendForApprovalCtrl($http, $rootScope, lodash, dialogs, $state, DrawingUpoadService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n\r\n vm.isDraft = false;\r\n vm.isCorrection = false;\r\n vm.IsRevisionDraft = false;\r\n vm.isRevisionCorrection = false;\r\n\r\n $rootScope.isLogin = false;\r\n vm.drawing = {};\r\n // vm.LoadFromDrawingRevisionDraft = LoadFromDrawingRevisionDraft;\r\n vm.LoadFromDrawingDraft = LoadFromDrawingDraft;\r\n // vm.LoadFromDrawingCorrection = LoadFromDrawingCorrection;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n function LoadFromDrawingDraft(id) {\r\n DrawingUpoadService.GetAllDrawingWaitingForApproval(id).then(function (res) {\r\n // debugger;\r\n if (res.status === 200) {\r\n res.data\r\n for (var i in res.data) {\r\n res.data[i].DrawingTitle = res.data[i].ProjectCode + '-' +\r\n res.data[i].DrawingCode + '-' + res.data[i].SubjectDrawingCode + '-' + res.data[i].TierName + '-' +\r\n res.data[i].DrawingTitle + '-' + 'RE' + res.data[i].CurrentRevision\r\n }\r\n vm.DrawingwaitingForApprovalList = lodash.filter(res.data, { 'Status': 3 });\r\n vm.DrawingpendingApprovalList = lodash.filter(res.data, { 'Status': 2 });\r\n vm.DrawingRevisedwaitingForApprovalList = lodash.filter(res.data, { 'Status': 9 });\r\n vm.DrawingRevisedpendingApprovalList = lodash.filter(res.data, { 'Status': 11 });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('', \"Waiting For Approval\");\r\n });\r\n }\r\n\r\n // function LoadFromDrawingCorrection(id) {\r\n // DrawingUpoadService.GetAllDrawingbackFromCorrection(id).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingpendingApprovalList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Back From Correction\");\r\n // });\r\n // }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n vm.drawing.selectedProject=null;\r\n\r\n }\r\n\r\n // function LoadFromDrawingRevisionDraft(id) {\r\n // DrawingUpoadService.GetAllDrawingRevisionWaitingForApproval(id).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingRevisedwaitingForApprovalList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Waiting For Approval\");\r\n // });\r\n // }\r\n\r\n\r\n // function LoadFromDrawingRevisionCorrection(id) {\r\n // DrawingUpoadService.GetAllDrawingRevisionbackFromCorrection(id).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingRevisedpendingApprovalList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Back From Correction\");\r\n // });\r\n // }\r\n\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row,\r\n // IsRevision: true,\r\n isEditing: true,\r\n Status: row.Status\r\n // isDrawinguploadFormOpen:true,\r\n\r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n\r\n })\r\n\r\n }\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isView: true,\r\n Status: 2,\r\n project: row,\r\n isReject:true,\r\n };\r\n\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.DrawingfromDraft = function () {\r\n LoadFromDrawingDraft();\r\n vm.isFormOpen = true;\r\n vm.isDraft = true;\r\n vm.isCorrection = false;\r\n vm.IsRevisionDraft = false;\r\n vm.isRevisionCorrection = false;\r\n\r\n }\r\n\r\n vm.DrawingfrombackforApproval = function () {\r\n LoadFromDrawingDraft();\r\n vm.isFormOpen = true;\r\n vm.isCorrection = true;\r\n vm.isDraft = false;\r\n vm.IsRevisionDraft = false;\r\n vm.isRevisionCorrection = false;\r\n }\r\n vm.revisionfromDraft = function () {\r\n // debugger;\r\n LoadFromDrawingDraft();\r\n vm.isFormOpen = true;\r\n vm.IsRevisionDraft = true;\r\n vm.isRevisionCorrection = false;\r\n vm.isCorrection = false;\r\n vm.isDraft = false;\r\n\r\n }\r\n\r\n vm.revisionfrombackforApproval = function () {\r\n LoadFromDrawingDraft();\r\n vm.isFormOpen = true;\r\n vm.isRevisionCorrection = true;\r\n vm.IsRevisionDraft = false;\r\n vm.isCorrection = false;\r\n vm.isDraft = false;\r\n\r\n }\r\n\r\n vm.Back = function () {\r\n vm.isFormOpen = false;\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingSubCtrl', DrawingSubCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingSubCtrl($http, $rootScope, lodash, dialogs, DrawingTypeService, AuthenticationService, DrawingSubService, $scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n //vm.SaveDrawingSub = SaveDrawingSub;\r\n vm.DrawingTypeList = {};\r\n var arr = [];\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n $rootScope.isLogin = false;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n function Init() {\r\n //var objdrawing;\r\n // DrawingTypeService.getAllDrawingTypes().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingTypeList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Subject of Drawing\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Subject of Drawing\");\r\n // });\r\n\r\n DrawingSubService.getAllDrawingSub().then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingSubList = res.data;\r\n DrawingTypeService.getAllDrawingTypes().then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subject of Drawing\");\r\n }\r\n });\r\n vm.isLoading = false;\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subject of Drawing\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subject of Drawing\");\r\n });\r\n }\r\n\r\n\r\n vm.Create = function () {\r\n vm.code = true;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n }\r\n vm.clear = function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.drawing = {};\r\n }\r\n\r\n vm.cancel = function () {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.drawing = {};\r\n\r\n });\r\n\r\n\r\n }\r\n vm.resetForm = function () {\r\n vm.DrawingForm.$setUntouched();\r\n }\r\n\r\n vm.editDrawingSub = function (drawing) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.drawing = angular.copy(drawing);\r\n for (var i in vm.DrawingTypeList) {\r\n if (vm.DrawingTypeList[i].DrawingId === vm.drawing.DrawingId) {\r\n vm.drawing.selectedDrawing = vm.DrawingTypeList[i];\r\n }\r\n }\r\n }\r\n\r\n vm.changeActiveDrawingSub = function (drawing) {\r\n var msg = 'Are sure you want to ' + ((drawing.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((drawing.IsActive) ? 'Deactive' : 'Active') + 'Subject of Drawing Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingSubService.changeActiveDrawingSub(drawing.SubjectDrawingId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'InActive Successfully', \"Subject of Drawing\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Type\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Subject of Drawing. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.removeDrawingSub = function (drawing) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingSubService.removeDrawingSub(drawing.SubjectDrawingId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \" Subject of Drawing\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Type\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Subject of Drawing .If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n // Add Drawing Type\r\n vm.SaveDrawingSub = function (objdrawing) {\r\n \r\n\r\n if (!vm.isEditing) {\r\n var objdrawing = {\r\n DrawingId: vm.drawing.selectedDrawing.DrawingId,\r\n SubjectDrawingName: vm.drawing.SubjectDrawingName,\r\n SubjectDrawingCode: vm.drawing.SubjectDrawingCode,\r\n SubjectDrawingId: vm.drawing.SubjectDrawingId,\r\n }\r\n \r\n arr.push(objdrawing);\r\n var objdwgdet = {\r\n SubDetails: arr,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n\r\n DrawingSubService.AddDrawingSub(objdwgdet).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Sub\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Sub\");\r\n }\r\n\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.clear();\r\n arr = [];\r\n } else {\r\n //objdrawing.SubjectDrawingId = vm.drawing.SubjectDrawingId;\r\n\r\n var objdrawing = {\r\n DrawingId: vm.drawing.selectedDrawing.DrawingId,\r\n SubjectDrawingName: vm.drawing.SubjectDrawingName,\r\n SubjectDrawingCode: vm.drawing.SubjectDrawingCode,\r\n SubjectDrawingId: vm.drawing.SubjectDrawingId,\r\n }\r\n arr.push(objdrawing);\r\n var objupdate = {\r\n SubDetails: arr,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n DrawingSubService.editDrawingSub(objupdate).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Sub\");\r\n Init();\r\n \r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Sub\");\r\n }\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n arr = [];\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n vm.clear();\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingTitleCtrl', DrawingTitleCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingTitleCtrl($http, $rootScope, lodash, dialogs, DrawingTypeService, DrawingTitleService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TitleOfDrawingList = {};\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n $rootScope.isLogin = false;\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n //var objdrawing;\r\n DrawingTitleService.getAllDrawingTitle().then(function (res) {\r\n if (res.status === 200) {\r\n vm.TitleOfDrawingList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Title\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Title\");\r\n });\r\n }\r\n vm.Create = function () {\r\n vm.code = true;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.drawing = {};\r\n\r\n }\r\n // vm.cancel = function () {\r\n // vm.isFormOpen = false;\r\n // vm.resetForm();\r\n // vm.drawing = {};\r\n // }\r\n \r\n vm.cancel = function () {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.drawing = {};\r\n\r\n });\r\n\r\n\r\n }\r\n vm.resetForm = function () {\r\n vm.DrawingForm.$setUntouched();\r\n }\r\n\r\n vm.editDrawingTitle = function (drawing) {\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.drawing = angular.copy(drawing);\r\n }\r\n\r\n vm.changeActiveDrawingTitle = function (drawing) {\r\n var msg = 'Are sure you want to ' + ((drawing.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((drawing.IsActive) ? 'Deactive' : 'Active') + 'Drawing Type Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingTitleService.changeActiveDrawingTitle(drawing.DrawingId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'InActive Successfully', \"Drawing Type\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Type\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Labour. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.removeDrawingTitle = function (drawing) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingTitleService.removeDrawingTitle(drawing.DrawingTitleId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \" Drawing Title\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Type\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Labour.If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n // Add Drawing Title\r\n vm.SavedrawingTitle = function (objdrawing) {\r\n\r\n var obj = {\r\n DrawingTitle: objdrawing.DrawingTitle,\r\n DrawingTitleCode: objdrawing.DrawingTitleCode\r\n }\r\n if (!vm.isEditing) {\r\n obj.CreatedBy = 1\r\n DrawingTitleService.AddDrawingTitle(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Type\");\r\n vm.drawing = {};\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Type\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.cancel();\r\n } else {\r\n obj.DrawingTitleId = objdrawing.DrawingTitleId\r\n obj.ModifiedBy = 1\r\n DrawingTitleService.editDrawingTitle(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Type\");\r\n vm.drawing = {};\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Type\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n }\r\n\r\n //vm.cancel();\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingTypeCtrl', DrawingTypeCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingTypeCtrl($http, $rootScope, lodash, dialogs, DrawingTypeService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.DrawingTypeList = {};\r\n vm.drawing = {};\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n $rootScope.isLogin = false;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n vm.mapIoca = mapIoca;\r\n\r\n Init();\r\n\r\n function Init() {\r\n //var objdrawing;\r\n DrawingTypeService.getAllDrawingTypes().then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingTypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Type\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Type\");\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n vm.Create = function () {\r\n vm.code = true;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n \r\n }\r\n\r\n vm.clear = function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.drawing = {};\r\n }\r\n // vm.drawing.type = function(){\r\n // var confirm = dialogs.confirm('Confirmation',\r\n // 'Are you sure to add the {{vm.drawing.DrawingName}} with BOQ', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n\r\n function mapIoca() {\r\n if(!vm.isEditing){\r\n var confirm = dialogs.notify('Confirmation',\r\n 'Are you sure to add the ' + vm.drawing.DrawingName + ' with BOQ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n \r\n }\r\n else{\r\n var confirm = dialogs.notify('Confirmation',\r\n 'Are you sure to add the ' + vm.drawing.DrawingName + ' with BOQ', {\r\n animation: true,\r\n size: 'sm'\r\n }); \r\n }\r\n \r\n }\r\n\r\n vm.cancel = function () {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.drawing = {};\r\n\r\n });\r\n\r\n\r\n }\r\n vm.resetForm = function () {\r\n vm.DrawingForm.$setUntouched();\r\n }\r\n\r\n vm.editDrawingType = function (drawing) {\r\n \r\n\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.drawing = angular.copy(drawing);\r\n vm.drawing.type = angular.copy(drawing.Iocamapping.toString());\r\n\r\n \r\n\r\n }\r\n\r\n // vm.changeActiveDrawingType = function (drawing) {\r\n // var msg = 'Are sure you want to ' + ((drawing.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n // var msg2 = ((drawing.IsActive) ? 'Deactive' : 'Active') + 'Drawing Type Successfully.'\r\n // var confirm = dialogs.confirm('Confirm',\r\n // msg, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // confirm.result.then(function () {\r\n // DrawingTypeService.changeActiveDrawingType(drawing.DrawingId).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'InActive Successfully', \"Drawing Type\");\r\n // Init();\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Drawing Type\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Can't InActive Labour. If its not a parent contact your Admin\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // }, function () {\r\n\r\n // })\r\n // }\r\n\r\n vm.removeDrawingType = function (drawing) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingTypeService.removeDrawingType(drawing.DrawingId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \" Drawing Type\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Type\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Drawing Type.If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n // Add Drawing Type\r\n vm.SavedrawingType = function (objdrawing) {\r\n\r\n var map = (vm.drawing.type != undefined) ? true : false;\r\n var objdrawing = {\r\n DrawingName: vm.drawing.DrawingName,\r\n DrawingCode: vm.drawing.DrawingCode,\r\n Iocamapping: map,\r\n ActionBy: loggedUserDtl.UserId\r\n\r\n }\r\n\r\n if (!vm.isEditing) {\r\n DrawingTypeService.AddDrawingType(objdrawing).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Type\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Type\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.clear();\r\n } else {\r\n\r\n var map = (vm.drawing.type != undefined) ? true : false;\r\n var objdrawing = {\r\n DrawingName: vm.drawing.DrawingName,\r\n DrawingCode: vm.drawing.DrawingCode,\r\n DrawingId: vm.drawing.DrawingId,\r\n Iocamapping: map,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n\r\n DrawingTypeService.editDrawingType(objdrawing).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Type\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Type\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n objdrawing = {};\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n vm.clear();\r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingUpoadCtrl', DrawingUpoadCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingUpoadCtrl($scope, $http, $uibModal, $rootScope, lodash, $state, dialogs, DrawingTypeService, AuthenticationService, DrawingSubService, DrawingUpoadService, ProjectIocaService,\r\n DrawingTitleService, CompanyService, projectCreationService, TierSetupService, LocationSetupService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }];\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormEditing = false;\r\n vm.isFormViewing = false;\r\n //vm.SaveDrawingSub = SaveDrawingSub;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.filterTiers = filterTiers;\r\n vm.editDrawingUpload = editDrawingUpload;\r\n vm.GetDrawingSubByDrawingId = GetDrawingSubByDrawingId;\r\n $scope.formData = new FormData();\r\n //vm.cancel = cancel;\r\n\r\n vm.DrawingTypeList = {};\r\n var arr = [];\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n $rootScope.isLogin = false;\r\n vm.drawing = $state.params.data;\r\n\r\n if ($state.params.data != undefined) {\r\n vm.isAdd = $state.params.data.isAdd;\r\n vm.isEdit = $state.params.data.isEdit;\r\n vm.isView = $state.params.data.isView;\r\n vm.IsRevision = $state.params.data.IsRevision;\r\n vm.IsReviseddrawing = $state.params.data.IsReviseddrawing;\r\n if (vm.isView) {\r\n vm.isFormViewing = true;\r\n vm.isFormEditing = false;\r\n vm.hidesave = true;\r\n\r\n }\r\n if (vm.isAdd) {\r\n vm.isFormEditing = true;\r\n vm.isFormViewing = false;\r\n vm.drawing = {};\r\n vm.isEdit = false;\r\n vm.isView = false;\r\n\r\n } else {\r\n\r\n\r\n // vm.project.NoOfDays = $rootScope.differenceInDays(new Date(vm.project.StartDate), new Date(vm.project.EndDate));\r\n if (vm.isView) {\r\n vm.isFormViewing = true;\r\n vm.isFormEditing = false;\r\n vm.isAdd = false;\r\n vm.isEdit = false;\r\n } else {\r\n vm.isFormViewing = false;\r\n vm.isFormEditing = true;\r\n vm.isAdd = false;\r\n vm.isView = false;\r\n }\r\n }\r\n } else {\r\n //$state.go($rootScope.previousState);\r\n\r\n }\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n\r\n // DrawingUpoadService.GetAllDrawingUpload().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingUpload = res.data;\r\n\r\n // console.log(\"vm.DrawingUpload\" + JSON.stringify(vm.DrawingUpload))\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n // });\r\n\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n if (vm.CompanyList.length > 0) {\r\n if (!vm.isAdd) {\r\n if (vm.drawing != undefined) {\r\n editDrawingUpload(vm.drawing.project);\r\n }\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n\r\n DrawingTypeService.getAllDrawingTypes().then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subject of Drawing\");\r\n }\r\n });\r\n }\r\n\r\n\r\n function getAllDrawingTitle() {\r\n var obj = {\r\n ProjectId: vm.drawing.selectedProject.ProjectId,\r\n TypeId: vm.drawing.selectedDrawing.DrawingId,\r\n SubjectId: vm.drawing.selectedDrawingSub.SubjectDrawingId,\r\n LocationId: vm.drawing.selectedLocation.LocationId,\r\n TierId: vm.Lastid,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n DrawingTitleService.getAllDrawingTitleForUpload(obj).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.DrawingTitleList = res.data;\r\n\r\n // console.log(JSON.stringify(vm.DrawingTitleList))\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Title\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Title\");\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n vm.getDrawingUploadByProjectId = function (ProjectId, callback) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n // CompanyId:CompanyId,\r\n Status: 1,\r\n ActionBy: 1\r\n }\r\n\r\n\r\n DrawingUpoadService.getDrawingUploadByProjectId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingUploadList = res.data;\r\n\r\n\r\n if (vm.DrawingUploadList.length < 1) {\r\n dialogs.notify('Warning', 'No Drawing Upload available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Drawing Master\");\r\n });\r\n getLocationByProject(ProjectId);\r\n }\r\n\r\n\r\n function GetDrawingSubByDrawingId(DrawingId, callback) {\r\n var obj = {\r\n TitleId: DrawingId,\r\n // TitleId:TitleId, \r\n }\r\n DrawingSubService.GetDrawingSubByDrawingId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingSubList = res.data;\r\n if (vm.DrawingSubList.length < 1) {\r\n dialogs.notify('Warning', 'No Subject of Drawing Name available for ' + vm.drawing.selectedDrawing.DrawingName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n function getTiersByLocation(LocationId, ProjectId, callback) {\r\n //clearTierSelection();\r\n if (LocationId) {\r\n vm.tierObj = JSON.parse(vm.drawing.selectedLocation.Tiers);\r\n var tierArr = lodash.keys(vm.tierObj);\r\n vm.maxTier = getMaxTier(tierArr);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n TierSetupService.getAllTierSetup(LocationId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.tierObj[properties]\r\n });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier\r\n });\r\n //loadPowByLocation();\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n vm.PowList = [];\r\n }\r\n }\r\n\r\n function getMaxTier(tierArr) {\r\n var maxTier = tierArr[0];\r\n lodash.forEach(tierArr, function (t) {\r\n if (getTierNo(t) > getTierNo(maxTier))\r\n maxTier = t;\r\n });\r\n return maxTier;\r\n }\r\n\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTierValue) {\r\n var tempTier = \"Tier\" + (parseInt(tier.TierType.substring(4)) + 1);\r\n vm.currentTier = vm.tierObj[tempTier];\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier,\r\n 'ParentTierId': tier.selectedTierValue.TierId\r\n });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === tempTier) {\r\n t.Values = vm.TierSetupList;\r\n }\r\n });\r\n if (tier.TierType === vm.maxTier)\r\n // loadPowByLocation();\r\n vm.Lastid = tier.selectedTierValue.TierId;\r\n vm.tiers = {}\r\n getAllDrawingTitle()\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(ProjectId, callback) {\r\n // clearTierSelection();\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Location\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Location\");\r\n });\r\n }\r\n\r\n\r\n //Change Status\r\n\r\n\r\n vm.reject = function () {\r\n // var drawing = {\r\n // DrawingDocId: vm.drawing.DrawingDocId,\r\n // Status: vm.drawing.Status,\r\n // Note = vm.drawing.note\r\n // }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingUpload/projectDrawingRejection.html',\r\n controller: 'ProjectDrawingRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return vm.drawing;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n //$ctrl.selected = selectedItem;\r\n\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n vm.Revisionreject = function () {\r\n // var drawing = {\r\n // DrawingDocId: vm.drawing.DrawingDocId,\r\n // Status: vm.drawing.Status,\r\n // Note = vm.drawing.note\r\n // }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/DrawingMaster/DrawingUpload/RevisionDrawingRejection.html',\r\n controller: 'RevisionDrawingRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return vm.drawing;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n //$ctrl.selected = selectedItem;\r\n\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n\r\n vm.sendApproval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Send Project For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n\r\n confirm.result.then(function () {\r\n var Note = vm.drawing.note\r\n\r\n DrawingUpoadService.DrawingSendApproval(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Approval Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't send Approval for Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't send Approval for Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.sendRevision = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Send Revision For Approval.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n\r\n // confirm.result.then(function () {\r\n\r\n // var Revision = {\r\n // DrawingDocId: vm.drawing.DrawingDocId,\r\n // ImageUrl: vm.drawing.ImageUrl,\r\n // Note: vm.drawing.Note,\r\n // ModifiedBy: loggedUserDtl.UserId,\r\n // Status: 8\r\n\r\n // }\r\n\r\n confirm.result.then(function () {\r\n var Note = vm.drawing.note\r\n DrawingUpoadService.DrawingRevisionSendApproval(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Revision Approval Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't send Revision Approval for Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't send Revision Approval for Drawing\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.Approval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Approval the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n\r\n var Note = vm.drawing.note\r\n DrawingUpoadService.ApprovedDrawingProject(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Approved Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approved Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Approved Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.sendRevisionApproval = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Revision Approval the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n\r\n var Note = vm.drawing.note\r\n DrawingUpoadService.RevisedApprovedDrawingProject(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Revision Approved Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Approved Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Approved Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.Revised = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Revision the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n\r\n\r\n confirm.result.then(function () {\r\n\r\n var Revision = {\r\n DrawingDocId: vm.drawing.DrawingDocId,\r\n ImageUrl: vm.drawing.ImageUrl,\r\n Note: vm.drawing.Note,\r\n ModifiedBy: loggedUserDtl.UserId,\r\n Status: 9\r\n\r\n }\r\n\r\n // var Note = vm.drawing.note\r\n DrawingUpoadService.RevisedDrawingProject(Revisions).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Revised Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Revised Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Revised Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.ReSubmitted = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Resumit the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var Note = vm.drawing.note\r\n DrawingUpoadService.ReSubmittedDrawingProject(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'ReSubmitted Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Resumitted\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Drawing Resubmitted\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.RevisionReSubmitted = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Resumit the Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var Note = vm.drawing.note\r\n DrawingUpoadService.RevisionReSubmittedDrawingProject(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'ReSubmitted Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Resumitted\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Drawing Resubmitted\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.Block = function () {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to Block the Drawing', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var Note = vm.drawing.note\r\n DrawingUpoadService.BlockedDrawingProject(vm.drawing.DrawingDocId, Note).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Blocked Successfully', \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Blocked\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Drawing Blocked\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.Create = function () {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n }\r\n function clear() {\r\n vm.isEditing = false;\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n vm.cancel = function () {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isEditing = false;\r\n $state.go($rootScope.previousState);\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n function editDrawingUpload(drawing) {\r\n vm.code = false;\r\n vm.DrawingDocId = drawing.DrawingDocId;\r\n vm.Status = drawing.Status;\r\n vm.isEditing = true;\r\n //vm.IsReviseddrawing = false;\r\n // vm.isFormOpen = true;\r\n\r\n vm.isDrawinguploadFormOpen = true;\r\n vm.drawing = angular.copy(drawing);\r\n vm.RevisionNo = drawing.RevisionNo;\r\n vm.drawing.note = angular.copy(drawing.Note);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId === vm.drawing.CompanyId) {\r\n vm.drawing.selectedCompany = vm.CompanyList[i];\r\n\r\n }\r\n }\r\n\r\n getProjectByCompany(vm.drawing.CompanyId, function () {\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === vm.drawing.ProjectId) {\r\n\r\n vm.drawing.selectedProject = vm.ProjectList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n\r\n\r\n for (var i in vm.DrawingTitleList) {\r\n if (vm.DrawingTitleList[i].DrawingTitleId === vm.drawing.TitleId) {\r\n vm.drawing.selectedDrawingTitle = vm.DrawingTitleList[i];\r\n\r\n }\r\n }\r\n\r\n // for(var i in vm.DrawingTitleList){\r\n // if (vm.DrawingTitleList[i].DrawingTitleId === vm.drawing.TitleId){\r\n // vm.drawing.note= vm.DrawingTitleList[i]\r\n // }\r\n // }\r\n\r\n\r\n\r\n for (var i in vm.DrawingTypeList) {\r\n if (vm.DrawingTypeList[i].DrawingId === vm.drawing.TypeId) {\r\n vm.drawing.selectedDrawing = vm.DrawingTypeList[i];\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n GetDrawingSubByDrawingId(vm.drawing.TypeId, function () {\r\n for (var i in vm.DrawingSubList) {\r\n if (vm.DrawingSubList[i].SubjectDrawingId === vm.drawing.SubjectId) {\r\n vm.drawing.selectedDrawingSub = vm.DrawingSubList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n getLocationByProject(vm.drawing.ProjectId, function () {\r\n for (var i in vm.LocationMaster) {\r\n if (vm.LocationMaster[i].LocationId === vm.drawing.LocationId) {\r\n vm.drawing.selectedLocation = vm.LocationMaster[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n getTiersByLocation(vm.drawing.LocationId, function () {\r\n\r\n for (var i in vm.tierList) {\r\n if (vm.tierList[i].TierId === vm.drawing.TierId) {\r\n vm.tier.selectedTierValue = vm.tierList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n\r\n // vm.selectedFile.name = vm.drawing.ImageUrl\r\n\r\n vm.selectedFile = $rootScope.endPoint + '/DrawingUpload/' + selectedFile.name;\r\n\r\n\r\n\r\n // vm.Notebyapprover = vm.drawing.Notebyapprover;\r\n for (var i in vm.drawing) {\r\n vm.drawing.DrawingTitle = vm.drawing.ProjectCode + '-' +\r\n vm.drawing.DrawingCode + '-' + vm.drawing.SubjectDrawingCode + '-' + vm.drawing.TierName + '-' +\r\n vm.drawing.DrawingTitle + '-' + 'RE' + vm.drawing.CurrentRevision\r\n }\r\n\r\n }\r\n\r\n\r\n vm.removeDrawingUpload = function (drawing) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingUpoadService.removeDrawingUpload(drawing.DrawingDocId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Drawing Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Master\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function photoChanged(event) {\r\n vm.Templatefiles = [];\r\n\r\n\r\n vm.Templatefiles = event.target.files[0];\r\n $scope.formData.append('WordDoc', event.target.files[0]);\r\n }\r\n\r\n $scope.today = new Date();\r\n\r\n // Add Drawing Type\r\n vm.SaveDrawingUpload = function (objdrawing) {\r\n if (!vm.isEditing) {\r\n\r\n //var lastTierId = lodash.last(vm.allTierData).selectedTierValue.TierId;\r\n var objdrawing = {\r\n ProjectId: vm.drawing.selectedProject.ProjectId,\r\n TypeId: vm.drawing.selectedDrawing.DrawingId,\r\n SubjectId: vm.drawing.selectedDrawingSub.SubjectDrawingId,\r\n TitleId: vm.drawing.selectedDrawingTitle.DrawingTitleId,\r\n //status: vm.drawing.Status,\r\n ImageUrl: vm.selectedFile.name,\r\n LocationId: vm.drawing.selectedLocation.LocationId,\r\n Note: vm.drawing.note,\r\n //NotebyApprover:vm.drawing.Notebyapprover,\r\n //ApprovedOn:vm.drawing.Date,\r\n RevisionNo: vm.drawing.RevisionNo,\r\n TierId: vm.Lastid,\r\n TierNo: vm.drawing.TierNo,\r\n DrawingHistory: \"\",\r\n CreatedBy: loggedUserDtl.UserId\r\n\r\n }\r\n var formData = new FormData()\r\n formData.append('file', vm.selectedFile)\r\n formData.append('data[0]', JSON.stringify(objdrawing))\r\n formData.append('data[1]', JSON.stringify(loggedUserDtl.UserId))\r\n DrawingUpoadService.AddDrawingUpload(formData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Master\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawig Master\");\r\n }\r\n $state.go($rootScope.previousState);\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n clear();\r\n }\r\n else {\r\n //objdrawing.SubjectDrawingId = vm.drawing.SubjectDrawingId;\r\n\r\n var objdrawing = {\r\n DrawingDocId: vm.DrawingDocId,\r\n // ProjectId: vm.drawing.selectedProject.ProjectId,\r\n // TypeId: vm.drawing.selectedDrawing.DrawingId,\r\n // SubjectId: vm.drawing.selectedDrawingSub.SubjectDrawingId,\r\n // TitleId: vm.drawing.selectedDrawingTitle.DrawingTitleId,\r\n // ImageUrl: vm.selectedFile.name,\r\n //LocationId: vm.drawing.selectedLocation.LocationId,\r\n Note: vm.drawing.note,\r\n ImageUrl: vm.drawing.ImageUrl,\r\n // TierId: vm.Lastid,\r\n // TierNo: vm.drawing.TierNo,\r\n\r\n ModifiedBy: loggedUserDtl.UserId\r\n\r\n }\r\n if (vm.Status == 8) {\r\n objdrawing.Status = 9;\r\n }\r\n var formData = new FormData()\r\n formData.append('file', vm.selectedFile)\r\n formData.append('data', JSON.stringify(objdrawing))\r\n\r\n DrawingUpoadService.UpdateDrawingDoc(formData).then(function (res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Upload\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Upload\");\r\n }\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n $state.go($rootScope.previousState);\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n // else {\r\n // var formData = new FormData()\r\n // formData.append('file', vm.selectedFile)\r\n // formData.append('data', JSON.stringify(objdrawing))\r\n // DrawingUpoadService.editDrawingUpload(formData).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Drawing Upload\");\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Drawing Upload\");\r\n // }\r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // Init();\r\n\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // vm.cancel();\r\n // }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n $scope.fileChanged = function (event) {\r\n if (event)\r\n if (event.target.files.length > 0) {\r\n vm.selectedFile = event.target.files[0];\r\n vm.IsFile = 1;\r\n } else {\r\n vm.IsFile = 0;\r\n }\r\n\r\n }\r\n\r\n\r\n // function clearLocation() {\r\n // vm.LocationMaster = [];\r\n // vm.drawing.selectedLocation = null;\r\n // clearTierSelection();\r\n // }\r\n\r\n // function clearTierSelection() {\r\n // lodash.forEach(vm.tierList, function (tier) {\r\n // tier.selectedTierValue = null;\r\n // // IocaTier.selectedIocatireValue = [];\r\n // })\r\n // }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('ProjectDrawingRejectionCtrl', ProjectDrawingRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectDrawingRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService,DrawingUpoadService, projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n \r\n\r\n vm.SaveDrawingRejection = function () {\r\n var objReject = {\r\n DrawingDocId: items.DrawingDocId,\r\n ProjectId: items.ProjectId,\r\n Status: items.Status,\r\n RejectionNotes: {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n //\"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n\r\n DrawingUpoadService.AddDrawingRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Drawing Master\");\r\n $uibModalInstance.close();\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('RevisionDrawingRejectionCtrl', RevisionDrawingRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function RevisionDrawingRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService,DrawingUpoadService, projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // console.log(\"items\"+JSON.stringify(items))\r\n\r\n vm.SaveRevisionDrawingRejection = function () {\r\n var objReject = {\r\n DrawingDocId: items.DrawingDocId,\r\n ProjectId: items.ProjectId,\r\n Status: items.Status,\r\n RejectionNotes: {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n //\"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n\r\n DrawingUpoadService.AddRevisionDrawingRejectionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Revision Rejection Note Added Successfully', \"Drawing Master\");\r\n $uibModalInstance.close();\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Revision Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Revision Reject Project\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('MapDrawingWithIOCACtrl', MapDrawingWithIOCACtrl);\r\n\r\n /** @ngInject */\r\n function MapDrawingWithIOCACtrl($scope, $http, $uibModal, $rootScope, lodash, $state, dialogs, DrawingTypeService, AuthenticationService, DrawingSubService, DrawingUpoadService, ProjectIocaService,\r\n DrawingTitleService, CompanyService, IocaService, projectCreationService, TierSetupService, LocationSetupService, IOCAMappingService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }];\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormEditing = false;\r\n vm.isFormViewing = false;\r\n vm.getProject = getProject;\r\n vm.GetMapDrawing = GetMapDrawing;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.editIOCADrawingMapping = editIOCADrawingMapping;\r\n\r\n vm.filterTiers = filterTiers;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.GetDrawingSubByDrawingId = GetDrawingSubByDrawingId;\r\n $scope.formData = new FormData();\r\n\r\n\r\n var arr = [];\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n $rootScope.isLogin = false;\r\n\r\n\r\n\r\n Init();\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n function Init() {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n if (vm.CompanyList.length > 0) {\r\n if (!vm.isAdd) {\r\n if (vm.drawing != undefined) {\r\n //editDrawingUpload(vm.drawing.project);\r\n }\r\n }\r\n\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n // IOCAMappingService.getAllIOCADrawingMapping($http, $rootScope).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.materialcategoryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n // });\r\n }\r\n\r\n function GetMapDrawing(ProjectId) {\r\n debugger;\r\n vm.isLoading = true;\r\n IOCAMappingService.getAllIOCADrawingMapping(ProjectId).then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.MapDrawingList = res.data;\r\n for (var i in vm.MapDrawingList) {\r\n vm.MapDrawingList[i].DrawingTitle = vm.MapDrawingList[i].ProjectCode + '-' +\r\n vm.MapDrawingList[i].DrawingCode + '-' + vm.MapDrawingList[i].SubjectDrawingCode + '-' + vm.MapDrawingList[i].TierName + '-' +\r\n vm.MapDrawingList[i].DrawingTitle\r\n }\r\n if (!vm.MapDrawingList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n // console.log(\"Grid\"+JSON.stringify(vm.MapDrawingList))\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Map Drawing With IOCA\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Map Drawing With IOCA\");\r\n });\r\n }\r\n\r\n\r\n function getProject(CompanyId) {\r\n debugger;\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Project available selected Company', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Map Drawing\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Map Drawing\");\r\n });\r\n vm.selectedProject= null;\r\n vm.MapDrawingList=[];\r\n }\r\n\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.ProjectList = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.iocadrawing.selectedProject= null;\r\n vm.ProjectList = [];\r\n vm.iocadrawing.selectedFOC=null;\r\n }\r\n\r\n function getFocByPrjId(prjId, callback) {\r\n // clearFoc();\r\n var isworkAlloc = true;\r\n ProjectIocaService.getAllProjectFoc(prjId, isworkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n GetMapDrawing(prjId);\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n //clearCountry();\r\n if (ProjectId) {\r\n ProjectIocaService.getAllProjectCountry(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId, callback) {\r\n // clearCategory();\r\n if (CountryId && ProjectId && focId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n \r\n }\r\n \r\n vm.iocadrawing.selectedCategory= null;\r\n vm.CategoryList=[];\r\n vm.iocadrawing.selectedSubCategory=null;\r\n vm.iocadrawing.selectedTypeOfCA= null;\r\n vm.selectedSpecType= null;\r\n vm.iocadrawing.selectedIOCA= null;\r\n }\r\n\r\n function getSubcategoryByCategory(ProjectId, CategoryId, callback) {\r\n //clearSubcategory();\r\n if (ProjectId && CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId, callback) {\r\n // clearType();\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n isworkAlloc: true\r\n }\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category Type available selected Sub Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n function loadIocaList(callback) {\r\n // clearIoca();\r\n var obj = {\r\n CountryId: vm.iocadrawing.selectedProject.CountryId,\r\n ProjectId: vm.iocadrawing.selectedProject.ProjectId,\r\n CA_CategoryId: vm.iocadrawing.selectedCategory.CategoryId,\r\n CA_SubCategoryId: vm.iocadrawing.selectedSubCategory.SubCategoryId,\r\n TypeOfCAId: vm.iocadrawing.selectedTypeOfCA.TypeId,\r\n SpecType: vm.selectedSpecType.Code,\r\n isworkAlloc: true\r\n }\r\n IocaService.getAllProjectIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.IocaList = res.data;\r\n // console.log(\"vm.IocaList\" + JSON.stringify(vm.IocaList))\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n\r\n }\r\n\r\n function getAllIOCADrawingType(tierId, locationId, callback) {\r\n debugger;\r\n\r\n var obj = {\r\n ProjectId: vm.iocadrawing.selectedProject.ProjectId,\r\n ProjectIocaId: vm.iocadrawing.selectedIOCA.ProjectIocaId,\r\n LocationId: locationId,\r\n TierId: tierId,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n DrawingTitleService.GetMapDrawingType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingTypeList = res.data;\r\n //console.log(JSON.stringify(vm.DrawingTypeList))\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Type\");\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Type\");\r\n });\r\n }\r\n function GetDrawingSubByDrawingId(callback) {\r\n\r\n var obj = {\r\n ProjectId: vm.iocadrawing.selectedProject.ProjectId,\r\n ProjectIocaId: vm.iocadrawing.selectedIOCA.ProjectIocaId,\r\n LocationId: vm.iocadrawing.selectedLocation.LocationId,\r\n TierId: vm.Lastid,\r\n TypeId: vm.iocadrawing.selectedDrawing.TypeId,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n\r\n DrawingTitleService.GetMapDrawingSubject(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingSubList = res.data;\r\n if (vm.DrawingSubList.length < 1) {\r\n dialogs.notify('Warning', 'No Subject of Drawing Name available for ' + vm.drawing.selectedDrawing.DrawingName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n vm.getMapDrawingTitle = function () {\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.iocadrawing.selectedProject.ProjectId,\r\n ProjectIocaId: vm.iocadrawing.selectedIOCA.ProjectIocaId,\r\n LocationId: vm.iocadrawing.selectedLocation.LocationId,\r\n TierId: vm.Lastid,\r\n TypeId: vm.iocadrawing.selectedDrawing.TypeId,\r\n SubjectDrawingId: vm.iocadrawing.selectedDrawingSub.SubjectDrawingId,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n DrawingTitleService.GetMapDrawingTitle(obj).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.DrawingTitleList = res.data;\r\n\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Title\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Title\");\r\n });\r\n }\r\n\r\n // function GetDrawingTitleBySubjectDrawingId(DrawingId, callback) {\r\n // DrawingSubService.GetDrawingTitleBySubjectDrawingId(DrawingId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TitleOfDrawingList = res.data;\r\n // if (vm.TitleOfDrawingList.length < 1) {\r\n // dialogs.notify('Warning', 'No Subject of Drawing Name available for ' + vm.drawing.selectedDrawing.DrawingName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n\r\n // }\r\n\r\n // });\r\n // }\r\n\r\n function getTiersByLocationId(LocationId, ProjectId, callback) {\r\n debugger;\r\n if (LocationId) {\r\n vm.tierObj = JSON.parse(vm.iocadrawing.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n IOCAId: vm.iocadrawing.selectedIOCA.Id\r\n // MenuId: 104,\r\n // UserId: loggedUserDtl.UserId\r\n }\r\n IOCAMappingService.GetTierDrawingByBoqIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n var iocaTier = res.data[i].result;\r\n }\r\n vm.rawTierListData = JSON.parse(iocaTier).Tiers;\r\n\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n debugger;\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function (t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue = t.TierVal + ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n\r\n // function getTiersByLocationId(LocationId, ProjectId, callback) {\r\n // //clearTierSelection();\r\n // if (LocationId) {\r\n // vm.tierObj = JSON.parse(vm.iocadrawing.selectedLocation.Tiers);\r\n // var tierArr = lodash.keys(vm.tierObj);\r\n // vm.maxTier = getMaxTier(tierArr);\r\n // vm.currentTier = vm.tierObj.Tier1;\r\n // TierSetupService.getAllTierSetup(LocationId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.allTierData = res.data;\r\n // vm.tierList = [];\r\n // for (var properties in vm.tierObj) {\r\n // var temp = {\r\n // TierName: vm.tierObj[properties],\r\n // IsAdding: false,\r\n // TierType: properties\r\n // }\r\n // if (properties === 'Tier1') {\r\n // temp.Values = lodash.filter(vm.allTierData, {\r\n // 'TierName': vm.tierObj[properties]\r\n // });\r\n // }\r\n // vm.tierList.push(temp)\r\n // }\r\n // vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n // 'TierName': vm.currentTier\r\n // });\r\n // //loadPowByLocation();\r\n\r\n // vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n // });\r\n // } else {\r\n // vm.PowList = [];\r\n // }\r\n // }\r\n\r\n function getMaxTier(tierArr) {\r\n debugger;\r\n var maxTier = tierArr[0];\r\n lodash.forEach(tierArr, function (t) {\r\n if (getTierNo(t) > getTierNo(maxTier))\r\n maxTier = t;\r\n });\r\n return maxTier;\r\n }\r\n\r\n function getTierNo(tierString) {\r\n debugger;\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n // set maximum tier for selection by the give tier \r\n function filterTiers(tier) {\r\n debugger;\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierNo\": tempTier\r\n });\r\n // var maxTier = lodash.maxBy(vm.rawTierListData, function (t) {\r\n // return getTierNo(t.TierNo);\r\n // });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function (t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.workOrderIocaList, {\r\n // 'IOCA_Id': vm.selectedWoIOCA.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // return t2.TierId === t1.TierId;\r\n // });\r\n // })\r\n // }\r\n // }\r\n // } \r\n // GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.TierId)\r\n\r\n });\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.Lastid = Arr.join();\r\n getAllIOCADrawingType(vm.Lastid, vm.iocadrawing.selectedLocation.LocationId)\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n\r\n // function filterTiers(tier) {\r\n\r\n // if (tier.selectedTierValue) {\r\n // var tempTier = \"Tier\" + (parseInt(tier.TierType.substring(4)) + 1);\r\n // vm.currentTier = vm.tierObj[tempTier];\r\n // vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n // 'TierName': vm.currentTier,\r\n // 'ParentTierId': tier.selectedTierValue.TierId\r\n // });\r\n // lodash.forEach(vm.tierList, function (t) {\r\n // if (t.TierType === tempTier) {\r\n // t.Values = vm.TierSetupList;\r\n // }\r\n // });\r\n // if (tier.TierType === vm.maxTier)\r\n // // loadPowByLocation();\r\n // {\r\n // vm.Lastid = tier.selectedTierValue.TierId;\r\n // getAllIOCADrawingType(vm.Lastid, vm.iocadrawing.selectedLocation.LocationId)\r\n // }\r\n\r\n // vm.tiers = {}\r\n // }\r\n\r\n // }\r\n\r\n function getLocationByProject(projectId, callback) {\r\n //clearLocation();\r\n var obj = {\r\n ProjectId: projectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n $rootScope.showToaster('info', 'There is no work Location available selected Project', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n if (callback)\r\n callback();\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n }\r\n\r\n vm.Create = function () {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.iocadrawing = {};\r\n vm.selectedSpecType = null;\r\n }\r\n vm.cancel = function () {\r\n // vm.isEditing = false;\r\n vm.isFormOpen = false;\r\n\r\n }\r\n\r\n\r\n function editIOCADrawingMapping(objMapdrawing) {\r\n // console.log(\"objMapdrawing\" + JSON.stringify(objMapdrawing))\r\n //vm.code = false;\r\n\r\n vm.isEditing = true;\r\n //vm.IsReviseddrawing = false;\r\n vm.isFormOpen = true;\r\n\r\n vm.MapDrawingForm = true;\r\n vm.iocadrawing = angular.copy(objMapdrawing);\r\n vm.iocadrawing.notes = vm.iocadrawing.Notes;\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId === vm.iocadrawing.CompanyId) {\r\n vm.iocadrawing.selectedCompany = vm.CompanyList[i];\r\n\r\n }\r\n }\r\n\r\n getProjectByCompany(vm.iocadrawing.CompanyId, function () {\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === vm.iocadrawing.ProjectId) {\r\n\r\n vm.iocadrawing.selectedProject = vm.ProjectList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n getFocByPrjId(vm.iocadrawing.ProjectId, function () {\r\n for (var i in vm.focList) {\r\n if (vm.focList[i].FieldofConstructionId === vm.iocadrawing.FieldofConstructionId) {\r\n\r\n vm.iocadrawing.selectedFOC = vm.focList[i];\r\n\r\n }\r\n }\r\n\r\n })\r\n\r\n getCategoryByProject(vm.iocadrawing.ProjectId, vm.iocadrawing.CountryId, vm.iocadrawing.FieldofConstructionId, function () {\r\n for (var i in vm.CategoryList) {\r\n if (vm.CategoryList[i].CategoryId === vm.iocadrawing.CategoryId) {\r\n\r\n vm.iocadrawing.selectedCategory = vm.CategoryList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n getSubcategoryByCategory(vm.iocadrawing.ProjectId, vm.iocadrawing.CategoryId, function () {\r\n for (var i in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[i].SubCategoryId === vm.iocadrawing.SubCategoryId) {\r\n\r\n vm.iocadrawing.selectedSubCategory = vm.SubCategoryList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n getTypeofCABySubCategory(vm.iocadrawing.ProjectId, vm.iocadrawing.CategoryId, vm.iocadrawing.SubCategoryId, function () {\r\n for (var i in vm.TypeofCAList) {\r\n if (vm.TypeofCAList[i].TypeId === vm.iocadrawing.CATypeId) {\r\n\r\n vm.iocadrawing.selectedTypeOfCA = vm.TypeofCAList[i];\r\n\r\n }\r\n }\r\n })\r\n\r\n for (var i in vm.SpecTypeList) {\r\n if (vm.SpecTypeList[i].Code === vm.iocadrawing.SpecType) {\r\n vm.selectedSpecType = vm.SpecTypeList[i];\r\n\r\n }\r\n }\r\n vm.iocadrawing.selectedProject = {};\r\n vm.iocadrawing.selectedCategory = {};\r\n vm.iocadrawing.selectedSubCategory = {};\r\n vm.iocadrawing.selectedTypeOfCA = {};\r\n vm.iocadrawing.selectedProject.CountryId = vm.iocadrawing.CountryId\r\n vm.iocadrawing.selectedProject.ProjectId = vm.iocadrawing.ProjectId\r\n vm.iocadrawing.selectedCategory.CategoryId = vm.iocadrawing.CategoryId\r\n vm.iocadrawing.selectedSubCategory.SubCategoryId = vm.iocadrawing.SubCategoryId\r\n vm.iocadrawing.selectedTypeOfCA.TypeId = vm.iocadrawing.CATypeId\r\n vm.selectedSpecType.Code = vm.iocadrawing.SpecType\r\n loadIocaList(function () {\r\n for (var i in vm.IocaList) {\r\n if (vm.IocaList[i].ProjectIocaId === vm.iocadrawing.ProjectIocaId) {\r\n vm.iocadrawing.selectedIOCA = vm.IocaList[i];\r\n }\r\n }\r\n })\r\n\r\n\r\n for (var i in vm.DrawingTitleList) {\r\n if (vm.DrawingTitleList[i].DrawingTitleId === vm.iocadrawing.TitleId) {\r\n vm.iocadrawing.selectedDrawingTitle = vm.DrawingTitleList[i];\r\n\r\n }\r\n }\r\n\r\n getAllIOCADrawingType(vm.iocadrawing.TierId, vm.iocadrawing.LocationId, function () {\r\n for (var i in vm.DrawingTypeList) {\r\n if (vm.DrawingTypeList[i].DrawingId === vm.iocadrawing.TypeId) {\r\n vm.iocadrawing.selectedDrawing = vm.DrawingTypeList[i];\r\n }\r\n }\r\n })\r\n\r\n vm.iocadrawing.selectedDrawing = {};\r\n vm.iocadrawing.selectedIOCA = {};\r\n vm.iocadrawing.selectedLocation = {};\r\n vm.iocadrawing.selectedDrawing.DrawingId = vm.iocadrawing.TypeId;\r\n vm.iocadrawing.selectedIOCA.ProjectIocaId = vm.iocadrawing.ProjectIocaId;\r\n vm.iocadrawing.selectedLocation.LocationId = vm.iocadrawing.LocationId;\r\n vm.Lastid = vm.iocadrawing.TierId\r\n\r\n\r\n\r\n GetDrawingSubByDrawingId(vm.iocadrawing.TypeId, function () {\r\n for (var i in vm.DrawingSubList) {\r\n if (vm.DrawingSubList[i].SubjectDrawingId === vm.iocadrawing.SubjectId) {\r\n vm.iocadrawing.selectedDrawingSub = vm.DrawingSubList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n getLocationByProject(vm.iocadrawing.ProjectId, function () {\r\n for (var i in vm.LocationMaster) {\r\n if (vm.LocationMaster[i].LocationId === vm.iocadrawing.LocationId) {\r\n vm.iocadrawing.selectedLocation = vm.LocationMaster[i];\r\n\r\n }\r\n }\r\n });\r\n vm.iocadrawing.selectedLocation = {};\r\n vm.iocadrawing.selectedLocation.Tiers = vm.iocadrawing.Tiers\r\n\r\n getTiersByLocationId(vm.iocadrawing.LocationId, vm.iocadrawing.ProjectId, function () {\r\n\r\n for (var i in vm.tierList) {\r\n if (vm.tierList[i].TierId === vm.iocadrawing.TierId) {\r\n vm.tier.selectedTierValue = vm.tierList[i];\r\n\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n vm.removeIOCADrawingMapping = function (objMapdrawing) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n IOCAMappingService.removeIOCADrawingMapping(objMapdrawing.MapDrawingId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Map Drawing with IOCA\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Map Drawing With IOCA\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n // Add IOCAMappingDrawing Type\r\n vm.SaveMapdrawingIOCA = function (objMapdrawing) {\r\n if (!vm.isEditing) {\r\n\r\n debugger;\r\n //var lastTierId = lodash.last(vm.allTierData).selectedTierValue.TierId;\r\n var objMapdrawing = {\r\n ProjectId: vm.iocadrawing.selectedProject.ProjectId,\r\n TypeId: vm.iocadrawing.selectedDrawing.TypeId,\r\n SubjectId: vm.iocadrawing.selectedDrawingSub.SubjectDrawingId,\r\n TitleId: vm.iocadrawing.selectedDrawingTitle.DrawingTitleId,\r\n DocId: vm.iocadrawing.selectedDrawingTitle.DrawingDocId,\r\n LocationId: vm.iocadrawing.selectedLocation.LocationId,\r\n Notes: vm.iocadrawing.notes,\r\n TierId: vm.Lastid,\r\n TierNo: vm.iocadrawing.TierNo,\r\n IOCA_Id: vm.iocadrawing.selectedIOCA.Id,\r\n FieldofConstructionId: vm.iocadrawing.selectedFOC.FieldofConstructionId,\r\n CategoryId: vm.iocadrawing.selectedCategory.CategoryId,\r\n SubCategoryId: vm.iocadrawing.selectedSubCategory.SubCategoryId,\r\n CATypeId: vm.iocadrawing.selectedTypeOfCA.TypeId,\r\n ProjectIocaId: vm.iocadrawing.selectedIOCA.ProjectIocaId,\r\n CreatedBy: loggedUserDtl.UserId\r\n\r\n }\r\n\r\n // console.log(JSON.stringify(objMapdrawing));\r\n\r\n\r\n IOCAMappingService.AddIOCADrawingMapping(objMapdrawing).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Map Drawing With IOCA\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Map Drawing With IOCA\");\r\n }\r\n vm.iocadrawing = {};\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n var objdrawing = {\r\n CompanyId: CompanyId,\r\n MapDrawingId: vm.iocadrawing.MapDrawingId,\r\n ProjectId: vm.iocadrawing.selectedProject.ProjectId,\r\n TypeId: vm.iocadrawing.selectedDrawing.DrawingId,\r\n SubjectId: vm.iocadrawing.selectedDrawingSub.SubjectDrawingId,\r\n TitleId: vm.iocadrawing.selectedDrawingTitle.DrawingTitleId,\r\n DocId: vm.iocadrawing.selectedDrawingTitle.DrawingDocId,\r\n LocationId: vm.iocadrawing.selectedLocation.LocationId,\r\n Notes: vm.iocadrawing.notes,\r\n TierId: vm.Lastid,\r\n TierNo: vm.iocadrawing.TierNo,\r\n IOCA_Id: vm.iocadrawing.selectedIOCA.Id,\r\n FieldofConstructionId: vm.iocadrawing.selectedFOC.FieldofConstructionId,\r\n CategoryId: vm.iocadrawing.selectedCategory.CategoryId,\r\n SubCategoryId: vm.iocadrawing.selectedSubCategory.SubCategoryId,\r\n CATypeId: vm.iocadrawing.selectedTypeOfCA.TypeId,\r\n ProjectIocaId: vm.iocadrawing.selectedIOCA.ProjectIocaId,\r\n // ProjectId: vm.drawing.selectedProject.ProjectId,\r\n // TypeId: vm.drawing.selectedDrawing.DrawingId,\r\n // SubjectId: vm.drawing.selectedDrawingSub.SubjectDrawingId,\r\n // TitleId: vm.drawing.selectedDrawingTitle.DrawingTitleId,\r\n // ImageUrl: vm.selectedFile.name,\r\n // LocationId: vm.drawing.selectedLocation.LocationId,\r\n // Note: vm.drawing.note,\r\n // TierId: vm.Lastid,\r\n // TierNo: vm.drawing.TierNo,\r\n // DrawingHistory: \"\",\r\n ModifiedBy: loggedUserDtl.UserId\r\n\r\n }\r\n // arr.push(objdrawing);\r\n // var objupdate = {\r\n // SubDetails: arr,\r\n // ActionBy: loggedUserDtl.UserId\r\n // }\r\n IOCAMappingService.editIOCADrawingMapping(objdrawing).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Drawing Sub\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Drawing Sub\");\r\n }\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.iocadrawing = {};\r\n // arr = [];\r\n Init();\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n vm.cancel();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingBackForCorrectionCtrl', DrawingBackForCorrectionCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingBackForCorrectionCtrl($scope, $http, $rootScope, lodash, dialogs, $state, AuthenticationService, CompanyService, projectCreationService, DrawingUpoadService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.Revisionback = false;\r\n vm.back = false;\r\n vm.drawing = {};\r\n vm.GetAlldrawingBackForCorrection = GetAlldrawingBackForCorrection;\r\n // vm.GetAllRevisiondrawingBackForCorrection = GetAllRevisiondrawingBackForCorrection;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.drawing.selectedProject= null;\r\n }\r\n\r\n\r\n\r\n function GetAlldrawingBackForCorrection(id) {\r\n\r\n\r\n DrawingUpoadService.getAllProjectdrawingBackForCorrection(id).then(function (res) {\r\n vm.back = true;\r\n if (res.status === 200) {\r\n vm.DrawingBloackandCorrectionList = res.data;\r\n for (var i in vm.DrawingBloackandCorrectionList) {\r\n vm.DrawingBloackandCorrectionList[i].DrawingTitle = vm.DrawingBloackandCorrectionList[i].ProjectCode + '-' +\r\n vm.DrawingBloackandCorrectionList[i].DrawingCode + '-' + vm.DrawingBloackandCorrectionList[i].SubjectDrawingCode + '-' + vm.DrawingBloackandCorrectionList[i].TierName + '-' +\r\n vm.DrawingBloackandCorrectionList[i].DrawingTitle + '-' + 'RE' + vm.DrawingBloackandCorrectionList[i].CurrentRevision \r\n }\r\n \r\n if (vm.DrawingBloackandCorrectionList.length < 1) {\r\n dialogs.notify('Warning', 'No data available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback(); \r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Master\");\r\n });\r\n }\r\n\r\n // function GetAllRevisiondrawingBackForCorrection(id){\r\n\r\n\r\n // DrawingUpoadService.getAllRevisiondrawingBackForCorrection(id).then(function (res) {\r\n // vm.Revisionback=true;\r\n // if (res.status === 200) {\r\n // vm.RevisionDrawingBloackandCorrectionList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Drawing Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Drawing Master\");\r\n // });\r\n // }\r\n\r\n\r\n\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row,\r\n IsRevision: false,\r\n //IsReviseddrawing:false\r\n \r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n\r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n // isEditing: true,\r\n Status: 2,\r\n project: row,\r\n isView: true,\r\n isBlock:true\r\n };\r\n\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingApprovedCtrl', DrawingApprovedCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingApprovedCtrl($scope, $http, $rootScope,$uibModal, lodash, dialogs, $state, DrawingUpoadService,CompanyService,projectCreationService,AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isFormEditing = false;\r\n vm.isFormViewing = false;\r\n // vm.getDrawingUploadByProjectId = getDrawingUploadByProjectId;\r\n \r\n // vm.isFormOpen = false;\r\n // vm.isEditing = false;\r\n // vm.isLoading = true;\r\n \r\n vm.isDrawinguploadFormOpen = true;\r\n \r\n vm.isDraft = false;\r\n vm.isCorrection = false;\r\n $rootScope.isLogin = false;\r\n vm.drawing = {};\r\n vm.GetDrawingAllApproved =GetDrawingAllApproved;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n \r\n }\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.drawing.selectedProject= null;\r\n }\r\n function GetDrawingAllApproved(id){\r\n DrawingUpoadService.getAllDrawingApproved(id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingApprovedList = res.data; \r\n for (var i in vm.DrawingApprovedList) {\r\n vm.DrawingApprovedList[i].DrawingTitle = vm.DrawingApprovedList[i].ProjectCode + '-' +\r\n vm.DrawingApprovedList[i].DrawingCode + '-' + vm.DrawingApprovedList[i].SubjectDrawingCode + '-' + vm.DrawingApprovedList[i].TierName + '-' +\r\n vm.DrawingApprovedList[i].DrawingTitle + '-' + 'RE' + vm.DrawingApprovedList[i].CurrentRevision\r\n } \r\n if (vm.DrawingApprovedList.length < 1) {\r\n dialogs.notify('Warning', 'No data available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback(); \r\n } \r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n $state.go($rootScope.previousState);\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n vm.getDrawingUploadByProjectId = function (ProjectId, callback) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n // CompanyId:CompanyId,\r\n Status: 1,\r\n ActionBy: 1\r\n }\r\n\r\n console.log(JSON.stringify(obj));\r\n DrawingUpoadService.getDrawingUploadByProjectId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingUploadList = res.data; \r\n // console.log(\"vm.DrawingUploadList\" + JSON.stringify(vm.DrawingUploadList))\r\n if (vm.DrawingUploadList.length < 1) {\r\n dialogs.notify('Warning', 'No Drawing Upload available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Drawing Master\");\r\n });\r\n \r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row,\r\n isAdd: false,\r\n IsRevision: true,\r\n // IsReviseddrawing:true\r\n\r\n // isEditing: true,\r\n // isFormViewing :false\r\n \r\n \r\n \r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n \r\n })\r\n // getDrawingUploadByProjectId()\r\n }\r\n\r\n \r\n vm.rejectnotes = function (row) {\r\n // var drawing = {\r\n // DrawingDocId: vm.drawing.DrawingDocId,\r\n // Status: vm.drawing.Status,\r\n // Note = vm.drawing.note\r\n // }\r\n console.log(\"rrrrrrrrrrrrrrrr\"+JSON.stringify(row));\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/DrawingMaster/ProjectDrawingApproved/drawingSentRevisionNotes.html',\r\n controller: 'DrawingSentRevisionNotesCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return row;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n //$ctrl.selected = selectedItem;\r\n\r\n }, function () {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n vm.Create = function () {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n }\r\n \r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n Status: 2,\r\n project: row,\r\n isView: true\r\n };\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n \r\n \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('DrawingSentRevisionNotesCtrl', DrawingSentRevisionNotesCtrl);\r\n\r\n /** @ngInject */\r\n function DrawingSentRevisionNotesCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService,DrawingUpoadService, projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n console.log(\"items\"+JSON.stringify(items))\r\n\r\n\r\n\r\n vm.SaveDrawingRevision = function () {\r\n var objReject = {\r\n DrawingDocId: items.DrawingDocId,\r\n ProjectId: items.ProjectId,\r\n Status: 1,\r\n RejectionNotes: {\r\n \"Notes\": vm.revision.Notes,\r\n //\"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n //\"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n\r\n DrawingUpoadService.AddRevisionNotes(objReject).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Note Added Successfully', \"Drawing Master\");\r\n $uibModalInstance.close();\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't give Notes\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't give Notes\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n \r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('RevisedDrawingBackForCorrectionCtrl', RevisedDrawingBackForCorrectionCtrl);\r\n\r\n /** @ngInject */\r\n function RevisedDrawingBackForCorrectionCtrl($scope, $http, $rootScope, lodash, dialogs, $state, AuthenticationService,CompanyService,projectCreationService, DrawingUpoadService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n \r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.Revisionback = false;\r\n vm.back = false;\r\n vm.drawing = {};\r\n \r\n vm.GetAllRevisiondrawingBackForCorrection = GetAllRevisiondrawingBackForCorrection;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.drawing.selectedProject= null;\r\n }\r\n\r\n\r\n function GetAllRevisiondrawingBackForCorrection(id){\r\n \r\n DrawingUpoadService.getAllRevisiondrawingBackForCorrection(id).then(function (res) {\r\n vm.Revisionback=true;\r\n if (res.status === 200) {\r\n vm.RevisionDrawingBloackandCorrectionList = res.data;\r\n for (var i in vm.RevisionDrawingBloackandCorrectionList) {\r\n vm.RevisionDrawingBloackandCorrectionList[i].DrawingTitle = vm.RevisionDrawingBloackandCorrectionList[i].ProjectCode + '-' +\r\n vm.RevisionDrawingBloackandCorrectionList[i].DrawingCode + '-' + vm.RevisionDrawingBloackandCorrectionList[i].SubjectDrawingCode + '-' + vm.RevisionDrawingBloackandCorrectionList[i].TierName + '-' +\r\n vm.RevisionDrawingBloackandCorrectionList[i].DrawingTitle + '-' + 'RE' + vm.RevisionDrawingBloackandCorrectionList[i].CurrentRevision\r\n }\r\n if (vm.RevisionDrawingBloackandCorrectionList.length < 1) {\r\n dialogs.notify('Warning', 'No Data available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Drawing Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Drawing Master\");\r\n });\r\n }\r\n \r\n \r\n\r\n \r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row,\r\n IsRevision: false,\r\n //IsReviseddrawing:false\r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n \r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n isEditing: true,\r\n Status: 2,\r\n project: row,\r\n isView: true\r\n };\r\n\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('UploadRevisedProjectDrawingCtrl', UploadRevisedProjectDrawingCtrl);\r\n\r\n /** @ngInject */\r\n function UploadRevisedProjectDrawingCtrl($scope, $http, $rootScope, lodash, dialogs, $state, CompanyService, projectCreationService, DrawingUpoadService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.GetRevisionDrawingUpload =GetRevisionDrawingUpload;\r\n vm.removeRevisionDrawing = removeRevisionDrawing \r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n //////////////\r\n\r\n //// Draft All List\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.drawing.selectedProject= null;\r\n }\r\n\r\n vm.getDrawingUploadByProjectId = function (ProjectId, callback) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n // CompanyId:CompanyId,\r\n Status: 1,\r\n ActionBy: 1\r\n }\r\n DrawingUpoadService.getDrawingUploadByProjectId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingUploadList = res.data;\r\n \r\n if (vm.DrawingUploadList.length < 1) {\r\n dialogs.notify('Warning', 'No Drawing Upload available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Drawing Master\");\r\n }); \r\n }\r\n\r\n // DrawingUpoadService.GetAllDrawingRevisedDrafts().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.DrawingUploadList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Drawing Master\");\r\n // });\r\n\r\n function GetRevisionDrawingUpload(ProjectId){\r\n var obj = {\r\n ProjectId: ProjectId,\r\n // CompanyId:CompanyId,\r\n Status: 8,\r\n ActionBy: 1\r\n }\r\n\r\n DrawingUpoadService.getAllRevisionDrawingUpload(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingRevisionUploadList = res.data;\r\n if (vm.DrawingRevisionUploadList.length < 1) {\r\n dialogs.notify('Warning', 'No Drawing Upload available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n $state.go($rootScope.previousState);\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n // IsRevision: true\r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n var data = {\r\n isEdit: true,\r\n project: row,\r\n // IsRevision:true\r\n }\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.viewProject = function (row) {\r\n var data = {\r\n // isEditing: true,\r\n Status: 2,\r\n project: row,\r\n isView: true,\r\n IsRevision:true\r\n };\r\n\r\n $state.go('drawingUpload', {\r\n data: data\r\n })\r\n }\r\n // vm.removeRevisionDrawing = function (drawing) {\r\n function removeRevisionDrawing(drawing){\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n DrawingUpoadService.removeRevisionDrawing(drawing.DrawingDocId,drawing.RevisionNo).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Drawing Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Drawing Master\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n \r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.DrawingMaster')\r\n .controller('HistoryCtrl', HistoryCtrl);\r\n\r\n /** @ngInject */\r\n function HistoryCtrl($scope, $http, $rootScope, lodash, dialogs, $state, DrawingUpoadService,CompanyService,projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getdrawingrevision=getdrawingrevision;\r\n vm.GetDrawingAllApproved = GetDrawingAllApproved;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n \r\n $rootScope.isLogin = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n \r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n \r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n }\r\n vm.drawing.selectedProject= null;\r\n vm.DrawingApprovedList= [];\r\n }\r\n function GetDrawingAllApproved(id){\r\n DrawingUpoadService.getAllDrawingApproved(id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingApprovedList = res.data; \r\n for (var i in vm.DrawingApprovedList) {\r\n vm.DrawingApprovedList[i].DrawingTitle = vm.DrawingApprovedList[i].ProjectCode + '-' +\r\n vm.DrawingApprovedList[i].DrawingCode + '-' + vm.DrawingApprovedList[i].SubjectDrawingCode + '-' + vm.DrawingApprovedList[i].TierName + '-' +\r\n vm.DrawingApprovedList[i].DrawingTitle + '-' + 'RE' + vm.DrawingApprovedList[i].CurrentRevision\r\n } \r\n\r\n if (vm.DrawingApprovedList.length < 1) {\r\n dialogs.notify('Warning', 'No data available for ' + vm.drawing.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback(); \r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n $state.go($rootScope.previousState);\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n function getdrawingrevision (row){\r\n DrawingUpoadService.GetAllDrawingRevision(row.DrawingDocId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DrawingRevisionList = res.data;\r\n for (var i in vm.DrawingRevisionList) {\r\n vm.DrawingRevisionList[i].DrawingTitle = vm.DrawingRevisionList[i].ProjectCode + '-' +\r\n vm.DrawingRevisionList[i].DrawingCode + '-' + vm.DrawingRevisionList[i].SubjectDrawingCode + '-' + vm.DrawingRevisionList[i].TierName + '-' +\r\n vm.DrawingRevisionList[i].DrawingTitle + '-' + 'RE' + vm.DrawingRevisionList[i].CurrentRevision\r\n } \r\n vm.showHistory = true;\r\n //console.log(\"vm.DrawingRevisionList\" + JSON.stringify(vm.DrawingUpload))\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n\r\n }\r\n\r\n vm.Create = function () {\r\n \r\n vm.isEditing = false;\r\n vm.isDrawinguploadFormOpen = true;\r\n vm.tableopen = false;\r\n\r\n }\r\n vm.cancel = function () {\r\n vm.isFormOpen = false;\r\n vm.isDrawinguploadFormOpen = false;\r\n vm.resetForm();\r\n vm.drawing = {};\r\n }\r\n // vm.resetForm = function () {\r\n // vm.DrawingForm.$setUntouched();\r\n // }\r\n\r\n // vm.viewProject = function (row) {\r\n // var data = {\r\n // isEditing: true,\r\n // StatesId: 2,\r\n // project: row,\r\n // isView: true\r\n // };\r\n // $state.go('projectCreation', {\r\n // data: data\r\n // })\r\n // }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_DetailsSetup')\r\n .controller('Enterprise_DetailsSetupCtrl', Enterprise_DetailsSetupCtrl);\r\n\r\n /** @ngInject */\r\n function Enterprise_DetailsSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, Enterprise_DetailsService, CRM_ProjectPropertyViewService, Enterprise_LocationSetupService, CRM_projectInitiationService, projectDetailsSetupService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.isLoadApartmentType = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n vm.isShowHeader = true;\r\n\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n $rootScope.isLogin = false;\r\n vm.Backbutton = Backbutton;\r\n\r\n vm.LoadLocations = LoadLocations;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n vm.Cancel = Cancel;\r\n vm.Create = Create;\r\n vm.EditProjectNew = EditProjectNew;\r\n\r\n\r\n vm.TileBack = TileBack;\r\n vm.TileBackRefresh = TileBackRefresh;\r\n vm.buttonhide = true;\r\n // vm.buttonhide1 = false;\r\n vm.Project = {};\r\n vm.DeleteProject = DeleteProject;\r\n\r\n vm.AllRequiredDetails = [];\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n vm.UnSavedTiers = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n // var CRMProjectId = 13;\r\n var CRMProjectId = AuthenticationService.getLoggedUserDetails().CRMProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata1).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ProjectList = res1.data;\r\n\r\n LoadLocations(CRMProjectId);\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata2).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.SelectedProjectDetails = res2.data;\r\n\r\n // vm.CRMReqFileList = JSON.parse(vm.SelectedProjectDetails[0].CRMRequiredFiles);\r\n\r\n var inputdata3 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Condition: 'KPostIdRead'\r\n };\r\n\r\n Enterprise_DetailsService.GetEnterpriseProjectDetailsRead(inputdata3).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.ApprovalDetailList = res3.data;\r\n\r\n var inputdata4 = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllPriceApprovedProjects_ForTiles(inputdata4).then(function (res4) {\r\n if (res4.status === 200) {\r\n vm.ProjectPropertyList = res4.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.header = TitleHeader;\r\n vm.Project = {};\r\n\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n // var ReqDetails = '';\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n // vm.ReqFileList = JSON.parse(vm.ProjectList[i].CRMRequiredFiles);\r\n // }\r\n // }\r\n\r\n Enterprise_LocationSetupService.GetAllEnterpriseLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n if (vm.LocationList.length > 0) {\r\n vm.Project.selectedLocation = vm.LocationList[0];\r\n LoadTiers(vm.Project.selectedLocation.LocationId);\r\n }\r\n vm.isLoading = false;\r\n // vm.isParkingTiers = true;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n\r\n function TileBack(Details) {\r\n if (Details == 'MainTile') {\r\n vm.header = 'Project Property Info';\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = false;\r\n // vm.buttonhide=false;\r\n // vm.buttonhide1 = false;\r\n }\r\n else if (Details == 'SetupTile') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n vm.isProjectDetails = false;\r\n vm.isFormOpen = false;\r\n // vm.buttonhide1 = false;\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n Enterprise_DetailsService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n\r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n Enterprise_DetailsService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n var iDesc = '';\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null; \r\n }\r\n\r\n if (vm.BasicLocationList[i].selectedTier != undefined && i == (vm.BasicLocationList.length - 1)) {\r\n for (var j in vm.BasicLocationList) {\r\n iCode = iCode + (vm.BasicLocationList[j].selectedTier.Code == undefined ? '' : vm.BasicLocationList[j].selectedTier.Code);\r\n iDesc = iDesc + (vm.BasicLocationList[j].selectedTier.TierValue == undefined ? '' : vm.BasicLocationList[j].selectedTier.TierValue) + '/';\r\n }\r\n }\r\n }\r\n\r\n if (iDesc.length > 0) {\r\n iDesc = iDesc.substr(0, iDesc.length - 1);\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n vm.Project.ShortDesc = iDesc;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n }\r\n }\r\n\r\n function EditProjectNew(row) {\r\n\r\n\r\n vm.isEditing = true;\r\n vm.Project = {};\r\n vm.Project = angular.copy(row);\r\n\r\n // if (vm.Project.IsInternet == 1)\r\n // vm.Project.IsInternet = true;\r\n // else\r\n // vm.Project.IsInternet = false;\r\n\r\n // if (vm.Project.Intranet == 1)\r\n // vm.Project.Intranet = true;\r\n // else\r\n // vm.Project.Intranet = false;\r\n\r\n vm.isFormOpen = false\r\n }\r\n\r\n function SaveProjectDetailsSetup_New() {\r\n\r\n var iEntId = 0;\r\n if (vm.isEditing)\r\n iEntId = vm.Project.Id;\r\n\r\n var IsInternet = 0;\r\n if (vm.Project.IsInternet)\r\n IsInternet = 1;\r\n\r\n var Intranet = 0;\r\n if (vm.Project.Intranet)\r\n Intranet = 1;\r\n\r\n\r\n var iLocationDetails = {};\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].selectedTier) {\r\n iLocationDetails[\"Tier\" + (parseInt(i) + 1)] = vm.BasicLocationList[i].selectedTier.TierId;\r\n }\r\n }\r\n\r\n var inputData = {\r\n\r\n Id: iEntId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n KpostId: vm.Project.Code + '@kpost.in',\r\n ShortDesc: vm.Project.ShortDesc,\r\n LocationDetails: JSON.stringify(iLocationDetails),\r\n EmployeeId: 0,\r\n DepartmentId: 0,\r\n DesignationId: 0,\r\n Condition: 'KPostIdUpdate',\r\n IsInternet: IsInternet,\r\n IsIntranet: Intranet,\r\n Process: 'Save',\r\n CreatedBy: loggeduser.UserId,\r\n }\r\n\r\n Enterprise_DetailsService.EnterpriseSaveProjectDetailsSetup(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n $rootScope.showToaster('success', res.data.Message, \"EnterPrise Project Details Setup\");\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"EnterPrise Project Details Setup\");\r\n vm.isFormOpen = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function Cancel() {\r\n vm.Project = {};\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n vm.isShowHeader = true;\r\n vm.isLoadTiers = false;\r\n vm.isLoadApartmentType = false;\r\n // vm.isFormOpen = false;\r\n // vm.location = {};\r\n // vm.tiers = [];\r\n\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n\r\n // Init();\r\n }\r\n\r\n function DeleteProject(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n SetupId: row.SetupId,\r\n Process: 'Delete',\r\n };\r\n\r\n var formData = new FormData();\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Details Setup\");\r\n Init();\r\n Cancel();\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n vm.buttonhide = false;\r\n vm.Project = {};\r\n vm.isLoadTiers = false;\r\n vm.isLoadApartmentType = false;\r\n vm.ParkingBasicLocationList = [];\r\n\r\n LoadLocations(CRMProjectId);\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n vm.isEditing = true;\r\n // debugger;\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = true;\r\n\r\n LoadLocations(CRMProjectId, function () {\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var areadetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n for (var i in vm.AllRequiredDetails.Fields) {\r\n if (vm.AllRequiredDetails.Fields[i].Type == 'DDL') {\r\n\r\n }\r\n else if (vm.AllRequiredDetails.Fields[i].Type == 'TXT') {\r\n vm.AllRequiredDetails.Fields[i].Values = areadetails[vm.AllRequiredDetails.Fields[i].Label];\r\n }\r\n }\r\n\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n for (var i in vm.BasicLocationList.NewLocation) {\r\n if (vm.BasicLocationList.NewLocation[i].TierId === allSelectLocations[i].Values[0].TierId) {\r\n labels.selectedTier = vm.BasicLocationList.NewLocation[i];\r\n // for (var j in allSelectLocations) {\r\n // LoadInnerLocations(allSelectLocations[j].Values[0].TierId);\r\n\r\n // }\r\n }\r\n }\r\n }\r\n // LoadInnerLocations();\r\n // LoadInnerLocations(labels.selectedTier.TierId)\r\n });\r\n\r\n\r\n var parkDetails = JSON.parse(vm.Project.ParkingTierDetails);\r\n for (var i in vm.ParkingTiers) {\r\n if (vm.ParkingTiers[i].TierId === parkDetails.TierId) {\r\n vm.Project.selectedParkingTier = vm.ParkingTiers[i];\r\n }\r\n }\r\n }\r\n });\r\n //vm.ProjectDetails.selectedLocation\r\n\r\n\r\n }\r\n\r\n\r\n function TileBackRefresh() {\r\n vm.isLoadTiers = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n // vm.buttonhide=ture;\r\n // vm.buttonhide1=false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n Init();\r\n // $state.go('CRM_projectDetailsSetup');\r\n }\r\n\r\n function Backbutton() {\r\n\r\n $state.go('Enterprise_SetupTiles', { ProjectId: CRMProjectId, isProjectTile: false, isItemTile: true, isButtonShow: true });\r\n }\r\n\r\n vm.savePrjDoc = function () {\r\n\r\n if (!vm.isEditing) {\r\n var isExist = false;\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.Project.selectedCRMFileType != undefined) {\r\n if (vm.selectedProjectFileList[i].key === vm.Project.selectedCRMFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.selectedPrjFile != undefined) {\r\n vm.selectedProjectFileList.push({\r\n key: vm.Project.selectedCRMFileType.Key,\r\n selectedFile: vm.selectedPrjFile\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! File not selected', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n }\r\n else {\r\n var isExist = false;\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.Project.selectedProjectFileList != undefined) {\r\n if (vm.selectedProjectFileList[i].key === vm.Project.selectedCRMFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_EmployeeMapping')\r\n .controller('Enterprise_EmployeeMappingCtrl', Enterprise_EmployeeMappingCtrl);\r\n\r\n /** @ngInject */\r\n function Enterprise_EmployeeMappingCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $window, Enterprise_DetailsService, DesignationService, DepartmentServices, EmployeeService, CRM_ProjectPropertyViewService, Enterprise_LocationSetupService, CRM_projectInitiationService, projectDetailsSetupService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoadTiers = false;\r\n vm.isLoadParkingTiers = false;\r\n vm.isLoadApartmentType = false;\r\n vm.isRequiredDetails = false;\r\n\r\n\r\n vm.isFormOpen = true;\r\n\r\n\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n $rootScope.isLogin = false;\r\n vm.Backbutton = Backbutton;\r\n\r\n vm.LoadLocations = LoadLocations;\r\n vm.LoadTiers = LoadTiers;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n vm.Cancel = Cancel;\r\n vm.Create = Create;\r\n vm.LoadKpostId = LoadKpostId;\r\n vm.PassDataToKPost = PassDataToKPost;\r\n // vm.EditProjectNew = EditProjectNew;\r\n\r\n\r\n vm.TileBack = TileBack;\r\n vm.TileBackRefresh = TileBackRefresh;\r\n vm.buttonhide = true;\r\n // vm.buttonhide1 = false;\r\n vm.Project = {};\r\n vm.DeleteProject = DeleteProject;\r\n\r\n vm.AllRequiredDetails = [];\r\n vm.selectedProjectFileList = [];\r\n vm.selectedParkFileList = [];\r\n vm.UnSavedTiers = [];\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n // var CRMProjectId = 13;\r\n var CRMProjectId = AuthenticationService.getLoggedUserDetails().CRMProjectId;\r\n var TitleHeader = $state.params.Header;\r\n vm.departmentSelectionChanged = departmentSelectionChanged;\r\n vm.designationSelectionChanged = designationSelectionChanged;\r\n\r\n\r\n Init();\r\n function Init() {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: 0\r\n };\r\n\r\n CRM_projectInitiationService.GetAllProjects(inputdata1).then(function (res1) {\r\n if (res1.status === 200) {\r\n vm.ProjectList = res1.data;\r\n LoadLocations(CRMProjectId);\r\n\r\n var inputdata2 = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n CRM_projectInitiationService.ApprovedProjects(inputdata2).then(function (res2) {\r\n if (res2.status === 200) {\r\n vm.SelectedProjectDetails = res2.data;\r\n\r\n // vm.CRMReqFileList = JSON.parse(vm.SelectedProjectDetails[0].CRMRequiredFiles);\r\n\r\n var inputdata3 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Condition: 'EmployeeMappingRead'\r\n };\r\n\r\n Enterprise_DetailsService.GetEnterpriseProjectDetailsRead(inputdata3).then(function (res3) {\r\n if (res3.status === 200) {\r\n vm.ApprovalDetailList = res3.data;\r\n\r\n var inputdata4 = {\r\n CompanyId: CompanyId,\r\n SelectFor: 'Rate',\r\n Status: '4'\r\n };\r\n\r\n CRM_ProjectPropertyViewService.GetAllPriceApprovedProjects_ForTiles(inputdata4).then(function (res4) {\r\n if (res4.status === 200) {\r\n vm.ProjectPropertyList = res4.data;\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Role\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Can't connect the server! Try Again\", \"Role\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n vm.header = TitleHeader;\r\n vm.Project = {};\r\n\r\n\r\n projectDetailsSetupService.ReadUnitMaster('Area').then(function (res) {\r\n if (res.status === 200) {\r\n vm.UnitList = res.data;\r\n\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function departmentSelectionChanged(iDepartmentId) {\r\n\r\n vm.DesignationList = [];\r\n vm.EmpList = [];\r\n\r\n vm.Project.selectedDesignation = null;\r\n vm.Project.selectedEmployee = null;\r\n\r\n if (iDepartmentId != undefined) {\r\n DesignationService.GetDesigByDepId(iDepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't connect the server! Try Again\", \"Create User\");\r\n });\r\n }\r\n }\r\n\r\n function designationSelectionChanged(iDesignationId) {\r\n\r\n vm.EmpList = [];\r\n vm.Project.selectedEmployee = null;\r\n\r\n if (iDesignationId != undefined) {\r\n\r\n var inputdataPrj = {\r\n CompanyId: CompanyId,\r\n DepartmentId: vm.Project.selectedDepartment.DepartmentId,\r\n DesignationId: iDesignationId\r\n };\r\n\r\n\r\n\r\n Enterprise_DetailsService.ReadEmployees(inputdataPrj).then(function (res) {\r\n vm.EmpList = res.data;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n }\r\n\r\n function LoadLocations(iProjectId, callback) {\r\n\r\n if (iProjectId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: iProjectId\r\n };\r\n\r\n // var ReqDetails = '';\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n // ReqDetails = vm.ProjectList[i].RequiredDetails;\r\n // vm.ReqFileList = JSON.parse(vm.ProjectList[i].CRMRequiredFiles);\r\n // }\r\n // }\r\n\r\n Enterprise_LocationSetupService.GetAllEnterpriseLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n if (vm.LocationList.length > 0) {\r\n vm.Project.selectedLocation = vm.LocationList[0];\r\n LoadTiers(vm.Project.selectedLocation.LocationId);\r\n }\r\n vm.isLoading = false;\r\n vm.isParkingTiers = true;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.LocationList = [];\r\n }\r\n }\r\n\r\n function TileBack(Details) {\r\n if (Details == 'MainTile') {\r\n vm.header = 'Project Property Info';\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = false;\r\n // vm.buttonhide=false;\r\n // vm.buttonhide1 = false;\r\n }\r\n else if (Details == 'SetupTile') {\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = true;\r\n vm.isProjectDetails = false;\r\n vm.isFormOpen = false;\r\n // vm.buttonhide1 = false;\r\n\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: 0\r\n };\r\n\r\n Enterprise_DetailsService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.ApartmentList = [];\r\n vm.isLoadApartmentType = false;\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n\r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId\r\n };\r\n\r\n Enterprise_DetailsService.TiersBasicLocation(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.NewBasicLocationList = res.data;\r\n var iCode = '';\r\n var iDesc = '';\r\n var islastTier = false;\r\n\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n //vm.ProjectDetails.selectedTier[i] = null; \r\n }\r\n\r\n if (vm.BasicLocationList[i].selectedTier != undefined && i == (vm.BasicLocationList.length - 1)) {\r\n for (var j in vm.BasicLocationList) {\r\n\r\n iCode = iCode + (vm.BasicLocationList[j].selectedTier.Code == undefined ? '' : vm.BasicLocationList[j].selectedTier.Code);\r\n\r\n if (j == vm.NewBasicLocationList.length - 1 && vm.Project.selectedEmployee != undefined) {\r\n\r\n var inputdata3 = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n Condition: 'KPostIdRead'\r\n };\r\n\r\n Enterprise_DetailsService.GetEnterpriseProjectDetailsRead(inputdata3).then(function (res3) {\r\n if (res3.status === 200) {\r\n var ApprovedList = res3.data;\r\n\r\n var shtdesc = lodash.filter(ApprovedList, { 'TierId': vm.BasicLocationList[j].selectedTier.TierId });\r\n iDesc = shtdesc[0].ShortDesc;\r\n iDesc = iDesc + '/' + vm.Project.selectedEmployee.FirstName;\r\n\r\n vm.Project.ShortDesc = iDesc;\r\n\r\n // islastTier = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n }\r\n }\r\n\r\n // if (islastTier) {\r\n // iDesc = iDesc + vm.Project.selectedEmployee.FirstName;\r\n // }\r\n // else {\r\n // if (iDesc.length > 0) {\r\n // iDesc = iDesc.substr(0, iDesc.length - 1);\r\n // }\r\n // }\r\n\r\n // vm.Project.Code = iCode;\r\n // vm.Project.ShortDesc = iDesc;\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n else {\r\n vm.Project.selectedLocation = null;\r\n vm.BasicLocationList = [];\r\n vm.Project.Code = '';\r\n vm.Project.ParkingCode = '';\r\n }\r\n }\r\n\r\n\r\n function SaveProjectDetailsSetup_New() {\r\n\r\n var iEntId = 1;\r\n // if (vm.isEditing)\r\n // iEntId = vm.Project.Id;\r\n\r\n var inputData = {\r\n Id: iEntId,\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.selectedLocation.LocationId,\r\n TierId: vm.BasicLocationList[vm.BasicLocationList.length - 1].selectedTier.TierId,\r\n KpostId: vm.Project.Code + '@kpost.in',\r\n LocationDetails: '',\r\n ShortDesc: vm.Project.ShortDesc,\r\n DepartmentId: vm.Project.selectedDepartment.DepartmentId,\r\n DesignationId: vm.Project.selectedDesignation.DesignationId,\r\n EmployeeId: vm.Project.selectedEmployee.EmployeeId,\r\n Condition: 'EmployeeMappingSave',\r\n Process: 'Save',\r\n CreatedBy: loggeduser.UserId,\r\n }\r\n\r\n Enterprise_DetailsService.EnterpriseSaveProjectDetailsSetup(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n\r\n PassDataToKPost();\r\n\r\n // vm.isEditing = false;\r\n // vm.isProjectTile = false;\r\n // vm.isSetupTile = false;\r\n // vm.isProjectDetails = true;\r\n // vm.isGridShow = true;\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"EnterPrise Employee Mapping\");\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"EnterPrise Employee Mapping\");\r\n vm.isFormOpen = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n\r\n function PassDataToKPost(callback) {\r\n\r\n var shrtdsc = vm.Project.ShortDesc.replace(vm.Project.selectedEmployee.FirstName, '');\r\n shrtdsc = shrtdsc.substring(0, shrtdsc.length - 1);\r\n\r\n // $scope.SendData = function () {\r\n var PassingData = new Object();\r\n PassingData.kpostID = vm.Project.Code;\r\n PassingData.firstName = shrtdsc;\r\n PassingData.lastName = vm.Project.ShortDesc;\r\n PassingData.mobileNumber = '9790702899';\r\n PassingData.gender = 'Male';\r\n PassingData.dateOfBirth = '1982-05-04';\r\n PassingData.createdBy = loggeduser.UserId;\r\n PassingData.createdDate = '2018-05-04';\r\n PassingData.email = vm.Project.Code + '@kpost.in';\r\n PassingData.activeStatus = 'Yes';\r\n\r\n $http({\r\n // url: $rootScope.endPoint +'/EnterpriseGroupCreation/GetKPostIdDetails?KPostId=\"'+vm.Project.Code+'\"&EmailId=\"'+iEmailId+'\"&FirstName=\"'+shrtdsc+'\"&LastName=\"'+vm.Project.ShortDesc+'\"&CreatedBy='+loggeduser.UserId.toString()+'&ActiveStatus=\"Yes\"',\r\n url: $rootScope.endPoint + '/EnterpriseGroupCreation/GetKPostIdDetails',\r\n dataType: 'json',\r\n method: 'POST',\r\n data: PassingData,\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }).success(function (response) {\r\n $scope.value = response;\r\n })\r\n .error(function (error) {\r\n alert(error);\r\n });\r\n // }\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n\r\n function Cancel() {\r\n vm.Project = {};\r\n vm.isFormOpen = true;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isGridShow = true;\r\n vm.isShowHeader = true;\r\n vm.isLoadTiers = false;\r\n vm.isLoadApartmentType = false;\r\n // vm.isFormOpen = false;\r\n // vm.location = {};\r\n // vm.tiers = [];\r\n\r\n\r\n\r\n // Init();\r\n }\r\n\r\n function DeleteProject(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n SetupId: row.SetupId,\r\n Process: 'Delete',\r\n };\r\n\r\n var formData = new FormData();\r\n formData.append(\"inputdata\", JSON.stringify(inputData));\r\n\r\n projectDetailsSetupService.SaveProjectDetailsSetup_New(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Details Setup\");\r\n Init();\r\n Cancel();\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function LoadKpostId(iEmpId) {\r\n\r\n var a = vm.BasicLocationList.length - 1;\r\n\r\n if (iEmpId != undefined && vm.BasicLocationList[a].selectedTier != undefined) {\r\n\r\n\r\n LoadInnerLocations(vm.BasicLocationList[a].selectedTier.TierId);\r\n\r\n }\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n vm.buttonhide = false;\r\n vm.Project = {};\r\n LoadLocations(CRMProjectId);\r\n vm.isLoadTiers = false;\r\n vm.isLoadApartmentType = false;\r\n vm.ParkingBasicLocationList = [];\r\n }\r\n\r\n vm.EditProject = function (row) {\r\n vm.isEditing = true;\r\n // debugger;\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = true;\r\n\r\n LoadLocations(CRMProjectId, function () {\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var areadetails = JSON.parse(vm.Project.AreaUnits);\r\n\r\n for (var i in vm.AllRequiredDetails.Fields) {\r\n if (vm.AllRequiredDetails.Fields[i].Type == 'DDL') {\r\n\r\n }\r\n else if (vm.AllRequiredDetails.Fields[i].Type == 'TXT') {\r\n vm.AllRequiredDetails.Fields[i].Values = areadetails[vm.AllRequiredDetails.Fields[i].Label];\r\n }\r\n }\r\n\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n for (var i in vm.BasicLocationList.NewLocation) {\r\n if (vm.BasicLocationList.NewLocation[i].TierId === allSelectLocations[i].Values[0].TierId) {\r\n labels.selectedTier = vm.BasicLocationList.NewLocation[i];\r\n // for (var j in allSelectLocations) {\r\n // LoadInnerLocations(allSelectLocations[j].Values[0].TierId);\r\n\r\n // }\r\n }\r\n }\r\n }\r\n // LoadInnerLocations();\r\n // LoadInnerLocations(labels.selectedTier.TierId)\r\n });\r\n\r\n\r\n var parkDetails = JSON.parse(vm.Project.ParkingTierDetails);\r\n for (var i in vm.ParkingTiers) {\r\n if (vm.ParkingTiers[i].TierId === parkDetails.TierId) {\r\n vm.Project.selectedParkingTier = vm.ParkingTiers[i];\r\n }\r\n }\r\n }\r\n });\r\n //vm.ProjectDetails.selectedLocation\r\n\r\n\r\n }\r\n\r\n function EditProjectNew(row) {\r\n\r\n vm.isEditing = true;\r\n vm.Project = {};\r\n vm.Project = angular.copy(row);\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = false;\r\n vm.isSetupTile = false;\r\n vm.isProjectDetails = true;\r\n vm.isTierSetupTile = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n vm.buttonhide = false;\r\n\r\n if (vm.LocationList) {\r\n for (var i in vm.LocationList) {\r\n if (vm.LocationList[i].LocationId === vm.Project.LocationId) {\r\n vm.Project.selectedLocation = vm.LocationList[i];\r\n }\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.LocationId,\r\n ApprovalFor: 'Location',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedLocTierDetails = res.data;\r\n var allSelectLocations = JSON.parse(vm.Project.LocationDetails);\r\n LoadTiers(vm.Project.selectedLocation.LocationId, function () {\r\n if (vm.BasicLocationList) {\r\n var iCode = '';\r\n for (var i in vm.BasicLocationList) {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.SavedLocTierDetails[i].TierValue);\r\n for (var j in vm.BasicLocationList[i].NewLocation) {\r\n if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i) + 1)]) {\r\n // if (vm.BasicLocationList[i].NewLocation[j].TierId == allSelectLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.BasicLocationList[i].selectedTier = vm.BasicLocationList[i].NewLocation[j];\r\n }\r\n }\r\n if (vm.BasicLocationList[i].selectedTier != undefined)\r\n iCode = iCode + (vm.BasicLocationList[i].selectedTier.Code == undefined ? '' : vm.BasicLocationList[i].selectedTier.Code);\r\n }\r\n\r\n vm.Project.Code = iCode;\r\n\r\n for (var i in vm.ApartmentList) {\r\n if (vm.ApartmentList[i].Id == vm.Project.PropertyTypeId) {\r\n vm.Project.selectedApartment = vm.ApartmentList[i];\r\n\r\n if (vm.Project.selectedApartment.IsParking == 'Yes') {\r\n LoadParkingLocations(vm.ApartmentList[i].IsParking);\r\n\r\n for (var a in vm.ParkingLocationList) {\r\n if (vm.ParkingLocationList[a].LocationId == vm.Project.ParkingLocationId) {\r\n vm.Project.selectedParkingLocation = vm.ParkingLocationList[a];\r\n var Parkinputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.Project.ParkingLocationId,\r\n ApprovalFor: 'Parking',\r\n TierId: row.TierId,\r\n };\r\n\r\n projectDetailsSetupService.GetSavedProjectDetailsTierValues(Parkinputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SavedParkTierDetails = res.data;\r\n var allSelectParkLocations = JSON.parse(vm.Project.ParkingLocationDetails);\r\n LoadParkingTiers(vm.Project.ParkingLocationId, function () {\r\n if (vm.ParkingBasicLocationList) {\r\n var iCode = '';\r\n for (var b in vm.ParkingBasicLocationList) {\r\n vm.ParkingBasicLocationList[b].NewLocation = JSON.parse(vm.SavedParkTierDetails[b].TierValue);\r\n for (var j in vm.ParkingBasicLocationList[b].NewLocation) {\r\n if (vm.ParkingBasicLocationList[b].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(b) + 1)]) {\r\n // if (vm.ParkingBasicLocationList[i].NewLocation[j].TierId == allSelectParkLocations[\"Tier\" + (parseInt(i))]) {\r\n vm.ParkingBasicLocationList[b].selectedParkingTier = vm.ParkingBasicLocationList[b].NewLocation[j];\r\n }\r\n }\r\n if (vm.ParkingBasicLocationList[b].selectedParkingTier != undefined)\r\n iCode = iCode + vm.ParkingBasicLocationList[b].selectedParkingTier.Code;\r\n }\r\n vm.Project.ParkingCode = iCode;\r\n }\r\n });\r\n }\r\n });\r\n\r\n vm.selectedParkFileList = [];\r\n var SavedParkUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ParkingUpload);\r\n for (var a in SavedParkUploadList) {\r\n if (SavedParkUploadList.hasOwnProperty(a)) {\r\n vm.selectedParkFileList.push({\r\n key: a,\r\n selectedFile: SavedParkUploadList[a]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if (vm.Project.selectedParkingLocation != undefined) {\r\n\r\n // }\r\n\r\n\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.UnitList) {\r\n if (vm.UnitList[i].UnitId == vm.Project.UnitId) {\r\n vm.Project.selectedMasterunit = vm.UnitList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.FlatFacingList) {\r\n if (vm.FlatFacingList[i].Id == vm.Project.FlatFacingId) {\r\n vm.Project.selectedFlatFacing = vm.FlatFacingList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.LocationFeatureList) {\r\n if (vm.LocationFeatureList[i].Id == vm.Project.FlatFeatureId) {\r\n vm.Project.selectedLocationFeature = vm.LocationFeatureList[i];\r\n }\r\n }\r\n }\r\n\r\n vm.selectedProjectFileList = [];\r\n var SavedProjectUploadList = JSON.parse(JSON.parse(vm.Project.Uploadfiles).ProjectUpload);\r\n for (var a in SavedProjectUploadList) {\r\n if (SavedProjectUploadList.hasOwnProperty(a)) {\r\n vm.selectedProjectFileList.push({\r\n key: a,\r\n selectedFile: SavedProjectUploadList[a]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.isLoading = false;\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n function TileBackRefresh() {\r\n vm.isLoadTiers = false;\r\n vm.isRequiredDetails = false;\r\n\r\n vm.isFormOpen = false;\r\n vm.isProjectTile = true;\r\n vm.isSetupTile = false;\r\n vm.isTierSetupTile = false;\r\n vm.isProjectDetails = false;\r\n vm.isGridShow = false;\r\n vm.isShowHeader = true;\r\n // vm.buttonhide=ture;\r\n // vm.buttonhide1=false;\r\n vm.isEditing = false;\r\n vm.isExistProject = false;\r\n vm.isLoading = true;\r\n vm.isParkingTiers = false;\r\n Init();\r\n // $state.go('CRM_projectDetailsSetup');\r\n }\r\n\r\n function Backbutton() {\r\n\r\n $state.go('Enterprise_SetupTiles', { ProjectId: CRMProjectId, TileId: 'NewCopyInfoTileSetup', SetupType: '' });\r\n }\r\n\r\n vm.savePrjDoc = function () {\r\n\r\n if (!vm.isEditing) {\r\n var isExist = false;\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.Project.selectedCRMFileType != undefined) {\r\n if (vm.selectedProjectFileList[i].key === vm.Project.selectedCRMFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n if (!isExist) {\r\n if (vm.selectedPrjFile != undefined) {\r\n vm.selectedProjectFileList.push({\r\n key: vm.Project.selectedCRMFileType.Key,\r\n selectedFile: vm.selectedPrjFile\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! File not selected', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n }\r\n else {\r\n var isExist = false;\r\n for (var i in vm.selectedProjectFileList) {\r\n if (vm.Project.selectedProjectFileList != undefined) {\r\n if (vm.selectedProjectFileList[i].key === vm.Project.selectedCRMFileType.Key) {\r\n dialogs.notify('Warning', vm.Project.selectedCRMFileType.Key + '! Already Added', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n isExist = true\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_GroupCreation')\r\n .controller('Enterprise_GroupCreationCtrl', Enterprise_GroupCreationCtrl);\r\n\r\n function Enterprise_GroupCreationCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, StateService, Enterprise_DetailsService, Enterprise_LocationSetupService, AuthenticationService, Enterprise_GroupCreationService) {\r\n var vm = this;\r\n\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 13;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n vm.EmployeeDetails = false;\r\n vm.TableGrpCreate = true;\r\n vm.EmployeeName = true;\r\n vm.SearchEmployee = SearchEmployee;\r\n vm.AddGroupMembers = AddGroupMembers;\r\n vm.BackPage = BackPage;\r\n vm.LoadGroupHead = LoadGroupHead;\r\n vm.LoadGroupMember = LoadGroupMember;\r\n vm.Groupcreation = {};\r\n // var CRMProjectId = 1;\r\n var CRMProjectId = AuthenticationService.getLoggedUserDetails().CRMProjectId;\r\n vm.GroupMembersList = [];\r\n vm.isValidSave = false;\r\n vm.GrpMembersShortDescList = [];\r\n vm.SaveGrpMembers = SaveGrpMembers;\r\n vm.LoadTiers = LoadTiers;\r\n vm.isLoadTiers = false;\r\n vm.LoadInnerLocations = LoadInnerLocations;\r\n vm.LoadGrpMembersInnerLocations = LoadGrpMembersInnerLocations;\r\n vm.DeleteGroupMembers = DeleteGroupMembers;\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n vm.Groupcreation.CompanyId = CompanyId;\r\n vm.Groupcreation.ProjectId = CRMProjectId;\r\n\r\n var inputdata = {\r\n CompanyId: vm.Groupcreation.CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n };\r\n\r\n Enterprise_LocationSetupService.GetAllEnterpriseLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n if (vm.LocationList.length > 0) {\r\n vm.Groupcreation.selectedLocation = vm.LocationList[0];\r\n LoadTiers(vm.Groupcreation.selectedLocation.LocationId);\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Group Creation\");\r\n });\r\n\r\n }\r\n\r\n function LoadTiers(iBasicLocationId, callback) {\r\n if (iBasicLocationId) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: iBasicLocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: '0'\r\n };\r\n\r\n Enterprise_GroupCreationService.ReadTierLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BasicLocationList = res.data;\r\n\r\n if (vm.BasicLocationList.length > 0)\r\n vm.isLoadTiers = true;\r\n else\r\n vm.isLoadTiers = false;\r\n\r\n for (var i in vm.BasicLocationList) {\r\n if (vm.BasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n vm.BasicLocationList[i].GrpMembersNewLocation = JSON.parse(vm.BasicLocationList[i].BasicLocation);\r\n }\r\n else {\r\n vm.BasicLocationList[i].GrpMembersNewLocation = [];\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Gruop Creation\");\r\n });\r\n }\r\n else {\r\n vm.BasicLocationList = [];\r\n }\r\n }\r\n\r\n function LoadInnerLocations(iTierId, callback) {\r\n\r\n if (iTierId) {\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Groupcreation.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iTierId.toString(),\r\n };\r\n\r\n Enterprise_GroupCreationService.ReadTierLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.NewBasicLocationList = res.data;\r\n\r\n for (var i in vm.NewBasicLocationList) {\r\n if (vm.NewBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.NewBasicLocationList[i].BasicLocation != \"\") {\r\n vm.BasicLocationList[i].TierOrder = vm.NewBasicLocationList[i].TierOrder;\r\n vm.BasicLocationList[i].NewLocation = JSON.parse(vm.NewBasicLocationList[i].BasicLocation);\r\n }\r\n\r\n if (i == (vm.NewBasicLocationList.length - 1) && vm.BasicLocationList[i].selectedTier != undefined) {\r\n vm.Groupcreation.ShortDesc = vm.BasicLocationList[i].selectedTier.ShortDesc;\r\n vm.Groupcreation.GroupHeadName = vm.BasicLocationList[i].selectedTier.EmployeeName;\r\n vm.Groupcreation.GroupHeadKPostId = vm.BasicLocationList[i].selectedTier.KPostId;\r\n vm.Groupcreation.GroupHeadId = vm.BasicLocationList[i].selectedTier.EmployeeId;\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Gruop Creation\");\r\n });\r\n }\r\n }\r\n\r\n function LoadGrpMembersInnerLocations(ilstTiers, callback) {\r\n\r\n if (ilstTiers != undefined) {\r\n\r\n var iselectedTiers = '';\r\n\r\n for (var i in ilstTiers) {\r\n iselectedTiers = iselectedTiers + ilstTiers[i].TierId + ',';\r\n }\r\n\r\n if (iselectedTiers.length > 0)\r\n iselectedTiers = iselectedTiers.substring(0, iselectedTiers.length - 1);\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n LocationId: vm.Groupcreation.selectedLocation.LocationId,\r\n ProjectId: CRMProjectId,\r\n ParentTierId: iselectedTiers,\r\n };\r\n\r\n Enterprise_GroupCreationService.ReadTierLocations(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.GrpMembersBasicLocationList = res.data;\r\n\r\n vm.GrpMembersShortDescList = [];\r\n for (var i in vm.GrpMembersBasicLocationList) {\r\n if (vm.GrpMembersBasicLocationList[i].Tiers === vm.BasicLocationList[i].Tiers && vm.GrpMembersBasicLocationList[i].BasicLocation != \"\") {\r\n // vm.BasicLocationList[i].TierOrder = vm.NewBasicLocationList[i].TierOrder;\r\n vm.BasicLocationList[i].GrpMembersNewLocation = JSON.parse(vm.GrpMembersBasicLocationList[i].BasicLocation);\r\n }\r\n\r\n if (i == (vm.GrpMembersBasicLocationList.length - 1) && vm.BasicLocationList[i].selectedGrpMembersTiers != undefined) {\r\n\r\n var objshrtdesc = null;\r\n\r\n for (var a in vm.BasicLocationList[i].selectedGrpMembersTiers) {\r\n\r\n if (vm.BasicLocationList[i].selectedGrpMembersTiers[a].EmployeeId != undefined) {\r\n objshrtdesc = {\r\n ShortDesc: vm.BasicLocationList[i].selectedGrpMembersTiers[a].ShortDesc,\r\n GroupMemberName: vm.BasicLocationList[i].selectedGrpMembersTiers[a].EmployeeName,\r\n GroupMemberKPostId: vm.BasicLocationList[i].selectedGrpMembersTiers[a].KPostId,\r\n GroupMemberId: vm.BasicLocationList[i].selectedGrpMembersTiers[a].EmployeeId\r\n }\r\n\r\n vm.GrpMembersShortDescList.push(objshrtdesc);\r\n }\r\n }\r\n }\r\n // else {\r\n // vm.GrpMembersShortDescList = [];\r\n // }\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Gruop Creation\");\r\n });\r\n }\r\n }\r\n\r\n\r\n function LoadGroupHead(iSelectedGroupHead) {\r\n\r\n if (iSelectedGroupHead != undefined) {\r\n vm.Groupcreation.GroupHeadName = iSelectedGroupHead.EmployeeName;\r\n vm.Groupcreation.GroupHeadKPostId = iSelectedGroupHead.KPostId;\r\n vm.Groupcreation.GroupHeadId = iSelectedGroupHead.EmployeeId;\r\n\r\n vm.EmployeeDetails = true;\r\n // vm.TableGrpCreate = false;\r\n vm.EmployeeName = false;\r\n\r\n vm.GroupMembersList = [];\r\n vm.isValidSave = false;\r\n Enterprise_GroupCreationService.ReadEmployeeShortdecsc(vm.Groupcreation.CompanyId, vm.Groupcreation.ProjectId, 'N', 'SavedDetails', 0, vm.Groupcreation.GroupHeadKPostId).then(function (res) {\r\n if (res.status == 200) {\r\n if (res.data.length > 0) {\r\n // vm.TableGrpCreate = true;\r\n vm.GroupMembersList = res.data;\r\n vm.isValidSave = true;\r\n // vm.isFormOpen = true;\r\n // vm.isEditing = false;\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Group Creattion\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n function SearchEmployee() {\r\n\r\n if (vm.Groupcreation.ShortDesc != undefined) {\r\n\r\n if (vm.Groupcreation.ShortDesc.length > 0) {\r\n\r\n vm.EmployeeDetails = true;\r\n // vm.TableGrpCreate = false;\r\n vm.EmployeeName = false;\r\n\r\n vm.GroupMembersList = [];\r\n vm.isValidSave = false;\r\n Enterprise_GroupCreationService.ReadEmployeeShortdecsc(vm.Groupcreation.CompanyId, vm.Groupcreation.ProjectId, 'N', 'SavedDetails', 0, vm.Groupcreation.GroupHeadKPostId).then(function (res) {\r\n if (res.status == 200) {\r\n if (res.data.length > 0) {\r\n // vm.TableGrpCreate = true;\r\n vm.GroupMembersList = res.data;\r\n vm.isValidSave = true;\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Group Creattion\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n }\r\n }\r\n }\r\n\r\n function AddGroupMembers() {\r\n\r\n if (vm.Groupcreation.selectedGrpMembers != undefined) {\r\n\r\n var isValid = true;\r\n var isAlreadyAdded = false;\r\n\r\n for (var i in vm.Groupcreation.selectedGrpMembers) {\r\n if (vm.Groupcreation.GroupHeadId == vm.Groupcreation.selectedGrpMembers[i].GroupMemberId) {\r\n isValid = false;\r\n }\r\n\r\n for (var j in vm.GroupMembersList) {\r\n if (vm.Groupcreation.selectedGrpMembers[i].GroupMemberId == vm.GroupMembersList[j].EmployeeId) {\r\n isAlreadyAdded = true;\r\n }\r\n }\r\n }\r\n\r\n if (isValid) {\r\n if (!isAlreadyAdded) {\r\n\r\n for (var i in vm.Groupcreation.selectedGrpMembers) {\r\n var data = {\r\n EmployeeId: vm.Groupcreation.selectedGrpMembers[i].GroupMemberId,\r\n ShortDesc: vm.Groupcreation.selectedGrpMembers[i].ShortDesc,\r\n KPostId: vm.Groupcreation.selectedGrpMembers[i].GroupMemberKPostId\r\n }\r\n\r\n vm.GroupMembersList.push(data);\r\n }\r\n\r\n vm.EmployeeDetails = true;\r\n // vm.TableGrpCreate = true;\r\n vm.EmployeeName = false;\r\n vm.isValidSave = true;\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Already added member selected', \"Group Generation\");\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Group Head selected', \"Group Generation\");\r\n }\r\n }\r\n else {\r\n if (vm.Groupcreation.GroupMemberId != \"\" || vm.Groupcreation.GroupMemberId != undefined) {\r\n\r\n var isvalid = true;\r\n\r\n for (var i in vm.GroupMembersList) {\r\n if (vm.GroupMembersList[i].EmployeeId == vm.Groupcreation.GroupMemberId)\r\n isvalid = false;\r\n }\r\n\r\n if (isvalid) {\r\n var data = {\r\n EmployeeId: vm.Groupcreation.GroupMemberId,\r\n ShortDesc: vm.Groupcreation.GroupMemberShortDesc,\r\n KPostId: vm.Groupcreation.GroupMemberKPostId\r\n }\r\n\r\n vm.GroupMembersList.push(data);\r\n vm.EmployeeDetails = true;\r\n // vm.TableGrpCreate = true;\r\n vm.EmployeeName = false;\r\n vm.isValidSave = true;\r\n\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Group member already added', \"Group Generation\");\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n function LoadGroupMember(iSelectedGroupMember) {\r\n\r\n vm.Groupcreation.GroupMemberName = \"\";\r\n vm.Groupcreation.GroupMemberKPostId = \"\";\r\n vm.Groupcreation.GroupMemberId = \"\";\r\n vm.Groupcreation.GroupMemberShortDesc = \"\";\r\n\r\n if (iSelectedGroupMember != undefined) {\r\n vm.Groupcreation.GroupMemberName = iSelectedGroupMember.EmployeeName;\r\n vm.Groupcreation.GroupMemberKPostId = iSelectedGroupMember.KPostId;\r\n vm.Groupcreation.GroupMemberId = iSelectedGroupMember.EmployeeId;\r\n vm.Groupcreation.GroupMemberShortDesc = iSelectedGroupMember.ShortDesc;\r\n }\r\n }\r\n\r\n function SaveGrpMembers() {\r\n\r\n var strGroupMembers = '';\r\n\r\n for (var i in vm.GroupMembersList) {\r\n strGroupMembers = strGroupMembers + vm.GroupMembersList[i].EmployeeId + ',';\r\n }\r\n\r\n if (strGroupMembers.length > 0) {\r\n strGroupMembers = strGroupMembers.substring(0, strGroupMembers.length - 1);\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n GroupHeadKPostId: vm.Groupcreation.GroupHeadKPostId,\r\n GroupMembers: strGroupMembers,\r\n CreatedBy: loggeduser.UserId\r\n\r\n }\r\n Enterprise_GroupCreationService.SaveUpdateGroupMembers(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Group Creattion\");\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Group Creattion\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n function DeleteGroupMembers(iEmployeeId) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n for (var i in vm.GroupMembersList) {\r\n if (iEmployeeId == vm.GroupMembersList[i].EmployeeId) {\r\n\r\n vm.GroupMembersList.splice(i, 1);\r\n }\r\n }\r\n\r\n if (vm.GroupMembersList.length > 0)\r\n vm.isValidSave = true;\r\n else\r\n vm.isValidSave = false;\r\n\r\n var strGroupMembers = '';\r\n\r\n for (var i in vm.GroupMembersList) {\r\n strGroupMembers = strGroupMembers + vm.GroupMembersList[i].EmployeeId + ',';\r\n }\r\n\r\n if (strGroupMembers.length > 0) {\r\n strGroupMembers = strGroupMembers.substring(0, strGroupMembers.length - 1);\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n GroupHeadKPostId: vm.Groupcreation.GroupHeadKPostId,\r\n GroupMembers: strGroupMembers,\r\n CreatedBy: loggeduser.UserId\r\n\r\n }\r\n Enterprise_GroupCreationService.SaveUpdateGroupMembers(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n $rootScope.showToaster('error', \"Deleted successfully\", \"Group Creattion\");\r\n Init();\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"Group Creattion\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n });\r\n }\r\n\r\n function BackPage() {\r\n\r\n vm.EmployeeDetails = false;\r\n // vm.TableGrpCreate = false;\r\n vm.EmployeeName = true;\r\n vm.Groupcreation.GroupHeadName = null;\r\n vm.Groupcreation.GroupHeadKPostId = null;\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_LocationSetup')\r\n .controller('Enterprise_LocationSetupCtrl', Enterprise_LocationSetupCtrl);\r\n\r\n /** @ngInject */\r\n function Enterprise_LocationSetupCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, Enterprise_LocationSetupService, CRM_projectLocationSetupService, StateService, AuthenticationService) {\r\n var vm = this;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.addNewTier = addNewTier;\r\n vm.removeTier = removeTier;\r\n vm.SaveLocationSetup = SaveLocationSetup;\r\n vm.EditLocationSetup = EditLocationSetup;\r\n vm.RemoveLocationSetup = RemoveLocationSetup;\r\n vm.TileBack = TileBack;\r\n vm.tiers = [];\r\n vm.location = {};\r\n\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // var CRMProjectId = 13;\r\n var CRMProjectId = AuthenticationService.getLoggedUserDetails().CRMProjectId;\r\n var TitleHeader = $state.params.Header;\r\n\r\n Init();\r\n\r\n\r\n function Init() {\r\n\r\n vm.location.BasicLocation = 'Project Soft';\r\n // $scope.value = 'Test';\r\n vm.Header = TitleHeader;\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: CRMProjectId\r\n }\r\n Enterprise_LocationSetupService.GetAllEnterpriseLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationSetupList = res.data;\r\n\r\n vm.tierNameList = [];\r\n lodash.forEach(vm.LocationSetupList, function (loc) {\r\n loc.Tiers = JSON.parse(loc.Tiers);\r\n lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n if (!lodash.includes(vm.tierNameList, key))\r\n vm.tierNameList.push(key);\r\n });\r\n });\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n\r\n var data = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n ApprovalFor: 'Location',\r\n ProjectId: CRMProjectId\r\n }\r\n\r\n Enterprise_LocationSetupService.GetAllProjects(data).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available ', { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.location = {};\r\n vm.location.BasicLocation = 'Project Soft';\r\n vm.tiers = [];\r\n }\r\n\r\n function addNewTier() {\r\n\r\n var newItemNo = (vm.tiers).length + 1;\r\n\r\n var details;\r\n if (vm.tiers.length > 0) {\r\n // details = JSON.parse(vm.tiers);\r\n\r\n // if (!lodash.filter(vm.tiers, { 'code': vm.location.Code }).length > 0) {\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: vm.location.Tier,\r\n // code: vm.location.Code,\r\n });\r\n vm.location.Tier = '';\r\n // vm.location.Code = '';\r\n // } else {\r\n // $rootScope.showToaster('error', 'Code already exists', \"Location Setup Master\");\r\n // }\r\n }\r\n else {\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: vm.location.Tier,\r\n // code: vm.location.Code,\r\n });\r\n vm.location.Tier = '';\r\n // vm.location.Code = '';\r\n }\r\n\r\n // var statDetails = JSON.parse(vm.Project.StatutoryDetails);\r\n\r\n };\r\n\r\n function removeTier(item) {\r\n vm.tiers.splice(item, 1);\r\n };\r\n\r\n function SaveLocationSetup(location) {\r\n // location.ProjectId = vm.location.selectedProject.ProjectId;\r\n location.ProjectId = CRMProjectId;\r\n location.CompanyId = CompanyId;\r\n var tierList = {};\r\n for (var i in vm.tiers) {\r\n tierList['Tier' + (parseInt(i) + 1)] = vm.tiers[i].tierName;\r\n }\r\n\r\n location.Tiers = JSON.stringify(tierList);\r\n\r\n\r\n if (!vm.isEditing) {\r\n location.Process = 'S';\r\n\r\n Enterprise_LocationSetupService.CreateEnterpriseLocation(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n cancel();\r\n } else {\r\n location.Process = 'U';\r\n Enterprise_LocationSetupService.CreateEnterpriseLocation(location).then(function (res) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"Location Setup Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n cancel();\r\n }\r\n }\r\n\r\n function EditLocationSetup(location) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.location = angular.copy(location);\r\n\r\n for (var c in vm.ProjectList) {\r\n if (vm.ProjectList[c].ProjectId === location.ProjectId) {\r\n vm.location.selectedProject = vm.ProjectList[c];\r\n }\r\n }\r\n\r\n vm.tiers = [];\r\n lodash.forIn(location.Tiers, function (tierValue, tier) {\r\n var newItemNo = (vm.tiers).length + 1;\r\n vm.tiers.push({\r\n id: newItemNo,\r\n tierName: tierValue,\r\n });\r\n });\r\n }\r\n\r\n function RemoveLocationSetup(location) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n Enterprise_LocationSetupService.DeleteEnterpriseLocation(location.LocationId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n } else\r\n $rootScope.showToaster('error', res.data.Message, \"Error\");\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function TileBack() {\r\n\r\n $state.go('Enterprise_SetupTiles', { ProjectId: CRMProjectId, isProjectTile: false, isItemTile: true, isButtonShow: true });\r\n\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_SetupTiles')\r\n .controller('Enterprise_SetupTilesCtrl', Enterprise_SetupTilesCtrl);\r\n\r\n function Enterprise_SetupTilesCtrl($scope, $http, $rootScope, lodash, dialogs, $state, $stateParams, CRM_parkingLocationSetupService, StateService, AuthenticationService, CRM_projectInitiationService) {\r\n var vm = this;\r\n vm.Enterprise_LocationSetup = Enterprise_LocationSetup;\r\n vm.Enterprise_TierSetup = Enterprise_TierSetup;\r\n vm.KPostId = KPostId;\r\n\r\n // var CRMProjectId = 13;\r\n var CRMProjectId = AuthenticationService.getLoggedUserDetails().CRMProjectId;\r\n // var prProjectTile = $state.params.isProjectTile;\r\n // var prItemTile = $state.params.isItemTile;\r\n // var prButtonShow = $state.params.isButtonShow;\r\n\r\n vm.TileBack = TileBack;\r\n // vm.ProjectSelected = ProjectSelected;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggeduser = AuthenticationService.getLoggedUserDetails();\r\n\r\n // Init();\r\n // function Init() {\r\n\r\n // if (prProjectTile != undefined && prItemTile != undefined && prButtonShow != undefined) {\r\n // vm.isProjectTile = prProjectTile;\r\n // vm.isItemTile = prItemTile;\r\n // vm.buttonhide = prButtonShow;\r\n // }\r\n // else {\r\n // vm.isProjectTile = true;\r\n // vm.isItemTile = false;\r\n // vm.buttonhide = true;\r\n // }\r\n\r\n // var inputdata1 = {\r\n // CompanyId: CompanyId,\r\n // Status: '4',\r\n \r\n // };\r\n\r\n // CRM_projectInitiationService.GetAllProjects(inputdata1).then(function (res1) {\r\n // if (res1.status === 200) {\r\n // vm.ProjectList = res1.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n // });\r\n // }\r\n\r\n function Enterprise_LocationSetup() {\r\n\r\n $state.go('Enterprise_LocationSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n function Enterprise_TierSetup() {\r\n\r\n $state.go('Enterprise_TierSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n function KPostId() {\r\n\r\n $state.go('Enterprise_DetailsSetup', { ProjectId: CRMProjectId, Header: vm.header });\r\n }\r\n\r\n // function ProjectSelected(Id) {\r\n // vm.isProjectTile = false;\r\n // vm.isItemTile = true;\r\n // CRMProjectId = Id;\r\n // vm.buttonhide = true;\r\n // // vm.buttonhide=true;\r\n\r\n\r\n \r\n\r\n\r\n // for (var i in vm.ProjectList) {\r\n // if (vm.ProjectList[i].ProjectId == CRMProjectId) {\r\n\r\n // vm.header = vm.ProjectList[i].ProjectName + ' , ' + vm.ProjectList[i].AreaName;\r\n // }\r\n // }\r\n\r\n // }\r\n \r\n\r\n function TileBack() {\r\n\r\n vm.isProjectTile = true;\r\n vm.isItemTile = false;\r\n vm.buttonhide = false;\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_TierSetup')\r\n .controller('Enterprise_TierSetupCtrl', Enterprise_TierSetupCtrl);\r\n\r\n /** @ngInject */\r\n function Enterprise_TierSetupCtrl($scope, $rootScope, lodash, dialogs, $http, $state, $stateParams,Enterprise_LocationSetupService, CRM_projectLocationSetupService, LocationSetupService, TierSetupService,\r\n CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.TierSetupList = [];\r\n $rootScope.isLogin = false;\r\n\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByLocationId = getTiersByLocationId;\r\n vm.saveNewTierValue = saveNewTierValue;\r\n vm.cancelAdding = cancelAdding;\r\n vm.filterTiers = filterTiers;\r\n vm.updateTierValue = updateTierValue;\r\n vm.removeTierSetup = removeTierSetup;\r\n vm.TileBack=TileBack;\r\n // vm.TileBack = TileBack;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // var CRMProjectId = 13;\r\n var CRMProjectId = AuthenticationService.getLoggedUserDetails().CRMProjectId;\r\n // var TitleHeader = $state.params.Header;\r\n vm.tier = {};\r\n Init();\r\n\r\n function Init() {\r\n // vm.Header = TitleHeader ;\r\n var data = {\r\n CompanyId: CompanyId,\r\n Status: '4',\r\n // ProjectId: CRMProjectId\r\n }\r\n Enterprise_LocationSetupService.GetAllProjects(data).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n\r\n // CRM_projectLocationSetupService.GetAllLocations(CompanyId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.LocationSetupList = res.data;\r\n\r\n // vm.tierNameList = [];\r\n // lodash.forEach(vm.LocationSetupList, function (loc) {\r\n // loc.Tiers = JSON.parse(loc.Tiers);\r\n // lodash.forEach(lodash.keys(loc.Tiers), function (key) {\r\n // if (!lodash.includes(vm.tierNameList, key))\r\n // vm.tierNameList.push(key);\r\n // });\r\n // });\r\n\r\n // if (vm.LocationSetupList.length < 1) {\r\n // dialogs.notify('Warning', 'No Locations available for ' + vm.location.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n // }\r\n // vm.isLoading = false;\r\n // // if (callback)\r\n // // callback();\r\n\r\n // var data = {\r\n // CompanyId: CompanyId,\r\n // Status: '4'\r\n // }\r\n\r\n\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n // });\r\n\r\n getLocationByProjectId(CRMProjectId);\r\n }\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n var prjDetaills = {\r\n CompanyId: CompanyId,\r\n LocationId: 0,\r\n ProjectId: ProjectId\r\n }\r\n Enterprise_LocationSetupService.GetAllEnterpriseLocations(prjDetaills).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available ', { animation: true, size: 'sm' });\r\n }\r\n else if (vm.LocationList.length > 0)\r\n {\r\n vm.tier.selectedLocation = vm.LocationList[0];\r\n\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId);\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n vm.LocationList = [];\r\n // vm.tier.selectedLocation = null;\r\n }\r\n\r\n\r\n function filterTiers(tier) {\r\n var isClearingTier = (tier.selectedTierValue === null || tier.selectedTierValue === undefined);\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n vm.currentTier = vm.tierObj[nextTier];\r\n if (!isClearingTier)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier, 'ParentTierId': tier.selectedTierValue.TierId });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === nextTier) {\r\n if (!isClearingTier)\r\n t.Values = vm.TierSetupList;\r\n t.selectedTierValue = null;\r\n }\r\n var tierNoToCheck = ((isClearingTier) ? getTierNo(tier.TierType) : getTierNo(nextTier));\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.Values = [],\r\n t.selectedTierValue = null;\r\n }\r\n });\r\n\r\n if (isClearingTier) {\r\n if (getTierNo(tier.TierType) === 1)\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj['Tier1'], 'ParentTierId': 0 });\r\n }\r\n }\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTiersByLocationId(LocationId, callback) {\r\n vm.tierObj = JSON.parse(vm.tier.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n\r\n var TierDetails = {\r\n\r\n CompanyId: CompanyId,\r\n ProjectId: CRMProjectId,\r\n LocationId: LocationId,\r\n TierId: 0\r\n };\r\n\r\n Enterprise_LocationSetupService.GetAllEnterpriseTier(TierDetails).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, { 'TierName': vm.tierObj[properties] });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n if (callback)\r\n callback();\r\n vm.TierSetupList = lodash.filter(vm.allTierData, { 'TierName': vm.currentTier });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n\r\n function saveNewTierValue(tier) {\r\n var oldTierSelection = [];\r\n tier.IsAdding = ((!(tier.IsAdding) || tier.IsAdding === undefined) ? true : false);\r\n vm.isAddingTier = true;\r\n if (!tier.IsAdding) {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n TierId: 0,\r\n ProjectId: CRMProjectId,\r\n LocationId: vm.tier.selectedLocation.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tier.TierValue,\r\n TierName: tier.TierName,\r\n Code:tier.TierCode,\r\n CreatedBy: loggedUser.UserId,\r\n IsActive: 1\r\n }\r\n if (getTierNo(tier.TierType) === 1) {\r\n obj.ParentTierId = 0;\r\n } else {\r\n var parentTier = lodash.find(vm.tierList, function (t) {\r\n return t.TierType === \"Tier\" + (getTierNo(tier.TierType) - 1);\r\n }).selectedTierValue;\r\n\r\n if (parentTier === null || parentTier === undefined) {\r\n $rootScope.showToaster('error', \"You have to select a parent tier\", \"ERROR!\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n return;\r\n } else {\r\n obj.ParentTierId = parentTier.TierId;\r\n }\r\n oldTierSelection = vm.tierList;\r\n }\r\n\r\n Enterprise_LocationSetupService.CreateEnterpriseTier(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n $rootScope.showToaster('success', res.data.Message, \"Tier Value\");\r\n vm.isFormOpen = false;\r\n vm.isAddingTier = false;\r\n tier.TierValue = undefined;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Tier Value\");\r\n tier.IsAdding = !tier.IsAdding;\r\n }\r\n //Init();\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n // lodash.forEach(vm.tierList, function (t) {\r\n // t.isHideForm = false;\r\n // });\r\n } else {\r\n var tierNoToCheck = getTierNo(tier.TierType);\r\n\r\n var nextTier = \"Tier\" + (getTierNo(tier.TierType) + 1);\r\n var currentTier = lodash.find(vm.tierList, { 'TierType': tier.TierType });\r\n vm.TierSetupList = currentTier.Values; // lodash.filter(vm.allTierData, { 'TierName': tier.TierName });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (getTierNo(t.TierType) > tierNoToCheck) {\r\n t.isHideForm = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function updateTierValue(tierToUpdate) {\r\n var TDtl = {\r\n CompanyId: CompanyId,\r\n TierId: tierToUpdate.TierId,\r\n ProjectId: tierToUpdate.ProjectId,\r\n LocationId: tierToUpdate.LocationId,\r\n ParentTierId: 0,\r\n TierValue: tierToUpdate.TierValue,\r\n TierName: tierToUpdate.TierName,\r\n Code:tierToUpdate.Code,\r\n CreatedBy: loggedUser.UserId,\r\n IsActive: 1\r\n }\r\n // var obj = {\r\n // \"TierId\": tierToUpdate.TierId,\r\n // \"ProjectId\": tierToUpdate.ProjectId,\r\n // \"LocationId\": tierToUpdate.LocationId,\r\n // \"TierValue\": tierToUpdate.TierValue,\r\n // \"TierName\": tierToUpdate.TierName,\r\n // \"IsActive\": tierToUpdate.IsActive,\r\n // \"ModifiedBy\": loggedUser.UserId\r\n // }\r\n Enterprise_LocationSetupService.CreateEnterpriseTier(TDtl).then(function (res) {\r\n if (res.status === 200, res.data.IsSuccess) {\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n tierToUpdate.isEdit = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n }\r\n\r\n function removeTierSetup(tierToRemove) {\r\n debugger;\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n var oldTierSelection = vm.tierList;\r\n confirm.result.then(function () {\r\n Enterprise_LocationSetupService.DeleteEnterpriseTier(tierToRemove.TierId).then(function (res) {\r\n if (res.status === 200 && res.data.IsSuccess) {\r\n $rootScope.showToaster('success', res.data.Message, \"Success\");\r\n getTiersByLocationId(vm.tier.selectedLocation.LocationId, function () {\r\n lodash.forEach(oldTierSelection, function (oldTier) {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (oldTier.TierType === tier.TierType && oldTier.selectedTierValue) {\r\n tier.selectedTierValue = oldTier.selectedTierValue;\r\n if (tier)\r\n filterTiers(tier);\r\n }\r\n })\r\n })\r\n filterTiers()\r\n });\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot connect to server', 'ERROR!');\r\n });\r\n });\r\n }\r\n function cancelAdding(tier) {\r\n tier.TierValue = undefined;\r\n tier.IsAdding = false;\r\n vm.isAddingTier = false;\r\n lodash.forEach(vm.tierList, function (t) {\r\n t.isHideForm = false;\r\n });\r\n }\r\n function TileBack() {\r\n \r\n $state.go('Enterprise_SetupTiles', { ProjectId: CRMProjectId, isProjectTile:false, isItemTile: true,isButtonShow:true });\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.accountMaster')\r\n .controller('AccountMasterCtrl', AccountMasterCtrl);\r\n\r\n /** @ngInject */\r\n function AccountMasterCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, projectCreationService, HolidayMasterService, StateService, CountryService, AuthenticationService, CompanyService, AccountMasterService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.Account = {};\r\n\r\n vm.SaveAccountMaster = SaveAccountMaster;\r\n vm.editAccountMaster = editAccountMaster;\r\n\r\n vm.RemoveAccountMaster = RemoveAccountMaster;\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n AccountMasterService.getAllAccountMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.AccountMaterlist = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n }\r\n AccountMasterService.getAllCurrency($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.Currencytypelist = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Currency Master\");\r\n });\r\n\r\n\r\n AccountMasterService.getAllTransaction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TransactionTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Master\");\r\n });\r\n\r\n function RemoveAccountMaster(Account) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n AccountMasterService.RemoveAccountMaster(Account.Act_MasterId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Account Master\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Account Master \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Account. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function editAccountMaster(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.Account.Balance = row.Balance;\r\n\r\n vm.Account = angular.copy(row);\r\n\r\n // vm.holiday.Date = new Date(vm.holiday.HolidayDate + \"/\" + vm.holiday.HolidayMonth + \"/\" + vm.holiday.HolidayYear);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == vm.Account.CompanyId) {\r\n vm.Account.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.Currencytypelist) {\r\n if (vm.Currencytypelist[i].CurrencyTypeId === vm.Account.CurrencyTypeId) {\r\n vm.Account.CurrencyTypeId = vm.Currencytypelist[i]\r\n }\r\n }\r\n for (var i in vm.TransactionTypeList) {\r\n if (vm.TransactionTypeList[i].TransactionTypeId === vm.Account.TxnType) {\r\n vm.Account.TransactionTypeId = vm.TransactionTypeList[i]\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n function SaveAccountMaster() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Account = {\r\n CompanyId: vm.Account.selectedCompany.CompanyId,\r\n Balance: vm.Account.Balance,\r\n CurrencyTypeId: vm.Account.CurrencyTypeId.CurrencyTypeId,\r\n TransactionTypeId: vm.Account.TransactionTypeId.TransactionTypeId,\r\n }\r\n if (!vm.isEditing) {\r\n Account.CreatedBy = logggedUser.UserId\r\n AccountMasterService.AddAccountMaster(Account).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n Account.ModifiedBy = logggedUser.UserId\r\n Account.Act_MasterId = vm.Account.Act_MasterId\r\n AccountMasterService.editAccountMaster(Account).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n\r\n vm.Account = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }\r\n\r\n function resetForm() {\r\n vm.AccountForm.$setUntouched();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.EmployeeComponent')\r\n .controller('EmployeeComponentCtrl', EmployeeComponentCtrl);\r\n\r\n function EmployeeComponentCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, SalaryComponentsService, EmployeeComponentService, EmployeeService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.RemoveEmployee = RemoveEmployee;\r\n vm.SaveEmployeeComponent = SaveEmployeeComponent;\r\n vm.editemployee = editemployee;\r\n vm.resetForm = resetForm;\r\n // vm.getComponent = getComponent;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n vm.employee = {};\r\n\r\n Init();\r\n function Init() {\r\n vm.SalaryTypeList = [{\r\n\r\n 'value': 'Hourly'\r\n }, {\r\n\r\n 'value': 'Weekly'\r\n },\r\n {\r\n\r\n 'value': 'Monthly'\r\n }];\r\n EmployeeComponentService.AllEmployeeComponent().then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmpComponentList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee Component\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Component\");\r\n });\r\n\r\n EmployeeService.getAllEmployees(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee \");\r\n });\r\n\r\n SalaryComponentsService.AllSalaryComponent($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n var obj = {\r\n EmployeeComponentId: null,\r\n ModifiedBy: null,\r\n EmployeeId: null\r\n }\r\n EmployeeComponentService.AllEmployeeComponent(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeComponentslist = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.employee = {};\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.employee = {};\r\n }\r\n function resetForm() {\r\n vm.EmployeeComponentForm.$setUntouched();\r\n }\r\n\r\n function SaveEmployeeComponent() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var Employees = {\r\n\r\n EmployeeId: vm.employee.selectedEmployee.EmployeeId,\r\n ComponentId: vm.employee.selectedDescription.SalaryComponentId,\r\n Amount: vm.employee.Amount,\r\n SalaryType: vm.employee.SalaryType.value,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n EmployeeComponentService.saveEmployeeComponent(Employees).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n var Employees = {\r\n EmployeeId: vm.employee.selectedEmployee.EmployeeId,\r\n ComponentId: vm.employee.selectedDescription.SalaryComponentId,\r\n Amount: vm.employee.Amount,\r\n SalaryType: vm.employee.SalaryType.value,\r\n EmployeeComponentId: vm.employee.EmployeeComponentId,\r\n ModifiedBy: logggedUser.UserId\r\n }\r\n EmployeeComponentService.EditEmployeeComponent(Employees).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n function editemployee(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n var CmpDetails = angular.copy(row);\r\n\r\n vm.employee.EmployeeComponentId = CmpDetails.EmployeeComponentId;\r\n\r\n vm.employee.Amount = CmpDetails.Amount;\r\n\r\n for (var c in vm.EmployeeList) {\r\n if (vm.EmployeeList[c].EmployeeId === CmpDetails.EmployeeId) {\r\n vm.employee.selectedEmployee = vm.EmployeeList[c];\r\n }\r\n }\r\n for (var c in vm.DescriptionList) {\r\n if (vm.DescriptionList[c].SalaryComponentId === CmpDetails.ComponentId) {\r\n vm.employee.selectedDescription = vm.DescriptionList[c];\r\n }\r\n }\r\n for (var c in vm.SalaryTypeList) {\r\n if (vm.SalaryTypeList[c].value === CmpDetails.SalaryType) {\r\n vm.employee.SalaryType = vm.SalaryTypeList[c];\r\n }\r\n }\r\n\r\n }\r\n function RemoveEmployee(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n EmployeeComponentService.RemoveEmployeeComponent(row.EmployeeComponentId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Area Successfully', \"Area\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Area\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Area.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.accountTransaction')\r\n .controller('AccountTransactionCtrl', AccountTransactionCtrl);\r\n\r\n /** @ngInject */\r\n function AccountTransactionCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, projectCreationService, AccountMasterService, AuthenticationService, CompanyService, AccountTransactionService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.SaveAccountTransaction = SaveAccountTransaction;\r\n vm.editAccountTransaction = editAccountTransaction;\r\n vm.RemoveAccountTransaction = RemoveAccountTransaction;\r\n vm.AccountTransaction = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n\r\n AccountTransactionService.getAllAccountTransaction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AccountTransactionList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Transaction Master\");\r\n });\r\n\r\n\r\n }\r\n AccountMasterService.getAllTransaction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TransactionTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Transactio Master\");\r\n });\r\n\r\n\r\n AccountTransactionService.getAllAccountTransaction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AccountTransactionList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Transaction Master\");\r\n });\r\n\r\n AccountTransactionService.getAllPaymenyMode($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ModeofPaymentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Account Trtansaction Master\");\r\n });\r\n\r\n function RemoveAccountMaster(Account) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n StateService.RemoveAccountMaster(Account.ActMasterId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete State Successfully', \"State\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete State\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete State. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n function editAccountTransaction(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.AccountTransaction.RunningBalance = row.RunningBalance;\r\n vm.AccountTransaction.Description = row.Description;\r\n vm.AccountTransaction.ModeofPaymentDtls = row.ModeofPaymentDtls;\r\n vm.AccountTransaction.TransactionAmount = row.TransactionAmount;\r\n \r\n vm.AccountTransaction = angular.copy(row);\r\n\r\n vm.AccountTransaction.Date = new Date(vm.AccountTransaction.Date);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == vm.AccountTransaction.CompanyId) {\r\n vm.AccountTransaction.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.ModeofPaymentList) {\r\n if (vm.ModeofPaymentList[i].ModeofPaymentId === vm.AccountTransaction.ModeofPaymentId) {\r\n vm.AccountTransaction.ModeofPaymentId = vm.ModeofPaymentList[i]\r\n }\r\n }\r\n for (var i in vm.TransactionTypeList) {\r\n if (vm.TransactionTypeList[i].TransactionTypeId === vm.AccountTransaction.TransactionTypeID) {\r\n vm.AccountTransaction.TranscationTypeId = vm.TransactionTypeList[i]\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n function RemoveAccountTransaction(AccountTransaction) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n AccountTransactionService.RemoveAccountTransaction(AccountTransaction.ACT_TransctionId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete AccountTransaction Successfully', \"State\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete AccountTransaction \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete AccountTransaction. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveAccountTransaction() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var AccountTransaction = {\r\n CompanyId: vm.AccountTransaction.selectedCompany.CompanyId,\r\n RunningBalance: vm.AccountTransaction.RunningBalance,\r\n TranscationTypeId: vm.AccountTransaction.TranscationTypeId.TransactionTypeId,\r\n TransactionAmount: vm.AccountTransaction.TransactionAmount,\r\n ModeofPaymentId: vm.AccountTransaction.ModeofPaymentId.ModeOfPaymentTypeId,\r\n ModeofPaymentDtls: vm.AccountTransaction.ModeofPaymentDtls,\r\n Date: $filter('date')(vm.AccountTransaction.Date, 'yyyy-MM-dd'),\r\n Description: vm.AccountTransaction.Description,\r\n\r\n }\r\n if (!vm.isEditing) {\r\n AccountTransaction.CraetedBy = logggedUser.UserId\r\n AccountTransactionService.AddAccountTransaction(AccountTransaction).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n AccountTransaction.ModifiedBy = logggedUser.UserId\r\n AccountTransaction.ACT_TransctionId = vm.AccountTransaction.ACT_TransctionId\r\n\r\n AccountTransactionService.editAccountTransaction(AccountTransaction).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function ($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function () {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.AccountTransaction = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.AccountTransactionForm.$setUntouched();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.employeeSalary')\r\n .controller('EmployeeSalaryCtrl', EmployeeSalaryCtrl);\r\n\r\n /** @ngInject */\r\n function EmployeeSalaryCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, projectCreationService, EmployeeService, AuthenticationService,CompanyService, EmployeeSalaryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n \r\n //Method\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.Employeesalary = {};\r\n vm.SaveEmployeeSalary = SaveEmployeeSalary;\r\n vm.editEmployeeSalary = editEmployeeSalary;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init();\r\n\r\n \r\n function Init() {\r\n\r\n \r\n \r\n vm.EmpSalarylist = [{\r\n EmpSalaryDetails: 'Hourly',\r\n \r\n }, {\r\n EmpSalaryDetails: 'Monthly',\r\n \r\n },{\r\n EmpSalaryDetails: 'Yearly',\r\n \r\n }];\r\n \r\n var objGetEmpDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n }\r\n \r\n EmployeeService.getAllEmployees(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n\r\n \r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n EmployeeSalaryService.getAllEmployeeSalary().then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeSalaryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Salary\");\r\n });\r\n }\r\n\r\n function editEmployeeSalary(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.Employeesalary.Salary = row.Salary;\r\n\r\n vm.Employeesalary = angular.copy(row);\r\n\r\n // vm.holiday.Date = new Date(vm.holiday.HolidayDate + \"/\" + vm.holiday.HolidayMonth + \"/\" + vm.holiday.HolidayYear);\r\n\r\n for (var i in vm.EmployeeList) {\r\n if (vm.EmployeeList[i].EmployeeId == vm.Employeesalary.EmployeeId) {\r\n vm.Employeesalary.selectedEmployee = vm.EmployeeList[i]\r\n }\r\n }\r\n\r\n for (var i in vm.EmpSalarylist) {\r\n if (vm.EmpSalarylist[i].CurrencyTypeId === vm.Employeesalary.SalaryDtls) {\r\n vm.Employeesalary.SalaryDtls = vm.EmpSalarylist[i]\r\n }\r\n }\r\n \r\n\r\n\r\n }\r\n\r\n\r\n \r\n function SaveEmployeeSalary() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Employeesalary = {\r\n FirstName: vm.Employeesalary.selectedEmployee.EmployeeId,\r\n Salary: vm.Employeesalary.Salary,\r\n // SalaryDtls: JSON.stringify(obj)\r\n \r\n }\r\n if (!vm.isEditing) {\r\n Employeesalary.CreatedBy = logggedUser.UserId\r\n EmployeeSalaryService.AddEmployeeSalary(Employeesalary).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \" \");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n Employeesalary.ModifiedBy = logggedUser.UserId\r\n Employeesalary.EmployeeSalaryId = vm.Employeesalary.EmployeeSalaryId\r\n EmployeeSalaryService.editEmployeeSalary(Employeesalary).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.Account = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.AccountForm.$setUntouched();\r\n }\r\n\r\n // Date Picker\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function () {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function () {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n // show only Year datepicker\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.open = function ($event) {\r\n $scope.status.opened = true;\r\n };\r\n\r\n $scope.open1 = function () {\r\n $scope.status1.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minMode: 'year'\r\n };\r\n\r\n $scope.formats = ['yyyy'];\r\n $scope.format = $scope.formats[0];\r\n\r\n $scope.status = {\r\n opened: false\r\n };\r\n $scope.status1 = {\r\n opened: false\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.LeaveMaster')\r\n .controller('LeaveMasterCtrl', LeaveMasterCtrl);\r\n\r\n \r\n\r\n function LeaveMasterCtrl($http, $filter, $scope, $rootScope, lodash, dialogs,AuthenticationService,LeaveMasterService,EmployeeService) {\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.Leave = {};\r\n vm.SaveLeaveMaster = SaveLeaveMaster;\r\n vm.editLeaveMaster = editLeaveMaster;\r\n vm.RemoveLeaveMaster = RemoveLeaveMaster;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n\r\n Init(); \r\n \r\n function Init() {\r\n var objGetEmpDTO = {\r\n ActionBy: $rootScope.loggedUserId\r\n }\r\n \r\n EmployeeService.getAllEmployees(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n\r\n \r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n LeaveMasterService.getAllLeaveMaster().then(function (res) {\r\n if (res.status === 200) {\r\n vm.LeaveMasterList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Salary\");\r\n });\r\n }\r\n\r\n function editLeaveMaster(row) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n // vm.Employeesalary.Salary = row.Salary;\r\n vm.Leave.LeaveComponent = row.LeaveComponent;\r\n vm.Leave = angular.copy(row);\r\n vm.Leave.NoOfLeaveDays = row.NoOfLeaveDays;\r\n\r\n // vm.holiday.Date = new Date(vm.holiday.HolidayDate + \"/\" + vm.holiday.HolidayMonth + \"/\" + vm.holiday.HolidayYear);\r\n\r\n for (var i in vm.EmployeeList) {\r\n if (vm.EmployeeList[i].EmployeeId == vm.Employeesalary.EmployeeId) {\r\n vm.Employeesalary.selectedEmployee = vm.EmployeeList[i]\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n function RemoveLeaveMaster(Leave) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n LeaveMasterService.RemoveLeaveMaster(Leave.LeaveMasterId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete LeaveMaster Successfully', \"State\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete LeaveMaster\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete LeaveMaster. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n \r\n function SaveLeaveMaster() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Leave = {\r\n EmployeeId: vm.Leave.selectedEmployee.EmployeeId,\r\n NoOfLeaveDays: vm.Leave.NoOfLeaveDays,\r\n LeaveComponentId : vm.Leave.LeaveComponent.LeaveComponentId,\r\n // SalaryDtls: JSON.stringify(obj)\r\n \r\n }\r\n if (!vm.isEditing) {\r\n Leave.CreatedBy = logggedUser.UserId\r\n LeaveMasterService.AddLeaveMaster(Leave).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \" \");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n Leave.ModifiedBy = logggedUser.UserId\r\n Leave.LeaveMasterId = vm.Leave.LeaveMasterId\r\n LeaveMasterService.editLeaveMaster(Leave).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n \r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n }\r\n \r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.Account = {};\r\n }\r\n \r\n function resetForm() {\r\n vm.LeaveForm.$setUntouched();\r\n }\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n\r\n })();\n\r\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.SalaryComponents')\r\n .controller('SalaryComponentsCtrl', SalaryComponentsCtrl);\r\n\r\n function SalaryComponentsCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, SalaryComponentsService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.SaveSalaryComponent = SaveSalaryComponent;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.SalaryComponentslist = [];\r\n vm.RemoveSalary = RemoveSalary;\r\n vm.editsalary = editsalary;\r\n // vm.resetForm = resetForm;\r\n // vm.editProjectHolidayMaster = editProjectHolidayMaster;\r\n // vm.SaveProjectHolidayMaster = SaveProjectHolidayMaster;\r\n // vm.getAllEmployees = getAllEmployees;\r\n // vm.salarycomponents = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.Employees={};\r\n\r\n\r\n Init();\r\n\r\n function Init() { \r\n\r\n SalaryComponentsService.AllTransaction($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TxnList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n SalaryComponentsService.AllSalaryComponent($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SalaryComponentslist = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n }\r\n\r\n\r\n function SaveSalaryComponent() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var Employees = { \r\n Description: vm.Employees.Description,\r\n TransactionTypeId: vm.Employees.TxnType.TransactionTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n SalaryComponentsService.AddSalaryComponent(Employees).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Account Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Account Master\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n var Employees = { \r\n Description: vm.Employees.Description,\r\n TransactionTypeId: vm.Employees.TxnType.TransactionTypeId, \r\n SalaryComponentId: vm.Employees.SalaryComponentId,\r\n ModifiedBy: logggedUser.UserId\r\n }\r\n SalaryComponentsService.SalaryComponentEdit(Employees).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"State Master\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n cancel();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"State Master\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function RemoveSalary(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n SalaryComponentsService.RemoveSalaryComponent(row.SalaryComponentId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Area Successfully', \"Area\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Area\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Area.
If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n function editsalary(row) {\r\n vm.isEditing = true; \r\n vm.isFormOpen = true;\r\n var CmpDetails = angular.copy(row);\r\n\r\n vm.Employees.SalaryComponentId=CmpDetails.SalaryComponentId;\r\n vm.Employees.Description=CmpDetails.Description;\r\n \r\n for (var c in vm.TxnList) {\r\n if (vm.TxnList[c].TransactionTypeId === CmpDetails.TxnTypeId) {\r\n vm.Employees.TxnType = vm.TxnList[c];\r\n }\r\n }\r\n\r\n\r\n }\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.Employees={};\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n // resetForm();\r\n vm.Employees={};\r\n // vm.Account = {};\r\n }\r\n\r\n // function resetForm() {\r\n // vm.AccountForm.$setUntouched();\r\n // }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.kpostBox')\r\n .controller('KPostBoxIdAllocationCtrl', KPostBoxIdAllocationCtrl);\r\n\r\n /** @ngInject */\r\n function KPostBoxIdAllocationCtrl($http, lodash, $filter, dialogs, $rootScope, AuthenticationService, KPostBoxService, DepartmentServices, DesignationService, OrganizationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.Save = Save;\r\n vm.edit = edit;\r\n vm.remove = remove;\r\n vm.EmpRoleList = [];\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.GetCompanyByOrganization = GetCompanyByOrganization;\r\n vm.GetDepartmentByCompany = GetDepartmentByCompany;\r\n vm.GetDesignationByDepartmentId = GetDesignationByDepartmentId;\r\n vm.GetEmployeeRole = GetEmployeeRole;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n Init();\r\n }\r\n\r\n if (CompanyId != 5) {\r\n vm.isComCheck = true;\r\n }\r\n else {\r\n GetDepartmentByCompany(CompanyId)\r\n }\r\n\r\n\r\n\r\n Init()\r\n\r\n function Init() {\r\n KPostBoxService.GetAllEmployeeAllocation().then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.EmployeeAllocationList = res.data;\r\n getAllOrganization();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOSTBOX ID\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOSTBOX ID\");\r\n });\r\n }\r\n\r\n function getAllOrganization() {\r\n OrganizationService.getAllOrganization().then(function (res) {\r\n if (res.status === 200) {\r\n vm.OrganizationList = res.data;\r\n vm.OrganizationActiveList = lodash.filter(vm.OrganizationList, { 'IsActive': true });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Organization\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Organization\");\r\n });\r\n\r\n }\r\n\r\n function GetCompanyByOrganization(OrgLvlId) {\r\n KPostBoxService.getAllCompany(OrgLvlId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function GetDepartmentByCompany(CompanyId) {\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function GetDesignationByDepartmentId(DepartmentId) {\r\n DesignationService.GetDesigByDepId(DepartmentId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function GetEmployeeRole() {\r\n var obj = {\r\n DepartmentId: vm.kpost.selectedDepartment.DepartmentId,\r\n DesignationId: vm.kpost.selectedDesignation.DesignationId,\r\n isCheck: 1\r\n }\r\n if (CompanyId != 5) {\r\n obj.CompanyId = vm.kpost.selectedCompany.CompanyId\r\n }\r\n\r\n KPostBoxService.GetAllEmployee(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmpRoleList = res.data;\r\n for (var i in vm.EmpRoleList) {\r\n if (vm.EmpRoleList[i].EmpRole < 10 && vm.EmpRoleList[i].EmpRole != null) {\r\n vm.EmpRoleList[i].EmpRole = 0 + '' + vm.EmpRoleList[i].EmpRole\r\n }\r\n }\r\n // vm.EmpRoleList = vm.EmpRoleList.filter(role => role.EmpRole != null);\r\n if (vm.EmpRoleList.length < 1) {\r\n dialogs.notify('Warning', 'No Employee Role available for ' + vm.kpost.selectedDesignation.DesignationName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n function Save() {\r\n debugger;\r\n var Arr = [];\r\n var allocateData = [];\r\n for (var i in vm.kpost.selectedRole) {\r\n Arr.push(vm.kpost.selectedRole[i].EmployeeId)\r\n }\r\n vm.EmployeeId = Arr.join();\r\n // designationID: vm.kpost.selectedRole[i].DesignationId\r\n\r\n // for (var i in vm.kpost.selectedRole) {\r\n // var userProfile = {\r\n // kpostID: vm.kpost.selectedRole[i].KpostBoxId,\r\n // // profileStatus: \"\",\r\n // // ssnType: null,\r\n // // ssnNumber: null,\r\n // // country: vm.kpost.selectedRole[i].PerCountry,\r\n // // state: vm.kpost.selectedRole[i].perState,\r\n // // city: vm.kpost.selectedRole[i].PerCity,\r\n // companyName: vm.kpost.selectedRole[i].CompanyName,\r\n // // pinCode: vm.kpost.selectedRole[i].PerPincode,\r\n // language: \"Yes\",\r\n // alternateMobileno: vm.kpost.selectedRole[i].CommMobile,\r\n // createdBy: loggedUser.Username,\r\n // preferredLanguage: \"English\",\r\n // letterHead: 'lo',\r\n // privacySettings: 0,\r\n // privacyStatus: 0,\r\n // designationID: 6\r\n // }\r\n // var kpostObj = {\r\n // kpostID: vm.kpost.selectedRole[i].KpostBoxId,\r\n // firstName: vm.kpost.selectedRole[i].ShortDescription,\r\n // lastName: vm.kpost.selectedRole[i].LastName,\r\n // password: vm.kpost.selectedRole[i].Password,\r\n // mobileNumber: vm.kpost.selectedRole[i].PerMobile,\r\n // gender: (vm.kpost.selectedRole[i].Gender == 'M') ? \"Male\" : \"Female\",\r\n // dateOfBirth: $filter('date')(vm.kpost.selectedRole[i].DOB, 'yyyy-MM-dd'),\r\n // createdBy: loggedUser.Username,\r\n // createdDate: $filter('date')(new Date(), 'yyyy-MM-dd'),\r\n // activeStatus: 'Yes',\r\n // userProfile: userProfile\r\n // }\r\n // allocateData.push(kpostObj);\r\n // }\r\n // for (var i in vm.kpost.selectedRole) {\r\n // var obj = {\r\n // EmployeeId: vm.kpost.selectedRole[i].EmployeeId,\r\n // ModifiedBy: loggedUser.UserId\r\n // }\r\n // }\r\n\r\n for (var i in vm.kpost.selectedRole) {\r\n var userProfileDetails = {\r\n \r\n kpostID: vm.kpost.selectedRole[i].KpostBoxId,\r\n profileStatus: vm.kpost.selectedRole[i].LastName,\r\n ssnType: \"Aadhar\",\r\n ssnNumber: \"12345678912345\",\r\n country: vm.kpost.selectedRole[i].PerCountry,\r\n state: vm.kpost.selectedRole[i].perState,\r\n city: vm.kpost.selectedRole[i].PerCity,\r\n areaName: vm.kpost.selectedRole[i].areaName, \r\n presentAddress:\"null\",\r\n companyName: vm.kpost.selectedRole[i].CompanyName,\r\n pinCode: vm.kpost.selectedRole[i].PerPincode, \r\n language: \"Yes\",\r\n alternateMobileno: vm.kpost.selectedRole[i].CommMobile,\r\n createdBy: loggedUser.UserId,\r\n preferredLanguage: \"English\",\r\n letterHead: 'lo',\r\n privacySettings: 0,\r\n privacyStatus: 0,\r\n designationID: 6,\r\n officeType:vm.kpost.selectedOrganization.LevelName, \r\n location: \"MRC Nagar\",\r\n department:vm.kpost.selectedDepartment.DepartmentName,\r\n designation:vm.kpost.selectedDesignation.DesignationName \r\n\r\n }\r\n var signUpDetails = {\r\n \r\n kpostID: vm.kpost.selectedRole[i].KpostBoxId,\r\n firstName: vm.kpost.selectedRole[i].ShortDescription,\r\n lastName: vm.kpost.selectedRole[i].LastName,\r\n mobileNumber: vm.kpost.selectedRole[i].PerMobile,\r\n password: vm.kpost.selectedRole[i].Password,\r\n gender: (vm.kpost.selectedRole[i].Gender == 'M') ? \"Male\" : \"Female\",\r\n dateOfBirth: $filter('date')(vm.kpost.selectedRole[i].DOB, 'yyyy-MM-dd'),\r\n createdBy: loggedUser.UserId,\r\n createdDate: $filter('date')(new Date(), 'yyyy-MM-dd'), \r\n email: vm.kpost.selectedRole[i].KpostBoxId+'@kpostbox.com', \r\n activeStatus: 'Yes'\r\n \r\n }\r\n var kpostObj = {\r\n signUpDetails: signUpDetails,\r\n userProfileDetails: userProfileDetails\r\n }\r\n allocateData.push(kpostObj); \r\n }\r\n for (var i in vm.kpost.selectedRole) {\r\n var obj = {\r\n EmployeeId: vm.kpost.selectedRole[i].EmployeeId,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n }\r\n\r\n // console.log(allocateData);\r\n console.log(JSON.stringify(allocateData));\r\n\r\n KPostBoxService.CreateKpostId(allocateData).then(function (res) {\r\n if (res.data.status === \"SUCCESS\") {\r\n $rootScope.UserSendKpost = false;\r\n KPostBoxService.AllocateIdtoEmployee(obj).then(function (res) {\r\n if (res.data.MessgeCode === 1) {\r\n $rootScope.showToaster('success', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = false;\r\n vm.kpost = {};\r\n Init();\r\n }\r\n else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"KPOSTBOX ID Creation\");\r\n }\r\n else {\r\n $rootScope.showToaster('error', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n $rootScope.showToaster('error', \"Failed\", \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function remove(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n KPostBoxService.removeAllocatedEmployee(row.Id).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Company Successfully', \"KPOSTBOXID Allocation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete KPOSTBOXID Allocation\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function edit(row) {\r\n vm.kpost = angular.copy(row);\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.kpostBox')\r\n .controller('KPostBoxIdCreationCtrl', KPostBoxIdCreationCtrl);\r\n\r\n /** @ngInject */\r\n function KPostBoxIdCreationCtrl(dialogs, $rootScope, lodash, AuthenticationService, KPostBoxService, OrganizationService, DesignationService, DepartmentServices) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.Save = Save;\r\n vm.edit = edit;\r\n vm.remove = remove;\r\n vm.isComCheck = false;\r\n vm.GetCompanyByOrganization = GetCompanyByOrganization;\r\n vm.GetDepartmentByCompany = GetDepartmentByCompany;\r\n vm.GetDesignationByDepartmentId = GetDesignationByDepartmentId;\r\n vm.GetEmployeeRole = GetEmployeeRole;\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n }\r\n\r\n function Cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n Init();\r\n });\r\n\r\n\r\n if (CompanyId != 5) {\r\n vm.isComCheck = true;\r\n } else {\r\n GetDepartmentByCompany(CompanyId)\r\n }\r\n }\r\n\r\n Init()\r\n\r\n function Init() {\r\n KPostBoxService.GetAllKpostBoxId().then(function(res) {\r\n if (res.status === 200) {\r\n vm.KpostBoxId = res.data;\r\n OrganizationService.getAllOrganization().then(function(res) {\r\n if (res.status === 200) {\r\n vm.OrganizationList = res.data;\r\n vm.OrganizationActiveList = lodash.filter(vm.OrganizationList, { 'IsActive': true });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Organization\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Organization\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOSTBOX ID\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOSTBOX ID\");\r\n });\r\n }\r\n\r\n function GetCompanyByOrganization(OrgLvlId) {\r\n KPostBoxService.getAllCompany(OrgLvlId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function GetDepartmentByCompany(CompanyId) {\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function GetDesignationByDepartmentId(DepartmentId) {\r\n DesignationService.GetDesigByDepId(DepartmentId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n if (vm.DesignationList.length < 1) {\r\n dialogs.notify('Warning', 'No Department available for ' + vm.kpost.selectedDepartment.DepartmentName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function GetEmployeeRole() {\r\n debugger;\r\n var obj = {\r\n DepartmentId: vm.kpost.selectedDepartment.DepartmentId,\r\n DesignationId: vm.kpost.selectedDesignation.DesignationId\r\n }\r\n if (CompanyId != 5) {\r\n obj.CompanyId = vm.kpost.selectedCompany.CompanyId\r\n }\r\n KPostBoxService.GetAllEmployeeRole(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmpRoleList = res.data;\r\n for (var i in vm.EmpRoleList) {\r\n if (vm.EmpRoleList[i].EmpRole < 10 && vm.EmpRoleList[i].EmpRole != null) {\r\n vm.EmpRoleList[i].EmpRole = 0 + '' + vm.EmpRoleList[i].EmpRole;\r\n //vm.EmpRoleList[i].EmpNameRole = vm.EmpRoleList[i].FirstName + ' '+ vm.EmpRoleList[i].EmpRole\r\n }\r\n }\r\n // vm.EmpRoleList = vm.EmpRoleList.filter(role => role.EmpRole != null);\r\n if (vm.EmpRoleList.length < 1) {\r\n dialogs.notify('Warning', 'No Employee Role available for ' + vm.kpost.selectedDesignation.DesignationName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n function Save(kpost) {\r\n debugger;\r\n if (!vm.isEditing) {\r\n kpost.CreatedBy = loggedUser.UserId\r\n if (vm.isComCheck) {\r\n kpost.ShortDescription = kpost.selectedCompany.CityName + ' ' + kpost.selectedDepartment.DepartmentName + ' ' + kpost.selectedDesignation.DesignationName\r\n\r\n var Arr = kpost.selectedOrganization.LevelName.split(\" \")\r\n var Org = \"\";\r\n for (var i in Arr) {\r\n Org += '' + Arr[i].charAt(0)\r\n }\r\n\r\n var DesArr = kpost.selectedDesignation.DesignationName.split(\" \")\r\n var Des = \"\";\r\n for (var i in DesArr) {\r\n Des += '' + DesArr[i].charAt(0)\r\n }\r\n var ComPlace = vm.kpost.selectedCompany.CityName.substring(0, 3)\r\n kpost.KpostBoxId = (Org + '' + kpost.selectedCompany.CompanyCode + '' + ComPlace + '' + kpost.selectedDepartment.Code + '' + Des + '' + kpost.selectedRole.EmpRole).toLowerCase();\r\n } else {\r\n kpost.ShortDescription = kpost.selectedDepartment.DepartmentName + ' ' + kpost.selectedDesignation.DesignationName\r\n var DesArr = kpost.selectedDesignation.DesignationName.split(\" \") + ' ' + kpost.selectedRole.EmpRole\r\n var Des = \"\";\r\n for (var i in DesArr) {\r\n Des += '' + DesArr[i].charAt(0)\r\n }\r\n\r\n var ComPlace = vm.kpost.selectedCompany.CityName.substring(0, 3)\r\n kpost.KpostBoxId = (kpost.selectedDepartment.Code + '' + Des + '' + kpost.selectedRole.EmpRole).toLowerCase();\r\n }\r\n kpost.EmployeeId = kpost.selectedRole.EmployeeId\r\n\r\n KPostBoxService.SaveKpostBoxId(kpost).then(function(res) {\r\n if (res.data.MessgeCode === 1) {\r\n $rootScope.showToaster('success', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = false;\r\n vm.kpost = {};\r\n Init();\r\n } else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"KPOSTBOX ID Creation\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n KPostBoxService.UpdateKpostBoxId(kpost).then(function(res) {\r\n if (res.data.MessgeCode === 1) {\r\n $rootScope.showToaster('success', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n Init();\r\n } else if (res.data.MessgeCode === -1) {\r\n $rootScope.showToaster('warning', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.kpost = {};\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"KPOSTBOX ID Creation\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n function remove(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are you sure want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n KPostBoxService.removeKpostBoxId(row.Id).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Company Successfully', \"KPOSTBOXID Creation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete KPOSTBOXID Creation\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Company. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function edit(row) {\r\n vm.kpost = angular.copy(row);\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.kpostBox')\r\n .controller('KPostBoxIdContactsCtrl', KPostBoxIdContactsCtrl);\r\n\r\n /** @ngInject */\r\n function KPostBoxIdContactsCtrl(dialogs, $filter, $rootScope, lodash, AuthenticationService, KPostBoxService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.currentPage2 = 1;\r\n vm.rowCountOptions2 = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }];\r\n vm.noOfRows2 = vm.rowCountOptions2[1];\r\n vm.rembemberCurrentPage2 = function(num) {\r\n vm.currentPage2 = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.category = 'All';\r\n vm.isEditing = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.GetKpostEmployees = GetKpostEmployees;\r\n vm.ShowContactList = ShowContactList;\r\n vm.selectContactItem = selectContactItem;\r\n vm.selectNonContactItem = selectNonContactItem;\r\n vm.selectAll = selectAll;\r\n vm.selectRow = selectRow;\r\n vm.isCheck = false;\r\n vm.isnonChecked = false;\r\n\r\n function GetKpostEmployees() {\r\n debugger;\r\n var obj = {\r\n CompanyId: CompanyId,\r\n Category: vm.category,\r\n inputCharacter: vm.text\r\n }\r\n if (vm.KpostBoxContactsList != undefined) {\r\n vm.KpostBoxContactsList = [];\r\n }\r\n KPostBoxService.GetKpostEmployees(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.KpostBoxContactsList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOSTBOX\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOSTBOX\");\r\n });\r\n }\r\n\r\n function ShowContactList(row, num) {\r\n debugger;\r\n vm.AllocatedTo = row.ShortDescription\r\n vm.show = true;\r\n if (num === 1) {\r\n vm.perKpostId = row;\r\n } else {\r\n vm.KpostId = row.KpostBoxId;\r\n vm.perKpostId = row.Id;\r\n }\r\n\r\n if (vm.nonContactsList != undefined) {\r\n vm.nonContactsList = [];\r\n }\r\n if (vm.ContactsList != undefined) {\r\n vm.ContactsList = [];\r\n }\r\n\r\n KPostBoxService.getContactsByKpostId(vm.perKpostId).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data[0].nonContactList != \"\")\r\n vm.nonContactsList = JSON.parse(res.data[0].nonContactList);\r\n if (res.data[0].ContactList != \"\")\r\n vm.ContactsList = JSON.parse(res.data[0].ContactList);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOSTBOX\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOSTBOX\");\r\n });\r\n\r\n }\r\n\r\n function selectRow() {\r\n vm.tempData = [];\r\n vm.kpostIds = [];\r\n for (var i in vm.ContactsList) {\r\n if (vm.ContactsList[i].isChecked) {\r\n if (vm.ContactsList[i].Id != undefined) {\r\n vm.kpostIds.push(vm.ContactsList[i].Id);\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.nonContactsList) {\r\n if (vm.nonContactsList[i].isChecked) {\r\n if (vm.nonContactsList[i].Id != undefined) {\r\n vm.kpostIds.push(vm.nonContactsList[i].Id);\r\n \r\n //var dt = new Date();\r\n //var dtformat = null;\r\n //var dtformat = (`${dt.getFullYear().toString().padStart(4, '0')}-${(dt.getMonth() + 1).toString().padStart(2, '0')}-${dt.getDate().toString().padStart(2, '0')} ${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}`);\r\n var dtformat = $filter('date')(new Date(), 'yyyy-MM-dd HH:mm:ss');\r\n //console.log(dtformat);\r\n var obj = {\r\n kpostID: vm.KpostId,\r\n contactID: vm.nonContactsList[i].KpostBoxId,\r\n contactName: vm.nonContactsList[i].ShortDescription,\r\n contactDispayName: vm.nonContactsList[i].FirstName,\r\n mobileNumber: vm.nonContactsList[i].PerMobile,\r\n email: vm.nonContactsList[i].PerEmailId,\r\n createdDate: dtformat,\r\n }\r\n vm.tempData.push(obj);\r\n //console.log(obj);\r\n }\r\n }\r\n }\r\n\r\n // vm.tableIds = vm.tempData.join(',');\r\n return (vm.tempData);\r\n }\r\n\r\n function selectContactItem() {\r\n var c = vm.ContactsList\r\n for (var i = 0; i < c; i++) {\r\n if (!vm.ContactsList[i].isChecked) {\r\n vm.allContactRowSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n var Arr = lodash.filter(vm.ContactsList, function(f) {\r\n return (f.isChecked == true)\r\n })\r\n\r\n if (Arr.length > 0) {\r\n vm.isCheck = true\r\n } else {\r\n vm.isCheck = false\r\n }\r\n\r\n // vm.allLocRowSelected = true;\r\n\r\n };\r\n\r\n function selectNonContactItem() {\r\n for (var k = 0; k < vm.nonContactsList; k++) {\r\n if (!vm.nonContactsList[k].isChecked) {\r\n vm.allNonContactRowSelected = false;\r\n return;\r\n }\r\n }\r\n var Arr = lodash.filter(vm.nonContactsList, function(f) {\r\n return (f.isChecked == true)\r\n })\r\n if (Arr.length > 0) {\r\n vm.isnonChecked = true\r\n } else {\r\n vm.isnonChecked = false\r\n }\r\n // vm.allIocaRowSelected = true;\r\n }\r\n\r\n function selectAll() {\r\n if (vm.nonContactsList != undefined) {\r\n for (var i = 0; i < vm.nonContactsList.length; i++) {\r\n vm.nonContactsList[i].isChecked = vm.allNonContactRowSelected;\r\n\r\n }\r\n } else if (vm.ContactsList != undefined) {\r\n for (var j = 0; j < vm.ContactsList.length; j++) {\r\n vm.ContactsList[j].isChecked = vm.allContactRowSelected;\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.back = function() {\r\n vm.show = false;\r\n vm.KpostBoxContactsList = [];\r\n vm.text = '';\r\n vm.AllocatedTo = \"\";\r\n vm.ContactsList = [];\r\n vm.nonContactsList = [];\r\n vm.isCheck = false;\r\n vm.isnonChecked = false;\r\n\r\n }\r\n\r\n vm.AddContact = function() {\r\n debugger;\r\n var arr = [];\r\n arr = selectRow();\r\n vm.addobj = {\r\n ContactList: vm.kpostIds.join(','),\r\n CompanyId: CompanyId,\r\n CreatedBy: loggedUser.UserId,\r\n KpostId: vm.perKpostId\r\n }\r\n KPostBoxService.Add_to_Contact_Kpost(arr).then(function(res) {\r\n if (angular.uppercase(res.data.status) === \"SUCCESS\") {\r\n $rootScope.UserSendKpost = false;\r\n KPostBoxService.Add_to_Contact_Cms(vm.addobj).then(function(res) {\r\n if (res.status === 200) {\r\n ShowContactList(vm.perKpostId, 1);\r\n $rootScope.showToaster('success', 'Contact Saved Successfully', \"KPOST BOX\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOST BOX\");\r\n }\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOST BOX\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOST BOX\");\r\n });\r\n }\r\n\r\n vm.removeContact = function() {\r\n debugger\r\n vm.kpostIds = [];\r\n vm.kpostIdList = [];\r\n for (var i in vm.ContactsList) {\r\n if (vm.ContactsList[i].isChecked) {\r\n if (vm.ContactsList[i].Id != undefined) {\r\n vm.kpostIdList.push(vm.ContactsList[i].KpostBoxId);\r\n vm.kpostIds.push(vm.ContactsList[i].Id);\r\n }\r\n }\r\n }\r\n var Kpost_obj = {\r\n \"contactIds\": vm.kpostIdList,\r\n \"kpostID\": vm.KpostId\r\n }\r\n vm.cms_obj = {\r\n ContactList: vm.kpostIds.join(','),\r\n CreatedBy: loggedUser.UserId,\r\n KpostId: vm.perKpostId\r\n }\r\n KPostBoxService.Remove_to_Contact_Kpost(Kpost_obj).then(function(res) {\r\n if (angular.uppercase(res.data.status) === \"SUCCESS\") {\r\n $rootScope.UserSendKpost = false;\r\n //$rootScope.UserSendKpost = true;\r\n KPostBoxService.Remove_to_Contact_Cms(vm.cms_obj).then(function(res) {\r\n if (res.status === 200) {\r\n ShowContactList(vm.perKpostId, 1);\r\n $rootScope.showToaster('success', 'Contact Removed Successfully', \"KPOST BOX\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOST BOX\");\r\n }\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOST BOX\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOST BOX\");\r\n });\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.kpostBox')\r\n .controller('KPostGroupCtrl', KPostGroupCtrl);\r\n\r\n /** @ngInject */\r\n function KPostGroupCtrl($rootScope, $state, lodash, dialogs, $http, AuthenticationService, $scope, KPostBoxService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.MainPannel = false;\r\n vm.MainGrid = true;\r\n vm.buttonhide = true;\r\n vm.MainHeader = true;\r\n vm.SecondaryHeader = false;\r\n vm.UpdateBtn = false;\r\n vm.isEditing = false;\r\n vm.ExistingSearchGrid = false;\r\n vm.UnderGroupName = false;\r\n vm.GroupAdmin = false;\r\n vm.GroupLogo = null;\r\n vm.ExtGroupLogo = null;\r\n vm.UpdateGroupName = UpdateGroupName;\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.EditGroup = EditGroup;\r\n $scope.photoChanged = photoChanged;\r\n vm.editProPic = editProPic;\r\n vm.SaveGroup = SaveGroup;\r\n vm.addGroupMember = addGroupMember;\r\n vm.selectContactItem = selectContactItem;\r\n vm.selectGroupMember = selectGroupMember;\r\n vm.LoadUnderGroupName = LoadUnderGroupName;\r\n vm.GroupContactCancel = GroupContactCancel;\r\n vm.RemoveExistGroupContact = RemoveExistGroupContact;\r\n vm.Group = {};\r\n Init();\r\n\r\n\r\n function Init() {\r\n var inputdata = {\r\n CompanyId: vm.CompanyId,\r\n GroupId: 0,\r\n SearchData: ''\r\n }\r\n KPostBoxService.GetAllGroupCount(inputdata).then(function (res) {\r\n if (res.status == 200) {\r\n vm.GroupManagementList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of Office Setup\")\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of Office Setup\")\r\n });\r\n }\r\n\r\n function LoadUnderGroupName() {\r\n vm.UnderGroupName = false;\r\n vm.hideTodoList = false;\r\n if (vm.Group.AdminShortDesc != undefined && vm.Group.AdminShortDesc != \"\") {\r\n vm.UnderGroupName = true;\r\n var obj = {\r\n CompanyId: vm.CompanyId,\r\n Category: 'All',\r\n inputCharacter: vm.Group.AdminShortDesc\r\n }\r\n KPostBoxService.GetKpostEmployees(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.GroupAdminList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"KPOSTBOX Group\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPOSTBOX Group\");\r\n });\r\n }\r\n }\r\n\r\n vm.ShowContactList = function (row) {\r\n vm.Group.AdminShortDesc = angular.copy(row.ShortDescription);\r\n vm.hideTodoList = true;\r\n vm.SelectedKPostMasterId = row.Id;\r\n vm.Group.AdminKPostId = row.KPostId;\r\n }\r\n\r\n\r\n function SaveValidation() {\r\n vm.isValid = false;\r\n // if (vm.Group.GroupName != undefined && vm.GroupLogo != null && vm.Group.AdminShortDesc != undefined) {\r\n if (vm.Group.GroupName != undefined && vm.Group.AdminShortDesc != undefined) {\r\n vm.isValid = true;\r\n }\r\n\r\n }\r\n\r\n function SaveGroup() {\r\n if (!vm.isEditing) {\r\n SaveValidation()\r\n if (vm.isValid) {\r\n var GroupId = 0;\r\n var inputdata = {\r\n CompanyId: vm.CompanyId,\r\n GroupId: GroupId,\r\n GroupName: vm.Group.GroupName,\r\n GroupAdmin: vm.SelectedKPostMasterId,\r\n CreatedBy: vm.loggedUser.UserId\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"data\", JSON.stringify(inputdata));\r\n formData.append(\"GroupLogo\", vm.GroupLogo);\r\n\r\n KPostBoxService.SaveKPostGroup(formData).then(function (res) {\r\n if (res.status == 200) {\r\n Init();\r\n vm.MainGrid = false;\r\n vm.MainPannel =true;\r\n $rootScope.showToaster(res.data == false ? 'error' : 'success', res.data.Message, 'Group Management')\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Error! Try Again', 'Group Management');\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', 'Group Management');\r\n });\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Please Enter Values', 'Group Management');\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n function UpdateGroupName() {\r\n if (vm.isEditing) {\r\n if (vm.Group.GroupName != undefined) {\r\n if (vm.Group.GroupName.length > 0) {\r\n vm.UpdateBtn = true;\r\n }\r\n else {\r\n vm.UpdateBtn = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function EditGroup(row) {\r\n vm.SavedContactList = [];\r\n vm.ExistingContactList = [];\r\n vm.SelectedGroupId = row.GroupId;\r\n vm.selectedAdminId = row.AdminId;\r\n vm.SelectedGroupName = row.GroupName;\r\n vm.AdminKPostId = row.AdminKpostId;\r\n vm.ShowTileName = \"CreateOfficeform\";\r\n // HideTile(vm.ShowTileName);\r\n vm.MainPannel = true;\r\n vm.MainGrid = false;\r\n vm.isEditing = true;\r\n vm.buttonhide = true;\r\n vm.GroupAdmin = true;\r\n vm.Group = angular.copy(row);\r\n if (vm.Group.KPostGroupIdJSON.length > 0) {\r\n vm.SelectedKPostGroupIdJSON = JSON.parse(vm.Group.KPostGroupIdJSON).memberDetails;\r\n }\r\n vm.Group.AdminShortDesc = row.adminName;\r\n if (row.GroupMemberJson != \"\") {\r\n vm.GroupMemberList = JSON.parse(row.GroupMemberJson);\r\n }\r\n if (row.GroupLogo != \"\") {\r\n vm.empProfilePic = vm.profilePicUrl = $rootScope.endPoint + '/KPOSTGroupProfilePictures/' + row.GroupLogo;\r\n vm.ExtGroupLogo = row.GroupLogo;\r\n }\r\n var inputdata = {\r\n GroupId: vm.SelectedGroupId,\r\n CompanyId: 0,\r\n SearchData: ''\r\n }\r\n KPostBoxService.getGroupExistingContact(inputdata).then(function (res) {\r\n if (res.status == 200) {\r\n vm.GroupContactList = res.data;\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.Back = function () {\r\n vm.MainPannel = false;\r\n vm.isEditing = false;\r\n vm.MainGrid = true;\r\n }\r\n\r\n function selectGroupMember() {\r\n vm.ExistingSearchGrid = false;\r\n if (vm.ContactShortDescription != undefined && vm.ContactShortDescription != \"\") {\r\n vm.ExistingSearchGrid = true;\r\n var inputdata = {\r\n CompanyId: vm.CompanyId,\r\n GroupId: vm.SelectedGroupId,\r\n AdminId:vm.selectedAdminId,\r\n SearchData: vm.ContactShortDescription\r\n }\r\n KPostBoxService.ReadKPostGroup_Consolidated_Contacts(inputdata).then(function (res) {\r\n if (res.status == 200) {\r\n vm.selectContactList = res.data;\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n function addGroupMember() {\r\n vm.membersList = [];\r\n vm.memberIdlist = [];\r\n for (var i in vm.selectContactList) {\r\n if (vm.selectContactList[i].isChecked) {\r\n vm.memberIdlist.push(vm.selectContactList[i].Id);\r\n var Obj = {\r\n \"kpostID\": vm.selectContactList[i].KpostBoxId,\r\n \"privacyStatus\": \"N\",\r\n \"hasAdminAccess\": \"N\",\r\n \"remarks\": 'Created By' + \" \" + vm.AdminKPostId\r\n\r\n }\r\n vm.membersList.push(Obj);\r\n\r\n }\r\n if (vm.Group.KPostGroupIdJSON == null || vm.Group.KPostGroupIdJSON == \"\") {\r\n if (i == (vm.selectContactList.length - 1)) {\r\n var AdmObj = {\r\n \"kpostID\": vm.AdminKPostId,\r\n \"privacyStatus\": \"N\",\r\n \"hasAdminAccess\": \"Y\",\r\n \"remarks\": 'Admin Member'\r\n\r\n }\r\n vm.membersList.push(AdmObj);\r\n }\r\n }\r\n\r\n }\r\n ////////////////////// first Time Add Group members////////////////////////\r\n if (vm.Group.KPostGroupIdJSON == null || vm.Group.KPostGroupIdJSON == \"\") {\r\n var kpostObj = {\r\n \"groupKpostName\": vm.Group.GroupName,\r\n \"groupAdmin\": vm.AdminKPostId,\r\n \"isPrivateGroup\": \"Y\",\r\n \"activeStatus\": \"Y\",\r\n \"memberDetails\": vm.membersList\r\n }\r\n KPostBoxService.AddGroupMember_Kpost(kpostObj).then(function (res) {\r\n if (res.data.status == 'SUCCESS') {\r\n $rootScope.UserSendKpost = false;\r\n vm.SavedGrpMagList = res.data.value;\r\n vm.SavedGrpMemList = res.data.value.memberDetails;\r\n var SavedGrpMemberList = [];\r\n var SavedGrDetails = {};\r\n if (vm.SavedGrpMemList.length > 0) {\r\n for (var j in vm.SavedGrpMemList) {\r\n SavedGrDetails = {\r\n \"id\": vm.SavedGrpMemList[j].id,\r\n \"kpostID\": vm.SavedGrpMemList[j].kpostID\r\n }\r\n SavedGrpMemberList.push(SavedGrDetails);\r\n }\r\n\r\n var SavedPassingData = {\r\n \"groupID\": vm.SavedGrpMagList.groupID,\r\n \"groupKPOSTID\": vm.SavedGrpMagList.groupKPOSTID,\r\n \"memberDetails\": SavedGrpMemberList\r\n }\r\n\r\n\r\n var cmsObj = {\r\n \"GroupId\": vm.SelectedGroupId,\r\n \"GroupMembers\": vm.memberIdlist.join(','),\r\n \"GroupName\": vm.Group.GroupName,\r\n \"KPostGroupIdJSON\": JSON.stringify(SavedPassingData),\r\n \"CreatedBy\":vm.loggedUser.UserId\r\n\r\n }\r\n KPostBoxService.UpdateGroupMember_Cms(cmsObj).then(function (res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster(\"success\", \"Save Successfully\", \"Group Management\")\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n\r\n });\r\n }\r\n else {\r\n var PassingData = {\r\n \"groupAdmin\": vm.AdminKPostId,\r\n \"groupID\": JSON.parse(vm.Group.KPostGroupIdJSON).groupID,\r\n \"groupKPOSTID\": JSON.parse(vm.Group.KPostGroupIdJSON).groupKPOSTID,\r\n \"memberDetails\": vm.membersList\r\n }\r\n KPostBoxService.UpdateGroupMember_Kpost(PassingData).then(function (UpdateGrp) {\r\n if (UpdateGrp.status == 200) {\r\n var lstSavedData = [];\r\n $rootScope.UserSendKpost = false;\r\n for (var a in vm.SelectedKPostGroupIdJSON) {\r\n var lstnewdata = {\r\n \"id\": vm.SelectedKPostGroupIdJSON[a].id,\r\n \"kpostID\": vm.SelectedKPostGroupIdJSON[a].kpostID\r\n }\r\n lstSavedData.push(lstnewdata);\r\n }\r\n\r\n for (var a in UpdateGrp.data.value) {\r\n var lstnewdata = {\r\n \"id\": UpdateGrp.data.value[a].id,\r\n \"kpostID\": UpdateGrp.data.value[a].kpostID\r\n }\r\n // vm.SelectedKPostGroupIdJSON.push(lstnewdata);\r\n lstSavedData.push(lstnewdata);\r\n }\r\n\r\n var SavedPassingData = {\r\n \"groupID\": JSON.parse(vm.Group.KPostGroupIdJSON).groupID,\r\n \"groupKPOSTID\": JSON.parse(vm.Group.KPostGroupIdJSON).groupKPOSTID,\r\n \"memberDetails\": lstSavedData\r\n }\r\n\r\n var inputdata = {\r\n CompanyId: vm.CompanyId,\r\n GroupId: vm.SelectedGroupId,\r\n GroupMembers: vm.memberIdlist.join(','),\r\n KPostGroupIdJSON: JSON.stringify(SavedPassingData),\r\n Process: 'UpdateKPostJson',\r\n CreatedBy:vm.loggedUser.UserId\r\n\r\n }\r\n KPostBoxService.UpdateGroupMember_Cms(inputdata).then(function (Savedres) {\r\n if (Savedres.status == 200) {\r\n var inputdata = {\r\n GroupId: vm.SelectedGroupId,\r\n CompanyId: 0,\r\n SearchData: ''\r\n }\r\n KPostBoxService.getGroupExistingContact(inputdata).then(function (res) {\r\n if (res.status == 200) {\r\n vm.GroupContactList = res.data;\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n });\r\n // vm.SavedContactList = [];\r\n // vm.ExistingContactList = [];\r\n // vm.SavedContactsJSON = Savedres.data[0].SavedContactsJSON;\r\n // vm.OtherContactsJSON = Savedres.data[0].OtherContactsJSON;\r\n // vm.Group.KPostGroupIdJSON = Savedres.data[0].KPostGroupIdJSON;\r\n // if (vm.SavedContactsJSON != \"\") {\r\n // vm.SavedContactList = JSON.parse(vm.SavedContactsJSON);\r\n // }\r\n // if (vm.OtherContactsJSON != \"\") {\r\n // vm.ExistingContactList = JSON.parse(vm.OtherContactsJSON);\r\n // } \r\n\r\n $rootScope.showToaster('success', 'Saved Successfully', 'Group Management');\r\n\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Error! Try Again', 'Group Management');\r\n }\r\n });\r\n\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Error! Try Again', 'Group Management');\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n function GroupContactCancel (){\r\n for (var i = 0; i < vm.GroupContactList.length; i++) { \r\n vm.GroupContactList[i].isChecked = false;\r\n }\r\n }\r\n\r\n function selectContactItem() {\r\n for (var i = 0; i < vm.selectContactList; i++) {\r\n if (!vm.selectContactList[i].isChecked) {\r\n vm.allContactRowSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n for (var i = 0; i < vm.GroupContactList; i++) {\r\n if (!vm.GroupContactList[i].isChecked) {\r\n vm.allContactRowSelected = false;\r\n return;\r\n }\r\n }\r\n // vm.allLocRowSelected = true;\r\n\r\n };\r\n\r\n\r\n function RemoveExistGroupContact() {\r\n var removeContactId = [];\r\n var removeContactKpostId = [];\r\n for (var i in vm.GroupContactList) {\r\n if (vm.GroupContactList[i].isChecked) {\r\n removeContactKpostId.push(vm.GroupContactList[i].KpostBoxId);\r\n removeContactId.push(vm.GroupContactList[i].Id);\r\n }\r\n }\r\n var cmsObj = {\r\n GroupId: vm.SelectedGroupId,\r\n GroupContactList: removeContactId.join(','),\r\n ModifiedBy: vm.loggedUser.UserId\r\n }\r\n var kpostObj = {\r\n \"groupID\": JSON.parse(vm.Group.KPostGroupIdJSON).groupID,\r\n \"userList\": removeContactKpostId\r\n }\r\n KPostBoxService.RemoveGroupMember_Kpost(kpostObj).then(function (res) {\r\n if (res.data.status == 'SUCCESS') {\r\n $rootScope.UserSendKpost = false;\r\n KPostBoxService.RemoveGroupMember_Cms(cmsObj).then(function (res) {\r\n if (res.status == 200) {\r\n $rootScope.showToaster(\"success\", \"Save Successfully\", \"Group Management\")\r\n var inputdata = {\r\n GroupId: vm.SelectedGroupId,\r\n CompanyId: 0,\r\n SearchData: ''\r\n }\r\n KPostBoxService.getGroupExistingContact(inputdata).then(function (res) {\r\n if (res.status == 200) {\r\n vm.GroupContactList = res.data;\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n });\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n });\r\n }\r\n else {\r\n $rootScope.showToaster(\"error\", \"Error! Try Again\", \"Group Management\")\r\n }\r\n\r\n });\r\n }\r\n\r\n vm.CancelGroup = function () {\r\n vm.Group.GroupName = vm.SelectedGroupName;\r\n vm.UpdateBtn = false;\r\n }\r\n\r\n vm.TileBack = function(){\r\n vm.MainPannel = false;\r\n vm.MainGrid = true;\r\n vm.isEditing = false;\r\n vm.Group = {};\r\n }\r\n\r\n\r\n function Create() {\r\n vm.MainPannel = true;\r\n vm.MainGrid = false;\r\n vm.isEditing = false;\r\n vm.UnderGroupName = false;\r\n vm.GroupAdmin = false;\r\n vm.Group = {};\r\n }\r\n\r\n function Cancel() {\r\n vm.selectContactList=[];\r\n vm.ContactShortDescription=null;\r\n }\r\n\r\n\r\n // photo event Start\r\n\r\n\r\n function editProPic() {\r\n vm.isEditingProPic = true;\r\n }\r\n\r\n function photoChanged(event) {\r\n\r\n var reader = new FileReader();\r\n if (!vm.isEditingProPic) {\r\n vm.GroupLogo = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.GroupLogo);\r\n } else {\r\n\r\n vm.GroupLogo = event.target.files[0];\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(vm.GroupLogo);\r\n\r\n var formData = new FormData();\r\n\r\n formData.append('GroupLogo', vm.GroupLogo);\r\n formData.append('GroupId', vm.Group.GroupId);\r\n\r\n formData.append('ExtGroupLogo', vm.ExtGroupLogo);\r\n\r\n ERP_MS_Contact_GroupManagementService.UpdateGroupLogo(formData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', \" Group Logo changed succussfully\", \"Success\");\r\n // Init();\r\n } else {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Internal server Error!', \"Error\");\r\n });\r\n\r\n }\r\n }\r\n\r\n $scope.imageIsLoaded = function (e) {\r\n $scope.$apply(function () {\r\n vm.profilePicUrl = e.target.result;\r\n });\r\n }\r\n\r\n // photo event End\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.kpostBox')\r\n .controller('ShowContactCtrl', ShowContactCtrl);\r\n\r\n /** @ngInject */\r\n function ShowContactCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, KPostBoxService, AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.Init = Init;\r\n vm.currentPage = 1;\r\n vm.shareTo = 'KU';\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n // var sharefile = items.File;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.waitFunction = waitFunction;\r\n vm.ajaxFlagSync = false;\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n function Init() {\r\n KPostBoxService.getContactByKpostId(items.KpostId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContactsList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Try Again', \"Kpost Box\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Kpost Box\");\r\n });\r\n }\r\n\r\n function waitFunction() {\r\n if (vm.ajaxFlagSync == false) {\r\n setTimeout(waitFunction(), 1000);\r\n\r\n }\r\n };\r\n\r\n vm.addContact = function() {\r\n vm.ContactArray = [];\r\n for (var i in vm.ContactsList) {\r\n if (vm.ContactsList[i].isChecked) {\r\n vm.ContactArray.push(vm.ContactsList[i].KpostBoxId)\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n vm.shareKatchup = function() {\r\n vm.addContact();\r\n debugger;\r\n for (var i in vm.ContactArray) {\r\n if (items.pdfUpload) {\r\n var date = new Date();\r\n var file = new File([items.File], 'Report.pdf', { type: \"application/pdf;charset=utf-8\", lastModified: date.getTime() });\r\n var pdfUploadkpost = new FormData();\r\n pdfUploadkpost.append('uploadedfile', file, file.name);\r\n vm.ajaxFlagSync = false;\r\n // $scope.uploadFiles = function(file) {\r\n // $scope.Files = file;\r\n // if (file && file.length > 0) {\r\n // angular.forEach($scope.Files, function(file, key) {\r\n\r\n AWS.config.update({\r\n accessKeyId: 'AKIAX2Q7RHVT73C52UMW',\r\n secretAccessKey: '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',\r\n region: 'ap-south-1',\r\n signatureVersion: 'v4'\r\n });\r\n\r\n var bucket = new AWS.S3({ params: { Bucket: 'kpostcms', maxRetries: 10 }, httpOptions: { timeout: 360000 } });\r\n var path = loggedUser.KpostId + '/katchup/' + vm.ContactArray[i] + '/';\r\n var params = { Bucket: 'kpostcms', Key: path + file.name, ContentType: file.type, Body: file };\r\n var options = {\r\n // Part Size of 10mb\r\n partSize: 10 * 1024 * 1024,\r\n queueSize: 1,\r\n // Give the owner of the bucket full control\r\n ACL: 'public-read'\r\n };\r\n if (file) {\r\n bucket.upload(params, options, function(err, data) {\r\n $scope.path = data.Location;\r\n var fileList = [];\r\n fileList.push(path + file.name);\r\n var attachementPath = '{\"attachmentList\":' + JSON.stringify(fileList) + ',\"captionlist\": []}';\r\n var date = new Date();\r\n var temp = {\r\n 'sender': loggedUser.KpostId,\r\n 'receiver': vm.ContactArray[i],\r\n 'messageType': 0,\r\n 'subject': (vm.Subject != null) ? vm.Subject : '',\r\n 'actualMessage': (vm.Description != null) ? vm.Description : '',\r\n 'attachementPath': attachementPath,\r\n 'messageTime': date.getTime(),\r\n 'serverTime': date.getTime(),\r\n 'status': '0',\r\n 'sessionID': 'Web-Ang5',\r\n 'referenceMessage': null,\r\n 'groupFlag': false\r\n\r\n };\r\n vm.ajaxFlagSync = false;\r\n console.log(temp);\r\n KPostBoxService.shareFile(temp)\r\n .then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.resultList[0].displayMessageStatus === 'Sent') {\r\n $rootScope.showToaster('success', 'Shared Successfully', \"Report\");\r\n if (i == (vm.ContactArray.length - 1)) {\r\n vm.cancel();\r\n }\r\n }\r\n }\r\n vm.ajaxFlagSync = true;\r\n });\r\n vm.ajaxFlagSync = true;\r\n setTimeout(4000);\r\n // waitFunction();\r\n\r\n\r\n });\r\n } else {\r\n\r\n }\r\n // var datas = KPostBoxService.UploadFile(file, loggedUser.KpostId, vm.ContactArray[i], function(result) {\r\n // // Mark as success\r\n // console.log(result)\r\n // file.Success = true;\r\n // }, function(error) {\r\n // // Mark the error\r\n // $scope.Error = error;\r\n // }, function(progress) {\r\n // // Write the progress as a percentage\r\n // file.Progress = (progress.loaded / progress.total) * 100\r\n // });\r\n\r\n // });\r\n // }\r\n // };\r\n // $rootScope.fileUpload(pdfUploadkpost, loggedUser.KpostId, vm.ContactArray[i], function () {\r\n // vm.ajaxFlagSync = true;\r\n // setTimeout(4000);\r\n // if ($rootScope.path != undefined && $rootScope.path != null) {\r\n // var fileList = [];\r\n // fileList.push($rootScope.path);\r\n // var attachementPath = '{\"attachmentList\":' + JSON.stringify(fileList) + ',\"captionlist\": []}';\r\n // var date = new Date();\r\n // var temp = {\r\n // 'sender': loggedUser.KpostId,\r\n // 'receiver': vm.ContactArray[i],\r\n // 'messageType': 0,\r\n // 'subject': (vm.Subject != null) ? vm.Subject : '',\r\n // 'actualMessage': (vm.Description != null) ? vm.Description : '',\r\n // 'attachementPath': attachementPath,\r\n // 'messageTime': date.getTime(),\r\n // 'serverTime': date.getTime(),\r\n // 'status': '0',\r\n // 'sessionID': 'Web-Ang5',\r\n // 'referenceMessage': null,\r\n // 'groupFlag': false\r\n\r\n // };\r\n // vm.ajaxFlagSync = false;\r\n // console.log(temp);\r\n // KPostBoxService.shareFile(temp)\r\n // .then(function (res) {\r\n // if (res.status === 200) {\r\n // if (res.data.resultList[0].displayMessageStatus === 'Sent') {\r\n // $rootScope.showToaster('success', 'Shared Successfully', \"Report\");\r\n // if (i == (vm.ContactArray.length - 1)) {\r\n // vm.cancel();\r\n // }\r\n // }\r\n // }\r\n // vm.ajaxFlagSync = true;\r\n // });\r\n // vm.ajaxFlagSync = true;\r\n // setTimeout(4000);\r\n // // waitFunction();\r\n // }\r\n\r\n // });\r\n // } \r\n } else {\r\n var attachementPath = '{\"attachmentList\":' + JSON.stringify(items.File) + ',\"captionlist\": []}';\r\n var date = new Date();\r\n var temp = {\r\n 'sender': loggedUser.KpostId,\r\n 'receiver': vm.ContactArray[i],\r\n 'messageType': 0,\r\n 'subject': (vm.Subject != null) ? vm.Subject : '',\r\n 'actualMessage': (vm.Description != null) ? vm.Description : '',\r\n 'attachementPath': attachementPath,\r\n 'messageTime': date.getTime(),\r\n 'serverTime': date.getTime(),\r\n 'status': '0',\r\n 'sessionID': 'Web-Ang5',\r\n 'referenceMessage': null,\r\n 'groupFlag': false\r\n\r\n };\r\n vm.ajaxFlagSync = false;\r\n KPostBoxService.shareFile(temp)\r\n .then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.resultList[0].displayMessageStatus === 'Sent') {\r\n $rootScope.showToaster('success', 'Shared Successfully', \"Report\");\r\n if (i == (vm.ContactArray.length - 1)) {\r\n vm.cancel();\r\n }\r\n }\r\n }\r\n vm.ajaxFlagSync = true;\r\n });\r\n vm.ajaxFlagSync = true;\r\n setTimeout(4000);\r\n }\r\n }\r\n }\r\n\r\n vm.cancel = function() {\r\n $rootScope.UserSendKpost = false;\r\n $uibModalInstance.dismiss('cancel');\r\n\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.labourMaster')\r\n .controller('LabourCategoryCtrl', LabourCategoryCtrl);\r\n\r\n /** @ngInject */\r\n function LabourCategoryCtrl($http, $rootScope,$window, lodash, dialogs, LabourCategoryService,AuthenticationService,$scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.LabourCategoryList = {};\r\n vm.ShowLaborCatgeoryReport = ShowLaborCatgeoryReport;\r\n $rootScope.isLogin = false;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n function Init() {\r\n var objlabour;\r\n LabourCategoryService.getAllLabourCategorys($http, $rootScope, objlabour).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LabourCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Labour Category\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Labour Category\");\r\n });\r\n }\r\n\r\n vm.Create = function () {\r\n vm.code = true;\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n }\r\n vm.clear = function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.labour = {};\r\n }\r\n \r\n vm.cancel = function () {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.labour = {};\r\n });\r\n\r\n\r\n }\r\n vm.resetForm = function () {\r\n vm.LabourForm.$setUntouched();\r\n }\r\n\r\n vm.editLabourCategory = function (labour) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.labour = angular.copy(labour);\r\n\r\n }\r\n\r\n vm.changeActiveLabourCategory = function (labour) {\r\n var msg = 'Are sure you want to ' + ((labour.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((labour.IsActive) ? 'Deactive' : 'Active') + 'Labour Category Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n LabourCategoryService.changeActiveLabourCategory(labour.LabrCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'InActive Successfully', \"Labour Category\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Labour Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Labour. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n vm.removeLabourCategory = function (labour) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n LabourCategoryService.removeLabourCategory(labour.LabrCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \" Labour Category\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Labour Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Labour.If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n vm.SaveLabourCategory = function (labour) {\r\n if (!vm.isEditing) {\r\n LabourCategoryService.AddLabourCategory(labour).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Labour Category\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Labour Category\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.clear();\r\n } else {\r\n LabourCategoryService.EditLabourCategory(labour).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Labour Category\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Labour Category\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n vm.clear();\r\n }\r\n }\r\n\r\n function ShowLaborCatgeoryReport() {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n LabourCategoryService.ShowLaborCatgeoryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.labourMaster')\r\n .controller('LabourTypeCtrl', LabourTypeCtrl);\r\n\r\n /** @ngInject */\r\n function LabourTypeCtrl( $scope,$rootScope, lodash, dialogs, $http, $window, LabourTypeService, AuthenticationService, LabourCategoryService, UnitOfMeasurementService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }];\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.filterLabourTypeList = [];\r\n\r\n //Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editLbrType = editLbrType;\r\n vm.removeLabourType = removeLabourType;\r\n vm.SaveLabourType = SaveLabourType;\r\n vm.getAllNonstdUnits = getAllNonstdUnits;\r\n vm.changeActiveLabourType = changeActiveLabourType;\r\n vm.getAllLabourTypeByCat = getAllLabourTypeByCat;\r\n vm.ShowLabourReport = ShowLabourReport;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n function Init() {\r\n LabourTypeService.getAllLabourTypes().then(function (res) {\r\n debugger;\r\n if (res.status === 200) {\r\n res.data;\r\n vm.FilterlabourCategoryList = lodash.uniqBy(res.data, 'LabourCategory.LabrCategoryName');\r\n LabourCategoryService.getAllLabourCategorys().then(function (res) {\r\n if (res.status === 200) {\r\n vm.labourCategoryList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Labour Type\");\r\n }\r\n });\r\n vm.isLoading = false;\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Labour Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Labour Type\");\r\n });\r\n }\r\n\r\n function getAllLabourTypeByCat(LabrCategoryId) {\r\n LabourTypeService.getLabourTypeByLabourCategoryId(LabrCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.filterLabourTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Labour Type\");\r\n }\r\n })\r\n }\r\n\r\n //Non Std Units\r\n function getAllNonstdUnits(callback) {\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function (res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitList = res.data;\r\n vm.isLoading = false;\r\n if (callback);\r\n callback();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Non Std Units\");\r\n });\r\n }\r\n\r\n\r\n\r\n function Create() {\r\n vm.code = true;\r\n vm.isFormOpen = true;\r\n vm.filterLabourTypeList = [];\r\n vm.FilterLabrCategory = null;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.labourType = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.labourType = {};\r\n Init()\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.labourTypeForm.$setUntouched();\r\n }\r\n\r\n function editLbrType(LabourType) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.labourType = angular.copy(LabourType);\r\n \r\n for (var c in vm.labourCategoryList) {\r\n if (vm.labourCategoryList[c].LabrCategoryId === LabourType.LabrCategoryId) {\r\n vm.labourType.selectedLabrCategoryName = vm.labourCategoryList[c];\r\n // vm.selectedNonStdUnitName = vm.NonStdUnitList[c];\r\n }\r\n }\r\n\r\n getAllNonstdUnits(function () {\r\n for (var c in vm.NonStdUnitList) {\r\n if (vm.NonStdUnitList[c].UOM_Id === LabourType.UOM_Id) {\r\n vm.selectedNonStdUnitName = vm.NonStdUnitList[c];\r\n }\r\n }\r\n })\r\n }\r\n\r\n function removeLabourType(LabourType) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n LabourTypeService.removeLabourType(LabourType.LabrTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Labour Type\");\r\n getAllLabourTypeByCat(LabourType.LabrCategoryId);\r\n } else {\r\n dialogs.error('error', \"Can't Delete Labour Type\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveLabourType(LabourType) {\r\n var msg = 'Are sure you want to ' + ((LabourType.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((LabourType.IsActive) ? 'Deactive' : 'Active') + 'Labour Type Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n LabourTypeService.changeActiveLabourType(LabourType.LabrTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'InActive Successfully', \"Labour Type\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Labour Type\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Labour. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n //Save Labour Type\r\n function SaveLabourType(LabourType) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n LabourType.UOM_Id = vm.selectedNonStdUnitName.UOM_Id;\r\n LabourType.LabrCategoryId = vm.labourType.selectedLabrCategoryName.LabrCategoryId;\r\n\r\n if (!vm.isEditing) {\r\n LabourType.CreatedBy = loggedUser.UserId;\r\n LabourTypeService.AddLabourType(LabourType).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Labour Type\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Labour Type\");\r\n }\r\n Init();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n clear();\r\n } else {\r\n LabourType.ModifiedBy = loggedUser.UserId;\r\n LabourTypeService.EditLabourType(LabourType).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Labour Type\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Labour Type\");\r\n }\r\n getAllLabourTypeByCat(LabrCategoryId);\r\n \r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n clear();\r\n }\r\n }\r\n\r\n\r\n function ShowLabourReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputdata = {\r\n CompanyName: 'PIONEER GROUP',\r\n\r\n }\r\n\r\n LabourTypeService.ShowLabourReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('CategoryOfMachineryCtrl', CategoryOfMachineryCtrl);\r\n\r\n /** @ngInject */\r\n function CategoryOfMachineryCtrl($http, $rootScope,$window, lodash, dialogs, categoryOfMachineryService, MachinerySubCategoryService,\r\n CountryService, AuthenticationService, LobMachineryService,$scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.categoryOfMachineryList = [];\r\n $rootScope.isLogin = false;\r\n //Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editCategoryOfMachinery = editCategoryOfMachinery;\r\n vm.removeCategoryOfMachinery = removeCategoryOfMachinery;\r\n vm.changeActiveCategoryOfMachinery = changeActiveCategoryOfMachinery;\r\n vm.SaveCategoryOfMachinery = SaveCategoryOfMachinery;\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.ShowMachineryCategoryReport =ShowMachineryCategoryReport ;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n\r\n\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n function Init() {\r\n categoryOfMachineryService.getAllCategoryOfMachinery($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.categoryOfMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category Of Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category Of Machinery\");\r\n });\r\n\r\n categoryOfMachineryService.FilterCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data; \r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n categoryOfMachineryService.FilterLob().then(function(res) {\r\n if (res.status === 200) {\r\n vm.distinctLobList = res.data; \r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n function getCategoryofMachinery() { \r\n vm.CategoryMachineryList =[]; \r\n var objGetCategory = {\r\n LOB_MachId: vm.selectedLOBFilter.LOB_MachId,\r\n CountryId: vm.selectedCountryFilter.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryMachineryList = res.data; \r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Category\");\r\n }); \r\n\r\n }\r\n\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.code = true;\r\n vm.selectedLOBFilter=null;\r\n vm.distinctLobList=[];\r\n vm.selectedCountryFilter=null;\r\n vm.distinctCountryList=[];\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.isEditing = false;\r\n vm.categoryOfMachinery = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.isEditing = false;\r\n vm.categoryOfMachinery = {};\r\n Init();\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.categoryOfMachineryForm.$setUntouched();\r\n }\r\n\r\n function editCategoryOfMachinery(categoryOfMachinery) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.categoryOfMachinery = angular.copy(categoryOfMachinery);\r\n\r\n for (var i in vm.CountryList) {\r\n if (vm.CountryList[i].CountryId == categoryOfMachinery.Country.CountryId) {\r\n vm.categoryOfMachinery.selectedCountry = vm.CountryList[i];\r\n }\r\n }\r\n for (var j in vm.LobMachineryList) {\r\n if (vm.LobMachineryList[j].LOB_MachId === categoryOfMachinery.LOB_MachId) {\r\n vm.categoryOfMachinery.selectedLOBMachineryName = vm.LobMachineryList[j];\r\n }\r\n }\r\n\r\n }\r\n\r\n function removeCategoryOfMachinery(categoryOfMachinery) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n categoryOfMachineryService.removeCategoryOfMachinery(categoryOfMachinery.CategoryOfMachineryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Category Of Machinery\");\r\n getCategoryofMachinery(vm.selectedLOBFilter.LOB_MachId,vm.selectedCountryFilter.CountryId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Category Of Machinery\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Category Of Machinery. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveCategoryOfMachinery(categoryOfMachinery) {\r\n var msg = 'Are sure you want to ' + ((categoryOfMachinery.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((categoryOfMachinery.IsActive) ? 'Deactive' : 'Active') + 'Category Of Machinery Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n categoryOfMachineryService.changeActiveCategoryOfMachinery(categoryOfMachinery.CategoryOfMachineryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Category Of Machinery\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't InActive Category Of Machinery\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Category Of Machinery. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveCategoryOfMachinery(categoryOfMachinery) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n categoryOfMachinery.LOB_MachId = vm.categoryOfMachinery.selectedLOBMachineryName.LOB_MachId,\r\n categoryOfMachinery.CountryId = vm.categoryOfMachinery.selectedCountry.CountryId\r\n if (!vm.isEditing) {\r\n categoryOfMachinery.CreatedBy = loggedUser.UserId;\r\n categoryOfMachineryService.AddCategoryOfMachinery(categoryOfMachinery).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category Of Machinery Master \");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Category Of Machinery Master \");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n categoryOfMachinery.ModifiedBy = loggedUser.UserId;\r\n categoryOfMachineryService.EditCategoryOfMachinery(categoryOfMachinery).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category Of Machinery Master \");\r\n getCategoryofMachinery(vm.selectedLOBFilter.LOB_MachId,vm.selectedCountryFilter.CountryId);;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Category Of Machinery Master \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n function ShowMachineryCategoryReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n categoryOfMachineryService.ShowMachineryCategoryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('ItemOfMachineryCtrl', ItemOfMachineryCtrl);\r\n\r\n /** @ngInject */\r\n function ItemOfMachineryCtrl($rootScope, lodash, dialogs, $http, MachineryAttributeService, UnitOfMeasurementService,\r\n categoryOfMachineryService, MachinerySubCategoryService, MachineryTypeService, AuthenticationService, MachineryVariableService, IOMachineryService,\r\n LobMachineryService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isFormOpen = false;\r\n vm.Temp = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n // Properties \r\n vm.VariableList = [];\r\n vm.uomNameList = [];\r\n vm.filter = {};\r\n vm.IOMachinery = {};\r\n vm.machinerysubcategory = {};\r\n vm.isCombinationVerified = false;\r\n\r\n // Methods\r\n vm.cancel = cancel;\r\n vm.removeIOMachinery = removeIOMachinery;\r\n vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n vm.getAllCombinations = getAllCombinations;\r\n vm.selectVariable = selectVariable;\r\n vm.clearFilter = clearFilter;\r\n vm.checkCombinationExist = checkCombinationExist;\r\n vm.saveIOMachinery = saveIOMachinery;\r\n vm.loadGrid = loadGrid;\r\n vm.LoadCountry = LoadCountry;\r\n vm.editIOMachinery = editIOMachinery;\r\n vm.selectCategory = false;\r\n vm.selectsubCategory = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.TypeList = false;\r\n vm.form = false;\r\n\r\n LoadLob();\r\n //LoadCountry();\r\n\r\n // Init();\r\n // ////////////////////\r\n\r\n // function Init() {\r\n // var objcategory;\r\n // categoryOfMachineryService.getActiveCategoryOfMachinery(objcategory).then(function(res) {\r\n // if (res.status === 200) {\r\n // vm.machinerycategoryList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function(err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Category Of Machinery\");\r\n // });\r\n // }\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: 'Generic', Code: 'G' }, { TypeOfAttributeName: 'Specific', Code: 'S' }];\r\n\r\n function loadGrid() {\r\n var obj = {\r\n COM_Id: vm.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n MachTypeId: vm.selectedMachineryType.MachTypeId,\r\n SpecType: vm.selectedTypeOfAttribute.Code\r\n }\r\n vm.IOMHList = [];\r\n \r\n IOMachineryService.getAllIOMachinery(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMHList = res.data;\r\n for (var i in vm.IOMHList) {\r\n vm.IOMHList[i].uomNameList=[];\r\n vm.IOMHList[i].UOMList = JSON.parse(vm.IOMHList[i].UOMList);\r\n for (var j in vm.IOMHList[i].UOMList.UomList) {\r\n vm.IOMHList[i].uomNameList.push(vm.IOMHList[i].UOMList.UomList[j].Name);\r\n vm.IOMHList[i].uomName = vm.IOMHList[i].uomNameList.join(',')\r\n }\r\n\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n //// Lob \r\n\r\n vm.Lob = function () {\r\n vm.machinerysubcategory.selectedCountry = \"\";\r\n vm.IOMachinery.selectedMachinerySubCategoryName = \"\";\r\n vm.IOMachinery.selectedMachineryCategoryName = \"\";\r\n vm.IOMachinery.selectedMachineryType = \"\";\r\n vm.getCategoryofMachinery();\r\n vm.form = false;\r\n }\r\n\r\n //// Load All Line Of Business \r\n\r\n function LoadLob() {\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n if (vm.machinerysubcategory.selectedLOBMachineryName) {\r\n vm.CountryList = [];\r\n vm.machinerysubcategory.selectedCountry = null;\r\n vm.machinerycategoryList = [];\r\n vm.selectedMachineryCategoryName = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.selectedMachinerySubCategoryName = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedMachineryType = null;\r\n vm.selectedTypeOfAttribute = null;\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n }\r\n\r\n //// Load All Category By LOB\r\n\r\n vm.getCategoryofMachinery = function () {\r\n if (vm.machinerysubcategory.selectedCountry) {\r\n vm.machinerycategoryList = [];\r\n vm.selectedMachineryCategoryName = null;\r\n vm.machinerySubCategoryList = [];\r\n vm.selectedMachinerySubCategoryName = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedMachineryType = null;\r\n vm.selectedTypeOfAttribute = null;\r\n var objGetCategory = {\r\n LOB_MachId: vm.machinerysubcategory.selectedLOBMachineryName.LOB_MachId,\r\n CountryId: vm.machinerysubcategory.selectedCountry.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.machinerycategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = true;\r\n } else {\r\n vm.selectCategory = false;\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n vm.selectedMachinerySubCategoryName = \"\";\r\n vm.selectedMachineryCategoryName = \"\";\r\n vm.selectedMachineryType = \"\";\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n } else {\r\n vm.selectCategory = false;\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n }\r\n }\r\n\r\n\r\n function getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId, callback) {\r\n if (CategoryOfMachineryId) {\r\n vm.machinerySubCategoryList = [];\r\n vm.selectedMachinerySubCategoryName = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedMachineryType = null;\r\n vm.selectedTypeOfAttribute = null;\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId).then(function (res) {\r\n vm.selectedSubCategory = undefined;\r\n vm.selectedSubCategory = \"\";\r\n vm.selectedTypeOfMachinery = undefined;\r\n vm.selectedTypeOfMachinery = \"\";\r\n if (res.status === 200) {\r\n vm.machinerySubCategoryList = res.data;\r\n if (vm.machinerySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery SubCategory available for ' + vm.selectedMachineryCategoryName.CategoryofMachineryName, { animation: true, size: 'sm' });\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n vm.selectedMachineryType = \"\";\r\n } else {\r\n vm.selectsubCategory = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n function getMachineryTypeListByMachinerySubcategoryId(MachSubCategoryId, callback) {\r\n if (MachSubCategoryId) {\r\n vm.MachineryTypeList = [];\r\n vm.selectedMachineryType = null;\r\n vm.selectedTypeOfAttribute = null;\r\n MachineryTypeService.GetMachTypeBySubCategory(MachSubCategoryId).then(function (res) {\r\n vm.selectedTypeOfMachinery = undefined;\r\n vm.selectedTypeOfMachinery = \"\";\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n if (vm.MachineryTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Type available for ' + vm.selectedSubCategory.SubCategoryName, { animation: true, size: 'sm' });\r\n vm.TypeList = false;\r\n vm.form = false;\r\n } else {\r\n vm.TypeList = true;\r\n vm.form = true;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n function getAllCombinations() {\r\n\r\n var obj = {\r\n COM_Id: vm.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n MachTypeId: vm.selectedMachineryType.MachTypeId,\r\n Code: vm.selectedTypeOfAttribute.Code\r\n }\r\n MachineryVariableService.getAllCombinations(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isAdding = true;\r\n if (res.data) {\r\n vm.rawCombinations = angular.copy(res.data.MachCombinations);\r\n vm.MachCombinations = res.data.MachCombinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n\r\n createViewModel();\r\n } else {\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n });\r\n }\r\n\r\n function selectVariable(attribute, variable) {\r\n vm.isCombinationVerified = false;\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n attribute.selectedVariable = variable.VariableName;\r\n filterVariables();\r\n }\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributeName] = attribute.selectedVariable;\r\n });\r\n\r\n vm.MachCombinations = lodash.filter(vm.MachCombinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributeName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function clearFilter() {\r\n vm.filter = {};\r\n vm.isCombinationVerified = false;\r\n vm.MachCombinations = vm.rawCombinations;\r\n createViewModel();\r\n }\r\n\r\n function editIOMachinery(row) {\r\n vm.ioMhToUpdate = angular.copy(row);\r\n vm.isEditing = true;\r\n vm.isAdding = false;\r\n vm.selectCategory = false;\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.IOMachinery.ShortDescription = angular.copy(row.ShortDescription);\r\n vm.IOMachinery.LongDescription = angular.copy(row.LongDescription);\r\n vm.IOMachinery.UOM_Id = angular.copy(row.UOM_Id);\r\n\r\n var str = vm.IOMachinery.UOM_Id;\r\n var uomIdList = [];\r\n vm.selectedNonStdUnitName = [];\r\n uomIdList = str.split(\",\");\r\n\r\n for (var c in vm.NonStdUnitList) {\r\n for (var u in uomIdList) {\r\n if (vm.NonStdUnitList[c].UOM_Id === parseInt(uomIdList[u])) {\r\n vm.selectedNonStdUnitName.push(vm.NonStdUnitList[c]);\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n function removeIOMachinery(IOMachinery) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n IOMachineryService.removeIOMH(IOMachinery.Id).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"IO Machinery\");\r\n loadGrid();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete IO Machinery\", { animation: true, size: 'sm' });\r\n };\r\n\r\n });\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n })\r\n clear();\r\n }\r\n\r\n function constructLongDescription() {\r\n var description = vm.selectedMachineryCategoryName.CategoryofMachineryName + ' of ' +\r\n vm.selectedMachinerySubCategoryName.SubCategoryName + ' of ' +\r\n vm.selectedMachineryType.MachTypeName + ' ';\r\n\r\n var keys = lodash.keys(vm.filter);\r\n var temp = '';\r\n for (var i in keys) {\r\n temp += '(' + (parseInt(i) + 1) + ') ' + keys[i] + ' : ' + vm.filter[keys[i]] + ' ';\r\n }\r\n description += ', ' + temp;\r\n vm.IOMachinery.LongDescription = description;\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = { AttributeName: vm.rawAttrList[a], VariableList: [] }\r\n for (var c in vm.MachCombinations) {\r\n var test = (lodash.some(temp.VariableList, { \"VariableName\": vm.MachCombinations[c][temp.AttributeName] }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.MachCombinations[c][temp.AttributeName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function (res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Non Std Units\");\r\n });\r\n\r\n function getSelectedCombination() {\r\n var combination = {};\r\n for (var attribute in vm.AttributeList) {\r\n if (vm.AttributeList[attribute].VariableList[0].IsSelected)\r\n combination[vm.AttributeList[attribute].AttributeName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n else\r\n combination[vm.AttributeList[attribute].AttributeName] = '';\r\n }\r\n // combination[vm.AttributeList[attribute].AttributeName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n return combination;\r\n }\r\n\r\n function checkCombinationExist() {\r\n if (lodash.keys(vm.filter).length > 0) {\r\n var obj = {\r\n \"COM_Id\": vm.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n \"MachSubCategoryId\": vm.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n \"MachTypeId\": vm.selectedMachineryType.MachTypeId,\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code,\r\n \"Properties\": JSON.stringify(getSelectedCombination()),\r\n }\r\n IOMachineryService.checkCombinationExist(obj).then(function (res) {\r\n if (res.status == 200) {\r\n if (!res.data) {\r\n vm.isFormOpen = true;\r\n vm.isCombinationVerified = true;\r\n constructLongDescription();\r\n } else {\r\n $rootScope.showToaster('error', 'IO Machinery already exist with given combination');\r\n }\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n }\r\n }, function (err) {\r\n\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', 'Please select a variable from each attribute list');\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.IOMachinery = {};\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.IOMachinery = {};\r\n\r\n });\r\n\r\n\r\n }\r\n vm.resetForm = function () {\r\n clearFilter()\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n vm.IOMachineryForm.$setUntouched();\r\n }\r\n\r\n\r\n function saveIOMachinery() {\r\n \r\n var uom = vm.selectedNonStdUnitName;\r\n var tempData = [];\r\n for (var i in uom) {\r\n if (uom[i].UOM_Id != undefined) {\r\n tempData.push(uom[i].UOM_Id);\r\n }\r\n }\r\n var teststring = JSON.stringify(tempData)\r\n var UOMIds = teststring.substring(1, teststring.length - 1)\r\n //UOM_Id= UOMIds;\r\n \r\n \r\n if (!vm.isEditing) {\r\n var IOMach = {\r\n COM_Id: vm.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n MachTypeId: vm.selectedMachineryType.MachTypeId,\r\n UOM_Id: UOMIds,\r\n Properties: JSON.stringify(getSelectedCombination()),\r\n ShortDescription: vm.IOMachinery.ShortDescription,\r\n LongDescription: vm.IOMachinery.LongDescription,\r\n SpecType: vm.selectedTypeOfAttribute.Code,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n IOMachineryService.AddIOMachinery(IOMach).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"IOMachinery\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"IOMachinery\");\r\n }\r\n loadGrid();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n vm.IOMHList = [];\r\n vm.uomNameList = [];\r\n clear();\r\n\r\n } else {\r\n var obj = {\r\n ShortDescription: vm.IOMachinery.ShortDescription,\r\n LongDescription: vm.IOMachinery.LongDescription,\r\n UOM_Id: UOMIds,\r\n Id: vm.ioMhToUpdate.Id,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n IOMachineryService.UpdateIOMachinery(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', \"Updated Successfully\", \"IOMachinery\");\r\n } else {\r\n $rootScope.showToaster('error', \"Internal Error\", \"IOMachinery\");\r\n }\r\n loadGrid();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n clear();\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('LOBMachineryCtrl', LOBMachineryCtrl);\r\n\r\n /** @ngInject */\r\n function LOBMachineryCtrl($http, $rootScope, lodash, dialogs, LobMachineryService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n \r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.LobMachineryList = [];\r\n $rootScope.isLogin = false;\r\n //Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editLobMachinery = editLobMachinery;\r\n vm.changeActiveLobMachinery = changeActiveLobMachinery;\r\n vm.SaveLobMachinery = SaveLobMachinery;\r\n vm.removeLobMachinery=removeLobMachinery;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n\r\n function Init() {\r\n LobMachineryService.getAllLobMachinery($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Machinery\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.lobMachinery = {};\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.lobMachinery = {};\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.lobMachineryForm.$setUntouched();\r\n }\r\n\r\n function editLobMachinery(lobMachinery) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.lobMachinery = angular.copy(lobMachinery);\r\n }\r\n\r\n function changeActiveLobMachinery(lobMachinery) {\r\n var msg = 'Are sure you want to ' + ((lobMachinery.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((lobMachinery.IsActive) ? 'Deactive' : 'Active') + 'Lob Machinery Successfully.'\r\n var confirm = dialogs.confirm('Confirm', msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n LobMachineryService.changeActiveLobMachinery(lobMachinery.LOB_MachId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Lob Machinery\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Active Lob Machinery\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Active Lob Machinery.If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function removeLobMachinery(lobMachinery) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n LobMachineryService.removeLobMachinery(lobMachinery.LOB_MachId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete LobMachinery Successfully', \"Lob Machinery\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Lob Machinery\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Lob Machinery. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveLobMachinery(lobMachinery) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n lobMachinery.CreatedBy = loggedUser.UserId;\r\n LobMachineryService.AddLobMachinery(lobMachinery).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Lob Machinery\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Lob Machinery\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n } else {\r\n lobMachinery.ModifiedBy = loggedUser.UserId;\r\n LobMachineryService.EditLobMachinery(lobMachinery).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Lob Machinery\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Lob Machinery\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n }\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('MachineryAttributeCtrl', MachineryAttributeCtrl);\r\n\r\n /** @ngInject */\r\n function MachineryAttributeCtrl($scope, $rootScope, lodash, dialogs, $http, MachinerySubCategoryService, AuthenticationService,\r\n categoryOfMachineryService, MachineryAttributeService, MachineryTypeService,\r\n LobMachineryService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n $scope.myFunct = function (event, myValue) {\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('error', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n } \r\n // do something with myValue\r\n };\r\n\r\n $scope.pasteOptions = function(event) {\r\n debugger;\r\n var clipboarddata = window.event.clipboardData.getData('text');\r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var pastedData = window.event.clipboardData.getData('text/plain')\r\n if(pastedData.match(regex) === null) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n }\r\n };\r\n\r\n // End of Pagination code\r\n \r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.selectCategory = true;\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true; \r\n vm.MachineryAttributeList = [];\r\n vm.machinerysubcategory = {};\r\n //Methods\r\n vm.clear = clear;\r\n vm.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n vm.getMachineryTypeListByMachinerySubcategoryId = getMachineryTypeListByMachinerySubcategoryId;\r\n vm.getAttributeListByTypeOfAttribute = getAttributeListByTypeOfAttribute;\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editmachineryattribute = editmachineryattribute;\r\n vm.removemachineryAttribute = removemachineryAttribute;\r\n vm.SaveMachineryAttribute = SaveMachineryAttribute;\r\n\r\n\r\n\r\n Init();\r\n LoadLob();\r\n LoadCountry();\r\n\r\n\r\n function Init() {\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: \"Generic\", Code: \"G\" }, { TypeOfAttributeName: \"Specific\", Code: \"S\" }];\r\n var objMachineryAttribute;\r\n\r\n var objMachineryCategory;\r\n categoryOfMachineryService.getActiveCategoryOfMachinery(objMachineryCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AllmachinerycategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n },\r\n\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinerycategory\");\r\n });\r\n\r\n }\r\n //// country By Lob\r\n\r\n vm.Lob = function() {\r\n vm.machineryattribute.selectedCountry = \"\";\r\n vm.machineryattribute.selectedMachineryCategoryName = \"\";\r\n vm.machineryattribute.selectedMachinerySubCategoryName = \"\";\r\n vm.machineryattribute.selectedMachineryType = \"\";\r\n vm.getCategoryofMachinery();\r\n }\r\n\r\n //// Load All Line Of Business \r\n\r\n function LoadLob() {\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Category By LOB\r\n\r\n function getCategoryofMachinery() {\r\n if (vm.machineryattribute.selectedCountry != null && vm.machineryattribute.selectedCountry != undefined && vm.machineryattribute.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MachId: vm.machineryattribute.selectedLOBMachineryName.LOB_MachId,\r\n CountryId: vm.machineryattribute.selectedCountry.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.machinerycategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n vm.machineryattribute.selectedMachinerySubCategoryName = \"\";\r\n vm.machineryattribute.selectedMachineryType = \"\";\r\n vm.machineryattribute.selectedMachineryType = undefined;\r\n\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n }\r\n }\r\n\r\n // function getAllMachineryAttribute() {\r\n // // vm.MachineryAttributeList = [];\r\n\r\n // vm.AddMaterialAttribute = false;\r\n\r\n // var objMachineryAttribute = {\r\n // MachTypeId: vm.machineryattribute.selectedMachineryType.MachTypeId,\r\n // MachSubCatMachSubCategoryIdegoryId: vm.machineryattribute.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n // CategoryOfMachineryId: vm.machineryattribute.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n // Code: vm.machineryattribute.selectedTypeOfAttribute.Code\r\n // };\r\n\r\n // MaterialAttributeService.getAllMachineryAttribute(objMachineryAttribute).then(function(res) {\r\n // if (res.status === 200) {\r\n // vm.MachineryAttributeList = res.data;\r\n // vm.isLoading = false;\r\n\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Material Attribute\");\r\n // }\r\n // }, function(err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Material Attribute\");\r\n // });\r\n // }\r\n\r\n function getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId, callback) {\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId).then(function(res) {\r\n vm.machineryattribute.selectedMachinerySubCategoryName = undefined;\r\n vm.machineryattribute.selectedMachinerySubCategoryName = \"\";\r\n vm.machineryattribute.selectedMachineryType = undefined;\r\n vm.machineryattribute.selectedMachineryType = \"\";\r\n if (res.status === 200) {\r\n vm.machinerySubCategoryList = res.data;\r\n if (vm.machinerySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No MachinerySubcategiryavailable for ' + vm.machineryattribute.selectedMachineryCategoryName.CategoryofMachineryName, { animation: true, size: 'sm' });\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n } else {\r\n vm.selectsubCategory = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n\r\n }\r\n\r\n function getMachineryTypeListByMachinerySubcategoryId(MachSubCategoryId, callback) {\r\n MachineryTypeService.GetMachTypeBySubCategory(MachSubCategoryId).then(function(res) {\r\n vm.machineryattribute.selectedMachineryType = undefined;\r\n vm.machineryattribute.selectedMachineryType = \"\";\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n if (vm.MachineryTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.machineryattribute.selectedMachinerySubCategoryName.MachinerySubCategoryName, { animation: true, size: 'sm' });\r\n vm.TypeList = true;\r\n } else {\r\n vm.TypeList = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n\r\n }\r\n\r\n function getAttributeListByTypeOfAttribute() {\r\n\r\n var obj = {\r\n COM_Id: vm.machineryattribute.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.machineryattribute.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n MachTypeId: vm.machineryattribute.selectedMachineryType.MachTypeId,\r\n Code: vm.machineryattribute.selectedTypeOfAttribute.Code\r\n }\r\n MachineryAttributeService.getAllMachineryAttribute(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MachineryAttributeList = res.data.Attribute;\r\n if (vm.MachineryAttributeList.length < 1) {\r\n dialogs.notify('Warning', 'No Attribute available for ' + vm.machineryattribute.selectedMachineryType.MachineryTypeName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isAdding = true;\r\n \r\n\r\n }\r\n\r\n function cancel() {\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n vm.machineryattribute.AttributeName = ''; \r\n resetForm();\r\n }\r\n\r\n\r\n function clear() {\r\n vm.machineryattribute = null; \r\n // vm.selectCategory = true;\r\n // vm.selectsubCategory = true;\r\n // vm.TypeList = true;\r\n // vm.machinerysubcategory = {};\r\n vm.machinerysubcategory = {};\r\n }\r\n\r\n function resetForm() {\r\n vm.machineryattributeForm.$setUntouched();\r\n }\r\n\r\n function editmachineryattribute(machineryattribute) {\r\n \r\n vm.isEditing = true; \r\n vm.isFormOpen = true;\r\n vm.machineryattribute.AttributeName = vm.OldAttributeName = machineryattribute.Name;\r\n\r\n\r\n }\r\n\r\n function removemachineryAttribute(machineryattribute) {\r\n\r\n machineryattribute.COM_Id = vm.machineryattribute.selectedMachineryCategoryName.CategoryOfMachineryId;\r\n machineryattribute.MachSubCategoryId = vm.machineryattribute.selectedMachinerySubCategoryName.MachSubCategoryId;\r\n machineryattribute.MachTypeId = vm.machineryattribute.selectedMachineryType.MachTypeId;\r\n machineryattribute.AttributeName = machineryattribute.Name;\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n MachineryAttributeService.removeMachineryAttribute(machineryattribute).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Attribute Successfully', \"Attribute\");\r\n // Init();\r\n getAttributeListByTypeOfAttribute();\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveMachineryAttribute(machineryattribute) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n machineryattribute.COM_Id = vm.machineryattribute.selectedMachineryCategoryName.CategoryOfMachineryId;\r\n machineryattribute.MachSubCategoryId = vm.machineryattribute.selectedMachinerySubCategoryName.MachSubCategoryId;\r\n machineryattribute.MachTypeId = vm.machineryattribute.selectedMachineryType.MachTypeId;\r\n machineryattribute.OldAttributeName = vm.OldAttributeName;\r\n machineryattribute.NewAttributeName = vm.machineryattribute.AttributeName;\r\n machineryattribute.AttributeName = vm.machineryattribute.AttributeName;\r\n\r\n\r\n if (!vm.isEditing) {\r\n\r\n var obj = {\r\n COM_Id: vm.machineryattribute.selectedMachineryCategoryName.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.machineryattribute.selectedMachinerySubCategoryName.MachSubCategoryId,\r\n MachTypeId: vm.machineryattribute.selectedMachineryType.MachTypeId,\r\n AttributeName: vm.machineryattribute.AttributeName,\r\n Code: vm.machineryattribute.selectedTypeOfAttribute.Code,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n\r\n MachineryAttributeService.AddMachineryAttribute(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Attribute Master\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Attribute Master\");\r\n }\r\n getAttributeListByTypeOfAttribute();\r\n \r\n getAttributeListByTypeOfAttribute();\r\n vm.machineryattribute.AttributeName = '';\r\n vm.isAdding = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n \r\n } else {\r\n machineryattribute.ModifiedBy = loggedUser.UserId;\r\n machineryattribute.Code= vm.machineryattribute.selectedTypeOfAttribute.Code\r\n MachineryAttributeService.EditMachineryAttribute(machineryattribute).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Attribute Master\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Attribute Master\");\r\n }\r\n \r\n getAttributeListByTypeOfAttribute();\r\n vm.isAdding = false;\r\n vm.machineryattribute.AttributeName = '';\r\n vm.isEditing = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n \r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('MachinerySubCategoryCtrl', MachinerySubCategoryCtrl);\r\n\r\n /** @ngInject */\r\n function MachinerySubCategoryCtrl($scope, $rootScope, lodash, dialogs, $http, $window, MachinerySubCategoryService, AuthenticationService, categoryOfMachineryService, LobMachineryService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.MachinerySubCategoryList = [];\r\n vm.machinerysubcategory = {};\r\n $rootScope.isLogin = false;\r\n $scope.select = true;\r\n //Methods\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editMatSubCategory = editMatSubCategory;\r\n vm.removeMachinerySubCategory = removeMachinerySubCategory;\r\n vm.ChangeActiveMachinerySubCategory = ChangeActiveMachinerySubCategory;\r\n vm.SaveMachinerySubCategory = SaveMachinerySubCategory;\r\n vm.getFilterCategoryofMachinery = getFilterCategoryofMachinery;\r\n vm.getMachSubcategoryByCategoryId = getMachSubcategoryByCategoryId;\r\n vm.ShowMachinerySubCategoryReport =ShowMachinerySubCategoryReport;\r\n vm.labelCreate =true;\r\n vm.labelEdit= false;\r\n Init();\r\n LoadLob();\r\n LoadCountry();\r\n $scope.NumberOnly = function (event, myValue) {\r\n debugger;\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[0-9]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Please Enter Numbers Only', \"Enter..!\");\r\n return false;\r\n }\r\n // do something with myValue\r\n }\r\n\r\n function Init() {\r\n\r\n MachinerySubCategoryService.getAllMachinerySubCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachinerySubCategoryList = res.data;\r\n var objMachineryCategory;\r\n categoryOfMachineryService.getActiveCategoryOfMachinery(objMachineryCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.categoryOfMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Subcategory\");\r\n }\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Subcategory\");\r\n });\r\n\r\n categoryOfMachineryService.FilterCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n categoryOfMachineryService.FilterLob().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctLobList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function getFilterCategoryofMachinery() {\r\n var objGetCategory = {\r\n LOB_MachId: vm.selectedLOBFilter.LOB_MachId,\r\n CountryId: vm.selectedCountryFilter.CountryId\r\n }\r\n var obj={\r\n Inputs:JSON.stringify(objGetCategory)\r\n }\r\n MachinerySubCategoryService.getFilterCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctMachCatList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Category\");\r\n });\r\n vm.selectedCategoryFilter=null;\r\n }\r\n\r\n function getMachSubcategoryByCategoryId(COM_Id) {\r\n vm.FilterSubCategoryList=[];\r\n if (COM_Id) {\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(COM_Id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FilterSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n\r\n //// Load All Line Of Business\r\n\r\n function LoadLob() {\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n\r\n\r\n vm.Lob = function () {\r\n vm.machinerysubcategory.selectedCountry = \"\";\r\n vm.machinerysubcategory.selectedCategoryofMachineryName = \"\";\r\n vm.getCategoryofMachinery();\r\n }\r\n\r\n //// Load All Category By Lob\r\n\r\n function getCategoryofMachinery() {\r\n if (vm.machinerysubcategory.selectedCountry != null && vm.machinerysubcategory.selectedCountry != undefined && vm.machinerysubcategory.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MachId: vm.machinerysubcategory.selectedLOBMachineryName.LOB_MachId,\r\n CountryId: vm.machinerysubcategory.selectedCountry.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryMachineryList = res.data;\r\n if (res.data.length > 0) {\r\n $scope.select = false;\r\n } else {\r\n $scope.select = true;\r\n vm.CategoryMachineryList = null;\r\n vm.machinerysubcategory.selectedCategoryofMachineryName = \"\";\r\n vm.machinerysubcategory.SubCategoryName = \"\";\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n } else {\r\n $scope.select = true;\r\n vm.CategoryMachineryList = null;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function Create() {\r\n $scope.select = true;\r\n vm.code = true;\r\n vm.isFormOpen = true;\r\n vm.selectedLOBFilter=null;\r\n vm.distinctLobList=[];\r\n vm.selectedCountryFilter=null;\r\n vm.distinctCountryList=[];\r\n vm.selectedCategoryFilter=null;\r\n vm.distinctMachCatList=[];\r\n vm.labelCreate =true;\r\n vm.labelEdit= false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.machinerysubcategory = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.machinerysubcategory = {};\r\n Init();\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.machinerysubcategoryForm.$setUntouched();\r\n }\r\n\r\n function editMatSubCategory(machinerysubcategory) {\r\n vm.labelCreate =false;\r\n vm.labelEdit= true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.machinerysubcategory = angular.copy(machinerysubcategory);\r\n\r\n for (var c in vm.categoryOfMachineryList) {\r\n if (vm.categoryOfMachineryList[c].CategoryOfMachineryId === machinerysubcategory.CategoryOfMachineryId) {\r\n vm.machinerysubcategory.selectedCategoryofMachineryName = vm.categoryOfMachineryList[c];\r\n }\r\n $scope.select = false;\r\n }\r\n\r\n for (var i in vm.LobMachineryList) {\r\n if (vm.LobMachineryList[i].LOB_MachId === machinerysubcategory.CategoryOfMachinery.LOB_MachId) {\r\n vm.machinerysubcategory.selectedLOBMachineryName = vm.LobMachineryList[i];\r\n }\r\n\r\n }\r\n\r\n for (var j in vm.CountryList) {\r\n if (vm.CountryList[j].CountryId == machinerysubcategory.CategoryOfMachinery.CountryId) {\r\n vm.machinerysubcategory.selectedCountry = vm.CountryList[j];\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n function removeMachinerySubCategory(machinerysubcategory) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MachinerySubCategoryService.removeMachinerySubCategory(machinerysubcategory.MachSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Subcategory Of Machinery Successfully', \"Subcategory Of Machinery\");\r\n getMachSubcategoryByCategoryId( vm.selectedCategoryFilter.COM_Id);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Subcategory Of Machinery\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Subcategory Of Machinery. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function ChangeActiveMachinerySubCategory(machinerysubcategory) {\r\n var msg = 'Are sure you want to ' + ((machinerysubcategory.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((machinerysubcategory.IsActive) ? 'Deactive' : 'Active') + 'Subcategory Of Machinery Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MachinerySubCategoryService.ChangeActiveMachinerySubCategory(machinerysubcategory.MachSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Subcategory Of Machinery\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't InActive Subcategory Of Machinery\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Subcategory Of Machinery. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveMachinerySubCategory(machinerysubcategory) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n machinerysubcategory.CategoryOfMachineryId = vm.machinerysubcategory.selectedCategoryofMachineryName.CategoryOfMachineryId;\r\n\r\n if (!vm.isEditing) {\r\n machinerysubcategory.CreatedBy = loggedUser.UserId;\r\n MachinerySubCategoryService.AddMachinerySubCategory(machinerysubcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Machinery SubCategory \");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Machinery SubCategory \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n machinerysubcategory.ModifiedBy = loggedUser.UserId;\r\n MachinerySubCategoryService.EditMachinerySubCategory(machinerysubcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Machinery SubCategory \");\r\n getMachSubcategoryByCategoryId( vm.selectedCategoryFilter.COM_Id);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Machinery SubCategory \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n \r\n function ShowMachinerySubCategoryReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n MachinerySubCategoryService.ShowMachinerySubCategoryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('MachineryTypeCtrl', MachineryTypeCtrl);\r\n\r\n /** @ngInject */\r\n function MachineryTypeCtrl($scope, $rootScope,$window, lodash, dialogs, $http, MachinerySubCategoryService,\r\n categoryOfMachineryService, MachineryTypeService, AuthenticationService,\r\n LobMachineryService, CountryService) {\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.MachineryTypeList = [];\r\n vm.machineryType = {};\r\n $rootScope.isLogin = false;\r\n //Methods\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.getMachSubcategoryByCategoryId = getMachSubcategoryByCategoryId;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editMachineryType = editMachineryType;\r\n vm.removeMachineryType = removeMachineryType;\r\n vm.ChangeActiveMachineryType = ChangeActiveMachineryType;\r\n vm.SaveMachineryType = SaveMachineryType;\r\n vm.getFilterCategoryofMachinery = getFilterCategoryofMachinery;\r\n vm.getFilterSubCategoryofMachinery = getFilterSubCategoryofMachinery;\r\n vm.getMachTypeBySubCategoryId = getMachTypeBySubCategoryId;\r\n vm.ShowMachineryTypeReport = ShowMachineryTypeReport ;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n function Init() {\r\n MachineryTypeService.getAllMachineryType().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"MachineryType\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"MachineryType\");\r\n });\r\n //// Load All Line Of Business \r\n\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n\r\n\r\n //// Load All Country\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n categoryOfMachineryService.FilterCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n categoryOfMachineryService.FilterLob().then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctLobList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function getFilterCategoryofMachinery() {\r\n var objGetCategory = {\r\n LOB_MachId: vm.selectedLOBFilter.LOB_MachId,\r\n CountryId: vm.selectedCountryFilter.CountryId\r\n }\r\n var obj = {\r\n Inputs: JSON.stringify(objGetCategory)\r\n }\r\n MachinerySubCategoryService.getFilterCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctMachCatList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Category\");\r\n });\r\n vm.selectedCategoryFilter=null;\r\n }\r\n\r\n function getFilterSubCategoryofMachinery() {\r\n var objGetCategory = {\r\n CategoryId: vm.selectedCategoryFilter.COM_Id\r\n }\r\n var obj = {\r\n Inputs: JSON.stringify(objGetCategory)\r\n }\r\n MachineryTypeService.getFilterSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctMachSubCatList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Category\");\r\n });\r\n\r\n }\r\n\r\n function getMachTypeBySubCategoryId(MachSubCategoryId) {\r\n vm.FilterTypeList =[];\r\n MachineryTypeService.GetMachTypeBySubCategory(MachSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.FilterTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n //// Load All Category By LOB\r\n\r\n function getCategoryofMachinery(LOB_Id, CountryId, callback) {\r\n if (LOB_Id && CountryId) {\r\n var objGetCategory = {\r\n LOB_MachId: LOB_Id,\r\n CountryId: CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachineryCategoryList = res.data;\r\n if (vm.MachineryCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Category available for ' + vm.machineryType.selectedCountry.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n } else {\r\n vm.MachineryCategoryList = [];\r\n vm.machineryType.selectedMachineryCategoryName = null;\r\n vm.MachinerySubCategoryList = [];\r\n vm.machineryType.selectedMachinerySubCategoryName = null;\r\n vm.machineryType.MachTypeName = '';\r\n }\r\n }\r\n\r\n function getMachSubcategoryByCategoryId(CategoryOfMachineryId, callback) {\r\n if (CategoryOfMachineryId) {\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MachinerySubCategoryList = res.data;\r\n if (vm.MachinerySubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Subcategory available for ' + vm.machineryType.selectedMachineryCategoryName.MachineryCategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n })\r\n }\r\n else {\r\n vm.MachinerySubCategoryList = [];\r\n vm.machineryType.selectedMachinerySubCategoryName = null;\r\n vm.machineryType.MachTypeName = '';\r\n }\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.machineryType = {};\r\n vm.selectedLOBFilter=null;\r\n vm.distinctLobList=[];\r\n vm.selectedCountryFilter=null;\r\n vm.distinctCountryList=[];\r\n vm.selectedCategoryFilter=null;\r\n vm.distinctMachCatList=[];\r\n vm.distinctMachSubCatList=[];\r\n vm.selectedSubCategoryFilter=null;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.machineryType = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.machineryType = {};\r\n Init();\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.machineryTypeForm.$setUntouched();\r\n }\r\n\r\n function editMachineryType(machineryType) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.machineryType = angular.copy(machineryType);\r\n\r\n for (var j in vm.LobMachineryList) {\r\n if (vm.LobMachineryList[j].LOB_MachId === machineryType.CategoryOfMachinery.LOB_MachId) {\r\n vm.machineryType.selectedLOBMachineryName = vm.LobMachineryList[j];\r\n }\r\n }\r\n\r\n for (var k in vm.CountryList) {\r\n if (vm.CountryList[k].CountryId == machineryType.CategoryOfMachinery.CountryId) {\r\n vm.machineryType.selectedCountry = vm.CountryList[k];\r\n }\r\n\r\n }\r\n getCategoryofMachinery(machineryType.CategoryOfMachinery.LOB_MachId, machineryType.CategoryOfMachinery.CountryId, function () {\r\n for (var c in vm.MachineryCategoryList) {\r\n if (vm.MachineryCategoryList[c].CategoryOfMachineryId === machineryType.CategoryOfMachineryId) {\r\n vm.machineryType.selectedMachineryCategoryName = vm.MachineryCategoryList[c];\r\n }\r\n }\r\n\r\n getMachSubcategoryByCategoryId(machineryType.CategoryOfMachinery.CategoryOfMachineryId, function () {\r\n for (var i in vm.MachinerySubCategoryList) {\r\n if (vm.MachinerySubCategoryList[i].MachSubCategoryId === machineryType.MachinerySubCategory.MachSubCategoryId) {\r\n vm.machineryType.selectedMachinerySubCategoryName = vm.MachinerySubCategoryList[i];\r\n }\r\n\r\n }\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n function removeMachineryType(machineryType) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MachineryTypeService.removeMachineryType(machineryType.MachTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Machinery Type\");\r\n getMachTypeBySubCategoryId(vm.selectedSubCategoryFilter.MachSubCategoryId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Machinery Type\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function ChangeActiveMachineryType(machineryType) {\r\n var msg = 'Are sure you want to ' + ((machineryType.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((machineryType.IsActive) ? 'Deactive' : 'Active') + 'Type Of Machinery Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MachineryTypeService.ChangeActiveMachineryType(machineryType.MachTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"Type Of Machinery\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't InActive Type Of Machinery\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive Type Of Machinery. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveMachineryType(machineryType) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n machineryType.CategoryOfMachineryId = vm.machineryType.selectedMachineryCategoryName.CategoryOfMachineryId;\r\n machineryType.MachSubCategoryId = vm.machineryType.selectedMachinerySubCategoryName.MachSubCategoryId;\r\n\r\n if (!vm.isEditing) {\r\n machineryType.CreatedBy = loggedUser.UserId;\r\n MachineryTypeService.AddMachineryType(machineryType).then(function (res) {\r\n\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Machinery Type \");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Machinery Type\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n machineryType.ModifiedBy = loggedUser.UserId;\r\n MachineryTypeService.EditMachineryType(machineryType).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Machinery Type \");\r\n getMachTypeBySubCategoryId(vm.selectedSubCategoryFilter.MachSubCategoryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Machinery Type\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n function ShowMachineryTypeReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n MachineryTypeService.ShowMachineryTypeReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .controller('MachineryVariableCtrl', MachineryVariableCtrl);\r\n\r\n /** @ngInject */\r\n function MachineryVariableCtrl($rootScope, lodash, dialogs, $http, MachineryAttributeService, categoryOfMachineryService,\r\n MachinerySubCategoryService, MachineryTypeService, MachineryVariableService,\r\n LobMachineryService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isFormOpen = false;\r\n vm.Temp = false;\r\n vm.isLoading = true;\r\n vm.VariableList = [];\r\n $rootScope.isLogin = false;\r\n vm.selectCategory = true;\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n //Methods\r\n vm.getSubCategoryListByCategoryId = getSubCategoryListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.getAttributeListByTypeOfAttribute = getAttributeListByTypeOfAttribute;\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.SaveTemp = SaveTemp;\r\n vm.removeVariable = removeVariable;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.removeCombination = removeCombination;\r\n vm.SaveCombinations = SaveCombinations;\r\n vm.deleteVariable = deleteVariable;\r\n // Init();\r\n LoadLob();\r\n LoadCountry();\r\n\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: \"Generic\", Code: \"G\" }, { TypeOfAttributeName: \"Specific\", Code: \"S\" }];\r\n // function Init() {\r\n // var objcategory;\r\n // categoryOfMachineryService.getActiveCategoryOfMachinery(objcategory).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CategoryList = res.data;\r\n // vm.isLoading = false;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Category Of Machinery\");\r\n // });\r\n // }\r\n\r\n //// country By Lob\r\n\r\n vm.Lob = function() {\r\n vm.machinerysubcategory.selectedCountry = \"\";\r\n vm.selectedCategory = \"\";\r\n vm.selectedSubCategory = \"\";\r\n vm.selectedTypeOfMachinery = \"\";\r\n vm.getCategoryofMachinery();\r\n }\r\n\r\n //// Load All Line Of Business \r\n\r\n function LoadLob() {\r\n LobMachineryService.getActiveLobMachinery($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Category By LOB\r\n\r\n function getCategoryofMachinery() {\r\n if (vm.machinerysubcategory.selectedCountry != null && vm.machinerysubcategory.selectedCountry != undefined && vm.machinerysubcategory.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MachId: vm.machinerysubcategory.selectedLOBMachineryName.LOB_MachId,\r\n CountryId: vm.machinerysubcategory.selectedCountry.CountryId\r\n }\r\n MachinerySubCategoryService.getCategoryByLOB(objGetCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n vm.selectedCategory = \"\";\r\n vm.selectedSubCategory = \"\";\r\n vm.selectedTypeOfMachinery = \"\";\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n }\r\n }\r\n\r\n function getSubCategoryListByCategoryId(CategoryOfMachineryId, callback) {\r\n MachinerySubCategoryService.getMachinerySubCategoryListByMachnieryCategoryId(CategoryOfMachineryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery SubCategory available', { animation: true, size: 'sm' });\r\n vm.selectsubCategory = true;\r\n vm.TypeList = true;\r\n vm.selectedSubCategory = \"\";\r\n vm.selectedTypeOfMachinery = \"\";\r\n } else {\r\n vm.selectsubCategory = false;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedTypeOfMachinery = null;\r\n vm.TypeOfMachineryList = [];\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(MachSubCategoryId, callback) {\r\n MachineryTypeService.GetMachTypeBySubCategory(MachSubCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfMachineryList = res.data;\r\n if (vm.TypeOfMachineryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Type available for ' + vm.variable.selectedSubCategory.SubCategoryName, { animation: true, size: 'sm' });\r\n vm.TypeList = true;\r\n vm.selectedTypeOfMachinery = \"\";\r\n } else {\r\n vm.TypeList = false;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n vm.selectedTypeOfMachinery = null;\r\n vm.TypeOfMachineryList = [];\r\n\r\n }\r\n\r\n function deleteVariable(attribute) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete ' + attribute.selectedVariable, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isLoading = true;\r\n debugger;\r\n var obj = {\r\n COM_Id: vm.selectedCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.selectedSubCategory.MachSubCategoryId,\r\n MachTypeId: vm.selectedTypeOfMachinery.MachTypeId,\r\n Code: vm.selectedTypeOfAttribute.Code,\r\n AttributeName: attribute.Name,\r\n VariableName: attribute.selectedVariable\r\n }\r\n MachineryVariableService.deleteVariable(obj).then(function (res) {\r\n if (res.status === 200 && res.data == true) {\r\n attribute.selectedVariable = null;\r\n $rootScope.showToaster('success', 'Removed Successfully', \"Variable\");\r\n getAttributeListByTypeOfAttribute();\r\n }\r\n vm.isLoading = false;\r\n }, function () {\r\n vm.isLoading = false;\r\n })\r\n }, function () {\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getAttributeListByTypeOfAttribute() {\r\n\r\n var obj = {\r\n COM_Id: vm.selectedCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.selectedSubCategory.MachSubCategoryId,\r\n MachTypeId: vm.selectedTypeOfMachinery.MachTypeId,\r\n Code: vm.selectedTypeOfAttribute.Code\r\n }\r\n MachineryAttributeService.getAllMachineryAttribute(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.AttributeList = res.data.Attribute;\r\n if (vm.AttributeList.length < 1) {\r\n dialogs.notify('Warning', 'No Attribute available for ' + vm.selectedTypeOfMachinery.MachTypeName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n }\r\n })\r\n MachineryVariableService.getAllCombinations(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.variableCombinationCollection = res.data.MachCombinations;\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Combination\");\r\n });\r\n\r\n }\r\n\r\n\r\n function SaveTemp(attribute) {\r\n\r\n attribute.IsAdding = ((!(attribute.IsAdding) || attribute.IsAdding === undefined) ? true : false);\r\n\r\n if (!attribute.IsAdding) {\r\n var obj = {\r\n VariableName: attribute.NewVariableName,\r\n COM_Id: vm.selectedCategory.CategoryOfMachineryId,\r\n MachSubCategoryId: vm.selectedSubCategory.MachSubCategoryId,\r\n MachTypeId: vm.selectedTypeOfMachinery.MachTypeId,\r\n AttributeName: attribute.Name,\r\n Code: vm.selectedTypeOfAttribute.Code\r\n }\r\n\r\n\r\n MachineryVariableService.AddVariable(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"variable\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"variable\");\r\n }\r\n vm.isFormOpen = false;\r\n getAttributeListByTypeOfAttribute();\r\n //Init();\r\n attribute.NewVariableName = '';\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n return attribute;\r\n };\r\n }\r\n\r\n function removeVariable(attribute) {\r\n attribute.NewVariableName = '';\r\n attribute.IsAdding = false;\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = false;\r\n vm.AttributeText = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.selectedCategory = null;\r\n vm.selectedSubCategory = null;\r\n vm.selectedTypeOfMachinery = null;\r\n vm.selectedTypeOfAttribute = null;\r\n vm.machinerysubcategory.selectedCountry = null;\r\n vm.machinerysubcategory.selectedLOBMachineryName= null;\r\n resetForm();\r\n }\r\n\r\n function resetForm() {\r\n vm.MachineryVariableForm.$setUntouched();\r\n }\r\n\r\n\r\n function removeCombination(MachCombination) {\r\n\r\n var machineryVariable = {};\r\n machineryVariable.COM_Id = vm.selectedCategory.CategoryOfMachineryId;\r\n machineryVariable.MachSubCategoryId = vm.selectedSubCategory.MachSubCategoryId;\r\n machineryVariable.MachTypeId = vm.selectedTypeOfMachinery.MachTypeId;\r\n machineryVariable.Code = vm.selectedTypeOfAttribute.Code;\r\n var arr1 = vm.AttributeList;\r\n //console.log(arr1);\r\n machineryVariable.MachCombination = MachCombination;\r\n // for (var i = 0; i < arr1.length; i++) {\r\n // if (arr1[i].selectedVariable != undefined) {\r\n // variable.Combination[arr1[i].Name] = arr1[i].selectedVariable;\r\n // }\r\n // }\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n MachineryVariableService.removeCombination(machineryVariable).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Combination\");\r\n getAttributeListByTypeOfAttribute();\r\n // Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Combination\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Combination. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveCombinations(machineryVariable) {\r\n debugger\r\n var attr = vm.AttributeList;\r\n var check = false;\r\n for (var i in attr) {\r\n if (attr[i].selectedVariable != undefined || attr[i].selectedVariable != null) {\r\n check = true;\r\n }\r\n }\r\n if(check){\r\n var machineryVariable = {};\r\n // vm.getSubCategoryListByCategoryId = function(selectedCategory) {\r\n // selectedCategory.CategoryId = vm.selectedCategory.CategoryId;\r\n // }\r\n // vm.getTypeOfCAListBySubcategoryId = function(selectedSubCategory) {\r\n // selectedSubCategory.MachSubCategoryId = vm.selectedSubCategory.SubCategoryId;\r\n // }\r\n\r\n //variable.VariableName = vm.variable.VariableName;\r\n machineryVariable.COM_Id = vm.selectedCategory.CategoryOfMachineryId;\r\n machineryVariable.MachSubCategoryId = vm.selectedSubCategory.MachSubCategoryId;\r\n machineryVariable.MachTypeId = vm.selectedTypeOfMachinery.MachTypeId;\r\n machineryVariable.Code = vm.selectedTypeOfAttribute.Code;\r\n //attribute.AttributeName = attribute.Name;\r\n var arr1 = vm.AttributeList;\r\n //console.log(arr1);\r\n machineryVariable.MachCombination = {};\r\n for (var i = 0; i < arr1.length; i++) {\r\n if (arr1[i].selectedVariable != undefined) {\r\n machineryVariable.MachCombination[arr1[i].Name] = arr1[i].selectedVariable;\r\n }\r\n else\r\n {\r\n machineryVariable.MachCombination[arr1[i].Name]='';\r\n }\r\n }\r\n MachineryVariableService.AddCombination(machineryVariable).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Variable Combinations\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Variable Combinations\");\r\n }\r\n\r\n vm.isFormOpen = false;\r\n // Init();\r\n getAttributeListByTypeOfAttribute();\r\n })\r\n check=false;\r\n }\r\n else {\r\n dialogs.notify('warning', \"Please select a variable\", { animation: true, size: 'sm' });\r\n check = false;\r\n }\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('MANCtrl', MANCtrl);\r\n\r\n /** @ngInject */\r\n function MANCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, MRSService, projectCreationService, MANService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isAdding = false;\r\n vm.LocationList = []\r\n vm.man = {};\r\n vm.IOMList = []\r\n //Method\r\n vm.view = view\r\n vm.cancel = cancel\r\n vm.clear = clear\r\n vm.getMAN = getMAN\r\n vm.SaveMAN = SaveMAN\r\n vm.isView = false;\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n vm.ProjectList = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n }\r\n function getMAN() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.ProjectBasedMRNList = [];\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MANService.GetMRNbyProject(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectBasedMRNList = res.data;\r\n // console.log(vm.ProjectBasedMRNList)\r\n vm.isLoading = false;\r\n if (!vm.ProjectBasedMRNList.length > 0) {\r\n dialogs.error('error', 'No New MRN List', \"MRN List\");\r\n }\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MAN Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"MAN Master\");\r\n });\r\n }\r\n\r\n function view(row) {\r\n debugger;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.isView = true;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n MRNId: row.MRNId,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MANService.PreparationOfMANByMRN(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PreparationofMANList = res.data;\r\n console.log(vm.PreparationofMANList)\r\n vm.ReceiveAt = lodash.find(vm.PreparationofMANList).ReceviedAt;\r\n vm.man.ReceiveAt = vm.ReceiveAt\r\n vm.Project = lodash.find(vm.PreparationofMANList).ProjectName;\r\n vm.man.Project = vm.Project\r\n vm.StoreTypeName = lodash.find(vm.PreparationofMANList).StoreTypeName;\r\n vm.man.StoreTypeName = vm.StoreTypeName\r\n console.log(vm.StoreTypeName)\r\n vm.StoreNo = lodash.find(vm.PreparationofMANList).StoreNo;\r\n vm.man.StoreNo = vm.StoreNo\r\n vm.SupplierName = lodash.find(vm.PreparationofMANList).SupplierName;\r\n vm.man.SupplierName = vm.SupplierName\r\n vm.MRNNumber = lodash.find(vm.PreparationofMANList).MRNNumber;\r\n vm.man.MRNNumber = vm.MRNNumber\r\n vm.MANNumber = lodash.find(vm.PreparationofMANList).MANNumber;\r\n vm.man.NoteNo = vm.MANNumber\r\n vm.isLoading = false;\r\n for (var i in vm.PreparationofMANList) {\r\n if (vm.PreparationofMANList[i].ListOfMaterial != \"\") {\r\n vm.PreparationofMANList[i].List = JSON.parse(vm.PreparationofMANList[i].ListOfMaterial)\r\n vm.filterList = vm.PreparationofMANList[i].List;\r\n }\r\n }\r\n vm.MRNId = row.MRNId\r\n // console.log(vm.MRNId)\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MAN Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"MAN Master\");\r\n });\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.man = {}\r\n vm.isView = false;\r\n });\r\n\r\n\r\n }\r\n\r\n vm.Get = function (row) {\r\n debugger;\r\n if (row.AcceptedQty != undefined) {\r\n var RecQtyDecimal = row.RecQty.toFixed(2);\r\n if (parseFloat(RecQtyDecimal) >= row.AcceptedQty) {\r\n vm.getQty = row.RecQty - row.AcceptedQty\r\n vm.getQty1 = 0;\r\n row.RejectedQty = vm.getQty\r\n }\r\n else {\r\n dialogs.notify('Warning', '! Invalid Qty', {\r\n animation: true,\r\n size: 'sm'\r\n\r\n })\r\n row.AcceptedQty = 0\r\n }\r\n\r\n }\r\n else {\r\n row.RejectedQty = 0\r\n }\r\n\r\n\r\n }\r\n function SaveMAN() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n MRNId: vm.MRNId,\r\n MANNumber: vm.man.NoteNo,\r\n ListIfMaterials: JSON.stringify(vm.filterList),\r\n Comment: vm.man.comment,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n MANService.SaveMAN(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"MRS\");\r\n //Init();\r\n getMAN();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"MRS\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isView = false;\r\n Init();\r\n vm.man = {}\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('initialstockCtrl', initialstockCtrl);\r\n\r\n /** @ngInject */\r\n function initialstockCtrl($http, lodash, $filter, $rootScope, dialogs, AuthenticationService, CompanyService, projectCreationService, StoreLocationSetupService, StoreStaffAllocationService, StockRegistrationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getStoreType = getStoreType;\r\n vm.getStoreNo = getStoreNo;\r\n\r\n vm.getInitStockRegIOM = getInitStockRegIOM;\r\n vm.getInitStockRegmCat = getInitStockRegmCat;\r\n vm.getInitStockRegmSubCat = getInitStockRegmSubCat;\r\n vm.getInitStockRegmType = getInitStockRegmType;\r\n vm.getInitStockRegIOMByTypeId = getInitStockRegIOMByTypeId;\r\n vm.getSaveInitialStock = getSaveInitialStock\r\n vm.getStockDetailsList = getStockDetailsList;\r\n vm.Reset = Reset;\r\n vm.ClearStoreAt = ClearStoreAt;\r\n vm.ClearProject = ClearProject;\r\n vm.StockDetailsList = [];\r\n vm.isView = false;\r\n Init()\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.getAllStore(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreList\");\r\n });\r\n\r\n }\r\n //// Get Project \r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n ClearCompany();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n ClearCompany();\r\n }\r\n }\r\n ////// Get StoreAt \r\n function getStoreType(CompanyId) {\r\n if (CompanyId) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (CompanyId) {\r\n StoreStaffAllocationService.getStoreType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreType available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n function getStoreNo(CompanyId, StoreTypeId) {\r\n \r\n if (StoreTypeId) {\r\n ClearStoreType()\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.getStoreNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreNoList = res.data\r\n console.log(vm.StoreNoList)\r\n if (!vm.StoreNoList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreNo available selected StoreType', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n else {\r\n ClearStoreType()\r\n }\r\n\r\n }\r\n vm.selctionSearch = function () {\r\n debugger;\r\n if (vm.stock.Search == 'advanceSearch')\r\n getInitStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getInitStockRegIOM();\r\n }\r\n }\r\n\r\n\r\n function getInitStockRegIOM() {\r\n\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedWSIOM = null;\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getInitStockRegIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n console.log(vm.IOMList)\r\n if (!vm.IOMList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Item of material available selected StoreNo', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n // vm.stock.From = null;\r\n // vm.stock.To = null;\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM\");\r\n })\r\n }\r\n\r\n function getInitStockRegmCat() {\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getInitStockRegmCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MCategoryList = res.data\r\n if (!vm.MCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category of material available selected StoreNo', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Category\");\r\n })\r\n }\r\n\r\n function getInitStockRegmSubCat() {\r\n if (vm.stock.selectedCategory) {\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n\r\n mCatId: vm.stock.selectedCategory.mCatId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getInitStockRegmSubCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MSubCategoryList = res.data\r\n if (!vm.MSubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no SubCategory of material available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock SubCategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock SubCategory\");\r\n })\r\n }\r\n else {\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getInitStockRegmType() {\r\n if (vm.stock.selectedSubCategory) {\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n\r\n mSubCatId: vm.stock.selectedSubCategory.mSubCatId,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getInitStockRegmType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MTypeList = res.data\r\n if (!vm.MTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Type of material available selected SubCategory', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Type\");\r\n })\r\n }\r\n else {\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getInitStockRegIOMByTypeId() {\r\n if (vm.stock.selectedType) {\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n\r\n mTypeId: vm.stock.selectedType.mTypeId,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getInitStockRegIOMByTypeId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n if (!vm.IOMList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Item of material available selected Type', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM Id\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM Id\");\r\n })\r\n }\r\n else {\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n vm.AfterClearIOM = function () {\r\n if (vm.stock.Search == 'wordSearch') {\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getInitStockRegIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n if (vm.StockDetailsList.length > 0) {\r\n vm.IOMList = _.flatten(_.map(vm.StockDetailsList, function (item) {\r\n return _.filter(vm.IOMList, function (e) {\r\n return e.IOM_Id != item.IOM_Id\r\n });\r\n }));\r\n }\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM\");\r\n })\r\n }\r\n else {\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n mTypeId: vm.stock.selectedType.mTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getInitStockRegIOMByTypeId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n if (vm.StockDetailsList.length > 0) {\r\n vm.IOMList = _.flatten(_.map(vm.StockDetailsList, function (item) {\r\n return _.filter(vm.IOMList, function (e) {\r\n return e.IOM_Id != item.IOM_Id\r\n });\r\n }));\r\n }\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM Id\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM Id\");\r\n })\r\n }\r\n\r\n }\r\n\r\n\r\n function getSaveInitialStock() {\r\n debugger;\r\n var Arr = [];\r\n for (var i in vm.StockDetailsList) {\r\n Arr.push({\r\n IOM_Id: vm.StockDetailsList[i].IOM_Id,\r\n StockQty: vm.StockDetailsList[i].StockQty,\r\n StockNotes: vm.StockDetailsList[i].StockNotes\r\n })\r\n }\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n CreatedBy: logggedUser.UserId,\r\n StockDetails: JSON.stringify(Arr)\r\n }\r\n console.log(obj)\r\n StockRegistrationService.getSaveInitialStock(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"InitialStock\");\r\n Init();\r\n Reset();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"InitialStock\");\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n var Arr = [];\r\n function getStockDetailsList() {\r\n debugger\r\n var obj = {\r\n\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n IOM_Id: (vm.stock.Search == 'wordSearch') ? vm.stock.selectedWSIOM.IOM_Id : vm.stock.selectedASIOM.IOM_Id,\r\n IOM_Description: (vm.stock.Search == 'wordSearch') ? vm.stock.selectedWSIOM.IOM_Description : vm.stock.selectedASIOM.IOM_Description,\r\n UoM: (vm.stock.Search == 'wordSearch') ? vm.stock.selectedWSIOM.UOM_Name : vm.stock.selectedASIOM.UOM_Name,\r\n StockQty: vm.stock.QtyValue,\r\n StockNotes: vm.stock.note,\r\n CreatedBy: logggedUser.Username,\r\n CreatedOn: Date\r\n }\r\n console.log(obj)\r\n Arr.push(obj)\r\n console.log(Arr)\r\n vm.StockDetailsList = Arr\r\n if (vm.StockDetailsList.length > 0) {\r\n vm.isView = true;\r\n vm.stock.selectedWSIOM = null;\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = _.flatten(_.map(vm.StockDetailsList, function (item) {\r\n return _.filter(vm.IOMList, function (e) {\r\n return e.IOM_Id != item.IOM_Id\r\n });\r\n }));\r\n }\r\n\r\n\r\n else {\r\n vm.isView = false;\r\n }\r\n\r\n }\r\n vm.RemoveList = function (row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n var index = vm.StockDetailsList.indexOf(row);\r\n vm.StockDetailsList.splice(index, 1);\r\n if (vm.StockDetailsList.length < 1) {\r\n vm.isView = false;\r\n }\r\n vm.AfterClearIOM();\r\n $rootScope.showToaster('success', ' Deleted Successfully', \"Success\");\r\n });\r\n }\r\n vm.updateStockQty = function (row) {\r\n debugger\r\n var index = vm.StockDetailsList.indexOf(row);\r\n vm.StockDetailsList[index].StockQty = row.StockQty;\r\n $rootScope.showToaster('success', ' Updaed Successfully', \"Success\");\r\n row.isEdit = false;\r\n\r\n }\r\n vm.ViewNote = function (row) {\r\n debugger;\r\n vm.StockNotes = row.StockNotes\r\n dialogs.notify('Note', vm.StockNotes, {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n function Reset() {\r\n vm.stock.selectedCompany = null;\r\n vm.stock.selectedStoreAt = null;\r\n vm.stock.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stock.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.Qty = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n vm.stock.note = null;\r\n vm.stock.QtyValue = null;\r\n }\r\n\r\n function ClearCompany() {\r\n vm.stock.selectedStoreAt = null;\r\n vm.stock.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stock.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.Qty = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreAt() {\r\n vm.stock.selectedProject = null;\r\n vm.stock.selectedStoreType = null;\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.Qty = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearProject() {\r\n vm.stock.selectedStoreType = null;\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.Qty = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreType() {\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n vm.stock.Qty = null;\r\n }\r\n\r\n function ClearStoreNo() {\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n vm.stock.Qty = null;\r\n }\r\n vm.nill = function () {\r\n if (vm.stock.Qty == 'nill') {\r\n vm.stock.QtyValue = 0\r\n }\r\n else { vm.stock.note = null;\r\n vm.stock.QtyValue = null;\r\n vm.stock.QtyValue = '';\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('MICtrl', MICtrl);\r\n\r\n /** @ngInject */\r\n function MICtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, MRSService, projectCreationService, MANService,\r\n MIService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isAdding = false;\r\n\r\n vm.ExistingReceiverBtn = true;\r\n vm.NewReceiverBtn = false;\r\n vm.mi = {};\r\n\r\n //Method\r\n vm.view = view\r\n vm.cancel = cancel\r\n vm.clear = clear\r\n vm.getMI = getMI\r\n vm.getIOM = getIOM\r\n vm.getMaterialIssueType = getMaterialIssueType\r\n vm.getMaterialIssueName = getMaterialIssueName\r\n vm.getRecevierName = getRecevierName\r\n vm.SaveReceiver = SaveReceiver\r\n vm.removeReceiver = removeReceiver\r\n vm.AddNewReceiver = AddNewReceiver\r\n vm.SaveMI = SaveMI\r\n vm.viewPicture = viewPicture\r\n Init();\r\n\r\n function Init() {\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function getIOM() {\r\n if (vm.selectedProjectFilter) {\r\n clearIOM();\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.GetItemofMaterial(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ItemofMaterialList = res.data\r\n if (!vm.ItemofMaterialList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Item of Material available for ' + vm.selectedProjectFilter.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"IOM\");\r\n }\r\n }, function(res) {\r\n dialogs.error('error', 'Error! Try Again', \"IOM\");\r\n })\r\n }\r\n\r\n }\r\n\r\n function getMI(count) {\r\n if (count == 1 && vm.selectedProjectFilter) {\r\n clearIOM();\r\n getMIbyFilter();\r\n } else if (count == 2 && vm.selectedMaterialFilter) {\r\n clearFromDate();\r\n getMIbyFilter();\r\n } else if (count == 3 && vm.StartDate) {\r\n clearToDate();\r\n } else if (count == 4 && vm.ToDate) {\r\n vm.MaterialList = [];\r\n getMIbyFilter();\r\n } else {\r\n if (count == 1) {\r\n clearIOM();\r\n } else if (count == 2) {\r\n clearFromDate();\r\n getMIbyFilter();\r\n\r\n } else if (count == 3) {\r\n clearToDate();\r\n } else if (count == 4)\r\n vm.MaterialList = [];\r\n getMIbyFilter();\r\n }\r\n\r\n }\r\n\r\n function getMIbyFilter() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n IOM_id: (vm.selectedMaterialFilter != undefined) ? vm.selectedMaterialFilter.IOM_id : 0,\r\n FromDate: (vm.StartDate != undefined || vm.StartDate != null) ? $filter('date')(vm.StartDate, 'yyyy/MM/dd') : null,\r\n ToDate: (vm.ToDate != undefined || vm.ToDate != null) ? $filter('date')(vm.ToDate, 'yyyy/MM/dd') : null,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.GetMISDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialIssue Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialIssue Master\");\r\n });\r\n\r\n }\r\n\r\n function view(row) {\r\n vm.MaterialIssueTable = [];\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.isLoading = true;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n MRSId: row.MRSId,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.PreparationofMISDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n console.log(res.data);\r\n debugger;\r\n vm.PreparationofMIList = res.data.PreparationofMISDetails;\r\n vm.MaterialIssueTable = res.data.MaterialIssueTable;\r\n vm.ProjectName = lodash.find(vm.PreparationofMIList).ProjectName;\r\n vm.mi.ProjectName = vm.ProjectName\r\n vm.StoreTypeName = lodash.find(vm.PreparationofMIList).StoreTypeName;\r\n vm.mi.StoreTypeName = vm.StoreTypeName\r\n vm.ReguestedBy = lodash.find(vm.PreparationofMIList).ReguestedBy;\r\n vm.mi.ReguestedBy = vm.ReguestedBy\r\n\r\n vm.StoreNo = lodash.find(vm.PreparationofMIList).StoreNo;\r\n vm.mi.StoreNo = vm.StoreNo\r\n vm.FirstName = lodash.find(vm.PreparationofMIList).FirstName;\r\n vm.mi.FirstName = vm.FirstName\r\n vm.MRSRequistionNo = lodash.find(vm.PreparationofMIList).MRSRequistionNo;\r\n vm.mi.MRSRequistionNo = vm.MRSRequistionNo\r\n vm.MRSRequistionDate = lodash.find(vm.PreparationofMIList).MRSRequistionDate;\r\n vm.mi.MRSRequistionDate = vm.MRSRequistionDate\r\n vm.isLoading = false;\r\n\r\n vm.MRSId = row.MRSId\r\n for (var i in vm.MaterialIssueTable) {\r\n vm.MaterialIssueTable[i].HideDetailsList = JSON.parse(vm.MaterialIssueTable[i].HideDetails)\r\n }\r\n\r\n lodash.forEach(vm.MaterialIssueTable, function(e) {\r\n lodash.map(e.HideDetailsList, function(obj) {\r\n return obj.isSelectedIndent = false;\r\n })\r\n })\r\n vm.isLoading = false;\r\n console.log(e.HideDetailsList);\r\n console.log(vm.MaterialIssueTable);\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialIssue Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialIssue Master\");\r\n });\r\n\r\n }\r\n\r\n function getMaterialIssueType(row) {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n MRSId: row.MRSId,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.GetMaterialIssueType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialIssueTypeList = res.data\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialIssue Master\");\r\n }\r\n }, function(res) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialIssue Master\");\r\n });\r\n }\r\n\r\n function getMaterialIssueName() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n MRSId: vm.MRSId,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n IssueTypeId: vm.mi.selectedIssue.IssueTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.GetMaterialIssueName(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialIssueNameList = res.data\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialIssue Master\");\r\n }\r\n }, function(res) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialIssue Master\");\r\n });\r\n\r\n }\r\n\r\n function getRecevierName() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n MRSId: vm.MRSId,\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.GetReceiverName(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ReceiverNameList = res.data;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialIssue Master\");\r\n }\r\n }, function(res) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialIssue Master\");\r\n });\r\n }\r\n\r\n function SaveReceiver() {\r\n debugger;\r\n vm.ExistingReceiverBtn = true;\r\n vm.NewReceiverBtn = false;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.NewReceiverBtn) {\r\n var obj = {\r\n ReceiverName: vm.mi.Receiver,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MIService.SaveReceiverName(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"StoreType\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"StoreType\");\r\n }\r\n vm.isFormOpen = true;\r\n vm.ExistingReceiverBtn = true;\r\n\r\n vm.mi.Receiver = undefined;\r\n getRecevierName();\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n };\r\n }\r\n\r\n\r\n function AddNewReceiver() {\r\n vm.ExistingReceiverBtn = false;\r\n vm.NewReceiverBtn = true;\r\n }\r\n\r\n function removeReceiver() {\r\n vm.ExistingReceiverBtn = true;\r\n vm.NewReceiverBtn = false;\r\n vm.mi.Receiver = null;\r\n vm.mi.SelectedReceiver = null;\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.mi = {}\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n // vm.select = function (row, i) {\r\n // debugger;\r\n // //Start My Code \r\n\r\n // if (i.isSelectedIndent) {\r\n // row.IssuedQty += parseFloat(i.IOM_Qty)\r\n // var Val = parseFloat(row.IssuedQty).toFixed(2);\r\n // row.ActualIssuedQty = parseFloat(Val);\r\n // vm.TotalIssuedQty = row.IssQty + row.IssuedQty\r\n // if (row.ReqQty >= vm.TotalIssuedQty) {\r\n // row.BalQty = row.ReqQty - vm.TotalIssuedQty\r\n // }\r\n // else\r\n // row.BalQty = vm.TotalIssuedQty - row.ReqQty\r\n // }\r\n // else {\r\n // if (row.IssuedQty >= i.IOM_Qty) {\r\n // row.IssuedQty -= parseFloat(i.IOM_Qty)\r\n // var Val = parseFloat(row.IssuedQty).toFixed(2);\r\n // row.ActualIssuedQty = parseFloat(Val);\r\n // }\r\n // else {\r\n // row.IssuedQty = parseFloat(i.IOM_Qty) - row.IssuedQty\r\n // var Val = parseFloat(row.IssuedQty).toFixed(2);\r\n // row.ActualIssuedQty = parseFloat(Val);\r\n // }\r\n // }\r\n // //End Code\r\n\r\n // };\r\n\r\n vm.select = function(row) {\r\n debugger;\r\n //Start My Code \r\n var HideDetailsList = row.HideDetailsList;\r\n vm.HideDetailsList = HideDetailsList\r\n var IssuedQtyValue = 0.0;\r\n\r\n for (var i in HideDetailsList) {\r\n if (HideDetailsList[i].isSelectedIndent) {\r\n IssuedQtyValue = IssuedQtyValue + parseFloat(HideDetailsList[i].IOM_Qty);\r\n }\r\n }\r\n row.IssuedQty = IssuedQtyValue;\r\n var Val = parseFloat(IssuedQtyValue).toFixed(2);\r\n row.ActualIssuedQty = parseFloat(Val);\r\n vm.TotalIssuedQty = row.IssQty + row.IssuedQty\r\n if (row.IssuedQty != undefined) {\r\n if (row.ReqQty > vm.TotalIssuedQty) {\r\n vm.BalQty = row.ReqQty - vm.TotalIssuedQty\r\n vm.BalQty1 = 0;\r\n row.BalQty = vm.BalQty\r\n } else {\r\n vm.BalQty1 = row.ReqQty - vm.TotalIssuedQty\r\n vm.BalQty = 0;\r\n row.BalQty = vm.BalQty1\r\n }\r\n\r\n\r\n } else {\r\n\r\n row.IssuedQty = 0;\r\n row.ActualIssuedQty = 0;\r\n }\r\n //End Code\r\n\r\n };\r\n\r\n function SaveMI() {\r\n\r\n var temp = lodash.filter(vm.MaterialIssueTable, function(e) {\r\n e.FilterList = lodash.filter(e.HideDetailsList, function(obj) {\r\n return obj.isSelectedIndent\r\n })\r\n return e.FilterList.length > 0\r\n })\r\n\r\n var IOMList = [];\r\n\r\n lodash.forEach(temp, function(e) {\r\n var obj = {\r\n IOM_id: e.IOM_id,\r\n ActualIssuedQty: e.ActualIssuedQty,\r\n HideDetailsList: []\r\n }\r\n lodash.forEach(e.FilterList, function(f) {\r\n obj.HideDetailsList.push({\r\n IOM_id: f.IOM_id,\r\n LastTierId: f.LastTierId,\r\n IOCA_Id: f.IOCA_Id,\r\n BoqQty: f.BoqQty,\r\n IOM_Qty: f.IOM_Qty\r\n })\r\n })\r\n IOMList.push(obj)\r\n })\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n // for (var i in vm.HideDetailsList) {\r\n // if (vm.HideDetailsList[i].isSelectedIndent) {\r\n // vm.HideDetails = JSON.stringify(vm.HideDetailsList[i]);\r\n // }\r\n // }\r\n if (vm.mi.selectedIssue.IssueTypeId == 2) {\r\n vm.Supervisor = vm.mi.selectedSupervisor.SiteSupId\r\n } else {\r\n vm.Contractor = vm.mi.selectedContractor.ContractorId\r\n }\r\n if (IOMList.length > 0) {\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n MRSId: vm.MRSId,\r\n MIssuedId: vm.mi.selectedIssue.IssueTypeId,\r\n MIssuedToId: (vm.Supervisor || vm.Contractor),\r\n MIReceiverId: vm.mi.SelectedReceiver.ReceiverId,\r\n MIDetails: JSON.stringify(IOMList),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n MIService.SaveMI(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MINumber = lodash.find(res.data).MINumber;\r\n dialogs.notify('MaterialIssued No', \"\" + vm.MINumber, { animation: true, size: 'sm' });\r\n\r\n $rootScope.showToaster('success', 'inserted successfully', \"MaterialIssue\");\r\n\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', '!Load failed ..try again', \"MaterialIssue\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n dialogs.notify('Warning', '! Select Location', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n }\r\n\r\n }\r\n\r\n vm.ViewHistory = function(row) {\r\n debugger;\r\n vm.isFormOpen = true;\r\n vm.History = []\r\n vm.History = row.HistoryList\r\n\r\n if (vm.History == undefined || vm.History == null) {\r\n dialogs.notify('Warning', '! There is no history available', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n\r\n } else {\r\n vm.IOM_Code = lodash.find(vm.History).IOM_Code;\r\n vm.mi.IOM_Code = vm.IOM_Code;\r\n }\r\n }\r\n vm.close = function() {\r\n vm.History = [];\r\n }\r\n\r\n function clear() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n vm.mi = {}\r\n\r\n\r\n }\r\n\r\n function viewPicture() {\r\n dialogs.notify('Warning', '! There is no picture available ', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n }\r\n\r\n\r\n\r\n function clearIOM() {\r\n vm.MaterialList = [];\r\n vm.selectedMaterialFilter = null;\r\n vm.ItemofMaterialList = [];\r\n vm.StartDate = null;\r\n vm.ToDate = null;\r\n }\r\n\r\n function clearFromDate() {\r\n vm.MaterialList = [];\r\n vm.StartDate = null;\r\n vm.ToDate = null;\r\n }\r\n\r\n function clearToDate() {\r\n vm.ToDate = null;\r\n }\r\n\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n //minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.StartDate;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('MRNCtrl', MRNCtrl);\r\n\r\n /** @ngInject */\r\n function MRNCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, CompanyService,\r\n MRSService, MRNService, projectCreationService, $sce) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n // End of Pagination code\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isAdding = false;\r\n vm.LocationList = []\r\n vm.IOMList = []\r\n //Method\r\n\r\n vm.cancel = cancel\r\n vm.clear = clear\r\n vm.getProjectByCompany = getProjectByCompany\r\n vm.getStoreType = getStoreType\r\n vm.getStoreNo = getStoreNo\r\n vm.getMRNno = getMRNno\r\n vm.getSupplier = getSupplier\r\n vm.getPurchaseOrderNo = getPurchaseOrderNo\r\n vm.getSupplierDoc = getSupplierDoc\r\n vm.loadgrid = loadgrid\r\n vm.SaveMRN = SaveMRN\r\n vm.validationattach = validationattach\r\n vm.Savebtn = false;\r\n\r\n Init();\r\n\r\n function Init() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getRequestfor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RequestList = res.data;\r\n console.log(vm.RequestList)\r\n vm.isLoading = false;\r\n MRNService.Typeofpurchase(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PurchaseTypeList = res.data;\r\n console.log(vm.PurchaseTypeList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"PurchaseType\");\r\n }\r\n });\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Request\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Request\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getStoreType(CompanyId, callback) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n CompanyId: vm.mrn.selectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (CompanyId) {\r\n MRSService.getStoreType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n console.log(vm.StoreTypeList)\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', 'No Data.! Store Not Allocated for Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n }\r\n }\r\n\r\n function getStoreNo() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CompanyId: vm.mrn.selectedCompany.CompanyId,\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n StoreTypeId: vm.mrn.SelectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getStoreNo(obj).then(function(res) {\r\n console.log(res);\r\n if (res.status === 200) {\r\n\r\n // vm.StoreNo = lodash.find(res.data).StoreNo;\r\n // vm.tStoreSetupId = lodash.find(res.data).tStoreSetupId;\r\n // console.log(vm.StoreNo)\r\n // vm.mrn.StoreNo = vm.StoreNo\r\n vm.StoreNoList = res.data\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n\r\n function getMRNno() {\r\n\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRNService.GetMRNNumber(obj).then(function(res) {\r\n console.log(res);\r\n if (res.status === 200) {\r\n vm.MRNNo = lodash.find(res.data).MRNNUMBER;\r\n console.log(vm.StoreNo)\r\n vm.mrn.MRNNo = vm.MRNNo\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MRN Number\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"MRN Number\");\r\n });\r\n }\r\n\r\n function getSupplier() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRNService.GetSupplier(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SupplierList = res.data;\r\n console.log(vm.SupplierList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Supplier\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Supplier\");\r\n });\r\n }\r\n\r\n function getPurchaseOrderNo() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n SupplierId: vm.mrn.SelectedSupplier.SupplierId,\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRNService.GetPurchaseOrderNo(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.PurchaseOrderList = res.data;\r\n console.log(vm.PurchaseOrderList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Purchase\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Purchase\");\r\n });\r\n }\r\n\r\n function getSupplierDoc() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRNService.GetSupplierDocType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SupplierDocList = res.data;\r\n console.log(vm.SupplierDocList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Supplier\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Supplier\");\r\n });\r\n }\r\n\r\n function loadgrid() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n TypeOfStoreId: vm.mrn.SelectedStoreType.StoreTypeId,\r\n StoreId: vm.mrn.SelectedStoreNo.tStoreSetupId,\r\n PrepareMRNFor: vm.mrn.SelectedPrepare.ReguestForId,\r\n TypeOfPurchase: vm.mrn.SelectedPurchase.TypeOfPurchaseId,\r\n SupplierId: vm.mrn.SelectedSupplier.SupplierId,\r\n PurchaseOrderId: vm.mrn.SelectedOrder.PurchaseOrderId,\r\n TypeOfSupDoc: vm.mrn.SelectedDocument.SupplierDocTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRNService.GetMRN(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MRNList = res.data;\r\n console.log(vm.MRNList)\r\n\r\n for (var i in vm.MRNList) {\r\n var MoneyConv = parseFloat(vm.MRNList[i].POQTY).toFixed(2)\r\n //////////////////\r\n\r\n var x = MoneyConv;\r\n x = x.toString();\r\n var afterPoint = '';\r\n if (x.indexOf('.') > 0)\r\n afterPoint = x.substring(x.indexOf('.'), x.length);\r\n x = Math.floor(x);\r\n x = x.toString();\r\n var lastThree = x.substring(x.length - 3);\r\n var otherNumbers = x.substring(0, x.length - 3);\r\n if (otherNumbers != '')\r\n lastThree = ',' + lastThree;\r\n\r\n vm.MRNList[i].POQTY = parseFloat(vm.MRNList[i].POQTY).toFixed(2);\r\n vm.MRNList[i].RECQTY = parseFloat(vm.MRNList[i].RECQTY).toFixed(2);\r\n vm.MRNList[i].TOTQTY = parseFloat(vm.MRNList[i].TOTQTY).toFixed(2);\r\n vm.MRNList[i].BalanceQty = parseFloat(vm.MRNList[i].BalanceQty).toFixed(2);\r\n vm.MRNList[i].ExcessQty = parseFloat(vm.MRNList[i].ExcessQty).toFixed(2);\r\n\r\n\r\n ////////////////////\r\n\r\n }\r\n for (var i in vm.MRNList) {\r\n if (vm.MRNList[i].History != \"\") {\r\n vm.MRNList[i].HistoryList = JSON.parse(vm.MRNList[i].History)\r\n // vm.filterList = vm.MRNList[i].HistoryList;\r\n }\r\n }\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MRN\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"MRN\");\r\n });\r\n\r\n }\r\n vm.ViewHistory = function(row) {\r\n debugger;\r\n vm.isFormOpen = true;\r\n vm.History = []\r\n vm.History = row.HistoryList\r\n for (var i in vm.History) {\r\n if (vm.History[i].RecQty == undefined)\r\n vm.History[i].RecQty = 0.00\r\n }\r\n\r\n if (vm.History == undefined || vm.History == null) {\r\n dialogs.notify('Warning', '! There is no history available', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n\r\n } else {\r\n vm.IOM_id = lodash.find(vm.History).IOM_id;\r\n vm.mrn.IOM_id = vm.IOM_id;\r\n }\r\n }\r\n vm.close = function() {\r\n vm.History = [];\r\n }\r\n vm.Get = function(row) {\r\n debugger;\r\n if (row.ReceivedQty != undefined) {\r\n vm.checkamt = 0;\r\n vm.checkamt = (parseFloat(row.ReceivedQty) + parseFloat(row.RECQTY));\r\n if (row.POQTY > vm.checkamt) {\r\n vm.CurRecQty = 0;\r\n vm.CurRecQty = parseFloat(row.ReceivedQty) + parseFloat(row.RECQTY);\r\n vm.getQty = row.POQTY - vm.CurRecQty;\r\n vm.CurBalQty = row.BalanceQty - row.ReceivedQty;\r\n vm.getQty1 = 0;\r\n } else {\r\n vm.CurRecQty = 0;\r\n vm.CurRecQty = parseFloat(row.ReceivedQty) + parseFloat(row.RECQTY);\r\n //vm.getQty = row.POQTY - vm.CurRecQty; \r\n vm.CurBalQty = row.BalanceQty - row.ReceivedQty;\r\n //vm.CurRecQty = row.ReceivedQty + row.RECQTY\r\n vm.getQty1 = (vm.CurRecQty) - row.POQTY\r\n vm.getQty = 0\r\n }\r\n\r\n row.TOTQTY = vm.CurRecQty\r\n row.BalanceQty = vm.getQty\r\n row.ExcessQty = vm.getQty1\r\n } else {\r\n row.TOTQTY = 0\r\n row.BalanceQty = 0\r\n row.ExcessQty = 0\r\n }\r\n\r\n }\r\n\r\n $scope.Attachment = function(event) {\r\n vm.selectFile = event.target.files[0];\r\n }\r\n\r\n function validationattach() {\r\n if (vm.selectFile !== undefined) {\r\n vm.Savebtn = true;\r\n } else {\r\n vm.Savebtn = false;\r\n }\r\n }\r\n\r\n\r\n function SaveMRN() {\r\n debugger;\r\n\r\n validationattach();\r\n if (vm.Savebtn === true) {\r\n var Arr = [];\r\n for (var i in vm.MRNList) {\r\n if (vm.MRNList[i].selectedRow) {\r\n Arr.push({\r\n IOM_id: vm.MRNList[i].Mid,\r\n MRNQty: vm.MRNList[i].ReceivedQty,\r\n })\r\n }\r\n }\r\n\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.mrn.selectedProject.ProjectId,\r\n TypeOfStoreId: vm.mrn.SelectedStoreType.StoreTypeId,\r\n StoreId: vm.mrn.SelectedStoreNo.tStoreSetupId,\r\n PrepareMRNFor: vm.mrn.SelectedPrepare.ReguestForId,\r\n TypeOfPurchase: vm.mrn.SelectedPurchase.TypeOfPurchaseId,\r\n MRNNumber: vm.mrn.MRNNo,\r\n SupplierId: vm.mrn.SelectedSupplier.SupplierId,\r\n PurchaseOrderId: vm.mrn.SelectedOrder.PurchaseOrderId,\r\n TypeOfSupDoc: vm.mrn.SelectedDocument.SupplierDocTypeId,\r\n InvNo: vm.mrn.InvoiceNo,\r\n InvDate: vm.mrn.Invoice,\r\n\r\n POIOM: JSON.stringify(Arr),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n var formData = new FormData();\r\n formData.append(\"AttachURL\", vm.selectFile);\r\n formData.append(\"data\", JSON.stringify(obj));\r\n\r\n MRNService.SaveMRN(formData, $http).then(function(res) {\r\n if (res.status === 200) {\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"MRS\");\r\n Init();\r\n // vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"MRS\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', \"Please add Attachment then save\");\r\n }\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n // vm.isFormOpen = false;\r\n vm.mrn = {}\r\n validationattach();\r\n vm.MRNForm.$setUntouched();\r\n });\r\n }\r\n\r\n\r\n function clear() {\r\n // vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.mrn = {}\r\n Init();\r\n }\r\n\r\n // start Picture Preview \r\n $scope.imageUpload = function(event) {\r\n debugger;\r\n var files = event.target.files;\r\n\r\n for (var i = 0; i < files.length; i++) {\r\n var file = files[i];\r\n var reader = new FileReader();\r\n reader.onload = $scope.imageIsLoaded;\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n $scope.imageIsLoaded = function(e) {\r\n $scope.$apply(function() {\r\n $scope.img = e.target.result;\r\n\r\n });\r\n }\r\n\r\n $scope.PreviewImage = function() {\r\n debugger;\r\n\r\n // vm.file=document.getElementById(\"upload\").files[0];\r\n // vm.file_url=URL.createObjectURL(vm.file);\r\n // $('#viewer').attr('src',vm.file_url);\r\n }\r\n\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n var today = vm.dt;\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n debugger;\r\n\r\n vm.maxDateFun = function() {\r\n vm.maxd = new Date();\r\n //\r\n vm.maxd.setDate(vm.maxd.getDate() - 1);\r\n };\r\n\r\n vm.maxDateFun();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2016, 1, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n\r\n startingDay: 1\r\n };\r\n\r\n\r\n\r\n // vm.setMinEndDate = function () {\r\n // vm.emp.DOB = new Date(emp.DOB);\r\n // vm.endDtOpt.minDate = vm.emp.DOB;\r\n // }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = vm.dt;\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n };\r\n\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n debugger;\r\n var lastdate = new Date();\r\n lastdate.setDate(lastdate.getDate() + 1);\r\n var beforeToday = new Date();\r\n beforeToday.setDate(lastdate.getDate() + 1);\r\n vm.events = [{\r\n date: lastdate,\r\n status: 'full'\r\n }, {\r\n date: beforeToday,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n vm.selectAll = function(row) {\r\n if (row.selectedRow == true) {\r\n row.ReceivedQty = 0\r\n } else {\r\n row.ReceivedQty = ''\r\n }\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('MaterialReconciliationCtrl', MaterialReconciliationCtrl);\r\n\r\n /** @ngInject */\r\n function MaterialReconciliationCtrl($http, lodash, $filter, $rootScope, dialogs, AuthenticationService, CompanyService, projectCreationService, StoreLocationSetupService, StoreStaffAllocationService, StockRegistrationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getStoreType = getStoreType;\r\n vm.getStoreNo = getStoreNo;\r\n vm.getTypeOfStatement = getTypeOfStatement;\r\n vm.getStockRegmCat = getStockRegmCat;\r\n vm.getStockRegmSubCat = getStockRegmSubCat;\r\n vm.getStockRegmType = getStockRegmType;\r\n vm.getStockRegIOMByTypeId = getStockRegIOMByTypeId;\r\n vm.getStockDetailsByIOMId = getStockDetailsByIOMId;\r\n vm.Reset = Reset;\r\n vm.ClearStoreAt = ClearStoreAt;\r\n vm.ClearProject = ClearProject;\r\n vm.isView = false;\r\n Init()\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.getAllStore(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreList\");\r\n });\r\n\r\n }\r\n //// Get Project \r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n ClearCompany();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n ClearCompany();\r\n }\r\n }\r\n ////// Get StoreAt \r\n function getStoreType(CompanyId) {\r\n if (CompanyId) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n debugger;\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (CompanyId) {\r\n StoreStaffAllocationService.getStoreType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreType available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n function getStoreNo(CompanyId, StoreTypeId) {\r\n if (StoreTypeId) {\r\n ClearStoreType()\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.getStoreNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreNoList = res.data\r\n if (!vm.StoreNoList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreNo available selected StoreType', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n else {\r\n ClearStoreType()\r\n }\r\n\r\n }\r\n\r\n function getTypeOfStatement(tStoreSetupId) {\r\n if (tStoreSetupId) {\r\n ClearStoreNo();\r\n vm.StatementList = [{ TypeCode: 'M', TypeName: 'Monthly', Type: 'Month' }, { TypeCode: 'Q', TypeName: 'Quarterly', Type: 'Quarter Year' }, { TypeCode: 'HY', TypeName: 'Half Yearly', Type: 'Half Year' }, { TypeCode: 'Y', TypeName: 'Yearly', Type: 'Year' }]\r\n }\r\n else\r\n ClearStoreNo();\r\n }\r\n\r\n\r\n function getStockRegmCat() {\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegmCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MCategoryList = res.data\r\n if (!vm.MCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category of material available selected Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Category\");\r\n })\r\n }\r\n\r\n function getStockRegmSubCat() {\r\n if (vm.stock.selectedCategory) {\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n mCatId: vm.stock.selectedCategory.mCatId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegmSubCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MSubCategoryList = res.data\r\n if (!vm.MSubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no SubCategory of material available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock SubCategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock SubCategory\");\r\n })\r\n }\r\n else {\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getStockRegmType() {\r\n if (vm.stock.selectedSubCategory) {\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n mSubCatId: vm.stock.selectedSubCategory.mSubCatId,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockRegmType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MTypeList = res.data\r\n if (!vm.MTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Type of material available selected SubCategory', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Type\");\r\n })\r\n }\r\n else {\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getStockRegIOMByTypeId() {\r\n if (vm.stock.selectedType) {\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n mTypeId: vm.stock.selectedType.mTypeId,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockRegIOMByTypeId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n if (!vm.IOMList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Item of material available selected Type', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM Id\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM Id\");\r\n })\r\n }\r\n else {\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getStockDetailsByIOMId() {\r\n vm.isLoading = true;\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n IOM_Id: vm.stock.selectedASIOM.IOM_Id,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockDetailsByIOMId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StockDetailsList = res.data\r\n // vm.DetailsList = [];\r\n if (!vm.StockDetailsList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Stock Details available selected IOM', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n else {\r\n var Arr = vm.StockDetailsList.map(function (obj, Index) {\r\n obj.SNo = parseInt(Index + 1)\r\n return obj\r\n });\r\n console.log(Arr)\r\n\r\n if (vm.StockDetailsList.length > 0)\r\n vm.isView = true;\r\n else {\r\n vm.isView = false;\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock List\");\r\n })\r\n vm.DetailsList = [\r\n { SNo: 1, IOM_Dec: 'Basic Material', UOM: 'KG', Description: 'Cement-OPC-53 Grade', TotalQty: 300000.00, ThclConQty: 22342.95, TotActlQtyIssue: 22500.00 },\r\n { SNo: 2, IOM_Dec: 'Basic Material', UOM: 'Nos', Description: 'Fly Ash Clay Brick', TotalQty: 3000000.00, ThclConQty: 221582.75, TotActlQtyIssue: 222000.00 },\r\n { SNo: 3, IOM_Dec: 'Basic Material', UOM: 'KG', Description: 'TMT Bar', TotalQty: 4741.00, ThclConQty: 3719.81, TotActlQtyIssue: 3778.57 },\r\n { SNo: 4, IOM_Dec: 'Flooring & Dadooing Material', UOM: 'Sq.m', Description: 'Vitrified Tile of Parcos Make', TotalQty: 1548, ThclConQty: 0.00, TotActlQtyIssue: 0.00 },\r\n ]\r\n\r\n lodash.forEach(vm.DetailsList, function (e) {\r\n e.ExcessOrLessCon = (e.TotActlQtyIssue - e.ThclConQty);\r\n e.ExsOrLsConInPerctg = (e.ExcessOrLessCon / e.ThclConQty) * 100\r\n if (isNaN(e.ExsOrLsConInPerctg))\r\n e.ExsOrLsConInPerctg = 0.0\r\n })\r\n }\r\n\r\n\r\n function Reset() {\r\n vm.stock.selectedCompany = null;\r\n vm.stock.selectedStoreAt = null;\r\n vm.stock.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stock.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearCompany() {\r\n vm.stock.selectedStoreAt = null;\r\n vm.stock.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stock.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreAt() {\r\n vm.stock.selectedProject = null;\r\n vm.stock.selectedStoreType = null;\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearProject() {\r\n vm.stock.selectedStoreType = null;\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreType() {\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreNo() {\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n function ClearDate() {\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n vm.clearStockDetails = function () {\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n\r\n // Get Date\r\n\r\n vm.ClearDate = function () {\r\n ClearDate();\r\n if (vm.stock.selectedStatement != undefined) {\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n else {\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n }\r\n\r\n\r\n vm.GetMonthEndDate = function () {\r\n\r\n if (vm.stock.selectedStatement.TypeCode == 'M') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.stock.To.setMonth(vm.stock.To.getMonth() + numberOfMonthToAdd);\r\n vm.stock.To.setDate(vm.stock.To.getDate() - 1);\r\n getStockRegmCat();\r\n\r\n }\r\n else if (vm.stock.selectedStatement.TypeCode == 'Q') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.stock.To.setMonth(vm.stock.To.getMonth() + numberOfMonthToAdd);\r\n vm.stock.To.setDate(vm.stock.To.getDate() - 1);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n else if (vm.stock.selectedStatement.TypeCode == 'HY') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfMonthToAdd = 6;\r\n vm.stock.To.setMonth(vm.stock.To.getMonth() + numberOfMonthToAdd);\r\n vm.stock.To.setDate(vm.stock.To.getDate() - 1);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.GetYearEndDate = function () {\r\n debugger;\r\n if (vm.stock.selectedStatement.TypeCode == 'Y') {\r\n vm.stock.From = new Date(\"1/1/\" + (new Date()).getFullYear());\r\n vm.stock.To = new Date(\"12/31/\" + (new Date()).getFullYear());\r\n getStockRegmCat();\r\n }\r\n }\r\n\r\n\r\n //#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('MRSCtrl', MRSCtrl);\r\n\r\n /** @ngInject */\r\n function MRSCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, MRSService, projectCreationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isAdding = false;\r\n vm.LocationList = []\r\n vm.IOMList = []\r\n //Method\r\n vm.Create = Create\r\n vm.cancel = cancel\r\n vm.clear = clear\r\n vm.getLineofBusiness = getLineofBusiness\r\n vm.getStoreType = getStoreType\r\n vm.getStoreNo = getStoreNo\r\n vm.getIOCA = getIOCA\r\n vm.getLocation = getLocation\r\n vm.getIOM = getIOM\r\n vm.PreparationofMRS = PreparationofMRS\r\n vm.Remove = Remove\r\n vm.viewPicture = viewPicture\r\n vm.viewDocument = viewDocument\r\n vm.SaveMRS = SaveMRS\r\n vm.getMRS = getMRS\r\n vm.isConfirm = false;\r\n $scope.dsblBtn = true;\r\n vm.clearRequestFor = clearRequestFor;\r\n vm.clearRequestType = clearRequestType;\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getRequestfor(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RequestList = res.data;\r\n\r\n vm.isLoading = false;\r\n MRSService.getRequestType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RequestTypeList = res.data;\r\n\r\n vm.isLoading = false;\r\n }\r\n });\r\n MRSService.getRequestBased(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RequestBasedList = res.data;\r\n\r\n vm.isLoading = false;\r\n }\r\n })\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"RequstFor\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RequstFor\");\r\n });\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n\r\n }\r\n function getMRS() {\r\n\r\n vm.isLoading = true;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getMRS(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PreMRSList = res.data;\r\n\r\n vm.isLoading = false;\r\n if (vm.PreMRSList.length == 0) {\r\n dialogs.notify('Warning', '! There is no MRS available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n for (var i in vm.PreMRSList) {\r\n if (vm.PreMRSList[i].MaterialCount == 0) {\r\n dialogs.notify('Warning', '! There is no MRS available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MRS Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"MRS Master\");\r\n });\r\n }\r\n function getLineofBusiness() {\r\n if (vm.mrs.selectedRequest) {\r\n clearLob();\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ReguestForId: vm.mrs.selectedRequest.ReguestForId,\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getLineofBusiness(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LineofBusinessList = res.data;\r\n\r\n if (!vm.LineofBusinessList.length > 0) {\r\n dialogs.notify('Warning', '! There is no LOB available selected Request and Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"LineofBusiness\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"LineofBusiness\");\r\n });\r\n }\r\n else {\r\n clearLob();\r\n }\r\n\r\n\r\n }\r\n function getStoreType() {\r\n if (vm.mrs.selectedBusiness) {\r\n clearStoreType();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n CompanyId: CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getStoreType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreType available selected LOB', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n });\r\n }\r\n else {\r\n clearStoreType();\r\n }\r\n\r\n }\r\n function getStoreNo() {\r\n if (vm.mrs.SelectedStoreType) {\r\n clearStoreNo();\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var obj = {\r\n CompanyId: CompanyId,\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n StoreTypeId: vm.mrs.SelectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getStoreNo(obj).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n\r\n // vm.StoreNo = lodash.find(res.data).StoreNo;\r\n // vm.tStoreSetupId = lodash.find(res.data).tStoreSetupId;\r\n\r\n // vm.mrs.StoreNo = vm.StoreNo\r\n vm.StoreNoList = res.data\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n else {\r\n clearStoreNo();\r\n }\r\n\r\n }\r\n function getIOCA() {\r\n debugger;\r\n if (vm.mrs.SelectedStoreNo) {\r\n clearioca();\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n TypeofStoreId: vm.mrs.SelectedStoreType.StoreTypeId,\r\n storeId: vm.mrs.SelectedStoreNo.tStoreSetupId,\r\n ReguestForId: vm.mrs.selectedRequest.ReguestForId,\r\n FobId: vm.mrs.selectedBusiness.FieldofConstructionId,\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAList = res.data;\r\n\r\n if (!vm.IOCAList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected REquestBasedOn', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"IOCA\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOCA\");\r\n })\r\n }\r\n else {\r\n clearioca();\r\n }\r\n }\r\n\r\n function getLocation() {\r\n if (vm.mrs.SelectedIoca) {\r\n clearLocation();\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ReguestForId: vm.mrs.selectedRequest.ReguestForId,\r\n IocaId: vm.mrs.SelectedIoca.IOCA_Id,\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getLocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Location available selected REquestBasedOn', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isLoading = false\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n })\r\n }\r\n else {\r\n clearLocation();\r\n }\r\n\r\n }\r\n function getIOM() {\r\n debugger;\r\n if (vm.mrs.selectedRequest && vm.mrs.SelectedLocation.length > 0) {\r\n clearItem();\r\n vm.isAdding = true;\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Arr = [];\r\n var Arr1 = [];\r\n for (var i in vm.mrs.SelectedLocation) {\r\n Arr.push(vm.mrs.SelectedLocation[i].LocationId);\r\n Arr1.push(vm.mrs.SelectedLocation[i].LastTierId);\r\n }\r\n vm.Location = Arr.join();\r\n vm.LastTier = Arr1.join();\r\n var obj = {\r\n ReguestForId: vm.mrs.selectedRequest.ReguestForId,\r\n IocaId: vm.mrs.SelectedIoca.IOCA_Id,\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n LastTierId: vm.LastTier,\r\n LocationId: vm.Location,\r\n TypeofStoreId: vm.mrs.SelectedStoreType.StoreTypeId,\r\n storeId: vm.mrs.SelectedStoreNo.tStoreSetupId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.getIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data;\r\n if (!vm.IOMList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOM available selected REquestBasedOn', {\r\n animation: true,\r\n size: 'sm'\r\n\r\n });\r\n vm.isLoading = false\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"IOM Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n }\r\n else {\r\n //clearItem();\r\n }\r\n\r\n }\r\n function PreparationofMRS() {\r\n debugger;\r\n if (vm.mrs.SelectedItem && vm.mrs.SelectedItem.length > 0) {\r\n clearMrs();\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Arr = [];\r\n var Arr1 = [];\r\n var Arr2 = [];\r\n for (var i in vm.mrs.SelectedLocation) {\r\n Arr.push(vm.mrs.SelectedLocation[i].LastTierId);\r\n\r\n }\r\n for (var i in vm.mrs.SelectedLocation) {\r\n var j;\r\n if (j == undefined) {\r\n j = 0;\r\n }\r\n if (vm.mrs.SelectedLocation[i].LocationId != j) {\r\n Arr1.push(vm.mrs.SelectedLocation[i].LocationId);\r\n j = Arr1[i];\r\n }\r\n\r\n }\r\n\r\n vm.Location = Arr1.join();\r\n vm.LastTier = Arr.join();\r\n for (var i in vm.mrs.SelectedItem) {\r\n Arr2.push(vm.mrs.SelectedItem[i].IOM_Id);\r\n }\r\n vm.IOM_Id = Arr2.join();\r\n var obj = {\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n RequestTypeId: vm.mrs.selectedType.ReguestTypeId,\r\n StoreTypeId: vm.mrs.SelectedStoreType.StoreTypeId,\r\n StoreId: vm.mrs.SelectedStoreNo.tStoreSetupId,\r\n IOCA_id: vm.mrs.SelectedIoca.IOCA_Id,\r\n LastTierId: vm.LastTier,\r\n LocationId: vm.Location,\r\n IOM_ids: vm.IOM_Id,\r\n ConsumableTypeIds: vm.ConsumableTypeIds,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n MRSService.PreparationofMRS(obj).then(function (res) {\r\n if (res.status === 200) {\r\n // vm.isAdding = true;\r\n vm.MRSList = res.data;\r\n\r\n if (!vm.MRSList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Stock available for selectedItem', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.MRSNumbaer = lodash.find(vm.MRSList).MRSNumbaer;\r\n\r\n\r\n vm.mrs.MRSNumbaer = vm.MRSNumbaer\r\n for (var i in vm.MRSList) {\r\n vm.MRSList[i].HidenDetailsList = JSON.parse(vm.MRSList[i].HidenDetails)\r\n\r\n }\r\n if (vm.MRSList.length > 0) {\r\n dialogs.notify('Info', 'Materials available in store only can be viewed.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MRS\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"MRS\");\r\n });\r\n }\r\n else {\r\n clearMrs();\r\n }\r\n }\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.mrs = {}\r\n\r\n }\r\n function SaveMRS() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var Arr = [];\r\n var Arr1 = [];\r\n var Arr2 = [];\r\n for (var i in vm.mrs.SelectedLocation) {\r\n Arr.push(vm.mrs.SelectedLocation[i].LastTierId);\r\n Arr1.push(vm.mrs.SelectedLocation[i].LocationId);\r\n }\r\n vm.Location = Arr1.join();\r\n vm.LastTier = Arr.join();\r\n for (var i in vm.mrs.SelectedItem) {\r\n Arr2.push(vm.mrs.SelectedItem[i].IOM_Id);\r\n }\r\n vm.IOM_Id = Arr2.join();\r\n var obj = {\r\n MRSNumbaer: vm.mrs.MRSNumbaer,\r\n ProjectId: vm.mrs.selectedProject.ProjectId,\r\n RequestTypeId: vm.mrs.selectedType.ReguestTypeId,\r\n StoreTypeId: vm.mrs.SelectedStoreType.StoreTypeId,\r\n StoreId: vm.mrs.SelectedStoreNo.tStoreSetupId,\r\n IOCA_id: vm.mrs.SelectedIoca.IOCA_Id,\r\n LastTierId: vm.LastTier,\r\n LocationId: vm.Location,\r\n IOM_ids: vm.IOM_Id,\r\n ConsumableTypeIds: vm.ConsumableTypeIds,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n MRSService.SaveMRS(obj).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n $rootScope.showToaster('success', res.data.Message, \"MRS\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"MRS\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n function Remove(row) {\r\n vm.MRSList.splice(row, 1)\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.mrs = {}\r\n vm.MRSList = '';\r\n });\r\n\r\n\r\n }\r\n\r\n function viewPicture() {\r\n dialogs.notify('Warning', '! There is no picture available ', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n }\r\n function viewDocument() {\r\n dialogs.notify('Warning', '! There is no Document available ', {\r\n animation: true,\r\n size: 'sm'\r\n })\r\n }\r\n function clear() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n vm.mrs = {}\r\n vm.MRSList = '';\r\n\r\n\r\n }\r\n\r\n vm.select = function (row, i) {\r\n var Arr = lodash.filter(row.HidenDetailsList, function (f) {\r\n return (f.isSelectedIndent == true)\r\n })\r\n if (Arr.length > 0) {\r\n row.selectedRow = true;\r\n vm.isConfirm = true;\r\n }\r\n else {\r\n row.selectedRow = false;\r\n vm.isConfirm = false;\r\n }\r\n\r\n }\r\n\r\n vm.selectAll = function (row, i) {\r\n\r\n\r\n\r\n\r\n if (row.selectedRow == true) {\r\n\r\n\r\n var HidenDetailsList = row.HidenDetailsList;\r\n\r\n\r\n for (var i in HidenDetailsList) {\r\n\r\n HidenDetailsList[i].Mid == row.Mid\r\n HidenDetailsList[i].isSelectedIndent = true;\r\n\r\n }\r\n vm.isConfirm = true;\r\n }\r\n else {\r\n var HidenDetailsList = row.HidenDetailsList;\r\n for (var i in HidenDetailsList) {\r\n HidenDetailsList[i].Mid == row.Mid\r\n HidenDetailsList[i].isSelectedIndent = false;\r\n }\r\n vm.isConfirm = false;\r\n }\r\n }\r\n\r\n function clearRequestFor() {\r\n vm.mrs.selectedRequest = null;\r\n vm.mrs.selectedType = null;\r\n vm.mrs.selectedRequest = null;\r\n vm.mrs.selectedBusiness = null;\r\n vm.LineofBusinessList = [];\r\n vm.mrs.SelectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.mrs.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.mrs.SelectedIoca = null;\r\n vm.IOCAList = [];\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearRequestType() {\r\n vm.mrs.selectedType = null;\r\n vm.mrs.selectedBusiness = null;\r\n vm.LineofBusinessList = [];\r\n vm.mrs.SelectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.mrs.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.mrs.SelectedIoca = null;\r\n vm.IOCAList = [];\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearLob() {\r\n vm.mrs.selectedBusiness = null;\r\n vm.LineofBusinessList = [];\r\n vm.mrs.SelectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.mrs.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.mrs.SelectedIoca = null;\r\n vm.IOCAList = [];\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearStoreType() {\r\n vm.mrs.SelectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.mrs.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.mrs.SelectedIoca = null;\r\n vm.IOCAList = [];\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearStoreNo() {\r\n vm.mrs.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.mrs.SelectedIoca = null;\r\n vm.IOCAList = [];\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearioca() {\r\n vm.mrs.SelectedIoca = null;\r\n vm.IOCAList = [];\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearLocation() {\r\n vm.mrs.SelectedLocation = null;\r\n vm.LocationList = [];\r\n vm.mrs.SelectedItem = null;\r\n vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearItem() {\r\n vm.mrs.SelectedItem = null;\r\n // vm.mrs.SelectedItem = [];\r\n vm.IOMList = [];\r\n vm.MRSList = [];\r\n //vm.mrs.SelectedItem = [];\r\n }\r\n\r\n function clearMrs() {\r\n vm.MRSList = [];\r\n //vm.mrs.SelectedItem = [];\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('StockStatementCtrl', StockStatementCtrl);\r\n\r\n /** @ngInject */\r\n function StockStatementCtrl($http, lodash, $filter, $rootScope, dialogs, AuthenticationService, CompanyService, projectCreationService, StoreLocationSetupService, StoreStaffAllocationService, StockRegistrationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getStoreType = getStoreType;\r\n vm.getStoreNo = getStoreNo;\r\n vm.getTypeOfStatement = getTypeOfStatement;\r\n vm.getStockRegmCat = getStockRegmCat;\r\n vm.getStockRegmSubCat = getStockRegmSubCat;\r\n vm.getStockRegmType = getStockRegmType;\r\n vm.Reset = Reset;\r\n vm.ClearStoreAt = ClearStoreAt;\r\n vm.ClearProject = ClearProject;\r\n vm.isView = false;\r\n vm.ClearDate = ClearDate\r\n vm.getStockStatement = getStockStatement\r\n vm.getSpecType = getSpecType\r\n\r\n\r\n vm.MCategoryList = [];\r\n vm.MSubCategoryList = [];\r\n vm.MTypeList = [];\r\n vm.isLoading = false;\r\n Init()\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.getAllStore(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreList\");\r\n });\r\n\r\n }\r\n //// Get Project \r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n ClearCompany();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n ClearCompany();\r\n }\r\n }\r\n ////// Get StoreAt \r\n function getStoreType(CompanyId) {\r\n if (CompanyId) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n CompanyId: vm.stockstate.selectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (CompanyId) {\r\n StoreStaffAllocationService.getStoreType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreType available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n function getStoreNo(CompanyId, StoreTypeId) {\r\n\r\n if (StoreTypeId) {\r\n ClearStoreType()\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CompanyId: vm.stockstate.selectedCompany.CompanyId,\r\n\r\n StoreTypeId: vm.stockstate.selectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.getStoreNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreNoList = res.data\r\n console.log(vm.StoreNoList)\r\n if (!vm.StoreNoList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreNo available selected StoreType', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n else {\r\n ClearStoreType()\r\n }\r\n\r\n }\r\n function getTypeOfStatement(tStoreSetupId) {\r\n if (tStoreSetupId) {\r\n ClearStoreNo();\r\n vm.StatementList = [{ TypeCode: 'D', TypeName: 'Daily', Type: 'Day' }, { TypeCode: 'W', TypeName: 'Weekly', Type: 'Week' }, { TypeCode: 'M', TypeName: 'Monthly', Type: 'Month' }, { TypeCode: 'Q', TypeName: 'Quarterly', Type: 'Quarter Year' }, { TypeCode: 'HY', TypeName: 'Half Yearly', Type: 'Half Year' }, { TypeCode: 'Y', TypeName: 'Yearly', Type: 'Year' }]\r\n }\r\n else\r\n ClearStoreNo();\r\n }\r\n\r\n\r\n\r\n\r\n function getStockRegmCat() {\r\n debugger;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n var obj = {\r\n CompanyId: vm.stockstate.selectedCompany.CompanyId,\r\n StoreAtId: vm.stockstate.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stockstate.selectedProject != undefined) ? vm.stockstate.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stockstate.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stockstate.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stockstate.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stockstate.To, 'yyyy/MM/dd'),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegmCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MCategoryList = res.data\r\n if (!vm.MCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category of material available selected Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Category\");\r\n })\r\n }\r\n\r\n function getStockRegmSubCat() {\r\n debugger;\r\n if (vm.selectedCategory) {\r\n vm.electedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].mCatId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CompanyId: vm.stockstate.selectedCompany.CompanyId,\r\n StoreAtId: vm.stockstate.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stockstate.selectedProject != undefined) ? vm.stockstate.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stockstate.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stockstate.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stockstate.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stockstate.To, 'yyyy/MM/dd'),\r\n mCatId: vm.Category,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegmSubCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MSubCategoryList = res.data\r\n if (!vm.MSubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no SubCategory of material available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock SubCategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock SubCategory\");\r\n })\r\n }\r\n else {\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n\r\n }\r\n\r\n function getStockRegmType() {\r\n debugger;\r\n if (vm.selectedSubCategory) {\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].mSubCatId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n CompanyId: vm.stockstate.selectedCompany.CompanyId,\r\n StoreAtId: vm.stockstate.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stockstate.selectedProject != undefined) ? vm.stockstate.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stockstate.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stockstate.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stockstate.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stockstate.To, 'yyyy/MM/dd'),\r\n mSubCatId: vm.SubCategory,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockRegmType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MTypeList = res.data\r\n if (!vm.MTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Type of material available selected SubCategory', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Type\");\r\n })\r\n }\r\n else {\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n\r\n }\r\n function getSpecType() {\r\n if (vm.selectedType) {\r\n vm.selectedSpecType = null;\r\n vm.StockStatementList = [];\r\n vm.isView = false;\r\n vm.SpecType = [{ SpecTypeName: 'All', Code: 'A' }, { SpecTypeName: 'Generic', Code: 'G' },\r\n {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.selectedSpecType = null;\r\n vm.StockStatementList = [];\r\n vm.isView = false;\r\n }\r\n }\r\n\r\n function getStockStatement() {\r\n debugger;\r\n if (vm.selectedSpecType.Code) {\r\n vm.StockStatementList = [];\r\n vm.isLoading = true;\r\n vm.isView = false;\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].mTypeId);\r\n }\r\n vm.TypeCategory = Arr.join();\r\n\r\n var obj = {\r\n CompanyId: vm.stockstate.selectedCompany.CompanyId,\r\n StoreAtId: vm.stockstate.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stockstate.selectedProject != undefined) ? vm.stockstate.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stockstate.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stockstate.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stockstate.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stockstate.To, 'yyyy/MM/dd'),\r\n mTypeId: vm.TypeCategory,\r\n IOMType: vm.selectedSpecType.Code,\r\n Action: logggedUser.UserId\r\n }\r\n console.log(obj)\r\n StockRegistrationService.getStockStatement(obj).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.StockStatementList = res.data;\r\n console.log(vm.StockStatementList);\r\n if (!vm.StockStatementList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StockStatementList available for selectedItem', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (vm.StockStatementList.length > 0)\r\n vm.isView = true;\r\n else {\r\n vm.isView = false;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StockStatement\");\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StockStatement\");\r\n });\r\n }\r\n else {\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n }\r\n }\r\n\r\n\r\n function Reset() {\r\n vm.stockstate.selectedCompany = null;\r\n vm.stockstate.selectedStoreAt = null;\r\n vm.stockstate.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stockstate.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stockstate.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stockstate.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.selectedSpecType = null;\r\n vm.StockStatementList = [];\r\n }\r\n\r\n function ClearCompany() {\r\n vm.stockstate.selectedStoreAt = null;\r\n vm.stockstate.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stockstate.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stockstate.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stockstate.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n\r\n }\r\n\r\n function ClearStoreAt() {\r\n vm.stockstate.selectedProject = null;\r\n vm.stockstate.selectedStoreType = null;\r\n vm.stockstate.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stockstate.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n\r\n function ClearProject() {\r\n vm.stockstate.selectedStoreType = null;\r\n vm.stockstate.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stockstate.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n\r\n function ClearStoreType() {\r\n vm.stockstate.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stockstate.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n\r\n function ClearStoreNo() {\r\n vm.stockstate.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n function ClearDate() {\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n vm.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.isView = false;\r\n vm.StockStatementList = [];\r\n vm.selectedSpecType = null;\r\n }\r\n\r\n\r\n // Get Date\r\n\r\n vm.ClearDate = function () {\r\n debugger;\r\n if (vm.stockstate.selectedStatement != undefined) {\r\n ClearDate()\r\n if (vm.stockstate.selectedStatement.TypeCode == 'D') {\r\n vm.stockstate.From = new Date()\r\n vm.stockstate.From = angular.copy(vm.stockstate.From);\r\n vm.stockstate.To = angular.copy(vm.stockstate.From);\r\n getStockRegmCat();\r\n }\r\n else if (vm.stockstate.selectedStatement.TypeCode == 'W') {\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n }\r\n else {\r\n vm.stockstate.From = null;\r\n vm.stockstate.To = null;\r\n }\r\n\r\n }\r\n else {\r\n ClearDate();\r\n }\r\n }\r\n\r\n vm.getDate = function () {\r\n debugger;\r\n if (vm.stockstate.selectedStatement.TypeCode == 'D') {\r\n vm.stockstate.From = angular.copy(vm.stockstate.From);\r\n vm.stockstate.To = angular.copy(vm.stockstate.From);\r\n\r\n }\r\n\r\n }\r\n\r\n vm.GetEndDate = function () {\r\n if (vm.stockstate.selectedStatement.TypeCode == 'W') {\r\n vm.stockstate.To = angular.copy(vm.stockstate.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.stockstate.To.setDate(vm.stockstate.To.getDate() + numberOfDaysToAdd);\r\n }\r\n else {\r\n vm.stockstate.From = '';\r\n vm.stockstate.To = '';\r\n }\r\n\r\n }\r\n\r\n\r\n vm.GetMonthEndDate = function () {\r\n\r\n if (vm.stockstate.selectedStatement.TypeCode == 'M') {\r\n vm.stockstate.To = angular.copy(vm.stockstate.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.stockstate.To.setMonth(vm.stockstate.To.getMonth() + numberOfMonthToAdd);\r\n vm.stockstate.To.setDate(vm.stockstate.To.getDate() - 1);\r\n\r\n }\r\n else if (vm.stockstate.selectedStatement.TypeCode == 'Q') {\r\n vm.stockstate.To = angular.copy(vm.stockstate.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.stockstate.To.setMonth(vm.stockstate.To.getMonth() + numberOfMonthToAdd);\r\n vm.stockstate.To.setDate(vm.stockstate.To.getDate() - 1);\r\n\r\n }\r\n else if (vm.stockstate.selectedStatement.TypeCode == 'HY') {\r\n vm.stockstate.To = angular.copy(vm.stockstate.From);\r\n var numberOfMonthToAdd = 6;\r\n vm.stockstate.To.setMonth(vm.stockstate.To.getMonth() + numberOfMonthToAdd);\r\n vm.stockstate.To.setDate(vm.stockstate.To.getDate() - 1);\r\n\r\n }\r\n\r\n }\r\n\r\n vm.GetYearEndDate = function () {\r\n debugger;\r\n if (vm.stockstate.selectedStatement.TypeCode == 'Y') {\r\n vm.stockstate.From = new Date(\"1/1/\" + (new Date()).getFullYear());\r\n vm.stockstate.To = new Date(\"12/31/\" + (new Date()).getFullYear());\r\n\r\n }\r\n }\r\n\r\n\r\n //#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('StoreLocationSetupCtrl', StoreLocationSetupCtrl);\r\n\r\n /** @ngInject */\r\n function StoreLocationSetupCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, CompanyService,\r\n StoreLocationSetupService, projectCreationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n $rootScope.isLogin = false;\r\n\r\n vm.ExistingStoreBtn = true;\r\n vm.NewStoreBtn = false;\r\n //Method\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.Create = Create;\r\n vm.SaveStoreType = SaveStoreType\r\n vm.removeStoreType = removeStoreType\r\n vm.AddNewStoreType = AddNewStoreType\r\n vm.getStoreno = getStoreno\r\n vm.SaveStoreLocation = SaveStoreLocation\r\n vm.editStoreLocation = editStoreLocation\r\n vm.RemoveStoreLocation = RemoveStoreLocation\r\n vm.cancel = cancel\r\n\r\n vm.clear = clear\r\n vm.GetStoreByCompanyId = GetStoreByCompanyId\r\n var CompanyId = $rootScope.selectedCompanyId;\r\n var CompanyName = $rootScope.selectedCompanyName\r\n vm.CompanyName = CompanyName;\r\n Init();\r\n\r\n function Init() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n StoreLocationSetupService.getAllStore(obj).then(function(res) {\r\n\r\n if (res.status === 200) {\r\n vm.StoreList = res.data;\r\n // console.log(vm.StoreList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreList\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreList\");\r\n });\r\n debugger;\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.getAllStoreType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n // console.log(vm.StoreTypeList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n GetStoreByCompanyId(CompanyId);\r\n getProjectByCompany(CompanyId)\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n debugger;\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n // console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n var selectedCompany = Object.create(vm.store)\r\n selectedCompany = CompanyName;\r\n // console.log(vm.store.selectedCompany);\r\n // debugger;\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.store.selectedStore = null;\r\n vm.store.selectedProject = null;\r\n vm.store.SelectedStoreType = null;\r\n vm.store.StoreNo = \"\";\r\n }\r\n }\r\n\r\n function GetStoreByCompanyId(CompanyId) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n debugger;\r\n vm.StoreLocationList = [];\r\n if (CompanyId) {\r\n var obj = {\r\n\r\n CompanyId: CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.GetStoreByCompanyId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreLocationList = res.data;\r\n if (!vm.StoreLocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Saved Stores available', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n // console.log(vm.store)\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function SaveStoreType() {\r\n debugger;\r\n vm.ExistingStoreBtn = true;\r\n vm.NewStoreBtn = false;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.NewStoreBtn) {\r\n var obj = {\r\n StoreTypeName: vm.store.StoreTypeName,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.AddStoreType(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"StoreType\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"StoreType\");\r\n }\r\n vm.isFormOpen = true;\r\n vm.ExistingStoreBtn = true;\r\n\r\n vm.store.StoreTypeName = undefined;\r\n Init();\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n };\r\n }\r\n\r\n\r\n function AddNewStoreType() {\r\n vm.ExistingStoreBtn = false;\r\n vm.NewStoreBtn = true;\r\n }\r\n\r\n function removeStoreType() {\r\n vm.ExistingStoreBtn = true;\r\n vm.NewStoreBtn = false;\r\n vm.store.StoreTypeName = null;\r\n vm.store.SelectedStoreType = null;\r\n\r\n }\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.store = {}\r\n vm.selectedCompanyFilter = null;\r\n vm.StoreLocationList = [];\r\n }\r\n\r\n function getStoreno() {\r\n debugger;\r\n var obj = {\r\n CompanyId: CompanyId,\r\n StoreAtId: vm.store.selectedStore.StoreId,\r\n ProjectId: vm.store.selectedProject.ProjectId,\r\n StoreTypeId: vm.store.SelectedStoreType.StoreTypeId\r\n }\r\n StoreLocationSetupService.getStoreNo(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreNo = lodash.find(res.data).StoreNo;\r\n // console.log(vm.StoreNo)\r\n vm.store.StoreNo = vm.StoreNo\r\n\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n vm.store.StoreNo = \"\";\r\n }\r\n\r\n function SaveStoreLocation() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var obj = {\r\n CompanyId: vm.store.selectedCompany.CompanyId,\r\n StoreAtId: vm.store.selectedStore.StoreId,\r\n ProjectId: vm.store.selectedProject.ProjectId,\r\n StoreTypeId: vm.store.SelectedStoreType.StoreTypeId,\r\n StoreNo: vm.store.StoreNo,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.AddStoreLocation(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"StoreLocation\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"StoreLocation\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n var Obj = {\r\n StoreSetupId: vm.store.StoreSetupId,\r\n CompanyId: vm.store.selectedCompany.CompanyId,\r\n StoreAtId: vm.store.selectedStore.StoreId,\r\n ProjectId: vm.store.selectedProject.ProjectId,\r\n StoreTypeId: vm.store.SelectedStoreType.StoreTypeId,\r\n StoreNo: vm.store.StoreNo,\r\n ModifiedBy: logggedUser.UserId\r\n\r\n }\r\n StoreLocationSetupService.UpdateStoreLocation(Obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"StoreLocation\");\r\n\r\n\r\n clear();\r\n Init();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"StoreLocation\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n function editStoreLocation(row) {\r\n debugger;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.store = angular.copy(row);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == row.CompanyId) {\r\n vm.store.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n getProjectByCompany(row.CompanyId, function() {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === row.ProjectId) {\r\n vm.store.selectedProject = vm.ProjectList[i]\r\n }\r\n }\r\n })\r\n\r\n for (var i in vm.StoreList) {\r\n if (vm.StoreList[i].StoreId == row.StoreId)\r\n vm.store.selectedStore = vm.StoreList[i]\r\n }\r\n for (var i in vm.StoreTypeList) {\r\n if (vm.StoreTypeList[i].StoreTypeId == row.StoreTypeId)\r\n vm.store.SelectedStoreType = vm.StoreTypeList[i]\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n function RemoveStoreLocation(row) {\r\n debugger;\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n StoreSetupId: row.StoreSetupId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.removeStoreLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete State Successfully', \"SoteLocation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete SoteLocation\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n })\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n\r\n vm.store = {};\r\n Init();\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n function clear() {\r\n debugger;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n vm.store = {};\r\n\r\n\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('StoreStaffAllocationCtrl', StoreStaffAllocationCtrl);\r\n\r\n /** @ngInject */\r\n function StoreStaffAllocationCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, CompanyService,\r\n StoreLocationSetupService, projectCreationService, StoreStaffAllocationService, DepartmentServices, DesignationService, EmployeeService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.addAllocation = false;\r\n $rootScope.isLogin = false;\r\n\r\n\r\n //Method\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.Create = Create;\r\n vm.departmentSelectionChanged = departmentSelectionChanged\r\n vm.getDepartmentByCompany = getDepartmentByCompany\r\n vm.designationSelectionChanged = designationSelectionChanged\r\n vm.getStoreNo = getStoreNo\r\n vm.SaveStoreStaff = SaveStoreStaff\r\n vm.editStoreStaff = editStoreStaff\r\n vm.RemoveStoreStaff = RemoveStoreStaff\r\n vm.cancel = cancel\r\n\r\n vm.clear = clear\r\n vm.GetStoreStaffByCompanyId = GetStoreStaffByCompanyId\r\n vm.getStoreType = getStoreType\r\n // vm.SaveAllocation = SaveAllocation\r\n\r\n var CompanyId = $rootScope.selectedCompanyId;\r\n vm.CompanyId = CompanyId;\r\n var CompanyName = $rootScope.selectedCompanyName\r\n vm.CompanyName = CompanyName;\r\n Init();\r\n\r\n function Init() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n // var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.getAllStore(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreList = res.data;\r\n console.log(vm.StoreList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreList\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreList\");\r\n });\r\n\r\n GetStoreStaffByCompanyId(CompanyId);\r\n getProjectByCompany(CompanyId);\r\n // getDepartmentByCompany(CompanyId);\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n\r\n } else {\r\n vm.store.selectedStore = null;\r\n vm.store.selectedProject = null;\r\n vm.store.SelectedStoreType = null;\r\n vm.store.SelectedStoreNo = null;\r\n vm.store.selectedDepartment = null;\r\n vm.store.selectedDesignation = null;\r\n vm.store.selectedStaff = null;\r\n }\r\n }\r\n\r\n function getStoreType(CompanyId, callback) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n debugger;\r\n var obj = {\r\n CompanyId: CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (CompanyId) {\r\n StoreStaffAllocationService.getStoreType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n console.log(vm.StoreTypeList)\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreType available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n }\r\n }\r\n\r\n function getDepartmentByCompany(CompanyId, callback) {\r\n\r\n if (CompanyId) {\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n console.log(vm.DepartmentList)\r\n if (!vm.DepartmentList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Department available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Department\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Department\");\r\n });\r\n }\r\n }\r\n\r\n function departmentSelectionChanged(callBack) {\r\n\r\n DesignationService.GetDesigByDepId(vm.store.selectedDepartment.DepartmentId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n console.log(vm.DesignationList)\r\n if (!vm.DesignationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Designation available selected Department', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n }\r\n vm.store.selectedDesignation = null;\r\n vm.store.selectedStaff = null;\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't connect the server! Try Again\", \"Create User\");\r\n })\r\n\r\n }\r\n\r\n function designationSelectionChanged(callback) {\r\n\r\n EmployeeService.getAllCompanyEmployees(vm.store.selectedDesignation.DesignationId).then(function(res) {\r\n vm.EmpList = res.data;\r\n console.log(vm.EmpList)\r\n if (!vm.EmpList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Staff available selected Designation', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n vm.store.selectedStaff = null;\r\n\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n });\r\n\r\n }\r\n\r\n function GetStoreStaffByCompanyId(CompanyId) {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.StoreLocationList = [];\r\n if (CompanyId) {\r\n var obj = {\r\n\r\n CompanyId: CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.GetStoreStaffByCompanyId(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.StoreStaffAllocationList = res.data;\r\n if (!vm.StoreStaffAllocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no LIST OF STORE STAFF ALLOCATION DETAILS', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n console.log(vm.StoreStaffAllocationList)\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.StoreStaffAllocationList = [];\r\n }\r\n }\r\n\r\n\r\n function Create() {\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.isTableOpen = false;\r\n vm.store = {}\r\n vm.selectedCompanyFilter = null;\r\n vm.StoreStaffAllocationList = [];\r\n }\r\n\r\n function getStoreNo() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CompanyId: vm.CompanyId,\r\n\r\n StoreTypeId: vm.store.SelectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.getStoreNo(obj).then(function(res) {\r\n console.log(res);\r\n if (res.status === 200) {\r\n\r\n // vm.StoreNo = lodash.find(res.data).StoreNo;\r\n // vm.tStoreSetupId = lodash.find(res.data).tStoreSetupId;\r\n // console.log(vm.StoreNo)\r\n // vm.store.StoreNo = vm.StoreNo\r\n // vm.isLoading = false;\r\n vm.StoreNoList = res.data\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n vm.store.SelectedStoreNo = null;\r\n vm.store.selectedDepartment = null;\r\n vm.store.selectedDesignation = null;\r\n vm.store.selectedStaff = null;\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n // function SaveAllocation(){\r\n // vm.isFormOpen = true;\r\n // vm.addAllocation = true;\r\n // }\r\n function SaveStoreStaff() {\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n var obj = {\r\n tStoreSetupId: vm.store.SelectedStoreNo.tStoreSetupId,\r\n CompanyId: CompanyId,\r\n StoreAtId: vm.store.selectedStore.StoreId,\r\n ProjectId: vm.store.selectedProject.ProjectId,\r\n StoreTypeId: vm.store.SelectedStoreType.StoreTypeId,\r\n StoreNo: vm.store.StoreNo,\r\n DepartmentId: vm.store.selectedDepartment.DepartmentId,\r\n DesignationId: vm.store.selectedDesignation.DesignationId,\r\n StaffId: vm.store.selectedStaff.EmployeeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.AddStoreStaff(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"StoreStaffAllocation\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"StoreStaffAllocation\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n var Obj = {\r\n StaffAlcId: vm.store.StoreAllocationId,\r\n tStoreSetupId: vm.tStoreSetupId,\r\n CompanyId: CompanyId,\r\n StoreAtId: vm.store.selectedStore.StoreId,\r\n ProjectId: vm.store.selectedProject.ProjectId,\r\n StoreTypeId: vm.store.SelectedStoreType.StoreTypeId,\r\n StoreNo: vm.store.StoreNo,\r\n DepartmentId: vm.store.selectedDepartment.DepartmentId,\r\n DesignationId: vm.store.selectedDesignation.DesignationId,\r\n StaffId: vm.store.selectedStaff.EmployeeId,\r\n ModifiedBy: logggedUser.UserId\r\n\r\n }\r\n StoreStaffAllocationService.UpdateStoreStaff(Obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"StoreStaffAllocation\");\r\n\r\n\r\n clear();\r\n Init();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"StoreStaffAllocation\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n function editStoreStaff(row) {\r\n debugger;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.store = angular.copy(row);\r\n\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == row.CompanyId) {\r\n vm.store.selectedCompany = vm.CompanyList[i]\r\n }\r\n }\r\n\r\n getProjectByCompany(row.CompanyId, function() {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId === row.ProjectId) {\r\n vm.store.selectedProject = vm.ProjectList[i]\r\n }\r\n }\r\n })\r\n\r\n for (var i in vm.StoreList) {\r\n if (vm.StoreList[i].StoreId == row.StoredATId)\r\n vm.store.selectedStore = vm.StoreList[i]\r\n }\r\n\r\n // getStoreNo(row.CompanyId, row.StoreTypeId, function() {\r\n for (var i in vm.StoreNoList) {\r\n if (vm.StoreNoList[i].StoreNo == row.StoreNo)\r\n vm.store.SelectedStoreNo = vm.StoreNoList[i]\r\n }\r\n // })\r\n\r\n getStoreType(row.CompanyId, function() {\r\n for (var i in vm.StoreTypeList) {\r\n if (vm.StoreTypeList[i].StoreTypeId == row.StoreTypeId)\r\n vm.store.SelectedStoreType = vm.StoreTypeList[i]\r\n }\r\n })\r\n getDepartmentByCompany(row.CompanyId, function() {\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId == row.DepartmentId)\r\n vm.store.selectedDepartment = vm.DepartmentList[i]\r\n\r\n }\r\n })\r\n\r\n\r\n vm.store.selectedDepartment = {};\r\n vm.store.selectedDepartment.DepartmentId = row.DepartmentId\r\n departmentSelectionChanged(function() {\r\n for (var i in vm.DesignationList) {\r\n if (vm.DesignationList[i].DesignationId == row.DesignationId)\r\n vm.store.selectedDesignation = vm.DesignationList[i]\r\n\r\n }\r\n\r\n })\r\n\r\n\r\n vm.store.selectedDesignation = {};\r\n vm.store.selectedDesignation.DesignationId = row.DesignationId\r\n designationSelectionChanged(function() {\r\n for (var i in vm.EmpList) {\r\n if (vm.EmpList[i].EmployeeId == row.StaffId)\r\n vm.store.selectedStaff = vm.EmpList[i]\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n function RemoveStoreStaff(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n StoreAllocationId: row.StoreAllocationId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.removeStoreStaff(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete State Successfully', \"StoreStaffAllocation\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete StoreStaffAllocation\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n })\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n Init();\r\n vm.store = {};\r\n vm.StoreForm.$setUntouched();\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n function clear() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n\r\n vm.store = {};\r\n\r\n\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('MaterialAttributeCtrl', MaterialAttributeCtrl);\r\n\r\n /** @ngInject */\r\n function MaterialAttributeCtrl($rootScope, lodash, dialogs, $http, MaterialSubCategoryService,\r\n AuthenticationService, MaterialCategoryService, MaterialTypeService, MaterialAttributeService, $scope,\r\n LobMaterialService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n $scope.myFunct = function (event, myValue) {\r\n //var regex = new RegExp(\"^[a-zA-Z0-9]+$\");\r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('error', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n } \r\n // do something with myValue\r\n };\r\n\r\n $scope.pasteOptions = function(event) {\r\n debugger;\r\n var clipboarddata = window.event.clipboardData.getData('text');\r\n var regex = new RegExp(\"^[a-zA-Z0-9 ]+$\");\r\n var pastedData = window.event.clipboardData.getData('text/plain')\r\n if(pastedData.match(regex) === null) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Special Characters Not Allowed!', \"Try Again\");\r\n return false;\r\n }\r\n };\r\n // End of Pagination code\r\n vm.isAdding = false; \r\n vm.isEditing = false;\r\n vm.isLoading = true; \r\n vm.MaterialAttributeList = [];\r\n $rootScope.isLogin = false;\r\n vm.AddMaterialAttribute = true;\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true; \r\n vm.selectType = true;\r\n \r\n //Methods\r\n vm.clear = clear;\r\n vm.getAllAttributes = getAllAttributes;\r\n vm.getMatSubcategoryByCategoryId = getMatSubcategoryByCategoryId;\r\n vm.GetMaterialTypeByMaterialSubCategoryId = GetMaterialTypeByMaterialSubCategoryId;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.EditMaterialAttribute = EditMaterialAttribute;\r\n vm.removeMaterialAttribute = removeMaterialAttribute;\r\n vm.SaveMaterialAttribute = SaveMaterialAttribute;\r\n\r\n\r\n Init();\r\n LoadLob();\r\n LoadCountry();\r\n\r\n function Init() {\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: \"Generic\", Code: \"G\" }, { TypeOfAttributeName: \"Specific\", Code: \"S\" }];\r\n var objMaterialAttribute;\r\n GetMaterialCategory();\r\n }\r\n\r\n function GetMaterialCategory() {\r\n MaterialCategoryService.getAllMaterialCategory().then(function(res) {\r\n if (res.status === 200) {\r\n vm.AllmaterialcategoryList = res.data;\r\n // console.log(\"test\" + vm.materialcategoryList);\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n });\r\n }\r\n\r\n function getMatSubcategoryByCategoryId(MaterialCategoryId, callback) {\r\n\r\n vm.MaterialSubCategoryList = null;\r\n vm.materialattribute.selectedMaterialSubCategoryName = '';\r\n vm.MaterialTypeList = null;\r\n vm.materialattribute.selectedMaterialTypeName = '';\r\n\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (vm.MaterialSubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Subcategory available for ' + vm.materialtype.selectedMaterialCategoryName.MaterialCategoryName, { animation: true, size: 'sm' });\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n } else {\r\n vm.selectSubCategory = false;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n }\r\n\r\n //////\r\n\r\n vm.Lob = function() {\r\n vm.materialattribute.selectedCountry = \"\";\r\n vm.materialattribute.selectedMaterialCategoryName = \"\";\r\n vm.materialattribute.selectedMaterialSubCategoryName = \"\";\r\n vm.materialattribute.selectedMaterialTypeName = \"\";\r\n vm.getCategoryofMaterial();\r\n }\r\n\r\n //// Load All Line Of Business\r\n\r\n function LoadLob() {\r\n LobMaterialService.getActiveLobMaterial($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Material Category By Lob \r\n\r\n function getCategoryofMaterial() {\r\n if (vm.materialattribute.selectedCountry != null && vm.materialattribute.selectedCountry != undefined && vm.materialattribute.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MatId: vm.materialattribute.selectedLOBMaterialName.LOB_MatId,\r\n CountryId: vm.materialattribute.selectedCountry.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function(res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n vm.materialattribute.selectedMaterialSubCategoryName = \"\";\r\n vm.materialattribute.selectedMaterialTypeName = \"\";\r\n vm.materialattribute.selectedMaterialTypeName = '';\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n }\r\n\r\n }\r\n\r\n\r\n function getAllAttributes() {\r\n vm.MaterialAttributeList = [];\r\n vm.AddMaterialAttribute = false;\r\n\r\n var objMaterialAttribute = {\r\n MaterialTypeId: vm.materialattribute.selectedMaterialTypeName.MaterialTypeId,\r\n MaterialSubCategoryId: vm.materialattribute.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialCategoryId: vm.materialattribute.selectedMaterialCategoryName.MaterialCategoryId,\r\n Code: vm.materialattribute.selectedTypeOfAttribute.Code\r\n };\r\n\r\n MaterialAttributeService.getAllMaterialAttributes(objMaterialAttribute).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MaterialAttributeList = res.data.Attribute;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Attribute\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Attribute\");\r\n });\r\n }\r\n\r\n\r\n function GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId, callback) {\r\n\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId).then(function(res) {\r\n\r\n vm.MaterialTypeList = null;\r\n vm.materialattribute.selectedMaterialTypeName = '';\r\n\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n if (vm.MaterialTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Type available for ' + vm.materialattribute.selectedMaterialSubCategoryName.MaterialSubCategoryName, { animation: true, size: 'sm' });\r\n vm.selectType = true;\r\n } else {\r\n vm.selectType = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n function Create() { \r\n vm.isAdding = true; \r\n }\r\n\r\n function cancel() {\r\n vm.isAdding = false; \r\n vm.isEditing = false; \r\n vm.materialattribute.AttributeName = ''; \r\n resetForm();\r\n }\r\n\r\n function resetForm() {\r\n vm.materialattributeForm.$setUntouched();\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isAdding = false; \r\n vm.isEditing = false; \r\n vm.materialattribute = {};\r\n }\r\n\r\n\r\n function EditMaterialAttribute(materialattribute) {\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.materialattribute.AttributeName = vm.OldAttributeName = materialattribute.Name;\r\n\r\n }\r\n\r\n function removeMaterialAttribute(materialattribute) {\r\n materialattribute.MaterialCategoryId = vm.materialattribute.selectedMaterialCategoryName.MaterialCategoryId;\r\n materialattribute.MaterialSubCategoryId = vm.materialattribute.selectedMaterialSubCategoryName.MaterialSubCategoryId;\r\n materialattribute.MaterialTypeId = vm.materialattribute.selectedMaterialTypeName.MaterialTypeId;\r\n materialattribute.AttributeName = materialattribute.Name;\r\n materialattribute.Code = vm.materialattribute.selectedTypeOfAttribute.Code;\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n MaterialAttributeService.removeMaterialAttribute(materialattribute).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Attribute Successfully', \"Material Attributes\");\r\n\r\n getAllAttributes();\r\n Init();\r\n\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveMaterialAttribute(materialattribute) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n materialattribute.MaterialCategoryId = vm.materialattribute.selectedMaterialCategoryName.MaterialCategoryId;\r\n materialattribute.MaterialSubCategoryId = vm.materialattribute.selectedMaterialSubCategoryName.MaterialSubCategoryId;\r\n materialattribute.MaterialTypeId = vm.materialattribute.selectedMaterialTypeName.MaterialTypeId;\r\n materialattribute.OldAttributeName = vm.OldAttributeName;\r\n materialattribute.NewAttributeName = vm.materialattribute.AttributeName;\r\n materialattribute.AttributeName = vm.materialattribute.AttributeName;\r\n\r\n\r\n\r\n if (!vm.isEditing) {\r\n var obj = {\r\n MaterialCategoryId: vm.materialattribute.selectedMaterialCategoryName.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.materialattribute.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialTypeId: vm.materialattribute.selectedMaterialTypeName.MaterialTypeId,\r\n AttributeName: vm.materialattribute.AttributeName,\r\n Code: vm.materialattribute.selectedTypeOfAttribute.Code,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n\r\n MaterialAttributeService.AddMaterialAttribute(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Type\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material Type\");\r\n }\r\n Init();\r\n getAllAttributes();\r\n vm.isAdding = false;\r\n vm.materialattribute.AttributeName = '';\r\n vm.AddMaterialAttribute = true;\r\n \r\n \r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n //vm.cancel();\r\n } else {\r\n materialattribute.ModifiedBy = loggedUser.UserId;\r\n materialattribute.Code = vm.materialattribute.selectedTypeOfAttribute.Code;\r\n MaterialAttributeService.EditMaterialAttribute(materialattribute).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Type\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material Type\");\r\n }\r\n Init();\r\n getAllAttributes();\r\n vm.isAdding = false;\r\n vm.materialattribute.AttributeName = ''; \r\n vm.isEditing = false;\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n //vm.cancel();\r\n\r\n }\r\n \r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('LobMaterialCtrl', LobMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function LobMaterialCtrl($http, $rootScope, lodash, dialogs, LobMaterialService, AuthenticationService,$scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.LobMaterialList = [];\r\n //Method\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editLobMaterial = editLobMaterial;\r\n vm.changeActiveLobMaterial = changeActiveLobMaterial;\r\n vm.removeLobMaterial = removeLobMaterial;\r\n vm.SaveLobMaterial = SaveLobMaterial;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n\r\n \r\n Init();\r\n\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n function Init() {\r\n LobMaterialService.getAllLobMaterial($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n }\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.labelCreate=true;\r\n vm.labelEdit=false; \r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.lobMaterial = {};\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.lobMaterial = {};\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.lobMaterialForm.$setUntouched();\r\n }\r\n\r\n function editLobMaterial(lobMaterial) {\r\n vm.labelCreate= false;\r\n vm.labelEdit= true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.lobMaterial = angular.copy(lobMaterial);\r\n }\r\n\r\n function changeActiveLobMaterial(lobMaterial) {\r\n var msg = 'Are sure you want to ' + ((lobMaterial.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((lobMaterial.IsActive) ? 'Deactive' : 'Active') + 'Lob Material Successfully.'\r\n var confirm = dialogs.confirm('Confirm', msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n LobMaterialService.changeActiveLobMaterial(lobMaterial.LOB_MatId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"LobMaterial\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Active Lob Material\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Active Lob Material.If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function removeLobMaterial(lobMaterial) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n LobMaterialService.removeLobMaterial(lobMaterial.LOB_MatId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete LobMaterial Successfully', \"Lob Material\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Lob Material\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete Lob Material. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n function SaveLobMaterial(lobMaterial) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n lobMaterial.CreatedBy = loggedUser.UserId;\r\n LobMaterialService.AddLobMaterial(lobMaterial).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Lob Material\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Lob Material\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n } else {\r\n lobMaterial.ModifiedBy = loggedUser.UserId;\r\n LobMaterialService.EditLobMaterial(lobMaterial).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Lob Material\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Lob Material\");\r\n vm.isFormOpen = true;\r\n }\r\n \r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n \r\n }\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('ItemOfMaterialCtrl', ItemOfMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function ItemOfMaterialCtrl($http, $scope, $rootScope, lodash, dialogs, MaterialSubCategoryService, MaterialCategoryService, MaterialVariableService,\r\n MaterialTypeService, ItemOfMaterialService, MaterialAttributeService, AuthenticationService, UnitOfMeasurementService, LobMaterialService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n\r\n //properties\r\n vm.VariableList = [];\r\n vm.NonStdSelectedUnitList = [];\r\n vm.obj = [];\r\n vm.filter = {};\r\n vm.itemofmaterial = {};\r\n vm.isCombinationVerified = false;\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n\r\n //Methods\r\n vm.cancel = cancel;\r\n vm.removeIOM = removeIOM;\r\n vm.getMatSubcategoryByCategoryId = getMatSubcategoryByCategoryId;\r\n vm.GetMaterialTypeByMaterialSubCategoryId = GetMaterialTypeByMaterialSubCategoryId;\r\n // vm.getUnitListByUnitType = getUnitListByUnitType;\r\n vm.getAllCombinations = getAllCombinations;\r\n vm.selectVariable = selectVariable;\r\n vm.clearFilter = clearFilter;\r\n vm.checkCombinationExist = checkCombinationExist;\r\n vm.saveIOM = saveIOM;\r\n vm.loadGrid = loadGrid;\r\n vm.editIOM = editIOM;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.resetForm = resetForm;\r\n vm.AddPackUnit = AddPackUnit;\r\n vm.removeUnit = removeUnit;\r\n vm.getNonStdUnits = getNonStdUnits;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.editUnit = editUnit;\r\n vm.getAllStdUom = getAllStdUom;\r\n vm.getUnitListByUOMId = getUnitListByUOMId;\r\n // Init();\r\n LoadLob();\r\n LoadCountry();\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: 'Generic', Code: 'G' }, { TypeOfAttributeName: 'Specific', Code: 'S' }];\r\n\r\n // function Init() {\r\n\r\n // MaterialCategoryService.GetActiveMaterialCategory($http, $rootScope).then(function(res) {\r\n // if (res.status === 200) {\r\n // vm.AllmaterialcategoryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n // }\r\n // });\r\n\r\n // }\r\n //////\r\n\r\n vm.Lob = function () {\r\n vm.materialsubcategory.selectedCountry = \"\";\r\n vm.selectedMaterialCategoryName = \"\";\r\n vm.selectedMaterialSubCategoryName = \"\";\r\n vm.selectedMaterialTypeName = \"\";\r\n vm.selectedTypeOfAttribute = \"\";\r\n getCategoryofMaterial();\r\n }\r\n\r\n\r\n\r\n //// Load All Line Of Business\r\n\r\n function LoadLob() {\r\n LobMaterialService.getActiveLobMaterial($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Material Category By Lob\r\n\r\n function getCategoryofMaterial() {\r\n if (vm.materialsubcategory.selectedCountry != null && vm.materialsubcategory.selectedCountry != undefined && vm.materialsubcategory.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MatId: vm.materialsubcategory.selectedLOBMaterialName.LOB_MatId,\r\n CountryId: vm.materialsubcategory.selectedCountry.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n vm.selectedMaterialCategoryName = \"\";\r\n vm.selectedMaterialSubCategoryName = \"\";\r\n vm.selectedMaterialTypeName = \"\";\r\n vm.selectedTypeOfAttribute = \"\";\r\n\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n vm.selectedMaterialTypeName = null;\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n }\r\n\r\n }\r\n\r\n function loadGrid() {\r\n var obj = {\r\n MaterialCategoryId: vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialTypeId: vm.selectedMaterialTypeName.MaterialTypeId,\r\n SpecType: vm.selectedTypeOfAttribute.Code\r\n }\r\n ItemOfMaterialService.getAllIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n function getMatSubcategoryByCategoryId(MaterialCategoryId, callback) {\r\n\r\n vm.MaterialSubCategoryList = [];\r\n vm.selectedMaterialSubCategoryName = null;\r\n vm.MaterialTypeList = [];\r\n vm.selectedMaterialTypeName = null;\r\n\r\n\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (vm.MaterialSubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Subcategory available for ' + vm.selectedMaterialCategoryName.MaterialCategoryName, { animation: true, size: 'sm' });\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n } else {\r\n vm.selectedMaterialTypeName = \"\";\r\n vm.selectSubCategory = false;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n function GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId, callback) {\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId).then(function (res) {\r\n vm.MaterialTypeList = null;\r\n vm.selectedMaterialTypeName = '';\r\n\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n if (vm.MaterialTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Type available for ' + vm.selectedMaterialSubCategoryName.MaterialSubCategoryName, { animation: true, size: 'sm' });\r\n vm.selectType = true;\r\n } else {\r\n vm.selectType = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n\r\n }\r\n\r\n function getAllCombinations() {\r\n var obj = {\r\n MaterialCategoryId: vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialTypeId: vm.selectedMaterialTypeName.MaterialTypeId,\r\n Code: vm.selectedTypeOfAttribute.Code\r\n }\r\n\r\n MaterialVariableService.getMaterialCombination(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.isAdding = true;\r\n if (res.data) {\r\n vm.rawCombinations = angular.copy(res.data.VariablesCombinations);\r\n vm.VariablesCombinations = res.data.VariablesCombinations;\r\n vm.rawAttrList = res.data.AttributeList;\r\n vm.filter = {};\r\n\r\n createViewModel();\r\n } else {\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot reach server! Try Again', \"Error!\");\r\n vm.AttributeList = [];\r\n vm.isAdding = false;\r\n });\r\n }\r\n\r\n function selectVariable(attribute, variable) {\r\n vm.isCombinationVerified = false;\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n variable.IsSelected = false;\r\n });\r\n variable.IsSelected = true;\r\n attribute.selectedVariable = variable.VariableName;\r\n filterVariables();\r\n }\r\n\r\n function filterVariables() {\r\n\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n if (attribute.selectedVariable)\r\n vm.filter[attribute.AttributesName] = attribute.selectedVariable;\r\n });\r\n vm.VariablesCombinations = lodash.filter(vm.VariablesCombinations, vm.filter);\r\n createViewModel();\r\n lodash.forEach(vm.AttributeList, function (attribute) {\r\n lodash.forEach(attribute.VariableList, function (variable) {\r\n if (variable.VariableName === vm.filter[attribute.AttributesName])\r\n variable.IsSelected = true;\r\n else\r\n variable.IsSelected = false;\r\n });\r\n });\r\n }\r\n\r\n function clearFilter() {\r\n vm.filter = {};\r\n vm.isCombinationVerified = false;\r\n vm.VariablesCombinations = vm.rawCombinations;\r\n createViewModel();\r\n }\r\n\r\n\r\n\r\n function AddPackUnit() {\r\n var res = lodash.find(vm.NonStdSelectedUnitList, { 'UOM_Id': vm.selectedNonStdUnitName.UOM_Id });\r\n\r\n if (res) {\r\n $rootScope.showToaster('error', 'Already Exist', \"Packing Units\");\r\n } else {\r\n var obj = {\r\n Name: vm.selectedNonStdUnitName.Name,\r\n UOM_Id: vm.selectedNonStdUnitName.UOM_Id,\r\n UnitValue: vm.itemofmaterial.UnitValue\r\n }\r\n vm.NonStdSelectedUnitList.push(obj);\r\n }\r\n vm.selectedNonStdUnitName = null;\r\n vm.itemofmaterial.UnitValue = '';\r\n }\r\n\r\n\r\n\r\n function removeUnit(row) {\r\n vm.NonStdSelectedUnitList.splice(row, 1);\r\n };\r\n\r\n function editUnit(row) {\r\n vm.itemofmaterial.UnitValue = angular.copy(row.UnitValue);\r\n\r\n for (var c in vm.NonStdUnitPackingList) {\r\n if (vm.NonStdUnitPackingList[c].UOM_Id === row.UOM_Id) {\r\n vm.selectedNonStdUnitName = vm.NonStdUnitPackingList[c];\r\n }\r\n }\r\n }\r\n\r\n function editIOM(row) {\r\n debugger;\r\n vm.IOMUpdate = angular.copy(row);\r\n vm.isEditing = true;\r\n vm.weight = false;\r\n vm.packUnit = false;\r\n vm.isAdding = false;\r\n vm.itemofmaterial.ShortDescription = angular.copy(row.ShortDescription);\r\n vm.itemofmaterial.LongDescription = angular.copy(row.LongDescription);\r\n //vm.Unitstd = (vm.IOMUpdate.UOM_Id == null) ? 'S' : 'NS';\r\n\r\n // getAllStdUom(function () { // Get Type of dimension \r\n // for (var c in vm.UOM_MasterList ) {\r\n // if ( vm.UOM_MasterList [c].UOM_Id === row.UOM_Id) {\r\n // vm.selectedUom = vm.UOM_MasterList[c];\r\n // }\r\n // }\r\n // });\r\n // if (row.UnitId > 0) {\r\n // vm.Unitstd = 'S'\r\n // vm.UnitType = angular.copy(row.UnitStandard);\r\n // getUnitListByUOMId(row.UnitStandard, function () {\r\n // for (var c in vm.UnitList) {\r\n // if (vm.UnitList[c].UnitId === row.UnitId) {\r\n // vm.selectedStdUnit = vm.UnitList[c];\r\n // }\r\n // }\r\n // });\r\n // }\r\n // else if (row.UOM_Id > 0) {\r\n // vm.Unitstd = 'NS'\r\n // getNonStdUnits(function () {\r\n // for (var c in vm.NonStdUnitList) {\r\n // if (vm.NonStdUnitList[c].UOM_Id === row.UOM_Id) {\r\n // vm.selectedNonStdUnit = vm.NonStdUnitList[c];\r\n // }\r\n // }\r\n // });\r\n // }\r\n\r\n getAllStdUom(function () { // Get Type of dimension \r\n for (var c in vm.UOM_MasterList) {\r\n if (vm.UOM_MasterList[c].UOM_Id === row.UOM_Id) {\r\n vm.selectedUom = vm.UOM_MasterList[c];\r\n }\r\n }\r\n // Get Standard Unit\r\n debugger;\r\n if (row.Type == 'S') {\r\n vm.Unitstd = 'S'\r\n vm.UnitType = row.UnitStandard;\r\n getUnitListByUOMId(vm.UnitType, vm.selectedUom.UOM_Id, function () {\r\n for (var c in vm.UnitList) {\r\n if (vm.UnitList[c].UnitId === row.UnitId) {\r\n vm.selectedStdUnit = vm.UnitList[c];\r\n }\r\n }\r\n })\r\n } else {\r\n vm.Unitstd = 'NS'; // Get Non Standard Unit \r\n getNonStdUnits(function () {\r\n for (var c in vm.NonStdUnitList) {\r\n if (vm.NonStdUnitList[c].UOM_Id === row.UOM_Id) {\r\n vm.selectedNonStdUnit = vm.NonStdUnitList[c];\r\n }\r\n }\r\n })\r\n }\r\n });\r\n\r\n\r\n vm.itemofmaterial.UnitWeight = angular.copy(row.UnitWeight);\r\n vm.NonStdSelectedUnitList = JSON.parse(row.PakageList);\r\n\r\n\r\n\r\n\r\n\r\n if ((row.UnitWeight != 0) && (row.PakageList != null || row.PakageList != '[]')) {\r\n vm.weight = true;\r\n vm.packUnit = true;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n function removeIOM(itemofmaterial) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n confirm.result.then(function () {\r\n ItemOfMaterialService.removeIOM(itemofmaterial.Id).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"IO Material\");\r\n loadGrid();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete IO Material\", { animation: true, size: 'sm' });\r\n };\r\n\r\n });\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n })\r\n clear();\r\n }\r\n\r\n function createViewModel() {\r\n var tempArr = [];\r\n for (var a in vm.rawAttrList) {\r\n var temp = { AttributesName: vm.rawAttrList[a], VariableList: [] }\r\n for (var c in vm.VariablesCombinations) {\r\n var test = (lodash.some(temp.VariableList, { \"VariableName\": vm.VariablesCombinations[c][temp.AttributesName] }));\r\n if (!test) {\r\n var tempVar = {\r\n VariableName: vm.VariablesCombinations[c][temp.AttributesName],\r\n IsSelected: false\r\n }\r\n temp.VariableList.push(tempVar);\r\n }\r\n }\r\n tempArr.push(temp);\r\n }\r\n vm.AttributeList = tempArr;\r\n }\r\n\r\n function constructLongDescription() {\r\n var description = vm.selectedMaterialCategoryName.MaterialCategoryName + ' of ' +\r\n vm.selectedMaterialSubCategoryName.MaterialSubCategoryName + ' of ' +\r\n vm.selectedMaterialTypeName.MaterialTypeName + ' ';\r\n\r\n var keys = lodash.keys(vm.filter);\r\n var temp = '';\r\n for (var i in keys) {\r\n temp += '(' + (parseInt(i) + 1) + ') ' + keys[i] + ' : ' + vm.filter[keys[i]] + ' ';\r\n }\r\n description += ', ' + temp;\r\n vm.itemofmaterial.LongDescription = description;\r\n }\r\n\r\n function getNonStdUnits(callBack) {\r\n vm.selectedNonStdUnit = null;\r\n vm.UnitType = null;\r\n vm.NonStdUnitList = [];\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function (res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitList = res.data;\r\n if (callBack)\r\n callBack()\r\n } else { }\r\n }, function (err) { });\r\n }\r\n\r\n // function getUnitListByUnitType(UnitType, callback) {\r\n // vm.selectedStdUnit = null;\r\n // vm.UnitList = [];\r\n // UnitOfMeasurementService.getAllUnitByUnitType(UnitType).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.UnitList = res.data;\r\n // vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Units\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n // });\r\n // }\r\n\r\n function getUnitListByUOMId(UnitType, UOM_Id, callback) {\r\n if (UOM_Id !== undefined) {\r\n var Obj = {\r\n UnitType: vm.UnitType,\r\n UOM_Id: UOM_Id\r\n }\r\n UnitOfMeasurementService.getAllUnits(Obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.selectedStdUnit = null;\r\n vm.UnitList = res.data;\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Units\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Units\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Select UOM & Measurement Type', \"Units\");\r\n }\r\n }\r\n\r\n function getSelectedCombination() {\r\n\r\n var combination = {};\r\n for (var attribute in vm.AttributeList) {\r\n if (vm.AttributeList[attribute].VariableList[0].IsSelected)\r\n combination[vm.AttributeList[attribute].AttributesName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n else\r\n combination[vm.AttributeList[attribute].AttributesName] = '';\r\n }\r\n // combination[vm.AttributeList[attribute].AttributesName] = vm.AttributeList[attribute].VariableList[0].VariableName;\r\n return combination;\r\n }\r\n\r\n function checkCombinationExist() {\r\n debugger;\r\n if (lodash.keys(vm.filter).length > 0) {\r\n var obj = {\r\n \"MaterialCategoryId\": vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n \"MaterialSubCategoryId\": vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n \"MaterialTypeId\": vm.selectedMaterialTypeName.MaterialTypeId,\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code,\r\n \"Properties\": JSON.stringify(getSelectedCombination())\r\n }\r\n ItemOfMaterialService.checkCombinationExist(obj).then(function (res) {\r\n if (res.status == 200) {\r\n if (!res.data) {\r\n vm.isFormOpen = true;\r\n vm.isCombinationVerified = true;\r\n constructLongDescription();\r\n } else {\r\n $rootScope.showToaster('error', 'IO Material already exist with given combination');\r\n }\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isCombinationVerified = false;\r\n }\r\n }, function (err) {\r\n\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', 'Please select a variable from each attribute list');\r\n }\r\n }\r\n\r\n UnitOfMeasurementService.getAllNonStdUnits().then(function (res) {\r\n if (res.status === 200) {\r\n vm.NonStdUnitPackingList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Non Std Units\");\r\n });\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.itemofmaterial = {};\r\n vm.NonStdSelectedUnitList = [];\r\n vm.weight = '';\r\n vm.packUnit = '';\r\n vm.selectedStdUnit = null;\r\n vm.selectedNonStdUnit = null;\r\n\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.itemofmaterial = {};\r\n vm.NonStdSelectedUnitList = [];\r\n vm.weight = '';\r\n vm.packUnit = '';\r\n vm.selectedStdUnit = null;\r\n vm.selectedNonStdUnit = null;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.ItemofmaterialForm.$setUntouched();\r\n clearFilter()\r\n vm.isAdding = false;\r\n vm.isEditing = false;\r\n }\r\n\r\n\r\n\r\n\r\n function saveIOM(itemofmaterial) {\r\n // var uom = vm.NonStdSelectedUnitList;\r\n // var tempData = [];\r\n // for (var i in uom) {\r\n // if (uom[i].UOM_Id != undefined) {\r\n // tempData.push(uom[i].UOM_Id);\r\n // }\r\n // } \r\n // var teststring = JSON.stringify(tempData)\r\n // var UOMIds = teststring.substring(1, teststring.length - 1) \r\n // var obj={\r\n // \"UOM_Id\":UOMIds\r\n // }\r\n\r\n if (!vm.isEditing) {\r\n var IOM = {\r\n \"MaterialCategoryId\": vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n \"MaterialSubCategoryId\": vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n \"MaterialTypeId\": vm.selectedMaterialTypeName.MaterialTypeId,\r\n \"Properties\": JSON.stringify(getSelectedCombination()),\r\n \"ShortDescription\": vm.itemofmaterial.ShortDescription,\r\n \"LongDescription\": vm.itemofmaterial.LongDescription,\r\n \"UnitId\": (vm.selectedStdUnit != undefined) ? vm.selectedStdUnit.UnitId : 0,\r\n \"UOM_Id\": ((vm.selectedNonStdUnit != undefined) ? vm.selectedNonStdUnit.UOM_Id : 0) || ((vm.selectedUom != undefined) ? vm.selectedUom.UOM_Id : 0),\r\n \"PakageList\": angular.toJson(vm.NonStdSelectedUnitList),\r\n \"UnitWeight\": vm.itemofmaterial.UnitWeight,\r\n \"SpecType\": vm.selectedTypeOfAttribute.Code,\r\n \"CreatedBy\": loggedUser.UserId\r\n }\r\n ItemOfMaterialService.AddIOM(IOM).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"IOM\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"IOM\");\r\n }\r\n resetForm();\r\n loadGrid();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n clear();\r\n\r\n }\r\n else {\r\n vm.IOMUpdate.Id = vm.IOMUpdate.Id,\r\n vm.IOMUpdate.ShortDescription = vm.itemofmaterial.ShortDescription,\r\n vm.IOMUpdate.LongDescription = vm.itemofmaterial.LongDescription,\r\n vm.IOMUpdate.UnitWeight = vm.itemofmaterial.UnitWeight,\r\n vm.IOMUpdate.UnitId = (vm.selectedStdUnit != undefined) ? vm.selectedStdUnit.UnitId : 0,\r\n vm.IOMUpdate.UOM_Id = ((vm.selectedNonStdUnit != undefined) ? vm.selectedNonStdUnit.UOM_Id : 0) || ((vm.selectedUom != undefined) ? vm.selectedUom.UOM_Id : 0),\r\n vm.IOMUpdate.PakageList = angular.toJson(vm.NonStdSelectedUnitList),\r\n vm.IOMUpdate.ModifiedBy = loggedUser.UserId\r\n ItemOfMaterialService.UpdateIOM(vm.IOMUpdate).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"IOM\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"IOM\");\r\n }\r\n vm.resetForm();\r\n loadGrid();\r\n vm.isFormOpen = false;\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n clear();\r\n }\r\n\r\n\r\n }\r\n function getAllStdUom(callBack) {\r\n UnitOfMeasurementService.GetAllStdUOM().then(function (res) {\r\n if (res.status === 200) {\r\n vm.UOM_MasterList = res.data;\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Cannot load Type of Dimension, Try Again!', 'Error');\r\n }\r\n );\r\n }\r\n\r\n $scope.fileChanged = function (event) {\r\n if (event)\r\n vm.selectedMaterialPic = event.target.files[0];\r\n }\r\n\r\n $scope.fileChanged1 = function (event) {\r\n if (event)\r\n vm.selectedMaterialDocument = event.target.files[0];\r\n }\r\n\r\n vm.UploadMaterialFile = function () {\r\n var formData = new FormData();\r\n formData.append('MaterialPic', vm.selectedMaterialPic);\r\n formData.append('MaterialDocument', vm.selectedMaterialDocument);\r\n formData.append('Id', vm.IOMUpdate.Id);\r\n ItemOfMaterialService.UploadMaterialFile(formData).then(function (res) {\r\n if (res.status === 200) {\r\n console.log(res);\r\n vm.IOMUpdate.MaterialPic = res.data.MaterialPic\r\n vm.IOMUpdate.MaterialDocument = res.data.MaterialDocument\r\n $rootScope.showToaster('success', \"Material File Uploaded\", \"Item of Material Files\");\r\n } else {\r\n $rootScope.showToaster('error', \"Material File Uploaded Failed!\", \"Item of Material Files\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('MaterialCategoryCtrl', MaterialCategoryCtrl);\r\n\r\n /** @ngInject */\r\n function MaterialCategoryCtrl($rootScope, lodash,$window, dialogs, $http, MaterialCategoryService,\r\n AuthenticationService, CountryService, LobMaterialService, $scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.materialcategoryList = [];\r\n //Methods\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editmaterialcategory = editmaterialcategory;\r\n vm.removeMaterialCategory = removeMaterialCategory;\r\n vm.changeActiveMaterialCategory = changeActiveMaterialCategory;\r\n vm.SaveMaterialCategory = SaveMaterialCategory;\r\n vm.getFilterMaterialCategory = getFilterMaterialCategory;\r\n vm.ShowMaterialCategoryReport = ShowMaterialCategoryReport;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n Init();\r\n\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n function Init() {\r\n MaterialCategoryService.getAllMaterialCategory($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n\r\n MaterialCategoryService.getFilterMatLOB($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctLobList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n\r\n MaterialCategoryService.getFilterMatCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n }\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n LobMaterialService.getActiveLobMaterial($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n\r\n function getFilterMaterialCategory() {\r\n vm.filteredMaterialCategoryList=[];\r\n var objGetCategory = {\r\n LOB_MatId: vm.selectedLOBFilter.LOB_MatId,\r\n CountryId: vm.selectedCountryFilter.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.filteredMaterialCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n }\r\n\r\n\r\n function Create() {\r\n vm.code = true;\r\n vm.isFormOpen = true;\r\n vm.selectedLOBFilter = null;\r\n vm.distinctLobList = [];\r\n vm.selectedCountryFilter = null;\r\n vm.distinctCountryList = [];\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.materialcategory = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.materialcategory = {};\r\n Init();\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n\r\n function resetForm() {\r\n vm.materialcategoryForm.$setUntouched();\r\n }\r\n\r\n function editmaterialcategory(materialcategory) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.code = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.materialcategory = angular.copy(materialcategory);\r\n\r\n for (var c in vm.LobMaterialList) {\r\n if (vm.LobMaterialList[c].LOB_MatId === materialcategory.LOB_MatId) {\r\n vm.materialcategory.selectedLOBMaterialName = vm.LobMaterialList[c];\r\n }\r\n }\r\n for (var c in vm.CountryList) {\r\n if (vm.CountryList[c].CountryId === materialcategory.CountryId) {\r\n vm.materialcategory.selectedCountry = vm.CountryList[c];\r\n }\r\n }\r\n\r\n }\r\n\r\n function removeMaterialCategory(materialcategory) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n MaterialCategoryService.removeMaterialCategory(materialcategory.MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete MaterialCategory Successfully', \"materialCategory\");\r\n getFilterMaterialCategory(vm.selectedLOBFilter.LOB_MatId,vm.selectedCountryFilter.CountryId);\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete MaterialCategory\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveMaterialCategory(materialcategory) {\r\n var msg = 'Are sure you want to ' + ((materialcategory.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((materialcategory.IsActive) ? 'Deactive' : 'Active') + 'materialcategory Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n MaterialCategoryService.changeActiveMaterialCategory(materialcategory.MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"materialcategory\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete materialcategory\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete materialcategory. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () { })\r\n }\r\n\r\n function SaveMaterialCategory(materialcategory) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n materialcategory.LOB_MatId = vm.materialcategory.selectedLOBMaterialName.LOB_MatId,\r\n materialcategory.CountryId = vm.materialcategory.selectedCountry.CountryId\r\n if (!vm.isEditing) {\r\n materialcategory.CreatedBy = loggedUser.UserId;\r\n MaterialCategoryService.AddMaterialCategory(materialcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Category \");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material Category \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Something error...try again\");\r\n });\r\n\r\n } else {\r\n materialcategory.ModifiedBy = loggedUser.UserId;\r\n MaterialCategoryService.EditMaterialCategory(materialcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Category \");\r\n getFilterMaterialCategory(vm.selectedLOBFilter.LOB_MatId,vm.selectedCountryFilter.CountryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material Category \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n function ShowMaterialCategoryReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n MaterialCategoryService.ShowMaterialCategoryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('MaterialSubCategoryCtrl', MaterialSubCategoryCtrl);\r\n\r\n /** @ngInject */\r\n function MaterialSubCategoryCtrl($rootScope,$window, lodash, dialogs, $http, MaterialSubCategoryService,\r\n AuthenticationService, MaterialCategoryService, LobMaterialService, CountryService,$scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\"value\": 5}, {\"value\": 10}, {\"value\": 25}, {\"value\": 50}, {\"value\": 100}]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.MaterialSubCategoryList = [];\r\n $rootScope.isLogin = false;\r\n vm.selectCategory = true;\r\n //Methods\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editMatSubCategory = editMatSubCategory;\r\n vm.removeMaterialSubCategory = removeMaterialSubCategory;\r\n vm.changeActiveMaterialSubCategory = changeActiveMaterialSubCategory;\r\n vm.SaveMaterialSubCategory = SaveMaterialSubCategory;\r\n vm.getFilterCategory = getFilterCategory;\r\n vm.filterGrid=filterGrid;\r\n vm.ShowMaterialSubCategoryReport =ShowMaterialSubCategoryReport;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n\r\n\r\n Init();\r\n LoadLob();\r\n LoadCountry();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n function Init() {\r\n MaterialSubCategoryService.getAllMaterialSubCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n // vm.distinctFocList = lodash.uniqBy(vm.MaterialSubCategoryList, 'MaterialCategory.LOB_MatId');\r\n // vm.distinctCountryList = lodash.uniqBy(vm.MaterialSubCategoryList, 'MaterialCategory.CountryId');\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n\r\n MaterialCategoryService.getFilterMatLOB($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctLobList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n\r\n MaterialCategoryService.getFilterMatCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n }\r\n\r\n function getFilterCategory() {\r\n var obj = {\r\n LOB_MatId: vm.selectedLOBFilter.LOB_MatId,\r\n CountryId: vm.selectedCountryFilter.CountryId\r\n }\r\n var obj1 = {\r\n Inputs: JSON.stringify(obj)\r\n }\r\n MaterialSubCategoryService.getFilterMatCategory(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctMatCatList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n }\r\n\r\n function filterGrid(MaterialCategoryId){\r\n vm.filteredMaterialSubCategoryList=[];\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.filteredMaterialSubCategoryList = res.data; \r\n vm.isLoading = false; \r\n }\r\n });\r\n }\r\n\r\n //// All material Category\r\n\r\n MaterialCategoryService.getAllMaterialCategory($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllmaterialcategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n\r\n //////\r\n\r\n vm.Lob = function () {\r\n vm.materialsubcategory.selectedCountry = \"\";\r\n vm.materialsubcategory.selectedMaterialCategoryName = \"\";\r\n vm.materialsubcategory.MaterialSubCategoryName = \"\";\r\n vm.getCategoryofMaterial();\r\n }\r\n\r\n //// Load All Line Of Business\r\n\r\n function LoadLob() {\r\n LobMaterialService.getActiveLobMaterial($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Material Category By Lob\r\n\r\n function getCategoryofMaterial() {\r\n if (vm.materialsubcategory.selectedCountry != null && vm.materialsubcategory.selectedCountry != undefined && vm.materialsubcategory.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MatId: vm.materialsubcategory.selectedLOBMaterialName.LOB_MatId,\r\n CountryId: vm.materialsubcategory.selectedCountry.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.materialsubcategory.selectedMaterialCategoryName = \"\";\r\n vm.materialsubcategory.MaterialSubCategoryName = \"\";\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n }\r\n\r\n }\r\n\r\n\r\n function Create() {\r\n vm.subcategorycode = true;\r\n vm.isFormOpen = true;\r\n vm.selectCategory = true;\r\n vm.selectedLOBFilter = null;\r\n vm.distinctLobList = [];\r\n vm.selectedCountryFilter = null;\r\n vm.distinctCountryList = [];\r\n vm.selectedCategoryFilter=null;\r\n vm.distinctMatCatList=[];\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.materialsubcategory = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n resetForm();\r\n vm.materialsubcategory = {};\r\n Init();\r\n \r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.materialsubcategoryForm.$setUntouched();\r\n }\r\n\r\n function editMatSubCategory(materialsubcategory) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.subcategorycode = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.materialsubcategory = angular.copy(materialsubcategory);\r\n for (var i in vm.LobMaterialList) {\r\n if (vm.LobMaterialList[i].LOB_MatId === materialsubcategory.MaterialCategory.LOB_MatId) {\r\n vm.materialsubcategory.selectedLOBMaterialName = vm.LobMaterialList[i];\r\n }\r\n }\r\n\r\n for (var j in vm.CountryList) {\r\n if (vm.CountryList[j].CountryId === materialsubcategory.MaterialCategory.CountryId) {\r\n vm.materialsubcategory.selectedCountry = vm.CountryList[j];\r\n }\r\n }\r\n\r\n getCategoryofMaterial();\r\n for (var c in vm.AllmaterialcategoryList) {\r\n if (vm.AllmaterialcategoryList[c].MaterialCategoryId === materialsubcategory.MaterialCategoryId) {\r\n vm.materialsubcategory.selectedMaterialCategoryName = vm.AllmaterialcategoryList[c];\r\n }\r\n }\r\n\r\n }\r\n\r\n function removeMaterialSubCategory(materialsubcategory) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MaterialSubCategoryService.removeMaterialSubCategory(materialsubcategory.MaterialSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete MaterialSubCategory Successfully', \"Category\");\r\n filterGrid( vm.selectedCategoryFilter.MaterialCategoryId);\r\n } else {\r\n dialogs.error('error', \"Can't Delete MaterialSubCategory\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveMaterialSubCategory(materialsubcategory) {\r\n var msg = 'Are sure you want to ' + ((materialsubcategory.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((materialsubcategory.IsActive) ? 'Deactive' : 'Active') + 'materialsubcategory Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MaterialSubCategoryService.changeActiveMaterialSubCategory(materialsubcategory.MaterialSubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"materialsubcategory\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete materialsubcategory\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete materialsubcategory. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () { })\r\n }\r\n\r\n function SaveMaterialSubCategory(materialsubcategory) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n materialsubcategory.MaterialCategoryId = vm.materialsubcategory.selectedMaterialCategoryName.MaterialCategoryId;\r\n\r\n if (!vm.isEditing) {\r\n materialsubcategory.CreatedBy = loggedUser.UserId;\r\n MaterialSubCategoryService.AddMaterialSubCategory(materialsubcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material SubCategory \");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material SubCategory \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n materialsubcategory.ModifiedBy = loggedUser.UserId;\r\n MaterialSubCategoryService.EditMaterialSubCategory(materialsubcategory).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material SubCategory \");\r\n filterGrid( vm.selectedCategoryFilter.MaterialCategoryId);\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material SubCategory \");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n function ShowMaterialSubCategoryReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n \r\n var inputdata={\r\n CompanyName:'PIONEER GROUP',\r\n \r\n }\r\n\r\n MaterialSubCategoryService.ShowMaterialSubCategoryReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('MaterialTypeCtrl', MaterialTypeCtrl);\r\n\r\n /** @ngInject */\r\n function MaterialTypeCtrl($scope,$rootScope, lodash, dialogs, $http, $window, MaterialSubCategoryService, AuthenticationService, MaterialCategoryService, MaterialTypeService,\r\n LobMaterialService, CountryService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.MaterialTypeList = [];\r\n //Methods\r\n vm.getMatSubcategoryByCategoryId = getMatSubcategoryByCategoryId;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.Create = Create;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.editmaterialtype = editmaterialtype;\r\n vm.removeMaterialtype = removeMaterialtype;\r\n vm.changeActiveMaterialtype = changeActiveMaterialtype;\r\n vm.SaveMaterialType = SaveMaterialType;\r\n vm.filterGrid = filterGrid;\r\n vm.getFilterCategory = getFilterCategory;\r\n vm.getFilterSubCategory = getFilterSubCategory;\r\n vm.ShowMaterialTypeReport = ShowMaterialTypeReport;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n\r\n\r\n Init();\r\n LoadLob();\r\n LoadCountry();\r\n $scope.AlphOnly = function (event, myValue) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z ]+$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n $rootScope.showToaster('info', 'Numbers And Special Characters', \"Not Allowed..!\");\r\n return false;\r\n }\r\n \r\n }\r\n\r\n\r\n function Init() {\r\n\r\n MaterialTypeService.getAllMaterialtype().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n // vm.distinctFocList = lodash.uniqBy(vm.MaterialTypeList, 'MaterialCategory.LOB_MatId');\r\n // vm.distinctCountryList = lodash.uniqBy(vm.MaterialTypeList, 'MaterialCategory.CountryId');\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Type\");\r\n });\r\n\r\n MaterialCategoryService.getFilterMatLOB($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctLobList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n\r\n MaterialCategoryService.getFilterMatCountry($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctCountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n }\r\n\r\n function getFilterCategory() {\r\n var obj = {\r\n LOB_MatId: vm.selectedLOBFilter.LOB_MatId,\r\n CountryId: vm.selectedCountryFilter.CountryId\r\n }\r\n var obj1 = {\r\n Inputs: JSON.stringify(obj)\r\n }\r\n MaterialSubCategoryService.getFilterMatCategory(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctMatCatList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n }\r\n\r\n function getFilterSubCategory() {\r\n var obj = {\r\n CategoryId: vm.selectedCategoryFilter.MaterialCategoryId,\r\n }\r\n var obj1 = {\r\n Inputs: JSON.stringify(obj)\r\n }\r\n MaterialTypeService.getFilterMatSubCategory(obj1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.distinctMatSubList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Category\");\r\n });\r\n }\r\n\r\n function filterGrid(MaterialSubcategoryId) {\r\n vm.filteredMaterialTypeList = [];\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubcategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.filteredMaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n vm.Lob = function () {\r\n vm.materialtype.selectedCountry = null;\r\n vm.materialtype.selectedMaterialCategoryName = null;\r\n vm.materialtype.selectedMaterialSubCategoryName = null;\r\n // vm.materialtype.MaterialTypeName = \"\";\r\n getCategoryofMaterial();\r\n }\r\n\r\n\r\n //// Load All Line Of Business\r\n\r\n function LoadLob() {\r\n LobMaterialService.getActiveLobMaterial($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Material Category By Lob\r\n\r\n function getCategoryofMaterial(callback) {\r\n\r\n if (vm.materialtype.selectedLOBMaterialName && vm.materialtype.selectedCountry) {\r\n vm.materialtype.selectedMaterialCategoryName = null;\r\n vm.materialtype.selectedMaterialSubCategoryName = null;\r\n vm.MaterialSubCategoryList = [];\r\n var objGetCategory = {\r\n LOB_MatId: vm.materialtype.selectedLOBMaterialName.LOB_MatId,\r\n CountryId: vm.materialtype.selectedCountry.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n\r\n dialogs.notify('warning', \"No Data In Category\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.materialtype.selectedMaterialCategoryName = null;\r\n vm.materialtype.selectedMaterialSubCategoryName = null;\r\n vm.materialcategoryList = [];\r\n vm.MaterialSubCategoryList = [];\r\n }\r\n\r\n }\r\n\r\n function getMatSubcategoryByCategoryId(MaterialCategoryId, callback) {\r\n if (MaterialCategoryId) {\r\n vm.MaterialSubCategoryList = [];\r\n vm.materialtype.selectedMaterialSubCategoryName = null;\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n if (vm.MaterialSubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Subcategory available for ' + vm.materialtype.selectedMaterialCategoryName.MaterialCategoryName, { animation: true, size: 'sm' });\r\n vm.selectSubCategory = true;\r\n } else {\r\n vm.selectSubCategory = false;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n } else {\r\n vm.MaterialSubCategoryList = [];\r\n vm.materialtype.selectedMaterialSubCategoryName = null;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = open;\r\n vm.typecode = true;\r\n vm.isFormOpen = true;\r\n vm.materialtype = {};\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectedLOBFilter = null;\r\n vm.distinctLobList = [];\r\n vm.selectedCountryFilter = null;\r\n vm.distinctCountryList = [];\r\n vm.selectedCategoryFilter = null;\r\n vm.distinctMatCatList = [];\r\n vm.selectedSubCategoryFilter = null;\r\n vm.distinctMatSubList = [];\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.materialtype = {};\r\n Init();\r\n }\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n resetForm();\r\n vm.materialtype = {};\r\n Init();\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.materialtypeForm.$setUntouched();\r\n }\r\n\r\n function editmaterialtype(materialtype) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.typecode = false;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.materialtype = angular.copy(materialtype);\r\n debugger;\r\n for (var j in vm.LobMaterialList) {\r\n if (vm.LobMaterialList[j].LOB_MatId === materialtype.MaterialCategory.LOB_MatId) {\r\n vm.materialtype.selectedLOBMaterialName = vm.LobMaterialList[j];\r\n }\r\n }\r\n\r\n for (var k in vm.CountryList) {\r\n if (vm.CountryList[k].CountryId === materialtype.MaterialCategory.CountryId) {\r\n vm.materialtype.selectedCountry = vm.CountryList[k];\r\n }\r\n }\r\n debugger;\r\n getCategoryofMaterial(function () {\r\n getMatSubcategoryByCategoryId(materialtype.MaterialCategoryId, function () {\r\n\r\n for (var c in vm.materialcategoryList) {\r\n if (vm.materialcategoryList[c].MaterialCategoryId === materialtype.MaterialCategoryId) {\r\n vm.materialtype.selectedMaterialCategoryName = vm.materialcategoryList[c];\r\n vm.selectCategory = false;\r\n }\r\n }\r\n for (var i in vm.MaterialSubCategoryList) {\r\n if (vm.MaterialSubCategoryList[i].MaterialSubCategoryId === materialtype.MaterialSubCategoryId) {\r\n vm.materialtype.selectedMaterialSubCategoryName = vm.MaterialSubCategoryList[i];\r\n vm.selectSubCategory = false;\r\n }\r\n }\r\n\r\n });\r\n });\r\n\r\n // });\r\n\r\n\r\n }\r\n\r\n function removeMaterialtype(materialtype) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n MaterialTypeService.removeMaterialtype(materialtype.MaterialTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete MaterialType Successfully', \"MaterialType\");\r\n filterGrid(vm.selectedSubCategoryFilter.MaterialSubcategoryId);\r\n } else {\r\n dialogs.error('error', \"Can't Delete MaterialType\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function changeActiveMaterialtype(materialtype) {\r\n var msg = 'Are sure you want to ' + ((materialtype.IsActive) ? 'Deactive' : 'Active') + ' current row.'\r\n var msg2 = ((materialtype.IsActive) ? 'Deactive' : 'Active') + 'materialtype Successfully.'\r\n var confirm = dialogs.confirm('Confirm',\r\n msg, { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n MaterialTypeService.changeActiveMaterialtype(materialtype.MaterialTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', msg2, \"materialtype\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't InActive materialtype\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't InActive materialtype. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveMaterialType(materialtype) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n materialtype.MaterialCategoryId = vm.materialtype.selectedMaterialCategoryName.MaterialCategoryId;\r\n materialtype.MaterialSubCategoryId = vm.materialtype.selectedMaterialSubCategoryName.MaterialSubCategoryId;\r\n\r\n if (!vm.isEditing) {\r\n materialtype.CreatedBy = loggedUser.UserId;\r\n MaterialTypeService.AddMaterialtype(materialtype).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Type\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material Type\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n dialogs.error(\"Something error...try again\");\r\n });\r\n\r\n } else {\r\n materialtype.ModifiedBy = loggedUser.UserId;\r\n MaterialTypeService.EditMaterialtype(materialtype).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Material Type\");\r\n filterGrid(vm.selectedSubCategoryFilter.MaterialSubcategoryId);;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Material Type\");\r\n vm.isFormOpen = true;\r\n }\r\n\r\n }, function (err) {\r\n dialogs.error('error', \"Something error...try again\", { animation: true, size: 'sm' });\r\n });\r\n\r\n }\r\n }\r\n\r\n function ShowMaterialTypeReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var inputdata = {\r\n CompanyName: 'PIONEER GROUP',\r\n\r\n }\r\n\r\n MaterialTypeService.ShowMaterialTypeReport(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .controller('MaterialVariableCtrl', MaterialVariableCtrl);\r\n\r\n /** @ngInject */\r\n function MaterialVariableCtrl($rootScope, lodash, dialogs, $http, MaterialCategoryService, MaterialSubCategoryService, MaterialTypeService, MaterialAttributeService, MaterialVariableService,\r\n LobMaterialService, CountryService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.Temp = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n vm.saveAction = false;\r\n vm.MaterialVariableList = [];\r\n vm.TypeOfCAList = [];\r\n //Methods\r\n vm.getAllAttributes = getAllAttributes;\r\n vm.getMatSubcategoryByCategoryId = getMatSubcategoryByCategoryId;\r\n vm.GetMaterialTypeByMaterialSubCategoryId = GetMaterialTypeByMaterialSubCategoryId;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n vm.SaveTemp = SaveTemp;\r\n vm.removeMaterialVariable = removeMaterialVariable;\r\n vm.cancel = cancel;\r\n vm.resetForm = resetForm;\r\n vm.removeMaterialCombination = removeMaterialCombination;\r\n vm.SaveCombinations = SaveCombinations;\r\n vm.deleteVariable = deleteVariable;\r\n\r\n Init();\r\n LoadLob();\r\n LoadCountry();\r\n\r\n function Init() {\r\n var objMaterialAttribute;\r\n GetMaterialCategory();\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: \"Generic\",\r\n Code: \"G\"\r\n }, {\r\n TypeOfAttributeName: \"Specific\",\r\n Code: \"S\"\r\n }];\r\n }\r\n\r\n function GetMaterialCategory() {\r\n var objMaterialCategory;\r\n MaterialCategoryService.getAllMaterialCategory($http, $rootScope, objMaterialCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllmaterialcategoryList = res.data;\r\n // console.log(\"test\" + vm.materialcategoryList);\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material Category\");\r\n }\r\n });\r\n }\r\n\r\n //////\r\n\r\n vm.Lob = function () {\r\n vm.materialattribute.selectedCountry = \"\";\r\n vm.selectedMaterialCategoryName = \"\";\r\n vm.selectedMaterialSubCategoryName = \"\";\r\n vm.selectedMaterialTypeName = \"\";\r\n getCategoryofMaterial();\r\n }\r\n\r\n\r\n //// Load All Line Of Business\r\n\r\n function LoadLob() {\r\n LobMaterialService.getActiveLobMaterial($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Lob Material\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Lob Material\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n function LoadCountry() {\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n //// Load All Material Category By Lob\r\n\r\n function getCategoryofMaterial() {\r\n if (vm.materialattribute.selectedCountry != null && vm.materialattribute.selectedCountry != undefined && vm.materialattribute.selectedCountry != \"\") {\r\n var objGetCategory = {\r\n LOB_MatId: vm.materialattribute.selectedLOBMaterialName.LOB_MatId,\r\n CountryId: vm.materialattribute.selectedCountry.CountryId\r\n }\r\n MaterialCategoryService.getAllMaterialCategoryByLob(objGetCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n vm.selectedMaterialCategoryName = \"\";\r\n vm.selectedMaterialSubCategoryName = \"\";\r\n vm.selectedMaterialTypeName = \"\";\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectedMaterialTypeName = null;\r\n }\r\n\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n }\r\n\r\n }\r\n\r\n\r\n function getMatSubcategoryByCategoryId(MaterialCategoryId, callback) {\r\n\r\n MaterialSubCategoryService.GetMaterialSubCategoryByMaterialCategoryId(MaterialCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (vm.MaterialSubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Subcategory available for ' + vm.selectedMaterialCategoryName.MaterialCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n vm.selectedMaterialTypeName = \"\";\r\n } else {\r\n vm.selectSubCategory = false;\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n\r\n }\r\n });\r\n vm.MaterialSubCategoryList = [];\r\n vm.selectedMaterialSubCategoryName = null;\r\n vm.MaterialTypeList = [];\r\n vm.selectedMaterialTypeName = null;\r\n\r\n }\r\n\r\n\r\n function GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId, callback) {\r\n\r\n MaterialTypeService.GetMaterialTypeByMaterialSubCategoryId(MaterialSubCategoryId).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n if (vm.MaterialTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Material Type available for ' + vm.selectedMaterialSubCategoryName.selectedMaterialSubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectType = true;\r\n } else {\r\n vm.selectType = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n vm.MaterialTypeList = [];\r\n vm.selectedMaterialTypeName = null;\r\n\r\n }\r\n\r\n function deleteVariable(attribute) {\r\n var confirm = dialogs.confirm('Confirm', 'Are sure you want to delete ' + attribute.selectedVariable, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isLoading = true;\r\n debugger;\r\n var obj = {\r\n MaterialCategoryId: vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialTypeId: vm.selectedMaterialTypeName.MaterialTypeId,\r\n Code: vm.selectedTypeOfAttribute.Code,\r\n AttributeName: attribute.Name,\r\n VariableName: attribute.selectedMaterialVariable\r\n }\r\n MaterialVariableService.deleteVariable(obj).then(function (res) {\r\n if (res.status === 200 && res.data == true) {\r\n attribute.selectedVariable = null;\r\n $rootScope.showToaster('success', 'Removed Successfully', \"Variable\");\r\n getAllAttributes();\r\n }\r\n vm.isLoading = false;\r\n }, function () {\r\n vm.isLoading = false;\r\n })\r\n }, function () {\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n function getAllAttributes() {\r\n debugger;\r\n vm.MaterialAttributeList = [];\r\n // vm.AddMaterialAttribute = false;\r\n\r\n var objMaterialAttribute = {\r\n MaterialTypeId: vm.selectedMaterialTypeName.MaterialTypeId,\r\n MaterialSubCategoryId: vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialCategoryId: vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n Code: vm.selectedTypeOfAttribute.Code\r\n };\r\n\r\n MaterialAttributeService.getAllMaterialAttributes(objMaterialAttribute).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialAttributeList = res.data.Attribute;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Material Attribute\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Attribute\");\r\n });\r\n\r\n MaterialVariableService.getMaterialCombination(objMaterialAttribute).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialvariableCombinationCollection = res.data.VariablesCombinations;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Combination\");\r\n });\r\n }\r\n\r\n function SaveTemp(attribute) {\r\n\r\n attribute.IsAdding = ((!(attribute.IsAdding) || attribute.IsAdding === undefined) ? true : false);\r\n if (!attribute.IsAdding) {\r\n var obj = {\r\n MaterialCategoryId: vm.selectedMaterialCategoryName.MaterialCategoryId,\r\n MaterialSubCategoryId: vm.selectedMaterialSubCategoryName.MaterialSubCategoryId,\r\n MaterialTypeId: vm.selectedMaterialTypeName.MaterialTypeId,\r\n AttributeName: attribute.Name,\r\n VariableName: attribute.NewVariableName,\r\n Code: vm.selectedTypeOfAttribute.Code\r\n }\r\n MaterialVariableService.AddMaterialVariable(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"variable\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"variable\");\r\n };\r\n vm.isFormOpen = false;\r\n getAllAttributes();\r\n Init();\r\n attribute.VariableName = '';\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n return attribute;\r\n };\r\n\r\n function removeMaterialVariable(attribute) {\r\n attribute.VariableName = '';\r\n attribute.IsAdding = false;\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.selectedMaterialCategoryName = null;\r\n vm.selectedMaterialSubCategoryName = null;\r\n vm.selectedMaterialTypeName = null;\r\n vm.selectedTypeOfAttribute = null;\r\n vm.materialattribute.selectedCountry = null;\r\n vm.materialattribute.selectedLOBMaterialName = null;\r\n resetForm();\r\n }\r\n\r\n function resetForm() {\r\n vm.MaterialVariableForm.$setUntouched();\r\n }\r\n\r\n\r\n function removeMaterialCombination(MaterialCombination) {\r\n var materialvariable = {};\r\n materialvariable.MaterialCategoryId = vm.selectedMaterialCategoryName.MaterialCategoryId;\r\n materialvariable.MaterialSubCategoryId = vm.selectedMaterialSubCategoryName.MaterialSubCategoryId;\r\n materialvariable.MaterialTypeId = vm.selectedMaterialTypeName.MaterialTypeId;\r\n materialvariable.Code = vm.selectedTypeOfAttribute.Code;\r\n materialvariable.MaterialCombination = MaterialCombination;\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n MaterialVariableService.removeMaterialCombination(materialvariable).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Successfully', \"Material Combination\");\r\n Init();\r\n getAllAttributes();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Attribute. If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n function SaveCombinations(materialvariable) {\r\n debugger\r\n var attr = vm.MaterialAttributeList;\r\n var check = false;\r\n for (var i in attr) {\r\n if (attr[i].selectedMaterialVariable != undefined || attr[i].selectedMaterialVariable != null) {\r\n check = true;\r\n }\r\n }\r\n if (check) {\r\n var materialvariable = {};\r\n materialvariable.MaterialCategoryId = vm.selectedMaterialCategoryName.MaterialCategoryId;\r\n materialvariable.MaterialSubCategoryId = vm.selectedMaterialSubCategoryName.MaterialSubCategoryId;\r\n materialvariable.MaterialTypeId = vm.selectedMaterialTypeName.MaterialTypeId;\r\n materialvariable.Code = vm.selectedTypeOfAttribute.Code;\r\n //attribute.AttributeName = attribute.Name;\r\n var arr1 = vm.MaterialAttributeList;\r\n\r\n materialvariable.MaterialCombination = {};\r\n for (var i = 0; i < arr1.length; i++) {\r\n if (arr1[i].selectedMaterialVariable != undefined) {\r\n materialvariable.MaterialCombination[arr1[i].Name] = arr1[i].selectedMaterialVariable;\r\n }\r\n else\r\n {\r\n materialvariable.MaterialCombination[arr1[i].Name] = '';\r\n }\r\n }\r\n MaterialVariableService.InsertCombination(materialvariable).then(function (res) {\r\n if (res.status === 200) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Variable Combinations\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Variable Combinations\");\r\n }\r\n\r\n vm.isFormOpen = false;\r\n getAllAttributes();\r\n }\r\n\r\n // vm.AttributeText = true;\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n check = false;\r\n }\r\n \r\n else {\r\n dialogs.notify('warning', \"Please select a variable\", { animation: true, size: 'sm' });\r\n check = false;\r\n }\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.BudgetReport')\r\n .controller('BudgetReportCtrl', BudgetReportCtrl);\r\n\r\n /** @ngInject */\r\n function BudgetReportCtrl($rootScope, $filter, lodash, dialogs, $http, $uibModal, budgetReportService, projectCreationService, planningReportService,\r\n LocationSetupService, estimationReportaService, ItemToItemService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowBudgetReport = ShowBudgetReport;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n vm.LoadBudgetForList = LoadBudgetForList;\r\n vm.getPlanType = getPlanType;\r\n vm.getselectedPeriodType = getselectedPeriodType;\r\n vm.getselectedviewType = getselectedviewType;\r\n vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n vm.RateBasedOn = RateBasedOn;\r\n vm.plan = {};\r\n vm.ClearDWProject = ClearDWProject;\r\n vm.ClearDWBudgetFor = ClearDWBudgetFor;\r\n vm.ClearDWSelectFor = ClearDWSelectFor;\r\n vm.ClearDWTypeofBudget = ClearDWTypeofBudget;\r\n vm.cancel= cancel;\r\n\r\n\r\n\r\n vm.selectedRequirementBased = [{ Id: 2 }]\r\n vm.basedOnRequirementList = [{ Id: 2 }]\r\n\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n // Init DDL Datas\r\n vm.SpecTypeList = [{ SpecTypeName: 'All', Code: '' }, { SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n vm.ReportTypeList = [{ ReportTypeName: 'Category', ReportTypeId: '1' },\r\n { ReportTypeName: 'Sub-Category', ReportTypeId: '2' },\r\n { ReportTypeName: 'Type', ReportTypeId: '3' },\r\n { ReportTypeName: 'IOCA', ReportTypeId: '4' }\r\n // , { ReportTypeName: 'Consolidated', ReportTypeId: '2' }\r\n ];\r\n\r\n vm.ReportList = [//{ ReportListName: 'Detail', ReportListId: '1' },\r\n { ReportListName: 'Consolidated', ReportListId: '2' }];\r\n\r\n vm.selectedRateForList = [{ RateForName: 'Initial Rate', RateForId: '0' },\r\n { RateForName: 'Current Rate', RateForId: '1' },\r\n { RateForName: 'Rate On', RateForId: '2' },\r\n // , { ReportTypeName: 'Consolidated', ReportTypeId: '2' }\r\n ];\r\n\r\n //#region Attribute\r\n function RateBasedOn(BudgetForId) {\r\n if (BudgetForId === 0) {\r\n vm.selectedRateBasedOnList = [{ RateBasedonName: 'Basic Rate', RateBasedonId: 1 }\r\n //, { RateBasedonName: 'Schedule of Rate', RateBasedonId: 2 }\r\n ];\r\n } else {\r\n vm.selectedRateBasedOnList = [{ RateBasedonName: 'Basic Rate', RateBasedonId: 1 }\r\n ];\r\n }\r\n\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n getProjectByCompany(CompanyId)\r\n }\r\n else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load Budget For\r\n function LoadBudgetForList() {\r\n debugger;\r\n ClearDWProject();\r\n planningReportService.getLoadBudgetForList().then(function (res) {\r\n if (res.status === 200) {\r\n vm.BudgetForList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Budget For List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Budget For List\");\r\n });\r\n }\r\n\r\n function getPlanType() {\r\n debugger;\r\n ClearDWBudgetFor();\r\n planningReportService.getPlanType().then(function (res) {\r\n if (res.status === 200) {\r\n vm.PlanForList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Select For List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Select For List\");\r\n });\r\n }\r\n\r\n function getselectedPeriodType() {\r\n debugger;\r\n ClearDWSelectFor();\r\n planningReportService.getselectedPeriodType().then(function (res) {\r\n if (res.status === 200) {\r\n vm.PeriodList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Select For List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Select For List\");\r\n });\r\n }\r\n\r\n function getselectedviewType() {\r\n debugger;\r\n var obj = {\r\n p_Code: vm.selectedPeriod.Code\r\n }\r\n ClearDWTypeofBudget();\r\n planningReportService.getselectedviewType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PeriodTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Select For List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Select For List\");\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region Event for Print \r\n function ShowBudgetReport() {\r\n debugger;\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var strHr = vm.selectedPeriod.Code;\r\n var strHeading = null;\r\n var strtype = (vm.selectedBudgetFor.BudgetTypeId === 0) ? 'Budget Report' : vm.selectedBudgetFor.BudgetType + ' Budget';\r\n var strBudgetHr = (vm.selectedBudgetFor.BudgetTypeId === 0) ? vm.selectedRateBasedOn.RateBasedonName : vm.selectedBudgetFor.BudgetType + ' Rate';\r\n\r\n if (vm.selectedPlanFor.PlanTypeId === 1) {\r\n if (strHr == 'M') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + strBudgetHr\r\n + ' - Location Wise
For The Month Of ' + $filter('date')(vm.plan.From, 'MMMM-yyyy')\r\n } else if (strHr == 'D') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + strBudgetHr\r\n + ' - Location Wise
For The Date Of ' + $filter('date')(vm.plan.From, 'dd-MM-yyyy')\r\n } else if (strHr == 'W') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + strBudgetHr\r\n + ' - Location Wise
For The Week From :' + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy')\r\n }\r\n if (strHr == 'Q') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + strBudgetHr\r\n + ' - Location Wise
For The Month From ' + $filter('date')(vm.plan.From, 'MMMM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'MMMM-yyyy')\r\n }\r\n } else if (vm.selectedPlanFor.PlanTypeId === 4) {\r\n if (strHr == 'M') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Work Order Rate '\r\n + ' - Location Wise
For The Month Of ' + $filter('date')(vm.plan.From, 'MMMM-yyyy')\r\n } else if (strHr == 'D') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Work Order Rate '\r\n + ' - Location Wise
For The Date Of ' + $filter('date')(vm.plan.From, 'dd-MM-yyyy')\r\n } else if (strHr == 'W') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Work Order Rate '\r\n + ' - Location Wise
For The Week From :' + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy')\r\n }\r\n if (strHr == 'Q') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Initial Rate Of ' + vm.selectedRateBasedOn.RateBasedonName\r\n + ' - Location Wise
For The Month From ' + $filter('date')(vm.plan.From, 'MMMM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'MMMM-yyyy')\r\n }\r\n }\r\n\r\n\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n CostTypeId: vm.selectedBudgetFor.BudgetTypeId,\r\n ReportTypeId: vm.selectedPlanFor.PlanTypeId,\r\n RateBasedOnId: vm.selectedRateBasedOnList.RateBasedonId,\r\n ReportShowById: vm.selectedReportType.ReportTypeId,\r\n ReportDesignTypeId: vm.selectedViewBudgetType.ReportListId,\r\n ReportBreackUpId: vm.selectedViewBudgetType.Code\r\n }\r\n\r\n //console.log(obj);\r\n\r\n\r\n estimationReportaService.ShowBudgetReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Something when to wrong', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n vm.ShareReport = function () {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationId)\r\n // }\r\n // vm.ReportForId = arr.join();\r\n // }\r\n var strHr = vm.selectedPeriod.Code;\r\n var strHeading = null;\r\n var strtype = (vm.selectedBudgetFor.BudgetTypeId === 0) ? 'Total Budget' : vm.selectedBudgetFor.BudgetType + ' Budget'\r\n\r\n if (vm.selectedPlanFor.PlanTypeId === 1) {\r\n if (strHr == 'M') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + vm.selectedRateBasedOn.RateBasedonName\r\n + ' - Location Wise
For The Month Of ' + $filter('date')(vm.plan.From, 'MMMM-yyyy')\r\n } else if (strHr == 'D') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + vm.selectedRateBasedOn.RateBasedonName\r\n + ' - Location Wise
For The Date Of ' + $filter('date')(vm.plan.From, 'dd-MM-yyyy')\r\n } else if (strHr == 'W') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + vm.selectedRateBasedOn.RateBasedonName\r\n + ' - Location Wise
For The Week From :' + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy')\r\n }\r\n if (strHr == 'Q') {\r\n strHeading = vm.selectedPeriod.PeriodTypeName + ' ' + strtype + ' ' + ' From ' + vm.selectedPlanFor.PlanType + ' Based On Initial Rate Of ' + vm.selectedRateBasedOn.RateBasedonName\r\n + ' - Location Wise
For The Month From ' + $filter('date')(vm.plan.From, 'MMMM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'MMMM-yyyy')\r\n }\r\n } else if (vm.selectedPlanFor.PlanTypeId === 4) {\r\n if (strHr == 'M') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Work Order Rate '\r\n + ' - Location Wise
For The Month Of ' + $filter('date')(vm.plan.From, 'MMMM-yyyy')\r\n } else if (strHr == 'D') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Work Order Rate '\r\n + ' - Location Wise
For The Date Of ' + $filter('date')(vm.plan.From, 'dd-MM-yyyy')\r\n } else if (strHr == 'W') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Work Order Rate '\r\n + ' - Location Wise
For The Week From :' + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy')\r\n }\r\n if (strHr == 'Q') {\r\n strHeading = vm.selectedPlanFor.PlanType + ' ' + vm.selectedPeriod.PeriodTypeName + ' Requirement Statement Based On Initial Rate Of ' + vm.selectedRateBasedOn.RateBasedonName\r\n + ' - Location Wise
For The Month From ' + $filter('date')(vm.plan.From, 'MMMM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'MMMM-yyyy')\r\n }\r\n }\r\n\r\n\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n CostTypeId: vm.selectedBudgetFor.BudgetTypeId,\r\n ReportTypeId: vm.selectedPlanFor.PlanTypeId,\r\n RateBasedOnId: vm.selectedRateBasedOnList.RateBasedonId,\r\n ReportShowById: vm.selectedReportType.ReportTypeId,\r\n ReportDesignTypeId: vm.selectedViewBudgetType.ReportListId,\r\n ReportBreackUpId: vm.selectedViewBudgetType.Code\r\n }\r\n\r\n //console.log(obj);\r\n\r\n\r\n estimationReportaService.ShowBudgetReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n\r\n }, function () { });\r\n }\r\n // else if(res.status == 404){\r\n // dialogs.error('error', \"No Data Found\", { animation: true, size: 'sm' });\r\n // }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Something when to wrong', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n //#endregion\r\n //#region Clear\r\n //#endregion\r\n\r\n //#region Load Construction Activity\r\n function getFocByPrjId(prjId) {\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: prjId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n //Status: vm.selectedRequirement.Id\r\n Status: 4\r\n }\r\n GetReportFor(prjId);\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n budgetReportService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.selectedReportFor = null;\r\n if (vm.focList.length < 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id\r\n Status: 4\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n\r\n if (CountryId && ProjectId && focId) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n // Status: vm.selectedRequirement.Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n budgetReportService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n function getSubcategoryByCategory() {\r\n //clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n //Status: vm.RequirementList[0].Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n budgetReportService.getBoQSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n \r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n //Status: vm.RequirementList[0].Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n budgetReportService.getBoQType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n // Status: vm.selectedRequirement.Id,\r\n Status: 4,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n budgetReportService.getBoQIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(Id) {\r\n var obj = {\r\n ProjectId: Id\r\n }\r\n debugger;\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n vm.selectedRateBasedOn=null;\r\n vm.selectedLocation=null;\r\n vm.selectedfoc= null;\r\n \r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n function filterTiers(IocaTier) {\r\n debugger;\r\n if (IocaTier.selectedIocatireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n // var maxTier = lodash.maxBy(vm.allTierData, function (t) {\r\n // return getTierNo(t.TierNo);\r\n // });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n\r\n //getCountryByTiers(vm.Arr);\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection()\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n \r\n }\r\n\r\n function cancel() {\r\n // vm.BudgetReportForm.$setUntouched();\r\n vm.selectedProject=null;\r\n vm.selectedBudgetFor= null;\r\n vm.selectedPlanFor= null;\r\n vm.selectedPeriod= null;\r\n vm.selectedViewBudgetType= null;\r\n vm.selectedRateBasedOn= null;\r\n vm.selectedLocation= null;\r\n vm.selectedfoc=null;\r\n \r\n }\r\n\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function (IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function () {\r\n\r\n getselectedviewType();\r\n\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n vm.getDate = function () {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n }\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n function GetQuarterly() {\r\n debugger;\r\n if (vm.selectedPeriod.Code == 'Q') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Daily Report \r\n\r\n\r\n //****** Finalized Planning *******/\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n //vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */ \r\n\r\n //#region Clear\r\n function ClearDWProject() {\r\n vm.selectedBudgetFor = null;\r\n ClearDWBudgetFor();\r\n }\r\n function ClearDWBudgetFor() {\r\n vm.selectedPlanFor = null;\r\n vm.PlanForList = [];\r\n ClearDWSelectFor();\r\n }\r\n function ClearDWSelectFor() {\r\n vm.selectedPeriod = null;\r\n vm.PeriodList = [];\r\n ClearDWTypeofBudget();\r\n }\r\n function ClearDWTypeofBudget() {\r\n vm.selectedViewBudgetType = null;\r\n vm.PeriodTypeList = [];\r\n }\r\n\r\n //#endregion\r\n //******** */ \r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('POTermsAndConditionCtrl', POTermsAndConditionCtrl);\r\n\r\n /** @ngInject */\r\n function POTermsAndConditionCtrl($http, $scope, $rootScope, AuthenticationService, POTermsAndConditionService, RfqTermsAndConditionService, dialogs, CountryService, MaterialSubCategoryService, MaterialTypeService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n vm.Material = Material;\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.UploadTemplate = UploadTemplate;\r\n vm.SaveTemplate = SaveTemplate;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n }\r\n\r\n function Cancel() {\r\n \r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n // $state.go($rootScope.previousState);\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n Init()\r\n\r\n function Init() {\r\n var obj = {\r\n ActionBy: loggedUser.UserId,\r\n CompanyId: CompanyId\r\n }\r\n POTermsAndConditionService.GetAllPOTemplate(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfqTemplateTitles = res.data;\r\n CountryService.GetAllCountry_ByProc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n vm.RfqTemplateList = [{ \"TemplateId\": 1, \"TemplateFor\": 'SubCategory Of Material' }, { \"TemplateId\": 2, \"TemplateFor\": \"Type Of Material\" }]\r\n }\r\n\r\n function Material() {\r\n vm.rfq.selectedMaterial = null;\r\n if (vm.rfq.selectedRfqTemplate.TemplateId == 1) {\r\n vm.MaterialSubCategoryList = [];\r\n MaterialSubCategoryService.getAllMaterialSubCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n }\r\n else {\r\n vm.MaterialTypeList = [];\r\n MaterialTypeService.getAllMaterialtype().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Type\");\r\n });\r\n }\r\n }\r\n\r\n $scope.fileChanged = function (event) {\r\n debugger;\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n }\r\n\r\n function UploadTemplate() {\r\n var formData = new FormData();\r\n formData.append('Attachment', vm.selectedFile)\r\n POTermsAndConditionService.UploadTemplate(formData).then(function (res) {\r\n if (res.data) {\r\n vm.FileName = res.data.result;\r\n $rootScope.showToaster('success', \"Uploaded Successfully\", \"P.O TermsandCondition Attachment\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data, \"P.O TermsandCondition Attachment \");\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function SaveTemplate() {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n Title: vm.POTemplateTitle,\r\n AttachmentURL: vm.FileName, \r\n CreatedBy: loggedUser.UserId,\r\n }\r\n POTermsAndConditionService.SavePOTemplate(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"PO Terms And Condition\");\r\n Init();\r\n vm.isFormOpen = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"PO Terms And Condition\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('CancellationNoteCtrl', CancellationNoteCtrl);\r\n\r\n /** @ngInject */\r\n function CancellationNoteCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, projectCreationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.OverheadList = {};\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n // vm.SaveRejection = function () {\r\n // var objReject = {\r\n // CompanyId: items.CompanyId,\r\n // ProjectId: items.ProjectId,\r\n // Status: items.Status,\r\n // UserId:loggedUser.UserId,\r\n // RejectionNotes: {\r\n // \"Notes\": vm.reject.RejectionNotes,\r\n // \"RejectedBy\": AuthenticationService.getLoggedUserDetails().UserId,\r\n // \"RejectedOn\": \"\"\r\n // }\r\n // }\r\n \r\n // projectCreationService.SaveNote(objReject).then(function (res) {\r\n // if (res.status === 200) {\r\n // $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"Project Rejection\");\r\n // $uibModalInstance.close();\r\n // $state.go($rootScope.previousState);\r\n // } else {\r\n // $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', \"Can't Reject Project\", {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // });\r\n // }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('CancelledPreparationRfqMaterialCtrl', CancelledPreparationRfqMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function CancelledPreparationRfqMaterialCtrl($http, $scope, $state, $filter, lodash, $rootScope, CountryService, CompanyService, RfqTermsAndConditionService, dialogs, AuthenticationService, PreparationofRfqMaterialService, ProjectSchedulingService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.ViewRfqMaster = function (row) {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: false,\r\n isEdit: false,\r\n isView: true,\r\n Status: 5,\r\n rfq: row\r\n }\r\n $state.go('preparatonofRfqMaterial', {\r\n data: data\r\n })\r\n }\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init()\r\n\r\n function Init() {\r\n var obj = {\r\n ActionBy: loggedUser.UserId,\r\n RfqStatus: 5\r\n }\r\n PreparationofRfqMaterialService.GetRfqDetails(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfqMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n /////////////////////////\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('DraftPreparationofRfqMaterialCtrl', DraftPreparationofRfqMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function DraftPreparationofRfqMaterialCtrl($http, $scope, $state, $filter, lodash, $rootScope, CountryService, CompanyService, RfqTermsAndConditionService, dialogs, AuthenticationService, PreparationofRfqMaterialService, ProjectSchedulingService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.Create = Create;\r\n\r\n function Create() {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: true,\r\n isEdit: false,\r\n isView: false,\r\n Status: 1\r\n }\r\n $state.go('preparatonofRfqMaterial', {\r\n data: data\r\n })\r\n }\r\n\r\n vm.ViewRfqMaster = function (row) {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: false,\r\n isEdit: false,\r\n isView: true,\r\n Status: 1,\r\n rfq: row\r\n }\r\n $state.go('preparatonofRfqMaterial', {\r\n data: data\r\n })\r\n }\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init()\r\n\r\n function Init() {\r\n var obj = {\r\n ActionBy: loggedUser.UserId,\r\n RfqStatus: 1\r\n }\r\n vm.isLoading = true;\r\n PreparationofRfqMaterialService.GetRfqDetails(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfqMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n vm.RemoveRfqMaster = function (row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n var obj = {\r\n RfqId: row.mat_RfqId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n vm.isLoading = true;\r\n PreparationofRfqMaterialService.RemoveRfqDetails(obj).then(function (res) {\r\n if (res.status === 200) {\r\n Init();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n });\r\n }, function () {\r\n\r\n })\r\n \r\n }\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('PendingForApprovalRfqMaterialCtrl', PendingForApprovalRfqMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function PendingForApprovalRfqMaterialCtrl($http, $scope, $state, $filter, lodash, $rootScope, CountryService, CompanyService, RfqTermsAndConditionService, dialogs, AuthenticationService, PreparationofRfqMaterialService, ProjectSchedulingService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.ViewRfqMaster = function (row) {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: false,\r\n isEdit: false,\r\n isView: true,\r\n Status: 3,\r\n rfq: row\r\n }\r\n $state.go('preparatonofRfqMaterial', {\r\n data: data\r\n })\r\n }\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init()\r\n\r\n function Init() {\r\n var obj = {\r\n ActionBy: loggedUser.UserId,\r\n RfqStatus: 3\r\n }\r\n vm.isLoading = true;\r\n PreparationofRfqMaterialService.GetRfqDetails(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfqMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n /////////////////////////\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('PreparationofRfqMaterialCtrl', PreparationofRfqMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function PreparationofRfqMaterialCtrl($http, $scope, $filter, $state, lodash, $rootScope, CountryService, CompanyService, RfqTermsAndConditionService, dialogs, AuthenticationService, PreparationofRfqMaterialService, ProjectSchedulingService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.isView = false;\r\n vm.isAdd = false;\r\n vm.rfq = {};\r\n vm.Cancel = Cancel;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.GetAllMaterial = GetAllMaterial;\r\n vm.isAdded = false;\r\n vm.SupplierList = [];\r\n vm.getSupplier = getSupplier;\r\n vm.SaveRfqMaster = SaveRfqMaster;\r\n vm.ViewRfqMaster = ViewRfqMaster;\r\n\r\n function Cancel() {\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n vm.MaterialAddList = [];\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n ////// State params Assign\r\n if ($state.params.data != undefined) {\r\n vm.isAdd = $state.params.data.isAdd;\r\n vm.isEdit = $state.params.data.isEdit;\r\n vm.isView = $state.params.data.isView;\r\n vm.RfqStatus = $state.params.data.Status\r\n\r\n if (vm.isAdd) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.isView = false;\r\n vm.isAdd = true;\r\n vm.rfq = {};\r\n } else if (vm.isView) {\r\n vm.isLoading = true;\r\n vm.rfq = $state.params.data.rfq\r\n ViewRfqMaster(vm.rfq)\r\n }\r\n\r\n } else {\r\n //$state.go($rootScope.previousState);\r\n }\r\n\r\n ////////////////\r\n\r\n\r\n Init()\r\n\r\n function Init() {\r\n var ActionBy = loggedUser.UserId\r\n PreparationofRfqMaterialService.GetAllCompanyByIndent(CompanyId, ActionBy).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n vm.RfqForList = [\r\n // { \"RfqForId\": 1, \"RfqFor\": 'Office Requirement' }, \r\n { \"RfqForId\": 2, \"RfqFor\": 'Project Requirment' }\r\n ]\r\n CountryService.GetAllCountry_ByProc($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n RfqTermsAndConditionService.GetAllTemplate($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RfqTemplateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n }\r\n\r\n function getSupplier() {\r\n vm.isLoading = true;\r\n PreparationofRfqMaterialService.GetSupplier($http, $rootScope).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SupplierList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Supplier\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Supplier\");\r\n vm.isLoading = false;\r\n });\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n function getProjectByCompany(CompanyId, callBack) {\r\n if (CompanyId) {\r\n PreparationofRfqMaterialService.GetAllIndentProject(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callBack);\r\n callBack();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function GetAllMaterial(ProjectId) {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: ProjectId,\r\n isRfq: true,\r\n IndentStatus: 4\r\n }\r\n vm.MaterialList = [];\r\n PreparationofRfqMaterialService.GetMaterial(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length == 0) {\r\n dialogs.notify('warning', 'No Material For Selected Project', \"Rfq\");\r\n }\r\n vm.MaterialList = res.data;\r\n for (var i in vm.MaterialList) {\r\n vm.MaterialList[i].Ioca_List = JSON.parse(vm.MaterialList[i].IOCA_Dtls)\r\n vm.MaterialList[i].isSelectedMaterial = false\r\n }\r\n\r\n for (var i in vm.MaterialList) {\r\n for (var j in vm.MaterialList[i].Ioca_List) {\r\n vm.MaterialList[i].Ioca_List[j].isSelected = false\r\n }\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Material\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n vm.selectAll = function(row) {\r\n for (var i in row.Ioca_List) {\r\n row.Ioca_List[i].isSelectedIndent = row.selectedRow\r\n }\r\n }\r\n\r\n vm.select = function(row) {\r\n var Arr = lodash.filter(row.Ioca_List, function(e) {\r\n return e.isSelectedIndent\r\n })\r\n if (Arr.length > 0) {\r\n row.selectedRow = true;\r\n } else\r\n row.selectedRow = false;\r\n }\r\n\r\n vm.AddToList = function() {\r\n for (var i in vm.MaterialList) {\r\n for (var j in vm.MaterialList[i].Ioca_List) {\r\n if (vm.MaterialList[i].Ioca_List[j].isSelectedIndent == true) {\r\n vm.MaterialList[i].Ioca_List[j].isSelected = true;\r\n vm.isAdded = true\r\n }\r\n }\r\n }\r\n\r\n // for (var i in vm.MaterialList) {\r\n // if (vm.MaterialList[i].Ioca_List.length == 0) {\r\n // vm.MaterialList.splice(i, 1)\r\n // }\r\n // }\r\n\r\n }\r\n\r\n function selectedMaterialItems() {\r\n vm.ComArr = [];\r\n for (var i in vm.MaterialList) {\r\n if (vm.MaterialList[i].selectedRow == true) {\r\n vm.ComArr.push(vm.MaterialList[i])\r\n }\r\n }\r\n }\r\n\r\n function SaveRfqMaster() {\r\n vm.isLoading = true;\r\n selectedMaterialItems();\r\n\r\n var Arr = [];\r\n for (var i in vm.rfq.selectedSupplier) {\r\n Arr.push(vm.rfq.selectedSupplier[i].SupplierId);\r\n }\r\n vm.Supplier = Arr.join();\r\n var selectedMaterialList = [];\r\n for (var i in vm.ComArr) {\r\n for (var j in vm.ComArr[i].Ioca_List) {\r\n if (vm.ComArr[i].Ioca_List[j].isSelectedIndent) {\r\n var obj = {};\r\n obj.IndentId = vm.ComArr[i].Ioca_List[j].IndentId;\r\n obj.IOM_Id = vm.ComArr[i].Ioca_List[j].IOM_Id;\r\n obj.IOCA_Id = vm.ComArr[i].Ioca_List[j].IOCA_Id;\r\n obj.LastTierId = vm.ComArr[i].Ioca_List[j].LastTierId;\r\n obj.PowQty = vm.ComArr[i].Ioca_List[j].PowQty;\r\n obj.IOMQty = vm.ComArr[i].Ioca_List[j].PowQty_Updated;\r\n selectedMaterialList.push(obj);\r\n }\r\n }\r\n }\r\n var obj = {\r\n ProjectId: vm.rfq.selectedProject.ProjectId,\r\n rfqTitle: vm.rfq.rfqTitle,\r\n RfqTermsId: vm.rfq.SelectedTemplate.RfqTermsId,\r\n lastDate: $filter('date')(vm.rfq.lastDate, 'yyyy-MM-dd'),\r\n SupplierId: vm.Supplier,\r\n CreatedBy: loggedUser.UserId,\r\n MaterialDetails: JSON.stringify(selectedMaterialList)\r\n }\r\n PreparationofRfqMaterialService.SaveRfqMaterial(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Preparation of Rfq Master\");\r\n $state.go($rootScope.previousState);\r\n Init();\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Preparation of Rfq Master\");\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function ViewRfqMaster(row) {\r\n vm.isLoading = true;\r\n vm.rfq.rfqNo = angular.copy(row.rfqNo);\r\n vm.rfq.rfqTitle = angular.copy(row.rfqTitle);\r\n vm.rfq.PreparedBy = angular.copy(row.PreparedBy);\r\n vm.rfq.PreparedOn = angular.copy(row.PreparedOn);\r\n var obj = {\r\n mat_RfqId: row.mat_RfqId,\r\n mat_RfqStatus: vm.RfqStatus\r\n }\r\n vm.ViewList = [];\r\n PreparationofRfqMaterialService.ViewRfqDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ViewList = res.data;\r\n vm.isView = true;\r\n vm.isAdd = false;\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n vm.ViewRfqMasterList = [];\r\n for (var i in vm.ViewList) {\r\n if (vm.ViewList[i].IOCA_dtls != \"\") {\r\n vm.ViewList[i].Ioca_List = JSON.parse(vm.ViewList[i].IOCA_dtls)\r\n vm.ViewRfqMasterList.push(vm.ViewList[i])\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n vm.SendForApproval = function() {\r\n vm.isLoading = true;\r\n var obj = {\r\n RfqId: vm.rfq.mat_RfqId,\r\n rfqStatus: 3,\r\n ActionBy: loggedUser.UserId\r\n }\r\n PreparationofRfqMaterialService.ChangeStatus(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Preparation of Rfq Master\");\r\n $state.go($rootScope.previousState);\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Preparation of Rfq Master\");\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n vm.PostToSupplier = function() {\r\n vm.isLoading = true;\r\n var obj = {\r\n RfqId: vm.rfq.mat_RfqId,\r\n rfqStatus: 4,\r\n ActionBy: loggedUser.UserId\r\n }\r\n PreparationofRfqMaterialService.ChangeStatus(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Preparation of Rfq Master\");\r\n $state.go($rootScope.previousState);\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Preparation of Rfq Master\");\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n vm.Cancellation = function() {\r\n var obj = {\r\n RfqId: vm.rfq.mat_RfqId,\r\n rfqStatus: 5,\r\n ActionBy: loggedUser.UserId\r\n }\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to Cancel the RFQ Material.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function() {\r\n PreparationofRfqMaterialService.ChangeStatus(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Preparation of Rfq Master\");\r\n $state.go($rootScope.previousState);\r\n Init();\r\n vm.isFormOpen = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Preparation of Rfq Master\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }, function() {})\r\n // var obj = {\r\n // RfqId: vm.rfq.mat_RfqId,\r\n // rfqStatus: 5,\r\n // ActionBy: loggedUser.UserId\r\n // }\r\n\r\n // var modalInstance = $uibModal.open({\r\n // animation: true,\r\n // ariaLabelledBy: 'modal-title',\r\n // ariaDescribedBy: 'modal-body',\r\n // templateUrl: 'app/pages/Procurement/PreparationofRfqMaterial/preparationofRfqMaterial.html',\r\n // controller: 'CancellationNoteCtrl',\r\n // controllerAs: 'vm',\r\n // size: 'md',\r\n // backdrop: 'static',\r\n // keyboard: false,\r\n // resolve: {\r\n // items: function () {\r\n // return obj;\r\n // }\r\n // }\r\n // });\r\n // modalInstance.result.then(function () {\r\n // //$ctrl.selected = selectedItem;\r\n // }, function () {\r\n // //$log.info('Modal dismissed at: ' + new Date());\r\n // });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n vm.dt.setDate(vm.dt.getDate() + 2);\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.dt;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('ViewPreparationRfqMaterialCtrl', ViewPreparationRfqMaterialCtrl);\r\n\r\n /** @ngInject */\r\n function ViewPreparationRfqMaterialCtrl($http, $scope, $state, $filter, lodash, $rootScope, CountryService, CompanyService, RfqTermsAndConditionService, dialogs, AuthenticationService, PreparationofRfqMaterialService, ProjectSchedulingService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.ViewRfqMaster = function (row) {\r\n var data = {\r\n isEditing: vm.isEditing,\r\n isAdd: false,\r\n isEdit: false,\r\n isView: true,\r\n Status: $state.params.Status,\r\n rfq: row\r\n }\r\n $state.go('preparatonofRfqMaterial', {\r\n data: data\r\n })\r\n }\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n Init()\r\n\r\n function Init() {\r\n var obj = {\r\n ActionBy: loggedUser.UserId,\r\n RfqStatus: $state.params.Status\r\n }\r\n vm.isLoading =true;\r\n PreparationofRfqMaterialService.GetRfqDetails(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfqMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n /////////////////////////\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('RfqTermsAndConditionCtrl', RfqTermsAndConditionCtrl);\r\n\r\n /** @ngInject */\r\n function RfqTermsAndConditionCtrl($http, $scope, $rootScope, AuthenticationService, lodash, RfqTermsAndConditionService, $window,\r\n dialogs, CountryService, MaterialSubCategoryService, MaterialTypeService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n vm.Material = Material;\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.UploadTemplate = UploadTemplate;\r\n vm.SaveTemplate = SaveTemplate;\r\n vm.removeTemplate = removeTemplate;\r\n vm.editTemplate = editTemplate;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n }\r\n\r\n function Cancel() {\r\n \r\n \r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function () {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n // $state.go($rootScope.previousState);\r\n });\r\n\r\n }\r\n\r\n\r\n Init()\r\n\r\n function Init() {\r\n RfqTermsAndConditionService.GetAllTemplate($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RfqTemplateTitles = res.data;\r\n CountryService.GetAllCountry_ByProc($http, $rootScope).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n\r\n vm.RfqTemplateList = [{ \"TemplateId\": 1, \"TemplateFor\": 'SubCategory Of Material' }, { \"TemplateId\": 2, \"TemplateFor\": \"Type Of Material\" }]\r\n }\r\n\r\n vm.viewPicture = function (row) {\r\n var url = ''\r\n // if (vm.isView || vm.isEditing) {\r\n url = $rootScope.endPoint + 'UploadedDocuments/RFQTermsAndConditionDocs/' + row.RfqTemplateAttachment;\r\n // } else {\r\n // var blob = new Blob([row.File], {\r\n // type: vm.selectedFile.type\r\n // });\r\n // url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n // }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function Material(callBack) {\r\n vm.rfq.selectedMaterial = null;\r\n if (vm.rfq.selectedRfqTemplate.TemplateId == 1) {\r\n vm.MaterialSubCategoryList = [];\r\n MaterialSubCategoryService.getAllMaterialSubCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (callBack) {\r\n callBack();\r\n }\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n }\r\n else {\r\n vm.MaterialTypeList = [];\r\n MaterialTypeService.getAllMaterialtype().then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n if (callBack) {\r\n callBack();\r\n }\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Material Type\");\r\n });\r\n }\r\n\r\n }\r\n\r\n $scope.fileChanged = function (event) {\r\n debugger;\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n }\r\n\r\n function UploadTemplate() {\r\n var formData = new FormData();\r\n formData.append('Attachment', vm.selectedFile)\r\n RfqTermsAndConditionService.UploadTemplate(formData).then(function (res) {\r\n if (res.data) {\r\n vm.FileName = res.data.result;\r\n $rootScope.showToaster('success', \"Uploaded Successfully\", \"Rfq TermsandCondition Attachment\");\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data, \"\");\r\n\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function SaveTemplate() {\r\n var obj = {\r\n RfqTypeId: vm.rfq.selectedType.CountryId,\r\n RfqTemplate: vm.rfq.selectedRfqTemplate.TemplateId,\r\n RfqTemplateTitle: vm.rfq.RfqTemplateTitle,\r\n RfqTemplateAttachment: vm.FileName\r\n }\r\n if (vm.rfq.selectedRfqTemplate.TemplateId == 1) {\r\n obj.SubcategoryOfMaterial = vm.rfq.selectedSubCategory.MaterialSubCategoryId\r\n }\r\n else {\r\n obj.TypeOfMaterial = vm.rfq.selectedMaterial.MaterialTypeId\r\n }\r\n if (!vm.isEditing) {\r\n obj.CreatedBy = loggedUser.UserId,\r\n RfqTermsAndConditionService.SaveTemplate(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Rfq Terms And Condition\");\r\n Init();\r\n vm.isFormOpen = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Rfq Terms And Condition\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n var formData = new FormData();\r\n formData.append('Attachment', vm.selectedFile)\r\n formData.append('RfqTermsId', vm.rfq.RfqTermsId)\r\n formData.append('ModifiedBy', loggedUser.UserId)\r\n\r\n RfqTermsAndConditionService.UpdateTemplate(formData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Rfq Terms And Condition\");\r\n Init();\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Rfq Terms And Condition\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function editTemplate(row) {\r\n vm.isLoading = true;\r\n vm.rfq = angular.copy(row)\r\n console.log(vm.rfq);\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n vm.FileName = vm.rfq.RfqTemplateAttachment.trim()\r\n lodash.forEach(vm.CountryList, function (e) {\r\n if (e.CountryId == row.RfqTypeId) {\r\n vm.rfq.selectedType = e\r\n }\r\n })\r\n\r\n lodash.forEach(vm.RfqTemplateList, function (e) {\r\n if (e.TemplateId == row.RfqTemplate) {\r\n vm.rfq.selectedRfqTemplate = e\r\n }\r\n })\r\n Material(function () {\r\n if (row.RfqTemplate == 1) {\r\n lodash.forEach(vm.MaterialSubCategoryList, function (e) {\r\n if (e.MaterialSubCategoryId == row.SubcategoryOfMaterial) {\r\n vm.rfq.selectedSubCategory = e\r\n }\r\n if (vm.rfq.selectedRfqTemplate)\r\n vm.isLoading = false;\r\n })\r\n }\r\n else {\r\n lodash.forEach(vm.MaterialTypeList, function (e) {\r\n if (e.MaterialTypeId == row.TypeOfMaterial) {\r\n vm.rfq.selectedMaterial = e\r\n }\r\n if (vm.rfq.selectedMaterial)\r\n vm.isLoading = false;\r\n })\r\n }\r\n })\r\n }\r\n\r\n function removeTemplate(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n console.log(row);\r\n RfqTermsAndConditionService.removeTemplate(row.RfqTermsId).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete Rfq Template Successfully', \"Rfq Template\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete Rfq Template\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Delete Rfq Template. If its not a parent contact your Admin\", { animation: true, size: 'sm' });\r\n });\r\n }, function () {\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('SupplierRateComparisionCtrl', SupplierRateComparisionCtrl);\r\n\r\n /** @ngInject */\r\n function SupplierRateComparisionCtrl($http, $scope, $filter, $state, lodash, $rootScope, SupplierRateComparisionService, SupplierRateQuoteService, dialogs, AuthenticationService, PreparationofRfqMaterialService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isView = false;\r\n vm.isAdd = false;\r\n vm.rfq = {};\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.isAdded = false;\r\n vm.SupplierList = [];\r\n vm.MaterialList = [];\r\n vm.ViewRfqMaster = ViewRfqMaster;\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n }\r\n\r\n function Cancel() {\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isEditing = true;\r\n vm.rfq = {};\r\n }\r\n\r\n }\r\n\r\n vm.MaterialAddList = [];\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n Init()\r\n\r\n function Init() {\r\n\r\n if ($state.params.data != undefined) {\r\n vm.RfqMaterialList = $state.params.data.SupplierMaterialList\r\n vm.isLoading = false;\r\n } else {\r\n var Id = 0\r\n SupplierRateQuoteService.GetRfqForSupplierList(Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RfqMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.select = function() {\r\n if (vm.selectedAll) {\r\n vm.selectedAll = true;\r\n\r\n } else {\r\n vm.selectedAll = false;\r\n }\r\n for (var i in vm.ViewList) {\r\n vm.ViewList[i].selectedRow = vm.selectedAll\r\n }\r\n }\r\n\r\n\r\n // vm.SaveQuote = function () {\r\n\r\n // var Arr = [];\r\n\r\n // for (var i in vm.ViewList) {\r\n // if (vm.ViewList[i].selectedRow) {\r\n // Arr.push({\r\n // IOM_Id: vm.ViewList[i].IOM_Id,\r\n // UnitRate: parseFloat(vm.ViewList[i].UnitRate),\r\n // DisCount: parseFloat(vm.ViewList[i].Discount),\r\n // CGST: parseFloat(vm.ViewList[i].CGST.GSTPercentage),\r\n // SGST: parseFloat(vm.ViewList[i].SGST.GSTPercentage),\r\n // IGST: (vm.ViewList[i].IGST != undefined) ? parseFloat(vm.ViewList[i].IGST.GSTPercentage) : parseFloat(0),\r\n // TotalRate: parseFloat(vm.ViewList[i].TotalRate)\r\n // })\r\n // }\r\n // }\r\n // var formData = new FormData();\r\n // formData.append('Attachment', vm.selectedFile);\r\n // formData.append('rfqId', vm.rfq.mat_rfqId);\r\n // formData.append('SupplierId', vm.rfq.SupplierId);\r\n // formData.append('Notes', vm.rfq.SupplierNotes);\r\n // formData.append('rfqRateDtls', JSON.stringify(Arr));\r\n // SupplierRateQuoteService.SaveRateEntry(formData).then(function (res) {\r\n // if (res.data.IsSuccess === true) {\r\n // $rootScope.showToaster('success', res.data.Message, \"Supplier Rate Entry\");\r\n // if ($state.params.data != undefined) {\r\n // $state.go($rootScope.previousState);\r\n // } else {\r\n // Init();\r\n // vm.isFormOpen = false;\r\n // }\r\n // } else {\r\n // $rootScope.showToaster('error', res.data.Message, \"Supplier Rate Entry\");\r\n // vm.isFormOpen = true;\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster(\"Something error...try again\");\r\n // });\r\n // }\r\n\r\n $scope.PreviewImage = function() {\r\n\r\n vm.file = document.getElementById(\"uploadDOCX\").files[0];\r\n vm.file_url = URL.createObjectURL(vm.file);\r\n $('#viewer').attr('src', vm.file_url);\r\n }\r\n\r\n vm.SelectedSup = function(sup, row) {\r\n if (sup.selectedRow) {\r\n for (var i in row.SupplierDetailsList) {\r\n if (!row.SupplierDetailsList[i].selectedRow) {\r\n row.SupplierDetailsList[i].selectedRow = false;\r\n row.SupplierDetailsList[i].selectedSup = false;\r\n }\r\n }\r\n } else {\r\n for (var i in row.SupplierDetailsList) {\r\n row.SupplierDetailsList[i].selectedRow = false;\r\n row.SupplierDetailsList[i].selectedSup = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n $scope.fileChanged = function(event) {\r\n\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n }\r\n\r\n function ViewRfqMaster(row) {\r\n vm.ComparisionNotes = angular.copy(row.ComparisonNotes);\r\n vm.ComparisonStatus = row.ComparisonStatus;\r\n vm.isLoading = true;\r\n vm.rfq = angular.copy(row)\r\n var obj = {\r\n rfqId: row.mat_rfqId,\r\n ProjectId: row.ProjectId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n vm.ViewList = [];\r\n SupplierRateComparisionService.GetSupplierRateComparision(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ViewList = res.data;\r\n for (var i in vm.ViewList) {\r\n vm.ViewList[i].SupplierDetailsList = JSON.parse(vm.ViewList[i].SupplierDetails)\r\n for (var j in vm.ViewList[i].SupplierDetailsList) {\r\n vm.ViewList[i].SupplierDetailsList[j].TaxableAmount = parseFloat(vm.ViewList[i].SupplierDetailsList[j].TaxableAmount)\r\n vm.ViewList[i].SupplierDetailsList[j].CurrentRate = parseFloat(vm.ViewList[i].SupplierDetailsList[j].CurrentRate)\r\n vm.ViewList[i].SupplierDetailsList[j].TotalRate = parseFloat(vm.ViewList[i].SupplierDetailsList[j].TotalRate)\r\n vm.ViewList[i].SupplierDetailsList[j].selectedSup = true\r\n vm.isFinalisedSupplier = vm.ViewList[i].SupplierDetailsList[j].isFinalisedSupplier\r\n if (vm.ViewList[i].SupplierDetailsList[j].isFinalisedSupplier) {\r\n vm.ViewList[i].SupplierDetailsList[j].selectedRow = true;\r\n }\r\n\r\n }\r\n }\r\n\r\n vm.isFormOpen = true;\r\n vm.ViewRfqMasterList = [];\r\n\r\n var Arr1 = []\r\n for (var i in vm.ViewList) {\r\n for (var j in vm.ViewList[i].SupplierDetailsList) {\r\n Arr1.push(vm.ViewList[i].SupplierDetailsList[j])\r\n }\r\n }\r\n\r\n var supplierList = [];\r\n for (var i in vm.ViewList[0].SupplierDetailsList) {\r\n supplierList.push(vm.ViewList[0].SupplierDetailsList[i].SupplierId)\r\n }\r\n\r\n vm.SumList = [];\r\n\r\n for (var i in supplierList) {\r\n var temp = 0\r\n for (var j in Arr1) {\r\n if (supplierList[i] == Arr1[j].SupplierId) {\r\n temp += Arr1[j].TotalRate\r\n }\r\n }\r\n vm.SumList.push(temp)\r\n }\r\n\r\n\r\n\r\n // vm.ViewList1 = [\r\n // { SupplierDetailsList: [{ \"Id\": 1, \"TaxableAmount\": 10, \"TotalRate\": 10 }, { \"Id\": 2, \"TaxableAmount\": 10, \"TotalRate\": 40 }] },\r\n // { SupplierDetailsList: [{ \"Id\": 1, \"TaxableAmount\": 15, \"TotalRate\": 20 }, { \"Id\": 2, \"TaxableAmount\": 15, \"TotalRate\": 50 }] },\r\n // { SupplierDetailsList: [{ \"Id\": 1, \"TaxableAmount\": 20, \"TotalRate\": 30 }, { \"Id\": 2, \"TaxableAmount\": 20, \"TotalRate\": 60 }] },\r\n // ]\r\n\r\n vm.TaxAmt = 0;\r\n\r\n for (var i in vm.ViewList) {\r\n vm.TaxAmt += parseFloat(vm.ViewList[i].SupplierDetailsList[0].TaxableAmount)\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n\r\n vm.SaveComparision = function() {\r\n var arr = []\r\n for (var i in vm.ViewList) {\r\n for (var j in vm.ViewList[i].SupplierDetailsList) {\r\n if (vm.ViewList[i].SupplierDetailsList[j].selectedRow) {\r\n var obj = {\r\n SupplierId: vm.ViewList[i].SupplierDetailsList[j].SupplierId,\r\n IOM_Id: vm.ViewList[i].IOM_Id,\r\n mat_RfqId: vm.rfq.mat_rfqId\r\n }\r\n arr.push(obj);\r\n obj = {};\r\n }\r\n }\r\n }\r\n\r\n if (arr.length > 0) {\r\n var obj = {\r\n SupplierList: JSON.stringify(arr),\r\n mat_RfqId: vm.rfq.mat_rfqId,\r\n Notes: vm.ComparisionNotes,\r\n QuotationNo: vm.rfq.QuotationNo,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n SupplierRateComparisionService.SaveFinalisedSupplier(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Supplier Rate Comparision\");\r\n Init();\r\n vm.rfq = {};\r\n vm.isFormOpen = false;\r\n } else {\r\n $rootScope.showToaster('Info', res.data.Message, \"\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n dialogs.notify('info', 'Select Supplier', 'Supplier');\r\n }\r\n\r\n }\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n vm.dt.setDate(vm.dt.getDate() + 2);\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2025, 11, 31),\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n\r\n vm.endDtOpt.minDate = vm.dt;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .controller('SupplierRateQuoteCtrl', SupplierRateQuoteCtrl);\r\n\r\n /** @ngInject */\r\n function SupplierRateQuoteCtrl($http, $scope, $filter, $state, lodash, $rootScope, $window, SupplierRateQuoteService, dialogs, AuthenticationService, PreparationofRfqMaterialService) {\r\n var vm = this;\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isView = false;\r\n vm.isAdd = false;\r\n vm.rfq = {};\r\n vm.Create = Create;\r\n vm.Cancel = Cancel;\r\n vm.isAdded = false;\r\n vm.SupplierList = [];\r\n vm.MaterialList = [];\r\n vm.SupplierRateEntryStatus = $state.params.data.Status;\r\n vm.ViewRfqMaster = ViewRfqMaster;\r\n vm.getGST = getGST;\r\n vm.Total = Total;\r\n\r\n\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n vm.rfq = {};\r\n }\r\n\r\n function Cancel() {\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n vm.isFormOpen = false;\r\n vm.isEditing = true;\r\n vm.rfq = {};\r\n }\r\n\r\n }\r\n\r\n vm.MaterialAddList = [];\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n\r\n\r\n Init();\r\n getGST();\r\n\r\n function Init() {\r\n if ($state.params.data != undefined) {\r\n vm.RfqMaterialList = $state.params.data.SupplierMaterialList\r\n } else {\r\n SupplierRateQuoteService.GetRfqForSupplierList(loggedUser.RefId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RfqMaterialList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Supplier Rate\");\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Supplier Rate\");\r\n });\r\n }\r\n }\r\n\r\n function getGST(callBack) {\r\n debugger;\r\n SupplierRateQuoteService.GetGSTList().then(function(res) {\r\n if (res.status === 200) {\r\n vm.GSTList = res.data;\r\n if (callBack);\r\n callBack();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"GST Master\");\r\n });\r\n }\r\n\r\n function Total() {\r\n vm.grandTotal = 0;\r\n for (var i in vm.ViewList) {\r\n if (vm.ViewList[i].TotalRate != \"\" && vm.ViewList[i].TotalRate != undefined) {\r\n var totalRate = vm.ViewList[i].TotalRate;\r\n vm.grandTotal += parseFloat(totalRate);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n vm.SaveQuote = function() {\r\n\r\n if (vm.rfq.QuotationNo != undefined && vm.rfq.QuotationNo != null) {\r\n if ((vm.selectedFile != undefined || vm.Supplierfile != undefined) && vm.rfq.QuotationNo != undefined && (vm.rfq.SupplierNotes != undefined || vm.rfq.SupplierNotes != \"\")) {\r\n var Arr = [];\r\n for (var i in vm.ViewList) {\r\n var obj = {\r\n IOM_Id: vm.ViewList[i].IOM_Id,\r\n UnitRate: (vm.ViewList[i].UnitRate != undefined) ? vm.ViewList[i].UnitRate : 0,\r\n DisCount: (vm.ViewList[i].Discount != undefined) ? vm.ViewList[i].Discount : 0,\r\n CGST: (vm.ViewList[i].CGST.GSTPercentage != undefined) ? vm.ViewList[i].CGST.GSTPercentage : 0,\r\n SGST: (vm.ViewList[i].SGST.GSTPercentage != undefined) ? vm.ViewList[i].SGST.GSTPercentage : 0,\r\n IGST: (vm.ViewList[i].IGST.GSTPercentage != undefined) ? vm.ViewList[i].IGST.GSTPercentage : 0,\r\n TotalRate: (parseFloat(vm.ViewList[i].TotalRate) != undefined) ? vm.ViewList[i].TotalRate : 0\r\n }\r\n Arr.push(obj);\r\n }\r\n if (vm.SupplierRateEntryStatus == 1) {\r\n var formData = new FormData();\r\n formData.append('Attachment', vm.selectedFile);\r\n formData.append('rfqId', vm.rfq.mat_rfqId);\r\n formData.append('SupplierId', vm.rfq.SupplierId);\r\n formData.append('QuotationNo', vm.rfq.QuotationNo);\r\n formData.append('Notes', vm.rfq.SupplierNotes);\r\n formData.append('rfqRateDtls', JSON.stringify(Arr));\r\n SupplierRateQuoteService.SaveRateEntry(formData).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Supplier Rate Entry\");\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n Init();\r\n vm.isFormOpen = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Supplier Rate Entry\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n var obj = {};\r\n obj.rfqId = vm.rfq.mat_rfqId;\r\n obj.SupplierId = vm.rfq.SupplierId;\r\n obj.Notes = vm.rfq.SupplierNotes;\r\n obj.rfqRateDtls = JSON.stringify(Arr);\r\n obj.Attachment = vm.Supplierfile;\r\n obj.QuotationNo = vm.rfq.QuotationNo;\r\n SupplierRateQuoteService.SubmitRateEntry(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Supplier Rate Entry\");\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n Init();\r\n vm.isFormOpen = false;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Supplier Rate Entry\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n } else {\r\n if (vm.QuotationNo == undefined)\r\n dialogs.notify('Warning', 'Please Enter QuotationNo', { animation: true, size: 'sm' });\r\n else if (vm.rfq.SupplierNotes == undefined || vm.rfq.SupplierNotes == \"\")\r\n dialogs.notify('Warning', 'Please Enter Supplier Notes', { animation: true, size: 'sm' });\r\n else\r\n dialogs.notify('Warning', 'Please Attach File', { animation: true, size: 'sm' });\r\n }\r\n }\r\n dialogs.notify('Warning', 'Please Enter QuotationNo', { animation: true, size: 'sm' });\r\n }\r\n\r\n $scope.calcDiff = function(date) {\r\n var today = new Date();\r\n var dd = today.getDate();\r\n var mm = today.getMonth() + 1; //January is 0!\r\n var yyyy = today.getFullYear();\r\n if (dd < 10) {\r\n dd = '0' + dd\r\n }\r\n if (mm < 10) {\r\n mm = '0' + mm\r\n }\r\n today = yyyy + '/' + mm + '/' + dd;\r\n $scope.today = today;\r\n var date2 = new Date(today);\r\n var date1 = new Date(date);\r\n // var timeDiff = Math.abs(date2.getTime() - date1.getTime()); \r\n // vm.dateDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); \r\n if (date1 < date2) {\r\n vm.dateDiff = true;\r\n dialogs.notify('Warning', 'You Cannot Show the Rate Entry Because Rfq Last Date are Finished ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n vm.viewFile = function(row, name) {\r\n debugger;\r\n // var name = row.name;\r\n var url = '';\r\n if (vm.SupplierRateEntryStatus != 1 && name) {\r\n url = $rootScope.endPoint + 'UploadedDocuments/SupplierRateEntry/' + name;\r\n } else {\r\n var blob = new Blob([row], {\r\n type: row.type\r\n });\r\n url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n $scope.fileChanged = function(event) {\r\n\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n }\r\n\r\n function ViewRfqMaster(row) {\r\n vm.isLoading = true;\r\n vm.rfq = angular.copy(row)\r\n var date = new Date(vm.rfq.lastDate);\r\n $scope.calcDiff(date);\r\n vm.rfq.SupplierNotes = vm.rfq.Notes;\r\n vm.Supplierfile = vm.rfq.Attachment;\r\n var obj = {\r\n rfqId: row.mat_rfqId,\r\n ProjectId: row.ProjectId,\r\n Status: vm.SupplierRateEntryStatus,\r\n SupplierId: vm.rfq.SupplierId\r\n }\r\n vm.ViewList = [];\r\n if (vm.SupplierRateEntryStatus == 1)\r\n obj.ifRateEntryStatus = 0\r\n else\r\n obj.ifRateEntryStatus = 1\r\n SupplierRateQuoteService.GetAllRfqDetailsForSupplier(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ViewList = res.data;\r\n for (var i in vm.ViewList) {\r\n vm.ViewList[i].MaterialQty = parseFloat(vm.ViewList[i].MaterialQty).toFixed(3);\r\n vm.ViewList[i].cgst_inRupees = parseFloat(vm.ViewList[i].cgst_inRupees).toFixed(3);\r\n vm.ViewList[i].sgst_inRupees = parseFloat(vm.ViewList[i].sgst_inRupees).toFixed(3);\r\n vm.ViewList[i].igst_inRupees = parseFloat(vm.ViewList[i].igst_inRupees).toFixed(3);\r\n vm.ViewList[i].Discount_inRupees = parseFloat(vm.ViewList[i].Discount_inRupees).toFixed(3);\r\n for (var c in vm.GSTList) {\r\n if (vm.GSTList[c].GSTPercentage === vm.ViewList[i].CGST) {\r\n vm.ViewList[i].CGST = vm.GSTList[c];\r\n }\r\n if (vm.GSTList[c].GSTPercentage === vm.ViewList[i].SGST) {\r\n vm.ViewList[i].SGST = vm.GSTList[c];\r\n }\r\n if (vm.GSTList[c].GSTPercentage === vm.ViewList[i].IGST) {\r\n vm.ViewList[i].IGST = vm.GSTList[c];\r\n }\r\n }\r\n }\r\n Total();\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n vm.ViewRfqMasterList = [];\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Supplier Rate\");\r\n vm.isLoading = false;\r\n });\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n vm.GetDiscount = function(row) {\r\n row.Discount_inRupees = (parseFloat(row.MaterialQty) * parseFloat(row.UnitRate) * (parseFloat((row.Discount != undefined && row.Discount.toString().trim() != \"\") ? row.Discount : 1) / 100)).toFixed(2);\r\n row.TaxableValues = parseFloat((parseFloat(row.MaterialQty) * parseFloat(row.UnitRate)) - parseFloat(row.Discount_inRupees)).toFixed(2);\r\n vm.GetCGST(row);\r\n }\r\n\r\n vm.GetCGST = function(row) {\r\n row.cgst_inRupees = parseFloat(parseFloat(row.TaxableValues) * (parseFloat((row.CGST != undefined) ? row.CGST.GSTPercentage : 1) / 100)).toFixed(2);\r\n row.TotalRate = parseFloat(parseFloat(row.TaxableValues) + parseFloat(row.cgst_inRupees)).toFixed(2);\r\n vm.GetSGST(row);\r\n }\r\n\r\n vm.GetSGST = function(row) {\r\n row.sgst_inRupees = parseFloat(parseFloat(row.TaxableValues) * (parseFloat((row.SGST != undefined) ? row.SGST.GSTPercentage : 1) / 100)).toFixed(2);\r\n row.TotalRate = parseFloat(parseFloat(row.TaxableValues) + parseFloat(row.cgst_inRupees) + parseFloat(row.sgst_inRupees)).toFixed(2);\r\n\r\n }\r\n\r\n vm.GetIGST = function(row) {\r\n row.igst_inRupees = parseFloat(parseFloat(row.TaxableValues) * (parseFloat((row.IGST != undefined) ? row.IGST.GSTPercentage : 1) / 100)).toFixed(2);\r\n row.TotalRate = parseFloat(parseFloat(row.TaxableValues) + parseFloat(row.cgst_inRupees) + parseFloat(row.sgst_inRupees) + parseFloat(row.igst_inRupees)).toFixed(2);\r\n Total();\r\n }\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date();\r\n vm.dt.setDate(vm.dt.getDate() + 2);\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2017, 7, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2022, 11, 31),\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function() {\r\n debugger;\r\n vm.endDtOpt.minDate = vm.dt;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n /////////////////////////\r\n\r\n\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectMgtandApp')\r\n .controller('EstimationReportCtrl', EstimationReportCtrl);\r\n\r\n /** @ngInject */\r\n\r\n function EstimationReportCtrl($filter, $scope, $rootScope, lodash, dialogs, $http, $uibModal, TypeOfCAService, $location, $anchorScroll, TierSetupService, estimationReportaService,\r\n CategoryofCAService, SubCategoryofCAService, AuthenticationService, CountryService, RateAnalysisService, planningReportService, LocationSetupService, CompanyService, projectCreationService,\r\n ProjectIocaService, BillOfQuntityService, $window, ItemToItemService) {\r\n\r\n // function EstimationReportCtrl($scope, $rootScope, lodash, dialogs, $http, TypeOfCAService, TierSetupService, estimationReportaService, CategoryofCAService, SubCategoryofCAService, AuthenticationService, CountryService, IocaService, LocationSetupService, CompanyService, projectCreationService, ProjectIocaService, BillOfQuntityService) {\r\n\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.EstimationFromList = [];\r\n vm.EstimationReportList = [];\r\n vm.EstimationReportbasedList = [];\r\n vm.DescriptionList = [];\r\n vm.EstimationList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.IocaList = [];\r\n vm.focList = [];\r\n vm.toqList = [];\r\n vm.Showcate = true;\r\n vm.MethodList = [];\r\n vm.LocationMaster = [];\r\n vm.ProjectList = [];\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.getLocationByProject = getLocationByProject;\r\n // vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getTypeOfAttributeByTypeCA = getTypeOfAttributeByTypeCA;\r\n vm.getDescriptionBySelectedIOCA = getDescriptionBySelectedIOCA;\r\n vm.filterTiers = filterTiers;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.loadIocaList = loadIocaList;\r\n vm.EstimationReportbased = EstimationReportbased;\r\n vm.getReportMethod = getReportMethod;\r\n vm.getReportBasedOn = getReportBasedOn;\r\n vm.cancel = cancel;\r\n vm.ClearMethod = ClearMethod;\r\n vm.CAType = CAType;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n vm.getScopeBasedContractorName = getScopeBasedContractorName;\r\n vm.getContractorBasedWorkOrderNo = getContractorBasedWorkOrderNo;\r\n // vm.getTierNo = getTierNo;\r\n // vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.costructionactivity = false;\r\n vm.locationwork = false;\r\n vm.ShowReport = ShowReport;\r\n // vm.getReportType = getReportType;\r\n var tier = {};\r\n vm.filter = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'All',\r\n Code: 'A'\r\n }, {\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n if (!vm.SpecTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no SpecTypeName available selected TypeofCategory', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Daily ', Code: 'D', PeriodTypeNameId: 1 },\r\n { PeriodTypeName: 'Weekly ', Code: 'W', PeriodTypeNameId: 2 },\r\n { PeriodTypeName: 'Monthly ', Code: 'M', PeriodTypeNameId: 3 }\r\n // ,{ PeriodTypeName: 'Quarterly Report', Code: 'Q' }, { PeriodTypeName: 'Periodic Report', Code: 'P' }\r\n ];\r\n\r\n function getReportMethod(formid) {\r\n debugger;\r\n vm.estimationreport.selectedtoq = null;\r\n if (formid == 1 && vm.estimationreport.selectedProject.length == 1) {\r\n vm.toqList = [{\r\n TypeofQuantityName: \"Total Quantity\",\r\n TypeofQuantityId: 1\r\n }];\r\n }\r\n else if (vm.estimationreport.selectedProject.length == 1) {\r\n // vm.toqList = [\r\n // { TypeofQuantityName: \"Total Quantity\", TypeofQuantityId: 1 },\r\n // { TypeofQuantityName: \"Completed Quantity\", TypeofQuantityId: 2 },\r\n // { TypeofQuantityName: \"Balance Quantity\", TypeofQuantityId: 3 }\r\n // ];\r\n if (vm.estimationreport.selectedestimation.EstimationId == 0) {\r\n vm.toqList = [\r\n { TypeofQuantityName: \"Total Quantity\", TypeofQuantityId: 1 },\r\n { TypeofQuantityName: \"Completed Quantity\", TypeofQuantityId: 2 },\r\n { TypeofQuantityName: \"Balance Quantity\", TypeofQuantityId: 3 }\r\n // ,{ TypeofQuantityName: \"Project Status\", TypeofQuantityId: 4 }\r\n ];\r\n }\r\n else {\r\n vm.toqList = [\r\n { TypeofQuantityName: \"Total Quantity\", TypeofQuantityId: 1 },\r\n { TypeofQuantityName: \"Completed Quantity\", TypeofQuantityId: 2 },\r\n { TypeofQuantityName: \"Balance Quantity\", TypeofQuantityId: 3 }\r\n ];\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.getAbsctActivity = function (methodId) {\r\n if (methodId == 2 && vm.estimationreport.selectedestimation.EstimationName == 'Abstract Cost') {\r\n vm.CATypeList = [];\r\n if (vm.estimationreport.selectedLocation.length == 1) {\r\n vm.CATypeList = [{\r\n ActivityType: \"Category\",\r\n ActivityTypeId: 1\r\n }, {\r\n ActivityType: \"Subcategory\",\r\n ActivityTypeId: 2\r\n },\r\n {\r\n ActivityType: \"Type\",\r\n ActivityTypeId: 3\r\n },\r\n {\r\n ActivityType: \"IOCA\",\r\n ActivityTypeId: 4\r\n }];\r\n }\r\n else {\r\n vm.CATypeList = [{\r\n ActivityType: \"All Type of Work Location\",\r\n ActivityTypeId: 5,\r\n }, {\r\n ActivityType: \"All Item of Construction Activity\",\r\n ActivityTypeId: 6\r\n }];\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n function CAType(formid) {\r\n\r\n vm.estimationreport.CAType = null;\r\n if (formid == 1) {\r\n vm.CATypeList = [];\r\n if (vm.estimationreport.selectedLocation.length == 1) {\r\n vm.CATypeList = [{\r\n ActivityType: \"Category\",\r\n ActivityTypeId: 1\r\n }, {\r\n ActivityType: \"Subcategory\",\r\n ActivityTypeId: 2\r\n },\r\n {\r\n ActivityType: \"Type\",\r\n ActivityTypeId: 3\r\n },\r\n {\r\n ActivityType: \"IOCA\",\r\n ActivityTypeId: 4\r\n }];\r\n }\r\n else {\r\n vm.CATypeList = [{\r\n ActivityType: \"All Type of Work Location\",\r\n ActivityTypeId: 5\r\n }, {\r\n ActivityType: \"All Item of Construction Activity\",\r\n ActivityTypeId: 6\r\n }];\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n ////////////////////\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n // vm.estimationreport.selectedProject=null;\r\n // vm.ProjectList=[];\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n\r\n\r\n if (!vm.CompanyList.length > 0) {\r\n dialogs.notify('Warning', '! There is no available Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n\r\n vm.EstimationWorkOrderTypeList = [\r\n {\r\n WorkOrderTypeName: 'Labour ', WorkOrderTypeId: 'L'\r\n }, {\r\n WorkOrderTypeName: 'Labour & Material',\r\n WorkOrderTypeId: 'C1'\r\n }, {\r\n WorkOrderTypeName: 'Labour, Material & Machinery',\r\n WorkOrderTypeId: 'C2'\r\n }, {\r\n WorkOrderTypeName: 'Labour & Machinery',\r\n WorkOrderTypeId: 'C3'\r\n }, {\r\n WorkOrderTypeName: 'Labour, Material, Machinery & Consumable',\r\n WorkOrderTypeId: 'C4'\r\n }];\r\n\r\n\r\n vm.EstimationFromList = [{\r\n formid: 1,\r\n estimationform: \"Draft BOQ\"\r\n },\r\n {\r\n formid: 4,\r\n estimationform: \"Finalized BOQ\"\r\n }\r\n ];\r\n\r\n vm.EstimationReportbasedList = [{\r\n reportid: 1,\r\n EstimationReportbased: \"Construction Activity\"\r\n },\r\n {\r\n reportid: 2,\r\n EstimationReportbased: \"Location Of Work\"\r\n }\r\n ];\r\n\r\n\r\n vm.DescriptionList = [{\r\n Description: \"Detailed\"\r\n },\r\n {\r\n Description: \"Short\"\r\n }\r\n ];\r\n\r\n // vm.EstimationList = [{\r\n // EstimationName: \"Bill of Quantity\",\r\n // EstimationId: 0\r\n // },\r\n // {\r\n // EstimationName: \"Labour Cost Estimation\",\r\n // EstimationId: 1\r\n\r\n // },\r\n // {\r\n // EstimationName: \"Material Cost Estimation\",\r\n // EstimationId: 2\r\n // },\r\n // {\r\n // EstimationName: \"Machinery Cost Estimation\",\r\n // EstimationId: 3\r\n // },\r\n // {\r\n // EstimationName: \"Consumable Cost Estimation\",\r\n // EstimationId: 4\r\n // },\r\n // {\r\n // EstimationName: \" Profit & Overhead Cost Estimation\",\r\n // EstimationId: 7\r\n\r\n // },\r\n // // {\r\n // // EstimationName: \" Profit Estimation\",\r\n // // EstimationId: 8\r\n // // },\r\n // {\r\n // EstimationName: \"Total Basic Cost Estimation\",\r\n // EstimationId: 9\r\n // },\r\n // {\r\n // EstimationName: \"Abstract Cost\",\r\n // EstimationId: 10\r\n // },\r\n // {\r\n // EstimationName: \"Assumption Cost\",\r\n // EstimationId: 11\r\n // }\r\n // ];\r\n vm.RateList = [\r\n {\r\n RateName: \"Current Rate\",\r\n RateId: 1\r\n },\r\n {\r\n RateName: \"Rate On\",\r\n RateId: 2\r\n },\r\n {\r\n RateName: \"Initial Rate\",\r\n RateId: 0\r\n }\r\n ];\r\n\r\n }\r\n\r\n function ClearMethod() {\r\n\r\n vm.MethodList = [];\r\n if (vm.estimationreport.selectedLocation != undefined) {\r\n vm.estimationreport.selectedmethod = null;\r\n if (vm.estimationreport.selectedLocation.length == 1) {\r\n vm.MethodList = [{\r\n MethodName: \"Detailed\",\r\n MethodId: 1\r\n },\r\n {\r\n MethodName: \"Consolidated\",\r\n MethodId: 2\r\n\r\n }\r\n ];\r\n } if (vm.estimationreport.selectedLocation.length > 1) {\r\n if (vm.estimationreport.selectedestimation) {\r\n if (vm.estimationreport.selectedestimation.EstimationName == 'Abstract Cost') {\r\n vm.MethodList = [{\r\n MethodName: \"Detailed\",\r\n MethodId: 1\r\n },\r\n {\r\n MethodName: \"Consolidated\",\r\n MethodId: 2\r\n\r\n }];\r\n }\r\n else {\r\n vm.MethodList = [{\r\n MethodName: \"Detailed\",\r\n MethodId: 1\r\n }]\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n vm.GetMethod = function () {\r\n if (vm.estimationreport.selectedLocation != undefined) {\r\n vm.estimationreport.selectedmethod = null;\r\n if (vm.estimationreport.selectedLocation.length == 1) {\r\n vm.MethodList = [{\r\n MethodName: \"Detailed\",\r\n MethodId: 1\r\n },\r\n {\r\n MethodName: \"Consolidated\",\r\n MethodId: 2\r\n\r\n }\r\n ];\r\n } if (vm.estimationreport.selectedLocation.length > 1) {\r\n if (vm.estimationreport.selectedestimation.EstimationName == 'Abstract Cost') {\r\n vm.MethodList = [{\r\n MethodName: \"Detailed\",\r\n MethodId: 1\r\n },\r\n {\r\n MethodName: \"Consolidated\",\r\n MethodId: 2\r\n\r\n }];\r\n }\r\n else {\r\n vm.MethodList = [{\r\n MethodName: \"Detailed\",\r\n MethodId: 1\r\n }]\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n clearSelection();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function getFocByPrjId() {\r\n\r\n clearfoc();\r\n if (vm.estimationreport.selectedestimation != null)\r\n var obj = {\r\n LocationId: (vm.estimationreport.selectedLocation != undefined) ? vm.estimationreport.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n Status: vm.estimationreport.selectedEstimationFrom.formid,\r\n // ReportBasedonId: vm.estimationreport.selectedestreport.reportid,\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId\r\n }\r\n\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n\r\n\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n GetReportFor(vm.estimationreport.selectedProject[0].ProjectId);\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n\r\n // if (!vm.focList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no FOC available selected requirement field', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n // function getCountryByProject() {\r\n // clearCountry();\r\n // var obj = {\r\n // LocationId: (vm.estimationreport.selectedLocation != undefined) ? vm.estimationreport.selectedLocation.LocationId : \"\",\r\n // ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n // Status: vm.estimationreport.selectedEstimationFrom.formid\r\n // }\r\n // if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n // obj.Tiers = buildFilterString();\r\n // }\r\n // ItemToItemService.getBoQCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // }\r\n\r\n function getCategoryByProject(ProjectId, CountryId) {\r\n debugger;\r\n clearCategory(); var tempFoc = [];\r\n for (var i in vm.estimationreport.selectedFOC) {\r\n tempFoc.push(vm.estimationreport.selectedFOC[i].FieldofConstructionId);\r\n }\r\n if (CountryId && ProjectId && vm.estimationreport.selectedestimation != undefined) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: tempFoc.join()\r\n };\r\n var obj = {\r\n LocationId: (vm.estimationreport.selectedLocation != undefined) ? vm.estimationreport.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n Status: vm.estimationreport.selectedEstimationFrom.formid,\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId,\r\n InputJson: JSON.stringify(filter),\r\n\r\n }\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.Showcate = false;\r\n vm.isLoading = false;\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n vm.Showcate = false;\r\n dialogs.notify('Warning', '! There is no Category available selected FOC', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getSubcategoryByCategory() {\r\n clearSubcategory();\r\n if (vm.estimationreport.selectedCategory != undefined && vm.estimationreport.selectedCategory.length > 0) {\r\n var Arr = []; var tempFoc = [];\r\n for (var i in vm.estimationreport.selectedCategory) {\r\n Arr.push(vm.estimationreport.selectedCategory[i].CategoryId);\r\n }\r\n for (var i in vm.estimationreport.selectedFOC) {\r\n tempFoc.push(vm.estimationreport.selectedFOC[i].FieldofConstructionId);\r\n }\r\n\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: tempFoc.join(),\r\n CountryId: vm.estimationreport.selectedProject[0].CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.estimationreport.selectedLocation != undefined) ? vm.estimationreport.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n Status: vm.estimationreport.selectedEstimationFrom.formid,\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId,\r\n InputJson: JSON.stringify(filter),\r\n\r\n }\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.SubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no SubCategory available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function getTypeofCABySubCategory() {\r\n clearType();\r\n if (vm.estimationreport.selectedSubCategory != undefined && vm.estimationreport.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.estimationreport.selectedSubCategory) {\r\n Arr.push(vm.estimationreport.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.estimationreport.selectedFOC.FieldofConstructionId,\r\n CountryId: vm.estimationreport.selectedProject[0].CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.estimationreport.selectedLocation != undefined) ? vm.estimationreport.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n Status: vm.estimationreport.selectedEstimationFrom.formid,\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId,\r\n InputJson: JSON.stringify(filter),\r\n\r\n }\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.TypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no TypeCategory available selected SubCategory', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getTypeOfAttributeByTypeCA() {\r\n if (vm.estimationreport.selectedTypeOfCA != undefined && vm.estimationreport.selectedTypeOfCA.length > 0) {\r\n\r\n Attribute();\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.estimationreport.selectedTypeOfCA != undefined && vm.estimationreport.selectedTypeOfCA.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.estimationreport.selectedTypeOfCA) {\r\n Arr.push(vm.estimationreport.selectedTypeOfCA[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.estimationreport.selectedFOC.FieldofConstructionId,\r\n CountryId: vm.estimationreport.selectedProject[0].CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n SpecType: vm.estimationreport.selectedSpecType.Code\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.estimationreport.selectedLocation != undefined) ? vm.estimationreport.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n Status: vm.estimationreport.selectedEstimationFrom.formid,\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId,\r\n InputJson: JSON.stringify(filter),\r\n\r\n }\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n estimationReportaService.getBoQIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n dialogs.notify('Warning', '! There is no Ioca available selected SpecTypeName', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n }\r\n\r\n function getDescriptionBySelectedIOCA() {\r\n if (vm.estimationreport.selectedIOCA != undefined && vm.estimationreport.selectedIOCA.length > 0) {\r\n // vm.estimationreport.selecteddesc = null;\r\n // vm.tierList = [];\r\n // vm.estimationreport.selectedLocation = null;\r\n // vm.estimationreport.selectedestimation = null;\r\n // vm.estimationreport.selectedtoq = null;\r\n // vm.estimationreport.selectedmethod = null;\r\n } else {\r\n // vm.estimationreport.selecteddesc = null;\r\n // vm.tierList = [];\r\n // vm.estimationreport.selectedLocation = null;\r\n // vm.estimationreport.selectedestimation = null;\r\n // vm.estimationreport.selectedestimation = null;\r\n // vm.estimationreport.selectedtoq = null;\r\n // vm.estimationreport.selectedmethod = null;\r\n }\r\n }\r\n\r\n function EstimationReportbased(reportid) {\r\n\r\n if (reportid === 1) {\r\n debugger;\r\n getFocByPrjId(reportid);\r\n //getCountryByProject();\r\n // getLocationByProject();\r\n clearTierSelection();\r\n\r\n } else {\r\n getLocationByProject(reportid);\r\n clearfoc();\r\n }\r\n // getReportBasedOn(reportid);\r\n vm.getReportMethod(vm.estimationreport.selectedEstimationFrom.formid);\r\n }\r\n\r\n function getLocationByProject() {\r\n\r\n clearLocation();\r\n\r\n if (vm.estimationreport.selectedestreport.reportid == 1 && vm.estimationreport.selectedestimation != null) {\r\n var Arr = [];\r\n for (var i in vm.estimationreport.selectedIOCA) {\r\n Arr.push(vm.estimationreport.selectedIOCA[i].IOCA_Id);\r\n }\r\n\r\n var obj = {\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n IOCA: Arr.join(),\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId\r\n }\r\n }\r\n else {\r\n if (vm.estimationreport.selectedestimation != null)\r\n var obj = {\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n ReportTypeId: vm.estimationreport.selectedestimation.EstimationId\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation != null)\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n $rootScope.showToaster('info', 'There is no work Location available selected Project', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n\r\n }\r\n\r\n function getTiersByLocation(ProjectId, callback) {\r\n ClearMethod();\r\n if (vm.estimationreport.selectedLocation != undefined) {\r\n if (vm.estimationreport.selectedLocation.length == 1) {\r\n vm.tierObj = JSON.parse(vm.estimationreport.selectedLocation[0].Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n\r\n TierSetupService.getAllTierSetup(vm.estimationreport.selectedLocation[0].LocationId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.allTierData = res.data;\r\n vm.tierList = [];\r\n for (var properties in vm.tierObj) {\r\n var temp = {\r\n TierName: vm.tierObj[properties],\r\n IsAdding: false,\r\n TierType: properties\r\n }\r\n if (properties === 'Tier1') {\r\n temp.Values = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.tierObj[properties]\r\n });\r\n }\r\n vm.tierList.push(temp)\r\n }\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier\r\n });\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n getFocByPrjId();\r\n // getCountryByProject();\r\n }\r\n }\r\n }\r\n\r\n function filterTiers(tier) {\r\n var tempTier = \"Tier\" + (parseInt(tier.TierType.substring(4)) + 1);\r\n vm.currentTier = vm.tierObj[tempTier];\r\n vm.TierSetupList = lodash.filter(vm.allTierData, {\r\n 'TierName': vm.currentTier,\r\n 'ParentTierId': tier.selectedTierValue.TierId\r\n });\r\n lodash.forEach(vm.tierList, function (t) {\r\n if (t.TierType === tempTier) {\r\n t.Values = vm.TierSetupList;\r\n }\r\n });\r\n\r\n if (vm.estimationreport.selectedestreport.reportid === 2) {\r\n getFocByPrjId();\r\n // getCountryByProject();\r\n }\r\n\r\n }\r\n\r\n function buildFilterString() {\r\n var tiers = {\r\n filter: {}\r\n };\r\n lodash.forEach(vm.tierList, function (tier) {\r\n if (tier.selectedTierValue)\r\n tiers.filter[tier.TierType] = tier.selectedTierValue.TierId;\r\n });\r\n return JSON.stringify(tiers);\r\n }\r\n\r\n // function getReportType() {\r\n // vm.ReportType = [];\r\n // for (var i in vm.tierList) {\r\n // var obj = {\r\n // TierName: vm.tierList[i].TierName\r\n // }\r\n // vm.ReportType.push(obj)\r\n // }\r\n // }\r\n\r\n function ShowReport() {\r\n\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n // alert(1);\r\n\r\n var tiers = buildFilterString();\r\n\r\n var strHeading = null;\r\n\r\n if (vm.estimationreport.selectedProject.length === 1) {\r\n if (vm.estimationreport.selectedmethod.MethodName == \"Detailed\") {\r\n strHeading = \" Estimated Detailed \";\r\n } else {\r\n strHeading = \"Estimated Consolidated \";\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationName == \"Bill of Quantity\") {\r\n\r\n //strHeading = \"
\" + strHeading + \" \" + vm.estimationreport.selectedestimation.EstimationName + \"\" + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + \" \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \"\";\r\n\r\n if (vm.estimationreport.selectedmethod.MethodId == 2) {\r\n if (vm.estimationreport.selectedtoq.TypeofQuantityId === 4) {\r\n strHeading = strHeading + ' ' + vm.estimationreport.selectedtoq.TypeofQuantityName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.Tier.TierName\r\n + \" wise \" + ' - ' + vm.estimationreport.selectedestreport.EstimationReportbased + \" wise \";\r\n } else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \"\r\n + vm.estimationreport.selectedtoq.TypeofQuantityName + \" - \" + vm.estimationreport.Tier.TierName + \" wise \";\r\n }\r\n\r\n }\r\n else {\r\n if (vm.estimationreport.selectedtoq.TypeofQuantityId === 4) {\r\n strHeading = strHeading + ' ' + vm.estimationreport.selectedtoq.TypeofQuantityName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \"\r\n + vm.estimationreport.Tier.TierName + \" wise \" + ' - ' + vm.estimationreport.selectedestreport.EstimationReportbased + \" wise \";\r\n } else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \"\r\n + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName;\r\n }\r\n\r\n }\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId > 0 && vm.estimationreport.selectedestimation.EstimationId < 9) {\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n if (vm.estimationreport.selectedmethod.MethodId == 2) {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - \" + vm.estimationreport.Tier.TierName + \" wise \";\r\n } else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy');\r\n }\r\n\r\n } else {\r\n if (vm.estimationreport.selectedmethod.MethodId == 2) {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName + \" - \" + vm.estimationreport.Tier.TierName + \" wise \";\r\n }\r\n else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName;\r\n }\r\n }\r\n }\r\n\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationName == \"Total Cost Estimation\") {\r\n var tmpstring = '';\r\n if (vm.estimationreport.selectedestreport.EstimationReportbased == \"Construction Activity\") {\r\n tmpstring = \" - Item of Construction Activity Wise -\";\r\n } else {\r\n strHeading = \"Consolidated \";\r\n }\r\n if (vm.estimationreport.selectedEstimationFrom.estimationform == \"Draft BOQ\") {\r\n strHeading = strHeading + \"Draft \" + vm.estimationreport.selectedestimation.EstimationName + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName;//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n tmpstring = \" - Location Wise -\";\r\n }\r\n\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId == \"12\") {\r\n strHeading = strHeading + \" \" + vm.estimationreport.selectedWorkOrderType.WorkOrderTypeName + \" Cost From \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on Work Order Rate \"\r\n }\r\n\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationName == \"Total Basic Cost Estimation\") {\r\n\r\n var tmpstring = '';\r\n\r\n\r\n if (vm.estimationreport.selectedestreport.EstimationReportbased == \"Construction Activity\") {\r\n tmpstring = \" - Item of Construction Activity wise -\";\r\n } else {\r\n\r\n tmpstring = \" - Location Wise -\";\r\n }\r\n\r\n strHeading = \"Estimated Detailed \" + vm.estimationreport.selectedestimation.EstimationName + \" of \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + tmpstring + \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n\r\n } else {\r\n // EstimationReportbasedList\r\n if (vm.estimationreport.selectedestreport.EstimationReportbased == \"Construction Activity\") {\r\n strHeading = strHeading + \" - Item of Construction Activity Wise -\" + \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";;\r\n } else {\r\n\r\n strHeading = strHeading + \" - Location Wise -\" + \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";;\r\n }\r\n }\r\n\r\n\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId == \"10\") {\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n if (vm.estimationreport.selectedmethod.MethodId === 2) {\r\n if (vm.estimationreport.CAType.ActivityTypeId == 5 || vm.estimationreport.CAType.ActivityTypeId == 6) {\r\n strHeading = \" Estimated Cost (Abstract) from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + vm.estimationreport.CAType.ActivityType + \" based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" of Basic Rate - \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n else\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.selectedtoq.TypeofQuantityName + vm.estimationreport.CAType.ActivityType + \" based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n else {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + \" based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n //strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + \" based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n //strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + vm.estimationreport.CAType.ActivityType + \" Wise based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n } else {\r\n if (vm.estimationreport.selectedmethod.MethodId === 2) {\r\n if (vm.estimationreport.CAType.ActivityTypeId === 5 || vm.estimationreport.CAType.ActivityTypeId === 6) {\r\n strHeading = \" Estimated Cost (Abstract) from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + vm.estimationreport.CAType.ActivityType + \" based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" of Basic Rate - \" + vm.estimationreport.selecteddesc.Description + \" Description \";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n } else if (vm.estimationreport.CAType.ActivityTypeId < 5) {\r\n strHeading = \" Estimated Cost (Abstract) from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + vm.estimationreport.CAType.ActivityType + \" based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" of Basic Rate - \" + vm.estimationreport.selecteddesc.Description + \" Description \";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n } else if (vm.estimationreport.selectedmethod.MethodId === 1) {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" Wise based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId == \"11\") {\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" based on Assumption Rate - \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy');\r\n } else {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" based on Assumption Rate - \" + vm.estimationreport.selectedRate.RateName;\r\n }\r\n }\r\n\r\n\r\n var strcondition = null;\r\n if (vm.estimationreport.selecteddesc.Description == \"Detailed\") {\r\n strcondition = \"Detailed\";\r\n } else {\r\n strcondition = \"Short\";\r\n }\r\n\r\n if (vm.estimationreport.selectedIOCA != undefined && vm.estimationreport.selectedIOCA.length > 0) {\r\n\r\n var arr = [];\r\n for (var i in vm.estimationreport.selectedIOCA) {\r\n arr.push(vm.estimationreport.selectedIOCA[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n\r\n var CostType;\r\n\r\n\r\n var Arr = [];\r\n for (var i in vm.estimationreport.selectedLocation) {\r\n Arr.push(vm.estimationreport.selectedLocation[i].LocationId);\r\n }\r\n vm.LocationId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n LocationId: vm.LocationId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.Type != undefined) ? vm.Type : \"\",\r\n SpecType: (vm.estimationreport.selectedSpecType != undefined) ? vm.estimationreport.selectedSpecType.Code : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n Tiers: tiers,\r\n GroupCompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n CompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n ProjectName: vm.estimationreport.selectedProject[0].ProjectName,\r\n EstimationFor: vm.estimationreport.selectedEstimationFrom.estimationform,\r\n Duration: \"\",\r\n Heading: strHeading,\r\n DescType: strcondition,\r\n ReportFor: vm.estimationreport.selectedmethod.MethodName,\r\n Createdby: loggedUser.UserId,\r\n ReportType: vm.estimationreport.selectedestreport.EstimationReportbased,\r\n CostType: vm.estimationreport.selectedestimation.EstimationId,\r\n p_BOQStatus: vm.estimationreport.selectedEstimationFrom.formid,\r\n p_TypeOfQuantity: vm.estimationreport.selectedtoq.TypeofQuantityId\r\n }\r\n\r\n //Check Rate Type\r\n if (vm.estimationreport.selectedestimation.EstimationId > 0 && vm.estimationreport.selectedestimation.EstimationId < 12) {\r\n obj.p_CostOn = vm.estimationreport.selectedRate.RateId\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n obj.p_CostDate = $filter('date')(vm.emp.DOB, 'yyyy-MM-dd')\r\n }\r\n }\r\n if (vm.estimationreport.selectedmethod.MethodId === 2)\r\n // if (vm.estimationreport.selectedmethod.MethodId === 2 && vm.estimationreport.selectedestimation.EstimationId != 10) \r\n {\r\n if (vm.estimationreport.selectedestimation.EstimationId != 10) { obj.TierType = vm.estimationreport.Tier.TierType }\r\n else if (vm.estimationreport.selectedestimation.EstimationId === 10 && vm.estimationreport.CAType.ActivityTypeId < 5) { obj.TierType = vm.estimationreport.Tier.TierType }\r\n }\r\n // Consolidated Report CA Type Based\r\n if (vm.estimationreport.selectedestimation.EstimationId === 10 && vm.estimationreport.selectedmethod.MethodId === 2) {\r\n obj.CATypeID = vm.estimationreport.CAType.ActivityTypeId\r\n }\r\n if (vm.estimationreport.selectedestimation.EstimationId === 12) {\r\n obj.ScopeId = vm.estimationreport.selectedWorkOrderType.WorkOrderTypeId;\r\n obj.ContractorId = vm.estimationreport.SelectedContractorName.ContractorId;\r\n obj.WorkOrderId = vm.estimationreport.SelectedWorkOrderNo.WorkOrderId;\r\n obj.WorkOrderNo = vm.estimationreport.SelectedWorkOrderNo.WorkOrderNo;\r\n obj.ScopeType = vm.estimationreport.selectedWorkOrderType.WorkOrderTypeName;\r\n obj.ContractorName = vm.estimationreport.SelectedContractorName.ContractorName;\r\n }\r\n\r\n\r\n\r\n vm.ExportPdfData = null;\r\n //console.log(\"onbject to server\" + JSON.stringify(obj));\r\n if (vm.estimationreport.selectedestimation.EstimationId == 0) {\r\n BillOfQuntityService.ShowReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n } else if (vm.estimationreport.selectedestimation.EstimationId > 0) {\r\n BillOfQuntityService.LabourCostEstimation(obj).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n //Before Push Uncom\r\n // cancel();\r\n //Init();\r\n } else {\r\n\r\n $rootScope.showToaster('error', 'incorrect data', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n }\r\n else if (vm.estimationreport.selectedProject.length > 1) {\r\n debugger\r\n var Arr = [];\r\n for (var i in vm.estimationreport.selectedProject) {\r\n Arr.push(vm.estimationreport.selectedProject[i].ProjectId);\r\n }\r\n vm.ProjectId = Arr.join();\r\n strHeading = ' Consolidated Cost Estimation Report From ' + vm.estimationreport.selectedEstimationFrom.estimationform\r\n + ' of All Projects of Total Qty - Construction Activity Wise - Based on Initial Rate';\r\n\r\n var obj = {\r\n ProjectIds: (vm.ProjectId != undefined) ? vm.ProjectId : \"\",\r\n CompanyId: vm.estimationreport.selectedCompany.CompanyId,\r\n GroupCompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n CompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n EstimationFor: vm.estimationreport.selectedEstimationFrom.estimationform,\r\n Heading: strHeading,\r\n Createdby: loggedUser.UserId,\r\n p_BOQStatus: vm.estimationreport.selectedEstimationFrom.formid,\r\n }\r\n\r\n\r\n estimationReportaService.ShowAllPrjCostReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n \r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n\r\n //vm.isLoading = false;\r\n }\r\n\r\n\r\n }\r\n\r\n function clearSelection() {\r\n clearfoc();\r\n clearTierSelection();\r\n vm.estimationreport.selectedProject = null;\r\n vm.estimationreport.selectedEstimationFrom = null;\r\n vm.estimationreport.selectedestreport = null;\r\n vm.estimationreport.selecteddesc = null;\r\n vm.estimationreport.selectedestimation = null;\r\n vm.estimationreport.selectedRate = null;\r\n vm.estimationreport.selectedtoq = null;\r\n vm.estimationreport.selectedmethod = null;\r\n vm.estimationreport.Tier = null;\r\n }\r\n\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.estimationreport.selectedIOCA = null;\r\n\r\n }\r\n function clearType() {\r\n vm.TypeList = [];\r\n vm.estimationreport.selectedTypeOfCA = [];\r\n vm.estimationreport.selectedSpecType = null;\r\n clearioca();\r\n }\r\n\r\n function clearSubcategory() {\r\n vm.SubCategoryList = [];\r\n vm.estimationreport.selectedSubCategory = [];\r\n clearType();\r\n }\r\n\r\n function clearCategory() {\r\n vm.CategoryList = [];\r\n vm.estimationreport.selectedCategory = [];\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearCountry() {\r\n // vm.CountryList = [];\r\n // vm.estimationreport.selectedCountry = null;\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearfoc() {\r\n vm.focList = [];\r\n vm.estimationreport.selectedFOC = null;\r\n clearCountry();\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearLocation() {\r\n vm.LocationMaster = [];\r\n vm.estimationreport.selectedLocation = null;\r\n clearTierSelection();\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.tierList, function (tier) {\r\n tier.selectedTierValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n\r\n vm.resetForm = function () {\r\n vm.estimationreportform.$setUntouched();\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.estimationreport = {};\r\n }\r\n\r\n\r\n vm.today = function () {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function () {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n\r\n\r\n vm.maxDateFun = function () {\r\n vm.maxd = new Date();\r\n //\r\n vm.maxd.setDate(vm.maxd.getDate() - 1);\r\n };\r\n\r\n vm.maxDateFun();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2016, 1, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n\r\n startingDay: 1\r\n };\r\n\r\n vm.setMinEndDate = function () {\r\n vm.endDtOpt.minDate = vm.emp.DOB;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n // vm.toggleMin = function () {\r\n // vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n // vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n // };\r\n\r\n // vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n //var today = vm.dt;\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n };\r\n\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n\r\n var lastdate = new Date();\r\n lastdate.setDate(lastdate.getDate() + 1);\r\n var beforeToday = new Date();\r\n beforeToday.setDate(lastdate.getDate() + 1);\r\n vm.events = [{\r\n date: lastdate,\r\n status: 'full'\r\n }, {\r\n date: beforeToday,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.estimationreport.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n //vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n\r\n //#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function () {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n vm.getDate = function () {\r\n // if (vm.selectedPeriod.Code == 'D') {\r\n // vm.plan.From = angular.copy(vm.plan.From);\r\n // vm.plan.To = angular.copy(vm.plan.From);\r\n // }\r\n }\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Work Order Details\r\n\r\n function getScopeBasedContractorName(scopeId, projectid) {\r\n\r\n vm.isLoading = true;\r\n var obj = {\r\n ScopeId: scopeId,\r\n ProjectId: projectid\r\n }\r\n RateAnalysisService.getScopeBasedContractorName(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorNameList = res.data;\r\n vm.isLoading = false;\r\n if (vm.ContractorNameList.length < 1)\r\n $rootScope.showToaster('info', 'There is no Contractor available selected Scope', \"No Data\");\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n vm.isLoading = false;\r\n }\r\n\r\n function getContractorBasedWorkOrderNo(ContractorId, projectid) {\r\n\r\n vm.isLoading = true;\r\n var obj = {\r\n ContractorId: ContractorId,\r\n ProjectId: projectid\r\n }\r\n RateAnalysisService.getContractorBasedWorkOrderNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.WorkOrderList.length > 0)\r\n $rootScope.showToaster('info', 'There is no WorkOder available selected Contractor', \"No Data\");\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n // *** ***//\r\n\r\n function getReportBasedOn(reportid) {\r\n\r\n vm.estimationreport.selectedestimation = null;\r\n if (reportid == 1) {\r\n vm.EstimationList = [{\r\n EstimationName: \"Bill of Quantity\",\r\n EstimationId: 0\r\n },\r\n {\r\n EstimationName: \"Labour Cost Estimation\",\r\n EstimationId: 1\r\n\r\n },\r\n {\r\n EstimationName: \"Material Cost Estimation\",\r\n EstimationId: 2\r\n },\r\n {\r\n EstimationName: \"Machinery Cost Estimation\",\r\n EstimationId: 3\r\n },\r\n {\r\n EstimationName: \"Consumable Cost Estimation\",\r\n EstimationId: 4\r\n },\r\n {\r\n EstimationName: \" Profit & Overhead Cost Estimation\",\r\n EstimationId: 7\r\n\r\n },\r\n // {\r\n // EstimationName: \" Profit Estimation\",\r\n // EstimationId: 8\r\n // },\r\n {\r\n EstimationName: \"Total Basic Cost Estimation\",\r\n EstimationId: 9\r\n }\r\n // },\r\n // {\r\n // EstimationName: \"WorkOrder Cost\",\r\n // EstimationId: 12\r\n // }\r\n\r\n ];\r\n } else {\r\n vm.EstimationList = [{\r\n EstimationName: \"Bill of Quantity\",\r\n EstimationId: 0\r\n },\r\n {\r\n EstimationName: \"Labour Cost Estimation\",\r\n EstimationId: 1\r\n\r\n },\r\n {\r\n EstimationName: \"Material Cost Estimation\",\r\n EstimationId: 2\r\n },\r\n {\r\n EstimationName: \"Machinery Cost Estimation\",\r\n EstimationId: 3\r\n },\r\n {\r\n EstimationName: \"Consumable Cost Estimation\",\r\n EstimationId: 4\r\n },\r\n {\r\n EstimationName: \" Profit & Overhead Cost Estimation\",\r\n EstimationId: 7\r\n\r\n },\r\n // {\r\n // EstimationName: \" Profit Estimation\",\r\n // EstimationId: 8\r\n // },\r\n {\r\n EstimationName: \"Total Basic Cost Estimation\",\r\n EstimationId: 9\r\n },\r\n {\r\n EstimationName: \"Abstract Cost\",\r\n EstimationId: 10\r\n },\r\n {\r\n EstimationName: \"Assumption Cost\",\r\n EstimationId: 11\r\n }\r\n // ,\r\n // {\r\n // EstimationName: \"WorkOrder Cost\",\r\n // EstimationId: 12\r\n // }\r\n ];\r\n }\r\n }\r\n\r\n\r\n\r\n ////////// Share Report ////////////////\r\n\r\n vm.shareKpost = function (row) {\r\n\r\n\r\n /////////////\r\n debugger;\r\n // vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n // alert(1);\r\n\r\n var tiers = buildFilterString();\r\n\r\n var strHeading = null;\r\n\r\n\r\n\r\n if (vm.estimationreport.selectedmethod.MethodName == \"Detailed\") {\r\n strHeading = \" Estimated Detailed \";\r\n } else {\r\n strHeading = \"Estimated Consolidated \";\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationName == \"Bill of Quantity\") {\r\n\r\n //strHeading = \"
\" + strHeading + \" \" + vm.estimationreport.selectedestimation.EstimationName + \"\" + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + \" \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \"\";\r\n\r\n if (vm.estimationreport.selectedmethod.MethodId == 2) {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" - \" + vm.estimationreport.Tier.TierName + \" wise \";\r\n }\r\n else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName;\r\n }\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId > 0 && vm.estimationreport.selectedestimation.EstimationId < 9) {\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n if (vm.estimationreport.selectedmethod.MethodId == 2) {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - \" + vm.estimationreport.Tier.TierName + \" wise \";\r\n } else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy');\r\n }\r\n\r\n } else {\r\n if (vm.estimationreport.selectedmethod.MethodId == 2) {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName + \" - \" + vm.estimationreport.Tier.TierName + \" wise \";\r\n }\r\n else {\r\n strHeading = strHeading + vm.estimationreport.selectedestimation.EstimationName + \" from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on \" + vm.estimationreport.selectedRate.RateName;\r\n }\r\n }\r\n }\r\n\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationName == \"Total Cost Estimation\") {\r\n var tmpstring = '';\r\n if (vm.estimationreport.selectedestreport.EstimationReportbased == \"Construction Activity\") {\r\n tmpstring = \" - Item of Construction Activity Wise -\";\r\n } else {\r\n strHeading = \"Consolidated \";\r\n }\r\n if (vm.estimationreport.selectedEstimationFrom.estimationform == \"Draft BOQ\") {\r\n strHeading = strHeading + \"Draft \" + vm.estimationreport.selectedestimation.EstimationName + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName;//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n tmpstring = \" - Location Wise -\";\r\n }\r\n\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId == \"12\") {\r\n strHeading = strHeading + \" \" + vm.estimationreport.selectedWorkOrderType.WorkOrderTypeName + \" Cost From \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" based on Work Order Rate \"\r\n }\r\n\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationName == \"Total Basic Cost Estimation\") {\r\n\r\n var tmpstring = '';\r\n\r\n\r\n if (vm.estimationreport.selectedestreport.EstimationReportbased == \"Construction Activity\") {\r\n tmpstring = \" - Item of Construction Activity wise -\";\r\n } else {\r\n\r\n tmpstring = \" - Location Wise -\";\r\n }\r\n\r\n strHeading = \"Estimated Detailed \" + vm.estimationreport.selectedestimation.EstimationName + \" of \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + tmpstring + \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n\r\n } else {\r\n // EstimationReportbasedList\r\n if (vm.estimationreport.selectedestreport.EstimationReportbased == \"Construction Activity\") {\r\n strHeading = strHeading + \" - Item of Construction Activity Wise -\" + \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";;\r\n } else {\r\n\r\n strHeading = strHeading + \" - Location Wise -\" + \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";;\r\n }\r\n }\r\n\r\n\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId == \"10\") {\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n if (vm.estimationreport.selectedmethod.MethodId === 2) {\r\n if (vm.estimationreport.CAType.ActivityTypeId == 5 || vm.estimationreport.CAType.ActivityTypeId == 6) {\r\n strHeading = \" Estimated Cost (Abstract) from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + vm.estimationreport.CAType.ActivityType + \" Wise based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" of Basic Rate - \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n else\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.selectedtoq.TypeofQuantityName + vm.estimationreport.CAType.ActivityType + \" Wise based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n else {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + \" based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n //strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + \" based on\" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n //strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + vm.estimationreport.CAType.ActivityType + \" Wise based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n } else {\r\n if (vm.estimationreport.selectedmethod.MethodId === 2) {\r\n if (vm.estimationreport.CAType.ActivityTypeId === 5 || vm.estimationreport.CAType.ActivityTypeId === 6) {\r\n strHeading = \" Estimated Cost (Abstract) from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + vm.estimationreport.CAType.ActivityType + \" Wise based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" of Basic Rate - \" + vm.estimationreport.selecteddesc.Description + \" Description \";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n } else if (vm.estimationreport.CAType.ActivityTypeId < 5) {\r\n strHeading = \" Estimated Cost (Abstract) from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" of \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" \" + vm.estimationreport.CAType.ActivityType + \" Wise based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" of Basic Rate - \" + vm.estimationreport.selecteddesc.Description + \" Description \";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n } else if (vm.estimationreport.selectedmethod.MethodId === 1) {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" - \" + vm.estimationreport.selectedtoq.TypeofQuantityName + \" Wise based on \" + \" \" + vm.estimationreport.selectedRate.RateName + \" - Basic Rate\";//+ \" \" + vm.estimationreport.selecteddesc.Description + \" Description \";\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (vm.estimationreport.selectedestimation.EstimationId == \"11\") {\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" based on Assumption Rate - \" + vm.estimationreport.selectedRate.RateName + \" \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy');\r\n } else {\r\n strHeading = \" Estimated Cost (Abstract) for all Item of Construction Activity from \" + vm.estimationreport.selectedEstimationFrom.estimationform + \" based on Assumption Rate - \" + vm.estimationreport.selectedRate.RateName;\r\n }\r\n }\r\n\r\n\r\n var strcondition = null;\r\n if (vm.estimationreport.selecteddesc.Description == \"Detailed\") {\r\n strcondition = \"Detailed\";\r\n } else {\r\n strcondition = \"Short\";\r\n }\r\n\r\n if (vm.estimationreport.selectedIOCA != undefined && vm.estimationreport.selectedIOCA.length > 0) {\r\n\r\n var arr = [];\r\n for (var i in vm.estimationreport.selectedIOCA) {\r\n arr.push(vm.estimationreport.selectedIOCA[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n\r\n var CostType;\r\n\r\n\r\n var Arr = [];\r\n for (var i in vm.estimationreport.selectedLocation) {\r\n Arr.push(vm.estimationreport.selectedLocation[i].LocationId);\r\n }\r\n vm.LocationId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.estimationreport.selectedProject[0].ProjectId,\r\n LocationId: vm.LocationId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.Type != undefined) ? vm.Type : \"\",\r\n SpecType: (vm.estimationreport.selectedSpecType != undefined) ? vm.estimationreport.selectedSpecType.Code : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n Tiers: tiers,\r\n GroupCompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n CompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n ProjectName: vm.estimationreport.selectedProject[0].ProjectName,\r\n EstimationFor: vm.estimationreport.selectedEstimationFrom.estimationform,\r\n Duration: \"\",\r\n Heading: strHeading,\r\n DescType: strcondition,\r\n ReportFor: vm.estimationreport.selectedmethod.MethodName,\r\n Createdby: loggedUser.UserId,\r\n ReportType: vm.estimationreport.selectedestreport.EstimationReportbased,\r\n CostType: vm.estimationreport.selectedestimation.EstimationId,\r\n p_BOQStatus: vm.estimationreport.selectedEstimationFrom.formid,\r\n p_TypeOfQuantity: vm.estimationreport.selectedtoq.TypeofQuantityId\r\n }\r\n\r\n //Check Rate Type\r\n if (vm.estimationreport.selectedestimation.EstimationId > 0 && vm.estimationreport.selectedestimation.EstimationId < 12) {\r\n obj.p_CostOn = vm.estimationreport.selectedRate.RateId\r\n if (vm.estimationreport.selectedRate.RateId == 2) {\r\n obj.p_CostDate = $filter('date')(vm.emp.DOB, 'yyyy-MM-dd')\r\n }\r\n }\r\n if (vm.estimationreport.selectedmethod.MethodId === 2)\r\n // if (vm.estimationreport.selectedmethod.MethodId === 2 && vm.estimationreport.selectedestimation.EstimationId != 10) \r\n {\r\n if (vm.estimationreport.selectedestimation.EstimationId != 10) { obj.TierType = vm.estimationreport.Tier.TierType }\r\n else if (vm.estimationreport.selectedestimation.EstimationId === 10 && vm.estimationreport.CAType.ActivityTypeId < 5) { obj.TierType = vm.estimationreport.Tier.TierType }\r\n }\r\n // Consolidated Report CA Type Based\r\n if (vm.estimationreport.selectedestimation.EstimationId === 10 && vm.estimationreport.selectedmethod.MethodId === 2) {\r\n obj.CATypeID = vm.estimationreport.CAType.ActivityTypeId\r\n }\r\n if (vm.estimationreport.selectedestimation.EstimationId === 12) {\r\n obj.ScopeId = vm.estimationreport.selectedWorkOrderType.WorkOrderTypeId;\r\n obj.ContractorId = vm.estimationreport.SelectedContractorName.ContractorId;\r\n obj.WorkOrderId = vm.estimationreport.SelectedWorkOrderNo.WorkOrderId;\r\n obj.WorkOrderNo = vm.estimationreport.SelectedWorkOrderNo.WorkOrderNo;\r\n obj.ScopeType = vm.estimationreport.selectedWorkOrderType.WorkOrderTypeName;\r\n obj.ContractorName = vm.estimationreport.SelectedContractorName.ContractorName;\r\n }\r\n\r\n\r\n console.log(vm.estimationreport.Tier);\r\n vm.ExportPdfData = null;\r\n //console.log(\"onbject to server\" + JSON.stringify(obj));\r\n if (vm.estimationreport.selectedestimation.EstimationId == 0) {\r\n BillOfQuntityService.ShowReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n\r\n }, function () { });\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n } else if (vm.estimationreport.selectedestimation.EstimationId > 0) {\r\n BillOfQuntityService.LabourCostEstimation(obj).then(function (res) {\r\n\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n\r\n }, function () { });\r\n\r\n } else {\r\n\r\n $rootScope.showToaster('error', 'incorrect data', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n ////////////\r\n\r\n }\r\n //endregin \r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectMgtandApp')\r\n .controller('RequirementReportCtrl', RequirementReportCtrl);\r\n\r\n /** @ngInject */\r\n function RequirementReportCtrl($rootScope, lodash, dialogs,$uibModal, $http, RequirementReportService, CompanyService, projectCreationService, ProjectIocaService,\r\n LocationSetupService, IocaService, RateofInputService, TierSetupService, ItemToItemService, planningReportService, AuthenticationService, $window, $filter) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.tabID = 1;\r\n vm.tabName = \"Labour \";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n $rootScope.isLogin = false;\r\n vm.IocaList = [];\r\n vm.ProjectIOCATiersList = [];\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n // Methods\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n // vm.getCountryByProject = getCountryByProject;\r\n vm.GetReportFor = GetReportFor;\r\n vm.getEmpList = getEmpList;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n vm.getContList = getContList;\r\n // vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.GetConsumableTypeByCatId = GetConsumableTypeByCatId;\r\n vm.LoadConsumableCategory = LoadConsumableCategory;\r\n vm.getIOMHByType = getIOMHByType;\r\n vm.getMachTypeByMachSubcategory = getMachTypeByMachSubcategory;\r\n vm.getMachSubCategoryByMachCategory = getMachSubCategoryByMachCategory;\r\n vm.getCategoryofMachinery = getCategoryofMachinery;\r\n vm.getContCatgy = getContCatgy;\r\n // vm.getMachineryCountry = getMachineryCountry;\r\n vm.getMachineryLob = getMachineryLob;\r\n vm.getIOMByMatType = getIOMByMatType;\r\n vm.getMatTypeBySubCategory = getMatTypeBySubCategory;\r\n vm.getMatSubcategoryByCategory = getMatSubcategoryByCategory;\r\n vm.getCategoryofMaterial = getCategoryofMaterial;\r\n // vm.LoadMaterialCountry = LoadMaterialCountry;\r\n vm.LoadMaterialLOB = LoadMaterialLOB;\r\n vm.getLabourTypeByLabourCategory = getLabourTypeByLabourCategory;\r\n vm.LoadLabourCategory = LoadLabourCategory;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.cancel = cancel;\r\n vm.getTypeofItem = getTypeofItem;\r\n vm.showRequirementReport = showRequirementReport;\r\n vm.getReportMethod = getReportMethod;\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeList = [];\r\n vm.LocationMaster = [];\r\n vm.LocationMaster = [];\r\n vm.plan = {};\r\n Init();\r\n\r\n\r\n\r\n\r\n vm.reportMethodList = [{ ReportMethod: 'Detailed', Id: 1 }, { ReportMethod: 'Consolidated', Id: 2 }\r\n ];\r\n // vm.WorkList = [{ WorkName: 'Total Quantity', Id: 1 }\r\n // // , { WorkName: 'Balanced Quantity', Id: 2 }, { WorkName: 'Completed Quantity', Id: 3 }\r\n // ];\r\n vm.DescriptionList = [{ Description: 'Short' }, { Description: 'Detailed' }];\r\n vm.RateList = [{ RateName: \"Initial Rate\", RateId: 0 }, { RateName: \"CurrentRate\", RateId: 1 }, { RateName: \"Rate On\", RateId: 2 }];\r\n vm.ReportForList = [{ ReportFor: 'From Bill of Quantity', ReportForId: 1 }, { ReportFor: 'From Planning', ReportForId: 2 },]\r\n function getReportMethod(formid) {\r\n vm.basedOnRequirementList = [];\r\n if (formid != undefined) {\r\n vm.basedOnRequirementList = [{ RequirementBasedName: 'Construction Activity Wise', Id: 1 }, { RequirementBasedName: 'Location Wise', Id: 2 }];\r\n vm.selectedRequirementBased = null;\r\n vm.selectedWork = null;\r\n if (formid == 1) {\r\n vm.WorkList = [{\r\n WorkName: \"Total Quantity\",\r\n WorkNameId: 1\r\n }];\r\n }\r\n else {\r\n vm.WorkList = [\r\n { WorkName: \"Total Quantity\", WorkNameId: 1 },\r\n { WorkName: \"Completed Quantity\", WorkNameId: 2 },\r\n { WorkName: \"Balanced Quantity\", WorkNameId: 3 }\r\n ];\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Daily ', Code: 'D', PeriodTypeNameId: 1 },\r\n { PeriodTypeName: 'Weekly ', Code: 'W', PeriodTypeNameId: 2 },\r\n { PeriodTypeName: 'Monthly ', Code: 'M', PeriodTypeNameId: 3 }\r\n // ,{ PeriodTypeName: 'Quarterly Report', Code: 'Q' }, { PeriodTypeName: 'Periodic Report', Code: 'P' }\r\n ];\r\n function Init() {\r\n //CompanyService.getActiveCompany().then(function (res) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n clearSelection();\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n \r\n }\r\n vm.selectedRequirmentFor=null;\r\n }\r\n\r\n\r\n vm.GetPlanningReportFor = function (projectId, ReportForId) {\r\n debugger;\r\n if (vm.selectedRequirmentFor.ReportForId == 1) {\r\n vm.RequirementList = [{ RequirementName: 'Draft Boq', Id: 1 }, { RequirementName: 'Finalized Boq', Id: 4 }\r\n // , { RequirementName: 'Draft Planning', Id: 3 }, { RequirementName: 'Finalized Planning', Id: 2 }\r\n ];\r\n }\r\n else if (vm.selectedRequirmentFor.ReportForId == 2) {\r\n vm.RequirementList = [{ RequirementName: 'Finalized Boq', Id: 4 }\r\n ];\r\n }\r\n\r\n if (ReportForId === 2) {\r\n GetReportFor(projectId)\r\n }\r\n\r\n }\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n }\r\n\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n debugger;\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetReportFor\r\n function getContCatgy(callback) {\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function (res) {\r\n if (res.status === 200) {\r\n\r\n vm.ContractorCateList = res.data;\r\n console.log(\"res.data\" + JSON.stringify(res.data));\r\n if (callback);\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n function getFocByPrjId(prjId) {\r\n LoadLabourCategory();\r\n clearfoc();\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: prjId,\r\n Status: vm.selectedRequirement.Id\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n //obj.Tiers = buildFilterString();\r\n }\r\n RequirementReportService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n if (vm.focList.length < 0) {\r\n dialogs.notify('Warning', '! There is no field of construction available + vm.selectedProject.ProjectName', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n\r\n }\r\n\r\n // function getCountryByProject(ProjectId) {\r\n // clearCountry();\r\n // if (ProjectId) {\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // }\r\n // ItemToItemService.getBoQCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // // getFocByPrjId(ProjectId);\r\n // if (!vm.CountryList.length > 0) {\r\n // dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n // }\r\n\r\n // }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n clearCategory();\r\n if (CountryId && ProjectId && focId) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n //obj.Tiers = buildFilterString();\r\n }\r\n RequirementReportService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Foc', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n }\r\n\r\n // function getSubcategoryByCategory(ProjectId, CategoryId) {\r\n // clearSubcategory();\r\n // if (ProjectId && CategoryId) {\r\n // var filter = {\r\n // FocId: vm.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.selectedProject.CountryId,\r\n // CategoryId: CategoryId\r\n // };\r\n\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // //obj.Tiers = buildFilterString();\r\n // }\r\n // RequirementReportService.getBoQSubCategory(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.SubCategoryList = res.data;\r\n // if (!vm.SubCategoryList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Sub Category available selected Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Subcategory of CA\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Subcategory of CA\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n function getSubcategoryByCategory(projectId, CountryId, focId) {\r\n\r\n clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: focId,\r\n CountryId: CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: projectId,\r\n Status: vm.selectedRequirement.Id,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = buildFilterString();\r\n }\r\n RequirementReportService.getBoQSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n // function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n // clearType();\r\n // if (ProjectId && CategoryId && SubCategoryId) {\r\n // var filter = {\r\n // FocId: vm.selectedfoc.FieldofConstructionId,\r\n // CountryId: vm.selectedProject.CountryId,\r\n // CategoryId: CategoryId,\r\n // SubCategoryId: SubCategoryId\r\n // };\r\n\r\n // var obj = {\r\n // LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n // ProjectId: ProjectId,\r\n // Status: vm.selectedRequirement.Id,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = JSON.stringify(vm.Arr)\r\n // //obj.Tiers = buildFilterString();\r\n // }\r\n // RequirementReportService.getBoQType(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TypeList = res.data;\r\n // if (!vm.TypeList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Type available selected Sub Category', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Type of CA\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Type of CA\");\r\n // });\r\n\r\n // } else {\r\n\r\n // }\r\n\r\n // }\r\n function getTypeofCABySubCategory() {\r\n\r\n clearType();\r\n if (\r\n vm.selectedCategory != undefined && vm.selectedCategory.length > 0 &&\r\n vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n // obj.Tiers = buildFilterString();\r\n }\r\n RequirementReportService.getBoQType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getTypeofItem() {\r\n vm.selectedCASpecType = null;\r\n vm.SpecTypeList = [{ SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n }\r\n\r\n function loadIocaList() {\r\n debugger;\r\n clearioca();\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n // CategoryId: vm.selectedCategory.CategoryId,\r\n CategoryId: vm.Category,\r\n // SubCategoryId: vm.selectedSubCategory.SubCategoryId,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n SpecType: vm.selectedCASpecType.Code\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedRequirement.Id,\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n //obj.Tiers = buildFilterString();\r\n }\r\n RequirementReportService.getBoQIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n dialogs.notify('Warning', '! There is no IOCA available selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n\r\n }\r\n function getLocationByProject(Id) {\r\n vm.RequirementList = [];\r\n vm.ProjectId = Id;\r\n if (Id != undefined) {\r\n clearProject();\r\n\r\n var obj = {\r\n ProjectId: Id\r\n //vm.selectedProject.ProjectId\r\n }\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n LoadLabourCategory();\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Location\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Location\");\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n // Labour\r\n function LoadLabourCategory() {\r\n clearLabour();\r\n vm.tabID = 1;\r\n vm.tabName = \"Labour \";\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getLabourCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.labourCategoryList = res.data;\r\n if (vm.labourCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Labour Category Name available for ' + vm.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function getLabourTypeByLabourCategory(LabrCategoryId) {\r\n vm.selectedLabourType = null;\r\n vm.labourTypeList = [];\r\n var Arr = {\r\n \"LabrCategoryId\": vm.selectedLabrCategory.LabrCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getLabourType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.labourTypeList = res.data;\r\n if (vm.labourTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No TypeOfCA Name available for ' + vm.selectedLabourCategory.LabrCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", { animation: true, size: 'sm' });\r\n }\r\n }, function (err) {\r\n if (err.status === 404) {\r\n dialogs.notify('error', 'No Data Found', { animation: true, size: 'sm' });\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Bill Of Quantity\", { animation: true, size: 'sm' });\r\n }\r\n });\r\n }\r\n\r\n //// Materias\r\n\r\n function LoadMaterialLOB() {\r\n clearMaterial();\r\n vm.tabID = 2;\r\n vm.tabName = \"Material \";\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'LOB',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMaterialLOB(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMaterialList = res.data;\r\n vm.isLoading = false;\r\n if (vm.LobMaterialList.length < 1) {\r\n dialogs.notify('Warning', 'No LoB available for ' + vm.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n // //// Load All Country\r\n // function LoadMaterialCountry() {\r\n // // vm.selectedMatCountry = null;\r\n // // vm.CountryList = [];\r\n // vm.selectedMatCategory = null;\r\n // vm.materialcategoryList = [];\r\n // vm.selectedMatSubCategory = null;\r\n // vm.MaterialSubCategoryList = [];\r\n // vm.selectedMaterialType = null;\r\n // vm.MaterialTypeList = [];\r\n // vm.selectedIOM = null;\r\n // vm.IOMList = [];\r\n // var obj = {\r\n // ProjectId: vm.selectedProject.ProjectId,\r\n // TableName: 'Country',\r\n // ActionBy: $rootScope.userId\r\n // }\r\n // RateofInputService.getMaterialCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n //// Load All Material Category By Lob \r\n\r\n function getCategoryofMaterial() {\r\n vm.selectedMatCategory = null;\r\n vm.materialcategoryList = [];\r\n vm.selectedMatSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.selectedMaterialType = null;\r\n vm.selectedSpecType = null;\r\n vm.MaterialTypeList = [];\r\n vm.selectedIOM = null;\r\n vm.IOMList = [];\r\n var Arr = {\r\n \"LOB_MatId\": vm.selectedLOBMaterial.LOB_MatId,\r\n \"CountryId\": vm.selectedProject.CountryId,\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMaterialCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.materialcategoryList = res.data;\r\n // console.log(JSON.stringify(vm.CategoryofMaterialList));\r\n if (res.data.length > 0) {\r\n vm.selectCategory = false;\r\n } else {\r\n vm.selectCategory = true;\r\n vm.selectSubCategory = true;\r\n vm.selectType = true;\r\n\r\n dialogs.notify('warning', \"No Data In Category\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Material subcategory\");\r\n }\r\n });\r\n\r\n }\r\n //// Load All Material SubCategory By Lob \r\n\r\n function getMatSubcategoryByCategory() {\r\n vm.selectedMatSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.selectedSpecType = null;\r\n vm.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.selectedIOM = null;\r\n vm.IOMList = [];\r\n var Arr = {\r\n \"MaterialCategoryId\": vm.selectedMatCategory.MaterialCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'SubCategory',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMaterialSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Materialsubcategory\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Materialsubcategory\");\r\n });\r\n }\r\n\r\n //// Load All Type of Material By Lob \r\n function getMatTypeBySubCategory() {\r\n vm.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.selectedSpecType = null;\r\n vm.selectedIOM = null;\r\n vm.IOMList = [];\r\n var Arr = {\r\n \"MaterialSubCategoryId\": vm.selectedMatSubCategory.MaterialSubCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMaterialType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MaterialTypeList = res.data;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"MaterialType\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"MaterialType\");\r\n });\r\n }\r\n\r\n function getIOMByMatType() {\r\n vm.selectedIOM = null;\r\n vm.IOMList = [];\r\n var Arr = {\r\n \"MaterialTypeId\": vm.selectedMaterialType.MaterialTypeId\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'IOM',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMaterialIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n\r\n\r\n //// Load All Line Of Business \r\n\r\n function getMachineryLob() {\r\n clearMachinery();\r\n vm.tabID = 3;\r\n vm.tabName = \"Machinery \";\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'LOB',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMachineryLOB(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LobMachineryList = res.data;\r\n vm.isLoading = false;\r\n LoadMachineryCountry();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \" Lob Machinery\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \" Lob Machinery\");\r\n });\r\n }\r\n\r\n //// Load All Country\r\n\r\n // function getMachineryCountry() {\r\n // // vm.selectedMachCountry = null;\r\n // // vm.MachCountryList = [];\r\n // vm.selectedMachCategory = null;\r\n // vm.machCategoryList = [];\r\n // vm.selectedMachSubCategory = null;\r\n // vm.machSubCategoryList = [];\r\n // vm.selectedMachineryType = null;\r\n // vm.MachineryTypeList = [];\r\n // vm.selectedIomh = null;\r\n // vm.IomhList = [];\r\n // var obj = {\r\n // ProjectId: vm.selectedProject.ProjectId,\r\n // TableName: 'Country',\r\n // ActionBy: $rootScope.userId\r\n // }\r\n // RateofInputService.getMachineryCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.MachCountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n //// Load All Category By LOB\r\n\r\n function getCategoryofMachinery() {\r\n vm.selectedMachCategory = null;\r\n vm.machCategoryList = [];\r\n vm.selectedMachSubCategory = null;\r\n vm.machSubCategoryList = [];\r\n vm.selectedMachineryType = null;\r\n vm.selectedMachSpecType = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedIomh = null;\r\n vm.IomhList = [];\r\n var Arr = {\r\n \"LOB_MachId\": vm.selectedLOBMachinery.LOB_MachId,\r\n \"CountryId\": vm.selectedProject.CountryId,\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMachineryCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.machCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Machinery Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Machinery Category\");\r\n });\r\n }\r\n\r\n function getMachSubCategoryByMachCategory() {\r\n vm.selectedMachSubCategory = null;\r\n vm.machSubCategoryList = [];\r\n vm.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedIomh = null;\r\n vm.selectedMachSpecType = null;\r\n vm.IomhList = [];\r\n var Arr = {\r\n \"COM_Id\": vm.selectedMachCategory.COM_Id,\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'SubCategory',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMachinerySubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.machSubCategoryList = res.data;\r\n if (vm.machSubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery SubCategory available for ' + vm.selectedMachCategory.CategoryofMachineryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.selectsubCategory = false;\r\n vm.TypeList = false;\r\n vm.form = false;\r\n vm.selectedMachineryType = \"\";\r\n } else {\r\n vm.selectsubCategory = true;\r\n }\r\n vm.isLoading = false;\r\n\r\n }\r\n });\r\n }\r\n\r\n function getMachTypeByMachSubcategory() {\r\n vm.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedIomh = null;\r\n vm.selectedMachSpecType = null;\r\n vm.IomhList = [];\r\n var Arr = {\r\n \"MachSubCategoryId\": vm.selectedMachSubCategory.MachSubCategoryId,\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMachineryType(obj).then(function (res) {\r\n vm.selectedTypeOfMachinery = undefined;\r\n vm.selectedTypeOfMachinery = \"\";\r\n if (res.status === 200) {\r\n vm.MachineryTypeList = res.data;\r\n if (vm.MachineryTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Machinery Type available for ' + vm.selectedMachSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.TypeList = false;\r\n vm.form = false;\r\n } else {\r\n vm.TypeList = true;\r\n vm.form = true;\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function getIOMHByType() {\r\n vm.selectedIomh = null;\r\n vm.IomhList = [];\r\n var Arr = {\r\n \"MachTypeId\": vm.selectedMachineryType.MachTypeId,\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'IOMH',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getMachineryIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IomhList = res.data;\r\n for (var i in vm.IomhList) {\r\n vm.IomhList[i].UOMList = JSON.parse(vm.IomhList[i].UOMList);\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n // function getUOM() {\r\n // vm.UOMList = vm.machinery.selectedMachineryItem.UOMList.UomList;\r\n // }\r\n\r\n\r\n //Consumable Code Start\r\n //Get All Active Consumable List\r\n function LoadConsumableCategory() {\r\n clearConsumable();\r\n vm.tabID = 4;\r\n vm.tabName = \"Consumable \";\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Category',\r\n ActionBy: $rootScope.userId\r\n }\r\n RateofInputService.getConsumableCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableCategoryList = res.data;\r\n if (vm.ConsumableCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Consumable Category available for ' + vm.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n //Get All Active Consumable Type List\r\n\r\n function GetConsumableTypeByCatId() {\r\n vm.selectedConsumableType = null;\r\n vm.ConsumableTypeList = [];\r\n var Arr = {\r\n \"ConsumableCategoryId\": vm.selectedConsumableCategory.ConsumableCategoryId\r\n }\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n TableName: 'Type',\r\n Inputs: JSON.stringify(Arr),\r\n ActionBy: $rootScope.userId\r\n }\r\n\r\n RateofInputService.getConsumableType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ConsumableTypeList = res.data;\r\n if (vm.ConsumableTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Consumable Type available for ' + vm.selectedConsumableCategory.CategoryOfWork, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection();\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n\r\n lodash.forEach(vm.strArr.Tiers, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n TierType: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n\r\n }\r\n\r\n\r\n //Filter Tiers\r\n function filterTiers(IocaTier) {\r\n if (IocaTier.selectedIocatireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n\r\n //getCountryByTiers(vm.Arr);\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n\r\n function FilterTireCopyTo(IocaTier) {\r\n if (IocaTier.selectedIocatireValue) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': IocaTier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n\r\n\r\n function buildFilterString() {\r\n debugger\r\n var IocaTiers = {\r\n filter: {}\r\n };\r\n lodash.forEach(vm.ProjectIOCATiersList, function (IocaTier) {\r\n if (IocaTier.selectedIocatireValue)\r\n IocaTiers.filter[IocaTier.TierType] = IocaTier.selectedIocatireValue.TierId;\r\n });\r\n return JSON.stringify(IocaTiers);\r\n }\r\n\r\n //Requirement Report Btn click Event\r\n\r\n function showRequirementReport() {\r\n\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var IocaTier = buildFilterString();\r\n //Header\r\n var strHeading = null;\r\n if (vm.selectedRequirmentFor.ReportForId === 2) {\r\n if (vm.selectedReportFor.DesignationId === 0) {\r\n if (vm.selectedPeriod.PeriodTypeNameId > 1) {\r\n strHeading = \"
\" + vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (vm.selectedPeriod.PeriodTypeNameId === 1) {\r\n strHeading = \"
\" +vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n } else {\r\n if (vm.selectedPeriod.PeriodTypeNameId > 1) {\r\n strHeading = \"
\" + vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (vm.selectedPeriod.PeriodTypeNameId === 1) {\r\n strHeading = \"
\" + vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n }\r\n\r\n } else {\r\n strHeading = vm.selectedReportMethod.ReportMethod + \" \" + vm.tabName + \" Requirement From \" + vm.selectedRequirement.RequirementName + \" of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName + \" - \" + vm.estimationreport.selecteddesc.Description + \" Description\";\r\n }\r\n\r\n //+ vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.TypeRateName.TypeRateName;\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n var ReqType = null;\r\n ReqType = vm.tabID;\r\n\r\n if (ReqType == 1) {\r\n var requmtObj =\r\n {\r\n LabourCategory: (vm.selectedLabrCategory != undefined) ? vm.selectedLabrCategory.LabrCategoryId : \"\",\r\n LabourType: (vm.selectedLabourType != undefined) ? vm.selectedLabourType.LabrTypeId : \"\",\r\n }\r\n }\r\n\r\n if (ReqType == 2) {\r\n var requmtObj =\r\n {\r\n MaterialCategoryId: (vm.selectedMatCategory != undefined) ? vm.selectedMatCategory.MaterialCategoryId : \"\",\r\n MaterialSubCategoryId: (vm.selectedMatSubCategory != undefined) ? vm.selectedMatSubCategory.MaterialSubCategoryId : \"\",\r\n MaterialTypeId: (vm.selectedMaterialType != undefined) ? vm.selectedMaterialType.MaterialTypeId : \"\",\r\n Id: (vm.selectedIOM != undefined) ? vm.selectedIOM.Id : \"\",\r\n }\r\n }\r\n\r\n if (ReqType == 3) {\r\n var requmtObj =\r\n {\r\n COM_Id: (vm.selectedMachCategory != undefined) ? vm.selectedMachCategory.COM_Id : \"\",\r\n MachSubCategoryId: (vm.selectedMachSubCategory != undefined) ? vm.selectedMachSubCategory.MachSubCategoryId : \"\",\r\n MachTypeId: (vm.selectedMachineryType != undefined) ? vm.selectedMachineryType.MachTypeId : \"\",\r\n Id: (vm.selectedIomh != undefined) ? vm.selectedIomh.Id : \"\",\r\n }\r\n }\r\n\r\n if (ReqType == 4) {\r\n var requmtObj =\r\n {\r\n ConsumableCategoryId: (vm.selectedConsumableCategory != undefined) ? vm.selectedConsumableCategory.ConsumableCategoryId : \"\",\r\n ConsumeTypeId: (vm.selectedConsumableType != undefined) ? vm.selectedConsumableType.ConsumeTypeId : \"\",\r\n }\r\n }\r\n\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // Tiers: \"{\\\"filter\\\":{}}\",\r\n Tiers: IocaTier,\r\n //Tiers: JSON.stringify(vm.Arr),\r\n LocationId: vm.selectedLocation.LocationId,\r\n CategoryIds: vm.selectedCategory.CategoryId,\r\n SubCategoryIds: vm.selectedSubCategory.SubCategoryId,\r\n TypeIds: (vm.selectedType.TypeId != undefined) ? vm.selectedType.TypeId : \"\",\r\n ProjectIocaId: (vm.selectedIoca != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n CostType: vm.tabID,\r\n RequirementFor: vm.selectedRequirmentFor.ReportForId,\r\n // DesignationId: (vm.selectedReportFor != undefined) ? vm.selectedReportFor.DesignationId : 0,\r\n // EmployeeId: (vm.selectedEmpName != undefined) ? vm.selectedEmpName.EmployeeId : 0,\r\n FromDate: vm.plan.From,\r\n ToDate: vm.plan.To,\r\n UserName: loggedUser.FirstName,\r\n ReportFor: vm.selectedReportMethod.Id,\r\n Heading: strHeading,\r\n WitchWise: vm.selectedRequirementBased.Id,\r\n CostTypeFilter: JSON.stringify(requmtObj),\r\n TypeofDescription: vm.estimationreport.selecteddesc.Description,\r\n p_BOQStatus: vm.selectedRequirement.Id,\r\n p_TypeOfQuantity: vm.selectedWork.WorkNameId,\r\n }\r\n if (vm.selectedReportMethod.Id === 2) {\r\n obj.TierType = vm.selectedTierName.TierType\r\n }\r\n\r\n if (vm.selectedRequirmentFor.ReportForId === 2) {\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmployeeId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n else {\r\n obj.EmployeeId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n }\r\n\r\n\r\n console.log(obj);\r\n RequirementReportService.ShowRequirementReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n // url = window.URL.createObjectURL(blob);\r\n // a.href = url;\r\n // a.download = 'report.pdf';\r\n // a.click();\r\n // window.URL.revokeObjectURL(url);\r\n // $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n dialogs.error('No Data Found', \"Selected \" + vm.tabName, { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n function clearSelection() {\r\n clearfoc();\r\n clearTierSelection();\r\n clearMaterial();\r\n clearMachinery();\r\n clearLabour();\r\n clearConsumable();\r\n vm.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.selectedRequirement = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedReportMethod = null;\r\n vm.selectedTierName = null;\r\n vm.ReportType = [];\r\n vm.selectedWork = null;\r\n vm.WorkList = [];\r\n vm.selectedLocation = null;\r\n\r\n }\r\n function clearProject() {\r\n\r\n vm.selectedRequirement = null;\r\n vm.selectedRequirementBased = null;\r\n }\r\n\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n //clearTierSelection();\r\n }\r\n\r\n function clearType() {\r\n vm.selectedType = null;\r\n vm.selectedCASpecType = null;\r\n vm.TypeList = [];\r\n clearioca();\r\n }\r\n\r\n function clearSubcategory() {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n clearType();\r\n\r\n }\r\n\r\n function clearCategory() {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearCountry() {\r\n // vm.selectedCountry = null;\r\n // vm.CountryList = [];\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearfoc() {\r\n vm.selectedfoc = null;\r\n vm.focList = null;\r\n vm.selectedLocation = null;\r\n clearCountry();\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n clearMaterial();\r\n clearMachinery();\r\n clearLabour();\r\n clearConsumable();\r\n\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function (IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.Values = [];\r\n })\r\n }\r\n\r\n function clearMaterial() {\r\n vm.selectedLOBMaterial = null;\r\n vm.LobMaterialList = [];\r\n // vm.selectedMatCountry = null;\r\n // vm.CountryList = [];\r\n vm.selectedSpecType = null;\r\n\r\n vm.selectedMatCategory = null;\r\n vm.materialcategoryList = [];\r\n vm.selectedMatSubCategory = null;\r\n vm.MaterialSubCategoryList = [];\r\n vm.selectedMaterialType = null;\r\n vm.MaterialTypeList = [];\r\n vm.selectedIOM = null;\r\n vm.IOMList = [];\r\n }\r\n\r\n function clearMachinery() {\r\n vm.selectedLOBMachinery = null;\r\n vm.LobMachineryList = [];\r\n // vm.selectedMachCountry = null;\r\n // vm.MachCountryList = [];\r\n vm.selectedMachSpecType = null;\r\n\r\n vm.selectedMachCategory = null;\r\n vm.machCategoryList = [];\r\n vm.selectedMachSubCategory = null;\r\n vm.machSubCategoryList = [];\r\n vm.selectedMachineryType = null;\r\n vm.MachineryTypeList = [];\r\n vm.selectedIomh = null;\r\n vm.IomhList = [];\r\n }\r\n\r\n function clearLabour() {\r\n vm.selectedLabrCategory = null;\r\n vm.labourCategoryList = [];\r\n vm.selectedLabourType = null;\r\n vm.labourTypeList = [];\r\n }\r\n\r\n function clearConsumable() {\r\n vm.selectedConsumableCategory = null;\r\n vm.ConsumableCategoryList = [];\r\n vm.selectedConsumableType = null;\r\n vm.ConsumableTypeList = [];\r\n }\r\n\r\n function cancel() {\r\n clearfoc();\r\n clearioca();\r\n clearTierSelection();\r\n clearMaterial();\r\n clearMachinery();\r\n clearLabour();\r\n clearConsumable();\r\n resetForm();\r\n vm.selectedCompany = null;\r\n vm.CompanyList = [];\r\n vm.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.selectedRequirement = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedReportMethod = null;\r\n vm.selectedTierName = null;\r\n vm.ReportType = [];\r\n vm.selectedWork = null;\r\n vm.WorkList = [];\r\n vm.estimationreport.selecteddesc = null;\r\n vm.selectedLocation = null;\r\n Init();\r\n\r\n }\r\n\r\n function resetForm() {\r\n vm.requirementReportForm.$setUntouched();\r\n }\r\n\r\n ///// Share Report ///////\r\n \r\n vm.shareKpost = function(){\r\n \r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var IocaTier = buildFilterString();\r\n //Header\r\n var strHeading = null;\r\n if (vm.selectedRequirmentFor.ReportForId === 2) {\r\n if (vm.selectedReportFor.DesignationId === 0) {\r\n if (vm.selectedPeriod.PeriodTypeNameId > 1) {\r\n strHeading = \"
\" + vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (vm.selectedPeriod.PeriodTypeNameId === 1) {\r\n strHeading = \"
\" +vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedContName.ContractorName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n } else {\r\n if (vm.selectedPeriod.PeriodTypeNameId > 1) {\r\n strHeading = \"
\" + vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (vm.selectedPeriod.PeriodTypeNameId === 1) {\r\n strHeading = \"
\" + vm.selectedReportMethod.ReportMethod + \" \" + vm.selectedPeriod.PeriodTypeName + \" \" + vm.tabName + \" Requirement For \" + vm.selectedReportFor.DesignationName + \" - \" + \" \" + vm.selectedEmpName.EmployeeName + \"\" + \" - \" + \" from Finalized Planning of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName\r\n + \"
\" + \" For :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n }\r\n\r\n } else {\r\n strHeading = vm.selectedReportMethod.ReportMethod + \" \" + vm.tabName + \" Requirement From \" + vm.selectedRequirement.RequirementName + \" of \" + vm.selectedWork.WorkName + \" - \" + vm.selectedRequirementBased.RequirementBasedName + \" - \" + vm.estimationreport.selecteddesc.Description + \" Description\";\r\n }\r\n\r\n //+ vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.TypeRateName.TypeRateName;\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n var ReqType = null;\r\n ReqType = vm.tabID;\r\n\r\n if (ReqType == 1) {\r\n var requmtObj =\r\n {\r\n LabourCategory: (vm.selectedLabrCategory != undefined) ? vm.selectedLabrCategory.LabrCategoryId : \"\",\r\n LabourType: (vm.selectedLabourType != undefined) ? vm.selectedLabourType.LabrTypeId : \"\",\r\n }\r\n }\r\n\r\n if (ReqType == 2) {\r\n var requmtObj =\r\n {\r\n MaterialCategoryId: (vm.selectedMatCategory != undefined) ? vm.selectedMatCategory.MaterialCategoryId : \"\",\r\n MaterialSubCategoryId: (vm.selectedMatSubCategory != undefined) ? vm.selectedMatSubCategory.MaterialSubCategoryId : \"\",\r\n MaterialTypeId: (vm.selectedMaterialType != undefined) ? vm.selectedMaterialType.MaterialTypeId : \"\",\r\n Id: (vm.selectedIOM != undefined) ? vm.selectedIOM.Id : \"\",\r\n }\r\n }\r\n\r\n if (ReqType == 3) {\r\n var requmtObj =\r\n {\r\n COM_Id: (vm.selectedMachCategory != undefined) ? vm.selectedMachCategory.COM_Id : \"\",\r\n MachSubCategoryId: (vm.selectedMachSubCategory != undefined) ? vm.selectedMachSubCategory.MachSubCategoryId : \"\",\r\n MachTypeId: (vm.selectedMachineryType != undefined) ? vm.selectedMachineryType.MachTypeId : \"\",\r\n Id: (vm.selectedIomh != undefined) ? vm.selectedIomh.Id : \"\",\r\n }\r\n }\r\n\r\n if (ReqType == 4) {\r\n var requmtObj =\r\n {\r\n ConsumableCategoryId: (vm.selectedConsumableCategory != undefined) ? vm.selectedConsumableCategory.ConsumableCategoryId : \"\",\r\n ConsumeTypeId: (vm.selectedConsumableType != undefined) ? vm.selectedConsumableType.ConsumeTypeId : \"\",\r\n }\r\n }\r\n\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.selectedProject.ProjectId,\r\n // Tiers: \"{\\\"filter\\\":{}}\",\r\n Tiers: IocaTier,\r\n //Tiers: JSON.stringify(vm.Arr),\r\n LocationId: vm.selectedLocation.LocationId,\r\n CategoryIds: vm.selectedCategory.CategoryId,\r\n SubCategoryIds: vm.selectedSubCategory.SubCategoryId,\r\n TypeIds: (vm.selectedType.TypeId != undefined) ? vm.selectedType.TypeId : \"\",\r\n ProjectIocaId: (vm.selectedIoca != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n CostType: vm.tabID,\r\n RequirementFor: vm.selectedRequirmentFor.ReportForId,\r\n // DesignationId: (vm.selectedReportFor != undefined) ? vm.selectedReportFor.DesignationId : 0,\r\n // EmployeeId: (vm.selectedEmpName != undefined) ? vm.selectedEmpName.EmployeeId : 0,\r\n FromDate: vm.plan.From,\r\n ToDate: vm.plan.To,\r\n UserName: loggedUser.FirstName,\r\n ReportFor: vm.selectedReportMethod.Id,\r\n Heading: strHeading,\r\n WitchWise: vm.selectedRequirementBased.Id,\r\n CostTypeFilter: JSON.stringify(requmtObj),\r\n TypeofDescription: vm.estimationreport.selecteddesc.Description,\r\n p_BOQStatus: vm.selectedRequirement.Id,\r\n p_TypeOfQuantity: vm.selectedWork.WorkNameId,\r\n }\r\n if (vm.selectedReportMethod.Id === 2) {\r\n obj.TierType = vm.selectedTierName.TierType\r\n }\r\n\r\n if (vm.selectedRequirmentFor.ReportForId === 2) {\r\n if (vm.selectedReportFor.DesignationId > 0) {\r\n obj.EmployeeId = (vm.selectedEmpName.EmployeeId != undefined) ? vm.selectedEmpName.EmployeeId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n else {\r\n obj.EmployeeId = (vm.selectedContName.ContractorId != undefined) ? vm.selectedContName.ContractorId : \"\",\r\n obj.DesignationId = (vm.selectedReportFor.DesignationId != undefined) ? vm.selectedReportFor.DesignationId : \"\"\r\n }\r\n }\r\n\r\n\r\n console.log(obj);\r\n RequirementReportService.ShowRequirementReport(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data; \r\n vm.isLoading = false; \r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload:true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n \r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n \r\n }, function () { });\r\n }\r\n else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function (err) {\r\n dialogs.error('No Data Found', \"Selected \" + vm.tabName, { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n\r\n\r\n}\r\n \r\n\r\n\r\n\r\n//#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Add Weekly Date\r\n\r\n vm.ClearDate = function () {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = new Date()\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n else if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n else {\r\n vm.plan.From = null;\r\n vm.plan.To = null;\r\n }\r\n }\r\n vm.getDate = function () {\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = angular.copy(vm.plan.From);\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n }\r\n }\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n // function GetQuarterly() { \r\n // if (vm.selectedPeriod.Code == 'Q') {\r\n // vm.plan.To = angular.copy(vm.plan.From);\r\n // var numberOfMonthToAdd = 3;\r\n // vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n // vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n // }\r\n // else if (vm.selectedPeriod.Code == 'P') {\r\n // vm.plan.To = \"\"\r\n // }\r\n // }\r\n\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n\r\n if (vm.selectedPeriod.Code == 'M') {\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n\r\n }\r\n else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n //Daily Report \r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectMgtandApp')\r\n .controller('RateAnalysisCtrl', RateAnalysisCtrl);\r\n\r\n /** @ngInject */\r\n function RateAnalysisCtrl($scope, $rootScope, lodash, dialogs, $http, $uibModal, CategoryofCAService, RateAnalysisService,\r\n ProjectIocaService, AuthenticationService, CompanyService, projectCreationService, estimationReportaService, $window,\r\n FieldofConstructionService, SubCategoryofCAService, TypeOfCAService, IocaService, $filter) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.TypeOfAttributeList = [];\r\n vm.RateList = [];\r\n vm.TypeRate = [];\r\n vm.RateAnalysisList = [];\r\n vm.CategoryList = [];\r\n vm.TypeofCAList = [];\r\n vm.SubCategoryList = [];\r\n vm.IocaList = [];\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.ShowRateReport = ShowRateReport;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n // vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getRateBasedon = getRateBasedon;\r\n vm.getScopeBasedContractorName = getScopeBasedContractorName;\r\n vm.getContractorBasedWorkOrderNo = getContractorBasedWorkOrderNo;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getTypeOfAttributeByTypeCA = getTypeOfAttributeByTypeCA;\r\n vm.loadIocaList = loadIocaList;\r\n\r\n vm.cancel = cancel;\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n // vm.TypeOfAttributeList = [{\r\n // TypeOfAttributeName: 'Generic',\r\n // Code: 'G'\r\n // }, {\r\n // TypeOfAttributeName: 'Specific',\r\n // Code: 'S'\r\n // }];\r\n\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n\r\n vm.DescriptionList = [{\r\n Description: 'Short'\r\n },\r\n {\r\n Description: 'Detailed'\r\n }\r\n ];\r\n\r\n\r\n vm.RateList = [{\r\n RateName: 'Schedule of Rate',\r\n RateNameId: 0,\r\n },\r\n {\r\n RateName: 'Basic Rate',\r\n RateNameId: 6,\r\n }, {\r\n RateName: 'Labour Rate',\r\n RateNameId: 1,\r\n }, {\r\n RateName: 'Material Rate',\r\n RateNameId: 2,\r\n }, {\r\n RateName: 'Machinery Rate',\r\n RateNameId: 3,\r\n }, {\r\n RateName: 'Consumable Rate',\r\n RateNameId: 4,\r\n\r\n }, {\r\n RateName: 'Profit & Overhead Rate',\r\n RateNameId: 5,\r\n },\r\n {\r\n RateName: 'Assumption Rate',\r\n RateNameId: 7,\r\n }];\r\n\r\n\r\n vm.RateAnalysisList = [\r\n {\r\n RateAnalysisName: 'Labour Only', RateAnalysisId: 'L'\r\n }, {\r\n RateAnalysisName: 'Labour & Material',\r\n RateAnalysisId: 'C1'\r\n }, {\r\n RateAnalysisName: 'Labour, Material & Machinery',\r\n RateAnalysisId: 'C2'\r\n }, {\r\n RateAnalysisName: 'Labour & Machinery',\r\n RateAnalysisId: 'C3'\r\n }, {\r\n RateAnalysisName: 'Labour, Material, Machinery & Consumable',\r\n RateAnalysisId: 'C4'\r\n }];\r\n\r\n\r\n ////////////////////\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.rate.selectedProject = null;\r\n vm.ProjectList = [];\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.rate.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.rate.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.rate.selectedFOC=null;\r\n\r\n }\r\n }\r\n\r\n function getFocByPrjId(prjId) {\r\n FieldofConstructionService.getFocByPrjConstantAndRate(prjId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n\r\n // function getCountryByProject(ProjectId) {\r\n // ProjectIocaService.getAllProjectCountry(ProjectId).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // if (!vm.CountryList.length > 0) {\r\n // $rootScope.showToaster('info', 'There is no Country available selected Project', \"No Data\");\r\n // }\r\n // vm.isLoading = false;\r\n // } else {\r\n // dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n // }\r\n // }, function (err) {\r\n // dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n // });\r\n\r\n // }\r\n\r\n function getRateBasedon(m_rate) {\r\n vm.rate.TypeRateName = null;\r\n if (m_rate == 0) {\r\n\r\n vm.TypeRate = [\r\n {\r\n TypeRateName: 'Current Rate',\r\n TypeRateId: 1,\r\n }, {\r\n TypeRateName: 'Rate On',\r\n TypeRateId: 2,\r\n },\r\n {\r\n TypeRateName: 'Initial Rate',\r\n TypeRateId: 0,\r\n },\r\n {\r\n TypeRateName: 'Work Order',\r\n TypeRateId: 3,\r\n }\r\n ];\r\n } else {\r\n vm.rate.TypeRateName= null;\r\n\r\n vm.TypeRate = [\r\n {\r\n TypeRateName: 'Current Rate',\r\n TypeRateId: 1,\r\n },\r\n {\r\n TypeRateName: 'Initial Rate',\r\n TypeRateId: 0,\r\n },\r\n {\r\n TypeRateName: 'Rate On',\r\n TypeRateId: 2,\r\n }\r\n ];\r\n\r\n }\r\n }\r\n\r\n\r\n function getCategoryByProject(ProjectId, focId, CountryId) {\r\n if (ProjectId && focId && CountryId) {\r\n CategoryofCAService.getCategoryByPrjConstantAndRate(ProjectId, focId, CountryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Category available selected Country', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n } else {\r\n vm.rate.selectedCategory= null;\r\n vm.focList=[];\r\n vm.rate.selectedSubCategory= null;\r\n vm.rate.selectedTypeOfCA= null;\r\n vm.estimationreport.selectedSpecType= null;\r\n vm.rate.selectedIOCA= null;\r\n vm.estimationreport.selecteddesc= null;\r\n vm.rate.RateName= null;\r\n vm.rate.TypeRateName= null;\r\n \r\n }\r\n\r\n }\r\n\r\n\r\n function getSubcategoryByCategory() {\r\n if (vm.rate.selectedCategory != undefined && vm.rate.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.rate.selectedCategory) {\r\n Arr.push(vm.rate.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n\r\n var ProjectId = vm.rate.selectedProject.ProjectId\r\n\r\n SubCategoryofCAService.getSubcategoryByPrjConstantAndRate(ProjectId, vm.Category).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (!vm.SubCategoryList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Sub Category available selected Category', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Subcategory of CA\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Subcategory of CA\");\r\n });\r\n\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n //Type of CA\r\n\r\n function getTypeofCABySubCategory() {\r\n if (vm.rate.selectedSubCategory != undefined && vm.rate.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.rate.selectedSubCategory) {\r\n Arr.push(vm.rate.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var ProjectId = vm.rate.selectedProject.ProjectId\r\n TypeOfCAService.getTypeByPrjConstantAndRate(ProjectId, vm.SubCategory).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeofCAList = res.data;\r\n if (!vm.TypeofCAList.length > 0) {\r\n $rootScope.showToaster('info', 'There is no Category Type available selected Sub Category', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getTypeOfAttributeByTypeCA() {\r\n debugger;\r\n if (vm.rate.selectedTypeOfCA != undefined && vm.rate.selectedTypeOfCA.length > 0) {\r\n Attribute();\r\n } else {\r\n\r\n }\r\n }\r\n function loadIocaList() {\r\n debugger;\r\n if (vm.rate.selectedTypeOfCA != undefined && vm.rate.selectedTypeOfCA.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.rate.selectedTypeOfCA) {\r\n Arr.push(vm.rate.selectedTypeOfCA[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var ProjectId = vm.rate.selectedProject.ProjectId;\r\n IocaService.getIocaByPrjConstantAndRate(ProjectId, vm.Type).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0)\r\n $rootScope.showToaster('info', 'There is no IOCA available selected Project', \"No Data\");\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function getScopeBasedContractorName(scopeId, projectid) {\r\n debugger;\r\n vm.isLoading = true;\r\n var obj = {\r\n ScopeId: scopeId,\r\n ProjectId: projectid\r\n }\r\n RateAnalysisService.getScopeBasedContractorName(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorNameList = res.data;\r\n vm.isLoading = false;\r\n if (vm.ContractorNameList.length < 1)\r\n $rootScope.showToaster('info', 'There is no Contractor available selected Scope', \"No Data\");\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n vm.isLoading = false;\r\n }\r\n\r\n function getContractorBasedWorkOrderNo(ContractorId, projectid) {\r\n debugger;\r\n vm.isLoading = true;\r\n var obj = {\r\n ContractorId: ContractorId,\r\n ProjectId: projectid\r\n }\r\n RateAnalysisService.getContractorBasedWorkOrderNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.WorkOrderList.length > 0)\r\n $rootScope.showToaster('info', 'There is no WorkOder available selected Contractor', \"No Data\");\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n //Event for Print\r\n function ShowRateReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n var strHeading = null;\r\n if (vm.rate.RateName.RateNameId == 0) {\r\n if (vm.rate.TypeRateName.TypeRateId == 3) {\r\n strHeading = vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.selectedRateAnalysis.RateAnalysisName + \" \" + vm.rate.TypeRateName.TypeRateName + \" of Contractor - \" + vm.SelectedContractorName.ContractorName;\r\n } else if (vm.rate.TypeRateName.TypeRateId == 2) {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n } else {\r\n strHeading = vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n\r\n } else if (vm.rate.RateName.RateNameId < 7) {\r\n if (vm.rate.TypeRateName.TypeRateId == 2) {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n else {\r\n strHeading = vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n }\r\n else if (vm.rate.RateName.RateNameId == 7) {\r\n if (vm.rate.TypeRateName.TypeRateId == 2) {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n } else {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.rate.selectedIOCA != undefined && vm.rate.selectedIOCA.length > 0) {\r\n var arr = [];\r\n for (var i in vm.rate.selectedIOCA) {\r\n arr.push(vm.rate.selectedIOCA[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //type\r\n if (vm.rate.selectedIOCA != undefined && vm.rate.selectedIOCA.length > 0) {\r\n var arr = [];\r\n for (var i in vm.rate.selectedIOCA) {\r\n arr.push(vm.rate.selectedIOCA[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.Type != undefined) ? vm.Type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.rate.selectedCompany.CompanyName,\r\n //CompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n ProjectName: vm.rate.selectedProject.ProjectName,\r\n p_RateFor: vm.rate.RateName.RateNameId,\r\n UserName: loggedUser.FirstName,\r\n ReportFor: vm.rate.RateName.RateName,\r\n Heading: strHeading,\r\n TypeofDescription: vm.estimationreport.selecteddesc.Description,\r\n p_RateType: vm.rate.TypeRateName.TypeRateId,\r\n\r\n //(vm.plan.From, 'yyyy/MM/dd') \r\n }\r\n if (vm.rate.TypeRateName.TypeRateId === 2) {\r\n obj.p_RateDate = $filter('date')(vm.emp.DOB, 'yyyy-MM-dd')\r\n } else if (vm.rate.TypeRateName.TypeRateId === 3) {\r\n obj.ScopeId = vm.rate.selectedRateAnalysis.RateAnalysisId;\r\n obj.ContractorId = vm.SelectedContractorName.ContractorId;\r\n obj.WorkOrderId = vm.SelectedWorkOrderNo.WorkOrderId;\r\n obj.p_WorkOrderType = vm.rate.selectedRateAnalysis.RateAnalysisName\r\n }\r\n\r\n console.log(obj);\r\n\r\n RateAnalysisService.ShowRateReport(obj).then(function (res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n\r\n Init();\r\n\r\n } else {\r\n vm.isLoading = false;\r\n dialogs.error('error', \"Something Went to Wrong Check Your Selected Data\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n vm.ShareReport = function () {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n var strHeading = null;\r\n if (vm.rate.RateName.RateNameId == 0) {\r\n if (vm.rate.TypeRateName.TypeRateId == 3) {\r\n strHeading = vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.selectedRateAnalysis.RateAnalysisName + \" \" + vm.rate.TypeRateName.TypeRateName + \" of Contractor - \" + vm.SelectedContractorName.ContractorName;\r\n } else if (vm.rate.TypeRateName.TypeRateId == 2) {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n } else {\r\n strHeading = vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n\r\n } else if (vm.rate.RateName.RateNameId < 7) {\r\n if (vm.rate.TypeRateName.TypeRateId == 2) {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n else {\r\n strHeading = vm.rate.RateName.RateName + \" \" + \"Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n }\r\n else if (vm.rate.RateName.RateNameId == 7) {\r\n if (vm.rate.TypeRateName.TypeRateId == 2) {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" - \" + $filter('date')(vm.emp.DOB, 'dd-MM-yyyy') + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n } else {\r\n strHeading = \" Rate Analysis Based on \" + vm.rate.TypeRateName.TypeRateName + \" \" + \"of \" + vm.rate.RateName.RateName + \" - \" + vm.estimationreport.selecteddesc.Description + \" \" + \"Description\";\r\n }\r\n\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.rate.selectedIOCA != undefined && vm.rate.selectedIOCA.length > 0) {\r\n var arr = [];\r\n for (var i in vm.rate.selectedIOCA) {\r\n arr.push(vm.rate.selectedIOCA[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //type\r\n if (vm.rate.selectedIOCA != undefined && vm.rate.selectedIOCA.length > 0) {\r\n var arr = [];\r\n for (var i in vm.rate.selectedIOCA) {\r\n arr.push(vm.rate.selectedIOCA[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n\r\n debugger;\r\n var obj = {\r\n ProjectId: vm.rate.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.Type != undefined) ? vm.Type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.rate.selectedCompany.CompanyName,\r\n //CompanyName: vm.estimationreport.selectedCompany.CompanyName,\r\n ProjectName: vm.rate.selectedProject.ProjectName,\r\n p_RateFor: vm.rate.RateName.RateNameId,\r\n UserName: loggedUser.FirstName,\r\n ReportFor: vm.rate.RateName.RateName,\r\n Heading: strHeading,\r\n TypeofDescription: vm.estimationreport.selecteddesc.Description,\r\n p_RateType: vm.rate.TypeRateName.TypeRateId,\r\n\r\n //(vm.plan.From, 'yyyy/MM/dd') \r\n }\r\n if (vm.rate.TypeRateName.TypeRateId === 2) {\r\n obj.p_RateDate = $filter('date')(vm.emp.DOB, 'yyyy-MM-dd')\r\n } else if (vm.rate.TypeRateName.TypeRateId === 3) {\r\n obj.ScopeId = vm.rate.selectedRateAnalysis.RateAnalysisId;\r\n obj.ContractorId = vm.SelectedContractorName.ContractorId;\r\n obj.WorkOrderId = vm.SelectedWorkOrderNo.WorkOrderId;\r\n obj.p_WorkOrderType = vm.rate.selectedRateAnalysis.RateAnalysisName\r\n }\r\n\r\n console.log(obj);\r\n\r\n RateAnalysisService.ShowRateReport(obj).then(function (res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.ExportPdfData,\r\n pdfUpload: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (res) {\r\n\r\n }, function () { });\r\n\r\n } else {\r\n vm.isLoading = false;\r\n dialogs.error('error', \"Something Went to Wrong Check Your Selected Data\", { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n function cancel() {\r\n vm.rate = {};\r\n }\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function () {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n debugger;\r\n\r\n vm.maxDateFun = function () {\r\n vm.maxd = new Date();\r\n //\r\n vm.maxd.setDate(vm.maxd.getDate() - 1);\r\n };\r\n\r\n vm.maxDateFun();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2016, 1, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n\r\n startingDay: 1\r\n };\r\n\r\n\r\n\r\n vm.setMinEndDate = function () {\r\n vm.endDtOpt.minDate = vm.emp.DOB;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n // vm.toggleMin = function () {\r\n // vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n // vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n // };\r\n\r\n // vm.toggleMin();\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n //var today = vm.dt;\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n };\r\n\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n debugger;\r\n var lastdate = new Date();\r\n lastdate.setDate(lastdate.getDate() + 1);\r\n var beforeToday = new Date();\r\n beforeToday.setDate(lastdate.getDate() + 1);\r\n vm.events = [{\r\n date: lastdate,\r\n status: 'full'\r\n }, {\r\n date: beforeToday,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workStatusReport')\r\n .controller('WorkStatusReportCtrl', WorkStatusReportCtrl);\r\n\r\n /** @ngInject */\r\n function WorkStatusReportCtrl($rootScope, $filter, lodash, dialogs, $http, CompanyService, projectCreationService, planningReportService, workStatusReportService,\r\n LocationSetupService, IocaService, RateofInputService, TierSetupService, ItemToItemService, AuthenticationService, $window) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.ShowWorkApprovelReport = ShowWorkApprovelReport;\r\n vm.plan = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.IocaList = [];\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.GetReportFor = GetReportFor;\r\n vm.getCountryByProject = getCountryByProject;\r\n vm.getCategoryByProject = getCategoryByProject;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.loadIocaList = loadIocaList;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.getReportType = getReportType;\r\n vm.getTierNo = getTierNo;\r\n vm.filterTiers = filterTiers;\r\n vm.GetWeeklyEndDate = GetWeeklyEndDate;\r\n vm.GetTodayDate = GetTodayDate;\r\n vm.GetQuarterly = GetQuarterly;\r\n vm.GetMonthEndDate = GetMonthEndDate;\r\n vm.getEmpList = getEmpList;\r\n vm.getContCatgy = getContCatgy;\r\n vm.getContList = getContList;\r\n\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n // Init DDL Datas\r\n\r\n vm.WorkStatusTypeList = [{ WorkStatusTypeName: 'Approved', Id: 1, StatusId: 4 }, { WorkStatusTypeName: 'Defective', Id: 2, StatusId: 4 }];\r\n\r\n vm.SpecTypeList = [{ SpecTypeName: 'Generic', Code: 'G' }, { SpecTypeName: 'Specific', Code: 'S' }];\r\n\r\n vm.ReportTypeList = [{ ReportTypeName: 'Detailed', ReportTypeId: '1' }, { ReportTypeName: 'Consolidated', ReportTypeId: '2' }];\r\n\r\n vm.PeriodTypeList = [\r\n { PeriodTypeName: 'Today Report', Code: 'D' },\r\n { PeriodTypeName: 'Weekly Report', Code: 'W' }, { PeriodTypeName: 'Monthly Report', Code: 'M' },\r\n { PeriodTypeName: 'Quarterly Report', Code: 'Q' }\r\n ];\r\n\r\n // vm.RequirementList = [{ RequirementName: 'Draft Planning', Id: 1, ReportType: 'Draft' }\r\n // , { RequirementName: 'Finalized Planning', Id: 4, ReportType: 'Finalized' }\r\n // ];\r\n\r\n vm.basedOnRequirementList = [{ RequirementBasedName: 'Construction Activity Wise', Id: 1 }\r\n // ,{ RequirementBasedName: 'Location Wise', Id: 2 }\r\n ];\r\n\r\n //#region Attribute\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n //#endregion\r\n\r\n //#region Init\r\n function Init() {\r\n if (CompanyId) {\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {\r\n vm.estimationreport.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Load Project\r\n function getProjectByCompany(CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n vm.selectedProject = null;\r\n vm.selectedWorkStatusBased = null;\r\n vm.selectedRequirementBased = null;\r\n vm.selectedPeriod = null;\r\n }\r\n //#endregion\r\n\r\n //#region Event for Print \r\n function ShowWorkApprovelReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedReportFor) {\r\n arr.push(vm.selectedReportFor[i].DesignationId)\r\n }\r\n vm.ReportForId = arr.join();\r\n }\r\n GetTodayDate();\r\n var strHr = (vm.ReportForId != undefined) ? vm.ReportForId : -1;\r\n var strHeading = null;\r\n if (strHr == 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" of \" + vm.selectedWorkStatusBased.WorkStatusTypeName + \" Completed Work of ##\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr > 0) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" of \" + vm.selectedWorkStatusBased.WorkStatusTypeName + \" Completed Work of ##\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n } else if (strHr == -1) {\r\n strHeading = \"
\" + vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" of \" + vm.selectedWorkStatusBased.WorkStatusTypeName + \" Completed Work of ##\" + \" - \" + vm.selectedRequirementBased.RequirementBasedName +\r\n \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy') + \"
\";\r\n }\r\n\r\n //Input Values\r\n\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].ProjectIocaId)\r\n }\r\n vm.IOCA = arr.join();\r\n }\r\n\r\n //Type\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].TypeId)\r\n }\r\n vm.type = arr.join();\r\n }\r\n\r\n\r\n //Sub-Category\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n arr.push(vm.selectedSubCategory[i].SubCategoryId)\r\n }\r\n vm.SubCategory = arr.join();\r\n }\r\n\r\n\r\n //Category\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var arr = [];\r\n for (var i in vm.selectedCategory) {\r\n arr.push(vm.selectedCategory[i].CategoryId)\r\n }\r\n vm.Category = arr.join();\r\n }\r\n\r\n // if (vm.selectedReportFor != undefined && vm.selectedReportFor.length > 0) {\r\n // var arr = [];\r\n // for (var i in vm.selectedReportFor) {\r\n // arr.push(vm.selectedReportFor[i].DesignationName)\r\n // }\r\n // vm.ReportFor = arr.join();\r\n // }\r\n\r\n debugger;\r\n\r\n\r\n\r\n var obj = {\r\n\r\n ProjectId: vm.selectedProject.ProjectId,\r\n CategoryIds: (vm.Category != undefined) ? vm.Category : \"\",\r\n SubCategoryIds: (vm.SubCategory != undefined) ? vm.SubCategory : \"\",\r\n TypeIds: (vm.type != undefined) ? vm.type : \"\",\r\n ProjectIocaId: (vm.IOCA != undefined) ? vm.IOCA : \"\",\r\n GroupCompanyName: vm.selectedCompany.CompanyName,\r\n ProjectName: vm.selectedProject.ProjectName,\r\n ProgramFor: vm.selectedWorkStatusBased.StatusId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n Tiers: JSON.stringify(vm.Arr),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n SpecType: vm.selectedCASpecType.Code,\r\n EmpId: \"\",\r\n UserName: loggedUser.FirstName,\r\n Heading: strHeading,\r\n DescType: 'Short',\r\n ReportTypeId: vm.selectedReportType.ReportTypeId,\r\n ReportStatusId: vm.selectedWorkStatusBased.Id,\r\n ReportFor: vm.selectedReportType.ReportTypeName,\r\n ReportType: vm.selectedRequirementBased.Id,\r\n ReportTask: (vm.ReportFor != undefined) ? vm.ReportFor : \" \",\r\n p_BOQStatus: 4\r\n }\r\n\r\n console.log(obj);\r\n workStatusReportService.ShowWorkApprovelReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n Init();\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n //#endregion\r\n\r\n //#region Clear\r\n //#endregion\r\n\r\n //#region Load Construction Activity\r\n function getFocByPrjId(prjId) {\r\n debugger;\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: prjId,\r\n Status: vm.selectedWorkStatusBased.StatusId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd')\r\n }\r\n GetReportFor(prjId);\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n workStatusReportService.getWrkApvdFoc(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.selectedReportFor = null;\r\n if (vm.focList.length <= 0) {\r\n dialogs.notify('Warning', '! FOC Not Available, Confirm that the work approval is done on the selected date.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n\r\n function getCountryByProject(ProjectId) {\r\n if (ProjectId) {\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n Status: vm.selectedWorkStatusBased.StatusId\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n planningReportService.getBoQCountry(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n // getFocByPrjId(ProjectId);\r\n if (!vm.CountryList.length > 0) {\r\n dialogs.notify('Warning', '! Select IOCA From Selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function getCategoryByProject(ProjectId, CountryId, focId) {\r\n if (CountryId && ProjectId && focId) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: ProjectId,\r\n Status: vm.selectedWorkStatusBased.StatusId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.selectedRequirementBased.Id === 2) {\r\n obj.Tiers = JSON.stringify(vm.Arr)\r\n }\r\n workStatusReportService.getWrkApvdCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (!vm.CategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category available selected Country', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n }\r\n\r\n function getSubcategoryByCategory() {\r\n //clearSubcategory();\r\n if (vm.selectedCategory != undefined && vm.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedCategory) {\r\n Arr.push(vm.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.WorkStatusTypeList[0].StatusId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n workStatusReportService.getWrkApvdSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n function getTypeofCABySubCategory(ProjectId, CategoryId, SubCategoryId) {\r\n\r\n if (vm.selectedSubCategory != undefined && vm.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedSubCategory) {\r\n Arr.push(vm.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedWorkStatusBased.StatusId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n workStatusReportService.getWrkApvdType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function loadIocaList() {\r\n clearioca();\r\n if (vm.selectedType != undefined && vm.selectedType.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.selectedType) {\r\n Arr.push(vm.selectedType[i].TypeId);\r\n }\r\n vm.Type = Arr.join();\r\n var filter = {\r\n FocId: vm.selectedfoc.FieldofConstructionId,\r\n CountryId: vm.selectedProject.CountryId,\r\n CategoryId: vm.Category,\r\n SubCategoryId: vm.SubCategory,\r\n TypeId: vm.Type,\r\n // SpecType: vm.selectedCASpecType.Code\r\n SpecType: (vm.selectedCASpecType.Code.trim()) ? vm.selectedCASpecType.Code : null\r\n };\r\n\r\n var obj = {\r\n LocationId: (vm.selectedLocation != undefined) ? vm.selectedLocation.LocationId : \"\",\r\n ProjectId: vm.selectedProject.ProjectId,\r\n Status: vm.selectedWorkStatusBased.StatusId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n if (vm.basedOnRequirementList.Id === 2) {\r\n obj.Tiers = buildFilterString();\r\n }\r\n workStatusReportService.getWrkApvdIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n if (!vm.IocaList.length > 0) {\r\n vm.workLocation = false;\r\n } else {\r\n vm.workLocation = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function(err) {});\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject(Id) {\r\n debugger;\r\n if (vm.IocaList != undefined && vm.IocaList.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.IocaList) {\r\n Arr.push(vm.IocaList[i].IOCA_Id);\r\n }\r\n vm.IocaIds = Arr.join();\r\n }\r\n\r\n var obj = {\r\n ProjectId: Id,\r\n // Fromdate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n // Todate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n ApvdStatus: vm.selectedWorkStatusBased.Id,\r\n IocaIds: vm.IocaIds\r\n }\r\n LocationSetupService.getWrkApvdLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (!vm.LocationList.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Item', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n\r\n\r\n //#endregion\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.selectedIoca = null;\r\n }\r\n\r\n\r\n //#region Location Details\r\n\r\n //Filter Tiers\r\n function filterTiers(IocaTier) {\r\n\r\n if (IocaTier.selectedIocatireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, { \"TierNo\": tempTier });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': IocaTier.selectedIocatireValue.TierId });\r\n }\r\n });\r\n\r\n // var maxTier = lodash.maxBy(vm.allTierData, function (t) {\r\n // return getTierNo(t.TierNo);\r\n // });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedIocatireValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierNo] = vm.allTierData[i].selectedIocatireValue.TierId\r\n }\r\n }\r\n console.log(vm.Arr)\r\n //getCountryByTiers(vm.Arr);\r\n } else {\r\n vm.Arr = null;\r\n clearTierSelection();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n function getTiersByLocation(tier) {\r\n clearTierSelection()\r\n var obj = {\r\n ProjectId: vm.selectedLocation.ProjectId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n FromDate: $filter('date')(vm.plan.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.plan.To, 'yyyy/MM/dd'),\r\n ApvdStatus: vm.selectedWorkStatusBased.Id,\r\n IocaIds: vm.IocaIds\r\n }\r\n ItemToItemService.getGetWrkApvdTier(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n\r\n vm.lastTierNo = lodash.last(vm.strArr.Tiers).TierNo;\r\n vm.ProjectIOCATiersList = [];\r\n var tierList = [];\r\n lodash.forEach(vm.strArr.Tiers, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n vm.allTierData = tierList;\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n\r\n }\r\n\r\n function FilterTireCopyTo(tier, IocaTier) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function(t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getReportType() {\r\n vm.ReportType = [];\r\n for (var i in vm.ProjectIOCATiersList) {\r\n var obj = {\r\n TierName: vm.ProjectIOCATiersList[i].Tier,\r\n TierType: vm.ProjectIOCATiersList[i].TierNo\r\n }\r\n vm.ReportType.push(obj)\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.ProjectIOCATiersList, function(IocaTier) {\r\n IocaTier.selectedIocatireValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Date \r\n\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n // Get Today Date\r\n\r\n function GetTodayDate() {\r\n debugger;\r\n if (vm.selectedPeriod.Code == 'D') {\r\n vm.plan.From = new Date();\r\n vm.plan.To = new Date();\r\n getFocByPrjId(vm.selectedProject.ProjectId);\r\n } else if (vm.selectedPeriod.Code == 'W') {\r\n GetWeeklyEndDate();\r\n } else if (vm.selectedPeriod.Code == 'Q') {\r\n GetQuarterly();\r\n } else if (vm.selectedPeriod.Code == 'M') {\r\n GetMonthEndDate();\r\n }\r\n }\r\n\r\n // *** End Today *** \r\n\r\n\r\n // Add Weekly Date\r\n\r\n function GetWeeklyEndDate() {\r\n if (vm.selectedPeriod.Code == 'W') {\r\n // vm.plan.From = new Date();\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.plan.To.setDate(vm.plan.To.getDate() + numberOfDaysToAdd);\r\n getFocByPrjId(vm.selectedProject.ProjectId);\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n\r\n }\r\n\r\n // **** End Weekly Function ************ //\r\n\r\n //Quarterly Month add\r\n function GetQuarterly() {\r\n if (vm.selectedPeriod.Code == 'Q') {\r\n //vm.plan.From = new Date();\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n getFocByPrjId(vm.selectedProject.ProjectId);\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n\r\n //Monthly Report\r\n function GetMonthEndDate() {\r\n if (vm.selectedPeriod.Code == 'M') {\r\n //vm.plan.From = new Date();\r\n vm.plan.To = angular.copy(vm.plan.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.plan.To.setMonth(vm.plan.To.getMonth() + numberOfMonthToAdd);\r\n vm.plan.To.setDate(vm.plan.To.getDate() - 1);\r\n getFocByPrjId(vm.selectedProject.ProjectId);\r\n\r\n } else if (vm.selectedPeriod.Code == 'P') {\r\n vm.plan.To = \"\"\r\n }\r\n }\r\n //********/\r\n\r\n //****** Finalized Planning *******/\r\n\r\n //#region Load GetReportFor\r\n function GetReportFor(prjId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId\r\n }\r\n planningReportService.GetReportFor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.basedOnReportForList = res.data;\r\n vm.isLoading = false;\r\n vm.basedOnReportForList.push({ DesignationName: 'Contractor', DesignationId: 0 });\r\n //Clear\r\n vm.ContractorCateList = [];\r\n vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n vm.selectedContractorCategory = null;\r\n //vm.selectedReportFor = null;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Designation List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Designation List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetReportFor\r\n function getContCatgy() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: vm.selectedProject.ProjectId,\r\n DesignationId: vm.selectedReportFor.DesignationId\r\n }\r\n planningReportService.getContCatgy(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCateList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //#region Load GetEmpList\r\n function getEmpList(prjId, DesgId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n DesignationId: DesgId\r\n }\r\n\r\n planningReportService.getEmpList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.EmployeeList = res.data;\r\n vm.isLoading = false;\r\n\r\n if (vm.selectedReportFor.DesignationId == 0) {\r\n getContCatgy();\r\n }\r\n\r\n //Clear\r\n // vm.EmployeeList = [];\r\n vm.selectedEmpName = null;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Load GetContractor Name\r\n function getContList(prjId, CateId) {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n var obj = {\r\n ActionBy: loggedUser.FirstName,\r\n ProjectId: prjId,\r\n CategoryId: CateId\r\n }\r\n\r\n planningReportService.getContList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee List\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee List\");\r\n });\r\n }\r\n //#endregion\r\n //******** */\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('RFQRejectionCtrl', RFQRejectionCtrl);\r\n\r\n /** @ngInject */\r\n function RFQRejectionCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService, RFQService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.SaveRejection = function () {\r\n if (items.Status) {\r\n var objBlock = {\r\n BlockNotes: {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"BlockBy\": loggedUser.UserId,\r\n \"BlockOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n var obj = {\r\n RfqId: items.RfqId,\r\n BlockNotes: JSON.stringify(objBlock)\r\n }\r\n RFQService.blockRfq(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Block Note Added Successfully', \"RFQ Block\");\r\n $uibModalInstance.close();\r\n $state.go('viewApprovedRfq');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Block RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Block RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n else {\r\n var objReject = {\r\n RejectionNotes: {\r\n \"Notes\": vm.reject.RejectionNotes,\r\n \"RejectedBy\": loggedUser.UserId,\r\n \"RejectedOn\": $filter('date')(new Date(), 'yyyy-MM-dd')\r\n }\r\n }\r\n var obj = {\r\n RfqId: items.RfqId,\r\n RejectionNotes: JSON.stringify(objReject)\r\n }\r\n RFQService.rejectRfq(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejection Note Added Successfully', \"RFQ Rejection\");\r\n $uibModalInstance.close();\r\n $state.go('pendingForApprovalRfq');\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Reject RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Reject RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('RfqPreparationCtrl', RfqPreparationCtrl);\r\n\r\n /** @ngInject */\r\n function RfqPreparationCtrl($rootScope, lodash, dialogs, $http, AuthenticationService, ItemToItemService, LocationSetupService, projectCreationService,\r\n TierSetupService, CompanyService, $scope, BillOfQuntityService, UserService, $filter, $window, RFQService, $state, $uibModal, RFQContentTemplateService,\r\n RFQTemplateService, FieldofConstructionService, CategoryofCAService, SubCategoryofCAService, TypeOfCAService, IocaService, DrawingUpoadService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.currentPage = 1;\r\n vm.currentPage1 = 1;\r\n vm.currentPage2 = 1;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }];\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.rowCountOptions1 = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }];\r\n vm.noOfRows1 = vm.rowCountOptions1[1];\r\n vm.rembemberCurrentPage1 = function(num) {\r\n vm.currentPage1 = num;\r\n }\r\n vm.rowCountOptions2 = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows2 = vm.rowCountOptions2[1];\r\n vm.rembemberCurrentPage2 = function(num) {\r\n vm.currentPage2 = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n vm.isFormOpen = false;\r\n vm.saveBtn = false;\r\n var isNotinRfq = false;\r\n $rootScope.isLogin = false;\r\n vm.item = {};\r\n vm.rfqTemplate = {};\r\n $scope.dirOptions = {};\r\n vm.ContractorList = [];\r\n\r\n vm.contractorScopeList = [];\r\n // Properties \r\n vm.isEditing = false;\r\n vm.isAdd = true;\r\n vm.isView = false;\r\n // Methods\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.filterTiers = filterTiers;\r\n // vm.getCountry = getCountry;\r\n vm.getFOC = getFOC;\r\n\r\n vm.GetBoQCategoryByCountryId = GetBoQCategoryByCountryId;\r\n vm.getBoQAttributeByTypeOfCAId = getBoQAttributeByTypeOfCAId;\r\n vm.getBoQIOCAListByTypeOfAttribute = getBoQIOCAListByTypeOfAttribute;\r\n vm.getBoQSubCategoryCAListByCategoryId = getBoQSubCategoryCAListByCategoryId;\r\n vm.getBoQTypeOfCAListBySubcategoryId = getBoQTypeOfCAListBySubcategoryId;\r\n vm.contractorScope = contractorScope;\r\n vm.getPowQty = getPowQty;\r\n vm.addTable = addTable;\r\n vm.remove = remove;\r\n vm.addAttachDoc = addAttachDoc;\r\n vm.removeDrawing = removeDrawing;\r\n vm.removeContractor = removeContractor;\r\n vm.cancel = cancel;\r\n vm.create = create;\r\n vm.viewNote = viewNote;\r\n vm.saveRfq = saveRfq;\r\n vm.sendForApproval = sendForApproval;\r\n vm.addContractor = addContractor;\r\n vm.viewDrawing = viewDrawing;\r\n vm.ViewRfqData = ViewRfqData;\r\n vm.back = back;\r\n vm.edit = edit;\r\n vm.reject = reject;\r\n vm.resubmit = resubmit;\r\n vm.Approve = Approve;\r\n vm.block = block;\r\n vm.MinPenalty = 0.5;\r\n vm.MaxPenalty = 5;\r\n vm.getRfqTemplate = getRfqTemplate;\r\n vm.getDrawingDescription = getDrawingDescription;\r\n vm.getApprovedContractor = getApprovedContractor;\r\n vm.GetallContent = GetallContent;\r\n vm.canShow = canShow;\r\n vm.showReport = showReport;\r\n vm.getTierFullName = getTierFullName;\r\n vm.DescriptionList = [];\r\n vm.TotalDescriptionList = [];\r\n vm.DrawingDocList = [];\r\n vm.RFQList = [];\r\n vm.ListContractor = [];\r\n vm.btnsToShow = [];\r\n\r\n\r\n ///// \r\n clearTierSelection();\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n vm.UserName = loggedUserDtl.FirstName;\r\n Init();\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n //////////////////// \r\n\r\n function Init() {\r\n if ($state.params.data) {\r\n vm.isView = $state.params.data.isView;\r\n vm.isAdd = !vm.isView;\r\n vm.rfqData = $state.params.data.RfqData;\r\n vm.stateFrom = parseInt($state.params.data.RfqData.RfqStatus);\r\n }\r\n filterButtons();\r\n\r\n vm.BoQTypeList = [{\r\n Status: 'Draft Boq',\r\n id: 1\r\n }, {\r\n Status: 'Manual Entry',\r\n id: 3\r\n }, {\r\n Status: 'Finalized boq',\r\n id: 4\r\n }];\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contract',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TemplateRfqList = [{\r\n TemplatelistName: 'Field of Construction',\r\n TempId: 1\r\n }, {\r\n TemplatelistName: 'Category of CA',\r\n TempId: 2\r\n }, {\r\n TemplatelistName: 'SubCategory of CA',\r\n TempId: 3\r\n }]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'FortNight',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n }, {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n if ($state.current === 'viewRfq')\r\n vm.isView = true;\r\n\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n if (vm.isView === true)\r\n ViewRfqData();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n\r\n }\r\n\r\n\r\n function filterButtons() {\r\n switch (vm.stateFrom) {\r\n case 1:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'send', 'cancel'];\r\n break;\r\n case 2:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'reject', 'approve', 'cancel'];\r\n break;\r\n case 3:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'reject', 'approve', 'cancel'];\r\n break;\r\n case 4:\r\n vm.btnsToShow = ['back', 'block', 'report'];\r\n break;\r\n case 5:\r\n vm.btnsToShow = ['back'];\r\n break;\r\n case 6:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'resubmit', 'cancel'];\r\n break;\r\n }\r\n\r\n }\r\n\r\n function canShow(btnName) {\r\n return lodash.includes(vm.btnsToShow, btnName);\r\n }\r\n\r\n function contractorScope() {\r\n if (vm.item.selectedRFQType.rfqTypeId === 6) {\r\n vm.contractorScopeList = [{\r\n ScopeName: 'Labour only',\r\n Code: 'L'\r\n }, {\r\n ScopeName: 'Labour and Material',\r\n Code: 'C1'\r\n }, {\r\n ScopeName: 'Labour and Machinery',\r\n Code: 'C3'\r\n },\r\n {\r\n ScopeName: 'Labour, Material and Machinery',\r\n Code: 'C2'\r\n }, {\r\n ScopeName: 'Labour, Material, Machinery and Consumable',\r\n Code: 'C4'\r\n }\r\n ]\r\n\r\n } else {\r\n vm.contractorScopeList = [{\r\n ScopeName: vm.item.selectedRFQType.rfqTypeName,\r\n Code: vm.item.selectedRFQType.Code\r\n }]\r\n\r\n }\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.item.selectedBasicLocation = null;\r\n clearTierSelection();\r\n vm.item.selectedProject = null;\r\n vm.LocationList = [];\r\n // vm.item.selectedCountry = null;\r\n // vm.CountryList = [];\r\n vm.item.selectedStatus = null;\r\n // var isWrkAlloc = true;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.item.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n vm.item.selectedRFQType = null;\r\n vm.rfqTemplate.selectedTemplate = null;\r\n // vm.item.selectedCountry = null;\r\n // vm.CountryList = [];\r\n vm.item.selectedStatus = null;\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n // function getCountry() {\r\n // var filter = {}\r\n // var obj = {\r\n // ProjectId: vm.item.selectedProject.ProjectId,\r\n // MenuId: 104,\r\n\r\n // UserId: loggedUserDtl.UserId,\r\n // InputJson: JSON.stringify(filter)\r\n // }\r\n // if (vm.item.selectedStatus.id == 3) {\r\n // obj.FromBoq = false;\r\n // } else {\r\n // obj.FromBoq = true;\r\n // obj.PowStatus = vm.item.selectedStatus.id;\r\n // }\r\n // RFQService.getCountryByRfq(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n function getFOC(callback) {\r\n clearFoc();\r\n var filter = {}\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n FieldofConstructionService.getFocByRfq(ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n function GetBoQCategoryByCountryId(CountryId, focId, callback) {\r\n clearCategory();\r\n // var filter = {\r\n var CountryId = CountryId;\r\n var FocId = focId;\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n CategoryofCAService.getCategoryByRfq(CountryId, FocId, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function getBoQSubCategoryCAListByCategoryId(CategoryId, callback) {\r\n clearSubcategory();\r\n // var filter = {\r\n var CategoryId = CategoryId\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n SubCategoryofCAService.getSubCategoryByRfq(CategoryId, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory\");\r\n });\r\n }\r\n\r\n function getBoQTypeOfCAListBySubcategoryId(SubCategoryId, callback) {\r\n clearType();\r\n // var filter = {\r\n var SubCategoryId = SubCategoryId;\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n TypeOfCAService.getTypeByRfq(SubCategoryId, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type\");\r\n });\r\n }\r\n\r\n function getBoQAttributeByTypeOfCAId(TypeId) {\r\n\r\n if (TypeId != undefined) {\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n if (vm.isEditing == true && vm.item.selectedTypeOfCA) {\r\n contractorScope();\r\n getLocationByProjectId(vm.item.selectedProject.ProjectId);\r\n }\r\n //vm.isLoading = false;\r\n }\r\n\r\n }\r\n\r\n function getBoQIOCAListByTypeOfAttribute(Code) {\r\n clearIoca();\r\n // var filter = {\r\n var TypeId = vm.item.selectedTypeOfCA.TypeId;\r\n var SpecType = vm.item.selectedTypeOfAttribute.Code;\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n IocaService.getIocaByRfq(TypeId, SpecType, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCAList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"IOCA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOCA\");\r\n });\r\n\r\n }\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n debugger;\r\n if (ProjectId) {\r\n clearTierSelection();\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n console.log(obj);\r\n if (vm.item.selectedStatus.id == 3) {\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Location available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n IOCA_Id: vm.item.selectedIoca.Id\r\n }\r\n\r\n if (vm.item.selectedStatus.id === 4 || vm.item.selectedStatus.id === 1) {\r\n var powStatus = vm.item.selectedStatus.id;\r\n var isWorkAlloc = false;\r\n }\r\n LocationSetupService.getLocationByPrivilege(obj.ProjectId, obj.IOCA_Id, true, powStatus, isWorkAlloc).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Location available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n\r\n } else {\r\n clearTierSelection();\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n // vm.item.selectedStatus = null; \r\n }\r\n getDrawingDescription(ProjectId);\r\n\r\n }\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n debugger;\r\n if (ProjectId) {\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.item.selectedBasicLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n IOCAId: vm.item.selectedIoca.Id\r\n // MenuId: 104,\r\n // UserId: loggedUserDtl.UserId\r\n }\r\n if (vm.item.selectedStatus.id == 1 || vm.item.selectedStatus.id == 4) {\r\n obj.Status = vm.item.selectedStatus.id\r\n }\r\n TierSetupService.getTierByBoQIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n var iocaTier = res.data[i].result;\r\n }\r\n vm.rawTierListData = JSON.parse(iocaTier).Tiers;\r\n\r\n for (var i = 0; i < vm.RFQList.length; i++) {\r\n for (var j = 0; j < vm.rawTierListData.length; j++) {\r\n for (var k = 0; k < vm.rawTierListData[j].Values.length; k++) {\r\n for (var m = 0; m < vm.RFQList[i].LocDtl[0].data.length; m++) {\r\n if ((vm.rawTierListData[j].Values[k].TierId == vm.RFQList[i].LocDtl[0].data[m].TierId) && (vm.RFQList[i].IOCA_Id == vm.item.selectedIoca.Id)) {\r\n findAndRemove(vm.rawTierListData[j].Values, 'TierId', vm.rawTierListData[j].Values[k].TierId)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n function findAndRemove(array, property, value) {\r\n array.forEach(function(result, index) {\r\n if (result[property] === value) {\r\n //Remove from array\r\n array.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n\r\n function filterTiers(tier) {\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.rawTierListData, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.RFQList, {\r\n // 'IOCA_Id': vm.item.selectedIoca.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.item.selectedBasicLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n\r\n\r\n\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // console.log(JSON.stringify(t2));\r\n // if (t2 != undefined) {\r\n // return t2.TierId === t1.TierId;\r\n // }\r\n // return false; \r\n\r\n // });\r\n\r\n // })\r\n\r\n // //t1.Values = maxTier.Values;\r\n // }\r\n\r\n // //lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n // }\r\n // }\r\n });\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getPowQty(callback) {\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n PowStatus: vm.item.selectedStatus.id,\r\n IOCA_Id: vm.item.selectedIoca.Id,\r\n LastTierId: vm.LastTierId\r\n }\r\n BillOfQuntityService.boqPowQty(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.QtyList = res.data;\r\n for (var i in vm.QtyList) {\r\n vm.qty = vm.QtyList[i].TotalQuantity\r\n }\r\n if (callback)\r\n callback();\r\n return (vm.qty);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Pow Qty\");\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n function getSelectedTierDtls() {\r\n\r\n // Get Last TierId\r\n var lastTierData = _.maxBy(vm.allTierData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n });\r\n\r\n var result = {};\r\n result.TypeOfWorkLocation = vm.item.selectedBasicLocation.BasicLocation;\r\n //result.LastTierIdList = lodash.map(lastTierData.selectedTireValue, 'TierId').join(',');;\r\n\r\n var tempArr2 = [];\r\n lodash.forEach(lastTierData.selectedTireValue, function(t) {\r\n tempArr2.push(genTierDetailObject(t));\r\n })\r\n result.data = tempArr2;\r\n\r\n return result;\r\n }\r\n\r\n function genTierDetailObject(tierObj) {\r\n var result = {};\r\n result.PowQty = tierObj.PowQty;\r\n result.TierId = tierObj.TierId;\r\n result.LocDtls = {};\r\n tierObj.TierDetails = lodash.sortBy(tierObj.TierDetails, 'TierId');\r\n lodash.forEach(tierObj.TierDetails, function(t) {\r\n result.LocDtls[t.TierValue] = t.Tier;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n function checkContractorScope() {\r\n for (var i in vm.item.selectedIoca) {\r\n var contScopeDesObj = JSON.parse(vm.item.selectedIoca.ContractorScope);\r\n for (var k in contScopeDesObj)\r\n if ((vm.item.selectedContractorScope.Code == k)) {\r\n if (k != null)\r\n vm.contScopeStr = contScopeDesObj[vm.item.selectedContractorScope.Code]\r\n }\r\n }\r\n }\r\n //RFQ ADD\r\n function addTable() {\r\n checkContractorScope();\r\n var table;\r\n var iocaDtl = lodash.find(vm.RFQList, {\r\n \"IOCA_Id\": vm.item.selectedIoca.Id\r\n });\r\n if (vm.item.selectedStatus.id == 3) {\r\n var manual = {\r\n IOCA_Id: vm.item.selectedIoca.Id,\r\n IOCA_Code: vm.item.selectedIoca.Code + '-' + vm.item.selectedContractorScope.Code,\r\n IOCA_LongDes: vm.contScopeStr,\r\n TypeName: vm.item.selectedTypeOfCA.TypeName,\r\n TypeId: vm.item.selectedTypeOfCA.TypeId,\r\n UnitName: vm.item.selectedIoca.UnitName,\r\n SpecialNote: vm.SpecialNote,\r\n TotQty: vm.Quantity,\r\n ContScope: vm.item.selectedContractorScope.Code,\r\n }\r\n if (vm.contScopeStr != null || vm.contScopeStr != undefined) {\r\n vm.RFQList.push(angular.copy(manual));\r\n vm.item.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedContractorScope = null;\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Please Enter Description for' + vm.item.selectedContractorScope.ScopeName + 'Contractor Scope', \"IOCA Master\");\r\n }\r\n\r\n } else {\r\n if (iocaDtl) {\r\n table = iocaDtl;\r\n var locData = getSelectedTierDtls();\r\n var tempLocDtl = lodash.find(table.LocDtl, {\r\n 'TypeOfWorkLocation': locData.TypeOfWorkLocation\r\n });\r\n if (tempLocDtl) {\r\n tempLocDtl.data = lodash.concat(tempLocDtl.data, locData.data);\r\n } else\r\n table.LocDtl.push(locData);\r\n\r\n table.TotQty = lodash.sumBy(tempLocDtl.data, 'PowQty');\r\n } else {\r\n table = {\r\n IOCA_Id: vm.item.selectedIoca.Id,\r\n IOCA_Code: vm.item.selectedIoca.Code + '-' + vm.item.selectedContractorScope.Code,\r\n IOCA_LongDes: vm.contScopeStr,\r\n TypeName: vm.item.selectedTypeOfCA.TypeName,\r\n TypeId: vm.item.selectedTypeOfCA.TypeId,\r\n UnitName: vm.item.selectedIoca.UnitName,\r\n SpecialNote: vm.SpecialNote,\r\n ContScope: vm.item.selectedContractorScope.Code,\r\n LocDtl: []\r\n }\r\n var locData = getSelectedTierDtls();\r\n table.LocDtl.push(locData);\r\n table.TotQty = lodash.sumBy(locData.data, 'PowQty');\r\n if (vm.contScopeStr != null || vm.contScopeStr != undefined) {\r\n vm.RFQList.push(angular.copy(table));\r\n vm.item.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedContractorScope = null;\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n clearTierSelection();\r\n } else {\r\n $rootScope.showToaster('error', 'Please Enter Description for' + vm.item.selectedContractorScope.ScopeName + 'Contractor Scope', \"IOCA Master\");\r\n }\r\n\r\n }\r\n }\r\n\r\n if (vm.isEditing == true && vm.rfqData && table && vm.contScopeStr != null) {\r\n table.ModifiedBy = loggedUserDtl.UserId;\r\n table.RfqId = vm.rfqData.RfqId;\r\n table.LocDtl = getTierIdAsCommaSeprated(table);\r\n RFQService.addIoca(table).then(function(res) {\r\n if (res.status === 200) {\r\n //vm.RFQList = res.data;\r\n vm.item.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedContractorScope = null;\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n clearTierSelection();\r\n $rootScope.showToaster('success', res.data.Message, \"RFQ IOCA Details\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"RFQ IOCA Details\");\r\n }\r\n });\r\n } else if (vm.contScopeStr == null) {\r\n $rootScope.showToaster('error', 'Please Enter Description for' + ' ' + vm.item.selectedContractorScope.ScopeName + ' ' + 'Contractor Scope', \"IOCA Master\");\r\n }\r\n vm.contScopeStr = null;\r\n getBoQTypeOfCAListBySubcategoryId(vm.item.selectedSubCategory.SubCategoryId)\r\n getApprovedContractor();\r\n }\r\n\r\n function getTierIdAsCommaSeprated(iocaDtl) {\r\n var tierIdStr = '';\r\n lodash.forEach(iocaDtl.LocDtl, function(loc) {\r\n var tempStr = lodash.map(loc.data, 'TierId').join(',');\r\n tierIdStr += tempStr + ',';\r\n });\r\n return tierIdStr.substring(0, tierIdStr.length - 1);\r\n }\r\n\r\n function remove(row) {\r\n if (vm.rfqData) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n var obj = {\r\n RfqId: vm.rfqData.RfqId,\r\n IOCA_Id: row.IOCA_Id\r\n }\r\n RFQService.removeIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RFQList = res.data;\r\n ViewRfqData();\r\n $rootScope.showToaster('success', 'Delete Ioca Detail', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n })\r\n })\r\n } else {\r\n // vm.RFQList.splice(row, 1)\r\n _.remove(vm.RFQList, {\r\n IOCA_Id: row.IOCA_Id\r\n });\r\n }\r\n }\r\n\r\n\r\n ///////////////////////////////\r\n function getDrawingDescription(PrjId) {\r\n DrawingUpoadService.getAllDrawingApproved(PrjId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data\r\n for (var i in vm.DescriptionList) {\r\n vm.DescriptionList[i].Description = vm.DescriptionList[i].ProjectCode + '-' +\r\n vm.DescriptionList[i].DrawingCode + '-' + vm.DescriptionList[i].SubjectDrawingCode + '-' + vm.DescriptionList[i].TierName + '-' +\r\n vm.DescriptionList[i].DrawingTitle + '-' + 'RE' + vm.DescriptionList[i].CurrentRevision\r\n }\r\n } else {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n\r\n // DRAWING Description\r\n function addAttachDoc() {\r\n // if (!vm.isEditing) { \r\n for (var i in vm.selectedDrawingDes) {\r\n vm.desc = {}\r\n vm.desc.Description = vm.selectedDrawingDes[i].Description,\r\n vm.desc.ImageUrl = vm.selectedDrawingDes[i].ImageUrl,\r\n vm.desc.DrawingDocId = vm.selectedDrawingDes[i].DrawingDocId\r\n var except = lodash.includes(lodash.map(vm.TotalDescriptionList, \"DrawingDocId\"), vm.desc.DrawingDocId);\r\n if (!except) {\r\n\r\n vm.TotalDescriptionList.push(vm.desc);\r\n vm.DrawingDocList.push(vm.desc.DrawingDocId);\r\n }\r\n\r\n }\r\n\r\n // var teststring = JSON.stringify(vm.DrawingDocList);\r\n // vm.DrawingDocId = teststring.substring(1, teststring.length - 1)\r\n\r\n\r\n }\r\n\r\n function viewDrawing(row) {\r\n var url = ''\r\n // if (vm.isView || vm.isEditing) {\r\n url = $rootScope.endPoint + 'DrawingUpload/' + row.ImageUrl;\r\n // } else {\r\n // var blob = new Blob([row.File], {\r\n // type: vm.selectedFile.type\r\n // });\r\n // url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n // }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function removeDrawing(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'You are about to delete a drawing description, please confirm.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n _.remove(vm.TotalDescriptionList, {\r\n DrawingDocId: row.DrawingDocId\r\n });\r\n _.remove(vm.DrawingDocList, {\r\n DrawingDocId: row.DrawingDocId\r\n });\r\n // vm.TotalDescriptionList.splice(row, 1)\r\n // vm.DrawingDocList.splice(row.DrawingDocId, 1)\r\n });\r\n }\r\n\r\n ///////////////////\r\n //GET RFQ TEMPLATE\r\n function getRfqTemplate(callback) {\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n var obj = {\r\n RfqTypeCode: vm.item.selectedRFQType.Code,\r\n TempId: vm.rfqTemplate.selectedTemplate.TempId,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n TypeofContractId: vm.rfqTemplate.selectedContract.Id,\r\n FieldofConstructionId: (vm.item.selectedFOC != undefined) ? vm.item.selectedFOC.FieldofConstructionId : null,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 2) {\r\n obj.CategoryId = (vm.item.selectedCategory != undefined) ? vm.item.selectedCategory.CategoryId : null\r\n }\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 3) {\r\n obj.CategoryId = (vm.item.selectedCategory != undefined) ? vm.item.selectedCategory.CategoryId : null\r\n obj.SubCategoryId = (vm.item.selectedSubCategory != undefined) ? vm.item.selectedSubCategory.SubCategoryId : null\r\n }\r\n RFQTemplateService.getCopyTemplate(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RFQTemplateList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Tempalte\");\r\n });\r\n\r\n }\r\n // TERMS AND CONDITION\r\n function GetallContent(Id) {\r\n RFQContentTemplateService.getcontentforRFQ(Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContentList = res.data.getContentforRFQ;\r\n vm.TemplateList = res.data.getTemplateValue;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Terms and Condition\");\r\n });\r\n }\r\n // CONTRACTOR ADD\r\n function getApprovedContractor() {\r\n vm.TypeIdList = [];\r\n for (var i in vm.RFQList) {\r\n vm.con = {}\r\n vm.con.TypeId = vm.RFQList[i].TypeId\r\n var except = lodash.includes(lodash.map(vm.TypeIdList, \"TypeId\"), vm.con.TypeId);\r\n if (!except) {\r\n vm.TypeIdList.push(vm.con.TypeId);\r\n }\r\n }\r\n\r\n vm.TypeId = vm.TypeIdList.join(',')\r\n var obj = {\r\n RfqType: vm.item.selectedRFQType.Code,\r\n ModifiedBy: loggedUserDtl.UserId,\r\n TypeId: vm.TypeId\r\n }\r\n RFQService.GetContractorByRfq(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (vm.ListContractor[0] != undefined) {\r\n for (var i in res.data) {\r\n for (var j in vm.ListContractor) {\r\n if (vm.ListContractor[j].ContractorId == res.data[i].ContractorId)\r\n res.data.splice(res.data[i], 1)\r\n }\r\n\r\n }\r\n vm.ContractorList = res.data;\r\n } else {\r\n vm.ContractorList = res.data;\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n\r\n }\r\n\r\n function addContractor() {\r\n vm.contractorIdList = []; //vm.contractorNameList =[];\r\n for (var i in vm.selectedContractor) {\r\n vm.contractor = {};\r\n // vm.contName.name = vm.selectedContractor[i].ContractorName\r\n vm.contractor.ContractorId = vm.selectedContractor[i].ContractorId\r\n vm.contractorIdList.push(vm.contractor);\r\n // vm.contractorNameList.push(vm.contName);\r\n\r\n }\r\n var teststring = JSON.stringify(vm.contractorIdList);\r\n vm.ContractorId = teststring.substring(1, teststring.length - 1)\r\n\r\n if (vm.rfqData) {\r\n var obj = {\r\n RfqId: vm.rfqData.RfqId,\r\n ContractorList: {\r\n \"ContList\": vm.contractorIdList\r\n },\r\n }\r\n RFQService.addContractor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ListContractor = res.data;\r\n vm.ContractorList = [];\r\n vm.selectedContractor = null;\r\n getApprovedContractor();\r\n $rootScope.showToaster('success', 'Insert Contractor Detail successfully', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n })\r\n } else {\r\n for (var i in vm.selectedContractor) {\r\n vm.contName = {};\r\n vm.contName.ContractorName = vm.selectedContractor[i].ContractorName\r\n vm.contName.ContractorId = vm.selectedContractor[i].ContractorId\r\n vm.ListContractor.push(vm.contName);\r\n }\r\n vm.ContractorList = [];\r\n vm.selectedContractor = null;\r\n getApprovedContractor();\r\n }\r\n\r\n }\r\n\r\n function removeContractor(row) {\r\n if (vm.rfqData) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n var obj = {\r\n RfqId: vm.rfqData.RfqId,\r\n ContractorId: row.ContractorId\r\n }\r\n RFQService.removeContractor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ListContractor = res.data;\r\n ViewRfqData();\r\n $rootScope.showToaster('success', 'Delete Contractor Detail', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n\r\n })\r\n })\r\n\r\n } else {\r\n // vm.ListContractor.splice(row, 1)\r\n _.remove(vm.ListContractor, {\r\n ContractorId: row.ContractorId\r\n });\r\n }\r\n\r\n }\r\n\r\n vm.checkMobilization = function(mob) {\r\n if (mob > 10 || mob < 5) {\r\n dialogs.notify('Mobilization', 'The Value must be less than or equal to 10 & Greater than or equal to 5', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.Mobilization = null;\r\n }\r\n }\r\n\r\n function saveRfq() {\r\n\r\n vm.DrawingDocId = vm.DrawingDocList.join(',')\r\n if (!vm.isEditing) {\r\n for (var i in vm.RFQList) {\r\n vm.RFQList[i].LocDtl = getTierIdAsCommaSeprated(vm.RFQList[i]);\r\n }\r\n var ReqArr = []\r\n for (var i in vm.TemplateList) {\r\n ReqArr.push({\r\n RequiredId: vm.TemplateList[i].RequiredId,\r\n TemplateValues: vm.TemplateList[i].TemplateValues,\r\n Values: vm.TemplateList[i].Values\r\n });\r\n\r\n }\r\n var obj = {\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Title: vm.Title,\r\n Subjects: vm.Subjects,\r\n Mobilization: (vm.Mobilization != undefined) ? vm.Mobilization : 0,\r\n Retention: vm.Retention,\r\n TDS: vm.TDS,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n MinPenalty: vm.MinPenalty,\r\n MaxPenalty: vm.MaxPenalty,\r\n DrawingsList: vm.DrawingDocId,\r\n LastSubDate: $filter('date')(vm.LastSubDate, 'yyyy-MM-dd'),\r\n RfqScope: vm.item.selectedRFQType.Code,\r\n RfqOf: vm.item.selectedStatus.id,\r\n contentTemplateList: {\r\n \"ContentList\": vm.ContentList\r\n },\r\n RequiredValueList: {\r\n \"RequiredList\": ReqArr,\r\n RfqTempId: vm.rfqTemplate.selectedRFQTemplate.RfQTempId\r\n },\r\n IocaDetails: {\r\n \"IocaList\": vm.RFQList\r\n },\r\n ContractorList: {\r\n \"ContList\": vm.contractorIdList\r\n },\r\n UserId: loggedUserDtl.UserId\r\n\r\n }\r\n RFQService.AddRFQDetails(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"RFQ\");\r\n vm.saveBtn = true;\r\n vm.isEditing = false;\r\n vm.isView = true;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.saveBtn = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Connect RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.saveBtn = false;\r\n });\r\n } else {\r\n var ReqArr = []\r\n\r\n for (var i in vm.TemplateList) {\r\n ReqArr.push({\r\n RequiredId: vm.TemplateList[i].RequiredId,\r\n TemplateValues: vm.TemplateList[i].TemplateValues,\r\n Values: vm.TemplateList[i].Values\r\n });\r\n\r\n }\r\n // for (var i in vm.TotalDescriptionList) {\r\n // vm.DrawingDocList.push(vm.TotalDescriptionList[i].DrawingDocId)\r\n // }\r\n // var teststring = JSON.stringify(vm.DrawingDocList);\r\n // vm.DrawingDocId = teststring.substring(1, teststring.length - 1)\r\n\r\n var obj = {\r\n RfqId: vm.rfqData.RfqId,\r\n Title: vm.Title,\r\n Subjects: vm.Subjects,\r\n Mobilization: (vm.Mobilization != undefined) ? vm.Mobilization : 0,\r\n Retention: vm.Retention,\r\n TDS: vm.TDS,\r\n MinPenalty: vm.MinPenalty,\r\n MaxPenalty: vm.MaxPenalty,\r\n Drawings: vm.DrawingDocId,\r\n LastSubDate: $filter('date')(vm.LastSubDate, 'yyyy-MM-dd'),\r\n RequiredValueList: {\r\n \"RequiredList\": ReqArr,\r\n RfqTempId: vm.RfqTempId\r\n },\r\n ModifiedBy: loggedUserDtl.UserId\r\n }\r\n\r\n RFQService.updateRfq(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"RFQ\");\r\n vm.isEditing = false;\r\n vm.saveBtn = true;\r\n vm.isView = true;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.saveBtn = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't connect RFQ\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.saveBtn = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n function edit() {\r\n vm.isEditing = true;\r\n vm.isView = false;\r\n if (vm.TotalDescriptionList != null)\r\n vm.Draw = 'Y'\r\n // getFOC(); \r\n // getApprovedContractor();\r\n getDrawingDescription(vm.rfqData.ProjectId);\r\n }\r\n\r\n function ViewRfqData() {\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == vm.rfqData.CompanyId) {\r\n vm.item.selectedCompany = vm.CompanyList[i];\r\n }\r\n }\r\n\r\n getProjectByCompanyId(vm.rfqData.CompanyId, function() {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == vm.rfqData.ProjectId) {\r\n vm.item.selectedProject = vm.ProjectList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.BoQTypeList) {\r\n if (vm.BoQTypeList[i].id == vm.rfqData.RfqOf) {\r\n vm.item.selectedStatus = vm.BoQTypeList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == vm.rfqData.RfqScope) {\r\n vm.item.selectedRFQType = vm.rfqTypeList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.TemplateRfqList) {\r\n if (vm.TemplateRfqList[i].TempId == vm.rfqData.TempId) {\r\n vm.rfqTemplate.selectedTemplate = vm.TemplateRfqList[i];\r\n }\r\n }\r\n\r\n getFOC(function() {\r\n for (var i in vm.focList) {\r\n if (vm.focList[i].FieldofConstructionId == vm.rfqData.FieldofConstructionId) {\r\n vm.item.selectedFOC = vm.focList[i];\r\n }\r\n }\r\n\r\n\r\n GetBoQCategoryByCountryId(vm.item.selectedProject.CountryId, vm.rfqData.FieldofConstructionId, function() {\r\n if (vm.rfqData.CategoryId || vm.rfqData.SubCategoryId) {\r\n for (var i in vm.CategoryList) {\r\n if (vm.CategoryList[i].CategoryId == vm.rfqData.CategoryId) {\r\n vm.item.selectedCategory = vm.CategoryList[i];\r\n }\r\n }\r\n\r\n getBoQSubCategoryCAListByCategoryId(vm.rfqData.CategoryId, function() {\r\n if (vm.rfqData.SubCategoryId) {\r\n for (var i in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[i].SubCategoryId == vm.rfqData.SubCategoryId) {\r\n vm.item.selectedSubCategory = vm.SubCategoryList[i];\r\n }\r\n }\r\n\r\n getBoQTypeOfCAListBySubcategoryId(vm.rfqData.SubCategoryId);\r\n }\r\n })\r\n }\r\n })\r\n\r\n\r\n\r\n for (var i in vm.TypeofBillList) {\r\n if (vm.TypeofBillList[i].BillId == vm.rfqData.BillId) {\r\n vm.rfqTemplate.selectedTypeofbill = vm.TypeofBillList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id == vm.rfqData.TypeOfContract) {\r\n vm.rfqTemplate.selectedContract = vm.TypeofContractList[i];\r\n }\r\n\r\n }\r\n getRfqTemplate(function() {\r\n for (var i in vm.RFQTemplateList) {\r\n if (vm.RFQTemplateList[i].RfQTempId == vm.rfqData.RfqTempId) {\r\n vm.rfqTemplate.selectedRFQTemplate = vm.RFQTemplateList[i];\r\n }\r\n\r\n }\r\n })\r\n\r\n })\r\n\r\n vm.RFQNo = vm.rfqData.RfqNo;\r\n vm.Title = vm.rfqData.Title;\r\n vm.Mobilization = vm.rfqData.Mobilization,\r\n vm.Retention = vm.rfqData.Retention,\r\n vm.TDS = vm.rfqData.TDS,\r\n vm.MinPenalty = vm.rfqData.MinPenalty,\r\n vm.MaxPenalty = vm.rfqData.MaxPenalty,\r\n vm.Subjects = vm.rfqData.Subjects;\r\n vm.LastSubDate = new Date(vm.rfqData.LastSubDate);\r\n RFQService.GetRfqDetails(vm.rfqData.RfqId).then(function(res) {\r\n vm.RFQList = res.data.RfqIocaDetails;\r\n getApprovedContractor();\r\n // getBoQTypeOfCAListBySubcategoryId(vm.rfqData.SubCategoryId, function () {\r\n // for (var i in res.data.RfqIocaDetails) {\r\n // if (vm.TypeOfCAList[i].TypeId == res.data.RfqIocaDetails[i].TypeId) {\r\n // vm.item.selectedTypeOfCA = vm.TypeOfCAList[i];\r\n // }\r\n\r\n // }\r\n // });\r\n lodash.forEach(vm.RFQList, function(ioca) {\r\n var parsedLocDtl = JSON.parse(ioca.LocDtl);\r\n var locDtlGroupByTypeOfWorkLoc = [];\r\n lodash.forEach(parsedLocDtl, function(loc) {\r\n var tierObj = lodash.find(locDtlGroupByTypeOfWorkLoc, {\r\n 'TypeOfWorkLocation': loc.TypeOfWorkLocation\r\n });\r\n var tempLocDtl = {};\r\n if (tierObj) {\r\n tierObj.TypeOfWorkLocation = loc.TypeOfWorkLocation;\r\n tierObj.data = lodash.concat(tierObj.data, genTierDetailObject(loc));\r\n } else {\r\n var tempLocDtl = {};\r\n tempLocDtl.TypeOfWorkLocation = loc.TypeOfWorkLocation;\r\n tempLocDtl.data = [];\r\n tempLocDtl.data.push(genTierDetailObject(loc));\r\n locDtlGroupByTypeOfWorkLoc.push(tempLocDtl);\r\n }\r\n })\r\n ioca.LocDtl = locDtlGroupByTypeOfWorkLoc;\r\n })\r\n //#Load DrawingList \r\n vm.TotalDescriptionList = res.data.Drawings;\r\n for (var i in vm.TotalDescriptionList) {\r\n vm.TotalDescriptionList[i].Description = vm.TotalDescriptionList[i].ProjectCode + '-' +\r\n vm.TotalDescriptionList[i].DrawingCode + '-' + vm.TotalDescriptionList[i].SubjectDrawingCode + '-' + vm.TotalDescriptionList[i].TierName + '-' +\r\n vm.TotalDescriptionList[i].DrawingTitle + '-' + 'RE' + vm.TotalDescriptionList[i].CurrentRevision\r\n }\r\n\r\n for (var i in vm.TotalDescriptionList) {\r\n vm.DrawingDocList.push(vm.TotalDescriptionList[i].DrawingDocId)\r\n }\r\n //#Load DrawingList#\r\n\r\n //#Load ContractorList\r\n vm.ListContractor = res.data.RfqContractor;\r\n //#Load ContractorList#\r\n for (var i in res.data.RfqRequiredValues.RequiredList) {\r\n vm.TemplateList = res.data.RfqRequiredValues.RequiredList[i];\r\n vm.RfqTempId = res.data.RfqRequiredValues.RfqTempId;\r\n }\r\n vm.ContentList = res.data.RfqTemplateContentList;\r\n\r\n\r\n //var temp = lodash.groupBy(locDtls, 'TypeOfWorkLocation');\r\n }, function(err) {});\r\n\r\n return (vm.RFQList);\r\n return (vm.ListContractor);\r\n })\r\n }\r\n\r\n function sendForApproval() {\r\n RFQService.sendForApproval(vm.rfqData.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n back();\r\n $rootScope.showToaster('success', 'Send RFQ Data', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n })\r\n }\r\n\r\n function reject() {\r\n var rfq = {\r\n RfqId: vm.rfqData.RfqId\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rejectRfq.html',\r\n controller: 'RFQRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return rfq;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function viewNote(row) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rfqSpecialNote.html',\r\n controller: 'RFQSpecialNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return row;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(note) {\r\n row.SpecialNote = note;\r\n }, function() {});\r\n }\r\n\r\n function Approve() {\r\n RFQService.ApproveRfq(vm.rfqData.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n back();\r\n $rootScope.showToaster('success', 'Approve RFQ Data', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n })\r\n }\r\n\r\n function resubmit() {\r\n RFQService.resubmitRfq(vm.rfqData.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n back();\r\n $rootScope.showToaster('success', 'Approve RFQ Data', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n })\r\n }\r\n\r\n function block() {\r\n var rfq = {\r\n RfqId: vm.rfqData.RfqId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/RFQ/rfqPreparation/rejectRfq.html',\r\n controller: 'RFQRejectionCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return rfq;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n\r\n // RFQ Report\r\n\r\n function showReport() {\r\n vm.isLoading = true;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n //Header\r\n var strHeading = null;\r\n // strHeading = vm.selectedReportType.ReportTypeName + \" \" + vm.selectedPeriod.PeriodTypeName + \" From \" + vm.selectedRequirement.RequirementName + \" - \" + vm.selectedRequirementBased.RequirementBasedName \r\n //+ \"
\" + \"From :\" + \" \" + $filter('date')(vm.plan.From, 'dd-MM-yyyy') + \" To \" + $filter('date')(vm.plan.To, 'dd-MM-yyyy');\r\n\r\n\r\n\r\n //Input Values\r\n\r\n var obj = {\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n RfqId: vm.rfqData.RfqId,\r\n strHeading: '',\r\n GroupCompanyName: vm.item.selectedCompany.CompanyName,\r\n ProjectName: vm.item.selectedProject.ProjectName\r\n }\r\n console.log(obj);\r\n RFQService.showReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n // Init();\r\n } else {\r\n dialogs.error('error', \"Can't download Report\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function cancel() {\r\n if (!vm.isEditing) {\r\n vm.item = {};\r\n vm.RFQList = [];\r\n vm.rfqTemplate = {};\r\n vm.ListContractor = [];\r\n vm.isFormOpen = true;\r\n vm.selectedCategory = null;\r\n vm.selectedSubCategory = null;\r\n vm.selectedTypeOfCA = null;\r\n vm.item.selectedProjectIoca = [];\r\n vm.selectedTypeOfAttribute = null;\r\n vm.RfqPreparationForm.$setUntouched();\r\n } else {\r\n vm.isView = true;\r\n vm.isEditing = false;\r\n ViewRfqData();\r\n }\r\n }\r\n\r\n ////\r\n\r\n\r\n function create() {\r\n vm.isFormOpen = true;\r\n vm.isAdd = false;\r\n vm.item = {};\r\n }\r\n\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.allTierData, function(tier) {\r\n tier.selectedTireValue = null;\r\n tier.Values = [];\r\n })\r\n // $rootScope.uncheckAll();\r\n // $scope.dirOptions.uncheckAll();\r\n }\r\n\r\n function clearIoca() {\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n clearTierSelection();\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n }\r\n\r\n function clearType() {\r\n clearIoca();\r\n vm.item.selectedTypeOfCA = null;\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.TypeOfCAList = [];\r\n }\r\n\r\n function clearSubcategory() {\r\n clearType();\r\n clearIoca();\r\n vm.item.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n }\r\n\r\n function clearCategory() {\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n vm.item.selectedCategory = null;\r\n vm.CategoryList = [];\r\n }\r\n\r\n // function clearCountry() {\r\n // clearCategory()\r\n // clearSubcategory()\r\n // clearType();\r\n // clearIoca();\r\n // vm.item.selectedCountry = null;\r\n // vm.CountryList = [];\r\n // }\r\n\r\n function clearFoc() {\r\n // clearCountry()\r\n clearCategory()\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n vm.item.selectedFOC = null;\r\n vm.focList = [];\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n }\r\n\r\n function back() {\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('RFQSpecialNoteCtrl', RFQSpecialNoteCtrl);\r\n\r\n /** @ngInject */\r\n function RFQSpecialNoteCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.SaveSpecialNote = function () {\r\n if (items) {\r\n items.SpecialNotes = vm.rfq.SpecialNotes\r\n }\r\n $uibModalInstance.close(items.SpecialNotes);\r\n // $state.go('rfqPreparation');\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('DraftRfqCtrl', DraftRfqCtrl);\r\n\r\n /** @ngInject */\r\n function DraftRfqCtrl($rootScope, lodash, dialogs, $http, $state, AuthenticationService,\r\n $scope, $filter, $window, RFQService, CompanyService, projectCreationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n vm.isFormOpen = false;\r\n vm.wtn = false;\r\n $rootScope.isLogin = false;\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n vm.viewRfq = viewRfq;\r\n vm.fromDraft = fromDraft;\r\n vm.DeleteRfq = DeleteRfq;\r\n vm.fromBackforCorrection = fromBackforCorrection;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getRfqByProjectId = getRfqByProjectId;\r\n vm.StatusId = $state.params.Status;\r\n // vm.wtn = $state.params.Status == 3;\r\n Init();\r\n\r\n function Init() {\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 }, { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 }, { MenuName: 'Waiting for Approval of Draft', StatusId: 3 }, { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 6 }\r\n ]\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.item.selectedProject = null;\r\n // var isWrkAlloc = true;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.item.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.RfqList = [];\r\n }\r\n\r\n }\r\n\r\n function getRfqByProjectId() {\r\n var obj = {\r\n RfqId: (vm.RfqId) ? vm.RfqId : '',\r\n Status: vm.StatusId,\r\n ModifiedBy: loggedUserDtl.UserId,\r\n ProjectId: vm.item.selectedProject.ProjectId\r\n };\r\n if (obj.ProjectId) {\r\n RFQService.getAllRfq(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RfqList = res.data;\r\n if (vm.RfqList.length < 1) {\r\n dialogs.notify('Warning', 'No RFQ available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (vm.StatusId === 3) {\r\n vm.wtn = true;\r\n vm.waitingList = lodash.filter(res.data, { 'RfqStatus': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'RfqStatus': 2 });\r\n\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Draft Rfq\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Draft Rfq\");\r\n });\r\n } else {\r\n vm.RfqList = [];\r\n }\r\n\r\n }\r\n\r\n function viewRfq(row) {\r\n var data = {\r\n isEditing: true,\r\n RfqData: row,\r\n isView: true\r\n };\r\n\r\n $state.go('viewRfq', {\r\n data: data\r\n })\r\n }\r\n\r\n function fromDraft() {\r\n vm.wtn = false;\r\n vm.StatusId = 3\r\n vm.RfqList = vm.waitingList;\r\n }\r\n\r\n function fromBackforCorrection() {\r\n vm.wtn = false;\r\n vm.StatusId = 2\r\n vm.RfqList = vm.resubmittedList;\r\n }\r\n vm.back = function() {\r\n vm.wtn = true;\r\n }\r\n\r\n function DeleteRfq(row) {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to Delete this RFQ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n RFQService.DeleteRfq(row.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n getRfqByProjectId(vm.item.selectedProject.ProjectId);\r\n $rootScope.showToaster('success', 'Deleted RFQ Data', \"RFQ\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('RfqComparisionCtrl', RfqComparisionCtrl);\r\n\r\n /** @ngInject */\r\n function RfqComparisionCtrl(lodash, dialogs, $log, $rootScope, $scope, RfqContractorService, AuthenticationService, $filter, $state) {\r\n var vm = this;\r\n\r\n ///// Properties ///////\r\n vm.IsComparing = false;\r\n vm.isLoading = false;\r\n vm.RfqToCompare = {}\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n ///// Static Data /////\r\n vm.TypeofContractList = [{\r\n ContractName: 'Item Rate Contract',\r\n Id: 1\r\n }, {\r\n ContractName: 'Lump Sum Contract',\r\n Id: 2\r\n }, {\r\n ContractName: 'Lump sum and Schedule Contract',\r\n Id: 3\r\n }];\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n }, {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }]\r\n\r\n ///// Functions ////////\r\n vm.compareQuatation = compareQuatation;\r\n\r\n init();\r\n ////////////////\r\n\r\n function init() {\r\n vm.IsComparing = false;\r\n RfqContractorService.getAllApprovedRfq(CompanyId).then(function(res) {\r\n lodash.forEach(res.data, function(rfq) {\r\n rfq.RfqScope = lodash.find(vm.rfqTypeList, {\r\n \"Code\": rfq.RfqScope\r\n }).rfqTypeName;\r\n rfq.TypeOfContract = lodash.find(vm.TypeofContractList, {\r\n \"Id\": rfq.TypeOfContract\r\n }).ContractName;\r\n })\r\n\r\n res.data = lodash.groupBy(res.data, 'CompanyName');\r\n for (var key in res.data) {\r\n res.data[key] = lodash.groupBy(res.data[key], 'ProjectName');\r\n }\r\n\r\n vm.RfqList = res.data;\r\n }, function(err) {});\r\n }\r\n\r\n function compareQuatation(rfq) {\r\n if (rfq.NoOfContractor === 0) {\r\n dialogs.notify('Warning', 'Selected RFQ has no Contractors', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else if (rfq.QuotationRecived === 0) {\r\n dialogs.notify('Warning', 'Selected RFQ has no Quatation Details', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n vm.RfqToCompare = rfq;\r\n vm.isLoading = true;\r\n RfqContractorService.getRfqQuotationDetails(rfq.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RfqToCompare.RfqIocaDetails = JSON.parse(res.data);\r\n vm.isLoading = false;\r\n var temp = {};\r\n vm.contList = [];\r\n lodash.forIn(vm.RfqToCompare.RfqIocaDetails[0], function(val, col) {\r\n var strArr = col.split('/');\r\n if (strArr[0] === '###') {\r\n var sum = lodash.sumBy(vm.RfqToCompare.RfqIocaDetails, col)\r\n temp[col] = '' + $filter('number')(sum, 2) + '';\r\n vm.contList.push(col);\r\n } else {\r\n temp[col] = \"\"\r\n }\r\n });\r\n\r\n vm.RfqToCompare.RfqIocaDetails.push(temp);\r\n vm.isLoading = false;\r\n $state.go('newRfqComparision', { data: { rfqToCompare: vm.RfqToCompare, contList: vm.contList }, mode: 'CREATE' });\r\n }\r\n }, function(err) {});\r\n }\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('RFQContractorNoteCtrl', RFQContractorNoteCtrl);\r\n\r\n /** @ngInject */\r\n function RFQContractorNoteCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.SaveContractorNote = function () {\r\n if (items) {\r\n items.ContractorNote = vm.rfq.ContractorNote\r\n }\r\n $uibModalInstance.close(items.ContractorNote);\r\n // $state.go('rfqPreparation');\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq')\r\n .controller('RfqContractorCtrl', RfqContractorCtrl);\r\n\r\n /** @ngInject */\r\n function RfqContractorCtrl($rootScope, lodash, dialogs, $http, $state, AuthenticationService,\r\n $scope, $filter, $window, RFQService, RfqContractorService, DrawingUpoadService, $uibModal) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.RfqDtlList = [];\r\n vm.LetterList = [];\r\n vm.DrawingsList = [];\r\n vm.SignatureList = [];\r\n vm.ContractorRfqTermsandContList = [];\r\n vm.isLoading = true;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isView = false;\r\n $rootScope.isLogin = false;\r\n vm.loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n vm.rateEntry = rateEntry;\r\n vm.viewDrawing = viewDrawing;\r\n vm.addAttachDoc = addAttachDoc;\r\n vm.addSign = addSign;\r\n vm.viewFile = viewFile;\r\n vm.cancel = cancel;\r\n vm.Total = Total;\r\n // $state.params.data = {};\r\n vm.Unquoted = $state.params.data.Status == 1;\r\n vm.QuotedDraft = $state.params.data.Status == 2;\r\n vm.submittedList = $state.params.data.Status == 3;\r\n vm.saveContractorRate = saveContractorRate;\r\n Init();\r\n vm.TaxList = [{ Tax: 0 }, { Tax: 5 }, { Tax: 18 }, { Tax: 28 }]\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ];\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n function Init() {\r\n debugger;\r\n vm.contractorId = vm.loggedUserDtl.RefId;\r\n RfqContractorService.getRfqByContractor(vm.contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n console.log(res.data);\r\n if (vm.Unquoted) {\r\n vm.ContractorRfqUnquotedList = lodash.filter(res.data, { 'RfqStatus': 4, 'ContRfqStatus': 1 });\r\n if (vm.ContractorRfqUnquotedList.length <= 0) {\r\n dialogs.notify('warning', \"There is no data for RFQ\", { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n } else if (vm.QuotedDraft) {\r\n vm.ContractorRfqQuotedList = lodash.filter(res.data, { 'RfqStatus': 4, 'ContRfqStatus': 2 });\r\n if (vm.ContractorRfqQuotedList.length <= 0) {\r\n dialogs.notify('warning', \"There is no data for Saved Draft Quatation\", { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n } else if (vm.submittedList) {\r\n vm.ContractorSubmittedList = lodash.filter(res.data, { 'RfqStatus': 4, 'ContRfqStatus': 3 });\r\n if (vm.ContractorSubmittedList.length <= 0) {\r\n dialogs.notify('warning', \"There is no data for Approved Quatation\", { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n } else {\r\n vm.ContractorRfqCancelledList = lodash.filter(res.data, { 'RfqStatus': 5 });\r\n if (vm.ContractorRfqCancelledList.length <= 0) {\r\n dialogs.notify('warning', \"There is no data for Cancelled RFQ\", { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n vm.isLoading = false;\r\n // dialogs.notify('warning', \"There is no data for selected Bill\", { animation: true, size: 'sm' });\r\n // $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n function getIocaDtlforContractor(rfqId, contractorId) {\r\n RfqContractorService.getContRfqIocaDtls(rfqId, contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorRfqIocaList = res.data.RfqIocaDetails;\r\n vm.grandTotal = 0;\r\n for (var i in vm.ContractorRfqIocaList) {\r\n vm.ContractorRfqIocaList[i].LocDtl = JSON.parse(vm.ContractorRfqIocaList[i].LocDtl)\r\n vm.LocDtl = vm.ContractorRfqIocaList[i].LocDtl;\r\n // vm.Total(vm.ContractorRfqIocaList[i]);\r\n if (vm.ContractorRfqIocaList[i].UnitRate != undefined && vm.ContractorRfqIocaList[i].Tax != undefined) {\r\n var totalQuantity = vm.ContractorRfqIocaList[i].TotQty;\r\n vm.ContractorRfqIocaList[i].total = ((((totalQuantity) - 0) * ((vm.ContractorRfqIocaList[i].UnitRate) - 0)) * (((vm.ContractorRfqIocaList[i].Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n\r\n for (var c in vm.TaxList) {\r\n if (vm.TaxList[c].Tax === vm.ContractorRfqIocaList[i].Tax) {\r\n vm.ContractorRfqIocaList[i].Tax = vm.TaxList[c];\r\n }\r\n }\r\n }\r\n\r\n for (var j in vm.LocDtl) {\r\n vm.tier = vm.LocDtl[j].TierId\r\n }\r\n if (vm.tier == \"\")\r\n vm.nonLoc = true;\r\n else\r\n vm.nonLoc = false;\r\n }\r\n\r\n for (var k in vm.ContractorRfqIocaList) {\r\n var totalRate = vm.ContractorRfqIocaList[k].total;\r\n vm.grandTotal += totalRate;\r\n }\r\n if (res.data.AttachmentUrl != undefined && res.data.AttachmentUrl != \"\") {\r\n vm.LetterList.push({ FileName: res.data.AttachmentUrl });\r\n vm.SignatureList.push({ FileName: res.data.DigitalSignUrl });\r\n }\r\n if (vm.Unquoted) {\r\n vm.ContractorRfqTermsandContList = res.data.TermsAndConditions;\r\n for (var i in vm.ContractorRfqTermsandContList) {\r\n vm.ContractorRfqTermsandContList[i].Agreed = (vm.ContractorRfqTermsandContList[i].Agreed == undefined);\r\n }\r\n } else {\r\n vm.ContractorRfqTermsandContList = res.data.TermsAndConditions;\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n function rateEntry(row) {\r\n vm.rfq = {};\r\n vm.rfqId = row.RfqId;\r\n vm.rfq.rfqNo = row.RfqNo;\r\n vm.rfq.LastDate = new Date(row.LastSubDate);\r\n vm.rfq.rfqDate = new Date(row.CreatedOn);\r\n vm.rfq.Title = row.Title;\r\n vm.rfq.Subjects = row.Subjects;\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code === row.RfqScope) {\r\n vm.rfq.TypeofRfq = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === row.TypeOfContract) {\r\n vm.rfq.typeofContract = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n getDrawingDescription(row.Drawings, function() {});\r\n var today = new Date();\r\n var dd = today.getDate();\r\n var mm = today.getMonth() + 1; //January is 0!\r\n var yyyy = today.getFullYear();\r\n if (dd < 10) {\r\n dd = '0' + dd\r\n }\r\n if (mm < 10) {\r\n mm = '0' + mm\r\n }\r\n today = yyyy + '/' + mm + '/' + dd;\r\n $scope.today = today;\r\n var date2 = new Date(today);\r\n var date1 = new Date(row.LastSubDate);\r\n if ((date1 < date2) && (vm.Unquoted || vm.QuotedDraft)) {\r\n dialogs.notify('Warning', 'You Cannot Show the Rate Entry Because Rfq Last Date are Finished ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isFormOpen = false;\r\n } else {\r\n vm.isFormOpen = true;\r\n }\r\n var timeDiff = Math.abs(date2.getTime() - date1.getTime());\r\n vm.rfq.remainDate = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n // vm.rfq.remainTime = Math.floor(timeDiff/(1000*60*60)).toLocaleString(undefined, {minimumIntegerDigits: 2}) + \":\" + (Math.floor(timeDiff/(1000*60))%60).toLocaleString(undefined, {minimumIntegerDigits: 2}) + \":\" + (Math.floor(timeDiff/1000)%60).toLocaleString(undefined, {minimumIntegerDigits: 2}) ; \r\n\r\n getIocaDtlforContractor(vm.rfqId, vm.contractorId);\r\n\r\n }\r\n\r\n vm.back = function() {\r\n vm.isFormOpen = false;\r\n\r\n }\r\n $scope.fileChanged = function(event) {\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n\r\n }\r\n\r\n vm.contractorNote = function(row) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/RFQ/rfqContractor/contractorNote.html',\r\n controller: 'RFQContractorNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return row;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(note) {\r\n for (var i in vm.ContractorRfqTermsandContList) {\r\n if (vm.ContractorRfqTermsandContList[i].RfqContId == row.RfqContId) {\r\n vm.ContractorRfqTermsandContList[i].ContractorNote = note\r\n }\r\n }\r\n }, function() {});\r\n }\r\n\r\n function addAttachDoc() {\r\n if (!vm.selectedFile.name)\r\n $rootScope.showToaster('warning', 'Please Select Any File', \"RFQ\");\r\n if (vm.QuotedDraft) {\r\n vm.LetterList = [];\r\n vm.LetterList.push({\r\n FileName: vm.selectedFile.name,\r\n File: vm.selectedFile\r\n })\r\n var formData = new FormData();\r\n for (var i in vm.LetterList) {\r\n formData.append('attachment', vm.LetterList[i].File);\r\n }\r\n RfqContractorService.updateAttachment(formData, vm.rfqId, vm.contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Attached Successfully', \"RFQ\");\r\n vm.isLoading = false;\r\n vm.LetterList = [{ FileName: res.data }];\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n } else {\r\n vm.LetterList = [];\r\n vm.LetterList.push({\r\n FileName: vm.selectedFile.name,\r\n File: vm.selectedFile\r\n })\r\n }\r\n vm.selectedFile = [];\r\n }\r\n\r\n function addSign() {\r\n if (!vm.selectedFile.name)\r\n $rootScope.showToaster('warning', 'Please Select Any File', \"RFQ\");\r\n if (vm.QuotedDraft) {\r\n vm.SignatureList = [];\r\n vm.SignatureList.push({\r\n FileName: vm.selectedFile.name,\r\n File: vm.selectedFile\r\n })\r\n var formData = new FormData();\r\n for (var i in vm.SignatureList) {\r\n formData.append('sign', vm.SignatureList[i].File);\r\n }\r\n RfqContractorService.updateSign(formData, vm.rfqId, vm.contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Attached Successfully', \"RFQ\");\r\n vm.SignatureList = [{ FileName: res.data }];\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n } else {\r\n vm.SignatureList = [];\r\n vm.SignatureList.push({\r\n FileName: vm.selectedFile.name,\r\n File: vm.selectedFile\r\n })\r\n }\r\n vm.selectedFile = [];\r\n }\r\n\r\n function getDrawingDescription(DrawingsId, callback) {\r\n DrawingUpoadService.getAllDrawingbyDocId(DrawingsId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DrawingsList = res.data\r\n for (var i in vm.DrawingsList) {\r\n vm.DrawingsList[i].Description = vm.DrawingsList[i].ProjectCode + '-' +\r\n vm.DrawingsList[i].DrawingCode + '-' + vm.DrawingsList[i].SubjectDrawingCode + '-' + vm.DrawingsList[i].TierName + '-' +\r\n vm.DrawingsList[i].DrawingTitle + '-' + 'RE' + vm.DrawingsList[i].CurrentRevision\r\n }\r\n if (callback);\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n\r\n function viewDrawing(row) {\r\n var url = '';\r\n url = $rootScope.endPoint + 'DrawingUpload/' + row.ImageUrl;\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function viewFile(row, name) {\r\n var url = '';\r\n if ((vm.QuotedDraft && name) || (vm.submittedList && name)) {\r\n url = $rootScope.endPoint + 'UploadedDocuments/ContractorDocs/' + name;\r\n } else {\r\n var blob = new Blob([row.File], {\r\n type: row.File.type\r\n });\r\n url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function Total(row) {\r\n vm.grandTotal = 0;\r\n if (row.UnitRate != undefined && row.Tax.Tax != undefined) {\r\n var totalQuantity = row.TotQty;\r\n row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n }\r\n for (var i in vm.ContractorRfqIocaList) {\r\n var totalRate = vm.ContractorRfqIocaList[i].total;\r\n vm.grandTotal += totalRate;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n function saveContractorRate() {\r\n for (var i in vm.ContractorRfqIocaList) {\r\n vm.ContractorRfqIocaList[i].LocDtl = JSON.stringify(vm.ContractorRfqIocaList[i].LocDtl)\r\n }\r\n for (var i in vm.ContractorRfqIocaList) {\r\n vm.ContractorRfqIocaList[i].Tax = vm.ContractorRfqIocaList[i].Tax.Tax\r\n }\r\n var obj = {\r\n RfqId: vm.rfqId,\r\n ContractorId: vm.contractorId,\r\n RfqIocaDetails: vm.ContractorRfqIocaList,\r\n TermsAndConditions: vm.ContractorRfqTermsandContList\r\n }\r\n var formData = new FormData();\r\n for (var i in vm.LetterList) {\r\n formData.append('attachment', vm.LetterList[i].File);\r\n }\r\n for (var i in vm.SignatureList) {\r\n formData.append('sign', vm.SignatureList[i].File);\r\n }\r\n formData.append('data', JSON.stringify(obj))\r\n if (vm.QuotedDraft) {\r\n var confirm = dialogs.confirm('FINAL CONFIRMATION',\r\n 'Do you wish to SUBMIT YOUR QUOTATION FOR' + ' ' + '' + vm.rfq.Title + '' + '

' + 'if yes,then click \"Yes\" or if not then click \"No\"' + '

' + ' NOTE: IF SUBMITTED,THEN NO CORRECTION CANNOT BE DONE LATER', {\r\n animation: true,\r\n size: 'md'\r\n });\r\n confirm.result.then(function() {\r\n for (var i in vm.LetterList) {\r\n obj.AttachmentUrl = vm.LetterList[i].FileName;\r\n }\r\n for (var i in vm.SignatureList) {\r\n obj.DigitalSignUrl = vm.SignatureList[i].FileName;\r\n }\r\n RfqContractorService.submitContRfq(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Submitted Successfully', \"RFQ\");\r\n cancel();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n });\r\n } else {\r\n RfqContractorService.addContractorRateAndDtl(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Save Successfully', \"RFQ\");\r\n cancel();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.resetForm();\r\n vm.ContractorRfqIocaList = [];\r\n vm.ContractorRfqTermsandContList = [];\r\n vm.LetterList = [];\r\n vm.SignatureList = [];\r\n Init();\r\n }\r\n vm.resetForm = function() {\r\n vm.rateEntryContractorForm.$setUntouched();\r\n }\r\n //// Report ///\r\n vm.showReport = function() {\r\n vm.isLoading = true;\r\n var obj = {\r\n RfqId: vm.rfqId,\r\n ContractorId: vm.contractorId,\r\n //ActionBy: loggedUserDtl.UserId\r\n }\r\n\r\n RfqContractorService.showContractorRfqReport(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ExportPdfData = res.data;\r\n vm.isLoading = false;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', 'Successfully', \"Report Download\");\r\n } else if (res.status === 202) {\r\n $rootScope.showToaster('info', \"Bad Request Contact To System Admin\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', \"incorrect data\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n // vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'No data Found', { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.role')\r\n .controller('RoleMenuMappingCtrl', RoleMenuMappingCtrl);\r\n\r\n /** @ngInject */\r\n function RoleMenuMappingCtrl($scope, $rootScope, $state, $http, lodash, dialogs, RoleService) {\r\n var vm = this;\r\n $rootScope.isLogin = false;\r\n vm.isLoading = false;\r\n\r\n // Properties\r\n vm.errorList = [];\r\n // Methods\r\n vm.getRoleMenuMapping = getRoleMenuMapping;\r\n vm.selectMenu = selectMenu;\r\n vm.saveRoleMenuMapping = saveRoleMenuMapping;\r\n vm.select = select;\r\n\r\n init();\r\n ////////////////\r\n\r\n vm.collapseAll = function() {\r\n $scope.$broadcast('angular-ui-tree:collapse-all');\r\n };\r\n\r\n vm.expandAll = function() {\r\n $scope.$broadcast('angular-ui-tree:expand-all');\r\n };\r\n //////\r\n\r\n function select() {\r\n\r\n };\r\n //////\r\n\r\n function init() {\r\n vm.isLoading = true;\r\n RoleService.getAllRole().then(function(res) {\r\n if (res.status === 200) {\r\n vm.RoleList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Try Again', \"Role\");\r\n });\r\n }\r\n\r\n function getRoleMenuMapping() {\r\n vm.isLoading = true;\r\n vm.selectedMenu = {};\r\n RoleService.getRoleMenuMapping(vm.selectedRole.RoleId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.menuList = res.data;\r\n vm.isLoading = false;\r\n // logic\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Try Again', \"Role\");\r\n })\r\n }\r\n\r\n function selectMenu(menu) {\r\n vm.selectedMenu = menu;\r\n }\r\n\r\n function saveRoleMenuMapping() {\r\n vm.isLoading = true;\r\n RoleService.saveRoleMenuMapping(vm.selectedRole.RoleId, vm.menuList).then(function(res) {\r\n if (res.status === 200 && res.data) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', 'Mapping Successfully Saved', \"Role\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Try Again', \"Role\");\r\n })\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .controller('boqIocaSequenceCtrl', boqIocaSequenceCtrl);\r\n\r\n /** @ngInject */\r\n function boqIocaSequenceCtrl($http, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n LocationSetupService, BoqSequenceService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isLoading = true;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getIOCAByLoc = getIOCAByLoc;\r\n vm.saveSequence = saveSequence;\r\n vm.editOrder = editOrder;\r\n vm.removeSequence = removeSequence;\r\n vm.IOCAList = [];\r\n $rootScope.isLogin = false;\r\n //Method \r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n // vm.sequenceList = [{ Code: 'AA01', TypeName: 'Exavation Type', Sequence: 1 }, { Code: 'AA02', TypeName: 'Pcc Footing', Sequence: 2 },\r\n // { Code: 'AA03', TypeName: 'Cutting and Pending', Sequence: 3 }]\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n function Init() {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n function getLocationByProject(ProjectId) {\r\n if (ProjectId) {\r\n vm.seq.Location = null;\r\n vm.LocationMaster = [];\r\n vm.IOCAList = [];\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.seq.Location = null;\r\n vm.LocationMaster = [];\r\n vm.IOCAList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n function getIOCAByLoc(ProjectId, LocationId) {\r\n vm.isLoading=true;\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.getSequenceForIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.IOCAList = res.data;\r\n // if (vm.IOCAList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no IOCA in selected Location', {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"IOCA Sequence\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"IOCA Sequence\");\r\n });\r\n\r\n }\r\n\r\n\r\n function editOrder(row) {\r\n debugger;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n IOCASequenceId: row.IOCASequenceId,\r\n LastTierId: row.LastTierId,\r\n OrderofSequence: row.OrderofSequence,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.UpdateIOCASequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"BillofQuantity IOCA Sequence\");\r\n getIOCAByLoc(row.ProjectId, row.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"BillofQuantity IOCA Sequence\");\r\n getIOCAByLoc(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n\r\n function removeSequence(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n var obj = {\r\n IOCASequenceId: row.IOCASequenceId,\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.RemoveIOCASequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"BillofQuantity IOCA Sequence\");\r\n getIOCAByLoc(row.ProjectId, row.LocationId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"BillofQuantity IOCA Sequence\");\r\n getIOCAByLoc(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n function saveSequence() {\r\n if (vm.selectedIoca != undefined && vm.selectedIoca.length != 0) {\r\n debugger;\r\n var arr = [];\r\n for (var i in vm.selectedIoca) {\r\n arr.push(vm.selectedIoca[i].IOCA_Id)\r\n }\r\n vm.IOCA_Id = arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.seq.selectedProject.ProjectId,\r\n LocationId: vm.seq.Location.LocationId,\r\n IOCA_Id: vm.IOCA_Id,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.CreateSequenceBoq(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Boq Tier Sequence\");\r\n getIOCAByLoc(vm.seq.selectedProject.ProjectId, vm.seq.Location.LocationId);\r\n vm.selectedIoca = null;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Boq Tier Sequence\");\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n dialogs.notify('Warning', 'Select Atleast One Tiers !', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .controller('boqTierSequenceCtrl', boqTierSequenceCtrl);\r\n\r\n /** @ngInject */\r\n function boqTierSequenceCtrl($http, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n LocationSetupService, BoqSequenceService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isLoading = false;\r\n vm.getLocationByProject = getLocationByProject;\r\n vm.getTierByLoc = getTierByLoc;\r\n vm.saveSequence = saveSequence;\r\n vm.editOrder = editOrder;\r\n vm.removeSequence = removeSequence;\r\n vm.TierListList = [];\r\n $rootScope.isLogin = false;\r\n vm.isAdd = false;\r\n vm.cancel= cancel;\r\n //Method \r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n // vm.sequenceList = [{ Code: 'AA01', TypeName: 'Exavation Type', Sequence: 1 }, { Code: 'AA02', TypeName: 'Pcc Footing', Sequence: 2 },\r\n // { Code: 'AA03', TypeName: 'Cutting and Pending', Sequence: 3 }]\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n function Init() {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n function getLocationByProject(ProjectId) {\r\n if (ProjectId) {\r\n vm.seq.Location = null;\r\n vm.LocationMaster = [];\r\n vm.BoqTiersList = [];\r\n\r\n var obj = {\r\n ProjectId: ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n dialogs.notify('Warning', '! There is no work Location available in selected Project', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n } else {\r\n vm.FilterCountry = true;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Country Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Country Master\");\r\n });\r\n }\r\n else {\r\n vm.seq.Location = null;\r\n vm.LocationMaster = [];\r\n vm.BoqTiersList = [];\r\n }\r\n }\r\n\r\n function cancel(){\r\n vm.seq.selectedProject= null;\r\n vm.seq.Location= null;\r\n vm.selectedTiers= null;\r\n\r\n }\r\n\r\n function getTierByLoc(ProjectId, LocationId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.GetAllBoqTierSequence(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BoqTiersList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.isAdd) {\r\n getAllBoqSequence(ProjectId, LocationId);\r\n }\r\n else {\r\n vm.selectedTiers = null;\r\n vm.TierListList = [];\r\n vm.isAdd = false;\r\n }\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n\r\n }\r\n\r\n function getAllBoqSequence(ProjectId, LocationId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n LocationId: LocationId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.getSequenceForTiers(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n var arr2 = res.data;\r\n if (res.data.length > 0) {\r\n var arr2 = lodash.uniqBy(res.data, 'Locations');\r\n }\r\n debugger;\r\n var arr1 = vm.BoqTiersList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.Locations === value2.Locations) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.TierList = arr2\r\n vm.TierListList = lodash.uniqBy(vm.TierList, 'Locations');\r\n if (vm.TierListList.length < 1) {\r\n dialogs.notify('Warning', 'No locations for ' + vm.seq.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n\r\n }\r\n\r\n\r\n function editOrder(row) {\r\n debugger;\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n TierSequenceId: row.TierSequenceId,\r\n OrderofSequence: row.OrderofSequence,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.UpdateTiersSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"BillofQuantity Tiers Sequence\");\r\n debugger;\r\n getTierByLoc(row.ProjectId, row.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"BillofQuantity Tiers Sequence\");\r\n getTierByLoc(row.ProjectId, row.LocationId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n\r\n function removeSequence(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n var obj = {\r\n TierSequenceId: row.TierSequenceId,\r\n ProjectId: row.ProjectId,\r\n LocationId: row.LocationId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.RemoveTiersSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"BillofQuantity Tiers Sequence\");\r\n getTierByLoc(row.ProjectId, row.LocationId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"BillofQuantity Tiers Sequence\");\r\n getTierByLoc(row.ProjectId, row.LocationId);\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n }\r\n\r\n\r\n function saveSequence() {\r\n if (vm.selectedTiers != undefined && vm.selectedTiers.length != 0) {\r\n debugger;\r\n var arr = [];\r\n for (var i in vm.selectedTiers) {\r\n arr.push(vm.selectedTiers[i].LastTierId)\r\n }\r\n vm.LastTierId = arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.seq.selectedProject.ProjectId,\r\n LocationId: vm.seq.Location.LocationId,\r\n LastTierId: vm.LastTierId,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n BoqSequenceService.CreateSequenceTiers(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Boq Tier Sequence\");\r\n vm.isAdd = true;\r\n getTierByLoc(vm.seq.selectedProject.ProjectId, vm.seq.Location.LocationId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Boq Tier Sequence\");\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n dialogs.notify('Warning', 'Select Atleast One Tiers !', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .controller('GeneralSequenceCtrl', GeneralSequenceCtrl);\r\n\r\n /** @ngInject */\r\n function GeneralSequenceCtrl($http, $rootScope, lodash, dialogs, GeneralSequenceService, CountryService, AuthenticationService, projectCreationService,\r\n FieldofConstructionService, CategoryofCAService, SubCategoryofCAService, TypeOfCAService, editableOptions, editableThemes) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isLoading = true;\r\n vm.TypeList = [];\r\n $rootScope.isLogin = false;\r\n //Method \r\n vm.cancel = cancel;\r\n vm.editOrder = editOrder;\r\n vm.isAdd = false;\r\n vm.removeSequence = removeSequence;\r\n vm.saveSequence = saveSequence;\r\n vm.getprojectType = getprojectType;\r\n vm.getFoc = getFoc;\r\n vm.getCountry = getCountry;\r\n vm.getCategoryByCountry = getCategoryByCountry;\r\n vm.getSubCategoryByCategory = getSubCategoryByCategory;\r\n vm.getTypeBySubcategory = getTypeBySubcategory;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init();\r\n\r\n // vm.sequenceList = [{ Code: 'AA01', TypeName: 'Exavation Type', Sequence: 1 }, { Code: 'AA02', TypeName: 'Pcc Footing', Sequence: 2 },\r\n // { Code: 'AA03', TypeName: 'Cutting and Pending', Sequence: 3 }]\r\n\r\n function Init() {\r\n projectCreationService.GetAllProjectCategory().then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectCategoryList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"project Category Master\");\r\n });\r\n }\r\n\r\n function getprojectType(CategoryId, callBack) {\r\n if (CategoryId != undefined) {\r\n vm.selectedPrjtype = null;\r\n vm.ProjectTypeList = [];\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n vm.selectedCountry = null;\r\n vm.CountryList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n projectCreationService.GetProjectTypeByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectTypeList = res.data;\r\n if (vm.ProjectTypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Project Type available for ' + vm.selectedProjectCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n if (callBack) {\r\n callBack();\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Type Master\");\r\n });\r\n }\r\n else {\r\n vm.selectedPrjtype = null;\r\n vm.ProjectTypeList = [];\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n vm.selectedCountry = null;\r\n vm.CountryList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n function getFoc(ProjectTypeId, callback) {\r\n if (ProjectTypeId != undefined) {\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n vm.selectedCountry = null;\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n FieldofConstructionService.getActiveFoc().then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n LoadSequence(ProjectTypeId);\r\n }\r\n else {\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n vm.selectedCountry = null;\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n\r\n }\r\n\r\n function LoadSequence(ProjectTypeId) {\r\n GeneralSequenceService.getAllGeneralSequence(ProjectTypeId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.sequenceList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n function getCountry(callback) {\r\n\r\n CountryService.getActiveCountry().then(function (res) {\r\n if (res.status === 200) {\r\n vm.CountryList = res.data;\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function getCategoryByCountry(CountryId, focId, callback) {\r\n if (CountryId != undefined) {\r\n var obj = {\r\n FieldofConstructionId: focId,\r\n CountryId: CountryId\r\n }\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n CategoryofCAService.GetCategoryByCountryId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.selectedCountry.CountryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n\r\n\r\n }\r\n\r\n function getSubCategoryByCategory(CategoryId, callback) {\r\n if (CategoryId != undefined) {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n }\r\n\r\n function getTypeBySubcategory(SubCategoryId, callback) {\r\n if (SubCategoryId != undefined) {\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n var arr2 = res.data;\r\n debugger;\r\n var arr1 = vm.sequenceList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.TypeName === value2.CA_TypeName) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.TypeList = arr2;\r\n\r\n if (!vm.isAdd) {\r\n if (vm.TypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n vm.isAdd = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n }\r\n }\r\n\r\n function cancel() {\r\n vm.selectedProjectCategory = null;\r\n vm.selectedPrjtype = null;\r\n vm.ProjectTypeList = [];\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n vm.selectedCountry = null;\r\n vm.CountryList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n }\r\n\r\n\r\n\r\n function editOrder(row) {\r\n debugger;\r\n var obj = {\r\n ProjectTypeId: row.ProjectTypeId,\r\n SequenceId: row.SequenceId,\r\n OrderofSequence: row.OrderofSequence,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n GeneralSequenceService.UpdateGeneralSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"General Sequence\");\r\n LoadSequence(row.ProjectTypeId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"General Sequence\");\r\n LoadSequence(row.ProjectTypeId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function removeSequence(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n var obj = {\r\n SequenceId: row.SequenceId,\r\n ProjectTypeId: row.ProjectTypeId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n GeneralSequenceService.RemoveGeneralSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"General Sequence\");\r\n vm.isAdd = true;\r\n if (vm.selectedSubCategory) {\r\n getTypeBySubcategory(vm.selectedSubCategory.SubCategoryId);\r\n }\r\n\r\n LoadSequence(row.ProjectTypeId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"General Sequence\");\r\n LoadSequence(row.ProjectTypeId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n function saveSequence() {\r\n if (vm.selectedType != undefined && vm.selectedType.length != 0) {\r\n debugger;\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].CA_TypeId)\r\n }\r\n vm.TypeId = arr.join();\r\n\r\n var obj = {\r\n ProjectTypeId: vm.selectedPrjtype.ProjectTypeId,\r\n TypeId: vm.TypeId,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n GeneralSequenceService.AddGeneralSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"General Sequence\");\r\n vm.isAdd = true;\r\n getTypeBySubcategory(vm.selectedSubCategory.SubCategoryId);\r\n\r\n LoadSequence(obj.ProjectTypeId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"General Sequence\");\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n dialogs.notify('Warning', 'Select Atleast One Type of CA !', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n editableOptions.theme = 'bs3';\r\n editableThemes['bs3'].submitTpl = '';\r\n editableThemes['bs3'].cancelTpl = '';\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.sequence')\r\n .controller('ProjectSequenceCtrl', ProjectSequenceCtrl);\r\n\r\n /** @ngInject */\r\n function ProjectSequenceCtrl($http, $rootScope, lodash, dialogs, ProjectIocaService, ProjectSequenceService, CountryService, AuthenticationService, projectCreationService,\r\n FieldofConstructionService, CategoryofCAService, SubCategoryofCAService, TypeOfCAService, editableOptions, editableThemes) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isLoading = true;\r\n vm.TypeList = [];\r\n $rootScope.isLogin = false;\r\n //Method \r\n vm.cancel = cancel;\r\n vm.editOrder = editOrder;\r\n vm.isAdd = false;\r\n vm.removeSequence = removeSequence;\r\n vm.saveSequence = saveSequence;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n // vm.getCountry = getCountry;\r\n vm.getCategoryByCountry = getCategoryByCountry;\r\n vm.getSubCategoryByCategory = getSubCategoryByCategory;\r\n vm.getTypeBySubcategory = getTypeBySubcategory;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n\r\n // vm.sequenceList = [{ Code: 'AA01', TypeName: 'Exavation Type', Sequence: 1 }, { Code: 'AA02', TypeName: 'Pcc Footing', Sequence: 2 },\r\n // { Code: 'AA03', TypeName: 'Cutting and Pending', Sequence: 3 }]\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n function Init() {\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Approved\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Approved\");\r\n });\r\n }\r\n\r\n\r\n function getFocByPrjId(ProjectId) {\r\n if (ProjectId != undefined) {\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n // vm.selectedCountry = null;\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n var isWrkAlloc =false;\r\n ProjectIocaService.getAllProjectFoc(ProjectId,false).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n LoadSequence(ProjectId);\r\n }\r\n else {\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n // vm.selectedCountry = null;\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n }\r\n\r\n }\r\n\r\n function LoadSequence(ProjectId) {\r\n ProjectSequenceService.getAllProjectSequence(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.sequenceList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Holiday Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Holiday Master\");\r\n });\r\n }\r\n\r\n // function getCountry(callback) {\r\n\r\n // CountryService.getActiveCountry().then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n // vm.isLoading = false;\r\n // if (callback)\r\n // callback();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n // }\r\n\r\n function getCategoryByCountry(ProjectId, focId, CountryId, callback) {\r\n if (focId != undefined) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CountryId: CountryId,\r\n FocId: focId\r\n }\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (vm.CategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category Name available for ' + vm.selectedfoc.FieldofConstructionName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n }\r\n }\r\n\r\n function getSubCategoryByCategory(CategoryId, callback) {\r\n if (CategoryId != undefined) {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n SubCategoryofCAService.GetSubCategoryByCategory(CategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (vm.SubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.selectedCategory.CategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n function getTypeBySubcategory(SubCategoryId, callback) {\r\n if (SubCategoryId != undefined) {\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n TypeOfCAService.GetTypeOfCABySubCategoryId(SubCategoryId).then(function (res) {\r\n if (res.status === 200) {\r\n var arr2 = res.data;\r\n debugger;\r\n var arr1 = vm.sequenceList;\r\n // Compare Two array\r\n angular.forEach(arr1, function (value1, key1) {\r\n angular.forEach(arr2, function (value2, key2) {\r\n if (value1.TypeName === value2.CA_TypeName) {\r\n arr2.splice(key2, 1);\r\n }\r\n });\r\n })\r\n vm.TypeList = arr2;\r\n\r\n if (!vm.isAdd) {\r\n if (vm.TypeList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.selectedSubCategory.SubCategoryName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n vm.isAdd = false;\r\n }\r\n\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n else {\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n }\r\n }\r\n\r\n function cancel() {\r\n vm.selectedProjectCategory = null;\r\n vm.seq.selectedProject = null;\r\n vm.ProjectTypeList = [];\r\n vm.selectedfoc = null;\r\n vm.focList = [];\r\n // // vm.selectedCountry = null;\r\n // vm.CountryList = [];\r\n vm.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.selectedType = null;\r\n vm.TypeList = [];\r\n vm.sequenceList = [];\r\n }\r\n\r\n\r\n\r\n function editOrder(row) {\r\n var obj = {\r\n ProjectId: row.ProjectId,\r\n SequenceId: row.SequenceId,\r\n OrderofSequence: row.OrderofSequence,\r\n ModifiedBy: loggedUser.UserId\r\n }\r\n ProjectSequenceService.UpdateProjectSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Sequence\");\r\n LoadSequence(row.ProjectId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Sequence\");\r\n LoadSequence(row.ProjectId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n function removeSequence(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function () {\r\n var obj = {\r\n SequenceId: row.SequenceId,\r\n ProjectId: row.ProjectId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n ProjectSequenceService.RemoveProjectSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Sequence\");\r\n vm.isAdd = true;\r\n if (vm.selectedSubCategory) {\r\n getTypeBySubcategory(vm.selectedSubCategory.SubCategoryId);\r\n }\r\n LoadSequence(row.ProjectId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Sequence\");\r\n LoadSequence(row.ProjectId);\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n function saveSequence() {\r\n if (vm.selectedType != undefined && vm.selectedType.length != 0) {\r\n debugger;\r\n var arr = [];\r\n for (var i in vm.selectedType) {\r\n arr.push(vm.selectedType[i].CA_TypeId)\r\n }\r\n vm.TypeId = arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.seq.selectedProject.ProjectId,\r\n TypeId: vm.TypeId,\r\n CreatedBy: loggedUser.UserId\r\n }\r\n ProjectSequenceService.AddProjectSequence(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Project Sequence\");\r\n vm.isAdd = true;\r\n getTypeBySubcategory(vm.selectedSubCategory.SubCategoryId);\r\n LoadSequence(obj.ProjectId);\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Project Sequence\");\r\n\r\n }\r\n\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n dialogs.notify('Warning', 'Select Atleast One Type of CA !', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n }\r\n\r\n editableOptions.theme = 'bs3';\r\n editableThemes['bs3'].submitTpl = '';\r\n editableThemes['bs3'].cancelTpl = '';\r\n\r\n\r\n }\r\n})();\n\r\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('AttributeService', AttributeService);\r\n\r\n AttributeService.$inject = ['$http', '$rootScope'];\r\n\r\n function AttributeService($http, $rootScope) {\r\n this.AddAttribute = AddAttribute;\r\n this.EditAttribute = EditAttribute;\r\n this.removeAttribute = removeAttribute;\r\n this.getAllAttribute = getAllAttribute;\r\n this.getAttributeById = getAttributeById; \r\n \r\n this.GetAttributeByTypeOfCAId = GetAttributeByTypeOfCAId\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getAllAttribute(objGetEmpDTO) {\r\n return $http.post($rootScope.endPoint + 'CA/Attributes/getAllAttributes', objGetEmpDTO, config);\r\n }\r\n\r\n \r\n\r\n function getAttributeById(objGetEmpDTO) {\r\n return $http.post($rootScope.endPoint + 'CA/Attributes/GetAttributeId/', config);\r\n }\r\n\r\n function AddAttribute(Attribute) {\r\n return $http.post($rootScope.endPoint + 'CA/Attributes/insertNewAttribute', Attribute, config);\r\n }\r\n\r\n function EditAttribute(attribute) {\r\n return $http.post($rootScope.endPoint + 'CA/Attributes/updateAttribute', attribute, config);\r\n }\r\n\r\n function removeAttribute(Name) {\r\n return $http.post($rootScope.endPoint + 'CA/Attributes/removeAttribute', Name, config);\r\n }\r\n function GetAttributeByTypeOfCAId(GetAttributeId) {\r\n return $http.post($rootScope.endPoint + 'CA/Attributes/getAllAttributes', objGetEmpDTO, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .service('billofquantityservice', billofquantityservice);\r\n\r\n billofquantityservice.$inject = ['$http', '$rootScope'];\r\n\r\n function billofquantityservice($http, $rootScope) {\r\n this.AddProjectInitiation = AddProjectInitiation;\r\n this.EditProjectInitiation = EditProjectInitiation;\r\n this.removeProjectInitiation = removeProjectInitiation;\r\n this.getAllProjectInitiation = getAllProjectInitiation;\r\n this.getProjectInitiationById = getProjectInitiationById;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getAllProjectInitiation(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'ProjectInitiation/AllProjectInitiation', config);\r\n }\r\n\r\n function getProjectInitiationById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'ProjectInitiation/GetProjectInitiationId/', config);\r\n }\r\n\r\n function AddProjectInitiation(ProjectInitiation) {\r\n return $http.post($rootScope.endPoint + 'ProjectInitiation/Create', ProjectInitiation, config);\r\n }\r\n\r\n function EditProjectInitiation(ProjectInitiation) {\r\n return $http.put($rootScope.endPoint + 'ProjectInitiation/Modify', ProjectInitiation, config);\r\n }\r\n\r\n function removeProjectInitiation(id) {\r\n return $http.delete($rootScope.endPoint + 'ProjectInitiation/Delete/' + id, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('CategoryofCAService', CategoryofCAService);\r\n\r\n CategoryofCAService.$inject = ['$http', '$rootScope'];\r\n\r\n function CategoryofCAService($http, $rootScope) {\r\n this.AddCategoryofCA = AddCategoryofCA;\r\n this.EditCategoryofCA = EditCategoryofCA;\r\n this.removeCategoryofCA = removeCategoryofCA;\r\n this.getAllCategoryofCA = getAllCategoryofCA;\r\n this.getCategoryofCAById = getCategoryofCAById;\r\n this.GetActiveCategoryById = GetActiveCategoryById;\r\n this.changeActiveCategoryofCA = changeActiveCategoryofCA;\r\n this.GetCategoryByCountryId = GetCategoryByCountryId;\r\n this.FilterFocByCategory = FilterFocByCategory;\r\n this.FilterCountryByCategory = FilterCountryByCategory;\r\n this.getCategoryByPrjConstantAndRate = getCategoryByPrjConstantAndRate;\r\n this.getCategoryByRfq = getCategoryByRfq;\r\n this.getCategoryForWorkAllocation = getCategoryForWorkAllocation;\r\n this.getCategoryByPrivilege =getCategoryByPrivilege;\r\n\r\n // this.GetCityByStateId=GetCityByStateId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function FilterFocByCategory() {\r\n return $http.get($rootScope.endPoint + 'Category/FilterFOC', config);\r\n }\r\n\r\n function FilterCountryByCategory() {\r\n return $http.get($rootScope.endPoint + 'Category/FilterCountry', config);\r\n }\r\n\r\n function getAllCategoryofCA(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function getCategoryofCAById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/GetCategoryId/', config);\r\n }\r\n\r\n function AddCategoryofCA(categoryofCA) {\r\n return $http.post($rootScope.endPoint + 'Category/Create', categoryofCA, config);\r\n }\r\n\r\n function EditCategoryofCA(categoryofCA) {\r\n return $http.put($rootScope.endPoint + 'Category/Modify', categoryofCA, config);\r\n }\r\n\r\n function GetActiveCategoryById(categoryofCA) {\r\n return $http.get($rootScope.endPoint + 'Category/GetActiveCategoryById', config);\r\n }\r\n\r\n function getCategoryForWorkAllocation(id) {\r\n return $http.get($rootScope.endPoint + 'Category/getCategoryForWorkAllocation/' + id, config);\r\n }\r\n\r\n function removeCategoryofCA(id) {\r\n return $http.delete($rootScope.endPoint + 'Category/Delete/' + id, config);\r\n }\r\n\r\n function GetCategoryByCountryId(obj) {\r\n return $http.post($rootScope.endPoint + 'Category/GetCategoryByCountryId', obj, config);\r\n }\r\n\r\n function changeActiveCategoryofCA(id) {\r\n return $http.post($rootScope.endPoint + 'Category/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getCategoryByPrjConstantAndRate(projectId, focId, countryId) {\r\n var url = $rootScope.endPoint + 'Category/getCategoryByPrjConsAndRate/' + projectId\r\n + '?focId=' + focId + '&countryId=' + countryId;\r\n\r\n return $http.get(url, config);\r\n }\r\n\r\n function getCategoryByRfq(CountryId, FocId, ProjectId, FromBoq, PowStatus, isNotInRfq) {\r\n return $http.get($rootScope.endPoint + 'Category/getCategoryByRfq/' + ProjectId + '?FocId=' + FocId + '&CountryId=' + CountryId\r\n + '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus + '&isNotInRfq=' + isNotInRfq, config);\r\n }\r\n function getCategoryByPrivilege(ProjectId, FocId, CountryId, FromBoq, PowStatus) {\r\n return $http.get($rootScope.endPoint + 'Category/getCategoryByPrivilege/' + ProjectId + '?FocId=' + FocId + '&CountryId=' + CountryId\r\n + '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus, config);\r\n }\r\n }\r\n\r\n})();\r\n// 12?focId=3&countryId=5\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('ConstantService', ConstantService);\r\n\r\n ConstantService.$inject = ['$http', '$rootScope'];\r\n\r\n function ConstantService($http, $rootScope) {\r\n this.getLabourTypeByLabrCategoryId = getLabourTypeByLabrCategoryId;\r\n this.AddConstant = AddConstant;\r\n this.UpdateConstant = UpdateConstant;\r\n this.DeleteConstant = DeleteConstant;\r\n this.getAllConstant = getAllConstant;\r\n this.getAllMaterialAttributes = getAllMaterialAttributes;\r\n this.getAllDraftIOCAConstant = getAllDraftIOCAConstant;\r\n this.AddLabourConstant = AddLabourConstant;\r\n this.AddMaterialConstant = AddMaterialConstant;\r\n this.AddMachineryConstant = AddMachineryConstant;\r\n this.AddConsumableConstant = AddConsumableConstant;\r\n this.GetLabourConstant = GetLabourConstant;\r\n this.GetMaterialConstant = GetMaterialConstant;\r\n this.GetMachineryConstant = GetMachineryConstant;\r\n this.GetConsumableConstant = GetConsumableConstant;\r\n this.getAllPendingIOCAConstant = getAllPendingIOCAConstant;\r\n this.SendApproval = SendApproval;\r\n this.Approval = Approval;\r\n this.AddRejectionNotes = AddRejectionNotes;\r\n this.getAllBackandBlockIOCAConstant = getAllBackandBlockIOCAConstant;\r\n this.Resubmit = Resubmit;\r\n this.Block = Block;\r\n this.getAllApprovalIOCAConstant = getAllApprovalIOCAConstant;\r\n this.getAllRetriveConstantFromLibrary = getAllRetriveConstantFromLibrary;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddLabourConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/CreateLabour', obj, config);\r\n }\r\n\r\n function AddMaterialConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/CreateMaterial', obj, config);\r\n }\r\n\r\n function AddMachineryConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/CreateMachinery', obj, config);\r\n }\r\n\r\n function AddConsumableConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/CreateConsumable', obj, config);\r\n }\r\n\r\n function getAllMaterialAttributes(objMaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/getAllMaterialAttributes', objMaterialAttribute, config);\r\n }\r\n\r\n function getAllConstant(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function getLabourTypeByLabrCategoryId(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n function getAllDraftIOCAConstant(IOCA_Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetAllDraft/' + IOCA_Id, config);\r\n }\r\n\r\n function getAllApprovalIOCAConstant(IOCA_Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetAllApproved/' + IOCA_Id, config);\r\n }\r\n\r\n function getAllPendingIOCAConstant(IOCA_Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetAllWaitingForApproval/' + IOCA_Id, config);\r\n }\r\n\r\n function SendApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/SendforApprovalConstant' , obj, config);\r\n }\r\n\r\n function Approval(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/ApprovedConstant' , obj, config);\r\n }\r\n\r\n function Resubmit(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/ResubmitConstant', obj, config);\r\n }\r\n\r\n function Block(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/BlockConstant' , obj, config);\r\n }\r\n\r\n function getAllBackandBlockIOCAConstant(id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetAllBlockandBack/' + id, config);\r\n }\r\n\r\n function AddRejectionNotes(reject) {\r\n return $http.post($rootScope.endPoint + 'Constants/RejectConstant', reject, config);\r\n }\r\n\r\n function GetLabourConstant(Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetLabourConstant/' + Id, config);\r\n }\r\n\r\n function GetMaterialConstant(Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetMaterialConstant/' + Id, config);\r\n }\r\n\r\n function GetMachineryConstant(Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetMachineryConstant/' + Id, config);\r\n }\r\n\r\n function GetConsumableConstant(Id) {\r\n return $http.get($rootScope.endPoint + 'Constants/GetConsumableConstant/' + Id, config);\r\n }\r\n\r\n\r\n // function getCategoryofCAById(objGetEmpDTO) {\r\n // return $http.get($rootScope.endPoint + 'Category/GetCategoryId/', config);\r\n // }\r\n\r\n\r\n function AddConstant(categoryofCA) {\r\n return $http.post($rootScope.endPoint + 'Category/Create', categoryofCA, config);\r\n }\r\n\r\n function UpdateConstant(obj) {\r\n return $http.put($rootScope.endPoint + 'Constants/Modify', obj, config);\r\n }\r\n\r\n // function GetActiveCategoryById(categoryofCA) { \r\n // return $http.get($rootScope.endPoint + 'Category/GetActiveCategoryById', config);\r\n // }\r\n\r\n function DeleteConstant(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/Delete', obj, config);\r\n }\r\n // function GetCategoryByCountryId(objcategoryofCA) {\r\n // return $http.post($rootScope.endPoint + 'Category/GetCategoryByCountryId/'+objcategoryofCA, config);\r\n // }\r\n\r\n // function changeActiveCategoryofCA(id) {\r\n // return $http.post($rootScope.endPoint + 'Category/ChangeActive/' + id, {}, config);\r\n // }\r\n\r\n function getAllRetriveConstantFromLibrary(obj) {\r\n return $http.post($rootScope.endPoint + 'Constants/RetriveConstant', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('FieldofConstructionService', FieldofConstructionService);\r\n\r\n FieldofConstructionService.$inject = ['$http', '$rootScope'];\r\n\r\n function FieldofConstructionService($http, $rootScope) {\r\n this.AddFieldofConstruction = AddFieldofConstruction;\r\n this.EditFOC = EditFOC;\r\n this.DeleteFoc = DeleteFoc;\r\n this.getAllFieldofConstruction = getAllFieldofConstruction;\r\n this.getFocById = getFocById;\r\n this.getActiveFoc = getActiveFoc;\r\n this.changeActiveFieldofConstruct = changeActiveFieldofConstruct;\r\n this.getFocByPrjConstantAndRate = getFocByPrjConstantAndRate;\r\n this.getFocByRfq = getFocByRfq;\r\n this.getFocByPrivilege =getFocByPrivilege;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllFieldofConstruction() {\r\n return $http.get($rootScope.endPoint + 'FieldofConstructor/AllFOC', config);\r\n }\r\n\r\n function getActiveFoc() {\r\n return $http.get($rootScope.endPoint + 'FieldofConstructor/GetActiveFOCById', config);\r\n }\r\n\r\n function AddFieldofConstruction(foc) {\r\n return $http.post($rootScope.endPoint + 'FieldofConstructor/Create', foc, config);\r\n }\r\n\r\n function EditFOC(foc) {\r\n return $http.put($rootScope.endPoint + 'FieldofConstructor/Modify', foc, config);\r\n }\r\n\r\n function DeleteFoc(id) {\r\n return $http.delete($rootScope.endPoint + 'FieldofConstructor/Delete/' + id, config);\r\n }\r\n\r\n function getFocById(objfoc) {\r\n return $http.delete($rootScope.endPoint + 'FieldofConstructor/GetById/', config);\r\n }\r\n\r\n function changeActiveFieldofConstruct(id) {\r\n return $http.post($rootScope.endPoint + 'FieldofConstructor/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getFocByPrjConstantAndRate(id) {\r\n return $http.get($rootScope.endPoint + 'FieldofConstructor/getFocByPrjConsAndRate/' + id, config);\r\n }\r\n\r\n function getFocByRfq(ProjectId, FromBoq, PowStatus, isNotInRfq) {\r\n return $http.get($rootScope.endPoint + 'FieldofConstructor/getFocByRfq/' + ProjectId + '?FromBoq=' + FromBoq + '&PowStatus=' + PowStatus + '&isNotInRfq=' + isNotInRfq, config);\r\n }\r\n\r\n function getFocByPrivilege(ProjectId, FromBoq, PowStatus) {\r\n return $http.get($rootScope.endPoint + 'FieldofConstructor/getFocByPrivilege/' + ProjectId + '?FromBoq=' + FromBoq + '&PowStatus=' + PowStatus , config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('ICANTypicalDescription', ICANTypicalDescription);\r\n\r\n ICANTypicalDescription.$inject = ['$http', '$rootScope'];\r\n\r\n function ICANTypicalDescription($http, $rootScope) {\r\n this.SaveDescription = SaveDescription;\r\n this.GetDescription = GetDescription;\r\n this.RemoveDescription = RemoveDescription;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function SaveDescription(obj) {\r\n return $http.post($rootScope.endPoint + 'ICANTypicalDescription/Save', obj, config);\r\n }\r\n\r\n function GetDescription(obj) {\r\n return $http.post($rootScope.endPoint + 'ICANTypicalDescription/Get', obj, config);\r\n }\r\n function RemoveDescription(obj) {\r\n return $http.post($rootScope.endPoint + 'ICANTypicalDescription/Remove', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('IocaService', IocaService);\r\n\r\n IocaService.$inject = ['$http', '$rootScope'];\r\n\r\n function IocaService($http, $rootScope) {\r\n this.checkCombinationExist = checkCombinationExist;\r\n this.saveIoca = saveIoca; \r\n this.getAllIoca = getAllIoca;\r\n this.getApprovedIOCA = getApprovedIOCA;\r\n this.updateIoca = updateIoca;\r\n this.removeIoca = removeIoca;\r\n this.getAllProjectIoca = getAllProjectIoca;\r\n this.getIocaByPrjConstantAndRate = getIocaByPrjConstantAndRate;\r\n this.UploadDoc = UploadDoc;\r\n this.removeIocaDoc = removeIocaDoc;\r\n this.AddIOCADoc = AddIOCADoc;\r\n this.getIOCADocById = getIOCADocById;\r\n this.getIocaByRfq = getIocaByRfq;\r\n\r\n this.SaveCpwdIoca = SaveCpwdIoca;\r\n this.getAllCpwdIoca = getAllCpwdIoca;\r\n this.updateCpwdIoca = updateCpwdIoca;\r\n this.removeCpwdIoca = removeCpwdIoca;\r\n \r\n\r\n this.updatePRJICANDescription = updatePRJICANDescription\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function updateIoca(inputDto) {\r\n return $http.post($rootScope.endPoint + 'ioca/updateIoca', inputDto, config);\r\n }\r\n\r\n function UploadDoc(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'ioca/IOCAAttachment', data, config);\r\n }\r\n\r\n\r\n function getAllIoca(inputDto) {\r\n return $http.post($rootScope.endPoint + 'ioca/getAllioca', inputDto, config);\r\n }\r\n function getApprovedIOCA(inputDto) { \r\n return $http.post($rootScope.endPoint + 'ioca/getApprovedIOCA', inputDto, config); \r\n }\r\n\r\n function getAllProjectIoca(inputDto) {\r\n return $http.post($rootScope.endPoint + 'ProjectIoca/getAllProjectIoca', inputDto, {}, config);\r\n }\r\n\r\n function checkCombinationExist(combination) {\r\n return $http.post($rootScope.endPoint + 'ioca/checkIoca', combination, config);\r\n }\r\n\r\n function saveIoca(ioca) {\r\n return $http.post($rootScope.endPoint + 'ioca/insertNewIoca', ioca, config);\r\n }\r\n\r\n function AddIOCADoc(ioca) {\r\n return $http.post($rootScope.endPoint + 'ioca/InsertIOCADoc', ioca, config);\r\n }\r\n\r\n function removeIoca(id) {\r\n return $http.delete($rootScope.endPoint + 'ioca/removeIoca/' + id, config);\r\n }\r\n\r\n function getIocaByPrjConstantAndRate(Projectid, TypeId) {\r\n return $http.get($rootScope.endPoint + 'ioca/getIocaByPrjConsAndRate/' + Projectid + '?TypeId=' + TypeId, config);\r\n\r\n }\r\n function getIOCADocById(id) {\r\n return $http.get($rootScope.endPoint + 'ioca/getIocaDocById/' + id, config);\r\n }\r\n\r\n function removeIocaDoc(obj) {\r\n return $http.post($rootScope.endPoint + 'ioca/removeDocument', obj, config);\r\n\r\n }\r\n function getIocaByRfq(TypeId, SpecType, ProjectId, FromBoq, PowStatus, isNotInRfq) {\r\n return $http.get($rootScope.endPoint + 'ioca/getIocaByRfq/' + ProjectId + '?SpecType=' + SpecType + '&TypeId=' + TypeId +\r\n '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus + '&isNotInRfq=' + isNotInRfq, config);\r\n }\r\n\r\n ////////// CPWD IOCA\r\n function getAllCpwdIoca(inputDto) {\r\n return $http.post($rootScope.endPoint + 'ioca/getAllCPWDioca', inputDto, config);\r\n }\r\n\r\n function SaveCpwdIoca(ioca){\r\n return $http.post($rootScope.endPoint + 'ioca/insertCpwdIoca', ioca, config);\r\n }\r\n\r\n function updateCpwdIoca(inputDto) {\r\n return $http.post($rootScope.endPoint + 'ioca/updateCpwdIoca', inputDto, config);\r\n }\r\n\r\n function removeCpwdIoca(id) {\r\n return $http.delete($rootScope.endPoint + 'ioca/removeCpwdIoca/' + id, config);\r\n }\r\n\r\n\r\n ////shortdescription of ioca row wise edit\r\n function updatePRJICANDescription(obj) {\r\n return $http.post($rootScope.endPoint + 'ioca-v1/updatePRJICANDescription', obj, config);\r\n } \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('SubCategoryofCAService', SubCategoryofCAService);\r\n\r\n SubCategoryofCAService.$inject = ['$http', '$rootScope'];\r\n\r\n function SubCategoryofCAService($http, $rootScope) {\r\n this.AddSubCategoryofCA = AddSubCategoryofCA;\r\n this.EditSubCategoryofCA = EditSubCategoryofCA;\r\n this.removeSubCategoryofCA = removeSubCategoryofCA;\r\n this.getAllSubCategoryofCA = getAllSubCategoryofCA;\r\n this.getSubCategoryofCAById = getSubCategoryofCAById;\r\n this.GetActiveSubCategoryById = GetActiveSubCategoryById;\r\n this.changeActiveSubCategoryofCA = changeActiveSubCategoryofCA;\r\n this.GetSubCategoryByCategory = GetSubCategoryByCategory;\r\n this.getFilterCategory = getFilterCategory;\r\n this.getSubcategoryByPrjConstantAndRate = getSubcategoryByPrjConstantAndRate;\r\n this.getSubCategoryByRfq = getSubCategoryByRfq;\r\n this.GetSubCategoryByPrivilege=GetSubCategoryByPrivilege;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getFilterCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'SubCategory/AllFilterCategory', obj, config);\r\n }\r\n\r\n function getAllSubCategoryofCA(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/AllSubCategory', config);\r\n }\r\n\r\n function getSubCategoryofCAById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/GetSubCategoryId/', config);\r\n }\r\n\r\n function AddSubCategoryofCA(categoryofCA) {\r\n return $http.post($rootScope.endPoint + 'SubCategory/Create', categoryofCA, config);\r\n }\r\n\r\n function EditSubCategoryofCA(categoryofCA) {\r\n return $http.put($rootScope.endPoint + 'SubCategory/Modify', categoryofCA, config);\r\n }\r\n\r\n function GetActiveSubCategoryById(categoryofCA) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/GetActiveCA_SubCategoryById', config);\r\n }\r\n\r\n function GetSubCategoryByCategory(id) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/GetSubCategoryByCategoryId/' + id, config);\r\n }\r\n\r\n\r\n function removeSubCategoryofCA(id) {\r\n return $http.delete($rootScope.endPoint + 'SubCategory/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveSubCategoryofCA(id) {\r\n return $http.post($rootScope.endPoint + 'SubCategory/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getSubcategoryByPrjConstantAndRate(projectId, CategoryId) {\r\n var url = $rootScope.endPoint + 'SubCategory/getSubcateByPrjConsAndRate/' + projectId + '?CategoryId=' + CategoryId;\r\n return $http.get(url, config);\r\n }\r\n\r\n function getSubCategoryByRfq(CategoryId, ProjectId, FromBoq, PowStatus, isNotInRfq) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/getSubCategoryByRfq/' + ProjectId + '?CategoryId=' + CategoryId + '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus + '&isNotInRfq=' + isNotInRfq, config);\r\n }\r\n\r\n function GetSubCategoryByPrivilege(ProjectId, CategoryId, FromBoq, PowStatus) {\r\n return $http.get($rootScope.endPoint + 'SubCategory/GetSubCategoryByPrivilege/' + ProjectId + '?CategoryId=' + CategoryId + '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('TypeOfCAService', TypeOfCAService);\r\n\r\n TypeOfCAService.$inject = ['$http', '$rootScope'];\r\n\r\n function TypeOfCAService($http, $rootScope) {\r\n this.AddTypeOfCA = AddTypeOfCA;\r\n this.EditTypeOfCA = EditTypeOfCA;\r\n this.removeTypeOfCA = removeTypeOfCA;\r\n this.getAllTypeOfCA = getAllTypeOfCA;\r\n this.getTypeOfCAById = getTypeOfCAById;\r\n this.changeActiveTypeOfCA = changeActiveTypeOfCA;\r\n this.GetActiveTypeOfCAById = GetActiveTypeOfCAById;\r\n this.GetTypeOfCABySubCategoryId = GetTypeOfCABySubCategoryId;\r\n this.GetTypeOfCAByCategoryId = GetTypeOfCAByCategoryId;\r\n this.getFilterSubCategory = getFilterSubCategory;\r\n this.getTypeByPrjConstantAndRate = getTypeByPrjConstantAndRate;\r\n this.getTypeByRfq = getTypeByRfq;\r\n this.getTypeByPrivilege =getTypeByPrivilege;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getFilterSubCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'CA_Type/AllFilterSubcategory', obj, config);\r\n }\r\n\r\n function getAllTypeOfCA(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/AllCA_Types', config);\r\n }\r\n\r\n function getTypeOfCAById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/GetCA_TypebyId/', config);\r\n }\r\n\r\n function AddTypeOfCA(TypeOfCA) {\r\n return $http.post($rootScope.endPoint + 'CA_Type/Create', TypeOfCA, config);\r\n }\r\n\r\n function EditTypeOfCA(TypeOfCA) {\r\n return $http.put($rootScope.endPoint + 'CA_Type/Modify', TypeOfCA, config);\r\n }\r\n\r\n function removeTypeOfCA(id) {\r\n return $http.delete($rootScope.endPoint + 'CA_Type/Delete/' + id, config);\r\n }\r\n\r\n function GetActiveTypeOfCAById(TypeOfCA) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/GetActiveCATypeById', config);\r\n }\r\n\r\n function changeActiveTypeOfCA(id) {\r\n return $http.post($rootScope.endPoint + 'CA_Type/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function GetTypeOfCABySubCategoryId(id) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/GetTypeOfBySubCategoryId/' + id, config);\r\n }\r\n\r\n function GetTypeOfCAByCategoryId(obj) {\r\n return $http.post($rootScope.endPoint + 'CA_Type/GetTypeOfByCategoryId', obj, config);\r\n }\r\n\r\n function getTypeByPrjConstantAndRate(projectId, SubcategoryId) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/getTypeByPrjConsAndRate/' + projectId + '?SubcategoryId=' + SubcategoryId, config);\r\n }\r\n\r\n function getTypeByRfq(SubCategoryId, ProjectId, FromBoq, PowStatus, isNotInRfq) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/getTypeByRfq/' + ProjectId + '?SubCategoryId=' + SubCategoryId + '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus + '&isNotInRfq=' + isNotInRfq, config);\r\n }\r\n\r\n function getTypeByPrivilege(ProjectId, CategoryId, SubCategoryId, FromBoq, PowStatus) {\r\n return $http.get($rootScope.endPoint + 'CA_Type/getTypeByPrivilege/' + ProjectId + '?CategoryId=' + CategoryId + '&SubCategoryId=' + SubCategoryId + '&FromBoq=' + FromBoq + '&PowStatus=' + PowStatus , config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.constructionActivity')\r\n .service('VariableService', VariableService);\r\n\r\n VariableService.$inject = ['$http', '$rootScope'];\r\n\r\n function VariableService($http, $rootScope) {\r\n this.AddVariable = AddVariable;\r\n this.AddCombination = AddCombination;\r\n this.removeCombination = removeCombination;\r\n this.getAllVariable = getAllVariable;\r\n this.getAllCombinations = getAllCombinations;\r\n this.deleteVariable = deleteVariable;\r\n\r\n ////\r\n this.GetAllCATypeCountry = GetAllCATypeCountry;\r\n this.GetAllType = GetAllType;\r\n this.GetAllAttributesByTypeId = GetAllAttributesByTypeId;\r\n this.ExcelFormat = ExcelFormat;\r\n this.ExcelImport = ExcelImport;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getAllVariable(ObjGetVariable) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/getAllVariables', ObjGetVariable, config);\r\n }\r\n\r\n function deleteVariable(obj) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/removeVariable', obj, config);\r\n }\r\n\r\n function getAllCombinations(objGetComb) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/getAllCombinations', objGetComb, config);\r\n }\r\n\r\n function AddVariable(attribute) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/insertNewVariable', attribute, config);\r\n }\r\n\r\n function AddCombination(Variable) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/insertCombination', Variable, config);\r\n }\r\n\r\n function removeCombination(Name) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/removeCombination', Name, config);\r\n }\r\n\r\n function GetAllCATypeCountry(ActionBy) {\r\n return $http.get($rootScope.endPoint + 'CA/Variables/GetAllCATypeCountry/' + ActionBy, config);\r\n }\r\n\r\n function GetAllType(CountryId, ActionBy) {\r\n return $http.get($rootScope.endPoint + 'CA/Variables/GetAllType/' + CountryId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n function GetAllAttributesByTypeId(obj) {\r\n return $http.post($rootScope.endPoint + 'CA/Variables/GetAllAttributesByType', obj, config);\r\n }\r\n\r\n //Excel Export\r\n function ExcelFormat(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'CA/Variables/ExcelExport', data, config);\r\n }\r\n\r\n //Excel Import\r\n function ExcelImport(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CA/Variables/UploadAttributeExcel', data, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_CopyAreaDetails')\r\n .service('CRM_CopyAreaDetailsService', CRM_CopyAreaDetailsService);\r\n\r\n CRM_CopyAreaDetailsService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_CopyAreaDetailsService($http, $rootScope) {\r\n\r\n this.GetSavedProjectLocation_ForCopyProcess = GetSavedProjectLocation_ForCopyProcess;\r\n this.GetSavedProject_ForCopyProcess = GetSavedProject_ForCopyProcess;\r\n this.GetSavedTiers_ForCopyProcess = GetSavedTiers_ForCopyProcess;\r\n this.SaveProject_AreaSetup_FromCopiedLocation = SaveProject_AreaSetup_FromCopiedLocation;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetSavedProject_ForCopyProcess(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMCopyDetailsandPrice/GetSavedProject_ForCopyProcess', Details, config);\r\n }\r\n\r\n function GetSavedProjectLocation_ForCopyProcess(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMCopyDetailsandPrice/GetSavedProjectLocation_ForCopyProcess', Details, config);\r\n }\r\n\r\n function GetSavedTiers_ForCopyProcess(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMCopyDetailsandPrice/GetSavedTiers_ForCopyProcess', Details, config);\r\n }\r\n\r\n function SaveProject_AreaSetup_FromCopiedLocation(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMCopyDetailsandPrice/SaveProject_AreaSetup_FromCopiedLocation', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_EmployeeTaskActivity')\r\n .service('CRM_EmployeeTaskActivityService', CRM_EmployeeTaskActivityService);\r\n\r\n CRM_EmployeeTaskActivityService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_EmployeeTaskActivityService($http, $rootScope) {\r\n\r\n this.ReadEmployeeActivity = ReadEmployeeActivity;\r\n this.ReadAllCustomers = ReadAllCustomers;\r\n this.SaveRemoveEmployeeDailyActivity = SaveRemoveEmployeeDailyActivity;\r\n this.ReadTaskApprovedList = ReadTaskApprovedList;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function ReadEmployeeActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMEmployeeActivity/GetAllEmployeeActivity', Details, config);\r\n }\r\n\r\n function ReadAllCustomers(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'CRMEmployeeActivity/GetAllCustomers/' + CompanyId, config);\r\n }\r\n\r\n function SaveRemoveEmployeeDailyActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMEmployeeActivity/SaveRemoveEmployeeDailyActivity', Details, config);\r\n }\r\n\r\n function ReadTaskApprovedList(TaskApprove) {\r\n return $http.post($rootScope.endPoint + 'CRMEmployeeActivity/ReadTaskApprovedList', TaskApprove, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_GstSetting')\r\n .service('CRM_GstSettingService', CRM_GstSettingService);\r\n\r\n CRM_GstSettingService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_GstSettingService($http, $rootScope) {\r\n\r\nthis.GetReadReadGSTSettings=GetReadReadGSTSettings;\r\nthis.SaveUpdateGSTSettings=SaveUpdateGSTSettings;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n\r\n function GetReadReadGSTSettings(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMGSTMaster/GetReadReadGSTSettings', Details, config);\r\n }\r\n\r\n function SaveUpdateGSTSettings(Details){\r\n return $http.post($rootScope.endPoint + 'CRMGSTMaster/SaveUpdateGSTSettings', Details, config);\r\n\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ItemofSalesActivity')\r\n .service('CRM_ItemofSalesActivityService', CRM_ItemofSalesActivityService);\r\n\r\n CRM_ItemofSalesActivityService.$inject = ['$http', '$rootScope'];\r\n\r\n\r\n function CRM_ItemofSalesActivityService($http, $rootScope) {\r\n\r\n this.ReadItemSalesActivity = ReadItemSalesActivity;\r\n\r\n this.SaveDeleteUpdateItemSalesActivity = SaveDeleteUpdateItemSalesActivity;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function ReadItemSalesActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'ItemSalesActivityMaster/ReadItemSalesActivity', Details, config);\r\n }\r\n\r\n function SaveDeleteUpdateItemSalesActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'ItemSalesActivityMaster/SaveDeleteUpdateItemSalesActivity', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRMLocationPropertyTypeSetup')\r\n .service('CRM_LocationPropertyTypeSetupService', CRM_LocationPropertyTypeSetupService);\r\n\r\n CRM_LocationPropertyTypeSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_LocationPropertyTypeSetupService($http, $rootScope) {\r\n this.SaveDeleteLocationPropertyType = SaveDeleteLocationPropertyType;\r\n this.GetAllCRMLocationPropertyType = GetAllCRMLocationPropertyType;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllCRMLocationPropertyType(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMLocationPropertyType/GetAllCRMLocationPropertyType', Details, config);\r\n }\r\n function SaveDeleteLocationPropertyType(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMLocationPropertyType/SaveDeleteLocationPropertyType', Details, config);\r\n }\r\n\r\n }\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_parkingLocationSetup')\r\n .service('CRM_parkingLocationSetupService', CRM_parkingLocationSetupService);\r\n\r\n CRM_parkingLocationSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_parkingLocationSetupService($http, $rootScope) {\r\n\r\n this.GetAllLocations = GetAllLocations;\r\n this.GetAllProjects = GetAllProjects;\r\n this.AddLocation = AddLocation;\r\n this.RemoveLocationSetup = RemoveLocationSetup;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllLocations(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMParkingLocationSetup/GetAllLocations', Details, config);\r\n }\r\n\r\n function GetAllProjects(Projects) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllProjects', Projects, config);\r\n }\r\n\r\n function AddLocation(Location) {\r\n return $http.post($rootScope.endPoint + 'CRMParkingLocationSetup/AddLocation', Location, config);\r\n }\r\n\r\n function RemoveLocationSetup(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'CRMParkingLocationSetup/RemoveLocation/' + CompanyId, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n \r\n 'use strict';\r\n \r\n angular\r\n .module('KPMES.pages.CRM_parkingTierSetup')\r\n .service('CRM_parkingTierSetupService', CRM_parkingTierSetupService);\r\n\r\n CRM_parkingTierSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_parkingTierSetupService($http, $rootScope) {\r\n \r\n this.GetAllLocations = GetAllLocations;\r\n this.GetAllProjects = GetAllProjects;\r\n \r\n this.AddTierSetup = AddTierSetup;\r\n this.getAllTierSetup = getAllTierSetup;\r\n this.removeTierSetup=removeTierSetup;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n \r\n function GetAllLocations(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMParkingLocationSetup/GetAllLocations', Details, config);\r\n }\r\n \r\n \r\n \r\n function GetAllProjects(Projects) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllProjects', Projects, config);\r\n }\r\n \r\n \r\n \r\n function AddTierSetup(tier) {\r\n return $http.post($rootScope.endPoint + 'CRMParkingTierSetup/Create', tier, config);\r\n }\r\n \r\n function getAllTierSetup(tier) {\r\n return $http.post($rootScope.endPoint + 'CRMParkingTierSetup/AllTierMaster', tier, config);\r\n }\r\n \r\n \r\n function removeTierSetup(id) {\r\n return $http.delete($rootScope.endPoint + 'CRMParkingTierSetup/Delete/' + id, config);\r\n }\r\n }\r\n \r\n })();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_PaymentScheduleMaster')\r\n .service('PaymentScheduleMasterService', PaymentScheduleMasterService);\r\n\r\n PaymentScheduleMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function PaymentScheduleMasterService($http, $rootScope) {\r\n\r\n this.SaveDeletPaymentSchedule = SaveDeletPaymentSchedule;\r\n\r\n this.GetPaymentSchedule = GetPaymentSchedule;\r\n this.GetReadMappedPaymentSchedule=GetReadMappedPaymentSchedule;\r\n this.UpdateSavePaymentScheduleMapping=UpdateSavePaymentScheduleMapping;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function GetPaymentSchedule(PaymentDetails) {\r\n return $http.post($rootScope.endPoint + 'CRMPaymentScheduleMaster/GetPaymentSchedule', PaymentDetails, config);\r\n }\r\n\r\n function GetReadMappedPaymentSchedule(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMPaymentScheduleMaster/GetReadMappedPaymentSchedule', Details, config);\r\n }\r\n function SaveDeletPaymentSchedule(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMPaymentScheduleMaster/SaveDeletPaymentSchedule', Details, config);\r\n }\r\n function UpdateSavePaymentScheduleMapping(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMPaymentScheduleMaster/UpdateSavePaymentScheduleMapping', Details, config);\r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectDetailsApproval')\r\n .service('ProjectDetailsApprovalService', ProjectDetailsApprovalService);\r\n\r\n ProjectDetailsApprovalService.$inject = ['$http', '$rootScope'];\r\n\r\n function ProjectDetailsApprovalService($http, $rootScope) {\r\n\r\n this.GetAllProjectDetailsApproval = GetAllProjectDetailsApproval;\r\n this.ProjectRateApproval = ProjectRateApproval;\r\n this.ApprovalProjectDetails = ApprovalProjectDetails;\r\n this.GetApprovedProjectforPriceSetup = GetApprovedProjectforPriceSetup;\r\n this.GetApprovedProjectDetailsByProjectId = GetApprovedProjectDetailsByProjectId;\r\n this.GetProjectPropertyReport = GetProjectPropertyReport;\r\n this.GetAllTiersDetailsByMultiLocation=GetAllTiersDetailsByMultiLocation;\r\n this.GetAllAreaUnitsByMultiTier=GetAllAreaUnitsByMultiTier;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllProjectDetailsApproval(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetProjectDetailsReadByStatus', Details, config);\r\n }\r\n\r\n function ProjectRateApproval(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetProjectDetailsReadByStatus', Details, config);\r\n }\r\n\r\n function ApprovalProjectDetails(Details) {\r\n return $http.put($rootScope.endPoint + 'CRMProjectDetails/UpdateProjectDetails', Details, config);\r\n }\r\n\r\n function GetApprovedProjectforPriceSetup(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetApprovedProjectforPriceSetup', Details, config);\r\n }\r\n\r\n function GetApprovedProjectDetailsByProjectId(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetApprovedProjectDetailsByProjectId', Details, config);\r\n }\r\n\r\n function GetProjectPropertyReport(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/CRMProjectPropertyDetails', Details, config);\r\n }\r\n\r\n function GetAllTiersDetailsByMultiLocation(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/GetAllTiersDetailsByMultiLocation', Details, config);\r\n }\r\n\r\n function GetAllAreaUnitsByMultiTier(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/GetAllAreaUnitsByMultiTier', Details, config);\r\n }\r\n\r\n\r\n \r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectDetailsPriceSetup_New')\r\n .service('CRM_ProjectDetailsPriceSetupNewService', CRM_ProjectDetailsPriceSetupNewService);\r\n\r\n CRM_ProjectDetailsPriceSetupNewService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_ProjectDetailsPriceSetupNewService($http, $rootScope) {\r\n\r\n this.GetProjectDetailsandPrice_ForTier = GetProjectDetailsandPrice_ForTier;\r\n this.GetCountryCurrency_ByProjectId = GetCountryCurrency_ByProjectId;\r\n this.SaveDeleteProjectPrice_New=SaveDeleteProjectPrice_New;\r\n\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetProjectDetailsandPrice_ForTier(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetProjectDetailsandPrice_ForTier', Details, config);\r\n }\r\n\r\n function GetCountryCurrency_ByProjectId(Details) {\r\n return $http.post($rootScope.endPoint + 'Country/GetCountryCurrency_ByProjectId', Details, config);\r\n }\r\n\r\n function SaveDeleteProjectPrice_New(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/SaveDeleteProjectPrice_New', Details, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectLocationSetup')\r\n .service('CRM_projectLocationSetupService', CRM_projectLocationSetupService);\r\n\r\n CRM_projectLocationSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_projectLocationSetupService($http, $rootScope) {\r\n\r\n this.GetAllLocations = GetAllLocations;\r\n this.GetAllProjects = GetAllProjects;\r\n this.AddLocation = AddLocation;\r\n this.RemoveLocationSetup = RemoveLocationSetup;\r\n this.AddTierSetup = AddTierSetup;\r\n this.getAllTierSetup = getAllTierSetup;\r\n this.removeTierSetup = removeTierSetup;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllLocations(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectLocationSetup/GetAllLocations', Details, config);\r\n }\r\n\r\n // function GetAllLocations(CompanyId) {\r\n // return $http.get($rootScope.endPoint + 'CRMProjectLocationSetup/GetAllLocations/' + CompanyId, config);\r\n // }\r\n\r\n function GetAllProjects(Projects) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllProjects', Projects, config);\r\n }\r\n\r\n function AddLocation(Location) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectLocationSetup/AddLocation', Location, config);\r\n }\r\n\r\n function RemoveLocationSetup(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'CRMProjectLocationSetup/DeleteLocation/' + CompanyId, config);\r\n }\r\n\r\n function AddTierSetup(tier) {\r\n return $http.post($rootScope.endPoint + 'CRMTierMasterSetup/Create', tier, config);\r\n }\r\n\r\n function getAllTierSetup(tier) {\r\n return $http.post($rootScope.endPoint + 'CRMTierMasterSetup/AllTierMaster', tier, config);\r\n }\r\n\r\n\r\n function removeTierSetup(id) {\r\n return $http.delete($rootScope.endPoint + 'CRMTierMasterSetup/Delete/' + id, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_ProjectPropertyView_New')\r\n .service('CRM_ProjectPropertyViewService', CRM_ProjectPropertyViewService);\r\n\r\n CRM_ProjectPropertyViewService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_ProjectPropertyViewService($http, $rootScope) {\r\n\r\n this.GetAllPriceApprovedProjects_ForTiles = GetAllPriceApprovedProjects_ForTiles;\r\n this.GetAllInputDataBasedCondition_ForReport = GetAllInputDataBasedCondition_ForReport;\r\n this.GetProjectPropertyReport = GetProjectPropertyReport;\r\n this.ExportProjectPropertyReport = ExportProjectPropertyReport;\r\n this.ExportProjectPropertyReport_New = ExportProjectPropertyReport_New;\r\n this.ExportProjectPropertyReportRERA = ExportProjectPropertyReportRERA;\r\n this.GetAllInputDataBasedCondition_ForReportNew = GetAllInputDataBasedCondition_ForReportNew;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllPriceApprovedProjects_ForTiles(details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/GetAllPriceApprovedProjects_ForTiles', details, config);\r\n }\r\n\r\n function GetAllInputDataBasedCondition_ForReport(details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/GetAllInputDataBasedCondition_ForReport', details, config);\r\n }\r\n function GetAllInputDataBasedCondition_ForReportNew(details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/GetAllInputDataBasedCondition_ForReportNew', details, config);\r\n }\r\n\r\n function GetProjectPropertyReport(details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/GetProjectPropertyReport', details, config);\r\n }\r\n\r\n function ExportProjectPropertyReport(details) {\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/ExportProjectPropertyReport', details, config);\r\n }\r\n\r\n function ExportProjectPropertyReport_New(details) {\r\n \r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/ExportProjectPropertyReport_New', details, config);\r\n }\r\n\r\n function ExportProjectPropertyReportRERA(details) {\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'CRMProjectPropertyReport/ExportProjectPropertyReportRERA', details, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_RepeatedTaskMaster')\r\n .service('CRM_RepeatedTaskMasterService', CRM_RepeatedTaskMasterService);\r\n\r\n CRM_RepeatedTaskMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_RepeatedTaskMasterService($http, $rootScope) {\r\n\r\n this.GetRepeatedByMaster = GetRepeatedByMaster;\r\n this.GetWorkHours = GetWorkHours;\r\n this.GetAllRepeatedActivity = GetAllRepeatedActivity;\r\n this.SaveRemoveRepeatedActivity = SaveRemoveRepeatedActivity;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetRepeatedByMaster(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'CRMRepeatedTaskMaster/GetRepeatedByMaster/' + CompanyId, config);\r\n }\r\n\r\n function GetWorkHours(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'CRMRepeatedTaskMaster/GetWorkHours/' + CompanyId, config);\r\n }\r\n\r\n function GetAllRepeatedActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMRepeatedTaskMaster/GetAllRepeatedActivity', Details, config);\r\n }\r\n\r\n function SaveRemoveRepeatedActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMRepeatedTaskMaster/SaveRemoveRepeatedActivity', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n \r\n \r\n 'use strict';\r\n \r\n angular\r\n .module('KPMES.pages.CRM_SalesActivityCategory')\r\n .service('CRM_SalesActivityCategoryService', CRM_SalesActivityCategoryService);\r\n \r\n CRM_SalesActivityCategoryService.$inject = ['$http', '$rootScope'];\r\n \r\n \r\n function CRM_SalesActivityCategoryService($http, $rootScope) {\r\n \r\n this.ReadSalesActivityCategory = ReadSalesActivityCategory;\r\n \r\n this.SaveDeleteUpdateSalesActivityCategory = SaveDeleteUpdateSalesActivityCategory;\r\n \r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n \r\n function ReadSalesActivityCategory(Details) {\r\n return $http.post($rootScope.endPoint + 'SalesActivityCategoryMaster/ReadSalesActivityCategory', Details, config);\r\n }\r\n \r\n function SaveDeleteUpdateSalesActivityCategory(Details) {\r\n return $http.post($rootScope.endPoint + 'SalesActivityCategoryMaster/SaveDeleteUpdateSalesActivityCategory', Details, config);\r\n }\r\n \r\n }\r\n \r\n })();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_AddBuyerEnquiry')\r\n .service('CRM_AddBuyerEnquiryService', CRM_AddBuyerEnquiryService);\r\n\r\n CRM_AddBuyerEnquiryService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_AddBuyerEnquiryService($http, $rootScope) {\r\n\r\n this.GetSalesBasicDetails_ForEnquiry = GetSalesBasicDetails_ForEnquiry;\r\n this.AddBuyerData = AddBuyerData;\r\n this.DeleteBuyerData = DeleteBuyerData;\r\n this.UpdateBuyerPhoto = UpdateBuyerPhoto;\r\n this.GetSalesEnquiryMaster = GetSalesEnquiryMaster;\r\n this.ExportSalesBuyerReport = ExportSalesBuyerReport;\r\n this.GetBuyerEnquiryReport = GetBuyerEnquiryReport;\r\n this.GetBuyerDropDownInputValues = GetBuyerDropDownInputValues;\r\n\r\n // this.SaveProjectStatutoryMapping = SaveProjectStatutoryMapping;\r\n // this.ReadAllStatutory = ReadAllStatutory;\r\n // this.SaveRemoveStatutory = SaveRemoveStatutory;\r\n // this.ReadProjectStatutorySetting_ForProjectPrice = ReadProjectStatutorySetting_ForProjectPrice;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetSalesBasicDetails_ForEnquiry(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMSalesEnquiryMaster/GetSalesBasicDetails_ForEnquiry', Details, config);\r\n }\r\n\r\n function GetSalesEnquiryMaster(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMSalesEnquiryMaster/GetSalesEnquiryMaster', Details, config);\r\n }\r\n\r\n function AddBuyerData(BuyerDetails) {\r\n\r\n var configNew = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n configNew.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CRMSalesEnquiryMaster/SaveSalesEnquiryMaster', BuyerDetails, configNew);\r\n }\r\n\r\n function DeleteBuyerData(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMSalesEnquiryMaster/DeleteSalesEnquiryMaster', Details, config);\r\n }\r\n\r\n function UpdateBuyerPhoto(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMSalesEnquiryMaster/UpdateBuyerPhoto', Details, config);\r\n }\r\n\r\n // function ExportSalesBuyerReport() {\r\n // return $http.post($rootScope.endPoint + 'CRMSalesBuyerReport/ExportSalesBuyerReport', config);\r\n // }\r\n\r\n function GetBuyerEnquiryReport(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMSalesBuyerReport/GetBuyerEnquiryReport', Details, config);\r\n }\r\n\r\n function ExportSalesBuyerReport(Details) {\r\n\r\n var confignew = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'CRMSalesBuyerReport/ExportSalesBuyerReport', Details, confignew);\r\n }\r\n\r\n function GetBuyerDropDownInputValues(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMSalesBuyerReport/GetBuyerDropDownInputValues', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_StatutoryMaster')\r\n .service('CRM_StatutoryMasterService', CRM_StatutoryMasterService);\r\n\r\n CRM_StatutoryMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_StatutoryMasterService($http, $rootScope) {\r\n\r\n this.GetStatutoryDetailsByProject = GetStatutoryDetailsByProject;\r\n this.SaveProjectStatutoryMapping = SaveProjectStatutoryMapping;\r\n this.ReadAllStatutory = ReadAllStatutory;\r\n this.SaveRemoveStatutory = SaveRemoveStatutory;\r\n this.ReadProjectStatutorySetting_ForProjectPrice = ReadProjectStatutorySetting_ForProjectPrice;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetStatutoryDetailsByProject(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMStatutoryMaster/GetStatutoryDetailsByProject', Details, config);\r\n }\r\n\r\n function SaveProjectStatutoryMapping(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMStatutoryMaster/SaveProjectStatutoryMapping', Details, config);\r\n }\r\n\r\n function ReadAllStatutory(Details) {\r\n return $http.get($rootScope.endPoint + 'CRMStatutoryMaster/ReadAllStatutory', Details, config);\r\n }\r\n\r\n function SaveRemoveStatutory(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMStatutoryMaster/SaveRemoveStatutory', Details, config);\r\n }\r\n\r\n function ReadProjectStatutorySetting_ForProjectPrice(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMStatutoryMaster/ReadProjectStatutorySetting_ForProjectPrice', Details, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_TaskSubjectMaster')\r\n .service('CRM_TaskSubjectMasterService', CRM_TaskSubjectMasterService);\r\n\r\n CRM_TaskSubjectMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n\r\n function CRM_TaskSubjectMasterService($http, $rootScope) {\r\n\r\n this.SaveDeleteSubjectMaster = SaveDeleteSubjectMaster;\r\n\r\n this.ReadSubjectActivity = ReadSubjectActivity;\r\n \r\n this.SaveRemoveActivityMaster=SaveRemoveActivityMaster;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function SaveDeleteSubjectMaster(TaskMaster) {\r\n return $http.post($rootScope.endPoint + 'CRM_TaskSubjectMaster/SaveDeleteSubjectMaster', TaskMaster, config);\r\n }\r\n\r\n function ReadSubjectActivity(SubjectMaster) {\r\n return $http.post($rootScope.endPoint + 'CRM_TaskSubjectMaster/ReadSubjectActivity', SubjectMaster, config);\r\n }\r\n \r\n function SaveRemoveActivityMaster(SubjectMaster) {\r\n return $http.post($rootScope.endPoint + 'CRM_TaskSubjectMaster/SaveRemoveActivityMaster', SubjectMaster, config);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectDetailsSetup')\r\n .service('projectDetailsSetupService', projectDetailsSetupService);\r\n\r\n projectDetailsSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function projectDetailsSetupService($http, $rootScope) {\r\n\r\n this.GetAllLocations = GetAllLocations;\r\n this.GetAllTiers = GetAllTiers;\r\n this.TiersBasicLocation = TiersBasicLocation;\r\n this.ParkingTiersBasicLocation = ParkingTiersBasicLocation;\r\n this.SaveProjectDetailsSetup = SaveProjectDetailsSetup;\r\n this.SaveProjectDetailsSetup_New = SaveProjectDetailsSetup_New;\r\n this.SaveRemoveProjectPriceSetup = SaveRemoveProjectPriceSetup;\r\n this.GetProjectDetailsReadByStatus = GetProjectDetailsReadByStatus;\r\n this.GetAllParkingLeastTiers = GetAllParkingLeastTiers;\r\n this.GetApartmentTypeFlatFacing = GetApartmentTypeFlatFacing;\r\n this.GetProjectDetailsandPrice_New = GetProjectDetailsandPrice_New;\r\n this.GetSavedProjectDetailsTierValues = GetSavedProjectDetailsTierValues;\r\n this.ReadApprovedBasicLocations_ForPrice = ReadApprovedBasicLocations_ForPrice;\r\n this.uploadProjectImage = uploadProjectImage;\r\n\r\n this.ReadUnitMaster = ReadUnitMaster;\r\n\r\n this.UpdateandDeleteProjectFileUpload = UpdateandDeleteProjectFileUpload;\r\n this.ReadProjectAreaDetails_ByTierId = ReadProjectAreaDetails_ByTierId;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllLocations(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectLocationSetup/GetAllLocations', Details, config);\r\n }\r\n\r\n\r\n function uploadProjectImage(data) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/uploadProjectImage', data, config);\r\n }\r\n\r\n function GetAllTiers(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMParkingTierSetup/AllTierMaster', Details, config);\r\n }\r\n\r\n function TiersBasicLocation(TiersBasicLocation) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/Tiers_BasicLocations', TiersBasicLocation, config);\r\n }\r\n\r\n function ParkingTiersBasicLocation(TiersBasicLocation) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/ParkingTiers_BasicLocations', TiersBasicLocation, config);\r\n }\r\n\r\n function GetProjectDetailsReadByStatus(TiersBasicLocation) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetProjectDetailsReadByStatus', TiersBasicLocation, config);\r\n }\r\n\r\n function SaveProjectDetailsSetup(Details) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/SaveProjectDetailsSetup', Details, config);\r\n }\r\n\r\n function SaveProjectDetailsSetup_New(Details) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/SaveProjectDetailsSetup_New', Details, config);\r\n }\r\n\r\n function SaveRemoveProjectPriceSetup(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/SaveRemoveProjectPriceSetup', Details, config);\r\n }\r\n\r\n function GetAllParkingLeastTiers(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetAllParkingLeastTiers', Details, config);\r\n }\r\n\r\n function ReadUnitMaster(Name) {\r\n return $http.get($rootScope.endPoint + 'CRMProjectDetails/ReadUnitMaster/' + Name, config);\r\n }\r\n\r\n function GetApartmentTypeFlatFacing(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetApartmentTypeFlatFacing', Details, config);\r\n }\r\n\r\n function GetProjectDetailsandPrice_New(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetProjectDetailsandPrice_New', Details, config);\r\n }\r\n\r\n function GetSavedProjectDetailsTierValues(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/GetSavedProjectDetailsTierValues', Details, config);\r\n }\r\n\r\n function ReadApprovedBasicLocations_ForPrice(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/ReadApprovedBasicLocations_ForPrice', Details, config);\r\n }\r\n\r\n function UpdateandDeleteProjectFileUpload(objDeleteDTO) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/UpdateandDeleteProjectFileUpload', objDeleteDTO, config);\r\n }\r\n\r\n function ReadProjectAreaDetails_ByTierId(Details) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectDetails/ReadProjectAreaDetails_ByTierId', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_GroupCreation')\r\n .service('Enterprise_GroupCreationService', Enterprise_GroupCreationService);\r\n\r\n Enterprise_GroupCreationService.$inject = ['$http', '$rootScope'];\r\n\r\n function Enterprise_GroupCreationService($http, $rootScope) {\r\n\r\n this.ReadEmployeeShortdecsc = ReadEmployeeShortdecsc;\r\n this.SaveUpdateGroupMembers = SaveUpdateGroupMembers;\r\n this.ReadTierLocations = ReadTierLocations;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n // ?CompanyId={{vm.Groupcreation.CompanyId}}&ProjectId={{vm.Groupcreation.ProjectId}}&GroupHead=Y&Searchfor=ShortDesc&GroupHeadId=0&Condition=\"\r\n\r\n function ReadEmployeeShortdecsc(CompanyId, ProjectId, GroupHead, Searchfor, GroupHeadId, Condition) {\r\n // return $http.get($rootScope.endPoint + 'EnterpriseGroupCreation/ReadEmployeeShortdecsc?', CompanyId, ProjectId, GroupHead, Searchfor, GroupHeadId, Condition, config);\r\n return $http.get($rootScope.endPoint + 'EnterpriseGroupCreation/ReadEmployeeShortdecsc?CompanyId=' + CompanyId + '&ProjectId=' + ProjectId + '&GroupHead=' + GroupHead + '&Searchfor=' + Searchfor + '&GroupHeadId=' + GroupHeadId + '&Condition=' + Condition, config);\r\n }\r\n function SaveUpdateGroupMembers(Details) {\r\n return $http.post($rootScope.endPoint + 'EnterpriseGroupCreation/SaveUpdateGroupMembers', Details, config);\r\n }\r\n\r\n function ReadTierLocations(Details) {\r\n return $http.post($rootScope.endPoint + 'EnterpriseGroupCreation/ReadTierLocations', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_LocationSetup')\r\n .service('Enterprise_LocationSetupService', Enterprise_LocationSetupService);\r\n\r\n Enterprise_LocationSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function Enterprise_LocationSetupService($http, $rootScope) {\r\n\r\n this.GetAllEnterpriseLocations = GetAllEnterpriseLocations;\r\n this.GetAllProjects = GetAllProjects;\r\n this.CreateEnterpriseLocation = CreateEnterpriseLocation;\r\n this.DeleteEnterpriseLocation = DeleteEnterpriseLocation;\r\n this.CreateEnterpriseTier = CreateEnterpriseTier;\r\n this.GetAllEnterpriseTier = GetAllEnterpriseTier;\r\n this.DeleteEnterpriseTier = DeleteEnterpriseTier;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetAllEnterpriseLocations(Details) {\r\n return $http.post($rootScope.endPoint + 'EnterpriseLocationSetup/GetAllEnterpriseLocations', Details, config);\r\n }\r\n\r\n\r\n function GetAllProjects(Projects) {\r\n return $http.post($rootScope.endPoint + 'CRMProjectMaster/AllProjects', Projects, config);\r\n }\r\n\r\n function CreateEnterpriseLocation(Location) {\r\n return $http.post($rootScope.endPoint + 'EnterpriseLocationSetup/CreateEnterpriseLocation', Location, config);\r\n }\r\n\r\n function DeleteEnterpriseLocation(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'EnterpriseLocationSetup/DeleteLocation/' + CompanyId, config);\r\n }\r\n\r\n function CreateEnterpriseTier(tier) {\r\n return $http.post($rootScope.endPoint + 'EnterpriseMasterSetup/CreateEnterpriseTier', tier, config);\r\n }\r\n\r\n function GetAllEnterpriseTier(tier) {\r\n return $http.post($rootScope.endPoint + 'EnterpriseMasterSetup/GetAllEnterpriseTier', tier, config);\r\n }\r\n\r\n\r\n function DeleteEnterpriseTier(id) {\r\n return $http.delete($rootScope.endPoint + 'EnterpriseMasterSetup/Delete/' + id, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Enterprise_DetailsSetup')\r\n .service('Enterprise_DetailsService', Enterprise_DetailsService);\r\n\r\n Enterprise_DetailsService.$inject = ['$http', '$rootScope'];\r\n\r\n function Enterprise_DetailsService($http, $rootScope) {\r\n\r\n this.TiersBasicLocation = TiersBasicLocation;\r\n this.GetEnterpriseProjectDetailsRead = GetEnterpriseProjectDetailsRead;\r\n this.EnterpriseSaveProjectDetailsSetup = EnterpriseSaveProjectDetailsSetup;\r\n this.ReadEmployees= ReadEmployees;\r\n \r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function TiersBasicLocation(Details) {\r\n return $http.post($rootScope.endPoint + 'ENT_ProjectDetails/Tiers_BasicLocations', Details, config);\r\n }\r\n function GetEnterpriseProjectDetailsRead(Details) {\r\n return $http.post($rootScope.endPoint + 'ENT_ProjectDetails/GetEnterpriseProjectDetailsRead', Details, config);\r\n }\r\n function EnterpriseSaveProjectDetailsSetup(Details) {\r\n return $http.post($rootScope.endPoint + 'ENT_ProjectDetails/EnterpriseSaveProjectDetailsSetup', Details, config);\r\n }\r\n\r\n function ReadEmployees(Details) {\r\n return $http.post($rootScope.endPoint + 'ENT_ProjectDetails/ReadEmployees', Details, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.accountMaster')\r\n .service('AccountMasterService', AccountMasterService);\r\n\r\n AccountMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function AccountMasterService($http, $rootScope) {\r\n\r\n this.AddAccountMaster = AddAccountMaster;\r\n this.editAccountMaster = editAccountMaster;\r\n this.getAllAccountMaster = getAllAccountMaster;\r\n this.RemoveAccountMaster = RemoveAccountMaster;\r\n this.getAllCurrency = getAllCurrency;\r\n this.getAllTransaction = getAllTransaction;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddAccountMaster(obj) {\r\n return $http.post($rootScope.endPoint + 'AccountMaster/Create', obj, config);\r\n }\r\n\r\n function editAccountMaster(obj) {\r\n return $http.put($rootScope.endPoint + 'AccountMaster/Modify', obj, config);\r\n }\r\n\r\n function RemoveAccountMaster(id) {\r\n return $http.delete($rootScope.endPoint + 'AccountMaster/Delete/' + id, config);\r\n }\r\n\r\n\r\n function getAllCurrency() {\r\n return $http.get($rootScope.endPoint + 'AccountMaster/AllCurrency', config);\r\n }\r\n\r\n\r\n function getAllTransaction() {\r\n return $http.get($rootScope.endPoint + 'AccountMaster/AllTransaction', config);\r\n }\r\n\r\n function getAllAccountMaster() {\r\n return $http.post($rootScope.endPoint + 'AccountMaster/AllAccountMaster', config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.accountTransaction')\r\n .service('AccountTransactionService', AccountTransactionService);\r\n\r\n AccountTransactionService.$inject = ['$http', '$rootScope'];\r\n\r\n function AccountTransactionService($http, $rootScope) {\r\n\r\n this.AddAccountTransaction = AddAccountTransaction;\r\n this.getAllAccountTransaction = getAllAccountTransaction;\r\n this.editAccountTransaction = editAccountTransaction;\r\n // this.getAllProjectHolidayMaster = getAllProjectHolidayMaster;\r\n this.RemoveAccountTransaction = RemoveAccountTransaction;\r\n this.getAllPaymenyMode = getAllPaymenyMode;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddAccountTransaction(obj) {\r\n return $http.post($rootScope.endPoint + 'AccountTransaction/Create', obj, config);\r\n }\r\n\r\n function editAccountTransaction(obj) {\r\n return $http.put($rootScope.endPoint + 'AccountTransaction/Modify', obj, config);\r\n }\r\n\r\n function RemoveAccountTransaction(id) {\r\n return $http.delete($rootScope.endPoint + 'AccountTransaction/Delete/' + id, config);\r\n }\r\n\r\n function getAllAccountTransaction() {\r\n return $http.get($rootScope.endPoint + 'AccountTransaction/AllTransaction', config);\r\n }\r\n function getAllPaymenyMode() {\r\n return $http.get($rootScope.endPoint + 'AccountMaster/AllPaymenyMode', config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.EmployeeComponent')\r\n .service('EmployeeComponentService', EmployeeComponentService);\r\n\r\n EmployeeComponentService.$inject = ['$http', '$rootScope'];\r\n\r\n function EmployeeComponentService($http, $rootScope) {\r\n this.RemoveEmployeeComponent = RemoveEmployeeComponent;\r\n this.AllEmployeeComponent = AllEmployeeComponent;\r\n this.saveEmployeeComponent = saveEmployeeComponent;\r\n this.EditEmployeeComponent = EditEmployeeComponent;\r\n // this.getSalaryComponent = getSalaryComponent;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AllEmployeeComponent(obj) {\r\n return $http.post($rootScope.endPoint + 'EmployeeComponent/AllEmployeeComponent', obj, config);\r\n }\r\n function RemoveEmployeeComponent(id) {\r\n return $http.delete($rootScope.endPoint + 'EmployeeComponent/Delete/' + id, config);\r\n }\r\n\r\n function saveEmployeeComponent(Details) {\r\n return $http.post($rootScope.endPoint + 'EmployeeComponent/Create', Details, config);\r\n }\r\n\r\n function EditEmployeeComponent(employeeComponent) {\r\n return $http.put($rootScope.endPoint + 'EmployeeComponent/Modify', employeeComponent, config);\r\n }\r\n\r\n\r\n // function getSalaryComponent() {\r\n // return $http.get($rootScope.endPoint + 'SalaryComponent/AllSalaryComponent', config);\r\n // }\r\n\r\n }\r\n\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.employeeSalary')\r\n .service('EmployeeSalaryService', EmployeeSalaryService);\r\n\r\n EmployeeSalaryService.$inject = ['$http', '$rootScope'];\r\n\r\n function EmployeeSalaryService($http, $rootScope) {\r\n\r\n this.AddEmployeeSalary = AddEmployeeSalary;\r\n this.editEmployeeSalary = editEmployeeSalary;\r\n // this.getAllProjectHolidayMaster = getAllProjectHolidayMaster;\r\n // this.RemoveEmployeeSalary = RemoveEmployeeSalary;\r\n this.getAllEmployeeSalary = getAllEmployeeSalary;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function getAllEmployeeSalary() {\r\n return $http.get($rootScope.endPoint + 'EmployeeSalary/AllEmployeeSalary', config);\r\n }\r\n\r\n function AddEmployeeSalary(obj) {\r\n return $http.post($rootScope.endPoint + 'EmployeeSalary/Create', obj, config);\r\n }\r\n\r\n function editEmployeeSalary(obj) {\r\n return $http.put($rootScope.endPoint + 'EmployeeSalary/Modify', obj, config);\r\n }\r\n\r\n // function RemoveProjectHoliday(id) {\r\n // return $http.delete($rootScope.endPoint + 'ProjectHolidayMaster/Delete/' + id, config);\r\n // }\r\n\r\n // function getAllProjectHolidayMaster() {\r\n // return $http.get($rootScope.endPoint + 'ProjectHolidayMaster/GetAllProjectHolidays', config);\r\n // }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.LeaveMaster')\r\n .service('LeaveMasterService', LeaveMasterService);\r\n\r\n LeaveMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function LeaveMasterService($http, $rootScope) {\r\n\r\n this.AddLeaveMaster = AddLeaveMaster;\r\n this.editLeaveMaster = editLeaveMaster;\r\n // this.getAllAccountMaster = getAllAccountMaster;\r\n this.RemoveLeaveMaster = RemoveLeaveMaster;\r\n this.getAllLeaveMaster = getAllLeaveMaster;\r\n\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddLeaveMaster(obj) {\r\n return $http.post($rootScope.endPoint + 'LeaveMaster/Create', obj, config);\r\n }\r\n\r\n function editLeaveMaster(obj) {\r\n return $http.post($rootScope.endPoint + 'LeaveMaster/Modify', obj, config);\r\n }\r\n function getAllLeaveMaster() {\r\n return $http.get($rootScope.endPoint + 'LeaveMaster/AllLeaveMaster', config);\r\n }\r\n function RemoveLeaveMaster(id) {\r\n return $http.delete($rootScope.endPoint + 'LeaveMaster/Delete/' + id, config);\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.SalaryComponents')\r\n .service('SalaryComponentsService', SalaryComponentsService);\r\n\r\n SalaryComponentsService.$inject = ['$http', '$rootScope'];\r\n\r\n function SalaryComponentsService($http, $rootScope) {\r\n\r\n this.AllTransaction = AllTransaction;\r\n this.AddSalaryComponent = AddSalaryComponent;\r\n this.AllSalaryComponent = AllSalaryComponent;\r\n this.SalaryComponentEdit = SalaryComponentEdit;\r\n this.RemoveSalaryComponent = RemoveSalaryComponent;\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function AllTransaction(Details) {\r\n return $http.get($rootScope.endPoint + 'AccountMaster/AllTransaction', Details, config);\r\n }\r\n\r\n function AddSalaryComponent(Details) {\r\n return $http.post($rootScope.endPoint + 'SalaryComponent/Create', Details, config);\r\n }\r\n\r\n function AllSalaryComponent(SalaryComponent) {\r\n return $http.post($rootScope.endPoint + 'SalaryComponent/AllSalaryComponent', SalaryComponent, config);\r\n }\r\n\r\n\r\n\r\n function SalaryComponentEdit(SalaryComponent) {\r\n return $http.put($rootScope.endPoint + 'SalaryComponent/Modify', SalaryComponent, config);\r\n }\r\n\r\n\r\n function RemoveSalaryComponent(id) {\r\n return $http.delete($rootScope.endPoint + 'SalaryComponent/Delete/' + id, config);\r\n }\r\n }\r\n\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.area')\r\n .service('AreaService', AreaService);\r\n\r\n AreaService.$inject = ['$http', '$rootScope'];\r\n\r\n function AreaService($http, $rootScope) {\r\n this.AddArea = AddArea;\r\n this.EditArea = EditArea;\r\n this.removeArea = removeArea;\r\n this.getAllArea = getAllArea;\r\n this.GetAreaByCityId = GetAreaByCityId;\r\n this.getAllAreaById = getAllAreaById;\r\n this.getAllAreaByPinCode = getAllAreaByPinCode;\r\n this.changeActiveArea = changeActiveArea;\r\n this.ShowAreaReport = ShowAreaReport;\r\n this.AddTaluk = AddTaluk;\r\n this.RemoveTaluk = RemoveTaluk;\r\n this.GetAllTaluk = GetAllTaluk;\r\n this.GetAllTalukByCity = GetAllTalukByCity;\r\n\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function ShowAreaReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n },\r\n responseType: 'arraybuffer'\r\n }\r\n return $http.post($rootScope.endPoint + 'Area/ShowAreaReport', obj, config);\r\n }\r\n\r\n function getAllArea(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Area/AllArea', config);\r\n }\r\n\r\n function GetAreaByCityId(id) {\r\n return $http.get($rootScope.endPoint + 'Area/GetAreaByCityId/' + id, config);\r\n }\r\n\r\n function getAllAreaByPinCode(PinCode) {\r\n return $http.get($rootScope.endPoint + 'Area/GetAreaByPinCode/' + PinCode, config);\r\n }\r\n\r\n function getAllAreaById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Area/GetById', config);\r\n }\r\n\r\n function AddArea(area) {\r\n return $http.post($rootScope.endPoint + 'Area/Create', area, config);\r\n }\r\n\r\n function EditArea(area) {\r\n return $http.put($rootScope.endPoint + 'Area/Modify', area, config);\r\n }\r\n\r\n function removeArea(id) {\r\n return $http.delete($rootScope.endPoint + 'Area/Delete/' + id, config);\r\n }\r\n function changeActiveArea(id) {\r\n return $http.post($rootScope.endPoint + 'Area/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function AddTaluk(taluk) {\r\n return $http.post($rootScope.endPoint + 'Area/CreateTaluk', taluk, config);\r\n }\r\n\r\n function RemoveTaluk(id) {\r\n return $http.post($rootScope.endPoint + 'Area/RemoveTaluk/' + id, config);\r\n }\r\n\r\n function GetAllTalukByCity(taluk) {\r\n return $http.post($rootScope.endPoint + 'Area/GetAllTalukByCity', taluk, config);\r\n }\r\n function GetAllTaluk() {\r\n return $http.get($rootScope.endPoint + 'Area/GetAllTaluk', config);\r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.city')\r\n .service('CityService', CityService);\r\n\r\n CityService.$inject = ['$http', '$rootScope'];\r\n\r\n function CityService($http, $rootScope) {\r\n this.AddCity = AddCity;\r\n this.EditCity = EditCity;\r\n this.removeCity = removeCity;\r\n this.getAllCity = getAllCity;\r\n this.getCityById = getCityById;\r\n this.GetCityByStateId = GetCityByStateId;\r\n this.changeActiveCity = changeActiveCity;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllCity(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'City/AllCity', config);\r\n }\r\n\r\n function getCityById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'City/GetCityId/', config);\r\n }\r\n\r\n function AddCity(city) {\r\n return $http.post($rootScope.endPoint + 'City/Create', city, config);\r\n }\r\n\r\n function EditCity(city) {\r\n return $http.put($rootScope.endPoint + 'City/Modify', city, config);\r\n }\r\n\r\n function removeCity(id) {\r\n return $http.delete($rootScope.endPoint + 'City/Delete/' + id, config);\r\n }\r\n\r\n function GetCityByStateId(id) {\r\n return $http.get($rootScope.endPoint + 'City/GetCityByStateId/' + id, config);\r\n }\r\n function changeActiveCity(id) {\r\n return $http.post($rootScope.endPoint + 'City/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.country')\r\n .service('CountryService', CountryService);\r\n\r\n CountryService.$inject = ['$http', '$rootScope'];\r\n\r\n function CountryService($http, $rootScope) {\r\n this.AddCountry = AddCountry;\r\n this.EditCountry = EditCountry;\r\n this.removeCountry = removeCountry;\r\n this.getAllCountry = getAllCountry;\r\n this.getCountryById = getCountryById;\r\n this.getActiveCountry = getActiveCountry;\r\n this.changeActiveCountry = changeActiveCountry;\r\n this.GetAllCountry_ByProc = GetAllCountry_ByProc;\r\n this.SaveDeleteCountryMaster = SaveDeleteCountryMaster;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllCountry(objCountry) {\r\n return $http.get($rootScope.endPoint + 'Country/AllCountry', config);\r\n }\r\n\r\n function getActiveCountry(objCountry) {\r\n return $http.get($rootScope.endPoint + 'Country/GetActiveCountryById', config);\r\n }\r\n\r\n function AddCountry(Country) {\r\n return $http.post($rootScope.endPoint + 'Country/Create', Country, config);\r\n }\r\n\r\n function EditCountry(Country) {\r\n return $http.put($rootScope.endPoint + 'Country/Modify', Country, config);\r\n }\r\n\r\n function removeCountry(id) {\r\n return $http.delete($rootScope.endPoint + 'Country/Delete/' + id, config);\r\n }\r\n\r\n function getCountryById(objCountry) {\r\n return $http.delete($rootScope.endPoint + 'Country/GetById/', config);\r\n }\r\n\r\n function changeActiveCountry(objCountry) {\r\n return $http.post($rootScope.endPoint + 'Country/ChangeActive', objCountry, config);\r\n }\r\n\r\n function changeActiveCountry(objCountry) {\r\n return $http.post($rootScope.endPoint + 'Country/ChangeActive', objCountry, config);\r\n }\r\n\r\n function GetAllCountry_ByProc() {\r\n return $http.post($rootScope.endPoint + 'Country/GetAllCountry_ByProc', config);\r\n }\r\n\r\n function SaveDeleteCountryMaster(objCountry) {\r\n return $http.post($rootScope.endPoint + 'Country/SaveDeleteCountryMaster', objCountry, config);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.state')\r\n .service('StateService', StateService);\r\n\r\n StateService.$inject = ['$http', '$rootScope'];\r\n\r\n function StateService($http, $rootScope) {\r\n this.AddState = AddState;\r\n this.EditState = EditState;\r\n this.removeState = removeState;\r\n this.getAllState = getAllState;\r\n this.getAllCountry = getAllCountry;\r\n this.getStateById = getStateById;\r\n this.GetStateByCountryId = GetStateByCountryId;\r\n this.changeActiveState = changeActiveState;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllState(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'State/AllState', config);\r\n }\r\n\r\n function getAllCountry(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'Country/AllCountry', config);\r\n }\r\n\r\n function getStateById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'State/GetStateId/', config);\r\n }\r\n\r\n function AddState(state) {\r\n return $http.post($rootScope.endPoint + 'State/Create', state, config);\r\n }\r\n\r\n function EditState(state) {\r\n return $http.put($rootScope.endPoint + 'State/Modify', state, config);\r\n }\r\n\r\n function removeState(id) {\r\n return $http.delete($rootScope.endPoint + 'State/Delete/' + id, config);\r\n }\r\n\r\n function GetStateByCountryId(id) {\r\n return $http.get($rootScope.endPoint + 'State/GetStateByCountryId/' + id, config);\r\n }\r\n function changeActiveState(id) {\r\n return $http.post($rootScope.endPoint + 'State/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('categoryOfMachineryService', categoryOfMachineryService);\r\n\r\n categoryOfMachineryService.$inject = ['$http', '$rootScope'];\r\n\r\n function categoryOfMachineryService($http, $rootScope) {\r\n this.AddCategoryOfMachinery = AddCategoryOfMachinery;\r\n this.EditCategoryOfMachinery = EditCategoryOfMachinery;\r\n this.removeCategoryOfMachinery = removeCategoryOfMachinery;\r\n this.getAllCategoryOfMachinery = getAllCategoryOfMachinery;\r\n this.getCategoryOfMachineryById = getCategoryOfMachineryById;\r\n this.changeActiveCategoryOfMachinery = changeActiveCategoryOfMachinery;\r\n this.getActiveCategoryOfMachinery = getActiveCategoryOfMachinery;\r\n this.FilterCountry = FilterCountry;\r\n this.FilterLob = FilterLob;\r\n this.ShowMachineryCategoryReport = ShowMachineryCategoryReport;\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllCategoryOfMachinery() {\r\n return $http.get($rootScope.endPoint + 'CategoryOfMachinery/AllCategoryOfMachinery', config);\r\n }\r\n\r\n function FilterCountry() {\r\n return $http.get($rootScope.endPoint + 'CategoryOfMachinery/FilterCountry', config);\r\n }\r\n\r\n function FilterLob() {\r\n return $http.get($rootScope.endPoint + 'CategoryOfMachinery/FilterLOB', config);\r\n }\r\n\r\n\r\n function getCategoryOfMachineryById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'CategoryOfMachinery/GetCategoryOfMachineryId/', config);\r\n }\r\n\r\n function AddCategoryOfMachinery(CategoryOfMachinery) {\r\n return $http.post($rootScope.endPoint + 'CategoryOfMachinery/Create', CategoryOfMachinery, config);\r\n }\r\n\r\n function EditCategoryOfMachinery(CategoryOfMachinery) {\r\n return $http.put($rootScope.endPoint + 'CategoryOfMachinery/Modify', CategoryOfMachinery, config);\r\n }\r\n\r\n function removeCategoryOfMachinery(id) {\r\n return $http.delete($rootScope.endPoint + 'CategoryOfMachinery/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveCategoryOfMachinery(id) {\r\n return $http.post($rootScope.endPoint + 'CategoryOfMachinery/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getActiveCategoryOfMachinery(objMachineryCategory) {\r\n return $http.get($rootScope.endPoint + 'CategoryOfMachinery/GetActiveCategoryofMachineryById', config);\r\n }\r\n\r\n \r\n function ShowMachineryCategoryReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'MachineryReport/ShowMachineryCategoryReport', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('IOMachineryService', IOMachineryService);\r\n\r\n IOMachineryService.$inject = ['$http', '$rootScope'];\r\n\r\n function IOMachineryService($http, $rootScope) {\r\n this.AddIOMachinery = AddIOMachinery;\r\n this.getAllIOMachinery = getAllIOMachinery;\r\n this.UpdateIOMachinery = UpdateIOMachinery;\r\n this.removeIOMH = removeIOMH;\r\n this.checkCombinationExist = checkCombinationExist;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function UpdateIOMachinery(Obj) {\r\n return $http.post($rootScope.endPoint + 'ItemOfMachinery/updateItemofmachinery', Obj, config);\r\n }\r\n\r\n function checkCombinationExist(objGetComb) {\r\n return $http.post($rootScope.endPoint + 'ItemOfMachinery/CheckCombination', objGetComb, config);\r\n }\r\n\r\n function AddIOMachinery(attribute) {\r\n return $http.post($rootScope.endPoint + 'ItemOfMachinery/insertNewItemofmachinery', attribute, config);\r\n }\r\n\r\n function getAllIOMachinery(Obj) {\r\n return $http.post($rootScope.endPoint + 'ItemOfMachinery/GetAllItemOfMachinery', Obj, config);\r\n }\r\n\r\n function removeIOMH(id) {\r\n return $http.delete($rootScope.endPoint + 'ItemOfMachinery/removeItemofmachinery/' + id, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('LobMachineryService', LobMachineryService);\r\n\r\n LobMachineryService.$inject = ['$http', '$rootScope'];\r\n\r\n function LobMachineryService($http, $rootScope) {\r\n this.AddLobMachinery = AddLobMachinery;\r\n this.EditLobMachinery = EditLobMachinery;\r\n this.removeLobMachinery = removeLobMachinery;\r\n this.getAllLobMachinery = getAllLobMachinery;\r\n this.getLobMachineryById = getLobMachineryById;\r\n this.getActiveLobMachinery = getActiveLobMachinery;\r\n this.changeActiveLobMachinery = changeActiveLobMachinery;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllLobMachinery() {\r\n return $http.get($rootScope.endPoint + 'LOBMachinery/AllLOB_Machinery', config);\r\n }\r\n\r\n function getActiveLobMachinery() {\r\n return $http.get($rootScope.endPoint + 'LOBMachinery/GetActiveLOB_MachineryById', config);\r\n }\r\n\r\n function AddLobMachinery(Country) {\r\n return $http.post($rootScope.endPoint + 'LOBMachinery/Create', Country, config);\r\n }\r\n\r\n function EditLobMachinery(Country) {\r\n return $http.put($rootScope.endPoint + 'LOBMachinery/Modify', Country, config);\r\n }\r\n\r\n function removeLobMachinery(id) {\r\n return $http.delete($rootScope.endPoint + 'LOBMachinery/Delete/' + id, config);\r\n }\r\n\r\n function getLobMachineryById(objCountry) {\r\n return $http.delete($rootScope.endPoint + 'LOBMachinery/GetById/', config);\r\n }\r\n\r\n function changeActiveLobMachinery(id) {\r\n return $http.post($rootScope.endPoint + 'LOBMachinery/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('MachineryAttributeService', MachineryAttributeService);\r\n\r\n MachineryAttributeService.$inject = ['$http','$rootScope'];\r\n\r\n function MachineryAttributeService($http,$rootScope) {\r\n this.AddMachineryAttribute = AddMachineryAttribute;\r\n this.EditMachineryAttribute = EditMachineryAttribute;\r\n this.removeMachineryAttribute = removeMachineryAttribute;\r\n this.getAllMachineryAttribute = getAllMachineryAttribute; \r\n this.getMachineryAttributeById = getMachineryAttributeById;\r\n //this.GetMachineryAttributeByStateId=GetMachineryAttributeByStateId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllMachineryAttribute(objGetEmpDTO) {\r\n return $http.post($rootScope.endPoint + 'MachineryAttributes/GetAllMachineryAttributes',objGetEmpDTO,config);\r\n }\r\n\r\n function getMachineryAttributeById(objGetEmpDTO) {\r\n return $http.post($rootScope.endPoint + 'MachineryAttributes/GetAttributeId/',config);\r\n }\r\n\r\n function AddMachineryAttribute(MachineryAttribute) {\r\n return $http.post($rootScope.endPoint + 'MachineryAttributes/insertNewMachineryAttribute', MachineryAttribute,config);\r\n }\r\n\r\n function EditMachineryAttribute(MachineryAttribute) {\r\n return $http.post($rootScope.endPoint + 'MachineryAttributes/updateMachineryAttribute' , MachineryAttribute,config );\r\n }\r\n\r\n function removeMachineryAttribute(id) {\r\n return $http.post($rootScope.endPoint + 'MachineryAttributes/removeMachineryuAttribute' , id,config);\r\n }\r\n\r\n // function GetAttributeByStateId(id) {\r\n // return $http.get($rootScope.endPoint + 'MachineryAttribute/GetAttributeByStateId/' + id);\r\n // }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('MachinerySubCategoryService',MachinerySubCategoryService);\r\n\r\n MachinerySubCategoryService.$inject = ['$http', '$rootScope'];\r\n\r\n function MachinerySubCategoryService($http, $rootScope) {\r\n this.AddMachinerySubCategory = AddMachinerySubCategory;\r\n this.EditMachinerySubCategory = EditMachinerySubCategory;\r\n this.removeMachinerySubCategory = removeMachinerySubCategory;\r\n this.getAllMachinerySubCategory = getAllMachinerySubCategory;\r\n this.getMachinerySubCategoryById = getMachinerySubCategoryById;\r\n this.GetActiveMachinerySubCategoryById = GetActiveMachinerySubCategoryById;\r\n this.ChangeActiveMachinerySubCategory = ChangeActiveMachinerySubCategory;\r\n this.getMachinerySubCategoryListByMachnieryCategoryId = getMachinerySubCategoryListByMachnieryCategoryId;\r\n this.getCategoryByLOB = getCategoryByLOB;\r\n this.getFilterCategory = getFilterCategory;\r\n this.ShowMachinerySubCategoryReport = ShowMachinerySubCategoryReport;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n function getFilterCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'MachinerySubCategory/FilterMachineryCategory',obj, config);\r\n }\r\n\r\n\r\n function getAllMachinerySubCategory(objMachinerySubCategory) {\r\n return $http.get($rootScope.endPoint + 'MachinerySubCategory/AllMachinerySubCategorys', config);\r\n }\r\n\r\n function getMachinerySubCategoryById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'MachinerySubCategory/GetSubCategoryId/', config);\r\n }\r\n\r\n function AddMachinerySubCategory(categoryofCA) {\r\n return $http.post($rootScope.endPoint + 'MachinerySubCategory/Create', categoryofCA, config);\r\n }\r\n\r\n function EditMachinerySubCategory(categoryofCA) {\r\n return $http.put($rootScope.endPoint + 'MachinerySubCategory/Modify', categoryofCA, config);\r\n }\r\n\r\n function GetActiveMachinerySubCategoryById(categoryofCA) {\r\n return $http.get($rootScope.endPoint + 'MachinerySubCategory/GetActiveCA_SubCategoryById', config);\r\n }\r\n\r\n function removeMachinerySubCategory(id) {\r\n return $http.delete($rootScope.endPoint + 'MachinerySubCategory/Delete/' + id, config);\r\n }\r\n\r\n function getMachinerySubCategoryListByMachnieryCategoryId(id) {\r\n return $http.get($rootScope.endPoint + 'MachinerySubCategory/GetMachinerySubCategoryByCategory/' + id, config);\r\n }\r\n\r\n\r\n function ChangeActiveMachinerySubCategory(id) {\r\n return $http.post($rootScope.endPoint + 'MachinerySubCategory/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function getCategoryByLOB(objGetCategory) {\r\n return $http.post($rootScope.endPoint + 'CategoryOfMachinery/GetCategoryByLOB', objGetCategory, config);\r\n }\r\n\r\n function ShowMachinerySubCategoryReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'MachineryReport/ShowMachinerySubCategoryReport', obj, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('MachineryTypeService', MachineryTypeService);\r\n\r\n MachineryTypeService.$inject = ['$http', '$rootScope'];\r\n\r\n function MachineryTypeService($http, $rootScope) {\r\n this.AddMachineryType = AddMachineryType;\r\n this.EditMachineryType = EditMachineryType;\r\n this.removeMachineryType = removeMachineryType;\r\n this.getAllMachineryType = getAllMachineryType;\r\n this.getMachineryTypeById = getMachineryTypeById;\r\n this.GetActiveMachineryTypeById = GetActiveMachineryTypeById;\r\n this.ChangeActiveMachineryType = ChangeActiveMachineryType;\r\n this.GetMachTypeBySubCategory = GetMachTypeBySubCategory;\r\n this.GetTypeOfMachineryByCategory = GetTypeOfMachineryByCategory;\r\n this.getFilterSubCategory = getFilterSubCategory;\r\n this.ShowMachineryTypeReport = ShowMachineryTypeReport;\r\n // this.getMachineryTypeListByMachinerySubcategoryId=getMachineryTypeListByMachinerySubcategoryId;\r\n \r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getFilterSubCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'MachineryType/FilterMachinerySubCategory', obj,config);\r\n }\r\n function getAllMachineryType(objMachineryType) {\r\n return $http.get($rootScope.endPoint + 'MachineryType/AllMachineryType', config);\r\n }\r\n\r\n function getMachineryTypeById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'MachineryType/GetMachineryTypeById/', config);\r\n }\r\n\r\n function AddMachineryType(machType) {\r\n return $http.post($rootScope.endPoint + 'MachineryType/Create', machType, config);\r\n }\r\n\r\n function EditMachineryType(machType) {\r\n return $http.put($rootScope.endPoint + 'MachineryType/Modify', machType, config);\r\n }\r\n\r\n function GetActiveMachineryTypeById(machType) {\r\n return $http.get($rootScope.endPoint + 'MachineryType/GetActiveMachineryTypeById', config);\r\n }\r\n\r\n function removeMachineryType(id) {\r\n return $http.delete($rootScope.endPoint + 'MachineryType/Delete/' + id, config);\r\n }\r\n\r\n function GetMachTypeBySubCategory(id) {\r\n return $http.get($rootScope.endPoint + 'MachineryType/GetMachineryTypeBySubCategory/' + id, config);\r\n }\r\n\r\n \r\n function ChangeActiveMachineryType(id) {\r\n return $http.post($rootScope.endPoint + 'MachineryType/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n function GetTypeOfMachineryByCategory(id) {\r\n return $http.get($rootScope.endPoint + 'MachineryType/GetTypeOfMachineryByCategory/'+id, {}, config);\r\n }\r\n\r\n function ShowMachineryTypeReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'MachineryReport/ShowMachineryTypeReport', obj, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.machineryMaster')\r\n .service('MachineryVariableService', MachineryVariableService);\r\n\r\n MachineryVariableService.$inject = ['$http', '$rootScope'];\r\n\r\n function MachineryVariableService($http, $rootScope) {\r\n this.AddVariable = AddVariable;\r\n this.AddCombination = AddCombination;\r\n this.removeCombination = removeCombination;\r\n this.getAllVariable = getAllVariable;\r\n this.getAllCombinations = getAllCombinations;\r\n this.deleteVariable = deleteVariable;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function deleteVariable(obj) {\r\n return $http.post($rootScope.endPoint + 'MachineryVariable/removeVariable', obj, config);\r\n }\r\n\r\n function getAllVariable(ObjGetVariable) {\r\n return $http.post($rootScope.endPoint + 'MachineryVariable/getAllMachVariables', ObjGetVariable, config);\r\n }\r\n\r\n function getAllCombinations(objGetComb) {\r\n return $http.post($rootScope.endPoint + 'MachineryVariable/getAllMacCombinations', objGetComb, config);\r\n }\r\n\r\n function AddVariable(attribute) {\r\n return $http.post($rootScope.endPoint + 'MachineryVariable/insertNewMachVariable', attribute, config);\r\n }\r\n\r\n function AddCombination(Variable) {\r\n return $http.post($rootScope.endPoint + 'MachineryVariable/insertMachCombination', Variable, config);\r\n }\r\n\r\n function removeCombination(Name) {\r\n return $http.post($rootScope.endPoint + 'MachineryVariable/removeMachCombination', Name, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MANService', MANService);\r\n\r\n MANService.$inject = ['$http', '$rootScope'];\r\n\r\n function MANService($http, $rootScope) {\r\n this.GetMRNbyProject = GetMRNbyProject\r\n this.PreparationOfMANByMRN = PreparationOfMANByMRN\r\n this.SaveMAN = SaveMAN\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetMRNbyProject(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MAN/GetMRNbyProject',obj, config);\r\n }\r\n \r\n function PreparationOfMANByMRN(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MAN/PreparationOfMANByMRN',obj, config);\r\n }\r\n \r\n function SaveMAN(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MAN/SaveMAN',obj, config);\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MIService', MIService);\r\n\r\n MIService.$inject = ['$http', '$rootScope'];\r\n\r\n function MIService($http, $rootScope) {\r\n this.GetMISDetails = GetMISDetails\r\n this.PreparationofMISDetails = PreparationofMISDetails\r\n this.GetItemofMaterial = GetItemofMaterial\r\n this.GetMaterialIssueType = GetMaterialIssueType\r\n this.GetMaterialIssueName = GetMaterialIssueName\r\n this.SaveReceiverName = SaveReceiverName\r\n this.GetReceiverName = GetReceiverName\r\n this.SaveMI = SaveMI\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetMISDetails(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetMISDetails',obj, config);\r\n }\r\n function PreparationofMISDetails(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/PreparationofMISDetails',obj, config);\r\n }\r\n function GetItemofMaterial(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetItemofMaterial',obj, config);\r\n }\r\n function GetMaterialIssueType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetMaterialIssueType',obj, config);\r\n }\r\n function GetMaterialIssueName(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetMaterialIssueName',obj, config);\r\n }\r\n function SaveReceiverName(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/SaveReceiverName',obj, config);\r\n }\r\n function GetReceiverName(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetReceiverName',obj, config);\r\n }\r\n function SaveMI(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/SaveMI',obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MRNService', MRNService);\r\n\r\n MRNService.$inject = ['$http', '$rootScope'];\r\n\r\n function MRNService($http, $rootScope) {\r\n this.Typeofpurchase = Typeofpurchase\r\n this.GetMRNNumber = GetMRNNumber\r\n this.GetSupplier = GetSupplier\r\n this.GetPurchaseOrderNo = GetPurchaseOrderNo\r\n this.GetSupplierDocType = GetSupplierDocType\r\n this.GetMRN = GetMRN\r\n this.SaveMRN = SaveMRN\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function Typeofpurchase(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/Typeofpurchase',obj, config);\r\n }\r\n function GetMRNNumber(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetMRNNumber',obj, config);\r\n }\r\n function GetSupplier(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetSupplier',obj, config);\r\n }\r\n function GetPurchaseOrderNo(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetPurchaseOrderNo',obj, config);\r\n }\r\n function GetSupplierDocType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetSupplierDocType',obj, config);\r\n }\r\n function GetMRN(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetMRN',obj, config);\r\n }\r\n function SaveMRN(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/SaveMRN',obj, config);\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MRSService', MRSService);\r\n\r\n MRSService.$inject = ['$http', '$rootScope'];\r\n\r\n function MRSService($http, $rootScope) {\r\n this.getRequestfor = getRequestfor\r\n this.getRequestType = getRequestType\r\n this.getRequestBased = getRequestBased\r\n this.getLineofBusiness = getLineofBusiness\r\n this.getStoreType = getStoreType\r\n this.getStoreNo = getStoreNo\r\n this.getIOCA = getIOCA\r\n this.getLocation = getLocation\r\n this.getIOM = getIOM\r\n this.PreparationofMRS = PreparationofMRS\r\n this.SaveMRS = SaveMRS\r\n this.getMRS = getMRS\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getRequestfor(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetRequestFor',obj, config);\r\n }\r\n function getRequestType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetRequestType',obj, config);\r\n }\r\n function getRequestBased(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetRequestBased',obj, config);\r\n }\r\n function getLineofBusiness(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetLineofBusiness',obj, config);\r\n }\r\n function getStoreType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetTypeofStore',obj, config);\r\n }\r\n function getStoreNo(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetStoreNo',obj, config);\r\n }\r\n function getIOCA(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetIOCA',obj, config);\r\n }\r\n function getLocation(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetLocation',obj, config);\r\n }\r\n function getIOM(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetIOM',obj, config);\r\n }\r\n function PreparationofMRS(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/PreparationofMRS',obj, config);\r\n }\r\n function SaveMRS(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/Create',obj, config);\r\n }\r\n function getMRS(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/getMRS',obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('StoreLocationSetupService', StoreLocationSetupService);\r\n\r\n StoreLocationSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function StoreLocationSetupService($http, $rootScope) {\r\n this.getAllStore = getAllStore;\r\n this.AddStoreType = AddStoreType\r\n this.getAllStoreType = getAllStoreType\r\n this.getStoreNo = getStoreNo\r\n this.GetStoreByCompanyId = GetStoreByCompanyId\r\n this.AddStoreLocation = AddStoreLocation\r\n this.UpdateStoreLocation = UpdateStoreLocation\r\n this.removeStoreLocation = removeStoreLocation\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllStore(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/AllStoreList',obj, config);\r\n }\r\n function AddStoreType(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/CreateStoreType', obj, config);\r\n }\r\n function getAllStoreType(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/AllStoreType',obj, config);\r\n }\r\n function getStoreNo(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/StoreNumber', obj, config);\r\n }\r\n function GetStoreByCompanyId(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/AllStoreLocationSetup', obj, config);\r\n }\r\n function AddStoreLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/Create', obj, config);\r\n }\r\n function UpdateStoreLocation(Obj) {\r\n return $http.put($rootScope.endPoint + 'StoreLocationSetup/Update', Obj, config);\r\n }\r\n function removeStoreLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/Delete' ,obj, config)\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('StoreStaffAllocationService', StoreStaffAllocationService);\r\n\r\n StoreStaffAllocationService.$inject = ['$http', '$rootScope'];\r\n\r\n function StoreStaffAllocationService($http, $rootScope) {\r\n \r\n this.GetStoreStaffByCompanyId = GetStoreStaffByCompanyId\r\n this.AddStoreStaff = AddStoreStaff\r\n this.UpdateStoreStaff = UpdateStoreStaff\r\n this.getStoreType = getStoreType\r\n this.getStoreNo = getStoreNo\r\n this.removeStoreStaff = removeStoreStaff\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n \r\n function GetStoreStaffByCompanyId(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/AllStoreStaffAllocation', obj, config);\r\n }\r\n function AddStoreStaff(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/Create', obj, config);\r\n }\r\n function UpdateStoreStaff(Obj) {\r\n return $http.put($rootScope.endPoint + 'StoreStaffAllocation/Update', Obj, config);\r\n }\r\n function removeStoreStaff(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/Delete' ,obj, config)\r\n }\r\n function getStoreType(obj){\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStoreType',obj,config);\r\n }\r\n function getStoreNo(obj){\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStoreNo',obj,config);\r\n }\r\n }\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.CRM_projectinitiation')\r\n .service('CRM_ProjectCreationService', CRM_ProjectCreationService);\r\n\r\n CRM_ProjectCreationService.$inject = ['$http', '$rootScope'];\r\n\r\n function CRM_ProjectCreationService($http, $rootScope) {\r\n this.GetAllDrafts = GetAllDrafts; \r\n /////////////\r\n function GetAllDrafts(objGetDraft) {\r\n return $http.post($rootScope.endPoint + 'ProjectInitiation/Create', objGetDraft);\r\n }\r\n \r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('ItemOfMaterialService', ItemOfMaterialService);\r\n\r\n ItemOfMaterialService.$inject = ['$http', '$rootScope'];\r\n\r\n function ItemOfMaterialService($http, $rootScope) {\r\n this.AddIOM = AddIOM;\r\n this.getAllIOM = getAllIOM;\r\n this.UpdateIOM = UpdateIOM;\r\n this.removeIOM = removeIOM;\r\n this.checkCombinationExist = checkCombinationExist;\r\n this.UploadMaterialFile = UploadMaterialFile;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function UpdateIOM(Obj) {\r\n return $http.post($rootScope.endPoint + 'IOM/UpdateIOM', Obj, config);\r\n }\r\n\r\n function checkCombinationExist(objGetComb) {\r\n return $http.post($rootScope.endPoint + 'IOM/CheckIOM', objGetComb, config);\r\n }\r\n\r\n function AddIOM(attribute) {\r\n return $http.post($rootScope.endPoint + 'IOM/InsertNewIOM', attribute, config);\r\n }\r\n\r\n function getAllIOM(Obj) {\r\n return $http.post($rootScope.endPoint + 'IOM/GetAllIOM', Obj, config);\r\n }\r\n\r\n function removeIOM(id) {\r\n return $http.delete($rootScope.endPoint + 'IOM/RemoveIOM/' + id, config);\r\n }\r\n\r\n function UploadMaterialFile(formData) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'IOM/UploadMaterialFile', formData, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('LobMaterialService', LobMaterialService);\r\n\r\n LobMaterialService.$inject = ['$http', '$rootScope'];\r\n\r\n function LobMaterialService($http, $rootScope) {\r\n this.AddLobMaterial = AddLobMaterial;\r\n this.EditLobMaterial = EditLobMaterial;\r\n this.removeLobMaterial = removeLobMaterial;\r\n this.getAllLobMaterial = getAllLobMaterial;\r\n this.getLobMaterialById = getLobMaterialById;\r\n this.getActiveLobMaterial = getActiveLobMaterial;\r\n this.changeActiveLobMaterial = changeActiveLobMaterial;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllLobMaterial() {\r\n return $http.get($rootScope.endPoint + 'LOBMaterial/AllLOB_Material', config);\r\n }\r\n\r\n function getActiveLobMaterial() {\r\n return $http.get($rootScope.endPoint + 'LOBMaterial/GetActiveLOB_MaterialById', config);\r\n }\r\n\r\n function AddLobMaterial(Country) {\r\n return $http.post($rootScope.endPoint + 'LOBMaterial/Create', Country, config);\r\n }\r\n\r\n function EditLobMaterial(Country) {\r\n return $http.put($rootScope.endPoint + 'LOBMaterial/Modify', Country, config);\r\n }\r\n\r\n function removeLobMaterial(id) {\r\n return $http.delete($rootScope.endPoint + 'LOBMaterial/Delete/' + id, config);\r\n }\r\n\r\n function getLobMaterialById(objCountry) {\r\n return $http.delete($rootScope.endPoint + 'LOBMaterial/GetById/', config);\r\n }\r\n\r\n function changeActiveLobMaterial(id) {\r\n return $http.post($rootScope.endPoint + 'LOBMaterial/ChangeActive/' + id, {}, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('MaterialAttributeService', MaterialAttributeService);\r\n\r\n MaterialAttributeService.$inject = ['$http', '$rootScope'];\r\n\r\n function MaterialAttributeService($http, $rootScope) {\r\n this.AddMaterialAttribute = AddMaterialAttribute;\r\n this.EditMaterialAttribute = EditMaterialAttribute;\r\n this.removeMaterialAttribute = removeMaterialAttribute;\r\n this.getAllMaterialAttributes = getAllMaterialAttributes;\r\n this.getMaterialAttributeById = getMaterialAttributeById;\r\n // this.GetMaterialAttributeByStateId = GetMaterialAttributeByStateId;\r\n this.GetActiveMaterialAttributeById = GetActiveMaterialAttributeById;\r\n this.getAllMaterialCombinations = getAllMaterialCombinations;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllMaterialAttributes(objMaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/getAllMaterialAttributes', objMaterialAttribute, config);\r\n }\r\n function getAllMaterialCombinations(objMaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/getAllMaterialCombinations', objMaterialAttribute, config);\r\n }\r\n\r\n function getMaterialAttributeById(objGetEmpDTO) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/GetAttributeId/', config);\r\n }\r\n\r\n function AddMaterialAttribute(MaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/insertNewMaterialAttribute', MaterialAttribute, config);\r\n }\r\n\r\n function EditMaterialAttribute(MaterialAttribute) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/updateAttribute', MaterialAttribute, config);\r\n }\r\n\r\n function removeMaterialAttribute(id) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/removeMaterialAttribute', id, config);\r\n }\r\n function GetActiveMaterialAttributeById(materialtype) {\r\n return $http.post($rootScope.endPoint + 'MaterialAttibutes/GetActiveMaterialAttributeById', config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('MaterialCategoryService', MaterialCategoryService);\r\n\r\n MaterialCategoryService.$inject = ['$http', '$rootScope'];\r\n\r\n function MaterialCategoryService($http, $rootScope) {\r\n this.AddMaterialCategory = AddMaterialCategory;\r\n this.EditMaterialCategory = EditMaterialCategory;\r\n this.removeMaterialCategory = removeMaterialCategory;\r\n this.getAllMaterialCategory = getAllMaterialCategory;\r\n this.getMaterialCategoryById = getMaterialCategoryById;\r\n this.GetActiveMaterialCategory = GetActiveMaterialCategory;\r\n this.changeActiveMaterialCategory = changeActiveMaterialCategory;\r\n this.getAllMaterialCategoryByLob = getAllMaterialCategoryByLob;\r\n this.getFilterMatLOB = getFilterMatLOB;\r\n this.getFilterMatCountry = getFilterMatCountry;\r\n this.ShowMaterialCategoryReport =ShowMaterialCategoryReport;\r\n // this.GetCityByStateId=GetCityByStateId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getFilterMatLOB(obj) {\r\n return $http.get($rootScope.endPoint + 'MaterialCategory/FilterMaterialLOB',obj, config);\r\n }\r\n function getFilterMatCountry(obj) {\r\n return $http.get($rootScope.endPoint + 'MaterialCategory/FilterMaterialCountry',obj, config);\r\n }\r\n\r\n function getAllMaterialCategory(objMaterialCategory) {\r\n return $http.get($rootScope.endPoint + 'MaterialCategory/AllMaterialCategorys', config);\r\n }\r\n\r\n function getMaterialCategoryById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'MaterialCategory/GetCategoryId/', config);\r\n }\r\n\r\n function AddMaterialCategory(materialcategory) {\r\n return $http.post($rootScope.endPoint + 'MaterialCategory/Create', materialcategory, config);\r\n }\r\n\r\n function EditMaterialCategory(materialcategory) {\r\n return $http.put($rootScope.endPoint + 'MaterialCategory/Modify', materialcategory, config);\r\n }\r\n\r\n function GetActiveMaterialCategory(materialcategory) {\r\n return $http.get($rootScope.endPoint + 'MaterialCategory/GetActiveMaterialCategoryById', config);\r\n }\r\n\r\n function removeMaterialCategory(id) {\r\n return $http.delete($rootScope.endPoint + 'MaterialCategory/Delete/' + id, config);\r\n }\r\n\r\n function changeActiveMaterialCategory(id) {\r\n return $http.post($rootScope.endPoint + 'MaterialCategory/ChangeActive/' + id, {}, config);\r\n\r\n\r\n function changeActiveMaterialCategory(id) {\r\n return $http.delete($rootScope.endPoint + 'MaterialCategory/ChangeActive/' + id, config);\r\n }\r\n\r\n }\r\n function getAllMaterialCategoryByLob(objGetCategory) {\r\n return $http.post($rootScope.endPoint + 'MaterialCategory/GetMatCategoryByLOB', objGetCategory, config);\r\n }\r\n\r\n \r\n function ShowMaterialCategoryReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'MaterialReport/ShowMaterialCategoryReport', obj, config);\r\n }\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('MaterialSubCategoryService', MaterialSubCategoryService);\r\n\r\n MaterialSubCategoryService.$inject = ['$http', '$rootScope'];\r\n\r\n function MaterialSubCategoryService($http, $rootScope) {\r\n this.AddMaterialSubCategory = AddMaterialSubCategory;\r\n this.EditMaterialSubCategory = EditMaterialSubCategory;\r\n this.removeMaterialSubCategory = removeMaterialSubCategory;\r\n this.getAllMaterialSubCategory = getAllMaterialSubCategory;\r\n this.getMaterialSubCategoryById = getMaterialSubCategoryById;\r\n this.GetMaterialSubCategoryByMaterialCategoryId = GetMaterialSubCategoryByMaterialCategoryId;\r\n this.GetActiveMaterialSubCategoryById = GetActiveMaterialSubCategoryById;\r\n this.changeActiveMaterialSubCategory = changeActiveMaterialSubCategory;\r\n this.getFilterMatCategory = getFilterMatCategory;\r\n this.ShowMaterialSubCategoryReport = ShowMaterialSubCategoryReport;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n \r\n function getFilterMatCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'MaterialSubCategory/AllMaterialFilterCategory',obj, config);\r\n }\r\n\r\n function getAllMaterialSubCategory(objMaterialSubCategory) {\r\n return $http.get($rootScope.endPoint + 'MaterialSubCategory/AllMaterialSubCategorys', config);\r\n }\r\n\r\n function getMaterialSubCategoryById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'MaterialSubCategory/GetSubCategoryId/', config);\r\n }\r\n\r\n function AddMaterialSubCategory(objMaterialSubCategory) {\r\n return $http.post($rootScope.endPoint + 'MaterialSubCategory/Create', objMaterialSubCategory, config);\r\n }\r\n\r\n function EditMaterialSubCategory(objMaterialSubCategory) {\r\n return $http.put($rootScope.endPoint + 'MaterialSubCategory/Modify', objMaterialSubCategory, config);\r\n }\r\n\r\n function GetActiveMaterialSubCategoryById(objMaterialSubCategory) {\r\n return $http.get($rootScope.endPoint + 'MaterialSubCategory/GetActiveCA_SubCategoryById', config);\r\n }\r\n\r\n function removeMaterialSubCategory(id) {\r\n return $http.delete($rootScope.endPoint + 'MaterialSubCategory/Delete/' + id, config);\r\n }\r\n function GetMaterialSubCategoryByMaterialCategoryId(objMaterialSubCategory) {\r\n return $http.get($rootScope.endPoint + 'MaterialSubCategory/GetMaterialSubCategoryByMaterialCategoryId/'+ objMaterialSubCategory, config);\r\n }\r\n function changeActiveMaterialSubCategory(id) {\r\n return $http.post($rootScope.endPoint + 'MaterialSubCategory/ChangeActive/' + id, {}, config);\r\n }\r\n\r\n \r\n function ShowMaterialSubCategoryReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'MaterialReport/ShowMaterialSubCategoryReport', obj, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('MaterialTypeService', MaterialTypeService);\r\n\r\n MaterialTypeService.$inject = ['$http', '$rootScope'];\r\n\r\n function MaterialTypeService($http, $rootScope) {\r\n this.AddMaterialtype = AddMaterialtype;\r\n this.EditMaterialtype = EditMaterialtype;\r\n this.removeMaterialtype = removeMaterialtype;\r\n this.getAllMaterialtype = getAllMaterialtype;\r\n //this.getMaterialtypeById = getMaterialtypeId;\r\n this.GetActiveMaterialtypeById = GetActiveMaterialtypeById;\r\n this.changeActiveMaterialtype = changeActiveMaterialtype;\r\n this.GetMaterialTypeByMaterialSubCategoryId = GetMaterialTypeByMaterialSubCategoryId;\r\n this.getFilterMatSubCategory = getFilterMatSubCategory;\r\n this.ShowMaterialTypeReport = ShowMaterialTypeReport;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getFilterMatSubCategory(obj) {\r\n return $http.post($rootScope.endPoint + 'MaterialType/AllFilterMaterialSubcategory',obj, config);\r\n }\r\n\r\n function getAllMaterialtype(objMaterialtype) {\r\n return $http.get($rootScope.endPoint + 'MaterialType/AllMaterialTypes', config);\r\n }\r\n\r\n function getMaterialtypeById(objGetEmpDTO) {\r\n return $http.get($rootScope.endPoint + 'MaterialType/GetMaterialtypeId/', config);\r\n }\r\n\r\n function AddMaterialtype(materialtype) {\r\n return $http.post($rootScope.endPoint + 'MaterialType/Create', materialtype, config);\r\n }\r\n\r\n function EditMaterialtype(materialtype) {\r\n return $http.put($rootScope.endPoint + 'MaterialType/Modify', materialtype, config);\r\n }\r\n\r\n function GetActiveMaterialtypeById(materialtype) {\r\n return $http.get($rootScope.endPoint + 'MaterialType/GetActiveMaterialTypeById', config);\r\n }\r\n\r\n function changeActiveMaterialtype(id) {\r\n return $http.post($rootScope.endPoint + 'MaterialType/ChangeActive/' + id, {}, config);\r\n }\r\n function GetMaterialTypeByMaterialSubCategoryId(objmaterialtype) {\r\n return $http.get($rootScope.endPoint + 'MaterialType/GetMaterialTypeByMaterialSubCategoryId/' + objmaterialtype, config);\r\n }\r\n\r\n\r\n function removeMaterialtype(id) {\r\n return $http.delete($rootScope.endPoint + 'MaterialType/Delete/' + id, config);\r\n }\r\n\r\n \r\n function ShowMaterialTypeReport(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token \r\n },\r\n responseType: 'arraybuffer'\r\n } \r\n return $http.post($rootScope.endPoint + 'MaterialReport/ShowMaterialTypeReport', obj, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialMaster')\r\n .service('MaterialVariableService', MaterialVariableService);\r\n\r\n MaterialVariableService.$inject = ['$http', '$rootScope'];\r\n\r\n function MaterialVariableService($http, $rootScope) {\r\n this.AddMaterialVariable = AddMaterialVariable;\r\n this.removeMaterialCombination = removeMaterialCombination;\r\n this.getAllMaterialVariable = getAllMaterialVariable;\r\n this.InsertCombination = InsertCombination;\r\n this.getMaterialCombination = getMaterialCombination;\r\n this.deleteVariable = deleteVariable;\r\n \r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function deleteVariable(obj) {\r\n return $http.post($rootScope.endPoint + 'MaterialVariables/removeVariable', obj, config);\r\n }\r\n\r\n function getAllMaterialVariable(objvariable) {\r\n return $http.post($rootScope.endPoint + 'MaterialVariables/getAllMaterialVariables', objvariable, config);\r\n }\r\n\r\n function getMaterialCombination(objvariable) {\r\n return $http.post($rootScope.endPoint + 'MaterialVariables/getAllMaterialCombinations', objvariable, config);\r\n }\r\n\r\n function InsertCombination(objvariable) {\r\n return $http.post($rootScope.endPoint + 'MaterialVariables/insertMaterialCombination', objvariable, config);\r\n }\r\n\r\n function AddMaterialVariable(variables) {\r\n return $http.post($rootScope.endPoint + 'MaterialVariables/InsertNewMaterialVariable', variables, config);\r\n }\r\n\r\n function removeMaterialCombination(id) {\r\n return $http.post($rootScope.endPoint + 'MaterialVariables/removeMaterialCombination', id, config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.tenderMaster')\r\n .service('tenderMasterService', tenderMasterService);\r\n\r\n tenderMasterService.$inject = ['$http', '$rootScope'];\r\n\r\n function tenderMasterService($http, $rootScope) {\r\n this.AddtenderMaster = AddtenderMaster;\r\n this.editTenderMaster = editTenderMaster;\r\n this.RemoveTenderMaster = RemoveTenderMaster;\r\n this.getAllTenderMaster = getAllTenderMaster;\r\n this.getAllCategoryofCA = getAllCategoryofCA;\r\n this.updateFile = updateFile;\r\n \r\n\r\n // this.GetCityByStateId=GetCityByStateId;\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function updateFile(data) {\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'TenderMaster/uploadLogo/', data, config);\r\n }\r\n\r\n\r\n function getAllCategoryofCA() {\r\n return $http.get($rootScope.endPoint + 'Category/AllCategorys', config);\r\n }\r\n\r\n \r\n function AddtenderMaster(obj) {\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'TenderMaster/Create', obj, config);\r\n }\r\n\r\n function editTenderMaster(obj) {\r\n return $http.put($rootScope.endPoint + 'TenderMaster/Modify', obj, config);\r\n }\r\n\r\n function RemoveTenderMaster(id) {\r\n return $http.delete($rootScope.endPoint + 'TenderMaster/Delete/' + id, config);\r\n }\r\n\r\n\r\n function getAllTenderMaster() {\r\n return $http.post($rootScope.endPoint + 'TenderMaster/AllTenderMaster', config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .service('POTermsAndConditionService', POTermsAndConditionService);\r\n\r\n POTermsAndConditionService.$inject = ['$http', '$rootScope'];\r\n\r\n function POTermsAndConditionService($http, $rootScope) {\r\n this.UploadTemplate = UploadTemplate;\r\n this.SavePOTemplate = SavePOTemplate;\r\n this.GetAllPOTemplate = GetAllPOTemplate;\r\n this.RemoveTemplate = RemoveTemplate;\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function UploadTemplate(formData) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'POTermsAndCondition/uploadTemplate ', formData, config);\r\n }\r\n\r\n function SavePOTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'POTermsAndCondition/SavePOTermsAndCondition', obj, config);\r\n }\r\n\r\n function GetAllPOTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'POTermsAndCondition/GetAllRfqDetailsForSupplier',obj, config);\r\n }\r\n\r\n function RemoveTemplate() {\r\n return $http.delete($rootScope.endPoint + 'POTermsAndCondition/Remove', config);\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .service('PreparationofRfqMaterialService', PreparationofRfqMaterialService);\r\n\r\n PreparationofRfqMaterialService.$inject = ['$http', '$rootScope'];\r\n\r\n function PreparationofRfqMaterialService($http, $rootScope) {\r\n this.GetMaterial = GetMaterial;\r\n this.GetSupplier = GetSupplier;\r\n this.SaveRfqMaterial = SaveRfqMaterial;\r\n this.ChangeStatus = ChangeStatus;\r\n this.ViewRfqDetails = ViewRfqDetails;\r\n this.GetRfqDetails = GetRfqDetails;\r\n this.RemoveRfqDetails = RemoveRfqDetails;\r\n this.GetSupplierById = GetSupplierById;\r\n this.GetAllIndentProject = GetAllIndentProject;\r\n\r\n this.GetAllCompanyByIndent = GetAllCompanyByIndent;\r\n\r\n this.GetAllCompanyByRfqMaterial = GetAllCompanyByRfqMaterial;\r\n this.GetAllProjectByRfqMaterial = GetAllProjectByRfqMaterial;\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetMaterial(obj) {\r\n return $http.post($rootScope.endPoint + 'Indent/GetMaterialforIndentByStatus', obj, config);\r\n }\r\n\r\n function GetSupplier() {\r\n return $http.get($rootScope.endPoint + 'PreparationofRfqMaster/AllSupplier', config);\r\n }\r\n\r\n function GetSupplierById(Id) {\r\n return $http.get($rootScope.endPoint + 'PreparationofRfqMaster/GetSupplierById/' + Id, config);\r\n }\r\n\r\n function SaveRfqMaterial(obj) {\r\n return $http.post($rootScope.endPoint + 'PreparationofRfqMaster/Create', obj, config);\r\n }\r\n\r\n function ChangeStatus(obj) {\r\n return $http.post($rootScope.endPoint + 'PreparationofRfqMaster/ChangeStatus', obj, config);\r\n }\r\n\r\n function ViewRfqDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'PreparationofRfqMaster/ViewRfqDetails', obj, config);\r\n }\r\n\r\n function GetRfqDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'PreparationofRfqMaster/GetRfqDetails', obj, config);\r\n }\r\n\r\n function RemoveRfqDetails(obj) {\r\n return $http.post($rootScope.endPoint + 'PreparationofRfqMaster/RemoveRfqDetails', obj, config);\r\n }\r\n\r\n function GetAllIndentProject(CompanyId) {\r\n return $http.get($rootScope.endPoint + 'PreparationofRfqMaster/GetAllIndentProject/' + CompanyId, config);\r\n }\r\n\r\n function GetAllCompanyByIndent(CompanyId,ActionBy){\r\n return $http.get($rootScope.endPoint + 'PreparationofRfqMaster/GetAllCompanyByIndent/' + CompanyId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n function GetAllCompanyByRfqMaterial(CompanyId,ActionBy){\r\n return $http.get($rootScope.endPoint + 'PreparationofRfqMaster/GetAllCompanyByRfqMaterial/' + CompanyId + '?ActionBy=' + ActionBy, config);\r\n }\r\n\r\n function GetAllProjectByRfqMaterial(CompanyId,ActionBy){\r\n return $http.get($rootScope.endPoint + 'PreparationofRfqMaster/GetAllProjectByRfqMaterial/' + CompanyId + '?ActionBy=' + ActionBy, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .service('RfqTermsAndConditionService', RfqTermsAndConditionService);\r\n\r\n RfqTermsAndConditionService.$inject = ['$http', '$rootScope'];\r\n\r\n function RfqTermsAndConditionService($http, $rootScope) {\r\n this.UploadTemplate = UploadTemplate;\r\n this.SaveTemplate = SaveTemplate;\r\n this.GetAllTemplate = GetAllTemplate;\r\n this.removeTemplate = removeTemplate;\r\n this.UpdateTemplate = UpdateTemplate;\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function UploadTemplate(formData) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Mat_RfqTermsAndCondition/uploadTemplate', formData, config);\r\n }\r\n\r\n function SaveTemplate(obj) {\r\n return $http.post($rootScope.endPoint + 'Mat_RfqTermsAndCondition/Save', obj, config);\r\n }\r\n\r\n function GetAllTemplate() {\r\n return $http.get($rootScope.endPoint + 'Mat_RfqTermsAndCondition/GetAllTemplate', config);\r\n }\r\n\r\n function removeTemplate(id) {\r\n return $http.delete($rootScope.endPoint + 'Mat_RfqTermsAndCondition/RemoveTemplate/' + id, config);\r\n }\r\n\r\n function UpdateTemplate(formData) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'Mat_RfqTermsAndCondition/Update', formData, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .service('SupplierRateComparisionService', SupplierRateComparisionService);\r\n\r\n SupplierRateComparisionService.$inject = ['$http', '$rootScope'];\r\n\r\n function SupplierRateComparisionService($http, $rootScope) {\r\n this.SaveFinalisedSupplier = SaveFinalisedSupplier;\r\n this.GetSupplierRateComparision = GetSupplierRateComparision;\r\n this.ChangeStatus = ChangeStatus;\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function SaveFinalisedSupplier(formData) { \r\n return $http.post($rootScope.endPoint + 'SupplierRateComparision/Save', formData, config);\r\n }\r\n\r\n function GetSupplierRateComparision(obj) {\r\n return $http.post($rootScope.endPoint + 'SupplierRateComparision/GetSupplierRateComparision', obj, config);\r\n }\r\n\r\n function ChangeStatus(Id) {\r\n return $http.get($rootScope.endPoint + 'SupplierRateComparision/ChangeStatus/' + Id, config);\r\n } \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.procurement')\r\n .service('SupplierRateQuoteService', SupplierRateQuoteService);\r\n\r\n SupplierRateQuoteService.$inject = ['$http', '$rootScope'];\r\n\r\n function SupplierRateQuoteService($http, $rootScope) {\r\n this.SaveRateEntry = SaveRateEntry;\r\n this.GetAllRfqDetailsForSupplier = GetAllRfqDetailsForSupplier;\r\n this.GetRfqForSupplierList = GetRfqForSupplierList;\r\n this.GetGSTList = GetGSTList;\r\n this.SubmitRateEntry =SubmitRateEntry;\r\n\r\n /////////////\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n function SaveRateEntry(formData) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'SupplierRateEntry/Create', formData, config);\r\n }\r\n\r\n function GetAllRfqDetailsForSupplier(obj) {\r\n return $http.post($rootScope.endPoint + 'SupplierRateEntry/GetAllRfqDetailsForSupplier', obj, config);\r\n }\r\n\r\n function GetRfqForSupplierList(Id) {\r\n return $http.get($rootScope.endPoint + 'SupplierRateEntry/GetRfqForSupplierList/' + Id, config);\r\n }\r\n\r\n function GetGSTList() {\r\n return $http.get($rootScope.endPoint + 'SupplierRateEntry/GetGSTList', config);\r\n }\r\n\r\n function SubmitRateEntry(obj) {\r\n return $http.post($rootScope.endPoint + 'SupplierRateEntry/submitSupplierRfqDetails',obj, config);\r\n }\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.PO')\r\n .service('Draft_POService', Draft_POService);\r\n\r\n Draft_POService.$inject = ['$http', '$rootScope'];\r\n\r\n function Draft_POService($http, $rootScope) {\r\n this.GetDraftPO = GetDraftPO;\r\n this.GetSupplierForPO = GetSupplierForPO;\r\n this.GetQuotationNoForPO = GetQuotationNoForPO\r\n this.GetIOMForPO = GetIOMForPO\r\n this.GetListOfPendingMaterial = GetListOfPendingMaterial\r\n this.GetOrderQty = GetOrderQty\r\n this.GetPOHistory = GetPOHistory\r\n this.SavePO = SavePO\r\n this.DeletePurchaseOrder = DeletePurchaseOrder\r\n ////////////\r\n this.SendForApproval = SendForApproval\r\n this.Reject = Reject\r\n this.Approved = Approved\r\n this.Resubmit = Resubmit\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetDraftPO(ProjectId, PO_Status) {\r\n\r\n return $http.get($rootScope.endPoint + 'POPreparation/GetDraftPO/' + ProjectId + '?PO_Status=' + PO_Status, config);\r\n }\r\n function GetSupplierForPO(id) {\r\n\r\n return $http.get($rootScope.endPoint + 'POPreparation/GetSupplierForPO/' + id, config);\r\n }\r\n function GetQuotationNoForPO(id) {\r\n return $http.get($rootScope.endPoint + 'POPreparation/GetQuotationNoForPO/' + id , config);\r\n }\r\n function GetIOMForPO(SupplierId, RfqId) {\r\n\r\n return $http.get($rootScope.endPoint + 'POPreparation/GetIOMForPO/' + SupplierId + '?RfqId=' + RfqId, config);\r\n }\r\n function GetListOfPendingMaterial(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'POPreparation/GetListOfPendingMaterial', obj, config);\r\n }\r\n function GetOrderQty(IOM_Id, RfqId) {\r\n return $http.get($rootScope.endPoint + 'POPreparation/GetOrderQty/' + IOM_Id + '?RfqId=' + RfqId, config);\r\n }\r\n function GetPOHistory(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/GetPOHistory', obj, config);\r\n }\r\n function SavePO(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/SavePO', obj, config);\r\n }\r\n function DeletePurchaseOrder(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/DeletePurchaseOrder', obj, config);\r\n }\r\n\r\n function SendForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/SendforApproval', obj, config);\r\n }\r\n\r\n function Reject(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/Reject', obj, config);\r\n }\r\n function Approved(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/Approved', obj, config);\r\n }\r\n\r\n function Resubmit(obj) {\r\n return $http.post($rootScope.endPoint + 'POPreparation/Resubmit', obj, config);\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MANService', MANService);\r\n\r\n MANService.$inject = ['$http', '$rootScope'];\r\n\r\n function MANService($http, $rootScope) {\r\n this.GetMRNbyProject = GetMRNbyProject\r\n this.PreparationOfMANByMRN = PreparationOfMANByMRN\r\n this.SaveMAN = SaveMAN\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetMRNbyProject(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MAN/GetMRNbyProject',obj, config);\r\n }\r\n \r\n function PreparationOfMANByMRN(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MAN/PreparationOfMANByMRN',obj, config);\r\n }\r\n \r\n function SaveMAN(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MAN/SaveMAN',obj, config);\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MIService', MIService);\r\n\r\n MIService.$inject = ['$http', '$rootScope'];\r\n\r\n function MIService($http, $rootScope) {\r\n this.GetMISDetails = GetMISDetails\r\n this.PreparationofMISDetails = PreparationofMISDetails\r\n this.GetItemofMaterial = GetItemofMaterial\r\n this.GetMaterialIssueType = GetMaterialIssueType\r\n this.GetMaterialIssueName = GetMaterialIssueName\r\n this.SaveReceiverName = SaveReceiverName\r\n this.GetReceiverName = GetReceiverName\r\n this.SaveMI = SaveMI\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function GetMISDetails(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetMISDetails',obj, config);\r\n }\r\n function PreparationofMISDetails(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/PreparationofMISDetails',obj, config);\r\n }\r\n function GetItemofMaterial(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetItemofMaterial',obj, config);\r\n }\r\n function GetMaterialIssueType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetMaterialIssueType',obj, config);\r\n }\r\n function GetMaterialIssueName(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetMaterialIssueName',obj, config);\r\n }\r\n function SaveReceiverName(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/SaveReceiverName',obj, config);\r\n }\r\n function GetReceiverName(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/GetReceiverName',obj, config);\r\n }\r\n function SaveMI(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MI/SaveMI',obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MRNService', MRNService);\r\n\r\n MRNService.$inject = ['$http', '$rootScope'];\r\n\r\n function MRNService($http, $rootScope) {\r\n this.Typeofpurchase = Typeofpurchase\r\n this.GetMRNNumber = GetMRNNumber\r\n this.GetSupplier = GetSupplier\r\n this.GetPurchaseOrderNo = GetPurchaseOrderNo\r\n this.GetSupplierDocType = GetSupplierDocType\r\n this.GetMRN = GetMRN\r\n this.SaveMRN = SaveMRN\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function Typeofpurchase(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/Typeofpurchase',obj, config);\r\n }\r\n function GetMRNNumber(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetMRNNumber',obj, config);\r\n }\r\n function GetSupplier(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetSupplier',obj, config);\r\n }\r\n function GetPurchaseOrderNo(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetPurchaseOrderNo',obj, config);\r\n }\r\n function GetSupplierDocType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetSupplierDocType',obj, config);\r\n }\r\n function GetMRN(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/GetMRN',obj, config);\r\n }\r\n function SaveMRN(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n\r\n return $http.post($rootScope.endPoint + 'MRN/SaveMRN',obj, config);\r\n }\r\n \r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('MRSService', MRSService);\r\n\r\n MRSService.$inject = ['$http', '$rootScope'];\r\n\r\n function MRSService($http, $rootScope) {\r\n this.getRequestfor = getRequestfor\r\n this.getRequestType = getRequestType\r\n this.getRequestBased = getRequestBased\r\n this.getLineofBusiness = getLineofBusiness\r\n this.getStoreType = getStoreType\r\n this.getStoreNo = getStoreNo\r\n this.getIOCA = getIOCA\r\n this.getLocation = getLocation\r\n this.getIOM = getIOM\r\n this.PreparationofMRS = PreparationofMRS\r\n this.SaveMRS = SaveMRS\r\n this.getMRS = getMRS\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getRequestfor(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetRequestFor',obj, config);\r\n }\r\n function getRequestType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetRequestType',obj, config);\r\n }\r\n function getRequestBased(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetRequestBased',obj, config);\r\n }\r\n function getLineofBusiness(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetLineofBusiness',obj, config);\r\n }\r\n function getStoreType(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetTypeofStore',obj, config);\r\n }\r\n function getStoreNo(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetStoreNo',obj, config);\r\n }\r\n function getIOCA(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetIOCA',obj, config);\r\n }\r\n function getLocation(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetLocation',obj, config);\r\n }\r\n function getIOM(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/MRSGetIOM',obj, config);\r\n }\r\n function PreparationofMRS(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/PreparationofMRS',obj, config);\r\n }\r\n function SaveMRS(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/Create',obj, config);\r\n }\r\n function getMRS(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'MRS/getMRS',obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('StoreLocationSetupService', StoreLocationSetupService);\r\n\r\n StoreLocationSetupService.$inject = ['$http', '$rootScope'];\r\n\r\n function StoreLocationSetupService($http, $rootScope) {\r\n this.getAllStore = getAllStore;\r\n this.AddStoreType = AddStoreType\r\n this.getAllStoreType = getAllStoreType\r\n this.getStoreNo = getStoreNo\r\n this.GetStoreByCompanyId = GetStoreByCompanyId\r\n this.AddStoreLocation = AddStoreLocation\r\n this.UpdateStoreLocation = UpdateStoreLocation\r\n this.removeStoreLocation = removeStoreLocation\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function getAllStore(obj) {\r\n\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/AllStoreList',obj, config);\r\n }\r\n function AddStoreType(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/CreateStoreType', obj, config);\r\n }\r\n function getAllStoreType(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/AllStoreType',obj, config);\r\n }\r\n function getStoreNo(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/StoreNumber', obj, config);\r\n }\r\n function GetStoreByCompanyId(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/AllStoreLocationSetup', obj, config);\r\n }\r\n function AddStoreLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/Create', obj, config);\r\n }\r\n function UpdateStoreLocation(Obj) {\r\n return $http.put($rootScope.endPoint + 'StoreLocationSetup/Update', Obj, config);\r\n }\r\n function removeStoreLocation(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreLocationSetup/Delete' ,obj, config)\r\n }\r\n }\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .service('StoreStaffAllocationService', StoreStaffAllocationService);\r\n\r\n StoreStaffAllocationService.$inject = ['$http', '$rootScope'];\r\n\r\n function StoreStaffAllocationService($http, $rootScope) {\r\n \r\n this.GetStoreStaffByCompanyId = GetStoreStaffByCompanyId\r\n this.AddStoreStaff = AddStoreStaff\r\n this.UpdateStoreStaff = UpdateStoreStaff\r\n this.getStoreType = getStoreType\r\n this.getStoreNo = getStoreNo\r\n this.removeStoreStaff = removeStoreStaff\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n \r\n function GetStoreStaffByCompanyId(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/AllStoreStaffAllocation', obj, config);\r\n }\r\n function AddStoreStaff(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/Create', obj, config);\r\n }\r\n function UpdateStoreStaff(Obj) {\r\n return $http.put($rootScope.endPoint + 'StoreStaffAllocation/Update', Obj, config);\r\n }\r\n function removeStoreStaff(obj) {\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/Delete' ,obj, config)\r\n }\r\n function getStoreType(obj){\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStoreType',obj,config);\r\n }\r\n function getStoreNo(obj){\r\n return $http.post($rootScope.endPoint + 'StoreStaffAllocation/getStoreNo',obj,config);\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('KPMES.pages.dashboard')\r\n .service('SupervisorTaskService', SupervisorTaskService);\r\n\r\n SupervisorTaskService.$inject = ['$http', '$rootScope'];\r\n function SupervisorTaskService($http, $rootScope) {\r\n\r\n\r\n ///////\r\n this.GetTaskForApproval = GetTaskForApproval\r\n this.GetDefectWorkAttachments = GetDefectWorkAttachments\r\n this.RemovePowAttachment = RemovePowAttachment\r\n this.InsertWorkApprovalDtls = InsertWorkApprovalDtls\r\n this.saveTaskApprovalDtls = saveTaskApprovalDtls\r\n this.saveTaskInProgressDtls = saveTaskInProgressDtls\r\n this.saveTaskDefectDtls = saveTaskDefectDtls\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n\r\n\r\n function GetTaskForApproval(obj) {\r\n return $http.post($rootScope.endPoint + 'SupervisorTask/getTaskForApproval', obj, config);\r\n }\r\n\r\n function GetDefectWorkAttachments(powId) {\r\n return $http.get($rootScope.endPoint + 'SupervisorTask/GetDefectWorkAttachments/' + powId, config);\r\n }\r\n function RemovePowAttachment(str) {\r\n return $http.delete($rootScope.endPoint + 'SupervisorTask/removeDocument/' + str, config);\r\n }\r\n \r\n function InsertWorkApprovalDtls(formData) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'SupervisorTask/InsertWorkApprovalDtls', formData, config);\r\n }\r\n \r\n function saveTaskApprovalDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'SupervisorTask/saveTaskApprovalDtls', obj, config);\r\n }\r\n \r\n function saveTaskInProgressDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'SupervisorTask/saveTaskInProgressDtls', obj, config);\r\n }\r\n function saveTaskDefectDtls(obj) {\r\n return $http.post($rootScope.endPoint + 'SupervisorTask/saveTaskDefectDtls', obj, config);\r\n }\r\n }\r\n})();\n(function () {\r\n \r\n \r\n 'use strict';\r\n \r\n angular\r\n .module('KPMES.pages.Task_ActivityMaster')\r\n .service('Task_ActivityMasterService', Task_ActivityMasterService);\r\n \r\n Task_ActivityMasterService.$inject = ['$http', '$rootScope'];\r\n \r\n \r\n function Task_ActivityMasterService($http, $rootScope) {\r\n \r\n this.ReadActivityMaster = ReadActivityMaster;\r\n \r\n this.SaveDeleteUpdateActivityMaster = SaveDeleteUpdateActivityMaster;\r\n \r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n \r\n function ReadActivityMaster(Details) {\r\n return $http.post($rootScope.endPoint + 'ActivityMaster/ReadActivityMaster', Details, config);\r\n }\r\n \r\n function SaveDeleteUpdateActivityMaster(Details) {\r\n return $http.post($rootScope.endPoint + 'ActivityMaster/SaveDeleteUpdateActivityMaster', Details, config);\r\n }\r\n \r\n }\r\n \r\n })();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_EmployeeTaskActivity')\r\n .service('Task_EmployeeActivityService', Task_EmployeeActivityService);\r\n\r\n Task_EmployeeActivityService.$inject = ['$http', '$rootScope'];\r\n\r\n\r\n function Task_EmployeeActivityService($http, $rootScope) {\r\n\r\n this.Task_ReadRepeatedActivity = Task_ReadRepeatedActivity;\r\n this.Task_SaveRemoveRepeatedActivity = Task_SaveRemoveRepeatedActivity;\r\n this.Task_GetAllEmployeeActivity = Task_GetAllEmployeeActivity;\r\n this.Task_SaveRemoveEmployeeDailyActivity = Task_SaveRemoveEmployeeDailyActivity;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function Task_ReadRepeatedActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'Task_EmployeeActivity/Task_ReadRepeatedActivity', Details, config);\r\n }\r\n\r\n function Task_SaveRemoveRepeatedActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'Task_EmployeeActivity/Task_SaveRemoveRepeatedActivity', Details, config);\r\n }\r\n\r\n function Task_GetAllEmployeeActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'Task_EmployeeActivity/Task_GetAllEmployeeActivity', Details, config);\r\n }\r\n\r\n function Task_SaveRemoveEmployeeDailyActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'Task_EmployeeActivity/Task_SaveRemoveEmployeeDailyActivity', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_SubjectMaster')\r\n .service('Task_SubjectService', Task_SubjectService);\r\n\r\n Task_SubjectService.$inject = ['$http', '$rootScope'];\r\n\r\n\r\n function Task_SubjectService($http, $rootScope) {\r\n\r\n this.ReadSubjectofActivity = ReadSubjectofActivity;\r\n \r\n this.SaveDeleteUpdateSubjectofActivity = SaveDeleteUpdateSubjectofActivity;\r\n\r\n this.TaskSaveRemoveRepeatedActivity = TaskSaveRemoveRepeatedActivity;\r\n\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function ReadSubjectofActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'SubjectMaster/ReadSubjectofActivity', Details, config);\r\n }\r\n\r\n function SaveDeleteUpdateSubjectofActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'SubjectMaster/SaveDeleteUpdateSubjectofActivity', Details, config);\r\n }\r\n\r\n function TaskSaveRemoveRepeatedActivity(Details) {\r\n return $http.post($rootScope.endPoint + 'SubjectMaster/TaskSaveRemoveRepeatedActivity', Details, config);\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_ActivityMaster')\r\n .controller('Task_ActivityMasterCtrl', Task_ActivityMasterCtrl);\r\n\r\n\r\n function Task_ActivityMasterCtrl($scope, $http, $rootScope, lodash, dialogs, $state, DepartmentServices, Task_ActivityMasterService, Task_SubjectService, RoleService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.cancel = cancel;\r\n vm.isFormOpen = false;\r\n vm.isExistProject = false;\r\n vm.isEditing = false;\r\n vm.EditSubject = EditSubject;\r\n vm.DeleteActivity = DeleteActivity;\r\n vm.LoadSubjectofActivity = LoadSubjectofActivity;\r\n vm.LoadActivity = LoadActivity;\r\n vm.SaveActivity = SaveActivity;\r\n\r\n vm.Activity = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n Init();\r\n function Init() {\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n function LoadSubjectofActivity(iDeptId) {\r\n\r\n vm.SubjectList = [];\r\n vm.Activity.selectedsubject = null;\r\n vm.isFormOpen = false;\r\n if (iDeptId != undefined) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n }\r\n\r\n Task_SubjectService.ReadSubjectofActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubjectList = res.data;\r\n vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n function LoadActivity(iSubId, iDeptId) {\r\n\r\n vm.ActivityList = [];\r\n vm.isFormOpen = false;\r\n if (iSubId != undefined) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n SubjectId: iSubId\r\n }\r\n\r\n Task_ActivityMasterService.ReadActivityMaster(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ActivityList = res.data;\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function SaveActivity() {\r\n\r\n var iActivityId = 0;\r\n\r\n\r\n if (!vm.isEditing)\r\n iActivityId = 0;\r\n else\r\n iActivityId = vm.Activity.ActivityId\r\n\r\n var inputdata = {\r\n\r\n CompanyId: CompanyId,\r\n DepartmentId: vm.Activity.selectedDepartment.DepartmentId,\r\n SubjectId: vm.Activity.selectedsubject.SubjectId,\r\n ActivityName: vm.Activity.ActivityName,\r\n ActivityId: iActivityId,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n Task_ActivityMasterService.SaveDeleteUpdateActivityMaster(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Task Activity Master\");\r\n vm.Activity.ActivityName = null; \r\n vm.isFormOpen = true;\r\n vm.isEditing = false;\r\n LoadActivity(vm.Activity.selectedsubject.SubjectId, vm.Activity.selectedDepartment.DepartmentId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Task Activity Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n function DeleteActivity(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n DepartmentId: 0,\r\n SubjectId: 0,\r\n ActivityName: '',\r\n ActivityId: row.ActivityId,\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n };\r\n\r\n Task_ActivityMasterService.SaveDeleteUpdateActivityMaster(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Task Activity Master\");\r\n vm.isFormOpen = true;\r\n vm.Activity.ActivityName = null; \r\n vm.isEditing = false;\r\n LoadActivity(vm.Activity.selectedsubject.SubjectId, vm.Activity.selectedDepartment.DepartmentId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot Task Activity Master', 'ERROR!');\r\n });\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n function EditSubject(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.Activity = angular.copy(row);\r\n\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.Activity.DepartmentId) {\r\n vm.Activity.selectedDepartment = vm.DepartmentList[i];\r\n }\r\n }\r\n for (var c in vm.SubjectList) {\r\n if (vm.SubjectList[c].SubjectId === vm.Activity.SubjectId) {\r\n vm.Activity.selectedsubject = vm.SubjectList[c];\r\n }\r\n }\r\n }\r\n\r\n function cancel() {\r\n vm.isFormOpen = false;\r\n vm.Activity = {};\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_EmployeeRepeatedActivity')\r\n .controller('Task_RepeatedActivityMasterCtrl', Task_RepeatedActivityMasterCtrl);\r\n\r\n function Task_RepeatedActivityMasterCtrl($scope, $http, $rootScope, dialogs, $filter, $state, $stateParams, DepartmentServices, Task_ActivityMasterService, Task_EmployeeActivityService, CRM_ItemofSalesActivityService, Task_SubjectService,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.LoadSubjectofActivity = LoadSubjectofActivity;\r\n vm.LoadItemActivity = LoadItemActivity;\r\n vm.SaveRepeatedActivity = SaveRepeatedActivity;\r\n vm.DeleteRepeatedActivity = DeleteRepeatedActivity;\r\n vm.EditItemActivity = EditItemActivity;\r\n vm.Cancel = Cancel;\r\n vm.ItemActivity = {};\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n $scope.hstep = 1;\r\n $scope.mstep = 15;\r\n vm.isSubmit = false;\r\n vm.UpdateItemActivity = UpdateItemActivity;\r\n vm.ActvityType = 'R';\r\n vm.ItemActivity = {};\r\n vm.RepeatByList = [];\r\n vm.RepeatByChanged = RepeatByChanged;\r\n vm.Create = Create;\r\n\r\n Init();\r\n function Init() {\r\n\r\n vm.RepeatByList = [\r\n { 'RepeatById': 1, 'RepeatBy': 'Daily' },\r\n { 'RepeatById': 2, 'RepeatBy': 'Weekly' },\r\n { 'RepeatById': 3, 'RepeatBy': 'Monthly' },\r\n { 'RepeatById': 4, 'RepeatBy': 'Alternate Day' },\r\n { 'RepeatById': 5, 'RepeatBy': 'Twice a Day' }\r\n ];\r\n\r\n vm.ItemActivity.SelectedRepeatBy = vm.RepeatByList[0];\r\n\r\n RepeatByChanged();\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n EmployeeId: logggedUser.RefId\r\n }\r\n\r\n Task_EmployeeActivityService.Task_ReadRepeatedActivity(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.RepeatedActivityList = res.data;\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n }\r\n\r\n function LoadSubjectofActivity(iDeptId) {\r\n\r\n vm.SalesActivitytList = [];\r\n vm.ItemActivity.selectedActivity = null;\r\n vm.ItemActivity.selectedActivityName = null;\r\n vm.ItemActivity.OrderNo = null;\r\n // vm.isFormOpen = false;\r\n if (iDeptId != undefined) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n // Type: vm.ActvityType,\r\n }\r\n\r\n Task_SubjectService.ReadSubjectofActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SalesActivitytList = res.data;\r\n // vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadItemActivity(iSubId, iDeptId, callback) {\r\n vm.ItemActivity.selectedActivityName = null;\r\n vm.ItemActivity.OrderNo = null;\r\n vm.isSubmit = false;\r\n vm.ItemActivityList = [];\r\n // vm.isFormOpen = false;\r\n if (iSubId != undefined) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n SubjectId: iSubId,\r\n // Type: vm.ActvityType,\r\n }\r\n\r\n Task_ActivityMasterService.ReadActivityMaster(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ItemActivityList = res.data;\r\n // vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n }\r\n }\r\n\r\n $scope.sortableOptions = {\r\n change: function () {\r\n vm.isSubmit = true;\r\n },\r\n };\r\n\r\n function RepeatByChanged(callback) {\r\n\r\n if (vm.ItemActivity.SelectedRepeatBy.RepeatBy != undefined) {\r\n if (vm.ItemActivity.SelectedRepeatBy.RepeatBy == 'Daily') {\r\n vm.isTime1 = true;\r\n }\r\n\r\n if (callback)\r\n callback();\r\n }\r\n }\r\n\r\n function UpdateItemActivity(callback) {\r\n\r\n var inputdata = null;\r\n\r\n for (var i in vm.ItemActivityList) {\r\n\r\n inputdata = {\r\n ItemName: vm.ItemActivityList[i].ItemName,\r\n Duration: vm.ItemActivityList[i].Duration,\r\n ItemId: vm.ItemActivityList[i].ItemId,\r\n OrderNo: parseInt(i) + 1,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n CRM_ItemofSalesActivityService.SaveDeleteUpdateItemSalesActivity(inputdata).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isFormOpen = true;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Item of Sale Activity Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n $rootScope.showToaster('success', 'Sequence order change is completed', \"Item of Sale Activity Master\");\r\n vm.isSubmit = false;\r\n\r\n if (callback)\r\n callback();\r\n }\r\n\r\n\r\n function SaveRepeatedActivity(ItemActivity) {\r\n\r\n var TimeValues;\r\n var JsonTimeValues;\r\n\r\n if (vm.ItemActivity.SelectedRepeatBy.RepeatById == 1) {\r\n TimeValues =\r\n {\r\n \"Id\": vm.ItemActivity.SelectedRepeatBy.RepeatById,\r\n \"Values\":\r\n {\r\n \"FromTime1\": $filter(\"date\")(vm.ItemActivity.FromTime1, \"HH:mm\"),\r\n \"ToTime1\": $filter(\"date\")(vm.ItemActivity.ToTime1, \"HH:mm\")\r\n }\r\n }\r\n }\r\n else if (vm.ItemActivity.SelectedRepeatBy.RepeatById == 2) {\r\n\r\n }\r\n else if (vm.ItemActivity.SelectedRepeatBy.RepeatById == 3) {\r\n\r\n }\r\n else if (vm.ItemActivity.SelectedRepeatBy.RepeatById == 4) {\r\n\r\n }\r\n else if (vm.ItemActivity.SelectedRepeatBy.RepeatById == 5) {\r\n\r\n }\r\n\r\n var inputData = {\r\n RepActivityId: 0,\r\n CompanyId: CompanyId,\r\n EmployeeId: logggedUser.RefId,\r\n DepartmentId: vm.ItemActivity.selectedSubjet.DepartmentId,\r\n SubjectId: vm.ItemActivity.selectedActivity.SubjectId,\r\n ActivityId: vm.ItemActivity.selectedActivityName.ActivityId,\r\n RepeatById: vm.ItemActivity.SelectedRepeatBy.RepeatById,\r\n RepValues: JSON.stringify(TimeValues),\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n\r\n Task_EmployeeActivityService.Task_SaveRemoveRepeatedActivity(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Repeated Task Master\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Repeated Task Master\");\r\n });\r\n }\r\n\r\n function DeleteRepeatedActivity(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n RepActivityId: row.RepActivityId,\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n };\r\n\r\n Task_EmployeeActivityService.Task_SaveRemoveRepeatedActivity(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Item of Sale Activity Master\");\r\n vm.isFormOpen = false; \r\n vm.isEditing = false;\r\n Init();\r\n // LoadItemActivity(vm.ItemActivity.selectedCategory.CategoryId, vm.ItemActivity.selectedDepartment.DepartmentId, function () {\r\n // UpdateItemActivity();\r\n // });\r\n // LoadItemActivity(vm.ItemActivity.selectedCategory.CategoryId, vm.ItemActivity.selectedDepartment.DepartmentId);\r\n // UpdateItemActivity();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot Item of Sale Activity Master', 'ERROR!');\r\n });\r\n })\r\n }\r\n\r\n function EditItemActivity(row) {\r\n vm.isEditing = true;\r\n\r\n vm.isFormOpen = true;\r\n vm.ItemActivity = angular.copy(row);\r\n\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.ItemActivity.DepartmentId) {\r\n vm.ItemActivity.selectedDepartment = vm.DepartmentList[i];\r\n }\r\n }\r\n for (var c in vm.SalesActivitytList) {\r\n if (vm.SalesActivitytList[c].CategoryId === vm.ItemActivity.CategoryId) {\r\n vm.ItemActivity.selectedCategory = vm.SalesActivitytList[c];\r\n }\r\n }\r\n\r\n var tmphours = vm.ItemActivity.Duration;\r\n\r\n var hrs = tmphours.substring(0, 2);\r\n var mins = tmphours.substring(3, 5);\r\n\r\n // var t = new Date();\r\n // t.setHours(parseInt(hrs));\r\n // t.setMinutes(parseInt(mins));\r\n\r\n // vm.ItemActivity.Duration = t;\r\n\r\n vm.ItemActivity.Hours = hrs;\r\n vm.ItemActivity.Minutes = mins;\r\n\r\n }\r\n function Create() {\r\n vm.isFormOpen = true;\r\n vm.ItemActivity.SelectedRepeatBy = vm.RepeatByList[0];\r\n }\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.ItemActivity = {};\r\n vm.isSubmit = false;\r\n vm.ItemActivity.SelectedRepeatBy = vm.RepeatByList[0];\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_EmployeeTaskActivity')\r\n .controller('Task_EmployeeTaskActivityCtrl', Task_EmployeeTaskActivityCtrl);\r\n\r\n /** @ngInject */\r\n function Task_EmployeeTaskActivityCtrl($scope, $http, $rootScope, lodash, dialogs, $filter, $state, Task_SubjectService, Task_ActivityMasterService, Task_EmployeeActivityService, AuthenticationService, DepartmentServices) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n\r\n vm.UpdateStatus = UpdateStatus;\r\n vm.AddActivity = AddActivity;\r\n vm.GetActivity = GetActivity;\r\n vm.SaveEmployeeTask = SaveEmployeeTask;\r\n vm.LoadDepartment = LoadDepartment;\r\n vm.LoadSubjectofActivity = LoadSubjectofActivity;\r\n vm.LoadItemActivity = LoadItemActivity;\r\n vm.Cancel = Cancel;\r\n vm.isLoading = false;\r\n\r\n vm.Activity = {};\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n //////////////\r\n\r\n Init();\r\n\r\n function Init() {\r\n\r\n vm.StatusList = [{ \"Id\": \"1\", \"Status\": \"Completed\" }, { \"Id\": 2, \"Status\": \"Pending\" }];\r\n\r\n vm.isFormOpen = false;\r\n vm.Activity.ActivityDate = new Date();\r\n GetActivity(new Date());\r\n }\r\n\r\n function AddActivity(row) {\r\n\r\n vm.ShowFromTime = $filter(\"date\")(row.StartTime, \"HH:mm\");\r\n vm.FromTimeValue = row.StartTime;\r\n\r\n vm.ShowToTime = $filter(\"date\")(row.EndTime, \"HH:mm\");\r\n vm.ToTimeValue = row.EndTime;\r\n\r\n vm.SavedActivityId = row.EmpActivityId;\r\n\r\n vm.isFormOpen = true;\r\n vm.isSaveActivity = true;\r\n\r\n // vm.Activity = {};\r\n\r\n vm.Activity.selectedDepartment = null;\r\n vm.Activity.selectedSubject = null;\r\n vm.Activity.selectedActivity = null;\r\n\r\n LoadDepartment();\r\n }\r\n\r\n function LoadSubjectofActivity(iDeptId) {\r\n\r\n vm.SalesActivitytList = [];\r\n vm.Activity.selectedSubject = null;\r\n vm.Activity.selectedActivity = null;\r\n vm.Activity.OrderNo = null;\r\n // vm.isFormOpen = false;\r\n if (iDeptId != undefined) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n // Type: vm.ActvityType,\r\n }\r\n\r\n Task_SubjectService.ReadSubjectofActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SalesActivitytList = res.data;\r\n // vm.isFormOpen = false;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n }\r\n }\r\n\r\n function LoadItemActivity(iSubId, iDeptId, callback) {\r\n\r\n vm.Activity.selectedActivity = null;\r\n vm.Activity.OrderNo = null;\r\n vm.isSubmit = false;\r\n vm.ItemActivityList = [];\r\n // vm.isFormOpen = false;\r\n if (iSubId != undefined) {\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n SubjectId: iSubId,\r\n // Type: vm.ActvityType,\r\n }\r\n\r\n Task_ActivityMasterService.ReadActivityMaster(inputdata1).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ItemActivityList = res.data;\r\n // vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Activity Master\");\r\n });\r\n }\r\n }\r\n\r\n function UpdateStatus(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isSaveActivity = false;\r\n vm.Activity.SelectedStatus = null;\r\n\r\n vm.ShowFromTime = $filter(\"date\")(row.StartTime, \"HH:mm\");\r\n vm.FromTimeValue = row.StartTime;\r\n\r\n vm.ShowToTime = $filter(\"date\")(row.EndTime, \"HH:mm\");\r\n vm.ToTimeValue = row.EndTime;\r\n\r\n vm.SavedActivityId = row.EmpActivityId;\r\n\r\n // vm.StatusList = [{ \"Id\": \"1\", \"Status\": \"Completed\" }, { \"Id\": 2, \"Status\": \"Pending\" }];\r\n\r\n vm.SavedActivity = {};\r\n\r\n if (row.Status == '-') {\r\n vm.SavedActivity.SelectedStatus = null;\r\n }\r\n else if (row.Status == 'Pending') {\r\n vm.SavedActivity.SelectedStatus = vm.StatusList[1];\r\n }\r\n else if (row.Status == 'Completed') {\r\n vm.SavedActivity.SelectedStatus = vm.StatusList[0];\r\n }\r\n\r\n vm.SavedActivity.Remarks = row.Remarks;\r\n }\r\n\r\n function Cancel() {\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n }\r\n\r\n function LoadDepartment() {\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Item of Sale Activity Master\");\r\n });\r\n }\r\n\r\n function GetActivity(ActivityDate) {\r\n\r\n vm.AllActivityList = [];\r\n if (ActivityDate != undefined || ActivityDate != null) {\r\n // var EmployeeId = 93;\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n EmployeeId: logggedUser.RefId,\r\n ActivityDate: $filter(\"date\")(ActivityDate)\r\n };\r\n\r\n Task_EmployeeActivityService.Task_GetAllEmployeeActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.AllActivityList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }\r\n\r\n function SaveEmployeeTask(EmpTask) {\r\n\r\n var iProcess, StatId, EmpActId;\r\n\r\n if (vm.isSaveActivity) {\r\n // StatId = 0;\r\n iProcess = 'New';\r\n }\r\n else {\r\n // StatId = vm.Activity.SelectedStatus.Id;\r\n iProcess = 'StatusUpdate';\r\n }\r\n\r\n if (iProcess == 'New') {\r\n if (EmpTask.FromTime1 < vm.FromTimeValue) {\r\n $rootScope.showToaster('error', 'Error in From Time', \"Employee Task Activity\");\r\n }\r\n else if (EmpTask.ToTime1 > vm.ToTimeValue) {\r\n $rootScope.showToaster('error', 'Error in To Time', \"Employee Task Activity\");\r\n }\r\n else {\r\n\r\n var inputData = {\r\n EmpActivityId: vm.SavedActivityId,\r\n CompanyId: CompanyId,\r\n EmployeeId: logggedUser.RefId,\r\n ActivityDate: $filter(\"date\")(vm.Activity.ActivityDate),\r\n StartTime: $filter(\"date\")(vm.Activity.FromTime, \"HH:mm\"),\r\n EndTime: $filter(\"date\")(vm.Activity.ToTime, \"HH:mm\"),\r\n DepartmentId: vm.Activity.selectedDepartment.DepartmentId,\r\n SubjectId: vm.Activity.selectedSubject.SubjectId,\r\n ActivityId: vm.Activity.selectedActivity.ActivityId,\r\n Process: iProcess,\r\n TaskStatus: vm.Activity.SelectedStatus.Id,\r\n Remarks: vm.Activity.Remarks,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n Task_EmployeeActivityService.Task_SaveRemoveEmployeeDailyActivity(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Employee Task Activity\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }\r\n else {\r\n var inputData = {\r\n EmpActivityId: vm.SavedActivityId,\r\n CompanyId: CompanyId,\r\n EmployeeId: logggedUser.RefId,\r\n ActivityDate: $filter(\"date\")(vm.Activity.ActivityDate),\r\n StartTime: $filter(\"date\")(vm.Activity.FromTime, \"HH:mm\"),\r\n EndTime: $filter(\"date\")(vm.Activity.ToTime, \"HH:mm\"),\r\n DepartmentId: 0,\r\n SubjectId: 0,\r\n ActivityId: 0,\r\n Process: iProcess,\r\n TaskStatus: vm.SavedActivity.SelectedStatus.Id,\r\n Remarks: vm.SavedActivity.Remarks,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n Task_EmployeeActivityService.Task_SaveRemoveEmployeeDailyActivity(inputData).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n $rootScope.showToaster('success', res.data.Message, \"Employee Task Activity\");\r\n Init();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee Task Activity\");\r\n });\r\n }\r\n }\r\n\r\n //DatetimePicker Function starts\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n $scope.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n // return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n return mode === 'day' && (date.getDay() === 0);\r\n }\r\n\r\n $scope.toggleMin = function () {\r\n $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();\r\n $scope.dateOptions.minDate = $scope.inlineOptions.minDate;\r\n };\r\n\r\n $scope.toggleMin();\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.open2 = function () {\r\n $scope.popup2.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = $scope.formats[0];\r\n $scope.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n $scope.popup2 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n $scope.events = [\r\n {\r\n date: tomorrow,\r\n status: 'full'\r\n },\r\n {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }\r\n ];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < $scope.events.length; i++) {\r\n var currentDay = new Date($scope.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return $scope.events[i].status;\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n }\r\n\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_SubjectMaster')\r\n .controller('Task_SubjectMasterCtrl', Task_SubjectMasterCtrl);\r\n\r\n function Task_SubjectMasterCtrl($scope, $http, $rootScope, dialogs, $state, $stateParams, DepartmentServices, Task_SubjectService,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n \r\n vm.Cancel = Cancel;\r\n vm.isFormOpen = false;\r\n vm.isExistProject = false;\r\n vm.isEditing = false;\r\n vm.EditSubject = EditSubject;\r\n vm.DeleteSubject = DeleteSubject;\r\n vm.SaveSubject = SaveSubject;\r\n vm.DepartmentList = [];\r\n vm.SubjectList = [];\r\n vm.LoadSubjectofActivity = LoadSubjectofActivity;\r\n\r\n vm.Subject = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n Init();\r\n function Init() {\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Subject Master\");\r\n });\r\n }\r\n\r\n function LoadSubjectofActivity(iDeptId) {\r\n vm.SubjectList = [];\r\n vm.isFormOpen = false;\r\n if (iDeptId != undefined) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n }\r\n\r\n Task_SubjectService.ReadSubjectofActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubjectList = res.data;\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Task Subject Master\");\r\n });\r\n }\r\n }\r\n\r\n function Cancel() {\r\n vm.Subject = {}; \r\n vm.isFormOpen = false; \r\n }\r\n\r\n function SaveSubject() {\r\n var iSubjectId = 0;\r\n\r\n if (!vm.isEditing)\r\n iSubjectId = 0;\r\n else\r\n iSubjectId = vm.Subject.SubjectId;\r\n\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: vm.Subject.selectedDepartment.DepartmentId,\r\n SubjectId: iSubjectId,\r\n SubjectName: vm.Subject.SubjectName,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId\r\n }\r\n\r\n Task_SubjectService.SaveDeleteUpdateSubjectofActivity(inputdata1).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Task Subject Master\"); \r\n vm.isFormOpen = true;\r\n vm.Subject.SubjectName = null;\r\n vm.isEditing = false;\r\n LoadSubjectofActivity(vm.Subject.selectedDepartment.DepartmentId); \r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Task Subject Master\"); \r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n\r\n function EditSubject(row) {\r\n\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n\r\n vm.Subject = angular.copy(row);\r\n\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.Subject.DepartmentId) {\r\n vm.Subject.selectedDepartment = vm.DepartmentList[i];\r\n }\r\n }\r\n }\r\n\r\n function DeleteSubject(row) {\r\n\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n DepartmentId: 0,\r\n SubjectId: row.SubjectId,\r\n SubjectName: '',\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n };\r\n\r\n Task_SubjectService.SaveDeleteUpdateSubjectofActivity(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Task Subject Master\");\r\n vm.isFormOpen = true;\r\n vm.Subject.SubjectName = null;\r\n vm.isEditing = false;\r\n LoadSubjectofActivity(vm.Subject.selectedDepartment.DepartmentId); \r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot Task Subject Master', 'ERROR!');\r\n });\r\n })\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_RepeatedSubjectMaster')\r\n .controller('Task_RepeatedSubjectMasterCtrl', Task_RepeatedSubjectMasterCtrl);\r\n\r\n function Task_RepeatedSubjectMasterCtrl($scope, $http, $rootScope, dialogs, $state, $stateParams, DepartmentServices, CRM_SalesActivityCategoryService, Task_SubjectService,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.Cancel = Cancel;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.SalesActivity = {};\r\n vm.DeleteSalesActivity = DeleteSalesActivity;\r\n vm.SaveSalesActivity = SaveSalesActivity;\r\n vm.EditSalesActivity = EditSalesActivity;\r\n vm.LoadSalesActivity = LoadSalesActivity;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.ActvityType = 'R';\r\n\r\n Init();\r\n function Init() {\r\n\r\n DepartmentServices.GetDepartmentByCompanyId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Sales Activity\");\r\n });\r\n }\r\n\r\n\r\n function LoadSalesActivity(iDeptId) {\r\n vm.SalesActivitytList = [];\r\n vm.isFormOpen = false;\r\n\r\n if (iDeptId != undefined) {\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n DepartmentId: iDeptId,\r\n Type: vm.ActvityType,\r\n }\r\n\r\n CRM_SalesActivityCategoryService.ReadSalesActivityCategory(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SalesActivitytList = res.data;\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of Sales Activity\");\r\n });\r\n }\r\n }\r\n\r\n function Cancel() {\r\n vm.SalesActivity = {};\r\n vm.isFormOpen = false;\r\n }\r\n\r\n function SaveSalesActivity() {\r\n\r\n var iCategoryId = 0;\r\n\r\n if (!vm.isEditing)\r\n iCategoryId = vm.SalesActivity.CategoryId;\r\n\r\n var inputdata1 = {\r\n CompanyId: CompanyId,\r\n DepartmentId: vm.SalesActivity.selectedDepartment.DepartmentId,\r\n CategoryId: iCategoryId,\r\n CategoryName: vm.SalesActivity.CategoryName,\r\n Process: 'Save',\r\n CreatedBy: logggedUser.UserId,\r\n Type: vm.ActvityType,\r\n }\r\n\r\n CRM_SalesActivityCategoryService.SaveDeleteUpdateSalesActivityCategory(inputdata1).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category of Sales Activity\");\r\n vm.isFormOpen = true;\r\n vm.SalesActivity.CategoryName = null;\r\n vm.isEditing = false;\r\n LoadSalesActivity(vm.SalesActivity.selectedDepartment.DepartmentId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Category of Sales Activity\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n function DeleteSalesActivity(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row?', { animation: true, size: 'sm' });\r\n\r\n confirm.result.then(function () {\r\n\r\n var inputData = {\r\n CompanyId: CompanyId,\r\n DepartmentId: 0,\r\n CategoryId: row.CategoryId,\r\n CategoryName: '',\r\n Process: 'Delete',\r\n CreatedBy: logggedUser.UserId\r\n };\r\n\r\n CRM_SalesActivityCategoryService.SaveDeleteUpdateSalesActivityCategory(inputData).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Category of Sales Activity\");\r\n vm.isFormOpen = true;\r\n vm.SalesActivity.CategoryName = null;\r\n vm.isEditing = false;\r\n LoadSalesActivity(vm.SalesActivity.selectedDepartment.DepartmentId);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"ERROR!\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Cannot Category of Sales Activity', 'ERROR!');\r\n });\r\n })\r\n\r\n\r\n }\r\n\r\n function EditSalesActivity(row) {\r\n\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n\r\n vm.SalesActivity = angular.copy(row);\r\n\r\n for (var i in vm.DepartmentList) {\r\n if (vm.DepartmentList[i].DepartmentId === vm.SalesActivity.DepartmentId) {\r\n vm.SalesActivity.selectedDepartment = vm.DepartmentList[i];\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n})();\n(function () {\r\n\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.Task_TaskApprovedList')\r\n .controller('Task_TaskApprovedListCtrl', Task_TaskApprovedListCtrl);\r\n function Task_TaskApprovedListCtrl($scope, $http, $rootScope, lodash, dialogs, $filter, $state, $stateParams, Task_EmployeeActivityService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n var PrjId = 0;\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n\r\n }\r\n \r\n vm.GetActivity = GetActivity;\r\n vm.Activity = {};\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n Init();\r\n\r\n function Init() {\r\n vm.Activity.ActivityDate = new Date();\r\n GetActivity(vm.Activity.ActivityDate); \r\n } \r\n\r\n function GetActivity(ActivityDate) {\r\n\r\n vm.TaskApprovedList = [];\r\n\r\n if (ActivityDate != undefined || ActivityDate != null) {\r\n\r\n\r\n var inputdata = {\r\n CompanyId: CompanyId,\r\n EmployeeId: logggedUser.RefId,\r\n ActivityDate: $filter(\"date\")(ActivityDate)\r\n };\r\n\r\n Task_EmployeeActivityService.Task_GetAllEmployeeActivity(inputdata).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TaskApprovedList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n }\r\n\r\n //DatetimePicker Function starts\r\n\r\n $scope.today = function () {\r\n $scope.dt = new Date();\r\n };\r\n $scope.today();\r\n\r\n $scope.clear = function () {\r\n $scope.dt = null;\r\n };\r\n\r\n $scope.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n $scope.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n // return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n return mode === 'day' && (date.getDay() === 0);\r\n }\r\n\r\n $scope.toggleMin = function () {\r\n $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();\r\n $scope.dateOptions.minDate = $scope.inlineOptions.minDate;\r\n };\r\n\r\n $scope.toggleMin();\r\n\r\n $scope.open1 = function () {\r\n $scope.popup1.opened = true;\r\n };\r\n\r\n $scope.open2 = function () {\r\n $scope.popup2.opened = true;\r\n };\r\n\r\n $scope.setDate = function (year, month, day) {\r\n $scope.dt = new Date(year, month, day);\r\n };\r\n\r\n $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n $scope.format = $scope.formats[0];\r\n $scope.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n $scope.popup1 = {\r\n opened: false\r\n };\r\n\r\n $scope.popup2 = {\r\n opened: false\r\n };\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n $scope.events = [\r\n {\r\n date: tomorrow,\r\n status: 'full'\r\n },\r\n {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }\r\n ];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < $scope.events.length; i++) {\r\n var currentDay = new Date($scope.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return $scope.events[i].status;\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n //DatetimePicker Function ends\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.user.login')\r\n .controller('LoginCtrl', LoginCtrl);\r\n\r\n /** @ngInject */\r\n function LoginCtrl($rootScope, $state, $scope, lodash, dialogs, AuthenticationService, $location, UserService, KPostBoxService) {\r\n var vm = this;\r\n $rootScope.isLogin = true;\r\n\r\n // Properties\r\n vm.isLoading = false;\r\n vm.isForget = false;\r\n vm.errorList = [];\r\n // Methods\r\n vm.login = login;\r\n vm.forgetPswd = forgetPswd;\r\n vm.cancel = cancel;\r\n vm.activate = activate;\r\n //////////////// \r\n if ($rootScope.iskpostCallChecked) {\r\n vm.Username = $rootScope.KpostDetails.Usr\r\n vm.Password = $rootScope.KpostDetails.pwd\r\n var obj = {\r\n IOCA_Id: $rootScope.KpostDetails.IocId,\r\n ProjectId: $rootScope.KpostDetails.Prj,\r\n LastTierId: $rootScope.KpostDetails.Lt,\r\n ContractorId: $rootScope.KpostDetails.CnrtId,\r\n EmployeeId: $rootScope.KpostDetails.EmpId,\r\n TaskDate: $rootScope.KpostDetails.TskDate,\r\n isChecked: true\r\n }\r\n login();\r\n // $location.path('/Supervisor_todaytask');\r\n // $state.go('supervisor', {\r\n // data: obj\r\n // }); \r\n }\r\n\r\n\r\n // test();\r\n // function test() {\r\n // KPostBoxService.GetAllTaskWorkApproval(function (res) {\r\n // if (res.status === 200) {\r\n // vm.isForget = false;\r\n // }\r\n // });\r\n // }\r\n\r\n\r\n $scope.UserNameOnly = function (event, myValue) {\r\n debugger;\r\n // var regex = new RegExp(\"^[\\w\\s\\-]+$\")\r\n var regex = new RegExp(\"^[a-zA-Z0-9]+([_ -]?[a-zA-Z0-9])*$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n if (event.which === 13) {\r\n scope.$apply(function () {\r\n login();\r\n });\r\n } else {\r\n $rootScope.showToaster('warning', 'Spaces and Special Characters', \"Don't Allow..!\");\r\n return false;\r\n }\r\n\r\n }\r\n // do something with myValue\r\n }\r\n\r\n $scope.PassOnly = function (event, myValue) {\r\n debugger;\r\n var regex = new RegExp(\"^[a-zA-Z0-9~`!@#$%^&*()-_+='|{}\\]+([_ -]?[a-zA-Z0-9])*$\");\r\n var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n if (!regex.test(key)) {\r\n event.preventDefault();\r\n if (event.which === 13) {\r\n scope.$apply(function () {\r\n login();\r\n });\r\n } else{\r\n $rootScope.showToaster('warning', 'Spaces Between Characters', \"Don't Allow..!\");\r\n return false;\r\n } \r\n }\r\n // do something with myValue\r\n }\r\n\r\n function activate() {\r\n if (vm.newPassword === vm.conPassword) {\r\n AuthenticationService.changePswd(vm.Username, vm.conPassword, function (res) {\r\n vm.errorList = [];\r\n if (res.status === 200) {\r\n vm.isForget = false;\r\n } else if (res.status === -1) {\r\n vm.errorList.push(\"Can't connect to server, Try Again!\");\r\n vm.isLoading = false;\r\n }\r\n });\r\n } else {\r\n vm.errorList.push(\"This Passwords are doesn't match!\");\r\n }\r\n }\r\n\r\n function login() {\r\n debugger;\r\n vm.isLoading = true;\r\n AuthenticationService.login(vm.Username, vm.Password, function (res) {\r\n vm.errorList = [];\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n UserService.getUserById($rootScope.userId).then(function (res) {\r\n AuthenticationService.setLoggedUserDetails(res.data);\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if ($rootScope.iskpostCallChecked)\r\n $state.go('supervisor');\r\n // $location.path('/Supervisor_todaytask');\r\n else\r\n $state.go('dashboard');\r\n if (loggedUser.SelectedCompany) {\r\n // vm.selectedCompany = loggedUser.SelectedCompany;\r\n } else {\r\n $rootScope.openSelectCompanyModal();\r\n }\r\n }, function (err) {\r\n AuthenticationService.setLoggedUserDetails(null);\r\n });\r\n\r\n // $state.go('dashboard'); \r\n } else if (res.status === 401) {\r\n vm.errorList.push(\"Invalid Credentials!\");\r\n vm.isLoading = false;\r\n } else if (res.status === -1) {\r\n vm.errorList.push(\"Can't connect to server, Try Again!\");\r\n vm.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n function forgetPswd() {\r\n vm.isForget = true;\r\n }\r\n\r\n function cancel() {\r\n vm.isForget = false;\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.role')\r\n .controller('UserMenuMappingCtrl', UserMenuMappingCtrl);\r\n\r\n /** @ngInject */\r\n function UserMenuMappingCtrl($scope,$rootScope, $state, $http, lodash, dialogs, UserService) {\r\n var vm = this;\r\n $rootScope.isLogin = false;\r\n vm.isLoading = false;\r\n\r\n // Properties\r\n vm.errorList = [];\r\n \r\n // Methods\r\n vm.getUserMenuMapping = getUserMenuMapping;\r\n vm.selectMenu = selectMenu;\r\n vm.saveUserMenuMapping = saveUserMenuMapping;\r\n\r\n init();\r\n ////////////////\r\n\r\n vm.collapseAll = function () {\r\n $scope.$broadcast('angular-ui-tree:collapse-all');\r\n };\r\n\r\n vm.expandAll = function () {\r\n $scope.$broadcast('angular-ui-tree:expand-all');\r\n };\r\n\r\n function init() { \r\n vm.isLoading = true;\r\n UserService.getAllUsers().then(function (res) {\r\n if (res.status === 200) {\r\n vm.UserList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"User\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Try Again', \"User\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function getUserMenuMapping() {\r\n vm.isLoading = true;\r\n vm.selectedMenu = {};\r\n UserService.getUserMenuMapping(vm.selectedUser.UserId).then(function(res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.menuList = res.data;\r\n // logic\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"User\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Try Again', \"User\");\r\n vm.isLoading = false;\r\n })\r\n }\r\n\r\n function selectMenu(menu) { \r\n vm.selectedMenu = menu;\r\n }\r\n\r\n function saveUserMenuMapping () {\r\n vm.isLoading = true;\r\n UserService.saveUserMenuMapping(vm.selectedUser.UserId, vm.menuList).then(function(res) {\r\n if (res.status === 200 && res.data) {\r\n $rootScope.showToaster('success', 'Mapping Successfully Saved', \"User\");\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"User\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Try Again', \"User\");\r\n vm.isLoading = false;\r\n })\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.role')\r\n .controller('CreateUserCtrl', CreateUserCtrl);\r\n\r\n /** @ngInject */\r\n function CreateUserCtrl($filter, $scope, $rootScope, $state, $http, lodash, dialogs,\r\n DepartmentServices, DesignationService, UserService, RoleService, AuthenticationService, PreparationofRfqMaterialService, EmployeeService) {\r\n var vm = this;\r\n\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n $rootScope.isLogin = false;\r\n\r\n // Properties\r\n vm.isLoading = false;\r\n\r\n vm.isFormOpen = false;\r\n vm.User = {};\r\n vm.validUserName = false;\r\n vm.validUserEmail = false;\r\n // Methods\r\n vm.departmentSelectionChanged = departmentSelectionChanged;\r\n vm.designationSelectionChanged = designationSelectionChanged;\r\n vm.empSelectionChaged = empSelectionChaged;\r\n vm.resetForm = resetForm;\r\n vm.saveUser = saveUser;\r\n vm.checkUsername = checkUsername;\r\n vm.checkUserEmail = checkUserEmail;\r\n vm.isEditing = false;\r\n vm.selectdep = false;\r\n vm.selectdes = false;\r\n vm.selectemp = false;\r\n vm.form = true;\r\n vm.isPwd = false;\r\n vm.isPwd1 = true;\r\n vm.getApprovedContractor = getApprovedContractor;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n Init();\r\n\r\n ////////////////\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n DepartmentServices.GetDepartmentByCompanyId(companyId).then(\r\n function(res) {\r\n if (res.status === 200) {\r\n vm.DepartmentList = res.data;\r\n RoleService.GetActiveRole().then(function(res) {\r\n if (res.status === 200) {\r\n vm.RoleList = res.data;\r\n UserService.getUsersByCompanyId(companyId).then(function(res) {\r\n vm.UserList = res.data;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Role\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Role\");\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Role\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', \"Can't connect the server! Try Again\", \"Role\");\r\n }\r\n )\r\n\r\n vm.TypeUserList = [{ \"Val\": \"EMP\", \"Type\": \"Employee\" }, { \"Val\": \"CNT\", \"Type\": \"Contractor\" }, { \"Val\": \"SUP\", \"Type\": \"Supplier\" }]\r\n }\r\n\r\n function departmentSelectionChanged(callBack) {\r\n\r\n DesignationService.GetDesigByDepId(vm.selectedDepartment.DepartmentId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DesignationList = res.data;\r\n if (callBack);\r\n callBack();\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't connect the server! Try Again\", \"Create User\");\r\n })\r\n vm.selectedDesignation = null;\r\n vm.selectedEmployee = null;\r\n }\r\n\r\n\r\n\r\n function designationSelectionChanged(callback) {\r\n var companyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n EmployeeService.getAllEmployees(companyId).then(function(res) {\r\n vm.EmpList = res.data;\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n });\r\n vm.selectedEmployee = null;\r\n }\r\n\r\n function getApprovedContractor(callback) {\r\n if (vm.selectedType.Val == 'CNT') {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n UserService.getAllApprovedContractor(loggedUser.UserId).then(function(res) {\r\n vm.ContractorList = res.data;\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n });\r\n } else if (vm.selectedType.Val == 'SUP') {\r\n PreparationofRfqMaterialService.GetSupplier().then(function(res) {\r\n vm.SupplierList = res.data;\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function empSelectionChaged() {\r\n\r\n var User = {}\r\n if (vm.selectedEmployee != undefined) {\r\n User.Id = vm.selectedEmployee.EmployeeId,\r\n User.UserType = 'EMP'\r\n } else if (vm.selectedContractor != undefined) {\r\n User.Id = vm.selectedContractor.ContractorId\r\n User.UserType = 'CNT'\r\n } else {\r\n User.Id = vm.selectedSupplier.SupplierId\r\n User.UserType = 'SUP'\r\n }\r\n UserService.CheckUserAccount(User).then(function(res) {\r\n if (res.data == true) {\r\n if (vm.selectedType.Val == 'EMP') {\r\n dialogs.notify('Warning', 'An account has already created for ' + vm.selectedEmployee.FirstName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else if (vm.selectedType.Val == 'CNT') {\r\n dialogs.notify('Warning', 'An account has already created for ' + vm.selectedContractor.ContractorName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n dialogs.notify('Warning', 'An account has already created for ' + vm.selectedSupplier.SupplierName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n\r\n vm.form = true;\r\n vm.isPwd = true;\r\n } else {\r\n if (vm.selectedType.Val == 'EMP') {\r\n vm.User.FirstName = vm.selectedEmployee.FirstName;\r\n vm.User.LastName = vm.selectedEmployee.LastName;\r\n } else if (vm.selectedType.Val == 'CNT') {\r\n vm.User.FirstName = vm.selectedContractor.ContractorName;\r\n } else {\r\n vm.User.FirstName = vm.selectedSupplier.SupplierName\r\n }\r\n\r\n\r\n vm.form = false;\r\n vm.isPwd = false;\r\n }\r\n vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n vm.isLoading = false;\r\n });\r\n\r\n\r\n }\r\n\r\n function checkUserEmail() {\r\n vm.isLoading = true;\r\n if (vm.User.EmailId.trim() !== \"\") {\r\n UserService.checkUserEmail(vm.User.EmailId).then(function(res) {\r\n if (res.status == 200) {\r\n vm.validUserEmail = !res.data;\r\n } else {\r\n vm.validUserEmail = false;\r\n }\r\n vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.User.EmailId = \"\";\r\n vm.isLoading = false;\r\n }\r\n }\r\n\r\n function checkUsername() {\r\n vm.isLoading = true;\r\n if (vm.User.Username.trim() !== \"\") {\r\n UserService.checkUsername(vm.User.Username).then(function(res) {\r\n if (res.status == 200) {\r\n vm.validUserName = !res.data;\r\n } else {\r\n vm.validUserName = false;\r\n }\r\n vm.isLoading = false;\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.User.Username = \"\";\r\n vm.isLoading = false;\r\n }\r\n }\r\n\r\n vm.Create = function() {\r\n vm.selectdep = false;\r\n vm.selectdes = false;\r\n vm.selectemp = false\r\n vm.isEditing = false;\r\n vm.isFormOpen = true;\r\n vm.form = true;\r\n vm.labelCreate = true;\r\n vm.labelEdit = false;\r\n }\r\n\r\n function resetForm() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.User = {};\r\n vm.selectedDepartment = null;\r\n vm.selectedDesignation = null;\r\n vm.selectedEmployee = null;\r\n vm.selectedRole = null;\r\n vm.form = false;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n vm.editUser = function(User) {\r\n vm.labelCreate = false;\r\n vm.labelEdit = true;\r\n vm.isEditing = true;\r\n vm.isFormOpen = true;\r\n vm.User = angular.copy(User);\r\n\r\n vm.User.UserType = vm.User.UserType\r\n\r\n for (var c in vm.RoleList) {\r\n if (vm.RoleList[c].RoleId == User.Role.RoleId) {\r\n vm.selectedRole = vm.RoleList[c];\r\n }\r\n }\r\n // for (var c in vm.DepartmentList) {\r\n // if (vm.DepartmentList[c].companyId == User.Company.companyId) {\r\n // vm.selectedDepartment = vm.DepartmentList[c];\r\n // }\r\n // }\r\n // departmentSelectionChanged(User.Department.DepartmentId, function () {\r\n\r\n // for (var c in vm.DesignationList) {\r\n // if (vm.DesignationList[c].DepartmentId == User.Department.DepartmentId) {\r\n // vm.selectedDesignation = vm.DesignationList[c];\r\n // }\r\n // }\r\n // designationSelectionChanged(User.DesignationId, function(){\r\n // for (var c in vm.EmpList) {\r\n // if (vm.EmpList[c].DesignationId == User.DesignationId) {\r\n // vm.selectedEmployee = vm.EmpList[c];\r\n // }\r\n // }\r\n // });\r\n\r\n\r\n\r\n vm.selectdep = true;\r\n vm.selectdes = true;\r\n vm.selectemp = true;\r\n vm.form = false;\r\n vm.isPwd = true;\r\n }\r\n\r\n\r\n function saveUser() {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (!vm.isEditing) {\r\n if (vm.selectedType.Val == 'CNT') {\r\n var user = {\r\n Username: vm.User.Username,\r\n FirstName: vm.User.FirstName,\r\n LastName: vm.User.LastName,\r\n EmailId: vm.User.EmailId,\r\n Password: vm.User.Password,\r\n RoleId: vm.selectedRole.RoleId,\r\n CompanyId: logggedUser.SelectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId,\r\n RefId: vm.selectedContractor.ContractorId\r\n };\r\n vm.isLoading = true;\r\n UserService.createUserContractor(user).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'User Added Successfully', \"Create User\");\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', 'Invalid Data', \"Create User\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n vm.isLoading = false;\r\n });\r\n\r\n\r\n } else if (vm.selectedType.Val == 'SUP') {\r\n var user = {\r\n Username: vm.User.Username,\r\n FirstName: vm.User.FirstName,\r\n LastName: vm.User.LastName,\r\n EmailId: vm.User.EmailId,\r\n Password: vm.User.Password,\r\n RoleId: vm.selectedRole.RoleId,\r\n CompanyId: logggedUser.SelectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId,\r\n RefId: vm.selectedSupplier.SupplierId\r\n };\r\n vm.isLoading = true;\r\n UserService.CreateSupplier(user).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'User Added Successfully', \"Create User\");\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', 'Invalid Data', \"Create User\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n var user = {\r\n Username: vm.User.Username,\r\n FirstName: vm.User.FirstName,\r\n LastName: vm.User.LastName,\r\n EmailId: vm.User.EmailId,\r\n Password: vm.User.Password,\r\n RoleId: vm.selectedRole.RoleId,\r\n CompanyId: logggedUser.SelectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId,\r\n RefId: vm.selectedEmployee.EmployeeId\r\n };\r\n vm.isLoading = true;\r\n UserService.createUser(user).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'User Added Successfully', \"Create User\");\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', 'Invalid Data', \"Create User\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Create User\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n } else {\r\n vm.isLoading = true;\r\n var user = {\r\n UserId: vm.User.UserId,\r\n UserName: vm.User.Username,\r\n FirstName: vm.User.FirstName,\r\n LastName: vm.User.LastName,\r\n EmailId: vm.User.EmailId,\r\n RoleId: vm.selectedRole.RoleId,\r\n ModifiedBy: logggedUser.UserId\r\n }\r\n UserService.UpdateUser(user).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'User Updated Successfully', \"Update User\");\r\n vm.isLoading = false;\r\n vm.isFormOpen = false;\r\n Init();\r\n clear();\r\n } else {\r\n $rootScope.showToaster('error', 'Invalid Data', \"Update User\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Update User\");\r\n vm.isLoading = false;\r\n });\r\n\r\n vm.select = true;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n vm.removeUser = function(User) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n UserService.removeUser(User.UserId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Delete User Successfully', \"User\");\r\n Init();\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Delete User\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Delete User.
If its not a parent contact your Admin\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }, function() {\r\n\r\n })\r\n }\r\n\r\n\r\n function clear() {\r\n vm.isFormOpen = false;\r\n vm.User = {};\r\n vm.selectedDepartment = null;\r\n vm.selectedDesignation = null;\r\n vm.selectedEmployee = null;\r\n vm.selectedRole = null;\r\n vm.form = false;\r\n\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.user')\r\n .controller('SelectCompanyModalCtrl', SelectCompanyModalCtrl);\r\n\r\n /** @ngInject */\r\n function SelectCompanyModalCtrl($rootScope, lodash, AuthenticationService, UserService, $uibModalInstance, $state) {\r\n var vm = this;\r\n\r\n // methods\r\n vm.closeModal = closeModal;\r\n vm.companySelectionChanged = companySelectionChanged;\r\n vm.ok = ok;\r\n\r\n Init();\r\n\r\n ////////////////\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n UserService.getUserCompanies($rootScope.userId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (loggedUser.SelectedCompany) {\r\n vm.selectedCompany = loggedUser.SelectedCompany;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPMES\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPMES\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function closeModal() {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n function companySelectionChanged() {\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n loggedUser.SelectedCompany = vm.selectedCompany;\r\n AuthenticationService.setLoggedUserDetails(loggedUser);\r\n }\r\n\r\n function ok() {\r\n var user = {\r\n UserId: $rootScope.userId,\r\n CompanyId: vm.selectedCompany.CompanyId\r\n };\r\n $rootScope.selectedCompanyId = user.CompanyId;\r\n UserService.UpdateSelectedCompany(user).then(\r\n function(res) {\r\n if (res.status === 200) {\r\n if (!res.data)\r\n $rootScope.showToaster('error', 'Something wrong, Contact Admin.', \"Role\");\r\n } else {\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Role\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', \"Can't connect the server! Try Again\", \"Role\");\r\n }\r\n )\r\n $state.reload();\r\n $uibModalInstance.close();\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.user')\r\n .controller('SelectProjectModalCtrl', SelectProjectModalCtrl);\r\n\r\n /** @ngInject */\r\n function SelectProjectModalCtrl($rootScope, lodash, AuthenticationService, UserService, $uibModalInstance, $state, projectCreationService) {\r\n var vm = this;\r\n\r\n // methods\r\n vm.closeModal = closeModal;\r\n vm.projectSelectionChanged = projectSelectionChanged;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.ok = ok;\r\n\r\n Init();\r\n\r\n ////////////////\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(loggedUser.SelectedCompany.CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n if (loggedUser.SelectedCompany) {\r\n vm.selectedCompany = loggedUser.SelectedCompany;\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPMES\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"KPMES\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function closeModal() {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n function projectSelectionChanged() {\r\n // loggedUser.selectedProject = vm.selectedProject;\r\n $rootScope.selectedProject = vm.selectedProject;\r\n // AuthenticationService.setLoggedUserDetails(loggedUser);\r\n\r\n // console.log(loggedUser);\r\n }\r\n\r\n function ok() {\r\n $state.reload();\r\n $uibModalInstance.close();\r\n \r\n \r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('ApprovalOfWorkCtrl', ApprovalOfWorkCtrl);\r\n\r\n function ApprovalOfWorkCtrl($rootScope, $scope, $window, $uibModal, dialogs, lodash, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n vm.getCategoryByWorkOrderIoca = getCategoryByWorkOrderIoca;\r\n vm.getSubCategoryByWorkOrderIoca = getSubCategoryByWorkOrderIoca;\r\n vm.getTypeByWorkOrderIoca = getTypeByWorkOrderIoca;\r\n vm.getIocaByWorkOderIoca = getIocaByWorkOderIoca;\r\n vm.getLocationByWorkOrderIoca = getLocationByWorkOrderIoca;\r\n vm.getTierDtlsByWorkOrderIoca = getTierDtlsByWorkOrderIoca;\r\n vm.getPowForApproval = getPowForApproval;\r\n vm.filterTiers = filterTiers;\r\n vm.getTierNo = getTierNo;\r\n vm.SaveWorkApproval = SaveWorkApproval;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.work = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: 1\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: 2\r\n }, {\r\n ApproveForName: 'Balance',\r\n ApproveForId: 3\r\n }];\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n clearByCompany();\r\n var isWrkAlloc = true;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApprovedProject(CompanyId, isWrkAlloc).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n clearByCompany();\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n ClearByAppform();\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n ClearByAppform();\r\n }\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n ClearByCategoryWO();\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n if (vm.work.selectedApprovalFrom.ApprovalId == false)\r\n obj.approvalFrom = true;\r\n else\r\n obj.approvalFrom = false;\r\n\r\n WorkApprovalService.GetContractorByWorkOrder(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n } else {\r\n ClearByCategoryWO();\r\n }\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n ClearByCategoryWO();\r\n var obj = {\r\n projectId: ProjectId,\r\n contId: ContractorId,\r\n fromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n workStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetApprovedWorkOrderByContractor(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n } else {\r\n ClearByCategoryWO();\r\n }\r\n }\r\n\r\n\r\n vm.ClearForApprovalFrom = function() {\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = null;\r\n vm.selectedWoIOCA = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n vm.allTierData = [];\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function getCategoryByWorkOrderIoca() {\r\n debugger;\r\n if (vm.work.selectedWorkOrder != null) {\r\n ClearByWO();\r\n var woId = vm.work.selectedWorkOrder.WorkOrderId;\r\n var fromPlanning = vm.work.selectedApprovalFrom.ApprovalId;\r\n var workStatus = (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0;\r\n WorkApprovalService.GetCategoryByWorkOrderIoca(woId, fromPlanning, workStatus).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n if (vm.WorkOrderCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no Contraction Activity Category for selected Work Order\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n } else {\r\n ClearByWO();\r\n }\r\n\r\n }\r\n\r\n function getSubCategoryByWorkOrderIoca() {\r\n if (vm.selectedWoCategory != null && vm.selectedWoCategory.length > 0) {\r\n ClearByCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryIdList: vm.Category,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetSubCategoryByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n } else {\r\n ClearByCategory();\r\n }\r\n\r\n }\r\n\r\n function getTypeByWorkOrderIoca() {\r\n if (vm.selectedWoSubCategory != null && vm.selectedWoSubCategory.length > 0) {\r\n ClearBySubCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n SubCategoryIdList: vm.SubCategory,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetTypeByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n if (vm.WorkOrderTypeList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order type for selected SubCategory\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n } else {\r\n ClearBySubCategory();\r\n }\r\n\r\n }\r\n\r\n function getIocaByWorkOderIoca() {\r\n if (vm.selectedWoType != null && vm.selectedWoType.length > 0) {\r\n ClearByType();\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n if (vm.work.selectedWorkOrder != undefined) {\r\n var obj = {\r\n TypeIdList: vm.TypeId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetIocaByWorkOderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n if (vm.WorkOrderIOCAList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order IOCA for selected Type\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n } else {\r\n ClearByType();\r\n }\r\n }\r\n\r\n function getLocationByWorkOrderIoca() {\r\n // vm.work.selectedApproveForName\r\n if (vm.selectedWoIOCA) {\r\n ClearByIOCA();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n }\r\n WorkApprovalService.GetLocationByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1)\r\n dialogs.notify('warning', \"There is no Location for selected IOCA\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n\r\n } else {\r\n ClearByIOCA();\r\n }\r\n }\r\n\r\n function getTierDtlsByWorkOrderIoca() {\r\n debugger;\r\n if (vm.selectedLocation) {\r\n vm.isLoading = true;\r\n ClearByLoc();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetTierDtlsByWorkOrderIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data != null) {\r\n vm.strArr = JSON.parse(res.data).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.notify('warning', \"There is no Location for selected IOCA\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n } else {\r\n ClearByLoc();\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n if (t.TierName === maxTier.TierNo) {\r\n var ioca = lodash.find(vm.workOrderIocaList, {\r\n 'IOCA_Id': vm.selectedWoIOCA.Id\r\n })\r\n if (ioca) {\r\n var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n })\r\n if (tmpWorkLoc) {\r\n var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n lodash.forEach(maxTier.Values, function(t1) {\r\n if (lodash.includes(tmpTierIdList, t1.TierId))\r\n lodash.remove(maxTier.Values, function(t2) {\r\n return t2.TierId === t1.TierId;\r\n });\r\n })\r\n }\r\n }\r\n }\r\n vm.LastTiers = tier.selectedTireValue;\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getPowForApproval() {\r\n vm.isLoading = true;\r\n ClearByTier();\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierIds = Arr.join();\r\n var obj = {\r\n LastTierIdList: vm.TierIds,\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetPowForApproval(obj).then(function(res) {\r\n debugger;\r\n if (res.status === 200) {\r\n vm.PowApprovalList = res.data;\r\n if (vm.PowApprovalList.length > 0) {\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DocList = {\r\n FileName: []\r\n };\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].isCheck = false;\r\n debugger;\r\n var unit = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim.DimValues, function(value, key) {\r\n unit *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2)\r\n var Total = vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal = ((vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total) * 0.05).toFixed(2)\r\n var TotCal = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal;\r\n debugger;\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax = (parseFloat(Total) + parseFloat(TotCal));\r\n var TotMax = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin = (parseFloat(Total) - parseFloat(TotCal));\r\n var TotMin = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin\r\n var unit1 = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct.DimValues, function(value, key) {\r\n unit1 *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit1.toFixed(2);\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].tempTot = 1\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.IOCADocList) {\r\n if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n var obj = {\r\n IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n }\r\n vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n }\r\n }\r\n }\r\n } else {\r\n dialogs.notify('warning', \"No Data Found\", { animation: true, size: 'sm' });\r\n }\r\n\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n\r\n vm.TotalAct = function(ioca, row, key1) {\r\n\r\n ioca.DimAct.DimValues[key1] = parseFloat(row);\r\n Calculate(ioca)\r\n var TotalAct = parseFloat(ioca.TotalAct).toFixed(2);\r\n var TotMax = parseFloat(ioca.TotMax).toFixed(2);\r\n var TotMin = parseFloat(ioca.TotMin).toFixed(2);\r\n if (parseFloat(TotalAct) <= parseFloat(TotMax) && parseFloat(ioca.TotalAct) >= parseFloat(TotMin)) {\r\n // ioca.tempTot *= row;\r\n // debugger;\r\n ioca.TotalAct = TotalAct.toFixed(2);\r\n\r\n } else {\r\n dialogs.notify('warning', \"Total Quantity should be in from \" + ioca.TotMin.toFixed(2) + \" to \" + ioca.TotMax.toFixed(2), { animation: true, size: 'sm' });\r\n ioca.Status = 0;\r\n ioca.TotalAct = ioca.Total\r\n var Arr = [];\r\n for (var key in ioca.Dim.DimValues) {\r\n Arr.push({\r\n label: key,\r\n value: ioca.Dim.DimValues[key]\r\n })\r\n }\r\n debugger;\r\n for (var i in Arr) {\r\n if (Arr[i].label == key1) {\r\n ioca.DimAct.DimValues[key1] = parseFloat(Arr[i].value);\r\n }\r\n }\r\n\r\n // ioca.DimAct = ioca.Dim;\r\n ioca.DimAct.DimValues = [];\r\n ioca.DimAct.DimValues = (angular.copy(ioca.Dim.DimValues));\r\n\r\n ioca.Approve = false;\r\n ioca.isCheck = false;\r\n //$scope.$apply();\r\n }\r\n }\r\n\r\n function Calculate(ioca) {\r\n var unit1 = 1;\r\n lodash.forIn(ioca.DimAct.DimValues, function(value, key) {\r\n unit1 *= value;\r\n });\r\n if (ioca.ActivityCount)\r\n ioca.TotalAct = (ioca.ActivityCount * unit1).toFixed(2);\r\n else\r\n ioca.TotalAct = unit1.toFixed(2);\r\n }\r\n\r\n vm.Attachment = function(ioca, Status) {\r\n ioca.status = Status;\r\n if (ioca.status == 2) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/workApprovalAttachment.html',\r\n controller: 'WorkApprovalAttachementCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return ioca;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(obj) {\r\n ioca.Attachment = obj;\r\n ioca.Status = ioca.status;\r\n if (ioca.Approve)\r\n ioca.Approve = false;\r\n }, function() {\r\n ioca.Defect = false;\r\n if (ioca.Attachment)\r\n ioca.Attachment.Notes = \"\";\r\n ioca.Status = 0;\r\n });\r\n } else {\r\n ioca.Status = ioca.status\r\n if (ioca.Defect)\r\n ioca.Defect = false;\r\n else if (ioca.Approve == false)\r\n ioca.Status = 0\r\n var TotalAct = parseFloat(ioca.TotalAct).toFixed(2);\r\n var TotMax = parseFloat(ioca.TotMax).toFixed(2);\r\n var TotMin = parseFloat(ioca.TotMin).toFixed(2);\r\n debugger;\r\n if (parseFloat(TotalAct) <= parseFloat(TotMax) && parseFloat(ioca.TotalAct) >= parseFloat(TotMin)) {\r\n\r\n } else {\r\n dialogs.notify('warning', \"Actual Measurment Quantity should be in from \" + ioca.TotMin.toFixed(2) + \" to \" + ioca.TotMax.toFixed(2), { animation: true, size: 'sm' });\r\n ioca.Status = 0;\r\n ioca.DimAct.DimValues = angular.copy(ioca.Dim.DimValues)\r\n ioca.TotalAct = ioca.Total\r\n ioca.Approve = false;\r\n ioca.isCheck = true;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n vm.AttachmentMedia = function(ioca) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/workApprovalAttachment.html',\r\n controller: 'WorkApprovalAttachementCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return ioca;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(obj) {\r\n ioca.Attachment = obj;\r\n }, function() {});\r\n }\r\n\r\n\r\n vm.ViewAttachement = function(ioca, Attachment) {\r\n debugger;\r\n\r\n var obj = {\r\n PowId: ioca.PowId,\r\n Attachment: Attachment\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/approvalAttachment.html',\r\n controller: 'approvalAttachmentCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(obj) {\r\n if (ioca.Attachment)\r\n ioca.Attachment.Files = obj\r\n }, function() {});\r\n }\r\n\r\n vm.select = function(PowList, loc) {\r\n if (loc.selectedAll) {\r\n loc.selectedAll = true;\r\n\r\n } else {\r\n loc.selectedAll = false;\r\n }\r\n for (var i in PowList) {\r\n if (PowList[i].Defect == undefined || PowList[i].Defect == false) {\r\n PowList[i].Approve = loc.selectedAll;\r\n if (PowList[i].Approve == true) {\r\n PowList[i].Status = 1\r\n } else {\r\n PowList[i].Status = 0\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n function SaveWorkApproval() {\r\n debugger;\r\n var Arr = {\r\n ApprovalDetails: []\r\n };\r\n\r\n var MediaList = [];\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status && (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status === 1 || vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status === 2)) {\r\n Arr.ApprovalDetails.push({\r\n PowId: vm.PowApprovalList[i].LocationDtls[j].PowList[k].PowId,\r\n ActualTotQty: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status == 1) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct : 0,\r\n Note: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment != undefined) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment.Notes : \"\",\r\n MediaList: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment != undefined) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment.Files : \"{}\",\r\n ApprovalStatus: vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status,\r\n ActualDimValues: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status == 1) ? JSON.stringify(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct) : null\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n // for (var i in vm.PowApprovalList) {\r\n // for (var j in vm.IOCADocList) {\r\n // if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n // var obj = {\r\n // IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n // }\r\n // vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n // }\r\n // }\r\n // }\r\n\r\n var obj = {\r\n ApprovalDetails: Arr.ApprovalDetails\r\n }\r\n\r\n if (obj.ApprovalDetails.length > 0) {\r\n WorkApprovalService.saveWorkApprovalDtls(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Approval\");\r\n vm.Reset();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Approval\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n dialogs.notify('warning', \"Select atleast One POW\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n\r\n function clearByCompany() {\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function clearByProject() {\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByAppform() {\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategoryWO() {\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByWO() {\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoCategory = [];\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategory() {\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearBySubCategory() {\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByType() {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByIOCA() {\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByLoc() {\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByTier() {\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n\r\n vm.Reset = function() {\r\n vm.work.selectedCompany = null;\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('DefectOfWorkCtrl', DefectOfWorkCtrl);\r\n\r\n function DefectOfWorkCtrl($rootScope, $window, dialogs, $uibModal, lodash, WorkApprovalService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n vm.getCategoryByWorkOrderIoca = getCategoryByWorkOrderIoca;\r\n vm.getSubCategoryByWorkOrderIoca = getSubCategoryByWorkOrderIoca;\r\n vm.getTypeByWorkOrderIoca = getTypeByWorkOrderIoca;\r\n vm.getIocaByWorkOderIoca = getIocaByWorkOderIoca;\r\n vm.getLocationByWorkOrderIoca = getLocationByWorkOrderIoca;\r\n vm.getTierDtlsByWorkOrderIoca = getTierDtlsByWorkOrderIoca;\r\n vm.getPowForApproval = getPowForApproval;\r\n vm.filterTiers = filterTiers;\r\n vm.getTierNo = getTierNo;\r\n vm.SaveWorkApproval = SaveWorkApproval;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: '2'\r\n }\r\n , {\r\n ApproveForName: 'Balance',\r\n ApproveForId: '3'\r\n }];\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n clearByCompany();\r\n var isWrkAlloc = true;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApprovedProject(CompanyId, isWrkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n clearByCompany();\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n ClearByAppform();\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n ClearByAppform();\r\n }\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n ClearByCategoryWO();\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n if (vm.work.selectedApprovalFrom.ApprovalId == false)\r\n obj.approvalFrom = true;\r\n else\r\n obj.approvalFrom = false;\r\n WorkApprovalService.GetContractorByWorkOrder(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n else {\r\n ClearByCategoryWO();\r\n }\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n ClearByCategoryWO();\r\n var obj = {\r\n projectId: ProjectId,\r\n contId: ContractorId,\r\n fromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n workStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetApprovedWorkOrderByContractor(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n else {\r\n ClearByCategoryWO();\r\n }\r\n }\r\n\r\n vm.ClearForApprovalFrom = function () {\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = [];\r\n vm.selectedWoType = null;\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = null;\r\n vm.selectedWoIOCA = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n vm.allTierData = [];\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n\r\n\r\n function getCategoryByWorkOrderIoca() {\r\n if (vm.work.selectedWorkOrder) {\r\n ClearByWO();\r\n var woId = vm.work.selectedWorkOrder.WorkOrderId;\r\n var fromPlanning = vm.work.selectedApprovalFrom.ApprovalId;\r\n var workStatus = (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0;\r\n WorkApprovalService.GetCategoryByWorkOrderIoca(woId, fromPlanning, workStatus).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n if (vm.WorkOrderCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order Category for selected Work Order\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n }\r\n else {\r\n ClearByWO();\r\n }\r\n\r\n }\r\n\r\n function getSubCategoryByWorkOrderIoca() {\r\n if (vm.selectedWoCategory) {\r\n ClearByCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryIdList: vm.Category,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetSubCategoryByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n }\r\n else {\r\n ClearByCategory();\r\n }\r\n\r\n }\r\n\r\n function getTypeByWorkOrderIoca() {\r\n if (vm.selectedWoSubCategory) {\r\n ClearBySubCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n SubCategoryIdList: vm.SubCategory,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetTypeByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n if (vm.WorkOrderTypeList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order type for selected SubCategory\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n else {\r\n ClearBySubCategory();\r\n }\r\n\r\n }\r\n\r\n function getIocaByWorkOderIoca() {\r\n if (vm.selectedWoType) {\r\n ClearByType();\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n var obj = {\r\n TypeIdList: vm.TypeId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetIocaByWorkOderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n if (vm.WorkOrderIOCAList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order IOCA for selected Type\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n else {\r\n ClearByType();\r\n }\r\n }\r\n\r\n function getLocationByWorkOrderIoca() {\r\n if (vm.selectedWoIOCA) {\r\n ClearByIOCA();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetLocationByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1)\r\n dialogs.notify('warning', \"There is no Location for selected IOCA\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n }\r\n else {\r\n ClearByIOCA();\r\n }\r\n\r\n }\r\n\r\n function getTierDtlsByWorkOrderIoca() {\r\n if (vm.selectedLocation) {\r\n ClearByLoc();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetTierDtlsByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n\r\n else {\r\n ClearByLoc();\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function (t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function (t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n if (t.TierName === maxTier.TierNo) {\r\n var ioca = lodash.find(vm.workOrderIocaList, {\r\n 'IOCA_Id': vm.selectedWoIOCA.Id\r\n })\r\n if (ioca) {\r\n var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n })\r\n if (tmpWorkLoc) {\r\n var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n lodash.forEach(maxTier.Values, function (t1) {\r\n if (lodash.includes(tmpTierIdList, t1.TierId))\r\n lodash.remove(maxTier.Values, function (t2) {\r\n return t2.TierId === t1.TierId;\r\n });\r\n })\r\n }\r\n }\r\n }\r\n vm.LastTiers = tier.selectedTireValue;\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function (t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getPowForApproval() {\r\n vm.isLoading = true;\r\n ClearByTier();\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierIds = Arr.join();\r\n var obj = {\r\n LastTierIdList: vm.TierIds,\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0,\r\n GetDefectOnly: true\r\n }\r\n WorkApprovalService.GetPowForApproval(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PowApprovalList = res.data;\r\n if (vm.PowApprovalList.length > 0) {\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DocList = {\r\n FileName: []\r\n };\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].isCheck = false;\r\n var unit = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim.DimValues, function (value, key) {\r\n unit *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total = unit.toFixed(2)\r\n var Total = vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal = ((vm.PowApprovalList[i].LocationDtls[j].PowList[k].Total) * 0.05).toFixed(2)\r\n var TotCal = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotCal;\r\n debugger;\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax = (parseFloat(Total) + parseFloat(TotCal));\r\n var TotMax = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMax\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin = (parseFloat(Total) - parseFloat(TotCal));\r\n var TotMin = vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotMin\r\n var unit1 = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct.DimValues, function (value, key) {\r\n unit1 *= value;\r\n });\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit.toFixed(2);\r\n // vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct = unit1.toFixed(2);\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].tempTot = 1\r\n }\r\n }\r\n }\r\n\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.IOCADocList) {\r\n if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n var obj = {\r\n IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n }\r\n vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n dialogs.notify('warning', \"No Data Found\", { animation: true, size: 'sm' });\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n\r\n vm.TotalAct = function (ioca, row, key1) {\r\n\r\n ioca.DimAct.DimValues[key1] = parseFloat(row);\r\n Calculate(ioca)\r\n var TotalAct = parseFloat(ioca.TotalAct).toFixed(2);\r\n var TotMax = parseFloat(ioca.TotMax).toFixed(2);\r\n var TotMin = parseFloat(ioca.TotMin).toFixed(2);\r\n if (parseFloat(TotalAct) <= parseFloat(TotMax) && parseFloat(ioca.TotalAct) >= parseFloat(TotMin)) {\r\n ioca.TotalAct = TotalAct.toFixed(2);\r\n }\r\n else {\r\n dialogs.notify('warning', \"Actual Measurment Quantity should be in from \" + ioca.TotMin.toFixed(2) + \" to \" + ioca.TotMax.toFixed(2), { animation: true, size: 'sm' });\r\n ioca.Status = 0;\r\n ioca.TotalAct = ioca.Total\r\n var Arr = [];\r\n for (var key in ioca.Dim.DimValues) {\r\n Arr.push({\r\n label: key,\r\n value: ioca.Dim.DimValues[key]\r\n })\r\n }\r\n debugger;\r\n for (var i in Arr) {\r\n if (Arr[i].label == key1) {\r\n ioca.DimAct.DimValues[key1] = parseFloat(Arr[i].value);\r\n }\r\n }\r\n\r\n // ioca.DimAct = ioca.Dim;\r\n ioca.DimAct.DimValues = [];\r\n ioca.DimAct.DimValues = angular.copy(ioca.Dim.DimValues)\r\n ioca.Approve = false;\r\n ioca.isCheck = false;\r\n }\r\n }\r\n\r\n function Calculate(ioca) {\r\n var unit1 = 1;\r\n lodash.forIn(ioca.DimAct.DimValues, function (value, key) {\r\n unit1 *= value;\r\n });\r\n if (ioca.ActivityCount)\r\n ioca.TotalAct = (ioca.ActivityCount * unit1).toFixed(2);\r\n else\r\n ioca.TotalAct = unit1.toFixed(2);\r\n }\r\n\r\n\r\n vm.Attachment = function (ioca, Status) {\r\n debugger;\r\n ioca.status = Status;\r\n if (ioca.status == 2) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/workApprovalAttachment.html',\r\n controller: 'WorkApprovalAttachementCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return ioca;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (obj) {\r\n ioca.Attachment = obj;\r\n ioca.Status = ioca.status;\r\n if (ioca.Approve)\r\n ioca.Approve = false;\r\n }, function () {\r\n ioca.Defect = false;\r\n if (ioca.Attachment)\r\n ioca.Attachment.Notes = \"\";\r\n ioca.Status = 0;\r\n });\r\n }\r\n else {\r\n ioca.Status = ioca.status\r\n if (ioca.Defect)\r\n ioca.Defect = false;\r\n else if (ioca.Approve == false)\r\n ioca.Status = 0\r\n var TotalAct = parseFloat(ioca.TotalAct).toFixed(2);\r\n var TotMax = parseFloat(ioca.TotMax).toFixed(2);\r\n var TotMin = parseFloat(ioca.TotMin).toFixed(2);\r\n debugger;\r\n if (parseFloat(TotalAct) <= parseFloat(TotMax) && parseFloat(ioca.TotalAct) >= parseFloat(TotMin)) {\r\n\r\n }\r\n else {\r\n dialogs.notify('warning', \"Total Amount should be in from \" + ioca.TotMin.toFixed(2) + \" to \" + ioca.TotMax.toFixed(2), { animation: true, size: 'sm' });\r\n ioca.Status = 0;\r\n ioca.DimActioca.DimValues = angular.copy(ioca.Dim.DimValues)\r\n ioca.TotalAct = ioca.Total\r\n ioca.Approve = false;\r\n ioca.isCheck = true;\r\n }\r\n }\r\n }\r\n\r\n vm.AttachmentMedia = function (ioca) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/workApprovalAttachment.html',\r\n controller: 'WorkApprovalAttachementCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return ioca;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (obj) {\r\n ioca.Attachment = obj;\r\n }, function () {\r\n });\r\n }\r\n vm.ViewAttachement = function (ioca, Attachment) {\r\n debugger;\r\n\r\n var obj = {\r\n PowId: ioca.PowId,\r\n Attachment: Attachment\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/approvalAttachment.html',\r\n controller: 'approvalAttachmentCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function (obj) {\r\n if (ioca.Attachment)\r\n ioca.Attachment.Files = obj\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n vm.ViewHistory = function (PowId) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/ViewHistory/viewHistory.html',\r\n controller: 'ViewHistoryCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function () {\r\n return PowId;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function () {\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.select = function (PowList, loc) {\r\n if (loc.selectedAll) {\r\n loc.selectedAll = true;\r\n\r\n } else {\r\n loc.selectedAll = false;\r\n }\r\n for (var i in PowList) {\r\n if (PowList[i].Defect == undefined || PowList[i].Defect == false) {\r\n PowList[i].Approve = loc.selectedAll;\r\n if (PowList[i].Approve == true) {\r\n PowList[i].Status = 1\r\n }\r\n else {\r\n PowList[i].Status = 0\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n function SaveWorkApproval() {\r\n debugger;\r\n var Arr = {\r\n ApprovalDetails: []\r\n };\r\n\r\n var MediaList = [];\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status && (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status === 1 || vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status === 2)) {\r\n Arr.ApprovalDetails.push({\r\n PowId: vm.PowApprovalList[i].LocationDtls[j].PowList[k].PowId,\r\n ActualTotQty: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status == 1) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalAct : 0,\r\n Note: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment != undefined) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment.Notes : \"\",\r\n MediaList: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment != undefined) ? vm.PowApprovalList[i].LocationDtls[j].PowList[k].Attachment.Files : \"{}\",\r\n ApprovalStatus: vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status,\r\n ActualDimValues: (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Status == 1) ? JSON.stringify(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct) : null\r\n });\r\n }\r\n }\r\n }\r\n }\r\n var obj = {\r\n ApprovalDetails: Arr.ApprovalDetails\r\n }\r\n if (obj.ApprovalDetails.length > 0) {\r\n WorkApprovalService.saveWorkApprovalDtls(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Defect Work\");\r\n vm.Reset();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Defect Work\");\r\n vm.isFormOpen = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n else {\r\n dialogs.notify('warning', \"Select atleast One POW\", { animation: true, size: 'sm' });\r\n }\r\n }\r\n\r\n\r\n function clearByCompany() {\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function clearByProject() {\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByAppform() {\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategoryWO() {\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByWO() {\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoCategory = [];\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategory() {\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearBySubCategory() {\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByType() {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByIOCA() {\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByLoc() {\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByTier() {\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n vm.Reset = function () {\r\n vm.work.selectedCompany = null;\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n }\r\n}\r\n)();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('ApprovalWorkGalleryCtrl', ApprovalWorkGalleryCtrl);\r\n\r\n /** @ngInject */\r\n\r\n function ApprovalWorkGalleryCtrl($filter, $scope, $state, $rootScope, lodash, dialogs, $uibModal, $http, TypeOfCAService, $location, $anchorScroll, TierSetupService, estimationReportaService,\r\n CategoryofCAService, SubCategoryofCAService, AuthenticationService, KPostBoxService, IocaService, LocationSetupService, CompanyService, projectCreationService, WorkApprovalService,\r\n ProjectIocaService, BillOfQuntityService, $window, ItemToItemService) {\r\n\r\n // function EstimationReportCtrl($scope, $rootScope, lodash, dialogs, $http, TypeOfCAService, TierSetupService, estimationReportaService, CategoryofCAService, SubCategoryofCAService, AuthenticationService, CountryService, IocaService, LocationSetupService, CompanyService, projectCreationService, ProjectIocaService, BillOfQuntityService) {\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.EstimationReportList = [];\r\n vm.DescriptionList = [];\r\n vm.EstimationList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.IocaList = [];\r\n vm.toqList = [];\r\n vm.Showcate = true;\r\n vm.MethodList = [];\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.getLocationByProject = getLocationByProject;\r\n // vm.getCountryByProject = getCountryByProject;\r\n vm.getCategory = getCategory;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getlocation = getlocation;\r\n vm.filterTiers = filterTiers;\r\n vm.filterTiersByParent = filterTiersByParent;\r\n vm.getToTiers = getToTiers;\r\n vm.getContractorByCategory = getContractorByCategory;\r\n vm.ViewMedia = ViewMedia;\r\n vm.loadIocaList = loadIocaList;\r\n vm.SearchBy = SearchBy;\r\n vm.viewDetail = false;\r\n vm.cancel = cancel;\r\n //Kpost\r\n vm.ajaxFlagSync = false;\r\n vm.imagePathList = [];\r\n vm.fileList = [];\r\n vm.AttachBtn = true;\r\n vm.shareBtn = true;\r\n vm.AttachFile = AttachFile;\r\n vm.shareKpost = shareKpost;\r\n\r\n vm.isAttachmentChk = false;\r\n //Kpost\r\n // vm.getTierNo = getTierNo;\r\n // vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.costructionactivity = false;\r\n vm.locationwork = false;\r\n // vm.getReportType = getReportType;\r\n var tier = {};\r\n\r\n vm.gallery = {};\r\n\r\n\r\n\r\n vm.filter = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n\r\n\r\n\r\n ////////////////////\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n\r\n\r\n vm.SearchByList = [{\r\n SearchId: 1,\r\n SearchtbasedOn: \"Construction Activity\"\r\n },\r\n {\r\n SearchId: 2,\r\n SearchtbasedOn: \"Location\"\r\n }, {\r\n SearchId: 3,\r\n SearchtbasedOn: \"Contractor\"\r\n }\r\n\r\n ];\r\n Attribute();\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n var obj = {\r\n CompanyId: CompanyId,\r\n TypeOfWork: 'Approve'\r\n }\r\n WorkApprovalService.getAllProject(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function SearchBy(SearchId) {\r\n if (SearchId === 1) {\r\n vm.gallery.selectedCategory = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.gallery.selectedSubCategory = [];\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n getCategory();\r\n\r\n } else if (SearchId === 2) {\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.gallery.selectedSubCategory = [];\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.MediaList = [];\r\n getlocation();\r\n } else if (SearchId === 3) {\r\n vm.gallery.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.gallery.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.gallery.selectedSubCategory = [];\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n getCategoryForPrjContractor(vm.gallery.selectedProject.ProjectId)\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function getContractorByCategory(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n WorkApprovalService.GetContractorByWorkOrder(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function getCategory() {\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n\r\n\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Approve'\r\n }\r\n }\r\n WorkApprovalService.getAllCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n\r\n }\r\n\r\n function getSubcategoryByCategory() {\r\n if (vm.gallery.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedCategory) {\r\n Arr.push(vm.gallery.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n CategoryId: vm.Category,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n CategoryId: vm.Category,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n CategoryId: vm.Category,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Approve'\r\n }\r\n }\r\n WorkApprovalService.getAllSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getTypeofCABySubCategory() {\r\n if (vm.gallery.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedSubCategory) {\r\n Arr.push(vm.gallery.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategoryId = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SubCategoryId: vm.SubCategoryId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SubCategoryId: vm.SubCategoryId,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n SubCategoryId: vm.SubCategoryId,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Approve'\r\n }\r\n }\r\n WorkApprovalService.getAllType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {}\r\n }\r\n\r\n\r\n function loadIocaList() {\r\n if (vm.gallery.selectedTypeOfCA.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedTypeOfCA) {\r\n Arr.push(vm.gallery.selectedTypeOfCA[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SpecType: vm.gallery.selectedSpecType.Code,\r\n TypeId: vm.TypeId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SpecType: vm.gallery.selectedSpecType.Code,\r\n TypeId: vm.TypeId,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n SpecType: vm.gallery.selectedSpecType.Code,\r\n TypeId: vm.TypeId,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Approve'\r\n }\r\n }\r\n WorkApprovalService.getAllIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getlocation() {\r\n // debugger;\r\n // if (vm.gallery.selectedIOCA.length > 0) {\r\n // var Arr = [];\r\n // for (var i in vm.gallery.selectedIOCA) {\r\n // Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n // }\r\n // vm.IocaId = Arr.join();\r\n // }\r\n\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n vm.isLoading = true;\r\n /* var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();*/\r\n\r\n if (vm.gallery.selectedIOCA.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n WorkApprovalService.getAllLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n vm.isLoading = true;\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n WorkApprovalService.getAllLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n vm.isLoading = true;\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n if (vm.gallery.selectedIOCA.length > 0) {\r\n WorkApprovalService.getAllLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function getLocationByProject() {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n $rootScope.showToaster('info', 'There is no work Location available selected Project', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n }\r\n\r\n function getTiersByLocation(LocationId, ProjectId, callback) {\r\n vm.isLoading = true;\r\n if (LocationId && ProjectId) {\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.gallery.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n isEdit: 0\r\n }\r\n\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Approve'\r\n }\r\n }\r\n\r\n WorkApprovalService.GetAllTiers(obj).then(function(res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n vm.isLoading = false;\r\n }\r\n vm.isLoading = false;\r\n }\r\n\r\n\r\n // set maximum tier for selection by the give tier \r\n function filterTiers(tier) {\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.LastTierId = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 2) {\r\n getCategory();\r\n }\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function filterTiersByParent(tier) {\r\n if (tier.selectedtireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.filteredTierList, function(t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedtireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.CopyTierList) {\r\n // if (vm.CopyTierList[i].selectedtireValue) {\r\n // vm.Arr.filter[vm.CopyTierList[i].TierName] = vm.CopyTierList[i].selectedtireValue.TierId\r\n // }\r\n // } \r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n // getToTiers(tier);\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.filteredTierList, function(tier) {\r\n tier.selectedtierValue = null;\r\n\r\n })\r\n }\r\n\r\n function getToTiers(tier) {\r\n vm.lastTierIdList = '';\r\n // get max tier\r\n var maxTier = _.maxBy(vm.rawTierListData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n }).TierName;\r\n\r\n if (tier.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(tier.selectedtireValue, 'TierId').join(',');\r\n } else {\r\n var currentTier = tier;\r\n var selectedTierList = tier.selectedtireValue;\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n if (t.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(selectedTierList, 'TierId').join(',');\r\n } else {\r\n if (getTierNo(t.TierName) >= getTierNo(tier.TierName)) {\r\n var parentIdList = lodash.map(selectedTierList, 'TierId');\r\n var nextTier = lodash.find(vm.rawTierListData, { 'TierName': 'Tier' + (getTierNo(t.TierName) + 1) })\r\n selectedTierList = lodash.filter(nextTier.Values, function(v) {\r\n return lodash.includes(parentIdList, v.ParentId);\r\n })\r\n }\r\n }\r\n })\r\n }\r\n vm.Lastid = tier.selectedtireValue.TierId\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.Lastid)\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n vm.selectedImage = function(row) {\r\n row.imagePathList = [];\r\n if (row.isCheck) {\r\n for (var i in row.Files.FileName) {\r\n row.imagePathList.push('UploadedDocuments/ApprovalDocs/' + row.Files.FileName[i].fileName)\r\n }\r\n } else\r\n row.imagePathList = [];\r\n\r\n var Arr = lodash.filter(vm.MediaList, function(f) {\r\n return (f.isCheck == true)\r\n })\r\n if (Arr.length > 0) {\r\n vm.isAttachmentChk = true\r\n } else {\r\n vm.isAttachmentChk = false\r\n }\r\n\r\n // if(row.imagePathList.length > 0)\r\n // vm.AttachBtn=false;\r\n }\r\n\r\n function AttachFile() {\r\n debugger;\r\n var AttchmentList = [];\r\n\r\n for (var i in vm.MediaList) {\r\n if (vm.MediaList[i].isCheck) {\r\n for (var j in vm.MediaList[i].imagePathList) {\r\n AttchmentList.push(vm.MediaList[i].imagePathList[j])\r\n }\r\n }\r\n }\r\n\r\n for (var i in AttchmentList) {\r\n var obj = {\r\n path: AttchmentList[i]\r\n }\r\n vm.ajaxFlagSync = false;\r\n //loggedUser.KpostId = 'hopgchecvlq01'\r\n WorkApprovalService.getFileFromPath(obj).then(function(res) {\r\n if (res.status === 200) {\r\n var imageUploadkpost = $rootScope.dataURItoBlob('data:image/jpeg;charset=utf-8;base64,' + res.data);\r\n $rootScope.fileUpload(imageUploadkpost, loggedUser.KpostId, 'CMS_KPOST_SentImages', function() {\r\n if ($rootScope.path != undefined && $rootScope.path != null) {\r\n vm.fileList.push($rootScope.path);\r\n if (vm.fileList.length <= 0) {\r\n vm.shareBtn = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Attach File\");\r\n }\r\n }\r\n });\r\n $rootScope.showToaster('success', 'File Attached Successfully', \"Attach File\");\r\n AttchmentList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Attach File\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Attach File\");\r\n });\r\n vm.ajaxFlagSync = true;\r\n setTimeout(4000);\r\n }\r\n }\r\n\r\n\r\n function shareKpost() {\r\n var obj = {\r\n KpostId: loggedUser.KpostId,\r\n File: vm.fileList\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/KPostBox/showContactByUser/showContactByUser.html',\r\n controller: 'ShowContactCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(res) {\r\n\r\n }, function() {});\r\n }\r\n\r\n\r\n\r\n function waitFunction() {\r\n if (vm.ajaxFlagSync == false) {\r\n setTimeout(waitFunction(), 1000);\r\n\r\n }\r\n };\r\n // function getReportType() {\r\n // vm.ReportType = [];\r\n // for (var i in vm.tierList) {\r\n // var obj = {\r\n // TierName: vm.tierList[i].TierName\r\n // }\r\n // vm.ReportType.push(obj)\r\n // }\r\n // }\r\n\r\n function ViewMedia() {\r\n vm.viewDetail = false;\r\n vm.isLoading = true;\r\n vm.imagePathList = [];\r\n if (vm.gallery.selectedsearch.SearchId === 1 || vm.gallery.selectedsearch.SearchId === 2) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n LocationId: vm.gallery.selectedLocation.LocationId,\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n LastTierId: vm.LastTierId,\r\n ApprovalStatus: 1\r\n\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n LocationId: vm.gallery.selectedLocation.LocationId,\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n Ioca_Id: vm.IocaId,\r\n LastTierId: vm.LastTierId,\r\n ApprovalStatus: 1\r\n }\r\n }\r\n\r\n WorkApprovalService.GetAllMediaList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.MediaList = res.data;\r\n if (vm.MediaList.length < 1) {\r\n dialogs.notify('Warning', 'No Image is available for ' + vm.gallery.selectedLocation.BasicLocation, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n console.log(vm.MediaList);\r\n for (var i in vm.MediaList) {\r\n vm.MediaList[i].imagePathList = [];\r\n vm.MediaList[i].Dim = JSON.parse(vm.MediaList[i].Dimentions)\r\n vm.MediaList[i].Files = JSON.parse(vm.MediaList[i].MediaList);\r\n\r\n var unit = 1;\r\n lodash.forIn(vm.MediaList[i].Dim.DimValues, function(value, key) {\r\n unit *= value;\r\n });\r\n if (vm.MediaList[i].ActivityCount)\r\n vm.MediaList[i].ActualTotQty = (vm.MediaList[i].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.MediaList[i].ActualTotQty = unit.toFixed(2);\r\n\r\n var FileList = [];\r\n lodash.forEach(vm.MediaList[i].Files.FileName, function(e) {\r\n FileList.push({\r\n fileName: e,\r\n extension: e.split('.').pop().toLowerCase()\r\n })\r\n })\r\n vm.MediaList[i].Files.FileName = angular.copy(FileList);\r\n }\r\n\r\n for (var i in vm.MediaList) {\r\n for (var j in vm.MonthList) {\r\n if (getMonth(vm.MediaList[i].ActionOn) == vm.MonthList[j].Id) {\r\n vm.MediaList[i].Month = vm.MonthList[j].MonthName;\r\n }\r\n }\r\n vm.MediaList[i].Year = new Date(vm.MediaList[i].ActionOn).getFullYear();\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n function getMonth(date) {\r\n var m = new Date(date)\r\n\r\n return m.getMonth() + 1\r\n }\r\n\r\n vm.MonthList = [{ \"Id\": 1, \"MonthName\": \"January\" }, { \"Id\": 2, \"MonthName\": \"February\" },\r\n { \"Id\": 3, \"MonthName\": \"March\" }, { \"Id\": 4, \"MonthName\": \"April\" }, { \"Id\": 5, \"MonthName\": \"May\" }, { \"Id\": 6, \"MonthName\": \"June\" }, { \"Id\": 7, \"MonthName\": \"July\" }, { \"Id\": 8, \"MonthName\": \"August\" }, { \"Id\": 9, \"MonthName\": \"September\" }, { \"Id\": 10, \"MonthName\": \"October\" }, , { \"Id\": 11, \"MonthName\": \"November\" }, { \"Id\": 12, \"MonthName\": \"December\" }\r\n ]\r\n\r\n $scope._Index = 0;\r\n // if a current image is the same as requested image\r\n $scope.isActive = function(index) {\r\n return $scope._Index === index;\r\n };\r\n // show prev image\r\n $scope.showPrev = function(file) {\r\n $scope._Index = ($scope._Index > 0) ? --$scope._Index : file.length - 1;\r\n };\r\n // show next image\r\n $scope.showNext = function(file) {\r\n $scope._Index = ($scope._Index < file.length - 1) ? ++$scope._Index : 0;\r\n };\r\n // show a certain image\r\n $scope.showPhoto = function(index) {\r\n $scope._Index = index;\r\n };\r\n\r\n function clearSelection() {\r\n clearfoc();\r\n clearTierSelection();\r\n vm.estimationreport.selectedProject = null;\r\n vm.estimationreport.selectedEstimationFrom = null;\r\n vm.estimationreport.selectedestreport = null;\r\n vm.estimationreport.selecteddesc = null;\r\n vm.estimationreport.selectedestimation = null;\r\n vm.estimationreport.selectedRate = null;\r\n vm.estimationreport.selectedtoq = null;\r\n vm.estimationreport.selectedmethod = null;\r\n vm.estimationreport.Tier = null;\r\n }\r\n\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.estimationreport.selectedIOCA = null;\r\n\r\n }\r\n\r\n function clearType() {\r\n vm.TypeList = [];\r\n vm.estimationreport.selectedTypeOfCA = [];\r\n vm.estimationreport.selectedSpecType = null;\r\n clearioca();\r\n }\r\n\r\n function clearSubcategory() {\r\n vm.SubCategoryList = [];\r\n vm.estimationreport.selectedSubCategory = [];\r\n clearType();\r\n }\r\n\r\n function clearCategory() {\r\n vm.CategoryList = [];\r\n vm.estimationreport.selectedCategory = [];\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearCountry() {\r\n // vm.CountryList = [];\r\n // vm.estimationreport.selectedCountry = null;\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearfoc() {\r\n vm.focList = [];\r\n vm.estimationreport.selectedFOC = null;\r\n clearCountry();\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearLocation() {\r\n vm.LocationMaster = [];\r\n vm.estimationreport.selectedLocation = null;\r\n clearTierSelection();\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.tierList, function(tier) {\r\n tier.selectedTierValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n\r\n vm.resetForm = function() {\r\n vm.estimationreportform.$setUntouched();\r\n }\r\n\r\n function cancel() {\r\n vm.gallery.selectedCompany = null;\r\n vm.gallery.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.gallery.selectedsearch = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n }\r\n\r\n\r\n vm.today = function() {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n\r\n\r\n vm.maxDateFun = function() {\r\n vm.maxd = new Date();\r\n //\r\n vm.maxd.setDate(vm.maxd.getDate() - 1);\r\n };\r\n\r\n vm.maxDateFun();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2016, 1, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n\r\n startingDay: 1\r\n };\r\n\r\n\r\n\r\n vm.setMinEndDate = function() {\r\n vm.endDtOpt.minDate = vm.emp.DOB;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n // vm.toggleMin = function () {\r\n // vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n // vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n // };\r\n\r\n // vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n //var today = vm.dt;\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n };\r\n\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n\r\n var lastdate = new Date();\r\n lastdate.setDate(lastdate.getDate() + 1);\r\n var beforeToday = new Date();\r\n beforeToday.setDate(lastdate.getDate() + 1);\r\n vm.events = [{\r\n date: lastdate,\r\n status: 'full'\r\n }, {\r\n date: beforeToday,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n vm.check = function(row) {\r\n debugger\r\n vm.Arr = [];\r\n vm.strObj = row;\r\n console.log(vm.strObj);\r\n vm.viewDetail = true;\r\n row.ActDim = JSON.parse(row.Dimentions);\r\n vm.Arr.push(row);\r\n ////////showing error toaster for invalid image format\r\n // for (var i in row.Files.FileName) {\r\n // if (row.Files.FileName[i].extension !== 'jpg' || row.Files.FileName[i].extension !== 'jpeg' || row.Files.FileName[i].extension !== 'png') {\r\n // $rootScope.showToaster('error', 'Invalid Image Format');\r\n // }\r\n // }\r\n }\r\n\r\n\r\n vm.OpenModal = function(row) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/Gallery/DetailsofBOQ.html',\r\n controller: 'DetailsofBOQCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n windowClass: 'my-modal',\r\n resolve: {\r\n A: function() {\r\n return row\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n\r\n vm.cancel = function() {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('DefectWorkGalleryCtrl', DefectWorkGalleryCtrl);\r\n\r\n /** @ngInject */\r\n\r\n function DefectWorkGalleryCtrl($filter, $scope, $rootScope, lodash, dialogs, $uibModal, $http, TypeOfCAService, $location, $anchorScroll, TierSetupService, estimationReportaService,\r\n CategoryofCAService, SubCategoryofCAService, AuthenticationService, CountryService, IocaService, LocationSetupService, CompanyService, projectCreationService, WorkApprovalService,\r\n ProjectIocaService, BillOfQuntityService, $window, ItemToItemService) {\r\n\r\n // function EstimationReportCtrl($scope, $rootScope, lodash, dialogs, $http, TypeOfCAService, TierSetupService, estimationReportaService, CategoryofCAService, SubCategoryofCAService, AuthenticationService, CountryService, IocaService, LocationSetupService, CompanyService, projectCreationService, ProjectIocaService, BillOfQuntityService) {\r\n\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n vm.EstimationReportList = [];\r\n vm.DescriptionList = [];\r\n vm.EstimationList = [];\r\n vm.CategoryList = [];\r\n vm.TypeList = [];\r\n vm.SubCategoryList = [];\r\n vm.IocaList = [];\r\n vm.toqList = [];\r\n vm.Showcate = true;\r\n vm.MethodList = [];\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getTiersByLocation = getTiersByLocation;\r\n vm.getLocationByProject = getLocationByProject;\r\n // vm.getCountryByProject = getCountryByProject;\r\n vm.getCategory = getCategory;\r\n vm.getSubcategoryByCategory = getSubcategoryByCategory;\r\n vm.getTypeofCABySubCategory = getTypeofCABySubCategory;\r\n vm.getlocation = getlocation;\r\n vm.filterTiers = filterTiers;\r\n vm.filterTiersByParent = filterTiersByParent;\r\n vm.getToTiers = getToTiers;\r\n vm.getContractorByCategory = getContractorByCategory;\r\n vm.ViewMedia = ViewMedia;\r\n vm.loadIocaList = loadIocaList;\r\n vm.SearchBy = SearchBy;\r\n\r\n vm.cancel = cancel;\r\n // vm.getTierNo = getTierNo;\r\n // vm.FilterTireCopyTo = FilterTireCopyTo;\r\n vm.costructionactivity = false;\r\n vm.locationwork = false;\r\n\r\n // vm.getReportType = getReportType;\r\n var tier = {};\r\n\r\n vm.gallery = {};\r\n\r\n\r\n\r\n vm.filter = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n\r\n function Attribute() {\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n }\r\n\r\n\r\n\r\n ////////////////////\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n\r\n\r\n vm.SearchByList = [{\r\n SearchId: 1,\r\n SearchtbasedOn: \"Construction Activity\"\r\n },\r\n {\r\n SearchId: 2,\r\n SearchtbasedOn: \"Location\"\r\n }, {\r\n SearchId: 3,\r\n SearchtbasedOn: \"Contractor\"\r\n }\r\n\r\n ];\r\n Attribute();\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n vm.gallery.selectedsearch = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n var obj = {\r\n CompanyId: CompanyId,\r\n TypeOfWork: 'Defect'\r\n }\r\n WorkApprovalService.getAllProject(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n vm.gallery.selectedsearch = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n }\r\n\r\n\r\n }\r\n\r\n function SearchBy(SearchId) {\r\n debugger;\r\n if (SearchId === 1) {\r\n vm.gallery.selectedCategory = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.gallery.selectedSubCategory = [];\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n getCategory();\r\n\r\n } else if (SearchId === 2) {\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.gallery.selectedSubCategory = [];\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.MediaList = [];\r\n getlocation();\r\n } else if (SearchId === 3) {\r\n vm.gallery.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.gallery.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.gallery.selectedSubCategory = [];\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n getCategoryForPrjContractor(vm.gallery.selectedProject.ProjectId)\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function getContractorByCategory(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId\r\n }\r\n WorkApprovalService.GetContractorByWorkOrder(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function getCategory() {\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Defect'\r\n }\r\n }\r\n WorkApprovalService.getAllCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n\r\n }\r\n\r\n function getSubcategoryByCategory() {\r\n if (vm.gallery.selectedCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedCategory) {\r\n Arr.push(vm.gallery.selectedCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n CategoryId: vm.Category,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n CategoryId: vm.Category,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n CategoryId: vm.Category,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Defect'\r\n }\r\n }\r\n WorkApprovalService.getAllSubCategory(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getTypeofCABySubCategory() {\r\n if (vm.gallery.selectedSubCategory.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedSubCategory) {\r\n Arr.push(vm.gallery.selectedSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategoryId = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SubCategoryId: vm.SubCategoryId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SubCategoryId: vm.SubCategoryId,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n SubCategoryId: vm.SubCategoryId,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Defect'\r\n }\r\n }\r\n WorkApprovalService.getAllType(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type of CA\");\r\n });\r\n } else {}\r\n }\r\n\r\n\r\n function loadIocaList() {\r\n if (vm.gallery.selectedTypeOfCA.length > 0) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedTypeOfCA) {\r\n Arr.push(vm.gallery.selectedTypeOfCA[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SpecType: vm.gallery.selectedSpecType.Code,\r\n TypeId: vm.TypeId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n SpecType: vm.gallery.selectedSpecType.Code,\r\n TypeId: vm.TypeId,\r\n LastTierId: vm.LastTierId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n SpecType: vm.gallery.selectedSpecType.Code,\r\n TypeId: vm.TypeId,\r\n FilterBy: 'Contractor',\r\n TypeOfWork: 'Defect'\r\n }\r\n }\r\n WorkApprovalService.getAllIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IocaList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory of CA\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getlocation() {\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n }\r\n WorkApprovalService.getAllLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n function getLocationByProject() {\r\n var obj = {\r\n ProjectId: vm.gallery.selectedProject.ProjectId\r\n }\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationMaster = res.data;\r\n if (!vm.LocationMaster.length > 0) {\r\n $rootScope.showToaster('info', 'There is no work Location available selected Project', \"No Data\");\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location Master\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n }\r\n\r\n function getTiersByLocation(LocationId, ProjectId, callback) {\r\n if (LocationId && ProjectId) {\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.gallery.selectedLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n isEdit: 0\r\n }\r\n\r\n if (vm.gallery.selectedsearch.SearchId === 1) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 2) {\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n FilterBy: 'Locwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n LocationId: LocationId,\r\n ProjectId: ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n FilterBy: 'Itemwise',\r\n TypeOfWork: 'Defect'\r\n }\r\n }\r\n\r\n WorkApprovalService.GetAllTiers(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {}\r\n }\r\n\r\n\r\n // set maximum tier for selection by the give tier \r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.workOrderIocaList, {\r\n // 'IOCA_Id': vm.selectedWoIOCA.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // return t2.TierId === t1.TierId;\r\n // });\r\n // })\r\n // }\r\n // }\r\n // }\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.LastTierId = Arr.join();\r\n if (vm.gallery.selectedsearch.SearchId === 2) {\r\n getCategory();\r\n }\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function filterTiersByParent(tier) {\r\n if (tier.selectedtireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.filteredTierList, function(t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedtireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n // vm.Arr = {\r\n // filter: {}\r\n // }\r\n // for (var i in vm.CopyTierList) {\r\n // if (vm.CopyTierList[i].selectedtireValue) {\r\n // vm.Arr.filter[vm.CopyTierList[i].TierName] = vm.CopyTierList[i].selectedtireValue.TierId\r\n // }\r\n // } \r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n // getToTiers(tier);\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.filteredTierList, function(tier) {\r\n tier.selectedtierValue = null;\r\n\r\n })\r\n }\r\n\r\n function getToTiers(tier) {\r\n debugger;\r\n vm.lastTierIdList = '';\r\n // get max tier\r\n var maxTier = _.maxBy(vm.rawTierListData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n }).TierName;\r\n\r\n if (tier.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(tier.selectedtireValue, 'TierId').join(',');\r\n } else {\r\n var currentTier = tier;\r\n var selectedTierList = tier.selectedtireValue;\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n if (t.TierName === maxTier) {\r\n vm.lastTierIdList = lodash.map(selectedTierList, 'TierId').join(',');\r\n } else {\r\n if (getTierNo(t.TierName) >= getTierNo(tier.TierName)) {\r\n var parentIdList = lodash.map(selectedTierList, 'TierId');\r\n var nextTier = lodash.find(vm.rawTierListData, { 'TierName': 'Tier' + (getTierNo(t.TierName) + 1) })\r\n selectedTierList = lodash.filter(nextTier.Values, function(v) {\r\n return lodash.includes(parentIdList, v.ParentId);\r\n })\r\n }\r\n }\r\n })\r\n }\r\n vm.Lastid = tier.selectedtireValue.TierId\r\n GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.Lastid)\r\n // getFinalisedBOQForSchedule(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId);\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n\r\n // function getReportType() {\r\n // vm.ReportType = [];\r\n // for (var i in vm.tierList) {\r\n // var obj = {\r\n // TierName: vm.tierList[i].TierName\r\n // }\r\n // vm.ReportType.push(obj)\r\n // }\r\n // }\r\n\r\n function ViewMedia() {\r\n debugger;\r\n if (vm.gallery.selectedsearch.SearchId === 1 || vm.gallery.selectedsearch.SearchId === 2) {\r\n var Arr = [];\r\n for (var i in vm.gallery.selectedIOCA) {\r\n Arr.push(vm.gallery.selectedIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n LocationId: vm.gallery.selectedLocation.LocationId,\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n Ioca_Id: vm.IocaId,\r\n LastTierId: vm.LastTierId,\r\n ApprovalStatus: 2\r\n\r\n }\r\n } else if (vm.gallery.selectedsearch.SearchId === 3) {\r\n var obj = {\r\n LocationId: vm.gallery.selectedLocation.LocationId,\r\n ProjectId: vm.gallery.selectedProject.ProjectId,\r\n ContractorId: vm.gallery.selectedContractor.ContractorId,\r\n Ioca_Id: vm.IocaId,\r\n LastTierId: vm.LastTierId,\r\n ApprovalStatus: 2\r\n }\r\n }\r\n WorkApprovalService.GetAllMediaList(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MediaList = res.data;\r\n if (vm.MediaList.length < 1) {\r\n dialogs.notify('Warning', 'No Image is available for ' + vm.gallery.selectedLocation.BasicLocation, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n for (var i in vm.MediaList) {\r\n vm.MediaList[i].Dim = JSON.parse(vm.MediaList[i].Dimentions)\r\n vm.MediaList[i].Files = JSON.parse(vm.MediaList[i].MediaList);\r\n var unit = 1;\r\n lodash.forIn(vm.MediaList[i].Dim.DimValues, function(value, key) {\r\n unit *= value;\r\n });\r\n if (vm.MediaList[i].ActivityCount)\r\n vm.MediaList[i].ActualTotQty = (vm.MediaList[i].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.MediaList[i].ActualTotQty = unit.toFixed(2);\r\n\r\n var FileList = [];\r\n lodash.forEach(vm.MediaList[i].Files.FileName, function(e) {\r\n FileList.push({\r\n fileName: e,\r\n extension: e.split('.').pop().toLowerCase()\r\n })\r\n })\r\n vm.MediaList[i].Files.FileName = angular.copy(FileList);\r\n }\r\n\r\n\r\n for (var i in vm.MediaList) {\r\n for (var j in vm.MonthList) {\r\n if (getMonth(vm.MediaList[i].ActionOn) == vm.MonthList[j].Id) {\r\n vm.MediaList[i].Month = vm.MonthList[j].MonthName\r\n }\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category of CA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category of CA\");\r\n });\r\n }\r\n\r\n function getMonth(date) {\r\n var m = new Date(date)\r\n\r\n return m.getMonth() + 1\r\n }\r\n\r\n vm.MonthList = [{ \"Id\": 1, \"MonthName\": \"January\" }, { \"Id\": 2, \"MonthName\": \"February\" },\r\n { \"Id\": 3, \"MonthName\": \"March\" }, { \"Id\": 4, \"MonthName\": \"April\" }, { \"Id\": 5, \"MonthName\": \"May\" }, { \"Id\": 6, \"MonthName\": \"June\" }, { \"Id\": 7, \"MonthName\": \"July\" }, { \"Id\": 8, \"MonthName\": \"August\" }, { \"Id\": 9, \"MonthName\": \"September\" }, { \"Id\": 10, \"MonthName\": \"October\" }, , { \"Id\": 11, \"MonthName\": \"November\" }, { \"Id\": 12, \"MonthName\": \"December\" }\r\n ]\r\n\r\n $scope._Index = 0;\r\n // if a current image is the same as requested image\r\n $scope.isActive = function(index) {\r\n return $scope._Index === index;\r\n };\r\n // show prev image\r\n $scope.showPrev = function(file) {\r\n $scope._Index = ($scope._Index > 0) ? --$scope._Index : file.length - 1;\r\n };\r\n // show next image\r\n $scope.showNext = function(file) {\r\n $scope._Index = ($scope._Index < file.length - 1) ? ++$scope._Index : 0;\r\n };\r\n // show a certain image\r\n $scope.showPhoto = function(index) {\r\n $scope._Index = index;\r\n };\r\n\r\n function clearSelection() {\r\n clearfoc();\r\n clearTierSelection();\r\n vm.estimationreport.selectedProject = null;\r\n vm.estimationreport.selectedEstimationFrom = null;\r\n vm.estimationreport.selectedestreport = null;\r\n vm.estimationreport.selecteddesc = null;\r\n vm.estimationreport.selectedestimation = null;\r\n vm.estimationreport.selectedRate = null;\r\n vm.estimationreport.selectedtoq = null;\r\n vm.estimationreport.selectedmethod = null;\r\n vm.estimationreport.Tier = null;\r\n }\r\n\r\n function clearioca() {\r\n vm.IocaList = [];\r\n vm.estimationreport.selectedIOCA = null;\r\n\r\n }\r\n\r\n function clearType() {\r\n vm.TypeList = [];\r\n vm.estimationreport.selectedTypeOfCA = [];\r\n vm.estimationreport.selectedSpecType = null;\r\n clearioca();\r\n }\r\n\r\n function clearSubcategory() {\r\n vm.SubCategoryList = [];\r\n vm.estimationreport.selectedSubCategory = [];\r\n clearType();\r\n }\r\n\r\n function clearCategory() {\r\n vm.CategoryList = [];\r\n vm.estimationreport.selectedCategory = [];\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearCountry() {\r\n // vm.CountryList = [];\r\n // vm.estimationreport.selectedCountry = null;\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearfoc() {\r\n vm.focList = [];\r\n vm.estimationreport.selectedFOC = null;\r\n clearCountry();\r\n clearCategory();\r\n clearSubcategory();\r\n clearType();\r\n }\r\n\r\n function clearLocation() {\r\n vm.LocationMaster = [];\r\n vm.estimationreport.selectedLocation = null;\r\n clearTierSelection();\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.tierList, function(tier) {\r\n tier.selectedTierValue = null;\r\n // IocaTier.selectedIocatireValue = [];\r\n })\r\n }\r\n\r\n vm.resetForm = function() {\r\n vm.estimationreportform.$setUntouched();\r\n }\r\n\r\n function cancel() {\r\n vm.gallery.selectedCompany = null;\r\n vm.gallery.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.gallery.selectedsearch = null;\r\n vm.gallery.selectedCategory = [];\r\n vm.gallery.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.gallery.selectedSubCategory = [];\r\n vm.gallery.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.gallery.selectedTypeOfCA = null;\r\n vm.gallery.selectedTypeOfCA = [];\r\n vm.TypeList = [];\r\n vm.gallery.selectedSpecType = null;\r\n vm.gallery.selectedIOCA = null;\r\n vm.gallery.selectedIOCA = [];\r\n vm.IocaList = [];\r\n vm.gallery.selectedLocation = null;\r\n vm.LocationMaster = [];\r\n vm.allTierData = [];\r\n vm.MediaList = [];\r\n }\r\n\r\n\r\n vm.today = function() {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n\r\n // Date Picker\r\n // Datepicker code \r\n vm.today = function() {\r\n vm.dt = new Date('2000-01-01');\r\n //\r\n vm.dt.setDate(vm.dt.getDate());\r\n };\r\n\r\n vm.today();\r\n\r\n\r\n vm.maxDateFun = function() {\r\n vm.maxd = new Date();\r\n //\r\n vm.maxd.setDate(vm.maxd.getDate() - 1);\r\n };\r\n\r\n vm.maxDateFun();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(2016, 1, 18),\r\n };\r\n\r\n vm.startDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n startingDay: 1\r\n };\r\n vm.endDtOpt = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: vm.maxd,\r\n minDate: vm.dt,\r\n\r\n startingDay: 1\r\n };\r\n\r\n\r\n\r\n vm.setMinEndDate = function() {\r\n vm.endDtOpt.minDate = vm.emp.DOB;\r\n }\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === '');\r\n }\r\n\r\n // vm.toggleMin = function () {\r\n // vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n // vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n // };\r\n\r\n // vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n //var today = vm.dt;\r\n var minAge = 18;\r\n\r\n vm.options = {\r\n maxDate: new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate())\r\n }\r\n };\r\n\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n\r\n var lastdate = new Date();\r\n lastdate.setDate(lastdate.getDate() + 1);\r\n var beforeToday = new Date();\r\n beforeToday.setDate(lastdate.getDate() + 1);\r\n vm.events = [{\r\n date: lastdate,\r\n status: 'full'\r\n }, {\r\n date: beforeToday,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n vm.check = function(row) {\r\n vm.Arr = [];\r\n vm.strObj = row;\r\n vm.viewDetail = true;\r\n row.ActDim = JSON.parse(row.Dimentions);\r\n vm.Arr.push(row);\r\n //////////showing toaster for invalid image format \r\n // for (var i in row.Files.FileName.length) {\r\n // if (row.Files.FileName[i].extension !== 'jpg' || row.Files.FileName[i].extension !== 'jpeg' || row.Files.FileName[i].extension !== 'png') {\r\n // $rootScope.showToaster('error', 'Invalid Image Format');\r\n // }\r\n // }\r\n }\r\n\r\n vm.OpenModal = function(row) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/WorkApproval/Gallery/DetailsofBOQ.html',\r\n controller: 'DetailsofBOQCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n windowClass: 'my-modal',\r\n resolve: {\r\n A: function() {\r\n return row\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n }\r\n\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('DetailsofBOQCtrl', DetailsofBOQCtrl);\r\n\r\n\r\n\r\n /** @ngInject */\r\n function DetailsofBOQCtrl($scope, $rootScope, $uibModalInstance, dialogs, $state) {\r\n var vm = this;\r\n\r\n vm.BOQimageList = $scope.$resolve.A;\r\n debugger;\r\n console.log(vm.BOQimageList);\r\n\r\n vm.cancel = function() {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n $scope.zoom = function(filename) {\r\n debugger;\r\n var file = filename;\r\n var modal = document.getElementById('myModal');\r\n\r\n // Get the image and insert it inside the modal - use its \"alt\" text as a caption\r\n var img = document.getElementById('view');\r\n var modalImg = document.getElementById(\"img1\");\r\n modal.style.display = \"block\";\r\n\r\n for (var i = 0; i < vm.BOQimageList.Files.FileName.length; i++) {\r\n if (vm.BOQimageList.Files.FileName[i] === file) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n modalImg.src = 'http://api.projectsoft.in/UploadedDocuments/ApprovalDocs/' + filename;\r\n }\r\n\r\n $scope.closeImage = function() {\r\n var modal = document.getElementById('myModal');\r\n modal.style.display = \"none\";\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workApproval')\r\n .controller('ViewHistoryCtrl', ViewHistoryCtrl);\r\n\r\n /** @ngInject */\r\n function ViewHistoryCtrl($scope, $filter, $http, $rootScope, items, WorkApprovalService, lodash, $uibModalInstance, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n Init()\r\n\r\n function Init() {\r\n debugger;\r\n WorkApprovalService.GetPowDefectHistory(items).then(function (res) {\r\n if (res.status === 200) {\r\n vm.DefectHistoryList = res.data;\r\n for (var i in vm.DefectHistoryList) {\r\n vm.DefectHistoryList[i].File = JSON.parse(vm.DefectHistoryList[i].ListOfMedia)\r\n }\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('CancellationofWOCtrl', CancellationofWOCtrl);\r\n\r\n /** @ngInject */\r\n function CancellationofWOCtrl($http, $filter, $scope, $rootScope, lodash, dialogs, AuthenticationService, projectCreationService,\r\n WorkOrderCancellationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n $rootScope.isLogin = false;\r\n vm.isAdding = false;\r\n vm.wo = {}\r\n // vm.TotalQty = false;\r\n // vm.BalanceQty = false;\r\n\r\n //Method\r\n vm.view = view\r\n vm.cancel = cancel\r\n vm.clear = clear\r\n vm.getApprovedWorkOrder = getApprovedWorkOrder\r\n vm.SaveWOCancel = SaveWOCancel\r\n vm.status = false;\r\n\r\n Init();\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n function Init() {\r\n\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n console.log(vm.ProjectList)\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n\r\n function getApprovedWorkOrder() {\r\n\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n WorkOrderCancellationService.GetApprovedWorkOrder(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderApprovedList = res.data;\r\n if (!vm.WorkOrderApprovedList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Work Order available for ' + vm.selectedProjectFilter.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n console.log(vm.WorkOrderApprovedList)\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"IOM\");\r\n }\r\n }, function(res) {\r\n dialogs.error('error', 'Error! Try Again', \"IOM\");\r\n })\r\n }\r\n\r\n function view(row) {\r\n\r\n vm.isFormOpen = true;\r\n vm.isLoading = true;\r\n vm.isTableOpen = false;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n ActionBy: logggedUser.UserId,\r\n WorkOrderId: row.WorkOrderId,\r\n RfqId: row.rfqId\r\n }\r\n vm.RfqId = row.rfqId\r\n vm.WorkOrderId = row.WorkOrderId\r\n WorkOrderCancellationService.GetWorkOrderByWoId(obj).then(function(res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.WorkOrderListById = res.data.GetWorkOrderByWoId;\r\n vm.ApprovedWODetails = res.data.ApprovedWODetails;\r\n console.log(vm.WorkOrderListById)\r\n console.log(vm.ApprovedWODetails)\r\n\r\n\r\n\r\n vm.wo.BoqForm = lodash.find(vm.WorkOrderListById).BoqForm;\r\n vm.wo.WoScope = lodash.find(vm.WorkOrderListById).WoScope;\r\n vm.wo.WoTempFor = lodash.find(vm.WorkOrderListById).WoTempFor;\r\n vm.wo.FoC = lodash.find(vm.WorkOrderListById).FoC;\r\n vm.wo.TypeOfBilling = lodash.find(vm.WorkOrderListById).TypeOfBilling;\r\n vm.TypeOfContract = lodash.find(vm.WorkOrderListById).TypeOfContract;\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id == vm.TypeOfContract) {\r\n vm.wo.TypeOfContract = vm.TypeofContractList[i].ContractName;\r\n }\r\n }\r\n vm.wo.WoTempName = lodash.find(vm.WorkOrderListById).WoTempName;\r\n vm.wo.WorkOrderNo = lodash.find(vm.WorkOrderListById).WorkOrderNo;\r\n vm.wo.TotnoItem = lodash.find(vm.WorkOrderListById).TotnoItem;\r\n vm.wo.ContractorName = lodash.find(vm.WorkOrderListById).ContractorName;\r\n vm.wo.WoDate = lodash.find(vm.WorkOrderListById).WoDate;\r\n vm.wo.QuatationNo = lodash.find(vm.WorkOrderListById).QuatationNo;\r\n vm.TableDetails = lodash.find(vm.WorkOrderListById).TableDetails\r\n vm.TCList = JSON.parse(vm.TableDetails)\r\n console.log(vm.TCList)\r\n for (var i in vm.ApprovedWODetails) {\r\n if (vm.ApprovedWODetails[i].BOQDetails != null || vm.ApprovedWODetails[i].BOQDetails != undefined) {\r\n if (vm.ApprovedWODetails[i].BOQDetails != '') {\r\n vm.ApprovedWODetails[i].BOQList = JSON.parse(vm.ApprovedWODetails[i].BOQDetails)\r\n for (var j in vm.ApprovedWODetails[i].BOQList) {\r\n if (vm.ApprovedWODetails[i].BOQList[j].BOQDetails != null || vm.ApprovedWODetails[i].BOQList[j].BOQDetails != undefined) {\r\n vm.ApprovedWODetails[i].BOQList[j].PowList = JSON.parse(vm.ApprovedWODetails[i].BOQList[j].BOQDetails)\r\n } else {\r\n vm.ApprovedWODetails[i].BOQList[j].PowList = [];\r\n }\r\n }\r\n }\r\n } else {\r\n vm.ApprovedWODetails[i].BOQList = [];\r\n }\r\n }\r\n\r\n console.log(vm.ApprovedWODetails);\r\n vm.isloading = false\r\n\r\n\r\n // for (var i in vm.ApprovedWODetails) {\r\n // if (vm.ApprovedWODetails[i].BOQDetails != null || vm.ApprovedWODetails[i].BOQDetails != undefined) {\r\n // vm.ApprovedWODetails[i].BOQList = JSON.parse(vm.ApprovedWODetails[i].BOQDetails)\r\n // vm.BOQList = vm.ApprovedWODetails[i].BOQList\r\n // console.log(vm.BOQList)\r\n // }\r\n // else {\r\n // vm.ApprovedWODetails[i].BOQList = \"\"\r\n // }\r\n // console.log(vm.ApprovedWODetails[i].BOQList)\r\n // for (var i in vm.BOQList) {\r\n // if (vm.BOQList[i].BOQDetails != null || vm.BOQList[i].BOQDetails != undefined) {\r\n // vm.BOQList[i].PowList = JSON.parse(vm.BOQList[i].BOQDetails)\r\n\r\n // }\r\n // else {\r\n // vm.BOQList[i].PowList = \"\"\r\n // }\r\n // }\r\n // console.log(vm.BOQList[i].PowList)\r\n // }\r\n\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"WO\");\r\n vm.isLoading = false;\r\n }\r\n },\r\n function(err) {\r\n dialogs.error('error', 'Error! Try Again', \"WO\");\r\n vm.isLoading = false;\r\n }\r\n );\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.isFormOpen = false;\r\n vm.wo = {};\r\n vm.ApprovedWODetails = [];\r\n });\r\n }\r\n\r\n function clear() {\r\n\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n Init();\r\n vm.wo = {}\r\n vm.ApprovedWODetails = [];\r\n\r\n }\r\n\r\n vm.selectAll = function(row) {\r\n row.Qty = false;\r\n debugger\r\n\r\n if (row.selectedRow == true) {\r\n row.Qty = true\r\n row.CancelTypeId = 1\r\n } else {\r\n row.Qty = false\r\n\r\n }\r\n }\r\n vm.Expandrow = function(row) {\r\n\r\n console.log(row);\r\n var BOQList = row.BOQList;\r\n console.log(BOQList)\r\n\r\n for (var i in BOQList) {\r\n BOQList[i].PowList = BOQList[i].PowList\r\n console.log(BOQList[i].PowList)\r\n for (var j in BOQList[i].PowList) {\r\n BOQList[i].IOCA_id == BOQList[i].PowList[j].IOCA_id\r\n BOQList[i].PowList[j].isSelectedPow = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n function SaveWOCancel() {\r\n\r\n debugger;\r\n vm.isLoading = true;\r\n var Arr = []\r\n debugger;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n for (var i in vm.ApprovedWODetails) {\r\n if (vm.ApprovedWODetails[i].selectedRow) {\r\n var temp = []\r\n for (var j in vm.ApprovedWODetails[i].BOQList) {\r\n for (var k in vm.ApprovedWODetails[i].BOQList[j].PowList) {\r\n temp.push({\r\n LastTierId: vm.ApprovedWODetails[i].BOQList[j].LasttierId,\r\n PowId: vm.ApprovedWODetails[i].BOQList[j].PowList[k].PowId\r\n })\r\n }\r\n }\r\n if (temp.length == 0) {\r\n Arr.push({\r\n Ioca_Id: vm.ApprovedWODetails[i].IOCA_id,\r\n CancelTypeId: vm.ApprovedWODetails[i].CancelTypeId,\r\n BOQ: [{}]\r\n })\r\n } else {\r\n Arr.push({\r\n Ioca_Id: vm.ApprovedWODetails[i].IOCA_id,\r\n CancelTypeId: vm.ApprovedWODetails[i].CancelTypeId,\r\n BOQ: temp\r\n })\r\n }\r\n }\r\n }\r\n var IOCACancelDetails = JSON.stringify(Arr)\r\n console.log(IOCACancelDetails)\r\n // console.log(Arr)\r\n // var arr = {\r\n // IOCA_id: vm.IOCA_id,\r\n // CancelTypeId: vm.CancelTypeId\r\n // }\r\n // var arr1 = {\r\n // LastTierId: vm.LastTierId,\r\n // PowId: vm.PowId\r\n // }\r\n // var arr2 = [];\r\n // var arr3 = [];\r\n // arr2.push(arr1);\r\n // var BOQ = JSON.stringify(arr2)\r\n // var arr4 = {\r\n // BOQ: BOQ\r\n // }\r\n // arr3.push(arr, arr4)\r\n // console.log(arr3)\r\n // var IOCACancelDetails = JSON.stringify(arr3)\r\n console.log(IOCACancelDetails)\r\n var obj = {\r\n ProjectId: vm.selectedProjectFilter.ProjectId,\r\n RfqId: vm.RfqId,\r\n WorkOrderId: vm.WorkOrderId,\r\n ActionBy: logggedUser.UserId,\r\n IOCACancelDetails: IOCACancelDetails,\r\n\r\n }\r\n console.log(obj)\r\n WorkOrderCancellationService.SaveWoCancel(obj).then(function(res) {\r\n vm.isLoading = false;\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n $rootScope.showToaster('success', res.data.Message, \"WO-Cancellation\");\r\n Init();\r\n vm.isFormOpen = false;\r\n clear();\r\n } else {\r\n $rootScope.showToaster('warning', res.data.Message, \"WO-Cancellation\");\r\n vm.isFormOpen = true;\r\n vm.isLoading = false;\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n vm.changeStatus = function() {\r\n vm.status = !vm.status;\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('AmendmentStatusNotesCtrl', AmendmentStatusNotesCtrl);\r\n\r\n /** @ngInject */\r\n function AmendmentStatusNotesCtrl($rootScope, items, $state, $uibModalInstance, AmendmentWOService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n\r\n vm.wo = items\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n\r\n vm.Save = function () {\r\n var obj = {\r\n RfqId: vm.wo.RfqId,\r\n AmendmentStatus: vm.wo.AmendmentStatus,\r\n Notes: vm.wo.Notes,\r\n isDraft: vm.wo.isDraft,\r\n ActionBy: vm.wo.ActionBy\r\n }\r\n AmendmentWOService.UpdateWOStatus(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Amendment WorkOrder\");\r\n $state.go($rootScope.previousState);\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Amendment WorkOrder\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n\r\n $uibModalInstance.close(vm.wo.PowList);\r\n }\r\n\r\n vm.Cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('AmendmentofWOCtrl', AmendmentofWOCtrl);\r\n\r\n /** @ngInject */\r\n function AmendmentofWOCtrl($rootScope, $state, AuthenticationService, CompanyService, AmendmentWOService, projectCreationService, lodash, dialogs, $uibModal) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isPowCheck = false;\r\n vm.wo = {};\r\n\r\n vm.getProjectByCompany = getProjectByCompany\r\n vm.GetAllApprovedWO = GetAllApprovedWO\r\n vm.ViewWO = ViewWO\r\n vm.updateWOStatus = updateWOStatus\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init()\r\n\r\n if ($state.params.data != undefined) {\r\n vm.wo = angular.copy($state.params.data.wo)\r\n vm.ViewWO(vm.wo)\r\n }\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n vm.BoQTypeList = [{\r\n Status: 'Draft Boq',\r\n id: 1\r\n }, {\r\n Status: 'Manual Entry',\r\n id: 3\r\n }, {\r\n Status: 'Finalized boq',\r\n id: 4\r\n }];\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contract',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TemplateRfqList = [{\r\n TemplatelistName: 'Field of Construction',\r\n TempId: 1\r\n }, {\r\n TemplatelistName: 'Category of CA',\r\n TempId: 2\r\n }, {\r\n TemplatelistName: 'SubCategory of CA',\r\n TempId: 3\r\n }]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'FortNight',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n }, {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n\r\n }\r\n\r\n function getProjectByCompany(CompanyId, callback) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.wo.selectedProject = null;\r\n }\r\n }\r\n\r\n function GetAllApprovedWO(projectId) {\r\n var obj = {\r\n ProjectId: projectId,\r\n Status: 0\r\n }\r\n vm.isLoading = true;\r\n AmendmentWOService.GetAllApprovedWO(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.WorkOrderList = res.data\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There Is No Approved Work Order For Selected Project\", { animation: true, size: 'sm' });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function GetAllWorkOrderIocaDtls(rfqId, ContractorId, callback) {\r\n var obj = {\r\n RfqId: rfqId,\r\n ContractorId: ContractorId\r\n }\r\n AmendmentWOService.GetAllWorkOrderIocaDtls(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.IOCAList = res.data\r\n ///////////\r\n for (var i in vm.IOCAList) {\r\n if (vm.IOCAList[i].CompletedWork != 0 && vm.IOCAList[i].BalWork != 0 && vm.IOCAList[i].TotQty != 0) {\r\n vm.IOCAList[i].AmendmentTypeList = [{ Id: 5, AdementType: \"Total Qty-All\" }, { Id: 6, AdementType: \"Total Qty-Partial\" }, { Id: 1, AdementType: \"Completed Qty-All\" }, { Id: 2, AdementType: \"Completed Qty-Partial\" }, { Id: 3, AdementType: \"Balance Qty-All\" }, { Id: 4, AdementType: \"Balance Qty-Partial\" }]\r\n } else if (vm.IOCAList[i].CompletedWork != 0 && vm.IOCAList[i].TotQty != 0) {\r\n vm.IOCAList[i].AmendmentTypeList = [{ Id: 5, AdementType: \"Total Qty-All\" }, { Id: 6, AdementType: \"Total Qty-Partial\" }, { Id: 1, AdementType: \"Completed Qty-All\" }, { Id: 2, AdementType: \"Completed Qty-Partial\" }]\r\n } else if (vm.IOCAList[i].CompletedWork != 0) {\r\n vm.IOCAList[i].AmendmentTypeList = [{ Id: 1, AdementType: \"Completed Qty-All\" }, { Id: 2, AdementType: \"Completed Qty-Partial\" }]\r\n } else if (vm.IOCAList[i].BalWork != 0 && vm.IOCAList[i].TotQty != 0) {\r\n vm.IOCAList[i].AmendmentTypeList = [{ Id: 5, AdementType: \"Total Qty-All\" }, { Id: 6, AdementType: \"Total Qty-Partial\" }, { Id: 3, AdementType: \"Balance Qty-All\" }, { Id: 4, AdementType: \"Balance Qty-Partial\" }]\r\n } else if (vm.IOCAList[i].BalWork != 0) {\r\n vm.IOCAList[i].AmendmentTypeList = [{ Id: 3, AdementType: \"Balance Qty-All\" }, { Id: 4, AdementType: \"Balance Qty-Partial\" }]\r\n } else if (vm.IOCAList[i].TotQty != 0) {\r\n vm.IOCAList[i].AmendmentTypeList = [{ Id: 5, AdementType: \"Total Qty-All\" }, { Id: 6, AdementType: \"Total Qty-Partial\" }]\r\n }\r\n }\r\n ///////////\r\n\r\n for (var i in vm.IOCAList) {\r\n vm.IOCAList[i].RateDetailsList = JSON.parse(vm.IOCAList[i].RateDetails)\r\n vm.IOCAList[i].Rates = lodash.filter(vm.IOCAList[i].RateDetailsList, function(o) {\r\n if (o.Rate != undefined) return o;\r\n });\r\n vm.IOCAList[i].AmendmentRate = (vm.IOCAList[i].Rates.length > 0) ? vm.IOCAList[i].Rates[0].Rate : ''\r\n vm.IOCAList[i].selectedIoca = (vm.IOCAList[i].Rates.length > 0) ? true : false\r\n vm.IOCAList[i].AmendmentType = (vm.IOCAList[i].AamendmentTypeId == 1 || vm.IOCAList[i].AamendmentTypeId == 2) ? 'location' : '';\r\n if (vm.IOCAList[i].selectedIoca) {\r\n vm.selectIoca(vm.IOCAList[i])\r\n }\r\n if (vm.IOCAList[i].AamendmentTypeId == 1 || vm.IOCAList[i].AamendmentTypeId == 2 || vm.IOCAList[i].AamendmentTypeId == 3 || vm.IOCAList[i].AamendmentTypeId == 4) {\r\n for (var j in vm.IOCAList[i].AmendmentTypeList) {\r\n if (vm.IOCAList[i].AmendmentTypeList[j].Id === vm.IOCAList[i].AamendmentTypeId) {\r\n vm.IOCAList[i].SelectedType = vm.IOCAList[i].AmendmentTypeList[j]\r\n }\r\n }\r\n debugger;\r\n }\r\n // if (vm.IOCAList[i].Rates.length == (vm.IOCAList[i].LocDtl.split(',')))\r\n\r\n }\r\n console.log(vm.IOCAList)\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n vm.isLoading = false;\r\n }\r\n if (callback)\r\n callback();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n function ViewWO(row) {\r\n debugger\r\n vm.isLoading = true;\r\n vm.isPowCheck = false;\r\n vm.wo = angular.copy(row)\r\n\r\n for (var i in vm.BoQTypeList) {\r\n if (vm.BoQTypeList[i].id === vm.wo.RfqOf) {\r\n vm.wo.BoQFor = vm.BoQTypeList[i].Status\r\n }\r\n }\r\n\r\n for (var i in vm.TemplateRfqList) {\r\n if (vm.TemplateRfqList[i].TempId === vm.wo.TempId) {\r\n vm.wo.TempName = vm.TemplateRfqList[i].TemplatelistName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofBillList) {\r\n if (vm.TypeofBillList[i].BillId === vm.wo.BillId) {\r\n vm.wo.BillIdName = vm.TypeofBillList[i].TypeofBillName\r\n }\r\n }\r\n\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == vm.wo.RfqScope) {\r\n vm.wo.RfqTypeName = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === vm.wo.TypeofContract) {\r\n vm.wo.TypeOfContractName = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n GetAllWorkOrderIocaDtls(vm.wo.RfqId, vm.wo.ContractorId, function() {});\r\n vm.isFormOpen = true;\r\n }\r\n\r\n vm.GetPowForIoca = function(row, callBack) {\r\n vm.List = [];\r\n vm.PowList = [];\r\n vm.isPowCheck = true;\r\n var obj = {\r\n LastTierId: row.LocDtl,\r\n IOCA_Id: row.IOCA_Id\r\n }\r\n AmendmentWOService.GetAllPowForApprovedWOIOCA(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.isLoading = false;\r\n vm.List = res.data\r\n var result = _.groupBy(vm.List, function(b) { return b.Locations })\r\n\r\n vm.PowList = [];\r\n\r\n lodash.forEach(result, function(key, value) {\r\n vm.PowList.push({\r\n Locations: value,\r\n LastTierId: key[0].LastTierId,\r\n IOCA_Id: key[0].IOCA_Id,\r\n PowList: key\r\n })\r\n });\r\n\r\n for (var i in vm.PowList) {\r\n var temp = 0\r\n for (var j in vm.PowList[i].PowList) {\r\n temp += vm.PowList[i].PowList[j].PowQty\r\n }\r\n vm.PowList[i].TotLocQty = temp\r\n }\r\n\r\n for (var i in vm.IOCAList) {\r\n if (vm.IOCAList[i].IOCA_Id === vm.PowList[0].IOCA_Id) {\r\n vm.IOCAList[i].PowList = vm.PowList\r\n }\r\n }\r\n if (callBack)\r\n callBack();\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n vm.isLoading = false;\r\n }\r\n if (callBack)\r\n callBack();\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n vm.isLoading = false;\r\n });\r\n }\r\n\r\n\r\n vm.ViewPow = function(row, type) {\r\n var obj = {\r\n PowList: row.PowList,\r\n Type: type,\r\n IOCA_LongDes: row.IOCA_LongDes,\r\n UnitName: row.UnitName,\r\n UnitRate: row.UnitRate,\r\n AmendmentRate: row.AmendmentRate,\r\n Tax: row.Tax\r\n }\r\n if (type == 4 || type == 5)\r\n obj.AmendmentTypeId = row.SelectedType.Id\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/viewAmendmentPow.html',\r\n controller: 'ViewAmendmentPowCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n vm.AmendmentType = function(row, type, callBack) {\r\n if (row.AmendmentRate != undefined && row.AmendmentRate != '') {\r\n if (row.SelectedType.Id == 1) {\r\n\r\n for (var i in row.PowList) {\r\n var temp = 0\r\n row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 1 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp\r\n }\r\n\r\n for (var i in row.PowList) {\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n row.PowList[i].ApprovedPowList[j].isSelect = true\r\n }\r\n for (var k in row.PowList[i].PowList) {\r\n if (row.PowList[i].ApprovedPowList[k].ApprovalStatus == 2)\r\n row.PowList[i].ApprovedPowList[k].isSelect = false\r\n }\r\n row.PowList[i].selectedAll = true\r\n }\r\n\r\n\r\n row.AmendmentQty = lodash.sumBy(row.PowList, function(l) { return l.TotLocQty; });\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n row.TotAmendmentRate = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n } else if (row.SelectedType.Id == 2) {\r\n var obj = {\r\n PowList: row.PowList,\r\n Type: type,\r\n IOCA_LongDes: row.IOCA_LongDes,\r\n UnitName: row.UnitName,\r\n AmendmentTypeId: row.SelectedType.Id\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/viewAmendmentPow.html',\r\n controller: 'ViewAmendmentPowCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function(items) {\r\n debugger;\r\n row.PowList = items\r\n var temp = 0\r\n var temp1 = 0\r\n\r\n for (var i in row.PowList) {\r\n if (row.PowList[i].selectedAll) {\r\n temp += row.PowList[i].TotLocQty\r\n } else {\r\n temp1 += row.PowList[i].TotLocQty\r\n }\r\n }\r\n\r\n row.AmendmentQty = temp;\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n row.TotAmendmentRate = ((row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100))) + (temp1 * row.UnitRate * (1 + (row.Tax / 100))))\r\n\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n } else if (row.SelectedType.Id == 3) {\r\n debugger;\r\n for (var i in row.PowList) {\r\n var temp = 0\r\n row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 2 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp\r\n }\r\n for (var i in row.PowList) {\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n row.PowList[i].ApprovedPowList[j].isSelect = true\r\n }\r\n for (var j in row.PowList[i].PowList) {\r\n if (row.PowList[i].PowList[j].ApprovalStatus == 1)\r\n row.PowList[i].PowList[j].isSelect = false\r\n }\r\n row.PowList[i].selectedAll = true\r\n }\r\n\r\n row.AmendmentQty = lodash.sumBy(row.PowList, function(l) { return l.TotLocQty; });\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n row.TotAmendmentRate = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n } else if (row.SelectedType.Id == 4) {\r\n var obj = {\r\n PowList: row.PowList,\r\n Type: type,\r\n IOCA_LongDes: row.IOCA_LongDes,\r\n UnitName: row.UnitName,\r\n AmendmentTypeId: row.SelectedType.Id\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/viewAmendmentPow.html',\r\n controller: 'ViewAmendmentPowCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function(items) {\r\n debugger;\r\n row.PowList = items\r\n var temp = 0\r\n var temp1 = 0\r\n\r\n for (var i in row.PowList) {\r\n if (row.PowList[i].selectedAll) {\r\n temp += row.PowList[i].TotLocQty\r\n } else {\r\n temp1 += row.PowList[i].TotLocQty\r\n }\r\n }\r\n\r\n row.AmendmentQty = temp;\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n row.TotAmendmentRate = ((row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100))) + (temp1 * row.UnitRate * (1 + (row.Tax / 100))))\r\n\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n } else if (row.SelectedType.Id == 5) {\r\n debugger;\r\n for (var i in row.PowList) {\r\n var temp = 0\r\n // for(var k in row.PowList[i].PowList){\r\n // if(row.PowList[i].PowList[k].ApprovalStatus != 0)\r\n // {\r\n // row.PowList[i].ApprovedPowList.push(row.PowList[i].PowList[k])\r\n // }\r\n // }\r\n row.PowList[i].ApprovedPowList = row.PowList[i].PowList\r\n //row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus : (1 || 2) });\r\n //row.PowList[i].PowList\r\n\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp\r\n }\r\n for (var i in row.PowList) {\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n row.PowList[i].ApprovedPowList[j].isSelect = true\r\n }\r\n row.PowList[i].selectedAll = true\r\n }\r\n\r\n row.AmendmentQty = lodash.sumBy(row.PowList, function(l) { return l.TotLocQty; });\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n row.TotAmendmentRate = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n } else if (row.SelectedType.Id == 6) {\r\n var obj = {\r\n PowList: row.PowList,\r\n Type: type,\r\n IOCA_LongDes: row.IOCA_LongDes,\r\n UnitName: row.UnitName,\r\n AmendmentTypeId: row.SelectedType.Id\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/viewAmendmentPow.html',\r\n controller: 'ViewAmendmentPowCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function(items) {\r\n debugger;\r\n row.PowList = items\r\n var temp = 0\r\n var temp1 = 0\r\n\r\n for (var i in row.PowList) {\r\n if (row.PowList[i].selectedAll) {\r\n temp += row.PowList[i].TotLocQty\r\n } else {\r\n temp1 += row.PowList[i].TotLocQty\r\n }\r\n }\r\n\r\n row.AmendmentQty = temp;\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n row.TotAmendmentRate = ((row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100))) + (temp1 * row.UnitRate * (1 + (row.Tax / 100))))\r\n\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n } else {\r\n dialogs.notify('Warning', '! Amendent Unit Rate not given', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n row.SelectedType = null;\r\n }\r\n if (callBack)\r\n callBack();\r\n }\r\n\r\n vm.selectIoca = function(row, callBack) {\r\n if (row.selectedIoca) {\r\n vm.GetPowForIoca(row, function() {\r\n row.PowList = vm.PowList;\r\n for (var i in row.PowList) {\r\n for (var j in row.Rates) {\r\n if (row.PowList[i].LastTierId === row.Rates[j].LastTierId) {\r\n row.PowList[i].selectedAll = true\r\n lodash.forEach(row.PowList[i].PowList, function(t) {\r\n t.isSelect = true;\r\n })\r\n }\r\n }\r\n }\r\n if (row.AamendmentTypeId == 1) {\r\n for (var i in row.PowList) {\r\n var temp = 0\r\n row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 1 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp\r\n }\r\n\r\n for (var i in row.PowList) {\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n row.PowList[i].ApprovedPowList[j].isSelect = true\r\n }\r\n for (var k in row.PowList[i].PowList) {\r\n if (row.PowList[i].ApprovedPowList[k].ApprovalStatus == 2)\r\n row.PowList[i].ApprovedPowList[k].isSelect = false\r\n }\r\n row.PowList[i].selectedAll = true\r\n }\r\n row.AmendmentQty = lodash.sumBy(row.PowList, function(l) { return l.TotLocQty; });\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n row.TotAmendmentRate = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n } else if (row.AamendmentTypeId == 2) {\r\n for (var i in row.PowList) {\r\n var temp2 = 0\r\n row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 1 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp2 += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp2\r\n }\r\n\r\n var temp = 0\r\n var temp1 = 0\r\n\r\n for (var i in row.PowList) {\r\n if (row.PowList[i].selectedAll) {\r\n temp += row.PowList[i].TotLocQty\r\n } else {\r\n temp1 += row.PowList[i].TotLocQty\r\n }\r\n }\r\n\r\n row.AmendmentQty = temp;\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n row.TotAmendmentRate = ((row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100))) + (temp1 * row.UnitRate * (1 + (row.Tax / 100))))\r\n\r\n } else if (row.AamendmentTypeId == 3) {\r\n for (var i in row.PowList) {\r\n var temp = 0\r\n row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 2 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp\r\n }\r\n\r\n for (var i in row.PowList) {\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n row.PowList[i].ApprovedPowList[j].isSelect = true\r\n }\r\n for (var k in row.PowList[i].PowList) {\r\n if (row.PowList[i].ApprovedPowList[k].ApprovalStatus == 1)\r\n row.PowList[i].ApprovedPowList[k].isSelect = false\r\n }\r\n row.PowList[i].selectedAll = true\r\n }\r\n row.AmendmentQty = lodash.sumBy(row.PowList, function(l) { return l.TotLocQty; });\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n row.TotAmendmentRate = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n } else if (row.AamendmentTypeId == 4) {\r\n for (var i in row.PowList) {\r\n var temp2 = 0\r\n row.PowList[i].ApprovedPowList = lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 2 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp2 += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp2\r\n }\r\n\r\n var temp = 0\r\n var temp1 = 0\r\n\r\n for (var i in row.PowList) {\r\n if (row.PowList[i].selectedAll) {\r\n temp += row.PowList[i].TotLocQty\r\n } else {\r\n temp1 += row.PowList[i].TotLocQty\r\n }\r\n }\r\n\r\n row.AmendmentQty = temp;\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n row.TotAmendmentRate = ((row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100))) + (temp1 * row.UnitRate * (1 + (row.Tax / 100))))\r\n\r\n } else if (row.AamendmentTypeId == 5) {\r\n for (var i in row.PowList) {\r\n var temp = 0\r\n row.PowList[i].ApprovedPowList = row.PowList[i].PowList\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp\r\n }\r\n\r\n for (var i in row.PowList) {\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n row.PowList[i].ApprovedPowList[j].isSelect = true\r\n }\r\n for (var k in row.PowList[i].PowList) {\r\n if (row.PowList[i].ApprovedPowList[k].ApprovalStatus == 1)\r\n row.PowList[i].ApprovedPowList[k].isSelect = false\r\n }\r\n row.PowList[i].selectedAll = true\r\n }\r\n row.AmendmentQty = lodash.sumBy(row.PowList, function(l) { return l.TotLocQty; });\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n row.TotAmendmentRate = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n } else if (row.AamendmentTypeId == 6) {\r\n for (var i in row.PowList) {\r\n var temp2 = 0\r\n row.PowList[i].ApprovedPowList = row.PowList[i].PowList\r\n // lodash.filter(row.PowList[i].PowList, { ApprovalStatus: 2 });\r\n for (var j in row.PowList[i].ApprovedPowList) {\r\n temp2 += row.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n row.PowList[i].TotLocQty = temp2\r\n }\r\n\r\n var temp = 0\r\n var temp1 = 0\r\n\r\n for (var i in row.PowList) {\r\n if (row.PowList[i].selectedAll) {\r\n temp += row.PowList[i].TotLocQty\r\n } else {\r\n temp1 += row.PowList[i].TotLocQty\r\n }\r\n }\r\n\r\n row.AmendmentQty = temp;\r\n row.AmendmentCost = (row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100)))\r\n\r\n row.TotAmendmentRate = ((row.AmendmentQty * row.AmendmentRate * (1 + (row.Tax / 100))) + (temp1 * row.UnitRate * (1 + (row.Tax / 100))))\r\n\r\n }\r\n if (callBack)\r\n callBack();\r\n });\r\n } else {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Do you want to Reset the Amendment Work Order ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n row.selectedIoca = false;\r\n row.AmendmentQty = null;\r\n row.AmendmentCost = null;\r\n row.TotAmendmentRate = null;\r\n row.AmendmentRate = null;\r\n row.AmendmentType = '';\r\n row.SelectedType = null;\r\n\r\n }, function(err) {\r\n row.selectedIoca = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.SaveAmendmentWo = function() {\r\n\r\n var Arr = [];\r\n for (var i in vm.IOCAList) {\r\n if (vm.IOCAList[i].selectedIoca) {\r\n for (var j in vm.IOCAList[i].PowList) {\r\n if (vm.IOCAList[i].PowList[j].selectedAll) {\r\n var PowId = lodash.map(vm.IOCAList[i].PowList[j].PowList, function(o) {\r\n if (o.isSelect == true) return o.PowId = o.PowId;\r\n });\r\n Arr.push({\r\n Ioca_Id: vm.IOCAList[i].PowList[j].IOCA_Id,\r\n LastTierId: vm.IOCAList[i].PowList[j].LastTierId,\r\n NewRate: parseInt(vm.IOCAList[i].AmendmentRate),\r\n AmendmentTypeId: vm.IOCAList[i].SelectedType.Id,\r\n BOQArr: (vm.IOCAList[i].SelectedType.Id == 1) ? '[]' : PowId\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var i in Arr) {\r\n Arr[i].BOQ = [];\r\n if (Arr[i].AmendmentTypeId == 1) {\r\n Arr[i].BOQ = '[]'\r\n } else {\r\n lodash.forEach(Arr[i].BOQArr, function(key, value) {\r\n Arr[i].BOQ.push({\r\n PowId: key\r\n })\r\n });\r\n }\r\n }\r\n\r\n\r\n var obj = {\r\n ProjectId: vm.wo.ProjectId,\r\n RfqId: vm.wo.RfqId,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n IOCACancelDetails: JSON.stringify(Arr),\r\n CreatedBy: loggedUser.UserId\r\n }\r\n\r\n\r\n AmendmentWOService.InsertAmendmentWO(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Amendment WorkOrder\");\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n vm.isFormOpen = false;\r\n GetAllApprovedWO(vm.wo.ProjectId);\r\n\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Amendment WorkOrder\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n // Wo Amendment Send for Approval \r\n function updateWOStatus(status, isDraft) {\r\n if (status === 4 || (status === 1 && isDraft === 1)) {\r\n var obj = {\r\n RfqId: vm.wo.RfqId,\r\n AmendmentStatus: status,\r\n ActionBy: loggedUser.UserId,\r\n isDraft: (isDraft != undefined) ? isDraft : 0\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/AmendmentWO/amendmentStatusNotes.html',\r\n controller: 'AmendmentStatusNotesCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n\r\n } else {\r\n var obj = {\r\n RfqId: vm.wo.RfqId,\r\n AmendmentStatus: status,\r\n ActionBy: loggedUser.UserId\r\n }\r\n AmendmentWOService.UpdateWOStatus(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Amendment WorkOrder\");\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n vm.isFormOpen = false;\r\n GetAllApprovedWO(vm.wo.ProjectId);\r\n }\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Amendment WorkOrder\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n vm.Cancel = function() {\r\n if ($state.params.data != undefined) {\r\n $state.go($rootScope.previousState);\r\n } else {\r\n vm.isFormOpen = false;\r\n Init();\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('ViewAmendmentPowCtrl', ViewAmendmentPowCtrl);\r\n\r\n /** @ngInject */\r\n function ViewAmendmentPowCtrl($rootScope, items, $uibModalInstance, lodash) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n $rootScope.isLogin = false;\r\n vm.wo = items\r\n console.log(vm.wo)\r\n if (vm.wo.Type == 1) {\r\n for (var i in vm.wo.PowList) {\r\n var temp = 0\r\n for (var j in vm.wo.PowList[i].PowList) {\r\n temp += vm.wo.PowList[i].PowList[j].PowQty\r\n }\r\n vm.wo.PowList[i].TotLocQty = temp\r\n }\r\n }\r\n if (vm.wo.Type != 1 && vm.wo.Type != 5 && vm.wo.Type != 6) {\r\n for (var i in vm.wo.PowList) {\r\n var temp = 0\r\n if (vm.wo.AmendmentTypeId == 3 || vm.wo.AmendmentTypeId == 4)\r\n vm.wo.PowList[i].ApprovedPowList = lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 2 })\r\n else if (vm.wo.AmendmentTypeId == 1 || vm.wo.AmendmentTypeId == 2)\r\n vm.wo.PowList[i].ApprovedPowList = lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 1 });\r\n else if (vm.wo.AmendmentTypeId == 5 || vm.wo.AmendmentTypeId == 6)\r\n vm.wo.PowList[i].ApprovedPowList = vm.wo.PowList[i].PowList;\r\n else\r\n vm.wo.PowList[i].ApprovedPowList = lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 1 });\r\n for (var j in vm.wo.PowList[i].ApprovedPowList) {\r\n temp += vm.wo.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n vm.wo.PowList[i].TotLocQty = temp\r\n }\r\n\r\n }\r\n else if (vm.wo.Type === 5) {\r\n vm.OldPowList = [];\r\n vm.NewPowList = [];\r\n\r\n for (var i in vm.wo.PowList) {\r\n var temp = 0\r\n if (vm.wo.AmendmentTypeId == 3 || vm.wo.AmendmentTypeId == 4)\r\n vm.wo.PowList[i].ApprovedPowList = lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 2 })\r\n else if (vm.wo.AmendmentTypeId == 1 || vm.wo.AmendmentTypeId == 2)\r\n vm.wo.PowList[i].ApprovedPowList = lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 1 });\r\n else if (vm.wo.AmendmentTypeId == 5 || vm.wo.AmendmentTypeId == 6)\r\n vm.wo.PowList[i].ApprovedPowList = vm.wo.PowList[i].PowList;\r\n // vm.wo.PowList[i].ApprovedPowList = (vm.wo.AmendmentTypeId == 3 || vm.wo.AmendmentTypeId == 4) ? lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 2 }) : lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 1 }); \r\n for (var j in vm.wo.PowList[i].ApprovedPowList) {\r\n temp += vm.wo.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n vm.wo.PowList[i].TotLocQty = temp\r\n }\r\n\r\n\r\n for (var i in vm.wo.PowList) {\r\n if (vm.wo.PowList[i].selectedAll) {\r\n vm.NewPowList.push(vm.wo.PowList[i])\r\n }\r\n else {\r\n vm.OldPowList.push(vm.wo.PowList[i])\r\n }\r\n }\r\n\r\n vm.TotalOldRate = (lodash.sumBy(vm.OldPowList, function (l) { return l.TotLocQty; }) * vm.wo.UnitRate * (1 + (vm.wo.Tax / 100)));\r\n vm.TotalNewRate = (lodash.sumBy(vm.NewPowList, function (l) { return l.TotLocQty; }) * vm.wo.AmendmentRate * (1 + (vm.wo.Tax / 100)));\r\n }\r\n else if (vm.wo.Type === 6) {\r\n for (var i in vm.wo.PowList) {\r\n var temp = 0\r\n vm.wo.PowList[i].ApprovedPowList = lodash.filter(vm.wo.PowList[i].PowList, { ApprovalStatus: 2 });\r\n for (var j in vm.wo.PowList[i].ApprovedPowList) {\r\n temp += vm.wo.PowList[i].ApprovedPowList[j].PowQty\r\n }\r\n vm.wo.PowList[i].TotLocQty = temp\r\n }\r\n }\r\n\r\n vm.select = function (row) {\r\n debugger;\r\n if (row.selectedAll) {\r\n row.selectedAll = true;\r\n\r\n } else {\r\n row.selectedAll = false;\r\n }\r\n for (var i in row.ApprovedPowList) {\r\n row.ApprovedPowList[i].isSelect = row.selectedAll\r\n }\r\n }\r\n\r\n vm.Save = function () {\r\n $uibModalInstance.close(vm.wo.PowList);\r\n }\r\n\r\n vm.Cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('ViewAmendmentWOCtrl', ViewAmendmentWOCtrl);\r\n\r\n /** @ngInject */\r\n function ViewAmendmentWOCtrl($rootScope, $state, AuthenticationService, CompanyService, AmendmentWOService, projectCreationService, lodash, dialogs, $uibModal) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n vm.isPowCheck = false;\r\n vm.wo = {};\r\n vm.WorkOrderList = [];\r\n\r\n vm.getProjectByCompany = getProjectByCompany\r\n vm.GetAllApprovedWO = GetAllApprovedWO\r\n\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init()\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n } else {}\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.wo.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n }\r\n\r\n function GetAllApprovedWO(projectId) {\r\n vm.WorkOrderList = [];\r\n var obj = {\r\n ProjectId: projectId,\r\n Status: '1,3,4'\r\n }\r\n AmendmentWOService.GetAllApprovedWO(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WOList = res.data\r\n vm.DraftWOList = lodash.filter(vm.WOList, function(o) {\r\n if (o.AmendmentStatus == 1) return o;\r\n });\r\n vm.PendingForApprovalWOList = lodash.filter(vm.WOList, function(o) {\r\n if (o.AmendmentStatus == 3) return o;\r\n });\r\n vm.ApprovedWOList = lodash.filter(vm.WOList, function(o) {\r\n if (o.AmendmentStatus == 4) return o;\r\n });\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n\r\n vm.DraftAmendmentWO = function() {\r\n vm.WorkOrderList = [];\r\n\r\n vm.WorkOrderList = vm.DraftWOList\r\n }\r\n\r\n vm.PendingForApprovalWO = function() {\r\n vm.WorkOrderList = vm.PendingForApprovalWOList\r\n }\r\n\r\n vm.ApprovedWO = function() {\r\n vm.WorkOrderList = vm.ApprovedWOList\r\n }\r\n\r\n vm.ViewWO = function(row) {\r\n var data = {\r\n wo: row\r\n };\r\n $state.go('amendmentWO', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .service('DirectWorkOrderService', DirectWorkOrderService);\r\n\r\n DirectWorkOrderService.$inject = ['$http', '$rootScope'];\r\n\r\n function DirectWorkOrderService($http, $rootScope) {\r\n this.AddWorkOrderDetails = AddWorkOrderDetails; \r\n this.getAllDraft = getAllDraft;\r\n this.getAllPFA = getAllPFA;\r\n this.getAllApproval = getAllApproval;\r\n this.getAllBlock = getAllBlock;\r\n this.getAllBFC = getAllBFC;\r\n this.GetRfqDetails = GetRfqDetails;\r\n this.UpdateWorkOrderDetails = UpdateWorkOrderDetails;\r\n this.SendForApprovalWO = SendForApprovalWO;\r\n this.ApproveWO = ApproveWO;\r\n this.ResubmitWO = ResubmitWO;\r\n this.RejectWO = RejectWO;\r\n this.BlockWO = BlockWO;\r\n this.DeleteWO = DeleteWO;\r\n\r\n\r\n /////////////\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n\r\n function AddWorkOrderDetails(obj) {\r\n var config = {\r\n headers: {\r\n \"Token\": $rootScope.token\r\n }\r\n }\r\n config.headers[\"Content-Type\"] = undefined;\r\n return $http.post($rootScope.endPoint + 'workorder/create-direct-workorder', obj, config);\r\n }\r\n\r\n function UpdateWorkOrderDetails(obj) {\r\n return $http.put($rootScope.endPoint + 'workorder/modify', obj, config);\r\n } \r\n\r\n function getAllDraft(id) {\r\n return $http.get($rootScope.endPoint + 'workorder/getAllDraft/' + id, config);\r\n }\r\n function getAllPFA(id) {\r\n return $http.get($rootScope.endPoint + 'workorder/getAllPending/' + id, config);\r\n }\r\n function getAllApproval(id) {\r\n return $http.get($rootScope.endPoint + 'workorder/getAllApproved/' + id, config);\r\n }\r\n function getAllBlock(id) {\r\n return $http.get($rootScope.endPoint + 'workorder/getAllCanceled/' + id, config);\r\n }\r\n function getAllBFC(id) {\r\n return $http.get($rootScope.endPoint + 'workorder/getAllBackForCorrection/' + id, config);\r\n }\r\n function GetRfqDetails(id) {\r\n return $http.get($rootScope.endPoint + 'workorder/getDriectWorkOrderDetail/' + id, config);\r\n }\r\n function SendForApprovalWO(obj) {\r\n return $http.post($rootScope.endPoint + 'workorder/sendForApproval', obj, config);\r\n }\r\n function ApproveWO(obj) {\r\n return $http.post($rootScope.endPoint + 'workorder/approve', obj, config);\r\n }\r\n function ResubmitWO(obj) {\r\n return $http.post($rootScope.endPoint + 'workorder/resubmit', obj, config);\r\n }\r\n function RejectWO(obj) {\r\n return $http.post($rootScope.endPoint + 'workorder/reject', obj, config);\r\n }\r\n function BlockWO(obj) {\r\n return $http.post($rootScope.endPoint + 'workorder/block', obj, config);\r\n }\r\n function DeleteWO(id) {\r\n return $http.delete($rootScope.endPoint + 'workorder/delete/'+id, config);\r\n }\r\n\r\n\r\n\r\n }\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('DirectWorkOrderCtrl', DirectWorkOrderCtrl);\r\n\r\n function DirectWorkOrderCtrl($rootScope, $scope, lodash, dialogs, $uibModal, $http, $state, $window, DirectWorkOrderService, CompanyService, projectCreationService,\r\n RFQService, LocationSetupService, TierSetupService, BillOfQuntityService, RFQContentTemplateService, AuthenticationService, RfqContractorService,\r\n FieldofConstructionService, CategoryofCAService, SubCategoryofCAService, TypeOfCAService, IocaService, RFQTemplateService, DrawingUpoadService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isView = false;\r\n var isNotinRfq = false;\r\n vm.isAdd = true;\r\n vm.isLoading = true;\r\n vm.showFile = false;\r\n vm.MinPenalty = 0.5;\r\n vm.MaxPenalty = 5;\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n $rootScope.isLogin = false;\r\n // Methods\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.filterTiers = filterTiers;\r\n vm.getFOC = getFOC;\r\n vm.GetBoQCategoryByCountryId = GetBoQCategoryByCountryId;\r\n vm.getBoQAttributeByTypeOfCAId = getBoQAttributeByTypeOfCAId;\r\n vm.getBoQIOCAListByTypeOfAttribute = getBoQIOCAListByTypeOfAttribute;\r\n vm.getBoQSubCategoryCAListByCategoryId = getBoQSubCategoryCAListByCategoryId;\r\n vm.getBoQTypeOfCAListBySubcategoryId = getBoQTypeOfCAListBySubcategoryId;\r\n vm.contractorScope = contractorScope;\r\n vm.GetallContent = GetallContent;\r\n vm.getRfqTemplate = getRfqTemplate;\r\n vm.addQuotation = addQuotation;\r\n vm.getDrawingDescription = getDrawingDescription;\r\n vm.getApprovedContractor = getApprovedContractor;\r\n vm.getPowQty = getPowQty;\r\n vm.addTable = addTable;\r\n vm.remove = remove;\r\n vm.canShow = canShow;\r\n vm.addDescription = addDescription;\r\n vm.viewDrawing = viewDrawing;\r\n vm.viewFile = viewFile;\r\n vm.viewNote = viewNote;\r\n vm.viewWorkOrder = viewWorkOrder;\r\n vm.removeDescription = removeDescription;\r\n vm.cancel = cancel;\r\n vm.create = create;\r\n vm.saveWorkOrder = saveWorkOrder;\r\n vm.sendForApproval = sendForApproval;\r\n vm.reject = reject;\r\n vm.edit = edit;\r\n vm.back = back;\r\n vm.resubmit = resubmit;\r\n vm.Approve = Approve;\r\n vm.resetForm = resetForm;\r\n vm.block = block;\r\n vm.Total = Total;\r\n vm.DescriptionList = [];\r\n vm.DrawingDocList = [];\r\n vm.item = {};\r\n vm.rfqTemplate = {};\r\n\r\n vm.TotalDescriptionList = [];\r\n vm.workOrderIocaList = [];\r\n vm.UserName = loggedUserDtl.FirstName;\r\n Init();\r\n\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n //////////////////// \r\n vm.TaxList = [{ Tax: 0 }, { Tax: 5 }, { Tax: 18 }, { Tax: 28 }]\r\n\r\n function Init() {\r\n if ($state.params.data) {\r\n vm.isView = $state.params.data.isView;\r\n vm.isAdd = !vm.isView;\r\n vm.rfqData = $state.params.data.RfqData;\r\n vm.stateFrom = parseInt($state.params.data.RfqData.Status);\r\n vm.StatusId = vm.stateFrom;\r\n }\r\n\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 }, { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 }, { MenuName: 'Waiting for Approval of Draft', StatusId: 3 }, { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 6 }\r\n ]\r\n\r\n filterButtons();\r\n\r\n vm.BoQTypeList = [\r\n // {\r\n // Status: 'Draft Boq',\r\n // id: 1\r\n // },\r\n {\r\n Status: 'Manual Entry',\r\n id: 3\r\n },\r\n {\r\n Status: 'Finalized boq',\r\n id: 4\r\n }\r\n ];\r\n /////List for CMS\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contract',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n\r\n\r\n //////List for Indian Railways changes\r\n // vm.rfqTypeList = [{\r\n // rfqTypeName: 'Supply and Installation',\r\n // rfqTypeId: 1,\r\n // Code: 'L'\r\n // }]\r\n\r\n\r\n vm.TemplateRfqList = [{\r\n TemplatelistName: 'Field of Construction',\r\n TempId: 1\r\n }, {\r\n TemplatelistName: 'Category of CA',\r\n TempId: 2\r\n }, {\r\n TemplatelistName: 'SubCategory of CA',\r\n TempId: 3\r\n }]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'FortNight',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n }, {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n if ($state.current === 'viewRfq')\r\n vm.isView = true;\r\n\r\n\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n if (vm.isView === true)\r\n getRfqDataByRfqId();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n\r\n }\r\n\r\n\r\n function filterButtons() {\r\n switch (vm.stateFrom) {\r\n case 1:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'send', 'cancel'];\r\n break;\r\n case 2:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'reject', 'approve', 'cancel'];\r\n break;\r\n case 3:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'reject', 'approve', 'cancel'];\r\n break;\r\n case 4:\r\n vm.btnsToShow = ['back', 'block'];\r\n break;\r\n case 5:\r\n vm.btnsToShow = ['back'];\r\n break;\r\n case 6:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'resubmit', 'cancel'];\r\n break;\r\n }\r\n\r\n }\r\n\r\n function canShow(btnName) {\r\n return lodash.includes(vm.btnsToShow, btnName);\r\n }\r\n\r\n function contractorScope() {\r\n vm.ContractorList = [];\r\n vm.selectedContractor = null;\r\n vm.item.selectedContractorScope = null;\r\n if (vm.item.selectedRFQType.rfqTypeId === 6) {\r\n vm.contractorScopeList = [{\r\n ScopeName: 'Labour only',\r\n Code: 'L'\r\n }, {\r\n ScopeName: 'Labour and Material',\r\n Code: 'C1'\r\n }, {\r\n ScopeName: 'Labour and Machinery',\r\n Code: 'C3'\r\n },\r\n {\r\n ScopeName: 'Labour, Material and Machinery',\r\n Code: 'C2'\r\n }, {\r\n ScopeName: 'Labour, Material, Machinery and Consumable',\r\n Code: 'C4'\r\n }\r\n ]\r\n\r\n } else {\r\n vm.contractorScopeList = [{\r\n ScopeName: vm.item.selectedRFQType.rfqTypeName,\r\n Code: vm.item.selectedRFQType.Code\r\n }]\r\n\r\n }\r\n vm.rfqTemplate.selectedTemplate = null;\r\n vm.item.selectedFOC = null;\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.rfqTemplate.selectedContract = null;\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.item.selectedBasicLocation = null;\r\n clearTierSelection();\r\n vm.item.selectedProject = null;\r\n vm.LocationList = [];\r\n // vm.item.selectedCountry = null;\r\n // vm.CountryList = [];\r\n vm.item.selectedStatus = null;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.item.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n vm.item.selectedRFQType = null;\r\n vm.rfqTemplate.selectedTemplate = null;\r\n vm.item.selectedFOC = null;\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.rfqTemplate.selectedContract = null;\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n // vm.item.selectedCountry = null;\r\n // vm.CountryList = [];\r\n vm.item.selectedStatus = null;\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getFOC(callback) {\r\n clearFoc();\r\n var filter = {}\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n FieldofConstructionService.getFocByRfq(ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n if (vm.focList.length < 1) {\r\n dialogs.notify('Warning', 'There is no record of the data you have selected. ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n vm.item.selectedFOC = null;\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.rfqTemplate.selectedContract = null;\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n }\r\n\r\n function GetBoQCategoryByCountryId(CountryId, focId, callback) {\r\n clearCategory();\r\n // var filter = {\r\n var CountryId = CountryId;\r\n var FocId = focId;\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n CategoryofCAService.getCategoryByRfq(CountryId, FocId, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function getBoQSubCategoryCAListByCategoryId(CategoryId, callback) {\r\n clearSubcategory();\r\n // var filter = {\r\n var CategoryId = CategoryId\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n SubCategoryofCAService.getSubCategoryByRfq(CategoryId, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"SubCategory\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"SubCategory\");\r\n });\r\n }\r\n\r\n function getBoQTypeOfCAListBySubcategoryId(SubCategoryId, callback) {\r\n clearType();\r\n // var filter = {\r\n var SubCategoryId = SubCategoryId;\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n TypeOfCAService.getTypeByRfq(SubCategoryId, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type\");\r\n });\r\n }\r\n\r\n function getBoQAttributeByTypeOfCAId(TypeId) {\r\n if (TypeId !== undefined) {\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n if (vm.isEditing == true && vm.item.selectedTypeOfCA) {\r\n contractorScope();\r\n getLocationByProjectId(vm.item.selectedProject.ProjectId);\r\n }\r\n\r\n // vm.isLoading = false;\r\n }\r\n\r\n }\r\n\r\n function getBoQIOCAListByTypeOfAttribute(Code) {\r\n clearIoca();\r\n // var filter = {\r\n var TypeId = vm.item.selectedTypeOfCA.TypeId;\r\n var SpecType = vm.item.selectedTypeOfAttribute.Code;\r\n // };\r\n // var obj = {\r\n var ProjectId = vm.item.selectedProject.ProjectId;\r\n if (vm.isEditing) {\r\n isNotinRfq = false;\r\n } else {\r\n isNotinRfq = true;\r\n }\r\n if (vm.item.selectedStatus.id == 3) {\r\n var FromBoq = false;\r\n } else {\r\n var FromBoq = true;\r\n var PowStatus = vm.item.selectedStatus.id;\r\n }\r\n IocaService.getIocaByRfq(TypeId, SpecType, ProjectId, FromBoq, PowStatus, isNotinRfq).then(function(res) {\r\n if (res.status === 200) {\r\n vm.IOCAList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"IOCA\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOCA\");\r\n });\r\n }\r\n\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n clearTierSelection();\r\n // var obj = {\r\n // ProjectId: ProjectId\r\n // }\r\n // LocationSetupService.getLocationByBoQIoca(obj)\r\n var obj = {\r\n ProjectId: ProjectId,\r\n IOCA_Id: vm.item.selectedIoca.Id\r\n }\r\n\r\n if (vm.item.selectedStatus.id === 4) {\r\n var powStatus = vm.item.selectedStatus.id;\r\n var isWorkAlloc = false;\r\n\r\n LocationSetupService.getLocationByPrivilege(obj.ProjectId, obj.IOCA_Id, true, powStatus, isWorkAlloc).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Location available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project\");\r\n });\r\n } else {\r\n LocationSetupService.getAllLocationMaster(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Location available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n } else {\r\n vm.item.selectedStatus = null;\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n vm.item.selectedRFQType = null;\r\n vm.rfqTemplate.selectedTemplate = null;\r\n vm.item.selectedFOC = null;\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.rfqTemplate.selectedContract = null;\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n // vm.item.selectedCountry = null;\r\n // vm.CountryList = [];\r\n clearTierSelection();\r\n }\r\n getDrawingDescription(ProjectId);\r\n\r\n }\r\n\r\n function getTiersByBoQ(LocationId, ProjectId) {\r\n if (ProjectId) {\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.item.selectedBasicLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n IOCAId: vm.item.selectedIoca.Id\r\n // MenuId: 104,\r\n // UserId: loggedUserDtl.UserId\r\n }\r\n TierSetupService.getTierByBoQIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n for (var i in res.data) {\r\n var iocaTier = res.data[i].result;\r\n }\r\n vm.rawTierListData = JSON.parse(iocaTier).Tiers;\r\n for (var i = 0; i < vm.workOrderIocaList.length; i++) {\r\n for (var j = 0; j < vm.rawTierListData.length; j++) {\r\n for (var k = 0; k < vm.rawTierListData[j].Values.length; k++) {\r\n for (var m = 0; m < vm.workOrderIocaList[i].LocDtl[0].data.length; m++) {\r\n if ((vm.rawTierListData[j].Values[k].TierId == vm.workOrderIocaList[i].LocDtl[0].data[m].TierId) && (vm.workOrderIocaList[i].IOCA_Id == vm.item.selectedIoca.Id)) {\r\n findAndRemove(vm.rawTierListData[j].Values, 'TierId', vm.rawTierListData[j].Values[k].TierId)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n } else {\r\n\r\n }\r\n\r\n }\r\n\r\n function findAndRemove(array, property, value) {\r\n array.forEach(function(result, index) {\r\n if (result[property] === value) {\r\n //Remove from array\r\n array.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n function filterTiers(tier) {\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.rawTierListData, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n // if (t.TierName === maxTier.TierNo) {\r\n // var ioca = lodash.find(vm.workOrderIocaList, {\r\n // 'IOCA_Id': vm.item.selectedIoca.Id\r\n // })\r\n // if (ioca) {\r\n // var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n // 'TypeOfWorkLocation': vm.item.selectedBasicLocation.BasicLocation\r\n // })\r\n // if (tmpWorkLoc) {\r\n // var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n // lodash.forEach(maxTier.Values, function (t1) {\r\n // if (lodash.includes(tmpTierIdList, t1.TierId))\r\n // lodash.remove(maxTier.Values, function (t2) {\r\n // return t2.TierId === t1.TierId;\r\n // });\r\n // })\r\n // }\r\n // }\r\n // }\r\n });\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getPowQty(callback) {\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n PowStatus: vm.item.selectedStatus.id,\r\n IOCA_Id: vm.item.selectedIoca.Id,\r\n LastTierId: vm.LastTierId\r\n }\r\n BillOfQuntityService.boqPowQty(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.QtyList = res.data;\r\n for (var i in vm.QtyList) {\r\n vm.qty = vm.QtyList[i].TotalQuantity\r\n }\r\n if (callback)\r\n callback();\r\n return (vm.qty);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Pow Qty\");\r\n }\r\n });\r\n\r\n }\r\n\r\n function getSelectedTierDtls() {\r\n\r\n // Get Last TierId\r\n var lastTierData = _.maxBy(vm.allTierData, function(t) {\r\n return parseInt(t.TierName.substring(4));\r\n });\r\n\r\n var result = {};\r\n result.TypeOfWorkLocation = vm.item.selectedBasicLocation.BasicLocation;\r\n //result.LastTierIdList = lodash.map(lastTierData.selectedTireValue, 'TierId').join(',');;\r\n\r\n var tempArr2 = [];\r\n lodash.forEach(lastTierData.selectedTireValue, function(t) {\r\n tempArr2.push(genTierDetailObject(t));\r\n })\r\n result.data = tempArr2;\r\n\r\n return result;\r\n }\r\n\r\n function genTierDetailObject(tierObj) {\r\n var result = {};\r\n result.PowQty = tierObj.PowQty;\r\n result.TierId = tierObj.TierId;\r\n result.LocDtls = {};\r\n\r\n tierObj.TierDetails = lodash.sortBy(tierObj.TierDetails, 'TierId');\r\n lodash.forEach(tierObj.TierDetails, function(t) {\r\n result.LocDtls[t.TierValue] = t.Tier;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n function checkContractorScope() {\r\n for (var i in vm.item.selectedIoca) {\r\n vm.contScopeDesObj = JSON.parse(vm.item.selectedIoca.ContractorScope);\r\n for (var k in vm.contScopeDesObj)\r\n if ((vm.item.selectedContractorScope.Code == k)) {\r\n if (k != null)\r\n vm.contScopeStr = vm.contScopeDesObj[vm.item.selectedContractorScope.Code]\r\n }\r\n }\r\n }\r\n\r\n //RFQ ADD\r\n function addTable() {\r\n checkContractorScope();\r\n var table;\r\n var iocaDtl = lodash.find(vm.workOrderIocaList, {\r\n \"IOCA_Id\": vm.item.selectedIoca.Id\r\n });\r\n if (vm.item.selectedStatus.id == 3) {\r\n var manual = {\r\n IOCA_Id: vm.item.selectedIoca.Id,\r\n IOCA_Code: vm.item.selectedIoca.Code + '-' + vm.item.selectedContractorScope.Code,\r\n IOCA_LongDes: vm.contScopeStr,\r\n TypeName: vm.item.selectedTypeOfCA.TypeName,\r\n TypeId: vm.item.selectedTypeOfCA.TypeId,\r\n UnitName: vm.item.selectedIoca.UnitName,\r\n SpecialNote: vm.SpecialNote,\r\n TotQty: vm.Quantity,\r\n ContScope: vm.item.selectedContractorScope.Code,\r\n }\r\n if (vm.contScopeStr != null || vm.contScopeStr != undefined) {\r\n vm.workOrderIocaList.push(angular.copy(manual));\r\n vm.item.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedContractorScope = null;\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n } else {\r\n $rootScope.showToaster('error', 'Please Enter Description for' + vm.item.selectedContractorScope.ScopeName + 'Contractor Scope', \"IOCA Master\");\r\n }\r\n\r\n }\r\n if (iocaDtl) {\r\n table = iocaDtl;\r\n var locData = getSelectedTierDtls();\r\n var tempLocDtl = lodash.find(table.LocDtl, {\r\n 'TypeOfWorkLocation': locData.TypeOfWorkLocation\r\n });\r\n if (tempLocDtl)\r\n tempLocDtl.data = lodash.concat(tempLocDtl.data, locData.data);\r\n else\r\n table.LocDtl.push(locData);\r\n\r\n table.TotQty = lodash.sumBy(tempLocDtl.data, 'PowQty');\r\n } else {\r\n table = {\r\n IOCA_Id: vm.item.selectedIoca.Id,\r\n IOCA_Code: vm.item.selectedIoca.Code + '-' + vm.item.selectedContractorScope.Code,\r\n IOCA_LongDes: vm.contScopeStr,\r\n TypeName: vm.item.selectedTypeOfCA.TypeName,\r\n TypeId: vm.item.selectedTypeOfCA.TypeId,\r\n UnitName: vm.item.selectedIoca.UnitName,\r\n SpecialNote: vm.SpecialNote,\r\n ContScope: vm.item.selectedContractorScope.Code,\r\n LocDtl: []\r\n }\r\n var locData = getSelectedTierDtls();\r\n table.LocDtl.push(locData);\r\n table.TotQty = lodash.sumBy(locData.data, 'PowQty');\r\n if (vm.contScopeStr != null || vm.contScopeStr != undefined) {\r\n vm.workOrderIocaList.push(angular.copy(table));\r\n vm.item.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedContractorScope = null;\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n clearTierSelection();\r\n } else {\r\n $rootScope.showToaster('error', 'Please Enter Description for' + vm.item.selectedContractorScope.ScopeName + 'Contractor Scope', \"IOCA Master\");\r\n }\r\n\r\n }\r\n\r\n if (vm.isEditing == true && vm.rfqData && table && vm.contScopeStr != null) {\r\n table.ModifiedBy = loggedUserDtl.UserId;\r\n table.RfqId = vm.rfqData.RfqId;\r\n table.LocDtl = getTierIdAsCommaSeprated(table);\r\n RFQService.addIoca(table).then(function(res) {\r\n if (res.status === 200) {\r\n vm.item.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedContractorScope = null;\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n clearTierSelection();\r\n // vm.workOrderIocaList = res.data;\r\n // viewWorkOrder();\r\n $rootScope.showToaster('success', res.data.Message, \"DWO IOCA Details\");\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"DWO IOCA Details\");\r\n }\r\n })\r\n } else if (vm.contScopeStr == null) {\r\n $rootScope.showToaster('error', 'Please Enter Description for' + ' ' + vm.item.selectedContractorScope.ScopeName + ' ' + 'Contractor Scope', \"IOCA Master\");\r\n }\r\n getBoQTypeOfCAListBySubcategoryId(vm.item.selectedSubCategory.SubCategoryId)\r\n getApprovedContractor();\r\n }\r\n\r\n // function Total(row) {\r\n // vm.grandTotal = 0;\r\n // if (row.UnitRate != undefined && row.Tax != undefined) {\r\n // if (vm.item.selectedStatus.id == 3) {\r\n // row.total = (((row.UnitRate) - 0) * (((row.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n // }\r\n // else {\r\n // var totalQuantity = row.TotQty;\r\n // row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n // }\r\n // for (var i in vm.workOrderIocaList) {\r\n // var totalRate = vm.workOrderIocaList[i].total;\r\n // vm.grandTotal += totalRate;\r\n // }\r\n // }\r\n // }\r\n function Total(row) {\r\n vm.grandTotal = 0;\r\n if (vm.item.selectedStatus.id == 3) {\r\n\r\n if (row.UnitRate != undefined && row.Tax.Tax != undefined) {\r\n // var totalQuantity = row.TotQty;\r\n row.total = ((((row.UnitRate) - 0)) * (((row.Tax.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n }\r\n } else if (row.UnitRate != undefined && row.Tax.Tax != undefined && row.TotQty != undefined) {\r\n var totalQuantity = row.TotQty;\r\n row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n }\r\n for (var i in vm.workOrderIocaList) {\r\n var totalRate = vm.workOrderIocaList[i].total;\r\n vm.grandTotal += totalRate;\r\n }\r\n\r\n }\r\n\r\n function getTierIdAsCommaSeprated(iocaDtl) {\r\n var tierIdStr = '';\r\n lodash.forEach(iocaDtl.LocDtl, function(loc) {\r\n var tempStr = lodash.map(loc.data, 'TierId').join(',');\r\n tierIdStr += tempStr + ',';\r\n });\r\n return tierIdStr.substring(0, tierIdStr.length - 1);\r\n }\r\n\r\n function remove(row) {\r\n if (vm.rfqData) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'Are sure you want to delete current row.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n var obj = {\r\n RfqId: vm.rfqData.RfqId,\r\n IOCA_Id: row.IOCA_Id\r\n }\r\n RFQService.removeIoca(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.workOrderIocaList = res.data;\r\n viewWorkOrder();\r\n $rootScope.showToaster('success', 'Delete Ioca Detail', \"Direct Work Order\");\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Direct Work Order\");\r\n }\r\n })\r\n })\r\n } else {\r\n vm.workOrderIocaList.splice(row, 1)\r\n }\r\n }\r\n\r\n function getRfqTemplate(callback) {\r\n vm.RFQTemplateList = [];\r\n vm.rfqTemplate.selectedRFQTemplate = null;\r\n var obj = {\r\n RfqTypeCode: vm.item.selectedRFQType.Code,\r\n TempId: vm.rfqTemplate.selectedTemplate.TempId,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n TypeofContractId: vm.rfqTemplate.selectedContract.Id,\r\n FieldofConstructionId: (vm.item.selectedFOC != undefined) ? vm.item.selectedFOC.FieldofConstructionId : null,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 2) {\r\n obj.CategoryId = (vm.item.selectedCategory != undefined) ? vm.item.selectedCategory.CategoryId : null\r\n }\r\n if (vm.rfqTemplate.selectedTemplate.TempId === 3) {\r\n obj.CategoryId = (vm.item.selectedCategory != undefined) ? vm.item.selectedCategory.CategoryId : null\r\n obj.SubCategoryId = (vm.item.selectedSubCategory != undefined) ? vm.item.selectedSubCategory.SubCategoryId : null\r\n }\r\n RFQTemplateService.getCopyTemplate(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RFQTemplateList = res.data;\r\n if (callback)\r\n callback();\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Tempalte\");\r\n });\r\n\r\n }\r\n // TERMS AND CONDITION\r\n function GetallContent(Id) {\r\n RFQContentTemplateService.getcontentforRFQ(Id).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContentList = res.data.getContentforRFQ;\r\n vm.TemplateList = res.data.getTemplateValue;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ Terms and Condition\");\r\n });\r\n }\r\n\r\n function getApprovedContractor(callback) {\r\n debugger;\r\n vm.TypeIdList = [];\r\n // vm.selectedContractor = null;\r\n for (var i in vm.workOrderIocaList) {\r\n vm.con = {}\r\n vm.con.TypeId = vm.workOrderIocaList[i].TypeId\r\n var except = lodash.includes(lodash.map(vm.TypeIdList, \"TypeId\"), vm.con.TypeId);\r\n if (!except) {\r\n vm.TypeIdList.push(vm.con.TypeId);\r\n }\r\n }\r\n\r\n vm.TypeId = vm.TypeIdList.join(',')\r\n var obj = {\r\n RfqType: vm.item.selectedRFQType.Code,\r\n ModifiedBy: loggedUserDtl.UserId,\r\n TypeId: vm.TypeId\r\n }\r\n RFQService.GetContractorByRfq(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (callback);\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n\r\n\r\n function getDrawingDescription(PrjId, callback) {\r\n DrawingUpoadService.getAllDrawingApproved(PrjId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data\r\n for (var i in vm.DescriptionList) {\r\n vm.DescriptionList[i].Description = vm.DescriptionList[i].ProjectCode + '-' +\r\n vm.DescriptionList[i].DrawingCode + '-' + vm.DescriptionList[i].SubjectDrawingCode + '-' + vm.DescriptionList[i].TierName + '-' +\r\n vm.DescriptionList[i].DrawingTitle + '-' + 'RE' + '-' + vm.DescriptionList[i].CurrentRevision\r\n }\r\n if (callback);\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n\r\n }\r\n\r\n // DRAWING UPLOAD\r\n\r\n $scope.fileChanged = function(event) {\r\n if (event)\r\n vm.selectedFile = event.target.files[0];\r\n }\r\n\r\n function addQuotation() {\r\n if (!vm.isEditing) {\r\n vm.Quotation = {\r\n File: vm.selectedFile,\r\n FileName: vm.selectedFile.name,\r\n }\r\n vm.showFile = true;\r\n } else {\r\n vm.Quotation = {\r\n File: vm.selectedFile,\r\n FileName: vm.selectedFile.name,\r\n }\r\n var formData = new FormData();\r\n formData.append('attachment', vm.Quotation.File);\r\n RfqContractorService.updateAttachment(formData, vm.rfqData.RfqId, vm.selectedContractor.ContractorId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Attached Successfully', \"Direct Work Order\");\r\n vm.showFile = true;\r\n vm.isLoading = false;\r\n vm.Quotation = { FileName: res.data };\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Direct Work Order\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Direct Work Order\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function addDescription() {\r\n for (var i in vm.selectedDrawingDes) {\r\n vm.desc = {}\r\n vm.desc.Description = vm.selectedDrawingDes[i].Description,\r\n vm.desc.ImageUrl = vm.selectedDrawingDes[i].ImageUrl,\r\n vm.desc.DrawingDocId = vm.selectedDrawingDes[i].DrawingDocId\r\n var except = lodash.includes(lodash.map(vm.TotalDescriptionList, \"DrawingDocId\"), vm.desc.DrawingDocId);\r\n if (!except) {\r\n vm.TotalDescriptionList.push(vm.desc);\r\n vm.DrawingDocList.push(vm.desc.DrawingDocId);\r\n }\r\n\r\n }\r\n vm.selectedDrawingDes = null;\r\n vm.DescriptionList = [];\r\n getDrawingDescription(vm.item.selectedProject.ProjectId);\r\n }\r\n\r\n\r\n function viewDrawing(row) {\r\n var url = $rootScope.endPoint + 'DrawingUpload/' + row.ImageUrl;\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function edit() {\r\n vm.showFile = true;\r\n vm.isEditing = true;\r\n vm.isView = false;\r\n if (vm.TotalDescriptionList != null)\r\n vm.Draw = 'Y'\r\n }\r\n\r\n function viewFile(row) {\r\n debugger\r\n var url = ''\r\n if (vm.isView || vm.isEditing) {\r\n url = $rootScope.endPoint + 'UploadedDocuments/ContractorDocs/' + row;\r\n } else {\r\n var blob = new Blob([row.File], {\r\n type: vm.selectedFile.type\r\n });\r\n url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function viewNote(row) {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/dwoSpecialNote.html',\r\n controller: 'WO_SpecialNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return row;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function(note) {\r\n row.SpecialNote = note;\r\n }, function() {});\r\n }\r\n\r\n function removeDescription(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'You are about to delete a drawing, please confirm.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n // if (!vm.isEditing)\r\n vm.TotalDescriptionList.splice(row, 1)\r\n // else {\r\n // DirectWorkOrderService.removeDrawingDescription(vm.rfqData.RfqId, row).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TotalDescriptionList = res.data;\r\n // $rootScope.showToaster('success', 'Drawing removed successfully', \"Direct Work Order\");\r\n // } else if (res.status === 400) {\r\n // $rootScope.showToaster('error', res.Message, \"Direct Work Order\");\r\n // } else if (res.status === 500) {\r\n // $rootScope.showToaster('error', res.Message, \"Direct Work Order\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Cannot connect to server', \"Direct Work Order\");\r\n // })\r\n // }\r\n }, function() {});\r\n }\r\n\r\n function create() {\r\n vm.isFormOpen = true;\r\n vm.isAdd = false;\r\n vm.item = {};\r\n }\r\n\r\n vm.checkMobilization = function(mob) {\r\n if (mob > 10 || mob < 5) {\r\n dialogs.notify('Mobilization', 'The Value must be less than or equal to 10 & Greater than or equal to 5', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.Mobilization = null;\r\n }\r\n }\r\n\r\n function saveWorkOrder() {\r\n vm.DrawingDocId = vm.DrawingDocList.join(',')\r\n vm.contractorIdList = [];\r\n vm.contractor = {};\r\n vm.contractor.ContractorId = vm.selectedContractor.ContractorId\r\n vm.contractorIdList.push(vm.contractor);\r\n if (!vm.isEditing) {\r\n\r\n for (var i in vm.workOrderIocaList) {\r\n vm.workOrderIocaList[i].LocDtl = getTierIdAsCommaSeprated(vm.workOrderIocaList[i]);\r\n }\r\n\r\n for (var i in vm.workOrderIocaList) {\r\n vm.workOrderIocaList[i].Tax = vm.workOrderIocaList[i].Tax.Tax\r\n }\r\n var ReqArr = []\r\n\r\n for (var i in vm.TemplateList) {\r\n ReqArr.push({\r\n RequiredId: vm.TemplateList[i].RequiredId,\r\n TemplateValues: vm.TemplateList[i].TemplateValues,\r\n Values: vm.TemplateList[i].Values\r\n });\r\n\r\n }\r\n\r\n var obj = {\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Title: vm.Title,\r\n Subjects: vm.Subjects,\r\n Drawings: vm.DrawingDocId,\r\n Mobilization: (vm.Mobilization != undefined) ? vm.Mobilization : 0,\r\n Retention: vm.Retention,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n TDS: vm.TDS,\r\n MinPenalty: vm.MinPenalty,\r\n MaxPenalty: vm.MaxPenalty,\r\n Note: vm.Note,\r\n TotalWorkOrderAmount: vm.grandTotal,\r\n RfqTempId: vm.rfqTemplate.selectedRFQTemplate.RfQTempId,\r\n RfqScope: vm.item.selectedRFQType.Code,\r\n RfqOf: vm.item.selectedStatus.id,\r\n contentTemplateList: {\r\n \"ContentList\": vm.ContentList\r\n },\r\n RequiredValueList: {\r\n \"RequiredList\": ReqArr,\r\n RfqTempId: vm.rfqTemplate.selectedRFQTemplate.RfQTempId\r\n },\r\n // RfqIocaDetails: {\r\n RfqIocaDetails: vm.workOrderIocaList,\r\n // },\r\n ContractorList: {\r\n \"ContList\": vm.contractorIdList\r\n },\r\n UserId: loggedUserDtl.UserId\r\n\r\n }\r\n var formData = new FormData();\r\n formData.append('attachment', vm.selectedFile);\r\n formData.append('data', JSON.stringify(obj))\r\n DirectWorkOrderService.AddWorkOrderDetails(formData).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Added Successfully', \"Work Order\");\r\n vm.isEditing = false;\r\n vm.saveBtn = true;\r\n vm.isView = true;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Insert Work Order \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.saveBtn = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Insert Work Order \", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n } else {\r\n\r\n var ReqArr = []\r\n\r\n for (var i in vm.TemplateList) {\r\n ReqArr.push({\r\n RequiredId: vm.TemplateList[i].RequiredId,\r\n TemplateValues: vm.TemplateList[i].TemplateValues,\r\n Values: vm.TemplateList[i].Values\r\n });\r\n\r\n }\r\n for (var i in vm.workOrderIocaList) {\r\n vm.workOrderIocaList[i].Tax = vm.workOrderIocaList[i].Tax.Tax\r\n }\r\n\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Title: vm.Title,\r\n Subjects: vm.Subjects,\r\n Mobilization: (vm.Mobilization != undefined) ? vm.Mobilization : 0,\r\n Retention: parseFloat(vm.Retention),\r\n TotalWorkOrderAmount: vm.grandTotal,\r\n TDS: vm.TDS,\r\n BillId: vm.rfqTemplate.selectedTypeofbill.BillId,\r\n MinPenalty: vm.MinPenalty,\r\n MaxPenalty: vm.MaxPenalty,\r\n SenderNote: vm.Note,\r\n Drawings: vm.DrawingDocId,\r\n RequiredValueList: {\r\n \"RequiredList\": ReqArr,\r\n RfqTempId: vm.rfqTemplate.selectedRFQTemplate.RfQTempId\r\n },\r\n ContractorList: {\r\n \"ContList\": vm.contractorIdList\r\n },\r\n RfqIocaDetails: vm.workOrderIocaList,\r\n UserId: loggedUserDtl.UserId\r\n\r\n }\r\n\r\n DirectWorkOrderService.UpdateWorkOrderDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Updated Successfully', \"Direct Work Order\");\r\n vm.isEditing = false;\r\n vm.isView = true;\r\n vm.saveBtn = true;\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Update Direct Work Order\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.saveBtn = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"Can't Update Direct Work Order\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n }\r\n\r\n function getRfqDataByRfqId() {\r\n DirectWorkOrderService.GetRfqDetails(vm.rfqData.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RateDetails = res.data.RateDetials;\r\n vm.workOrderIocaList = vm.RateDetails.RfqIocaDetails;\r\n vm.TermsAndConditions = vm.RateDetails.TermsAndConditions;\r\n vm.RfqDetails = res.data.RfqDetails;\r\n if (vm.isView === true)\r\n viewWorkOrder();\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function viewWorkOrder() {\r\n vm.showFile = true;\r\n vm.grandTotal = 0;\r\n for (var i in vm.CompanyList) {\r\n if (vm.CompanyList[i].CompanyId == vm.rfqData.CompanyId) {\r\n vm.item.selectedCompany = vm.CompanyList[i];\r\n }\r\n }\r\n\r\n getProjectByCompanyId(vm.rfqData.CompanyId, function() {\r\n for (var i in vm.ProjectList) {\r\n if (vm.ProjectList[i].ProjectId == vm.rfqData.ProjectId) {\r\n vm.item.selectedProject = vm.ProjectList[i];\r\n }\r\n }\r\n\r\n getDrawingDescription(vm.rfqData.ProjectId, function() {\r\n var arr = (vm.RfqDetails.Drawings).split(',');\r\n for (var i in vm.DescriptionList) {\r\n for (var j in arr) {\r\n var DrawingId = parseInt(arr[j])\r\n if (vm.DescriptionList[i].DrawingDocId === DrawingId) {\r\n vm.DrawingDocList.push(vm.DescriptionList[i].DrawingDocId)\r\n vm.TotalDescriptionList.push(vm.DescriptionList[i])\r\n }\r\n }\r\n }\r\n })\r\n\r\n for (var i in vm.BoQTypeList) {\r\n if (vm.BoQTypeList[i].id == vm.RfqDetails.RfqOf) {\r\n vm.item.selectedStatus = vm.BoQTypeList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.workOrderIocaList) {\r\n vm.workOrderIocaList[i].LocDtl = JSON.parse(vm.workOrderIocaList[i].LocDtl)\r\n /// Total(vm.workOrderIocaList[i]);\r\n if (vm.workOrderIocaList[i].UnitRate != undefined && vm.workOrderIocaList[i].Tax != undefined && vm.workOrderIocaList[i].TotQty > 0) {\r\n var totalQuantity = vm.workOrderIocaList[i].TotQty;\r\n vm.workOrderIocaList[i].total = ((((totalQuantity) - 0) * ((vm.workOrderIocaList[i].UnitRate) - 0)) * (((vm.workOrderIocaList[i].Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n\r\n for (var c in vm.TaxList) {\r\n if (vm.TaxList[c].Tax === vm.workOrderIocaList[i].Tax) {\r\n vm.workOrderIocaList[i].Tax = vm.TaxList[c];\r\n }\r\n }\r\n } else if (vm.workOrderIocaList[i].UnitRate != undefined && vm.workOrderIocaList[i].Tax != undefined) {\r\n vm.workOrderIocaList[i].total = ((((vm.workOrderIocaList[i].UnitRate) - 0)) * (((vm.workOrderIocaList[i].Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n\r\n for (var c in vm.TaxList) {\r\n if (vm.TaxList[c].Tax === vm.workOrderIocaList[i].Tax) {\r\n vm.workOrderIocaList[i].Tax = vm.TaxList[c];\r\n }\r\n }\r\n }\r\n\r\n for (var j in vm.LocDtl) {\r\n vm.tier = vm.LocDtl[j].TierId\r\n }\r\n if (vm.tier == \"\")\r\n vm.nonLoc = true;\r\n else\r\n vm.nonLoc = false;\r\n }\r\n for (var k in vm.workOrderIocaList) {\r\n var totalRate = vm.workOrderIocaList[k].total;\r\n vm.grandTotal += totalRate;\r\n }\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == vm.RfqDetails.RfqScope) {\r\n vm.item.selectedRFQType = vm.rfqTypeList[i];\r\n }\r\n }\r\n\r\n\r\n\r\n for (var i in vm.TemplateRfqList) {\r\n if (vm.TemplateRfqList[i].TempId == vm.RfqDetails.TempId) {\r\n vm.rfqTemplate.selectedTemplate = vm.TemplateRfqList[i];\r\n }\r\n }\r\n\r\n getFOC(function() {\r\n for (var i in vm.focList) {\r\n if (vm.focList[i].FieldofConstructionId == vm.RfqDetails.FieldofConstructionId) {\r\n vm.item.selectedFOC = vm.focList[i];\r\n }\r\n }\r\n\r\n GetBoQCategoryByCountryId(vm.item.selectedProject.CountryId, vm.RfqDetails.FieldofConstructionId, function() {\r\n if (vm.RfqDetails.CategoryId || vm.RfqDetails.SubCategoryId) {\r\n for (var i in vm.CategoryList) {\r\n if (vm.CategoryList[i].CategoryId == vm.RfqDetails.CategoryId) {\r\n vm.item.selectedCategory = vm.CategoryList[i];\r\n }\r\n }\r\n\r\n getBoQSubCategoryCAListByCategoryId(vm.RfqDetails.CategoryId, function() {\r\n if (vm.RfqDetails.SubCategoryId) {\r\n for (var i in vm.SubCategoryList) {\r\n if (vm.SubCategoryList[i].SubCategoryId == vm.RfqDetails.SubCategoryId) {\r\n vm.item.selectedSubCategory = vm.SubCategoryList[i];\r\n }\r\n }\r\n getBoQTypeOfCAListBySubcategoryId(vm.RfqDetails.SubCategoryId);\r\n\r\n }\r\n })\r\n }\r\n })\r\n\r\n\r\n\r\n for (var i in vm.TypeofBillList) {\r\n if (vm.TypeofBillList[i].BillId == vm.RfqDetails.BillId) {\r\n vm.rfqTemplate.selectedTypeofbill = vm.TypeofBillList[i];\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id == vm.RfqDetails.TypeOfContract) {\r\n vm.rfqTemplate.selectedContract = vm.TypeofContractList[i];\r\n }\r\n }\r\n\r\n getApprovedContractor(function() {\r\n for (var i in vm.ContractorList) {\r\n if (vm.ContractorList[i].ContractorId == vm.RateDetails.ContractorId) {\r\n vm.selectedContractor = vm.ContractorList[i];\r\n }\r\n }\r\n });\r\n\r\n\r\n getRfqTemplate(function() {\r\n for (var i in vm.RFQTemplateList) {\r\n if (vm.RFQTemplateList[i].RfQTempId == vm.RfqDetails.RfqTempId) {\r\n vm.rfqTemplate.selectedRFQTemplate = vm.RFQTemplateList[i];\r\n }\r\n }\r\n\r\n\r\n\r\n // vm.workOrderIocaList = vm.RfqIocaDetails;\r\n vm.ContentList = vm.TermsAndConditions;\r\n var reqArray = JSON.parse(vm.RfqDetails.RequiredValueJson);\r\n vm.TemplateList = reqArray.RequiredList;\r\n vm.Quotation = vm.RateDetails.AttachmentUrl;\r\n // for (var i in vm.TemplateList) {\r\n // vm.TemplateList = vm.RfqDetails.RequiredValueJson.RequiredList[i];\r\n // vm.RfqTempId = vm.RfqDetails.RequiredValueJson.RfqTempId;\r\n // }\r\n\r\n\r\n vm.WorkOrderNo = vm.rfqData.WorkOrderNo;\r\n vm.Title = vm.rfqData.Title;\r\n vm.Subjects = vm.rfqData.Subjects;\r\n if (vm.RfqDetails.Mobilization != undefined) {\r\n vm.mob = 'Y';\r\n vm.Mobilization = vm.RfqDetails.Mobilization\r\n }\r\n\r\n vm.Retention = vm.RfqDetails.Retention,\r\n vm.TDS = vm.RfqDetails.TDS,\r\n vm.MinPenalty = vm.RfqDetails.MinPenalty,\r\n vm.MaxPenalty = vm.RfqDetails.MaxPenalty,\r\n vm.Note = vm.rfqData.Note;\r\n //vm.Subjects = vm.rfqData.Subjects;\r\n // RFQService.GetRfqDetails(vm.rfqData.RfqId).then(function (res) {\r\n\r\n // for (var i in vm.TotalDescriptionList) {\r\n // vm.TotalDescriptionList[i].DrawingDocId == parseInt((vm.RfqDetails.Drawings).split(','));\r\n // }\r\n\r\n\r\n // for (var i in vm.TotalDescriptionList) {\r\n // vm.TotalDescriptionList[i].Description = vm.TotalDescriptionList[i].ProjectCode + '-' +\r\n // vm.TotalDescriptionList[i].DrawingCode + '-' + vm.TotalDescriptionList[i].DrawingSubjectCode + '-' + vm.TotalDescriptionList[i].TierName + '-' +\r\n // vm.TotalDescriptionList[i].DrawingTitle + '-' + 'RE' + vm.TotalDescriptionList[i].CurrentRevision\r\n // }\r\n\r\n\r\n lodash.forEach(vm.workOrderIocaList, function(ioca) {\r\n var parsedLocDtl = ioca.LocDtl;\r\n var locDtlGroupByTypeOfWorkLoc = [];\r\n lodash.forEach(parsedLocDtl, function(loc) {\r\n var tierObj = lodash.find(locDtlGroupByTypeOfWorkLoc, {\r\n 'TypeOfWorkLocation': loc.TypeOfWorkLocation\r\n });\r\n var tempLocDtl = {};\r\n if (tierObj) {\r\n tierObj.TypeOfWorkLocation = loc.TypeOfWorkLocation;\r\n tierObj.data = lodash.concat(tierObj.data, genTierDetailObject(loc));\r\n } else {\r\n var tempLocDtl = {};\r\n tempLocDtl.TypeOfWorkLocation = loc.TypeOfWorkLocation;\r\n tempLocDtl.data = [];\r\n tempLocDtl.data.push(genTierDetailObject(loc));\r\n locDtlGroupByTypeOfWorkLoc.push(tempLocDtl);\r\n }\r\n })\r\n ioca.LocDtl = locDtlGroupByTypeOfWorkLoc;\r\n })\r\n\r\n //var temp = lodash.groupBy(locDtls, 'TypeOfWorkLocation');\r\n // }, function (err) { });\r\n\r\n return (vm.workOrderIocaList);\r\n return (vm.TotalDescriptionList);\r\n })\r\n\r\n\r\n })\r\n })\r\n }\r\n\r\n function back() {\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n function sendForApproval() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function reject() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom,\r\n fromPfa: false\r\n\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function Approve() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom,\r\n fromPfa: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function resubmit() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function block() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function cancel() {\r\n if (!vm.isEditing) {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n vm.item = {};\r\n vm.workOrderIocaList = [];\r\n vm.rfqTemplate = {};\r\n vm.ListContractor = [];\r\n vm.isFormOpen = true;\r\n resetForm();\r\n vm.selectedCategory = null;\r\n vm.selectedSubCategory = null;\r\n vm.selectedTypeOfCA = null;\r\n vm.item.selectedProjectIoca = [];\r\n vm.selectedTypeOfAttribute = null;\r\n $state.go($rootScope.previousState);\r\n });\r\n } else {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n vm.isView = true;\r\n vm.isEditing = false;\r\n // $state.go($rootScope.previousState); \r\n resetForm();\r\n viewWorkOrder();\r\n });\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.allTierData, function(tier) {\r\n tier.selectedTireValue = null;\r\n tier.Values = [];\r\n })\r\n }\r\n\r\n function clearIoca() {\r\n vm.item.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n clearTierSelection();\r\n vm.item.selectedIoca = null;\r\n vm.IOCAList = [];\r\n }\r\n\r\n function clearType() {\r\n clearIoca();\r\n vm.item.selectedTypeOfCA = null;\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.TypeOfCAList = [];\r\n }\r\n\r\n function clearSubcategory() {\r\n clearType();\r\n clearIoca();\r\n vm.item.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n }\r\n\r\n function clearCategory() {\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n vm.item.selectedCategory = null;\r\n vm.CategoryList = [];\r\n }\r\n\r\n\r\n function clearFoc() {\r\n clearCategory()\r\n clearSubcategory()\r\n clearType();\r\n clearIoca();\r\n vm.rfqTemplate.selectedTypeofbill = null;\r\n vm.item.selectedFOC = null;\r\n vm.focList = [];\r\n }\r\n\r\n function resetForm() {\r\n vm.directWOForm.$setUntouched();\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('DirectWorkOrderTableCtrl', DirectWorkOrderTableCtrl);\r\n\r\n /** @ngInject */\r\n function DirectWorkOrderTableCtrl($rootScope, lodash, dialogs, $http, $state, AuthenticationService,\r\n $scope, $filter, $window, DirectWorkOrderService, CompanyService, projectCreationService, RFQService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[0];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isLoading = true;\r\n vm.isFormOpen = false;\r\n $rootScope.isLogin = false;\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n vm.viewRfq = viewRfq;\r\n vm.DeleteWO = DeleteWO;\r\n vm.fromDraft = fromDraft;\r\n vm.getWorkOrderByProjectId = getWorkOrderByProjectId;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.fromBackforCorrection = fromBackforCorrection;\r\n vm.StatusId = $state.params.Status;\r\n // vm.wtn = $state.params.Status == 3;\r\n Init();\r\n\r\n function Init() {\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 }, { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 }, { MenuName: 'Waiting for Approval of Draft', StatusId: 3 }, { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 6 }\r\n ]\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.item.selectedProject = null;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.item.selectedProject = null;\r\n vm.ProjectList = [];\r\n }\r\n\r\n }\r\n\r\n function getWorkOrderByProjectId(ProjectId) {\r\n if (ProjectId) {\r\n if (vm.StatusId === 1) {\r\n DirectWorkOrderService.getAllDraft(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.workOrderList = res.data;\r\n if (!vm.workOrderList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Work Order available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Draft Work Order\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Draft Work Order\");\r\n });\r\n } else if (vm.StatusId === 3) {\r\n DirectWorkOrderService.getAllPFA(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.wtn = true;\r\n vm.waitingList = lodash.filter(res.data, { 'Status': 3 });\r\n vm.resubmittedList = lodash.filter(res.data, { 'Status': 2 });\r\n vm.isLoading = false;\r\n // if (!vm.waitingList.length > 0) {\r\n // dialogs.notify('Warning', '! There is no Work Order available for ' + vm.item.selectedProject.ProjectName, {\r\n // animation: true,\r\n // size: 'sm'\r\n // });\r\n // }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Pending for Approval Work Order\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Pending for Approval Work Order\");\r\n });\r\n } else if (vm.StatusId === 4) {\r\n DirectWorkOrderService.getAllApproval(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.workOrderList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.workOrderList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Work Order available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Approved Work Order\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Approved Work Order\");\r\n });\r\n } else if (vm.StatusId === 5) {\r\n DirectWorkOrderService.getAllBlock(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.workOrderList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.workOrderList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Work Order available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Blocked Work Order\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Blocked Work Order\");\r\n });\r\n } else if (vm.StatusId === 6) {\r\n DirectWorkOrderService.getAllBFC(ProjectId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.workOrderList = res.data;\r\n vm.isLoading = false;\r\n if (!vm.workOrderList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Work Order available for ' + vm.item.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Back for Correction Work Order\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Back for Correction Work Order\");\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n function viewRfq(row) {\r\n if (row.WorkOrderType == 'DWO') {\r\n var data = {\r\n isEditing: true,\r\n RfqData: row,\r\n isView: true\r\n };\r\n\r\n $state.go('directWorkOrder', {\r\n data: data\r\n })\r\n } else {\r\n var data = {\r\n isEditing: true,\r\n RfqData: row,\r\n isView: true\r\n };\r\n\r\n $state.go('preparationofDraftWO', {\r\n data: data\r\n })\r\n }\r\n\r\n }\r\n\r\n function fromDraft() {\r\n vm.wtn = false;\r\n vm.StatusId = 3\r\n vm.workOrderList = vm.waitingList;\r\n }\r\n\r\n function fromBackforCorrection() {\r\n vm.wtn = false;\r\n vm.StatusId = 2\r\n vm.workOrderList = vm.resubmittedList;\r\n }\r\n vm.back = function() {\r\n vm.wtn = true;\r\n }\r\n\r\n function DeleteWO(row) {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to Delete this WorkOrder', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n DirectWorkOrderService.DeleteWO(row.WorkOrderId).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Deleted Successfully', \"Work Order\");\r\n getWorkOrderByProjectId(vm.item.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('WO_SpecialNoteCtrl', WO_SpecialNoteCtrl);\r\n\r\n /** @ngInject */\r\n function WO_SpecialNoteCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.SaveSpecialNote = function () {\r\n if (items) {\r\n items.SpecialNotes = vm.wrk.SpecialNotes\r\n }\r\n $uibModalInstance.close(items.SpecialNotes);\r\n \r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('WO_SenderNoteCtrl', WO_SenderNoteCtrl);\r\n\r\n /** @ngInject */\r\n function WO_SenderNoteCtrl($scope, $filter, $http, $rootScope, items, lodash, $uibModalInstance, dialogs, $state, DirectWorkOrderService,\r\n AuthenticationService) {\r\n var vm = this;\r\n vm.noOfRows = \"10\";\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n $rootScope.isLogin = false;\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.SaveSenderNote = function () {\r\n var obj = {\r\n WorkOrderId: items.WorkOrderId,\r\n SenderNotes: vm.SenderNotes\r\n }\r\n if (items.Status === 1) {\r\n DirectWorkOrderService.SendForApprovalWO(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Send Work Order ', \"Work Order\");\r\n $uibModalInstance.close();\r\n $state.go('directWorkOrderPfA');\r\n } else {\r\n $rootScope.showToaster('error', 'Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n });\r\n }\r\n else if ((items.Status === 2 || items.Status === 3) && items.fromPfa == true) {\r\n DirectWorkOrderService.ApproveWO(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', 'Approved', \"Work Order\");\r\n $uibModalInstance.close();\r\n $state.go('directWorkOrderApprove');\r\n } else if (res.data.IsSuccess === false && res.data.Data != undefined) {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Order\");\r\n var location = '';\r\n for (var i in res.data.Data) {\r\n location = location + res.data.Data[i].Locations + '
';\r\n }\r\n var confirm = dialogs.notify(res.data.Message, location, { animation: true, size: 'md' });\r\n notify.result.then(function () { });\r\n } \r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n });\r\n }\r\n else if ((items.Status === 3 || items.Status === 2) && items.fromPfa == false) {\r\n DirectWorkOrderService.RejectWO(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Rejected', \"Work Order\");\r\n $uibModalInstance.close();\r\n $state.go('directWorkOrderBfC');\r\n } else {\r\n $rootScope.showToaster('error', 'Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n });\r\n }\r\n else if (items.Status === 6) {\r\n DirectWorkOrderService.ResubmitWO(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Resubmitted', \"Work Order\");\r\n $uibModalInstance.close();\r\n $state.go('directWorkOrderPfA');\r\n } else {\r\n $rootScope.showToaster('error', 'Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n });\r\n }\r\n else if (items.Status === 4) {\r\n DirectWorkOrderService.BlockWO(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', 'Blocked', \"Work Order\");\r\n $uibModalInstance.close();\r\n $state.go('directWorkOrderBlock');\r\n } else {\r\n $rootScope.showToaster('error', 'Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }\r\n\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.workOrder')\r\n .controller('PreparationofDraftWOCtrl', PreparationofDraftWOCtrl);\r\n\r\n /** @ngInject */\r\n function PreparationofDraftWOCtrl($http, $window, $uibModal, $state, $rootScope, lodash, dialogs, DirectWorkOrderService, WorkOrderService, RfqContractorService, DrawingUpoadService) {\r\n var vm = this;\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n vm.noOfRowsTerms = vm.rowCountOptions[1];\r\n vm.currentPageTerm = 1;\r\n vm.rembemberCurrentPageTerms = function(num) {\r\n vm.currentPageTerm = num;\r\n }\r\n vm.isLoading = true;\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.getRfqForDraftWO = getRfqForDraftWO;\r\n vm.Total = Total;\r\n vm.rfq = {};\r\n vm.LetterList = [];\r\n vm.SignatureList = [];\r\n vm.DescriptionList = [];\r\n vm.TotalDescriptionList = [];\r\n vm.addAttachDoc = addAttachDoc;\r\n vm.DrawingDocList = [];\r\n vm.ContractorRfqIocaList = [];\r\n vm.removeDrawing = removeDrawing;\r\n vm.viewDrawing = viewDrawing;\r\n vm.Save = Save;\r\n vm.canShow = canShow;\r\n vm.isAdd = false;\r\n vm.sendForApproval = sendForApproval;\r\n vm.reject = reject;\r\n // vm.getFinalisedContractor =getFinalisedContractor;\r\n vm.resubmit = resubmit;\r\n vm.block = block;\r\n vm.Approve = Approve;\r\n vm.edit = edit;\r\n vm.cancel = cancel;\r\n vm.showFile = false;\r\n\r\n init()\r\n\r\n function init() {\r\n debugger;\r\n if ($state.params.data) {\r\n vm.isFormOpen = true;\r\n vm.isEditing = true;\r\n vm.isView = $state.params.data.isView;\r\n vm.isAdd = !vm.isView;\r\n vm.rfqData = $state.params.data.RfqData;\r\n vm.stateFrom = parseInt($state.params.data.RfqData.Status);\r\n GetRfqDetails(vm.rfqData.RfqId);\r\n vm.StatusId = vm.stateFrom;\r\n } else {\r\n vm.isAdd = true;\r\n\r\n }\r\n vm.MenuNameList = [{ MenuName: 'Draft', StatusId: 1 }, { MenuName: 'Waiting for Approval of Resubmitted', StatusId: 2 }, { MenuName: 'Waiting for Approval of Draft', StatusId: 3 }, { MenuName: 'Approved', StatusId: 4 },\r\n { MenuName: 'Blocked', StatusId: 5 }, { MenuName: 'Back for Correction', StatusId: 6 }\r\n ]\r\n filterButtons();\r\n if ($state.params.data == undefined) {\r\n var contractorId = '';\r\n var ActionBy = $rootScope.userId\r\n RfqContractorService.getAllFinalised(ActionBy, contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n if (res.data.length > 0) {\r\n res.data = lodash.groupBy(res.data, 'CompanyName');\r\n\r\n for (var key in res.data) {\r\n res.data[key] = lodash.groupBy(res.data[key], 'ProjectName');\r\n }\r\n\r\n vm.FinalisedContractorList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.notify('Warning', 'No Finalised Contractor available', { animation: true, size: 'sm' });\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n\r\n\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TemplateRfqList = [{\r\n TemplatelistName: 'Field of Construction',\r\n TempId: 1\r\n }, {\r\n TemplatelistName: 'Category of CA',\r\n TempId: 2\r\n }, {\r\n TemplatelistName: 'SubCategory of CA',\r\n TempId: 3\r\n }]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n }, {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n }\r\n\r\n\r\n function GetRfqDetails(rfqId) {\r\n vm.isLoading = true;\r\n DirectWorkOrderService.GetRfqDetails(rfqId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.WORfqList = res.data;\r\n vm.isLoading = false;\r\n vm.ContractorRfqTermsandContList = vm.WORfqList.RateDetials.TermsAndConditions;\r\n vm.rfq.RfqId = vm.WORfqList.RateDetials.RfqId\r\n for (var i in vm.WORfqList.RateDetials.RfqIocaDetails) {\r\n vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl = JSON.parse(vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl)\r\n vm.ContractorRfqIocaList[i] = vm.WORfqList.RateDetials.RfqIocaDetails[i]\r\n vm.Total(vm.ContractorRfqIocaList[i]);\r\n }\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == vm.WORfqList.RfqDetails.RfqScope) {\r\n vm.rfq.rfqTypeName = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n vm.rfq.TempId = vm.WORfqList.RfqDetails.TempId\r\n for (var i in vm.TemplateRfqList) {\r\n if (vm.TemplateRfqList[i].TempId === vm.WORfqList.RfqDetails.TempId) {\r\n vm.rfq.TemplatelistName = vm.TemplateRfqList[i].TemplatelistName\r\n }\r\n }\r\n vm.rfq.BillId = vm.WORfqList.RfqDetails.BillId\r\n for (var i in vm.TypeofBillList) {\r\n if (vm.TypeofBillList[i].BillId === vm.WORfqList.RfqDetails.BillId) {\r\n vm.rfq.TypeofBillName = vm.TypeofBillList[i].TypeofBillName\r\n }\r\n }\r\n vm.rfq.TypeofContract = vm.WORfqList.RfqDetails.TypeOfContract\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === vm.WORfqList.RfqDetails.TypeOfContract) {\r\n vm.rfq.TypeofContractName = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n vm.rfq.LastSubDate = new Date(vm.WORfqList.RfqDetails.LastSubDate)\r\n vm.rfq.RfqNo = vm.WORfqList.RfqDetails.RfqNo\r\n // vm.rfq.Subject = vm.WORfqList.RfqDetails.Subjectrfq\r\n vm.rfq.Title = vm.WORfqList.RfqDetails.Title\r\n vm.rfq.Mobilization = vm.WORfqList.RfqDetails.Mobilization,\r\n vm.rfq.Retention = vm.WORfqList.RfqDetails.Retention,\r\n vm.rfq.TDS = vm.WORfqList.RfqDetails.TDS,\r\n vm.rfq.Title = vm.WORfqList.RfqDetails.Title;\r\n vm.rfq.Subjects = vm.WORfqList.RfqDetails.Subjects;\r\n vm.rfq.MinPenalty = vm.WORfqList.RfqDetails.MinPenalty,\r\n vm.rfq.MaxPenalty = vm.WORfqList.RfqDetails.MaxPenalty,\r\n vm.rfq.Note = vm.rfqData.Note\r\n vm.rfq.ContractorName = vm.WORfqList.RateDetials.ContractorName\r\n vm.rfq.ContractorId = vm.WORfqList.RateDetials.ContractorId\r\n\r\n if (res.data.RateDetials.AttachmentUrl != undefined && res.data.RateDetials.AttachmentUrl != \"\") {\r\n vm.LetterList.push({ FileName: res.data.RateDetials.AttachmentUrl });\r\n vm.SignatureList.push({ FileName: res.data.RateDetials.DigitalSignUrl });\r\n }\r\n\r\n getDrawingDescription(vm.rfqData.ProjectId, function() {\r\n var arr = (vm.WORfqList.RfqDetails.Drawings).split(',');\r\n for (var i in vm.DescriptionList) {\r\n for (var j in arr) {\r\n var DrawingId = parseInt(arr[j])\r\n if (vm.DescriptionList[i].DrawingDocId === DrawingId) {\r\n vm.DrawingDocList.push(vm.DescriptionList[i].DrawingDocId)\r\n vm.TotalDescriptionList.push(vm.DescriptionList[i])\r\n }\r\n }\r\n }\r\n })\r\n // getFinalisedContractor();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n\r\n function getRfqForDraftWO(row) {\r\n vm.isFormOpen = true;\r\n vm.rfq.RfqId = row.RfqId\r\n vm.rfq.RfqTypeCode = row.RfqTypeCode\r\n vm.rfq.ProjectName = row.ProjectName\r\n vm.rfq.ProjectId = row.ProjectId\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == row.RfqTypeCode) {\r\n vm.rfq.rfqTypeName = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n vm.rfq.TempId = row.TempId\r\n for (var i in vm.TemplateRfqList) {\r\n if (vm.TemplateRfqList[i].TempId === row.TempId) {\r\n vm.rfq.TemplatelistName = vm.TemplateRfqList[i].TemplatelistName\r\n }\r\n }\r\n vm.rfq.BillId = row.BillId\r\n for (var i in vm.TypeofBillList) {\r\n if (vm.TypeofBillList[i].BillId === row.BillId) {\r\n vm.rfq.TypeofBillName = vm.TypeofBillList[i].TypeofBillName\r\n }\r\n }\r\n vm.rfq.TypeofContract = row.TypeofContract\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === row.TypeofContract) {\r\n vm.rfq.TypeofContractName = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n vm.rfq.LastSubDate = new Date(row.LastSubDate)\r\n vm.rfq.RfqNo = row.RfqNo\r\n vm.rfq.Subjects = row.Subjects\r\n vm.rfq.Title = row.Title\r\n vm.rfq.Mobilization = row.Mobilization\r\n vm.rfq.TDS = row.TDS\r\n vm.rfq.Retention = row.Retention\r\n vm.rfq.MinPenalty = row.MinPenalty\r\n vm.rfq.MaxPenalty = row.MaxPenalty\r\n vm.rfq.FinalisedContractor = row.FinalisedContractor\r\n vm.rfq.ContractorName = row.ContractorName\r\n\r\n var rfqId = row.RfqId;\r\n var contractorId = row.FinalisedContractor;\r\n RfqContractorService.getContRfqIocaDtls(rfqId, contractorId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ContractorRfqIocaList = res.data.RfqIocaDetails;\r\n for (var i in vm.ContractorRfqIocaList) {\r\n vm.ContractorRfqIocaList[i].LocDtl = JSON.parse(vm.ContractorRfqIocaList[i].LocDtl)\r\n vm.Total(vm.ContractorRfqIocaList[i]);\r\n }\r\n if (res.data.AttachmentUrl != undefined && res.data.AttachmentUrl != \"\") {\r\n vm.LetterList.push({ FileName: res.data.AttachmentUrl });\r\n vm.SignatureList.push({ FileName: res.data.DigitalSignUrl });\r\n }\r\n vm.ContractorRfqTermsandContList = res.data.TermsAndConditions;\r\n for (var i in vm.ContractorRfqTermsandContList) {\r\n vm.ContractorRfqTermsandContList[i].Agreed = angular.copy(vm.ContractorRfqTermsandContList[i].Agreed);\r\n }\r\n // for (var i in vm.ContractorRfqTermsandContList) {\r\n // vm.ContractorRfqTermsandContList[i].Agreed = (vm.ContractorRfqTermsandContList[i].Agreed) ? 'true' : 'false';\r\n // }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"RFQ\");\r\n }\r\n },\r\n function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"RFQ\");\r\n });\r\n\r\n getDrawingDescription(vm.rfq.ProjectId);\r\n }\r\n\r\n function getDrawingDescription(PrjId, callback) {\r\n DrawingUpoadService.getAllDrawingApproved(PrjId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.DescriptionList = res.data\r\n for (var i in vm.DescriptionList) {\r\n vm.DescriptionList[i].Description = vm.DescriptionList[i].ProjectCode + '-' +\r\n vm.DescriptionList[i].DrawingCode + '-' + vm.DescriptionList[i].DrawingSubjectCode + '-' + vm.DescriptionList[i].TierName + '-' +\r\n vm.DescriptionList[i].DrawingTitle + '-' + 'Re' + '-' + vm.DescriptionList[i].CurrentRevision\r\n }\r\n } else {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', \"\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n });\r\n }\r\n\r\n function Total(row) {\r\n vm.grandTotal = 0;\r\n if (row.UnitRate != undefined && row.Tax != undefined) {\r\n var totalQuantity = row.TotQty;\r\n row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n }\r\n for (var i in vm.ContractorRfqIocaList) {\r\n var totalRate = vm.ContractorRfqIocaList[i].total;\r\n vm.grandTotal += totalRate;\r\n }\r\n\r\n }\r\n\r\n function filterButtons() {\r\n switch (vm.stateFrom) {\r\n case 1:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'send', 'cancel'];\r\n break;\r\n case 2:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'reject', 'approve', 'cancel'];\r\n break;\r\n case 3:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'reject', 'approve', 'cancel'];\r\n break;\r\n case 4:\r\n vm.btnsToShow = ['back', 'block'];\r\n break;\r\n case 5:\r\n vm.btnsToShow = ['back'];\r\n break;\r\n case 6:\r\n vm.btnsToShow = ['back', 'edit', 'save', 'resubmit', 'cancel'];\r\n break;\r\n }\r\n\r\n }\r\n\r\n function cancel() {\r\n var confirm = dialogs.confirm('Confirmation',\r\n 'Are you sure you want to leave this page.(Leaving this page will loose your changes.)',\r\n\r\n {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n\r\n confirm.result.then(function() {\r\n $state.go('preparationofWOHome');\r\n });\r\n }\r\n\r\n function canShow(btnName) {\r\n return lodash.includes(vm.btnsToShow, btnName);\r\n }\r\n\r\n function addAttachDoc() {\r\n // if (!vm.isEditing) {\r\n\r\n for (var i in vm.selectedDrawingDes) {\r\n vm.desc = {}\r\n vm.desc.Description = vm.selectedDrawingDes[i].Description,\r\n vm.desc.ImageUrl = vm.selectedDrawingDes[i].ImageUrl,\r\n vm.desc.DrawingDocId = vm.selectedDrawingDes[i].DrawingDocId\r\n var except = lodash.includes(lodash.map(vm.TotalDescriptionList, \"DrawingDocId\"), vm.desc.DrawingDocId);\r\n if (!except) {\r\n vm.TotalDescriptionList.push(vm.desc);\r\n vm.DrawingDocList.push(vm.desc.DrawingDocId);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function viewDrawing(row) {\r\n var url = ''\r\n // if (vm.isView || vm.isEditing) {\r\n url = $rootScope.endPoint + 'DrawingUpload/' + row.ImageUrl;\r\n // } else {\r\n // var blob = new Blob([row.File], {\r\n // type: vm.selectedFile.type\r\n // });\r\n // url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n // }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function removeDrawing(row) {\r\n var confirm = dialogs.confirm('Confirm',\r\n 'You are about to delete a drawing, please confirm.', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n confirm.result.then(function() {\r\n // if (!vm.isEditing)\r\n vm.TotalDescriptionList.splice(row, 1)\r\n // else {\r\n // DirectWorkOrderService.removeDrawingDescription(vm.rfq.RfqId, row).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.TotalDescriptionList = res.data;\r\n // $rootScope.showToaster('success', 'Drawing removed successfully', \"Work Order\");\r\n // } else if (res.status === 400) {\r\n // $rootScope.showToaster('error', res.Message, \"Work Order\");\r\n // } else if (res.status === 500) {\r\n // $rootScope.showToaster('error', res.Message, \"Work Order\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Cannot connect to server', \"Direct Work Order\");\r\n // })\r\n // }\r\n }, function() {});\r\n }\r\n vm.back = function() {\r\n if (!vm.isEditing) {\r\n vm.isFormOpen = false;\r\n } else {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n\r\n vm.back2 = function() {\r\n $state.go($rootScope.previousState);\r\n }\r\n\r\n function edit() {\r\n vm.isEditing = true;\r\n vm.isView = false;\r\n }\r\n\r\n function viewFile(row) {\r\n var url = ''\r\n if (vm.isView || vm.isEditing) {\r\n url = $rootScope.endPoint + 'UploadedDocuments/ContractorDocs/' + row;\r\n } else {\r\n var blob = new Blob([row.File], {\r\n type: vm.selectedFile.type\r\n });\r\n url = (window.URL || window.webkitURL).createObjectURL(blob);\r\n }\r\n $window.open(url, \"_blank\");\r\n }\r\n\r\n function Save() {\r\n vm.DrawingDocId = vm.DrawingDocList.join(',');\r\n var obj = {\r\n RfqId: vm.rfq.RfqId,\r\n Note: vm.rfq.Note,\r\n TotalWorkOrderAmount: vm.grandTotal,\r\n Drawings: vm.DrawingDocId\r\n }\r\n\r\n if (!vm.isEditing) {\r\n WorkOrderService.AddWorkOrder(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Order\");\r\n init();\r\n vm.back();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Order\");\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n } else {\r\n obj.WorkOrderId = vm.rfqData.WorkOrderId\r\n WorkOrderService.UpdateWorkOrder(obj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Work Order\");\r\n init();\r\n vm.back();\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Work Order\");\r\n }\r\n\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n }\r\n\r\n\r\n function sendForApproval() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function reject() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom,\r\n fromPfa: false\r\n\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function Approve() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom,\r\n fromPfa: true\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function resubmit() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n\r\n function block() {\r\n var obj = {\r\n WorkOrderId: vm.rfqData.WorkOrderId,\r\n Status: vm.stateFrom\r\n }\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/workOrder/directWorkOrder/statusHistory.html',\r\n controller: 'WO_SenderNoteCtrl',\r\n controllerAs: 'vm',\r\n size: 'md',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return obj;\r\n }\r\n\r\n }\r\n });\r\n modalInstance.result.then(function() {}, function() {});\r\n }\r\n }\r\n})();\n/* Minified js for jQuery BackTop */\r\n!function(o){o.fn.backTop=function(e){var n=this,i=o.extend({position:400,speed:500,color:\"white\"},e),t=i.position,c=i.speed,d=i.color;n.addClass(\"white\"==d?\"white\":\"red\"==d?\"red\":\"green\"==d?\"green\":\"black\"),n.css({right:40,bottom:40,position:\"fixed\"}),o(document).scroll(function(){var e=o(window).scrollTop();e>=t?n.fadeIn(c):n.fadeOut(c)}),n.click(function(){o(\"html, body\").animate({scrollTop:0},{duration:1200})})}}(jQuery);\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('AccountVocherCtrl', AccountVocherCtrl);\r\n\r\n /** @ngInject */\r\n function AccountVocherCtrl($scope, $window, $filter, $uibModal, $http, DirectWorkOrderService, $rootScope, WorkApprovalService, BillingService, lodash, dialogs, $state,\r\n AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = true;\r\n vm.isSave = false;\r\n $rootScope.isLogin = false;\r\n vm.isViewApprovalWO = false;\r\n vm.isViewVocher = false;\r\n vm.isPrintVocher = false;\r\n // vm.Total = Total;\r\n vm.GetRfqDetails = GetRfqDetails;\r\n vm.ContractorRfqIocaList = [];\r\n vm.wo = {};\r\n var loggedUser = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n debugger;\r\n Init()\r\n\r\n function Init() {\r\n BillingService.GetApprovedWorkApprovalForMobilization(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n if (res.data.length > 0) {\r\n res.data = lodash.groupBy(res.data, 'CompanyName');\r\n\r\n for (var key in res.data) {\r\n res.data[key] = lodash.groupBy(res.data[key], 'ProjectName');\r\n }\r\n\r\n vm.ApprovedWorkApprovalList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n vm.ApprovedWorkApprovalList = res.data;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n },\r\n {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }\r\n ]\r\n BillingService.GetTransactionList().then(function(res) {\r\n if (res.status === 200) {\r\n vm.PaymentmodeList = res.data;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Employee\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Employee\");\r\n });\r\n\r\n // vm.PaymentmodeList = [{ TranscationTypeId: 1, Payment: 'Cheque' }, { TranscationTypeId: 2, Payment: 'Demand Draft' }, { TranscationTypeId: 3, Payment: 'NEFT' }, { TranscationTypeId: 4, Payment: 'RTGS' }, { TranscationTypeId: 5, Payment: 'Cash' }]\r\n\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }\r\n ];\r\n }\r\n\r\n vm.viewWO = function(row) {\r\n vm.isViewApprovalWO = true;\r\n vm.wo = angular.copy(row);\r\n vm.wo.Title = angular.copy(row.Title);\r\n vm.wo.Subjects = angular.copy(row.Subjects);\r\n vm.wo.WorkOrderNo = angular.copy(row.WorkOrderNo);\r\n vm.wo.BillType = angular.copy(row.BillType);\r\n vm.wo.ContractorName = angular.copy(row.ContractorName);\r\n vm.wo.WorkOrderId = angular.copy(row.WorkOrderId);\r\n vm.wo.ProjectId = angular.copy(row.ProjectId);\r\n vm.wo.ContractorTypeName = angular.copy(row.ContractorTypeName);\r\n\r\n var TotalWorkOrderAmount = angular.copy(row.TotalWorkOrderAmount);\r\n var MoneyConv = parseFloat(vm.wo.TotalWorkOrderAmount).toFixed(2)\r\n\r\n //////////////////\r\n\r\n vm.wo.TotalWOAmount = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(MoneyConv)\r\n vm.wo.Mobilization = angular.copy(row.Mobilization);\r\n debugger;\r\n var PerMob = (parseFloat(vm.wo.Mobilization) / 100)\r\n var MobilizationAmount = (parseFloat(vm.wo.TotalWorkOrderAmount) * (parseFloat(PerMob)))\r\n vm.wo.MobiAmount = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(MobilizationAmount)\r\n\r\n vm.wo.MobilizationAmount = (MobilizationAmount != \"NaN\") ? parseFloat(MobilizationAmount).toFixed(2) : 0.00;\r\n vm.wo.MobilizationAdv = vm.wo.MobilizationAmount;\r\n var MobilizationAdvBal = parseFloat(vm.wo.MobilizationAmount) - parseFloat(vm.wo.MobilizationAdv)\r\n vm.wo.MobilizationAdvBal = MobilizationAdvBal.toFixed(2)\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == row.RfqScope) {\r\n vm.wo.TypeofWO = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id == row.TypeOfContract) {\r\n vm.wo.TypeOfContract = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n\r\n debugger;\r\n if (row.BillId == 2) {\r\n var date = new Date();\r\n var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n vm.wo.startDate = firstDay\r\n vm.wo.endDate = lastDay\r\n }\r\n }\r\n\r\n vm.checkAdvance = function(wo) {\r\n if (parseFloat(wo.MobilizationAdv) <= parseFloat(wo.MobilizationAmount) && parseFloat(wo.MobilizationAmount) > 0) {\r\n vm.wo.MobilizationAdv = wo.MobilizationAdv\r\n var MobilizationAdvBal = parseFloat(wo.MobilizationAmount) - parseFloat(vm.wo.MobilizationAdv)\r\n vm.wo.MobilizationAdvBal = MobilizationAdvBal.toFixed(2)\r\n } else {\r\n dialogs.notify('warning', \"Advance Amount should be in \" + parseFloat(wo.MobilizationAmount), { animation: true, size: 'sm' });\r\n vm.wo.MobilizationAdv = null;\r\n vm.wo.MobilizationAdvBal = null;\r\n }\r\n }\r\n vm.getBankDetails = function() {\r\n if (vm.wo.selectedPaymentmode) {\r\n vm.BankList = [];\r\n vm.wo.selectedBank = null;\r\n // if (vm.wo.selectedPaymentmode.TranscationTypeId == 1 || vm.wo.selectedPaymentmode.TranscationTypeId == 3 || vm.wo.selectedPaymentmode.TranscationTypeId == 4) {\r\n var obj = {\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n ProjectId: vm.wo.ProjectId,\r\n ActionBy: loggedUser.UserId\r\n }\r\n BillingService.GetBankDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.BankList = res.data;\r\n lodash.map(vm.BankList, function(e) {\r\n return e.BalDate = new Date()\r\n });\r\n lodash.map(vm.BankList, function(e) {\r\n return e.OpenBal = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(e.OpenBal)\r\n });\r\n lodash.map(vm.BankList, function(e) {\r\n return e.AvaiBal = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(e.AvaiBal)\r\n });\r\n lodash.map(vm.BankList, function(e) {\r\n return e.History = JSON.parse(e.History)\r\n });\r\n lodash.forEach(vm.BankList, function(e) {\r\n lodash.map(e.History, function(obj) {\r\n return obj.Amt = new Intl.NumberFormat('en-IN', { style: \"currency\", currency: \"INR\" }).format(obj.Amt)\r\n });\r\n });\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Bank Details\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Bank Details\");\r\n });\r\n // }\r\n }\r\n }\r\n\r\n vm.SaveMobilizationAdv = function(wo) {\r\n\r\n vm.isLoading = true;\r\n vm.isSave = true;\r\n var obj = {\r\n WorkOrderId: wo.WorkOrderId,\r\n AdvanceAmount: wo.MobilizationAdv,\r\n AdvanceBalance: wo.MobilizationAdvBal,\r\n NoOfInstallment: 0,\r\n Note: wo.Notes,\r\n Status: 4,\r\n ScopeType: 0,\r\n AdvanceType: 1,\r\n TypeofPayment: vm.wo.selectedPaymentmode.TranscationTypeId\r\n }\r\n\r\n if (vm.wo.selectedPaymentmode.TransactionTypeName == 'Cheque') {\r\n var Arr = {\r\n BankId: vm.wo.selectedBank.BankId,\r\n BankName: vm.wo.selectedBank.BankName,\r\n BranchName: vm.wo.selectedBank.Branch,\r\n AccountNo: vm.wo.selectedBank.AcNo,\r\n ChequeNo: vm.wo.ChequeNo\r\n }\r\n obj.PaymentDetail = JSON.stringify(Arr);\r\n } else if (vm.wo.selectedPaymentmode.TransactionTypeName == 'NEFT' || vm.wo.selectedPaymentmode.TransactionTypeName == 'RTGS') {\r\n var Arr = {\r\n BankId: vm.wo.selectedBank.BankId,\r\n BankName: vm.wo.selectedBank.BankName,\r\n BranchName: vm.wo.selectedBank.Branch,\r\n AccountNo: vm.wo.selectedBank.AcNo,\r\n }\r\n obj.PaymentDetail = JSON.stringify(Arr);\r\n } else {\r\n obj.PaymentDetail = null\r\n }\r\n\r\n BillingService.SaveAdvanceAmount(obj).then(function(res) {\r\n if (res.data.resultMsg[0].MessageCode === 1) {\r\n $rootScope.showToaster('success', res.data.resultMsg[0].Message, \"Bill Approval\");\r\n vm.isLoading = false;\r\n vm.isSave = false;\r\n // vm.Back();\r\n // Init();\r\n // vm.isViewApprovalWO = false;\r\n vm.isViewVocher = true;\r\n vm.Vocher = res.data.MobVocher[0]\r\n vm.wo.VoucherNo = angular.copy(vm.Vocher.VoucherNo);\r\n vm.wo.VoucherId = angular.copy(vm.Vocher.VoucherId);\r\n vm.wo.ContractName = angular.copy(vm.Vocher.ContractorName);\r\n vm.wo.WorkOrderNo = angular.copy(vm.Vocher.WorkOrderNo);\r\n vm.wo.TransactionTypeName = angular.copy(vm.Vocher.TransactionTypeName);\r\n vm.wo.TypeofPayment = angular.copy(vm.Vocher.TypeofPayment);\r\n vm.wo.PaymentDetail = angular.copy(vm.Vocher.PaymentDetail);\r\n vm.wo.PaidAmt = angular.copy(vm.Vocher.PaidAmt);\r\n vm.wo.Note = angular.copy(vm.Vocher.Note)\r\n vm.wo.CompanyName = angular.copy(vm.Vocher.CompanyName);\r\n if (vm.wo.TransactionTypeName == 'Cheque') {\r\n vm.AccDetail = JSON.parse(vm.wo.PaymentDetail)\r\n vm.wo.BankName = vm.AccDetail.BankName\r\n vm.wo.BranchName = vm.AccDetail.BranchName\r\n vm.wo.AccountNo = vm.AccDetail.AccountNo\r\n vm.wo.ChequeNo = vm.AccDetail.ChequeNo\r\n } else if (vm.wo.TransactionTypeName == 'NEFT' || vm.wo.TransactionTypeName == 'RTGS') {\r\n vm.AccDetail = JSON.parse(vm.wo.PaymentDetail)\r\n vm.wo.BankName = vm.AccDetail.BankName\r\n vm.wo.BranchName = vm.AccDetail.BranchName\r\n vm.wo.AccountNo = vm.AccDetail.AccountNo\r\n }\r\n\r\n\r\n } else {\r\n $rootScope.showToaster('warning', \"Already Exist\", \"Mobilization Advance\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n vm.SaveVocher = function(wo) {\r\n var obj = {\r\n Narration: wo.Narration,\r\n RecieveDate: $filter('date')(wo.RecieveDate, 'yyyy/MM/dd')\r\n }\r\n\r\n if (wo.TransactionTypeName == 'Cheque' || wo.TransactionTypeName == 'Cash') {\r\n obj.RecieverName = vm.wo.RecieverName\r\n } else if (wo.TransactionTypeName == 'NEFT' || wo.TransactionTypeName == 'RTGS') {\r\n obj.TransactionId = vm.wo.TransactionId\r\n }\r\n\r\n var tempObj = {\r\n ReceivedDetail: JSON.stringify(obj),\r\n WorkOrderId: wo.WorkOrderId,\r\n VoucherId: wo.VoucherId\r\n }\r\n\r\n BillingService.SaveVocher(tempObj).then(function(res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Bill Approval\");\r\n vm.isPrintVocher = true;\r\n // vm.Back();\r\n // Init();\r\n // vm.isViewApprovalWO = false;\r\n // vm.isViewVocher = false;\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Bill Approval\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n vm.PrintVocher = function(wo) {\r\n var obj = {\r\n VoucherId: vm.wo.VoucherId,\r\n WorkOrderId: vm.wo.WorkOrderId,\r\n CompanyName: vm.wo.CompanyName,\r\n ProjectName: vm.wo.ProjectName,\r\n Heading: \"Heading\",\r\n UserName: loggedUser.FirstName,\r\n }\r\n\r\n BillingService.PrintVocher(obj).then(function(res) {\r\n if (res.status === 200) {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n var blob = new Blob([res.data], {\r\n type: \"application/pdf\"\r\n }),\r\n url = window.URL.createObjectURL(blob);\r\n $window.open(url, \"_blank\");\r\n $rootScope.showToaster('success', ' Successfully', \"Report Download\");\r\n vm.isPrintVocher = false;\r\n vm.Back();\r\n Init();\r\n vm.isViewApprovalWO = false;\r\n vm.isViewVocher = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Bill Approval\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n\r\n }\r\n\r\n\r\n vm.Back = function() {\r\n Init();\r\n vm.isViewApprovalWO = false;\r\n vm.wo = {};\r\n vm.isViewVocher = false;\r\n vm.isPrintVocher = false;\r\n }\r\n\r\n\r\n function GetRfqDetails(rfqId) {\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n ariaLabelledBy: 'modal-title',\r\n ariaDescribedBy: 'modal-body',\r\n templateUrl: 'app/pages/billing/workOrderDetails.html',\r\n controller: 'WorkOrderDetailsCtrl',\r\n controllerAs: 'vm',\r\n size: 'lg',\r\n // backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n items: function() {\r\n return rfqId;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function() {\r\n //$ctrl.selected = selectedItem;\r\n }, function() {\r\n //$log.info('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n // function GetRfqDetails(rfqId) {\r\n // DirectWorkOrderService.GetRfqDetails(rfqId).then(function (res) {\r\n // debugger;\r\n // if (res.status === 200) {\r\n // vm.WORfqList = res.data;\r\n // vm.ContractorRfqTermsandContList = vm.WORfqList.RateDetials.TermsAndConditions;\r\n // for (var i in vm.WORfqList.RateDetials.RfqIocaDetails) {\r\n // vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl = JSON.parse(vm.WORfqList.RateDetials.RfqIocaDetails[i].LocDtl)\r\n // vm.ContractorRfqIocaList[i] = vm.WORfqList.RateDetials.RfqIocaDetails[i]\r\n // vm.Total(vm.ContractorRfqIocaList[i]);\r\n // }\r\n // // getFinalisedContractor();\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n // });\r\n // }\r\n\r\n // function Total(row) {\r\n // vm.grandTotal = 0;\r\n // if (row.UnitRate != undefined && row.Tax != undefined) {\r\n // var totalQuantity = row.TotQty;\r\n // row.total = ((((totalQuantity) - 0) * ((row.UnitRate) - 0)) * (((row.Tax) - 0) + ((100) - 0)) / ((100) - 0));\r\n // }\r\n // for (var i in vm.ContractorRfqIocaList) {\r\n // var totalRate = vm.ContractorRfqIocaList[i].total;\r\n // vm.grandTotal += totalRate;\r\n // }\r\n\r\n // }\r\n\r\n // Date Picker\r\n vm.today = function() {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function() {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n maxDate: new Date(2020, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function() {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open1 = function() {\r\n vm.popup1.opened = true;\r\n };\r\n\r\n vm.open2 = function() {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open3 = function() {\r\n vm.popup3.opened = true;\r\n };\r\n\r\n vm.open4 = function() {\r\n vm.popup4.opened = true;\r\n };\r\n\r\n vm.setDate = function(year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate', 'yyyy'];\r\n vm.format = vm.formats[0];\r\n\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n vm.popup3 = {\r\n opened: false\r\n };\r\n\r\n vm.popup4 = {\r\n opened: false\r\n };\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date();\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n vm.events = [{\r\n date: tomorrow,\r\n status: 'full'\r\n }, {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n vm.Reset = function() {\r\n vm.wo.selectedPaymentmode = null;\r\n vm.PaymentmodeList = [];\r\n vm.wo.selectedBank = null;\r\n Init()\r\n }\r\n\r\n }\r\n})();\n\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.billing')\r\n .controller('DraftPenaltyCtrl', DraftPenaltyCtrl);\r\n\r\n function DraftPenaltyCtrl($rootScope, $window, $uibModal, dialogs, lodash, WorkApprovalService, BillingService, CompanyService, projectCreationService, AuthenticationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n vm.isFormOpen = false;\r\n vm.isEditing = false;\r\n vm.isLoading = false;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getCategoryForPrjContractor = getCategoryForPrjContractor;\r\n vm.getContractorByWorkOrder = getContractorByWorkOrder;\r\n vm.getApprovedWorkOrderByCont = getApprovedWorkOrderByCont;\r\n vm.getCategoryByWorkOrderIoca = getCategoryByWorkOrderIoca;\r\n vm.getSubCategoryByWorkOrderIoca = getSubCategoryByWorkOrderIoca;\r\n vm.getTypeByWorkOrderIoca = getTypeByWorkOrderIoca;\r\n vm.getIocaByWorkOderIoca = getIocaByWorkOderIoca;\r\n vm.getLocationByWorkOrderIoca = getLocationByWorkOrderIoca;\r\n vm.getTierDtlsByWorkOrderIoca = getTierDtlsByWorkOrderIoca;\r\n vm.getPowForApproval = getPowForApproval;\r\n vm.filterTiers = filterTiers;\r\n vm.getTierNo = getTierNo;\r\n vm.SavePenaltyNote = SavePenaltyNote;\r\n vm.WorkOrderCategoryList = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.WorkOrderIOCAList = [];\r\n vm.work = {};\r\n $rootScope.isLogin = false;\r\n Init();\r\n\r\n vm.SpecTypeList = [{\r\n SpecTypeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n SpecTypeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n vm.TypeofContractList = [{ ContractName: 'Item Rate Contract', Id: 1 }, { ContractName: 'Lump Sum Contract', Id: 2 },\r\n { ContractName: 'Lump sum and Schedule Contract', Id: 3 }];\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n },\r\n {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }\r\n ]\r\n vm.TemplateRfqList = [{\r\n TemplatelistName: 'Field of Construction',\r\n TempId: 1\r\n }, {\r\n TemplatelistName: 'Category of CA',\r\n TempId: 2\r\n }, {\r\n TemplatelistName: 'SubCategory of CA',\r\n TempId: 3\r\n }]\r\n vm.TypeofBillList = [{\r\n TypeofBillName: 'Weekly',\r\n BillId: 1\r\n }, {\r\n TypeofBillName: 'Monthly',\r\n BillId: 2\r\n }, {\r\n TypeofBillName: 'Periodic',\r\n BillId: 3\r\n }, {\r\n TypeofBillName: 'Stage Wise Payment',\r\n BillId: 4\r\n },\r\n {\r\n TypeofBillName: 'Daily',\r\n BillId: 5\r\n }]\r\n\r\n vm.ApprovalFromList = [{\r\n ApprovalFrom: 'Planned Finalised BOQ',\r\n ApprovalId: true\r\n }, {\r\n ApprovalFrom: 'Unplanned Finalised BOQ',\r\n ApprovalId: false\r\n }];\r\n\r\n vm.ApproveForList = [{\r\n ApproveForName: 'Pending',\r\n ApproveForId: '1'\r\n }, {\r\n ApproveForName: 'Today',\r\n ApproveForId: '2'\r\n }\r\n , {\r\n ApproveForName: 'Balance',\r\n ApproveForId: '3'\r\n }];\r\n\r\n vm.PenaltyTypeList = [{\r\n PenaltyId: 1,\r\n PenaltyType: \"Delay in Construction\"\r\n },\r\n {\r\n PenaltyId: 2,\r\n PenaltyType: \"Poor Workmanship\"\r\n },\r\n {\r\n PenaltyId: 3,\r\n PenaltyType: \"Wastage of Material\"\r\n }]\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n WorkApprovalService.GetIocaDoc().then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCADocList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n\r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n clearByCompany();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1)\r\n dialogs.notify('warning', \"There is no project for selected Company\", { animation: true, size: 'sm' });\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n clearByCompany();\r\n }\r\n }\r\n\r\n function getCategoryForPrjContractor(ProjectId) {\r\n if (ProjectId) {\r\n ClearByAppform();\r\n WorkApprovalService.GetCategoryForPrjContractor(ProjectId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorCategoryList = res.data;\r\n if (vm.ContractorCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no category for selected project\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n ClearByAppform();\r\n }\r\n\r\n }\r\n\r\n function getContractorByWorkOrder(ProjectId, CategoryId) {\r\n if (CategoryId) {\r\n ClearByCategoryWO();\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n approvalFrom: vm.work.selectedApprovalFrom.ApprovalId\r\n }\r\n WorkApprovalService.GetContractorByWorkOrder(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ContractorList = res.data;\r\n if (vm.ContractorList.length < 1)\r\n dialogs.notify('warning', \"There is no contractor for selected Category\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Contractor\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Contractor\");\r\n });\r\n }\r\n else {\r\n ClearByCategoryWO();\r\n }\r\n\r\n }\r\n\r\n function getApprovedWorkOrderByCont(ProjectId, ContractorId) {\r\n if (ContractorId) {\r\n ClearByCategoryWO();\r\n WorkApprovalService.GetApprovedWorkOrderByContForPenalty(ProjectId, ContractorId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderList = res.data;\r\n if (vm.WorkOrderList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order for selected Contractor\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Work Order\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Work Order\");\r\n });\r\n }\r\n else {\r\n ClearByCategoryWO();\r\n }\r\n }\r\n\r\n function getCategoryByWorkOrderIoca(obj) {\r\n if (vm.work.selectedWorkOrder) {\r\n ClearByWO();\r\n var woId = vm.work.selectedWorkOrder.WorkOrderId;\r\n var fromPlanning = (vm.work.selectedApprovalFrom != null) ? vm.work.selectedApprovalFrom.ApprovalId : 0;\r\n var workStatus = (vm.work.selectedApproveForName != null) ? vm.work.selectedApproveForName.ApproveForId : 0;\r\n WorkApprovalService.GetCategoryByWorkOrderIoca(woId, fromPlanning, workStatus).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderCategoryList = res.data;\r\n if (vm.WorkOrderCategoryList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order Category for selected Work Order\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n }\r\n else {\r\n ClearByWO();\r\n }\r\n viewWorkOrderDetails(obj)\r\n\r\n }\r\n\r\n function viewWorkOrderDetails(obj) {\r\n vm.work.WorkOrderNo = angular.copy(obj.WorkOrderNo)\r\n for (var i in vm.rfqTypeList) {\r\n if (vm.rfqTypeList[i].Code == obj.RfqTypeCode) {\r\n vm.work.TypeofWO = vm.rfqTypeList[i].rfqTypeName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofContractList) {\r\n if (vm.TypeofContractList[i].Id === obj.TypeofContract) {\r\n vm.work.TypeofContract = vm.TypeofContractList[i].ContractName\r\n }\r\n }\r\n\r\n for (var i in vm.TypeofBillList) {\r\n if (vm.TypeofBillList[i].BillId == obj.BillId) {\r\n vm.work.TypeofBill = vm.TypeofBillList[i].TypeofBillName\r\n }\r\n }\r\n vm.work.MinPenalty = obj.MinPenalty;\r\n vm.work.MaxPenalty = obj.MaxPenalty;\r\n vm.work.TotalWorkOrderAmount = obj.TotalWorkOrderAmount;\r\n vm.work.UpcomingBillNumber = obj.UpcomingBillNumber;\r\n if (obj.BillId == 2) {\r\n var date = new Date();\r\n var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\r\n var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n vm.work.startDate = firstDay\r\n vm.work.endDate = lastDay\r\n }\r\n vm.work.MaxPenaltyAmount = parseFloat((parseInt(obj.TotalWorkOrderAmount) / 100) * parseFloat(vm.work.MaxPenalty))\r\n vm.work.MinPenaltyAmount = parseFloat((parseInt(obj.TotalWorkOrderAmount) / 100) * parseFloat(vm.work.MinPenalty))\r\n }\r\n\r\n vm.checkAmount = function (PenaltyAmount) {\r\n debugger;\r\n if (PenaltyAmount < vm.work.MaxPenaltyAmount && PenaltyAmount > vm.work.MinPenaltyAmount) {\r\n vm.TotalPenaltyAmount = PenaltyAmount\r\n }\r\n else {\r\n dialogs.notify('warning', \"Given Amount should be in from \" + vm.work.MinPenaltyAmount + \" to \" + vm.work.MaxPenaltyAmount, { animation: true, size: 'sm' });\r\n vm.work.PenaltyAmount = null;\r\n }\r\n\r\n }\r\n\r\n vm.checkAmountByValue = function (value) {\r\n debugger;\r\n if (parseFloat(value) < vm.work.MaxPenalty && parseFloat(value) > vm.work.MinPenalty) {\r\n vm.work.TotalPenaltyAmount = parseFloat((parseInt(vm.work.TotalWorkOrderAmount) / 100) * parseFloat(value))\r\n vm.TotalPenaltyAmount = vm.work.TotalPenaltyAmount\r\n }\r\n else {\r\n dialogs.notify('warning', \"Given Value should be in from \" + vm.work.MinPenalty + \" to \" + vm.work.MaxPenalty, { animation: true, size: 'sm' });\r\n vm.work.TotalPenaltyAmount = null;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n function getSubCategoryByWorkOrderIoca() {\r\n if (vm.selectedWoCategory) {\r\n ClearByCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoCategory) {\r\n Arr.push(vm.selectedWoCategory[i].CategoryId);\r\n }\r\n vm.Category = Arr.join();\r\n var obj = {\r\n CategoryIdList: vm.Category,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : 0\r\n }\r\n WorkApprovalService.GetSubCategoryByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderSubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Category\");\r\n });\r\n }\r\n else {\r\n ClearByCategory();\r\n }\r\n\r\n }\r\n\r\n function getTypeByWorkOrderIoca() {\r\n if (vm.selectedWoSubCategory) {\r\n ClearBySubCategory();\r\n var Arr = [];\r\n for (var i in vm.selectedWoSubCategory) {\r\n Arr.push(vm.selectedWoSubCategory[i].SubCategoryId);\r\n }\r\n vm.SubCategory = Arr.join();\r\n var obj = {\r\n SubCategoryIdList: vm.SubCategory,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : null\r\n }\r\n WorkApprovalService.GetTypeByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderTypeList = res.data;\r\n if (vm.WorkOrderTypeList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order type for selected SubCategory\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n else {\r\n ClearBySubCategory();\r\n }\r\n\r\n }\r\n\r\n function getIocaByWorkOderIoca() {\r\n if (vm.selectedWoType) {\r\n ClearByType();\r\n var Arr = [];\r\n for (var i in vm.selectedWoType) {\r\n Arr.push(vm.selectedWoType[i].TypeId);\r\n }\r\n vm.TypeId = Arr.join();\r\n var obj = {\r\n TypeIdList: vm.TypeId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : null\r\n }\r\n WorkApprovalService.GetIocaByWorkOderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.WorkOrderIOCAList = res.data;\r\n if (vm.WorkOrderIOCAList.length < 1)\r\n dialogs.notify('warning', \"There is no Work Order IOCA for selected Type\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n else {\r\n ClearByType();\r\n }\r\n }\r\n\r\n function getLocationByWorkOrderIoca() {\r\n if (vm.selectedWoIOCA) {\r\n ClearByIOCA();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : null\r\n }\r\n WorkApprovalService.GetLocationByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1)\r\n dialogs.notify('warning', \"There is no Location for selected IOCA\", { animation: true, size: 'sm' });\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n }\r\n else {\r\n ClearByIOCA();\r\n }\r\n\r\n }\r\n\r\n function getTierDtlsByWorkOrderIoca() {\r\n if (vm.selectedLocation) {\r\n ClearByLoc();\r\n var Arr = [];\r\n for (var i in vm.selectedWoIOCA) {\r\n Arr.push(vm.selectedWoIOCA[i].Id);\r\n }\r\n vm.IocaId = Arr.join();\r\n var obj = {\r\n IocaIdList: vm.IocaId,\r\n LocationId: vm.selectedLocation.LocationId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : null\r\n }\r\n WorkApprovalService.GetTierDtlsByWorkOrderIoca(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder Sub Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder Sub Category\");\r\n });\r\n }\r\n\r\n else {\r\n ClearByLoc();\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n\r\n if (tier.selectedTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function (t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function (t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n\r\n // Remove already used location tier id from the drop down\r\n if (t.TierName === maxTier.TierNo) {\r\n var ioca = lodash.find(vm.workOrderIocaList, {\r\n 'IOCA_Id': vm.selectedWoIOCA.Id\r\n })\r\n if (ioca) {\r\n var tmpWorkLoc = lodash.find(ioca.LocDtl, {\r\n 'TypeOfWorkLocation': vm.selectedLocation.BasicLocation\r\n })\r\n if (tmpWorkLoc) {\r\n var tmpTierIdList = lodash.map(tmpWorkLoc.data, 'TierId');\r\n lodash.forEach(maxTier.Values, function (t1) {\r\n if (lodash.includes(tmpTierIdList, t1.TierId))\r\n lodash.remove(maxTier.Values, function (t2) {\r\n return t2.TierId === t1.TierId;\r\n });\r\n })\r\n }\r\n }\r\n }\r\n vm.LastTiers = tier.selectedTireValue;\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function (t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue += ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getPowForApproval() {\r\n vm.isLoading = true;\r\n ClearByTier();\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierIds = Arr.join();\r\n var obj = {\r\n LastTierIdList: vm.TierIds,\r\n IocaIdList: vm.IocaId,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n IsFromPlanning: vm.work.selectedApprovalFrom.ApprovalId,\r\n WorkStatus: (vm.work.selectedApproveForName != undefined) ? vm.work.selectedApproveForName.ApproveForId : null,\r\n PenaltyStatus: 1\r\n }\r\n WorkApprovalService.GetPowForApprovalForPenalty(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.PowApprovalList = res.data;\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimAct = JSON.parse(vm.PowApprovalList[i].LocationDtls[j].PowList[k].DimJson)\r\n vm.PowApprovalList[i].LocationDtls[j].GrandTotal = parseFloat(0);\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].isAdd = false;\r\n var unit = 1;\r\n lodash.forIn(vm.PowApprovalList[i].LocationDtls[j].PowList[k].Dim.DimValues, function (value, key) {\r\n unit *= value;\r\n });\r\n\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount)\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActualTotQty = (vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActivityCount * unit).toFixed(2);\r\n else\r\n vm.PowApprovalList[i].LocationDtls[j].PowList[k].ActualTotQty = (unit).toFixed(2);\r\n }\r\n }\r\n }\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.IOCADocList) {\r\n if (vm.PowApprovalList[i].Id === vm.IOCADocList[j].IOCA_Id) {\r\n var obj = {\r\n IOCA_Id: vm.IOCADocList[j].IOCA_Id\r\n }\r\n vm.PowApprovalList[i].IOCA_DocList = lodash.filter(vm.IOCADocList, obj)\r\n }\r\n }\r\n }\r\n\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"WorkOrder \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"WorkOrder\");\r\n });\r\n }\r\n\r\n vm.select = function (PowList, loc, row) {\r\n debugger;\r\n var unit2 = 0;\r\n if (loc.selectedAll) {\r\n loc.selectedAll = true;\r\n\r\n } else {\r\n loc.selectedAll = false;\r\n }\r\n for (var i in PowList) {\r\n PowList[i].Approve = loc.selectedAll;\r\n debugger;\r\n if (PowList[i].Approve == true) {\r\n if (PowList[i].isAdd == false) {\r\n var TotalValue = parseFloat(PowList[i].ActualTotQty) * parseFloat(row.UnitRate);\r\n PowList[i].TotalValue = parseFloat(TotalValue).toFixed(2)\r\n unit2 = PowList[i].TotalValue;\r\n var GrandTotal = parseFloat(loc.GrandTotal) + parseFloat(unit2)\r\n loc.GrandTotal = parseFloat(GrandTotal).toFixed(2)\r\n PowList[i].isAdd = true;\r\n }\r\n }\r\n else {\r\n if (parseFloat(loc.GrandTotal) > parseFloat(PowList[i].TotalValue))\r\n loc.GrandTotal = parseFloat(loc.GrandTotal) - parseFloat(PowList[i].TotalValue)\r\n else\r\n loc.GrandTotal = parseFloat(PowList[i].TotalValue) - parseFloat(loc.GrandTotal)\r\n PowList[i].TotalValue = parseFloat(0.00).toFixed(2);\r\n PowList[i].isAdd = false;\r\n }\r\n }\r\n }\r\n vm.TotalAct = function (ioca, loc, row) {\r\n var unit1 = 0;\r\n if (ioca.Approve) {\r\n var TotalValue = parseFloat(ioca.ActualTotQty) * parseFloat(row.UnitRate);\r\n ioca.TotalValue = parseFloat(TotalValue).toFixed(2)\r\n unit1 = ioca.TotalValue;\r\n var GrandTotal = parseFloat(loc.GrandTotal) + parseFloat(unit1)\r\n loc.GrandTotal = parseFloat(GrandTotal).toFixed(2)\r\n ioca.isAdd = true;\r\n loc.selectedAll = false;\r\n }\r\n else {\r\n if (parseFloat(loc.GrandTotal) > parseFloat(ioca.TotalValue))\r\n loc.GrandTotal = parseFloat(loc.GrandTotal) - parseFloat(ioca.TotalValue)\r\n else\r\n loc.GrandTotal = parseFloat(ioca.TotalValue) - parseFloat(loc.GrandTotal)\r\n ioca.TotalValue = parseFloat(0.00).toFixed(2);\r\n ioca.isAdd = false;\r\n loc.selectedAll = false;\r\n }\r\n }\r\n\r\n\r\n\r\n function SavePenaltyNote() {\r\n debugger;\r\n var Arr = {\r\n PenaltyDetails: []\r\n };\r\n\r\n var MediaList = [];\r\n for (var i in vm.PowApprovalList) {\r\n for (var j in vm.PowApprovalList[i].LocationDtls) {\r\n for (var k in vm.PowApprovalList[i].LocationDtls[j].PowList) {\r\n if (vm.PowApprovalList[i].LocationDtls[j].PowList[k].Approve == true) {\r\n Arr.PenaltyDetails.push({\r\n PowId: vm.PowApprovalList[i].LocationDtls[j].PowList[k].PowId,\r\n TotalAmount: vm.PowApprovalList[i].LocationDtls[j].PowList[k].TotalValue\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n var obj = {\r\n PenaltyDetails: Arr.PenaltyDetails,\r\n WorkOrderId: vm.work.selectedWorkOrder.WorkOrderId,\r\n PenaltyAmount: vm.TotalPenaltyAmount,\r\n PenaltyType: vm.selectedPenalty.PenaltyId,\r\n PenaltyNote: vm.work.PenaltyNote,\r\n }\r\n\r\n BillingService.savePenaltyDtls(obj).then(function (res) {\r\n if (res.data.IsSuccess === true) {\r\n $rootScope.showToaster('success', res.data.Message, \"Penalty Note\");\r\n dialogs.notify('success', res.data.Message + \" Penalty No is :\" + res.data.PenaltyNO, { animation: true, size: 'sm' });\r\n vm.work.PenaltyNo = res.data.PenaltyNO;\r\n getPowForApproval();\r\n\r\n } else {\r\n $rootScope.showToaster('error', res.data.Message, \"Penalty Note\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"Something error...try again\");\r\n });\r\n }\r\n\r\n\r\n\r\n function clearByCompany() {\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function clearByProject() {\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByAppform() {\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategoryWO() {\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByWO() {\r\n vm.selectedWoCategory = null;\r\n vm.selectedWoCategory = [];\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByCategory() {\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearBySubCategory() {\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByType() {\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByIOCA() {\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByLoc() {\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n function ClearByTier() {\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n\r\n vm.Reset = function () {\r\n vm.work.selectedCompany = null;\r\n vm.work.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.work.selectedApprovalFrom = null;\r\n vm.work.selectedApproveForName = null;\r\n vm.work.selectedContractorCategory = null;\r\n vm.ContractorCategoryList = [];\r\n vm.work.selectedContractor = null;\r\n vm.ContractorList = [];\r\n vm.work.selectedWorkOrder = null;\r\n vm.WorkOrderList = [];\r\n vm.selectedWoCategory = [];\r\n vm.selectedWoCategory = null;\r\n vm.WorkOrderCategoryList = [];\r\n vm.selectedWoSubCategory = null;\r\n vm.selectedWoSubCategory = [];\r\n vm.WorkOrderSubCategoryList = [];\r\n vm.selectedWoType = null;\r\n vm.selectedWoType = [];\r\n vm.WorkOrderTypeList = [];\r\n vm.selectedWoIOCA = [];\r\n vm.selectedWoIOCA = null;\r\n vm.WorkOrderIOCAList = [];\r\n vm.selectedLocation = null;\r\n vm.LocationList = [];\r\n // tier.selectedTireValue = null;\r\n vm.PowApprovalList = [];\r\n }\r\n\r\n }\r\n}\r\n)();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('ItemToItemCtrl', ItemToItemCtrl);\r\n\r\n /** @ngInject */\r\n function ItemToItemCtrl($rootScope, lodash, dialogs, $http, AuthenticationService, ItemToItemService, LocationSetupService, projectCreationService,\r\n ProjectIocaService, TierSetupService, CompanyService, $scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n vm.isLoading = true;\r\n vm.isFormOpen = true;\r\n $rootScope.isLogin = false;\r\n vm.item = {};\r\n // vm.item = {selectedProjectIoca:[]};\r\n vm.ProjectIOCAList = [];\r\n // Properties \r\n vm.isEditing = false;\r\n vm.load = false;\r\n vm.SEnable = false;\r\n\r\n // vm.item.selectedProjectIoca = [];\r\n\r\n // Methods\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.filterTiers = filterTiers;\r\n vm.getCountryByTiers = getCountryByTiers;\r\n vm.GetBoQCategoryByCountryId = GetBoQCategoryByCountryId;\r\n vm.getBoQAttributeByTypeOfCAId = getBoQAttributeByTypeOfCAId;\r\n vm.getBoQIOCAListByTypeOfAttribute = getBoQIOCAListByTypeOfAttribute;\r\n vm.getBoQSubCategoryCAListByCategoryId = getBoQSubCategoryCAListByCategoryId;\r\n vm.getBoQTypeOfCAListBySubcategoryId = getBoQTypeOfCAListBySubcategoryId;\r\n /////\r\n // vm.getProjectCountry = getProjectCountry;\r\n vm.getFocByPrjId = getFocByPrjId;\r\n vm.GetCategoryByCountryId = GetCategoryByCountryId;\r\n vm.getSubCategoryCAListByCategoryId = getSubCategoryCAListByCategoryId;\r\n vm.getTypeOfCAListBySubcategoryId = getTypeOfCAListBySubcategoryId;\r\n vm.getAttributeByTypeOfCAId = getAttributeByTypeOfCAId;\r\n // vm.removeExistingIocaList = removeExistingIocaList\r\n vm.loadBoQItem = loadBoQItem;\r\n vm.saveBoQItem = saveBoQItem;\r\n vm.showGrid = showGrid;\r\n vm.cancel = cancel;\r\n vm.getIOCAListByTypeOfAttribute = getIOCAListByTypeOfAttribute;\r\n clearTierSelection();\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n Init();\r\n //////////////////// \r\n\r\n vm.BoQTypeList = [{ Status: 'Draft', id: 1 },\r\n // { Status: 'Pending for Approval', id: 3 },\r\n { Status: 'Finalized boq', id: 4 }];\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n },\r\n\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n vm.item.selectedBasicLocation = null;\r\n clearTierSelection();\r\n clearFoc();\r\n vm.item.selectedProject = null;\r\n vm.LocationList = [];\r\n vm.item.selectedStatus = null;\r\n if (CompanyId) {\r\n var isWrkAlloc = true;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApprovedProject(CompanyId, isWrkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.item.selectedCompany.CompanyName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.allTierData, function (tier) {\r\n tier.selectedTierValue = null;\r\n })\r\n }\r\n\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n clearTierSelection();\r\n vm.item.selectedBasicLocation = null;\r\n clearFoc();\r\n if (ProjectId) {\r\n var id = {\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n PowStatus: vm.item.selectedStatus.id\r\n }\r\n LocationSetupService.getLocationByBoQIoca(id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Location available for ' + vm.item.selectedProject.ProjectName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n }\r\n }\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n vm.isLoading =true;\r\n clearTierSelection();\r\n clearFoc();\r\n if (ProjectId) {\r\n vm.tierObj = JSON.parse(vm.item.selectedBasicLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n }\r\n ItemToItemService.getAllTiersByBoQ(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.rawTierListData = JSON.parse(res.data.result).Tiers;\r\n vm.isLoading = false;\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierName,\r\n Values: (t.TierName === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList; \r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n if (tier.selectedTierValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, { \"TierName\": tempTier });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTierValue.TierId });\r\n }\r\n });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedTierValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierName] = vm.allTierData[i].selectedTierValue.TierId\r\n }\r\n }\r\n\r\n getCountryByTiers(vm.Arr);\r\n } else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n function getCountryByTiers(TierId) {\r\n clearFoc();\r\n if (TierId) {\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr)\r\n\r\n }\r\n ItemToItemService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of construction\");\r\n });\r\n }\r\n }\r\n\r\n function GetBoQCategoryByCountryId(CountryId, focId) {\r\n clearCategory();\r\n if (CountryId && focId) {\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n }\r\n\r\n function getBoQSubCategoryCAListByCategoryId(CategoryId) {\r\n clearSubcategory();\r\n if (CategoryId) {\r\n var filter = {\r\n CountryId: vm.item.selectedProject.CountryId,\r\n CategoryId: CategoryId\r\n };\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n }\r\n\r\n function getBoQTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n clearType();\r\n if (SubCategoryId) {\r\n var filter = {\r\n CountryId: vm.item.selectedProject.CountryId,\r\n CategoryId: vm.item.selectedCategory.CategoryId,\r\n SubCategoryId: SubCategoryId\r\n };\r\n\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type\");\r\n });\r\n }\r\n }\r\n\r\n function getBoQAttributeByTypeOfCAId(TypeId) {\r\n if (TypeId) {\r\n vm.TypeOfAttributeList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.item.selectedIoca = null;\r\n if (TypeId !== undefined) {\r\n vm.TypeOfAttributeList = [{ TypeOfAttributeName: 'Generic', Code: 'G' }, { TypeOfAttributeName: 'Specific', Code: 'S' }];\r\n vm.isLoading = false;\r\n }\r\n } else {\r\n vm.TypeOfAttributeList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.item.selectedIoca = null;\r\n }\r\n }\r\n\r\n function getBoQIOCAListByTypeOfAttribute(Code) {\r\n clearIoca();\r\n if (Code) {\r\n var filter = {\r\n CountryId: vm.item.selectedProject.CountryId,\r\n CategoryId: vm.item.selectedCategory.CategoryId,\r\n SubCategoryId: vm.item.selectedSubCategory.SubCategoryId,\r\n TypeId: vm.item.selectedTypeOfCA.TypeId,\r\n SpecType: vm.item.selectedTypeOfAttribute.Code\r\n };\r\n\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n Status: vm.item.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOCAList = res.data;\r\n vm.isLoading = false;\r\n getFocByPrjId(vm.item.selectedProject.ProjectId);\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n }\r\n\r\n function getFocByPrjId(prjId) {\r\n clearPrjFoc();\r\n if (prjId) {\r\n var isWrkAlloc =false;\r\n ProjectIocaService.getAllProjectFoc(prjId,isWrkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.prjFocList = res.data;\r\n vm.SEnable = false;\r\n vm.isLoading = false;\r\n vm.isFormOpen = true;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of Construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of Construction\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function GetCategoryByCountryId(CountryId, ProjectId, focId, callback) {\r\n clearPrjCategory();\r\n if (CountryId && ProjectId && focId) {\r\n var obj = {\r\n CountryId: CountryId,\r\n ProjectId: ProjectId,\r\n FocId: focId,\r\n isworkAlloc :false\r\n }\r\n ProjectIocaService.getAllProjectCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.prjCategoryList = res.data;\r\n vm.SEnable = false;\r\n if (vm.prjCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Category available for ' + vm.selectedCountry.CountryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n\r\n if (callback)\r\n callback();\r\n vm.isFormOpen = true;\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getSubCategoryCAListByCategoryId(ProjectId, CategoryId, callback) {\r\n clearPrjSubcategory();\r\n if (ProjectId, CategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n isworkAlloc :false\r\n }\r\n ProjectIocaService.getAllProjectSubcategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.prjSubCategoryList = res.data;\r\n vm.SEnable = false;\r\n if (vm.prjSubCategoryList.length < 1) {\r\n dialogs.notify('Warning', 'No Subcategory available for ' + vm.selectedPrjCategory.CategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n vm.isFormOpen = true;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n function getTypeOfCAListBySubcategoryId(ProjectId, CategoryId, SubCategoryId, callback) {\r\n clearPrjType();\r\n if (ProjectId && CategoryId && SubCategoryId) {\r\n var obj = {\r\n ProjectId: ProjectId,\r\n CategoryId: CategoryId,\r\n SubCategoryId: SubCategoryId,\r\n isworkAlloc :false\r\n }\r\n if (SubCategoryId !== undefined) {\r\n ProjectIocaService.getAllProjectCategoryType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.prjTypeOfCAList = res.data;\r\n vm.SEnable = false;\r\n if (vm.prjTypeOfCAList.length < 1) {\r\n dialogs.notify('Warning', 'No Type Of CA available for ' + vm.selectedSubCategory.SubCategoryName, { animation: true, size: 'sm' });\r\n }\r\n vm.isLoading = false;\r\n vm.isFormOpen = true;\r\n if (callback)\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n function getAttributeByTypeOfCAId(TypeId) {\r\n if (TypeId) {\r\n vm.item.selectedProjectIoca = [];\r\n vm.selectedPrjTypeOfAttribute = null;\r\n if (TypeId !== undefined) {\r\n vm.prjTypeOfAttributeList = [{ TypeOfAttributeName: 'Generic', Code: 'G' }, { TypeOfAttributeName: 'Specific', Code: 'S' }]\r\n vm.isFormOpen = true;\r\n vm.SEnable = false;\r\n } else {\r\n vm.ProjectIOCAList = [];\r\n vm.item.selectedProjectIoca = [];\r\n vm.selectedPrjTypeOfAttribute = null;\r\n }\r\n }\r\n }\r\n\r\n // function removeExistingIocaList() {\r\n // for (var i in vm.IOCAList) {\r\n // // vm.IOCAList[i].isSelected = false;\r\n // for (var j in vm.ProjectIOCAList) {\r\n // if (vm.IOCAList[i].IOCA_Id === vm.ProjectIOCAList[j].Id) {\r\n // vm.ProjectIOCAList.splice(j, 1);\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n function getIOCAListByTypeOfAttribute() {\r\n var lastTierId = lodash.last(vm.allTierData).selectedTierValue.TierId;\r\n var obj = {\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n TypeId: vm.selectedPrjTypeOfCA.TypeId,\r\n FromIocaId: vm.item.selectedIoca.IOCA_Id,\r\n SpecType: vm.selectedPrjTypeOfAttribute.Code,\r\n LastTierId: lastTierId,\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ActionBy: loggedUserDtl.UserId,\r\n isworkAlloc :false\r\n }\r\n ProjectIocaService.GetProjectIocaFilterByBoQ(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectIOCAList = res.data;\r\n if (!vm.item.selectedProjectIoca || vm.item.selectedProjectIoca.length < 0 || vm.ProjectIOCAList.length < 0) {\r\n vm.SEnable = false;\r\n $rootScope.showToaster('info', 'There is no IOCA available selected Project', \"No Data\");\r\n }\r\n } else {\r\n vm.load = false;\r\n vm.SEnable = false;\r\n $rootScope.showToaster('error', 'Internal Server Error! Try Again', \"Error!\");\r\n }\r\n }, function (err) { });\r\n }\r\n\r\n function showGrid() {\r\n if (!vm.item.selectedProjectIoca || vm.item.selectedProjectIoca.length === 0) {\r\n vm.BoQItemList = [];\r\n vm.isFormOpen = true;\r\n vm.SEnable = false;\r\n }\r\n else {\r\n vm.isFormOpen = false;\r\n\r\n }\r\n }\r\n function loadBoQItem(item) {\r\n var lastTierId = lodash.last(vm.allTierData).selectedTierValue.TierId;\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n LastTierId: lastTierId,\r\n ProjectIocaId: vm.item.selectedIoca.ProjectIocaId,\r\n IOCA_Id: vm.item.selectedIoca.IOCA_Id\r\n }\r\n ItemToItemService.getAllBoQItem(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BoQItemList = res.data;\r\n vm.isFormOpen = false;\r\n vm.SEnable = true;\r\n //vm.BoQItemList = JSON.parse(res.data).Dimentions;\r\n var DimenCount = vm.BoQItemList.length;\r\n for (var start = 0; start < DimenCount; start++) {\r\n var obj = JSON.parse(vm.BoQItemList[start].Dimentions);\r\n // obj = JSON.parse(json);\r\n vm.BoQItemList[start].Dimentions = obj;\r\n }\r\n\r\n for (var i = 0; i < DimenCount; i++) {\r\n var obj1 = JSON.parse(vm.BoQItemList[i].LocationDetail);\r\n vm.BoQItemList[i].LocationDetail = obj1;\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n vm.SEnable = false;\r\n vm.isFormOpen = true;\r\n }\r\n });\r\n }\r\n\r\n function saveBoQItem() {\r\n vm.isLoading =true;\r\n var lastTierId = lodash.last(vm.allTierData).selectedTierValue.TierId;\r\n var iocaJson = { \"IocaList\": [] };\r\n var unitvalues = true;\r\n lodash.forEach(vm.item.selectedProjectIoca, function (ioca) {\r\n if (vm.item.selectedIoca.UnitId === ioca.UnitId &&\r\n vm.item.selectedIoca.UOM_ParametersId === ioca.UOM_ParametersId) {\r\n unitvalues = true;\r\n } else {\r\n $rootScope.showToaster('error', 'Items Have different unit', \"Error!\");\r\n }\r\n var temp = {\r\n \"ProjectIocaId\": ioca.ProjectIocaId,\r\n \"IocaId\": ioca.Id\r\n }\r\n iocaJson.IocaList.push(temp);\r\n });\r\n if (unitvalues = true) {\r\n var obj = {\r\n LocationId: vm.item.selectedBasicLocation.LocationId,\r\n ProjectId: vm.item.selectedProject.ProjectId,\r\n LastTierId: lastTierId,\r\n ProjectIocaId: vm.item.selectedIoca.ProjectIocaId,\r\n IOCA_Id: vm.item.selectedIoca.IOCA_Id,\r\n CreatedBy: loggedUserDtl.UserId,\r\n InputIOCAJson: JSON.stringify(iocaJson)\r\n }\r\n ItemToItemService.getAllCopyBoQ(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BoQItemList = res.data;\r\n var DimenCount = vm.BoQItemList.length;\r\n for (var start = 0; start < DimenCount; start++) {\r\n var obj = JSON.parse(vm.BoQItemList[start].Dimentions);\r\n vm.BoQItemList[start].Dimentions = obj;\r\n }\r\n for (var i = 0; i < DimenCount; i++) {\r\n var obj1 = JSON.parse(vm.BoQItemList[i].LocationDetail);\r\n vm.BoQItemList[i].LocationDetail = obj1;\r\n }\r\n vm.isFormOpen = false;\r\n vm.isLoading =false;\r\n vm.SEnable = true;\r\n $rootScope.showToaster('success', 'Copy Item Successfully', \"BoQ\");\r\n cancel();\r\n }\r\n else {\r\n vm.SEnable = false;\r\n vm.isLoading =false;\r\n $rootScope.showToaster('error', 'Copy Item to Item', \"BoQ\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n function cancel() {\r\n vm.item = {};\r\n vm.isFormOpen = true;\r\n clearFoc();\r\n clearPrjFoc();\r\n Init();\r\n }\r\n\r\n function clearIoca() {\r\n vm.IOCAList = [];\r\n vm.item.selectedIoca = null;\r\n vm.SEnable = false;\r\n vm.isFormOpen = true;\r\n clearPrjFoc();\r\n }\r\n function clearType() {\r\n vm.TypeOfCAList = [];\r\n vm.item.selectedTypeOfAttribute = null;\r\n vm.item.selectedTypeOfCA = null;\r\n clearIoca();\r\n }\r\n function clearSubcategory() {\r\n vm.SubCategoryList = [];\r\n vm.item.selectedSubCategory = null;\r\n clearType();\r\n }\r\n function clearCategory() {\r\n vm.CategoryList = [];\r\n vm.item.selectedCategory = null;\r\n clearSubcategory();\r\n }\r\n function clearFoc() {\r\n vm.focList = [];\r\n vm.item.selectedFOC = null;\r\n clearCategory();\r\n }\r\n\r\n function clearPrjIoca() {\r\n vm.item.selectedProjectIoca = [];\r\n vm.ProjectIOCAList = [];\r\n vm.SEnable = false;\r\n }\r\n function clearPrjType() {\r\n vm.selectedPrjTypeOfCA = null;\r\n vm.selectedPrjTypeOfAttribute = null;\r\n vm.prjTypeOfCAList = [];\r\n clearPrjIoca();\r\n }\r\n function clearPrjSubcategory() {\r\n vm.prjSubCategoryList = [];\r\n vm.selectedPrjSubCategory = null;\r\n clearPrjType();\r\n }\r\n function clearPrjCategory() {\r\n vm.prjCategoryList = [];\r\n vm.selectedPrjCategory = null;\r\n clearPrjSubcategory();\r\n }\r\n function clearPrjFoc() {\r\n vm.selectedPrjFOC = null;\r\n vm.prjFocList = [];\r\n clearPrjCategory();\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('locationToLocationCtrl', locationToLocationCtrl);\r\n\r\n /** @ngInject */\r\n function locationToLocationCtrl($http, $rootScope, lodash, dialogs, AuthenticationService,\r\n CompanyService, projectCreationService, LocationSetupService, ItemToItemService, $scope) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{\r\n \"value\": 5\r\n }, {\r\n \"value\": 10\r\n }, {\r\n \"value\": 25\r\n }, {\r\n \"value\": 50\r\n }, {\r\n \"value\": 100\r\n }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n vm.isLoading = true;\r\n vm.isLoadGrid = false;\r\n $rootScope.isLogin = false;\r\n vm.TiersList = [];\r\n vm.LoadOriginal = false;\r\n vm.IscheckLocation = false;\r\n vm.tempArr = {\r\n filters: {}\r\n };\r\n vm.ArrList = [];\r\n vm.Values = [];\r\n // Properties \r\n vm.isEditing = false;\r\n vm.getProjectByCompanyId = getProjectByCompanyId;\r\n vm.getLocationByProjectId = getLocationByProjectId;\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.filterTiers = filterTiers;\r\n vm.getCountryByTiers = getCountryByTiers;\r\n vm.GetBoQCategoryByCountryId = GetBoQCategoryByCountryId;\r\n vm.getBoQSubCategoryCAListByCategoryId = getBoQSubCategoryCAListByCategoryId;\r\n vm.getBoQTypeOfCAListBySubcategoryId = getBoQTypeOfCAListBySubcategoryId;\r\n vm.getBoQAttributeByTypeOfCAId = getBoQAttributeByTypeOfCAId;\r\n vm.getBoQIOCAListByTypeOfAttribute = getBoQIOCAListByTypeOfAttribute;\r\n vm.getSelectedTiers = getSelectedTiers;\r\n vm.getTiersFromProjectIOCA = getTiersFromProjectIOCA;\r\n vm.filterTiersByParent = filterTiersByParent;\r\n vm.CheckLocation = CheckLocation;\r\n vm.getToTiers = getToTiers;\r\n vm.LoadData = LoadData;\r\n vm.SaveData = SaveData;\r\n vm.cancel = cancel;\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n Init();\r\n //////////////////// \r\n\r\n vm.BoQTypeList = [{\r\n Status: 'Draft',\r\n id: 1\r\n },\r\n // {\r\n // Status: 'Pending for Approval',\r\n // id: 3\r\n // }, \r\n {\r\n Status: 'Finalized boq',\r\n id: 4\r\n }];\r\n\r\n function Init() {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Company\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company\");\r\n });\r\n }\r\n\r\n function getProjectByCompanyId(CompanyId, callback) {\r\n if (CompanyId) {\r\n vm.loc.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.loc.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n vm.loc.selectedStatus = null;\r\n clearTierSelection();\r\n var isWrkAlloc = true;\r\n vm.isLoading = true;\r\n projectCreationService.getAllApprovedProject(CompanyId, isWrkAlloc).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (vm.ProjectList.length < 1) {\r\n dialogs.notify('Warning', 'No Project available for ' + vm.loc.selectedCompany.CompanyName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.loc.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.loc.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n vm.loc.selectedStatus = null;\r\n // vm.BoQTypeList = [];\r\n vm.CopyingTier.selectedTierValue= null;\r\n //vm.allTierData=[];\r\n vm.selectedFOC= null;\r\n\r\n clearTierSelection();\r\n\r\n }\r\n }\r\n\r\n function clearTierSelection() {\r\n lodash.forEach(vm.CopyTierList, function (tier) {\r\n tier.selectedtierValue = null;\r\n tier.selectedIocatireValue = null;\r\n })\r\n }\r\n\r\n function getLocationByProjectId(ProjectId, callback) {\r\n if (ProjectId) {\r\n vm.loc.selectedBasicLocation = null;\r\n vm.CopyingTier.selectedTierValue= null;\r\n\r\n vm.LocationList = [];\r\n\r\n clearTierSelection();\r\n // vm.loc.selectedStatus = null;\r\n var id = {\r\n ProjectId: ProjectId,\r\n PowStatus: vm.loc.selectedStatus.id\r\n }\r\n LocationSetupService.getLocationByBoQIoca(id).then(function (res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n if (vm.LocationList.length < 1) {\r\n dialogs.notify('Warning', 'No Location available for ' + vm.loc.selectedProject.ProjectName, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n if (callback)\r\n callback();\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Project \");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project \");\r\n });\r\n } else {\r\n vm.loc.selectedBasicLocation = null;\r\n vm.LocationList = [];\r\n vm.CopyingTier.selectedTierValue= null;\r\n clearTierSelection();\r\n // vm.loc.selectedStatus = null;\r\n\r\n }\r\n\r\n }\r\n\r\n function getTiersByBoQ(LocationId, ProjectId, callback) {\r\n vm.isLoading = true;\r\n if (LocationId && ProjectId) {\r\n clearTierSelection();\r\n vm.tierObj = JSON.parse(vm.loc.selectedBasicLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n }\r\n ItemToItemService.getAllTiersByBoQ(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.rawTierListData = JSON.parse(res.data.result).Tiers;\r\n vm.isLoading = false;\r\n var tierList = [];\r\n lodash.forEach(vm.rawTierListData, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierName,\r\n Values: (t.TierName === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n vm.isLoading = false;\r\n });\r\n } else {\r\n clearTierSelection();\r\n }\r\n vm.CopyingTier.selectedTierValue= null;\r\n\r\n }\r\n\r\n function filterTiers(tier) {\r\n if (tier.selectedTierValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.selectedTierValue.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.rawTierListData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.allTierData, function (t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedTierValue.TierId\r\n });\r\n }\r\n });\r\n\r\n vm.TiersList = tier.selectedTierValue;\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.allTierData) {\r\n if (vm.allTierData[i].selectedTierValue) {\r\n vm.Arr.filter[vm.allTierData[i].TierName] = vm.allTierData[i].selectedTierValue.TierId\r\n }\r\n }\r\n\r\n getCountryByTiers(vm.TiersList);\r\n } else {\r\n\r\n clearTierSelection();\r\n }\r\n vm.selectedFOC= null;\r\n vm.focList = [];\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n\r\n function getCountryByTiers(tier) {\r\n if (tier) {\r\n // vm.loc.selectedCountry = null;\r\n vm.loc.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.loc.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr)\r\n }\r\n ItemToItemService.getBoQFoc(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.focList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Field of construction\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Field of construction\");\r\n });\r\n // ItemToItemService.getBoQCountry(obj).then(function (res) {\r\n // if (res.status === 200) {\r\n // vm.CountryList = res.data;\r\n\r\n // vm.isLoading = false;\r\n // } else {\r\n // $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n // }\r\n // }, function (err) {\r\n // $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n // });\r\n } else {\r\n vm.selectedFOC = null;\r\n vm.focList = [];\r\n // vm.loc.selectedCountry = null;\r\n // vm.CountryList = [];\r\n vm.loc.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.loc.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n }\r\n\r\n }\r\n\r\n function GetBoQCategoryByCountryId(CountryId, focId) {\r\n if (CountryId) {\r\n vm.CategoryList = [];\r\n vm.loc.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.loc.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n var filter = {\r\n CountryId: CountryId,\r\n FocId: focId\r\n };\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Category\");\r\n });\r\n } else {\r\n vm.CategoryList = [];\r\n vm.loc.selectedCategory = null;\r\n vm.CategoryList = [];\r\n vm.loc.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n }\r\n }\r\n\r\n function getBoQSubCategoryCAListByCategoryId(CategoryId) {\r\n if (CategoryId) {\r\n vm.loc.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n var filter = {\r\n CategoryId: CategoryId\r\n };\r\n\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQSubCategory(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Subcategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Subcategory\");\r\n });\r\n } else {\r\n vm.loc.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n }\r\n }\r\n\r\n function getBoQTypeOfCAListBySubcategoryId(SubCategoryId) {\r\n if (SubCategoryId) {\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n var filter = {\r\n SubCategoryId: SubCategoryId\r\n };\r\n\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.TypeOfCAList = res.data;\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Type\");\r\n });\r\n } else {\r\n\r\n vm.loc.selectedTypeOfCA = null;\r\n vm.TypeOfCAList = [];\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n }\r\n }\r\n\r\n function getBoQAttributeByTypeOfCAId(TypeId) {\r\n if (TypeId) {\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n if (TypeId !== undefined) {\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }]\r\n }\r\n } else {\r\n vm.loc.selectedTypeOfAttribute = null;\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n }\r\n }\r\n\r\n function getBoQIOCAListByTypeOfAttribute(Code) {\r\n if (Code) {\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n var filter = {\r\n CountryId: vm.loc.selectedProject.CountryId,\r\n CategoryId: vm.loc.selectedCategory.CategoryId,\r\n SubCategoryId: vm.loc.selectedSubCategory.SubCategoryId,\r\n TypeId: vm.loc.selectedTypeOfCA.TypeId,\r\n SpecType: vm.loc.selectedTypeOfAttribute.Code\r\n };\r\n\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n Tiers: JSON.stringify(vm.Arr),\r\n InputJson: JSON.stringify(filter)\r\n }\r\n ItemToItemService.getBoQIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.IOCAList = res.data;\r\n if(vm.IOCAList.length < 1){\r\n dialogs.notify('Warning', 'No IOCA available for ' + vm.loc.selectedTypeOfAttribute.TypeOfAttributeName, {\r\n animation: true,\r\n size: 'sm' \r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"IOCA\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"IOCA\");\r\n });\r\n } else {\r\n\r\n vm.IOCAList = [];\r\n vm.loc.selectedIoca = null;\r\n }\r\n }\r\n\r\n function getSelectedTiers() {\r\n vm.isLoading = true;\r\n var arr = vm.TiersList;\r\n\r\n vm.CopyTierList = [];\r\n var obj = {\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n Status: vm.loc.selectedStatus.id,\r\n ProjectIocaId: vm.loc.selectedIoca.ProjectIocaId,\r\n }\r\n ItemToItemService.getAllTiersByBoQ(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.fromLocData = JSON.parse(res.data.result).Tiers;\r\n vm.isLoading = false;\r\n var TierNo = getTierNo(vm.TiersList.TierName)\r\n for (var i in vm.fromLocData) {\r\n if (getTierNo(vm.fromLocData[i].TierName) <= getTierNo(vm.TiersList.TierName)) {\r\n vm.CopyTierList.push(vm.fromLocData[i])\r\n }\r\n }\r\n var tierList = [];\r\n lodash.forEach(vm.CopyTierList, function (t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierName,\r\n Values: (t.TierName === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.CopyTierList = tierList;\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n function filterTiersByParent(tier) {\r\n\r\n if (tier.selectedtireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.fromLocData, {\r\n \"TierName\": tempTier\r\n });\r\n lodash.forEach(vm.CopyTierList, function (t) {\r\n if (t.TierName === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedtireValue.TierId\r\n });\r\n }\r\n });\r\n\r\n vm.Arr = {\r\n filter: {}\r\n }\r\n for (var i in vm.CopyTierList) {\r\n if (vm.CopyTierList[i].selectedtireValue) {\r\n vm.Arr.filter[vm.CopyTierList[i].TierName] = vm.CopyTierList[i].selectedtireValue.TierId\r\n }\r\n }\r\n vm.FromTierId = tier.selectedtireValue.TierId\r\n }\r\n else {\r\n clearTierSelection();\r\n }\r\n\r\n getTiersFromProjectIOCA(tier);\r\n }\r\n\r\n function getTiersFromProjectIOCA(tier) {\r\n vm.isLoading = true;\r\n clearTierSelection();\r\n var obj = {\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n IocaId: vm.loc.selectedIoca.IOCA_Id,\r\n TierName: vm.CopyingTier.selectedTierValue.Tier\r\n }\r\n ItemToItemService.getTiersFromIOCA(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result);\r\n vm.isLoading = false;\r\n vm.ProjectIOCATiersList = [];\r\n // var cleaned = [];\r\n var tst = tier.selectedtireValue.TierId;\r\n for (var i in vm.strArr.Tiers) {\r\n if (getTierNo(vm.strArr.Tiers[i].TierNo) <= getTierNo(vm.TiersList.TierName)) {\r\n vm.ProjectIOCATiersList.push(vm.strArr.Tiers[i]);\r\n }\r\n }\r\n var tierList = [];\r\n lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n if (t.TierNo === \"Tier1\" && vm.TiersList.TierName === \"Tier1\") {\r\n var valuesToRemove = lodash.find(vm.CopyTierList, {\r\n \"TierName\": t.TierNo\r\n });\r\n\r\n lodash.forEach(valuesToRemove.Values, function (v) {\r\n lodash.remove(t.Values, function (tier) {\r\n return tier.TierId === v.TierId;\r\n })\r\n });\r\n }\r\n var temp = {\r\n Tier: t.Tier,\r\n TierNo: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\") ? t.Values : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.ProjectIOCATiersList = tierList;\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier\");\r\n }\r\n },\r\n function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier\");\r\n });\r\n vm.tempArr.filters[tier.TierName] = tier.selectedtireValue.TierId\r\n vm.LastTierId = tier.selectedtireValue.TierId;\r\n }\r\n\r\n\r\n\r\n vm.FilterTireCopyTo = function (tier, IocaTier) {\r\n if (tier.selectedIocatireValue) {\r\n vm.CopyTierList;\r\n vm.ProjectIOCATiersList;\r\n var tempTier = \"Tier\" + (getTierNo(IocaTier.TierNo) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr.Tiers, {\r\n \"TierNo\": tempTier\r\n });\r\n lodash.forEach(vm.ProjectIOCATiersList, function (t) {\r\n if (t.TierNo === tempTier) {\r\n t.Values = lodash.filter(currentTierDtl.Values, {\r\n 'ParentId': tier.selectedIocatireValue.TierId\r\n });\r\n if (t.TierNo === vm.TiersList.TierName) {\r\n var valuesToRemove = lodash.find(vm.CopyTierList, {\r\n \"TierName\": t.TierNo\r\n });\r\n lodash.forEach(valuesToRemove.Values, function (v) {\r\n lodash.remove(t.Values, function (t) {\r\n return t.TierId === v.TierId;\r\n })\r\n\r\n });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n clearTierSelection();\r\n }\r\n\r\n }\r\n\r\n function getToTiers(tier, TierNo) {\r\n vm.LastLocSelectedId = tier.selectedIocatireValue;\r\n vm.LasttireNo = TierNo;\r\n vm.IscheckLocation = true;\r\n }\r\n\r\n function CheckLocation() {\r\n vm.Last = vm.LastLocSelectedId;\r\n var Arr = [];\r\n for (var i in vm.Last) {\r\n Arr.push(vm.Last[i].TierId);\r\n }\r\n vm.LastLocIdList = Arr.join();\r\n var obj = {\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n FromLocId: vm.LastTierId,\r\n ToLocIdList: vm.LastLocIdList\r\n }\r\n ItemToItemService.CheckLocation(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.Message = res.data;\r\n if (vm.Message.ResCode != 1) {\r\n dialogs.notify('warning', vm.Message.Msg, {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n } else {\r\n vm.LoadOriginal = true;\r\n }\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Country\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Country\");\r\n });\r\n }\r\n\r\n function LoadData() {\r\n\r\n vm.Last = vm.LastLocSelectedId;\r\n for (var i in vm.Last) {\r\n vm.Last[i].TierNo = vm.LasttireNo\r\n }\r\n var temp = {}\r\n for (var i in vm.Last) {\r\n temp[vm.Last[i].TierNo] = vm.Last[i].TierId\r\n }\r\n var objLoadData = {\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n ProjectIocaId: vm.loc.selectedIoca.ProjectIocaId,\r\n FromTierId: vm.LastTierId,\r\n Tiers: JSON.stringify(temp)\r\n }\r\n ItemToItemService.getBoQLoctoLoc(objLoadData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BoqLocationList = res.data;\r\n vm.isLoadGrid = true;\r\n var DimenCount = vm.BoqLocationList.length;\r\n for (var start = 0; start < DimenCount; start++) {\r\n var obj = JSON.parse(vm.BoqLocationList[start].Dimentions);\r\n vm.BoqLocationList[start].Dimentions = obj;\r\n }\r\n\r\n for (var i = 0; i < DimenCount; i++) {\r\n var obj1 = JSON.parse(vm.BoqLocationList[i].LocationDetail);\r\n vm.BoqLocationList[i].LocationDetail = obj1;\r\n }\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Location to Location\");\r\n vm.isLoadGrid = false;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location to Location\");\r\n vm.isLoadGrid = false;\r\n });\r\n }\r\n\r\n function SaveData() {\r\n vm.isLoading = true;\r\n vm.Last = vm.LastLocSelectedId;\r\n var Arr = [];\r\n for (var i in vm.Last) {\r\n Arr.push(vm.Last[i].TierId);\r\n }\r\n vm.LastLocIdList = Arr.join();\r\n vm.FromTier = getTierNo(vm.TiersList.TierName);\r\n var objSaveData = {\r\n ProjectId: vm.loc.selectedProject.ProjectId,\r\n LocationId: vm.loc.selectedBasicLocation.LocationId,\r\n p_Actionby: $rootScope.userId,\r\n Tiers: JSON.stringify(vm.tempArr),\r\n ProjectIocaId: vm.loc.selectedIoca.ProjectIocaId,\r\n ToLocIdList: vm.LastLocIdList,\r\n FromTierId: vm.FromTierId\r\n }\r\n ItemToItemService.CopyBoQLocationToLocation(objSaveData).then(function (res) {\r\n if (res.status === 200) {\r\n vm.BoqLocationList = res.data;\r\n var DimenCount = vm.BoqLocationList.length;\r\n for (var start = 0; start < DimenCount; start++) {\r\n var obj = JSON.parse(vm.BoqLocationList[start].Dimentions);\r\n vm.BoqLocationList[start].Dimentions = obj;\r\n }\r\n\r\n for (var i = 0; i < DimenCount; i++) {\r\n var obj1 = JSON.parse(vm.BoqLocationList[i].LocationDetail);\r\n vm.BoqLocationList[i].LocationDetail = obj1;\r\n }\r\n clearTierSelection();\r\n vm.isLoading = false;\r\n vm.isLoadGrid = true;\r\n $rootScope.showToaster('success', 'Copy BOQ Location to Location inserted Successfully', \"BOQ\");\r\n } else {\r\n $rootScope.showToaster('error', \"Can't Copy BOQ Location to Location\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isLoading = false;\r\n vm.isLoadGrid = true;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', \"Can't Copy BOQ Location to Location\", {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.isLoadGrid = true;\r\n });\r\n cancel();\r\n }\r\n\r\n function cancel() {\r\n vm.loc = {};\r\n vm.isLoadGrid = false;\r\n clearTierSelection();\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.projectInit')\r\n .controller('projectToProjectCtrl', projectToProjectCtrl);\r\n\r\n /** @ngInject */\r\n function projectToProjectCtrl(AuthenticationService, CompanyService, lodash, $state, projectCreationService, projectToProjectService, $rootScope, dialogs) {\r\n var vm = this;\r\n\r\n\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function(num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code\r\n\r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n\r\n vm.GetProjectByCompany = GetProjectByCompany;\r\n vm.GetLocationDetails = GetLocationDetails;\r\n vm.getTiersByBoQ = getTiersByBoQ;\r\n vm.filterTiers = filterTiers;\r\n vm.getCategoryDetails = getCategoryDetails;\r\n vm.getSubCategoryDetails = getSubCategoryDetails;\r\n vm.getTypeofCADetails = getTypeofCADetails;\r\n vm.getIOCADetails = getIOCADetails;\r\n\r\n vm.getTo_ProjectDetails = getTo_ProjectDetails;\r\n vm.getTo_LocationDetails = getTo_LocationDetails;\r\n vm.getTo_LocationTiers = getTo_LocationTiers;\r\n vm.filterToTiers = filterToTiers;\r\n vm.CheckCopy = CheckCopy;\r\n vm.LoadData = LoadData;\r\n vm.SaveCopyBoQ = SaveCopyBoQ;\r\n\r\n vm.clearF_Project = clearF_Project;\r\n vm.clearCopyBoQ = clearCopyBoQ;\r\n\r\n vm.isChecked = false;\r\n vm.FocList = [];\r\n vm.CategoryList = [];\r\n vm.SubCategoryList = [];\r\n vm.TypeList = [];\r\n vm.IOCAList = [];\r\n\r\n Init();\r\n ////////////////\r\n\r\n function Init() {\r\n vm.isLoading = true;\r\n CompanyService.getSubCompByCompId(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n vm.TypeofCopyingBoQList = [{ Id: 1, TypeName: \"Copy BoQ without type of Work Location\" }, { Id: 2, TypeName: \"Copy BoQ with type of Work Location\" }];\r\n vm.TypeofBoQList = [{ Id: 1, TypeName: \"Draft BoQ\" }, { Id: 4, TypeName: \"Finalized BoQ\" }];\r\n vm.TypeOfAttributeList = [{\r\n TypeOfAttributeName: 'All',\r\n Code: 'A'\r\n }, {\r\n TypeOfAttributeName: 'Generic',\r\n Code: 'G'\r\n }, {\r\n TypeOfAttributeName: 'Specific',\r\n Code: 'S'\r\n }];\r\n\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n\r\n function GetProjectByCompany(companyId) {\r\n if (companyId) {\r\n ClearCompany();\r\n projectCreationService.getAllApproved(CompanyId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n } else {\r\n ClearCompany();\r\n }\r\n }\r\n\r\n\r\n function GetLocationDetails() {\r\n if (vm.prj.selectedTypeBoQ) {\r\n clearTypeofBoQ();\r\n var obj = {\r\n CompanyId: vm.prj.selectedCompany.CompanyId,\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n // console.log(obj)\r\n projectToProjectService.getTypeofLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LocationList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else {\r\n clearTypeofBoQ();\r\n }\r\n }\r\n\r\n // set maximum tier for selection by the give tier \r\n function getTiersByBoQ() {\r\n if (vm.prj.selectedWorkLocation != undefined) {\r\n clearF_Location();\r\n vm.tierObj = JSON.parse(vm.prj.selectedWorkLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.getLocationTiers(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.strArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.strArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.allTierData = tierList;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n\r\n } else {\r\n clearF_Location();\r\n }\r\n }\r\n\r\n function filterTiers(tier) {\r\n debugger;\r\n if (tier.selectedTireValue) {\r\n clearTier();\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.strArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.strArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.allTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n vm.LastTiers = tier.selectedTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierId = Arr.join();\r\n\r\n\r\n ///////\r\n vm.FilterTier = [];\r\n lodash.forEach(tier.selectedTireValue, function(e) {\r\n lodash.forEachRight(e.TierDetails, function(obj) {\r\n vm.FilterTier.push({\r\n TierName: obj.TierName,\r\n TierId: obj.TierId\r\n })\r\n })\r\n })\r\n\r\n var Arr = lodash.groupBy(vm.FilterTier, 'TierName');\r\n\r\n var tiers = {\r\n filter: {}\r\n };\r\n\r\n lodash.map(Arr, function(value, key) {\r\n tiers.filter[key] = lodash.map(lodash.uniqBy(value, 'TierId'), function(e) { return e.TierId }).join()\r\n })\r\n //vm.Tiers = JSON.stringify(tiers);\r\n vm.Tiers = '{\"filter\":{}}'\r\n //////// \r\n if (vm.isChecked) {\r\n getFocDetails();\r\n } else {\r\n getTypeofCADetails()\r\n }\r\n // GetCategoryByTier(vm.schedule.selectedProject.ProjectId, vm.schedule.Location.LocationId, vm.TierId)\r\n\r\n });\r\n } else {\r\n // clearTierSelection();\r\n clearTier();\r\n }\r\n\r\n }\r\n\r\n function getTierFullName(tierList) {\r\n debugger;\r\n // get full name of the tier ex. (Floor 1 - Block A for Floor 1)\r\n if (tierList && tierList.length > 0) {\r\n lodash.forEach(tierList, function(t) {\r\n if (t.ParentId != 0) {\r\n var parentName = lodash.find(t.TierDetails, { 'TierId': t.ParentId }).Tier;\r\n t.TierValue = t.TierVal + ' - ' + parentName;\r\n }\r\n })\r\n }\r\n return tierList;\r\n }\r\n\r\n function getTierNo(tierString) {\r\n return parseInt(tierString.substring(4));\r\n }\r\n\r\n\r\n vm.check = function() {\r\n if (vm.isChecked)\r\n getFocDetails();\r\n else\r\n getTypeofCADetails();\r\n }\r\n\r\n function getFocDetails() {\r\n clearFOC();\r\n var inputs = {\r\n CountryId: 1\r\n }\r\n var obj = {\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n inputs: JSON.stringify(inputs),\r\n ActionBy: loggedUserDtl.UserId,\r\n TypeofLoad: 'FOC'\r\n }\r\n projectToProjectService.getFocDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.FocList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n }\r\n\r\n function getCategoryDetails() {\r\n if (vm.prj.selectedFOC.length > 0) {\r\n ClearCategory();\r\n var inputs = {\r\n CountryId: 1,\r\n FocId: lodash.map(vm.prj.selectedFOC, function(e) { return e.FieldofConstructionId }).join()\r\n }\r\n var obj = {\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n inputs: JSON.stringify(inputs),\r\n ActionBy: loggedUserDtl.UserId,\r\n TypeofLoad: 'Category'\r\n }\r\n projectToProjectService.getCategoryDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.CategoryList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else {\r\n ClearCategory();\r\n }\r\n\r\n }\r\n\r\n function getSubCategoryDetails() {\r\n if (vm.prj.selectedCategory.length > 0) {\r\n clearSubCategory();\r\n var inputs = {\r\n CountryId: 1,\r\n FocId: lodash.map(vm.prj.selectedFOC, function(e) { return e.FieldofConstructionId }).join(),\r\n CategoryId: lodash.map(vm.prj.selectedCategory, function(e) { return e.CategoryId }).join()\r\n }\r\n var obj = {\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n inputs: JSON.stringify(inputs),\r\n ActionBy: loggedUserDtl.UserId,\r\n TypeofLoad: 'SubCategory'\r\n }\r\n projectToProjectService.getSubCategoryDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.SubCategoryList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else\r\n clearSubCategory();\r\n }\r\n\r\n\r\n function getTypeofCADetails() {\r\n if ((vm.isChecked) ? vm.prj.selectedSubCategory.length > 0 : vm.Tiers) {\r\n clearType();\r\n if (vm.isChecked) {\r\n var inputs = {\r\n CountryId: 1,\r\n FocId: lodash.map(vm.prj.selectedFOC, function(e) { return e.FieldofConstructionId }).join(),\r\n CategoryId: lodash.map(vm.prj.selectedCategory, function(e) { return e.CategoryId }).join(),\r\n SubCategoryId: lodash.map(vm.prj.selectedSubCategory, function(e) { return e.SubCategoryId }).join()\r\n }\r\n } else\r\n var inputs = '';\r\n\r\n var obj = {\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n inputs: JSON.stringify(inputs),\r\n ActionBy: loggedUserDtl.UserId,\r\n TypeofLoad: (vm.isChecked) ? 'TypeOfCategory' : 'Type'\r\n }\r\n projectToProjectService.getTypeofCADetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TypeList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else\r\n clearType();\r\n\r\n\r\n }\r\n\r\n function getIOCADetails() {\r\n if (vm.prj.selectedType.length > 0) {\r\n clearIOCA();\r\n if (vm.isChecked) {\r\n var inputs = {\r\n CountryId: 1,\r\n FocId: lodash.map(vm.prj.selectedFOC, function(e) { return e.FieldofConstructionId }).join(),\r\n CategoryId: lodash.map(vm.prj.selectedCategory, function(e) { return e.CategoryId }).join(),\r\n SubCategoryId: lodash.map(vm.prj.selectedSubCategory, function(e) { return e.SubCategoryId }).join(),\r\n SpecType: vm.prj.selectedTypeOfAttribute.Code,\r\n TypeId: lodash.map(vm.prj.selectedType, function(e) { return e.TypeId }).join()\r\n }\r\n } else\r\n var inputs = {\r\n SpecType: vm.prj.selectedTypeOfAttribute.Code,\r\n TypeId: lodash.map(vm.prj.selectedType, function(e) { return e.TypeId }).join()\r\n }\r\n\r\n var obj = {\r\n ProjectId: vm.prj.selectedProject.ProjectId,\r\n LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n inputs: JSON.stringify(inputs),\r\n ActionBy: loggedUserDtl.UserId,\r\n TypeofLoad: (vm.isChecked) ? 'IOCA' : 'Item'\r\n }\r\n projectToProjectService.getIocaDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n debugger;\r\n vm.IOCAList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else\r\n clearIOCA();\r\n\r\n }\r\n\r\n //////// COPY TO\r\n\r\n function getTo_ProjectDetails() {\r\n if (vm.prj.selectedIOCA != null) {\r\n if (vm.prj.selectedIOCA.length > 0) {\r\n clearT_Project();\r\n var obj = {\r\n F_CompanyId: vm.prj.selectedCompany.CompanyId,\r\n TypeOfCopy: vm.prj.selectedTypeCopyBoQ.Id,\r\n F_ProjectId: vm.prj.selectedProject.ProjectId,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.getTo_ProjectDetails(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ToProjectList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else\r\n clearT_Project();\r\n }\r\n }\r\n\r\n function getTo_LocationDetails() {\r\n if (vm.prj.selectedToProject) {\r\n clearT_Location();\r\n var obj = {\r\n F_CompanyId: vm.prj.selectedCompany.CompanyId,\r\n TypeOfCopy: vm.prj.selectedTypeCopyBoQ.Id,\r\n F_ProjectId: vm.prj.selectedProject.ProjectId,\r\n T_ProjectId: vm.prj.selectedToProject.ProjectId,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.getTo_TypeofLocation(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.ToLocationList = res.data;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Location Master\");\r\n });\r\n } else\r\n clearT_Location();\r\n }\r\n\r\n\r\n // set maximum tier for selection by the give tier \r\n function getTo_LocationTiers() {\r\n\r\n if (vm.prj.selectedWorkToLocation != undefined) {\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.tierObj = JSON.parse(vm.prj.selectedWorkToLocation.Tiers);\r\n vm.currentTier = vm.tierObj.Tier1;\r\n var obj = {\r\n TypeOfCopy: vm.prj.selectedTypeCopyBoQ.Id,\r\n F_ProjectId: vm.prj.selectedProject.ProjectId,\r\n T_ProjectId: vm.prj.selectedToProject.ProjectId,\r\n F_LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n T_LocationId: vm.prj.selectedWorkToLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.getTo_LocationTiers(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.TostrArr = JSON.parse(res.data.result).Tiers;\r\n var tierList = [];\r\n lodash.forEach(vm.TostrArr, function(t) {\r\n var temp = {\r\n Tier: t.Tier,\r\n TierName: t.TierNo,\r\n Values: (t.TierNo === \"Tier1\" && t.Values) ? getTierFullName(t.Values) : []\r\n };\r\n tierList.push(temp);\r\n })\r\n vm.ToallTierData = tierList;\r\n vm.isLoading = false;\r\n\r\n } else {\r\n $rootScope.showToaster('error', 'Load Failed! Try Again', \"Tier Setup\");\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Tier Setup\");\r\n });\r\n\r\n }\r\n }\r\n\r\n function filterToTiers(tier) {\r\n debugger;\r\n if (tier.selectedToTireValue) {\r\n var tempTier = \"Tier\" + (getTierNo(tier.TierName) + 1);\r\n var currentTierDtl = lodash.find(vm.TostrArr, {\r\n \"TierNo\": tempTier\r\n });\r\n var maxTier = lodash.maxBy(vm.TostrArr, function(t) {\r\n return getTierNo(t.TierNo);\r\n });\r\n lodash.forEach(vm.ToallTierData, function(t) {\r\n if (t.TierName === tempTier) {\r\n //t.Values = lodash.filter(currentTierDtl.Values, { 'ParentId': tier.selectedTireValue.TierId });\r\n var tierIdArr = lodash.map(tier.selectedToTireValue, 'TierId');\r\n t.Values = getTierFullName(lodash.filter(currentTierDtl.Values, function(t) {\r\n return lodash.includes(tierIdArr, t.ParentId);\r\n }));\r\n }\r\n vm.LastTiers = tier.selectedToTireValue;\r\n var Arr = [];\r\n for (var i in vm.LastTiers) {\r\n Arr.push(vm.LastTiers[i].TierId);\r\n }\r\n vm.TierId = Arr.join();\r\n });\r\n } else {\r\n // clearTierSelection();\r\n }\r\n }\r\n\r\n function CheckCopy() {\r\n var obj = {\r\n TypeOfCopy: vm.prj.selectedTypeCopyBoQ.Id,\r\n F_ProjectId: vm.prj.selectedProject.ProjectId,\r\n T_ProjectId: vm.prj.selectedToProject.ProjectId,\r\n F_LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n T_LocationId: vm.prj.selectedWorkToLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.checkCopyProject(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.MessageCode = res.data.MessageCode;\r\n if (vm.MessageCode === 1) {\r\n dialogs.notify('success', \"Coping Project to Project Can be Possible\", { animation: true, size: 'sm' });\r\n } else\r\n dialogs.notify('warning', \"Coping Project to Project Cannot be Possible\", { animation: true, size: 'sm' });\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Check Copy\");\r\n });\r\n }\r\n\r\n\r\n function LoadData() {\r\n debugger;\r\n vm.isLoading = true;\r\n var obj = {\r\n TypeOfCopy: vm.prj.selectedTypeCopyBoQ.Id,\r\n F_ProjectId: vm.prj.selectedProject.ProjectId,\r\n T_ProjectId: vm.prj.selectedToProject.ProjectId,\r\n F_LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n T_LocationId: vm.prj.selectedWorkToLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n TIOCAIds: lodash.map(vm.prj.selectedIOCA, function(e) { return e.IOCA_Id }).join(),\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.LoadData(obj).then(function(res) {\r\n if (res.status === 200) {\r\n vm.LoadDataList = res.data;\r\n vm.isLoading = false;\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Check Copy\");\r\n });\r\n\r\n }\r\n\r\n function SaveCopyBoQ() {\r\n var obj = {\r\n TypeOfCopy: vm.prj.selectedTypeCopyBoQ.Id,\r\n F_ProjectId: vm.prj.selectedProject.ProjectId,\r\n T_ProjectId: vm.prj.selectedToProject.ProjectId,\r\n F_LocationId: vm.prj.selectedWorkLocation.LocationId,\r\n T_LocationId: vm.prj.selectedWorkToLocation.LocationId,\r\n TypeofBoQ: vm.prj.selectedTypeBoQ.Id,\r\n Tiers: vm.Tiers,\r\n ActionBy: loggedUserDtl.UserId\r\n }\r\n projectToProjectService.SaveCopyBoQ(obj).then(function(res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster('success', res.data.Message, \"Copy BOQ Project to Project\");\r\n $state.reload();\r\n }\r\n }, function(err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Check Copy\");\r\n });\r\n\r\n }\r\n\r\n function ClearCompany() {\r\n vm.prj.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.prj.selectedTypeCopyBoQ = null;\r\n vm.prj.selectedTypeBoQ = null;\r\n vm.prj.selectedWorkLocation = null;\r\n vm.LocationList = [];\r\n vm.allTierData = [];\r\n vm.prj.selectedFOC = [];\r\n vm.prj.selectedFOC = null;\r\n vm.FocList = [];\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearF_Project() {\r\n vm.prj.selectedTypeCopyBoQ = null;\r\n vm.prj.selectedTypeBoQ = null;\r\n vm.prj.selectedWorkLocation = null;\r\n vm.LocationList = [];\r\n vm.allTierData = [];\r\n vm.prj.selectedFOC = [];\r\n vm.prj.selectedFOC = null;\r\n vm.FocList = [];\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearCopyBoQ() {\r\n vm.prj.selectedTypeBoQ = null;\r\n vm.prj.selectedWorkLocation = null;\r\n vm.LocationList = [];\r\n vm.allTierData = [];\r\n vm.prj.selectedFOC = [];\r\n vm.prj.selectedFOC = null;\r\n vm.FocList = [];\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearTypeofBoQ() {\r\n vm.prj.selectedWorkLocation = null;\r\n vm.LocationList = [];\r\n vm.allTierData = [];\r\n vm.prj.selectedFOC = [];\r\n vm.prj.selectedFOC = null;\r\n vm.FocList = [];\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearF_Location() {\r\n vm.allTierData = [];\r\n vm.prj.selectedFOC = [];\r\n vm.prj.selectedFOC = null;\r\n vm.FocList = [];\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearTier() {\r\n vm.prj.selectedFOC = [];\r\n vm.prj.selectedFOC = null;\r\n vm.FocList = [];\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearFOC() {\r\n vm.prj.selectedCategory = null;\r\n vm.prj.selectedCategory = [];\r\n vm.CategoryList = [];\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function ClearCategory() {\r\n vm.prj.selectedSubCategory = [];\r\n vm.prj.selectedSubCategory = null;\r\n vm.SubCategoryList = [];\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearSubCategory() {\r\n vm.prj.selectedType = null;\r\n vm.prj.selectedType = [];\r\n vm.TypeList = [];\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n vm.IOCAList = [];\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearType() {\r\n vm.prj.selectedTypeOfAttribute = null;\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearAttribute() {\r\n vm.prj.selectedIOCA = [];\r\n vm.prj.selectedIOCA = null;\r\n\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearIOCA() {\r\n vm.prj.selectedToProject = null;\r\n vm.ToProjectList = [];\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearT_Project() {\r\n vm.prj.selectedWorkToLocation = null;\r\n vm.ToLocationList = [];\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n function clearT_Location() {\r\n vm.ToallTierData = [];\r\n vm.MessageCode = 0;\r\n vm.LoadDataList = [];\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.materialManagement')\r\n .controller('StockRegistrationCtrl', StockRegistrationCtrl);\r\n\r\n /** @ngInject */\r\n function StockRegistrationCtrl($http, lodash, $filter, $rootScope, dialogs, AuthenticationService, CompanyService, projectCreationService, StoreLocationSetupService, StoreStaffAllocationService, StockRegistrationService) {\r\n var vm = this;\r\n // Pagination code\r\n vm.rowCountOptions = [{ \"value\": 5 }, { \"value\": 10 }, { \"value\": 25 }, { \"value\": 50 }, { \"value\": 100 }]\r\n vm.noOfRows = vm.rowCountOptions[1];\r\n\r\n vm.currentPage = 1;\r\n vm.rembemberCurrentPage = function (num) {\r\n vm.currentPage = num;\r\n }\r\n // End of Pagination code \r\n var CompanyId = AuthenticationService.getLoggedUserDetails().SelectedCompany.CompanyId;\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n vm.getProjectByCompany = getProjectByCompany;\r\n vm.getStoreType = getStoreType;\r\n vm.getStoreNo = getStoreNo;\r\n vm.getTypeOfStatement = getTypeOfStatement;\r\n vm.getStockRegIOM = getStockRegIOM;\r\n vm.getStockRegmCat = getStockRegmCat;\r\n vm.getStockRegmSubCat = getStockRegmSubCat;\r\n vm.getStockRegmType = getStockRegmType;\r\n vm.getStockRegIOMByTypeId = getStockRegIOMByTypeId;\r\n vm.getStockDetailsByIOMId = getStockDetailsByIOMId;\r\n vm.Reset = Reset;\r\n vm.ClearStoreAt = ClearStoreAt;\r\n vm.ClearProject = ClearProject;\r\n vm.isView = false;\r\n Init()\r\n\r\n function Init() {\r\n if (CompanyId) {\r\n CompanyService.getSubCompByCompId(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.CompanyList = res.data;\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Company Master\");\r\n });\r\n }\r\n var obj = {\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreLocationSetupService.getAllStore(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreList = res.data;\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreList\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreList\");\r\n });\r\n\r\n }\r\n //// Get Project \r\n function getProjectByCompany(CompanyId) {\r\n if (CompanyId) {\r\n ClearCompany();\r\n projectCreationService.getAllApproved(CompanyId).then(function (res) {\r\n if (res.status === 200) {\r\n vm.ProjectList = res.data;\r\n if (!vm.ProjectList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Project available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n } else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Project Master\");\r\n }\r\n }, function (err) {\r\n dialogs.error('error', 'Error! Try Again', \"Project Master\");\r\n });\r\n }\r\n else {\r\n ClearCompany();\r\n }\r\n }\r\n ////// Get StoreAt \r\n function getStoreType(CompanyId) {\r\n if (CompanyId) {\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n debugger;\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n if (CompanyId) {\r\n StoreStaffAllocationService.getStoreType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreTypeList = res.data;\r\n if (!vm.StoreTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreType available selected Company', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreType\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreType\");\r\n })\r\n }\r\n }\r\n\r\n }\r\n\r\n function getStoreNo(CompanyId, StoreTypeId) {\r\n if (StoreTypeId) {\r\n ClearStoreType()\r\n var logggedUser = AuthenticationService.getLoggedUserDetails();\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StoreStaffAllocationService.getStoreNo(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StoreNoList = res.data\r\n if (!vm.StoreNoList.length > 0) {\r\n dialogs.notify('Warning', '! There is no StoreNo available selected StoreType', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"StoreNo\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"StoreNo\");\r\n })\r\n }\r\n else {\r\n ClearStoreType()\r\n }\r\n\r\n }\r\n\r\n function getTypeOfStatement(tStoreSetupId) {\r\n if (tStoreSetupId) {\r\n ClearStoreNo();\r\n vm.StatementList = [{ TypeCode: 'D', TypeName: 'Daily', Type: 'Day' }, { TypeCode: 'W', TypeName: 'Weekly', Type: 'Week' }, { TypeCode: 'M', TypeName: 'Monthly', Type: 'Month' }, { TypeCode: 'Q', TypeName: 'Quarterly', Type: 'Quarter Year' }, { TypeCode: 'HY', TypeName: 'Half Yearly', Type: 'Half Year' }, { TypeCode: 'Y', TypeName: 'Yearly', Type: 'Year' }]\r\n }\r\n else\r\n ClearStoreNo();\r\n }\r\n\r\n function getStockRegIOM() {\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedWSIOM = null;\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegIOM(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n if (!vm.IOMList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Item of material available selected Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n }\r\n vm.isLoading = false;\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM\");\r\n })\r\n }\r\n\r\n function getStockRegmCat() {\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegmCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MCategoryList = res.data\r\n if (!vm.MCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Category of material available selected Date', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Category\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Category\");\r\n })\r\n }\r\n\r\n function getStockRegmSubCat() {\r\n if (vm.stock.selectedCategory) {\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n mCatId: vm.stock.selectedCategory.mCatId,\r\n CreatedBy: logggedUser.UserId\r\n }\r\n StockRegistrationService.getStockRegmSubCat(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MSubCategoryList = res.data\r\n if (!vm.MSubCategoryList.length > 0) {\r\n dialogs.notify('Warning', '! There is no SubCategory of material available selected Category', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock SubCategory\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock SubCategory\");\r\n })\r\n }\r\n else {\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getStockRegmType() {\r\n if (vm.stock.selectedSubCategory) {\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n mSubCatId: vm.stock.selectedSubCategory.mSubCatId,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockRegmType(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.MTypeList = res.data\r\n if (!vm.MTypeList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Type of material available selected SubCategory', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock Type\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock Type\");\r\n })\r\n }\r\n else {\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getStockRegIOMByTypeId() {\r\n if (vm.stock.selectedType) {\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n mTypeId: vm.stock.selectedType.mTypeId,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockRegIOMByTypeId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.IOMList = res.data\r\n if (!vm.IOMList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Item of material available selected Type', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock IOM Id\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock IOM Id\");\r\n })\r\n }\r\n else {\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n }\r\n\r\n function getStockDetailsByIOMId() {\r\n vm.isLoading = true;\r\n var obj = {\r\n CompanyId: vm.stock.selectedCompany.CompanyId,\r\n StoreAtId: vm.stock.selectedStoreAt.StoreId,\r\n ProjectId: (vm.stock.selectedProject != undefined) ? vm.stock.selectedProject.ProjectId : 0,\r\n StoreTypeId: vm.stock.selectedStoreType.StoreTypeId,\r\n StoreNo: vm.stock.SelectedStoreNo.tStoreSetupId,\r\n FromDate: $filter('date')(vm.stock.From, 'yyyy/MM/dd'),\r\n ToDate: $filter('date')(vm.stock.To, 'yyyy/MM/dd'),\r\n IOM_Id: (vm.stock.Search == 'wordSearch') ? vm.stock.selectedWSIOM.IOM_Id : vm.stock.selectedASIOM.IOM_Id,\r\n CreatedBy: logggedUser.UserId\r\n\r\n }\r\n StockRegistrationService.getStockDetailsByIOMId(obj).then(function (res) {\r\n if (res.status === 200) {\r\n vm.StockDetailsList = res.data\r\n // vm.DetailsList = [];\r\n if (!vm.StockDetailsList.length > 0) {\r\n dialogs.notify('Warning', '! There is no Stock Details available selected IOM', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n else {\r\n var Arr = vm.StockDetailsList.map(function (obj, Index) {\r\n obj.SNo = parseInt(Index + 1)\r\n return obj\r\n });\r\n console.log(Arr)\r\n\r\n if (vm.StockDetailsList.length > 0)\r\n vm.isView = true;\r\n else {\r\n vm.isView = false;\r\n }\r\n }\r\n vm.isLoading = false;\r\n }\r\n\r\n else {\r\n dialogs.error('error', 'Load Failed! Try Again', \"Stock List\");\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster('error', 'Error! Try Again', \"Stock List\");\r\n })\r\n }\r\n\r\n\r\n function Reset() {\r\n vm.stock.selectedCompany = null;\r\n vm.stock.selectedStoreAt = null;\r\n vm.stock.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stock.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearCompany() {\r\n vm.stock.selectedStoreAt = null;\r\n vm.stock.selectedProject = null;\r\n vm.ProjectList = [];\r\n vm.stock.selectedStoreType = null;\r\n vm.StoreTypeList = [];\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreAt() {\r\n vm.stock.selectedProject = null;\r\n vm.stock.selectedStoreType = null;\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearProject() {\r\n vm.stock.selectedStoreType = null;\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreType() {\r\n vm.stock.SelectedStoreNo = null;\r\n vm.StoreNoList = [];\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n function ClearStoreNo() {\r\n vm.stock.selectedStatement = null;\r\n vm.StatementList = [];\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n function ClearDate() {\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n vm.stock.Search = null;\r\n vm.stock.selectedWSIOM = null;\r\n vm.IOMList = [];\r\n vm.stock.selectedCategory = null;\r\n vm.MCategoryList = [];\r\n vm.stock.selectedSubCategory = null;\r\n vm.MSubCategoryList = [];\r\n vm.stock.selectedType = null;\r\n vm.MTypeList = [];\r\n vm.stock.selectedASIOM = null;\r\n vm.IOMList = [];\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n vm.clearStockDetails = function () {\r\n vm.isView = false;\r\n vm.StockDetailsList = [];\r\n }\r\n\r\n\r\n // Get Date\r\n\r\n vm.ClearDate = function () {\r\n if (vm.stock.selectedStatement != undefined) {\r\n ClearDate()\r\n if (vm.stock.selectedStatement.TypeCode == 'D') {\r\n vm.stock.From = new Date()\r\n vm.stock.From = angular.copy(vm.stock.From);\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n else if (vm.stock.selectedStatement.TypeCode == 'W') {\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n }\r\n else {\r\n vm.stock.From = null;\r\n vm.stock.To = null;\r\n }\r\n\r\n }\r\n else {\r\n ClearDate();\r\n }\r\n }\r\n\r\n vm.getDate = function () {\r\n if (vm.stock.selectedStatement.TypeCode == 'D') {\r\n vm.stock.From = angular.copy(vm.stock.From);\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n }\r\n\r\n vm.GetEndDate = function () {\r\n if (vm.stock.selectedStatement.TypeCode == 'W') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfDaysToAdd = 6;\r\n vm.stock.To.setDate(vm.stock.To.getDate() + numberOfDaysToAdd);\r\n }\r\n else {\r\n vm.stock.From = '';\r\n vm.stock.To = '';\r\n }\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n\r\n\r\n vm.GetMonthEndDate = function () {\r\n\r\n if (vm.stock.selectedStatement.TypeCode == 'M') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfMonthToAdd = 1;\r\n vm.stock.To.setMonth(vm.stock.To.getMonth() + numberOfMonthToAdd);\r\n vm.stock.To.setDate(vm.stock.To.getDate() - 1);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n else if (vm.stock.selectedStatement.TypeCode == 'Q') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfMonthToAdd = 3;\r\n vm.stock.To.setMonth(vm.stock.To.getMonth() + numberOfMonthToAdd);\r\n vm.stock.To.setDate(vm.stock.To.getDate() - 1);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n else if (vm.stock.selectedStatement.TypeCode == 'HY') {\r\n vm.stock.To = angular.copy(vm.stock.From);\r\n var numberOfMonthToAdd = 6;\r\n vm.stock.To.setMonth(vm.stock.To.getMonth() + numberOfMonthToAdd);\r\n vm.stock.To.setDate(vm.stock.To.getDate() - 1);\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.GetYearEndDate = function () {\r\n debugger;\r\n if (vm.stock.selectedStatement.TypeCode == 'Y') {\r\n vm.stock.From = new Date(\"1/1/\" + (new Date()).getFullYear());\r\n vm.stock.To = new Date(\"12/31/\" + (new Date()).getFullYear());\r\n if (vm.stock.Search == 'advanceSearch')\r\n getStockRegmCat();\r\n else {\r\n vm.stock.Search = 'wordSearch';\r\n getStockRegIOM();\r\n }\r\n }\r\n }\r\n\r\n\r\n //#region Date \r\n\r\n vm.today = function () {\r\n vm.dt = new Date();\r\n };\r\n vm.today();\r\n\r\n vm.clear = function () {\r\n vm.dt = null;\r\n };\r\n\r\n vm.inlineOptions = {\r\n customClass: getDayClass,\r\n minDate: new Date(),\r\n showWeeks: true\r\n };\r\n\r\n vm.dateOptions = {\r\n dateDisabled: disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(2023, 5, 22),\r\n minDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n vm.toggleMin = function () {\r\n vm.inlineOptions.minDate = vm.inlineOptions.minDate ? null : new Date();\r\n vm.dateOptions.minDate = vm.inlineOptions.minDate;\r\n };\r\n\r\n vm.toggleMin();\r\n\r\n vm.open2 = function () {\r\n vm.popup2.opened = true;\r\n var today = new Date();\r\n\r\n };\r\n\r\n vm.open1 = function () {\r\n vm.popup1.opened = true;\r\n var today = new Date();\r\n };\r\n\r\n vm.setDate = function (year, month, day) {\r\n vm.dt = new Date(year, month, day);\r\n };\r\n\r\n vm.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\r\n vm.format = vm.formats[0];\r\n vm.altInputFormats = ['M!/d!/yyyy'];\r\n\r\n\r\n vm.popup2 = {\r\n opened: false\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0, 0, 0, 0);\r\n\r\n for (var i = 0; i < vm.events.length; i++) {\r\n var currentDay = new Date(vm.events[i].date).setHours(0, 0, 0, 0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return vm.events[i].status;\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n //#endregion\r\n\r\n }\r\n\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq.comparision')\r\n .controller('AddNotesModalCtrl', AddNotesModalCtrl);\r\n\r\n /** @ngInject */\r\n function AddNotesModalCtrl(lodash, $log, $rootScope, $scope, $filter, items, $uibModalInstance) {\r\n var vm = this;\r\n \r\n init();\r\n\r\n ////////////////\r\n\r\n function init() {\r\n vm.Type = items.type;\r\n }\r\n\r\n vm.ok = function () {\r\n $uibModalInstance.close(vm.SenderNotes);\r\n };\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq.comparision')\r\n .controller('RfqComparisionFormCtrl', RfqComparisionFormCtrl);\r\n\r\n /** @ngInject */\r\n function RfqComparisionFormCtrl(lodash, dialogs, $log, $rootScope, $scope, RfqContractorService, $filter, $state, $stateParams, $uibModal) {\r\n var vm = this;\r\n ///// Properties ////////\r\n vm.FormMode = 'EDIT';\r\n vm.RfqList = [];\r\n\r\n ///// Functions ////////\r\n vm.formatContractorName = formatContractorName;\r\n vm.saveComparision = saveComparision;\r\n vm.toggleEditMode = toggleEditMode;\r\n vm.sendForApproval = sendForApproval;\r\n vm.reject = reject;\r\n vm.approveComparision = approveComparision;\r\n vm.resubmit = resubmit;\r\n vm.block = block;\r\n vm.back = back;\r\n\r\n init();\r\n ////////////////\r\n\r\n function init() {\r\n if ($state.params.data) {\r\n debugger;\r\n vm.RfqToCompare = $state.params.data.rfqToCompare;\r\n vm.contList = $state.params.data.contList;\r\n vm.FormMode = $state.params.mode;\r\n vm.approvedContractor = $state.params.data.rfqToCompare.ContractorName\r\n if (vm.FormMode != 'CREATE') {\r\n setRfqData();\r\n if ($rootScope.previousState === 'draftRfqComparision') {\r\n\r\n } else if ($state.current.name === 'waitingForApprovalRfqComparision') {\r\n\r\n } else if ($state.current.name === 'backForCorrectionRfqComparision') {\r\n\r\n } else if ($state.current.name === 'approvedRfqComparision') {\r\n\r\n } else if ($state.current.name === 'blockedRfqComparision') {\r\n\r\n }\r\n }\r\n } else {\r\n dialogs.notify('Warning', 'Please select a RFQ', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n $state.go('rfqComparision');\r\n }\r\n }\r\n\r\n function setRfqData() {\r\n lodash.forEach(vm.contList, function (cont) {\r\n if (parseInt(getContractorId(cont)) === vm.RfqToCompare.ContractorId)\r\n vm.selectedContractor = cont;\r\n });\r\n vm.senderNotes = vm.RfqToCompare.Note;\r\n }\r\n\r\n function toggleEditMode() {\r\n debugger;\r\n if (vm.FormMode === 'VIEW')\r\n vm.FormMode = 'EDIT';\r\n else {\r\n setRfqData();\r\n vm.FormMode = 'VIEW';\r\n }\r\n }\r\n\r\n function formatContractorName(column) {\r\n if (column) {\r\n var strArr = column.split('/');\r\n if (strArr[0] === '###')\r\n return strArr[2]; // + '(' + strArr[1] + ')';\r\n else\r\n return column;\r\n }\r\n }\r\n\r\n function getContractorId(text) {\r\n var strArr = text.split('/');\r\n return strArr[1];\r\n }\r\n\r\n function saveComparision() {\r\n debugger;\r\n if (vm.selectedContractor) {\r\n if (vm.FormMode === 'EDIT') {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n ContractorId: getContractorId(vm.selectedContractor),\r\n Note: vm.senderNotes\r\n }\r\n \r\n RfqContractorService.modifyRfqComparisionDtls(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Comparision Details successfully updated.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n } else if (vm.FormMode === 'CREATE') {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n ContractorId: getContractorId(vm.selectedContractor),\r\n Note: vm.senderNotes\r\n }\r\n \r\n RfqContractorService.saveRfqComparisionAsDraft(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Comparision Details successfully saved.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n } \r\n } else {\r\n dialogs.notify('Warning', 'You must select a Contractor', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n }\r\n\r\n function sendForApproval() {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n Note: vm.senderNotes\r\n }\r\n\r\n RfqContractorService.sendComparisionForApproval(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Successfully sent for Approval.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n }\r\n\r\n function reject() {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/pages/RFQ/rfqComparision/addNotesModal/addNotesModal.html',\r\n controller: 'AddNotesModalCtrl',\r\n controllerAs: 'vm',\r\n size: 'sm',\r\n resolve: {\r\n items: function () {\r\n return {\r\n type: 'Reject'\r\n };\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (note) {\r\n obj.Note = note;\r\n\r\n RfqContractorService.rejectComparision(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Rejected Successfully.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n });\r\n }\r\n\r\n function approveComparision() {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n Note: vm.senderNotes\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'app/pages/RFQ/rfqComparision/addNotesModal/addNotesModal.html',\r\n controller: 'AddNotesModalCtrl',\r\n controllerAs: 'vm',\r\n size: 'sm',\r\n resolve: {\r\n items: function () {\r\n return {\r\n type: 'Approve'\r\n };\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (note) {\r\n obj.Note = note;\r\n\r\n RfqContractorService.approveComparision(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Approved Successfully.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n });\r\n }\r\n\r\n function resubmit() {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n Note: vm.senderNotes,\r\n ContractorId: getContractorId(vm.selectedContractor)\r\n }\r\n\r\n RfqContractorService.resubmitComparision(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Resubmitted Successfully.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n }\r\n\r\n function block() {\r\n var obj = {\r\n RfqId: vm.RfqToCompare.RfqId,\r\n Note: vm.senderNotes\r\n }\r\n\r\n RfqContractorService.blockComparision(obj).then(function (res) {\r\n if (res.status === 200) {\r\n $rootScope.showToaster(\"success\", \"Blocked Successfully.\", \"Rfq Comparision\");\r\n back();\r\n }\r\n }, function (err) {\r\n $rootScope.showToaster(\"error\", \"Internal Server Error!\", {\r\n animation: true,\r\n size: \"sm\"\r\n });\r\n });\r\n }\r\n\r\n function back() {\r\n $state.go($rootScope.previousState);\r\n }\r\n }\r\n})();\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('KPMES.pages.rfq.comparision')\r\n .controller('ListViewCtrl', ListViewCtrl);\r\n\r\n /** @ngInject */\r\n function ListViewCtrl(lodash, dialogs, $log, $rootScope, $scope, RfqContractorService, AuthenticationService, $filter, $state, $stateParams) {\r\n var vm = this;\r\n\r\n ///// Properties ////////\r\n vm.RfqList = []\r\n var loggedUserDtl = AuthenticationService.getLoggedUserDetails();\r\n var CompanyId = loggedUserDtl.SelectedCompany.CompanyId;\r\n ///// Static Data /////\r\n vm.TypeofContractList = [{\r\n ContractName: 'Item Rate Contract',\r\n Id: 1\r\n }, {\r\n ContractName: 'Lump Sum Contract',\r\n Id: 2\r\n }, {\r\n ContractName: 'Lump sum and Schedule Contract',\r\n Id: 3\r\n }];\r\n\r\n vm.rfqTypeList = [{\r\n rfqTypeName: 'Labour only',\r\n rfqTypeId: 1,\r\n Code: 'L'\r\n }, {\r\n rfqTypeName: 'Labour and Material',\r\n rfqTypeId: 2,\r\n Code: 'C1'\r\n }, {\r\n rfqTypeName: 'Labour and Machinery',\r\n rfqTypeId: 3,\r\n Code: 'C3'\r\n }, {\r\n rfqTypeName: 'Labour, Material and Machinery',\r\n rfqTypeId: 4,\r\n Code: 'C2'\r\n }, {\r\n rfqTypeName: 'Labour, Material, Machinery and Consumable',\r\n rfqTypeId: 5,\r\n Code: 'C4'\r\n }, {\r\n rfqTypeName: 'Prime Contractor',\r\n rfqTypeId: 6,\r\n Code: 'C5'\r\n }]\r\n\r\n ///// Functions ////////\r\n vm.viewQuatationDtls = viewQuatationDtls;\r\n\r\n init();\r\n ////////////////\r\n\r\n function init() {\r\n var tempRfqList;\r\n if ($state.current.name === 'draftRfqComparision') {\r\n RfqContractorService.getDraftRfqComparision(CompanyId).then(function(res) {\r\n setRfqList(res.data);\r\n }, function(err) {});\r\n } else if ($state.current.name === 'waitingForApprovalRfqComparision') {\r\n RfqContractorService.getWaitingForApprovalRfqComparision(CompanyId).then(function(res) {\r\n setRfqList(res.data);\r\n }, function(err) {});\r\n } else if ($state.current.name === 'backForCorrectionRfqComparision') {\r\n RfqContractorService.getBackForCorrectionRfqComparision(CompanyId).then(function(res) {\r\n setRfqList(res.data);\r\n }, function(err) {});\r\n } else if ($state.current.name === 'approvedRfqComparision') {\r\n RfqContractorService.getApprovedRfqComparision(CompanyId).then(function(res) {\r\n setRfqList(res.data);\r\n }, function(err) {});\r\n } else if ($state.current.name === 'blockedRfqComparision') {\r\n RfqContractorService.getBlockedRfqComparision(CompanyId).then(function(res) {\r\n setRfqList(res.data);\r\n }, function(err) {});\r\n }\r\n }\r\n\r\n function setRfqList(data) {\r\n if (!data.length > 0) {\r\n dialogs.notify('Warning', 'No RFQ available', {\r\n animation: true,\r\n size: 'sm'\r\n });\r\n }\r\n lodash.forEach(data, function(rfq) {\r\n rfq.RfqScope = lodash.find(vm.rfqTypeList, {\r\n \"Code\": rfq.RfqScope\r\n }).rfqTypeName;\r\n rfq.TypeOfContract = lodash.find(vm.TypeofContractList, {\r\n \"Id\": rfq.TypeOfContract\r\n }).ContractName;\r\n })\r\n\r\n data = lodash.groupBy(data, 'CompanyName');\r\n for (var key in data) {\r\n data[key] = lodash.groupBy(data[key], 'ProjectName');\r\n }\r\n\r\n vm.RfqList = data;\r\n\r\n\r\n }\r\n\r\n function viewQuatationDtls(rfq) {\r\n vm.RfqToCompare = rfq;\r\n\r\n RfqContractorService.getRfqQuotationDetails(rfq.RfqId).then(function(res) {\r\n if (res.status === 200) {\r\n vm.RfqToCompare.RfqIocaDetails = JSON.parse(res.data);\r\n var temp = {};\r\n vm.contList = [];\r\n lodash.forIn(vm.RfqToCompare.RfqIocaDetails[0], function(val, col) {\r\n var strArr = col.split('/');\r\n if (strArr[0] === '###') {\r\n var sum = lodash.sumBy(vm.RfqToCompare.RfqIocaDetails, col)\r\n temp[col] = '' + $filter('number')(sum, 2) + '';\r\n vm.contList.push(col);\r\n } else if (col === 'EstimatedRate') {\r\n var sum = lodash.sumBy(vm.RfqToCompare.RfqIocaDetails, col)\r\n temp[col] = '' + $filter('number')(sum, 2) + '';\r\n vm.contList.push(col);\r\n } else {\r\n temp[col] = \"\"\r\n }\r\n });\r\n\r\n vm.RfqToCompare.RfqIocaDetails.push(temp);\r\n $state.go('viewRfqComparision', {\r\n data: {\r\n rfqToCompare: vm.RfqToCompare,\r\n contList: vm.contList\r\n },\r\n mode: 'VIEW'\r\n });\r\n }\r\n }, function(err) {});\r\n }\r\n }\r\n})();\nangular.module('KPMES').run(['$templateCache', function($templateCache) {$templateCache.put('app/pages/approvalOfCmpltdWork/approvalOfCmpltdWork.html','
Approval of Completed Work
{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.Status}}
{{$select.selected.rfqTypeName}}
Select the Construction Activity
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}
{{$select.selected.TypeOfAttributeName}}
{{$select.selected.ShortDescription}}
Select the Location & Tiers
{{$select.selected.BasicLocation}}


: {{ vm.ContractorName }}
: {{ vm.Ioca_Code}}
: {{ vm.Name}}
:

{{ vm.Name}}


S.NoPoint of WorkNoIOCA Detailed DescriptionEstimated QtyM Book QtyApprove AllDefectiveCameraPreviewNote
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_Code}}{{row.TypeName}}
{{row.IOCA_LongDes}}
Special Note :{{row.SpecialNote}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}

{{ k }} :{{ v }} Pow Qty : {{loc.PowQty | setDecimal:2}}

{{row.UnitName}}{{row.TotQty | setDecimal:2}}* required{{((row.TotQty)-0 )* ((row.UnitRate)-0) | setDecimal:2 }} * required{{row.total | setDecimal:2 }}
{{ vm.grandTotal | setDecimal:2 }}

:     
:     
:     
  • \"{{photo.desc}}\"
');\n$templateCache.put('app/pages/area/area.html','
Create AreaEdit Area
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State Name is required.
{{$select.selected.CityName}}
City Name is required.
{{$select.selected.TalukName}}

AreA Name is maximum length are {{ 50 - inputMessage.length + \\' Char\\' }}

Area Name is required

Area Name is maximum length are {{ 3 - inputMessage.length + \\' Char\\' }}

Area Code is required

Pincode is maximum length are {{ 10 - inputMessage.length + \\' Char\\' }}

Pincode is required

List Of Areas

S.NoArea NamePincodeTaluk NameCity NameState NameCountry NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.AreaName}}{{row.Pincode}}
{{row.TalukName}}
--
{{row.City.CityName}}{{row.State.StateName}}{{row.Country.CountryName}}
');\n$templateCache.put('app/pages/AttendenceDetails/attendence.html','

Creation of Attendence Details




');\n$templateCache.put('app/pages/billing/workOrderDetails.html','

Work Order Details

0\">
S.NoType of CAIOCA CodeDetailed DescriptionUomTotal QtyRate Per UnitGST in %Total Amount
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.IOCA_Code}}{{row.IOCA_LongDes}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}
{{ loc.TierValue }} :{{ loc.Tier }} Pow Qty : {{basicLoc.PowQty | setDecimal:2}}
{{row.UnitName}}{{row.TotQty | setDecimal:2}}{{row.UnitRate}}{{row.Tax}}{{row.total | currency:\\'₹\\' }}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}
');\n$templateCache.put('app/pages/city/City.html','
Create CityEdit City
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State Name is required.

City Name is required

City Name is maximum length are {{ 50 - inputMessage.length + \\' Char\\' }}

List Of Cities

S.NoCountry NameState NameCity NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Country.CountryName}}{{row.State.StateName}}{{row.CityName}}
');\n$templateCache.put('app/pages/company/company.html','
Create Company InitiationEdit Company Initiation

Company Name is required

Company Code is required

Code is too short.

Code is maximum length are five digit

Address Line 1 is required

{{$select.selected.CountryName}}
Country is required.
{{$select.selected.StateName}}
State is required.
{{$select.selected.CityName}}
City is required.
{{$select.selected.AreaName}}
Area is required.

Company Email is required Not valid email!

PhoneNo should be 10 digits

PhoneNo should not greater than 15 digits

PhoneNo should be 12 digits

Website is required

Not valid Website!


Selecte a Company Logo


{{$select.selected.OwnershipName}}
Organization Type is required.
{{$select.selected.BusinessName}}
Nature Of Business is required.
{{$select.selected.LevelName}}
Organization Level is required.
0\">
{{$select.selected.CompanyName}}

List Of Companies

S.NoCodeName of the CompanyType of OrganizationReporting ToLocationAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CompanyCode}}{{row.CompanyName}}{{row.OrganizationLevel.LevelName}}{{row.ParentCompanyName}}{{row.City.CityName}}
');\n$templateCache.put('app/pages/constructionProjectTeam/projectTeamHome.html','
=1 && vm.StatusId <= 6\">

List of Project Team - {{vm.MenuNameList[vm.StatusId - 1].MenuName}}


{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0 && vm.projteam.selectedProject !== undefined\">


{{vm.waitingList.length | numberFixedLen:2}}

Total count
Draft RFQ for Approval

{{vm.resubmittedList.length | numberFixedLen:2}}

Total count
Draft RFQ Corrected for Approval


Rejection Notes :{{vm.rNotes.Notes}}
0 && vm.projteam.selectedProject !== undefined\">
AllS.NoEmployeeDepartmentProject RoleDepartment of Superior OfficerReporting ToStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName}}{{row.DepartmentName}}{{row.DesignationName}}{{row.ReportDepartmentName}}{{row.ReportToName}}Draft Resubmitted Pending for Approval Approved Back for Correction
');\n$templateCache.put('app/pages/constructionProjectTeam/projectTeamReject.html','

Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/contractorPayment/contractor.html','
Create Contractor Payment
{{$select.selected.ProjectName}}


List Of Contractor

S.NoProjectDateProject Holiday NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectHolidayYear}}/{{row.ProjectHolidayMonth}}/{{row.ProjectHolidayDate}}{{row.ProjectHolidayName}}Active InActive
');\n$templateCache.put('app/pages/country/country.html','
Create CountryEdit Country

Country Name is required

Country Name is maximum length are {{ 50 - inputMessage.length + \\' Char\\' }}

Country Code is required

Minimum 3 Character is required.

List Of Countries

S.NoCountry NameCountry CodeCurrency NameCurrency CodeCurrency SymbolAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CountryName}}{{row.CountryCode}}{{row.CurrencyName}}{{row.CurrencyCode}}{{row.CurrencySymbol}}
');\n$templateCache.put('app/pages/dashboard/dashboard.html','
{{$select.selected.ProjectName}}

{{vm.YstrApproveTask | numberFixedLen:2}}
00

Yesterday Count

Approved Work

{{vm.YstrPendingTask | numberFixedLen:2}}
00

Yesterday Count

Pending Work

{{vm.YstrDefectTask | numberFixedLen:2}}
00

Yesterday Count

Defective Work

{{vm.TodayTask | numberFixedLen:2}}
00

Total Count

Today Task

{{vm.raBillCount | numberFixedLen:2}}
00

Total Count

RA Bill Pending for Approval


{{vm.UnQuotedCount | numberFixedLen:2}}

Total Count
Request for Quotation

{{vm.QuotedDraft | numberFixedLen:2}}

Total Count
Saved Draft Quotation

{{vm.QuotedCount | numberFixedLen:2}}

Total Count
Approved Quotation

{{vm.CancelledCount | numberFixedLen:2}}

Total Count

Cancelled RFQ

{{vm.DraftList.length | numberFixedLen:2}}

Total Count
View Draft Bill

{{vm.RABillList.length | numberFixedLen:2}}

Total Count
View RA Bill

{{vm.Unquoted.length | numberFixedLen:2}}

Total Count
Request for Quotation

{{vm.DraftQuoted.length | numberFixedLen:2}}

Total Count
View Your Saved Draft Quotation

{{vm.submitted.length | numberFixedLen:2}}

Total Count
View Your Quotation

{{vm.cancelled.length | numberFixedLen:2}}

Total Count

View Cancelled RFQ
');\n$templateCache.put('app/pages/dashboard/DashboardDetails.html','

{{vm.ProjectName}}


Total Value Of Work Order : {{vm.Total}}

Details Of Completed Work

0\">

0\" ng-hide=\"!vm.isShowComplete\">
S.NoDescription of SubCategory of C.AValues of Work as per Work OrderValue in %
{{$index+1}}{{row.ShortDescription}}{{row.TotalBillAmount | currency:\"\\u20B9 \":0}}{{row.ValueIn}}

No Data Found

Details Of Inprogress Work

0\">

0\" ng-hide=\"!vm.isShowInprogress\">
S.NoDescription of SubCategory of C.AValues of Work as per Work OrderValue in %
{{$index+1}}{{row.ShortDescription}}{{row.TotalBillAmount | currency:\"\\u20B9 \":0}}{{row.ValueIn}}

No Data Found



Details Of Pending Work

0\">

0\" ng-hide=\"!vm.isShowPending\">
S.NoDescription of SubCategory of C.AValues of Work as per Work OrderValue in %
{{$index+1}}{{row.ShortDescription}}{{row.TotalBillAmount | currency:\"\\u20B9 \":0}}{{row.ValueIn}}

No Data Found



Details Of Balance Work

0\">

0\" ng-hide=\"!vm.isShowBalance\">
S.NoDescription of SubCategory of C.AValues of Work as per Work OrderValue in %
{{$index+1}}{{row.ShortDescription}}{{row.TotalBillAmount | currency:\"\\u20B9 \":0}}{{row.ValueIn}}

No Data Found




{{vm.ProjectName}}

SALES STATUS


0\">
TOTALBOOKEDBALANCE
{{vm.Booked}}%{{vm.Balance}}%
{{row.TierValue}}{{row.total}}{{row.booked}}{{row.balance}}

{{vm.ProjectName}}

CASH FLOW STATUS


0\">
MONTHCASH INFLOW in Rs.CASH OUTFLOW in Rs.
{{row.MonthInName}}{{row.INCASH}}{{row.OUTCASH}}
');\n$templateCache.put('app/pages/dashboard/locationDtls.html','

{{vm.SubCategoryName}}


VALUES OF WORK AS PER WORK ORDER : {{vm.TotalBillAmount}}

0\">
Sl.noCodeIOCA ShortDescriptionUOMPowQtyRate
S.NoWork LocationsPowQtyRate
');\n$templateCache.put('app/pages/dashboard/mgrTodaytask.html','

Details Of Today Work

{{$select.selected.TypeName}}
{{$select.selected.UserName}}

CONTRACTOR : {{row.UserName}}

SITE ENGINEER : {{row.SE}}

SITE SUPERVISOR : {{row.SS}}


LOCATION DETAILS : {{loc.Location}}
IOCA DescriptionUoMBOQ Qty
{{ioca.ShortDescription}}{{ioca.Unit}}{{ioca.PowQty | number : 2}}

');\n$templateCache.put('app/pages/dashboard/SupervisorApprovalAttachment.html','

Media

');\n$templateCache.put('app/pages/dashboard/supervisorTask.html','

{{vm.ProjectName}}


Today Task - {{vm.TodayDate | date : \\'MMM d, y\\'}}

Category of CA : {{row.CategoryName}}
Sub Category of CA : {{row.SubCategoryName}}
Type of CA : {{row.TypeName}}

IOCA ShortDescription : {{row.ShortDescription}}
Unit : {{row.UnitName}}
Code : {{row.Code}}

Type of WorkLocation : {{loc.BasicLocation}}
{{loc.LocDetailsStr}}
S.NoPoint of WorkNo\\'sEstimated QtyActual Measurment QtyApproveDefectAttachmentAction
{{ k }}
Total
{{ k }}
Total
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ioca.PowName}}{{ioca.ActivityCount}}{{value | number : 2}}
{{ioca.Total | number:2}}
0\" st-safe-src=\"row.IOCA_DocList\" class=\"table table-responsive table-striped\">
S.NoDocument TypeDocument NameView Attachment
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.DocType}}{{doc.DocName}}
');\n$templateCache.put('app/pages/dashboard/SupervisorWorkApprovalAttachment.html','

Work Approval Attachment





0\" style=\"background:#fff\">
NameSize
{{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB
');\n$templateCache.put('app/pages/dashboard/viewMgrTask.html','

DETAILS OF POINT OF WORK


Type Of Work Location : {{vm.viewBOQ.Locations}}

IOCA Description : {{vm.viewBOQ.ShortDescription}}
UoM : {{vm.viewBOQ.UnitName}}


S.NoPoint of WorkQty
{{$index+1}}{{row.PowName}}{{row.PowQty | number : 2}}

');\n$templateCache.put('app/pages/dashboard/viewWorkReportImage.html','

DETAILS OF POINT OF WORK


Type Of Work Location : {{vm.viewPow.Locations}}

IOCA Description : {{vm.viewPow.ShortDescription}}
UoM : {{vm.viewPow.UnitName}}

Approved By : {{vm.viewPow.FirstName}}
Date : {{vm.viewPow.ActionOn | date:\\'dd/MM/yyyy\\'}}
Contractor : {{vm.viewPow.UserName}}

S.NoPoint of WorkQty
1{{vm.viewPow.PowName}}{{vm.viewPow.PowQty | number : 2}}

No Images

');\n$templateCache.put('app/pages/dashboard/workReport.html','

Details Of Approved Work

Details Of Defect Work

Details Of Pending Work

{{$select.selected.TypeName}}
{{$select.selected.UserName}}

CONTRACTOR : {{row.UserName}}

SITE ENGINEER : {{row.SE}}

SITE SUPERVISOR : {{row.SS}}


LOCATION DETAILS : {{loc.Location}}
IOCA DescriptionUoMApproved Qty Defect Qty Pending Qty
{{ioca.ShortDescription}}{{ioca.Unit}}{{ioca.PowQty | number : 2}}

');\n$templateCache.put('app/pages/department/department.html','
Create DepartmentEdit Department
{{$select.selected.CompanyName}}
Company Name is required.

Department Name is required

Department Code is required

0\">
{{$select.selected.DepartmentName}}

List Of Departments

S.NoCodeName of the DepartmentParent DepartmentName of the CompanyAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.DepartmentName}}{{row.ParentName}}{{row.Company.CompanyName}}
');\n$templateCache.put('app/pages/designation/Designation.html','
Create DesignationEdit Designation
{{$select.selected.CompanyName}}
Company Name is required.
{{$select.selected.DepartmentName}}
Department Name is required.

Designation Name is required

Designation Code is required

{{$select.selected.DesignationName}}
;

List Of Designations

S.NoCodeDesignation NameReporting ToName of the DepartmentName of the CompanyAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.DesignationName}}{{row.SuperiorName}}{{row.Department.DepartmentName}}{{row.Company.CompanyName}}
');\n$templateCache.put('app/pages/directives/multiselect.tmpl.html','
');\n$templateCache.put('app/pages/employee/employee.html','

Create Employee

Edit Employee

Employee Details

First Name is required


Last Name is required



Selecte a profile picture
  

Father Name is required


{{$select.selected.DepartmentName}}
{{$select.selected.DesignationName}}

Spouse Name is required

{{$select.selected.FirstName}}
Address Details

Permanant Address

Address1 is required

Area is required

City is required

State is required

Country is required

Pincode is required

Email is required Not valid email!

Mobile No is required

Communication Address
Academic Details

Degree is required


Specialization is required

GraduationDegreeSpecializationUniversity/InstitutePercentageYears of PassingDoc AttachedRemarks
{{row.Graduation}}{{row.Degree}}{{row.Specialization}}{{row.University}}{{row.Percentage}}{{row.YearofPassing}}Yes No{{row.Remarks}}
Experience

{{vm.errMessage}}
OrganizationDepartmentDesignationFrom DateTo DateYears of ExperienceRemarks
{{row.Organization}}{{row.Department}}{{row.Designation}}{{row.FromDate | date:\\'dd/MM/yyyy\\'}}{{row.ToDate |date:\\'dd/MM/yyyy\\'}}{{row.YearsofExperience}}{{row.Remarks}}

List Of Employees

S.NoFirst NameLast NameDepartmentDesignationDate of JoiningReporting ToAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName}}{{row.LastName}}{{row.Department.DepartmentName}}{{row.Designation.DesignationName}}{{row.DOJ | date:\\'dd-MM-yyyy\\'}}{{row.ReportingToName}}
');\n$templateCache.put('app/pages/employeeChart/employeeChart.html','
');\n$templateCache.put('app/pages/GenerateKpostCode/generateKpostCode.html','

Create Kpost Code

{{$select.selected.AreaName}}
Location Name is required.
{{$select.selected.DepartmentName}}
Department From is required
{{$select.selected.DesignationName}}
Designation Based On is required
{{$select.selected.EmployeeName}}
Employee Based On is required

Employee required



S.NoPost-Box CodePost-Box Description
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PostBoxCode}}{{row.PostBoxDesc}}
');\n$templateCache.put('app/pages/GenerateKpostCode/mappostboxcode.html','

Map Post-Box Code to Employee

{{$select.selected.AreaName}}
Location Name is required.
{{$select.selected.EmployeeName}}
Employee Based On is required
{{$select.selected.PostBoxDesc}}
Post-Box Description From is required


S.NoEmployee NameEmployee Post-Box CodeEmployee Post-Box Description
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.EmployeeName}}{{row.PostBoxCode}}{{row.KpostUcode}}
');\n$templateCache.put('app/pages/holidayMaster/holidayMaster.html','
Create Holiday MasterModify Holiday Master
{{$select.selected.TypeName}}
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
Country Name is required.
Same Date For All year


List Of Holidays

S.NoHoliday TypeDateDescriptionStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}Regional Holiday National Holiday{{row.HolidayDate | date:\\'dd/MM/yyyy\\'}}{{row.Description}}Active InActive
');\n$templateCache.put('app/pages/holidayMaster/projectHoliday.html','
Create Project HolidayEdit Project Holiday
{{$select.selected.CompanyName}}
Comapany Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
Holiday is required.
Week is required.


List Of Holidays

S.NoProjectHolidayWeekOffAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}
{{hol}}
{{week}}
');\n$templateCache.put('app/pages/listofIOCA/listOfIoca.html','

Selected List of IOCA

LIST OF IOCA
{{$select.selected.CompanyName}}
Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.ReportName}}
Report for is required.
Library
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.CA_TypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}
Project
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}

');\n$templateCache.put('app/pages/organization/organization.html','
Create Organization LevelEdit Organization Level

Organisation Level Name is required


Organisation Level Code is required

0\">
{{$select.selected.LevelName}}

List Of Organization Levels

S.NoCodeName of the Organization LevelReporting OfficeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.LevelName}}{{row.ParentName}}
');\n$templateCache.put('app/pages/organizationChart/organizationChart.html','Organization Chart Web Components
  • Lao Lao
    • Bo Miao
    • Su Miao
      • Tie Hua
      • Hei Hei
        • Pang Pang
        • Xiang Xiang
');\n$templateCache.put('app/pages/organizationChart/organizationChartIndex.html','');\n$templateCache.put('app/pages/overhead/overhead.html','
Create OverheadEdit Overhead

OverHead Name is required

List of Overheads

Overhead CodeOverhead NameAction
{{row.OverHeadCode}}{{row.OverHeadName}}
');\n$templateCache.put('app/pages/PlanningReport/planningReport.html','

Planning Report

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.RequirementName}}
Planning Report From is required
{{$select.selected.RequirementBasedName}}
Planning Report Based On is required
{{$select.selected.DesignationName}}
ReportFor On is required
{{$select.selected.CategoryName}}
Contractor Category is required
{{$select.selected.EmployeeName}}
Name of the Employee is required
{{$select.selected.ContractorName}}
Name of the Contractor is required

Select Report Period

{{$select.selected.PeriodTypeName}}
Report Period is required.

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

Select Location Details

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

');\n$templateCache.put('app/pages/projectLevelPrivilege/projectLevelPrivilege.html','

Project Level Privilege

{{$select.selected.LevelName}}
Organisation Type is required.
{{$select.selected.CompanyName}}
Company Name is required.
{{$select.selected.DepartmentName}}
Department Name is required.
{{$select.selected.DesignationName}}
Designation Name is required.
{{$select.selected.FirstName}}
Employee Name is required.
{{$select.selected.MenuName}}
Name of the Menu is required.
{{$select.selected.PrivilegeName}}
Type of Privilege is required.
{{$select.selected.ProjectName}}
Project Name is required.

Select the Construction Activity

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
Country is required.
{{$select.selected.CategoryName}}
Category CA is required.
{{$select.selected.SubCategoryName}}
Subcategory CA is required.
Type CA is required.
S.NoType Of CAAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}

Select the Location & Tiers

{{$select.selected.BasicLocation}}
Type of Work Location is required.
{{$select.selected.TierValue}}
S.NoLocationAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.LocDtls}}

');\n$templateCache.put('app/pages/ProjectResourceAllocation/projectResourceAllocation.html','
Project Resource Allocation
{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.DesignationName}}
Employeename is required.

List Of Resource Allocation

S.NoCompany NameProject NameDesignationEmployeeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CompanyName}}{{row.ProjectName}}{{row.City.CityName}}{{row.OrganizationLevel.LevelName}}
');\n$templateCache.put('app/pages/projectStatus/projectStatus.html','

PROJECT STATUS

Consolidate View
{{$select.selected.TypeofWorkName}}

Civil Construction and Maintendance Works

CONSOLIDATED COST ESTIMATION


CircleCompleted Work in Rs.Balance Work in Rs.Total Work in Rs.
{{ con.CompletedWork | currency:\"\\u20B9\":0}}{{ con.BalanceWork | currency:\"\\u20B9\":0}}{{ con.TotalWork | currency:\"\\u20B9\":0}}
{{ div.CompletedWork | currency:\"\\u20B9\":0}}{{ div.BalanceWork | currency:\"\\u20B9\":0}}{{ div.TotalWork | currency:\"\\u20B9\":0}}
{{ sub.CompletedWork | currency:\"\\u20B9\":0}}{{ sub.BalanceWork | currency:\"\\u20B9\":0}}{{ sub.TotalWork | currency:\"\\u20B9\":0}}
{{ prj.CompletedWork | currency:\"\\u20B9\":0}}{{ prj.BalanceWork | currency:\"\\u20B9\":0}}{{ prj.TotalWork | currency:\"\\u20B9\":0}}

Detailed View
{{$select.selected.LOB_MatName}}
{{$select.selected.MaterialCategoryName}}
{{$select.selected.MaterialSubCategoryName}}
{{$select.selected.MaterialTypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}

List of Material
S.NoCodeMaterialTypeShort DescriptionUnitRateDate of EntryAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.MaterialType}}{{row.ShortDescription}}{{row.Unit}}{{row.CurrentRate}} {{row.CreatedOn | date:\\'dd-MM-yyyy\\' }}
');\n$templateCache.put('app/pages/PurchaseOrder/Approved.html','

List of Approved Purchase Order

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0 && vm.selectedProjectFilter!=undefined\">
0 && vm.selectedProjectFilter!=undefined\">
S.NoP.O. NoTitle of P.O.PreparedByPreparedOnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PurchaseOrderNo}}{{row.Title}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd/MM/yyyy\\'}}Approved
');\n$templateCache.put('app/pages/PurchaseOrder/BackForCorrection.html','

List of Draft P.O.-Back for Correction

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0 && vm.selectedProjectFilter!=undefined\">
0 && vm.selectedProjectFilter!=undefined\">
S.NoP.O. NoTitle of P.O.PreparedByPreparedOnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PurchaseOrderNo}}{{row.Title}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd/MM/yyyy\\'}}Reject
');\n$templateCache.put('app/pages/PurchaseOrder/Draft_PO.html','
Preparation of Draft P.O.
{{$select.selected.CompanyName}}
Name of the Company is required.

{{vm.CompanyName}}

{{$select.selected.ProjectName}}
Name of the Project is required.

{{vm.CompanyName}}

{{$select.selected.SupplierName}}
Name of the Supplier is required.

{{vm.SupplierName}}

{{$select.selected.QuotationNo}}
Quotation No is required.

{{vm.Quotation}}

Item of Material is required.
Title is required.

{{vm.Title}}

{{vm.PurchaseOrderNo}}



List of Material Pending for P.O.

List of Material Approved for P.O.

S.NoZUCONDescription of Item Of MaterialUoMQuotation QtyOrderQtyOrderQtyRate/UnitDiscountTaxable ValueCGSTSGSTIGSTTotalAmountselectAction
In %In RupeesIn %In RupeesIn %In RupeesIn %In Rupees  
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.RFQQty | number:2}}
Select Qty
{{row.OrderedQty | number:2}}{{row.UnitRate}}{{row.DisCount}}{{row.DiscountInRupees | currency:\\'₹\\'}}{{row.TaxValue | currency:\\'₹\\'}}{{row.CGST}}{{row.CGSTValue | currency:\\'₹\\' }}{{row.SGST}}{{row.SGSTValue | currency:\\'₹\\'}}{{row.IGST}}{{row.IGSTValue | currency:\\'₹\\'}}{{row.TotalValue | currency:\\'₹\\'}}
 
Total{{vm.Total | currency:\\'₹\\'}}



Selected List of Material Pending for P.O.

S.NoZUCONDescription of Item Of MaterialUoMOrderQtyRate/UnitDiscountTaxable ValueCGSTSGSTIGSTTotalAmountAction
In %In RupeesIn %In RupeesIn %In RupeesIn %In Rupees
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.SelectedQty}}{{row.UnitRate}}{{row.DisCount}}{{row.DiscountInRupees | currency:\\'₹\\'}}{{row.TaxValue | currency:\\'₹\\'}}{{row.CGST}}{{row.CGSTValue | currency:\\'₹\\'}}{{row.SGST}}{{row.SGSTValue | currency:\\'₹\\'}}{{row.IGST}}{{row.IGSTValue | currency:\\'₹\\'}}{{row.TotalValue | currency:\\'₹\\'}}
Total{{vm.TempTotal | currency:\\'₹\\'}}

List of P.O.Terms & Condition Template

No Data Found

List of P.O.Terms & Condition Template
S.NoTitle of P.O.Terms & Condition TemplateSelectSelect
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage -1)) }}{{Row.Title}}
 
{{$select.selected.PaymentTypeName}}
Project is required.

{{vm.PaymentType}}

No of Days Credit is required.

{{vm.PaymentType}}

Delivery Location is required.

{{vm.locations}}

Note is required.

{{vm.Note}}

List of Draft Purchase Order


{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0 && vm.po.selectedProjectFilter!=undefined\">
0 && vm.po.selectedProjectFilter!=undefined\">
S.NoP.O. NoTitle of P.O.PreparedByPreparedOnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PurchaseOrderNo}}{{row.Title}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd/MM/yyyy\\'}}Draft
');\n$templateCache.put('app/pages/PurchaseOrder/PendingForApproval.html','

List of Draft P.O.-Pending For Approval

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0 && vm.selectedProjectFilter!=undefined\">
0 && vm.selectedProjectFilter!=undefined\">
S.NoP.O. NoTitle of P.O.PreparedByPreparedOnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PurchaseOrderNo}}{{row.Title}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd/MM/yyyy\\'}}ReSubmitted WaitingForApproval
');\n$templateCache.put('app/pages/PurchaseOrder/POStatus.html','

Notes


');\n$templateCache.put('app/pages/PurchaseOrder/PurchaseHistory.html','

Purchase History

List of Purchase Order

S.NoPO NoPO DateSo for Ordered Qty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PurchaseOrderNo}}{{row.PurchasedOn |date:\\'dd/MM/yyyy\\' }}{{row.PurchaseQty}}
Total Order Qty{{vm.Total | number:2}}
Balance Qty{{vm.BalanceQty | number:2}}
');\n$templateCache.put('app/pages/PurchaseOrder/SelectLocation.html','

Select Location

List of Locations

S.NoIndent NoType of Work LocationBoq QtyMaterial Qty RequiredSelect All
 
{{key}}
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IndentNo}}{{row.Locations}}{{row.PowQty | number:2}}{{row.MaterialQty | number:2}}  
Total Order Qty{{vm.TotalOrderQty | number:2}}
');\n$templateCache.put('app/pages/PurchaseOrder/viewPO.html','');\n$templateCache.put('app/pages/RFQTemplates/rfqGenerateTemplate.html','
RFQ Generate Template
BOQ Template Details
{{$select.selected.ProjectName}}
{{$select.selected.Title}}
{{$select.selected.rfqTypeName}}
RFQ Type is required.
{{$select.selected.TemplatelistName}}
RFQ Type is required.
{{$select.selected.TypeofBillName}}
RFQ Type is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.FieldofConstructionName}}
RFQ Type is required.
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.TitleName}}
SubCategory Name is required.
0\">
Required Template Details 0\" class=\"table table-striped\">
S.NoRequired Field ValueValues
{{ ($index + 1) + (vm.noOfRowsRequire.value * (vm.currentPageRequire - 1)) }}{{row.TemplateValue}}
Content Details

SubCategory Name is required

0\">
RFQ Content TitleDescriptionAction
{{ ($index + 1) + (vm.noOfRowsContent.value * (vm.currentPageContent - 1)) }}. {{row.ContentTitle}}

List Of Generate Template

S.NoProjectRFQTemplateAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.Title}}{{row.TitleName}}
');\n$templateCache.put('app/pages/RFQTemplates/rfqTemplate.html','RFQ Terms and Condition For Contractor
{{$select.selected.CountryName}}
RFQ T&C for Country is required.
{{$select.selected.rfqTypeName}}
RFQ Type is required.
{{$select.selected.TemplatelistName}}
RFQ Template for is required.
{{$select.selected.TypeofBillName}}
Type of Billing is required.
{{$select.selected.FieldofConstructionName}}
Field Of Construction is required.
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.ContractName}}
Type of Contract is required.

RFQ Template Title is required


BOQ Template Details

{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.rfqTypeName}}
RFQ Type is required.
{{$select.selected.TemplatelistName}}
RFQ Type is required.
{{$select.selected.TypeofBillName}}
RFQ Type is required.
{{$select.selected.FieldofConstructionName}}
Field Of Construction is required.
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.ContractName}}
Type of Contract is required.
{{$select.selected.TitleName}}
SubCategory Name is required.

Required Template Details

Required Field Value is required

0\">
0\" class=\"table table-striped table bordered\">
S.NoRequired Field ValueAction
{{ ($index + 1) + (vm.noOfRowsRequire.value * (vm.currentPageRequire - 1)) }}{{row.TemplateValue}}

Content Details

SubCategory Name is required

0\">
0\">
S.NoRFQ Content TitleDescriptionAction
{{ ($index + 1) + (vm.noOfRowsContent.value * (vm.currentPageContent - 1)) }}{{row.ContentTitle}}

List Of RFQ T&C Template

S.NoTitleRfq TypeTemplate ForBill TypeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TitleName}}{{row.rfqTypeName}}{{row.TemplatelistName}}{{row.TypeofBillName}}
');\n$templateCache.put('app/pages/role/role.html','
Create RoleEdit Role

Role Name is required

{{$select.selected.LevelName}}

Organization Level is required.

List of Roles

S.NoRole NameOrganization LevelAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.RoleName}}{{row.OrganizationLevel.LevelName}}
');\n$templateCache.put('app/pages/state/state.html','
Create StateEdit State
{{$select.selected.CountryName}}
Country Name is required.

State Name is maximum length are {{ 50 - inputMessage.length + \\' Char\\' }}

State Name is required

List Of States

S.NoState NameCountry NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.StateName}}{{row.Country.CountryName}}
');\n$templateCache.put('app/pages/TaskReport/AppraisalReport.html','

Appraisal Report

{{$select.selected.CompanyName}}
Name of the Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.RequirementBasedName}}
Based On is required
{{$select.selected.DesignationName}}
ReportFor On is required
{{$select.selected.CategoryName}}
Contractor Category is required
{{$select.selected.EmployeeName}}
Name On is required
{{$select.selected.ContractorName}}
Name On is required

Select Report Period

{{$select.selected.PeriodTypeName}}
Report Period is required.

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

Select Location Details

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

');\n$templateCache.put('app/pages/TaskReport/DprReport.html','

Daily Work Progress Report

{{$select.selected.CompanyName}}
Name of the Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.RequirementBasedName}}
Based On is required
{{$select.selected.DesignationName}}
ReportFor On is required
{{$select.selected.CategoryName}}
Contractor Category is required
{{$select.selected.EmployeeName}}
Name On is required
{{$select.selected.ContractorName}}
Name On is required

Select Report Period

{{$select.selected.PeriodTypeName}}
Report Period is required.

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

Select Location Details

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

');\n$templateCache.put('app/pages/TaskReport/TaskReport.html','

Task Report

{{$select.selected.CompanyName}}
Name of the Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.RequirementBasedName}}
Planning Based On is required
{{$select.selected.DesignationName}}
ReportFor On is required
{{$select.selected.CategoryName}}
Contractor Category is required
{{$select.selected.EmployeeName}}
Name On is required
{{$select.selected.ContractorName}}
Name On is required

Select Report Period

{{$select.selected.PeriodTypeName}}
Report Period is required.

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

Select Location Details

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}

Select Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
Report Type is required

');\n$templateCache.put('app/pages/tenderMaster/tender.html','
Creation of Tender Master
{{$select.selected.CategoryName}}




List Of TenderMaster

S.NoCategoryTender Name
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CategoryName}}{{row.TenderName}}
');\n$templateCache.put('app/pages/unitOfMeasurement/nonStdUnit.html','
Create Non Std UnitEdit Non Std Unit

Non Std Unit Name is required

List Of Non Std Units


S.NoNon Std Unit NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Name}}
');\n$templateCache.put('app/pages/uomParameters/uomParameters.html','
Create UOM ParametersModify UOM Parameters
{{$select.selected.Name}}
Type of Dimension is required.
{{$select.selected.Description}}
Measurement Type is required.

Abbreviation is required

List of UOM Parameters


S.NoType of DimensionAbbreviationParametersAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.UOM.Name}}{{row.Abbreviation}}{{row.Parameters}}
');\n$templateCache.put('app/pages/WorkApproval/approvalAttachment.html','

Media

');\n$templateCache.put('app/pages/WorkApproval/workapproval.html','

Work Approval

{{$select.selected.CompanyName}}
Name of the Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.RequirementName}}
Item of Construction Activiy Form is required
{{$select.selected.ApproveForName}}
Approve For is required

{{$select.selected.ContractorCateName}}
Contractor Category is required.
{{$select.selected.ContractorName}}
Contractor Name is required.
{{$select.selected.TypeWorkName}}
Type of Work Location is required.
{{$select.selected.TierName}}
Approval Based is required.

Select Location

{{$select.selected.BlockListName}}
Type of CA is required.

Select Construction Activity

{{$select.selected.TypeName}}
Type of CA is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
{{$select.selected.IOCAName}}
Type of IOCA is required.

Select Location Details

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}
');\n$templateCache.put('app/pages/WorkApproval/workApprovalAttachment.html','

Work Approval Attachment





0\" style=\"background:#fff\">
NameSize
{{ item.file.name }}{{ item.file.size/1024/1024|number:2 }} MB
');\n$templateCache.put('app/pages/workOrder/preparationofWOHome.html','

From Approved Contractor Quotation-RFQ or Tender

Direct Work order(Without RFQ or Tender)Based on single Quotation
');\n$templateCache.put('app/pages/workOrder/workOrderReport.html','

Work Order Report

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
0\">

0\" st-safe-src=\"vm.WorkOrderList\" class=\"table table-striped\">
S.NoDateWork Order NoWork Order TitleWork Order AmountView
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}{{row.WorkOrderNo}}{{row.Title}}{{row.Amount}}\"Post\"
');\n$templateCache.put('app/pages/billing/approveForBilling/approveForBilling.html','

Approval For Billing

No Data Found

{{ companyName }}

{{ projectName }}

{{row.ContractorName}}
{{ row.WorkOrderNo }}
{{row.BillType}}


Approval For Billing

{{vm.wo.ProjectName}}
Preparation of Work Order for {{ vm.wo.Subject }} at {{vm.wo.Title}}

Select Construction Activity


Select Location

{{$select.selected.BasicLocation}}


Category of CA : {{row.CategoryName}}
Sub Category of CA : {{row.SubCategoryName}}
Type of CA : {{row.TypeName}}
Code : {{row.Code}}
Unit : {{row.UnitName}}

Description : {{row.LongDescription}}

Type of WorkLocation : {{loc.BasicLocation}}
{{loc.LocDetailsStr}}
Rate : {{row.UnitRate}}
S.NoPoint of WorkNo\\'sEstimated QtyActual Measurment QtyApproved ByApproved OnTotal Value
{{ k }}     
Total
{{ k }} 
Total
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ioca.PowName}}{{ioca.ActivityCount}}
{{value | number : 2}}
{{ioca.Total | number:2}}
{{value | number : 2}}
{{ioca.ActualTotQty | number:2}}
{{ioca.ApprovedBy}}{{ioca.ApprovedOn | date:\\'dd/MM/yyyy\\'}}{{ioca.TotalValue}}
Grand Total {{loc.GrandTotal | number : 2}}
0\" class=\"table table-responsive table-striped\">
S.NoDocument TypeDocument NameView Attachment
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.DocType}}{{doc.DocName}}
');\n$templateCache.put('app/pages/billing/approveRABill/approveRABill.html','

{{vm.RABillList.length | numberFixedLen:2}}

Total Count
View RA Bill

Approve RA Bill



{{ companyName }}

{{ projectName }}

RA BillNo - {{row.BillNumber}}
for {{row.ContractName}}

WO: {{ row.WorkOrderNo }}
{{row.BillType}} Bill for {{row.ContractorName}}


Approve RA Bill

{{vm.wo.ProjectName}}

Contractor Name : {{vm.wo.ContractorName}}
{{vm.GenerateBill.RetentionPer}} %

ADDITION OF GST

{{vm.GenerateBill.CGST}} %
{{vm.GenerateBill.SGST}} %
{{vm.GenerateBill.IGST}} %
{{vm.GenerateBill.Tax}} %

DEDUCTIONS

{{vm.GenerateBill.TDSValuePer}} %
{{vm.GenerateBill.MobilizationPer}} %

');\n$templateCache.put('app/pages/billing/contractorBillPayment/contractorBillPayment.html','

{{vm.RABillList.length | numberFixedLen:2}}

Total Count
View Approved R.A.Bill

Approved Contractor R.A.Bill Payment


{{ companyName }}

{{ projectName }}

RA BillNo - {{row.BillNumber}}
for {{row.ContractName}}

WO: {{ row.WorkOrderNo }}
{{row.BillType}} Bill for {{row.ContractorName}}


Approved Contractor R.A.Bill Payment


{{vm.wo.ProjectName}}

Contractor Name : {{vm.wo.ContractorName}}
W.O No:{{vm.wo.WorkOrderNo}}Type of Contract :{{vm.wo.ContractName}}
Billing Period :{{vm.wo.startDate | date:\\'dd/MM/yyyy\\'}} to {{vm.wo.endDate | date:\\'dd/MM/yyyy\\'}}Value of WO :{{vm.wo.TotalWorkOrderAmount}}
Type of Billing :{{vm.wo.BillType}}R.A.Bill No :{{vm.wo.BillNumber}}
Bill Date :{{vm.GenerateBill.BillDate | date:\\'dd/MM/yyyy\\'}}Type of Work Order :{{vm.wo.WorkOrderType }} ({{vm.wo.RfqScope}})
Net Payable (in Rs)Click to View Bill Details
Recommend Amount to be released in Rs.
Balance Amount
Mode of Payment *{{$select.selected.TransactionTypeName}}
RERA Bank A/c Details
Name of the Bank *
Name of the Branch *
Acc No *

Min 6 digits & Max 17 digits is required

Cheque No *
RERA Bank A/c Details
Name of the Bank *
Name of the Branch *
Acc No *

Min 6 digits & Max 17 digits is required

Note *
{{vm.GenerateBill.RetentionPer}} %

ADDITION OF GST

{{vm.GenerateBill.CGST}} %
{{vm.GenerateBill.SGST}} %
{{vm.GenerateBill.IGST}} %
{{vm.GenerateBill.Tax}} %

DEDUCTIONS

{{vm.GenerateBill.TDSValuePer}} %
{{vm.GenerateBill.MobilizationPer}} %

{{ vm.wo.CompanyName }}
{{ vm.wo.ProjectName }}
PREPARATION OF PAYMENT VOUCHER

Payment Voucher No
: {{vm.wo.ContVoucherNo}}

Paid to
: {{vm.wo.ContractName}}

WorkOrderNo
: {{vm.wo.WorkOrderNo}}

Mode of Payment
: {{vm.wo.TransactionTypeName}}

Name of the Bank
: {{vm.wo.BankName}}

Name of the Branch
: {{vm.wo.BranchName}}

Account No
: {{vm.wo.AccountNo}}

Cheque No
: {{vm.wo.ChequeNo}}

Being Paid For
: Payment made against Approved R.A.Bill {{vm.wo.BillNumber}} to {{vm.wo.ContractorName}}



');\n$templateCache.put('app/pages/billing/draftBill/draftBill.html','

Draft Bill


{{ companyName }}

{{ projectName }}

BillNo - {{row.BillNumber}}
for {{row.ContractName}}

WO: {{ row.WorkOrderNo }}
{{row.BillType}}


Draft Bill

{{vm.wo.ProjectName}}

Contractor Name : {{vm.wo.ContractorName}}

{{vm.GenerateBill.RetentionPer}} %

ADDITION OF GST

{{vm.GenerateBill.CGST}} %
{{vm.GenerateBill.SGST}} %
{{vm.GenerateBill.IGST}} %
{{vm.GenerateBill.Tax}} %

DEDUCTIONS

{{vm.GenerateBill.TDSValuePer}} %
{{vm.GenerateBill.MobilizationPer}} %
0\">
{{vm.PenaltyBill[0].PenaltyNO}}
{{vm.PenaltyBill[0].PenaltyType}}
{{vm.PenaltyBill[0].Locations}}
{{vm.PenaltyBill[0].LongDescription}}
0\"> 0\" st-safe-src=\"vm.PenaltyBill\" class=\"table table-responsive table-striped\">
S.NoPowNamePenalty AmountPenalty ByPenalty OnPenalty Note
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.PowName}}{{doc.Amount}}{{doc.FirstName}}{{doc.PenaltyOn | date:\\'yyyy-MM-dd\\'}}{{doc.PenaltyNote}}
0\">
S.NoBill DateBill NoValue of Work DoneValue of Gross ValueValue of PenaltyValue of RetentionValue of CGST AmountValue of SGST AmountValue of IGST mountValue of TDS ValueValue of MobilizationValue of InteriamValue of Other DeductionValue of Total Deduction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.BillDate | date:\\'yyyy-MM-dd\\'}}{{doc.BillNumber}}{{doc.PaidAmt}}{{doc.GrossValue}}{{doc.Penalty}}{{doc.Retention}}{{doc.CGSTAmount}}{{doc.SGSTAmount}}{{doc.IGSTAmount}}{{doc.TDSValue}}{{doc.MobilizationAdv}}{{doc.InteriamAdvance}}{{doc.OtherDeduction}}{{doc.TotalDeduction}}


Report Based On{{$select.selected.BillBased}}

Completed POW of this Bill{{$select.selected.BillTypeName}}


No Previous Draft Bill



');\n$templateCache.put('app/pages/billing/draftBill/viewDraftBill.html','

Contractor Bill Report

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
{{$select.selected.Title}}
{{wo.WorkOrderNo}}
{{$select.selected.BillBased}}
{{$select.selected.BillTypeName}}


0\">
0\" st-safe-src=\"vm.BillList\" class=\"table table-striped\">
S.NoBill NumberBill DateBill AmountView
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BillNumber}}{{row.BillDate | date:\\'dd/MM/yyyy\\'}}{{row.BillAmount}} \"Post\"
');\n$templateCache.put('app/pages/billing/InterimAdvance/interimAdvance.html','

Interim Advance


No Data Found

{{ companyName }}

{{ projectName }}

{{row.ContractorName}}
{{ row.WorkOrderNo }}
{{row.ContractorTypeName}}


Interim Advance

{{vm.wo.ProjectName}}
{{vm.wo.ContractorName}}








{{$select.selected.Scope}}

Recommend Interim Advance to be released in Rs.
No of Instalment
{{$select.selected.No}}
{{vm.wo.instalAmt}}
');\n$templateCache.put('app/pages/billing/InterimAdvance/interimPayment.html','

Interim Payment


No Data Found

{{ companyName }}

{{ projectName }}

{{row.ContractorName}}
{{ row.WorkOrderNo }}
{{row.ScopeType}}
{{row.AdvAmt}}


Interim Payment

{{vm.wo.ProjectName}}
{{vm.wo.ContractorName}}
Name of the Contractor :{{vm.wo.ContractorName}}W.O No :{{vm.wo.WorkOrderNo}}
Type of W.O :{{vm.wo.TypeofWO}}Type of Contract :{{vm.wo.TypeOfContract}}
Value of W O :{{vm.wo.TotalWorkOrderAmount}}No Of Instalment :{{vm.wo.NoofInst}}
Recommend Interim Advance to be released in Rs.
Balance Amount
Mode of Payment *{{$select.selected.TransactionTypeName}}
RERA Bank A/c Details
Name of the Bank *
Name of the Branch *
Acc No *

Min 6 digits & Max 17 digits is required

Cheque No *
RERA Bank A/c Details
Name of the Bank *
Name of the Branch *
Acc No *

Min 6 digits & Max 17 digits is required

Note *
0\" class=\"table table-responsive table-striped\">
S.NoAdvance TypeAdvance AmountBalanceScopeNo of InstalmentNote
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.AdvTypeName}}{{row.AdvAmt}}{{row.AdvBalance}}{{row.ScopeType}}{{row.NoofInst}}{{row.Note}}


0\">

List of Schedule of Item of Construction Activity

S.NoType of CAIOCA CodeDetailed DescriptionUomTotal QtyRate Per UnitGST in %Total Amount
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.IOCA_Code}}{{row.IOCA_LongDes}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}
{{ loc.TierValue }} :{{ loc.Tier }} Pow Qty : {{basicLoc.PowQty | setDecimal:2}}
{{row.UnitName}}{{row.TotQty | setDecimal:2}}{{row.UnitRate}}{{row.Tax}}{{row.total | currency:\\'₹\\' }}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}

Mobilization Advance

{{ vm.wo.CompanyName }}
PREPARATION OF PAYMENT VOUCHER

Payment Voucher No
: {{vm.wo.VoucherNo}}

Paid to
: {{vm.wo.ContractName}}

WorkOrderNo
: {{vm.wo.WorkOrderNo}}

Mode of Payment
: {{vm.wo.TransactionTypeName}}

Name of the Bank
: {{vm.wo.BankName}}

Name of the Branch
: {{vm.wo.BranchName}}

Account No
: {{vm.wo.AccountNo}}

Cheque No
: {{vm.wo.ChequeNo}}

Being Paid For
: Interim Advance Against Approved {{ vm.wo.ContractorTypeName}} of {{vm.wo.ContractorName}}



');\n$templateCache.put('app/pages/billing/raBill/raBill.html','

RA Bill


{{ companyName }}

{{ projectName }}

BillNo - {{row.BillNumber}}
for {{row.ContractName}}

WO: {{ row.WorkOrderNo }}
{{row.BillType}}


RA Bill

{{vm.wo.ProjectName}}

Contractor Name : {{vm.wo.ContractorName}}

{{vm.GenerateBill.RetentionPer}} %

ADDITION OF GST

{{vm.GenerateBill.CGST}} %
{{vm.GenerateBill.SGST}} %
{{vm.GenerateBill.IGST}} %
{{vm.GenerateBill.Tax}} %

DEDUCTIONS

{{vm.GenerateBill.TDSValuePer}} %
{{vm.GenerateBill.MobilizationPer}} %

0\" st-safe-src=\"vm.BillHistory\" class=\"table table-responsive table-striped\">
S.NoBill DateBill NoValue of Gross ValueValue of PenaltyValue of RetentionValue of CGST AmountValue of SGST AmountValue of IGST mountValue of TDS ValueValue of MobilizationValue of InteriamValue of Other DeductionPayment made till date
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.BillDate | date:\\'yyyy-MM-dd\\'}}{{doc.BillNumber}}{{doc.GrossValueForm}}{{doc.PenaltyForm}}{{doc.RetentionForm}}{{doc.CGSTAmountForm}}{{doc.SGSTAmountForm}}{{doc.IGSTAmountForm}}{{doc.TDSValueForm}}{{doc.MobilizationAdvForm}}{{doc.InteriamAdvanceForm}}{{doc.OtherDeductionForm}}{{doc.PaidAmtForm}}

');\n$templateCache.put('app/pages/billing/raBill/viewRABill.html','

View RA Bill

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
{{$select.selected.Title}}
{{wo.WorkOrderNo}}
{{$select.selected.BillBased}}
{{$select.selected.ReportDescriptionTypeName}}
{{$select.selected.BillTypeName}}
{{$select.selected.BasicLocation}}
Type of Work Location is required.
{{$select.selected.Tier}}
Report Type is required.
0\">

List of R.A Bill

0\" st-safe-src=\"vm.BillList\" class=\"table table-striped\">
S.NoBill NumberBill DateBill AmountView
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BillNumber}}{{row.BillDate | date:\\'dd/MM/yyyy\\'}}{{row.BillAmount}} \"Post\"
');\n$templateCache.put('app/pages/billing/statementOfBill/statementOfBill.html','

Statement of Account

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
{{$select.selected.WorkOrderNo}}

0 && vm.work.selectedWorkOrder != undefined\">

0\" st-safe-src=\"vm.RABillList\" class=\"table table-striped\">
S.NoWork Order NoRA Bill NoBill AmountAmount PaidBalance AmountPayment Made onPaid on
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.WorkOrderNo}}{{row.RABillNumber}}{{row.RABillAmt}}{{row.PaidAmt}}{{row.BalanceAmt}}{{row.TransactionTypeName}}{{row.RABillDate | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/constructionActivity/attribute/attributeCA.html','

Attribute of CA

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category of CA is required.
{{$select.selected.SubCategoryName}}
SubCategory of CA is required.
{{$select.selected.CA_TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.

Attribute Name is required

List Of Attribute of CA

S.NoDescription of AttributeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Name}}
');\n$templateCache.put('app/pages/constructionActivity/categoryCA/categoryCA.html','
Create Category Of CAEdit Category Of CA
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.

Category of CA is required

Category of CA

{{$select.selected.FieldofConstructionName}}
{{$select.selected.CountryName}}
CodeCategory of CAAction
{{row.CategoryCode}}{{row.CategoryName}}
');\n$templateCache.put('app/pages/constructionActivity/Constant/constant.html','

Create Preparation of Constant

Edit Constant

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
*
{{$select.selected.CountryName}}
Country Name is required.
*
{{$select.selected.CategoryName}}
Category of CA is required.
*
{{$select.selected.SubCategoryName}}
SubCategory Of CA is required.
*
{{$select.selected.CA_TypeName}}
Type of CA is required.
*
{{$select.selected.SpecTypeName}}
Type of Item is required.
*
{{$select.selected.ShortDescription}}
IOCA Short Description is required.
0 || vm.IOCAConstantsList.MaterialConstants.length > 0 ||vm.IOCAConstantsList.MachineryConstants.length > 0||vm.IOCAConstantsList.ConsumableConstants.length > 0\">

0\">LIST OF LABOUR
S.NoCodeType of LabourUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}L-{{row.Code}}{{row.Labour}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft


0\">LIST OF MATERIAL
S.NoCodeItem of MaterialUOMConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft


0\">LIST OF MACHINERY
S.NoCodeItem of MachineryUOMConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft


0\">LIST OF CONSUMABLE
S.NoCodeType of ConsumablesUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}C-{{row.Code}}{{row.Consumable}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft
Labour
{{$select.selected.LabrCategoryName}}
{{$select.selected.LabourTypeName}}

LIST OF LABOUR
S.NoCodeType of LabourUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}L-{{row.Code}}{{row.Labour}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft
Material
{{$select.selected.LOB_MatName}}
{{$select.selected.CountryName}}
{{$select.selected.MaterialCategoryName}}
{{$select.selected.MaterialSubCategoryName}}
{{$select.selected.MaterialTypeName}}
{{$select.selected.ShortDescription}}

LIST OF MATERIAL
S.NoCodeItem of MaterialUOMConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft
Machinery
{{$select.selected.LOB_MachName}}
{{$select.selected.CountryName}}
{{$select.selected.CategoryofMachineryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.MachTypeName}}
{{$select.selected.ShortDescription}}
{{$select.selected.Name}}

LIST OF MACHINERY
S.NoCodeItem of MachineryUOMConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft
Consumable
{{$select.selected.CategoryOfWork}}
{{$select.selected.TypeName}}


LIST OF CONSUMABLE

S.NoCodeType of ConsumablesUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}C-{{row.Code}}{{row.Consumable}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Draft
');\n$templateCache.put('app/pages/constructionActivity/Constant/constantReject.html','

Constant Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/constructionActivity/constantApproval/constantApproval.html','

View Approved Constant

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.CA_TypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}

0\">
LIST OF LABOUR
S.NoCodeType of LabourUnitConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}L-{{row.Code}}{{row.Labour}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Approved

0\">
LIST OF MATERIAL
S.NoCodeItem of MaterialUnitConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Approved
0\">
LIST OF MACHINERY
S.NoCodeItem of MachineryunitConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Approved
0\">
LIST OF CONSUMABLE
S.NoCodeType of ConsumablesUnitConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}C-{{row.Code}}{{row.Consumable}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Approved
');\n$templateCache.put('app/pages/constructionActivity/constantBackForCorrection/constantBackForCorrection.html','

Back For Correction

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.CA_TypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}
0 || vm.IOCAConstantsList.MaterialConstants.length > 0 ||vm.IOCAConstantsList.MachineryConstants.length > 0||vm.IOCAConstantsList.ConsumableConstants.length > 0\">
0\">
LIST OF LABOUR
S.NoCodeType of LabourUnitConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}L-{{row.Code}}{{row.Labour}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Block Reject
0\">
LIST OF MATERIAL
S.NoCodeItem of MaterialUOMConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Block Reject
0\">
LIST OF MACHINERY
S.NoCodeItem of MachineryunitConstant ValueDate of EntryStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Block Reject
0\">
LIST OF CONSUMABLE
S.NoCodeType of ConsumablesUnitConstant ValueDate of Entry
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}C-{{row.Code}}{{row.Consumable}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Block Reject
');\n$templateCache.put('app/pages/constructionActivity/constantPendingForApproval/constantpendingforApproval.html','

Constant Pending For Approval

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.CA_TypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}
0 || vm.IOCAConstantsList.MaterialConstants.length > 0 ||vm.IOCAConstantsList.MachineryConstants.length > 0||vm.IOCAConstantsList.ConsumableConstants.length > 0\">

{{vm.TotalWaiting.length | numberFixedLen:2}}

Total Count
From Draft

{{vm.TotalResubmit.length | numberFixedLen:2}}

Total Count
From Back to Correction
LIST OF LABOUR
S.NoCodeType of LabourUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}L-{{row.Code}}{{row.Labour}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}ReSubmitted WaitingForApproval
LIST OF MATERIAL
S.NoCodeItem of MaterialUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}ReSubmitted WaitingForApproval
LIST OF MACHINERY
S.NoCodeItem of MachineryunitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.MachineryType}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}ReSubmitted WaitingForApproval
LIST OF CONSUMABLE
S.NoCodeConsumableTypeUnitConstant ValueDate of EntryStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}C-{{row.Code}}{{row.Consumable}}{{row.Unit}}{{row.ConstantValue}} {{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}ReSubmitted WaitingForApproval
');\n$templateCache.put('app/pages/constructionActivity/cpwd_ioca/cpwd_ioca.html','

Create IOCA

Edit IOCA

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.CA_TypeName}}
Type Of CA Name is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.

Verified
  • {{ variable.VariableName }}
* is required
{{$select.selected.Name}}
Type of Dimension is required.
{{$select.selected.Parameters}}
Unit Type is required.
{{$select.selected.Description}} ({{ Unit.UnitName }})
Unit Type is required.
{{$select.selected.Name}}
UOM is required.

Contractor Scope Description

* is required
* is required
* is required
* is required
* is required
* is required
0\" st-safe-src=\"vm.DocList\" class=\"table table-striped\">
S.NoTypeNameFileAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.DocType }}{{ row.DocName }}

List Of IOCA

S.NoCodeShort DescriptionDetailed DescriptionUOMStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.Code }}{{ row.ShortDescription}}{{ row.IocaUnit.UnitName}}{{ row.StatusText }}
');\n$templateCache.put('app/pages/constructionActivity/fieldofConstruct/fieldofConstruction.html','
Create Field Of ConstructionEdit Field Of Construction

Field of Construction is required


Code is required

List Field of Constructions

CodeField of ConstructionAction
{{row.FieldofConstructionCode}}{{row.FieldofConstructionName}}
');\n$templateCache.put('app/pages/constructionActivity/ICANTypicalDescription/ICANTypicalDescription.html','

Create IOCA Typical Description

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category of CA is required.
{{$select.selected.SubCategoryName}}
SubCategory of CA is required.
{{$select.selected.CA_TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
Attribute {{($index + 1)}}
{{row.AttributeName}}
{{row.AttributeCode}}
0\">
0\">
{{$select.selected.Name}}
Type of Dimension is required.
{{$select.selected.Parameters}}
Unit Abbreviation is required.
{{$select.selected.Description}} ({{Unit.UnitName }})
Unit Type is required.
{{$select.selected.Name}}
UOM is required.
0\">

List Of ICAN Typical Description

S.NoDescription of AttributeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Name}}
');\n$templateCache.put('app/pages/constructionActivity/ioca/ioca.html','

Create IOCA

Edit IOCA

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category Of CA is required.
{{$select.selected.SubCategoryName}}
SubCategory Of CA is required.
{{$select.selected.CA_TypeName}}
Type Of CA Name is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.

Verified
  • {{ variable.VariableName }}
* is required
{{$select.selected.Name}}
Type of Dimension is required.
{{$select.selected.Parameters}}
Unit Type is required.
{{$select.selected.Description}} ({{ Unit.UnitName }})
Unit Type is required.
{{$select.selected.Name}}
UOM is required.

Contractor Scope Description

* is required
* is required
* is required
* is required
* is required
0\" st-safe-src=\"vm.DocList\" class=\"table table-striped\">
S.NoTypeNameFileAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.DocType }}{{ row.DocName }}

List Of IOCA

S.NoCodeDetailed DescriptionUOMStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.Code }}{{ row.IocaUnit.UnitName}}{{ row.StatusText }}
');\n$templateCache.put('app/pages/constructionActivity/subCategory/subCategoryCA.html','
Create SubCategory Of CAEdit SubCategory Of CA
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category of CA is required.

SubCategory of CA is required

SubCategory Of CA

{{$select.selected.FieldofConstructionName}}
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}}
CodeSubCategory of CAAction
{{row.SubCategoryCode}}{{row.SubCategoryName}}
');\n$templateCache.put('app/pages/constructionActivity/typeOfCA/typeOfCA.html','
Create Type Of CAEdit Type Of CA
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category of CA is required.
{{$select.selected.SubCategoryName}}
SubCategory of CA is required.

Type Of CA is required

List Types Of CA

{{$select.selected.FieldofConstructionName}}
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
CodeType Of CAAction
{{row.CA_TypeCode}}{{row.CA_TypeName}}
');\n$templateCache.put('app/pages/constructionActivity/variable/variableCA.html','

Create Variable of CA

Advanced Search
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CA_TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
0\">
{{file.FileName + \\' \\' + file.FileLength + \\' bytes\\' }}
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CountryName}}
CountryName is required.
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.CA_TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
0\">

List of Variables

    {{$select.selected}}
0\">

List Of Variable of Combinations

S.No{{Attribute.Name }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row[Attribute.Name] }}
');\n$templateCache.put('app/pages/constructionProjectSetup/approved/approved.html','

List Of Approved Projects

S.NoProject NameProject CodeProject TypeSizeLocationProject DurationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectCode}}
Project Category:   {{row.CategoryName}}
Project Type:  {{row.TypeName}}
TotalLand Size:  {{row.TotalLandSize + \\' \\' + row.UnitName}}
BuiltUp Area:  {{row.BuiltUpArea +\\' \\'+ row.UnitName}}
{{row.PlotNo}},{{row.AreaName}},{{row.CityName}},{{row.StateName}}.{{row.CountryName}}, {{row.Pincode}}
Start Date:   {{row.StartDate | date:\\'dd/MM/yyyy\\' }}
End Date:  {{row.EndDate | date:\\'dd/MM/yyyy\\' }}
{{row.StatusText}}
');\n$templateCache.put('app/pages/constructionProjectSetup/backForCorrection/backForCorrection.html','

Back For Correction

S.NoProject NameProject CodeProject TypeSizeLocationProject DurationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectCode}}
Project Category:   {{row.CategoryName}}
Project Type:  {{row.TypeName}}
TotalLand Size:  {{row.TotalLandSize + \\' \\' + row.UnitName}}
BuiltUp Area:  {{row.BuiltUpArea +\\' \\'+ row.UnitName}}
{{row.PlotNo}},{{row.AreaName}},{{row.CityName}},{{row.StateName}}.{{row.CountryName}}, {{row.Pincode}}
Start Date:   {{row.StartDate | date:\\'dd/MM/yyyy\\' }}
End Date:  {{row.EndDate | date:\\'dd/MM/yyyy\\' }}
Reject {{row.StatusText}}
');\n$templateCache.put('app/pages/constructionProjectSetup/boQ/billofQuantity.html','

Bill Of Quantity Entry

BoQ Upload

Draft Bill Of Quantity

Pending for Approval

Back for Correction

Approved

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}
{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}
 {{vm.boq.selectedIOCA.Code}}
 {{vm.BoqData.Code}}
 {{vm.boq.selectedIOCA.IocaUnit.UnitName}}
{{$select.selected.BasicLocation}}
Type of work Location is required.
{{ vm.BoqData.Locations }}
{{$select.selected.TierValue}}
Select Location Tier is required.

* is required

* is required

* is required

* is required

* is required

* is required




List Of BOQ


    


Rejection Notes :{{vm.rNotes.Notes}}
AllS.NoPoint of WorkNo\\'s{{ k }}QtyStatusEntry FromAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PowName}} {{row.ActivityCount}} {{ v | number : 2 }} {{ row.PowQty }} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} New {{row.StatusName}}Excel Manual Item to Item Copy Loc to Loc Copy Project to Project Copy
');\n$templateCache.put('app/pages/constructionProjectSetup/boQ/billofQuantityTable.html','
=1 && vm.StatusId <= 6\">

List Of {{vm.MenuNameList[vm.StatusId - 1].MenuName}} BOQ

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}

{{vm.draftCount | numberFixedLen:2}}

Total count
Draft BOQ for Approval

{{vm.resubmitCount | numberFixedLen:2}}

Total count
Draft BOQ Corrected for Approval

{{vm.blockCount | numberFixedLen:2}}

Total count
Blocked BOQ

{{vm.approvedCount | numberFixedLen:2}}

Total count
Approved BOQ
0 && vm.boq.selectedProject!==undefined\">
0 && vm.boq.selectedProject !== undefined\">
S.NoIOCA ShortDescriptionLocationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_ShortDescription}}{{row.Locations}}{{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}}
');\n$templateCache.put('app/pages/constructionProjectSetup/boQ/boqRejection.html','

Bill of Quantity Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/constructionProjectSetup/boQ/modifiedBoQ.html','

Modify Approved BoQ

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
Select Construction Activity
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CategoryName}}
Category Of CA is required.
{{$select.selected.SubCategoryName}}
SubCategory of CA is required.
{{$select.selected.TypeName}}

{{$select.selected.SpecTypeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
 {{vm.boq.selectedIOCA.Code}}
 {{vm.boq.selectedIOCA.IocaUnit.UnitName}}
Select Work Location
{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
S.NoPoint of WorkNo\\'s{{ k }}QtyStatusEntryFromAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.PowName}} {{row.ActivityCount}} {{ v }} {{ row.PowQty }} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}} {{row.StatusName}}Excel Manual
');\n$templateCache.put('app/pages/constructionProjectSetup/boQInitiation/boQInitiation.html','

Bill Of Quantity Initiation

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0\">
LocationProject IOCALast TierDimentionsLocation DetailsPoint Of WorkStatusAction
{{row.LocationName}}
IOCA Id:   {{row.IOCA_Id}}
IOCA Name:  {{row.IOCA_ShortDescription}}
{{row.TierName}}
{{dim.name}}: {{dim.selectedValues}}

{{loc.TierName}}:{{loc.TierValue}}

Point Of Work:   {{row.PowName}}
Quantity:  {{row.PowQty}}
{{row.StatusName}}
No Data Found
');\n$templateCache.put('app/pages/constructionProjectSetup/costvariation/costvariationReport.html','

Cost Variation Report

{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.VariTypeName}}
Variation Report For is required
{{$select.selected.ReportBasedOnName}}
Report Based On is required
{{$select.selected.RateBasedonName}}
Rate Based On is required
{{$select.selected.ReportViewName}}
Report View Based on is required

Select Location & Tiers

Type of work Location is required.
{{$select.selected.TierValue}}
{{$select.selected.TierHeaderName}}
Mehtod is required.

Select Item of Construction Activity

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.

Select Location & Tiers

Type of work Location is required.
{{$select.selected.TierValue}}
{{$select.selected.TierHeaderName}}
Type of Consolidate Report is required.

');\n$templateCache.put('app/pages/constructionProjectSetup/Indent/indent.html','

{{vm.MenuNameList[vm.IndentStatus - 1].MenuName}} Indent

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.Name}}
{{$select.selected.Name}}
{{$select.selected.PeriodName}}

{{$select.selected.Name}}
0\">

List of Item of Materials

S.NoZuconDescription of MaterialUOMMaterial Qty
Type of Work LocationIOCA DescriptionUOMBOQ QtyMaterial Qty
Pow NamePow QtyMaterial Qty

List of Item of Machinery

Sl.noZuconDescription of MachineryUOMMachinery Qty
Type of Work LocationIOCA DescriptionUOMBOQ QtyMachinery Qty
Pow NamePow QtyMachinery Qty

List of Consumable

Sl.noZuconType of ConsumableUOMConsumable Qty
Type of Work LocationIOCA DescriptionUOMBOQ QtyConsumable Qty
Pow NamePow QtyConsumable Qty
0 || vm.TypeofConsumableList.length > 0 || vm.IOMHList.length > 0)\">

List of {{vm.MenuNameList[vm.IndentStatus - 1].MenuName}} Indent

Sl.noZuconDescription of MaterialUOMIndent Qty
Type of Work LocationIOCA DescriptionUOMBOQ QtyIndent Qty
Pow NamePow QtyIndent Qty

List of {{vm.MenuNameList[vm.IndentStatus - 1].MenuName}} Indent

Sl.noZuconDescription of MachineryUOMIndent Qty
Type of Work LocationIOCA DescriptionUOMBOQ QtyIndent Qty
Pow NamePow QtyIndent Qty

List of {{vm.MenuNameList[vm.IndentStatus - 1].MenuName}} Indent

Sl.noZuconType of ConsumableUOMIndent Qty
Type of Work LocationIOCA DescriptionUOMBOQ QtyIndent Qty
Pow NamePow QtyIndent Qty
0 || vm.MachineryIndentList.length > 0 || vm.ConsumableIndentList.length > 0)\">
');\n$templateCache.put('app/pages/constructionProjectSetup/Indent/indentNote.html','

Indent Note


Notes is required

');\n$templateCache.put('app/pages/constructionProjectSetup/Indent/indentTable.html','

List of Indents {{vm.MenuNameList[vm.IndentStatus - 1].MenuName}}


{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.Name}}
0 && vm.indentFor != undefined\">
0 && vm.indentFor != undefined\">
S.NoIndent NoRaised ByRaised OnAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IndentNo}}{{row.RaisedBy}}{{row.RaisedOn | date: dd-MM-yyyy}}

00
{{vm.waitingList[0].Counts | numberFixedLen:2}}

Total count
Draft Indent for Approval

00
{{vm.resubmittedList[0].Counts | numberFixedLen:2}}

Total count
Draft Indent Corrected for Approval

Indent No:{{ row.IndentNo}}
Indent Title:{{row.IndentTitle}}
Raised By :{{row.RaisedBy}}
No of Days Pending for Approval : {{row.PendingDate}}
');\n$templateCache.put('app/pages/constructionProjectSetup/locationSetup/locationSetup.html','

Create Location Setup

Edit Location Setup

{{$select.selected.CompanyName}}
Name of Company is required.
{{$select.selected.ProjectName}}
Name of Project is required.

Type of Work Location is required

Tier {{tier.id}}
{{ tier.tierName }}

List of Location Attribute

S.NoProject NameType of Work Location{{ tier }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.BasicLocation}}{{ row.Tiers[tierName] }}
');\n$templateCache.put('app/pages/constructionProjectSetup/pendingForApproval/pendingforApproval.html','

Pending For Approval


{{vm.waitingForApprovalList.length | numberFixedLen:2}}

Total Count
From Draft

{{vm.pendingApprovalList.length | numberFixedLen:2}}

Total Count
From Back For Correction
S.NoProject NameProject CodeProject TypeSizeLocationProject DurationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectCode}}
Project Category:   {{row.CategoryName}}
Project Type:  {{row.TypeName}}
TotalLand Size:  {{row.TotalLandSize + \\' \\' + row.UnitName}}
BuiltUp Area:  {{row.BuiltUpArea +\\' \\'+ row.UnitName}}
{{row.PlotNo}},{{row.AreaName}},{{row.CityName}},{{row.StateName}}.{{row.CountryName}}, {{row.Pincode}}
Start Date:   {{row.StartDate | date:\\'dd/MM/yyyy\\' }}
End Date:  {{row.EndDate | date:\\'dd/MM/yyyy\\' }}
{{row.StatusText}}
S.NoProject NameProject CodeProject TypeSizeLocationProject DurationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectCode}}
Project Category:   {{row.CategoryName}}
Project Type:  {{row.TypeName}}
TotalLand Size:  {{row.TotalLandSize + \\' \\' + row.UnitName}}
BuiltUp Area:  {{row.BuiltUpArea +\\' \\'+ row.UnitName}}
{{row.PlotNo}},{{row.AreaName}},{{row.CityName}},{{row.StateName}}.{{row.CountryName}}, {{row.Pincode}}
Start Date:   {{row.StartDate | date:\\'dd/MM/yyyy\\' }}
End Date:  {{row.EndDate | date:\\'dd/MM/yyyy\\' }}
{{row.StatusText}}
');\n$templateCache.put('app/pages/constructionProjectSetup/priliminaryEstimates/priliminaryEstimates.html','
{{$select.selected.ProjectName}}
Project Name is required.
Priliminary EstimatesPriliminary EstimatesESTIMATES
0\">
No of IOCA : {{vm.IOCAList.length}}
Total Cost : {{vm.TotalCostinInr}}
Start Date :


Finish Date :

{{vm.prl.EndDate}}
Revison : {{vm.prl.Revison}}


No of Days : {{vm.prl.TotDuration}}

0\">
S.NoType of C.AICANIOCA DescriptionUoMQtyRate per UnitCostDurationPredecessorESDEFDLSDLFDAction
{{row.SNo}} {{row.SelectedTypeofCA.TypeName}}{{row.SelectedIOCA.Code}}{{row.SelectedIOCA.ShortDescription}}{{row.SelectedIOCA.UnitName}}{{row.Qty}}{{row.RatePerUnit}}{{row.CostInInr}}
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{$select.selected.TypeName}}
{{row.SelectedTypeofCA.TypeName}}{{row.SelectedIOCA.Code}}{{$select.selected.ShortDescription}}
{{row.SelectedIOCA.ShortDescription}}{{row.SelectedIOCA.UnitName}}{{row.Qty}}{{row.RatePerUnit}}{{row.CostInInr}}{{row.ESD | date:\\'dd-MM-yyyy\\'}}{{row.EFD | date:\\'dd-MM-yyyy\\'}}{{row.LSD | date:\\'dd-MM-yyyy\\'}}{{row.LFD | date:\\'dd-MM-yyyy\\'}}
Do You Want to Change Order
BUDGET
No of IOCA : {{vm.IOCAList.length}}
Total Cost : {{vm.TotalBudgetCostinInr}}
Start Date :   {{vm.prl.StartDate | date:\\'dd-MM-yyyy\\'}}


Finish Date :   {{vm.prl.EndDate | date:\\'dd-MM-yyyy\\'}}
Revison : {{vm.prl.Revison}}


No of Days : {{vm.prl.TotDuration}}

Show


Week
Month
Quarterly

Currency


India INR
US $

Currency System


Thousands
Lakhs
Crore


0\">
S.NoType of C.AICANIOCA DescriptionUoM{{prd.PeriodName}}
{{prd.TotCostinCurrency}}
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.Code}}{{row.ShortDescription}}{{row.UnitName}}{{prd.TotCostinCurrency}}

List Of Priliminary Estimates

S.NoName of the ProjectTotal CostTotal DurationStart DateFinish DateRevision NoRevision DatePrepared ByAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.CostInr}}{{row.Duration}}{{row.StartDate | date:\\'dd-MM-yyyy\\'}}{{row.EndDate | date:\\'dd-MM-yyyy\\'}}{{row.Revison}}{{row.RevisonDate | date:\\'dd-MM-yyyy\\'}}{{row.PreparedBy}}
');\n$templateCache.put('app/pages/constructionProjectSetup/planning/projectFinalisedManualReScheduling.html','
Project Final Manual ReScheduling
{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.Description}}
Name of the Program is required.
{{$select.selected.PeriodName}}
Type of Reschedule is required.

0\">
S.NoDate
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row | date:\\'dd/MM/yyyy\\'}}
0\">
S.NoDay
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row | date:\\'dd/MM/yyyy\\'}}
0\" style=\"overflow-x: scroll\">
Project Schedule
SequenceIOCA/Short DescriptionUnitQtyPending QtyBalance QtyTotal Balance QtyDurationDelayDurationDelayReportToAssigned ToContractorEarly StartEarly EndLate StartLate End
{{key}}
{{row.IocaSeq}} {{row.ShortDescription}}{{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}{{row.PendingWork}}{{row.BalPowQty}}{{row.TotalBalanceQty}}{{row.Duration}}{{row.Delay}}{{row.ReportingToName}}{{row.EmployeeName}}{{row.ContractorName}}

{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.LateStart | date:\\'dd/MM/yyyy\\'}}{{row.LateEnd | date:\\'dd/MM/yyyy\\'}}

No Data Found

{{vm.Locations}}

{{vm.IOCAName}}

POW Planning
S.NOPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{$index+1}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}

No Data Found

');\n$templateCache.put('app/pages/constructionProjectSetup/planning/projectFinalisedManualScheduling.html','
Project Final Manual Scheduling
Name of the Program is required.
{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.

Select Location

{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
{{$select.selected.TierValue}}

Select Construction Activity

{{$select.selected.SpecTypeName}}
0\">
S.NoDate
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row | date:\\'dd/MM/yyyy\\'}}
0\">
S.NoDay
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row | date:\\'dd/MM/yyyy\\'}}
Release IOCA 

0\" style=\"overflow-x: scroll\">
Project Schedule
SequenceIOCA/Short DescriptionUnitQtyDurationDelayDurationDelayReportToAssigned ToContractorEarly StartEarly EndLate StartLate End
{{key}}
{{row.IocaSeq}} {{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}{{row.Duration}}{{row.Delay}}{{row.ReportingToName}}{{row.EmployeeName}}{{row.ContractorName}}

{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.LateStart | date:\\'dd/MM/yyyy\\'}}{{row.LateEnd | date:\\'dd/MM/yyyy\\'}}

0\">
Project Schedule
Type Of WorkIOCA/Short DescriptionUnitQty
{{key}}
{{row.TypeOfWork}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}

POW Planning
{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
{{$select.selected.ShortDescription}}
POW Planning
ProjectLocationIOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.ProjectName}}{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}}
LocationIOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}}
IOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}} IOCA {{vm.pow.selecteIOCA.ShortDescription}}
LastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}

Final Manual Planning List


S.NoProjectDescriptionAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.Description}}
');\n$templateCache.put('app/pages/constructionProjectSetup/planning/projectFinalisedReScheduling.html','
ReScheduling
{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.Description}}
Name of the Project is required.


Revison - {{vm.schedule.Revison}}



Select to add new BoQ


Select Location

{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
{{$select.selected.TierValue}}

Select Construction Activity

{{$select.selected.SpecTypeName}}


0\">


Project Schedule
SequenceIOCA/Short DescriptionUnitQtyPending QtyBalance QtyTotal Balance QtyDurationRelationShipDurationRelationShipReportToAssigned ToContractorStart DateEnd Date
{{key}}
{{row.IocaSeq}} {{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}{{row.PendingWork}}{{row.BalPowQty}}{{row.TotalBalanceQty}}{{row.Duration}}{{row.Relation}}{{row.ReportingToName}}{{row.EmployeeName}}{{row.ContractorName}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}

POW Planning
{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
{{$select.selected.ShortDescription}}
POW Planning
ProjectLocationIOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.ProjectName}}{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}}
LocationIOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}}
IOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}} IOCA {{vm.pow.selecteIOCA.ShortDescription}}
LastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}

Final Planning List

S.NoDescriptionRevisionAction
{{key}}
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Description}}Revison - {{row.Revison}}
');\n$templateCache.put('app/pages/constructionProjectSetup/planning/projectFinalisedScheduling.html','
Project Final Scheduling
Name of the Program is required.
{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.


Select Location

{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
{{$select.selected.TierValue}}

Select Construction Activity

{{$select.selected.SpecTypeName}}
Release IOCA 

0\">
Project Schedule
SequenceIOCA/Short DescriptionUnitQtyDurationRelationShipDurationRelationShipReportToAssigned ToContractorStart DateEnd Date
{{key}}
{{row.IocaSeq}} {{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}{{row.Duration}}{{row.Relation}}{{row.ReportingToName}}{{row.EmployeeName}}{{row.ContractorName}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}

0\">
Project Schedule
Type Of WorkIOCA/Short DescriptionUnitQty
{{key}}
{{row.TypeOfWork}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}

POW Planning
{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
{{$select.selected.ShortDescription}}
POW Planning
ProjectLocationIOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.ProjectName}}{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}}
LocationIOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}}
IOCALastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}} IOCA {{vm.pow.selecteIOCA.ShortDescription}}
LastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}

Final Planning List


S.NoProjectDescriptionAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.Description}}
');\n$templateCache.put('app/pages/constructionProjectSetup/planning/projectPlanning.html','
{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.Description}}
{{$select.selected.Revison}}





Gantt Chart For Finalized Planning

Gantt Chart For Finalized Pow Planning

');\n$templateCache.put('app/pages/constructionProjectSetup/planning/projectScheduling.html','
Project Planning
{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}


If Need Additional Holiday

0\">
S.NoDate
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{r | date:\\'dd/MM/yyyy\\'}}
0\">

{{vm.schedule.TotalDuration}}
{{vm.schedule.StartDate | date:\\'dd/MM/yyyy\\'}}
{{vm.schedule.EndDate | date:\\'dd/MM/yyyy\\'}}
{{vm.schedule.Revision}}
Project Schedule
S.NoType Of WorkIOCA/Short DescriptionUnitQtyDurationRelation ShipStart DateEnd Date
{{key}}
{{row.SNo}}{{row.TypeOfWork}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}
POW Planning
{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
{{$select.selected.ShortDescription}}
POW Planning
ProjectLocationIOCALastTierPowNamePow QtyStart DateEnd Date
{{row.ProjectName}}{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}
Project: {{vm.pow.selectedProject.ProjectName}}
LocationIOCALastTierPowNamePow QtyStart DateEnd Date
{{row.BasicLocation}}{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}}
IOCALastTierPowNamePow QtyStart DateEnd Date
{{row.IOCA_Id}}-{{row.ShortDescription}}{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}
Project: {{vm.pow.selectedProject.ProjectName}} Location: {{vm.pow.selectedLocation.BasicLocation}} IOCA {{vm.pow.selecteIOCA.ShortDescription}}
LastTierPowNamePow QtyStart DateEnd Date
{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/constructionProjectSetup/planning/viewFinalisedPlanning.html','

View Final Planning

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.Description}}
Name of the Project is required.
{{$select.selected.Revison}}
Name of the Project is required.


0\">
SequenceIOCA-Short DescriptionUnitQtyDurationRelationShipReport ToAssigned ToESDEFDLSDLFD
{{key}}
{{row.IocaSeq}} {{row.ShortDescription}}{{row.Unit}}{{row.PowQty}}{{row.Duration}}{{row.Relation}}{{row.ReportingToName}}{{row.EmployeeName}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.LateStart | date:\\'dd/MM/yyyy\\'}}{{row.LateEnd | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/constructionProjectSetup/planning/viewPowPlanning.html','
POW Planning
LastTierPowNamePow QtyStart DateEnd DateEmployeeReportTo
{{row.TierName}}-{{row.TierValue}}{{row.PowName}}{{row.PowQty}}{{row.EarlyStart | date:\\'dd/MM/yyyy\\'}}{{row.EarlyEnd | date:\\'dd/MM/yyyy\\'}}{{row.EmployeeName}}{{row.ReportToName}}
');\n$templateCache.put('app/pages/constructionProjectSetup/projectConstant/projectConstant.html','

Project Constant

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of The Project is required.
{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
{{$select.selected.CategoryName}}
Category of CA is required.
{{$select.selected.SubCategoryName}}
Sub Category of CA is required.
{{$select.selected.TypeName}}
Type of CA is required.

{{$select.selected.SpecTypeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
IOCA Short Description is required.
 {{vm.con.selectedIOCA.Code}}
 {{vm.con.selectedIOCA.IocaUnit.UnitName}}






0\">
List Of Labour

S.NoCodeType of LaborUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Labour}} {{row.Unit}}{{row.ConstantValue}}

0\">
List of Material
S.NoCodeItem of MaterialUOMConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}} {{row.Unit}}{{row.ConstantValue}}
0\">
List of Machinery
S.NoCodeItem of MachineryUOMConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}} {{row.Unit}}{{row.ConstantValue}}
0\">
List Of Consumable

S.NoCodeType of ConsumablesUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Consumable}} {{row.Unit}}{{row.ConstantValue}}

0\">
List Of Labour

S.NoCodeType of LaborUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Labour}} {{row.Unit}}{{row.ConstantValue}}

0\">
List of Material
S.NoCodeItem of MaterialUOMConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}} {{row.Unit}}{{row.ConstantValue}}
0\">
List of Machinery
S.NoCodeItem of MachineryUOMConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}} {{row.Unit}}{{row.ConstantValue}}
0\">
List Of Consumable

S.NoCodeType of ConsumablesUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Consumable}} {{row.Unit}}{{row.ConstantValue}}
Labour
{{$select.selected.LabrCategoryName}}
Category Labour is required.
{{$select.selected.LabourTypeName}}
Type of Labour is required.

Fill in Constant is required


List Of Labour

S.NoCodeType of LaborUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Labour}} {{row.Unit}}{{row.ConstantValue}}
Material
{{$select.selected.LOB_MatName}}
Line of Business is required.
{{$select.selected.MaterialCategoryName}}
Category of Material is required.
{{$select.selected.MaterialSubCategoryName}}
Subcategory of Material is required.
{{$select.selected.MaterialTypeName}}
Type of Material is required.
{{$select.selected.ShortDescription}}
Item of Material is required.

Fill in Constant is required


List of Material
S.NoCodeItem of MaterialUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}} {{row.Unit}}{{row.ConstantValue}}
Machinery
{{$select.selected.LOB_MachName}}
Line of Business is required.
{{$select.selected.CategoryofMachineryName}}
Category of Machinery is required.
{{$select.selected.SubCategoryName}}
Item of Material is required.
{{$select.selected.MachTypeName}}
Type of Machinery is required.
{{$select.selected.ShortDescription}}
Item of Machinery is required.
{{$select.selected.Name}}
Unit Name is required.

Fill in Constant is required


List of Machinery
S.NoCodeItem of MachineryUOMConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}} {{row.Unit}}{{row.ConstantValue}}
Consumable
{{$select.selected.CategoryOfWork}}
Category Consumable is required.
{{$select.selected.TypeName}}
Type of Consumable is required.

Fill in Constant is required


List Of Consumable

S.NoCodeType of ConsumablesUnitConstant ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Consumable}} {{row.Unit}}{{row.ConstantValue}}
');\n$templateCache.put('app/pages/constructionProjectSetup/projectCreation/projectCreation.html','
project Initiation
{{$select.selected.CompanyName}}
Name of the Company is required.
Name of the Project is Required Project Name already taken
Project Code is Required Project Code already taken
{{$select.selected.CategoryName}}
Category of Project is required.
{{$select.selected.TypeName}}
Type of Project is required.
{{$select.selected.CurrencyName}}
Currency is required.
Project Location Details

Pin Code is Required

{{$select.selected.AreaName}}
Area is required.

Address is Required

Plot Number is Required

Address is Required

Project Location Details

{{vm.project.PlotNo}}

{{vm.project.CountryName}}

{{vm.project.StateName}}

{{vm.project.CityName}}

{{vm.project.AreaName}}

{{vm.project.Pincode}}

GPS Coordinates

Latitude & Longitude is Required

GPS Coordinates

{{vm.project.Latitude}}

{{vm.project.Longitude}}

Construction Project Brief

Total Land Area is Required

Buildup Area is Required

{{$select.selected.UnitsType}}
{{$select.selected.UnitName}}

Unit Name is required.
Construction Project Brief
0 && vm.isFormEditing\">
Project Details
{{$select.selected}}
0 && vm.isFormViewing\">
Project Details
0 && vm.isFormEditing\">
Vehicle Parking
0 && vm.isFormViewing\">
Vehicle Parking
0 && vm.isFormEditing\">
Amenities
0 && vm.isFormViewing\">
Amenities
Unit of Details
{{$select.selected}}

* {{vm.msg}}
S.NoTypeNo Of UnitAction
{{row.UnitType}}{{row.Unit}}
0 && vm.isFormViewing\">
Unit of Details
S.NoType of FlatsNo Of Unit
{{row.UnitType}}{{row.Unit}}
Construction Project Duration Details
*

Start Date is Required
*

End Date is Required
{{vm.project.NoOfDays}}
Construction Project Duration Details
{{vm.message}}
Project Over Head
{{$select.selected.OverHeadName}}
{{vm.message1}}
S.NoDescription of OverHeadPercentageAction
{{row.OverHeadName}}{{row.percentage}}
0\">
Project Over Head
S.NoOverHeadPercentage
{{row.OverHeadName}}{{row.percentage}}
Drawings & Photo
{{$select.selected.Key}}
S.NoDocument NameFile NameAction
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}
0\">
Drawings & Photo
S.NoDocument NameFile Name
{{ row.key }}

Project Breif is Required


Project Notes is Required

0\">

{{vm.project.FirstName}}

{{notes.RejectedOn | date:\\'dd/MM/yyyy\\'}}

{{notes.Notes}}

');\n$templateCache.put('app/pages/constructionProjectSetup/projectCreation/projectRejection.html','

Project Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/constructionProjectSetup/projectInitiation/projectInitiation.html','

Initiate Project

S.NoProject NameProject CodeProject TypeSizeLocationProject DurationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectCode}}
Project Category:   {{row.CategoryName}}
Project Type:  {{row.TypeName}}
TotalLand Size:  {{row.TotalLandSize + \\' \\' + row.UnitName}}
BuiltUp Area:  {{row.BuiltUpArea +\\' \\'+ row.UnitName}}
{{row.PlotNo}},{{row.AreaName}},{{row.CityName}},{{row.StateName}}.{{row.CountryName}}, {{row.Pincode}}
Start Date:   {{row.StartDate | date:\\'dd/MM/yyyy\\' }}
End Date:  {{row.EndDate | date:\\'dd/MM/yyyy\\' }}
{{row.StatusText}}
');\n$templateCache.put('app/pages/constructionProjectSetup/ratesofInput/iocaRate.html','

Entering Assumption Rate of IOCA

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}

{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}

List Of Assumption Rate of IOCA

0\">
{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0\">
S.NoCodeIOCA Short DescriptionUnitRateDate of EntryAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.CurrentRate}} {{row.CreatedOn | date:\\'dd-MM-yyyy\\' }}
0\">
RATE HISTORY
S.NoRateFrom DateTo Date
{{ ($index + 1) }}{{row.CurrentRate}}{{row.FromDate | date:\\'dd-MM-yyyy\\'}}{{row.ToDate | date:\\'dd-MM-yyyy\\'}}
');\n$templateCache.put('app/pages/constructionProjectSetup/ratesofInput/ratesofInput.html','

Rates Of Input

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
Labour
{{$select.selected.LabrCategoryName}}
Category Labour is required.
{{$select.selected.LabourTypeName}}
Type of Labour is required.

Fill in Rate is required


List Of Labour

S.NoCodeLabour TypeUnitRateDate of EntryAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Labour}}{{row.Unit}}{{row.CurrentRate}} {{row.CreatedOn | date:\\'dd-MM-yyyy\\' }}
Material
{{$select.selected.LOB_MatName}}
Line of Business is required.
{{$select.selected.MaterialCategoryName}}
Category of Material is required.
{{$select.selected.MaterialSubCategoryName}}
Type of Labour is required.
{{$select.selected.MaterialTypeName}}
Type of Material is required.
{{$select.selected.SpecTypeName}}
Type of Items is required.
{{$select.selected.ShortDescription}}
Item of Material is required.
Fill in Rate is required.

List of Material
S.NoCodeMaterialTypeShort DescriptionUnitRateDate of EntryAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.MaterialType}}{{row.ShortDescription}}{{row.Unit}}{{row.CurrentRate}} {{row.CreatedOn | date:\\'dd-MM-yyyy\\' }}
Machinery
{{$select.selected.LOB_MachName}}
Line of Business is required.
{{$select.selected.COM_Name}}
Category of Machinery is required.
{{$select.selected.SubCategoryName}}
Subcategory of Machinery is required.
{{$select.selected.MachTypeName}}
Type of Machinery is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
Item of Machinery is required.
{{$select.selected.Name}}
Unit Name is required.

List of Machinery
S.NoCodeType of MachineryShort DescriptionUnitRateDate of EntryAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.MachineryType}}{{row.ShortDescription}}{{row.Unit}}{{row.CurrentRate}} {{row.CreatedOn | date:\\'dd-MM-yyyy\\' }}
Consumable
{{$select.selected.CategoryOfWork}}
Category Consumable is required.
{{$select.selected.TypeName}}
Type of Consumable is required.

List Of Consumable

S.NoCodeConsumable TypeUnitRateDate of EntryAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.Consumable}}{{row.Unit}}{{row.CurrentRate}} {{row.CreatedOn | date:\\'dd-MM-yyyy\\' }}
0\">
RATE HISTORY FOR {{vm.series | uppercase}}
S.NoRateFrom DateTo DateModified By
{{ ($index + 1) }}{{row.CurrentRate}}{{row.FromDate | date:\\'dd-MM-yyyy\\'}}{{row.ToDate | date:\\'dd-MM-yyyy\\'}}{{vm.FirstName}}
');\n$templateCache.put('app/pages/constructionProjectSetup/selectIoca/selectIoca.html','

Selection of IOCA

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}Name:
Company:
Code:
{{$select.selected.option}}
{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}Name:
Company:
Code:
{{$select.selected.CA_TypeName}} -
{{$select.selected.SpecTypeName}}


0\" class=\"text-danger\">No Ioca Available

{{$select.selected.FieldofConstructionName}}
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}} -
{{$select.selected.SubCategoryName}} -
{{$select.selected.CA_TypeName}} -
{{$select.selected.SpecTypeName}}

  • {{ variable.VariableName }}

Select Ioca

IOCA From Library

  • {{ioca.ShortDescription}} - {{ ioca.Code }}

IOCA to be Added

  • {{ioca.ShortDescription}} - {{ ioca.Code }}
S.NoCodeDetailed DescriptionShortDescriptionUomAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ ioca.Code }}

{{ ioca.IocaUnit.UnitName }}
');\n$templateCache.put('app/pages/constructionProjectSetup/tierSetup/tierSetup.html','

Location Variable Setup

{{$select.selected.CompanyName}}
Name of Company is required.
{{$select.selected.ProjectName}}
Name of Project is required.
{{$select.selected.BasicLocation}}
Type of Worklocation is required.


    {{$select.selected.TierValue}}
0\">
S.No{{ vm.currentTier }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.TierValue }}
');\n$templateCache.put('app/pages/constructionProjectTeam/projectTeamCreation/projectTeamCreate.html','

Create Project Team

Edit Project Team

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.FirstName || $select.selected }}
Company : ; Department : ;Designation : ;
{{$select.selected.CompanyName}}
Organization Level :
{{$select.selected.DepartmentName}}
{{$select.selected.DesignationName}}
{{$select.selected.FirstName}}
{{$select.selected.RoleName}}

Reporting To:



{{$select.selected.FirstName || $select.selected }}
Company : ; Department : ; Designation : ;
{{$select.selected.CompanyName}}
Organization Level :
{{$select.selected.DepartmentName}}
{{$select.selected.DesignationName}}
{{$select.selected.FirstName}}
0\" class=\"table table-responsive table-striped\">
S.NoEmployeeDepartmentDesignationDepartment of Superior OfficerReporting ToAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.EmpName}}{{row.EmpDepartment}}{{row.EmpDesignation}}{{row.RepDepartment}}{{row.RepName}}
0\">
0\" st-safe-src=\"vm.projteam.RejectNote.RejectNotes\" class=\"table table-striped\">
Rejection Notes

S.NoNotesRejectedByRejectedOn
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Notes}}{{row.RejectedBy}}{{row.RejectedOn | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/constructionProjectTeam/workAllocation/workAllocation.html','

Project Work Allocation

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.FirstName}}
Name of the Employee is required.
{{$select.selected.BasicLocation}}
Type of Work Location is required.
IOCA Allocation
{{$select.selected.TypeOfAttributeName}}

LIST OF ALLOCATED IOCA

S.NoCodeShort DescriptionAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Code}}{{row.IOCA_ShortDescription}}
Location Allocation
{{$select.selected.TierValue}}

LIST OF ALLOCATED LOCATION
S.NoLocationAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Locations}}
Mapping IOCA & Location
{{$select.selected.IOCA_ShortDescription}}
0\" style=\"border-top-color: #2dacd1;border-radius: 3px;padding: 5px;margin: 5px 0; border-top-width: 5px;\">
AllS.NoType of Work LocationLocations
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.Locations}}
0\" style=\"border-top-color: #dfb81c;border-radius: 3px;padding: 5px;margin: 5px 0; border-top-width: 5px;\">
AllS.NoIOCA_ShortDescription
{{ ($index + 1) + (vm.noOfRows2.value * (vm.currentPage2 - 1)) }}{{row.ShortDescription}}
');\n$templateCache.put('app/pages/consumableMaster/consumableCatagory/consumableCatagory.html','
Create Category of ConsumableEdit Category of Consumable

Category Of Consumable is required

List Of Category of Consumables


CodeCategory Of ConsumableAction
{{row.ConsumableCategoryCode}}{{row.CategoryOfWork}}
');\n$templateCache.put('app/pages/consumableMaster/typeOfConsumable/typeOfConsumable.html','
Create Type of ConsumableEdit Type of Consumable
{{$select.selected.CategoryOfWork}}
Category of Consumable is required.

Type of Consumable is required

{{$select.selected.Name}}
Type of Dimension is required.
{{$select.selected.UnitName}}
Units of Measurement is required.
{{$select.selected.Name}}
Units of Measurement is required.

List Of Types of Consumable



{{$select.selected.ConsumableCategory.CategoryOfWork}}
0 && vm.FilterConsumableCategory!=undefined\">

0 && vm.FilterConsumableCategory!=undefined\">
0 && vm.FilterConsumableCategory!=undefined\">
CodeType of ConsumableUnitsUnits of MeasurementAction
{{row.ConsumeTypeCode}}{{row.TypeName}}{{row.Unit.UnitName}}{{row.UOM.Name}}
');\n$templateCache.put('app/pages/contractor/Approval/approval.html','

List of Approved Contractors

S.NoContractor NameContractor CodeDate of RegistrationStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ContractorOfficeAddressDetails.Name}}{{row.ContractorCode}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\' }}Approved
');\n$templateCache.put('app/pages/contractor/BlockandBackforCorrection/blockandBackForCorrection.html','

Back for Correction

S.NoContractor NameContractor CodeDate of RegistrationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ContractorOfficeAddressDetails.Name}}{{row.ContractorCode}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\' }}Block Rejected
');\n$templateCache.put('app/pages/contractor/pendingForApproval/contractorpendingForApproval.html','

Pending For Approval


{{vm.TotalWaiting.length | numberFixedLen:2}}

Total Count
From Draft

{{vm.TotalResubmit.length | numberFixedLen:2}}

Total Count
From Back For Correction
0 || vm.TotalResubmit.length > 0\">
S.NoContractor NameContractor CodeDate of RegistrationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ContractorOfficeAddressDetails.Name}}{{row.ContractorCode}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\' }}ReSubmitted WaitingForApproval
');\n$templateCache.put('app/pages/contractor/registration/contractorRegGrid.html','

Contractor Registration

S.NoContractor NameContractor CodeDate of RegistrationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ContractorName}}{{row.ContractorCode}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\' }}Draft
');\n$templateCache.put('app/pages/contractor/registration/contractorRegistration.html','

Contractor Code is required


Contractor Code already Existing..
{{$select.selected.CountryName}}
Orgin of Contractor is required.
{{$select.selected.OwnershipName}}
Type of Firm is required.
{{$select.selected.ContractorTypeName}}
Contractor Type is required.

Nationality is required

Register Office Address

Contractor Name is required

AddressLine 1 is required

Sorry You are Exceeding the Limit
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State Name is required.
{{$select.selected.CityName}}
City Name is required.
{{$select.selected.AreaName}}
Area Name is required.

Head Office Address

AddressLine 1 is required

Sorry You are Exceeding the Limit
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State Name is required.
{{$select.selected.CityName}}
City Name is required.
{{$select.selected.AreaName}}
Area Name is required.

Communication Address

AddressLine 1 is required

Sorry You are Exceeding the Limit
{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State Name is required.
{{$select.selected.CityName}}
City name is required.
{{$select.selected.AreaName}}
Area Name is required.

Mobile No is required

Sorry You are Exceeding the Limit

Website Url is required

WhatsApp Group is required

Skype No is required

Email is required Not valid email!

Name of the Person 1 is required

Designation is required

Email is required Not valid email!

Mobile No is required

Sorry You are Exceeding the Limit !

Existing Bank A/c Documents is required


Labour License Reg No is required


PF Reg Code is required


ESI Code is required

Affidavit of Sole Proprietorship is required

TradeLicence is required


CIN is required

Balance Sheet is required



Bank Name is required

A/c No is required

IFSC Code is required

Branch is required

{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State is required.
{{$select.selected.CityName}}
City is required.
{{$select.selected.AreaName}}
Area is required.

File is required

Staff Name is required

Experience in Years is required

Designation is required

Qualification is required

Name of the Client is required

Order Value is required

Order Number is required

Completion Schedule is required

Actual Completion is required

{{$select.selected.CategoryofMachineryName}}
LOB : ; Country :
Category Of Machinery is required.
{{$select.selected.MachTypeName}}
SubCategory :
Type Of Machinery is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
Item of Machinery is required.

Year of Purchase is required

No of Equipment is required

Year of Manufacturer is required

Capacity is required

Category Name is required.
Type Of CA is required.


');\n$templateCache.put('app/pages/contractor/registration/editContractorRegistration.html','

Contractor Registration

Contractor Info

{{$select.selected.CountryName}}
Orgin of Contractor is required.
{{$select.selected.OwnershipName}}
Type of Firm is required.
{{$select.selected.ContractorTypeName}}
Orgin of Contractor is required.

Nationality is required

Register Office Address

{{$select.selected.CountryName}}
{{$select.selected.StateName}}
{{$select.selected.CityName}}
{{$select.selected.AreaName}}

Head Office Address

{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State is required.
{{$select.selected.CityName}}
City is required.
{{$select.selected.AreaName}}
Area is required.

Communication Address

AddressLine 1 is required

AddressLine 2 is required

{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State is required.
{{$select.selected.CityName}}
City is required.
{{$select.selected.AreaName}}
Area is required.

Contact Details

LandLine is required

Fax No is required

Mobile No is required

Sorry You are Exceeding the Limit

Website Url is required

Whats App Group is required

Skype No is required

Email is required Not valid email!

Contact Person Details

Name of the Person 1 is required

Designation is required

Email is required Not valid email!

Mobile No is required

Sorry You are Exceeding the Limit

Name of the Person 2 is required

Designation is required

Email is required Not valid email!

Mobile No is required

Statutory Documents

Existing Bank A/c Documents is required




Labour License Reg No is required



PF Reg Code is required



ESI Code is required

Affidavit of Sole Proprietorship is required



TradeLicence is required











CIN is required






Balance Sheet is required

Bank Details

Bank Name is required

A/c No is required

IFSC Code is required

Branch is required

{{$select.selected.CountryName}}
Country Name is required.
{{$select.selected.StateName}}
State is required.
{{$select.selected.CityName}}
City is required.
{{$select.selected.AreaName}}
Area is required.


Staff Details

Staff Name is required

Experience in Years is required

Designation is required

Qualification is required

Contractor Experience

Name of the Client is required

Order Value is required

Order Number is required

Completion Schedule is required

Actual Completion is required

Machinery Details

{{$select.selected.CategoryofMachineryName}}
LOB : ; Country :
Category Of Machinery is required.
{{$select.selected.MachTypeName}}
SubCategory :
Type Of Machinery is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
Item of Machinery is required.

Year of Purchase is required

No of Equipment is required

Year of Manufacturer is required

Capacity is required

Construction Activity

{{$item.CategoryName}}
Category Name is required.
{{$item.CA_TypeName}}
Type Of CA is required.
');\n$templateCache.put('app/pages/contractor/registration/rejectNotes.html','

Contractor Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/contractor/registration/viewContractorRegistration.html','

Contractor Registration

Contractor Info

Nationality is required

Register Office Address

Head Office Address

Communication Address

AddressLine 1 is required

AddressLine 2 is required

Contact Details

LandLine is required

Fax No is required

Mobile No is required

Sorry You are Exceeding the Limit

Website Url is required

Whats App Group is required

Skype No is required

Email is required Not valid email!

Contact Person Details

Name of the Person 1 is required

Designation is required

Email is required Not valid email!

Mobile No is required

Sorry You are Exceeding the Limit

Name of the Person 2 is required

Designation is required

Email is required Not valid email!

Mobile No is required

Statutory Documents

Existing Bank A/c Documents is required






Affidavit of Sole Proprietorship is required



TradeLicence is required
















Bank Details

Bank Name is required

A/c No is required

IFSC Code is required

Branch is required



Staff Details

Staff Name is required

Experience in Years is required

Designation is required

Qualification is required

Contractor Experience

Name of the Client is required

Order Value is required

Order Number is required

Completion Schedule is required

Actual Completion is required

Machinery Details

Year of Purchase is required

No of Equibment is required

Year of Manufacturer is required

Capacity is required

Construction Activity

{{$item.CategoryName}}
Category Name is required.
{{$item.CA_TypeName}}
Type Of CA is required.
');\n$templateCache.put('app/pages/CRM/CRMApproved/CRMapproved.html','

Approved Project



{{$select.selected.ProjectName}}

Project Name is required.
{{$select.selected.CategoryName}}

Property Name is required.
{{$select.selected.TypeName}}

Project Type is required.
Location Of Property

Plot Number is Required

{{$select.selected.CountryName}}

Country is required.
{{$select.selected.StateName}}

Select service
State is required.
{{$select.selected.CityName}}

City is required.
{{$select.selected.AreaName}}

Area is required.

Pin Code is Required

Project Location Details

{{vm.project.PlotNo}}

{{vm.project.CountryName}}

{{vm.project.StateName}}

{{vm.project.CityName}}

{{vm.project.AreaName}}

{{vm.project.Pincode}}

GPS Coordinates


Latitude & Longitude is Required

GPS Coordinates


Latitude & Longitude is Required

{{vm.project.Latitude}}

{{vm.project.Longitude}}

Estimated Sale

Acre

Estimated Sale Proceeds is Required


Number of Apartments is Required

List of Approved Project

S.NoProject NameCategory of ProjectSub Category of ProjectStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.CategoryName}}{{row.ProjectType}}{{row.StatusLabel}}
');\n$templateCache.put('app/pages/CRM/CRMApprovedProjectPrice/CRMApprovedProjectPrice.html','

{{vm.Header}}

Statutory Details
Basic Sale Price

{{vm.Header}}

S.NoProject NameTier NameTier valueRate PerUnitBooking PercentageStatutory CostTotal CostStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.TierName}}{{row.TierValue}}{{row.RatePerUnit}}{{row.BookingPercentage}}{{row.StatutoryCost}}{{row.TotalCost}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRMApprovedProjectPrice_New/CRMApprovedProjectPrice_New.html','

{{vm.Header}}

S.NoType of PropertySalable AreaRate PerUnitTotal BasicCostBooking AmountDiscount AmountStatutory CostTotal CostAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.SalableArea}}{{row.RatePerUnit}}{{row.TotalBasicCost}}{{row.BookingAmount}}{{row.DiscountAmount}}{{row.StatutoryCost}}{{row.TotalCost}}

{{vm.Header}}

{{$select.selected.BasicLocation}}
Location Name is required.
{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required



Statutory Details
{{labels.selectedType.Value}}
Basic Sale Price
');\n$templateCache.put('app/pages/CRM/CRMbackforCorrection/CRMbackforCorrection.html','

Back for Correction



{{$select.selected.ProjectName}}

Project Name is Required

Project Name is Required

{{$select.selected.CategoryName}}

Category of Project is Required

{{$select.selected.TypeName}}

Sub Category of Project is Required

Location Of Property

Door No and Street Name is Required

{{$select.selected.CountryName}}

Country Name is Required

{{$select.selected.StateName}}

State Name is Required

{{$select.selected.CityName}}

City Name is Required

{{$select.selected.AreaName}}

Area Name is Required


Pin Code is Required

GPS Coordinates


Latitude & Longitude is Required

GPS Coordinates


Latitude & Longitude is Requiredis Required is Required

{{vm.project.Latitude}}

{{vm.project.Longitude}}

Estimated Sale

Acre

Estimated Area to be Sold is Required


Estimated Sale Proceeds is Required


Number of Apartments is Required

Selecte a profile picture
  

List of Back for Correction

S.NoProject NameCategory of ProjectSub Category of ProjectStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.CategoryName}}{{row.ProjectType}}{{row.StatusLabel}}
');\n$templateCache.put('app/pages/CRM/CRMEmployeeTaskActivity/CRM_EmployeeTaskActivity.html','

Employee Task Activity

S.NoSubject of ActivityActivity NameStart TimeEnd TimeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}{{row.ActivityName}}{{row.StartTime}}{{row.EndTime}}
   -   
   -   
{{$select.selected.CustomerName}}
Customer Name is required.
{{$select.selected.SubjectActivity}}
Subject of Activity is required.
{{$select.selected.ActivityName}}
Activity Name is required.
{{$select.selected.Status}}
Customer Name is required.

');\n$templateCache.put('app/pages/CRM/CRMProjectCreation/CRM_projectcreation.html','

Project Initiation

S.NoProject NameProject CodeProject TypeSizeLocationProject DurationStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.ProjectCode}}
Project Category:   {{row.CategoryName}}
Project Type:  {{row.TypeName}}
TotalLand Size:  {{row.TotalLandSize + \\' \\' + row.UnitName}}
BuiltUp Area:  {{row.BuiltUpArea +\\' \\'+ row.UnitName}}
{{row.PlotNo}},{{row.AreaName}},{{row.CityName}},{{row.StateName}}.{{row.CountryName}}, {{row.Pincode}}
Start Date:   {{row.StartDate | date:\\'dd/MM/yyyy\\' }}
End Date:  {{row.EndDate | date:\\'dd/MM/yyyy\\' }}
{{row.StatusText}}
');\n$templateCache.put('app/pages/CRM/CRMProjectDetailsApproval/CRM_ProjectDetailsApproval.html','

{{vm.Header}}

{{vm.Header}}

S.NoProject NameTier NameLocation DetailsAreaUnitsStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.TierName}}
{{Tiers.TierName}} - {{Tiers.Values[0].TierValue}}
{{row.DisplayAreaUnits}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRMProjectDetailsApproval_New/CRMProjectDetailsApproval_New.html','

{{vm.Header}}

{{$select.selected.BasicLocation}}
{{$select.selected.UnitName}}
{{labels.selectedTier.TierValue}}

{{$select.selected.Value}}

Type of Unit is Required

FOR RERA

Type of Unit is Required

Balcony is Required

Verandha is Required

Utility is Required

Service is Required

Open Terrace is Required

Super Builtup Area is Required

Undivided Area is Required

{{$select.selected.Value}}

Facing Direction is Required

{{$select.selected.Value}}

Location Feature is Required

{{$select.selected.Key}}
S.NoDocument NameFile NameAction
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}
{{$select.selected.BasicLocation}}
{{labels.selectedParkingTier.TierValue}}

{{$select.selected.Key}}
S.NoDocument NameFile NameAction
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}

{{vm.Header}}

S.NoType of PropertyCodeSalable AreaLocation FeatureStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.Code}}{{row.SalableArea}}{{row.LocationFeature}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRMProjectDetailsPriceSetup/CRMProjectDetailsPriceSetup.html','

{{vm.Header}}

{{$select.selected.BasicLocation}}

Location Name is required.
{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required

{{$select.selected.TierValue}}

Tier Name is required.
Statutory Details
Basic Sale Price

{{vm.Header}}

S.NoTier NameTier valueRate PerUnitBooking PercentageStatutory CostTotal CostAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TierName}}{{row.TierValue}}{{row.RatePerUnit}}{{row.BookingPercentage}}{{row.StatutoryCost}}{{row.TotalCost}}
');\n$templateCache.put('app/pages/CRM/CRMProjectDetailsPriceSetup_New/CRMProjectDetailsPriceSetup_New.html','

{{vm.Header}}

S.NoType of PropertySalable AreaRate PerUnitTotal BasicCostBooking AmountDiscount AmountStatutory CostTotal CostAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.SalableArea}}{{row.RatePerUnit}}{{row.TotalBasicCost}}{{row.BookingAmount}}{{row.DiscountAmount}}{{row.StatutoryCost}}{{row.TotalCost}}

{{vm.Header}}

{{$select.selected.BasicLocation}}
{{labels.selectedTier.TierValue}}

Value is Required


Plot Number is Required


Plot Number is Required

Rate Per Unit Area is Required


Plot Number is Required


Plot Number is Required

Rate of Land is Required

Plot Number is Required

Plot Number is Required


Booking Percentage is Required

Discount Percentage is Required

Statutory Details
{{labels.selectedType.Value}}
Basic Sale Price
');\n$templateCache.put('app/pages/CRM/CRMRepeatedTaskMaster/CRM_RepeatedTaskMaster.html','

Repeated Activity

{{$select.selected.SubjectActivity}}
Subject of Activity is required.
{{$select.selected.ActivityName}}
Activity Name is required.
{{$select.selected.RepeatBy}}
Repeat By is required.
{{$select.selected.Day}}
Repeat By is required.

List of Repeated Activity

S.NoSubject ActivityActivity NameRepeat ByDetailsAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}{{row.ActivityName}}{{row.RepeatBy}}{{row.DisplayRepValues}}
');\n$templateCache.put('app/pages/CRM/CRMProjectDetailsRejection/CRMProjectDetailsRejection.html','

Project Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/CRM/CRM_AddBuyerEnquiry/CRM_AddBuyerEnquiry.html','

Add Buyer Enquiry Data

Date of Enquiry is required

Buyer Name is required

Date of Birth is required

Marital Status is required

{{$select.selected.Value}}
{{$select.selected.Value}}
{{$select.selected.Value}}
{{$select.selected.Value}}
Selecte a project picture
  

Address Line 1 is required

Address Line 2 is required

{{$select.selected.CountryName}}

Country is required

{{$select.selected.StateName}}

State is required

{{$select.selected.CityName}}

City is required

{{$select.selected.AreaName}}

Area is required

Mobile Number is required

E-Mail Id is required

{{$select.selected.Value}}
{{$select.selected.Value}}
{{$select.selected.Value}}
{{$select.selected.CountryName}}
{{$select.selected.StateName}}
{{$select.selected.CityName}}
{{$select.selected.AreaName}}
{{$select.selected.Value}}
{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}

Statutory Name is required

List of Add Buyer Enquiry Data

S.NoBuyer NameSource of EnquiryProjet NameBudgetTier NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BuyerName}}{{row.SourceName}}{{row.ProjectName}}{{row.Budget}}{{row.TierValue}}
');\n$templateCache.put('app/pages/CRM/CRM_ApprovedProjectDetails/CRM_ApprovedProjectDetails.html','

{{vm.Header}}

{{vm.Header}}

S.NoProject NameTier NameLocation DetailsArea UnitsStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.TierName}}
{{Tiers.TierName}} - {{Tiers.Values[0].TierValue}}
{{row.DisplayAreaUnits}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRM_ApprovedProjectDetails_New/CRM_ApprovedProjectDetails_New.html','

{{vm.Header}}

{{$select.selected.BasicLocation}}

Location Name is required.
{{$select.selected.UnitName}}

Location Name is required.
{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required

{{$select.selected.Value}}

Project Name is required.

Type of Unit is Required

FOR RERA

Type of Unit is Required

Balcony is Required

Verandha is Required

Utility is Required

Service is Required

Open Terrace is Required

Super Builtup Area is Required

Undivided Area is Required

{{$select.selected.Value}}

Facing Direction is Required

{{$select.selected.Value}}

Location Feature is Required

{{$select.selected.Key}}

S.NoDocument NameFile Name
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}
{{$select.selected.BasicLocation}}
{{labels.selectedParkingTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required

{{$select.selected.Key}}

S.NoDocument NameFile Name
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}

{{vm.Header}}

S.NoType of PropertyCodeSalable AreaLocation FeatureStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.Code}}{{row.SalableArea}}{{row.LocationFeature}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRM_BuyerEnquiryTiles/CRM_BuyerEnquiryTiles.html','

Buyer Enquiry Data

Add Buyer Enquiry Data

View Buyer Enquiry Data

Buyer Enquiry Follows-Ups

Potential Buyer

Closed Enquiry

');\n$templateCache.put('app/pages/CRM/CRM_CopyAreaDetails/CRM_CopyAreaDetails.html','

{{vm.Header}}

{{$select.selected.Value}}

Project Name is required.
Project Name is required.
{{$select.selected.Value}}

Project Name is required.
{{$select.selected.Value}}

Project Name is required.
{{$select.selected.Value}}

Project Name is required.
Copy From


{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.
Copy To


');\n$templateCache.put('app/pages/CRM/CRM_dashboard/CRM_dashboard.html','');\n$templateCache.put('app/pages/CRM/CRM_GstSetting/CRM_GstSetting.html','

Create GST Settings

{{$select.selected.Value}}

GST for is required

%

TaxPercentage is required

Effective Form is required



List Of GST Settings

S.NoGSTForTax PercentageEffective FromAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.GSTFor}}{{row.Percentage}}{{row.EffectiveFrom | date:\\'dd-MM-yyyy\\'}}
');\n$templateCache.put('app/pages/CRM/CRM_ItemofSalesActivity/CRM_ItemofSalesActivity.html','

Item of Sale Activity

{{$select.selected.DepartmentName}}

Subject is required

{{$select.selected.CategoryName}}

Category of Sales Activity is required


Item of Sales Activity is Required

:
Sequence NoItem of Sales ActivityDurationAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ItemName}}{{row.Duration}}
');\n$templateCache.put('app/pages/CRM/CRM_LocationPropertyTypeSetup/CRMLocationPropertyTypeSetup.html','

Property Type Setup

{{$select.selected.ProjectName}}

Project Name is Required

{{$select.selected.BasicLocation}}

Type of Property is Required

Type of {{vm.Project.selectedLocation.BasicLocation}} is Required

Activity Name is Required

List of Property Type

S.NoProject NameType of ProjectProperty TypeParkingAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.BasicLocation}}{{row.PropertyType}}
');\n$templateCache.put('app/pages/CRM/CRM_ModifyProjectDetails/CRM_ModifyProjectDetails.html','

{{vm.Header}}

{{vm.Header}}

S.NoProject NameTier NameLocation DetailsArea UnitsStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.TierName}}
{{Tiers.TierName}} - {{Tiers.Values[0].TierValue}}
{{row.DisplayAreaUnits}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRM_ModifyProjectDetails_New/CRM_ModifyProjectDetails_New.html','

{{vm.Header}}

{{$select.selected.BasicLocation}}

Location Name is required.
{{$select.selected.UnitName}}

Location Name is required.
{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required

{{$select.selected.Value}}

Project Name is required.

Type of Unit is Required

FOR RERA

Type of Unit is Required

Balcony is Required

Verandha is Required

Utility is Required

Service is Required

Open Terrace is Required

Super Builtup Area is Required

Undivided Area is Required

{{$select.selected.Value}}

Facing Direction is Required

{{$select.selected.Value}}

Location Feature is Required

{{$select.selected.Key}}

S.NoDocument NameFile NameAction
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}
{{$select.selected.BasicLocation}}
{{labels.selectedParkingTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required

{{$select.selected.Key}}

S.NoDocument NameFile NameAction
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}

{{vm.Header}}

S.NoType of PropertyCodeSalable AreaLocation FeatureStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.Code}}{{row.SalableArea}}{{row.LocationFeature}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRM_ModifyProjectPrice/CRM_ModifyProjectPrice.html','

{{vm.Header}}

Statutory Details
Basic Sale Price

{{vm.Header}}

S.NoProject NameTier NameTier valueRate PerUnitBooking PercentageStatutory CostTotal CostStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.TierName}}{{row.TierValue}}{{row.RatePerUnit}}{{row.BookingPercentage}}{{row.StatutoryCost}}{{row.TotalCost}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRM_ModifyProjectPrice_New/CRM_ModifyProjectPrice_New.html','

{{vm.Header}}

S.NoType of PropertySalable AreaRate PerUnitTotal BasicCostBooking AmountDiscount AmountStatutory CostTotal CostAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.SalableArea}}{{row.RatePerUnit}}{{row.TotalBasicCost}}{{row.BookingAmount}}{{row.DiscountAmount}}{{row.StatutoryCost}}{{row.TotalCost}}

{{vm.Header}}

{{$select.selected.BasicLocation}}
Location Name is required.
{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required



Statutory Details
{{labels.selectedType.Value}}
Basic Sale Price
');\n$templateCache.put('app/pages/CRM/CRM_PaymentScheduleMapping/CRM_PaymentScheduleMapping.html','

Payment Schedule Mapping

{{$select.selected.ProjectName}}

Project Name is required.
{{$select.selected.BasicLocation}}

Type of Property is required.
{{$select.selected.Value}}

Type of Property is required.
Payment Schedule Details
{{row.ScheduleName}}
');\n$templateCache.put('app/pages/CRM/CRM_PaymentScheduleMaster/CRM_PaymentScheduleMaster.html','

Create Payment Schedule Master

Payment Schedule Name is required



List Of Payment Schedule Master

S.NoSchedule NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ScheduleName}}
');\n$templateCache.put('app/pages/CRM/CRM_pendingforapproval/CRM_pendingforapproval.html','

Project Approval



{{$select.selected.ProjectName}}

Project Name is Required

Project Name is Required

{{$select.selected.CategoryName}}

Category of Project is Required

{{$select.selected.TypeName}}

Sub Category of Project is Required

Location Of Property

Door No and Street Name is Required

{{$select.selected.CountryName}}

Country Name is Required

{{$select.selected.StateName}}

State Name is Required

{{$select.selected.CityName}}

City Name is Required

{{$select.selected.AreaName}}

Area Name is Required


Pin Code is Required

GPS Coordinates


Latitude & Longitude is Required

GPS Coordinates


Latitude & Longitude is Requiredis Required is Required

{{vm.project.Latitude}}

{{vm.project.Longitude}}

Estimated Sale

Acre

Estimated Area to be Sold is Required


Estimated Sale Proceeds is Required


Number of Apartments is Required

Selecte a project picture
  

List of Project Approval

S.NoProject NameCategory of ProjectSub Category of ProjectStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.CategoryName}}{{row.ProjectType}}{{row.StatusLabel}}
');\n$templateCache.put('app/pages/CRM/CRM_projectInitiation/CRM_projectInitiation.html','

project Inititation


{{$select.selected.ProjectName}}
{{$select.selected.CategoryName}}
{{$select.selected.TypeName}}
Location Of Property
{{$select.selected.CountryName}}
{{$select.selected.StateName}}
{{$select.selected.CityName}}
{{$select.selected.AreaName}}
Project Location Details

{{vm.project.PlotNo}}

{{vm.project.CountryName}}

{{vm.project.StateName}}

{{vm.project.CityName}}

{{vm.project.AreaName}}

{{vm.project.Pincode}}

GPS Coordinates

GPS Coordinates

Estimated Sale

Acre
Selecte a project picture
  

List of Project Initiated

S.NoProject NameCategory of ProjectSub Category of ProjectStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.CategoryName}}{{row.ProjectType}}{{row.StatusLabel}}
');\n$templateCache.put('app/pages/CRM/CRM_projectInitiationTiles/CRM_projectInitiationTiles.html','

Project Initiation

Project Intitiation

Project Initaited to be Approved

Not Approved to be Corrected

Approved Project

');\n$templateCache.put('app/pages/CRM/CRM_ProjectPropertyInfoTiles/CRM_ProjectPropertyInfoTiles.html','

{{vm.header}}

{{projects.ProjectName}}

{{projects.ProjectType}}

{{projects.AreaName}}

{{vm.LastTierName}} Property Location Setup

Parking Setup

{{vm.LastTierName}} Property Details Setup

{{vm.LastTierName}}Property Price Setup

Tiers Setup

Location Setup

{{vm.LastTierName}} Property Details Setup

{{vm.LastTierName}} Property Details to be Approved

Property Details Not Approved to be Corrected

Approved {{vm.LastTierName}} Property Details

{{vm.LastTierName}} Property Price Setup

{{vm.LastTierName}}Property Price to be Approved

Property Price Not Approved to be Corrected

Approved {{vm.LastTierName}} Property Price

New

Copy

New

Copy

');\n$templateCache.put('app/pages/CRM/CRM_ProjectPropertyPricesTies/CRM_ProjectPropertyPricesTies.html','

{{vm.Header}}

{{vm.LastTierName}} Price Setup

{{vm.LastTierName}} Price Approval

Back For Correction

Approved {{vm.LastTierName}} Price

');\n$templateCache.put('app/pages/CRM/CRM_projectPropertyView/CRM_ProjectPropertyView.html','

Project Property View

{{projects.ProjectName}}

{{projects.ProjectType}}

{{projects.AreaName}}

Project Name - {{vm.SelectedProjectName}}
Location - {{row1.DistinctLocation}}
S.NoTier ValueApartment TypeSuper Builtup AreaFlat Facing DirectionApartment Price
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row2.TierValue}}{{row2.ApartmentType}}{{row2.SuperBuiltupArea}}{{row2.FlatFacingDirection}}{{row2.TotalCost}}
');\n$templateCache.put('app/pages/CRM/CRM_projectPropertyView_Modified/CRM_projectPropertyView_Modified.html','

Project Property View

{{projects.ProjectName}}

{{projects.ProjectType}}

{{projects.AreaName}}

Total

Sold

UnSold

{{$select.selected.Type}}
');\n$templateCache.put('app/pages/CRM/CRM_projectPropertyView_New/CRM_projectPropertyView_New.html','

Project Property View

{{projects.ProjectName}}

{{projects.ProjectType}}

{{projects.AreaName}}

{{$select.selected.Value}}

Project Name is required.
{{$select.selected.Type}}

Project Name is required.
{{vm.Project.selectedReportType.Type}} Report of {{details.TypeofProperty}} Details of {{vm.CRMProjectName}} , {{vm.CRMProjectArea}}
Type of Property : {{details.TypeofProperty}}
{{details.TypeofProperty}} Type : {{details.PropertyType}}
{{k}}
S.No{{details.TypeofProperty}}CodeFacing DirectionLocation FeatureCarpet AreaSalable AreaRate Per UnitStatutory CostTotal CostBookingDiscount
{{($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TierValue}}{{row.Code}}{{row.FacingDirection}}{{row.LocationFeature}}{{row.CarpetArea}}{{row.SalableArea}}{{row.RatePerUnit}}{{row.StatutoryCost}}{{row.TotalCost}}{{row.BookingAmount}}{{row.DiscountAmount}}

End of Report


{{vm.Project.selectedReportType.Type}} Report of {{details.TypeofProperty}} Details of {{vm.CRMProjectName}} , {{vm.CRMProjectArea}}
Type of Property : {{details.TypeofProperty}}
S.No{{details.TypeofProperty}}{{details.TypeofProperty}} TypeCount
{{($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.GroupColumn}}{{row.PropertyType}}{{row.Count}}

End of Report


');\n$templateCache.put('app/pages/CRM/CRM_ProjectRateApproval/CRM_ProjectRateApproval.html','

{{vm.Header}}

Statutory Details
Basic Sale Price

{{vm.Header}}

S.NoProject NameTier NameTier valueRate PerUnitBooking PercentageStatutory CostTotal CostStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.TierName}}{{row.TierValue}}{{row.RatePerUnit}}{{row.BookingPercentage}}{{row.StatutoryCost}}{{row.TotalCost}}{{row.StatusName}}
');\n$templateCache.put('app/pages/CRM/CRM_ProjectRateApproval_New/CRM_ProjectRateApproval_New.html','

{{vm.Header}}

S.NoType of PropertySalable AreaRate PerUnitTotal BasicCostBooking AmountDiscount AmountStatutory CostTotal CostAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.SalableArea}}{{row.RatePerUnit}}{{row.TotalBasicCost}}{{row.BookingAmount}}{{row.DiscountAmount}}{{row.StatutoryCost}}{{row.TotalCost}}

{{vm.Header}}

{{$select.selected.BasicLocation}}
Location Name is required.
{{labels.selectedTier.TierValue}}
{{labels.Tiers}} Name is required.

Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required


Plot Number is Required



Statutory Details
{{labels.selectedType.Value}}
Basic Sale Price
');\n$templateCache.put('app/pages/CRM/CRM_ProjectStatutorySetting/CRM_ProjectStatutorySetting.html','

Project Statutory Mapping

{{$select.selected.ProjectName}}

Project Name is required.
{{$select.selected.BasicLocation}}

Type of Property is required.
{{$select.selected.Value}}

Type of Property is required.
Statutory DetailsMultiplying Factor
{{row.StatutoryName}}{{$select.selected.Value}}
');\n$templateCache.put('app/pages/CRM/CRM_SalesActivityCategory/CRM_SalesActivityCategory.html','

Category of Sales Activity

{{$select.selected.DepartmentName}}

Subject is required


Category of Sales Activity is Required

S.NoCategory of Sales ActivityAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CategoryName}}
');\n$templateCache.put('app/pages/CRM/CRM_StatutoryMaster/CRM_StatutoryMaster.html','

Create Statutory Master

Statutory Name is required

Effective Form is required

Activity Name is Required

%

TaxPercentage is required



List Of Statutory Master

S.NoStatutory NameEffective FromTax PercentageTaxAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.StatutoryName}}{{row.EffectiveFrom | date:\\'dd-MM-yyyy\\'}}{{row.TaxPercentage}} %
');\n$templateCache.put('app/pages/CRM/CRM_Task/CRM_Task.html','

Task

Repeated Activity

Employee Task Activity

Task Appraisal Report

');\n$templateCache.put('app/pages/CRM/CRM_TaskActivityMaster/CRM_TaskActivityMaster.html','

Activity Master

{{$select.selected.SubjectActivity}}

Subject of Activity is required


Activity Name is Required

List of Activity Master

S.NoSubject of ActivityActivity NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}{{row.ActivityName}}
');\n$templateCache.put('app/pages/CRM/CRM_TaskApprovedList/CRM_TaskApprovedList.html','

Task Appraisal Report

S.NoSubject of ActivityActivity NameRepeat ByStart TimeEnd Time
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}{{row.ActivityName}}{{row.RepeatBy}}{{row.StartTime}}{{row.EndTime}}
');\n$templateCache.put('app/pages/CRM/CRM_TaskPlanning/CRM_TaskPlanning.html','

Daily Planning for the Buyer Related Task

{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
');\n$templateCache.put('app/pages/CRM/CRM_TaskSubjectMaster/CRM_TaskSubjectMaster.html','

Subject of Activity


Subject of Activity is Required

List of Subject of Activity

S.NoSubject of ActivityAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}
');\n$templateCache.put('app/pages/CRM/CRM_ViewBuyerEnquiry/CRM_ViewBuyerEnquiry.html','

View Buyer Enquiry Data

{{$select.selected.Type}}

Project Name is required.
Project Name : {{details.ProjectName}}
Property Type : {{dtl.PropertyType}}
Salable Area : {{salarea.SalableArea}}
S.NoCustomer NameEnquiry DateSales ExecutiveApartment NumberStatus
{{($index + 1) + (vm.noOfRows.value * (vm.currentPage- 1)) }}{{row.BuyerName}}{{row.DOE | date:\\'dd-MM-yyyy\\'}}{{row.SalesExecutive}}{{row.TierValue}}{{row.Status}}
Project Name : {{dtl.ProjectName}}
S.NoArea NameProperty TypeCount
{{($index + 1) + (vm.noOfRows.value * (vm.currentPage- 1)) }}{{row.AreaName}}{{row.PropertyType}}{{row.Count}}

Buyer Enquiry Information of {{vm.Project.BuyerName}}


KPost Id : {{vm.Project.BuyerKPostId}}

{{vm.Project.ProjectName}}

{{vm.Project.PropertyType}}

{{vm.Project.DOE}}

{{vm.Project.SourceName}}

{{vm.Project.AreaName}}

{{vm.Project.SuperBuiltUpArea}}

{{vm.Project.Gender}}

{{vm.Project.DOB}}

{{vm.Project.Age}}

{{vm.Project.MaritalStatus}}

{{vm.Project.SpouseName}}

{{vm.Project.BloodGroupName}}

{{vm.Project.ReligionName}}

{{vm.Project.CommunityName}}

{{vm.Project.CasteName}}

{{vm.Project.PersonalAdhaarCardNo}}

{{vm.Project.PersonalPANCardNo}}

{{vm.Project.PersonalPassportNo}}

{{vm.Project.AvailingLoan}}

Profession Details

{{vm.Project.PorfessionOrganization}}

{{vm.Project.PorfessionCompanyName}}

{{vm.Project.PorfessionIndustry}}

{{vm.Project.PorfessionDesignation}}

{{vm.Project.PorfessionAnnualIncome}}

{{vm.Project.PorfessionCompanyAddressLine1}}

{{vm.Project.PorfessionCompanyAddressLine2}}

{{vm.Project.PorfessionCountry}}

{{vm.Project.PorfessionState}}

{{vm.Project.PorfessionCity}}

{{vm.Project.PorfessionArea}}

{{vm.Project.PorfessionPincode}}

Project Property Details

{{vm.Project.SourceName}}

{{vm.Project.ProjectName}}

{{vm.Project.ProjectPropertyTypeofProperty}}

{{vm.Project.ProjectPropertyDetailsReQuirement}}

{{vm.Project.ProjectPropertyTransferTo}}

FollowUp
{{$select.selected.ProjectName}}

Project Name is required.
{{$select.selected.BasicLocation}}

Type of Property is required.
{{$select.selected.BasicLocation}}

Type of Property is required.
');\n$templateCache.put('app/pages/CRM/parkingLocationSetup/parkingLocationSetup.html','

{{vm.Header}}

Type of Property is Required

Tier {{tier.id}}
{{ tier.tierName }}

{{vm.Header}}

S.NoProjectType of Parking{{ tier }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.BasicLocation}}{{ row.Tiers[tierName] }}
');\n$templateCache.put('app/pages/CRM/parkingTierSetup/parkingTierSetup.html','

{{vm.Header}}

{{$select.selected.BasicLocation}}
Location Name is required.


    {{$select.selected.TierValue}}
0\">
S.No{{ vm.currentTier }}CodeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.TierValue }} {{row.Code}}
');\n$templateCache.put('app/pages/CRM/projectDetailsSetup/projectDetailsSetup.html','

{{vm.header}}

{{projects.ProjectName}}

{{projects.ProjectType}}

{{projects.AreaName}}

Property Setup

Parking Setup

Project Property Info

Property Price Setup

Tiers Setup

Location Setup

{{$select.selected.BasicLocation}}
{{$select.selected.UnitName}}
{{labels.selectedTier.TierValue}}
{{$select.selected.Value}}
FOR RERA

{{$select.selected.Value}}
{{$select.selected.Value}}
{{$select.selected.Key}}

File Type is Required

S.NoDocument NameFile NameAction
{{ row.key }}
{{ row.key }}{{ row.selectedFile.name }}
{{$select.selected.BasicLocation}}
{{labels.selectedParkingTier.TierValue}}
{{$select.selected.Key}}
S.NoDocument NameFile NameAction
{{ row.key }}
{{$index+1}}{{ row.key }}{{ row.selectedFile.name }}

{{vm.header}}

S.NoType of PropertyCodeSalable AreaLocation FeatureAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}{{row.Code}}{{row.SalableArea}}{{row.LocationFeature}}
');\n$templateCache.put('app/pages/CRM/projectLocationSetup/projectLocationSetup.html','

{{vm.Header}}

Type of Property is Required

Tier {{tier.id}}
{{ tier.tierName }}

{{vm.Header}}

S.NoProjectType of Property{{ tier }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.BasicLocation}}{{ row.Tiers[tierName] }}
');\n$templateCache.put('app/pages/CRM/projectTierSetup/projectTierSetup.html','

{{vm.Header}}

{{$select.selected.BasicLocation}}
Location Name is required.


    {{$select.selected.TierValue}}
0\">
S.No{{ vm.currentTier }}CodeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.TierValue }} {{row.Code}}
');\n$templateCache.put('app/pages/DrawingMaster/DrawingInitiation/drawinginitiation.html','

List Of Uploaded Draft Construction Project Drawing

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
0\">
0\">
S.NoDrawing TitleRevision NumberUploaded ByDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.CurrentRevision}}{{row.UserName}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
');\n$templateCache.put('app/pages/DrawingMaster/drawingSendForApproval/drawingSendForApproval.html','

List of Construction project Drawings Pending for Approval

{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Construction Project is required.

{{vm.DrawingwaitingForApprovalList.length}}

Draft Drawing for Approval

{{vm.DrawingpendingApprovalList.length}}

Draft Drawing Corrected for Approval

{{vm.DrawingRevisedwaitingForApprovalList.length}}

Draft Revised Drawing for Approval

{{vm.DrawingRevisedpendingApprovalList.length}}

Draft Revised Drawing Corrected for Approval

S.NoRevision NumberDrawing TitleDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CurrentRevision}}{{row.DrawingTitle}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
S.NoDrawing TitleRevision NumberUploaded byDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.CurrentRevision}}{{row.UserName}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
S.NoSubject of DrawingRevision NumberDrawing TitleDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingSubject}}{{row.CurrentRevision}}{{row.DrawingTitle}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
S.NoRevision NumberDrawing TitleDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CurrentRevision}}{{row.DrawingTitle}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
');\n$templateCache.put('app/pages/DrawingMaster/DrawingSub/drawingSub.html','
Create Subject of DrawingEdit Subject of Drawing
{{$select.selected.DrawingName}}
Type of Drawing is required.

Subject of Drawing is required

Subject of Drawing code is required

List Of Drawing Subject

S.NoType of DrawingSubject of DrawingSubject of Drawing CodeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingName}}{{row.SubjectDrawingName}}{{row.SubjectDrawingCode}}
');\n$templateCache.put('app/pages/DrawingMaster/DrawingTitle/drawingTitle.html','
Creation Title Of Drawing

Title Of Drawing is required

Title Of Drawing Code is required

List Of Title Of Drawing

S.NoTitle Of Drawing NameTitle Of Drawing CodeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.DrawingTitleCode}}
');\n$templateCache.put('app/pages/DrawingMaster/DrawingUpload/drawingUpload.html','
Draft Construction Project Drawing Upload
{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Construction Project is required.
Select Type and Subject of Drawing


{{$select.selected.DrawingName}}
Type of Drawing is required.
{{$select.selected.SubjectDrawingName}}
Subject of Drawing is required.
Select Location and Tiers


{{$select.selected.BasicLocation}}
Type of Work Location is required.
{{$select.selected.TierValue}}
TireName is required.
Select Title of Drawing


{{$select.selected.DrawingTitle}}
Title of Drawing is required.

Drawing Note is Required

');\n$templateCache.put('app/pages/DrawingMaster/DrawingUpload/projectDrawingRejection.html','

Project Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/DrawingMaster/DrawingUpload/RevisionDrawingRejection.html','

Revision Project Rejection


Rejection Notes is required

');\n$templateCache.put('app/pages/DrawingMaster/DrawingType/drawingType.html','
Create Type of DrawingEdit Type of Drawing

Type of Drawing is required

Type of Drawing code is required

List Of Types of Drawing

S.NoType of Drawing NameType of Drawing CodeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingName}}{{row.DrawingCode}}
');\n$templateCache.put('app/pages/DrawingMaster/MapDrawingwithIOCA/mapDrawingWithIOCA.html','
Map Drawing with IOCA
{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Construction Project is required.
Select IOCA
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}

{{$select.selected.SpecTypeName}}
{{$select.selected.ShortDescription}}
Select Location and Tiers


{{$select.selected.BasicLocation}}
Select Type and Subject of Drawing


{{$select.selected.DrawingName}}
Type of Drawing is required.
{{$select.selected.SubjectDrawingName}}
Subject of Drawing is required.
{{$select.selected.DrawingTitle}}
Title of Drawing is required.

Project Breif is Required

List Of Drawing


{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0\">
0\">
S.NoIOCA DescriptionTitle of DrawingUploaded byDate of UploadAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_ShortDescription }}{{row.DrawingTitle}}{{row.UserName }}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}
');\n$templateCache.put('app/pages/DrawingMaster/ProjectDrawingApproved/drawingapproved.html','

List Of Approved Construction Project Drawing

{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Project is required.
0\">
0 && vm.drawing.selectedProject!=undefined\">
S.NoDrawing TitleRevision NumberUploaded byDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.CurrentRevision}}{{row.UserName}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
');\n$templateCache.put('app/pages/DrawingMaster/ProjectDrawingApproved/drawingSentRevisionNotes.html','

Revision Notes


Notes is required

');\n$templateCache.put('app/pages/DrawingMaster/ProjectDrawingbackforCorrection/drawingbackForCorrection.html','

List Of Drawing For Back For Correction

{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Construction Project is required.
0\">
0\">
S.NoDrawing TitleRevision NumberUploaded byDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.CurrentRevision}}{{row.UserName}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
');\n$templateCache.put('app/pages/DrawingMaster/RevisedProjectDrawingbackforCorrection/ReviseddrawingbackForCorrection.html','

List Of Drawing

{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Construction Project is required.
0\">
0\">
S.NoDrawing TitleRevision NumberUploaded byDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.CurrentRevision}}{{row.UserName}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
');\n$templateCache.put('app/pages/DrawingMaster/UploadRevisedConstructionProjectDrawing/UploadRevisedDrawing.html','

List Of Uploaded Revised Construction Project Drawing

{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Construction Project is required.
0\">
0\">
S.NoDrawing TitleRevision NumberUploaded byDate of UploadStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.CurrentRevision}}{{row.UserName}}{{row.CreatedOn | date:\\'dd-MM-yyyy\\'}}{{row.StatusText}}
');\n$templateCache.put('app/pages/DrawingMaster/ViewGoodForConstructionDrawing/History.html','

Histroy of Drawing

{{$select.selected.CompanyName}}
Name of The Company is required.
{{$select.selected.ProjectName}}
Name of The Project is required.
0\">
0\">
S.NoTitleRevision NumberUpload byApproved byDate of RevisionAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.RevisionNo}}{{row.UserName}}{{row.ApprovedBy}}{{row.ModifiedOn | date:\\'dd-MM-yyyy\\'}}
S.NoTitleRevision Number
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DrawingTitle}}{{row.RevisionNo}}
');\n$templateCache.put('app/pages/Enterprise/Enterprise_DetailsSetup/Enterprise_DetailsSetup.html','

Cerate KPost ID

{{projects.ProjectName}}

{{projects.ProjectType}}

{{projects.AreaName}}

{{$select.selected.BasicLocation}}
{{labels.selectedTier.TierValue}}

List of KPost ID

S.NoKPost IdShort DescriptionIsInternetIsIntranetAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.KPostId}}{{row.ShortDesc}}
');\n$templateCache.put('app/pages/Enterprise/Enterprise_EmployeeMapping/Enterprise_EmployeeMapping.html','

Create Employee Mapping

Select the Post Box
{{$select.selected.BasicLocation}}
{{labels.selectedTier.TierValue}}
Select the Employee
{{$select.selected.DepartmentName}}
{{$select.selected.DesignationName }}
{{$select.selected.FirstName}}

List Of Employee Mapped

S.NoEmployee NameShort DescriptionKPost IdIsInternetIsIntranet
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName}}{{row.ShortDesc}}{{row.KPostId}}
');\n$templateCache.put('app/pages/Enterprise/Enterprise_GroupCreation/Enterprise_GroupCreation.html','

Group Generation


{{labels.selectedTier.TierValue}}

KPost Id : {{vm.Groupcreation.GroupHeadKPostId}} \" ba-panel-class=\"with-scroll panel-success\">

Add Group Members



Advanced Search


S.NoShort DescriptionKPost IdAction
{{row.ShortDesc}}{{row.KPostId}}
');\n$templateCache.put('app/pages/Enterprise/Enterprise_LocationSetup/Enterprise_LocationSetup.html','

Create Organisation Tiers Setup

Company Name is Required

Tier {{tier.id}}
{{ tier.tierName }}

List of Organisation Tiers Setup

S.No{{ tier }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.Tiers[tierName] }}
');\n$templateCache.put('app/pages/Enterprise/Enterprise_SetupTiles/Enterprise_SetupTiles.html','

Organisation KPost ID Generation

Organisation Tiers Setup

Organisation Variable Setup

KPost ID Generation

');\n$templateCache.put('app/pages/Enterprise/Enterprise_TierSetup/Enterprise_TierSetup.html','

List of Organisation Variable Setup

{{$select.selected.BasicLocation}}
Location Name is required.


    {{$select.selected.TierValue}}
0\">
S.No{{ vm.currentTier }}CodeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.TierValue }} {{row.Code}}
');\n$templateCache.put('app/pages/hrModule/accountMaster/account.html','
Create Account
{{$select.selected.CompanyName}}
{{$select.selected.CurrencyTypeName}}
{{$select.selected.TransactionTypeName}}


List Of Account

S.NoCompany NameBalanceCurrency TypeTransaction Type
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CompanyName}}{{row.Balance}}{{row.CurrencyTypeName}}{{row.TransactionTypeName}}
');\n$templateCache.put('app/pages/hrModule/accountTransaction/accountTransaction.html','
Create Account Transacation
{{$select.selected.CompanyName}}
{{$select.selected.TransactionTypeName}}
{{$select.selected.ModeOfPaymentTypeName}}


List Of Account Transaction

S.NoCompanyNameDateDescriptionTransactionAmountTransactionTypeModeofPaymentModeofPaymentDetailsRunningBalanceAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CompanyName}}{{row.Date | date:\\'dd/MM/yyyy\\'}}{{row.Description}}{{row.TransactionAmount}}{{row.TransactionTypeName}}{{row.ModeofPaymentTypeName}}{{row.ModeofPaymentDtls}}{{row.RunningBalance}}
');\n$templateCache.put('app/pages/hrModule/employeeComponent/employeeComponent.html','
Create Employee Component
{{$select.selected.FirstName}}
{{$select.selected.Description}}
{{$select.selected.value}}


List Of Employee Component

S.NoEmployeeDescriptionAmountSalaryTypeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName}}{{row.Description}}{{row.Amount}}{{row.SalaryType}}
');\n$templateCache.put('app/pages/hrModule/employeeSalary/employeeSalary.html','
Create Employee Salary
{{$select.selected.FirstName}}
{{$select.selected.EmpSalaryDetails}}


List Of Employee Salary

S.NoEmployeeNameCurrentMonthSalarySalaryDetailsAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName}}{{row.Balance}}{{row.Salary}}{{row.EmpSalaryDetails}}
');\n$templateCache.put('app/pages/hrModule/leaveMaster/leaveMaster.html','
Create Leavemaster
{{$select.selected.FirstName}}


List Of Leave

S.NoEmployeeLeave ComponentNo of LeaveDaysAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName}}{{row.LeaveComponent}}{{row.NoOfLeaveDays}}
');\n$templateCache.put('app/pages/hrModule/salaryComponents/salaryComponents.html','
Create SalaryComponents
{{$select.selected.TransactionTypeName}}


List Of SalaryComponents

S.NoDescriptionTransaction TypeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Description}}{{row.TransactionTypeName}}
');\n$templateCache.put('app/pages/KPostBox/KPostBoxIdAllocation/kpostBoxIdAllocation.html','
Create KPOSTBOX ID AllocationEdit KPOSTBOX ID Allocation
{{$select.selected.LevelName}}
{{$select.selected.CompanyName}}
{{$select.selected.DepartmentName}}
{{$select.selected.DesignationName}}

KPOSTBOX ID ALLOCATION

S.NoKPOSTBOX IDEmployee NameKPOST NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.KpostBoxId}}{{row.EmployeeName}}{{row.ShortDescription}}
');\n$templateCache.put('app/pages/KPostBox/KPostBoxIdCreation/kpostBoxIdCreation.html','
Create KPOSTBOX ID CreationEdit KPOSTBOX ID Creation
{{$select.selected.LevelName}}
{{$select.selected.CompanyName}}
{{$select.selected.DepartmentName}}
{{$select.selected.DesignationName}}
{{$select.selected.EmpRole + \\' - \\' + $select.selected.FirstName}}

KPOSTBOX ID CREATION

S.NoKPOSTBOX IDShort DescriptionAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.KpostBoxId}}{{row.ShortDescription}}
');\n$templateCache.put('app/pages/KPostBox/KpostContacts/kpostContacts.html','
Create KPOST Contacts

Allocating Contacts to : {{vm.AllocatedTo}}

AllS.NoList of Unallocated Contacts
{{ ($index + 1) + (vm.noOfRows2.value * (vm.currentPage2 - 1)) }}{{row.ShortDescription}}
AllS.NoList of Allocated Contacts
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ShortDescription}}
');\n$templateCache.put('app/pages/KPostBox/KpostGroup/kpostGroup.html','

Creation of KPOST Group

Selecte a project picture
  
{{row.ShortDescription}}
S.NoGroup NameNumber of Member
{{($index + 1) + (vm.noOfRows.value * (vm.currentPage- 1))}}{{row.GroupName}}{{row.GroupMembersCount}}
');\n$templateCache.put('app/pages/KPostBox/showContactByUser/showContactByUser.html','

My Kpost Contacts

AllMy Contacts
{{row.ShortDescription}}
');\n$templateCache.put('app/pages/labourMaster/labourCategory/labourCategory.html','
Create Category of LabourEdit Category of Labour

Labour Category is required

List Of Category of Labours



CodeCategory of LabourAction
{{row.LabrCategoryCode}}{{row.LabrCategoryName}}
');\n$templateCache.put('app/pages/labourMaster/labourType/labourType.html','
Create Type of labourModify Type of labour
{{$select.selected.LabrCategoryName}}
Category of Labour is required.

Type of Labour is required

{{$select.selected.Name}}
Non Std Units is required.

List Of Type of Labours



{{$select.selected.LabourCategory.LabrCategoryName}}
0 && vm.FilterLabrCategory!=undefined\">
0 && vm.FilterLabrCategory!=undefined\">
0 && vm.FilterLabrCategory!=undefined\">
CodeType of LabourUOMAction
{{row.LabrTypeCode}}{{row.LabourTypeName}}{{row.UOM_Master.Name}}
');\n$templateCache.put('app/pages/machineryMaster/categoryOfMachinery/categoryofmachinery.html','
Create Category Of MachineryEdit Category Of Machinery
{{$select.selected.LOB_MachName}}

Line of Business is required.
{{$select.selected.CountryName}}

Country Name is required.

Category of Machinery is required

List Of Category Of Machineries




{{$select.selected.LOB_MachName}}
{{$select.selected.CountryName}}
0 && vm.selectedCountryFilter!=undefined\">
0 && vm.selectedCountryFilter!=undefined\">
0 && vm.selectedCountryFilter!=undefined\">
CodeCategory Of MachineryAction
{{row.CategoryofMachineryCode}}{{row.CategoryofMachineryName}}
');\n$templateCache.put('app/pages/machineryMaster/ItemofMachinery/itemofmachinery.html','

Create of Item Of Machinery

Edit of Item Of Machinery

{{$select.selected.LOB_MachName}}

Line of Business is required.
{{$select.selected.CountryName}}

Country is required.
{{$select.selected.CategoryofMachineryName}}

Category of Machinery is required.
{{$select.selected.SubCategoryName}}

SubCategory of Machinery is required.
{{$select.selected.MachTypeName}}

Type Of Machinery is required.
{{$select.selected.TypeOfAttributeName}}

Type of Item is required.
Verified
  • {{ variable.VariableName }}
{{$item.Name}}
Non Std Units is required.

List Of Item Of Machineries

S.NoCodeShort DescriptionDetail DescriptionUOMStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.Code }}{{ row.ShortDescription }}{{ row.LongDescription }}{{ row.uomName }}{{ row.StatusText }}
');\n$templateCache.put('app/pages/machineryMaster/lobMachinery/lobMachinery.html','
Create Line of BusinessEdit Line of Business

Line of Business is required

code is required

List Of LOB Machinery

CodeLOB MachineryAction
{{row.LOB_MachCode}}{{row.LOB_MachName}}
');\n$templateCache.put('app/pages/machineryMaster/machineryAttribute/machineryattribute.html','

Create of Attribute of Machinery

Edit of Attribute of Machinery

{{$select.selected.LOB_MachName}}
Line of Business is required.
{{$select.selected.CountryName}}
Country is required.
{{$select.selected.CategoryofMachineryName}}
Category of Machinery is required.
{{$select.selected.SubCategoryName}}
SubCategory of Machinery is required.
{{$select.selected.MachTypeName}}
Type of Machinery is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.

Attribute Name is required

List of Attribute of Machinery

S.NoDescription of AttributeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Name}}
');\n$templateCache.put('app/pages/machineryMaster/machinerySubCategory/machinerySubCategory.html','
Create SubCategory Of MachineryEdit SubCategory Of Machinery
{{$select.selected.LOB_MachName}}

Line of Business is required.
{{$select.selected.CountryName}}

Country is required.
{{$select.selected.CategoryofMachineryName}}

Category of Machinery is required.

SubCategory of Machinery is required

List Of SubCategory Of Machineries



{{$select.selected.LOB_MachName}}
{{$select.selected.CountryName}}
{{$select.selected.COM_Name}}
0 && vm.selectedCategoryFilter!=undefined\">
0 && vm.selectedCategoryFilter!=undefined\">
0 && vm.selectedCategoryFilter!=undefined\">
CodeSubCategory of MachineryAction
{{row.MachSubCategoryCode}}{{row.SubCategoryName}}
');\n$templateCache.put('app/pages/machineryMaster/machineryType/machineryType.html','
Create Type Of MachineryEdit Type Of Machinery
{{$select.selected.LOB_MachName}}

Line of Business is required.
{{$select.selected.CountryName}}

Country is required.
{{$select.selected.CategoryofMachineryName}}

Category Of Machinery is required.
{{$select.selected.SubCategoryName}}

SubCategory Of Machinery is required.

Type Of Machinery is required

List Of Type Of Machineries



{{$select.selected.LOB_MachName}}
{{$select.selected.CountryName}}
{{$select.selected.COM_Name}}
{{$select.selected.SubCategoryName}}

0 &&vm.selectedSubCategoryFilter!=undefined\">

0 &&vm.selectedSubCategoryFilter!=undefined\">
0 &&vm.selectedSubCategoryFilter!=undefined\">
CodeType of MachineryAction
{{row.MachTypeCode}}{{row.MachTypeName}}
');\n$templateCache.put('app/pages/machineryMaster/variable/machineryVariable.html','

Create Variable Of Machinery

{{$select.selected.LOB_MachName}}

Line Of Business is required.
{{$select.selected.CountryName}}

Country is required.
{{$select.selected.CategoryofMachineryName}}

Category Of Machinery is required.
{{$select.selected.SubCategoryName}}

SubCategory Of Machinery is required.
{{$select.selected.MachTypeName}}

Type Of Machinery is required.
{{$select.selected.TypeOfAttributeName}}

Type of Item is required.
    {{$select.selected}}

List Of Combinations Of Machinery

S.No{{Attribute.Name }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row[Attribute.Name] }}
');\n$templateCache.put('app/pages/materialManagement/InitialStock/initialstock.html','

Initial STOCK

{{$select.selected.CompanyName}}
Company is required.
{{$select.selected.StoreName}}
Store Location is required.
{{$select.selected.ProjectName}}
Project is required.
{{$select.selected.StoreTypeName}}
TypeStore is required.
{{$select.selected.StoreNo}}
StoreNo is required.

Select Item of Material


 Word Search
 Advance Search

{{$select.selected.IOM_Description}}
IOM is required.

{{$select.selected.mCatName}}
CategoryofMaterial is required.
{{$select.selected.mSubCatName}}
SubCategoryofMaterial is required.
{{$select.selected.mTypeName}}
TypeofMaterial is required.
{{$select.selected.IOM_Description}}
IOM is required.
{{vm.stock.selectedWSIOM.UOM_Name}}
{{vm.stock.selectedASIOM.UOM_Name}}

Initial Stock in Hand


 Nill Stock
 Stock Exist


Qty is required


Note is required



S.NoItem of Material DescriptionUoMQtyNoteEntered byEntered onAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOM_Description}}{{row.UoM}}{{row.StockQty | number : 2}}
{{row.CreatedBy}}{{row.CreatedOn.now() | date:\\'dd-MM-yyyy\\'}}
');\n$templateCache.put('app/pages/materialManagement/MaterialAcceptanceNote/MAN.html','
Preparation of Material Accepatance Note
Material Received at is required.
Name of the Project is required.

Store Location
Store Type is required.
Store No is required.
SupplierName is required.
MRN No is required.
Item Acceptance Note No is required.

List Of Materials

S.NoZUCONItem Of Material DescriptionUOMTotal Received QtyAcceptance QtyRejected QtyAction
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MCode}}{{row.ShortDescription}}{{row.MUnit}}{{row.RecQty | number : 2}}
{{row.RejectedQty | number : 2}}


List of MRN

{{$select.selected.ProjectName}}
0 && vm.selectedProjectFilter!=undefined\">
0 && vm.selectedProjectFilter!=undefined\">
S.NoMRN DateMRN NOSupplier NamePrepared ByAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MRNDate | date:\\'dd/MM/yyyy\\'}}{{row.MRNNumber}}{{row.SupplierName}}{{row.FirstName}}
');\n$templateCache.put('app/pages/materialManagement/MaterialIssue/MI.html','

Material Issue

Store Location
Material Requisition Details
Material Issue Details
{{$select.selected.IssueTypeName}}
Material Issued To is required.
{{$select.selected.SiteSupName}}
{{vm.mi.selectedIssue.IssueTypeName}} Name is required.
{{$select.selected.ContractorName}}
{{vm.mi.selectedIssue.IssueTypeName}} Name is required.
{{$select.selected.ReceiverName}}
{{vm.mi.selectedIssue.IssueTypeName}} Name is required.
0\">

MRS Prepared By {{vm.mi.FirstName}}

S.NoZUCONPictureItem Of Material DescriptionUoMTotal Requested QtyQty Issued So FarIssued QtyActual Issue QtyBalance QtyAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOM_Code}}{{row.ShortDescription}}{{row.MUnit}}{{row.ReqQty | number : 2}}{{row.IssQty | number : 2}}{{row.IssuedQty | number : 2}}{{row.BalQty | number : 2}}
S.NoIndent NoWork Location DetailsIOCA DescriptionBoq QtyMaterial Qty
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{i.IndentNo}}{{i.LocationDetail}}{{i.IOCA_ShortDescription}}{{i.BoqQty | number : 2}}{{i.IOM_Qty | number : 2}}


0\">

History

S.NoMI DateMI NoIssued Qty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MRNDate}}{{row.MRNNumber}}{{row.RecQty}}

List of Material Requisition

{{$select.selected.ProjectName}}
{{$select.selected.ShortDescription}}

0 && vm.selectedMaterialFilter!=undefined\">
0 && vm.selectedMaterialFilter!=undefined\">
S.NoDateRequisition NORequest ByDesignationAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MRNDate | date:\\'dd/MM/yyyy\\'}}{{row.RequestNo}}{{row.RequestBy}}{{row.DesignationName}}
');\n$templateCache.put('app/pages/materialManagement/MaterialReceiptNote/MRN.html','
Preparation of Material Receipt Note
{{$select.selected.CompanyName}}
Company Name is required.
{{$select.selected.ProjectName}}
Project is required.
{{$select.selected.StoreTypeName}}
StoreType is required.
{{$select.selected.StoreNo}}
StoreNo is required.
{{$select.selected.ReguestForName}}
Prepare MRN is required.
{{$select.selected.TypeOfPurchaseName}}
Type of Purchase is required.
MRN No is required.
{{$select.selected.SupplierName}}
Supplier Name is required.
{{$select.selected.PurchaseOrderNumber}}
Purchase Order No is required.
{{$select.selected.SupplierDocTypeName}}
Type of Supplier Document is required.
Supplier Invoice/DC No is required.

Invoice/DC Date is required.


List Of Materials as in PO
S.NoZUCONItem Of Material DescriptionUOMPacking UnitPo QtyQty Received So farReceived QtyTotal Received QtyBalance QtyExcess QtyAction
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Mid}}{{row.IOMShortDescription}}{{row.Munit}}{{row.PackingUnit}}{{row.POQTY}}{{row.RECQTY}}
{{row.TOTQTY}}{{row.BalanceQty}}{{row.ExcessQty | number : 2}}

0\">
History
S.NoMRN DateMRN NoReceived Qty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MRNDate | date:\\'dd-MM-yyyy\\'}}{{row.MRNNumber}}{{row.RecQty | number : 2}}




');\n$templateCache.put('app/pages/materialManagement/MaterialReconciliation/materialReconciliation.html','

Material Reconciliation

{{$select.selected.CompanyName}}
{{$select.selected.StoreName}}
{{$select.selected.ProjectName}}
{{$select.selected.StoreTypeName}}
{{$select.selected.StoreNo}}
{{$select.selected.TypeName}}

Select Item of Material

{{$select.selected.mCatName}}
{{$select.selected.mSubCatName}}
{{$select.selected.mTypeName}}
{{$select.selected.IOM_Description}}
{{vm.stock.selectedASIOM.UOM_Name}}


RECONCILIATION STATEMENT FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'MMMM\\' | uppercase}}

RECONCILIATION STATEMENT FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'yyyy\\'}}

RECONCILIATION STATEMENT FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'MMMM\\' | uppercase}} TO {{vm.stock.To | date : \\'MMMM\\' | uppercase}}

S.NoItem of Material CategoryUoMTotal Qty received tillTheoritical Consumption QtyTotal Acctual Qty Issued TillExcess or Less ConsumedExcess or Less Consumed in %
{{key}}
{{row.SNo}}{{row.Description}}{{row.UOM}}{{row.TotalQty | number :2}}{{row.ThclConQty | number :2}}{{row.TotActlQtyIssue | number :2}}{{(row.ExcessOrLessCon) | number :2}}{{row.ExsOrLsConInPerctg | number :2}} %

No Data Found

');\n$templateCache.put('app/pages/materialManagement/MaterialRequirementSlip/MRS.html','

Preparation of Material Requisition Slip

Modify Preparation of Material Requisition Slip

{{$select.selected.ProjectName}}
{{$select.selected.ReguestForName}}
{{$select.selected.ReguestTypeName}}
{{$select.selected.FieldofConstructionName}}



Store Detail

{{$select.selected.StoreTypeName}}
{{$select.selected.StoreNo}}

Select IOCA

{{$select.selected.ShortDescription}}

Select Location


Select Item of Material


0 && vm.mrs.SelectedItem.length > 0\">

Selected List Of Item Of Materials

0 && vm.mrs.SelectedItem.length > 0\">
S.NoZUCONPictureItem Of Material DescriptionUoMMaterial QtyBoq QtySpecification SheetAction
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MCode}}{{row.MShortDescription}}{{row.Cunit}}{{row.MQty | number : 2}}{{row.BoqQty | number : 2}}
S.NoIndent NoWork Location DetailsIOCA DescriptionBoq Qty
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{i.IndentNo}}{{i.LocationDetail}}{{i.IOCAShortDescription}}{{i.IOCAMQty | number : 2}}

List of Preparation of Material Requirement Slip

{{$select.selected.ProjectName}}
0\">
S.NoMRS.NoRequest ForMaterial CountStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.MRSNo}}{{row.RequestFor}}{{row.MaterialCount}}{{row.Status}}
');\n$templateCache.put('app/pages/materialManagement/StockStatement/StockStatement.html','

STOCK Statement

{{$select.selected.CompanyName}}
Company is required.
{{$select.selected.StoreName}}
Store Location is required.
{{$select.selected.ProjectName}}
Project is required.
{{$select.selected.StoreTypeName}}
Type Store is required.
{{$select.selected.StoreNo}}
StoreNo is required.
{{$select.selected.TypeName}}
Statement is required.
Category of Material is required.
SubCategory of Material is required.
Type of Material is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.


STOCK STATEMENT FOR THE {{vm.stockstate.selectedStatement.Type | uppercase}} OF {{vm.stockstate.From | date : \\'dd/MM/yyyy\\'}}

STOCK STATEMENT DETAIL FOR THE {{vm.stockstate.selectedStatement.Type | uppercase}} OF {{vm.stockstate.From | date : \\'MMMM\\' | uppercase}}

STOCK STATEMENT DETAIL FOR THE {{vm.stockstate.selectedStatement.Type | uppercase}} OF {{vm.stockstate.From | date : \\'yyyy\\'}}

STOCK STATEMENT DETAIL FOR THE {{vm.stockstate.selectedStatement.Type | uppercase}} OF {{vm.stockstate.From | date : \\'dd/MM/yyyy\\'}} TO {{vm.stockstate.To | date : \\'dd/MM/yyyy\\'}}

MATERIAL STOCK DETAIL FOR THE {{vm.stockstate.selectedStatement.Type | uppercase}} OF {{vm.stockstate.From | date : \\'MMMM\\' | uppercase}} TO {{vm.stockstate.To | date : \\'MMMM\\' | uppercase}}

S.NoItem of MaterialUoMOpening StockReceived QtyIssued QtyClosing StockValue of Closed Stock in RS
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ShortDescription}}{{row.Uom}}{{row.OpeningStockQty}}{{row.ReceivedQty}}{{row.IssuedQty}}{{row.ClosingStockQty}}{{row.ClosingStockQtyValue}}
');\n$templateCache.put('app/pages/materialManagement/storeLocation/StoreLocationSetup.html','
Create Store Location SetupModify Store Location Setup
{{$select.selected.StoreName}}
Store is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.StoreTypeName}}


List of Stores

No Data Found

0\">
S.NoStore atName of the ProjectType of StoreStore NoCreatedByCreatedOnAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.StoreName}}{{row.ProjectName}}{{row.StoreTypeName}}{{row.StoreNo}}{{row.FirstName}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/materialManagement/StoreStaffAllocation/StoreStaffAllocation.html','
Create Store Staff AllocationModify Store Staff Allocation
{{$select.selected.StoreName}}
Store is required.
{{$select.selected.ProjectName}}
Project is required.
{{$select.selected.StoreTypeName}}
StoreType is required.
{{$select.selected.StoreNo}}
StoreNo is required.
Allocation of StaffModify Allocation of Staff
{{$select.selected.DepartmentName}}
Department is required.
{{$select.selected.DesignationName}}
Designation is required.
{{$select.selected.FirstName}}
Staff is required.
S.NoStore NoDepartmentDesignationStaffName
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.StoreNo}}{{row.DepartmentName}}{{row.DesignationName}}{{row.StaffName}}

List of Store Staff Allocation Details

');\n$templateCache.put('app/pages/materialMaster/attributeMat/attributeMat.html','

Create Attribute Of Material

Edit Attribute Of Material

{{$select.selected.LOB_MatName}}
Line Of Business is required.
{{$select.selected.CountryName}}
Country is required.
{{$select.selected.MaterialCategoryName}}
Category Of Material is required.
{{$select.selected.MaterialSubCategoryName}}
SubCategory Of Material is required.
{{$select.selected.MaterialTypeName}}
Type Of Material is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.

Attribute Name is required

List Of Attribute Of Material

S.NoDescription Of AttributeAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Name}}
');\n$templateCache.put('app/pages/materialMaster/itemofMaterial/itemofmaterial.html','

Create Item of Material

Edit Item of Material

{{$select.selected.LOB_MatName}}

Line Of Business is required.
{{$select.selected.CountryName}}

Country is required.
{{$select.selected.MaterialCategoryName}}

Category of Material is required.
{{$select.selected.MaterialSubCategoryName}}
SubCategory of Material is required.
{{$select.selected.MaterialTypeName}}
Type of Material is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
Verified
  • {{ variable.VariableName }}
*
{{$select.selected.Name}}
Type of Dimension is required.
*
{{$select.selected.UnitName}}
Measurement Type is required.
{{$select.selected.Name}}
Measurement Type is required.
Kg/{{vm.selectedUnit.UnitName}}
{{$select.selected.Name}}
S.NoUOMUnit ValueAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.Name }}{{ row.UnitValue }}

List Of Item Of Materials

S.NoCodeShort DescriptionDetailed DescriptionUOMStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row.Code }}{{ row.ShortDescription }}{{ row.LongDescription }}{{ row.UnitName }}{{ row.StatusText }}
');\n$templateCache.put('app/pages/materialMaster/lobMaterial/lobMaterial.html','
Create Line Of Business MaterialEdit Line Of Business Material

LOB Material Name is required


Code is required

List Line Of Business Materials

CodeLOB MaterialAction
{{row.LOB_MatCode}}{{row.LOB_MatName}}
');\n$templateCache.put('app/pages/materialMaster/materialCategory/materialcategory.html','
Create Category Of MaterialEdit Category Of Material
{{$select.selected.LOB_MatName}}

Line of Business is required.
{{$select.selected.CountryName}}

Country Name is required.

Category Of Material is required

List Of Category Of Materials


{{$select.selected.LOB_MatName}}
{{$select.selected.CountryName}}
0 && vm.selectedCountryFilter!=undefined\">
0 && vm.selectedCountryFilter!=undefined\">
0 && vm.selectedCountryFilter!=undefined\">
CodeCategory Of MaterialAction
{{row.MaterialCategoryCode}}{{row.MaterialCategoryName}}
');\n$templateCache.put('app/pages/materialMaster/materialSubCategory/materialSubCategory.html','
Create SubCategory Of MaterialEdit SubCategory Of Material
{{$select.selected.LOB_MatName}}
Line Of Business is required.
{{$select.selected.CountryName}}
Country is required.
{{$select.selected.MaterialCategoryName}}
Category Of Material is required.

SubCategory Of Material is required

List Subcategory Of Materials

{{$select.selected.LOB_MatName}}
{{$select.selected.CountryName}}
{{$select.selected.MaterialCategoryName}}
0 && vm.selectedCategoryFilter!=undefined\">
0 && vm.selectedCategoryFilter!=undefined\">
0 && vm.selectedCategoryFilter!=undefined\">
CodeSubCategory Of MaterialAction
{{row.MaterialSubCategoryCode}}{{row.MaterialSubCategoryName}}
');\n$templateCache.put('app/pages/materialMaster/materialType/materialtype.html','
Create Type Of MaterialEdit Type Of Material
{{$select.selected.LOB_MatName}}
Line Of Business is required.
{{$select.selected.CountryName}}
Country is required.
{{$select.selected.MaterialCategoryName}}
Category Of Material is required.
{{$select.selected.MaterialSubCategoryName}}
SubCategory Of Material is required.

Type Of Material is required

List Type Of Materials


{{$select.selected.LOB_MatName}}
{{$select.selected.CountryName}}
{{$select.selected.MaterialCategoryName}}
{{$select.selected.MaterialSubCategoryName}}
0 && vm.selectedSubCategoryFilter!=undefined\">
0 && vm.selectedSubCategoryFilter!=undefined\">
0 && vm.selectedSubCategoryFilter!=undefined\">
CodeType of MaterialAction
{{row.MaterialTypeCode}}{{row.MaterialTypeName}}
');\n$templateCache.put('app/pages/materialMaster/variable/materialvariable.html','

Variable Of Material

{{$select.selected.LOB_MatName}}

Line Of Business is required.
{{$select.selected.CountryName}}

Country is required.
{{$select.selected.MaterialCategoryName}}

Category Of Material is required.
{{$select.selected.MaterialSubCategoryName}}

SubCategory Of Material is required.
{{$select.selected.MaterialTypeName}}

Type Of Material is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
    {{$select.selected}}

List Of Combinations Of Variables

S.No{{Attribute.Name }}Action
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ row[Attribute.Name] }}
');\n$templateCache.put('app/pages/Procurement/PoTermsAndCondition/poTermsAndCondition.html','
Create P.O Terms And ConditionEdit P.O Terms And Condition

PREPARATION OF P.O Terms And Condition

S.NoRFQ Template ForPrepared ByPrepared OnAttached TemplateAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Title}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/Procurement/PreparationofRfqMaterial/cancellationNote.html','

Cancellation Note


Cancellation Notes is required

');\n$templateCache.put('app/pages/Procurement/PreparationofRfqMaterial/cancelledRfqMaterial.html','

Cancelled Preparation of RFQ Material

S.NoRFQ NoRFQ TitlePrepared ByPrepared OnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.rfqNo}}{{row.rfqTitle}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd-MM-yyyy\\'}}Cancelled
');\n$templateCache.put('app/pages/Procurement/PreparationofRfqMaterial/draftPreparationofRfqMaterial.html','

Draft Preparation of RFQ Material

S.NoRFQ NoRFQ TitlePrepared ByPrepared OnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.rfqNo}}{{row.rfqTitle}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd-MM-yyyy\\'}}Draft
');\n$templateCache.put('app/pages/Procurement/PreparationofRfqMaterial/PendingForApproval.html','

Pending For Approval of RFQ Material

S.NoRFQ NoRFQ TitlePrepared ByPrepared OnStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.rfqNo}}{{row.rfqTitle}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd-MM-yyyy\\'}}Send For Approval
');\n$templateCache.put('app/pages/Procurement/PreparationofRfqMaterial/preparationofRfqMaterial.html','
Create Preparation of RFQ MaterialView Preparation of RFQ Material
{{$select.selected.CompanyName}}
{{$select.selected.RfqFor}}
{{$select.selected.ProjectName}}

{{vm.rfq.rfqNo}}
{{vm.rfq.rfqTitle}}
{{vm.rfq.PreparedBy}}
{{vm.rfq.PreparedOn | date:\\'dd-MM-yyyy\\'}}


0 && vm.isAdd\">

List Of Item Of Materials

S.NoZUCONPictureItem Of Material DescriptionUoMMaterial QtyDocument
  {{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Code}}{{row.IOM_ShortDescription}}{{row.Unit}}{{row.IndentQuantity}}
S.NoIndent NoWork Location DetailsIOCA DescriptionBOQ QtyMaterial Qty
  {{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{i.IndentNo}}{{i.LocationDtl}}{{i.ShortDescription}}{{i.PowQty}}{{i.PowQty_Updated}}

0 && vm.isView\">

List Of Item Of Materials

S.NoZUCONPictureItem Of Material DescriptionUoMMaterial QtyDocument
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Code}}{{row.IOM_ShortDescription}}{{row.Unit}}{{row.IndentQuantity}}
S.NoIndent NoWork Location DetailsIOCA DescriptionBOQ QtyMaterial Qty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{i.IndentNo}}{{i.LocationDtl}}{{i.ShortDescription}}{{i.PowQty}}{{i.PowQty_Updated}}

0 && vm.isAdd\">
{{$select.selected.CountryName}}
{{$select.selected.RfqTemplateTitle}}
');\n$templateCache.put('app/pages/Procurement/PreparationofRfqMaterial/viewPreparationofRfqMaterial.html','

Approved Preparation of RFQ Material

S.NoRFQ NoRFQ TitlePrepared ByPrepared OnAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.rfqNo}}{{row.rfqTitle}}{{row.PreparedBy}}{{row.PreparedOn | date:\\'dd-MM-yyyy\\'}}
');\n$templateCache.put('app/pages/Procurement/RfqTermsAndCondition/rfqTermsAndCondition.html','
Create RFQ Terms And ConditionEdit RFQ Terms And Condition
{{$select.selected.CountryName}}
RFQ Type is required.
{{$select.selected.TemplateFor}}
RFQ Template For is required.
{{$select.selected.MaterialSubCategoryName}}
SubCategory Of Material is required.
{{$select.selected.MaterialTypeName}}
Type Of Material is required.
RFQ Template Title is required.

PREPARATION OF RFQ Terms And Condition

S.NoRFQ Template ForPrepared ByPrepared OnAttached TemplateAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.RfqTemplateTitle}}{{row.PreparedBy}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}
');\n$templateCache.put('app/pages/Procurement/supplierRateComparision/supplierRateComparision.html','
Create Supplier Rate Comparision

{{vm.rfq.CompanyName}}

{{vm.rfq.ProjectName}}

{{vm.rfq.rfqNo}}

{{vm.rfq.RfqTitle}}

Before 06.00pm on {{vm.rfq.lastDate | date:\\'dd-MM-yyyy\\'}}

0\" style=\"overflow-x:scroll\">
List Of Item Of Materials
S.NoZUCONPictureItem Of Material DescriptionUoMMaterial Qty
Current Rate
{{sup.SupplierName}}
Rate/Unit
Amount Including
GST
Rate/Unit
Amount Including
Discount & GST
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Code}}{{row.ShortDescription}}{{row.Unit}}{{row.MaterialQty}}No Rate
{{row.SupplierDetailsList[0].CurrentRate | currency:\\'₹\\'}}
{{row.SupplierDetailsList[0].TaxableAmount | currency:\\'₹\\'}}
{{sup.UnitRate | currency:\\'₹\\'}}
{{sup.TotalRate | currency:\\'₹\\'}}
Total AmountNo Rate
{{vm.TaxAmt | currency:\\'₹\\'}}
{{sum | currency:\\'₹\\'}}

Supplier Rate Comparision

S.NoRFQ NoRFQ TitleProjectLastStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.rfqNo}}{{row.RfqTitle}}{{row.ProjectName}}{{row.lastDate | date:\\'dd-MM-yyyy\\'}}Approved Pending
');\n$templateCache.put('app/pages/Procurement/SupplierRateQuote/supplierRateQuote.html','
Create Supplier Rate QuoteRequest For Quotation

{{vm.rfq.CompanyName}}

{{vm.rfq.ProjectName}}

{{vm.rfq.rfqNo}}

{{vm.rfq.RfqTitle}}

Before 06.00pm on {{vm.rfq.lastDate | date:\\'dd-MM-yyyy\\'}}

{{vm.rfq.QuotationNo}}

0\" style=\"overflow-x:scroll\">
List Of Item Of Materials
S.NoZUCONPictureItem Of Material DescriptionUoMMaterial QtyRate/UnitDiscountTaxable ValueCGSTSGSTIGSTAmount
in %
in Rupees
in %
in Rupees
in %
in Rupees
in %
in Rupees
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Code}}{{row.ShortDescription}}{{row.unit}}{{row.MaterialQty}}
{{row.Discount_inRupees | currency:\\'₹\\'}}
{{row.TaxableValues | currency:\\'₹\\' }}
{{$select.selected.GSTPercentage}}
{{row.cgst_inRupees | currency:\\'₹\\' }}
{{$select.selected.GSTPercentage}}
{{row.sgst_inRupees | currency:\\'₹\\' }}
{{$select.selected.GSTPercentage}}
{{row.igst_inRupees | currency:\\'₹\\' }}
{{row.TotalRate | currency:\\'₹\\'}}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}

0\">

Supplier Rate Quote

S.NoRFQ NoRFQ TitleProjectLastAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.rfqNo}}{{row.RfqTitle}}{{row.ProjectName}}{{row.lastDate | date:\\'dd-MM-yyyy\\'}}
');\n$templateCache.put('app/pages/PlanningReport/BudgetReport/BudgetReport.html','

Budget Report

{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.BudgetType}}
Budget For is required
{{$select.selected.PlanType}}
Select For is required
{{$select.selected.PeriodTypeName}}
Type of Budget is required
{{$select.selected.ViewBudgetType}}
View Budget By is required
{{$select.selected.RateBasedonName}}
Rate Based On is required

Select Location & Tiers

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}

Select Item of Construction Activity

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportTypeName}}
View Report By is required
');\n$templateCache.put('app/pages/projectManagementandAppraisal/estimationReport/estimationReport.html','

Estimation Report

{{$select.selected.CompanyName}}
Name of the Company is required.
Project is required.
{{$select.selected.estimationform}}
Estimation From is required.
{{$select.selected.EstimationReportbased}}
EstimationReport Name is required.
{{$select.selected.EstimationName}}
Type of Estimation is required.

Select Item of Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.
{{$select.selected.Description}}
Description in Report is required.

Select Location & Tiers

Type of Work Location is required.
{{$select.selected.TierValue}}

Select Location & Tiers

Type of Work Location is required.
{{$select.selected.TierValue}}

Select Item of Construction Activity

Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.
{{$select.selected.Description}}
Description in Report is required.
0 && vm.estimationreport.selectedestimation.EstimationId < 12\">
{{$select.selected.RateName}}
Type of Rate is required.
0\">
{{$select.selected.WorkOrderTypeName}}
Estimation Cost Based on is required.
{{$select.selected.ContractorName}}
Contractor Name is required.
{{$select.selected.WorkOrderNo}}
Work Order is required.
{{$select.selected.TypeofQuantityName}}
Type of Quantity is required.
{{$select.selected.MethodName}}
Mehtod is required.
{{$select.selected.TierName}}
Mehtod is required.
{{$select.selected.ActivityType}}
Construction Activity Type is required.
');\n$templateCache.put('app/pages/projectManagementandAppraisal/rateAnalysis/rateAnalysis.html','

Rate Analysis

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
Select Activity
{{$select.selected.FieldofConstructionName}}
Country Name is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.
{{$select.selected.Description}}
Description in Report is required.
{{$select.selected.RateName}}
Rate Name is required.
{{$select.selected.TypeRateName}}
Rate based on is required.
{{$select.selected.RateAnalysisName}}
Rate Analysis Based on is required.
{{$select.selected.ContractorName}}
Contractor Name is required.
{{$select.selected.WorkOrderNo}}
Work Order is required.


');\n$templateCache.put('app/pages/projectManagementandAppraisal/RequirementReport/requirementReport.html','

Requirement Report

{{$select.selected.CompanyName}}
Name of the Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.ReportFor}}
Report For is required
{{$select.selected.RequirementName}}
Requirement From is required
{{$select.selected.RequirementBasedName}}
Requirement Based On is required
{{$select.selected.DesignationName}}
ReportFor On is required
{{$select.selected.CategoryName}}
Contractor Category is required
{{$select.selected.EmployeeName}}
Name On is required
{{$select.selected.ContractorName}}
Name On is required

Select Report Period

{{$select.selected.PeriodTypeName}}
Report Period is required.

{{$select.selected.LabrCategoryName}}
Labour Category Name is required.
{{$select.selected.LabourTypeName}}
Type of Labour is required.
{{$select.selected.LOB_MatName}}
Line of Business is required.
{{$select.selected.MaterialCategoryName}}
Category of Material is required.
{{$select.selected.MaterialSubCategoryName}}
Subcategory of Material is required.
{{$select.selected.MaterialTypeName}}
Type of Material is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
Item of Material is required.
{{$select.selected.LOB_MachName}}
Line of Business is required.
{{$select.selected.COM_Name}}
Category of Machinery is required.
{{$select.selected.SubCategoryName}}
Subcategory of Machinery is required.
{{$select.selected.MachTypeName}}
Type of Machinery is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
{{$select.selected.ShortDescription}}
IOM ShortDescription is required.
{{$select.selected.CategoryOfWork}}
Category of Consumable is required.
{{$select.selected.TypeName}}
Type of Consumable is required.

Construction Activity

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}
{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}

Construction Activity

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
ShortDescription is required.
{{$select.selected.ReportMethod}}
Report Method is required
{{$select.selected.TierName}}
Report Type is required
{{$select.selected.WorkName}}
Work Status is required
{{$select.selected.Description}}
Description in Report is required.

');\n$templateCache.put('app/pages/RFQ/rfqComparision/rfqComparision.html','

List of Draft Quotation Comparison

{{ companyName }}

{{ projectName }}
0, resource: (rfq.NoOfContractor - rfq.Pending) <= 0, gk: (rfq.NoOfContractor === 0)}\">

{{ rfq.Subject }}

{{ rfq.Title }}

{{ rfq.RfqNo }}
No of Contractors - {{ rfq.NoOfContractor }}
Quotation Received - {{ rfq.QuotationRecived }}, Pending - {{ rfq.Pending }}

');\n$templateCache.put('app/pages/Report/WorkApprovedStatusReport/workStatusReport.html','

Work Approve Report

{{$select.selected.CompanyName}}
Name of the Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.WorkStatusTypeName}}
Type of Work Status is required
{{$select.selected.RequirementBasedName}}
Work Approve Report Based On is required
{{$select.selected.DesignationName}}
Report For is required
{{$select.selected.CategoryName}}
Contractor Category is required
{{$select.selected.EmployeeName}}
Name On is required
{{$select.selected.ContractorName}}
Name On is required

Select Report Period

{{$select.selected.PeriodTypeName}}
Report Period is required.

Select Construction Activity

{{$select.selected.FieldofConstructionName}}
Field of Construction is required.
Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Item is required.
Description is required.
{{$select.selected.ReportTypeName}}
Report Type is required

Select Location Details

{{$select.selected.BasicLocation}}
Type of work Location is required.
{{$select.selected.TierValue}}
');\n$templateCache.put('app/pages/RFQ/rfqContractor/contractorNote.html','

Contractor Note


Notes is required

');\n$templateCache.put('app/pages/RFQ/rfqContractor/rfqContractor.html','

{{rfq.CompanyName}}

Rfq for {{rfq.Title}} {{rfq.RfqNo}}

{{rfq.CompanyName}}

Rfq for {{rfq.Title}} {{rfq.RfqNo}}

{{rfq.CompanyName}}

Rfq for {{rfq.Title}} {{rfq.RfqNo}}

{{rfq.CompanyName}}

Rfq for {{rfq.Title}} {{rfq.RfqNo}}

List Of schedule of ioca

S.NoType of CAIOCA CodeDetailed DescriptionUomTotal QtyRate Per UnitContract AmountGST in %Total Amount
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.IOCA_Code}}{{row.IOCA_LongDes}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}
{{ loc.TierValue }} :{{ loc.Tier }} Qty : {{basicLoc.PowQty | setDecimal:2}}
{{row.UnitName}}{{row.TotQty | setDecimal:2}}* required{{((row.TotQty)-0)*((row.UnitRate)-0) | setDecimal:2}}{{$select.selected.Tax}}
{{row.total | currency:\\'₹\\'}}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}
List of Terms and Condition
S.NoTitleTerms and ConditionDo you AgreeNote
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ContentTitle}}Yes No{{row.ContractorNote}}
Download/View All Drawings
S.NoList of DrawingsAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ draw.Description }}
Furnish Details of Person who quotes the Rates
* required
  • Attached Letter
* required
  • Attached Signature
');\n$templateCache.put('app/pages/RFQ/rfqPreparation/rejectRfq.html','

RFQ Rejection/Block


Notes is required

');\n$templateCache.put('app/pages/RFQ/rfqPreparation/rfqPreparation.html','
Preparation of Draft RFQ
Draft RFQ
Waiting for Approval RFQ
Back for Correction RFQ
Approved RFQ
Cancellation of RFQ
0)\" ng-required=\"true\" ng-model=\"vm.item.selectedCompany\" theme=\"bootstrap\" on-select=\"vm.getProjectByCompanyId(vm.item.selectedCompany.CompanyId)\">{{$select.selected.CompanyName}}
0)\" ng-required=\"true\" ng-model=\"vm.item.selectedProject\" on-select=\"vm.item.selectedStatus = null; vm.item.selectedRFQType = null; vm.rfqTemplate.selectedTemplate = null\" theme=\"bootstrap\">{{$select.selected.ProjectName}}
0)\" ng-model=\"vm.item.selectedStatus\" theme=\"bootstrap\" on-select=\"vm.item.selectedRFQType = null; vm.rfqTemplate.selectedTemplate = null\">{{$select.selected.Status}}
0)\" ng-model=\"vm.item.selectedRFQType\" theme=\"bootstrap\" on-select=\"vm.contractorScope();vm.item.selectedContractorScope=null;vm.rfqTemplate.selectedTemplate= null;\">{{$select.selected.rfqTypeName}}
0)\" ng-required=\"true\" ng-model=\"vm.rfqTemplate.selectedTemplate\" theme=\"bootstrap\" on-select=\"vm.getFOC(); vm.rfqTemplate.selectedContract = null; vm.rfqTemplate.selectedRFQTemplate = null;\">{{$select.selected.TemplatelistName}}
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
0)\" ng-required=\"true\" ng-model=\"vm.rfqTemplate.selectedTypeofbill\" theme=\"bootstrap\" on-select=\"vm.rfqTemplate.selectedContract == null\">{{$select.selected.TypeofBillName}}
0)\" ng-model=\"vm.rfqTemplate.selectedContract\" theme=\"bootstrap\" on-select=\"vm.getRfqTemplate()\">{{$select.selected.ContractName}}
0)\" ng-required=\"true\" ng-model=\"vm.rfqTemplate.selectedRFQTemplate\" on-select=\"vm.GetallContent(vm.rfqTemplate.selectedRFQTemplate.RfQTempId)\" theme=\"bootstrap\">{{$select.selected.TitleName}}
Select the Construction Activity
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}
{{$select.selected.TypeOfAttributeName}}
{{$select.selected.ScopeName}}
{{$select.selected.ShortDescription}}
Select the Location & Tiers
{{$select.selected.BasicLocation}}


Total No of Boq : {{ vm.RFQList.length }}
S.NoCodeType of CAIOCA Detailed DescriptionUOMTotal QtyAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_Code}}{{row.TypeName}}

Special Note :{{row.SpecialNote}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}

{{ k }} :{{ v }} Qty : {{loc.PowQty | setDecimal:2}}

{{row.UnitName}}{{row.TotQty | setDecimal:2}}
Total No of Boq : {{ vm.RFQList.length }}
S.NoCodeType of CAIOCA Detailed DescriptionUOMTotal QtyAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_Code}}{{row.TypeName}}
{{row.IOCA_LongDes}}
Special Note :{{row.SpecialNote}}
{{row.UnitName}}{{row.TotQty | setDecimal:2}}
Terms and Conditions

{{row.ContentTitle}}


S.NoList Description of DrawingsAction
{{ ($index + 1) + (vm.noOfRows1.value * (vm.currentPage1 - 1)) }}{{row. Description }}

S.NoList of ContractorAction
{{ ($index + 1) + (vm.noOfRows2.value * (vm.currentPage2 - 1)) }}{{row.ContractorName}}
S.NoList Description of DrawingsAction
{{ ($index + 1) + (vm.noOfRows1.value * (vm.currentPage1 - 1)) }}{{row. Description }}
S.NoList of ContractorAction
{{ ($index + 1) + (vm.noOfRows2.value * (vm.currentPage2 - 1)) }}{{row.ContractorName}}
');\n$templateCache.put('app/pages/RFQ/rfqPreparation/rfqSpecialNote.html','

RFQ Special Note


Notes is required

');\n$templateCache.put('app/pages/RFQ/rfqPreparation/rfqTable.html','
=1 && vm.StatusId <= 6\">

List Of {{vm.MenuNameList[vm.StatusId - 1].MenuName}} Work Order

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}

{{vm.waitingList.length | numberFixedLen:2}}

Total count
Draft RFQ for Approval

{{vm.resubmittedList.length | numberFixedLen:2}}

Total count
Draft RFQ Corrected for Approval
0 && vm.item.selectedProject !== undefined\">
S.NoName of the ProjectRFQ NoDate of PreparationSubjectPrepared ByStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ProjectName}}{{row.RfqNo}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}{{row.Subjects}}{{row.FirstName}}{{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}}
');\n$templateCache.put('app/pages/role/roleMenuMapping/roleMenuMapping.html','

ROLE MENU PRIVILEGE

{{$select.selected.RoleName || $select.selected}}
OrganizationLevel :
0\">
');\n$templateCache.put('app/pages/role/roleMenuMapping/roleMenuMapping_bk.html','

Role Menu Mapping

{{$select.selected.RoleName || $select.selected}}
0\">

Menus

Actions

');\n$templateCache.put('app/pages/sequence/BillOfQuantitySequence/boqIocaSequence.html','

IOCA Sequence

{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}
0 && vm.seq.Location!=undefined\">
0 && vm.seq.Location!=undefined\">
0 && vm.seq.Location!=undefined\">
CodeShortDescriptionSequenceAction
{{key}}
{{row.Code}}{{row.ShortDescription}}{{row.OrderofSequence}}
');\n$templateCache.put('app/pages/sequence/BillOfQuantitySequence/boqTierSequence.html','

Tier Sequence

{{$select.selected.ProjectName}}
{{$select.selected.BasicLocation}}

0\">
0\">
0\">
LocationsSequenceAction
{{row.Locations}}{{row.OrderofSequence}}
');\n$templateCache.put('app/pages/sequence/generalSequence/generalSequence.html','

General Sequence Of Type Of CA

{{$select.selected.CategoryName}}
{{$select.selected.TypeName}}
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CountryName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
0 && vm.selectedPrjtype!=undefined\">
0 && vm.selectedPrjtype!=undefined\">
0 && vm.selectedPrjtype!=undefined\">
S.NoCodeType of CASequenceAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeCode}}{{row.TypeName}}{{row.OrderofSequence}}
');\n$templateCache.put('app/pages/sequence/projectSequence/projectSequence.html','

Project Sequence

{{$select.selected.ProjectName}}
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
S.NoCodeType of CASequenceAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeCode}}{{row.TypeName}}{{row.OrderofSequence}}
');\n$templateCache.put('app/pages/Task/ActivityMaster/Task_ActivityMaster.html','

Activity Master

{{$select.selected.DepartmentName}}

Subject of Activity is required

{{$select.selected.SubjectName}}

Subject of Activity is required


Activity Name is Required

S.NoActivity NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ActivityName}}
');\n$templateCache.put('app/pages/Task/EmployeeTaskActivity/Task_EmployeeTaskActivity.html','

Employee Task Activity

S.NoSubject of ActivityActivity NameStart TimeEnd TimeStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}{{row.ActivityName}}{{row.StartTime}}{{row.EndTime}}{{row.Status}}
   -   
   -   
{{$select.selected.DepartmentName}}

Subject is required

{{$select.selected.SubjectName}}

Subject of Activity is required

{{$select.selected.ActivityName}}

Activity Name is required

{{$select.selected.Status}}
Customer Name is required.
{{$select.selected.Status}}
Customer Name is required.
');\n$templateCache.put('app/pages/Task/RepeatedActivityMaster/Task_RepeatedActivityMaster.html','

Create Repeated Activity

{{$select.selected.DepartmentName}}

Subject is required

{{$select.selected.SubjectName}}

Subject of Activity is required

{{$select.selected.ActivityName}}

Activity Name is required

{{$select.selected.RepeatBy}}

List of Repeated Activity

S.NoSubjectSubject of ActivityActivity NameRepeat ByDetailsAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.DepartmentName}}{{row.SubjectName}}{{row.ActivityName}}{{row.RepeatBy}}{{row.DisplayRepValues}}
');\n$templateCache.put('app/pages/Task/RepeatedSubjectMaster/Task_RepeatedSubjectMaster.html','

Subject of Activity

{{$select.selected.DepartmentName}}

Subject is required


Category of Sales Activity is Required

S.NoCategory of Sales ActivityAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.CategoryName}}
');\n$templateCache.put('app/pages/Task/SubjectMaster/Task_SubjectMaster.html','

Subject of Activity

{{$select.selected.DepartmentName}}


Subject of Activity is Required

S.NoSubject of ActivityAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectName}}
');\n$templateCache.put('app/pages/Task/TaskApprovedList/Task_TaskApprovedList.html','

Task Appraisal Report

S.NoSubject of ActivityActivity NameRepeat ByStart TimeEnd TimeStatus
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.SubjectActivity}}{{row.ActivityName}}{{row.RepeatBy}}{{row.StartTime}}{{row.EndTime}}{{row.Status}}
');\n$templateCache.put('app/pages/user/login/login.html','


  • {{ err }}
Forgot password?
');\n$templateCache.put('app/pages/user/userCreation/createUser.html','

Create User Account

Edit User Account

{{$select.selected.Type}}
{{$select.selected.DepartmentName || $select.selected}}
{{$select.selected.DesignationName || $select.selected}}
{{$select.selected.FirstName || $select.selected}}
{{$select.selected.ContractorName }}
{{$select.selected.SupplierName}}

Username already taken
Username is Required
Password is Required Password must have atleast 6 characters
Password did not match Password is Required

EmailId registred already
Email required Invalid Email address
{{$select.selected.RoleName || $select.selected}}
Please select a Role.

List of User Accounts

S.NoNameEmailRoleAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.FirstName + \" \" + row.LastName}}{{row.EmailId}}{{row.Role.RoleName}}
');\n$templateCache.put('app/pages/user/userMenuMapping/userMenuMapping.html','

USER MENU PRIVILEGE

{{$select.selected.FirstName || $select.selected}}
Company :
Email :
0\">
');\n$templateCache.put('app/pages/user/userModals/selectCompanyModal.html','

Select Company

{{$select.selected.CompanyName}}
You must select a company
');\n$templateCache.put('app/pages/user/userModals/selectProjectModal.html','

Select Project

{{$select.selected.ProjectName}}
You must select a company
');\n$templateCache.put('app/pages/WorkApproval/ApprovalOfWork/approvalOfWork.html','

APPROVAL OF COMPLETED WORK

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.ApprovalFrom}}
{{$select.selected.ApproveForName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
{{$select.selected.Title}}
{{wo.WorkOrderNo}}

Select Construction Activity


Select Location

{{$select.selected.BasicLocation}}


Category of CA : {{row.CategoryName}}
Sub Category of CA : {{row.SubCategoryName}}
Type of CA : {{row.TypeName}}
Code : {{row.Code}}
Unit : {{row.UnitName}}

Type of WorkLocation : {{loc.BasicLocation}}
{{loc.LocDetailsStr}}
S.NoPoint of WorkNo\\'sEstimated QtyActual Measurment QtyApproveDefectAttachmentStatusNotesView Media
{{ k }}
Total
{{ k }}
Total
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ioca.PowName}}{{ioca.ActivityCount}}{{value | number : 2}}
{{ioca.Total | number:2}}
Approve Defect{{ioca.Attachment.Notes}}
0\" st-safe-src=\"row.IOCA_DocList\" class=\"table table-responsive table-striped\">
S.NoDocument TypeDocument NameView Attachment
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.DocType}}{{doc.DocName}}

');\n$templateCache.put('app/pages/WorkApproval/DefectOfWork/defectOfWork.html','

Approval Of Defective Work

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.ApprovalFrom}}
{{$select.selected.ApproveForName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
{{$select.selected.Title}}
{{wo.WorkOrderNo}}

Select Construction Activity


Select Location

{{$select.selected.BasicLocation}}


Category of CA : {{row.CategoryName}}
Sub Category of CA : {{row.SubCategoryName}}
Type of CA : {{row.TypeName}}
Code : {{row.Code}}
Unit : {{row.UnitName}}

Type of WorkLocation : {{loc.BasicLocation}}
{{loc.LocDetailsStr}}
S.NoPoint of WorkNo\\'sEstimated QtyActual Measurment QtyApproveDefectUploadView HistoryStatusNotesView Media
{{ k }}
Total
{{ k }}
Total
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ioca.PowName}}{{ioca.ActivityCount}}
{{value | number : 2}}
{{ioca.Total | number:2}}
Approve Defect{{ioca.Attachment.Notes}}
0\" st-safe-src=\"row.IOCA_DocList\" class=\"table table-responsive table-striped\">
S.NoDocument TypeDocument NameView Attachment
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{doc.DocType}}{{doc.DocName}}

');\n$templateCache.put('app/pages/WorkApproval/Gallery/approvalWorkGallery.html','

Pictures of Approved Work

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.SearchtbasedOn}}
Filter is required.

Select Construction Activity

Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.

Select Location

{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
{{$select.selected.TierValue}}

Select Location

{{$select.selected.BasicLocation}}
{{$select.selected.TierValue}}
{{$select.selected.TierValue}}

Select Construction Activity

Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.

{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}

Select Construction Activity

Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.

Select Location

{{$select.selected.BasicLocation}}
0 && vm.gallery.selectedLocation !== undefined\">

List of Pictures of Approved work

    {{ key }}

    {{row.ActionOn | date : \\'MMMM d, y\\' }}
      

    1 of {{row.Files.FileName.length}}


0\">
');\n$templateCache.put('app/pages/WorkApproval/Gallery/defectWorkGallery.html','

Pictures of Defective Work

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.SearchtbasedOn}}
Search By is required.

Select Construction Activity

Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.

Select Location

{{$select.selected.BasicLocation}}

Select Location

{{$select.selected.BasicLocation}}

Select Construction Activity

Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.

{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}

Select Construction Activity

Category Of CA is required.
SubCategory of CA is required.
Type of CA Name is required.
{{$select.selected.SpecTypeName}}
Type of Attribute is required.
IOCA ShortDescription is required.

Select Location

{{$select.selected.BasicLocation}}
0\">

List of Pictures of Defect work

    {{ key }}

    {{row.ActionOn | date : \\'MMMM d, y\\' }}
    {{row.Locations}}

    1 of {{row.Files.FileName.length}}



');\n$templateCache.put('app/pages/WorkApproval/Gallery/DetailsofBOQ.html','

Details Of Bill Of Quantity

IOCA,ShortDescription : {{vm.BOQimageList.ShortDescription}}

Type of WorkLocation : {{vm.BOQimageList.BasicLocation}}
{{vm.BOQimageList.Locations}}

Approved By : {{vm.BOQimageList.FirstName}}
Approved On : {{vm.BOQimageList.ActionOn | date:\\'dd/MM/yyyy\\'}}
Contractor : {{vm.BOQimageList.ContractorName | date:\\'dd/MM/yyyy\\'}}

Points of Works Details

S.NoPowNo
{{ k }}
Total Qty
{{ ($index + 1) }}{{pow.PowName}}{{pow.ActivityCount}}{{value}}{{pow.ActualTotQty}}

×
');\n$templateCache.put('app/pages/WorkApproval/ViewHistory/viewHistory.html','

History



S.NoDateDefective Note ByNote
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ActionOn | date:\\'dd/MM/yyyy\\'}}{{row.FirstName}}{{row.Note}}
');\n$templateCache.put('app/pages/workOrder/AmendmentWO/amendmentStatusNotes.html','

Notes


Notes is required

');\n$templateCache.put('app/pages/workOrder/AmendmentWO/amendmentWO.html','

PREPARATION OF DRAFT WORK ORDER AMENDMENT-FOR RATES

0\" class=\"table table-responsive table-striped\">
ClickS.NoIOCA
Detailed
Description
IOCA
Detailed
Description
UnitTotal QtyCompleted
Qty
Balance
Qty
Current
Rate Per
Unit
GST In %Total Amount
As Per
Current Rate
Amendend
Rate Per
Unit
AmendendmentTotal Amount
as per
Amended Rate
Amendment Type
Qty
Cost
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_LongDes}}{{row.IOCA_LongDes}}{{row.UnitName}}{{row.TotQty | number : 2}}
View POW
{{row.TotQty | number : 2}}
View POW
{{row.CompletedWork | number : 2}}
View POW
{{row.BalWork | number : 2}}
View POW
{{row.UnitRate | number : 2}}{{row.Tax | number : 2}}{{(row.TotQty * row.UnitRate *(1+(row.Tax/100))) | number : 2}}
{{row.AmendmentQty | number:2}}
View
{{row.AmendmentCost | number : 2}}
{{row.TotAmendmentRate | number:2}}
View
Location
Period
{{$select.selected.AdementType}}

List Of Approved Work Orders

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
0 && vm.wo.selectedProject != undefined\">
0 && vm.wo.selectedProject != undefined\">
S.NoName of the WOWO No/Amd WO NoWO DateContractor NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.WorkOrderName}}{{row.WorkOrderNo}}{{row.WorkOrderDate | date:\\'dd/MM/yyyy\\'}}{{row.ContractorName}}
');\n$templateCache.put('app/pages/workOrder/AmendmentWO/viewAmendmentPow.html','

BOQ Details of Total Quantity

BOQ Details of Completed Work

BOQ Details of Completed Work

BOQ Details of Balance Work

IOCA DESCRIPTION : {{vm.wo.IOCA_LongDes}}

UOM : {{vm.wo.UnitName}}

S.NoLocationQty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Locations}}{{row.TotLocQty | number:2}}
S.NoPowQty
  {{ ($index + 1)}}
{{i.PowName}}{{i.PowQty | number : 2}}
  {{ ($index + 1)}}
{{i.PowName}}{{i.PowQty | number : 2}}
  {{ ($index + 1)}}
{{i.PowName}}{{i.PowQty | number : 2}}
  {{ ($index + 1)}}
{{i.PowName}}{{i.PowQty | number : 2}}
0\">
List of Location with Old Rates Rs.{{vm.wo.UnitRate}}
S.NoLocationQty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Locations}}{{row.TotLocQty | number:2}}
S.NoPowQty
  {{ ($index + 1)}}
{{i.PowName}}{{i.PowQty | number : 2}}
Total Amount{{vm.TotalOldRate | number : 2}}


0\">
List of Location with New Amendment Rates Rs.{{vm.wo.AmendmentRate}}
S.NoLocationQty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}
{{row.Locations}}{{row.TotLocQty | number : 2}}
S.NoPowQty
  {{ ($index + 1)}}
{{i.PowName}}{{i.PowQty | number : 2}}
Total Amount{{vm.TotalNewRate | number : 2}}

Grand Total :   {{(vm.TotalOldRate + vm.TotalNewRate) | number : 2}}


');\n$templateCache.put('app/pages/workOrder/AmendmentWO/viewAmendmentWO.html','

List Of Work Order Amendment

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}

{{vm.DraftWOList.length | numberFixedLen:2}}

Total Count

Draft

{{vm.PendingForApprovalWOList.length | numberFixedLen:2}}

Total Count

Pending For Approval

{{vm.ApprovedWOList.length | numberFixedLen:2}}

Total Count

Approved
0\">
S.NoName of the WOWO No/Amd WO NoWO DateContractor NameStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.WorkOrderName}}{{row.WorkOrderNo}}{{row.WorkOrderDate | date:\\'dd/MM/yyyy\\'}}{{row.ContractorName}}Draft Pending For Approval Approved
');\n$templateCache.put('app/pages/workOrder/CancellationofWO/CancellationofWO.html','
Work Order Cancellation
List Of Approved WorkOrders
S.NoType Of CAICAN Detailed DescriptionUOMRate/UnitGST in %TotalCompletedBalance QtyCancellation Type
QtyAmountQtyAmountQtyAmountTotal QtyBalance Qty
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.IOCA_ShortDescription}}{{row.UnitName}}{{row.UnitRate}}{{row.Tax}}{{row.TotQty | number : 2}}{{row.TotAmt | number : 2}}
View
{{row.CmpQty | number : 2}}{{row.CmpAmt | number : 2}}
View
{{row.BlnQty | number : 2}}{{row.BlnAmt | number : 2}}
View
{{boq.WorkLocation}}
S.NoPowNamePowQty
 
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{pow.PowName}}{{pow.PowQty}}


{{tc.ContentTitle}}


List of Approved WorkOrders Cancellation

{{$select.selected.ProjectName}}
S.NoName of the WOWO No/Amd WO NoWO DateContractor NameAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.WoTitle}}{{row.WorkOrderNo}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}{{row.ContractorName}}
');\n$templateCache.put('app/pages/workOrder/directWorkOrder/directWorkOrder.html','

Preparation of Draft Work Order

=1 && vm.stateFrom <= 6 && vm.isView == true\">

{{vm.MenuNameList[vm.StatusId - 1].MenuName}} Work Order

0)\" ng-required=\"true\" ng-model=\"vm.item.selectedCompany\" theme=\"bootstrap\" on-select=\"vm.getProjectByCompanyId(vm.item.selectedCompany.CompanyId)\">{{$select.selected.CompanyName}}
0)\" ng-required=\"true\" ng-model=\"vm.item.selectedProject\" theme=\"bootstrap\" on-select=\"vm.getLocationByProjectId(vm.item.selectedProject.ProjectId)\">{{$select.selected.ProjectName}}
0)\" ng-required=\"true\" ng-model=\"vm.item.selectedStatus\" theme=\"bootstrap\" on-select=\"vm.item.selectedRFQType = null;vm.rfqTemplate.selectedContract = null;vm.item.selectedFOC = null;vm.rfqTemplate.selectedTypeofbill = null;vm.rfqTemplate.selectedTemplate = null;vm.rfqTemplate.selectedRFQTemplate = null;\">{{$select.selected.Status}}
0)\" ng-required=\"true\" ng-model=\"vm.item.selectedRFQType\" theme=\"bootstrap\" on-select=\"vm.contractorScope()\">{{$select.selected.rfqTypeName}}
0)\" ng-required=\"true\" ng-model=\"vm.rfqTemplate.selectedTemplate\" theme=\"bootstrap\" on-select=\"vm.getFOC()\">{{$select.selected.TemplatelistName}}
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
0)\" ng-model=\"vm.rfqTemplate.selectedTypeofbill\" theme=\"bootstrap\" on-select=\"vm.rfqTemplate.selectedContract = null; vm.rfqTemplate.selectedRFQTemplate = null;\">{{$select.selected.TypeofBillName}}
0)\" ng-model=\"vm.rfqTemplate.selectedContract\" theme=\"bootstrap\" on-select=\"vm.getRfqTemplate()\">{{$select.selected.ContractName}}
0)\" ng-required=\"true\" ng-model=\"vm.rfqTemplate.selectedRFQTemplate\" on-select=\"vm.GetallContent(vm.rfqTemplate.selectedRFQTemplate.RfQTempId)\" theme=\"bootstrap\">{{$select.selected.TitleName}}
Select the Construction Activity
{{$select.selected.CategoryName}}
{{$select.selected.SubCategoryName}}
{{$select.selected.TypeName}}
{{$select.selected.TypeOfAttributeName}}
{{$select.selected.ScopeName}}
{{$select.selected.ShortDescription}}
Select the Location & Tiers
{{$select.selected.BasicLocation}}

Work Order No : {{ vm.WorkOrderNo }}
Total No of Boq : {{ vm.workOrderIocaList.length }}
S.NoCodeType of CAIOCA Detailed DescriptionUOMTotal QtyRate Per UnitContract AmountGST in %Total AmountAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_Code}}{{row.TypeName}}
Special Note :{{row.SpecialNote}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}

{{ k }} :{{ v }} Qty : {{loc.PowQty | setDecimal:2}}

{{row.UnitName}}{{row.TotQty | setDecimal:2}}* required{{((row.TotQty)-0 )* ((row.UnitRate)-0) | setDecimal:2 }}{{$select.selected.Tax}}
{{row.total | setDecimal:2 }}
Grand Total{{ vm.grandTotal | setDecimal:2 }}
S.NoCodeType of CAIOCA Detailed DescriptionUOMContract AmountGST in %Total AmountAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.IOCA_Code}}{{row.TypeName}}

Special Note :{{row.SpecialNote}}
{{row.UnitName}}* required{{$select.selected.Tax}}
{{row.total |currency:\\'₹\\' }}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}

Title for WO is required

Subjects for WO is required

Mobilization Advance is required

Retention Amount is required

TDS is required

Terms and Condition

{{row.ContentTitle}}

S.NoList of Description of DrawingsAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Description}}
{{$select.selected.ContractorName}}
* required
Attached File
');\n$templateCache.put('app/pages/workOrder/directWorkOrder/directWorkOrderTable.html','
=1 && vm.StatusId <= 6\">

List Of {{vm.MenuNameList[vm.StatusId - 1].MenuName}} Work Order

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}

{{vm.waitingList.length | numberFixedLen:2}}

Total count
Draft W.O for Approval

{{vm.resubmittedList.length | numberFixedLen:2}}

Total count
Draft W.O Corrected for Approval
S.NoName of the TitleWork Order NoDate of PreparationWork Order TypeStatusAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.Title}}{{row.WorkOrderNo}}{{row.CreatedOn | date:\\'dd/MM/yyyy\\'}}Direct Work Order Rfq Work Order{{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}} {{row.StatusText}}
');\n$templateCache.put('app/pages/workOrder/directWorkOrder/dwoSpecialNote.html','

Work Order Special Note


Notes is required

');\n$templateCache.put('app/pages/workOrder/directWorkOrder/statusHistory.html','

Work Order Sender Note


Notes is required

');\n$templateCache.put('app/pages/workOrder/preparationofDraftWO/preparationofDraftWO.html','

Preparation of Draft Work Order

=1 && vm.stateFrom <= 6 && vm.isView == true\">

List Of {{vm.MenuNameList[vm.StatusId - 1].MenuName}} Work Order

{{ companyName }}

{{ projectName }}

Approved {{row.ContractorName}} for {{ row.Subjects }} {{row.Title}}

{{ row.RfqNo }}

Preparation of Draft Work Order

=1 && vm.stateFrom <= 6 && vm.isView == true\">

{{vm.MenuNameList[vm.StatusId - 1].MenuName}} Work Order

{{vm.rfq.ProjectName}}
Preparation of Work Order for {{ vm.rfq.Subject }} at {{vm.rfq.Title}}
S.NoType of CAIOCA CodeDetailed DescriptionUomTotal QtyRate Per UnitGST in %Total Amount
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.IOCA_Code}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}
{{ loc.TierValue }} :{{ loc.Tier }} Pow Qty : {{basicLoc.PowQty | setDecimal:2}}
{{row.UnitName}}{{row.TotQty | setDecimal:2}}{{row.UnitRate}}{{row.Tax}}{{row.total | currency:\\'₹\\' }}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}
List of Terms and Condition
S.NoTitleTerms and Condition
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.ContentTitle}}

S.NoList Description of DrawingsAction
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row. Description }}
');\n$templateCache.put('app/theme/components/backTop/backTop.html','');\n$templateCache.put('app/theme/components/baSidebar/ba-sidebar.html','');\n$templateCache.put('app/theme/components/baSidebar/ba-sidebar_bk.html','');\n$templateCache.put('app/theme/components/baWizard/baWizard.html','
{{t.title}}
');\n$templateCache.put('app/theme/components/baWizard/baWizardStep.html','
');\n$templateCache.put('app/theme/components/contentTop/contentTop.html','
  • Home
  • {{ activePageTitle }}
');\n$templateCache.put('app/theme/components/msgCenter/msgCenter.html','');\n$templateCache.put('app/theme/components/pageTop/pageTop.html','');\n$templateCache.put('app/theme/components/progressBarRound/progressBarRound.html','Loading...{{progress}}%');\n$templateCache.put('app/theme/components/widgets/widgets.html','
1}\">
');\n$templateCache.put('app/theme/inputs/baSwitcher/baSwitcher.html','');\n$templateCache.put('app/pages/billing/MobilizationAdvance/accountVocher/accountVocher.html','

Mobilization Advance


No Data Found

{{ companyName }}

{{ projectName }}

{{row.ContractorName}}
{{ row.WorkOrderNo }}
{{row.ContractorTypeName}}


Mobilization Advance


{{vm.wo.ProjectName}}
{{vm.wo.ContractorName}}

DEFINE THE PAYMENT TO BE RELEASED

{{$select.selected.TransactionTypeName}}
Note*

{{$select.selected.BankName}}




Note*
0\">

List of Schedule of Item of Construction Activity

S.NoType of CAIOCA CodeDetailed DescriptionUomTotal QtyRate Per UnitGST in %Total Amount
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.TypeName}}{{row.IOCA_Code}}{{row.IOCA_LongDes}}
Type of Work Location : {{basicLoc.TypeOfWorkLocation}}
{{ loc.TierValue }} :{{ loc.Tier }} Pow Qty : {{basicLoc.PowQty | setDecimal:2}}
{{row.UnitName}}{{row.TotQty | setDecimal:2}}{{row.UnitRate}}{{row.Tax}}{{row.total | currency:\\'₹\\' }}
Grand Total{{ vm.grandTotal | currency:\\'₹\\' }}

Bank Details


Name of the Bank
:   {{vm.wo.selectedBank.BankName}}

Branch
:   {{vm.wo.selectedBank.Branch}}

Type of A/c
:   {{vm.wo.selectedBank.AcType}}

A/c Details
:   {{vm.wo.selectedBank.AcNo}}

A/c Balance Details


Today opening Balance
:   {{vm.wo.selectedBank.OpenBal}}

Today Available Balance
:   {{vm.wo.selectedBank.AvaiBal}}

Balance As on Date
:   {{vm.wo.selectedBank.BalDate | date:\\'dd/MM/yyyy\\'}}

History

S.NoDateVoucher NoAmount in Rs.
{{$index+1}}{{row.date}}{{row.VoucherNo}}{{row.Amt}}

History

S.NoDateVoucher NoAmount in Rs.
{{$index+1}}{{row.date}}{{row.VoucherNo}}{{row.Amt}}

Mobilization Advance

{{ vm.wo.CompanyName }}
PREPARATION OF PAYMENT VOUCHER

Payment Voucher No
: {{vm.wo.VoucherNo}}

Paid to
: {{vm.wo.ContractName}}

WorkOrderNo
: {{vm.wo.WorkOrderNo}}

Mode of Payment
: {{vm.wo.TransactionTypeName}}

Name of the Bank
: {{vm.wo.BankName}}

Name of the Branch
: {{vm.wo.BranchName}}

Account No
: {{vm.wo.AccountNo}}

Cheque No
: {{vm.wo.ChequeNo}}

Being Paid For
: Mobilization Advance Against Approved {{vm.wo.ContractName}}



');\n$templateCache.put('app/pages/billing/MobilizationAdvance/advancePayment/accountPayment.html','');\n$templateCache.put('app/pages/billing/penaltyNote/draftPenaltyNote/approvePenaltyNote.html','');\n$templateCache.put('app/pages/billing/penaltyNote/draftPenaltyNote/draftPenaltyNote.html','

Draft Penalty Note

{{$select.selected.CompanyName}}
{{$select.selected.ProjectName}}
{{$select.selected.ApprovalFrom}}
{{$select.selected.ApproveForName}}
{{$select.selected.CategoryName}}
{{$select.selected.ContractorName}}
{{$select.selected.Title}}
{{wo.WorkOrderNo}}

Select Construction Activity


Select Location

{{$select.selected.BasicLocation}}

Recommend Penalty

{{$select.selected.PenaltyType}}
in Amount


   W.O.No : {{vm.work.WorkOrderNo}}

   Type of W O : {{vm.work.TypeofWO}}

   Type of Contract : {{vm.work.TypeofContract}}

   Type of Billing : {{vm.work.TypeofBill}}

   Value of WO : {{vm.work.TotalWorkOrderAmount}}

   Upcoming Bill No : {{vm.work.UpcomingBillNumber}}

   Billing Period : {{vm.work.startDate | date:\\'dd/MM/yyyy\\'}} to {{vm.work.endDate | date:\\'dd/MM/yyyy\\'}}

   Minimum Penalty : {{vm.work.MinPenalty}}

   Maximum Penalty : {{vm.work.MaxPenalty}}




Category of CA : {{row.CategoryName}}
Sub Category of CA : {{row.SubCategoryName}}
Type of CA : {{row.TypeName}}
Code : {{row.Code}}
Unit : {{row.UnitName}}

Description : {{row.LongDescription}}

Type of WorkLocation : {{loc.BasicLocation}}
{{loc.LocDetailsStr}}
Rate : {{row.UnitRate}}
S.NoPoint of WorkNo\\'sEstimated QuantityTotal Value
{{ k }}
Total
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ioca.PowName}}{{ioca.ActivityCount}}
{{value}}
{{ioca.ActualTotQty}}
{{ioca.TotalValue | number:2}}
Grand Total {{loc.GrandTotal | number : 2}}
0\">
');\n$templateCache.put('app/pages/constructionProjectSetup/copyBoQ/itemToItem/itemToItem.html','

Copy BoQ from Item to Item

{{$select.selected.CompanyName}}
Company Name is required.
{{$select.selected.ProjectName}}
Project Name is required.
{{$select.selected.Status}}
BoQ Type is required.
{{$select.selected.BasicLocation}}
Type of Work Location is required.

Copying BoQ
{{$select.selected.TierValue}}

Copying From
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
{{$select.selected.IOCA_ShortDescription}}
Short Description is required.

Copying To
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type Of CA is required.
List of Copy BoQ from Item to Item
S.NoLocation DetailNo Of QuantityPOW NameDimensions
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ (!$last) ? t.Tier + \\'/\\' : t.Tier }}{{row.ActivityCount}}{{row.PowName}}
{{key}} : {{value}}
');\n$templateCache.put('app/pages/constructionProjectSetup/copyBoQ/locationToLocation/locationToLocation.html','
Copy BoQ from Location to Location
{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.Status}}
BoQ Type is required.
{{$select.selected.BasicLocation}}
Type of Work Location is required.
{{$select.selected.Tier}} to {{$select.selected.Tier}}
{{CopyBoQ.Tier}} to {{CopyBoQ.Tier}}
BoQ Type is required.
Select Activity
{{$select.selected.FieldofConstructionName}}
{{$select.selected.CategoryName}}
Category Name is required.
{{$select.selected.SubCategoryName}}
SubCategory Name is required.
{{$select.selected.TypeName}}
Type Of CA is required.
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.
{{$select.selected.IOCA_ShortDescription}}
Short Description is required.
Copying BOQ From
{{$select.selected.TierValue}}
Copying BOQ To
{{$select.selected.TierValue}}
S.NoLocationActivity CountPOW Name{{ k }}
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{ (!$last) ? t.Tier + \\'/\\' : t.Tier }}{{row.ActivityCount}}{{row.PowName}}{{value}}
');\n$templateCache.put('app/pages/constructionProjectSetup/copyBoQ/projectToProject/projectToProject.html','
Copy BoQ from Project to Project

Copy BOQ From

{{$select.selected.CompanyName}}
Name of the Company is required.
{{$select.selected.ProjectName}}
Name of the Project is required.
{{$select.selected.TypeName}}
Type of Copy BoQ is required.
{{$select.selected.TypeName}}
Type Of BoQ is required.
Select Location and Tiers
{{$select.selected.BasicLocation}}
Select of IOCA
   Advanced Search
{{$select.selected.TypeOfAttributeName}}
Type of Item is required.

Copying BOQ To

{{$select.selected.ProjectName}}
Name of the Project is required.
Select Location and Tiers
{{$select.selected.BasicLocation}}
0\">

Total no.of BoQ - {{vm.LoadDataList.length}}

S.NoLocation DetailsIOCA DescriptionUoMNo.of.POWQty
{{ ($index + 1) + (vm.noOfRows.value * (vm.currentPage - 1)) }}{{row.BasicLocation}}/{{row.TierName}}{{row.ShortDescription}}{{row.Uom}}{{row.PowCount}}{{row.BoqQty}}
');\n$templateCache.put('app/pages/materialManagement/stock/StockRegistration/stockRegistration.html','

STOCK REGISTER


Store Location

{{$select.selected.CompanyName}}
{{$select.selected.StoreName}}
{{$select.selected.ProjectName}}
{{$select.selected.StoreTypeName}}
{{$select.selected.StoreNo}}
{{$select.selected.TypeName}}

 Word Search
 Advance Search

{{$select.selected.IOM_Description}}

{{$select.selected.mCatName}}
{{$select.selected.mSubCatName}}
{{$select.selected.mTypeName}}
{{$select.selected.IOM_Description}}
{{vm.stock.selectedWSIOM.UOM_Name}}
{{vm.stock.selectedASIOM.UOM_Name}}


MATERIAL STOCK DETAIL FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'dd/MM/yyyy\\'}}

MATERIAL STOCK DETAIL FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'MMMM\\' | uppercase}}

MATERIAL STOCK DETAIL FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'yyyy\\'}}

MATERIAL STOCK DETAIL FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'dd/MM/yyyy\\'}} TO {{vm.stock.To | date : \\'dd/MM/yyyy\\'}}

MATERIAL STOCK DETAIL FOR THE {{vm.stock.selectedStatement.Type | uppercase}} OF {{vm.stock.From | date : \\'MMMM\\' | uppercase}} TO {{vm.stock.To | date : \\'MMMM\\' | uppercase}}

S.NoDateDescriptionOpening StockReceived QtyTotal QtyIssued QtyTotal Issued QtyClosing QtyIssued ToIssued By
{{value[0].OpeningStockQty | number : 2}}{{value[0].ClosingStockQty | number:2}}
{{row.SNo}}{{row.Date | date:\\'dd/MM/yyyy\\'}}{{row.Description}}
{{row.ReceivedQty | number:2}}
0.00
{{row.TotalReceivedQty | number:2}}
0.00
{{row.IssuedQty | number:2}}
0.00
{{row.TotalIssuedQty | number:2}}
0.00
{{row.IssuedTo}}
--
{{row.IssuedBy}}
--

No Data Found

');\n$templateCache.put('app/pages/RFQ/rfqComparision/addNotesModal/addNotesModal.html','

RFQ Comparision - {{ vm.Type }}


Notes is required

');\n$templateCache.put('app/pages/RFQ/rfqComparision/comparisionForm/comparisionForm.html','

Comparison of Contractor Quotation

Company Name : {{vm.RfqToCompare.CompanyName}}
Project Name : {{vm.RfqToCompare.ProjectName}}
Subject : {{vm.RfqToCompare.Subjects}}
Title : {{vm.RfqToCompare.Title}}
Type of Contract : {{vm.RfqToCompare.TypeOfContract}}
Rfq No : {{vm.RfqToCompare.RfqNo}}
Last Date for Submission : {{vm.RfqToCompare.LastSubDate | date:\\'dd/MM/yyyy\\'}}
Type of Rfq : {{vm.RfqToCompare.RfqScope}}



S.No{{ vm.formatContractorName(k)}}
{{ $index + 1 }}


{{ vm.formatContractorName($select.selected) }}

Approved Contractor :{{vm.approvedContractor}}
{{vm.senderNotes}}

');\n$templateCache.put('app/pages/RFQ/rfqComparision/listView/listView.html','

List of RFQ

{{ companyName }}

{{ projectName }}

{{ rfq.Subject }}

{{ rfq.Title }}

{{ rfq.RfqNo }}
Approved Contractor - {{ rfq.ContractorName }}

');}]);"],"sourceRoot":"/source/"}